$W){unset($rg[$y][$ie]);if(is_array($W)){$rg[$y][stripslashes($ie)]=$W;$rg[]=&$rg[$y][stripslashes($ie)];}else$rg[$y][stripslashes($ie)]=($dd?$W:stripslashes($W));}}}}function bracket_escape($u,$Na=false){static$si=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return strtr($u,($Na?array_flip($si):$si));}function min_version($Yi,$De="",$h=null){global$g;if(!$h)$h=$g;$kh=$h->server_info;if($De&&preg_match('~([\d.]+)-MariaDB~',$kh,$B)){$kh=$B[1];$Yi=$De;}return$Yi&&version_compare($kh,$Yi)>=0;}function charset($g){return(min_version("5.5.3",0,$g)?"utf8mb4":"utf8");}function script($wh,$ri="\n"){return"$wh$ri";}function script_src($Mi){return"\n";}function nonce(){return' nonce="'.get_nonce().'"';}function target_blank(){return' target="_blank" rel="noreferrer noopener"';}function h($P){return str_replace("\0","�",htmlspecialchars($P,ENT_QUOTES,'utf-8'));}function nl_br($P){return str_replace("\n","
",$P);}function checkbox($C,$Y,$gb,$ne="",$vf="",$kb="",$oe=""){$I="".($vf?script("qsl('input').onclick = function () { $vf };",""):"");return($ne!=""||$kb?"$I".h($ne)."":$I);}function optionlist($D,$ch=null,$Qi=false){$I="";foreach($D as$ie=>$W){$Af=array($ie=>$W);if(is_array($W)){$I.='';$Af=$W;}foreach($Af as$y=>$X)$I.=''.h($X);if(is_array($W))$I.='';}return$I;}function html_select($C,$D,$Y="",$uf=true,$oe=""){if($uf)return"".(is_string($uf)?script("qsl('select').onchange = function () { $uf };",""):"");$I="";foreach($D as$y=>$X)$I.="";return$I;}function confirm($Oe="",$dh="qsl('input')"){return script("$dh.onclick = function () { return confirm('".($Oe?js_escape($Oe):lang(0))."'); };","");}function print_fieldset($Kd,$we,$bj=false){echo"
","$we",script("qsl('a').onclick = partial(toggle, 'fieldset-$Kd');",""),"","
\n";}function selectSearchPrint($Z,$e,$w){print_fieldset("search",lang(55),$Z);foreach($w as$t=>$v){if($v["type"]=="FULLTEXT"){echo"
(".implode(", ",array_map('h',$v["columns"])).") AGAINST"," ",script("qsl('input').oninput = selectFieldChange;",""),checkbox("boolean[$t]",1,isset($_GET["boolean"][$t]),"BOOL"),"
\n";}}$bb="this.parentNode.firstChild.onchange();";foreach(array_merge((array)$_GET["where"],array(array()))as$t=>$X){if(!$X||("$X[col]$X[val]"!=""&&in_array($X["op"],$this->operators))){echo"
".select_input(" name='where[$t][col]'",$e,$X["col"],($X?"selectFieldChange":"selectAddRow"),"(".lang(56).")"),html_select("where[$t][op]",$this->operators,$X["op"],$bb),"",script("mixin(qsl('input'), {oninput: function () { $bb }, onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});",""),"
\n";}}echo"\n";}function selectOrderPrint($Bf,$e,$w){print_fieldset("sort",lang(57),$Bf);$t=0;foreach((array)$_GET["order"]as$y=>$X){if($X!=""){echo"
".select_input(" name='order[$t]'",$e,$X,"selectFieldChange"),checkbox("desc[$t]",1,isset($_GET["desc"][$y]),lang(58))."
\n";$t++;}}echo"
".select_input(" name='order[$t]'",$e,"","selectAddRow"),checkbox("desc[$t]",1,false,lang(58))."
\n","\n";}function selectLimitPrint($z){echo"
".lang(59)."
";echo"",script("qsl('input').oninput = selectFieldChange;",""),"
\n";}function selectLengthPrint($di){if($di!==null){echo"
".lang(60)."
","","
\n";}}function selectActionPrint($w){echo"
".lang(61)."
",""," ","\n","var indexColumns = ";$e=array();foreach($w as$v){$Sb=reset($v["columns"]);if($v["type"]!="FULLTEXT"&&$Sb)$e[$Sb]=1;}$e[""]=1;foreach($e as$y=>$X)json_row($y);echo";\n","selectFieldChange.call(qs('#form')['select']);\n","\n","
\n";}function selectCommandPrint(){return!information_schema(DB);}function selectImportPrint(){return!information_schema(DB);}function selectEmailPrint($Ac,$e){}function selectColumnsProcess($e,$w){global$sd,$zd;$L=array();$wd=array();foreach((array)$_GET["columns"]as$y=>$X){if($X["fun"]=="count"||($X["col"]!=""&&(!$X["fun"]||in_array($X["fun"],$sd)||in_array($X["fun"],$zd)))){$L[$y]=apply_sql_function($X["fun"],($X["col"]!=""?idf_escape($X["col"]):"*"));if(!in_array($X["fun"],$zd))$wd[]=$L[$y];}}return array($L,$wd);}function selectSearchProcess($o,$w){global$g,$l;$I=array();foreach($w as$t=>$v){if($v["type"]=="FULLTEXT"&&$_GET["fulltext"][$t]!="")$I[]="MATCH (".implode(", ",array_map('idf_escape',$v["columns"])).") AGAINST (".q($_GET["fulltext"][$t]).(isset($_GET["boolean"][$t])?" IN BOOLEAN MODE":"").")";}foreach((array)$_GET["where"]as$y=>$X){if("$X[col]$X[val]"!=""&&in_array($X["op"],$this->operators)){$jg="";$zb=" $X[op]";if(preg_match('~IN$~',$X["op"])){$Od=process_length($X["val"]);$zb.=" ".($Od!=""?$Od:"(NULL)");}elseif($X["op"]=="SQL")$zb=" $X[val]";elseif($X["op"]=="LIKE %%")$zb=" LIKE ".$this->processInput($o[$X["col"]],"%$X[val]%");elseif($X["op"]=="ILIKE %%")$zb=" ILIKE ".$this->processInput($o[$X["col"]],"%$X[val]%");elseif($X["op"]=="FIND_IN_SET"){$jg="$X[op](".q($X["val"]).", ";$zb=")";}elseif(!preg_match('~NULL$~',$X["op"]))$zb.=" ".$this->processInput($o[$X["col"]],$X["val"]);if($X["col"]!="")$I[]=$jg.$l->convertSearch(idf_escape($X["col"]),$X,$o[$X["col"]]).$zb;else{$sb=array();foreach($o as$C=>$n){if((preg_match('~^[-\d.'.(preg_match('~IN$~',$X["op"])?',':'').']+$~',$X["val"])||!preg_match('~'.number_type().'|bit~',$n["type"]))&&(!preg_match("~[\x80-\xFF]~",$X["val"])||preg_match('~char|text|enum|set~',$n["type"]))&&(!preg_match('~date|timestamp~',$n["type"])||preg_match('~^\d+-\d+-\d+~',$X["val"])))$sb[]=$jg.$l->convertSearch(idf_escape($C),$X,$n).$zb;}$I[]=($sb?"(".implode(" OR ",$sb).")":"1 = 0");}}}return$I;}function selectOrderProcess($o,$w){$I=array();foreach((array)$_GET["order"]as$y=>$X){if($X!="")$I[]=(preg_match('~^((COUNT\(DISTINCT |[A-Z0-9_]+\()(`(?:[^`]|``)+`|"(?:[^"]|"")+")\)|COUNT\(\*\))$~',$X)?$X:idf_escape($X)).(isset($_GET["desc"][$y])?" DESC":"");}return$I;}function selectLimitProcess(){return(isset($_GET["limit"])?$_GET["limit"]:"50");}function selectLengthProcess(){return(isset($_GET["text_length"])?$_GET["text_length"]:"100");}function selectEmailProcess($Z,$md){return false;}function selectQueryBuild($L,$Z,$wd,$Bf,$z,$E){return"";}function messageQuery($G,$ei,$Xc=false){global$x,$l;restart_session();$Gd=&get_session("queries");if(!$Gd[$_GET["db"]])$Gd[$_GET["db"]]=array();if(strlen($G)>1e6)$G=preg_replace('~[\x80-\xFF]+$~','',substr($G,0,1e6))."\n…";$Gd[$_GET["db"]][]=array($G,time(),$ei);$Ah="sql-".count($Gd[$_GET["db"]]);$I="".lang(63)."\n";if(!$Xc&&($dj=$l->warnings())){$Kd="warnings-".count($Gd[$_GET["db"]]);$I="".lang(45).", $I\n";}return" ".@date("H:i:s").""." $I';}function editRowPrint($Q,$o,$J,$Ki){}function editFunctions($n){global$wc;$I=($n["null"]?"NULL/":"");$Ki=isset($_GET["select"])||where($_GET);foreach($wc as$y=>$sd){if(!$y||(!isset($_GET["call"])&&$Ki)){foreach($sd as$ag=>$X){if(!$ag||preg_match("~$ag~",$n["type"]))$I.="/$X";}}if($y&&!preg_match('~set|blob|bytea|raw|file|bool~',$n["type"]))$I.="/SQL";}if($n["auto_increment"]&&!$Ki)$I=lang(50);return explode("/",$I);}function editInput($Q,$n,$Ia,$Y){if($n["type"]=="enum")return(isset($_GET["select"])?" ":"").($n["null"]?" ":"").enum_input("radio",$Ia,$n,$Y,$Y===0?0:null);return"";}function editHint($Q,$n,$Y){return"";}function processInput($n,$Y,$s=""){if($s=="SQL")return$Y;$C=$n["field"];$I=q($Y);if(preg_match('~^(now|getdate|uuid)$~',$s))$I="$s()";elseif(preg_match('~^current_(date|timestamp)$~',$s))$I=$s;elseif(preg_match('~^([+-]|\|\|)$~',$s))$I=idf_escape($C)." $s $I";elseif(preg_match('~^[+-] interval$~',$s))$I=idf_escape($C)." $s ".(preg_match("~^(\\d+|'[0-9.: -]') [A-Z_]+\$~i",$Y)?$Y:$I);elseif(preg_match('~^(addtime|subtime|concat)$~',$s))$I="$s(".idf_escape($C).", $I)";elseif(preg_match('~^(md5|sha1|password|encrypt)$~',$s))$I="$s($I)";return unconvert_field($n,$I);}function dumpOutput(){$I=array('text'=>lang(64),'file'=>lang(65));if(function_exists('gzencode'))$I['gz']='gzip';return$I;}function dumpFormat(){return array('sql'=>'SQL','csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function dumpDatabase($k){}function dumpTable($Q,$Ih,$fe=0){if($_POST["format"]!="sql"){echo"\xef\xbb\xbf";if($Ih)dump_csv(array_keys(fields($Q)));}else{if($fe==2){$o=array();foreach(fields($Q)as$C=>$n)$o[]=idf_escape($C)." $n[full_type]";$i="CREATE TABLE ".table($Q)." (".implode(", ",$o).")";}else$i=create_sql($Q,$_POST["auto_increment"],$Ih);set_utf8mb4($i);if($Ih&&$i){if($Ih=="DROP+CREATE"||$fe==1)echo"DROP ".($fe==2?"VIEW":"TABLE")." IF EXISTS ".table($Q).";\n";if($fe==1)$i=remove_definer($i);echo"$i;\n\n";}}}function dumpData($Q,$Ih,$G){global$g,$x;if($Ih){$He=($x=="sqlite"?0:1048576);$o=array();if($_POST["format"]=="sql"){if($Ih=="TRUNCATE+INSERT")echo truncate_sql($Q).";\n";$o=fields($Q);}$H=$g->query($G,1);if($H){$Yd="";$Wa="";$ke=array();$td=array();$Kh="";$ad=($Q!=''?'fetch_assoc':'fetch_row');while($J=$H->$ad()){if(!$ke){$Vi=array();foreach($J as$X){$n=$H->fetch_field();if($o[$n->name]['generated']){$td[$n->name]=true;continue;}$ke[]=$n->name;$y=idf_escape($n->name);$Vi[]="$y = VALUES($y)";}$Kh=($Ih=="INSERT+UPDATE"?"\nON DUPLICATE KEY UPDATE ".implode(", ",$Vi):"").";\n";}if($_POST["format"]!="sql"){if($Ih=="table"){dump_csv($ke);$Ih="INSERT";}dump_csv($J);}else{if(!$Yd)$Yd="INSERT INTO ".table($Q)." (".implode(", ",array_map('idf_escape',$ke)).") VALUES";foreach($J as$y=>$X){if($td[$y]){unset($J[$y]);continue;}$n=$o[$y];$J[$y]=($X!==null?unconvert_field($n,preg_match(number_type(),$n["type"])&&!preg_match('~\[~',$n["full_type"])&&is_numeric($X)?$X:q(($X===false?0:$X))):"NULL");}$Wg=($He?"\n":" ")."(".implode(",\t",$J).")";if(!$Wa)$Wa=$Yd.$Wg;elseif(strlen($Wa)+4+strlen($Wg)+strlen($Kh)<$He)$Wa.=",$Wg";else{echo$Wa.$Kh;$Wa=$Yd.$Wg;}}}if($Wa)echo$Wa.$Kh;}elseif($_POST["format"]=="sql")echo"-- ".str_replace("\n"," ",$g->error)."\n";}}function dumpFilename($Ld){return friendly_url($Ld!=""?$Ld:(SERVER!=""?SERVER:"localhost"));}function dumpHeaders($Ld,$We=false){$Mf=$_POST["output"];$Tc=(preg_match('~sql~',$_POST["format"])?"sql":($We?"tar":"csv"));header("Content-Type: ".($Mf=="gz"?"application/x-gzip":($Tc=="tar"?"application/x-tar":($Tc=="sql"||$Mf!="file"?"text/plain":"text/csv")."; charset=utf-8")));if($Mf=="gz")ob_start('ob_gzencode',1e6);return$Tc;}function importServerPath(){return"adminer.sql";}function homepage(){echo'

',$this->name(),' ',$ia,' ',(version_compare($ia,$_COOKIE["adminer_version"])<0?h($_COOKIE["adminer_version"]):""),'

';switch_lang();if($Ve=="auth"){$Mf="";foreach((array)$_SESSION["pwds"]as$Xi=>$lh){foreach($lh as$M=>$Si){foreach($Si as$V=>$F){if($F!==null){$Zb=$_SESSION["db"][$Xi][$M][$V];foreach(($Zb?array_keys($Zb):array(""))as$k)$Mf.="
  • ($oc[$Xi]) ".h($V.($M!=""?"@".$this->serverName($M):"").($k!=""?" - $k":""))."\n";}}}}if($Mf)echo"
      \n$Mf
    \n".script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});");}else{$S=array();if($_GET["ns"]!==""&&!$Ve&&DB!=""){$g->select_db(DB);$S=table_status('',true);}echo script_src(preg_replace("~\\?.*~","",ME)."?file=jush.js&version=4.17.1");if(support("sql")){echo' ';if($S){$_e=array();foreach($S as$Q=>$T)$_e[]=preg_quote($Q,'/');echo"var jushLinks = { $x: [ '".js_escape(ME).(support("table")?"table=":"select=")."\$&', /\\b(".implode("|",$_e).")\\b/g ] };\n";foreach(array("bac","bra","sqlite_quo","mssql_bra")as$X)echo"jushLinks.$X = jushLinks.$x;\n";}$kh=$g->server_info;echo'bodyLoad(\'',(is_object($g)?preg_replace('~^(\d\.?\d).*~s','\1',$kh):""),'\'',(preg_match('~MariaDB~',$kh)?", true":""),'); ';}$this->databasesPrint($Ve);$wa=array();if(DB==""||!$Ve){if(support("sql")){$wa[]="".lang(63)."";$wa[]="".lang(71)."";}if(support("dump"))$wa[]="".lang(72)."";}$Pd=$_GET["ns"]!==""&&!$Ve&&DB!="";if($Pd)$wa[]='".lang(73)."";echo($wa?"

    ".lang(10)."

    \n";}}}function databasesPrint($Ve){global$b,$g;$j=$this->databases();if(DB&&$j&&!in_array(DB,$j))array_unshift($j,DB);echo'

    ';hidden_fields_get();$Xb=script("mixin(qsl('select'), {onmousedown: dbMouseDown, onchange: dbChange});");echo"".lang(74).": ".($j?"$Xb":"\n"),"\n";if(support("scheme")){if($Ve!="db"&&DB!=""&&$g->select_db(DB)){echo"
    ".lang(75).": $Xb";if($_GET["ns"]!="")set_schema($_GET["ns"]);}}foreach(array("import","sql","schema","dump","privileges")as$X){if(isset($_GET[$X])){echo"";break;}}echo"

    \n";}function tablesPrint($S){echo"
      ".script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($S as$Q=>$O){$C=$this->tableName($O);if($C!=""){echo'
    • ".lang(76)." ",(support("table")||support("indexes")?'$C":"$C")."\n";}}echo"
    \n";}}$b=(function_exists('adminer_object')?adminer_object():new Adminer);$oc=array("server"=>"MySQL")+$oc;if(!defined("DRIVER")){define("DRIVER","server");if(extension_loaded("mysqli")){class Min_DB extends MySQLi{var$extension="MySQLi";function __construct(){parent::init();}function connect($M="",$V="",$F="",$Vb=null,$eg=null,$uh=null){global$b;mysqli_report(MYSQLI_REPORT_OFF);list($Id,$eg)=explode(":",$M,2);$Dh=$b->connectSsl();if($Dh)$this->ssl_set($Dh['key'],$Dh['cert'],$Dh['ca'],'','');$I=@$this->real_connect(($M!=""?$Id:ini_get("mysqli.default_host")),($M.$V!=""?$V:ini_get("mysqli.default_user")),($M.$V.$F!=""?$F:ini_get("mysqli.default_pw")),$Vb,(is_numeric($eg)?$eg:ini_get("mysqli.default_port")),(!is_numeric($eg)?$eg:$uh),($Dh?(empty($Dh['cert'])?2048:64):0));$this->options(MYSQLI_OPT_LOCAL_INFILE,false);return$I;}function set_charset($cb){if(parent::set_charset($cb))return true;parent::set_charset('utf8');return$this->query("SET NAMES $cb");}function result($G,$n=0){$H=$this->query($G);if(!$H)return false;$J=$H->fetch_array();return$J[$n];}function quote($P){return"'".$this->escape_string($P)."'";}}}elseif(extension_loaded("mysql")&&!((ini_bool("sql.safe_mode")||ini_bool("mysql.allow_local_infile"))&&extension_loaded("pdo_mysql"))){class Min_DB{var$extension="MySQL",$server_info,$affected_rows,$errno,$error,$_link,$_result;function connect($M,$V,$F){if(ini_bool("mysql.allow_local_infile")){$this->error=lang(77,"'mysql.allow_local_infile'","MySQLi","PDO_MySQL");return false;}$this->_link=@mysql_connect(($M!=""?$M:ini_get("mysql.default_host")),("$M$V"!=""?$V:ini_get("mysql.default_user")),("$M$V$F"!=""?$F:ini_get("mysql.default_password")),true,131072);if($this->_link)$this->server_info=mysql_get_server_info($this->_link);else$this->error=mysql_error();return(bool)$this->_link;}function set_charset($cb){if(function_exists('mysql_set_charset')){if(mysql_set_charset($cb,$this->_link))return true;mysql_set_charset('utf8',$this->_link);}return$this->query("SET NAMES $cb");}function quote($P){return"'".mysql_real_escape_string($P,$this->_link)."'";}function select_db($Vb){return mysql_select_db($Vb,$this->_link);}function query($G,$Ci=false){$H=@($Ci?mysql_unbuffered_query($G,$this->_link):mysql_query($G,$this->_link));$this->error="";if(!$H){$this->errno=mysql_errno($this->_link);$this->error=mysql_error($this->_link);return false;}if($H===true){$this->affected_rows=mysql_affected_rows($this->_link);$this->info=mysql_info($this->_link);return true;}return new Min_Result($H);}function multi_query($G){return$this->_result=$this->query($G);}function store_result(){return$this->_result;}function next_result(){return false;}function result($G,$n=0){$H=$this->query($G);if(!$H||!$H->num_rows)return false;return mysql_result($H->_result,0,$n);}}class Min_Result{var$num_rows,$_result,$_offset=0;function __construct($H){$this->_result=$H;$this->num_rows=mysql_num_rows($H);}function fetch_assoc(){return mysql_fetch_assoc($this->_result);}function fetch_row(){return mysql_fetch_row($this->_result);}function fetch_field(){$I=mysql_fetch_field($this->_result,$this->_offset++);$I->orgtable=$I->table;$I->orgname=$I->name;$I->charsetnr=($I->blob?63:0);return$I;}function __destruct(){mysql_free_result($this->_result);}}}elseif(extension_loaded("pdo_mysql")){class Min_DB extends Min_PDO{var$extension="PDO_MySQL";function connect($M,$V,$F){global$b;$D=array(PDO::MYSQL_ATTR_LOCAL_INFILE=>false);$Dh=$b->connectSsl();if($Dh){if(!empty($Dh['key']))$D[PDO::MYSQL_ATTR_SSL_KEY]=$Dh['key'];if(!empty($Dh['cert']))$D[PDO::MYSQL_ATTR_SSL_CERT]=$Dh['cert'];if(!empty($Dh['ca']))$D[PDO::MYSQL_ATTR_SSL_CA]=$Dh['ca'];if(!empty($Dh['verify']))$D[PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT]=$Dh['verify'];}$this->dsn("mysql:charset=utf8;host=".str_replace(":",";unix_socket=",preg_replace('~:(\d)~',';port=\1',$M)),$V,$F,$D);return true;}function set_charset($cb){$this->query("SET NAMES $cb");}function select_db($Vb){return$this->query("USE ".idf_escape($Vb));}function query($G,$Ci=false){$this->pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,!$Ci);return parent::query($G,$Ci);}}}class Min_Driver extends Min_SQL{function insert($Q,$N){return($N?parent::insert($Q,$N):queries("INSERT INTO ".table($Q)." ()\nVALUES ()"));}function insertUpdate($Q,$K,$lg){$e=array_keys(reset($K));$jg="INSERT INTO ".table($Q)." (".implode(", ",$e).") VALUES\n";$Vi=array();foreach($e as$y)$Vi[$y]="$y = VALUES($y)";$Kh="\nON DUPLICATE KEY UPDATE ".implode(", ",$Vi);$Vi=array();$xe=0;foreach($K as$N){$Y="(".implode(", ",$N).")";if($Vi&&(strlen($jg)+$xe+strlen($Y)+strlen($Kh)>1e6)){if(!queries($jg.implode(",\n",$Vi).$Kh))return false;$Vi=array();$xe=0;}$Vi[]=$Y;$xe+=strlen($Y)+2;}return queries($jg.implode(",\n",$Vi).$Kh);}function slowQuery($G,$fi){if(min_version('5.7.8','10.1.2')){if(preg_match('~MariaDB~',$this->_conn->server_info))return"SET STATEMENT max_statement_time=$fi FOR $G";elseif(preg_match('~^(SELECT\b)(.+)~is',$G,$B))return"$B[1] /*+ MAX_EXECUTION_TIME(".($fi*1000).") */ $B[2]";}}function convertSearch($u,$X,$n){return(preg_match('~char|text|enum|set~',$n["type"])&&!preg_match("~^utf8~",$n["collation"])&&preg_match('~[\x80-\xFF]~',$X['val'])?"CONVERT($u USING ".charset($this->_conn).")":$u);}function warnings(){$H=$this->_conn->query("SHOW WARNINGS");if($H&&$H->num_rows){ob_start();select($H);return ob_get_clean();}}function tableHelp($C){$Ce=preg_match('~MariaDB~',$this->_conn->server_info);if(information_schema(DB))return strtolower("information-schema-".($Ce?"$C-table/":str_replace("_","-",$C)."-table.html"));if(DB=="mysql")return($Ce?"mysql$C-table/":"system-schema.html");}function hasCStyleEscapes(){static$Ya;if($Ya===null){$Bh=$this->_conn->result("SHOW VARIABLES LIKE 'sql_mode'",1);$Ya=(strpos($Bh,'NO_BACKSLASH_ESCAPES')===false);}return$Ya;}}function idf_escape($u){return"`".str_replace("`","``",$u)."`";}function table($u){return idf_escape($u);}function connect(){global$b,$U,$Hh,$wc;$g=new Min_DB;$Ob=$b->credentials();if($g->connect($Ob[0],$Ob[1],$Ob[2])){$g->set_charset(charset($g));$g->query("SET sql_quote_show_create = 1, autocommit = 1");if(min_version('5.7.8',10.2,$g)){$Hh[lang(26)][]="json";$U["json"]=4294967295;}if(min_version('',10.7,$g)){$Hh[lang(26)][]="uuid";$U["uuid"]=128;$wc[0]['uuid']='uuid';}if(min_version(9,'',$g)){$Hh[lang(27)][]="vector";$U["vector"]=16383;$wc[0]['vector']='string_to_vector';}return$g;}$I=$g->error;if(function_exists('iconv')&&!is_utf8($I)&&strlen($Wg=iconv("windows-1250","utf-8",$I))>strlen($I))$I=$Wg;return$I;}function get_databases($jd){$I=get_session("dbs");if($I===null){$G=(min_version(5)?"SELECT SCHEMA_NAME FROM information_schema.SCHEMATA ORDER BY SCHEMA_NAME":"SHOW DATABASES");$I=($jd?slow_query($G):get_vals($G));restart_session();set_session("dbs",$I);stop_session();}return$I;}function limit($G,$Z,$z,$lf=0,$gh=" "){return" $G$Z".($z!==null?$gh."LIMIT $z".($lf?" OFFSET $lf":""):"");}function limit1($Q,$G,$Z,$gh="\n"){return limit($G,$Z,1,0,$gh);}function db_collation($k,$qb){global$g;$I=null;$i=$g->result("SHOW CREATE DATABASE ".idf_escape($k),1);if(preg_match('~ COLLATE ([^ ]+)~',$i,$B))$I=$B[1];elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$i,$B))$I=$qb[$B[1]][-1];return$I;}function engines(){$I=array();foreach(get_rows("SHOW ENGINES")as$J){if(preg_match("~YES|DEFAULT~",$J["Support"]))$I[]=$J["Engine"];}return$I;}function logged_user(){global$g;return$g->result("SELECT USER()");}function tables_list(){return get_key_vals(min_version(5)?"SELECT TABLE_NAME, TABLE_TYPE FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ORDER BY TABLE_NAME":"SHOW TABLES");}function count_tables($j){$I=array();foreach($j as$k)$I[$k]=count(get_vals("SHOW TABLES IN ".idf_escape($k)));return$I;}function table_status($C="",$Yc=false){$I=array();foreach(get_rows($Yc&&min_version(5)?"SELECT TABLE_NAME AS Name, ENGINE AS Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ".($C!=""?"AND TABLE_NAME = ".q($C):"ORDER BY Name"):"SHOW TABLE STATUS".($C!=""?" LIKE ".q(addcslashes($C,"%_\\")):""))as$J){if($J["Engine"]=="InnoDB")$J["Comment"]=preg_replace('~(?:(.+); )?InnoDB free: .*~','\1',$J["Comment"]);if(!isset($J["Engine"]))$J["Comment"]="";if($C!=""){$J["Name"]=$C;return$J;}$I[$J["Name"]]=$J;}return$I;}function is_view($R){return$R["Engine"]===null;}function fk_support($R){return preg_match('~InnoDB|IBMDB2I~i',$R["Engine"])||(preg_match('~NDB~i',$R["Engine"])&&min_version(5.6));}function fields($Q){$I=array();foreach(get_rows("SHOW FULL COLUMNS FROM ".table($Q))as$J){preg_match('~^([^( ]+)(?:\((.+)\))?( unsigned)?( zerofill)?$~',$J["Type"],$B);$I[$J["Field"]]=array("field"=>$J["Field"],"full_type"=>$J["Type"],"type"=>$B[1],"length"=>$B[2],"unsigned"=>ltrim($B[3].$B[4]),"default"=>($J["Default"]!=""||preg_match("~char|set~",$B[1])?(preg_match('~text~',$B[1])?stripslashes(preg_replace("~^'(.*)'\$~",'\1',$J["Default"])):$J["Default"]):null),"null"=>($J["Null"]=="YES"),"auto_increment"=>($J["Extra"]=="auto_increment"),"on_update"=>(preg_match('~^on update (.+)~i',$J["Extra"],$B)?$B[1]:""),"collation"=>$J["Collation"],"privileges"=>array_flip(preg_split('~, *~',$J["Privileges"])),"comment"=>$J["Comment"],"primary"=>($J["Key"]=="PRI"),"generated"=>preg_match('~^(VIRTUAL|PERSISTENT|STORED)~',$J["Extra"]),);}return$I;}function indexes($Q,$h=null){$I=array();foreach(get_rows("SHOW INDEX FROM ".table($Q),$h)as$J){$C=$J["Key_name"];$I[$C]["type"]=($C=="PRIMARY"?"PRIMARY":($J["Index_type"]=="FULLTEXT"?"FULLTEXT":($J["Non_unique"]?($J["Index_type"]=="SPATIAL"?"SPATIAL":"INDEX"):"UNIQUE")));$I[$C]["columns"][]=$J["Column_name"];$I[$C]["lengths"][]=($J["Index_type"]=="SPATIAL"?null:$J["Sub_part"]);$I[$C]["descs"][]=null;}return$I;}function foreign_keys($Q){global$g,$tf;static$ag='(?:`(?:[^`]|``)+`|"(?:[^"]|"")+")';$I=array();$Mb=$g->result("SHOW CREATE TABLE ".table($Q),1);if($Mb){preg_match_all("~CONSTRAINT ($ag) FOREIGN KEY ?\\(((?:$ag,? ?)+)\\) REFERENCES ($ag)(?:\\.($ag))? \\(((?:$ag,? ?)+)\\)(?: ON DELETE ($tf))?(?: ON UPDATE ($tf))?~",$Mb,$Fe,PREG_SET_ORDER);foreach($Fe as$B){preg_match_all("~$ag~",$B[2],$wh);preg_match_all("~$ag~",$B[5],$Xh);$I[idf_unescape($B[1])]=array("db"=>idf_unescape($B[4]!=""?$B[3]:$B[4]),"table"=>idf_unescape($B[4]!=""?$B[4]:$B[3]),"source"=>array_map('idf_unescape',$wh[0]),"target"=>array_map('idf_unescape',$Xh[0]),"on_delete"=>($B[6]?$B[6]:"RESTRICT"),"on_update"=>($B[7]?$B[7]:"RESTRICT"),);}}return$I;}function view($C){global$g;return array("select"=>preg_replace('~^(?:[^`]|`[^`]*`)*\s+AS\s+~isU','',$g->result("SHOW CREATE VIEW ".table($C),1)));}function collations(){$I=array();foreach(get_rows("SHOW COLLATION")as$J){if($J["Default"])$I[$J["Charset"]][-1]=$J["Collation"];else$I[$J["Charset"]][]=$J["Collation"];}ksort($I);foreach($I as$y=>$X)asort($I[$y]);return$I;}function information_schema($k){return(min_version(5)&&$k=="information_schema")||(min_version(5.5)&&$k=="performance_schema");}function error(){global$g;return h(preg_replace('~^You have an error.*syntax to use~U',"Syntax error",$g->error));}function create_database($k,$pb){return queries("CREATE DATABASE ".idf_escape($k).($pb?" COLLATE ".q($pb):""));}function drop_databases($j){$I=apply_queries("DROP DATABASE",$j,'idf_escape');restart_session();set_session("dbs",null);return$I;}function rename_database($C,$pb){$I=false;if(create_database($C,$pb)){$S=array();$aj=array();foreach(tables_list()as$Q=>$T){if($T=='VIEW')$aj[]=$Q;else$S[]=$Q;}$I=(!$S&&!$aj)||move_tables($S,$aj,$C);drop_databases($I?array(DB):array());}return$I;}function auto_increment(){$Ma=" PRIMARY KEY";if($_GET["create"]!=""&&$_POST["auto_increment_col"]){foreach(indexes($_GET["create"])as$v){if(in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"],$v["columns"],true)){$Ma="";break;}if($v["type"]=="PRIMARY")$Ma=" UNIQUE";}}return" AUTO_INCREMENT$Ma";}function alter_table($Q,$C,$o,$ld,$wb,$Dc,$pb,$La,$Wf){$c=array();foreach($o as$n)$c[]=($n[1]?($Q!=""?($n[0]!=""?"CHANGE ".idf_escape($n[0]):"ADD"):" ")." ".implode($n[1]).($Q!=""?$n[2]:""):"DROP ".idf_escape($n[0]));$c=array_merge($c,$ld);$O=($wb!==null?" COMMENT=".q($wb):"").($Dc?" ENGINE=".q($Dc):"").($pb?" COLLATE ".q($pb):"").($La!=""?" AUTO_INCREMENT=$La":"");if($Q=="")return queries("CREATE TABLE ".table($C)." (\n".implode(",\n",$c)."\n)$O$Wf");if($Q!=$C)$c[]="RENAME TO ".table($C);if($O)$c[]=ltrim($O);return($c||$Wf?queries("ALTER TABLE ".table($Q)."\n".implode(",\n",$c).$Wf):true);}function alter_indexes($Q,$c){foreach($c as$y=>$X)$c[$y]=($X[2]=="DROP"?"\nDROP INDEX ".idf_escape($X[1]):"\nADD $X[0] ".($X[0]=="PRIMARY"?"KEY ":"").($X[1]!=""?idf_escape($X[1])." ":"")."(".implode(", ",$X[2]).")");return queries("ALTER TABLE ".table($Q).implode(",",$c));}function truncate_tables($S){return apply_queries("TRUNCATE TABLE",$S);}function drop_views($aj){return queries("DROP VIEW ".implode(", ",array_map('table',$aj)));}function drop_tables($S){return queries("DROP TABLE ".implode(", ",array_map('table',$S)));}function move_tables($S,$aj,$Xh){global$g;$Ig=array();foreach($S as$Q)$Ig[]=table($Q)." TO ".idf_escape($Xh).".".table($Q);if(!$Ig||queries("RENAME TABLE ".implode(", ",$Ig))){$ec=array();foreach($aj as$Q)$ec[table($Q)]=view($Q);$g->select_db($Xh);$k=idf_escape(DB);foreach($ec as$C=>$Zi){if(!queries("CREATE VIEW $C AS ".str_replace(" $k."," ",$Zi["select"]))||!queries("DROP VIEW $k.$C"))return false;}return true;}return false;}function copy_tables($S,$aj,$Xh){queries("SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'");foreach($S as$Q){$C=($Xh==DB?table("copy_$Q"):idf_escape($Xh).".".table($Q));if(($_POST["overwrite"]&&!queries("\nDROP TABLE IF EXISTS $C"))||!queries("CREATE TABLE $C LIKE ".table($Q))||!queries("INSERT INTO $C SELECT * FROM ".table($Q)))return false;foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")))as$J){$xi=$J["Trigger"];if(!queries("CREATE TRIGGER ".($Xh==DB?idf_escape("copy_$xi"):idf_escape($Xh).".".idf_escape($xi))." $J[Timing] $J[Event] ON $C FOR EACH ROW\n$J[Statement];"))return false;}}foreach($aj as$Q){$C=($Xh==DB?table("copy_$Q"):idf_escape($Xh).".".table($Q));$Zi=view($Q);if(($_POST["overwrite"]&&!queries("DROP VIEW IF EXISTS $C"))||!queries("CREATE VIEW $C AS $Zi[select]"))return false;}return true;}function trigger($C){if($C=="")return array();$K=get_rows("SHOW TRIGGERS WHERE `Trigger` = ".q($C));return reset($K);}function triggers($Q){$I=array();foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")))as$J)$I[$J["Trigger"]]=array($J["Timing"],$J["Event"]);return$I;}function trigger_options(){return array("Timing"=>array("BEFORE","AFTER"),"Event"=>array("INSERT","UPDATE","DELETE"),"Type"=>array("FOR EACH ROW"),);}function routine($C,$T){global$g,$Fc,$Wd,$U;$Ca=array("bool","boolean","integer","double precision","real","dec","numeric","fixed","national char","national varchar");$xh="(?:\\s|/\\*[\s\S]*?\\*/|(?:#|-- )[^\n]*\n?|--\r?\n)";$Bi="((".implode("|",array_merge(array_keys($U),$Ca)).")\\b(?:\\s*\\(((?:[^'\")]|$Fc)++)\\))?\\s*(zerofill\\s*)?(unsigned(?:\\s+zerofill)?)?)(?:\\s*(?:CHARSET|CHARACTER\\s+SET)\\s*['\"]?([^'\"\\s,]+)['\"]?)?";$ag="$xh*(".($T=="FUNCTION"?"":$Wd).")?\\s*(?:`((?:[^`]|``)*)`\\s*|\\b(\\S+)\\s+)$Bi";$i=$g->result("SHOW CREATE $T ".idf_escape($C),2);preg_match("~\\(((?:$ag\\s*,?)*)\\)\\s*".($T=="FUNCTION"?"RETURNS\\s+$Bi\\s+":"")."(.*)~is",$i,$B);$o=array();preg_match_all("~$ag\\s*,?~is",$B[1],$Fe,PREG_SET_ORDER);foreach($Fe as$Qf)$o[]=array("field"=>str_replace("``","`",$Qf[2]).$Qf[3],"type"=>strtolower($Qf[5]),"length"=>preg_replace_callback("~$Fc~s",'normalize_enum',$Qf[6]),"unsigned"=>strtolower(preg_replace('~\s+~',' ',trim("$Qf[8] $Qf[7]"))),"null"=>1,"full_type"=>$Qf[4],"inout"=>strtoupper($Qf[1]),"collation"=>strtolower($Qf[9]),);return array("fields"=>$o,"comment"=>$g->result("SELECT ROUTINE_COMMENT FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = ".q(DB)." AND ROUTINE_NAME = ".q($C)),)+($T!="FUNCTION"?array("definition"=>$B[11]):array("returns"=>array("type"=>$B[12],"length"=>$B[13],"unsigned"=>$B[15],"collation"=>$B[16]),"definition"=>$B[17],"language"=>"SQL",));}function routines(){return get_rows("SELECT ROUTINE_NAME AS SPECIFIC_NAME, ROUTINE_NAME, ROUTINE_TYPE, DTD_IDENTIFIER FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = ".q(DB));}function routine_languages(){return array();}function routine_id($C,$J){return idf_escape($C);}function last_id(){global$g;return$g->result("SELECT LAST_INSERT_ID()");}function explain($g,$G){return$g->query("EXPLAIN ".(min_version(5.1)&&!min_version(5.7)?"PARTITIONS ":"").$G);}function found_rows($R,$Z){return($Z||$R["Engine"]!="InnoDB"?null:$R["Rows"]);}function types(){return array();}function schemas(){return array();}function get_schema(){return"";}function set_schema($Yg,$h=null){return true;}function create_sql($Q,$La,$Ih){global$g;$I=$g->result("SHOW CREATE TABLE ".table($Q),1);if(!$La)$I=preg_replace('~ AUTO_INCREMENT=\d+~','',$I);return$I;}function truncate_sql($Q){return"TRUNCATE ".table($Q);}function use_sql($Vb){return"USE ".idf_escape($Vb);}function trigger_sql($Q){$I="";foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")),null,"-- ")as$J)$I.="\nCREATE TRIGGER ".idf_escape($J["Trigger"])." $J[Timing] $J[Event] ON ".table($J["Table"])." FOR EACH ROW\n$J[Statement];;\n";return$I;}function show_variables(){return get_key_vals("SHOW VARIABLES");}function process_list(){return get_rows("SHOW FULL PROCESSLIST");}function show_status(){return get_key_vals("SHOW STATUS");}function convert_field($n){if(preg_match("~binary~",$n["type"]))return"HEX(".idf_escape($n["field"]).")";if($n["type"]=="bit")return"BIN(".idf_escape($n["field"])." + 0)";if(preg_match("~geometry|point|linestring|polygon~",$n["type"]))return(min_version(8)?"ST_":"")."AsWKT(".idf_escape($n["field"]).")";}function unconvert_field($n,$I){if(preg_match("~binary~",$n["type"]))$I="UNHEX($I)";if($n["type"]=="bit")$I="CONVERT(b$I, UNSIGNED)";if(preg_match("~geometry|point|linestring|polygon~",$n["type"])){$jg=(min_version(8)?"ST_":"");$I=$jg."GeomFromText($I, $jg"."SRID($n[field]))";}return$I;}function support($Zc){return!preg_match("~scheme|sequence|type|view_trigger|materializedview".(min_version(8)?"":"|descidx".(min_version(5.1)?"":"|event|partitioning".(min_version(5)?"":"|routine|trigger|view"))).(min_version('8.0.16','10.2.1')?"":"|check")."~",$Zc);}function kill_process($X){return queries("KILL ".number($X));}function connection_id(){return"SELECT CONNECTION_ID()";}function max_connections(){global$g;return$g->result("SELECT @@max_connections");}function driver_config(){$U=array();$Hh=array();foreach(array(lang(27)=>array("tinyint"=>3,"smallint"=>5,"mediumint"=>8,"int"=>10,"bigint"=>20,"decimal"=>66,"float"=>12,"double"=>21),lang(28)=>array("date"=>10,"datetime"=>19,"timestamp"=>19,"time"=>10,"year"=>4),lang(26)=>array("char"=>255,"varchar"=>65535,"tinytext"=>255,"text"=>65535,"mediumtext"=>16777215,"longtext"=>4294967295),lang(78)=>array("enum"=>65535,"set"=>64),lang(29)=>array("bit"=>20,"binary"=>255,"varbinary"=>65535,"tinyblob"=>255,"blob"=>65535,"mediumblob"=>16777215,"longblob"=>4294967295),lang(31)=>array("geometry"=>0,"point"=>0,"linestring"=>0,"polygon"=>0,"multipoint"=>0,"multilinestring"=>0,"multipolygon"=>0,"geometrycollection"=>0),)as$y=>$X){$U+=$X;$Hh[$y]=array_keys($X);}return array('possible_drivers'=>array("MySQLi","MySQL","PDO_MySQL"),'jush'=>"sql",'types'=>$U,'structured_types'=>$Hh,'unsigned'=>array("unsigned","zerofill","unsigned zerofill"),'operators'=>array("=","<",">","<=",">=","!=","LIKE","LIKE %%","REGEXP","IN","FIND_IN_SET","IS NULL","NOT LIKE","NOT REGEXP","NOT IN","IS NOT NULL","SQL"),'functions'=>array("char_length","date","from_unixtime","lower","round","floor","ceil","sec_to_time","time_to_sec","upper"),'grouping'=>array("avg","count","count distinct","group_concat","max","min","sum"),'edit_functions'=>array(array("char"=>"md5/sha1/password/encrypt/uuid","binary"=>"md5/sha1","date|time"=>"now",),array(number_type()=>"+/-","date"=>"+ interval/- interval","time"=>"addtime/subtime","char|text"=>"concat",)),);}}$_b=driver_config();$ig=$_b['possible_drivers'];$x=$_b['jush'];$U=$_b['types'];$Hh=$_b['structured_types'];$Ji=$_b['unsigned'];$yf=$_b['operators'];$sd=$_b['functions'];$zd=$_b['grouping'];$wc=$_b['edit_functions'];if($b->operators===null)$b->operators=$yf;define("SERVER",$_GET[DRIVER]);define("DB",$_GET["db"]);define("ME",preg_replace('~\?.*~','',relative_uri()).'?'.(sid()?SID.'&':'').(SERVER!==null?DRIVER."=".urlencode(SERVER).'&':'').(isset($_GET["username"])?"username=".urlencode($_GET["username"]).'&':'').(DB!=""?'db='.urlencode(DB).'&'.(isset($_GET["ns"])?"ns=".urlencode($_GET["ns"])."&":""):''));function page_header($hi,$m="",$Va=array(),$ii=""){global$ca,$ia,$b,$oc,$x;page_headers();if(is_ajax()&&$m){page_messages($m);exit;}$ji=$hi.($ii!=""?": $ii":"");$ki=strip_tags($ji.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".$b->name());echo' ',$ki,' ',script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=4.17.1");if($b->head()){echo' ';foreach($b->css()as$Qb){echo' ';}}echo' ';$p=get_temp_dir()."/adminer.version";if(!$_COOKIE["adminer_version"]&&function_exists('openssl_verify')&&file_exists($p)&&filemtime($p)+86400>time()){$Yi=unserialize(file_get_contents($p));$tg="-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwqWOVuF5uw7/+Z70djoK RlHIZFZPO0uYRezq90+7Amk+FDNd7KkL5eDve+vHRJBLAszF/7XKXe11xwliIsFs DFWQlsABVZB3oisKCBEuI71J4kPH8dKGEWR9jDHFw3cWmoH3PmqImX6FISWbG3B8 h7FIx3jEaw5ckVPVTeo5JRm/1DZzJxjyDenXvBQ/6o9DgZKeNDgxwKzH+sw9/YCO jHnq1cFpOIISzARlrHMa/43YfeNRAm/tsBXjSxembBPo7aQZLAWHmaj5+K19H10B nCpz9Y++cipkVEiKRGih4ZEvjoFysEOdRLj6WiD/uUNky4xGeA6LaJqh5XpkFkcQ fQIDAQAB -----END PUBLIC KEY----- ";if(openssl_verify($Yi["version"],base64_decode($Yi["signature"]),$tg)==1)$_COOKIE["adminer_version"]=$Yi["version"];}echo' mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick',(isset($_COOKIE["adminer_version"])?"":", onload: partial(verifyVersion, '$ia', '".js_escape(ME)."', '".get_token()."')");?>}); document.body.className = document.body.className.replace(/ nojs/, ' js'); var offlineMessage = ' ',script("mixin(qs('#help'), {onmouseover: function () { helpOpen = 1; }, onmouseout: helpMouseout});"),'
    ';if($Va!==null){$_=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'

    $ji

    \n","\n";restart_session();page_messages($m);$j=&get_session("dbs");if(DB!=""&&$j&&!in_array(DB,$j,true))$j=null;stop_session();define("PAGE_HEADER",1);}function page_headers(){global$b;header("Content-Type: text/html; charset=utf-8");header("Cache-Control: no-cache");header("X-Frame-Options: deny");header("X-XSS-Protection: 0");header("X-Content-Type-Options: nosniff");header("Referrer-Policy: origin-when-cross-origin");foreach($b->csp()as$Pb){$Ed=array();foreach($Pb as$y=>$X)$Ed[]="$y $X";header("Content-Security-Policy: ".implode("; ",$Ed));}$b->headers();}function csp(){return array(array("script-src"=>"'self' 'unsafe-inline' 'nonce-".get_nonce()."' 'strict-dynamic'","connect-src"=>"'self'","frame-src"=>"https://www.adminer.org","object-src"=>"'none'","base-uri"=>"'none'","form-action"=>"'self'",),);}function get_nonce(){static$ff;if(!$ff)$ff=base64_encode(rand_string());return$ff;}function page_messages($m){$Li=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Se=$_SESSION["messages"][$Li];if($Se){echo"
    ".implode("
    \n
    ",$Se)."
    ".script("messagesPrint();");unset($_SESSION["messages"][$Li]);}if($m)echo"
    $m
    \n";}function page_footer($Ve=""){global$b,$oi;echo'
    ';if($Ve!="auth"){echo'

    ',h($_GET["username"])."\n",'

    ';}echo script("setupSubmitHighlight(document);");}function int32($Ye){while($Ye>=2147483648)$Ye-=4294967296;while($Ye<=-2147483649)$Ye+=4294967296;return(int)$Ye;}function long2str($W,$cj){$Wg='';foreach($W as$X)$Wg.=pack('V',$X);if($cj)return substr($Wg,0,end($W));return$Wg;}function str2long($Wg,$cj){$W=array_values(unpack('V*',str_pad($Wg,4*ceil(strlen($Wg)/4),"\0")));if($cj)$W[]=strlen($Wg);return$W;}function xxtea_mx($oj,$nj,$Lh,$ie){return int32((($oj>>5&0x7FFFFFF)^$nj<<2)+(($nj>>3&0x1FFFFFFF)^$oj<<4))^int32(($Lh^$nj)+($ie^$oj));}function encrypt_string($Gh,$y){if($Gh=="")return"";$y=array_values(unpack("V*",pack("H*",md5($y))));$W=str2long($Gh,true);$Ye=count($W)-1;$oj=$W[$Ye];$nj=$W[0];$ug=floor(6+52/($Ye+1));$Lh=0;while($ug-->0){$Lh=int32($Lh+0x9E3779B9);$vc=$Lh>>2&3;for($Of=0;$Of<$Ye;$Of++){$nj=$W[$Of+1];$Xe=xxtea_mx($oj,$nj,$Lh,$y[$Of&3^$vc]);$oj=int32($W[$Of]+$Xe);$W[$Of]=$oj;}$nj=$W[0];$Xe=xxtea_mx($oj,$nj,$Lh,$y[$Of&3^$vc]);$oj=int32($W[$Ye]+$Xe);$W[$Ye]=$oj;}return long2str($W,false);}function decrypt_string($Gh,$y){if($Gh=="")return"";if(!$y)return false;$y=array_values(unpack("V*",pack("H*",md5($y))));$W=str2long($Gh,false);$Ye=count($W)-1;$oj=$W[$Ye];$nj=$W[0];$ug=floor(6+52/($Ye+1));$Lh=int32($ug*0x9E3779B9);while($Lh){$vc=$Lh>>2&3;for($Of=$Ye;$Of>0;$Of--){$oj=$W[$Of-1];$Xe=xxtea_mx($oj,$nj,$Lh,$y[$Of&3^$vc]);$nj=int32($W[$Of]-$Xe);$W[$Of]=$nj;}$oj=$W[$Ye];$Xe=xxtea_mx($oj,$nj,$Lh,$y[$Of&3^$vc]);$nj=int32($W[0]-$Xe);$W[0]=$nj;$Lh=int32($Lh-0x9E3779B9);}return long2str($W,true);}$g='';$Dd=$_SESSION["token"];if(!$Dd)$_SESSION["token"]=rand(1,1e6);$oi=get_token();$cg=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$X){list($y)=explode(":",$X);$cg[$y]=$X;}}function add_invalid_login(){global$b;$r=file_open_lock(get_temp_dir()."/adminer.invalid");if(!$r)return;$be=unserialize(stream_get_contents($r));$ei=time();if($be){foreach($be as$ce=>$X){if($X[0]<$ei)unset($be[$ce]);}}$ae=&$be[$b->bruteForceKey()];if(!$ae)$ae=array($ei+30*60,0);$ae[1]++;file_write_unlock($r,serialize($be));}function check_invalid_login(){global$b;$be=unserialize(@file_get_contents(get_temp_dir()."/adminer.invalid"));$ae=($be?$be[$b->bruteForceKey()]:array());$ef=($ae[1]>29?$ae[0]-time():0);if($ef>0)auth_error(lang(82,ceil($ef/60)));}$Ja=$_POST["auth"];if($Ja){session_regenerate_id();$Xi=$Ja["driver"];$M=$Ja["server"];$V=$Ja["username"];$F=(string)$Ja["password"];$k=$Ja["db"];set_password($Xi,$M,$V,$F);$_SESSION["db"][$Xi][$M][$V][$k]=true;if($Ja["permanent"]){$y=base64_encode($Xi)."-".base64_encode($M)."-".base64_encode($V)."-".base64_encode($k);$og=$b->permanentLogin(true);$cg[$y]="$y:".base64_encode($og?encrypt_string($F,$og):"");cookie("adminer_permanent",implode(" ",$cg));}if(count($_POST)==1||DRIVER!=$Xi||SERVER!=$M||$_GET["username"]!==$V||DB!=$k)redirect(auth_url($Xi,$M,$V,$k));}elseif($_POST["logout"]&&(!$Dd||verify_token())){foreach(array("pwds","db","dbs","queries")as$y)set_session($y,null);unset_permanent();redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),lang(83).' '.lang(84));}elseif($cg&&!$_SESSION["pwds"]){session_regenerate_id();$og=$b->permanentLogin();foreach($cg as$y=>$X){list(,$jb)=explode(":",$X);list($Xi,$M,$V,$k)=array_map('base64_decode',explode("-",$y));set_password($Xi,$M,$V,decrypt_string(base64_decode($jb),$og));$_SESSION["db"][$Xi][$M][$V][$k]=true;}}function unset_permanent(){global$cg;foreach($cg as$y=>$X){list($Xi,$M,$V,$k)=array_map('base64_decode',explode("-",$y));if($Xi==DRIVER&&$M==SERVER&&$V==$_GET["username"]&&$k==DB)unset($cg[$y]);}cookie("adminer_permanent",implode(" ",$cg));}function auth_error($m){global$b,$Dd;$mh=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$mh]||$_GET[$mh])&&!$Dd)$m=lang(85);else{restart_session();add_invalid_login();$F=get_password();if($F!==null){if($F===false)$m.=($m?'
    ':'').lang(86,target_blank(),'permanentLogin()');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent();}}if(!$_COOKIE[$mh]&&$_GET[$mh]&&ini_bool("session.use_only_cookies"))$m=lang(87);$Rf=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?$_COOKIE["adminer_key"]:rand_string()),$Rf["lifetime"]);page_header(lang(37),$m,null);echo"
    \n","
    ";if(hidden_fields($_POST,array("auth")))echo"

    ".lang(88)."\n";echo"

    \n";$b->loginForm();echo"
    \n";page_footer("auth");exit;}if(isset($_GET["username"])&&!class_exists("Min_DB")){unset($_SESSION["pwds"][DRIVER]);unset_permanent();page_header(lang(89),lang(90,implode(", ",$ig)),false);page_footer("auth");exit;}stop_session(true);if(isset($_GET["username"])&&is_string(get_password())){list($Id,$eg)=explode(":",SERVER,2);if(preg_match('~^\s*([-+]?\d+)~',$eg,$B)&&($B[1]<1024||$B[1]>65535))auth_error(lang(91));check_invalid_login();$g=connect();$l=new Min_Driver($g);}$Ae=null;if(!is_object($g)||($Ae=$b->login($_GET["username"],get_password()))!==true){$m=(is_string($g)?nl_br(h($g)):(is_string($Ae)?$Ae:lang(92)));auth_error($m.(preg_match('~^ | $~',get_password())?'
    '.lang(93):''));}if($_POST["logout"]&&$Dd&&!verify_token()){page_header(lang(81),lang(94));page_footer("db");exit;}if($Ja&&$_POST["token"])$_POST["token"]=$oi;$m='';if($_POST){if(!verify_token()){$Vd="max_input_vars";$Le=ini_get($Vd);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$y){$X=ini_get($y);if($X&&(!$Le||$X<$Le)){$Vd=$y;$Le=$X;}}}$m=(!$_POST["token"]&&$Le?lang(95,"'$Vd'"):lang(94).' '.lang(96));}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$m=lang(97,"'post_max_size'");if(isset($_GET["sql"]))$m.=' '.lang(98);}function select($H,$h=null,$Ef=array(),$z=0){global$x;$_e=array();$w=array();$e=array();$Ta=array();$U=array();$I=array();for($t=0;(!$z||$t<$z)&&($J=$H->fetch_row());$t++){if(!$t){echo"
    \n","\n","";for($he=0;$hefetch_field();$C=$n->name;$Df=$n->orgtable;$Cf=$n->orgname;$I[$n->table]=$Df;if($Ef&&$x=="sql")$_e[$he]=($C=="table"?"table=":($C=="possible_keys"?"indexes=":null));elseif($Df!=""){if(!isset($w[$Df])){$w[$Df]=array();foreach(indexes($Df,$h)as$v){if($v["type"]=="PRIMARY"){$w[$Df]=array_flip($v["columns"]);break;}}$e[$Df]=$w[$Df];}if(isset($e[$Df][$Cf])){unset($e[$Df][$Cf]);$w[$Df][$Cf]=$he;$_e[$he]=$Df;}}if($n->charsetnr==63)$Ta[$he]=true;$U[$he]=$n->type;echo"name!=$Cf?" title='".h(($Df!=""?"$Df.":"").$Cf)."'":"").">".h($C).($Ef?doc_link(array('sql'=>"explain-output.html#explain_".strtolower($C),'mariadb'=>"explain/#the-columns-in-explain-select",)):"");}echo"\n";}echo"";foreach($J as$y=>$X){$_="";if(isset($_e[$y])&&!$e[$_e[$y]]){if($Ef&&$x=="sql"){$Q=$J[array_search("table=",$_e)];$_=ME.$_e[$y].urlencode($Ef[$Q]!=""?$Ef[$Q]:$Q);}else{$_=ME."edit=".urlencode($_e[$y]);foreach($w[$_e[$y]]as$nb=>$he)$_.="&where".urlencode("[".bracket_escape($nb)."]")."=".urlencode($J[$he]);}}elseif(is_url($X))$_=$X;if($X===null)$X="NULL";elseif($Ta[$y]&&!is_utf8($X))$X="".lang(46,strlen($X))."";else{$X=h($X);if($U[$y]==254)$X="$X";}if($_)$X="$X";echo"
    $X";}}echo($t?"
    \n
    ":"

    ".lang(13))."\n";return$I;}function referencable_primary($eh){$I=array();foreach(table_status('',true)as$Ph=>$Q){if($Ph!=$eh&&fk_support($Q)){foreach(fields($Ph)as$n){if($n["primary"]){if($I[$Ph]){unset($I[$Ph]);break;}$I[$Ph]=$n;}}}}return$I;}function adminer_settings(){parse_str($_COOKIE["adminer_settings"],$oh);return$oh;}function adminer_setting($y){$oh=adminer_settings();return$oh[$y];}function set_adminer_settings($oh){return cookie("adminer_settings",http_build_query($oh+adminer_settings()));}function textarea($C,$Y,$K=10,$sb=80){global$x;echo"";}function select_input($Ia,$D,$Y="",$uf="",$dg=""){$Wh=($D?"select":"input");return"<$Wh$Ia".($D?">

    ".lang(118,$oc[DRIVER],"".h($g->server_info)."","$g->extension")."\n","

    ".lang(119,"".h(logged_user())."")."\n";$j=$b->databases();if($j){$Zg=support("scheme");$qb=collations();echo"

    \n","\n",script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"),"".(support("database")?"\n";$j=($_GET["dbsize"]?count_tables($j):array_flip($j));foreach($j as$k=>$S){$Rg=h(ME)."db=".urlencode($k);$Kd=h("Db-".$k);echo"".(support("database")?"
    ":"")."".lang(36)." - ".lang(120).""."".lang(121)."".lang(122)."".lang(123)." - ".lang(124)."".script("qsl('a').onclick = partial(ajaxSetHtml, '".js_escape(ME)."script=connect');","")."
    ".checkbox("db[]",$k,in_array($k,(array)$_POST["db"]),"","","",$Kd):""),"".h($k)."";$pb=h(db_collation($k,$qb));echo"".(support("database")?"$pb":$pb),"".($_GET["dbsize"]?$S:"?")."","".($_GET["dbsize"]?db_size($k):"?"),"\n";}echo"
    \n",(support("database")?"\n":""),"\n","
    \n",script("tableCheck();");}}page_footer("db");}if(isset($_GET["status"]))$_GET["variables"]=$_GET["status"];if(isset($_GET["import"]))$_GET["sql"]=$_GET["import"];if(!(DB!=""?$g->select_db(DB):isset($_GET["sql"])||isset($_GET["dump"])||isset($_GET["database"])||isset($_GET["processlist"])||isset($_GET["privileges"])||isset($_GET["user"])||isset($_GET["variables"])||$_GET["script"]=="connect"||$_GET["script"]=="kill")){if(DB!=""||$_GET["refresh"]){restart_session();set_session("dbs",null);}connect_error();exit;}if(support("scheme")){if(DB!=""&&$_GET["ns"]!==""){if(!isset($_GET["ns"]))redirect(preg_replace('~ns=[^&]*&~','',ME)."ns=".get_schema());if(!set_schema($_GET["ns"])){header("HTTP/1.1 404 Not Found");page_header(lang(75).": ".h($_GET["ns"]),lang(127),true);page_footer("ns");exit;}}}$tf="RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT";class TmpFile{var$handler;var$size;function __construct(){$this->handler=tmpfile();}function write($Gb){$this->size+=strlen($Gb);fwrite($this->handler,$Gb);}function send(){fseek($this->handler,0);fpassthru($this->handler);fclose($this->handler);}}$Fc="'(?:''|[^'\\\\]|\\\\.)*'";$Wd="IN|OUT|INOUT";if(isset($_GET["select"])&&($_POST["edit"]||$_POST["clone"])&&!$_POST["save"])$_GET["edit"]=$_GET["select"];if(isset($_GET["callf"]))$_GET["call"]=$_GET["callf"];if(isset($_GET["function"]))$_GET["procedure"]=$_GET["function"];if(isset($_GET["download"])){$a=$_GET["download"];$o=fields($a);header("Content-Type: application/octet-stream");header("Content-Disposition: attachment; filename=".friendly_url("$a-".implode("_",$_GET["where"])).".".friendly_url($_GET["field"]));$L=array(idf_escape($_GET["field"]));$H=$l->select($a,$L,array(where($_GET,$o)),$L);$J=($H?$H->fetch_row():array());echo$l->value($J[0],$o[$_GET["field"]]);exit;}elseif(isset($_GET["table"])){$a=$_GET["table"];$o=fields($a);if(!$o)$m=error();$R=table_status1($a,true);$C=$b->tableName($R);page_header(($o&&is_view($R)?$R['Engine']=='materialized view'?lang(128):lang(129):lang(130)).": ".($C!=""?$C:h($a)),$m);$Qg=array();foreach($o as$y=>$n)$Qg+=$n["privileges"];$b->selectLinks($R,(isset($Qg["insert"])||!support("table")?"":null));$wb=$R["Comment"];if($wb!="")echo"

    ".lang(49).": ".h($wb)."\n";if($o)$b->tableStructurePrint($o);if(!is_view($R)){if(support("indexes")){echo"

    ".lang(131)."

    \n";$w=indexes($a);if($w)$b->tableIndexesPrint($w);echo'

    ".lang(99)."

    \n";$nd=foreign_keys($a);if($nd){echo"\n","\n";foreach($nd as$C=>$q){echo"","
    ".lang(133)."".lang(134)."".lang(102)."".lang(101)."
    ".implode(", ",array_map('h',$q["source"]))."","".($q["db"]!=""?"".h($q["db"]).".":"").($q["ns"]!=""?"".h($q["ns"]).".":"").h($q["table"])."","(".implode(", ",array_map('h',$q["target"])).")","".h($q["on_delete"]),"".h($q["on_update"]),''.lang(135).'',"\n";}echo"
    \n";}echo'

    ".lang(137)."

    \n";$eb=check_constraints($a);if($eb){echo"\n";foreach($eb as$y=>$X){echo"","
    ".h($X),"".lang(135)."","\n";}echo"
    \n";}echo'

    ".lang(139)."

    \n";$_i=triggers($a);if($_i){echo"\n";foreach($_i as$y=>$X)echo"
    ".h($X[0])."".h($X[1])."".h($y)."".lang(135)."\n";echo"
    \n";}echo'
    qs(\'#schema\').onselectstart = function () { return false; }; var tablePos = {',implode(",",$Sh)."\n",'}; var em = qs(\'#schema\').offsetHeight / ',$pi,'; document.onmousemove = schemaMousemove; document.onmouseup = partialArg(schemaMouseup, \'',js_escape(DB),'\'); ';foreach($Yg as$C=>$Q){echo"
    ",''.h($C)."",script("qsl('div').onmousedown = schemaMousedown;");foreach($Q["fields"]as$n){$X=''.h($n["field"]).'';echo"
    ".($n["primary"]?"$X":$X);}foreach((array)$Q["references"]as$Yh=>$Eg){foreach($Eg as$te=>$Ag){$ue=$te-$Rh[$C][1];$t=0;foreach($Ag[0]as$wh)echo"\n
    ";}}foreach((array)$Dg[$C]as$Yh=>$Eg){foreach($Eg as$te=>$e){$ue=$te-$Rh[$C][1];$t=0;foreach($e as$Xh)echo"\n
    ";}}echo"\n
    \n";}foreach($Yg as$C=>$Q){foreach((array)$Q["references"]as$Yh=>$Eg){foreach($Eg as$te=>$Ag){$Ue=$pi;$Je=-10;foreach($Ag[0]as$y=>$wh){$gg=$Q["pos"][0]+$Q["fields"][$wh]["pos"];$hg=$Yg[$Yh]["pos"][0]+$Yg[$Yh]["fields"][$Ag[1][$y]]["pos"];$Ue=min($Ue,$gg,$hg);$Je=max($Je,$gg,$hg);}echo"
    \n";}}}echo'
    ';$Yb=array('','USE','DROP+CREATE','CREATE');$Th=array('','DROP+CREATE','CREATE');$Ub=array('','TRUNCATE+INSERT','INSERT');if($x=="sql")$Ub[]='INSERT+UPDATE';parse_str($_COOKIE["adminer_export"],$J);if(!$J)$J=array("output"=>"text","format"=>"sql","db_style"=>(DB!=""?"":"CREATE"),"table_style"=>"DROP+CREATE","data_style"=>"INSERT");if(!isset($J["events"])){$J["routines"]=$J["events"]=($_GET["dump"]=="");$J["triggers"]=$J["table_style"];}echo"
    ".lang(142)."".html_select("output",$b->dumpOutput(),$J["output"],0)."\n";echo"
    ".lang(143)."".html_select("format",$b->dumpFormat(),$J["format"],0)."\n";echo($x=="sqlite"?"":"
    ".lang(36)."".html_select('db_style',$Yb,$J["db_style"]).(support("routine")?checkbox("routines",1,$J["routines"],lang(144)):"").(support("event")?checkbox("events",1,$J["events"],lang(145)):"")),"
    ".lang(122)."".html_select('table_style',$Th,$J["table_style"]).checkbox("auto_increment",1,$J["auto_increment"],lang(50)).(support("trigger")?checkbox("triggers",1,$J["triggers"],lang(139)):""),"
    ".lang(146)."".html_select('data_style',$Ub,$J["data_style"]),'

    ',script("qsl('table').onclick = dumpClick;");$kg=array();if(DB!=""){$gb=($a!=""?"":" checked");echo"","\n";$aj="";$Uh=tables_list();foreach($Uh as$C=>$T){$jg=preg_replace('~_.*~','',$C);$gb=($a==""||$a==(substr($a,-1)=="%"?"$jg%":$C));$ng="\n";$j=$b->databases();if($j){foreach($j as$k){if(!information_schema($k)){$jg=preg_replace('~_.*~','',$k);echo"
    ".script("qs('#check-tables').onclick = partial(formCheck, /^tables\\[/);",""),"".script("qs('#check-data').onclick = partial(formCheck, /^data\\[/);",""),"
    ".checkbox("tables[]",$C,$gb,$C,"","block");if($T!==null&&!preg_match('~table~i',$T))$aj.="$ng\n";else echo"$ng\n";$kg[$jg]++;}echo$aj;if($Uh)echo script("ajaxSetHtml('".js_escape(ME)."script=db');");}else{echo"
    ","",script("qs('#check-databases').onclick = partial(formCheck, /^databases\\[/);",""),"
    ".checkbox("databases[]",$k,$a==""||$a=="$jg%",$k,"","block")."\n";$kg[$jg]++;}}}else echo"
    ";}echo'

    ';$ed=true;foreach($kg as$y=>$X){if($y!=""&&$X>1){echo($ed?"

    ":" ")."".h($y)."";$ed=false;}}}elseif(isset($_GET["privileges"])){page_header(lang(70));echo'

    \n";hidden_fields_get();echo"\n",($ud?"":"\n"),"\n","\n";while($J=$H->fetch_assoc())echo'
    ".lang(34)."".lang(33)."
    '.h($J["User"])."".h($J["Host"]).''.lang(11)."\n";if(!$ud||DB!="")echo"
    \n";echo"
    \n","

    \n";}elseif(isset($_GET["sql"])){if(!$m&&$_POST["export"]){dump_headers("sql");$b->dumpTable("","");$b->dumpData("","table",$_POST["query"]);exit;}restart_session();$Hd=&get_session("queries");$Gd=&$Hd[DB];if(!$m&&$_POST["clear"]){$Gd=array();redirect(remove_from_uri("history"));}page_header((isset($_GET["import"])?lang(71):lang(63)),$m);if(!$m&&$_POST){$r=false;if(!isset($_GET["import"]))$G=$_POST["query"];elseif($_POST["webfile"]){$_h=$b->importServerPath();$r=@fopen((file_exists($_h)?$_h:"compress.zlib://$_h.gz"),"rb");$G=($r?fread($r,1e6):false);}else$G=get_file("sql_file",true);if(is_string($G)){if(function_exists('memory_get_usage')&&($Ne=ini_bytes("memory_limit"))!="-1")@ini_set("memory_limit",max($Ne,2*strlen($G)+memory_get_usage()+8e6));if($G!=""&&strlen($G)<1e6){$ug=$G.(preg_match("~;[ \t\r\n]*\$~",$G)?"":";");if(!$Gd||reset(end($Gd))!=$ug){restart_session();$Gd[]=array($ug,time());set_session("queries",$Hd);stop_session();}}$xh="(?:\\s|/\\*[\s\S]*?\\*/|(?:#|-- )[^\n]*\n?|--\r?\n)";$fc=";";$lf=0;$Cc=true;$h=connect();if(is_object($h)&&DB!=""){$h->select_db(DB);if($_GET["ns"]!="")set_schema($_GET["ns"],$h);}$vb=0;$Ic=array();$Sf='[\'"'.($x=="sql"?'`#':($x=="sqlite"?'`[':($x=="mssql"?'[':''))).']|/\*|-- |$'.($x=="pgsql"?'|\$[^$]*\$':'');$qi=microtime(true);parse_str($_COOKIE["adminer_export"],$ya);$uc=$b->dumpFormat();unset($uc["sql"]);while($G!=""){if(!$lf&&preg_match("~^$xh*+DELIMITER\\s+(\\S+)~i",$G,$B)){$fc=$B[1];$G=substr($G,strlen($B[0]));}else{preg_match('('.preg_quote($fc)."\\s*|$Sf)",$G,$B,PREG_OFFSET_CAPTURE,$lf);list($pd,$fg)=$B[0];if(!$pd&&$r&&!feof($r))$G.=fread($r,1e5);else{if(!$pd&&rtrim($G)=="")break;$lf=$fg+strlen($pd);if($pd&&rtrim($pd)!=$fc){$Za=$l->hasCStyleEscapes()||($x=="pgsql"&&($fg>0&&strtolower($G[$fg-1])=="e"));$ag=($pd=='/*'?'\*/':($pd=='['?']':(preg_match('~^-- |^#~',$pd)?"\n":preg_quote($pd).($Za?"|\\\\.":""))));while(preg_match("($ag|\$)s",$G,$B,PREG_OFFSET_CAPTURE,$lf)){$Wg=$B[0][0];if(!$Wg&&$r&&!feof($r))$G.=fread($r,1e5);else{$lf=$B[0][1]+strlen($Wg);if(!$Wg||$Wg[0]!="\\")break;}}}else{$Cc=false;$ug=substr($G,0,$fg);$vb++;$ng="
    ".$b->sqlCommandQuery($ug)."
    \n";if($x=="sqlite"&&preg_match("~^$xh*+ATTACH\\b~i",$ug,$B)){echo$ng,"

    ".lang(148)."\n";$Ic[]=" $vb";if($_POST["error_stops"])break;}else{if(!$_POST["only_errors"]){echo$ng;ob_flush();flush();}$Eh=microtime(true);if($g->multi_query($ug)&&is_object($h)&&preg_match("~^$xh*+USE\\b~i",$ug))$h->query($ug);do{$H=$g->store_result();if($g->error){echo($_POST["only_errors"]?$ng:""),"

    ".lang(149).($g->errno?" ($g->errno)":"").": ".error()."\n";$Ic[]=" $vb";if($_POST["error_stops"])break 2;}else{$ei=" (".format_time($Eh).")".(strlen($ug)<1000?" ".lang(11)."":"");$_a=$g->affected_rows;$dj=($_POST["only_errors"]?"":$l->warnings());$ej="warnings-$vb";if($dj)$ei.=", ".lang(45)."".script("qsl('a').onclick = partial(toggle, '$ej');","");$Qc=null;$Rc="explain-$vb";if(is_object($H)){$z=$_POST["limit"];$Ef=select($H,$h,array(),$z);if(!$_POST["only_errors"]){echo"

    \n";$hf=$H->num_rows;echo"

    ".($hf?($z&&$hf>$z?lang(150,$z):"").lang(151,$hf):""),$ei;if($h&&preg_match("~^($xh|\\()*+SELECT\\b~i",$ug)&&($Qc=explain($h,$ug)))echo", Explain".script("qsl('a').onclick = partial(toggle, '$Rc');","");$Kd="export-$vb";echo", ".lang(72)."".script("qsl('a').onclick = partial(toggle, '$Kd');","")."\n"."

    \n";}}else{if(preg_match("~^$xh*+(CREATE|DROP|ALTER)$xh++(DATABASE|SCHEMA)\\b~i",$ug)){restart_session();set_session("dbs",null);stop_session();}if(!$_POST["only_errors"])echo"

    ".lang(152,$_a)."$ei\n";}echo($dj?"

    \n":"");if($Qc){echo"\n";}}$Eh=microtime(true);}while($g->next_result());}$G=substr($G,$lf);$lf=0;}}}}if($Cc)echo"

    ".lang(153)."\n";elseif($_POST["only_errors"]){echo"

    ".lang(154,$vb-count($Ic))," (".format_time($qi).")\n";}elseif($Ic&&$vb>1)echo"

    ".lang(149).": ".implode("",$Ic)."\n";}else echo"

    ".upload_error($G)."\n";}echo'

    ';$Oc="";if(!isset($_GET["import"])){$ug=$_GET["sql"];if($_POST)$ug=$_POST["query"];elseif($_GET["history"]=="all")$ug=$Gd;elseif($_GET["history"]!="")$ug=$Gd[$_GET["history"]][0];echo"

    ";textarea("query",$ug,20);echo script(($_POST?"":"qs('textarea').focus();\n")."qs('#form').onsubmit = partial(sqlSubmit, qs('#form'), '".js_escape(remove_from_uri("sql|limit|error_stops|only_errors|history"))."');"),"

    $Oc\n",lang(156).": \n";}else{echo"

    ".lang(157)."
    ";$_d=(extension_loaded("zlib")?"[.gz]":"");echo(ini_bool("file_uploads")?"SQL$_d (< ".ini_get("upload_max_filesize")."B): \n$Oc":lang(158)),"
    \n";$Nd=$b->importServerPath();if($Nd){echo"
    ".lang(159)."
    ",lang(160,"".h($Nd)."$_d"),' ',"
    \n";}echo"

    ";}echo checkbox("error_stops",1,($_POST?$_POST["error_stops"]:isset($_GET["import"])||$_GET["error_stops"]),lang(162))."\n",checkbox("only_errors",1,($_POST?$_POST["only_errors"]:isset($_GET["import"])||$_GET["only_errors"]),lang(163))."\n","\n";if(!isset($_GET["import"])&&$Gd){print_fieldset("history",lang(164),$_GET["history"]!="");for($X=end($Gd);$X;$X=prev($Gd)){$y=key($Gd);list($ug,$ei,$yc)=$X;echo''.lang(11).""." ".@date("H:i:s",$ei).""." ".shorten_utf8(ltrim(str_replace("\n"," ",str_replace("\r","",preg_replace('~^(#|-- ).*~m','',$ug)))),80,"").($yc?" ($yc)":"")."
    \n";}echo"\n","".lang(166)."\n","\n";}echo'

    ';}elseif(isset($_GET["edit"])){$a=$_GET["edit"];$o=fields($a);$Z=(isset($_GET["select"])?($_POST["check"]&&count($_POST["check"])==1?where_check($_POST["check"][0],$o):""):where($_GET,$o));$Ki=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($o as$C=>$n){if(!isset($n["privileges"][$Ki?"update":"insert"])||$b->fieldName($n)==""||$n["generated"])unset($o[$C]);}if($_POST&&!$m&&!isset($_GET["select"])){$A=$_POST["referer"];if($_POST["insert"])$A=($Ki?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$A))$A=ME."select=".urlencode($a);$w=indexes($a);$Fi=unique_array($_GET["where"],$w);$xg="\nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($A,lang(167),$l->delete($a,$xg,!$Fi));else{$N=array();foreach($o as$C=>$n){$X=process_input($n);if($X!==false&&$X!==null)$N[idf_escape($C)]=$X;}if($Ki){if(!$N)redirect($A);queries_redirect($A,lang(168),$l->update($a,$N,$xg,!$Fi));if(is_ajax()){page_headers();page_messages($m);exit;}}else{$H=$l->insert($a,$N);$se=($H?last_id():0);queries_redirect($A,lang(169,($se?" $se":"")),$H);}}}$J=null;if($_POST["save"])$J=(array)$_POST["fields"];elseif($Z){$L=array();foreach($o as$C=>$n){if(isset($n["privileges"]["select"])){$Ga=convert_field($n);if($_POST["clone"]&&$n["auto_increment"])$Ga="''";if($x=="sql"&&preg_match("~enum|set~",$n["type"]))$Ga="1*".idf_escape($C);$L[]=($Ga?"$Ga AS ":"").idf_escape($C);}}$J=array();if(!support("table"))$L=array("*");if($L){$H=$l->select($a,$L,array($Z),$L,array(),(isset($_GET["select"])?2:1));if(!$H)$m=error();else{$J=$H->fetch_assoc();if(!$J)$J=false;}if(isset($_GET["select"])&&(!$J||$H->fetch_assoc()))$J=null;}}if(!support("table")&&!$o){if(!$Z){$H=$l->select($a,array("*"),$Z,array("*"));$J=($H?$H->fetch_assoc():false);if(!$J)$J=array($l->primary=>"");}if($J){foreach($J as$y=>$X){if(!$Z)$J[$y]=null;$o[$y]=array("field"=>$y,"null"=>($y!=$l->primary),"auto_increment"=>($y==$l->primary));}}}edit_form($a,$o,$J,$Ki);}elseif(isset($_GET["create"])){$a=$_GET["create"];$Uf=array();foreach(array('HASH','LINEAR HASH','KEY','LINEAR KEY','RANGE','LIST')as$y)$Uf[$y]=$y;$Cg=referencable_primary($a);$nd=array();foreach($Cg as$Ph=>$n)$nd[str_replace("`","``",$Ph)."`".str_replace("`","``",$n["field"])]=$Ph;$Hf=array();$R=array();if($a!=""){$Hf=fields($a);$R=table_status($a);if(!$R)$m=lang(10);}$J=$_POST;$J["fields"]=(array)$J["fields"];if($J["auto_increment_col"])$J["fields"][$J["auto_increment_col"]]["auto_increment"]=true;if($_POST)set_adminer_settings(array("comments"=>$_POST["comments"],"defaults"=>$_POST["defaults"]));if($_POST&&!process_fields($J["fields"])&&!$m){if($_POST["drop"])queries_redirect(substr(ME,0,-1),lang(170),drop_tables(array($a)));else{$o=array();$Da=array();$Oi=false;$ld=array();$Gf=reset($Hf);$Ba=" FIRST";foreach($J["fields"]as$y=>$n){$q=$nd[$n["type"]];$Ai=($q!==null?$Cg[$q]:$n);if($n["field"]!=""){if(!$n["has_default"])$n["default"]=null;$sg=process_field($n,$Ai);$Da[]=array($n["orig"],$sg,$Ba);if(!$Gf||$sg!==process_field($Gf,$Gf)){$o[]=array($n["orig"],$sg,$Ba);if($n["orig"]!=""||$Ba)$Oi=true;}if($q!==null)$ld[idf_escape($n["field"])]=($a!=""&&$x!="sqlite"?"ADD":" ").format_foreign_key(array('table'=>$nd[$n["type"]],'source'=>array($n["field"]),'target'=>array($Ai["field"]),'on_delete'=>$n["on_delete"],));$Ba=" AFTER ".idf_escape($n["field"]);}elseif($n["orig"]!=""){$Oi=true;$o[]=array($n["orig"]);}if($n["orig"]!=""){$Gf=next($Hf);if(!$Gf)$Ba="";}}$Wf="";if(support("partitioning")){if(isset($Uf[$J["partition_by"]])){$Rf=array_filter($J,function($y){return preg_match('~^partition~',$y);},ARRAY_FILTER_USE_KEY);foreach($Rf["partition_names"]as$y=>$C){if($C==""){unset($Rf["partition_names"][$y]);unset($Rf["partition_values"][$y]);}}if($Rf!=get_partitions_info($a)){$Xf=array();if($Rf["partition_by"]=='RANGE'||$Rf["partition_by"]=='LIST'){foreach($Rf["partition_names"]as$y=>$C){$Y=$Rf["partition_values"][$y];$Xf[]="\n PARTITION ".idf_escape($C)." VALUES ".($Rf["partition_by"]=='RANGE'?"LESS THAN":"IN").($Y!=""?" ($Y)":" MAXVALUE");}}$Wf.="\nPARTITION BY $Rf[partition_by]($Rf[partition])";if($Xf)$Wf.=" (".implode(",",$Xf)."\n)";elseif($Rf["partitions"])$Wf.=" PARTITIONS ".(+$Rf["partitions"]);}}elseif(preg_match("~partitioned~",$R["Create_options"]))$Wf.="\nREMOVE PARTITIONING";}$Oe=lang(171);if($a==""){cookie("adminer_engine",$J["Engine"]);$Oe=lang(172);}$C=trim($J["name"]);queries_redirect(ME.(support("table")?"table=":"select=").urlencode($C),$Oe,alter_table($a,$C,($x=="sqlite"&&($Oi||$ld)?$Da:$o),$ld,($J["Comment"]!=$R["Comment"]?$J["Comment"]:null),($J["Engine"]&&$J["Engine"]!=$R["Engine"]?$J["Engine"]:""),($J["Collation"]&&$J["Collation"]!=$R["Collation"]?$J["Collation"]:""),($J["Auto_increment"]!=""?number($J["Auto_increment"]):""),$Wf));}}page_header(($a!=""?lang(43):lang(73)),$m,array("table"=>$a),h($a));if(!$_POST){$J=array("Engine"=>$_COOKIE["adminer_engine"],"fields"=>array(array("field"=>"","type"=>(isset($U["int"])?"int":(isset($U["integer"])?"integer":"")),"on_update"=>"")),"partition_names"=>array(""),);if($a!=""){$J=$R;$J["name"]=$a;$J["fields"]=array();if(!$_GET["auto_increment"])$J["Auto_increment"]="";foreach($Hf as$n){$n["has_default"]=isset($n["default"]);$J["fields"][]=$n;}if(support("partitioning")){$J+=get_partitions_info($a);$J["partition_names"][]="";$J["partition_values"][]="";}}}$qb=collations();$Ec=engines();foreach($Ec as$Dc){if(!strcasecmp($Dc,$J["Engine"])){$J["Engine"]=$Dc;break;}}echo'

    ';if(support("columns")||$a==""){echo lang(173),': ',($Ec?"".on_help("getTarget(event).value",1).script("qsl('select').onchange = helpClose;"):""),' ',($qb&&!preg_match("~sqlite|mssql~",$x)?html_select("Collation",array(""=>"(".lang(100).")")+$qb,$J["Collation"]):""),' ';}echo' ';if(support("columns")){echo'

    ';edit_fields($J["fields"],$qb,"TABLE",$nd);echo'
    ',script("editFields();"),'

    ',lang(50),': ',checkbox("defaults",1,($_POST?$_POST["defaults"]:adminer_setting("defaults")),lang(175),"columnShow(this.checked, 5)","jsonly");$yb=($_POST?$_POST["comments"]:adminer_setting("comments"));echo(support("comment")?checkbox("comments",1,$yb,lang(49),"editingCommentsClick(this, true);","jsonly").' '.(preg_match('~\n~',$J["Comment"])?"":''):''),'

    ';}echo' ';if($a!=""){echo'',confirm(lang(176,$a));}if(support("partitioning")){$Vf=preg_match('~RANGE|LIST~',$J["partition_by"]);print_fieldset("partition",lang(177),$J["partition_by"]);echo'

    ',"".on_help("getTarget(event).value.replace(/./, 'PARTITION BY \$&')",1).script("qsl('select').onchange = partitionByChange;"),'() ',lang(178),': ';foreach($J["partition_names"]as$y=>$X){echo'',' ';}echo'

    ';}elseif(isset($_GET["indexes"])){$a=$_GET["indexes"];$Rd=array("PRIMARY","UNIQUE","INDEX");$R=table_status($a,true);if(preg_match('~MyISAM|M?aria'.(min_version(5.6,'10.0.5')?'|InnoDB':'').'~i',$R["Engine"]))$Rd[]="FULLTEXT";if(preg_match('~MyISAM|M?aria'.(min_version(5.7,'10.2.2')?'|InnoDB':'').'~i',$R["Engine"]))$Rd[]="SPATIAL";$w=indexes($a);$lg=array();if($x=="mongo"){$lg=$w["_id_"];unset($Rd[0]);unset($w["_id_"]);}$J=$_POST;if($J)set_adminer_settings(array("index_options"=>$J["options"]));if($_POST&&!$m&&!$_POST["add"]&&!$_POST["drop_col"]){$c=array();foreach($J["indexes"]as$v){$C=$v["name"];if(in_array($v["type"],$Rd)){$e=array();$ye=array();$hc=array();$N=array();ksort($v["columns"]);foreach($v["columns"]as$y=>$d){if($d!=""){$xe=$v["lengths"][$y];$gc=$v["descs"][$y];$N[]=idf_escape($d).($xe?"(".(+$xe).")":"").($gc?" DESC":"");$e[]=$d;$ye[]=($xe?$xe:null);$hc[]=$gc;}}if($e){$Pc=$w[$C];if($Pc){ksort($Pc["columns"]);ksort($Pc["lengths"]);ksort($Pc["descs"]);if($v["type"]==$Pc["type"]&&array_values($Pc["columns"])===$e&&(!$Pc["lengths"]||array_values($Pc["lengths"])===$ye)&&array_values($Pc["descs"])===$hc){unset($w[$C]);continue;}}$c[]=array($v["type"],$C,$N);}}}foreach($w as$C=>$Pc)$c[]=array($Pc["type"],$C,"DROP");if(!$c)redirect(ME."table=".urlencode($a));queries_redirect(ME."table=".urlencode($a),lang(181),alter_indexes($a,$c));}page_header(lang(131),$m,array("table"=>$a),h($a));$o=array_keys(fields($a));if($_POST["add"]){foreach($J["indexes"]as$y=>$v){if($v["columns"][count($v["columns"])]!="")$J["indexes"][$y]["columns"][]="";}$v=end($J["indexes"]);if($v["type"]||array_filter($v["columns"],'strlen'))$J["indexes"][]=array("columns"=>array(1=>""));}if(!$J){foreach($w as$y=>$v){$w[$y]["name"]=$y;$w[$y]["columns"][]="";}$w[]=array("columns"=>array(1=>""));$J["indexes"]=$w;}$ye=($x=="sql"||$x=="mssql");$ph=($_POST?$_POST["options"]:adminer_setting("index_options"));echo'
    ';if($lg){echo"
    ',lang(182),'',lang(47).($ye?" (".lang(183).")":"");if($ye||support("descidx"))echo checkbox("options",1,$ph,lang(106),"indexOptionsShow(this.checked)","jsonly")."\n";echo'',lang(184),'
    PRIMARY";foreach($lg["columns"]as$y=>$d){echo select_input(" disabled",$o,$d)," ";}echo"\n";}$he=1;foreach($J["indexes"]as$v){if(!$_POST["drop_col"]||$he!=key($_POST["drop_col"])){echo"
    ".html_select("indexes[$he][type]",array(-1=>"")+$Rd,$v["type"],($he==count($J["indexes"])?"indexesAddRow.call(this);":1),"label-type"),"";ksort($v["columns"]);$t=1;foreach($v["columns"]as$y=>$d){echo"".select_input(" name='indexes[$he][columns][$t]' title='".lang(47)."'",($o?array_combine($o,$o):$o),$d,"partial(".($t==count($v["columns"])?"indexesAddColumn":"indexesChangeColumn").", '".js_escape($x=="sql"?"":$_GET["indexes"]."_")."')"),"",($ye?"":""),(support("descidx")?checkbox("indexes[$he][descs][$t]",1,$v["descs"][$y],lang(58)):"")," ";$t++;}echo"\n","".script("qsl('input').onclick = partial(editingRemoveRow, 'indexes\$1[type]');");}$he++;}echo'

    ';}elseif(isset($_GET["database"])){$J=$_POST;if($_POST&&!$m&&!isset($_POST["add_x"])){$C=trim($J["name"]);if($_POST["drop"]){$_GET["db"]="";queries_redirect(remove_from_uri("db|database"),lang(185),drop_databases(array(DB)));}elseif(DB!==$C){if(DB!=""){$_GET["db"]=$C;queries_redirect(preg_replace('~\bdb=[^&]*&~','',ME)."db=".urlencode($C),lang(186),rename_database($C,$J["collation"]));}else{$j=explode("\n",str_replace("\r","",$C));$Jh=true;$re="";foreach($j as$k){if(count($j)==1||$k!=""){if(!create_database($k,$J["collation"]))$Jh=false;$re=$k;}}restart_session();set_session("dbs",null);queries_redirect(ME."db=".urlencode($re),lang(187),$Jh);}}else{if(!$J["collation"])redirect(substr(ME,0,-1));query_redirect("ALTER DATABASE ".idf_escape($C).(preg_match('~^[a-z0-9_]+$~i',$J["collation"])?" COLLATE $J[collation]":""),substr(ME,0,-1),lang(188));}}page_header(DB!=""?lang(66):lang(114),$m,array(),h(DB));$qb=collations();$C=DB;if($_POST)$C=$J["name"];elseif(DB!="")$J["collation"]=db_collation(DB,$qb);elseif($x=="sql"){foreach(get_vals("SHOW GRANTS")as$ud){if(preg_match('~ ON (`(([^\\\\`]|``|\\\\.)*)%`\.\*)?~',$ud,$B)&&$B[1]){$C=stripcslashes(idf_unescape("`$B[2]`"));break;}}}echo'

    ',($_POST["add_x"]||strpos($C,"\n")?'
    ':'')."\n".($qb?html_select("collation",array(""=>"(".lang(100).")")+$qb,$J["collation"]).doc_link(array('sql'=>"charset-charsets.html",'mariadb'=>"supported-character-sets-and-collations/",'mssql'=>"relational-databases/system-functions/sys-fn-helpcollations-transact-sql",)):""),' ';if(DB!="")echo"".confirm(lang(176,DB))."\n";elseif(!$_POST["add_x"]&&$_GET["db"]=="")echo"\n";echo'

    ';}elseif(isset($_GET["scheme"])){$J=$_POST;if($_POST&&!$m){$_=preg_replace('~ns=[^&]*&~','',ME)."ns=";if($_POST["drop"])query_redirect("DROP SCHEMA ".idf_escape($_GET["ns"]),$_,lang(189));else{$C=trim($J["name"]);$_.=urlencode($C);if($_GET["ns"]=="")query_redirect("CREATE SCHEMA ".idf_escape($C),$_,lang(190));elseif($_GET["ns"]!=$C)query_redirect("ALTER SCHEMA ".idf_escape($_GET["ns"])." RENAME TO ".idf_escape($C),$_,lang(191));else redirect($_);}}page_header($_GET["ns"]!=""?lang(67):lang(68),$m);if(!$J)$J["name"]=$_GET["ns"];echo'

    ';if($_GET["ns"]!="")echo"".confirm(lang(176,$_GET["ns"]))."\n";echo'

    ';}elseif(isset($_GET["call"])){$da=($_GET["name"]?$_GET["name"]:$_GET["call"]);page_header(lang(192).": ".h($da),$m);$Sg=routine($_GET["call"],(isset($_GET["callf"])?"FUNCTION":"PROCEDURE"));$Od=array();$Lf=array();foreach($Sg["fields"]as$t=>$n){if(substr($n["inout"],-3)=="OUT")$Lf[$t]="@".idf_escape($n["field"])." AS ".idf_escape($n["field"]);if(!$n["inout"]||substr($n["inout"],0,2)=="IN")$Od[]=$t;}if(!$m&&$_POST){$ab=array();foreach($Sg["fields"]as$y=>$n){if(in_array($y,$Od)){$X=process_input($n);if($X===false)$X="''";if(isset($Lf[$y]))$g->query("SET @".idf_escape($n["field"])." = $X");}$ab[]=(isset($Lf[$y])?"@".idf_escape($n["field"]):$X);}$G=(isset($_GET["callf"])?"SELECT":"CALL")." ".table($da)."(".implode(", ",$ab).")";$Eh=microtime(true);$H=$g->multi_query($G);$_a=$g->affected_rows;echo$b->selectQuery($G,$Eh,!$H);if(!$H)echo"

    ".error()."\n";else{$h=connect();if(is_object($h))$h->select_db(DB);do{$H=$g->store_result();if(is_object($H))select($H,$h);else echo"

    ".lang(193,$_a)." ".@date("H:i:s")."\n";}while($g->next_result());if($Lf)select($g->query("SELECT ".implode(", ",$Lf)));}}echo'

    ';if($Od){echo"\n";foreach($Od as$y){$n=$Sg["fields"][$y];$C=$n["field"];echo"
    ".$b->fieldName($n);$Y=$_POST["fields"][$C];if($Y!=""){if($n["type"]=="enum")$Y=+$Y;if($n["type"]=="set")$Y=array_sum($Y);}input($n,$Y,(string)$_POST["function"][$C]);echo"\n";}echo"
    \n";}echo'

    ';function
    pre_tr($Wg){return
    preg_replace('~^~m','',preg_replace('~\|~','',preg_replace('~\|$~m',"",rtrim($Wg))));}$Q='(\+--[-+]+\+\n)';$J='(\| .* \|\n)';echo
    preg_replace_callback("~^$Q?$J$Q?($J*)$Q?~m",function($B){$fd=pre_tr($B[2]);return"\n".($B[1]?"$fd\n":$fd).pre_tr($B[4])."\n
    ";},preg_replace('~(\n( -|mysql)> )(.+)~',"\\1\\3",preg_replace('~(.+)\n---+\n~',"\\1\n",h($Sg['comment']))));echo'
    ';}elseif(isset($_GET["foreign"])){$a=$_GET["foreign"];$C=$_GET["name"];$J=$_POST;if($_POST&&!$m&&!$_POST["add"]&&!$_POST["change"]&&!$_POST["change-js"]){$Oe=($_POST["drop"]?lang(194):($C!=""?lang(195):lang(196)));$A=ME."table=".urlencode($a);if(!$_POST["drop"]){$J["source"]=array_filter($J["source"],'strlen');ksort($J["source"]);$Xh=array();foreach($J["source"]as$y=>$X)$Xh[$y]=$J["target"][$y];$J["target"]=$Xh;}if($x=="sqlite")queries_redirect($A,$Oe,recreate_table($a,$a,array(),array(),array(" $C"=>($_POST["drop"]?"":" ".format_foreign_key($J)))));else{$c="ALTER TABLE ".table($a);$pc="\nDROP ".($x=="sql"?"FOREIGN KEY ":"CONSTRAINT ").idf_escape($C);if($_POST["drop"])query_redirect($c.$pc,$A,$Oe);else{query_redirect($c.($C!=""?"$pc,":"")."\nADD".format_foreign_key($J),$A,$Oe);$m=lang(197)."
    $m";}}}page_header(lang(198),$m,array("table"=>$a),h($a));if($_POST){ksort($J["source"]);if($_POST["add"])$J["source"][]="";elseif($_POST["change"]||$_POST["change-js"])$J["target"]=array();}elseif($C!=""){$nd=foreign_keys($a);$J=$nd[$C];$J["source"][]="";}else{$J["table"]=$a;$J["source"]=array("");}echo'
    ';$wh=array_keys(fields($a));if($J["db"]!="")$g->select_db($J["db"]);if($J["ns"]!="")set_schema($J["ns"]);$Bg=array_keys(array_filter(table_status('',true),'fk_support'));$Xh=array_keys(fields(in_array($J["table"],$Bg)?$J["table"]:reset($Bg)));$uf="this.form['change-js'].value = '1'; this.form.submit();";echo"

    ".lang(199).": ".html_select("table",$Bg,$J["table"],$uf)."\n";if($x=="pgsql")echo lang(75).": ".html_select("ns",$b->schemas(),$J["ns"]!=""?$J["ns"]:$_GET["ns"],$uf);elseif($x!="sqlite"){$Zb=array();foreach($b->databases()as$k){if(!information_schema($k))$Zb[]=$k;}echo lang(74).": ".html_select("db",$Zb,$J["db"]!=""?$J["db"]:$_GET["db"],$uf);}echo'

    ';$he=0;foreach($J["source"]as$y=>$X){echo"","
    ',lang(133),'',lang(134),'
    ".html_select("source[".(+$y)."]",array(-1=>"")+$wh,$X,($he==count($J["source"])-1?"foreignAddRow.call(this);":1),"label-source"),"".html_select("target[".(+$y)."]",$Xh,$J["target"][$y],1,"label-target");$he++;}echo'

    ',lang(102),': ',html_select("on_delete",array(-1=>"")+explode("|",$tf),$J["on_delete"]),' ',lang(101),': ',html_select("on_update",array(-1=>"")+explode("|",$tf),$J["on_update"]),doc_link(array('sql'=>"innodb-foreign-key-constraints.html",'mariadb'=>"foreign-keys/",'pgsql'=>"sql-createtable.html#SQL-CREATETABLE-REFERENCES",'mssql'=>"t-sql/statements/create-table-transact-sql",'oracle'=>"SQLRF01111",)),'

    ';if($C!=""){echo'',confirm(lang(176,$C));}echo'

    ';}elseif(isset($_GET["view"])){$a=$_GET["view"];$J=$_POST;$If="VIEW";if($x=="pgsql"&&$a!=""){$O=table_status($a);$If=strtoupper($O["Engine"]);}if($_POST&&!$m){$C=trim($J["name"]);$Ga=" AS\n$J[select]";$A=ME."table=".urlencode($C);$Oe=lang(202);$T=($_POST["materialized"]?"MATERIALIZED VIEW":"VIEW");if(!$_POST["drop"]&&$a==$C&&$x!="sqlite"&&$T=="VIEW"&&$If=="VIEW")query_redirect(($x=="mssql"?"ALTER":"CREATE OR REPLACE")." VIEW ".table($C).$Ga,$A,$Oe);else{$Zh=$C."_adminer_".uniqid();drop_create("DROP $If ".table($a),"CREATE $T ".table($C).$Ga,"DROP $T ".table($C),"CREATE $T ".table($Zh).$Ga,"DROP $T ".table($Zh),($_POST["drop"]?substr(ME,0,-1):$A),lang(203),$Oe,lang(204),$a,$C);}}if(!$_POST&&$a!=""){$J=view($a);$J["name"]=$a;$J["materialized"]=($If!="VIEW");if(!$m)$m=error();}page_header(($a!=""?lang(42):lang(205)),$m,array("table"=>$a),h($a));echo'

    ',lang(184),': ',(support("materializedview")?" ".checkbox("materialized",1,$J["materialized"],lang(128)):""),'

    ';textarea("select",$J["select"]);echo'

    ';if($a!=""){echo'',confirm(lang(176,$a));}echo'

    ';}elseif(isset($_GET["event"])){$aa=$_GET["event"];$Zd=array("YEAR","QUARTER","MONTH","DAY","HOUR","MINUTE","WEEK","SECOND","YEAR_MONTH","DAY_HOUR","DAY_MINUTE","DAY_SECOND","HOUR_MINUTE","HOUR_SECOND","MINUTE_SECOND");$Fh=array("ENABLED"=>"ENABLE","DISABLED"=>"DISABLE","SLAVESIDE_DISABLED"=>"DISABLE ON SLAVE");$J=$_POST;if($_POST&&!$m){if($_POST["drop"])query_redirect("DROP EVENT ".idf_escape($aa),substr(ME,0,-1),lang(206));elseif(in_array($J["INTERVAL_FIELD"],$Zd)&&isset($Fh[$J["STATUS"]])){$Xg="\nON SCHEDULE ".($J["INTERVAL_VALUE"]?"EVERY ".q($J["INTERVAL_VALUE"])." $J[INTERVAL_FIELD]".($J["STARTS"]?" STARTS ".q($J["STARTS"]):"").($J["ENDS"]?" ENDS ".q($J["ENDS"]):""):"AT ".q($J["STARTS"]))." ON COMPLETION".($J["ON_COMPLETION"]?"":" NOT")." PRESERVE";queries_redirect(substr(ME,0,-1),($aa!=""?lang(207):lang(208)),queries(($aa!=""?"ALTER EVENT ".idf_escape($aa).$Xg.($aa!=$J["EVENT_NAME"]?"\nRENAME TO ".idf_escape($J["EVENT_NAME"]):""):"CREATE EVENT ".idf_escape($J["EVENT_NAME"]).$Xg)."\n".$Fh[$J["STATUS"]]." COMMENT ".q($J["EVENT_COMMENT"]).rtrim(" DO\n$J[EVENT_DEFINITION]",";").";"));}}page_header(($aa!=""?lang(209).": ".h($aa):lang(210)),$m);if(!$J&&$aa!=""){$K=get_rows("SELECT * FROM information_schema.EVENTS WHERE EVENT_SCHEMA = ".q(DB)." AND EVENT_NAME = ".q($aa));$J=reset($K);}echo'
    ',lang(184),'
    ',lang(211),'
    ',lang(212),'
    ',lang(213),' ',html_select("INTERVAL_FIELD",$Zd,$J["INTERVAL_FIELD"]),'
    ',lang(117),'',html_select("STATUS",$Fh,$J["STATUS"]),'
    ',lang(49),'
    ',checkbox("ON_COMPLETION","PRESERVE",$J["ON_COMPLETION"]=="PRESERVE",lang(214)),'

    ';textarea("EVENT_DEFINITION",$J["EVENT_DEFINITION"]);echo'

    ';if($aa!=""){echo'',confirm(lang(176,$aa));}echo'

    ';}elseif(isset($_GET["procedure"])){$da=($_GET["name"]?$_GET["name"]:$_GET["procedure"]);$Sg=(isset($_GET["function"])?"FUNCTION":"PROCEDURE");$J=$_POST;$J["fields"]=(array)$J["fields"];if($_POST&&!process_fields($J["fields"])&&!$m){$Ff=routine($_GET["procedure"],$Sg);$Zh="$J[name]_adminer_".uniqid();drop_create("DROP $Sg ".routine_id($da,$Ff),create_routine($Sg,$J),"DROP $Sg ".routine_id($J["name"],$J),create_routine($Sg,array("name"=>$Zh)+$J),"DROP $Sg ".routine_id($Zh,$J),substr(ME,0,-1),lang(215),lang(216),lang(217),$da,$J["name"]);}page_header(($da!=""?(isset($_GET["function"])?lang(218):lang(219)).": ".h($da):(isset($_GET["function"])?lang(220):lang(221))),$m);if(!$_POST&&$da!=""){$J=routine($_GET["procedure"],$Sg);$J["name"]=$da;}$qb=get_vals("SHOW CHARACTER SET");sort($qb);$Tg=routine_languages();echo'

    ',lang(184),': ',($Tg?lang(20).": ".html_select("language",$Tg,$J["language"])."\n":""),'

    ';edit_fields($J["fields"],$qb,$Sg);if(isset($_GET["function"])){echo"
    ".lang(222);edit_type("returns",$J["returns"],$qb,array(),($x=="pgsql"?array("void","trigger"):array()));}echo'
    ',script("editFields();"),'

    ';textarea("definition",$J["definition"]);echo'

    ';if($da!=""){echo'',confirm(lang(176,$da));}echo'

    ';}elseif(isset($_GET["sequence"])){$fa=$_GET["sequence"];$J=$_POST;if($_POST&&!$m){$_=substr(ME,0,-1);$C=trim($J["name"]);if($_POST["drop"])query_redirect("DROP SEQUENCE ".idf_escape($fa),$_,lang(223));elseif($fa=="")query_redirect("CREATE SEQUENCE ".idf_escape($C),$_,lang(224));elseif($fa!=$C)query_redirect("ALTER SEQUENCE ".idf_escape($fa)." RENAME TO ".idf_escape($C),$_,lang(225));else redirect($_);}page_header($fa!=""?lang(226).": ".h($fa):lang(227),$m);if(!$J)$J["name"]=$fa;echo'

    ';if($fa!="")echo"".confirm(lang(176,$fa))."\n";echo'

    ';}elseif(isset($_GET["type"])){$ga=$_GET["type"];$J=$_POST;if($_POST&&!$m){$_=substr(ME,0,-1);if($_POST["drop"])query_redirect("DROP TYPE ".idf_escape($ga),$_,lang(228));else query_redirect("CREATE TYPE ".idf_escape(trim($J["name"]))." $J[as]",$_,lang(229));}page_header($ga!=""?lang(230).": ".h($ga):lang(231),$m);if(!$J)$J["as"]="AS ";echo'

    ';if($ga!="")echo"".confirm(lang(176,$ga))."\n";else{echo"\n";textarea("as",$J["as"]);echo"

    \n";}echo'

    ';}elseif(isset($_GET["check"])){$a=$_GET["check"];$C=$_GET["name"];$J=$_POST;if($J&&!$m){$H=($C==""||queries("ALTER TABLE ".table($a)." DROP CONSTRAINT ".idf_escape($C)));if(!$J["drop"])$H=queries("ALTER TABLE ".table($a)." ADD".($J["name"]!=""?" CONSTRAINT ".idf_escape($J["name"])."":"")." CHECK ($J[clause])");queries_redirect(ME."table=".urlencode($a),($J["drop"]?lang(232):($C!=""?lang(233):lang(234))),$H);}page_header(($C!=""?lang(235).": ".h($C):lang(138)),$m,array("table"=>$a));if(!$J){$hb=check_constraints($a);$J=array("name"=>$C,"clause"=>$hb[$C]);}echo'

    ',lang(184),': ',doc_link(array('sql'=>"create-table-check-constraints.html",'mariadb'=>"constraint/",'pgsql'=>"ddl-constraints.html#DDL-CONSTRAINTS-CHECK-CONSTRAINTS",'mssql'=>"relational-databases/tables/create-check-constraints",)),'

    ';textarea("clause",$J["clause"]);echo'

    ';if($C!=""){echo'',confirm(lang(176,$C));}echo'

    ';}elseif(isset($_GET["trigger"])){$a=$_GET["trigger"];$C=$_GET["name"];$zi=trigger_options();$J=(array)trigger($C,$a)+array("Trigger"=>$a."_bi");if($_POST){if(!$m&&in_array($_POST["Timing"],$zi["Timing"])&&in_array($_POST["Event"],$zi["Event"])&&in_array($_POST["Type"],$zi["Type"])){$sf=" ON ".table($a);$pc="DROP TRIGGER ".idf_escape($C).($x=="pgsql"?$sf:"");$A=ME."table=".urlencode($a);if($_POST["drop"])query_redirect($pc,$A,lang(236));else{if($C!="")queries($pc);queries_redirect($A,($C!=""?lang(237):lang(238)),queries(create_trigger($sf,$_POST)));if($C!="")queries(create_trigger($sf,$J+array("Type"=>reset($zi["Type"]))));}}$J=$_POST;}page_header(($C!=""?lang(239).": ".h($C):lang(240)),$m,array("table"=>$a));echo'
    ',lang(241),'',html_select("Timing",$zi["Timing"],$J["Timing"],"triggerChange(/^".preg_quote($a,"/")."_[ba][iud]$/, '".js_escape($a)."', this.form);"),'
    ',lang(242),'',html_select("Event",$zi["Event"],$J["Event"],"this.form['Timing'].onchange();"),(in_array("UPDATE OF",$zi["Event"])?" ":""),'
    ',lang(48),'',html_select("Type",$zi["Type"],$J["Type"]),'

    ',lang(184),': ',script("qs('#form')['Timing'].onchange();"),'

    ';textarea("Statement",$J["Statement"]);echo'

    ';if($C!=""){echo'',confirm(lang(176,$C));}echo'

    ';}elseif(isset($_GET["user"])){$ha=$_GET["user"];$qg=array(""=>array("All privileges"=>""));foreach(get_rows("SHOW PRIVILEGES")as$J){foreach(explode(",",($J["Privilege"]=="Grant option"?"":$J["Context"]))as$Hb)$qg[$Hb][$J["Privilege"]]=$J["Comment"];}$qg["Server Admin"]+=$qg["File access on server"];$qg["Databases"]["Create routine"]=$qg["Procedures"]["Create routine"];unset($qg["Procedures"]["Create routine"]);$qg["Columns"]=array();foreach(array("Select","Insert","Update","References")as$X)$qg["Columns"][$X]=$qg["Tables"][$X];unset($qg["Server Admin"]["Usage"]);foreach($qg["Tables"]as$y=>$X)unset($qg["Databases"][$y]);$bf=array();if($_POST){foreach($_POST["objects"]as$y=>$X)$bf[$X]=(array)$bf[$X]+(array)$_POST["grants"][$y];}$vd=array();$qf="";if(isset($_GET["host"])&&($H=$g->query("SHOW GRANTS FOR ".q($ha)."@".q($_GET["host"])))){while($J=$H->fetch_row()){if(preg_match('~GRANT (.*) ON (.*) TO ~',$J[0],$B)&&preg_match_all('~ *([^(,]*[^ ,(])( *\([^)]+\))?~',$B[1],$Fe,PREG_SET_ORDER)){foreach($Fe as$X){if($X[1]!="USAGE")$vd["$B[2]$X[2]"][$X[1]]=true;if(preg_match('~ WITH GRANT OPTION~',$J[0]))$vd["$B[2]$X[2]"]["GRANT OPTION"]=true;}}if(preg_match("~ IDENTIFIED BY PASSWORD '([^']+)~",$J[0],$B))$qf=$B[1];}}if($_POST&&!$m){$rf=(isset($_GET["host"])?q($ha)."@".q($_GET["host"]):"''");if($_POST["drop"])query_redirect("DROP USER $rf",ME."privileges=",lang(243));else{$df=q($_POST["user"])."@".q($_POST["host"]);$Yf=$_POST["pass"];if($Yf!=''&&!$_POST["hashed"]&&!min_version(8)){$Yf=$g->result("SELECT PASSWORD(".q($Yf).")");$m=!$Yf;}$Nb=false;if(!$m){if($rf!=$df){$Nb=queries((min_version(5)?"CREATE USER":"GRANT USAGE ON *.* TO")." $df IDENTIFIED BY ".(min_version(8)?"":"PASSWORD ").q($Yf));$m=!$Nb;}elseif($Yf!=$qf)queries("SET PASSWORD FOR $df = ".q($Yf));}if(!$m){$Pg=array();foreach($bf as$jf=>$ud){if(isset($_GET["grant"]))$ud=array_filter($ud);$ud=array_keys($ud);if(isset($_GET["grant"]))$Pg=array_diff(array_keys(array_filter($bf[$jf],'strlen')),$ud);elseif($rf==$df){$of=array_keys((array)$vd[$jf]);$Pg=array_diff($of,$ud);$ud=array_diff($ud,$of);unset($vd[$jf]);}if(preg_match('~^(.+)\s*(\(.*\))?$~U',$jf,$B)&&(!grant("REVOKE",$Pg,$B[2]," ON $B[1] FROM $df")||!grant("GRANT",$ud,$B[2]," ON $B[1] TO $df"))){$m=true;break;}}}if(!$m&&isset($_GET["host"])){if($rf!=$df)queries("DROP USER $rf");elseif(!isset($_GET["grant"])){foreach($vd as$jf=>$Pg){if(preg_match('~^(.+)(\(.*\))?$~U',$jf,$B))grant("REVOKE",array_keys($Pg),$B[2]," ON $B[1] FROM $df");}}}queries_redirect(ME."privileges=",(isset($_GET["host"])?lang(244):lang(245)),!$m);if($Nb)$g->query("DROP USER $df");}}page_header((isset($_GET["host"])?lang(34).": ".h("$ha@$_GET[host]"):lang(147)),$m,array("privileges"=>array('',lang(70))));if($_POST){$J=$_POST;$vd=$bf;}else{$J=$_GET+array("host"=>$g->result("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', -1)"));$J["pass"]=$qf;if($qf!="")$J["hashed"]=true;$vd[(DB==""||$vd?"":idf_escape(addcslashes(DB,"%_\\"))).".*"]=array();}echo'
    ',lang(33),'
    ',lang(34),'
    ',lang(35),' ';if(!$J["hashed"])echo script("typePassword(qs('#pass'));");echo(min_version(8)?"":checkbox("hashed",1,$J["hashed"],lang(246),"typePassword(this.form['pass'], this.checked);")),'
    ';echo"\n","\n";foreach(array(""=>"","Server Admin"=>lang(33),"Databases"=>lang(36),"Tables"=>lang(130),"Columns"=>lang(47),"Procedures"=>lang(247),)as$Hb=>$gc){foreach((array)$qg[$Hb]as$pg=>$wb){echo"$gc'.h($pg);$t=0;foreach($vd as$jf=>$ud){$C="'grants[$t][".h(strtoupper($pg))."]'";$Y=$ud[strtoupper($pg)];if($Hb=="Server Admin"&&$jf!=(isset($vd["*.*"])?"*.*":".*"))echo"
    ".lang(70).doc_link(array('sql'=>"grant.html#priv_level"));$t=0;foreach($vd as$jf=>$ud){echo''.($jf!="*.*"?"":"*.*");$t++;}echo"
    ";elseif(isset($_GET["grant"]))echo"";else{echo"";}$t++;}}}echo"
    \n",'

    ';if(isset($_GET["host"])){echo'',confirm(lang(176,"$ha@$_GET[host]"));}echo'

    ';}elseif(isset($_GET["processlist"])){if(support("kill")){if($_POST&&!$m){$me=0;foreach((array)$_POST["kill"]as$X){if(kill_process($X))$me++;}queries_redirect(ME."processlist=",lang(250,$me),$me||!$_POST["kill"]);}}page_header(lang(115),$m);echo'
    ',script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});");$t=-1;foreach(process_list()as$t=>$J){if(!$t){echo"".(support("kill")?"\n";}echo"".(support("kill")?"
    ":"");foreach($J as$y=>$X)echo"$y".doc_link(array('sql'=>"show-processlist.html#processlist_".strtolower($y),'pgsql'=>"monitoring-stats.html#PG-STAT-ACTIVITY-VIEW",'oracle'=>"REFRN30223",));echo"
    ".checkbox("kill[]",$J[$x=="sql"?"Id":"pid"],0):"");foreach($J as$y=>$X)echo"".(($x=="sql"&&$y=="Info"&&preg_match("~Query|Killed~",$J["Command"])&&$X!="")||($x=="pgsql"&&$y=="current_query"&&$X!="")||($x=="oracle"&&$y=="sql_text"&&$X!="")?"".shorten_utf8($X,100,"").' '.lang(251).'':h($X));echo"\n";}echo'

    ';if(support("kill")){echo($t+1)."/".lang(252,max_connections()),"

    \n";}echo'

    ',script("tableCheck();");}elseif(isset($_GET["select"])){$a=$_GET["select"];$R=table_status1($a);$w=indexes($a);$o=fields($a);$nd=column_foreign_keys($a);$mf=$R["Oid"];parse_str($_COOKIE["adminer_import"],$za);$Qg=array();$e=array();$di=null;foreach($o as$y=>$n){$C=$b->fieldName($n);if(isset($n["privileges"]["select"])&&$C!=""){$e[$y]=html_entity_decode(strip_tags($C),ENT_QUOTES);if(is_shortable($n))$di=$b->selectLengthProcess();}$Qg+=$n["privileges"];}list($L,$wd)=$b->selectColumnsProcess($e,$w);$de=count($wd)selectSearchProcess($o,$w);$Bf=$b->selectOrderProcess($o,$w);$z=$b->selectLimitProcess();if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$Gi=>$J){$Ga=convert_field($o[key($J)]);$L=array($Ga?$Ga:idf_escape(key($J)));$Z[]=where_check($Gi,$o);$I=$l->select($a,$L,$Z,$L);if($I)echo reset($I->fetch_row());}exit;}$lg=$Ii=null;foreach($w as$v){if($v["type"]=="PRIMARY"){$lg=array_flip($v["columns"]);$Ii=($L?$lg:array());foreach($Ii as$y=>$X){if(in_array(idf_escape($y),$L))unset($Ii[$y]);}break;}}if($mf&&!$lg){$lg=$Ii=array($mf=>0);$w[]=array("type"=>"PRIMARY","columns"=>array($mf));}if($_POST&&!$m){$jj=$Z;if(!$_POST["all"]&&is_array($_POST["check"])){$hb=array();foreach($_POST["check"]as$db)$hb[]=where_check($db,$o);$jj[]="((".implode(") OR (",$hb)."))";}$jj=($jj?"\nWHERE ".implode(" AND ",$jj):"");if($_POST["export"]){cookie("adminer_import","output=".urlencode($_POST["output"])."&format=".urlencode($_POST["format"]));dump_headers($a);$b->dumpTable($a,"");$rd=($L?implode(", ",$L):"*").convert_fields($e,$o,$L)."\nFROM ".table($a);$yd=($wd&&$de?"\nGROUP BY ".implode(", ",$wd):"").($Bf?"\nORDER BY ".implode(", ",$Bf):"");if(!is_array($_POST["check"])||$lg)$G="SELECT $rd$jj$yd";else{$Ei=array();foreach($_POST["check"]as$X)$Ei[]="(SELECT".limit($rd,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$o).$yd,1).")";$G=implode(" UNION ALL ",$Ei);}$b->dumpData($a,"table",$G);exit;}if(!$b->selectEmailProcess($Z,$nd)){if($_POST["save"]||$_POST["delete"]){$H=true;$_a=0;$N=array();if(!$_POST["delete"]){foreach($e as$C=>$X){$X=process_input($o[$C]);if($X!==null&&($_POST["clone"]||$X!==false))$N[idf_escape($C)]=($X!==false?$X:idf_escape($C));}}if($_POST["delete"]||$N){if($_POST["clone"])$G="INTO ".table($a)." (".implode(", ",array_keys($N)).")\nSELECT ".implode(", ",$N)."\nFROM ".table($a);if($_POST["all"]||($lg&&is_array($_POST["check"]))||$de){$H=($_POST["delete"]?$l->delete($a,$jj):($_POST["clone"]?queries("INSERT $G$jj"):$l->update($a,$N,$jj)));$_a=$g->affected_rows;}else{foreach((array)$_POST["check"]as$X){$fj="\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($X,$o);$H=($_POST["delete"]?$l->delete($a,$fj,1):($_POST["clone"]?queries("INSERT".limit1($a,$G,$fj)):$l->update($a,$N,$fj,1)));if(!$H)break;$_a+=$g->affected_rows;}}}$Oe=lang(254,$_a);if($_POST["clone"]&&$H&&$_a==1){$se=last_id();if($se)$Oe=lang(169," $se");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$Oe,$H);if(!$_POST["delete"]){edit_form($a,$o,(array)$_POST["fields"],!$_POST["clone"]);page_footer();exit;}}elseif(!$_POST["import"]){if(!$_POST["val"])$m=lang(255);else{$H=true;$_a=0;foreach($_POST["val"]as$Gi=>$J){$N=array();foreach($J as$y=>$X){$y=bracket_escape($y,1);$N[idf_escape($y)]=(preg_match('~char|text~',$o[$y]["type"])||$X!=""?$b->processInput($o[$y],$X):"NULL");}$H=$l->update($a,$N," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($Gi,$o),!$de&&!$lg," ");if(!$H)break;$_a+=$g->affected_rows;}queries_redirect(remove_from_uri(),lang(254,$_a),$H);}}elseif(!is_string($cd=get_file("csv_file",true)))$m=upload_error($cd);elseif(!preg_match('~~u',$cd))$m=lang(256);else{cookie("adminer_import","output=".urlencode($za["output"])."&format=".urlencode($_POST["separator"]));$H=true;$sb=array_keys($o);preg_match_all('~(?>"[^"]*"|[^"\r\n]+)+~',$cd,$Fe);$_a=count($Fe[0]);$l->begin();$gh=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));$K=array();foreach($Fe[0]as$y=>$X){preg_match_all("~((?>\"[^\"]*\")+|[^$gh]*)$gh~",$X.$gh,$Ge);if(!$y&&!array_diff($Ge[1],$sb)){$sb=$Ge[1];$_a--;}else{$N=array();foreach($Ge[1]as$t=>$nb)$N[idf_escape($sb[$t])]=($nb==""&&$o[$sb[$t]]["null"]?"NULL":q(str_replace('""','"',preg_replace('~^"|"$~','',$nb))));$K[]=$N;}}$H=(!$K||$l->insertUpdate($a,$K,$lg));if($H)$H=$l->commit();queries_redirect(remove_from_uri("page"),lang(257,$_a),$H);$l->rollback();}}}$Ph=$b->tableName($R);if(is_ajax()){page_headers();ob_start();}else page_header(lang(52).": $Ph",$m);$N=null;if(isset($Qg["insert"])||!support("table")){$Rf=array();foreach((array)$_GET["where"]as$X){if(isset($nd[$X["col"]])&&count($nd[$X["col"]])==1&&($X["op"]=="="||(!$X["op"]&&(is_array($X["val"])||!preg_match('~[_%]~',$X["val"])))))$Rf["set"."[".bracket_escape($X["col"])."]"]=$X["val"];}$N=$Rf?"&".http_build_query($Rf):"";}$b->selectLinks($R,$N);if(!$e&&support("table"))echo"

    ".lang(258).($o?".":": ".error())."\n";else{echo"

    \n","
    ";hidden_fields_get();echo(DB!=""?''.(isset($_GET["ns"])?'':""):"");echo'',"
    \n";$b->selectColumnsPrint($L,$e);$b->selectSearchPrint($Z,$e,$w);$b->selectOrderPrint($Bf,$e,$w);$b->selectLimitPrint($z);$b->selectLengthPrint($di);$b->selectActionPrint($w);echo"
    \n";$E=$_GET["page"];if($E=="last"){$qd=$g->result(count_rows($a,$Z,$de,$wd));$E=floor(max(0,$qd-1)/$z);}$bh=$L;$xd=$wd;if(!$bh){$bh[]="*";$Ib=convert_fields($e,$o,$L);if($Ib)$bh[]=substr($Ib,2);}foreach($L as$y=>$X){$n=$o[idf_unescape($X)];if($n&&($Ga=convert_field($n)))$bh[$y]="$Ga AS $X";}if(!$de&&$Ii){foreach($Ii as$y=>$X){$bh[]=idf_escape($y);if($xd)$xd[]=idf_escape($y);}}$H=$l->select($a,$bh,$Z,$xd,$Bf,$z,$E,true);if(!$H)echo"

    ".error()."\n";else{if($x=="mssql"&&$E)$H->seek($z*$E);$Bc=array();echo"

    \n";$K=array();while($J=$H->fetch_assoc()){if($E&&$x=="oracle")unset($J["RNUM"]);$K[]=$J;}if($_GET["page"]!="last"&&$z!=""&&$wd&&$de&&$x=="sql")$qd=$g->result(" SELECT FOUND_ROWS()");if(!$K)echo"

    ".lang(13)."\n";else{$Pa=$b->backwardKeys($a,$Ph);echo"

    ","",script("mixin(qs('#table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true), onkeydown: editingKeydown});"),"".(!$wd&&$L?"":"\n";if(is_ajax())ob_end_clean();foreach($b->rowDescriptions($K,$nd)as$Ye=>$J){$Fi=unique_array($K[$Ye],$w);if(!$Fi){$Fi=array();foreach($K[$Ye]as$y=>$X){if(!preg_match('~^(COUNT\((\*|(DISTINCT )?`(?:[^`]|``)+`)\)|(AVG|GROUP_CONCAT|MAX|MIN|SUM)\(`(?:[^`]|``)+`\))$~',$y))$Fi[$y]=$X;}}$Gi="";foreach($Fi as$y=>$X){if(($x=="sql"||$x=="pgsql")&&preg_match('~char|text|enum|set~',$o[$y]["type"])&&strlen($X)>64){$y=(strpos($y,'(')?$y:idf_escape($y));$y="MD5(".($x!='sql'||preg_match("~^utf8~",$o[$y]["collation"])?$y:"CONVERT($y USING ".charset($g).")").")";$X=md5($X);}$Gi.="&".($X!==null?urlencode("where[".bracket_escape($y)."]")."=".urlencode($X===false?"f":$X):"null%5B%5D=".urlencode($y));}echo"".(!$wd&&$L?"":"";}}}if($Pa)echo"\n";}if(is_ajax())exit;echo"
    ".script("qs('#all-page').onclick = partial(formCheck, /check/);","")." ".lang(259)."");$Ze=array();$sd=array();reset($L);$zg=1;foreach($K[0]as$y=>$X){if(!isset($Ii[$y])){$X=$_GET["columns"][key($L)];$n=$o[$L?($X?$X["col"]:current($L)):$y];$C=($n?$b->fieldName($n,$zg):($X["fun"]?"*":h($y)));if($C!=""){$zg++;$Ze[$y]=$C;$d=idf_escape($y);$Jd=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($y);$gc="&desc%5B0%5D=1";echo"".script("mixin(qsl('th'), {onmouseover: partial(columnMouse), onmouseout: partial(columnMouse, ' hidden')});",""),'';echo apply_sql_function($X["fun"],$C)."";echo"";}$sd[$y]=$X["fun"];next($L);}}$ye=array();if($_GET["modify"]){foreach($K as$J){foreach($J as$y=>$X)$ye[$y]=max($ye[$y],min(40,strlen(utf8_decode($X))));}}echo($Pa?"".lang(260):"")."
    ".checkbox("check[]",substr($Gi,1),in_array(substr($Gi,1),(array)$_POST["check"])).($de||information_schema(DB)?"":" ".lang(261).""));foreach($J as$y=>$X){if(isset($Ze[$y])){$n=$o[$y];$X=$l->value($X,$n);if($X!=""&&(!isset($Bc[$y])||$Bc[$y]!=""))$Bc[$y]=(is_mail($X)?$Ze[$y]:"");$_="";if(preg_match('~blob|bytea|raw|file~',$n["type"])&&$X!="")$_=ME.'download='.urlencode($a).'&field='.urlencode($y).$Gi;if(!$_&&$X!==null){foreach((array)$nd[$y]as$q){if(count($nd[$y])==1||end($q["source"])==$y){$_="";foreach($q["source"]as$t=>$wh)$_.=where_link($t,$q["target"][$t],$K[$Ye][$wh]);$_=($q["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\1'.urlencode($q["db"]),ME):ME).'select='.urlencode($q["table"]).$_;if($q["ns"])$_=preg_replace('~([?&]ns=)[^&]+~','\1'.urlencode($q["ns"]),$_);if(count($q["source"])==1)break;}}}if($y=="COUNT(*)"){$_=ME."select=".urlencode($a);$t=0;foreach((array)$_GET["where"]as$W){if(!array_key_exists($W["col"],$Fi))$_.=where_link($t++,$W["col"],$W["val"],$W["op"]);}foreach($Fi as$ie=>$W)$_.=where_link($t++,$ie,$W);}$X=select_value($X,$_,$n,$di);$Kd=h("val[$Gi][".bracket_escape($y)."]");$Y=$_POST["val"][$Gi][bracket_escape($y)];$xc=!is_array($J[$y])&&is_utf8($X)&&$K[$Ye][$y]==$J[$y]&&!$sd[$y];$bi=preg_match('~text|lob~',$n["type"]);echo"".($bi?"":"");}else{$Be=strpos($X,"");echo" data-text='".($Be?2:($bi?1:0))."'".($xc?"":" data-warning='".h(lang(262))."'").">$X";$b->backwardKeysPrint($Pa,$K[$Ye]);echo"
    \n","
    \n";}if(!is_ajax()){if($K||$E){$Nc=true;if($_GET["page"]!="last"){if($z==""||(count($K)<$z&&($K||!$E)))$qd=($E?$E*$z:0)+count($K);elseif($x!="sql"||!$de){$qd=($de?false:found_rows($R,$Z));if($qd$z||$E));if($Pf){echo(($qd===false?count($K)+1:$qd-$E*$z)>$z?'

    '.lang(263).''.script("qsl('a').onclick = partial(selectLoadMore, ".(+$z).", '".lang(264)."…');",""):''),"\n";}}echo"

    \n";if($b->selectImportPrint()){echo"
    ","".lang(71)."",script("qsl('a').onclick = partial(toggle, 'import');",""),"","
    ";}echo"\n","\n",(!$wd&&$L?"":script("tableCheck();"));}}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["variables"])){$O=isset($_GET["status"]);page_header($O?lang(117):lang(116));$Wi=($O?show_status():show_variables());if(!$Wi)echo"

    ".lang(13)."\n";else{echo"\n";foreach($Wi as$y=>$X){echo"","
    ".h($y)."","".h($X);}echo"
    \n";}}elseif(isset($_GET["script"])){header("Content-Type: text/javascript; charset=utf-8");if($_GET["script"]=="db"){$Mh=array("Data_length"=>0,"Index_length"=>0,"Data_free"=>0);foreach(table_status()as$C=>$R){json_row("Comment-$C",h($R["Comment"]));if(!is_view($R)){foreach(array("Engine","Collation")as$y)json_row("$y-$C",h($R[$y]));foreach($Mh+array("Auto_increment"=>0,"Rows"=>0)as$y=>$X){if($R[$y]!=""){$X=format_number($R[$y]);json_row("$y-$C",($y=="Rows"&&$X&&$R["Engine"]==($x=="pgsql"?"table":"InnoDB")?"~ $X":$X));if(isset($Mh[$y]))$Mh[$y]+=($R["Engine"]!="InnoDB"||$y!="Data_free"?$R[$y]:0);}elseif(array_key_exists($y,$R))json_row("$y-$C");}}}foreach($Mh as$y=>$X)json_row("sum-$y",format_number($X));json_row("");}elseif($_GET["script"]=="kill")$g->query("KILL ".number($_POST["kill"]));else{foreach(count_tables($b->databases())as$k=>$X){json_row("tables-$k",$X);json_row("size-$k",db_size($k));}json_row("");}exit;}else{$Vh=array_merge((array)$_POST["tables"],(array)$_POST["views"]);if($Vh&&!$m&&!$_POST["search"]){$H=true;$Oe="";if($x=="sql"&&$_POST["tables"]&&count($_POST["tables"])>1&&($_POST["drop"]||$_POST["truncate"]||$_POST["copy"]))queries("SET foreign_key_checks = 0");if($_POST["truncate"]){if($_POST["tables"])$H=truncate_tables($_POST["tables"]);$Oe=lang(268);}elseif($_POST["move"]){$H=move_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$Oe=lang(269);}elseif($_POST["copy"]){$H=copy_tables((array)$_POST["tables"],(array)$_POST["views"],$_POST["target"]);$Oe=lang(270);}elseif($_POST["drop"]){if($_POST["views"])$H=drop_views($_POST["views"]);if($H&&$_POST["tables"])$H=drop_tables($_POST["tables"]);$Oe=lang(271);}elseif($x!="sql"){$H=($x=="sqlite"?queries("VACUUM"):apply_queries("VACUUM".($_POST["optimize"]?"":" ANALYZE"),$_POST["tables"]));$Oe=lang(272);}elseif(!$_POST["tables"])$Oe=lang(10);elseif($H=queries(($_POST["optimize"]?"OPTIMIZE":($_POST["check"]?"CHECK":($_POST["repair"]?"REPAIR":"ANALYZE")))." TABLE ".implode(", ",array_map('idf_escape',$_POST["tables"])))){while($J=$H->fetch_assoc())$Oe.="".h($J["Table"]).": ".h($J["Msg_text"])."
    ";}queries_redirect(substr(ME,0,-1),$Oe,$H);}page_header(($_GET["ns"]==""?lang(36).": ".h(DB):lang(75).": ".h($_GET["ns"])),$m,true);if($b->homepage()){if($_GET["ns"]!==""){echo"

    ".lang(273)."

    \n";$Uh=tables_list();if(!$Uh)echo"

    ".lang(10)."\n";else{echo"

    \n";if(support("table")){echo"
    ".lang(274)."
    ","",script("qsl('input').onkeydown = partialArg(bodyKeydown, 'search');","")," \n","
    \n";if($_POST["search"]&&$_POST["query"]!=""){$_GET["where"][0]["op"]=$l->convertOperator("LIKE %%");search_tables();}}echo"
    \n","\n",script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"),'','\n";$S=0;foreach($Uh as$C=>$T){$Zi=($T!==null&&!preg_match('~table|sequence~i',$T));$Kd=h("Table-".$C);echo'
    '.script("qs('#check-all').onclick = partial(formCheck, /^(tables|views)\[/);",""),''.lang(130),''.lang(275).doc_link(array('sql'=>'storage-engines.html')),''.lang(121).doc_link(array('sql'=>'charset-charsets.html','mariadb'=>'supported-character-sets-and-collations/')),''.lang(276).doc_link(array('sql'=>'show-table-status.html','pgsql'=>'functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT','oracle'=>'REFRN20286')),''.lang(277).doc_link(array('sql'=>'show-table-status.html','pgsql'=>'functions-admin.html#FUNCTIONS-ADMIN-DBOBJECT')),''.lang(278).doc_link(array('sql'=>'show-table-status.html')),''.lang(50).doc_link(array('sql'=>'example-auto-increment.html','mariadb'=>'auto_increment/')),''.lang(279).doc_link(array('sql'=>'show-table-status.html','pgsql'=>'catalog-pg-class.html#CATALOG-PG-CLASS','oracle'=>'REFRN20286')),(support("comment")?''.lang(49).doc_link(array('sql'=>'show-table-status.html','pgsql'=>'functions-info.html#FUNCTIONS-INFO-COMMENT-TABLE')):''),"
    '.checkbox(($Zi?"views[]":"tables[]"),$C,in_array($C,$Vh,true),"","","",$Kd),''.(support("table")||support("indexes")?"".h($C).'':h($C));if($Zi){echo''.(preg_match('~materialized~i',$T)?lang(128):lang(129)).'','?';}else{foreach(array("Engine"=>array(),"Collation"=>array(),"Data_length"=>array("create",lang(43)),"Index_length"=>array("indexes",lang(132)),"Data_free"=>array("edit",lang(44)),"Auto_increment"=>array("auto_increment=1&create",lang(43)),"Rows"=>array("select",lang(40)),)as$y=>$_){$Kd=" id='$y-".h($C)."'";echo($_?"".(support("table")||$y=="Rows"||(support("indexes")&&$y!="Data_length")?"?":"?"):"");}$S++;}echo(support("comment")?"":""),"\n";}echo"
    ".lang(252,count($Uh)),"".h($x=="sql"?$g->result("SELECT @@default_storage_engine"):""),"".h(db_collation(DB,collations()));foreach(array("Data_length","Index_length","Data_free")as$y)echo"";echo"\n","
    \n","
    \n";if(!information_schema(DB)){echo"\n";}echo"
    \n",script("tableCheck();");}echo'

    ".lang(144)."

    \n";$Ug=routines();if($Ug){echo"\n",'\n";foreach($Ug as$J){$C=($J["SPECIFIC_NAME"]==$J["ROUTINE_NAME"]?"":"&name=".urlencode($J["ROUTINE_NAME"]));echo'','
    '.lang(184).''.lang(48).''.lang(222)."
    '.h($J["ROUTINE_NAME"]).'',''.h($J["ROUTINE_TYPE"]),''.h($J["DTD_IDENTIFIER"]),''.lang(135)."";}echo"
    \n";}echo'

    ".lang(290)."

    \n";$jh=get_vals("SELECT sequence_name FROM information_schema.sequences WHERE sequence_schema = current_schema() ORDER BY sequence_name");if($jh){echo"\n","\n";foreach($jh as$X)echo"
    ".lang(184)."
    ".h($X)."\n";echo"
    \n";}echo"

    ".lang(9)."

    \n";$Ri=types();if($Ri){echo"\n","\n";foreach($Ri as$X)echo"
    ".lang(184)."
    ".h($X)."\n";echo"
    \n";}echo"

    ".lang(145)."

    \n";$K=get_rows("SHOW EVENTS");if($K){echo"\n","\n";foreach($K as$J){echo"","
    ".lang(184)."".lang(291)."".lang(211)."".lang(212)."
    ".h($J["Name"]),"".($J["Execute at"]?lang(292)."".$J["Execute at"]:lang(213)." ".$J["Interval value"]." ".$J["Interval field"]."$J[Starts]"),"$J[Ends]",''.lang(135).'';}echo"
    \n";$Lc=$g->result("SELECT @@event_scheduler");if($Lc&&$Lc!="ON")echo"

    event_scheduler: ".h($Lc)."\n";}echo'