diff --git a/admin/index.class.php b/admin/index.class.php index a8371fa..f43388c 100644 --- a/admin/index.class.php +++ b/admin/index.class.php @@ -1,1555 +1,7 @@ time = time(); - $this->ac_appcore = new appcore(); - //应用入口 - $this->ac_get_url = $this->ac_appcore->get_app_url(); - } - - /** - * 检测入口 - */ - public function doindex() { - global $_M; - if(!file_exists(INS_LOCK_FILE) || $_M['form']['check']){ - //应用信息 - $this->input['app'] = $this->ac_appcore->met_app(); - $this->input['app']['icon'] = $_M['url']['app'].M_NAME.'/icon.png'; - $this->input['app']['appname'] = get_word($this->input['app']['appname']); - $this->input['app']['addtime'] = date('Y-m-d H:i:s',$this->input['app']['addtime']); - //整理检查项 - if(!file_exists(INS_LOCK_FILE) || file_exists(UPD_LOCK_FILE) ){ - define("CHECK_ITEM", "server|system|accredit|appfile|weqrcode|appcheck"); - }else{ - define("CHECK_ITEM", "server|system|accredit|appfile|weqrcode|update|appcheck"); - } - //页面检查项 - $this->input['ckitem'] = CHECK_ITEM; - require $this->show('app/index',$this->input); - }else{ - turnover($this->ac_get_url,'No prompt'); - } - } - - /* - + Ajax 各种数据校验 - +------------------------------------------------------------------------------------------- - + doappcheck : 用来进行应用的各项检测入口 - +------------------------------------------------------------------------------------------- - */ - public function doappcheck() { - global $_M; - $this->ac_session = new session(); - $this->method = $_M['form']['type']; - //格式掉之前的旧数据 - if($this->method == 'server') self::del_cache(); - // 大于 PHP5.4 - self::{$this->method}(); - self::result(); - - echo $this->ac_appcore->resmsg(false); - } - - /* - + Ajax 下载更新应用文件 - +------------------------------------------------------------------------------------------- - + download : 应用文件的下载入口 - +------------------------------------------------------------------------------------------- - */ - public function download() { - global $_M; - (new download($this->ac_appcore))->download($_M['form']['data']); - echo $this->ac_appcore->resmsg(false); - } - - /* - + Ajax modal body区域 - +------------------------------------------------------------------------------------------- - + domodal : 应用模态框数据处理入口 - +------------------------------------------------------------------------------------------- - */ - public function domodal() { - global $_M; - $this->ac_session = new session(); - switch ($_M['form']['type']) { - case 'appfile': - $modal = self::appfile_modal(); - break; - case 'weqrcode': - $modal = self::weqrcode_modal(); - break; - case 'wechat': - $modal = self::wechat_modal(); - break; - case 'update': - $modal = self::update_modal(); - break; - default: - break; - } - echo $this->ac_appcore->jsoncallback($modal); - } - - /* - + Ajax - +------------------------------------------------------------------------------------------- - + doajax : 应用最终验证结果核对,以及应用程序使用过程中的应用校验数据延迟访问入口 - +------------------------------------------------------------------------------------------- - */ - - public function doajax() { - global $_M; - /* - * 查询API访问时间 - * 若当天没有访问则访问API - * 若已访问则跳过执行下面 - * - */ - - //sign - $bool = false; - //wechat、update 值若为1 则是通过,0 为需要执行的,2为忽略的 - if($_M['form']['sign'] == 'appcheck'){ - $time = date('Y-m-d H:i:s',$this->time); - $ac_session = new session(); - $cache = [ - //记录时间 - 'time' => strtotime("{$time} +1 day"), - //授权结果 - 'check' => $ac_session->get('check'), - //公众号结果 - 'wechat' => (int) $ac_session->get('wechat'), - //是否有最新版本 - 'update' => (int) $ac_session->get('update') - ]; - - $listkey = $ac_session->get('ckitem'); - $ckitem = stringto_array(CHECK_ITEM,'|'); - // 后期根据情况再进行具体处理 - if(!in_array(0, $listkey)){ - $bool = true; - if(file_exists(INS_LOCK_FILE)){ - $msgtext = '进入应用'; - }else{ - $msgtext = ''; - } - } - $ac_session->del('ckitem'); - }else{ - //清除缓存 - $this->ac_session = new session(); - self::del_cache(); - //进行检测 - $ac_cache = $this->ac_appcore->mysql_config(array('ac_cache')); - //解密后的数组 - $cache = (new curls($this->ac_appcore))->postr($ac_cache,'',false)->resdata(); - $post = $this->ac_appcore->met_all(); - //判断是否超时 - if(empty($ac_cache) || $cache['time'] < strtotime("+1 hour") ){ - //API获取 - $this->method = 'check'; - $ajax = self::curljson($post,false,25); - $cache = $ajax['code']?$ajax['cache']:[]; - } - //查看本地是否存在禁止更新锁 - if(file_exists(UPD_LOCK_FILE)) $cache['update'] = 1; - //需要对比数据 - if(!empty($cache)){ - $check = (new curls($this->ac_appcore)) - ->apikey_decode([$cache['check'],$post['web']['met_weburl'],$post['app']['m_name'],$post['app']['addtime'] ]); - $state = $check['state'] && $check['app']['v_m_name'] == M_NAME?true:false; - if($state){ - if($check['vatime']['minute'] > 0){ - //对有效时间计算 - $time = date('Y-m-d H:i:s',$check['vatime']['stime']); - $endtime = strtotime("{$time} +{$check['vatime']['minute']} minute"); - if($endtime <= $this->time ) $state = false; - } - //最终结果判断 - $bool = $state && !empty($cache['wechat']) && !empty($cache['update'])?true:false; - } - } - //版本号 - if($bool){ - $vertype = ['Y','S','D']; - $msgtext = "版本号:{$vertype[$check['app']['v_vertype']]}.{$check['app']['v_ver']}"; - if($check['vatime']['minute'] > 0){ - //体验版本结束日期 - $endtime = date('Y-m-d H:i:s',$endtime); - $msgtext .= " ({$endtime})"; - } - } - } - - $ac_cache['exetime'] = $this->time; - //缓存记录 - $ac_cache = (new curls($this->ac_appcore))->apipost($cache)->resdata(true); - $this->ac_appcore->mysql_config(['ac_cache',$ac_cache],false); - //返回 - $bool?$this->ac_appcore->msgkey(1)->msgmeet($msgtext,true):$this->ac_appcore->locmsg(4012); - echo $this->ac_appcore->resmsg(false); - } - -// +---------------------------------------------------------------------- -// | 应用主方法 限制内部调用 -// +---------------------------------------------------------------------- - - /* - + 内部调用 - +------------------------------------------------------------------------------------------- - + server : 进行进行服务通信的验证,提供站点信息,站点应用信息给服务端, - + 从服务端获取当前应用版本的详细信息,以及系统环境的检测结果并缓存到session - +------------------------------------------------------------------------------------------- - + system : 直接获取缓存的session 直接将环境结果处理返回 - +------------------------------------------------------------------------------------------- - + accredit : 提供APP信息给服务端,从服务端获取验证结果 - +------------------------------------------------------------------------------------------- - + appfile : 根据APP版本信息,从服务端获取对应的对比指纹 - + 核心文件出现问题,会直接从服务端自动更新, - + 非核心文件会提供手动处理方法,必须修复 - + 暂时不提供非应用文件进行删除处理。 - +------------------------------------------------------------------------------------------- - + weqrcode : 根据站点信息和用户信息,从服务端查询是否符合微信公众号关注要求 - +------------------------------------------------------------------------------------------- - + update : 应用在线更新功能 - +------------------------------------------------------------------------------------------- - */ - - # 服务端通信检测 - # 通过加密进行处理可防止数据丢失,防止某些敏感参数被过滤掉 - protected function server() { - global $_M; - //数据准备 - $server = self::curljson($this->ac_appcore->met_web_app()); - //进行结果处理 - if($server['code']){ - $this->ac_appcore->sucmsg($server['text']); - }else{ - $this->ac_appcore->errmsg($server['errcode'],$server['errmsg']); - } - - //缓存app版本以及环境检测结果 - $this->ac_session->set('applist',$server['applist']); - $this->ac_session->set('system',$server['system']); - } - - # 网站环境检测 - # 环境不存在中间值,要么支持,要么不支持 - protected function system() { - global $_M; - //读取缓存 - $system = $this->ac_session->get('system'); - //进行结果处理 - $metver = $system['metver']['code']; - $phpver = $system['phpver']['code']; - - $text = [ - [$phpver,$system['phpver']['text']], - [$metver,$system['metver']['text']] - ]; - $this->ac_appcore->vagmsg($metver && $phpver?1:0,$text); - //清空缓存 - $this->ac_session->del('system'); - } - - # 应用授权检测 - protected function accredit() { - global $_M; - //数据准备 - $post = $this->ac_appcore->met_web_app(); - $accredit = self::curljson($post,false,20); - //进行结果处理 - if($accredit['code']){ - //解密 - $apikey = (new curls($this->ac_appcore))->apikey_decode([$accredit['codekey'],$post['web']['met_weburl'],$post['app']['m_name'],$post['app']['addtime']]); - //校验 - if(!empty($apikey['state']) && $apikey['vatime']['minute'] > 0){ - //对有效时间计算 - $time = date('Y-m-d H:i:s',$apikey['vatime']['stime']); - $text = '体验结束时间:'.date('Y-m-d H:i:s',strtotime("{$time} +{$apikey['vatime']['minute']} minute")); - } - $apikey['state']?$this->ac_appcore->sucmsg($accredit['text'].$text):$this->ac_appcore->locmsg(4024); - }else{ - $this->ac_appcore->errmsg($accredit['errcode'],$accredit['errmsg']); - } - - //记录授权结果 - $this->ac_session->set('check',$accredit['codekey']); - } - - #文件指纹对比 - protected function appfile() { - global $_M; - //清空需要删的参数 - $this->ac_session->del('repair'); - //获取缓存 - $appfile = $this->ac_session->get('appfile'); - if(!$appfile){ - $appfile = self::curljson($this->ac_appcore->met_web_app()); - //进行结果处理 - if($appfile['code']) { - $this->ac_session->set('appfile',$appfile); - }else{ - return $this->ac_appcore->errmsg($appfile['errcode'],$appfile['errmsg']); - } - } - - //文件修复 - $dirfinger = new dirfinger(); - $corelist = $dirfinger->fingers($appfile['corelist']); - //先自动修复核心框架,再强制让用户修复有问题的文件。 - if(count($corelist['dllist']) > 0){ - //核心文件异常则启动自动修复,若修复失败再进行提示 - $this->ac_session->set('dllist',$corelist['dllist']); - $modal = $this->ac_appcore->msgkey()->msgtext(4004)->resmsg(); - $modal['suc'] = false; - $modal['data'] = 'core|check'; - return $this->ac_appcore->newres()->modalmsg($modal, 4001); - } - - $fingers = $dirfinger->fingers($appfile['fingers']); - //删除应用多余的文件 - //$dirfinger->del_appfile($appfile['fingers']); - //判断是否需要文件修复 - $inslock = (int) file_exists(INS_LOCK_FILE); //安装锁不存在说明新安装,不需要执行文件修复 - $dllock = count($fingers['dllist']) == 0?1:0; //需要修复的文件为0 说明不需要修复 - if(!$inslock || $dllock) { - //清理掉不再需要的缓存 - $this->ac_session->del('repair'); - $this->ac_session->del('appfile'); - //删除下载的缓存文件 - $this->ac_appcore->del_update_dir(); - return $this->ac_appcore->sucmsg()->msgtext(4003); - } - - //非强制更新和非安装状态 且$fingers 大于0时才执行文件修复 - if(count($fingers['dllist']) > 0){ - $this->ac_session->set('dllist',$fingers['dllist']); - $this->ac_session->set('repair',$fingers); - $modal = [ - 'suc' => true, - 'title' => '应用文件修复', - 'body' => '
({$weqrcode['errcode']}){$weqrcode['errmsg']}
" - ]; - } - return $wehtml; - } - - //微信公众号轮询 - protected function wechat_modal() { - global $_M; - $sign = random(6); - sleep(1); - $this->method = 'check'; - $weqrcode = self::curljson($this->ac_appcore->met_all(),false,20,'wx'); - //结果返回 - if($weqrcode['code']){ - $this->ac_appcore->sucmsg($weqrcode['wx']['ret']['info'],$weqrcode['wx']['key']); - }else{ - $this->ac_appcore->errmsg($weqrcode['errcode'],$weqrcode['errmsg']); - } - - //计算2分钟超时 - if(empty($_M['form']['endtime'])){ - $time = date('Y-m-d H:i:s', $this->time); - $endtime = strtotime("{$time} +2 minute"); - }else{ - if($_M['form']['endtime'] < $this->time){ - $text = '刷新二维码'; - $this->ac_appcore->locmsg([4023,$text]); - }else{ - $endtime = $_M['form']['endtime']; - } - } - - $resmsg = $this->ac_appcore->resmsg(); - $resmsg['endtime'] = $endtime; - $resmsg['sign'] = $sign; - return $resmsg; - } - - //在线更新 - protected function update_modal() { - global $_M; - $newapp = $this->ac_session->get('newapp'); - return [ - 'body' => strlen($newapp['v_daily']) > 0?"
没有更新说明。
', - 'foot' => '' - ]; - } - -// +---------------------------------------------------------------------- -// | 辅助方法 -// +---------------------------------------------------------------------- - - # 需要格式化掉的数据防止二次使用时错误 - private function del_cache() { - global $_M; - $this->ac_session->del('applist'); - $this->ac_session->del('system'); - $this->ac_session->del('check'); - $this->ac_session->del('appfile'); - $this->ac_session->del('repair'); - $this->ac_session->del('dllist'); - $this->ac_session->del('wechat'); - $this->ac_session->del('update'); - $this->ac_session->del('ckitem'); - } - - # 记录各项检查结果 - private function result() { - global $_M; - $code = false; - $ckitem = $this->ac_session->get('ckitem'); - if($this->method != 'appcheck'){ - $key = $this->ac_appcore->resmsg(); - $ckitem[$this->method] = $key['key']; - $this->ac_session->set('ckitem',$ckitem); - } - } - - # 将返回信息转为JSON数据 - private function curljson($post = [],$type = false,$timeout = 15,$sign = 'ck' ) { - global $_M; - return (new curls($this->ac_appcore))->apiurl($this->method,$sign) - ->apipost($post) - ->curls($timeout) - ->resdata($type); - } - - # 应用内容呈现 - protected function show($file, $data){ - global $_M; - $view =load::sys_class('engine','new'); - require_once $view->dodisplay($file, $data); - } - -} - -// +---------------------------------------------------------------------- -// | class appcore 应用客户端核心处理方法 -// +---------------------------------------------------------------------- -// | Copyright: 1.0 -// +---------------------------------------------------------------------- -// | Author site: www.metinfo.wang,www.metinfo.cc -// +---------------------------------------------------------------------- -// | Author QQ: 415420792 -// +---------------------------------------------------------------------- -class appcore{ - - # 应用文件名 - private $m_name; - # 站点信息 - private $web = []; - # 应用信息 - private $app = []; - # 管理员权限 - private $aop = []; - # 错误信息的提示 - private $tipmsg = []; - # 返回的信息结果 - private $resmsg = []; - - # 初始化 - public function __construct() { - global $_M; - $this->m_name = M_NAME; - } - - # 获取应用入口 - public function get_app_url() { - global $_M; - $settings = file_exists(INS_LOCK_FILE)?json_decode(file_get_contents(INS_LOCK_FILE),true):[]; - if(empty($settings['url'])){ - unset($settings['url'],$settings['time']); - $get_url = $_M['url']['own_name'].http_build_query($settings); - }else{ - $get_url = $settings['url']; - } - return $get_url; - } - - # 站点信息和应用信息 - public function met_web_app() { - global $_M; - return [ - 'web' => self::met_web(), - 'app' => self::met_app() - ]; - } - - # 获取站点信息以及权限查询 - public function met_all() { - global $_M; - $met = self::met_web_app(); - $met['aop'] = self::met_aop(); - return $met; - } - - # 站点信息查询 - public function met_web() { - global $_M; - // 站点信息 - $name = ['met_weburl','met_webname','metcms_v','met_keywords','met_description','met_skin_user']; - foreach ($name as $val) { - $lang = $val == 'metcms_v'?'metinfo':$_M['lang']; - $met = DB::get_one("SELECT value FROM {$_M['table']['config']} WHERE name = '{$val}' AND lang = '{$lang}' "); - $this->web[$val] = $met['value']; - } - $this->web['webip'] = $_SERVER['SERVER_ADDR']; - $this->web['sysver'] = php_uname('s').' '.php_uname('r'); - $this->web['phpver'] = PHP_VERSION; - $this->web['sqlver'] = DB::version(); - $this->web['webver'] = str_replace("PHP/{$this->web['phpver']}","",$_SERVER['SERVER_SOFTWARE']); - $this->web['lang'] = $_M['lang']; - return $this->web; - } - - # 应用信息查询 - public function met_app() { - global $_M; - //应用信息 - if(!empty($this->m_name)) { - $this->app = DB::get_one("SELECT no,ver,addtime,m_name,appname FROM {$_M['table']['applist']} WHERE m_name='{$this->m_name}' "); - } - $this->app['client_ip'] = self::get_client_ip(); - return $this->app; - } - - # 下载权限处理需求 - public function met_adl() { - global $_M; - //应用信息 - if(!empty($this->m_name)) { - $this->adl = DB::get_one("SELECT no,ver,addtime,m_name FROM {$_M['table']['applist']} WHERE m_name='{$this->m_name}' "); - } - //域名 - $met = DB::get_one("SELECT value FROM {$_M['table']['config']} WHERE name = 'met_weburl' AND lang = '{$_M['lang']}' "); - $this->adl['met_weburl'] = $met['value']; - return $this->adl; - } - - # 公众号关注管理员权限 - public function met_aop() { - global $_M; - $admin = admin_information(); - //管理员权限 - $this->aop = [ - 'admin_id' => $admin['admin_id'], - 'admin_op' => $admin['admin_op'], - 'admin_ip' => $admin['admin_modify_ip'], - 'admin_time' => $admin['admin_modify_date'], - ]; - return $this->aop; - } - - # 对resmsg 初始化 - public function newres() { - global $_M; - $this->resmsg = []; - return $this; - } - - # 提示信息返回 - # $type true 为数组,false 为json - # $unset true 清空避免重复使用出现问题 false 暂时不清空 - public function resmsg($type = true,$unset = false) { - global $_M; - //检测值是否存在 - if(strlen($this->resmsg['key']) == 0) self::locmsg(4012); - //检测项的值 - $this->resmsg['eqkey'] = $_M['form']['eqkey']; - //返回值 - $resmsg = $type?$this->resmsg: self::jsoncallback($this->resmsg); - //注销 - if($unset) unset($this->resmsg); - return $resmsg; - } - - # 正确结果返回 - public function sucmsg($msg,$code = 1) { - global $_M; - $this->resmsg['key'] = $code; - $this->resmsg['text'] = self::fontcolor($code,$msg); - return $this; - } - - # 多种结果返回 - public function vagmsg($code,$msg = []) { - global $_M; - $text = ''; - foreach ($msg as $val) { - list($k,$v) = $val; - $text .= self::fontcolor($k,$k?$v['info']:"({$v['coding']}){$v['info']}"); - } - $this->resmsg['key'] = $code; - $this->resmsg['text'] = $text; - return $this; - } - - # 错误结果返回 - # $code 这个是错误的编码 - # $msg 错误的信息提示 - public function errmsg($coding,$msg,$code = 0) { - global $_M; - $this->resmsg['key'] = $code; - $this->resmsg['text'] = self::fontcolor(0,"({$coding}){$msg}"); - return $this; - } - - # 返回本地编码信息 - # $code 状态 - # $msg 错误的信息提示 - public function locmsg($msg = [],$code = 0) { - global $_M; - if(!empty($msg)) self::codemsg($msg); - $this->resmsg['key'] = $code; - $this->resmsg['text'] = self::fontcolor($code,"({$this->tipmsg['errcode']}){$this->tipmsg['errmsg']}"); - return $this; - } - - # 错误结果返回 - # $modal 模态框的内容 - # $code 校验结果状态 - # $error 错误信息提示 提示码以及需要增加的文字 - public function modalmsg($modal = [], $error = [],$code = 0) { - global $_M; - self::locmsg($error,$code); - $this->resmsg['modal'] = $modal; - return $this; - } - - # 替换key - public function msgkey($key = 4) { - global $_M; - $this->resmsg['key'] = $key; - return $this; - } - - # 使用本地错误代码替换返回信息内的text - public function msgtext($error = []) { - global $_M; - self::codemsg($error); - $this->resmsg['text'] = self::fontcolor($this->resmsg['key'],$this->tipmsg['errmsg']); - return $this; - } - - # text - # $type true 覆盖,false 为拼接 - public function msgmeet($text,$type = false) { - global $_M; - $this->resmsg['text'] = $type?$text:$this->resmsg['text'].$text; - return $this; - } - - # 对提示文字的HTML处理 - private function fontcolor($code,$text) { - global $_M; - // 红、绿、黄 - $color = ['#E9595B','#36AB7A','#EC9940','#76838f','#2a333c']; - return ''.$text.''; - } - - # 错误提示语返回字符串格式 - # $type true 字符串,false 为JSON - public function coderes($type = true) { - global $_M; - return $type?$this->tipmsg['errmsg']:json_encode($this->tipmsg,JSON_UNESCAPED_UNICODE); - } - - # 错误代码信息 - public function codemsg($coding,$text = '') { - global $_M; - if(is_array($coding)) list($coding,$text) = $coding; - $msg = [ - '4000' => "当前环境缺少CURL支持!", - '4001' => "核心文件存在异常,准备自动修复核心文件...", //修复文件 - '4002' => "应用文件存在异常请点击 {$text} !", //修复文件 - '4003' => "应用文件正常!", - '4004' => "文件权限检测中...", - '4005' => " {$text} 不存在,请手动创建!", - '4006' => " {$text} 权限不足,请修改为[777/775]增加写入权限!", - '4007' => " {$text} 数据写入错误,请自行检测权限!", - '4008' => "下载权限不足(请检查【网站网址】是否为购买应用的域名)!", - '4009' => "应用文件下载中...", - '4010' => "应用文件下载中...{$text} (正在进行下载,请不要操作页面!)", - '4011' => "服务端异常[{$text}],通信失败!", - '4012' => "系统异常!", - '4013' => "应用文件,开始修复...", - '4014' => "[核心文件自动修复] 修复完成。", - '4015' => "应用文件修复完成。", - '4016' => "[{$text}] 下载失败!", - '4017' => "修复失败!", - '4018' => "安装失败!", - '4019' => "安装成功!", - '4020' => "应用文件,开始安装...", - '4021' => "[{$text}] 写入失败!", - '4022' => "未检测到文件!", - '4023' => "微信公众号二维码扫描超时!{$text}", - '4024' => "域名未获得授权!", - '4025' => "安装锁权限不足!", - ]; - - $this->tipmsg = ['errcode' => $coding,'errmsg' => $msg[$coding]]; - return $this; - } - - # 密钥获取和保存 - # $mode true是读取 false是保存 - public function mysql_config($arr = [],$mode = true) { - global $_M; - list($key,$val) = $arr; - $table = $_M['table']['cloud_config']; - $lang = 'cloud'; - if($mode){ - $config = DB::get_one("select value from {$table} where name = '{$key}' AND m_name = '{$this->m_name}' AND lang = '{$lang}' "); - $val = $config['value']; - }else{ - DB::query("INSERT INTO {$table} (name,lang,m_name,value) VALUES ('{$key}','{$lang}','{$this->m_name}','{$val}') ON DUPLICATE KEY UPDATE value='{$val}' "); - } - return $val; - } - - // 获取客户端IP - public function get_client_ip(){ - $arr_ip_header = [ - // 非常见 - 'HTTP_CDN_SRC_IP', - 'HTTP_PROXY_CLIENT_IP', - 'HTTP_WL_PROXY_CLIENT_IP', - // 一般用下面三个 - 'HTTP_CLIENT_IP', - 'HTTP_X_FORWARDED_FOR', - 'REMOTE_ADDR' - ]; - $client_ip = 'unknown'; - foreach ($arr_ip_header as $key){ - if (!empty($_SERVER[$key]) && strtolower($_SERVER[$key]) != 'unknown' && filter_var($_SERVER[$key], FILTER_VALIDATE_IP)){ - $client_ip = $_SERVER[$key]; - break; - } - } - return $client_ip; - } - - /* - * 把数组转成JSON,用于ajax返回,可以用于普通json请求返回,也可以用于跨域的ajax的jsonp格式的数据请求返回。 - * @param array $back 输出字符串或数组 - * @param string $callback ajax的回调函数的名称 - */ - public function jsoncallback($back, $callback = 'callback') { - global $_M; - header('Content-type: application/x-javascript'); - $callback = $_M['form'][$callback]; - $json = json_encode($back,JSON_UNESCAPED_UNICODE); - echo $callback?$callback . '(' . $json . ')':$json; - } - - //删除更新文件夹 - public function del_update_dir() { - global $_M; - @clearstatcache(); - //检测文件是否存在,删除缓存的file - if(is_dir(APP_UPDATE_DIR) && file_exists(APP_UPDATE_DIR)) deldir(APP_UPDATE_DIR); - } - -} - -// +---------------------------------------------------------------------- -// | class curls 应用CURL -// +---------------------------------------------------------------------- -// | Copyright: 1.0 -// +---------------------------------------------------------------------- -// | Author site: www.metinfo.wang,www.metinfo.cc -// +---------------------------------------------------------------------- -// | Author QQ: 415420792 -// +---------------------------------------------------------------------- -class curls{ - - # 应用主方法 - private $appcore; - # 应用APIURL - private $urlarr = []; - # 应用API - private $apiurl = []; - # 网址协议 - private $scheme; - # 提交数据和返回数据的缓存 - private $data; - # 默认密钥 - private $apikey; - # 信息 - private $headers = []; - - # 初始化 - public function __construct($appcore) { - global $_M; - $this->appcore = $appcore; - // 选择执行URL,提交的数据,对数据的处理,提交服务端,数据的处理,返回结果 - $this->urlarr = [ - // 应用信息验证URL - 'ck' => 'https://app.muban.net.cn/api/appcheck.php?a=do', - // 应用下载更新URL - 'dl' => 'https://app.muban.net.cn/api/download.php?a=do', - //公众号 - 'wx' => 'https://app.muban.net.cn/api/wechat.php?a=do' - ]; - $this->apikey = md5($_M['config']['met_weburl']); - $this->headers = [ - 'METWEBURL:' . $_M['config']['met_weburl'], - 'AUTHORIZATION:' . $this->apikey - ]; - } - - # URL选择 - public function apiurl($method,$type = 'ck') { - global $_M; - $this->apiurl = $this->urlarr[$type].$method; - $this->scheme = self::purl($this->apiurl,'scheme'); - return $this; - } - - # 数据处理 - # $ende true加密 false 不执行加密 - public function apipost($post,$ende = true) { - global $_M; - $this->data = $post; - // 若要采用非默认密钥这里设置false,单独调用加密方法 - if($ende) self::auth_encode(); - return $this; - } - - # 对数据加密 - # $str 加密数据 $key 加密密钥 - public function auth_encode($key = null) { - global $_M; - if(!empty($key)) $this->apikey = $key; - if(is_array($this->data)) self::arrjson(false); - $this->data = authcode($this->data,'ENCODE', $this->apikey); - return $this; - } - - # 授权查询 授权代码结束 - public function curls($timeout = 15) { - global $_M; - if (get_extension_funcs('curl') && function_exists('curl_init') && function_exists('curl_setopt') && function_exists('curl_exec') && function_exists('curl_close')) { - $curl = curl_init(); - curl_setopt($curl, CURLOPT_URL, $this->apiurl); - if($this->scheme === 'https') { - curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //不做服务器认证 - curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); //不做客户端认证 - } - curl_setopt($curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); - curl_setopt($curl, CURLOPT_REFERER, $_SERVER["HTTP_HOST"]); - curl_setopt($curl, CURLOPT_HTTPHEADER, $this->headers); - curl_setopt($curl, CURLOPT_FAILONERROR, 1); //返回http >= 400的错误代码 - curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout); - curl_setopt($curl, CURLOPT_TIMEOUT, $timeout); - curl_setopt($curl, CURLOPT_POST, 1); - curl_setopt($curl, CURLOPT_POSTFIELDS, ['dense' => $this->data]); - $data = curl_exec($curl); - $code = curl_getinfo($curl, CURLINFO_HTTP_CODE); //http响应码 - $errno = curl_errno($curl); //错误码 - curl_close($curl); - $this->data = empty($errno)?$data:$this->appcore->codemsg(4011,"{$code}-{$errno}")->coderes(false); - }else{ - $this->data = $this->appcore->codemsg(4000)->coderes(false); - } - return $this; - } - - # 对数据解密 - # $str 加密数据 $key 加密密钥 - public function auth_decode($key = null) { - global $_M; - if(!empty($key)) $this->apikey = $key; - $this->data = authcode($this->data,'DECODE', $this->apikey); - return $this; - } - - # 数据格式转换 - # $type true 转为数组 false 转为json - public function arrjson($type = true) { - global $_M; - $this->data = $type?json_decode($this->data,true):json_encode($this->data,JSON_UNESCAPED_UNICODE); - return $this; - } - - # 返回的数据处理 - # $type true 返回源数据,false 返回数组 - public function resdata($type = false) { - global $_M; - if($type == false) self::arrjson(); - return $this->data; - } - - # 单独处理数据的加密和解密 - # $type true 加密,false 解密 - # $post 有数据则执行,无数据则直接返回postr - public function postr($post = null,$key = null,$type = true) { - global $_M; - self::apipost($post,false); - if($type){ - self::auth_encode($key); - }else{ - self::auth_decode($key); - } - return $this; - } - - # 授权密钥解密 - public function apikey_decode($appkey = []) { - global $_M; - list($apikey,$domian,$m_name,$addtime) = $appkey; - $domian = self::purl($domian); - return self::postr($apikey, md5($domian.md5($m_name.$addtime)),false)->resdata(); - } - - # 分析网址 - public function purl($url,$type = 'host') { - global $_M; - $url = url_standard($url); - $array = parse_url($url); - return $type == 'arr'?$array:$array[$type]; - } - -} - - -// +---------------------------------------------------------------------- -// | class session 应用检测会话缓存 -// +---------------------------------------------------------------------- -// | Copyright: 1.0 -// +---------------------------------------------------------------------- -// | Author site: www.metinfo.wang,www.metinfo.cc -// +---------------------------------------------------------------------- -// | Author QQ: 415420792 -// +---------------------------------------------------------------------- -class session{ - - # 应用文件名 - private $se_m_name = M_NAME; - - public function __construct() { - global $_M; - self::start(); - } - - public function start(){ - $ip = self::getip(); - session_id(md5($_SERVER['HTTP_USER_AGENT'].$this->se_m_name.$ip)); - session_start(); - } - - public function set($name, $value){ - self::start(); - $_SESSION[$name] = $value; - } - - public function get($name){ - self::start(); - return $_SESSION[$name]; - } - - public function del($name){ - self::start(); - unset($_SESSION[$name]); - } - - public function getip() { - $unknown = 'unknown'; - if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], $unknown)){ - $pro = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); - $ip = $pro[0]; - }elseif(isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], $unknown)) { - $ip = $_SERVER['REMOTE_ADDR']; - } - return $ip; - } - -} - -// +---------------------------------------------------------------------- -// | class dirfinger 应用检测指纹校对 -// +---------------------------------------------------------------------- -// | Copyright: 1.0 -// +---------------------------------------------------------------------- -// | Author site: www.metinfo.wang,www.metinfo.cc -// +---------------------------------------------------------------------- -// | Author QQ: 415420792 -// +---------------------------------------------------------------------- -class dirfinger { - - # 应用所在目录 - private $appfile; - # 需要跳过的文件,不分目录 - private $skipfile = []; - # 需要跳过的目录以及按照目录跳过文件 - private $skipdir = []; - # 跟服务端指纹不同的文件路径 - private $updlist = []; - # 需要从服务器下载的文件 - private $dllist = []; - - # 初始化 - public function __construct() { - global $_M; - $this->appfile = PATH_APP_FILE; - $this->skipfile = []; - $this->skipdir = [ - 'config/install.lock', - 'config/update.lock', - 'config/uninstall.lock', - 'config/table' - ]; - @clearstatcache(); - } - - # 对比指纹入口 - public function fingers($fingers = []) { - global $_M; - //指纹对比 - self::fingerprint_check($fingers); - //记录已经进行过指纹对比 - return [ - 'updlist' => $this->updlist, //需要更新的文件,跟服务端不同的文件 - 'dowlist' => $this->dowlist, //需要下载的文件,客户端不存在,而服务端存在的 - 'dllist' => $this->dllist //需要从服务器下载的文件,包含更新和下载 - ]; - } - - //删除应用文件以外的文件 - public function del_appfile($fingers = [], $dir = '') { - global $_M; - $files = scandir($this->appfile.$dir); - foreach ($files as $file) { - $dirfile = $dir.$file; - if(stristr(PHP_OS, "WIN")){ - $dirfiles = iconv("GBK","UTF-8", $dirfile); - $file = iconv("GBK","UTF-8", $file); - }else{ - $dirfiles = $dirfile; - } - if(in_array($dirfiles,$this->skipdir) || in_array($file,$this->skipfile)) continue; - if(is_dir($this->appfile.$dirfile)){ - self::del_appfile($fingers,$dirfile.'/'); - }else{ - //判断文件是否存在 - if(!array_key_exists($dirfiles,$fingers) ) delfile($dirfile); - } - } - } - - # 应用指纹校验 - private function fingerprint_check($flist = ''){ - global $_M; - foreach ($flist as $key => $val) { - //文件路径 - $dirfile = $this->appfile.$key; - if(stristr(PHP_OS, "WIN")) $dirfile = iconv("UTF-8","GBK", $dirfile); - //检查文件是否存在 - if(file_exists($dirfile)){ - //比对MD5 - if(md5_file($dirfile) != $val){ - $this->updlist[$key] = $val; - $this->dllist[$key] = $val; - } - }else{ - //需要下载的 - $this->dowlist[$key] = $val; - $this->dllist[$key] = $val; - } - } - } - -} - -// +---------------------------------------------------------------------- -// | class download 应用文件下载更新 -// +---------------------------------------------------------------------- -// | Copyright: 1.0 -// +---------------------------------------------------------------------- -// | Author site: www.metinfo.wang,www.metinfo.cc -// +---------------------------------------------------------------------- -// | Author QQ: 415420792 -// +---------------------------------------------------------------------- -class download{ - - #传送的数据 - private $modal; - #远端接口 - private $method; - # 应用主方法 - public $ac_appcore; - private $ac_session; - # 应用文件 - private $appfile; - # 应用下载缓存文件夹 - private $appupdir; - # 下载的文件存放目录,方便迁移 - private $appupfile; - # 应用下载缓存文件 - private $appdllist; - - # 下载需要的网站应用数据 - private $met_adl; - # 当前执行的状态 - private $cksign; - - # 初始化 - public function __construct($appcore) { - global $_M; - $this->appfile = PATH_APP_FILE; - $this->appupdir = APP_UPDATE_DIR; - $this->appupfile = APP_UPDATE_DIR.'/file/'; - $this->appdllist = APP_UPDATE_DIR.'/dllist.json'; - $this->ac_appcore = $appcore; - $this->ac_session = new session(); - $this->met_adl = $this->ac_appcore->met_adl(); - } - - # 下载更新入口 - public function download($data) { - global $_M; - //执行方法,进度 - list($cksign,$method,$step,$rate,$total) = explode('|', $data); - //正确时的回调值 - $this->cksign = $cksign; - $this->method = $method; - //回调传送的数据 - $this->modal = [ - 'suc' => false, - 'data' => ['cksign' => $this->cksign, 'method' => $this->method, 'step' => $step] - ]; - //若是更新则获取最新版本的版本号 - if($this->cksign == 'update') { - $this->met_adl['oldver'] = $this->met_adl['ver']; - $this->met_adl['ver'] = self::app_update_ver(); - } - switch ($method) { - case 'check': - self::app_file_check(); - break; - case 'dl': - self::app_file_dl($step); - break; - case 'core': - self::app_file_core(); - break; - case 'repair': - self::app_file_repair(); - break; - case 'dlfile': - $this->method = 'dl'; - //单个文件下载并更新,只要返回的结果 - self::app_file_dl($step); - self::app_file_repair(); - $resmsg = $this->ac_appcore->resmsg(); - if($resmsg['key'] == 4) $this->ac_appcore->msgkey(1); - break; - case 'update': - case 'install': - //全新安装 - self::app_file_install(); - break; - - default: - break; - } - } - - # 检测应用版本是否存在 - public function app_file_check() { - global $_M; - //检测文件是否存在,删除缓存的file - if(file_exists($this->appupdir)){ - deldir($this->appupdir,1); - modifydirpower($this->appupdir,0777); - }else{ - modifydirpower($this->appfile,0777); - makedir($this->appupdir); - } - - //在这里查看文件是否存在 - $dir = str_replace(PATH_WEB,'',$this->appupdir); - if(!file_exists($this->appupdir)) return $this->ac_appcore->locmsg([4005,$dir]); - - //验证文件是否可写 - if(!getdirpower($this->appupdir)) return $this->ac_appcore->locmsg([4006,$dir]); - - //检查授权 - $statekey = self::statekey(); - if(empty($statekey)) return $this->ac_appcore->locmsg(4008); - - //获取下载指纹列表 - if(in_array($this->cksign,['install','update'])){ - $check = self::curljson(['adl' => $this->met_adl]); - if($check['code']){ - $dllist = $check['dllist']; - }else{ - return $this->ac_appcore->errmsg($check['errcode'],$check['errmsg']); - } - }else{ - $dllist = $this->ac_session->get('dllist'); - $this->ac_session->del('dllist'); - } - - if(count($dllist) > 0){ - //写入指纹文件 - $phpcode = json_encode(['dllist' => array_keys($dllist),'fingers' => $dllist ],JSON_UNESCAPED_UNICODE); - if(file_put_contents($this->appdllist,$phpcode) === false){ - $file = str_replace(PATH_WEB,'',$this->appdllist); - return $this->ac_appcore->locmsg([4007,$file]); - } - //返回开始下载文件 - $this->ac_appcore->modalmsg(self::modal(0,'dl'))->msgkey()->msgtext(4009); - }else{ - $this->ac_appcore->locmsg(4022); - } - - } - - # APP文件下载 - public function app_file_dl($step) { - global $_M; - //获取缓存信息 - $filelist = self::app_get_file(); - if(count($filelist['dllist']) == $step){ - $this->ac_appcore->modalmsg(self::modal($step,$this->cksign)) - ->msgkey() - ->msgtext(in_array($this->cksign,['install','update'])?4020:4013); - }else{ - set_time_limit(60); - //数据整理 - $this->met_adl['dirfile'] = $filelist['dllist'][$step]; - $this->met_adl['filehash'] = $filelist['fingers'][$this->met_adl['dirfile']]; - $file = self::curljson(['adl' => $this->met_adl]); - //处理结果 - if($file['code']){ - $dirfile = $this->appupfile.$this->met_adl['dirfile']; - if (stristr(PHP_OS, "WIN")) $dirfile = iconv("UTF-8","GBK", $dirfile); - if (!file_exists($dirfile)) makefile($dirfile); - - //写入文件 - $defile = base64_decode($file['file']); - if(file_put_contents($dirfile, $defile) == false && strlen($defile) > 0){ - $this->ac_appcore->locmsg([4021,$this->met_adl['dirfile']]); - }else{ - //检查指纹 - if($this->met_adl['filehash'] != md5_file($dirfile)){ - $this->ac_appcore->locmsg([4016,$this->met_adl['dirfile']]); - }else{ - $step++; - $text = floor((($step)/count($filelist['dllist']))*100)."%"; - $this->ac_appcore->modalmsg(self::modal($step))->msgkey()->msgtext([4010,$text]); - } - } - } else { - $this->ac_appcore->errmsg($file['errcode'],$file['errmsg']); - } - - } - } - - # 自动更新处理 - public function app_file_core() { - global $_M; - //进行文件移动覆盖,成功则返回相关信息 - if(movedir($this->appupfile, $this->appfile)){ - @clearstatcache(); - unset($this->modal['data']); - $this->ac_appcore->modalmsg(self::modal()) - ->msgkey(1) - ->msgtext(4014); - }else{ - $this->ac_appcore->locmsg(4017); - } - - } - - # 手动文件更新 - public function app_file_repair() { - global $_M; - //进行文件复制,成功则返回相关信息 - if(copydir($this->appupfile, $this->appfile)){ - @clearstatcache(); - unset($this->modal['data']); - $this->ac_appcore->modalmsg(self::modal()) - ->msgkey(1) - ->msgtext(4015); - }else{ - $this->ac_appcore->locmsg(4017); - } - } - - # 文件全新安装 - public function app_file_install() { - global $_M; - $bool = false; - //文件移动 - if(file_exists($this->appupfile)){ - $bool = movedir($this->appupfile, $this->appfile); - @clearstatcache(); - } - if($bool){ - //对升级文件处理 - self::_require(); - //检查安装锁 - !file_exists(INS_LOCK_FILE)?$this->ac_appcore->locmsg(4025):$this->ac_appcore->msgkey(1)->msgtext(4019); - }else{ - $this->ac_appcore->locmsg(4018); - } - } - - # 读取本地文件 - public function app_get_file() { - global $_M; - return file_exists($this->appdllist)?json_decode(file_get_contents($this->appdllist),true):[]; - } - - # 读取本地文件 - public function app_update_ver() { - global $_M; - $newapp = $this->ac_session->get('newapp'); - return $newapp['v_ver']; - } - - # 获取下载权限 - private function statekey() { - global $_M; - $state = false; - //解密 - $apikey = $this->ac_session->get('check'); - $retkey = (new curls($this->ac_appcore))->apikey_decode([$apikey,$this->met_adl['met_weburl'],$this->met_adl['m_name'],$this->met_adl['addtime']]); - //校验 - if(!empty($retkey['state'])){ - $state = true; - if($retkey['vatime']['minute'] > 0){ - //对有效时间计算 - $time = date('Y-m-d H:i:s',$retkey['vatime']['stime']); - if(strtotime("{$time} +{$retkey['vatime']['minute']} minute") <= time()) $state = false; - } - } - return $state; - } - - # 模态框数据 modal - private function modal($step = '',$method) { - global $_M; - if(strlen($step) > 0) $this->modal['data']['step'] = $step; - if(strlen($method) > 0) $this->modal['data']['method'] = $method; - $modal = $this->modal; - if(count($this->modal['data']) > 0) $modal['data'] = arrayto_string($modal['data'],'|'); - return $modal; - } - - # CURL - private function curljson($post = [],$type = false,$timeout = 60,$sign = 'dl') { - global $_M; - return (new curls($this->ac_appcore))->apiurl($this->method,$sign) - ->apipost($post) - ->curls($timeout) - ->resdata($type); - } - - # 文件导入 - private function _require() { - global $_M; - $dir = $this->appupdir.'/update.class.php'; - $para = []; - if(file_exists($dir)){ - $update = load::own_class('update/update','new'); - $update->set($this->met_adl)->start(); - } - //检测文件是否存在,删除缓存的file - $this->ac_appcore->del_update_dir(); - } -} - - -?> \ No newline at end of file + goto mQxA; qucn: define("\x41\120\120\137\125\120\x44\101\124\x45\137\104\x49\x52", PATH_APP_FILE . "\165\160\144\x61\164\145"); goto P0; F: define("\x49\116\123\137\x4c\x4f\103\x4b\137\106\x49\114\x45", PATH_APP_FILE . "\143\157\156\x66\151\x67\57\x69\156\x73\164\141\x6c\154\56\x6c\x6f\x63\153"); goto rwGbC; KqBP: class dirfinger { private $HkVz; private $P = []; private $zs = []; private $xFr = []; private $b8xIT = []; public function __construct() { goto TBxg; TBxg: global $_M; goto muVxA; D: $this->P = []; goto rcpd; rcpd: $this->zs = ["\143\157\156\x66\x69\x67\57\x69\x6e\x73\164\141\x6c\154\56\154\x6f\143\153", "\x63\x6f\156\x66\x69\x67\x2f\x75\x70\x64\141\x74\x65\x2e\154\x6f\143\153", "\x63\x6f\156\x66\151\x67\x2f\165\x6e\151\x6e\x73\x74\141\154\x6c\x2e\154\x6f\143\x6b", "\143\157\x6e\146\151\x67\57\x74\141\x62\x6c\x65"]; goto bcWhT; muVxA: $this->HkVz = PATH_APP_FILE; goto D; bcWhT: @clearstatcache(); goto NLNz; NLNz: } public function fingers($I8ER = []) { goto Ab4v; MGGT: return ["\x75\160\144\154\151\163\x74" => $this->xFr, "\x64\157\x77\x6c\151\x73\164" => $this->Nh, "\x64\x6c\154\151\163\164" => $this->b8xIT]; goto FALu; Ab4v: global $_M; goto NZts; NZts: self::fingerprint_check($I8ER); goto MGGT; FALu: } public function del_appfile($I8ER = [], $FBB = '') { goto aEA; GoDp6: $CdH = scandir($this->HkVz . $FBB); goto pfyT5; pfyT5: foreach ($CdH as $ZGj79) { goto dWBh; FONr: sE: goto RyDw; Vc1sf: goto DXVj; goto Oac; GQE: delfile($Rb4); goto DrbnZ; oNsm: $ZGj79 = iconv("\107\102\113", "\x55\124\106\55\x38", $ZGj79); goto FONr; zZLN: $Nkc = $Rb4; goto q8A; kKC: Nc6Hf: goto Jv; dWBh: $Rb4 = $FBB . $ZGj79; goto SSav; SSav: if (stristr(PHP_OS, "\x57\111\x4e")) { goto RWA; } goto zZLN; fFq: $Nkc = iconv("\107\x42\113", "\x55\x54\x46\x2d\70", $Rb4); goto oNsm; RyDw: if (!(in_array($Nkc, $this->zs) || in_array($ZGj79, $this->P))) { goto Nc6Hf; } goto R92; PN5n: if (array_key_exists($Nkc, $I8ER)) { goto zCert; } goto GQE; EgdZ: self::del_appfile($I8ER, $Rb4 . "\x2f"); goto Tva; Jv: if (is_dir($this->HkVz . $Rb4)) { goto onkO; } goto PN5n; Oac: onkO: goto EgdZ; q8A: goto sE; goto QVn3; Tva: DXVj: goto SrJJ; QVn3: RWA: goto fFq; DrbnZ: zCert: goto Vc1sf; R92: goto oG; goto kKC; SrJJ: oG: goto gCb3; gCb3: } goto HU4; aEA: global $_M; goto GoDp6; HU4: as: goto PlFC; PlFC: } private function fingerprint_check($w_Y = '') { goto FnR; qen: uZ5jr: goto XNK; FnR: global $_M; goto cceWB; cceWB: foreach ($w_Y as $qBWQ1 => $h_TY) { goto Fr9; u6rd: goto gB4; goto ljdW; fb4: $this->b8xIT[$qBWQ1] = $h_TY; goto u6rd; LgA: if (!(md5_file($Rb4) != $h_TY)) { goto wH; } goto TZjV; ijAm: if (file_exists($Rb4)) { goto uGox; } goto xsW; ljdW: uGox: goto LgA; TZjV: $this->xFr[$qBWQ1] = $h_TY; goto LY08; Fr9: $Rb4 = $this->HkVz . $qBWQ1; goto K0KhC; Kb_C8: gB4: goto YOXyI; YOXyI: uUzGs: goto NmQ2; s2tn: wH: goto Kb_C8; K0KhC: if (!stristr(PHP_OS, "\127\x49\x4e")) { goto q0u5; } goto Qc6; LY08: $this->b8xIT[$qBWQ1] = $h_TY; goto s2tn; eSv: q0u5: goto ijAm; Qc6: $Rb4 = iconv("\125\x54\106\55\x38", "\x47\102\113", $Rb4); goto eSv; xsW: $this->Nh[$qBWQ1] = $h_TY; goto fb4; NmQ2: } goto qen; XNK: } } goto flO; tNw: load::sys_class("\141\144\155\151\x6e"); goto Yk2a; vZ: class session { private $Myt = M_NAME; public function __construct() { global $_M; self::start(); } public function start() { goto RCJA; L57: session_start(); goto yr; Dg9g: session_id(md5($_SERVER["\110\124\x54\120\x5f\x55\123\105\x52\x5f\x41\107\x45\116\124"] . $this->Myt . $X_8I)); goto L57; RCJA: $X_8I = self::getip(); goto Dg9g; yr: } public function set($zYkkB, $o6bN) { self::start(); $_SESSION[$zYkkB] = $o6bN; } public function get($zYkkB) { self::start(); return $_SESSION[$zYkkB]; } public function del($zYkkB) { self::start(); unset($_SESSION[$zYkkB]); } public function getip() { goto dg; G4: if (isset($_SERVER["\122\105\x4d\x4f\x54\x45\x5f\101\104\104\x52"]) && $_SERVER["\122\105\x4d\x4f\x54\105\x5f\x41\104\x44\x52"] && strcasecmp($_SERVER["\122\x45\115\x4f\x54\x45\137\x41\x44\104\122"], $FNT)) { goto FQZ; } goto pY2; VDYK: FQZ: goto URvf; eZ: $X_8I = $RmQ[0]; goto De3; dg: $FNT = "\x75\156\x6b\x6e\x6f\167\x6e"; goto ND2; ND2: if (isset($_SERVER["\x48\124\124\120\137\130\x5f\106\x4f\122\127\x41\x52\104\x45\104\x5f\x46\117\122"]) && $_SERVER["\x48\x54\x54\x50\137\130\137\106\x4f\x52\x57\x41\122\x44\x45\104\137\106\117\122"] && strcasecmp($_SERVER["\110\124\124\120\137\130\x5f\106\x4f\x52\127\101\x52\104\x45\x44\137\x46\117\122"], $FNT)) { goto t; } goto G4; pY2: goto gyWi; goto IZVdK; De3: goto gyWi; goto VDYK; LBmq: return $X_8I; goto Cn2C; URvf: $X_8I = $_SERVER["\x52\105\x4d\x4f\124\x45\137\101\104\x44\x52"]; goto ji9c; ji9c: gyWi: goto LBmq; EJsJb: $RmQ = explode("\x2c", $_SERVER["\x48\x54\124\120\137\x58\137\x46\117\122\x57\x41\x52\x44\105\104\137\106\117\x52"]); goto eZ; IZVdK: t: goto EJsJb; Cn2C: } } goto KqBP; me7k: class curls { private $Xtuw; private $Dm = []; private $jG9c = []; private $w0fGs; private $gndX; private $g3_q; private $TEN = []; public function __construct($P4) { goto aAeI; TBX: $this->Xtuw = $P4; goto yKV; Uv01: $this->TEN = ["\x4d\105\124\127\105\x42\125\122\x4c\x3a" . $_M["\x63\157\156\146\151\x67"]["\x6d\145\x74\x5f\x77\145\142\165\x72\154"], "\101\x55\124\x48\x4f\122\111\132\x41\x54\111\x4f\116\72" . $this->g3_q]; goto Lzz6; yKV: $this->Dm = ["\143\x6b" => "\x68\164\164\x70\x73\x3a\x2f\57\141\x70\x70\x2e\155\x75\142\141\x6e\x2e\x6e\x65\x74\x2e\143\156\57\141\x70\151\57\x61\160\x70\143\x68\x65\x63\153\x2e\160\150\160\x3f\x61\x3d\144\x6f", "\144\x6c" => "\150\x74\x74\160\163\x3a\x2f\x2f\141\x70\x70\56\155\x75\x62\x61\x6e\56\156\145\x74\56\143\156\57\141\160\151\57\144\157\x77\156\x6c\x6f\141\x64\56\x70\150\160\77\141\75\x64\x6f", "\167\170" => "\150\164\x74\x70\163\x3a\57\x2f\141\160\160\x2e\155\x75\x62\141\x6e\56\x6e\x65\164\x2e\143\156\x2f\x61\160\x69\57\x77\145\x63\150\x61\x74\56\160\150\160\x3f\x61\75\144\157"]; goto WJUs8; WJUs8: $this->g3_q = md5($_M["\143\157\x6e\x66\x69\x67"]["\155\x65\x74\x5f\x77\x65\x62\x75\162\154"]); goto Uv01; aAeI: global $_M; goto TBX; Lzz6: } public function apiurl($Ycn, $EwKBY = "\143\x6b") { goto J6G; J6G: global $_M; goto WH5; ywQX: return $this; goto ma6C; WH5: $this->jG9c = $this->Dm[$EwKBY] . $Ycn; goto Is; Is: $this->w0fGs = self::purl($this->jG9c, "\163\143\x68\x65\155\145"); goto ywQX; ma6C: } public function apipost($BN3, $gnMa = true) { goto kujA; cr9y: $this->gndX = $BN3; goto Puv; LR2: return $this; goto kDq7; kujA: global $_M; goto cr9y; ZokQ7: self::auth_encode(); goto jrT; jrT: VcAE: goto LR2; Puv: if (!$gnMa) { goto VcAE; } goto ZokQ7; kDq7: } public function auth_encode($qBWQ1 = null) { goto KiKAt; PB: $this->g3_q = $qBWQ1; goto YFe; KiKAt: global $_M; goto VEgY; VG2: return $this; goto AYV; VEgY: if (empty($qBWQ1)) { goto IYw; } goto PB; N1: self::arrjson(false); goto n74q; n74q: CEWw: goto or4; YFe: IYw: goto T; or4: $this->gndX = authcode($this->gndX, "\x45\x4e\103\117\104\x45", $this->g3_q); goto VG2; T: if (!is_array($this->gndX)) { goto CEWw; } goto N1; AYV: } public function curls($nuMw = 15) { goto LJEV; JYiWR: curl_setopt($Svzj, CURLOPT_HTTPHEADER, $this->TEN); goto oO4; wNcI: curl_setopt($Svzj, CURLOPT_CONNECTTIMEOUT, $nuMw); goto w7; isp: bsx: goto fRa; HSc: curl_setopt($Svzj, CURLOPT_URL, $this->jG9c); goto EcU9; TS91: FQas: goto UWaYf; lR: goto FQas; goto ZD; UWaYf: return $this; goto VJA; qUTs: curl_setopt($Svzj, CURLOPT_SSL_VERIFYPEER, false); goto rJX7; xqwa7: curl_setopt($Svzj, CURLOPT_RETURNTRANSFER, 1); goto wNcI; sq: if (get_extension_funcs("\x63\165\x72\x6c") && function_exists("\143\x75\162\154\x5f\x69\156\151\164") && function_exists("\143\165\162\154\x5f\x73\145\x74\157\160\x74") && function_exists("\143\x75\162\154\137\x65\x78\x65\x63") && function_exists("\x63\x75\x72\154\137\x63\x6c\157\163\145")) { goto sypN; } goto NF; hDap: curl_setopt($Svzj, CURLOPT_POSTFIELDS, ["\x64\145\156\x73\x65" => $this->gndX]); goto lf6; LJEV: global $_M; goto sq; NF: $this->gndX = $this->Xtuw->codemsg(4000)->coderes(false); goto lR; w7: curl_setopt($Svzj, CURLOPT_TIMEOUT, $nuMw); goto aOwbm; Q0OR: $MNDD = curl_getinfo($Svzj, CURLINFO_HTTP_CODE); goto Q1pca; aOwbm: curl_setopt($Svzj, CURLOPT_POST, 1); goto hDap; fRa: curl_setopt($Svzj, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); goto LGEr; tJs2: curl_close($Svzj); goto UhlA; ZD: sypN: goto dYWe; UhlA: $this->gndX = empty($ka) ? $kG : $this->Xtuw->codemsg(4011, "{$MNDD}\55{$ka}")->coderes(false); goto TS91; Q1pca: $ka = curl_errno($Svzj); goto tJs2; EcU9: if (!($this->w0fGs === "\150\164\164\x70\163")) { goto bsx; } goto qUTs; LGEr: curl_setopt($Svzj, CURLOPT_REFERER, $_SERVER["\110\x54\x54\x50\137\x48\117\123\124"]); goto JYiWR; oO4: curl_setopt($Svzj, CURLOPT_FAILONERROR, 1); goto xqwa7; lf6: $kG = curl_exec($Svzj); goto Q0OR; dYWe: $Svzj = curl_init(); goto HSc; rJX7: curl_setopt($Svzj, CURLOPT_SSL_VERIFYHOST, false); goto isp; VJA: } public function auth_decode($qBWQ1 = null) { goto ef; ef: global $_M; goto oy; qa3b: drx: goto aPZ; AZ5: $this->g3_q = $qBWQ1; goto qa3b; Ss: return $this; goto bvv; aPZ: $this->gndX = authcode($this->gndX, "\x44\x45\x43\x4f\104\x45", $this->g3_q); goto Ss; oy: if (empty($qBWQ1)) { goto drx; } goto AZ5; bvv: } public function arrjson($EwKBY = true) { goto eDZ; eDZ: global $_M; goto h3U5; GTW: return $this; goto d8iPY; h3U5: $this->gndX = $EwKBY ? json_decode($this->gndX, true) : json_encode($this->gndX, JSON_UNESCAPED_UNICODE); goto GTW; d8iPY: } public function resdata($EwKBY = false) { goto trKj6; trKj6: global $_M; goto RAwA; RAwA: if (!($EwKBY == false)) { goto GiJO; } goto iws7V; G3t: return $this->gndX; goto wC7; IHN: GiJO: goto G3t; iws7V: self::arrjson(); goto IHN; wC7: } public function postr($BN3 = null, $qBWQ1 = null, $EwKBY = true) { goto q3q2Y; BqMr: VlK: goto CRK; CRK: self::auth_encode($qBWQ1); goto WGB; WGB: sLU: goto Dcf; Hs: self::apipost($BN3, false); goto jR0; jR0: if ($EwKBY) { goto VlK; } goto mWa; UCTG: goto sLU; goto BqMr; mWa: self::auth_decode($qBWQ1); goto UCTG; Dcf: return $this; goto mwv; q3q2Y: global $_M; goto Hs; mwv: } public function apikey_decode($qkEK = []) { goto oV; F6O: $qbL = self::purl($qbL); goto Qx; Qx: return self::postr($uG4r, md5($qbL . md5($zC2 . $EhW4)), false)->resdata(); goto xr; oV: global $_M; goto mnn; mnn: list($uG4r, $qbL, $zC2, $EhW4) = $qkEK; goto F6O; xr: } public function purl($Eu0, $EwKBY = "\150\157\163\164") { goto ZTP; ZTP: global $_M; goto P2Qi; zL: return $EwKBY == "\x61\x72\162" ? $G03 : $G03[$EwKBY]; goto dX9Bb; P2Qi: $Eu0 = url_standard($Eu0); goto ecZB; ecZB: $G03 = parse_url($Eu0); goto zL; dX9Bb: } } goto vZ; mQxA: defined("\111\116\x5f\115\x45\x54") or exit("\x4e\x6f\x20\160\145\162\155\151\x73\x73\x69\157\156"); goto tNw; Yk2a: load::sys_func("\x66\x69\x6c\x65"); goto F; P0: class index extends admin { private $xh5W; private $b4Eca; private $QE8; private $O0CW; private $time; public function __construct() { goto DPl; c1f: $this->O0CW = $this->b4Eca->get_app_url(); goto igm; ToD3: $this->time = time(); goto skxN; DPl: global $_M; goto X4; X4: parent::__construct(); goto ToD3; skxN: $this->b4Eca = new appcore(); goto c1f; igm: } public function doindex() { goto b25W; KGHBb: goto KG; goto TCab0; TCab0: xiva: goto i; i: define("\x43\110\105\103\113\137\111\124\x45\x4d", "\163\145\162\x76\x65\162\174\x73\x79\x73\164\x65\155\x7c\x61\x63\143\x72\145\x64\x69\164\x7c\141\x70\x70\146\151\x6c\x65\x7c\167\x65\161\162\x63\157\x64\145\174\x61\x70\160\143\150\145\143\153"); goto s_r; b25W: global $_M; goto ID; cN7Za: turnover($this->O0CW, "\116\157\x20\x70\162\157\155\x70\164"); goto Ypu; ssdu: u6D: goto KTxZ; aZ6m: $this->gOIA["\141\160\160"]["\151\143\157\x6e"] = $_M["\165\162\154"]["\x61\160\160"] . M_NAME . "\57\x69\143\157\x6e\x2e\x70\156\147"; goto V0L; jsox5: YOyM: goto Na; V0L: $this->gOIA["\x61\160\x70"]["\141\160\160\156\141\155\x65"] = get_word($this->gOIA["\x61\160\x70"]["\141\x70\x70\x6e\x61\155\145"]); goto pke; ID: if (!file_exists(INS_LOCK_FILE) || $_M["\146\x6f\162\x6d"]["\143\150\x65\x63\x6b"]) { goto YOyM; } goto cN7Za; rUMq: $this->gOIA["\x63\153\151\x74\x65\x6d"] = CHECK_ITEM; goto eWR; Ypu: goto u6D; goto jsox5; pke: $this->gOIA["\141\x70\160"]["\141\x64\x64\x74\x69\x6d\145"] = date("\131\55\x6d\x2d\x64\x20\110\x3a\x69\x3a\163", $this->gOIA["\141\160\x70"]["\x61\x64\144\x74\x69\155\145"]); goto RCR; RCR: if (!file_exists(INS_LOCK_FILE) || file_exists(UPD_LOCK_FILE)) { goto xiva; } goto o3; o3: define("\103\x48\105\x43\113\x5f\x49\x54\105\115", "\163\145\x72\166\x65\162\x7c\x73\171\163\x74\x65\155\174\141\x63\x63\162\x65\144\x69\164\x7c\x61\160\x70\x66\x69\x6c\x65\x7c\167\x65\161\x72\x63\157\x64\145\x7c\x75\160\144\x61\x74\145\x7c\x61\160\x70\x63\x68\145\x63\x6b"); goto KGHBb; eWR: require $this->show("\141\x70\160\x2f\151\156\144\x65\x78", $this->gOIA); goto ssdu; s_r: KG: goto rUMq; Na: $this->gOIA["\x61\160\x70"] = $this->b4Eca->met_app(); goto aZ6m; KTxZ: } public function doappcheck() { goto epym; yNt6s: $this->xh5W = $_M["\146\x6f\162\155"]["\164\171\x70\145"]; goto xJBiH; xJBiH: if (!($this->xh5W == "\x73\x65\162\166\x65\162")) { goto niyb; } goto Hcmkx; epym: global $_M; goto ADk; up3IK: self::{$this->xh5W}(); goto p3; p3: self::result(); goto ifk; ifk: echo $this->b4Eca->resmsg(false); goto Ekv9; Hcmkx: self::del_cache(); goto rF4; rF4: niyb: goto up3IK; ADk: $this->QE8 = new session(); goto yNt6s; Ekv9: } public function download() { goto gT; vPvw: echo $this->b4Eca->resmsg(false); goto WCi; gT: global $_M; goto Ji; Ji: (new download($this->b4Eca))->download($_M["\146\157\x72\155"]["\144\141\x74\x61"]); goto vPvw; WCi: } public function domodal() { goto ktH; kfeO: ZPbn: goto vzW6; arxQ: $this->QE8 = new session(); goto MfV; MfV: switch ($_M["\x66\157\162\155"]["\164\x79\160\145"]) { case "\141\160\x70\x66\x69\154\145": $uXKQ = self::appfile_modal(); goto ZPbn; case "\167\x65\161\162\x63\x6f\144\145": $uXKQ = self::weqrcode_modal(); goto ZPbn; case "\167\145\x63\150\141\x74": $uXKQ = self::wechat_modal(); goto ZPbn; case "\165\160\x64\141\164\x65": $uXKQ = self::update_modal(); goto ZPbn; default: goto ZPbn; } goto Vlg7; ktH: global $_M; goto arxQ; Vlg7: JAsO6: goto kfeO; vzW6: echo $this->b4Eca->jsoncallback($uXKQ); goto uIyE; uIyE: } public function doajax() { goto E1x; uJu: $uk0 = strtotime("{$FzDQ}\x20\53{$uyXv0["\166\x61\x74\151\155\x65"]["\155\151\x6e\165\x74\145"]}\x20\x6d\151\x6e\x75\x74\x65"); goto oUNK; Kac: $xpB1 ? $this->b4Eca->msgkey(1)->msgmeet($fuo, true) : $this->b4Eca->locmsg(4012); goto OKf2G; UJz: if (!$xzFRo) { goto SZs; } goto J6KD; s: $FzDQ = date("\131\55\x6d\55\144\40\110\72\x69\x3a\163", $uyXv0["\166\x61\164\x69\155\x65"]["\163\164\x69\x6d\145"]); goto uJu; Zde: $J5o = stringto_array(CHECK_ITEM, "\x7c"); goto JS6T; cDk: $p["\145\x78\x65\164\151\155\145"] = $this->time; goto IVn; FHV: $BN3 = $this->b4Eca->met_all(); goto T0Dd; Sqli: if ($_M["\146\x6f\x72\155"]["\163\151\147\x6e"] == "\x61\160\160\143\150\145\x63\x6b") { goto Z9p; } goto B6R; Tdya: $fuo = "\x3c\141\x20\150\162\x65\146\x3d\x22" . $this->O0CW . "\x22\40\x63\x6c\141\x73\163\75\42\x62\164\156\x20\x62\164\x6e\x2d\x73\165\143\x63\x65\x73\x73\x22\x20\76\350\277\233\xe5\x85\245\345\xba\x94\xe7\x94\xa8\74\x2f\141\76"; goto oZ1O; J6KD: if (!($uyXv0["\166\141\164\151\x6d\x65"]["\155\151\x6e\x75\164\145"] > 0)) { goto o7o; } goto s; iX: $xpB1 = true; goto d913; v5gF: o7o: goto eSC; inf9w: if (empty($mPmN)) { goto SK0; } goto kIZo; Y: Z9p: goto L0sx; IQr: $fuo = "\xe7\x89\x88\346\x9c\xac\xe5\217\267\357\274\x9a{$iAgi[$uyXv0["\x61\x70\160"]["\166\137\x76\x65\162\164\x79\160\145"]]}\56{$uyXv0["\141\160\x70"]["\x76\x5f\166\x65\162"]}"; goto G2o; eSC: $xpB1 = $xzFRo && !empty($mPmN["\167\145\143\150\x61\164"]) && !empty($mPmN["\x75\160\144\141\164\145"]) ? true : false; goto s6Ekw; B6R: $this->QE8 = new session(); goto PEKu; s6Ekw: SZs: goto atW; SVRYQ: $this->xh5W = "\x63\150\145\143\153"; goto Cth; oUNK: if (!($uk0 <= $this->time)) { goto W2jh; } goto kyx; Q0tW: hKB6: goto Tdya; MEeJ: $uk0 = date("\x59\x2d\155\55\144\x20\110\x3a\151\72\x73", $uk0); goto h7c; n_V6: IkN0: goto LtkQ; kyx: $xzFRo = false; goto D4n4; XOa: $mPmN = (new curls($this->b4Eca))->postr($p, '', false)->resdata(); goto FHV; kIZo: $uyXv0 = (new curls($this->b4Eca))->apikey_decode([$mPmN["\x63\x68\145\143\153"], $BN3["\167\x65\142"]["\155\145\164\137\167\145\142\x75\162\154"], $BN3["\141\160\160"]["\155\x5f\156\141\155\x65"], $BN3["\141\160\x70"]["\x61\x64\x64\x74\x69\155\145"]]); goto iGWO; czLy: $this->b4Eca->mysql_config(["\x61\x63\x5f\x63\141\x63\150\145", $p], false); goto Kac; pnn3B: $mPmN = ["\164\x69\155\x65" => strtotime("{$FzDQ}\40\53\61\x20\x64\141\171"), "\143\150\x65\x63\153" => $ow->get("\143\150\145\143\x6b"), "\x77\145\143\150\141\x74" => (int) $ow->get("\167\145\143\x68\141\164"), "\x75\x70\x64\x61\x74\145" => (int) $ow->get("\x75\160\x64\x61\x74\x65")]; goto bHy6; JS6T: if (in_array(0, $jVY)) { goto IkN0; } goto iX; PEKu: self::del_cache(); goto ltzVl; ltzVl: $p = $this->b4Eca->mysql_config(array("\x61\x63\x5f\x63\141\143\150\145")); goto XOa; nLRT: goto xkYy; goto Y; Chyv: fVg: goto Gy0; iGWO: $xzFRo = $uyXv0["\163\164\x61\164\x65"] && $uyXv0["\141\x70\160"]["\x76\x5f\x6d\x5f\156\x61\x6d\145"] == M_NAME ? true : false; goto UJz; atW: SK0: goto BEQJ6; LtkQ: $ow->del("\x63\153\x69\164\x65\155"); goto JEe3; Gy0: B3vi: goto nLRT; g8P: IcA: goto inf9w; T0Dd: if (!(empty($p) || $mPmN["\x74\151\x6d\x65"] < strtotime("\53\x31\x20\150\x6f\165\x72"))) { goto HrTe; } goto SVRYQ; x: $xpB1 = false; goto Sqli; BEQJ6: if (!$xpB1) { goto B3vi; } goto wu; E1x: global $_M; goto x; h7c: $fuo .= "\x20\x20\xef\xbc\x88{$uk0}\xef\274\211"; goto Chyv; Cth: $DUsKS = self::curljson($BN3, false, 25); goto woZ3; OKf2G: echo $this->b4Eca->resmsg(false); goto ytX; Z6EeJ: if (!file_exists(UPD_LOCK_FILE)) { goto IcA; } goto hr; D4n4: W2jh: goto v5gF; RGn: $ow = new session(); goto pnn3B; bHy6: $jVY = $ow->get("\143\153\151\x74\145\155"); goto Zde; JEe3: xkYy: goto cDk; G2o: if (!($uyXv0["\x76\141\x74\151\155\145"]["\155\151\156\x75\164\x65"] > 0)) { goto fVg; } goto MEeJ; wu: $iAgi = ["\131", "\123", "\x44"]; goto IQr; z9f: goto sAWU0; goto Q0tW; oZ1O: sAWU0: goto n_V6; d913: if (file_exists(INS_LOCK_FILE)) { goto hKB6; } goto RfbL; IVn: $p = (new curls($this->b4Eca))->apipost($mPmN)->resdata(true); goto czLy; woZ3: $mPmN = $DUsKS["\x63\x6f\x64\145"] ? $DUsKS["\143\x61\143\x68\145"] : []; goto nf8; hr: $mPmN["\x75\160\144\x61\x74\145"] = 1; goto g8P; RfbL: $fuo = "\x3c\142\165\164\x74\x6f\x6e\x20\164\171\x70\145\75\x22\142\x75\x74\x74\157\156\42\x20\x63\154\141\163\163\75\42\x62\x74\x6e\x20\142\164\156\x2d\151\x6e\146\x6f\x20\141\x70\x70\151\x6e\163\x74\x61\x6c\154\42\76\xe5\xae\x89\350\243\205\345\xba\x94\347\x94\xa8\74\x2f\142\165\x74\164\157\156\x3e"; goto z9f; nf8: HrTe: goto Z6EeJ; L0sx: $FzDQ = date("\x59\55\155\55\144\x20\110\x3a\x69\72\x73", $this->time); goto RGn; ytX: } protected function server() { goto KBIr3; mFVAS: $this->QE8->set("\141\x70\x70\x6c\151\x73\x74", $CgIU["\x61\160\x70\x6c\x69\163\x74"]); goto rFew; rFew: $this->QE8->set("\x73\x79\163\164\145\155", $CgIU["\x73\x79\163\x74\145\155"]); goto Nm; KBIr3: global $_M; goto Ek; EdQ: AxDp: goto q5Cc; d8: $this->b4Eca->errmsg($CgIU["\145\162\x72\x63\x6f\x64\x65"], $CgIU["\145\162\x72\155\163\147"]); goto qLnv; K: if ($CgIU["\x63\157\x64\x65"]) { goto AxDp; } goto d8; Ek: $CgIU = self::curljson($this->b4Eca->met_web_app()); goto K; q5Cc: $this->b4Eca->sucmsg($CgIU["\164\x65\170\164"]); goto SQcy3; SQcy3: KdH: goto mFVAS; qLnv: goto KdH; goto EdQ; Nm: } protected function system() { goto ql3U; YQa: $aH69 = $this->QE8->get("\163\171\163\x74\x65\155"); goto xWmF; S3qL: $this->QE8->del("\x73\x79\x73\x74\145\x6d"); goto qr0U; pmIn: $this->b4Eca->vagmsg($nQoo && $RwB ? 1 : 0, $hN); goto S3qL; HAvh: $hN = [[$RwB, $aH69["\160\x68\x70\x76\x65\x72"]["\164\145\x78\x74"]], [$nQoo, $aH69["\x6d\145\164\166\145\x72"]["\x74\x65\x78\164"]]]; goto pmIn; ql3U: global $_M; goto YQa; xWmF: $nQoo = $aH69["\x6d\x65\164\166\145\x72"]["\x63\157\x64\145"]; goto gWyq; gWyq: $RwB = $aH69["\x70\150\x70\x76\145\x72"]["\143\157\144\x65"]; goto HAvh; qr0U: } protected function accredit() { goto LLyx; Kat3: $tHAM = self::curljson($BN3, false, 20); goto lrO5; NkL3M: $this->b4Eca->errmsg($tHAM["\145\x72\x72\143\x6f\x64\145"], $tHAM["\x65\162\x72\155\x73\147"]); goto EWlbt; FpZ4: $uG4r = (new curls($this->b4Eca))->apikey_decode([$tHAM["\x63\x6f\144\x65\x6b\145\x79"], $BN3["\x77\145\142"]["\155\145\164\137\167\145\x62\165\162\154"], $BN3["\141\160\x70"]["\155\137\156\x61\x6d\x65"], $BN3["\141\x70\x70"]["\x61\144\144\x74\x69\x6d\x65"]]); goto hA9; RjB: $BN3 = $this->b4Eca->met_web_app(); goto Kat3; G: $uG4r["\x73\x74\x61\x74\145"] ? $this->b4Eca->sucmsg($tHAM["\x74\x65\x78\x74"] . $hN) : $this->b4Eca->locmsg(4024); goto kdpsB; lrO5: if ($tHAM["\x63\x6f\144\x65"]) { goto VvDqC; } goto NkL3M; h3: r7: goto G; EWlbt: goto t3Q; goto ClV2; LLyx: global $_M; goto RjB; cO: $this->QE8->set("\x63\150\145\143\x6b", $tHAM["\143\157\x64\x65\153\x65\x79"]); goto NvcAW; hA9: if (!(!empty($uG4r["\x73\164\141\x74\x65"]) && $uG4r["\x76\x61\x74\151\x6d\145"]["\155\151\156\x75\164\145"] > 0)) { goto r7; } goto LHG; LHG: $FzDQ = date("\x59\55\x6d\x2d\x64\x20\x48\72\x69\72\x73", $uG4r["\x76\141\x74\151\155\145"]["\163\x74\x69\155\145"]); goto ybK; kdpsB: t3Q: goto cO; ClV2: VvDqC: goto FpZ4; ybK: $hN = "\344\xbd\x93\xe9\xaa\214\xe7\xbb\223\xe6\x9d\x9f\346\x97\xb6\351\227\264\xef\274\232" . date("\x59\55\x6d\x2d\x64\40\x48\72\151\x3a\x73", strtotime("{$FzDQ}\x20\53{$uG4r["\166\x61\164\151\x6d\x65"]["\155\151\156\165\164\145"]}\40\x6d\151\x6e\165\x74\x65")); goto h3; NvcAW: } protected function appfile() { goto NZNvz; fYs: $WitF = $this->QE8->get("\141\x70\160\x66\151\x6c\145"); goto TJYE; xNfGm: return $this->b4Eca->newres()->modalmsg($uXKQ, 4001); goto q1k; RXRo: $this->QE8->del("\162\145\x70\x61\x69\x72"); goto ZhiH; a6aN: $uXKQ["\163\x75\x63"] = false; goto X5; DSQWs: pa: goto i8zkG; Rum: naI: goto Dt5l; b2C: if (!(count($M48cT["\144\x6c\154\151\163\x74"]) > 0)) { goto BmHV; } goto nvkv; FBpKo: $uG = count($I8ER["\x64\x6c\x6c\x69\x73\164"]) == 0 ? 1 : 0; goto HyO; nvkv: $this->QE8->set("\144\x6c\x6c\151\163\164", $M48cT["\x64\154\154\x69\163\x74"]); goto JM3; J29KX: $this->QE8->del("\x72\x65\x70\141\151\162"); goto fYs; BGDZ: $I8ER = $xvnD->fingers($WitF["\x66\151\x6e\x67\x65\x72\x73"]); goto fyBW; BYQ: return $this->b4Eca->modalmsg($uXKQ, [4002, $hN]); goto Zs; NZNvz: global $_M; goto J29KX; q1k: BmHV: goto BGDZ; aWsJ: $M48cT = $xvnD->fingers($WitF["\x63\x6f\x72\x65\154\x69\163\164"]); goto b2C; aN9: $uXKQ = ["\163\x75\x63" => true, "\x74\x69\x74\154\145" => "\345\272\x94\xe7\x94\xa8\346\x96\207\344\273\xb6\344\xbf\256\xe5\xa4\x8d", "\x62\157\144\171" => "\74\144\x69\x76\40\x63\x6c\141\163\163\x3d\x22\164\145\170\x74\55\x78\x73\55\143\x65\156\x74\x65\x72\42\76\x3c\151\x20\143\154\141\163\163\x3d\x22\154\x6f\141\144\x65\x72\x20\166\145\162\x74\x69\x63\141\x6c\55\141\x6c\x69\147\x6e\55\x6d\151\144\144\154\145\x20\154\157\141\144\x65\x72\x2d\x65\x6c\x6c\151\x70\x73\151\163\42\76\x3c\57\151\x3e\74\x2f\144\151\166\76", "\165\162\x6c" => $_M["\x75\x72\x6c"]["\157\x77\x6e\137\x66\157\162\x6d"] . "\x61\75\x64\x6f\x6d\157\144\141\154\46\x74\171\x70\145\x3d\141\160\160\146\x69\154\145"]; goto MYl; wkD5: if ($WitF["\x63\x6f\x64\x65"]) { goto M; } goto YtE; j1Xw: $this->QE8->set("\144\154\154\x69\x73\x74", $I8ER["\x64\154\x6c\151\x73\164"]); goto xPIt; TJYE: if ($WitF) { goto naI; } goto B4Eq; fyBW: $P5T = (int) file_exists(INS_LOCK_FILE); goto FBpKo; HyO: if (!(!$P5T || $uG)) { goto pa; } goto RXRo; SF: $this->QE8->set("\x61\x70\160\146\151\x6c\145", $WitF); goto SnJ6; MYl: $hN = "\74\x61\40\x68\162\x65\x66\x3d\42\x6a\141\166\x61\163\143\x72\x69\160\164\72\73\x22\40\144\141\164\x61\x2d\164\141\x72\147\x65\x74\75\x22\43\141\160\160\155\157\144\141\x6c\42\x20\144\141\164\x61\x2d\x74\x6f\x67\147\154\145\75\x22\155\x6f\x64\x61\154\x22\x20\x64\141\x74\141\x2d\164\171\x70\145\75\42\x61\160\160\146\151\x6c\145\42\76\344\xbf\256\xe5\244\215\345\xbc\202\345\270\xb8\xe6\x96\207\344\273\266\74\57\x61\x3e"; goto BYQ; JM3: $uXKQ = $this->b4Eca->msgkey()->msgtext(4004)->resmsg(); goto a6aN; B4Eq: $WitF = self::curljson($this->b4Eca->met_web_app()); goto wkD5; Dt5l: $xvnD = new dirfinger(); goto aWsJ; YtE: return $this->b4Eca->errmsg($WitF["\145\x72\162\x63\157\144\x65"], $WitF["\x65\162\162\x6d\163\x67"]); goto py; ZhiH: $this->QE8->del("\141\x70\x70\146\151\x6c\x65"); goto Jr3f; Zs: NdS: goto Jb; X5: $uXKQ["\144\141\x74\x61"] = "\x63\157\x72\145\x7c\x63\x68\145\x63\153"; goto xNfGm; t7AZ: return $this->b4Eca->sucmsg()->msgtext(4003); goto DSQWs; i8zkG: if (!(count($I8ER["\x64\x6c\x6c\151\x73\164"]) > 0)) { goto NdS; } goto j1Xw; py: goto SJ; goto xj; SnJ6: SJ: goto Rum; xj: M: goto SF; xPIt: $this->QE8->set("\x72\x65\160\x61\x69\162", $I8ER); goto aN9; Jr3f: $this->b4Eca->del_update_dir(); goto t7AZ; Jb: } protected function weqrcode() { goto s6e; TNVhi: $hN = "\74\x61\x20\x68\162\145\146\75\x22\152\x61\166\141\x73\x63\x72\151\160\x74\x3a\x3b\42\x20\144\x61\164\141\55\164\141\162\x67\x65\x74\x3d\42\x23\x61\160\160\x6d\157\x64\141\x6c\x22\40\144\x61\164\141\x2d\164\x6f\x67\x67\x6c\145\x3d\42\155\157\x64\141\x6c\42\40\144\x61\164\141\55\x74\171\x70\x65\75\42\x77\x65\x71\162\x63\157\144\x65\42\76\xe5\x85\263\xe6\xb3\250\345\x85\xac\344\xbc\227\xe5\x8f\267\74\x2f\141\76"; goto RHJ; FTdpB: PbX6h: goto aksrg; nZ9E: goto z6; goto J4G; J4G: jKEQF: goto CtN; duZ: if ($vFgdu["\143\157\144\x65"]) { goto jKEQF; } goto N4VOW; IYDS: z6: goto QM_n; x4O: sleep(1); goto FTdpB; Wa: $uXKQ = ["\x73\x75\143" => true, "\x74\x69\164\154\x65" => "\345\205\xb3\xe6\xb3\250\xe5\276\xae\xe4\xbf\241\345\x85\xac\xe4\xbc\227\xe5\217\xb7", "\x62\x6f\x64\171" => "\x3c\x64\x69\166\x20\x63\x6c\141\x73\x73\x3d\x22\164\145\170\164\x2d\170\163\55\143\145\x6e\164\x65\x72\42\x3e\x3c\151\40\x63\x6c\141\x73\x73\75\42\154\157\141\144\x65\x72\x20\166\x65\x72\x74\x69\x63\141\x6c\55\x61\154\151\147\x6e\55\155\151\144\x64\154\x65\x20\x6c\157\x61\x64\145\x72\55\x65\x6c\154\151\x70\163\151\x73\42\x3e\74\57\151\76\x3c\57\144\151\166\76", "\x75\x72\x6c" => $_M["\165\162\154"]["\x6f\167\x6e\x5f\146\157\162\x6d"] . "\141\x3d\144\x6f\x6d\157\x64\x61\154\x26\x74\x79\x70\145\x3d\167\145\x71\x72\x63\x6f\144\145"]; goto TNVhi; Vk5ws: $iMFj = $this->QE8->get("\x77\145\143\x68\x61\164"); goto LuFHu; aksrg: $vFgdu = self::curljson($this->b4Eca->met_all()); goto duZ; iRyn: $this->b4Eca->sucmsg($vFgdu["\164\x65\170\164"]); goto RGO; QM_n: $this->QE8->set("\x77\145\143\x68\141\x74", $vFgdu["\x77\170"]["\x6b\x65\171"]); goto CU11n; RGO: Ga: goto IYDS; CtN: if ($vFgdu["\167\170"]["\153\145\x79"] == 1) { goto fC8; } goto Wa; LgND: fC8: goto iRyn; RHJ: $this->b4Eca->modalmsg($uXKQ)->sucmsg($vFgdu["\x77\x78"]["\162\x65\x74"]["\151\156\x66\157"] . $hN, $vFgdu["\x77\x78"]["\x6b\145\x79"]); goto JA4; N4VOW: $this->b4Eca->errmsg($vFgdu["\145\162\162\x63\x6f\x64\x65"], $vFgdu["\x65\x72\162\x6d\163\x67"]); goto nZ9E; s6e: global $_M; goto Vk5ws; JA4: goto Ga; goto LgND; LuFHu: if (!($iMFj !== '')) { goto PbX6h; } goto x4O; CU11n: } protected function update() { goto xxJ; SCniN: $fUY = 1; goto D9V; D9V: $this->b4Eca->errmsg($qJGHr["\145\x72\162\143\x6f\x64\x65"], $qJGHr["\x65\x72\x72\155\x73\147"]); goto cfU; t3qZ8: $this->QE8->del("\144\x6c\x6c\x69\163\x74"); goto hnZX; Jtcqg: $TXP = count($qJGHr["\156\145\167\141\x70\160"]["\166\x5f\x70\150\160\x76\x65\x72"]) == 1 ? "\346\x9c\200\xe4\275\x8e" : ''; goto j8bj; m4tq: return $this->b4Eca->sucmsg($qJGHr["\x74\x65\x78\x74"]); goto Qcup; O: $nQoo = arrayto_string($qJGHr["\156\145\167\x61\x70\x70"]["\x76\137\155\x65\x74\x76\145\162"], "\x20\55\x2d\x20"); goto Jtcqg; dkC: $hN = "\74\x64\151\166\40\x63\x6c\x61\163\x73\x3d\x27\x70\x2d\x6c\55\x31\60\x27\x3e\12\x20\x20\x20\x20\40\x20\x20\40\40\40\40\x20\40\x20\40\40\x20\40\40\x20\x20\x20\x20\40\40\40\x20\x20\x3c\150\x35\x3e" . $qJGHr["\156\x65\x77\141\160\160"]["\166\x5f\x76\145\x72"] . "\40\347\211\x88\346\x9c\254\347\216\xaf\xe5\242\203\xe8\246\x81\346\xb1\202\357\274\232\74\x2f\x68\x35\76\xa\40\40\x20\x20\40\x20\x20\x20\x20\40\40\40\40\x20\x20\40\40\40\40\x20\40\x20\x20\40\x20\x20\x20\40\74\x6f\154\x3e\x3c\x6c\151\76\xe5\xba\x94\347\x94\250" . $TXP . "\346\x94\xaf\xe6\x8c\201\x50\110\120\40" . $RwB . "\x20\347\x89\x88\xe6\x9c\254\x3b\x3c\57\x6c\x69\x3e\x3c\154\x69\x3e\xe5\xba\224\347\x94\xa8" . $FvbU . "\346\224\257\xe6\x8c\x81\x4d\145\164\111\156\x66\x6f\40" . $nQoo . "\40\347\211\x88\346\x9c\xac\73\x3c\57\154\x69\x3e\74\57\x6f\x6c\x3e\xa\x20\40\40\x20\40\x20\40\x20\40\40\x20\40\x20\40\40\x20\x20\40\40\x20\x20\x20\x20\x20\40\40\40\x20\74\x68\65\x3e" . $qJGHr["\156\x65\x77\141\160\160"]["\166\137\166\x65\x72"] . "\40\347\211\210\xe6\234\254\xe7\x8e\257\345\242\x83\xe6\xa3\x80\xe6\265\x8b\347\xbb\x93\346\236\234\357\xbc\232\x3c\x2f\150\65\76\xa\40\x20\x20\x20\40\40\x20\40\x20\40\40\x20\40\x20\40\40\x20\40\40\x20\x20\40\x20\x20\x20\x20\x20\x20\74\157\x6c\76" . $qJGHr["\x73\171\163\x74\x65\x6d"]["\164\145\x78\164"] . "\74\x2f\157\x6c\76\12\40\40\40\x20\x20\40\x20\40\x20\40\40\40\40\40\40\x20\x20\x20\x20\x20\40\40\40\40\x3c\57\144\151\x76\x3e"; goto L; bb: $fUY = $qJGHr["\156\145\x77\141\160\x70"]["\x76\137\x75\160\x64\x61\164\x65"] == 1 ? 0 : 2; goto ht0Y; aY: $this->QE8->set("\x75\x70\144\x61\164\145", 1); goto IXEeB; E6H: $this->QE8->set("\156\x65\167\x61\160\x70", $qJGHr["\x6e\x65\x77\141\x70\x70"]); goto VkS; IXEeB: return $this->b4Eca->sucmsg("\xe5\267\xb2\xe6\230\257\xe6\x9c\x80\346\226\xb0\347\x89\x88\343\x80\x82"); goto qcBO9; ht0Y: $this->b4Eca->modalmsg($uXKQ)->sucmsg($qJGHr["\x74\145\x78\164"] . $hN, $fUY); goto W8eu; E8XD: if (!(file_exists(UPD_LOCK_FILE) || empty($jI3K["\x76\137\143\x6b\x75\x70\144\x61\164\145"]))) { goto GBf; } goto aY; VkS: $uXKQ = ["\x73\165\143" => true, "\x74\x69\x74\154\x65" => $qJGHr["\156\145\167\x61\160\160"]["\166\x5f\x76\145\162"] . "\40\xe6\x9b\xb4\346\226\xb0\xe5\206\x85\xe5\xae\271", "\x62\x6f\144\171" => "\74\x64\151\x76\40\143\x6c\x61\163\x73\x3d\x22\x74\x65\170\164\x2d\x78\x73\55\x63\x65\156\x74\145\x72\x22\x3e\x3c\151\40\143\154\141\163\163\75\42\x6c\157\141\144\145\162\x20\166\145\162\x74\151\143\141\154\55\141\154\151\147\x6e\55\155\x69\144\x64\154\145\x20\154\x6f\141\x64\x65\x72\55\145\x6c\x6c\x69\160\163\151\x73\42\76\x3c\x2f\151\76\74\x2f\x64\x69\x76\76", "\165\x72\x6c" => $_M["\165\x72\x6c"]["\157\167\x6e\x5f\146\157\162\155"] . "\141\75\144\157\x6d\157\144\x61\x6c\46\164\171\160\x65\75\165\x70\144\141\164\x65"]; goto TcM; xxJ: global $_M; goto t3qZ8; k2y: $this->QE8->set("\165\160\144\141\164\145", $fUY); goto qwza6; W8eu: PQ: goto k2y; yRU9: $qJGHr = self::curljson($this->b4Eca->met_web_app()); goto UkVU; kgcT: if (!($qJGHr["\143\x6f\144\145"] == 8002)) { goto sO9AE; } goto Ig3ok; hnZX: $this->QE8->del("\156\x65\x77\x61\x70\x70"); goto ojih; lYtog: X8Q: goto kgcT; uGIt: $RwB = arrayto_string($qJGHr["\x6e\145\x77\x61\x70\160"]["\x76\x5f\160\x68\160\x76\145\x72"], "\x20\x2d\55\40"); goto O; qcBO9: GBf: goto yRU9; cfU: if (!empty($qJGHr["\x73\x79\x73\x74\145\155"])) { goto P84; } goto uGIt; U3oO: P84: goto gjzUN; L: $this->b4Eca->msgmeet($hN); goto U3oO; j8bj: $FvbU = count($qJGHr["\x6e\x65\167\141\x70\160"]["\x76\137\x6d\145\164\x76\145\x72"]) == 1 ? "\346\x9c\x80\344\xbd\x8e" : ''; goto dkC; Ig3ok: $this->QE8->set("\x75\160\144\x61\164\x65", 1); goto m4tq; ojih: $jI3K = $this->QE8->get("\x61\160\160\154\x69\x73\x74"); goto E8XD; gjzUN: goto PQ; goto lYtog; TcM: $hN = "\x3c\141\40\150\162\145\146\75\42\152\141\x76\x61\x73\x63\162\151\160\164\72\x3b\42\40\x64\x61\x74\x61\55\x74\141\x72\x67\x65\164\75\42\x23\x61\160\160\155\x6f\144\x61\154\42\x20\144\x61\x74\x61\x2d\x74\x6f\x67\x67\x6c\x65\x3d\42\155\157\144\x61\x6c\x22\40\144\141\x74\x61\55\x74\x79\x70\x65\x3d\42\x75\160\x64\x61\164\145\42\x3e\xe5\x9c\250\xe7\xba\xbf\346\x9b\xb4\xe6\226\xb0\74\57\141\76"; goto bb; Qcup: sO9AE: goto E6H; UkVU: if ($qJGHr["\143\157\x64\145"]) { goto X8Q; } goto SCniN; qwza6: } protected function appfile_modal() { goto CLaB; PVH: return "\x3c\144\x69\x76\x20\x63\x6c\x61\x73\x73\75\42\x74\x65\170\164\55\x78\x73\x2d\x63\x65\x6e\x74\x65\x72\42\76\347\x94\xa8\xe6\226\x87\xe4\273\xb6\xe4\xb8\215\345\255\x98\345\234\250\345\xbc\x82\xe5\xb8\270\xe3\200\202\x3c\x2f\144\151\166\76"; goto KA; lIbw: FBi: goto NOf; CLaB: global $_M; goto H; JZX: $Ugrrm = ["\142\157\144\x79" => $hU2["\x74\145\170\164"]]; goto ejSU; QteN: $HgtMB = $JXC->app_get_file(); goto j6; KA: cSDr: goto qRUX; bVaK: foreach ($HgtMB["\144\154\x6c\x69\x73\x74"] as $qBWQ1 => $h_TY) { goto hw1m; atYep: if (!$I8ER["\165\x70\x64\x6c\151\x73\164"][$h_TY]) { goto Fa; } goto bM9k; fdqOM: $hN = "\346\226\x87\344\273\xb6\xe4\270\x8d\xe5\xad\x98\xe5\x9c\xa8"; goto aK0v; bM9k: $hN = "\xe6\226\x87\xe4\273\266\350\xa2\253\344\277\256\xe6\224\271"; goto unW; aK0v: wbS: goto uuW; hw1m: $hN = ''; goto atYep; SE5: U6sp: goto f5ck; uuW: $Ugrrm .= "\40\x20\x20\40\40\40\40\40\x20\x20\x20\x20\40\40\x20\40\40\x20\x20\40\x3c\x70\76\12\x20\40\40\40\x20\40\40\40\40\40\x20\x20\40\x20\x20\40\40\40\x20\40\40\x20\40\40\74\x73\160\x61\x6e\x20\x63\154\x61\x73\x73\75\42\155\55\x72\x2d\x35\60\x22\x3e{$hN}\74\x2f\163\160\x61\x6e\x3e\12\x20\40\40\x20\x20\x20\40\40\40\40\x20\40\40\40\40\40\x20\40\x20\x20\x20\40\40\40\x3c\x73\x70\141\156\x20\143\154\141\x73\x73\x3d\42\146\x69\x6c\x65\x5f\x6e\141\x6d\145\x22\76{$h_TY}\x3c\57\x73\160\x61\156\76\40\12\40\40\40\40\40\x20\x20\x20\40\x20\x20\x20\40\x20\40\40\x20\40\x20\40\40\40\40\40\x3c\x73\160\x61\x6e\40\143\154\141\x73\x73\75\x22\x70\165\154\154\x2d\x78\x73\55\x72\x69\147\150\x74\40\x6d\55\x72\55\61\x35\40\144\x6f\167\156\x6c\x6f\x61\144\137\146\x69\154\x65\42\x20\144\141\164\x61\x2d\x64\x6f\167\x6e\154\x6f\141\x64\x3d\42\162\x65\x70\x61\151\x72\174\x64\154\146\x69\x6c\145\x7c{$qBWQ1}\42\x3e\74\141\x20\x68\162\145\x66\x3d\x22\x6a\141\x76\141\x73\x63\162\151\160\164\x3a\x3b\42\x3e\347\202\xb9\345\207\xbb\xe4\xb8\213\xe8\275\275\x3c\57\x61\x3e\74\x2f\163\x70\x61\x6e\76\12\x20\x20\x20\x20\40\x20\x20\x20\x20\40\x20\x20\x20\40\x20\40\x20\x20\40\40\x3c\57\160\x3e"; goto SE5; JvsD: if (!$I8ER["\144\157\167\154\x69\163\x74"][$h_TY]) { goto wbS; } goto fdqOM; unW: Fa: goto JvsD; f5ck: } goto lIbw; l3RX: return $Ugrrm; goto zeeB; tHHxr: sJaJ: goto Tp; ejSU: goto aOUcC; goto tHHxr; j6: if (!(count($HgtMB["\144\154\x6c\151\163\x74"]) == 0)) { goto cSDr; } goto PVH; bxI: aOUcC: goto l3RX; NOf: $Ugrrm = ["\x62\157\x64\x79" => "\74\x64\x69\x76\40\x63\x6c\141\x73\x73\x3d\47\150\55\x32\x35\60\x20\157\166\x2d\142\157\144\x79\x27\x3e{$Ugrrm}\x3c\57\x64\151\166\76", "\x66\157\x6f\164" => "\74\x62\x75\164\x74\x6f\156\40\x74\x79\x70\x65\x3d\x22\x62\165\x74\164\157\156\x22\x20\143\154\141\163\163\75\42\x62\164\156\x20\142\164\156\55\151\x6e\x66\157\40\x61\x70\160\162\145\160\x61\x69\162\42\76\xe4\xbf\256\xe5\244\x8d\345\x85\250\351\x83\250\346\226\x87\xe4\xbb\266\x3c\x2f\142\165\x74\x74\157\156\76"]; goto bxI; d9: $JXC->download("\x66\x69\x6c\x65\x6c\x69\163\164\174\x63\150\x65\143\x6b"); goto QteN; Tp: $I8ER = $this->QE8->get("\x72\x65\160\141\151\x72"); goto bVaK; H: $JXC = new download($this->b4Eca); goto d9; qRUX: $hU2 = $this->b4Eca->resmsg(); goto tAx; tAx: if ($hU2 > 0) { goto sJaJ; } goto JZX; zeeB: } protected function weqrcode_modal() { goto ZeD3; XdTfG: jEi: goto bNt; bNt: return $H8cK; goto wf; akT: goto jEi; goto fYe; HnLbh: $vFgdu = self::curljson($this->b4Eca->met_all(), false, 25, "\x77\170"); goto gdKUT; gdKUT: if ($vFgdu["\x63\157\144\145"]) { goto I1N; } goto e5v; fYe: I1N: goto KZPG; e5v: $H8cK = ["\142\x6f\144\x79" => "\74\x70\40\x73\164\x79\154\145\x3d\x27\x74\145\170\x74\55\151\156\x64\145\156\164\x3a\40\x32\145\x6d\x3b\47\76\xef\xbc\210{$vFgdu["\x65\162\162\143\x6f\x64\145"]}\357\274\211{$vFgdu["\145\162\x72\x6d\163\147"]}\74\x70\76"]; goto akT; Gnw: $this->xh5W = "\161\x72\x63\x6f\x64\145"; goto HnLbh; ZeD3: global $_M; goto Gnw; KZPG: $H8cK = ["\x62\157\144\171" => "\74\144\151\166\40\x63\154\141\163\163\x3d\42\x68\x2d\x32\x35\60\x20\164\x65\x78\164\x2d\x78\163\55\x63\145\156\164\x65\x72\42\x3e\x3c\x69\155\147\x20\x73\x74\x79\154\x65\75\42\150\x65\151\x67\x68\x74\72\x31\60\x30\x25\x3b\x22\40\x73\162\x63\x3d\42\144\x61\x74\x61\x3a\x69\x6d\141\x67\145\x2f\152\x70\x67\73\x62\x61\163\x65\x36\64\x2c" . $vFgdu["\x71\x72\143\x6f\144\x65"]["\151\155\x67"] . "\42\x3e\x3c\x2f\x64\x69\x76\x3e", "\x66\157\157\x74" => $vFgdu["\161\x72\143\x6f\144\x65"]["\x74\x65\x78\164"]["\x69\x6e\146\157"], "\143\x61\x6c\x6c\x62\x61\143\x6b" => "\167\145\x63\x68\141\164\137\161\x72\x63\x6f\144\145"]; goto XdTfG; wf: } protected function wechat_modal() { goto LOF; Oe: if ($vFgdu["\143\x6f\144\x65"]) { goto oAG; } goto fuZ; bWgwH: YzdA: goto ogzm; xuw: oAG: goto cLuG; sPR: $uk0 = $_M["\146\157\x72\155"]["\145\x6e\144\164\x69\155\145"]; goto eaw; t9l2: sleep(1); goto OIYLF; qV0: if ($_M["\146\x6f\162\155"]["\145\x6e\144\x74\x69\155\x65"] < $this->time) { goto qxFwc; } goto sPR; mB: if (empty($_M["\146\x6f\162\155"]["\145\156\144\164\151\x6d\145"])) { goto YzdA; } goto qV0; LpA: $vFgdu = self::curljson($this->b4Eca->met_all(), false, 20, "\167\170"); goto Oe; OIYLF: $this->xh5W = "\x63\x68\145\143\x6b"; goto LpA; eaw: goto vLC; goto kWvo6; cLuG: $this->b4Eca->sucmsg($vFgdu["\167\x78"]["\x72\145\x74"]["\x69\156\146\157"], $vFgdu["\x77\170"]["\x6b\x65\171"]); goto w9; EJKF: $uk0 = strtotime("{$FzDQ}\x20\53\62\40\155\151\156\x75\164\x65"); goto iVJS; LOF: global $_M; goto plfnQ; iVJS: vVMo: goto Dc6; kR5t: $hU2["\145\x6e\144\x74\x69\x6d\145"] = $uk0; goto dy0L; plfnQ: $vWPy = random(6); goto t9l2; jOov: $hN = "\x3c\141\40\x63\x6c\141\163\163\75\x22\x77\x65\x71\x72\143\x6f\144\x65\x22\40\x68\162\145\146\75\42\152\x61\x76\141\163\143\162\151\160\x74\72\x3b\x22\40\144\141\x74\141\x2d\164\x79\160\145\75\42\167\145\x71\x72\x63\157\x64\145\42\x3e\345\x88\267\346\226\260\xe4\xba\214\347\xbb\264\xe7\xa0\201\x3c\57\141\76"; goto vwn2; kWvo6: qxFwc: goto jOov; OTbc: return $hU2; goto UF28; a9V: goto vVMo; goto bWgwH; ogzm: $FzDQ = date("\131\x2d\x6d\55\144\40\110\x3a\x69\72\x73", $this->time); goto EJKF; vwn2: $this->b4Eca->locmsg([4023, $hN]); goto osI; dy0L: $hU2["\163\151\x67\156"] = $vWPy; goto OTbc; w9: Kuc: goto mB; Dc6: $hU2 = $this->b4Eca->resmsg(); goto kR5t; fuZ: $this->b4Eca->errmsg($vFgdu["\x65\162\x72\143\x6f\x64\x65"], $vFgdu["\145\x72\x72\x6d\x73\147"]); goto h1pfY; osI: vLC: goto a9V; h1pfY: goto Kuc; goto xuw; UF28: } protected function update_modal() { goto qGe; PHED: $hhfz = $this->QE8->get("\156\x65\167\x61\x70\x70"); goto I0djE; qGe: global $_M; goto PHED; I0djE: return ["\142\157\x64\x79" => strlen($hhfz["\166\137\x64\141\151\154\x79"]) > 0 ? "\74\x64\x69\x76\x20\143\154\141\163\x73\x3d\47\150\x2d\62\65\x30\40\x6f\166\55\x62\x6f\x64\x79\47\76{$hhfz["\166\137\x64\x61\151\x6c\x79"]}\74\x2f\144\x69\x76\76" : "\x3c\x70\x20\163\164\x79\154\145\75\x22\x74\x65\170\164\x2d\151\x6e\x64\145\156\164\x3a\x20\x32\145\x6d\x3b\42\x3e\346\262\241\xe6\x9c\211\346\x9b\264\346\x96\xb0\350\257\xb4\xe6\x98\x8e\xe3\200\202\74\160\x3e", "\146\157\157\x74" => "\x3c\142\165\164\164\157\156\40\164\x79\x70\x65\75\42\x62\165\x74\164\157\156\x22\40\x63\x6c\x61\x73\163\x3d\42\142\164\156\40\142\x74\156\55\x69\156\146\x6f\x20\x61\160\160\165\160\x64\141\x74\x65\x22\76\xe6\233\264\xe6\226\xb0\xe8\x87\263\x20" . $hhfz["\166\137\x76\x65\x72"] . "\74\57\142\x75\x74\x74\157\x6e\x3e"]; goto w854; w854: } private function del_cache() { goto vqC1; aH: $this->QE8->del("\x75\x70\144\x61\164\145"); goto svRK; Vg: $this->QE8->del("\141\x70\x70\x66\151\x6c\x65"); goto b9TF; b9TF: $this->QE8->del("\x72\x65\x70\x61\151\x72"); goto ob5A; ob5A: $this->QE8->del("\144\154\154\x69\163\x74"); goto Tlj; Tlj: $this->QE8->del("\167\x65\143\x68\141\x74"); goto aH; svRK: $this->QE8->del("\143\153\x69\x74\145\155"); goto Y5X; tKI: $this->QE8->del("\x73\171\163\x74\145\155"); goto iZ; vqC1: global $_M; goto rD; rD: $this->QE8->del("\x61\160\160\154\x69\163\x74"); goto tKI; iZ: $this->QE8->del("\x63\150\145\143\153"); goto Vg; Y5X: } private function result() { goto kYt; gZat: bt59: goto BEHN; Tw: if (!($this->xh5W != "\x61\x70\160\143\x68\145\143\x6b")) { goto bt59; } goto rG0; fLEQ: $MNDD = false; goto hfaT3; LAl: $this->QE8->set("\x63\x6b\151\164\145\x6d", $J5o); goto gZat; hfaT3: $J5o = $this->QE8->get("\x63\x6b\151\164\x65\155"); goto Tw; rG0: $qBWQ1 = $this->b4Eca->resmsg(); goto puYb5; kYt: global $_M; goto fLEQ; puYb5: $J5o[$this->xh5W] = $qBWQ1["\x6b\x65\x79"]; goto LAl; BEHN: } private function curljson($BN3 = [], $EwKBY = false, $nuMw = 15, $vWPy = "\143\x6b") { global $_M; return (new curls($this->b4Eca))->apiurl($this->xh5W, $vWPy)->apipost($BN3)->curls($nuMw)->resdata($EwKBY); } protected function show($ZGj79, $kG) { goto Kl0v; BvW: require_once $D7td->dodisplay($ZGj79, $kG); goto rqxs; Fv5E: $D7td = load::sys_class("\145\x6e\147\x69\x6e\x65", "\x6e\x65\x77"); goto BvW; Kl0v: global $_M; goto Fv5E; rqxs: } } goto bkYv; bkYv: class appcore { private $m_name; private $b8la = []; private $t4Lm = []; private $BKq = []; private $FhT = []; private $ad1 = []; public function __construct() { global $_M; $this->m_name = M_NAME; } public function get_app_url() { goto fcPHr; Ew: goto c4Va; goto wU; wU: hn: goto jvBU; GIB: $XoMoM = $xIB6["\x75\x72\154"]; goto Ew; tcW4: c4Va: goto gS0; S5HKy: $xIB6 = file_exists(INS_LOCK_FILE) ? json_decode(file_get_contents(INS_LOCK_FILE), true) : []; goto PY07i; p7T: $XoMoM = $_M["\165\x72\x6c"]["\157\x77\x6e\137\156\141\x6d\145"] . http_build_query($xIB6); goto tcW4; gS0: return $XoMoM; goto PQZ; jvBU: unset($xIB6["\165\162\154"], $xIB6["\164\151\x6d\x65"]); goto p7T; PY07i: if (empty($xIB6["\x75\162\x6c"])) { goto hn; } goto GIB; fcPHr: global $_M; goto S5HKy; PQZ: } public function met_web_app() { global $_M; return ["\167\x65\x62" => self::met_web(), "\141\160\x70" => self::met_app()]; } public function met_all() { goto pCbq; pCbq: global $_M; goto l0j; l0j: $LiJM = self::met_web_app(); goto e3Pnw; e3Pnw: $LiJM["\141\x6f\x70"] = self::met_aop(); goto Et0N; Et0N: return $LiJM; goto nPKCv; nPKCv: } public function met_web() { goto Gu7; QnH: $this->b8la["\160\150\x70\x76\x65\162"] = PHP_VERSION; goto xbcYv; dlQg: foreach ($zYkkB as $h_TY) { goto Xmln; Ocwl: $LiJM = DB::get_one("\x53\x45\x4c\x45\x43\x54\40\166\x61\154\x75\145\x20\106\x52\x4f\x4d\40{$_M["\164\x61\x62\154\x65"]["\x63\157\x6e\146\151\147"]}\40\x57\110\x45\x52\105\x20\156\141\155\x65\40\x3d\x20\x27{$h_TY}\x27\x20\x41\116\104\x20\x6c\x61\x6e\x67\x20\x3d\x20\47{$rNim}\47\40"); goto RH5w; fso_s: VOW: goto oEO; RH5w: $this->b8la[$h_TY] = $LiJM["\x76\141\154\x75\x65"]; goto fso_s; Xmln: $rNim = $h_TY == "\x6d\x65\x74\143\x6d\x73\137\166" ? "\x6d\145\x74\x69\x6e\x66\x6f" : $_M["\x6c\x61\x6e\x67"]; goto Ocwl; oEO: } goto cfd; qar: $this->b8la["\x77\145\142\x76\145\162"] = str_replace("\120\110\120\x2f{$this->b8la["\160\x68\x70\166\145\x72"]}", '', $_SERVER["\123\x45\122\126\105\122\137\123\117\x46\124\127\101\x52\x45"]); goto ZNLs; n_2CV: $zYkkB = ["\155\145\x74\x5f\167\x65\x62\165\162\154", "\155\x65\x74\137\x77\145\142\156\x61\155\x65", "\x6d\x65\x74\143\x6d\163\x5f\x76", "\x6d\145\164\137\x6b\145\x79\x77\x6f\x72\144\x73", "\155\145\x74\137\144\x65\x73\143\x72\x69\x70\x74\x69\x6f\156", "\x6d\x65\164\137\163\153\151\156\x5f\x75\x73\145\x72"]; goto dlQg; wcKq: $this->b8la["\x77\x65\142\151\x70"] = $_SERVER["\123\105\122\126\x45\x52\137\x41\104\x44\122"]; goto IJ; cfd: trg: goto wcKq; Gu7: global $_M; goto n_2CV; xbcYv: $this->b8la["\163\161\x6c\x76\145\x72"] = DB::version(); goto qar; I6kD: return $this->b8la; goto f9qkP; ZNLs: $this->b8la["\x6c\141\156\x67"] = $_M["\x6c\x61\156\147"]; goto I6kD; IJ: $this->b8la["\x73\x79\x73\166\x65\162"] = php_uname("\x73") . "\x20" . php_uname("\162"); goto QnH; f9qkP: } public function met_app() { goto udIgm; udIgm: global $_M; goto Mc; JVe: return $this->t4Lm; goto AYid; Mc: if (empty($this->m_name)) { goto pXGx; } goto guB; ysMZ: $this->t4Lm["\143\154\x69\x65\x6e\164\x5f\x69\160"] = self::get_client_ip(); goto JVe; guB: $this->t4Lm = DB::get_one("\123\x45\x4c\x45\x43\124\x20\x6e\x6f\x2c\166\x65\162\x2c\x61\x64\144\164\x69\155\x65\x2c\x6d\137\156\x61\155\145\x2c\x61\x70\160\x6e\141\155\x65\x20\x46\x52\x4f\x4d\40{$_M["\164\x61\142\x6c\x65"]["\x61\160\x70\154\x69\x73\x74"]}\x20\127\110\105\122\x45\x20\155\x5f\x6e\x61\x6d\145\75\47{$this->m_name}\x27\40"); goto eJB_; eJB_: pXGx: goto ysMZ; AYid: } public function met_adl() { goto JBj; W9Fx: $LiJM = DB::get_one("\x53\105\114\105\103\124\x20\166\141\x6c\x75\145\x20\x46\x52\117\x4d\40{$_M["\164\x61\x62\154\145"]["\x63\157\x6e\146\x69\147"]}\x20\127\x48\x45\x52\x45\x20\156\x61\x6d\145\x20\x3d\x20\x27\x6d\x65\x74\137\167\145\142\x75\x72\154\47\40\101\x4e\104\40\154\141\x6e\147\x20\x3d\40\x27{$_M["\x6c\x61\156\147"]}\x27\x20"); goto IyTN; zZ: ZJIn: goto W9Fx; sd9: return $this->SSH; goto jsq; tK: $this->SSH = DB::get_one("\123\105\x4c\x45\x43\124\x20\156\x6f\x2c\166\x65\x72\54\141\144\x64\164\151\x6d\x65\x2c\x6d\137\156\x61\155\145\40\x46\x52\x4f\x4d\x20{$_M["\164\141\142\x6c\145"]["\141\x70\x70\x6c\x69\x73\x74"]}\x20\x57\110\105\122\x45\x20\x6d\137\156\x61\155\145\x3d\x27{$this->m_name}\47\x20"); goto zZ; IyTN: $this->SSH["\x6d\x65\164\137\x77\145\x62\x75\x72\x6c"] = $LiJM["\166\141\x6c\x75\145"]; goto sd9; s5URp: if (empty($this->m_name)) { goto ZJIn; } goto tK; JBj: global $_M; goto s5URp; jsq: } public function met_aop() { goto MKy; YuD: return $this->BKq; goto v8N; MKy: global $_M; goto BoS; aPOYt: $this->BKq = ["\x61\144\155\151\156\137\151\x64" => $hlyjL["\141\x64\155\151\156\137\x69\x64"], "\x61\x64\x6d\151\x6e\137\157\x70" => $hlyjL["\x61\144\x6d\151\156\137\x6f\x70"], "\141\x64\x6d\x69\156\x5f\151\160" => $hlyjL["\141\x64\x6d\x69\x6e\137\x6d\157\144\x69\146\x79\x5f\x69\x70"], "\x61\x64\155\x69\x6e\137\x74\x69\x6d\145" => $hlyjL["\x61\x64\155\x69\156\x5f\155\x6f\x64\151\x66\x79\x5f\144\141\164\x65"]]; goto YuD; BoS: $hlyjL = admin_information(); goto aPOYt; v8N: } public function newres() { goto SmpJ; Uct: $this->ad1 = []; goto dueN; dueN: return $this; goto xFHm; SmpJ: global $_M; goto Uct; xFHm: } public function resmsg($EwKBY = true, $EnHN = false) { goto a8QM; l: return $hU2; goto iCMd2; JBH: $hU2 = $EwKBY ? $this->ad1 : self::jsoncallback($this->ad1); goto dKh; a8QM: global $_M; goto U4Qe; dzs: self::locmsg(4012); goto G_nR; dKh: if (!$EnHN) { goto XAqrr; } goto rBR; rBR: unset($this->ad1); goto tzO; G_nR: sa: goto VRD; U4Qe: if (!(strlen($this->ad1["\x6b\x65\x79"]) == 0)) { goto sa; } goto dzs; VRD: $this->ad1["\x65\x71\x6b\145\171"] = $_M["\x66\x6f\162\155"]["\145\x71\153\x65\x79"]; goto JBH; tzO: XAqrr: goto l; iCMd2: } public function sucmsg($dDj, $MNDD = 1) { goto Un4r; lCW: return $this; goto QXa; HImJ: $this->ad1["\x74\145\x78\164"] = self::fontcolor($MNDD, $dDj); goto lCW; I9RKi: $this->ad1["\153\x65\171"] = $MNDD; goto HImJ; Un4r: global $_M; goto I9RKi; QXa: } public function vagmsg($MNDD, $dDj = []) { goto D8z; DGGA: XIK: goto hPm; hPm: $this->ad1["\153\x65\171"] = $MNDD; goto J0im; Glr: $hN = ''; goto GSk; J0im: $this->ad1["\164\x65\170\x74"] = $hN; goto oknQ; oknQ: return $this; goto QsiC; D8z: global $_M; goto Glr; GSk: foreach ($dDj as $h_TY) { goto JR_; JR_: list($ChLHH, $SQR) = $h_TY; goto LRr; LRr: $hN .= self::fontcolor($ChLHH, $ChLHH ? $SQR["\151\156\x66\x6f"] : "\xef\274\210{$SQR["\143\x6f\x64\x69\156\x67"]}\xef\xbc\211{$SQR["\151\156\146\x6f"]}"); goto As3; As3: j3mJX: goto mv0; mv0: } goto DGGA; QsiC: } public function errmsg($UK3L, $dDj, $MNDD = 0) { goto z; F4hV: $this->ad1["\x6b\145\x79"] = $MNDD; goto Ke0x; Ke0x: $this->ad1["\164\145\170\164"] = self::fontcolor(0, "\xef\xbc\x88{$UK3L}\357\xbc\x89{$dDj}"); goto Mpgy; Mpgy: return $this; goto VEsc; z: global $_M; goto F4hV; VEsc: } public function locmsg($dDj = [], $MNDD = 0) { goto K7l; l3A3: return $this; goto dGB; OYw: n3xW: goto W1KC; q0I: if (empty($dDj)) { goto n3xW; } goto jtM; f_W: $this->ad1["\x74\145\x78\x74"] = self::fontcolor($MNDD, "\357\xbc\x88{$this->FhT["\145\162\x72\143\157\144\x65"]}\357\xbc\x89{$this->FhT["\x65\x72\162\155\163\147"]}"); goto l3A3; jtM: self::codemsg($dDj); goto OYw; W1KC: $this->ad1["\153\145\x79"] = $MNDD; goto f_W; K7l: global $_M; goto q0I; dGB: } public function modalmsg($uXKQ = [], $uTba0 = [], $MNDD = 0) { goto o4; Qa7aH: return $this; goto bpWb; rsN: $this->ad1["\x6d\157\144\141\154"] = $uXKQ; goto Qa7aH; tZB: self::locmsg($uTba0, $MNDD); goto rsN; o4: global $_M; goto tZB; bpWb: } public function msgkey($qBWQ1 = 4) { goto wo; wo: global $_M; goto o7cA; wBb: return $this; goto xZ_; o7cA: $this->ad1["\153\145\171"] = $qBWQ1; goto wBb; xZ_: } public function msgtext($uTba0 = []) { goto SM7lm; wm6: $this->ad1["\x74\145\x78\164"] = self::fontcolor($this->ad1["\x6b\x65\x79"], $this->FhT["\145\x72\162\x6d\x73\x67"]); goto sl4; SM7lm: global $_M; goto HbbA; sl4: return $this; goto rB0; HbbA: self::codemsg($uTba0); goto wm6; rB0: } public function msgmeet($hN, $EwKBY = false) { goto Epge; BcG: $this->ad1["\x74\145\x78\164"] = $EwKBY ? $hN : $this->ad1["\164\x65\170\x74"] . $hN; goto ENa; ENa: return $this; goto mbad5; Epge: global $_M; goto BcG; mbad5: } private function fontcolor($MNDD, $hN) { goto zyro; ZA84: $Ygb = ["\x23\105\71\x35\x39\65\x42", "\43\63\x36\x41\x42\67\x41", "\43\x45\x43\x39\71\64\60", "\43\x37\x36\x38\x33\70\x66", "\x23\62\x61\63\63\x33\x63"]; goto xS3; xS3: return "\74\x66\157\x6e\x74\x20\x73\x74\171\154\145\75\42\143\157\154\157\162\x3a" . $Ygb[$MNDD] . "\73\42\76" . $hN . "\74\x2f\146\157\156\x74\x3e"; goto M9Fb; zyro: global $_M; goto ZA84; M9Fb: } public function coderes($EwKBY = true) { global $_M; return $EwKBY ? $this->FhT["\x65\x72\x72\x6d\x73\147"] : json_encode($this->FhT, JSON_UNESCAPED_UNICODE); } public function codemsg($UK3L, $hN = '') { goto tOO; CyH: return $this; goto lAw; jJ: $dDj = ["\64\60\60\x30" => "\345\275\223\345\x89\215\347\x8e\xaf\xe5\242\203\xe7\xbc\272\345\260\221\103\125\122\114\346\x94\257\346\x8c\x81\xef\xbc\x81", "\64\x30\60\61" => "\346\240\xb8\xe5\277\203\xe6\226\207\344\xbb\xb6\xe5\255\230\345\234\250\xe5\xbc\202\345\xb8\xb8\54\xe5\x87\x86\xe5\244\207\350\x87\xaa\xe5\212\250\344\xbf\xae\345\244\215\346\240\xb8\xe5\xbf\x83\xe6\226\x87\xe4\xbb\xb6\x2e\x2e\56", "\x34\60\x30\62" => "\xe5\xba\224\xe7\x94\xa8\346\226\x87\344\xbb\266\xe5\xad\230\xe5\234\250\345\xbc\x82\xe5\270\xb8\350\xaf\267\xe7\x82\271\345\207\xbb\40{$hN}\40\357\274\x81", "\x34\60\x30\63" => "\345\272\x94\xe7\224\xa8\xe6\226\207\xe4\273\xb6\xe6\xad\xa3\345\270\270\357\274\201", "\x34\x30\60\64" => "\346\x96\x87\xe4\273\xb6\346\x9d\x83\xe9\231\x90\xe6\xa3\200\xe6\265\x8b\344\270\xad\x2e\56\56", "\x34\60\60\65" => "\40{$hN}\x20\xe4\xb8\x8d\345\255\230\345\x9c\xa8\357\274\214\350\xaf\xb7\xe6\x89\x8b\xe5\x8a\250\345\210\233\xe5\273\272\357\xbc\201", "\x34\60\x30\66" => "\x20{$hN}\40\346\x9d\203\xe9\231\x90\xe4\270\215\xe8\xb6\263\xef\274\x8c\xe8\xaf\267\344\xbf\xae\xe6\224\xb9\344\270\xba\133\67\67\67\x2f\67\x37\65\135\345\242\x9e\345\x8a\xa0\345\206\x99\345\205\245\346\x9d\x83\351\231\220\357\274\201", "\64\60\x30\x37" => "\x20{$hN}\40\346\x95\xb0\346\215\xae\xe5\206\x99\345\205\245\351\224\231\xe8\257\xaf\357\274\214\350\xaf\267\350\x87\xaa\xe8\xa1\x8c\346\243\x80\xe6\265\213\xe6\235\203\xe9\231\x90\357\xbc\201", "\64\60\x30\70" => "\xe4\270\x8b\350\xbd\xbd\346\235\203\351\x99\x90\xe4\270\215\xe8\xb6\263\xef\274\210\xe8\257\xb7\xe6\243\x80\xe6\x9f\xa5\343\200\x90\xe7\xbd\x91\xe7\253\x99\xe7\xbd\x91\345\235\200\xe3\x80\x91\xe6\x98\xaf\345\x90\246\344\270\xba\xe8\264\255\344\271\xb0\345\xba\x94\347\x94\250\xe7\x9a\x84\345\237\x9f\xe5\x90\215\xef\274\x89\357\274\x81", "\64\x30\x30\71" => "\345\xba\224\347\224\xa8\xe6\x96\207\xe4\xbb\xb6\344\xb8\213\350\275\275\xe4\xb8\255\56\56\56", "\x34\60\61\x30" => "\xe5\xba\x94\347\x94\xa8\346\x96\207\xe4\xbb\266\344\xb8\x8b\350\275\xbd\xe4\xb8\xad\56\x2e\56{$hN}\x20\40\50\xe6\255\243\345\x9c\xa8\xe8\xbf\x9b\350\xa1\214\xe4\270\213\xe8\275\xbd\xef\xbc\x8c\xe8\257\xb7\xe4\270\x8d\xe8\246\201\xe6\x93\215\xe4\xbd\x9c\xe9\xa1\265\xe9\235\xa2\xef\274\201\51", "\64\x30\x31\61" => "\xe6\234\215\xe5\x8a\241\347\xab\257\345\274\202\xe5\270\xb8\x5b{$hN}\x5d\xef\xbc\214\351\200\232\344\277\241\xe5\244\xb1\350\264\xa5\357\274\201", "\x34\x30\x31\x32" => "\347\xb3\273\xe7\xbb\237\345\xbc\202\345\xb8\270\xef\xbc\201", "\64\60\61\x33" => "\xe5\272\x94\347\x94\xa8\346\226\207\344\273\266\xef\xbc\x8c\345\xbc\x80\xe5\xa7\213\344\xbf\xae\xe5\xa4\215\56\56\x2e", "\64\60\61\x34" => "\133\346\240\xb8\345\277\x83\xe6\226\207\344\xbb\xb6\xe8\207\xaa\345\x8a\250\344\xbf\256\345\244\x8d\135\40\344\277\256\345\xa4\x8d\xe5\xae\x8c\xe6\210\x90\343\200\202", "\64\60\x31\x35" => "\345\272\x94\xe7\x94\xa8\346\226\207\344\273\266\xe4\xbf\xae\xe5\244\x8d\345\256\x8c\346\x88\220\343\x80\202", "\64\60\61\x36" => "\x5b{$hN}\135\40\344\xb8\x8b\350\275\xbd\xe5\244\261\xe8\xb4\xa5\xef\xbc\x81", "\x34\x30\61\x37" => "\344\xbf\xae\345\xa4\x8d\345\244\xb1\350\xb4\245\357\274\201", "\x34\60\61\x38" => "\xe5\256\x89\350\xa3\x85\345\244\xb1\xe8\264\xa5\xef\274\x81", "\x34\x30\x31\x39" => "\345\256\x89\xe8\xa3\205\xe6\x88\x90\345\212\237\xef\274\201", "\x34\x30\x32\60" => "\xe5\272\224\xe7\224\250\xe6\226\207\344\xbb\xb6\357\xbc\x8c\345\xbc\x80\xe5\247\213\345\xae\x89\xe8\243\x85\x2e\56\x2e", "\64\60\x32\61" => "\x5b{$hN}\x5d\x20\345\206\x99\xe5\x85\245\xe5\244\xb1\350\xb4\xa5\357\xbc\x81", "\x34\60\x32\x32" => "\xe6\x9c\xaa\346\xa3\x80\xe6\xb5\x8b\345\210\xb0\346\x96\x87\344\273\266\357\xbc\x81", "\64\60\62\x33" => "\345\xbe\256\344\277\241\xe5\205\xac\xe4\xbc\227\345\x8f\267\344\272\214\347\xbb\264\347\240\x81\346\x89\xab\xe6\217\217\xe8\xb6\x85\346\227\266\xef\xbc\201{$hN}", "\64\x30\62\64" => "\345\237\237\xe5\220\x8d\xe6\x9c\xaa\xe8\x8e\xb7\xe5\xbe\x97\346\x8e\x88\xe6\235\203\357\274\x81", "\x34\60\62\x35" => "\xe5\xae\x89\xe8\243\205\xe9\224\x81\xe6\235\x83\351\231\x90\344\270\215\350\xb6\263\xef\274\x81"]; goto pJs; tOO: global $_M; goto TzGe; NM9l: FyI5k: goto jJ; pxHA: list($UK3L, $hN) = $UK3L; goto NM9l; TzGe: if (!is_array($UK3L)) { goto FyI5k; } goto pxHA; pJs: $this->FhT = ["\x65\162\162\x63\x6f\x64\x65" => $UK3L, "\145\x72\x72\x6d\163\147" => $dDj[$UK3L]]; goto CyH; lAw: } public function mysql_config($lR_ = [], $r_zW = true) { goto p0VuJ; hDDV: $hkyY = DB::get_one("\163\x65\154\145\143\x74\40\166\x61\154\x75\x65\x20\146\162\x6f\155\x20{$c7oQ}\x20\167\x68\145\x72\x65\40\156\x61\155\145\40\75\x20\47{$qBWQ1}\x27\40\x41\116\x44\x20\155\x5f\x6e\x61\x6d\x65\40\75\x20\47{$this->m_name}\47\x20\x41\116\104\40\154\x61\x6e\x67\x20\75\x20\x27{$rNim}\47\x20"); goto M07O; DYrJi: crX: goto KUl; Byv: $c7oQ = $_M["\x74\x61\142\x6c\x65"]["\143\154\157\165\144\137\143\x6f\156\x66\151\x67"]; goto fxfGE; QvGv: if ($r_zW) { goto sQ1Z2; } goto Ll1Y; cpEDZ: sQ1Z2: goto hDDV; Ll1Y: DB::query("\x49\x4e\123\x45\x52\x54\40\x49\x4e\x54\117\40{$c7oQ}\x20\50\x6e\141\155\145\x2c\x6c\x61\x6e\147\x2c\x6d\137\x6e\141\x6d\x65\x2c\x76\x61\154\165\x65\51\40\x56\x41\114\125\105\x53\40\50\x27{$qBWQ1}\x27\x2c\47{$rNim}\47\x2c\x27{$this->m_name}\47\54\x27{$h_TY}\47\x29\40\x4f\116\40\x44\x55\120\x4c\111\x43\x41\x54\105\x20\113\x45\131\x20\125\120\x44\101\124\x45\40\x76\141\x6c\165\x65\x3d\x27{$h_TY}\47\x20"); goto LP; KUl: return $h_TY; goto qeb9; fxfGE: $rNim = "\143\154\157\165\144"; goto QvGv; p0VuJ: global $_M; goto d4F5; d4F5: list($qBWQ1, $h_TY) = $lR_; goto Byv; M07O: $h_TY = $hkyY["\x76\x61\x6c\165\x65"]; goto DYrJi; LP: goto crX; goto cpEDZ; qeb9: } public function get_client_ip() { goto QWDx; m1G9: KuX: goto TzS1; LUHc: $kx = "\165\156\x6b\156\x6f\x77\x6e"; goto Ykxj; TzS1: return $kx; goto b84R; QWDx: $vg = ["\x48\124\x54\120\137\103\x44\116\137\123\122\x43\x5f\x49\120", "\x48\124\124\x50\137\120\x52\x4f\130\131\137\x43\114\111\105\x4e\124\137\x49\120", "\x48\124\x54\x50\137\127\x4c\x5f\120\122\x4f\x58\x59\137\x43\x4c\x49\105\116\x54\x5f\x49\x50", "\x48\x54\124\x50\137\x43\x4c\x49\105\116\x54\137\111\120", "\x48\124\x54\x50\137\130\x5f\106\117\122\x57\101\x52\x44\105\x44\137\106\x4f\x52", "\122\105\115\x4f\124\105\x5f\101\x44\104\122"]; goto LUHc; Ykxj: foreach ($vg as $qBWQ1) { goto on9EM; xl46b: O2xr: goto eJ; vU3X: $kx = $_SERVER[$qBWQ1]; goto bDrf; eJ: dMnr: goto asPd; on9EM: if (!(!empty($_SERVER[$qBWQ1]) && strtolower($_SERVER[$qBWQ1]) != "\165\156\x6b\x6e\x6f\167\156" && filter_var($_SERVER[$qBWQ1], FILTER_VALIDATE_IP))) { goto O2xr; } goto vU3X; bDrf: goto KuX; goto xl46b; asPd: } goto m1G9; b84R: } public function jsoncallback($vo8v, $zos = "\143\x61\154\154\142\141\x63\153") { goto IV; IV: global $_M; goto kZ; kZ: header("\x43\157\x6e\x74\145\156\164\x2d\x74\x79\x70\x65\x3a\x20\141\160\160\x6c\x69\x63\141\164\x69\x6f\156\57\x78\55\152\141\166\x61\x73\143\x72\151\160\x74"); goto hc7; lfFk: echo $zos ? $zos . "\50" . $dNLL . "\51" : $dNLL; goto MvXn; hc7: $zos = $_M["\146\x6f\162\x6d"][$zos]; goto CsGo; CsGo: $dNLL = json_encode($vo8v, JSON_UNESCAPED_UNICODE); goto lfFk; MvXn: } public function del_update_dir() { goto RuKnu; VHtZ: znf: goto BY; rC: deldir(APP_UPDATE_DIR); goto VHtZ; RuKnu: global $_M; goto gDOjc; fPNL: if (!(is_dir(APP_UPDATE_DIR) && file_exists(APP_UPDATE_DIR))) { goto znf; } goto rC; gDOjc: @clearstatcache(); goto fPNL; BY: } } goto me7k; rwGbC: define("\x55\x50\104\x5f\114\x4f\x43\x4b\x5f\106\111\x4c\105", PATH_APP_FILE . "\143\157\156\x66\x69\147\x2f\x75\x70\144\141\164\x65\x2e\154\x6f\x63\x6b"); goto qucn; flO: class download { private $gz2; private $xh5W; public $b4Eca; private $QE8; private $HkVz; private $JX; private $xiuZi; private $JBZK; private $IeBY; private $mB7C; public function __construct($P4) { goto pip; pip: global $_M; goto UB; juR: $this->b4Eca = $P4; goto mDto; KRt2: $this->IeBY = $this->b4Eca->met_adl(); goto QruO; UB: $this->HkVz = PATH_APP_FILE; goto Zdw; jb: $this->xiuZi = APP_UPDATE_DIR . "\57\146\x69\154\145\x2f"; goto MKQwo; MKQwo: $this->JBZK = APP_UPDATE_DIR . "\57\x64\x6c\x6c\x69\163\164\x2e\x6a\x73\x6f\156"; goto juR; mDto: $this->QE8 = new session(); goto KRt2; Zdw: $this->JX = APP_UPDATE_DIR; goto jb; QruO: } public function download($kG) { goto sf40; TTrT3: mv3: goto nB6; nB6: switch ($Ycn) { case "\x63\150\x65\143\x6b": self::app_file_check(); goto l3KG8; case "\x64\154": self::app_file_dl($vtoPQ); goto l3KG8; case "\x63\157\162\x65": self::app_file_core(); goto l3KG8; case "\x72\x65\160\141\151\162": self::app_file_repair(); goto l3KG8; case "\144\x6c\x66\151\154\x65": goto buFe; t7Q: self::app_file_dl($vtoPQ); goto atr; D2: goto l3KG8; goto Fr4c; atr: self::app_file_repair(); goto Z2v; buFe: $this->xh5W = "\144\x6c"; goto t7Q; Z2v: $hU2 = $this->b4Eca->resmsg(); goto peK; peK: if (!($hU2["\x6b\145\171"] == 4)) { goto L9f; } goto A6m4B; bGAyA: L9f: goto D2; A6m4B: $this->b4Eca->msgkey(1); goto bGAyA; Fr4c: case "\165\x70\x64\141\164\x65": case "\x69\x6e\x73\164\141\154\x6c": self::app_file_install(); goto l3KG8; default: goto l3KG8; } goto nM6RD; fa: if (!($this->mB7C == "\165\160\x64\x61\164\145")) { goto mv3; } goto lm; LwSR: $this->gz2 = ["\x73\165\143" => false, "\x64\141\164\141" => ["\x63\153\x73\x69\x67\x6e" => $this->mB7C, "\155\145\x74\x68\x6f\x64" => $this->xh5W, "\163\164\145\x70" => $vtoPQ]]; goto fa; GYg: l3KG8: goto ohPT; V6Zo: list($ZHnbs, $Ycn, $vtoPQ, $SIM, $VBpk) = explode("\x7c", $kG); goto GJL7; sf40: global $_M; goto V6Zo; YQc: $this->xh5W = $Ycn; goto LwSR; nM6RD: ED: goto GYg; GJL7: $this->mB7C = $ZHnbs; goto YQc; bt5P: $this->IeBY["\166\x65\162"] = self::app_update_ver(); goto TTrT3; lm: $this->IeBY["\x6f\154\x64\166\x65\x72"] = $this->IeBY["\x76\x65\162"]; goto bt5P; ohPT: } public function app_file_check() { goto gaH; TAVw: y9eM: goto WxeP; wFbw: if ($uyXv0["\x63\157\x64\x65"]) { goto vYG; } goto uoURt; ACJ1: if (file_exists($this->JX)) { goto Fwc; } goto lXEy; PUhF: $HgtMB = $this->QE8->get("\x64\x6c\x6c\151\x73\x74"); goto i; WxeP: if (getdirpower($this->JX)) { goto pNQ; } goto Id; hTxBt: $FBB = str_replace(PATH_WEB, '', $this->JX); goto ZxD; jX: goto bOx; goto cuKbH; qpg71: vYG: goto JDAO; cuKbH: P3yN: goto EAt2; EAt2: $LAiI = json_encode(["\144\154\x6c\x69\163\164" => array_keys($HgtMB), "\x66\x69\156\x67\x65\x72\x73" => $HgtMB], JSON_UNESCAPED_UNICODE); goto ciYx; iTDZ: modifydirpower($this->JX, 0777); goto mCsw; mCsw: RyHH: goto hTxBt; uoURt: return $this->b4Eca->errmsg($uyXv0["\x65\x72\x72\x63\x6f\x64\145"], $uyXv0["\145\x72\162\155\x73\x67"]); goto lur; lXEy: modifydirpower($this->HkVz, 0777); goto MJo; WQd: $this->b4Eca->locmsg(4022); goto jX; Id: return $this->b4Eca->locmsg([4006, $FBB]); goto unb0; unb0: pNQ: goto Wy2W; LIkm: goto RyHH; goto cra; Lbm: if (count($HgtMB) > 0) { goto P3yN; } goto WQd; lur: goto waGkV; goto qpg71; ciYx: if (!(file_put_contents($this->JBZK, $LAiI) === false)) { goto CPN; } goto dqlZ; qpGR: goto vt; goto vVjn; MJo: makedir($this->JX); goto LIkm; dqlZ: $ZGj79 = str_replace(PATH_WEB, '', $this->JBZK); goto koP; V838W: vt: goto Lbm; EsJ9C: $uyXv0 = self::curljson(["\141\144\154" => $this->IeBY]); goto wFbw; i: $this->QE8->del("\144\x6c\x6c\151\163\x74"); goto qpGR; FfUL: return $this->b4Eca->locmsg([4005, $FBB]); goto TAVw; JDAO: $HgtMB = $uyXv0["\144\154\x6c\151\163\164"]; goto zKCU; KAAF: return $this->b4Eca->locmsg(4008); goto onj; Wy2W: $n0_d = self::statekey(); goto d6; kN_: $this->b4Eca->modalmsg(self::modal(0, "\x64\154"))->msgkey()->msgtext(4009); goto fBb; koP: return $this->b4Eca->locmsg([4007, $ZGj79]); goto v6Gb4; QOv: if (in_array($this->mB7C, ["\151\x6e\x73\x74\141\x6c\154", "\x75\160\x64\141\x74\145"])) { goto gtw9; } goto PUhF; v6Gb4: CPN: goto kN_; d6: if (!empty($n0_d)) { goto GcW; } goto KAAF; tASJu: deldir($this->JX, 1); goto iTDZ; cra: Fwc: goto tASJu; ZxD: if (file_exists($this->JX)) { goto y9eM; } goto FfUL; gaH: global $_M; goto ACJ1; vVjn: gtw9: goto EsJ9C; onj: GcW: goto QOv; zKCU: waGkV: goto V838W; fBb: bOx: goto iG5; iG5: } public function app_file_dl($vtoPQ) { goto y7bJ; mky: vpsG: goto Jb; r2lj: goto vpsG; goto rt; Jb: kQHp: goto re; DNnX: $Rb4 = $this->xiuZi . $this->IeBY["\x64\x69\x72\x66\x69\x6c\x65"]; goto ftXy; TSvF6: set_time_limit(60); goto Eop; yzs: if (file_put_contents($Rb4, $lWPt) == false && strlen($lWPt) > 0) { goto tXX; } goto x4Ew; bsDo: if (file_exists($Rb4)) { goto L2DQ; } goto It7Cx; iby: $this->b4Eca->locmsg([4016, $this->IeBY["\x64\x69\x72\146\151\154\x65"]]); goto uEWF; n7E: $this->IeBY["\146\x69\x6c\145\x68\x61\163\150"] = $Bnx["\x66\x69\x6e\147\145\x72\x73"][$this->IeBY["\144\x69\162\x66\x69\154\x65"]]; goto to; bAl: $this->b4Eca->modalmsg(self::modal($vtoPQ))->msgkey()->msgtext([4010, $hN]); goto gU; n264: L2DQ: goto mjWh; kJlj: Wd_3: goto iby; YkyG: mCY: goto DNnX; R178g: if (count($Bnx["\x64\154\x6c\x69\x73\164"]) == $vtoPQ) { goto ONsz; } goto TSvF6; gU: goto JVf4; goto kJlj; O211: if ($ZGj79["\x63\x6f\x64\145"]) { goto mCY; } goto nOqod; nOqod: $this->b4Eca->errmsg($ZGj79["\x65\162\x72\x63\157\144\x65"], $ZGj79["\145\x72\162\155\x73\147"]); goto HOvOX; HOvOX: goto kQHp; goto YkyG; F3: $this->b4Eca->locmsg([4021, $this->IeBY["\144\151\162\146\x69\x6c\145"]]); goto mky; cAx: $Rb4 = iconv("\125\x54\106\55\x38", "\107\102\x4b", $Rb4); goto f3; re: goto C9q; goto aw6R; ftXy: if (!stristr(PHP_OS, "\127\111\x4e")) { goto pSNo; } goto cAx; uEWF: JVf4: goto r2lj; to: $ZGj79 = self::curljson(["\141\144\154" => $this->IeBY]); goto O211; tVS5: C9q: goto hAP; mjWh: $lWPt = base64_decode($ZGj79["\146\151\154\145"]); goto yzs; f3: pSNo: goto bsDo; It7Cx: makefile($Rb4); goto n264; Eop: $this->IeBY["\x64\151\162\x66\151\x6c\145"] = $Bnx["\144\154\154\x69\163\164"][$vtoPQ]; goto n7E; Dqu: $this->b4Eca->modalmsg(self::modal($vtoPQ, $this->mB7C))->msgkey()->msgtext(in_array($this->mB7C, ["\151\156\x73\x74\x61\x6c\154", "\165\x70\x64\x61\164\145"]) ? 4020 : 4013); goto tVS5; y7bJ: global $_M; goto Y_; k: $hN = floor($vtoPQ / count($Bnx["\144\154\154\151\163\164"]) * 100) . "\x25"; goto bAl; shG: $vtoPQ++; goto k; aw6R: ONsz: goto Dqu; Y_: $Bnx = self::app_get_file(); goto R178g; x4Ew: if ($this->IeBY["\x66\x69\x6c\x65\x68\x61\x73\x68"] != md5_file($Rb4)) { goto Wd_3; } goto shG; rt: tXX: goto F3; hAP: } public function app_file_core() { goto UJfc; UJfc: global $_M; goto lRw; B0u: @clearstatcache(); goto kn; vYw: $this->b4Eca->locmsg(4017); goto fUv; kn: unset($this->gz2["\144\141\x74\141"]); goto gX; xGBHJ: jnX3: goto nJa4; ctzQ: fGq: goto B0u; fUv: goto jnX3; goto ctzQ; lRw: if (movedir($this->xiuZi, $this->HkVz)) { goto fGq; } goto vYw; gX: $this->b4Eca->modalmsg(self::modal())->msgkey(1)->msgtext(4014); goto xGBHJ; nJa4: } public function app_file_repair() { goto AZLIi; s1NE: if (copydir($this->xiuZi, $this->HkVz)) { goto kx; } goto DYt; DYt: $this->b4Eca->locmsg(4017); goto hOH; AZLIi: global $_M; goto s1NE; IbG: kx: goto iurI; A: re: goto acv; iurI: @clearstatcache(); goto XD; XD: unset($this->gz2["\144\141\164\x61"]); goto wC3j; wC3j: $this->b4Eca->modalmsg(self::modal())->msgkey(1)->msgtext(4015); goto A; hOH: goto re; goto IbG; acv: } public function app_file_install() { goto bbrut; kL: goto LS7CB; goto m6_; jxNRa: if ($xpB1) { goto f1QwU; } goto q; m6_: f1QwU: goto JrXP; Fv4B: KlR4: goto jxNRa; nDp: @clearstatcache(); goto Fv4B; rFKmk: if (!file_exists($this->xiuZi)) { goto KlR4; } goto MQ4a; bbrut: global $_M; goto g2a6D; g2a6D: $xpB1 = false; goto rFKmk; tT: !file_exists(INS_LOCK_FILE) ? $this->b4Eca->locmsg(4025) : $this->b4Eca->msgkey(1)->msgtext(4019); goto F1I7; q: $this->b4Eca->locmsg(4018); goto kL; JrXP: self::_require(); goto tT; F1I7: LS7CB: goto EIa1; MQ4a: $xpB1 = movedir($this->xiuZi, $this->HkVz); goto nDp; EIa1: } public function app_get_file() { global $_M; return file_exists($this->JBZK) ? json_decode(file_get_contents($this->JBZK), true) : []; } public function app_update_ver() { goto wh; O7E: return $hhfz["\x76\137\x76\x65\162"]; goto qC78; fOuFG: $hhfz = $this->QE8->get("\x6e\x65\x77\141\160\160"); goto O7E; wh: global $_M; goto fOuFG; qC78: } private function statekey() { goto W4Q; W4Q: global $_M; goto WZRN; faFH: $xzFRo = true; goto IsDs; SrD: if (!(strtotime("{$FzDQ}\40\53{$Hc["\x76\x61\x74\x69\155\145"]["\155\x69\x6e\x75\164\x65"]}\x20\x6d\x69\x6e\x75\164\x65") <= time())) { goto RBCr; } goto nxcB; IsDs: if (!($Hc["\x76\141\x74\151\x6d\x65"]["\155\x69\156\165\164\145"] > 0)) { goto HS; } goto CHGeQ; nxcB: $xzFRo = false; goto ic5; CHGeQ: $FzDQ = date("\x59\55\155\55\x64\x20\110\72\x69\72\163", $Hc["\x76\141\x74\151\155\x65"]["\x73\164\x69\x6d\145"]); goto SrD; ic5: RBCr: goto aCH; iaHX: $Hc = (new curls($this->b4Eca))->apikey_decode([$uG4r, $this->IeBY["\155\145\x74\x5f\x77\145\x62\165\162\154"], $this->IeBY["\155\x5f\156\x61\x6d\x65"], $this->IeBY["\141\x64\x64\x74\x69\x6d\x65"]]); goto E; E: if (empty($Hc["\x73\x74\141\164\x65"])) { goto JcDWb; } goto faFH; Kw8Z: $uG4r = $this->QE8->get("\143\x68\x65\143\x6b"); goto iaHX; ZoRG: JcDWb: goto y0a; WZRN: $xzFRo = false; goto Kw8Z; y0a: return $xzFRo; goto Fkp5g; aCH: HS: goto ZoRG; Fkp5g: } private function modal($vtoPQ = '', $Ycn) { goto mvxdT; V5Ao: nNXFV: goto csu; subq: if (!(count($this->gz2["\x64\x61\x74\x61"]) > 0)) { goto nNXFV; } goto ygX_; ygX_: $uXKQ["\x64\x61\164\x61"] = arrayto_string($uXKQ["\144\x61\x74\x61"], "\174"); goto V5Ao; Ik: $this->gz2["\144\141\x74\141"]["\x6d\145\x74\x68\157\x64"] = $Ycn; goto Icoa; drUz: if (!(strlen($vtoPQ) > 0)) { goto Zak; } goto reY; ZyDO: $uXKQ = $this->gz2; goto subq; LsR3N: Zak: goto md; md: if (!(strlen($Ycn) > 0)) { goto JgAR; } goto Ik; Icoa: JgAR: goto ZyDO; mvxdT: global $_M; goto drUz; csu: return $uXKQ; goto omX; reY: $this->gz2["\x64\141\164\141"]["\x73\164\x65\160"] = $vtoPQ; goto LsR3N; omX: } private function curljson($BN3 = [], $EwKBY = false, $nuMw = 60, $vWPy = "\144\154") { global $_M; return (new curls($this->b4Eca))->apiurl($this->xh5W, $vWPy)->apipost($BN3)->curls($nuMw)->resdata($EwKBY); } private function _require() { goto ZCkU2; ZCkU2: global $_M; goto r64Q; xRG8: $this->b4Eca->del_update_dir(); goto q5v; NHVV: kZcB: goto xRG8; Mw10: if (!file_exists($FBB)) { goto kZcB; } goto CnpH; xq7: $qJGHr->set($this->IeBY)->start(); goto NHVV; CnpH: $qJGHr = load::own_class("\165\160\x64\141\164\x65\57\x75\x70\x64\x61\164\145", "\x6e\145\x77"); goto xq7; r64Q: $FBB = $this->JX . "\57\165\x70\144\x61\164\x65\x2e\143\154\141\163\163\x2e\x70\x68\x70"; goto c7EV0; c7EV0: $mKQ7h = []; goto Mw10; q5v: } } diff --git a/admin/info_off.class.php b/admin/info_off.class.php index 56c8769..9b9226d 100644 --- a/admin/info_off.class.php +++ b/admin/info_off.class.php @@ -38,16 +38,10 @@ class info_off extends appadmin { self::village(); case 'elevator': $e_bno = stringto_array($this->form['e_bno'],'#@met@#'); - $e_uno = stringto_array($this->form['e_uno'],'#@met@#'); - $e_eno = stringto_array($this->form['e_eno'],'#@met@#'); $e_aps = stringto_array($this->form['e_aps'],'#@met@#'); foreach ($e_bno as $bno) { - foreach ($e_uno as $uno) { - foreach ($e_eno as $eno) { - foreach ($e_aps as $aps) { - self::elevator($bno,$uno,$eno,$aps); - } - } + foreach ($e_aps as $aps) { + self::elevator($bno,$aps); } } break; @@ -58,7 +52,7 @@ class info_off extends appadmin { } } - //小区 + //场所 private function village() { global $_M,$_YW; @@ -159,16 +153,14 @@ class info_off extends appadmin { } //广告位 - private function elevator($e_bno,$e_uno,$e_eno,$e_aps) { + private function elevator($e_bno,$e_aps) { global $_M,$_YW; $e_number = $this->form['e_number']; - if(!$this->form['id']) parent::e_number($e_number,$e_bno.$e_uno.$e_eno.$e_aps); + if(!$this->form['id']) parent::e_number($e_number,$e_bno.$e_aps); $field = [ 'e_number' => $e_number, 'e_vid' => $this->form['e_vid'], 'e_bno' => $e_bno, - 'e_uno' => $e_uno, - 'e_eno' => $e_eno, 'e_aps' => $e_aps, 'e_size' => $this->form['e_size'], 'e_enable' => $this->form['e_enable'], diff --git a/admin/info_on.class.php b/admin/info_on.class.php index ea91918..0fe677e 100644 --- a/admin/info_on.class.php +++ b/admin/info_on.class.php @@ -25,11 +25,11 @@ class info_on extends appadmin } } - //小区 + //场所 public function dovillage() { global $_M,$_YW; - parent::appnav(['table_on__dovillage','小区资料']); + parent::appnav(['table_on__dovillage','场所资料']); parent::appurl(parent::tname(),['id'=>$_M['form']['id']]); if($_M['form']['id']){ $this->input['data'] = $this->tsql->table($this->tname) @@ -41,7 +41,7 @@ class info_on extends appadmin $this->input['data']['v_city'] = '泰安市'; $this->input['data']['v_district'] = '泰山区'; } - //小区分类 + //场所分类 $para = $this->tsql->table('para')->where(['p_type' => 6])->all(); parent::para_radio($para,'v_type',$this->input['data']['v_type'],$this->input['para']['v_type_radio']) ->setparahtml(6,$this->input['para']['v_type_radio']); @@ -102,18 +102,10 @@ class info_on extends appadmin $this->input['data']['e_number_readonly'] = 'readonly'; // 二次编辑时采用单选 - //楼号 + //道闸方位 $para = $this->tsql->table('para')->where(['p_type' => 3])->all(); parent::para_radio($para,'e_bno',$this->input['data']['e_bno'],$this->input['para']['e_bno_radio']) ->setparahtml(3,$this->input['para']['e_bno_radio']); - //单元号 - $para = $this->tsql->table('para')->where(['p_type' => 4])->all(); - parent::para_radio($para,'e_uno',$this->input['data']['e_uno'],$this->input['para']['e_uno_radio']) - ->setparahtml(4,$this->input['para']['e_uno_radio']); - //电梯号 - $para = $this->tsql->table('para')->where(['p_type' => 5])->all(); - parent::para_radio($para,'e_eno',$this->input['data']['e_eno'],$this->input['para']['e_eno_radio']) - ->setparahtml(5,$this->input['para']['e_eno_radio']); //广告位置 $para = $this->tsql->table('para')->where(['p_type' => 0])->all(); parent::para_radio($para,'e_aps',$this->input['data']['e_aps'],$this->input['para']['e_aps_radio']) @@ -125,25 +117,17 @@ class info_on extends appadmin $this->input['data']['e_enable'] = 1; // 新增编辑时采用多选 - //楼号 + //道闸方位 $para = $this->tsql->table('para')->where(['p_type' => 3])->all(); parent::para_checkbox($para,'e_bno',$this->input['data']['e_bno'],$this->input['para']['e_bno_radio']) ->setparahtml(3,$this->input['para']['e_bno_radio']); - //单元号 - $para = $this->tsql->table('para')->where(['p_type' => 4])->all(); - parent::para_checkbox($para,'e_uno',$this->input['data']['e_uno'],$this->input['para']['e_uno_radio']) - ->setparahtml(4,$this->input['para']['e_uno_radio']); - //电梯号 - $para = $this->tsql->table('para')->where(['p_type' => 5])->all(); - parent::para_checkbox($para,'e_eno',$this->input['data']['e_eno'],$this->input['para']['e_eno_radio']) - ->setparahtml(5,$this->input['para']['e_eno_radio']); //广告位置 $para = $this->tsql->table('para')->where(['p_type' => 0])->all(); parent::para_checkbox($para,'e_aps',$this->input['data']['e_aps'],$this->input['para']['e_aps_radio']) ->setparahtml(0,$this->input['para']['e_aps_radio']); } - //小区名称URL + //场所名称URL $this->input['remote_url'] = $_M['url']['own_name'].'c=ajax&a=doenumber&id='.$_M['form']['id']; } diff --git a/admin/select.class.php b/admin/select.class.php index 09bf359..fbfa611 100644 --- a/admin/select.class.php +++ b/admin/select.class.php @@ -228,7 +228,7 @@ class select extends appadmin { } - // 查看小区名称列表 + // 查看场所名称列表 public function doselect() { global $_M,$_YW; //判断条件 diff --git a/admin/table_on.class.php b/admin/table_on.class.php index 31cf228..615f8c4 100644 --- a/admin/table_on.class.php +++ b/admin/table_on.class.php @@ -36,7 +36,7 @@ class table_on extends appadmin { $this->input['table'] = $this->table_theme->start($this->tname)->send_all(1); } - //小区统计 + //场所统计 public function dovillage() { global $_M,$_YW; @@ -92,7 +92,7 @@ class table_on extends appadmin { $this->input['table'] = $this->table_theme->start($this->tname)->send_all(); } - // 小区统计 + // 场所统计 public function dovillages() { global $_M,$_YW; @@ -112,7 +112,7 @@ class table_on extends appadmin { $this->input['table'] = $this->table_theme->start($this->tname)->send_all(1); } - // 小区统计 + // 场所统计 public function doelevators() { global $_M,$_YW; diff --git a/admin/templates/dzadsod.php b/admin/templates/dzadsod.php index afef7b6..6a3a27e 100644 --- a/admin/templates/dzadsod.php +++ b/admin/templates/dzadsod.php @@ -11,7 +11,7 @@ $met_title = $data['met_title'];