<?php
/** Adminer Editor - Compact database editor
* @link https://www.adminer.org/
* @author Jakub Vrana, https://www.vrana.cz/
* @copyright 2009 Jakub Vrana
* @license https://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0
* @license https://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 (one or other)
* @version 5.4.2
*/namespace
Adminer;const
VERSION="5.4.2";error_reporting(24575);set_error_handler(function($Gb,$Hb){return!!preg_match('~^Undefined (array key|offset|index)~',$Hb);},E_WARNING|E_NOTICE);$Wb=!preg_match('~^(unsafe_raw)?$~',ini_get("filter.default"));if($Wb||ini_get("filter.default_flags")){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$W){$Kf=filter_input_array(constant("INPUT$W"),FILTER_UNSAFE_RAW);if($Kf)$$W=$Kf;}}if(function_exists("mb_internal_encoding"))mb_internal_encoding("8bit");function
connection($g=null){return($g?:Db::$instance);}function
adminer(){return
Adminer::$instance;}function
driver(){return
Driver::$instance;}function
connect(){$bb=adminer()->credentials();$K=Driver::connect($bb[0],$bb[1],$bb[2]);return(is_object($K)?$K:null);}function
idf_unescape($t){if(!preg_match('~^[`\'"[]~',$t))return$t;$fd=substr($t,-1);return
str_replace($fd.$fd,$fd,substr($t,1,-1));}function
q($Q){return
connection()->quote($Q);}function
escape_string($W){return
substr(q($W),1,-1);}function
idx($ka,$w,$i=null){return($ka&&array_key_exists($w,$ka)?$ka[$w]:$i);}function
number($W){return
preg_replace('~[^0-9]+~','',$W);}function
number_type(){return'((?<!o)int(?!er)|numeric|real|float|double|decimal|money)';}function
remove_slashes(array$Wf,$Wb=false){$K=array();foreach($Wf
as$w=>$W)$K[stripslashes($w)]=(is_array($W)?remove_slashes($W,$Wb):($Wb?$W:stripslashes($W)));return$K;}function
bracket_escape($t,$sa=false){static$Af=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return
strtr($t,($sa?array_flip($Af):$Af));}function
min_version($Xf,$od="",$g=null){$g=connection($g);$Re=$g->server_info;if($od&&preg_match('~([\d.]+)-MariaDB~',$Re,$_)){$Re=$_[1];$Xf=$od;}return$Xf&&version_compare($Re,$Xf)>=0;}function
charset(Db$f){return(min_version("5.5.3",0,$f)?"utf8mb4":"utf8");}function
ini_bool($Kc){$W=ini_get($Kc);return(preg_match('~^(on|true|yes)$~i',$W)||(int)$W);}function
ini_bytes($Kc){$W=ini_get($Kc);switch(strtolower(substr($W,-1))){case'g':$W=(int)$W*1024;case'm':$W=(int)$W*1024;case'k':$W=(int)$W*1024;}return$W;}function
sid(){static$K;if($K===null)$K=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$K;}function
set_password($Y,$O,$U,$G){$_SESSION["pwds"][$Y][$O][$U]=($_COOKIE["adminer_key"]&&is_string($G)?array(encrypt_string($G,$_COOKIE["adminer_key"])):$G);}function
get_password(){$K=get_session("pwds");if(is_array($K))$K=($_COOKIE["adminer_key"]?decrypt_string($K[0],$_COOKIE["adminer_key"]):false);return$K;}function
get_val($I,$k=0,$Ua=null){$Ua=connection($Ua);$J=$Ua->query($I);if(!is_object($J))return
false;$L=$J->fetch_row();return($L?$L[$k]:false);}function
get_vals($I,$c=0){$K=array();$J=connection()->query($I);if(is_object($J)){while($L=$J->fetch_row())$K[]=$L[$c];}return$K;}function
get_key_vals($I,$g=null,$Ue=true){$g=connection($g);$K=array();$J=$g->query($I);if(is_object($J)){while($L=$J->fetch_row()){if($Ue)$K[$L[0]]=$L[1];else$K[]=$L[0];}}return$K;}function
get_rows($I,$g=null,$j="<p class='error'>"){$Ua=connection($g);$K=array();$J=$Ua->query($I);if(is_object($J)){while($L=$J->fetch_assoc())$K[]=$L;}elseif(!$J&&!$g&&$j&&(defined('Adminer\PAGE_HEADER')||$j=="-- "))echo$j.error()."\n";return$K;}function
unique_array($L,array$v){foreach($v
as$u){if(preg_match("~PRIMARY|UNIQUE~",$u["type"])&&!$u["partial"]){$K=array();foreach($u["columns"]as$w){if(!isset($L[$w]))continue
2;$K[$w]=$L[$w];}return$K;}}}function
escape_key($w){if(preg_match('(^([\w(]+)('.str_replace("_",".*",preg_quote(idf_escape("_"))).')([ \w)]+)$)',$w,$_))return$_[1].idf_escape(idf_unescape($_[2])).$_[3];return
idf_escape($w);}function
where(array$Z,array$l=array()){$K=array();foreach((array)$Z["where"]as$w=>$W){$w=bracket_escape($w,true);$c=escape_key($w);$k=idx($l,$w,array());$Tb=$k["type"];$K[]=$c.(JUSH=="sql"&&$Tb=="json"?" = CAST(".q($W)." AS JSON)":(JUSH=="pgsql"&&preg_match('~^json~',$Tb)?"::jsonb = ".q($W)."::jsonb":(JUSH=="sql"&&is_numeric($W)&&preg_match('~\.~',$W)?" LIKE ".q($W):(JUSH=="mssql"&&strpos($Tb,"datetime")===false?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$W)):" = ".unconvert_field($k,q($W))))));if(JUSH=="sql"&&preg_match('~char|text~',$Tb)&&preg_match("~[^ -@]~",$W))$K[]="$c = ".q($W)." COLLATE ".charset(connection())."_bin";}foreach((array)$Z["null"]as$w)$K[]=escape_key($w)." IS NULL";return
implode(" AND ",$K);}function
where_check($W,array$l=array()){parse_str($W,$Ga);remove_slashes(array(&$Ga));return
where($Ga,$l);}function
where_link($r,$c,$X,$Td="="){return"&where%5B$r%5D%5Bcol%5D=".urlencode($c)."&where%5B$r%5D%5Bop%5D=".urlencode(($X!==null?$Td:"IS NULL"))."&where%5B$r%5D%5Bval%5D=".urlencode($X);}function
convert_fields(array$d,array$l,array$N=array()){$K="";foreach($d
as$w=>$W){if($N&&!in_array(idf_escape($w),$N))continue;$la=convert_field($l[$w]);if($la)$K
.=", $la AS ".idf_escape($w);}return$K;}function
cookie($B,$X,$kd=2592000){header("Set-Cookie: $B=".rawurlencode($X).($kd?"; expires=".gmdate("D, d M Y H:i:s",time()+$kd)." GMT":"")."; path=".preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]).(HTTPS?"; secure":"")."; HttpOnly; SameSite=lax",false);}function
get_settings($Ya){parse_str($_COOKIE[$Ya],$Ve);return$Ve;}function
get_setting($w,$Ya="adminer_settings",$i=null){return
idx(get_settings($Ya),$w,$i);}function
save_settings(array$Ve,$Ya="adminer_settings"){$X=http_build_query($Ve+get_settings($Ya));cookie($Ya,$X);$_COOKIE[$Ya]=$X;}function
restart_session(){if(!ini_bool("session.use_cookies")&&(!function_exists('session_status')||session_status()==1))session_start();}function
stop_session($ac=false){$Sf=ini_bool("session.use_cookies");if(!$Sf||$ac){session_write_close();if($Sf&&@ini_set("session.use_cookies",'0')===false)session_start();}}function&get_session($w){return$_SESSION[$w][DRIVER][SERVER][$_GET["username"]];}function
set_session($w,$W){$_SESSION[$w][DRIVER][SERVER][$_GET["username"]]=$W;}function
auth_url($Y,$O,$U,$h=null){$Qf=remove_from_uri(implode("|",array_keys(SqlDriver::$drivers))."|username|ext|".($h!==null?"db|":"").($Y=='mssql'||$Y=='pgsql'?"":"ns|").session_name());preg_match('~([^?]*)\??(.*)~',$Qf,$_);return"$_[1]?".(sid()?SID."&":"").($Y!="server"||$O!=""?urlencode($Y)."=".urlencode($O)."&":"").($_GET["ext"]?"ext=".urlencode($_GET["ext"])."&":"")."username=".urlencode($U).($h!=""?"&db=".urlencode($h):"").($_[2]?"&$_[2]":"");}function
is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
redirect($z,$_d=null){if($_d!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($z!==null?$z:$_SERVER["REQUEST_URI"]))][]=$_d;}if($z!==null){if($z=="")$z=".";header("Location: $z");exit;}}function
query_redirect($I,$z,$_d,$Ae=true,$Lb=true,$Qb=false,$sf=""){if($Lb){$df=microtime(true);$Qb=!connection()->query($I);$sf=format_time($df);}$af=($I?adminer()->messageQuery($I,$sf,$Qb):"");if($Qb){adminer()->error
.=error().$af.script("messagesPrint();")."<br>";return
false;}if($Ae)redirect($z,$_d.$af);return
true;}class
Queries{static$queries=array();static$start=0;}function
queries($I){if(!Queries::$start)Queries::$start=microtime(true);Queries::$queries[]=(driver()->delimiter!=';'?$I:(preg_match('~;$~',$I)?"DELIMITER ;;\n$I;\nDELIMITER ":$I).";");return
connection()->query($I);}function
apply_queries($I,array$nf,$Ib='Adminer\table'){foreach($nf
as$R){if(!queries("$I ".$Ib($R)))return
false;}return
true;}function
queries_redirect($z,$_d,$Ae){$we=implode("\n",Queries::$queries);$sf=format_time(Queries::$start);return
query_redirect($we,$z,$_d,$Ae,false,!$Ae,$sf);}function
format_time($df){return
lang(0,max(0,microtime(true)-$df));}function
relative_uri(){return
str_replace(":","%3a",preg_replace('~^[^?]*/([^?]*)~','\1',$_SERVER["REQUEST_URI"]));}function
remove_from_uri($ce=""){return
substr(preg_replace("~(?<=[?&])($ce".(SID?"":"|".session_name()).")=[^&]*&~",'',relative_uri()."&"),0,-1);}function
get_file($w,$jb=false,$mb=""){$Ub=$_FILES[$w];if(!$Ub)return
null;foreach($Ub
as$w=>$W)$Ub[$w]=(array)$W;$K='';foreach($Ub["error"]as$w=>$j){if($j)return$j;$B=$Ub["name"][$w];$yf=$Ub["tmp_name"][$w];$Wa=file_get_contents($jb&&preg_match('~\.gz$~',$B)?"compress.zlib://$yf":$yf);if($jb){$df=substr($Wa,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$df))$Wa=iconv("utf-16","utf-8",$Wa);elseif($df=="\xEF\xBB\xBF")$Wa=substr($Wa,3);}$K
.=$Wa;if($mb)$K
.=(preg_match("($mb\\s*\$)",$Wa)?"":$mb)."\n\n";}return$K;}function
upload_error($j){$vd=($j==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($j?lang(1).($vd?" ".lang(2,$vd):""):lang(3));}function
repeat_pattern($ie,$id){return
str_repeat("$ie{0,65535}",$id/65535)."$ie{0,".($id%65535)."}";}function
is_utf8($W){return(preg_match('~~u',$W)&&!preg_match('~[\0-\x8\xB\xC\xE-\x1F]~',$W));}function
format_number($W){return
strtr(number_format($W,0,".",lang(4)),preg_split('~~u',lang(5),-1,PREG_SPLIT_NO_EMPTY));}function
friendly_url($W){return
preg_replace('~\W~i','-',$W);}function
table_status1($R,$Rb=false){$K=table_status($R,$Rb);return($K?reset($K):array("Name"=>$R));}function
column_foreign_keys($R){$K=array();foreach(adminer()->foreignKeys($R)as$ec){foreach($ec["source"]as$W)$K[$W][]=$ec;}return$K;}function
fields_from_edit(){$K=array();foreach((array)$_POST["field_keys"]as$w=>$W){if($W!=""){$W=bracket_escape($W);$_POST["function"][$W]=$_POST["field_funs"][$w];$_POST["fields"][$W]=$_POST["field_vals"][$w];}}foreach((array)$_POST["fields"]as$w=>$W){$B=bracket_escape($w,true);$K[$B]=array("field"=>$B,"privileges"=>array("insert"=>1,"update"=>1,"where"=>1,"order"=>1),"null"=>1,"auto_increment"=>($w==driver()->primary),);}return$K;}function
dump_headers($Dc,$Fd=false){$K=adminer()->dumpHeaders($Dc,$Fd);$Zd=$_POST["output"];if($Zd!="text")header("Content-Disposition: attachment; filename=".adminer()->dumpFilename($Dc).".$K".($Zd!="file"&&preg_match('~^[0-9a-z]+$~',$Zd)?".$Zd":""));session_write_close();if(!ob_get_level())ob_start(null,4096);ob_flush();flush();return$K;}function
dump_csv(array$L){$Ef=$_POST["format"]=="tsv";foreach($L
as$w=>$W){if(preg_match('~["\n]|^0[^.]|\.\d*0$|'.($Ef?'\t':'[,;]|^$').'~',$W))$L[$w]='"'.str_replace('"','""',$W).'"';}echo
implode(($_POST["format"]=="csv"?",":($Ef?"\t":";")),$L)."\r\n";}function
apply_sql_function($p,$c){return($p?($p=="unixepoch"?"DATETIME($c, '$p')":($p=="count distinct"?"COUNT(DISTINCT ":strtoupper("$p("))."$c)"):$c);}function
get_temp_dir(){$K=ini_get("upload_tmp_dir");if(!$K){if(function_exists('sys_get_temp_dir'))$K=sys_get_temp_dir();else{$m=@tempnam("","");if(!$m)return'';$K=dirname($m);unlink($m);}}return$K;}function
file_open_lock($m){if(is_link($m))return;$o=@fopen($m,"c+");if(!$o)return;@chmod($m,0660);if(!flock($o,LOCK_EX)){fclose($o);return;}return$o;}function
file_write_unlock($o,$gb){rewind($o);fwrite($o,$gb);ftruncate($o,strlen($gb));file_unlock($o);}function
file_unlock($o){flock($o,LOCK_UN);fclose($o);}function
first(array$ka){return
reset($ka);}function
password_file($Za){$m=get_temp_dir()."/adminer.key";if(!$Za&&!file_exists($m))return'';$o=file_open_lock($m);if(!$o)return'';$K=stream_get_contents($o);if(!$K){$K=rand_string();file_write_unlock($o,$K);}else
file_unlock($o);return$K;}function
rand_string(){return
md5(uniqid(strval(mt_rand()),true));}function
select_value($W,$y,array$k,$qf){if(is_array($W)){$K="";if(array_filter($W,'is_array')==array_values($W)){$Zc=array();foreach($W
as$V)$Zc+=array_fill_keys(array_keys($V),null);foreach(array_keys($Zc)as$Yc)$K
.="<th>".h($Yc);foreach($W
as$V){$K
.="<tr>";foreach(array_merge($Zc,$V)as$Uf)$K
.="<td>".select_value($Uf,$y,$k,$qf);}}else{foreach($W
as$Yc=>$V)$K
.="<tr>".($W!=array_values($W)?"<th>".h($Yc):"")."<td>".select_value($V,$y,$k,$qf);}return"<table>$K</table>";}if(!$y)$y=adminer()->selectLink($W,$k);if($y===null){if(is_mail($W))$y="mailto:$W";if(is_url($W))$y=$W;}$K=adminer()->editVal(driver()->value($W,$k),$k);if($K!==null){if(!is_utf8($K))$K="\0";elseif($qf!=""&&is_shortable($k))$K=shorten_utf8($K,max(0,+$qf));else$K=h($K);}return
adminer()->selectVal($K,$y,$k,$W);}function
is_blob(array$k){return
preg_match('~blob|bytea|raw|file~',$k["type"])&&!in_array($k["type"],idx(driver()->structuredTypes(),lang(6),array()));}function
is_mail($zb){$ma='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$sb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$ie="$ma+(\\.$ma+)*@($sb?\\.)+$sb";return
is_string($zb)&&preg_match("(^$ie(,\\s*$ie)*\$)i",$zb);}function
is_url($Q){$sb='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return
preg_match("~^((https?):)?//($sb?\\.)+$sb(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$Q);}function
is_shortable(array$k){return!preg_match('~'.number_type().'|date|time|year~',$k["type"]);}function
host_port($O){return(preg_match('~^(\[(.+)]|([^:]+)):([^:]+)$~',$O,$_)?array($_[2].$_[3],$_[4]):array($O,''));}function
count_rows($R,array$Z,$Sc,array$q){$I=" FROM ".table($R).($Z?" WHERE ".implode(" AND ",$Z):"");return($Sc&&(JUSH=="sql"||count($q)==1)?"SELECT COUNT(DISTINCT ".implode(", ",$q).")$I":"SELECT COUNT(*)".($Sc?" FROM (SELECT 1$I GROUP BY ".implode(", ",$q).") x":$I));}function
slow_query($I){$h=adminer()->database();$tf=adminer()->queryTimeout();$Xe=driver()->slowQuery($I,$tf);$g=null;if(!$Xe&&support("kill")){$g=connect();if($g&&($h==""||$g->select_db($h))){$ad=get_val(connection_id(),0,$g);echo
script("const timeout = setTimeout(() => { ajax('".js_escape(ME)."script=kill', function () {}, 'kill=$ad&token=".get_token()."'); }, 1000 * $tf);");}}ob_flush();flush();$K=@get_key_vals(($Xe?:$I),$g,false);if($g){echo
script("clearTimeout(timeout);");ob_flush();flush();}return$K;}function
get_token(){$ze=rand(1,1e6);return($ze^$_SESSION["token"]).":$ze";}function
verify_token(){list($zf,$ze)=explode(":",$_POST["token"]);return($ze^$_SESSION["token"])==$zf;}function
lzw_decompress($za){$qb=256;$_a=8;$Ma=array();$Fe=0;$Ge=0;for($r=0;$r<strlen($za);$r++){$Fe=($Fe<<8)+ord($za[$r]);$Ge+=8;if($Ge>=$_a){$Ge-=$_a;$Ma[]=$Fe>>$Ge;$Fe&=(1<<$Ge)-1;$qb++;if($qb>>$_a)$_a++;}}$pb=range("\0","\xFF");$K="";$eg="";foreach($Ma
as$r=>$La){$yb=$pb[$La];if(!isset($yb))$yb=$eg.$eg[0];$K
.=$yb;if($r)$pb[]=$eg.$yb[0];$eg=$yb;}return$K;}function
script($Ze,$_f="\n"){return"<script".nonce().">$Ze</script>$_f";}function
script_src($Rf,$kb=false){return"<script src='".h($Rf)."'".nonce().($kb?" defer":"")."></script>\n";}function
nonce(){return' nonce="'.get_nonce().'"';}function
input_hidden($B,$X=""){return"<input type='hidden' name='".h($B)."' value='".h($X)."'>\n";}function
input_token(){return
input_hidden("token",get_token());}function
target_blank(){return' target="_blank" rel="noreferrer noopener"';}function
h($Q){return
str_replace("\0","&#0;",htmlspecialchars($Q,ENT_QUOTES,'utf-8'));}function
nl_br($Q){return
str_replace("\n","<br>",$Q);}function
checkbox($B,$X,$Ha,$bd="",$Rd="",$Ka="",$dd=""){$K="<input type='checkbox' name='$B' value='".h($X)."'".($Ha?" checked":"").($dd?" aria-labelledby='$dd'":"").">".($Rd?script("qsl('input').onclick = function () { $Rd };",""):"");return($bd!=""||$Ka?"<label".($Ka?" class='$Ka'":"").">$K".h($bd)."</label>":$K);}function
optionlist($D,$Ne=null,$Tf=false){$K="";foreach($D
as$Yc=>$V){$Vd=array($Yc=>$V);if(is_array($V)){$K
.='<optgroup label="'.h($Yc).'">';$Vd=$V;}foreach($Vd
as$w=>$W)$K
.='<option'.($Tf||is_string($w)?' value="'.h($w).'"':'').($Ne!==null&&($Tf||is_string($w)?(string)$w:$W)===$Ne?' selected':'').'>'.h($W);if(is_array($V))$K
.='</optgroup>';}return$K;}function
html_select($B,array$D,$X="",$Qd="",$dd=""){static$bd=0;$cd="";if(!$dd&&substr($D[""],0,1)=="("){$bd++;$dd="label-$bd";$cd="<option value='' id='$dd'>".h($D[""]);unset($D[""]);}return"<select name='".h($B)."'".($dd?" aria-labelledby='$dd'":"").">".$cd.optionlist($D,$X)."</select>".($Qd?script("qsl('select').onchange = function () { $Qd };",""):"");}function
html_radios($B,array$D,$X="",$Qe=""){$K="";foreach($D
as$w=>$W)$K
.="<label><input type='radio' name='".h($B)."' value='".h($w)."'".($w==$X?" checked":"").">".h($W)."</label>$Qe";return$K;}function
confirm($_d="",$Oe="qsl('input')"){return
script("$Oe.onclick = () => confirm('".($_d?js_escape($_d):lang(7))."');","");}function
print_fieldset($s,$hd,$ag=false){echo"<fieldset><legend>","<a href='#fieldset-$s'>$hd</a>",script("qsl('a').onclick = partial(toggle, 'fieldset-$s');",""),"</legend>","<div id='fieldset-$s'".($ag?"":" class='hidden'").">\n";}function
bold($Aa,$Ka=""){return($Aa?" class='active $Ka'":($Ka?" class='$Ka'":""));}function
js_escape($Q){return
addcslashes($Q,"\r\n'\\/");}function
pagination($F,$eb){return" ".($F==$eb?$F+1:'<a href="'.h(remove_from_uri("page").($F?"&page=$F".($_GET["next"]?"&next=".urlencode($_GET["next"]):""):"")).'">'.($F+1)."</a>");}function
hidden_fields(array$ue,array$Fc=array(),$qe=''){$K=false;foreach($ue
as$w=>$W){if(!in_array($w,$Fc)){if(is_array($W))hidden_fields($W,array(),$w);else{$K=true;echo
input_hidden(($qe?$qe."[$w]":$w),$W);}}}return$K;}function
hidden_fields_get(){echo(sid()?input_hidden(session_name(),session_id()):''),(SERVER!==null?input_hidden(DRIVER,SERVER):""),input_hidden("username",$_GET["username"]);}function
file_input($Mc){$sd="max_file_uploads";$td=ini_get($sd);$Of="upload_max_filesize";$Pf=ini_get($Of);return(ini_bool("file_uploads")?$Mc.script("qsl('input[type=\"file\"]').onchange = partialArg(fileChange, "."$td, '".lang(8,"$sd = $td")."', ".ini_bytes("upload_max_filesize").", '".lang(8,"$Of = $Pf")."')"):lang(9));}function
enum_input($T,$b,array$k,$X,$Bb=""){preg_match_all("~'((?:[^']|'')*)'~",$k["length"],$qd);$qe=($k["type"]=="enum"?"val-":"");$Ha=(is_array($X)?in_array("null",$X):$X===null);$K=($k["null"]&&$qe?"<label><input type='$T'$b value='null'".($Ha?" checked":"")."><i>$Bb</i></label>":"");foreach($qd[1]as$W){$W=stripcslashes(str_replace("''","'",$W));$Ha=(is_array($X)?in_array($qe.$W,$X):$X===$W);$K
.=" <label><input type='$T'$b value='".h($qe.$W)."'".($Ha?' checked':'').'>'.h(adminer()->editVal($W,$k)).'</label>';}return$K;}function
input(array$k,$X,$p,$ra=false){$B=h(bracket_escape($k["field"]));echo"<td class='function'>";if(is_array($X)&&!$p)$p="json";$Wc=($p=="json"||preg_match('~^jsonb?$~',$k["type"]));if($Wc&&$X!=''&&(JUSH!="pgsql"||$k["type"]!="json"))$X=json_encode(is_array($X)?$X:json_decode($X),128|64|256);$Ee=(JUSH=="mssql"&&$k["auto_increment"]);if($Ee&&!$_POST["save"])$p=null;$jc=(isset($_GET["select"])||$Ee?array("orig"=>lang(10)):array())+adminer()->editFunctions($k);$Eb=driver()->enumLength($k);if($Eb){$k["type"]="enum";$k["length"]=$Eb;}$b=" name='fields[$B]".($k["type"]=="enum"||$k["type"]=="set"?"[]":"")."'".($ra?" autofocus":"");echo
driver()->unconvertFunction($k)." ";$R=$_GET["edit"]?:$_GET["select"];if($k["type"]=="enum")echo
h($jc[""])."<td>".adminer()->editInput($R,$k,$b,$X);else{$sc=(in_array($p,$jc)||isset($jc[$p]));echo(count($jc)>1?"<select name='function[$B]'>".optionlist($jc,$p===null||$sc?$p:"")."</select>".on_help("event.target.value.replace(/^SQL\$/, '')",1).script("qsl('select').onchange = functionChange;",""):h(reset($jc))).'<td>';$Mc=adminer()->editInput($R,$k,$b,$X);if($Mc!="")echo$Mc;elseif(preg_match('~bool~',$k["type"]))echo"<input type='hidden'$b value='0'>"."<input type='checkbox'".(preg_match('~^(1|t|true|y|yes|on)$~i',$X)?" checked='checked'":"")."$b value='1'>";elseif($k["type"]=="set")echo
enum_input("checkbox",$b,$k,(is_string($X)?explode(",",$X):$X));elseif(is_blob($k)&&ini_bool("file_uploads"))echo"<input type='file' name='fields-$B'>";elseif($Wc)echo"<textarea$b cols='50' rows='12' class='jush-js'>".h($X).'</textarea>';elseif(($pf=preg_match('~text|lob|memo~i',$k["type"]))||preg_match("~\n~",$X)){if($pf&&JUSH!="sqlite")$b
.=" cols='50' rows='12'";else{$M=min(12,substr_count($X,"\n")+1);$b
.=" cols='30' rows='$M'";}echo"<textarea$b>".h($X).'</textarea>';}else{$Ff=driver()->types();$xd=(!preg_match('~int~',$k["type"])&&preg_match('~^(\d+)(,(\d+))?$~',$k["length"],$_)?((preg_match("~binary~",$k["type"])?2:1)*$_[1]+($_[3]?1:0)+($_[2]&&!$k["unsigned"]?1:0)):($Ff[$k["type"]]?$Ff[$k["type"]]+($k["unsigned"]?0:1):0));if(JUSH=='sql'&&min_version(5.6)&&preg_match('~time~',$k["type"]))$xd+=7;echo"<input".((!$sc||$p==="")&&preg_match('~(?<!o)int(?!er)~',$k["type"])&&!preg_match('~\[\]~',$k["full_type"])?" type='number'":"")." value='".h($X)."'".($xd?" data-maxlength='$xd'":"").(preg_match('~char|binary~',$k["type"])&&$xd>20?" size='".($xd>99?60:40)."'":"")."$b>";}echo
adminer()->editHint($R,$k,$X);$Xb=0;foreach($jc
as$w=>$W){if($w===""||!$W)break;$Xb++;}if($Xb&&count($jc)>1)echo
script("qsl('td').oninput = partial(skipOriginal, $Xb);");}}function
process_input(array$k){$t=bracket_escape($k["field"]);$p=idx($_POST["function"],$t);$X=idx($_POST["fields"],$t);if($X===null)return
false;if($k["type"]=="enum"||driver()->enumLength($k)){$X=idx($X,0);if($X=="orig"||!$X)return
false;if($X=="null")return"NULL";$X=substr($X,4);}if($k["auto_increment"]&&$X=="")return
null;if($p=="orig")return(preg_match('~^CURRENT_TIMESTAMP~i',$k["on_update"])?idf_escape($k["field"]):false);if($p=="NULL")return"NULL";if($k["type"]=="set")$X=implode(",",(array)$X);if($p=="json"){$p="";$X=json_decode($X,true);if(!is_array($X))return
false;return$X;}if(is_blob($k)&&ini_bool("file_uploads")){$Ub=get_file("fields-$t");if(!is_string($Ub))return
false;return
driver()->quoteBinary($Ub);}return
adminer()->processInput($k,$X,$p);}function
search_tables(){$_GET["where"][0]["val"]=$_POST["query"];$Pe="<ul>\n";foreach(table_status('',true)as$R=>$S){$B=adminer()->tableName($S);if(isset($S["Engine"])&&$B!=""&&(!$_POST["tables"]||in_array($R,$_POST["tables"]))){$J=connection()->query("SELECT".limit("1 FROM ".table($R)," WHERE ".implode(" AND ",adminer()->selectSearchProcess(fields($R),array())),1));if(!$J||$J->fetch_row()){$se="<a href='".h(ME."select=".urlencode($R)."&where[0][op]=".urlencode($_GET["where"][0]["op"])."&where[0][val]=".urlencode($_GET["where"][0]["val"]))."'>$B</a>";echo"$Pe<li>".($J?$se:"<p class='error'>$se: ".error())."\n";$Pe="";}}}echo($Pe?"<p class='message'>".lang(11):"</ul>")."\n";}function
on_help($Ra,$We=0){return
script("mixin(qsl('select, input'), {onmouseover: function (event) { helpMouseover.call(this, event, $Ra, $We) }, onmouseout: helpMouseout});","");}function
edit_form($R,array$l,$L,$Nf,$j=''){$mf=adminer()->tableName(table_status1($R,true));page_header(($Nf?lang(12):lang(13)),$j,array("select"=>array($R,$mf)),$mf);adminer()->editRowPrint($R,$l,$L,$Nf);if($L===false){echo"<p class='error'>".lang(14)."\n";return;}echo"<form action='' method='post' enctype='multipart/form-data' id='form'>\n";$xb=false;if(!$l)echo"<p class='error'>".lang(15)."\n";else{echo"<table class='layout'>".script("qsl('table').onkeydown = editingKeydown;");$ra=!$_POST;foreach($l
as$B=>$k){echo"<tr><th>".adminer()->fieldName($k);$i=idx($_GET["set"],bracket_escape($B));if($i===null){$i=$k["default"];if($k["type"]=="bit"&&preg_match("~^b'([01]*)'\$~",$i,$Ce))$i=$Ce[1];if(JUSH=="sql"&&preg_match('~binary~',$k["type"]))$i=bin2hex($i);}$X=($L!==null?($L[$B]!=""&&JUSH=="sql"&&preg_match("~enum|set~",$k["type"])&&is_array($L[$B])?implode(",",$L[$B]):(is_bool($L[$B])?+$L[$B]:$L[$B])):(!$Nf&&$k["auto_increment"]?"":(isset($_GET["select"])?false:$i)));if(!$_POST["save"]&&is_string($X))$X=adminer()->editVal($X,$k);if(($Nf&&!isset($k["privileges"]["update"]))||$k["generated"])echo"<td class='function'><td>".select_value($X,'',$k,null);else{$xb=true;$p=($_POST["save"]?idx($_POST["function"],$B,""):($Nf&&preg_match('~^CURRENT_TIMESTAMP~i',$k["on_update"])?"now":($X===false?null:($X!==null?'':'NULL'))));if(!$_POST&&!$Nf&&$X==$k["default"]&&preg_match('~^[\w.]+\(~',$X))$p="SQL";if(preg_match("~time~",$k["type"])&&preg_match('~^CURRENT_TIMESTAMP~i',$X)){$X="";$p="now";}if($k["type"]=="uuid"&&$X=="uuid()"){$X="";$p="uuid";}if($ra!==false)$ra=($k["auto_increment"]||$p=="now"||$p=="uuid"?null:true);input($k,$X,$p,$ra);if($ra)$ra=false;}echo"\n";}if(!support("table")&&!fields($R))echo"<tr>"."<th><input name='field_keys[]'>".script("qsl('input').oninput = fieldChange;")."<td class='function'>".html_select("field_funs[]",adminer()->editFunctions(array("null"=>isset($_GET["select"]))))."<td><input name='field_vals[]'>"."\n";echo"</table>\n";}echo"<p>\n";if($xb){echo"<input type='submit' value='".lang(16)."'>\n";if(!isset($_GET["select"]))echo"<input type='submit' name='insert' value='".($Nf?lang(17):lang(18))."' title='Ctrl+Shift+Enter'>\n",($Nf?script("qsl('input').onclick = function () { return !ajaxForm(this.form, '".lang(19)."…', this); };"):"");}echo($Nf?"<input type='submit' name='delete' value='".lang(20)."'>".confirm()."\n":"");if(isset($_GET["select"]))hidden_fields(array("check"=>(array)$_POST["check"],"clone"=>$_POST["clone"],"all"=>$_POST["all"]));echo
input_hidden("referer",(isset($_POST["referer"])?$_POST["referer"]:$_SERVER["HTTP_REFERER"])),input_hidden("save",1),input_token(),"</form>\n";}function
shorten_utf8($Q,$id=80,$if=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{10FFFF}]",$id).")($)?)u",$Q,$_))preg_match("(^(".repeat_pattern("[\t\r\n -~]",$id).")($)?)",$Q,$_);return
h($_[1]).$if.(isset($_[2])?"":"<i>…</i>");}function
icon($Cc,$B,$Bc,$uf){return"<button type='submit' name='$B' title='".h($uf)."' class='icon icon-$Cc'><span>$Bc</span></button>";}if(isset($_GET["file"])){if(substr(VERSION,-4)!='-dev'){if($_SERVER["HTTP_IF_MODIFIED_SINCE"]){header("HTTP/1.1 304 Not Modified");exit;}header("Expires: ".gmdate("D, d M Y H:i:s",time()+365*24*60*60)." GMT");header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");header("Cache-Control: immutable");}@ini_set("zlib.output_compression",'1');if($_GET["file"]=="default.css"){header("Content-Type: text/css; charset=utf-8");echo
lzw_decompress("h:Mhgб\"PimcQCa	2ód<fa:;NBqR;1Lf9u7&)l;3J/CQXr2Mai0)e:LuÝh-923li7mZw4њ<-̴!U,Févt2S,a҇FVXaNq)-ǜh:n59Y;j-_9krٓ;.tTqo0{y\rHnGSZh;i^uxWΒC@k=b/A0+(l\\x:\rb8\00!\0F\nB͎(3\r\\Ȅa'I|(i\n\r4Og@4C@@!QB	°c¯q,\r1Eh&2PZiGH9G\"v4rDR\npJ-A|/.cDu:,=R]U5mVkLLQ@-\\@9%SrMPDIa\r(YY\\@Xp:plLC O,\r2]7?m06pTaҥC;_˗yȴd>bnnܣ3X8\r[ˀ-)i>V[Yy&L3#X|	X\\ù`C#H22.#Z`<sÒ\0uh־M_\niZeO/CӒ_`31>=k3R/;/d\0ڵm7/AXq.sL :\$Fw8߾~Hj\"Գ7gSFLίQ_O'W]c=51X~7;i\r*\nJS1ZctAV86fdy;Y]zIpc3Y]}@\$.+1'>ZcpdGL#k8PzYAuv]s9_Aq:\nKhB;XbAHq,CI`jS[ˌ1Vr;pB)#鐉;4H/*<3L;lf\ns\$K`}Ք7jx`d%j]4YHbYJ`GG.KfI)2MfָXRC̱V,~g\0g6:[j1H:AlIqu3\"q|8<9s'Q]J|\0`pjfObq\$1J>RH(ǔq\n#r@e(yVJ0Q҈6P[C:G伞4^PZ\\(\n)~9R%Sj{70_s	z|8H	\"@#9DVL\$H5WJ@zaJ ^	)2\nQv]ՇQp.˵&h2dM1#[[kf,ոΆWq'fLkgn6G;eהECVY{\0D5Rx\"h\"ݟ7W,ňuc31Cxp<If]ѱ^{/H&sρi9\$֒b0َIK\0]IDG}EDVNýmQ31KT3zq|#!\"	҃k/phy-.! 0dmK~au0>\$:\$VMf٨k6:3L@d1zlg֩iX97<׭#a}s\0\\mZXQ'n.9KC9?lXq깗\$M2FqЎKB:bo#KXnMzȤ\r=fm%fi.q;-7x(@#9F)/M-6.V^*g\n!\$(7GxwDWba{1-ԐGw\r9њ (:'%?0Ά)tjHV8}f\$f^wlKl=1ZZEigֺ1Xثbe&,2rk>޲O{-A]mMDȁ>G;ЗgQo:0.7lLשl|:nD탉-K*NY3x.dt>Ў)\$\$9BeeRGwir[62Ǳ9Xk0̱5^PO>C `XOk7\0Klx;48L\$09*9 hNF>\0rPQo<	\\Fd'L:b.4,29@Hnb- #2`Z.L\rPP\"^.Fh\0\r\0\n`	@ 	no	@@\n0 	\0j@q@	1	 \r\0` V`B\n`\n@fh\0` \n@	F`p1\r\0\\&B|`@NI#ApH\rp	`P	11% -\r6\n2	H*@	`\n  	l`z,\rɠ\r\"lh\0(d226\0]#L^\\%\0\\}\$HC\n<}E%IB>͈I\$r6dfhr</FbxYE'2boj\"m(@r*خ~d\$2U2a#`\\A貶r+Ruh\\'+؉\"G!.nMrW*#+%.h\$cCDƊ-#bO`Pv^W@tS-0-|ܶ)g'hF<\rj*\$4'\rH[ɪ1-Fh:,/ɾJ^ODٍj'\rT-&[DĪ(5E B\"`es\n9\r`h\rV%!MZlP^:o>֯XC):meC/\n8I2\rp2&)oC5m0iuAB3fDS61҈C2/Ҩ\ru14GGؔb쒑=KA3>4*\0TI%?r@!3S8,+?.1%6=\0s쭖XnRB@si(O(lKKu%+P65!.O0{Sj.`ȡiz%");}elseif($_GET["file"]=="dark.css"){header("Content-Type: text/css; charset=utf-8");echo
lzw_decompress("h:Mhgh0LЁd91S!	F!\"-6NbdGg:;Nr)c7\r(Hb81s9k\rc)m8OVAc1c34Of*-P1r416d2ցo#3Bf#	g9Φ،fc\rIb6EC&,bum7aVs#m!hrv\\3\rL:SAdk5naF3e6fSyr!L-K,3L@J˲*J쵣	bc99@H8\\6>`Ŏ;A<T'p&qqE4\rlh<5#pR #I%fBIܲ>ʫ29<Cj27j8jc(n?(a\0@5*3:δ60-AlLP4@ɰ\$H4n311t0͙9WO!rH9Q96F<7\r-xC\n @:\$iضm4Kid{\n6\rxhˋ#^'4V@a<#h0S-c9+pa2cyhBO\$9wiXɔVY9*rHtm	@b|@/l\$z+%p2l.7;&{mXC<l96x9m7R0\\4P)AoxqO#f[;6~P\raTGT0uޟ\n3\\ \\ʎJudCGPZ>d8ҨC?VdLL.(ti>,L");}elseif($_GET["file"]=="functions.js"){header("Content-Type: text/javascript; charset=utf-8");echo
lzw_decompress("':̢i11	4Q6a&:OAIe:NFD|!Cym2\"r<̱/C#:DbqSeJ˦Cܺ\n\nǱS\rZH\$RAܞS+XKvtdg:6EvXŞjmҩej2MB&ʮLC3Q0L-x\nDyNaPn:s͐(cL/(5{Qy4g-i4ڃf(bUko7&ä*ACb`.\r\nCh<\r)`إ`7CʒZX<Q1X@0dp9EQfF\r!(h)\np'#ČH(i*r&<#7K~# A:N6l,\rJP3!@2>CrhN](a0M326UE2'!<#3R<XCH7#n+a\$!2P0.wdr:YE!]<j@\\pl_\rZғTͩZs3\"~9j>WeQ:X/\"\$8X硉@4H:tL܌j~#8_Ax\$x{LEJ4'00<8>c(zX^5Dt;#K_v꩕u1\n`jn'\"Ir7U*!Ynjk@Ì+5)̄3CZB2HV`qæk]<{\r9|gr\\襜:B2781͍d=HLU}^NߔC*/|􊾓V`)8z:Rb8WA:\$2\r/BE~8iYtzX6ǰICQ7 3)6\00N\r갦 \r0ѯ 9~'%Dw'cdi'ta&r11?\\CmSɞ\$ж o&R,!.AHG\"tPv-&	30.	裃!iĕkJ7	:sO\0^'7^(`B(0nL9(\0\n[Uec)Fʛq2R5\r܀e}ܱh.iZ:AYED2@s1d<)H`تI1I\rZGRϔ/\$Oc\"*p'7`]@\\4BXzgABTQ3wc-sr_:բS@2 #Ė\nuP!Te6TaM)\0v(sVAZS<av(A%#&: `C)\r]MIC'/	PHXb\r\nYMzJFJP?JdBllDCS+-r1<w]v!)IKP4EslkV-kj,c,fRdC!&n0RJ2[3x3TB-Glls`hsV)W4SvC:nd-x` ®\$AP-kr^sASV?3E2X,KtSAq7\n^+%skG<aw	DdYڇQgbn\0A{濡9ùl.Hg(0TJ\$h-Bzm\nWY`!lc\0ϪÄՆMLxyk*Z3EU L-~?ii4[ iDZP)hZ\n5\"1tŦd/BrJcN[FժxK߭nDQS?Q\rL'!\nͅII%2萵Q;ǘ8mX-zIFF]t.H	r/[!#\r{̫pH\n4&3r*L臜{Ae\0L(*{kؘDJ_C:U2\0I0,\n;|xef0`1N`6>C){)3(t8dèO_DT^`H:c\0f<Y`f\\&x \nd+5U݇Oz{n-iFYb7vo%)Xh '7UIVwSR}dK_4 Wjnτ\0l\r\0.p@\0@Ȅ[PZIXكcbqtg2 \\i9< Z@i,`^N'uGBr'&\$F(/җ*uɄYiO	`ʑn:paPhnrM	\0кML,\$Nw)\0*l7GrlrQ	Os\"46 bXbӄoXbbeg\r `BВRhJ\"g\rTcj>I-zGolvu\rz\r	D9BK\r^\rY@,BЖL`^#\rwHpDJMXQ&lg&I\01 	P5&n0?gTs٠O!)`v X ͐QЂ\r y!'v.\r	fK! {#*/ඡ\0H\0r(Ȉ`SpcmI)8.s#G\"`Ƈx'ŔE)Qo)&\\VRZ@2bʒf'dZ&,U\r\"*4! \rD'G\\VHi1Rpc\$L2\nbToB8Fk\\\rB\r\0-l\n1354\04SHM4Qr2O%6p5/O5:pL5)Pľ%E361\r4I:S\"LeGs\\Q627=C	,	&D)<;\\~2ˮr076.'?52K6sa6R23SVLM@Fr9pț3j@NSӂk:@)B\0N`!e\n'PX\\YqLV&r+c.]锏h2]4 z`q8c6q4 ӓPg>#.)7Ne\$nB`\" 4L~΂\nu.OBN@R&N(uN@:h\n]6*hPXΠ@,P3S6U:鮟H5L-6T6SC0FsRRB~r:TnA/OP2-H:1e]P-'''8;8WUbYe!\r ^)Ȗp]	j.`</\"Uw3ʸb brA`fF_u^McTB	_Se65`\ra)ec]cAa_oa2>B\$@Q<OHJtx\"gZ\$nW@	D#S\0002#VΕB;N1NKPnv1wEl*YnB4IqZ`z\0\rR'\"픚iO	ps|)=fs1s72i-Gf `P%H\nhI\re\0X'\"\$z͉Yex@|~k yse`\$ZRz \\Wx[v`{\"Rwn'to#r*\0D3~^@xB~Ħ@}BUCx| YPXN`	\n\0Rmz+X:qy*X(No^8[fG\$LZ[vr#Xυe׍\$':\0[\nr\0Z}	b\$S|BcrQH)xРNDeMb ewzXswxAd苂LYC`{}q}Ό  4j4bFO7MN.'WS/uL	|\")IՁU%VUՌ^q'K4=c\"PvV7HI!\n`	㛓firH	tXn\$wFHĂP@rBa@W9`~bu>wbw3M~zw\$J<@\r&IX<_,[,eDuWL%\06\r?bLeKe*l;cXkY\0BL@\n@o\0h%lx=RB's2tpDϧ\"Z=\rBcQ2vBr4lv ^g(% \$\rvС\nP\\~U.R%ٯvГzx_e{3!e,{ewco|0EW!8wѶuitNef:\r(DV@\n{}cAâ׃|*!X¶\r\$LL/ELlU-/WƬc\$l\nUTPNŵt羣SY<,44.s	kv۠R+bdFN!rgs\$?BB2?P\$dtU`U\rāT\"搖EJ@oUx:<3SSIxGzD(7~M|Q~b5+Irzv@wf6#E\"-	(җhS*7\$QlvB%+]2Ohˢrod\rw'!C`biH8ώ(\0 @DdB>,4qHү츠Hbd\0`]e\"b w6;I?uMNj\rbS_!޷wdK\\O}{=ttZ\0DxaN 3Re#w^NPzU=!zLy͸@˸c]l٬[p՞XMspq5*W4Xs^\"@r~|>B5g2	N\$gFu\rzTjB2Anyc^vҸv\nOv:v}\0P[A%3@@Ǌ=cXGy)~u>zĜQXW\"wEwt;mJnfa@Oo;O hVVc^\06,#2s*y2{tXo;lث\n\nZc?`(%4\$&GrT!AݡCmj0ԀC\0D[H/{!Ak!N:5q\0MKC.B7/ @`Ip;PGr`+D<C]ǆ+<,%Hl`09-GsV]J\nu^Vi5/	6\r%T肊:\n!@ nS\"&)mt1f%RVXJtX%@=bU\$`z@X2dD^Pqő4p@\\,B~6??2OP6\0U0@	XKpf6 RR,e8񶁄Z\nk.BfB:7]\"I6JU\$Mpa:4_gpǐ/0@K;pÅTI<AD =!C\nj	忉S<e-a?XRA]@r4ӢӁOD%9n9x'O4-ZtpFK&1f^biB\rPKƢ)%'*Age\r.o@,`BQ7D\$o	*|Z)ҍE9`BC\n0/qبv#?ʽSt3oGmSlFo)?Y#F9SdfGסESyw#>w9籷9xRn8y.).P,+{dtH:!&;	b߈8k-<G4)%ZP֑p~[@.D텸~	(cGˢŨ8Xђ'ڎH=,\noɤBI/!Rt\nvU%DZlRhG*Lp:.V6\"8 Blr\0*<\"3,Ď|R-TGhfLXBtt\0");}elseif($_GET["file"]=="jush.js"){header("Content-Type: text/javascript; charset=utf-8");echo
lzw_decompress('');}elseif($_GET["file"]=="logo.png"){header("Content-Type: image/png");echo"PNG\r\n\n\0\0\0\rIHDR\0\0\09\0\0\09\0\0\0~6\0\0\0000PLTE\0\0\0+NvYtssuIJ/.C\0\0\0tRNS\0@f\0\0\0	pHYs\0\0\0\0\0\0\0IDAT8ՔN@El϶p6G.\$=>	w5r}z7>P#\$Kj7ݶ?4mt&~3!00^Af0\",*4oEX(*Y	6	PcOW܊mr0~/L\rXj#mjC]Gm\0}ߑuA9X\n8VY+D#iqnKQ8J1Q6Y0`PbQ\\h~>:pSɀGEQ=I{*327\neLB~/R(\$) HQni6J	<-.wɪjVmm?SHvƩ\0^q)]U92,;Ǎ'p!X˃LD.tæ/wR	wdr2Ƥ4[=E5S+c\0\0\0\0IENDB`";}exit;}if(!$_SERVER["REQUEST_URI"])$_SERVER["REQUEST_URI"]=$_SERVER["ORIG_PATH_INFO"];if(!strpos($_SERVER["REQUEST_URI"],'?')&&$_SERVER["QUERY_STRING"]!="")$_SERVER["REQUEST_URI"].="?$_SERVER[QUERY_STRING]";if($_SERVER["HTTP_X_FORWARDED_PREFIX"])$_SERVER["REQUEST_URI"]=$_SERVER["HTTP_X_FORWARDED_PREFIX"].$_SERVER["REQUEST_URI"];define('Adminer\HTTPS',($_SERVER["HTTPS"]&&strcasecmp($_SERVER["HTTPS"],"off"))||ini_bool("session.cookie_secure"));@ini_set("session.use_trans_sid",'0');if(!defined("SID")){session_cache_limiter("");session_name("adminer_sid");session_set_cookie_params(0,preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]),"",HTTPS,true);session_start();}if(function_exists("get_magic_quotes_gpc")&&get_magic_quotes_gpc()){$_GET=remove_slashes($_GET,$Wb);$_POST=remove_slashes($_POST,$Wb);$_COOKIE=remove_slashes($_COOKIE,$Wb);}if(function_exists("get_magic_quotes_runtime")&&get_magic_quotes_runtime())set_magic_quotes_runtime(false);@set_time_limit(0);@ini_set("precision",'15');function
lang($t,$C=null){if(is_string($t)){$ne=array_search($t,get_translations("en"));if($ne!==false)$t=$ne;}$ja=func_get_args();$ja[0]=Lang::$translations[$t]?:$t;return
call_user_func_array('Adminer\lang_format',$ja);}function
lang_format($Bf,$C=null){if(is_array($Bf)){$ne=($C==1?0:(LANG=='cs'||LANG=='sk'?($C&&$C<5?1:2):(LANG=='fr'?(!$C?0:1):(LANG=='pl'?($C%10>1&&$C%10<5&&$C/10%10!=1?1:2):(LANG=='sl'?($C%100==1?0:($C%100==2?1:($C%100==3||$C%100==4?2:3))):(LANG=='lt'?($C%10==1&&$C%100!=11?0:($C%10>1&&$C/10%10!=1?1:2)):(LANG=='lv'?($C%10==1&&$C%100!=11?0:($C?1:2)):(in_array(LANG,array('bs','ru','sr','uk'))?($C%10==1&&$C%100!=11?0:($C%10>1&&$C%10<5&&$C/10%10!=1?1:2)):1))))))));$Bf=$Bf[$ne];}$Bf=str_replace("'",'’',$Bf);$ja=func_get_args();array_shift($ja);$gc=str_replace("%d","%s",$Bf);if($gc!=$Bf)$ja[0]=format_number($C);return
vsprintf($gc,$ja);}function
langs(){return
array('en'=>'English','ar'=>'العربية','bg'=>'Български','bn'=>'বাংলা','bs'=>'Bosanski','ca'=>'Català','cs'=>'Čeština','da'=>'Dansk','de'=>'Deutsch','el'=>'Ελληνικά','es'=>'Español','et'=>'Eesti','fa'=>'فارسی','fi'=>'Suomi','fr'=>'Français','gl'=>'Galego','he'=>'עברית','hi'=>'हिन्दी','hu'=>'Magyar','id'=>'Bahasa Indonesia','it'=>'Italiano','ja'=>'日本語','ka'=>'ქართული','ko'=>'한국어','lt'=>'Lietuvių','lv'=>'Latviešu','ms'=>'Bahasa Melayu','nl'=>'Nederlands','no'=>'Norsk','pl'=>'Polski','pt'=>'Português','pt-br'=>'Português (Brazil)','ro'=>'Limba Română','ru'=>'Русский','sk'=>'Slovenčina','sl'=>'Slovenski','sr'=>'Српски','sv'=>'Svenska','ta'=>'த‌மிழ்','th'=>'ภาษาไทย','tr'=>'Türkçe','uk'=>'Українська','uz'=>'Oʻzbekcha','vi'=>'Tiếng Việt','zh'=>'简体中文','zh-tw'=>'繁體中文',);}function
switch_lang(){echo"<form action='' method='post'>\n<div id='lang'>","<label>".lang(21).": ".html_select("lang",langs(),LANG,"this.form.submit();")."</label>"," <input type='submit' value='".lang(22)."' class='hidden'>\n",input_token(),"</div>\n</form>\n";}if(isset($_POST["lang"])&&verify_token()){cookie("adminer_lang",$_POST["lang"]);$_SESSION["lang"]=$_POST["lang"];redirect(remove_from_uri());}$aa="en";if(idx(langs(),$_COOKIE["adminer_lang"])){cookie("adminer_lang",$_COOKIE["adminer_lang"]);$aa=$_COOKIE["adminer_lang"];}elseif(idx(langs(),$_SESSION["lang"]))$aa=$_SESSION["lang"];else{$ca=array();preg_match_all('~([-a-z]+)(;q=([0-9.]+))?~',str_replace("_","-",strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"])),$qd,PREG_SET_ORDER);foreach($qd
as$_)$ca[$_[1]]=(isset($_[3])?$_[3]:1);arsort($ca);foreach($ca
as$w=>$ve){if(idx(langs(),$w)){$aa=$w;break;}$w=preg_replace('~-.*~','',$w);if(!isset($ca[$w])&&idx(langs(),$w)){$aa=$w;break;}}}define('Adminer\LANG',$aa);class
Lang{static$translations;}Lang::$translations=(array)$_SESSION["translations"];if($_SESSION["translations_version"]!=LANG.
24179913){Lang::$translations=array();$_SESSION["translations_version"]=LANG.
24179913;}if(!Lang::$translations){Lang::$translations=get_translations(LANG);$_SESSION["translations"]=Lang::$translations;}function
get_translations($ed){switch($ed){case"en":$e="%(n0Q :\r	@a0p(a<MSl\\;bѨ\\zNb)̅#FCyfn7Y	h5\r1rNQ<ΰC|~\n\$u\rZhsN(fa(L,7&sL \n'CΗt{:Z\rcG 9\0Qf 4N\0;Nl>\"d0!CDFPVG7Efq\nuJ90ar#uDC,/d\n&sSsu9c9m-3\r \n\n献(@L@;-<@L*B\n<\0!hHz2h: S<B\nl\"&\$NZ1\$VȀS	@t&Ц)B+\"Z6hn\"/M\n&i\nj+0!^07n\"4/jj&}I.9.#8'\$8z:0Cp΂\n2\n!0j#{VFeXγ70ʮюP\0α2\"އp2c1Ø:\\hkDApiZ9Vo\\9ܵ.3Om\rp#dh,ݻoЍZf3Rc9WɄ+ɍ#\"6#B3:xȮH#8_\"xDh͋CO]N 4%ʉEtu,*:X-k	P]4~c湾sGdhSYCMLd.DWc@ދ!5*9ZJS\"8%(U(/V.H@;wMT͒|bW)]}hH ZU\r#O;.\$eGݸ\$\n\npL@&LPT\"Ӎ-Jբ*Lͱ@(O86\$V9k/1V^Mmn.ǲC4͠:jfhpټPXɀ9\0F5P76ª+\$@H  aAQI)+\r't>% \n,[r-2EA.@ړ2NBkd&~K\"efjزC))mH-JN2+EX:,9M3Ŏ\"Dȩa0r5\$`#Gsȱ\"员#%		#*;^#|Lq5PڤMsdP˘F`'E(H2ff!\naI'@AArN<4erˉ-MN+\00-\nPᗵ\\GPٙBrtdK\"JrE 2}dPQz~Oʃ8'dHG)2!TSag\rkRg>!S54?G`q-+_!J6fј3D0rTHA<K2E̪+E@JY\n2:#AWZ1n\\\"1\0";break;case"ar":$e="%)l*C(Xl\"qd+aN.6d^\"(<elV&,lS\nA#RNd|X\nFC1l7`jR[-sa_Nvf|I7FS	;918+[x]š'\$g)EAxDt\n\"3?C,̅Jٷdj=v=I ,΢A7i6LS:h4NF~.5/LZuJ-xk莿bĔ*xB4:I(FSR2P7\rnH7(9\r&Hz\ni3B\"̴\$PTsDEkĒ(GH4ĔBݖBIxP!P<S^sXbV\"bΈ:ZE)+PC\$(T!BBOK+jĬ#XqDB@	ht)`P5hc\rT0\n;PLĞh9\0x0:@0<x\$!p4(f\0A0	\0𼎍#uʿEp296hZ2;(sɔ\n͜ZB lJ\$*BUm	),P:\rS+@70;*ߒ0P7Cm<:c9è\rxac9h0\\aKQfr3\"QY/7mfV:5]8@ nX9jC4|0C@:t,;D8^2xjB:o67lHi++bC\"ȡlkeWidBjNZ9,xJ2?2|o|/tE\\A=j\$6\\\rt뫐iW3?&a)٩\0B'l񍘪n! A\"vO.#Dhͤ4ӗ+;Z@z,f~BimE1o8\0POJ9#	b:\\X)1mARHn}Pcsq:Q,PuO 9*'!\n'\")U!8Ρ#&. 9MQߕ=(xC]1p 0®i!0dtY\0F1șFQ%'CaEre\n!(a#t7&'XqJNЗB}	2&ؔSÒs1,C.< @\$\rx{!+̉k{sOʤ@i~&S9G`\0¡.rJn%>t	|04B\$d PJi\\%S6.y޷z,IF@P8_\"\\ ql\0B` Z縀j}eEDG(\\HŁ>L%QbѩK!!ɛcstEJZT!HN{*l>Vot#tA\0['X;D)\r!@@Wj]\00-Pd	;RUu5-Q Ʌ} &ܓJp%-Ψ\\IP/\r%\"J.|[\0D}lDX#V\rc(檘>}i\rÙo\$I<LHa	ҕ~/xSFļ\\XuJͫbTJqիY!4yFx]{R9F";break;case"bg":$e="%)h-Z(6Q\rA| P\rAtX4P)	EVLh.du\r4eܞ/-O!AH#8:ʥ4lcZ2͠.(\nY(\$\$1`(`1ƃQp9\$+JlYhmrF @#e&a9kG:~drUIzay2ƁѢ^ЦGeS2uJ\\nEW&oI\\qՎ=rBz~̲7Fp0bv%6ڰÈk;\rlJK=/\0X+ĺL=\$\n\r\r63L[ʏ;qlq*oYσhA9sr] ˈƹ\0*X7p@2C9<O\"l(1>Ǐ3/(ۀ	Bf6nGϒ«\nr;\"(ެM	C%H gJ1D	Õ=S)1d	h0&ӯCD\\*JJ:S]O:	S8th& PdȺNVb84 D3Aa\0:c@*|)70!^0ɝ{cx3\r#=2X#V\r2H0CcT7c'd(:p4Me͈5u	@ˈOLD,\$hWI+wYI#oLV6`3z0%aCN.\$GS|/1v\"{O)7.K.\"\n\"N))Kf=0ǯN;?U\n:L\$3>)Z1)Ͻ3H	T=Yp3%ϣ|P(cЯHФ貰!\"i4_]3dW*36ⲧ1#H*^c@440z\r8a^\\08/e20n@VIpgb,WՎg<vibВvNqIAm(5IITN5SΎgFEVp\\_[}WC*\0S*e9>>	2\\C@렪 30@vQsKV-{87JxJO6bE)隠C\n4	Q T(a̰9@ea3Y.xgbL4@%cr|Y@`@a\rȃC}	1Ɉ̧l\ni.:F%@\$	mJ=31\0PVIgGL4,LHnAˀr\r!JP('W#1Řٴd	p Е\rU}A8HB\r:*K*úWP4-\0g~2`RWe7BK'->Xq\"눌zޝîgѡ\0<KIdv[\\&nfNbjCW!]ɋW(U2jλ.&\nC0=+GN\"@eöO漦!nb[u彥6e\"%3!g;L bQyEAۺ8fjN8)RƸU*OE2lP%dAG	8y'&ЯW.-˳\r:.RL(vXI`1v|#IV-7\$t쬬Ye6WP\\zjaLAa<*Bc5 aCeVGPn\\<Y~8lb\\Ʒ a\\Vl=Y8C`+-gbHMc''khjVꋕoJrbAe\nZxU\n/@6\$EeVQY\n)`J'Y&<S2+I eK)&5\$(Nkh/{6@2)jB8'pN[R>*[ԆYbpܨpaĄ\$9VgSeC\"«T{\\KPY1ExC&q=\$nJm%4A\\/mաdKvBM[\n2`L/6]Ɇ";break;case"bn":$e="%)Ut<d sNb\nda\n 6#k:jKMŐD)RA%4}O&S+&e<Jаy#Fj4IjhjV\0B`ULcqؽ2`S4C- dOTSTLZ(JyBHWβt|,G8rgu\$)k2~\n\$g#)eӫf\nVUN(]>uL]	q:jtZut*#w=vp=L˨\r?JtH;:B6cz*\n(:O-*X#ps{BPB/j{BZ-INJGED!QY\$IMV.<SPw@H<ٗxm^&Hۼ4Ě6ش|/\"AjU<#'˒*Io>)2,p,6IQI4ϻAQU8\$XGKpRt(=^>nBhm%\nu4t!E*lSj|bɨE\\PJ2\\кd/\")YM9LPH i)-D%uӒ	*Cъ݇ryN@*3MH<ٕ@<-m\r}B\$	К&BpcV5S[Xb(k,ƒJ.L`x0I2 ~Q-*{,٫-=uQoJ6G,dEwr=LAlx+u	?ܺ5pq ~SGjKqܺ\$˿(XӐZv(=AkB2uvKO`95ȟ)3JEe ;MQՖ\"+}[XͫPbٙݨy4Xae^Y7ɯjJ@R݉vjtrޟ\\E&<2(rFq-(Q47Pꠍ\ryS-\"\r:\0x/L[.\r3xd\r0@x\"lM)Ns-v,t	1b72u56\n%h)Be_|AEp;FKHVd;Q\n;\$SHt;\"MvO[xVN[ 2Ĉ\"tPQR+B`\\р2Üg\0IWzKqoI*eঔm_O2ӿyl\0pXˮ~_*A`#hꗟFPJ:\rml<;aYLO2A>\rbNh22O	!|H\n+>R(\n0)f\$ZX	\\NiSB0Kχ:JXUpeQR-	K&]M^V-\\e)\nc4v#f_6385(ZN\"me1jA\0C\naH#!]+8+u%'2z?Dteʕk/V-*	eV&r)28{(_-t\rNeDdllE%eid6wPA&t1#mDڊQXHS{|k\r>\nfqfH٣*>\r\$lR[(+m\",IBHƫKi.\"jӝDB\$k	(đpY RyPJيװ\naD&[ƈ-*Dk	4'߫Pd7r*R3٪a&W>+îB6O-SHQ-)J7[hB󡥍	0CfXFHIR0\"b\nQH,SνmiS-\0 \nEo@۸OE4'V+FM~L`+tޔ'&͒Ph8&Ε΢(sx-kbs,.D_J9}=D^/|U_||4{Gobu6)ǔGf\rgQeUt'QK'dQ4?}F/;{i`{ZCȂA2vaUVK2k*zDOT:4UvˊhP=p4trDoKpZS\\{27^֨]-.ORcwvLX8Fy!ߝblG튶2J&_f2";break;case"bs":$e="%(l0FQt7aNg).&0M磱7JdKia20%9IH)7C@iCf4(o9Nqi :igcH* A\"PCIrDqe0	>m7ݤSqA9!PtBaX.	B2w1{=biTe:Eo;i&a1l2̧;F8pȐ3c{1cMYd2wT/cg̒d9\r;P1,&)BM5Қ֍[;\09K@*!\"4)i5K^	ZpB58*IrB%/@ @1\$c\"H%@Ԉ7 R) PH g.)dG#<l#CJ<#(,bF,11ǭCI2B@	ht)r\rh\\-4.HA. ʢR\r\n/\n!\0#x!AV7˫]סNYC4E,bneS\$7cMg3˾VCk;Fc,V*\"jlX\"L8\r7g\rݷ72h0J9B|\n{6#3pc06.Jp9@35fIP:A@h'5hܤ5'8@ /wUbR4/0z\r8a^(]CÐ\\{a}M_BH.\\zǡ&e1~4lDƥ\0Zc#[ڳ}z{(/[nnUH89\rx:ov4TnmP0-VXKQ,X9@[{O`1p7d+h##7*cy(γY-^1ήC@hy'j^\$4@@P%PH\0PPI5dHn)/dxqKTA:êcUY#\0MZv/\$.*:n7hqÚI;@Pgk@DF,F\r%rR)8>O0,3pcLE c8k\\,`6dQ,%\"^f\0M%ȨRNVʝ a֦p\rRCUa`dyKSTupTTP\$r\\qy<)q-gT~iM\rbdrsLj|B<(ul˨ \naD&a)R\\<yT^t814lRj̝\" i!NdI1!Q!&a(*6C=G{MK9=laLhd*Qc ɸ*`U\nd\$	0IXn\${]Q\nIl	JěٳG:t:Lor85SjL-zҾL4/|B`oM\n\0IF5\r40ޖ@jV9L&Tmm[!#j}6UOJ[:;xoyQG1)2M4!#uB\0PRT ;ZP";break;case"ca":$e="%(m8g3IeLa9t<NBQ0 6Lsk\r@x4d	s#q2T\0Bc@n7Ʀ3xCf4(i8hTC`uADZs2Χ!c9L7)I&ZMQ)B>MΒc:N!i3M`(Q4D9pEΦ\r\$0߯Q5M]YbscL<7N	]WcEY!,\nNxmoF[7n絆^4C8)llމ-ޙB26#r*Z;93Ͳ>7jk>cz,90p܉#p1);h&aY)7@#|#c*l @1*(rn2ڠ^sc\$Mp1+ؼz86\rx	tѤZBG\nC1sr7\"@	ht)`P2hc\rD0PFQ%-B:£ò:##x!IYVh܏/L\r`\n)fGiնZ2\nF)#N6L\n\n\"(43ȇU(\n*؄. P2(Ϸ#e9Nb0\r0\nI	 :\$Hqt7\"ިCp\"M͘A</X؎X3-,%#pꪅR\$&&+H*5ʄ3ZT\n#&jey#5VD49Ax^;r%l!~\$ѳ1p^۝vJ\\Y4V:3\"FF	;ҕð# ]XFlɳmթ4I]nvn(fV8få)q@59cJIw 4o\nڵ200Ј2:;Ĉ&3sh [%Nὔ':TS5Io#iY5LWB\n (?:(@HJ6<o]4VC:<\n)XDׁDrMPoEZU!n?@cRA(4\r)p	j<7:R(\nrqĝ\0B0\r̸Np\\vzD.HKIy1|`@LNI\$@@˅H+aB:3Qm%4aTBs\\ÝW\n\0P	L*D~I\$.@u?d<TMx蜸lf.Y˸5%QCm<'\0 \naD&\$0 RtLa:zA\\#s[Rkő@'\$*Y8'/ZDnȺ\$ZJKy#ƹX%FEp	\ntNhSL6YcEA\0C_nAO.p}Py\$lpU\nMnlЈPRZ+SxzEoļ5)˂ZeEFQٲ6(&pO*lK~@S7E	BSab٥(Cj*!\${UhwMLh	[DF ) bpʕƮbyP<Pi^aBM\$o-fNv,R[\nɸ\\ϐa@";break;case"cs":$e="%(e8̆*dl7qraNCyo9D	m\r5hv7e6MflTLJs!Ht	PeONY0cAn8Ua:Nf@t< ya;Qhybƨ9:-P2l= bqa27GɌ1Wa1M̈vNBɲ:[t7Ie!;ɲZ-SDκfUFcga;da1l^ߐB͘e64\$\nch=-\0P#[h<KfIcD 0B+Kn#`\$ \nh4@c(*K<\03t`)'2c\00C&I҂)ɲ|ȁC2\rѰH i20|`A.9B=7P2r;@*0P1²9+IG@t&Ц)C \\6MB8Qc@6X\n˽(x!EV2v7H:Rm\\YL\"0+\"f*c=?j!%\\k(F%T\"-@:9c	<£ڹCJh94874`I&72s0C,s.\$7i2',\rN̍lE\0Znl̎eIn;`NE\r90۔eC~YeYcoT(*g\$\rΣ[7nJc~R:aje\rgu繶cD'ۍ[C\"/b7nD\"%fʎU#&Z\"(C@:T^h]>si\n@3z*:\r=^9][(aՌqt.#69^vk'e߼;qg:3)A9)f4E>ǨzXt=K=_Z{`Lh;7jʁi\rH7;^Chp&L\$7BZ^Ba'T,jj.|<R^|V[B%+C,LR\$J	B\$7NTʂ.!00we\rD^&ދ:!.Xj\r\$H^\$oeRFcLd!+hD2H\nmڪAG\$(2bC9ъ4C\"	%̜\$Z#<N!-aB,pw\"Y4њ˂Db!q1?&CC>x[q3) OB-0HCS, CcoNhM\$I*Ur<+;a\0`]]4~Qo&lŋ^N!+`@]4R3zbqoAo[96'\0¡--AD\\mhLo_ylp\r!:IVs)GxrT_/r&EH7Z<=THFlHb\"IIӠ4\\\n޼@_k\"EkHUʚÿ#^*Stdrc@fe~g!\r,ր7B`y_΂#jL-\"6[#\"H\r@\"G%[ƍ2VdL=BØlQLPUˣQw&*I*0-t\n'l}Zo䵷ޯgU۴|( D4ՇRuqF@u\n;u0-嵝T2\\X2\$˾%o0ҨbݦJcZɪ5@<ŤDɑ(!b*9%ZX|f,ȗz HEA術Zg	2Q5i)zЍN";break;case"da":$e="%(u7I:\r	f4is4N2l\"ц9Ü,r	Nd(2e7Lo7C\0(`1ƃQp9GS<y8MDYCQ\$cf2 )RN17&sIl36Me#)bl51#lg6rY&331@a\rI-	rɺ6G2A]	!τĝ4z]Nw?t\"3ob)t3˭YESq7\nn5S8++;\r0ދ1# &<l,(&70h@PJ2L21\\[P!CPxH b\ni{:\r;1#&		\r61Ь\r:B@	ht)`P9\0K48t\$Ih@)|7<x#t%!r03#-#I2(3P*1TS?T7\$	9B#7M\ncdWW1@PcB޳.(3i*<,*\r<<1c(9ë}1XW3,mE\rhR`ب46H\$#&W[\r(qBBd3ێt|\";4Čzˀ4!xDi,rLS{VKi{.\"\\t3Pɣh9\\&2¬u/ƾPcc湸yg06NfjU\0nxB3U.\0@3*,#=ܚƘh젃[ZZn47MLO}OA3f {7ۭxàВw\r,}n5P햦iNy2 j^۷a\0\$\no	Hz2l,)%X42WQcGh0@\"aΑlA-dXȐya.<78ꨞ1zúx47MɃ2p0`d'( 00-I<\r9@E,8G\"\$ʛLâ!Gs ɓ\r#6B:#a\$ql\r7QNqT3'2&\\ԘuTOU	oyp9~!>#R\$+&\0]Sj%k;(%g4KUHS\n!0|F\nA`(30(5m!H\"Tgb,u@C*/\rdI}aȇb(8H4J0la.`vZy:#qY.5ڻzT),\nP#C9Biv\"T)S[\$0jQdeQeJl\0Ic0P\0P\0c9@j N+vIY80&?\"r3,M1OEs\0Q 4D22L8	TcVC蹩+iYB!TbDLWT@)RX!,";break;case"de":$e="%(o1\r! ;C	i9	MQ4x4L&:Xg904@i9S\nI5eLn4NA\0(`1ƃQp9S]\r3jPpv >9M(n1\$\$NқbqX8@a1Gc\\Z\n'X(7[sSa\$NF(X\n\"ڌ5MR\r6e]ͤ<#(@dDM^|z:gCܮvܧDSuﵗ6-l\"䇾*,7m+\râ50 P:c.\"\rc\n\"26I b±(0:B`3Qz;#	6p:.抏@PJC, P52(H i4+r\\6b1&\025-Ĝ!\03҉N@&\$\rC* 	@t&Ц)JcUD5K(1DRD\r\0\n5\09Cc:%5hx!IZZ\$\0c*f6ֲóЇUxކOo%̳'(sZP0յ36o@-6\"9&(8Ў2m\$P:GNR\r0;5.J\\;Nbŋ\rkn-<7C\\C06`HR p7at&p<]7kRRȟ\r@ЖIP9 ivmgY䆵hhR}i.v(N7k&Uiҏ92[\rMʑ,҄5C0z\rP9Ax^;r̥s3or\"8A ø֍x,76?9r#47:5+#/5wYPǃ|Ƨ.̵OV uWX띀wvN`;WnC(/\$i& нΰu`\r\"TJVp0r(&xBH\n\0)pՂ\\t?\nZ;O*\0n-#-qK`2\nlXqɛc.\r\r4x\nr+JӱN7r0c2DCx\"4lˣHj\"<pʑa\n\"T0&Dsxlb|m	=!YBd\0LF'~\rʃ5a#\$a >\nr+\"Đ!0o9A3{cHZ{T'#0fʌ\$*UI2r=/YQs-?,4iInD5^KA:+Oa!3!;Kԏ]9<Ck5opOSO\$HxS\nE1\no'8䝓Y@r' :eUJ>HM*ldV}I(ʈe%P(Bs.M*]=1Ho\"r!쓣6gҕHӊ#b!L6&3q%ю2\r%e6ggXS& @BF<A\$KdQ1Y1M.TqN=ް\$kB\r:'VfF\$1	h\r&Ĉ2\0Bt65d=pr\$w.3XcY)'<XS\rbv=WZ;Yhb{x|XSqoGlo}MaG0";break;case"el":$e="%)g-Vrg/x\"ZАzgcLK=[QeDXŢJr͜F1z#@Cf+Y.SD,ZO.DS\nlΜ/*	D+9YXfad3\rFqnFWBWPckx2V'\\Is4ADqe0̶3/tfOj,Q#rDIjI\rQe^DAJuC\"\nΕӗMs7>|w2U:RJ.(E,Z7O\" (b<K42LNpR8:8<,rZ\$39q!j|RbʒZ\rCMrGnS1˔>̂j ĚdڨQo(!r{Lqvg%|<B5x7(9\rCIj#'\nŢP0N|9HTlB#3N)tJY:g'>L @1#ٶ}2Qs@\$	xHA̅O+ Ң\n2 ^IΏ\\zL5N~>sУNe8De ITFq7c0!(@^xHʮmJ0ZcT{,\0:c@+ |ӎF:E0!^0ɶcx3\r#>2ڃX\r4bțH0CcW4hݴmZۜŤ7cN1ezK/ȥE1I(6\rWĤUq]gL#)	b\rL37sQ\n:5_դN-\"JkuS	.d(4%sц\$n?\\0d#/)BTfL[]DEc43ҔH`./Ay#6<2׺sOs|O,cznJ@w7DHwAOFb-1E>Ps1)}s`≰T\r\r\$50@k<l![\n~ȣaӆ`z@t9^üi'\$C8/FCzGfCpgkEjݒE'!\$?{s.픬(\$D?BoU&\$\"3Jt*h_12x\\m\r8Gwo-X& iCf-9dC 2W*%PųFTBԆcD2(z6ie\n%D7)p3FRə9N!R>\0Xaq\0C`lY8(heY3- Ack`9`D`o톇/5mMFy!JDQalV5H@HLP؟OlS\r{0W9+\n (\0PYK26B\\&R@\$rlCtq.@i@2z5_Ԉt͘(}NHwJMdÞENDqBbF!GpVFS&ug֨90Vpw\r1\r6xK=UaMT!baL)`\\E!&I*rqLz\"ɱ)K#ҢO2!pwK-f8B\"@GTO\\).Pq ](Él%bރ:6XuzuxMхO c9aB.OP	L*`Q8N/M8\$22cÕTBI\n(sH ļK>G-eq>IΓTk,M;C \$ZO3௖Bad`YRodl 36she\\O#56wnK:,e\nTӺ}:E/6j1ɎXW?Ỉ0֪LURc	q\nT,k;\\9 }٦엵fNln6-kGl//Ef_i<VsD%ǾNN\0R*EA\nޫeR\r*DjT`HG)8_J 'bJ~;R{H\rĖHT:+\\bϾ\0\rՖ?cV)V<rF5Mr79WQIG)ʟCAr)%LuDfu;(r\"Be]I/FU<զ>ztLHt'j|KJ\rdÞ*nEB8`䂱jzCe!߰C5k}PRAB2iZx&m;9l9SU8)9<|>(";break;case"es":$e="%(oNbi1gBMi;,la6XkA<M\$N;abS\nFE9͎Q 2NgC,@\nFC1l7AECL653MƓ\$:o9FS,i7K_2Χ#xI7FS\rA<MӔia	r8MNfDl4̆gMjE*p2iiN@	:.O~ir2,dQCO&p9H3,0gKvIyfG{[ <\rℶ8ܲJӪP0Β4kR݉-ޔNj,KoǬD+j޸o90*V0B`\r+/ph02\"!+1*`)(PA jQ4쌂h	C#M#B	@t&Ц)C h^-4.B/:\"\$@8a\0x0:-r2:h~6\r^0gZK\nVán-Px!;[HZm-zIaChB0ʏ</M#\nk]GBNPelx6F:OKi4sw|*bf/|Ḇ5¾PHRe(,COU!L\$,5}<2(@a)p5c2е@ ?Cr5@40c0z\r8a^h]}jÐ\\{΃}=bY܊_Y.1)L 𭨣;\"l&\$@Pc%/JLqO2[&ʹm[fݸ,W~v<\\ˇ|VP]Їhupkw8!j-,ϴ:j\rϋ9q7}/5^cDC0ǎJcY朂RB8<.X8B,i<\"H\nBA<\$\n(ric\"%54bY˽òH_E3Ò:\\/!˹Xt0%3	Wd);к6!,ʠC	l=P7Rш;@K\r܅H+xZhu=e΄P\r EIy1%&PSYQ4*yi0 \$NfTɂ{aa18֨d00ǱdRaH(z0<4İ@o\nu'@j\$䤕f\$6opAWfL);uy>v\0@+A'faALl4jO^936%䞍zA1C,[y\"D΅HQFbB7\r.&Xj\\\0G	=&lSȚN˼SxU\nF=1&F2,\r@!vDp9^\"H%6'BcpT8mkTWsvNfDl-lgFNj*D%4}+ɝa4d/`)v0d\\Rqma\$*1б%2lM+]MaƱ!u:b*ҳfyMҁa2\"MJ-";break;case"et":$e="%(a4\r\"e9&!i7D|<@vabQ\\\n&Mg92 3B!G3u92	apIdCf4(a&	\r1Lj:e2\rq!?M3ϦV(6byeWhsygD̀nZhB\n%( i4sYm4'SRNY7D	4n7hI8'S:4ܜ>NSozZW<,5!Z 6N~ޓ0~3?r3̾!Ϋ'\n3R%b52CKBTK\$\rȰ\n\$B` [%<*ϊ9\rOJH@az 8\0PH i& P:%R^:@Sj46kC4Mq\0006B^,b@	ht)`R6A\"+\"o\\2F+@)|Ó<x\$,!3\rF'(`ďRh@2ΪT<9rXi8:M6\"CXG	5LD(ˬsF6pDH3R2\r3E	H6+p01h3c9XXX35e caJN+<\"I?Haj7#.pp\0F#61I#B3:x﭅ȣ9hׁx«K\nA^]R4¬ۍa ძPN. ƳC4-vζ;\"3l[ ݲXՄT6|b7`K@޴OBT(!=nb6Jτzg:1̿9gb#3%bf0{cb.Ex\"A#<gB%t!LLQi\n (@	\0e{\0p)6)X#fcKkJNP''9\"x%✘r-!0z{SHGA0N)\r兄`@Rb8v+#AƆ\na*%\$GZWj0Alp\$Vˉ&R\r\$\n~Lvɂ\ruxd応rNxS\nEx!A%(\$u#.Ig	/L\$DYh\0ӑDmf01E:x \naD&G  RPKUJ	8K@,4Ve\nY\nK3CB\n4	ij3B\$Ftg`>DL{9k6I\\An!ᰟN*\nP#p˛hّȴ)8 1ƉbBͩ\nf!kDIEJtf+u\r朱D%+\nFjbZ/I4\r4G`HD.!##&PAJQKhh{D%#\0]N\"|T\\?#U&CL) h\n:6\$!";break;case"fa":$e="%)l)\n@T6PD&چ,\"0@@c\$}\rl,\nB\\\n	Nd(z	m*[\nl=NCMK(~B%	2ID6MB\0Sm`ێ,k6ѶmkvᶹBhHA9!d+anپ<W-l'Dqe0̳\nXvC-*UeKY\$v⬅5NWf+PdFZ\\aT綷Jė\\VLã#u\r#He)nZ4Į>N(N죂ͺ猪j(l4{\\)#7lX\$d˨)SCB5x7(9\r㒖޻OK(2t\"')#cx\",DLȅPJ2@Vr쨸\$#\0 PH g6{U*J'#\\\"`STGJCP)̪pC=;HQU\r9ӤCR	Q@	ht)`P<ȺhZ2K\"\"C@6\nd19E\r#x!_`b7Hc}{(H0Cc&lR7]Uw](:p45\"(Z:3]\n\"\nhl-\0s\0ت=rYC6:NlIHl<˸k&*18N39QDeD(:ŒjbA\$d,*hMxg+d@f.iznj.Z7nӢˣiT!Xv*\rP]u{\02\r|T4U0C3:xم1Eh!xk#7}!oZQ9	B~ʬ+i<\"J7rb\"e!.@\\+v+/U];un׻fݫ\rȨ;x_O\r1/^!䨡טNO`=7RPeq(.a|%2Bb;FHK!E04ȇ Ra9@ea3Xxg\\Q0:ALtǺl_н4s[\nEPeѴxG\$Y=vM@\$	D3\$yPPLK}9fݬ2/Zć)x 4ĲE].`@Uy,q)9±\"i\$%ǮtpMqGuWj1tZh\r!79⁓0*R5&:=~P3i\rN	<)c JK^GQ?9v~oݕӪI>)]/̂I!:\0%oWH7%/xq_dX\\\ntQ8d|WSj\\blT[~4qfՈQ?0`\$:RnhQ'GkJl6YzU|ѽfXIBQ	ȺS#yG͔#I-2,9&D6i\n|2faTJ8͒Rh>ÉWdݷ:/ܱ\nV\\=#KMTru!;'0\\esѢW#6D/S%\nstAՌ7e1ݛwT*`Zf\r(nՃeZw1CLFJٹ\nVǔbQѼ?}F/E1,Dl\nh̠)m_xr;fz*o{dZ\$|uU!Ph`^G&~6\ra!Q3t|Ab>ߊ˗\n0iYa.JgEUj31BM6̾61:rQd٦-g.eD\\";break;case"fi":$e="%(i2\r3 2Dcy6bHyl;MlegSnGgC@tB\\ 72	aR,#!j6 [\rHyWUy8N|=NFI7FS	 ѧ4y0&~AHk!22p2p(MSQRM:\rf(i9׫hCcRJJrTf!7Y4֣I7uz^\r2ÛO 6ybkOd{%zMs24*6Z݊::cД4\"7Њ\0ܒ\r)R>/4Mh2P<c5Ƒk0:mBPJ2&:2+X7hpHt0+0M\"#0NE(SƊr2J\">/PܰGB@t&Ц)C>p;SPɚ#m=`@*|a.P|ՕpHΖta_d%0S懍p[!N9Ah[1\rID0 P:޵%d#ډ4J\r06_^%3J#zJ:%ͨو-r39>Qj0TH\r\r2\nmI\"d})rje\".RYBA\rbp3ZiKo.&nN:v#hr ;ZRz:tn2*j^P{~PvϜ)L{-mN@ j\\iHUB3Кtd#\\]{Op}\r#j5*X7CӻHDpiׯbS\"t AGUu݇dݣ1ۇ'r(xC&\0D9q謀Zz\"?2_a	\0<bIHIz5圂`rH1Y0	y\r ţ t|OA^\r4ùh_5kkm\"Y>Aiڬ!oRiO&@Zi7`\$g\0-K,մ\n\n)84cxVCʄ@Ssu\r!eHM&F\nIrK&d֒&7f&4|t8E7DSN2A[ab!IF'TYT\0C\naH#j~0!Xpa9qBi& J#M9\$\r93)\rK婁@[EȊK\rv@\nE\"G7\01.A(9v%I\\~K	tn	L*K=~BvHz[tC1=\rarZ;RF5Oa&L(9RP P(鑤^\r0L\$2lLtc\\' i:uɗN\n?gf+h]	PWi_	%`,|%!\rVxkʂbc|r5<!T*MPq͉:~I*Pll+]KVHۂwR=nf#2rpJ3 (#h׻G\"^gfԤA7N*0)NҜ44pFoK6vKQ+O:jfHpnJϹ,y<F,^";break;case"fr":$e="%(m8g3IeAt2c4c\"Q0 :M&xcC);fSF %9ȄzA\"Oqo:0,X\nFC1l7AECj :%f0u9hZvMqM0Pecqe0:N+MޏR5Mj;g*L'S\$yy=W3Rt\"pv2LndNhM@m2)@jF~-N\$\"s93N78-L?O\n77eKzT7@<o0½)03 P\rcr\"L;?t\0јdL24P-'ıMR4kn03V:IR&05h	ʃ6CC\0ϼ L5MH: P^sb\nC*@k4a+\$-,%\n\nsM\\#p\r@t&Ц)CPh^-5.Pp!ɍ\n;\n0T\0#x!If&D=nBtP1d*4#W*ݲ10(aKb0es^bM@ӂB;87✑N2YS	THmzH).sw1^@¢82˞Ar4*0X̡vˣ0ӺNMjN|7&A)ΞhζX@ï@xx52,!@ ^9iq#VnÌD4<Cxх\$h!}STxDuGsVhl8cm%h{e#\$M5jNh \$/,4s8:sEtwR9u}nS}S2=6IJŭb<e0=2aGҾ61N@xHTًIZ\n4	+08c'~3AX\rMWT<0k\rq&0\0@@P 8(AA@0'4i\$ה;hB8i)-biPiIEFٚ@u4D\$\0A&PF^^{F(̔t%9zYQHxk) ʒ)&+A2XYxmh8dqIQzŁ2\\Lhu\rvةfr^K;_l4Mii\$(nz	0@	}Ak\\G`{Od0sF\"i&@'0J Siᰓ~O2+NF<GUdF*ъ.	PŀrNY:J.OLf\ru)@LHdh#HBt!E#1=քɛKKLACsT12<\06znUb\$T	\"o\n\\\\Mɦl4_ę<S`+hPF&THesԨ\\9C/[3I'l(BF`k})f>5o=/,iE]T24iDNFҹe6Ɇ\r尶G9t)\0O(3{3唤'^hP\na^&P(*[ra8ti}#x=ui;c5\0@rPZXf8\0bbR%Vx6z!I";break;case"gl":$e="%(o7js4Q9'!@f4SI.iXjZ<dH\$RI44r6N\$z 2U:c@59\0(`1ƃQp9\r0  7Q!y<u9cfx(Ys~\n\$g#)	1s|dc4pMBysB02jn0 SvݣF]ɨ9b\rga8ɲ5EA5iÊvUXلA:^Z:n<oU,KVƍPQ<\r/!26	0B	p֪J~I@򽯢:BH`Ep1NƟ;#*&6\0<@L)J*\nJ^sbK	M>!\nK<C{BbaV0P1Ծ)Q0Bc@	ht)`P2hc\r<0U`5Rr\nj:¥c9!0k9BCx!QYV@1-L62k*6b8u02bL\n4EmK\nZH\n!@q`,|OpÜI\\ iPQF1*Z5+pUKvaLX2hl)R7p\\8ӎٹL\"HFAYtjD7N)lp3Z,#&f #D49Ax^;sSĬz(h@^]YVԎX#2UBu6!+21Ջ4no\0;[T77qqhɎ^Uʣj'(1(lB\n۬PKjp164sv3P\\{T\0i|TC1Zbe0.g?	Y# &\$NK;\r傮󍣞K9Snw'yd\0 o#<\0PRK0&9^DH(FRVGi;L3bFVim*ؗ`T6`0(|^|*:b\nӔW	\"~ \rùJ!40PC;xJDRI@T\r03(b:p@CtsP:Q#WXæ(xR~LI5\rC\nr\\`(-p薼Ig&ZUM2䌶)CP&l(GK[rNDw|	c\rBxS\n1@ДaJS+D#ni>w8ocaLY4А@.#8ς\0Bc\"\n`%QR #(e )\$x0*;3j=Yho7r@=ZTqI^\$=#fr:JF3NbDzb8Б5ՙHqRxąRkaT*`Z	BW\$؊xyXҍZtJ1- H;=\"ݡbY4(s2A%8`*TՁ=(&Eog	zaVHu\\9\\28LfU\$>\\46\0(mmH 4Vɦ)Zb\n3Y^SgN24&v=F8^!16";break;case"he":$e="%)kƺAAvUkb*m(]'mu]2וC!ɘ2\nAB)̅E\"ш6\\׎%b1I|:\nh5\r4-\$L#@'b0T#LIRQ\$c9L'3,.N(	\\aMGXk1UPtfOn1[	SVqClql{Q/CQD#) g+n^U¤VnBi'̱k\"1hDAb;9QӉuvGJ]/)\$Q)\n*fy7L@<n>,DжZor.ɦ%k\\kL^L\"/zNTA(ȷ;Oɐ!hHAQcB20JV)-	#8>HR,Dh<S\$	К&Bc<h6 #CN<:z\r::OE@C|PT 703-!I/\0\04c6/	\0\rUYP<(94+7\$T\$Ki+;ϣ	z8DܬKLCشZ:BHIL-,l>-\"9'\$r6^;CΏ\$XCΖRLE%wP7C%}<\$@>*# Q8EAB3:xNV7@!t3^2S^xD\$+l.Nk.RT6#@`6_P`0z^Xć%\"\$Fiughd麭o\\zBmU<%U0V_	93s!I|D6%h*\r1t@;#`K\0 2\\H 1c(9ï6\r=G#|Sǡ]jc_͂#&~/2H\n\0RrW4RṤ<F@o9C(gzM@樠Pwq,+!I= \0a sUn@CǶ\"/47;;y 0*`\r\"\$p6\n{%>B4h!%K{EpZ(\$\$̶PbIuќHX8-,v	yJt{-ڒqDDd%vr}yO\naR>\"(\\MT0fVJr\$EQ&9H\r-'2Cb)\"2p %!Y'FQ>,\$NQ^c\"N!h]'~5Q#hZg*lr}9<pVOy/0vP!FP:be(	K9`\"`Z'm:7g/M.;ivDX6\"N0)GcZppU15~:#\"E5A9L,AAOn]LCk5<|D6EXRU(!(N1=@E@P";break;case"hi":$e="%pRX*\n\nAUpUYAX*\n\"baTBtA4!RO_IQ@q*`j:\n	Nd(O)!\"5)RW	|`Rő*?RTDyKR!\nDJ\"cU|\nԳu%g\$I-=a<fHQHAԴ%[M._Dqe0̵GYHsz.K`RC3ue\"#IrU쒮IB#RE#ɿ҆>+Iڧ5)\\/bHhjڥOMh\n+;Ⱥ)HP4J*\rj-O4@#M-H!&1|H\",LD'H?Dz1Ӹ20c+2s50!H(Rj-~?R)+C3:J3}ryOKK\"J;nTHHT<[WP.\"\\޲D Mi@m|\\O0!d>SH grDo@=x)Ot_T.w}zGY?Sv(mB@	ht)`P<ȺhZ2Xaa+Q\n H5Px`Q?So?<ynV8Xh;MbØꙜR6/[V%U9NDS\n\nAy#L\0Ӌen|	 ɉ4R&DW\"37coyGkC`9's`(<{KcOb2I\\޹6ʟ?4bCAv/X7wˁQ=7:acC1<rrl6ΐ|)c%Igd>#?o)A\0h8 p`\rpa4poAP o\r:8?gT5֐{?EE`n\r3moOėIO4%\rAM6q3\\gD^1h\$~N<|v#CWY/@KM@%ip)iGc\"\0BTad.Chq>\n\"DhFq:#&T\nRh\$ڈbbI\"Fg.aLEu1];K@9).Qt\nED@sŔN!.]#̝}}NtSӡ.lԠ)S3gMvr,nH\nj*ާjShpR!2D4f/+dWtO(6ڣ(ŪNrbW8GT\"<ehc6LȺ䈘Ɇg2QV)\nrUTLcKV2!0Y\$\nFq\0sѵMe\nC|jtS#o]^\n4\\OFQQ{@=xӃ#S}1.ieli'R*b_ִf~	>ڋq{Ua@'0FZ*F^VUlMINůEp`sn2#~؊K㭨wUFQS\n!0_FB0TmQבH`eڔjĩgޗ[X*ƎJcV4V)]rtSݡOI9Ɲ|Ŋmf)0ok*\"M.aǧk|i?Ti1N|=+-vY*b>;p\ncNU\n~+g6LwI:Oln):jg:gakjU\\@+>\\5g9G󃏃-6Ni^LOW糭bVګ wvAl?L6\\xI?,SP{Mi9]vhC+Nɱ}xa#		erE;XPY\"؎	rE(\">t9m6R܂)b6\r}mB,]RX{Q*l}LFZ	]Χc΃9\\ٕt	J^싴{\"Eذ";break;case"hu":$e="%k\rBs7SN2DC3MF6e7DjD!iMNlNFSK5!Je@n\r5Iz4B\0Pb2ar\n#FQis'jbRI;g:ڊlƣjl&虦7CIiMc*)-q֞kC2Q\rZt4Oh97eEyAc;`i;e:؟Pp2i3D&aҙeD67{ɭWăc>O]\rO@,j).3B:9)lr<C\$,2\np9\rPMc\\BFf	HHҘ8>P6-`=6F45\"jb6A(-K,0R.pHM%Ca2#BZ1\$6Pe^&5[D-6|uC\r<Ⱥ\rp\n#6\"j6x0vL&C<x%Uz!p4wdl@0iP=u't7cMP-C(2(@H5(\n	3*.:6ڹub\r0̙z趴3\"CB\r1mh3Eh3XYX360\r\0R*3@5\nLCYxa\0fv1wWnzv3:xﻅEhz-sA4=f@yh0xV:gm RbV3ֲ)c[-ݣҝvВ\r^۷;뻎ݷ}h6**!.Z[i9e*C7))85Ne7(ͩl/T*pIcpDs,bk.U-A\0se96jR{82C\\ /lN4RnrEFܲNt8iU{ۀ \n (42\"Jn)	ƽvKaBjy=;T0Hr0r@H	u*O-jIf+lhsu9%yCh Qa-4FMaL)bFv7pY``dKfҒ@1p:>B\\LArzOa'0\"4ܨg8@tK'4EQ\$	lbvC'&[2ZDy[jIO\naR8 BvRczAD_fvd;+,Iմ^AK7Z+\$LV葠Q	I0TM-%j5<BVJiJ'aLjWD;JA7B)\\jA1lQD+1Il/iNM`9*Ե\\2zU\n&%I5mKA6Um0LՔ\\]YYNCI\"IFdL\"\$үBCMPB@B!4}CܴQk<H:(a\\of5QfEj =\"'sT +ޜh\n?g,4sTSrh+D-(<@#6II<Ss^h@	:kfA\rj7!\\@i\n-\r(߳}Q=";break;case"id":$e="%(i2MbItL9(g0#)a9D#)rc1M'I>na&ȀJs!H\0Na2)b2ar\n%D2ÄL7ADt&[\nDqegQBe\$i63yiR!s\r6Hqj<PSN|L'f1Ir\"ɼ 4N#q@p9NƓa%kIt4V-K7eLxn5b#q)53򍼈e_Kb)\0AuR`Q-\nmipCx.%&(Z90#r&pأi8\"64Mh!hHA!@P7c{,){\"3R+\r4Ex	К&Bc<h6 ȺHz'\n~-9'N9#x!E:|3\r(AЫ@i%2N42\rˢ32^p;S/b 3E#F\"87U6CSJӤ3<4#]|%`ꓠ{]!,9ƒc0XxΚab9\\#\n1JR*\"C(P9*:ԻlpԦ`N>@ jjCR#-0z\r8a^h\\bz&},HP̺J4zy`|r!iޑB|!Ø;Q5H8\r+xchѐy.Oyh⸾f9fISUv{;.j%%b|M8=&B&:RВhLVH̑\nB0j<|b55w-ϭ]WeJt \n\$-o4#b\"z&RyUO\n@&B~QCt5\\C`6ZCX5vjD -0hsx70ArRd\"j{a kmuFgdݗ OesF|%&\0@L9:ں	\$PĔ`u\r\$r`^IObfML  =\08`ɺ-d<bb\"nC%\"\0&Y'v3Mz@)]\"@xS\nŴJI2-=)4\\Hb[YG h7(HA?4zvI9D)\r_h 6f4#GT~..CȀChLMIx\rLY@KDAa+3)1;|Dz jt\"(lq42hvxܑ\n(\$AXvU\n:[gЛY6&<NL(#gDC+0i=0yGQ=`̠KXbɰHD)P:4aij\0Hm@E7j_̱'d5rpUSa	L`؉(a hںZ}PjOC\$8 [U8D@ㆶUu>T8S@s";break;case"it":$e="%(a9Lfit7S`i6DyA	:fL0č0qL'9t%F#L5@Js!I1Xf7e3M&FC1l7AECI7!li((\n:Q\$c9fq	\"1s0Co&5:bb14߆,&DiG3R>i3dx_!'iH@p҈&|C)yNȃ2bclD8&uLrs<Ix(l̙\nC9.NBD:7+P֦Bf9+R!c^7-`#\0DcR:\" @1*hq%R8^rXb4\"|79Kh90̢ND-Ѥ/(i@t&Ц)C h^-3.B?p9jB:踣\r3#x!MIR:?Pc'V#ınj~\"5[Qx8.+!r:4cB#WDJf(ކڎc*\$֓\\Ҿ:W&ƍ-@ɌÒK78@6DX7+b5b<6(*^]`FC.aU+d@\r;20ːk5l7\rt`=ip3ɊDȘH#B3ѐtM:J28^\";|#xDṇuʚDhE4C0zdy`FI2P̸ߡ+ʄR!c'kl;N׶{~vJ	#hXVvcTؔQd>\$3W,d))JWLb%#΍]!P9P\"U\"d{nJ<Qa#E20܈34KqƤ՚fā\0 uW@̔@\n	)%A8,sg	8A˩޾C	Ѻ_&44G7攆CH\r)p֑Xy:.a5tyC>ZPt	9LIo\rd804M%)\0004t¾cF:pC0aFG!<S_S,M6@C)C	!jM\0WhFppc%|D{BxS\n(`DYLr5ҥeTLF8{:\rLBaZLR` *xS<̇&	2j}5!f~h}5oI(f'#`\\hXFC#x{`+g1Bz2>M	`nt\00- RJhr#\$˱38RnY143cgNpg5\$Uȩi\n68@i,#N~,߆.B/=!Yp&F*)hh80^ֲe#)Ԅ6]Y3%V\$\$,hZw6Ɖ^iui94";break;case"ja":$e="%:\$\nqҮ4(b*JqTl}!Mn4N I*ADq\$]HU)̄ )dt'*0N*\$1)AJ堡`(`1ƃQp9 b:W&K<^\n2&(z>\n\$g#)eu@xn胐 Qt\"ʊ\\q4\nqCi\"VηT:Shiz1~BAXMWe[WPqI9kG2YaA\"ʅK2zė:\0T9S3P41y_yA	A\$#L+DOHU1z_QiL	T+DR\$MAH\$:Q⹼kH\"6\$^ӑ+8A=YqD@D0S#X1ag.\"g3:A(ȤoAA-4T5! b(!8ss%]g1Gz')[S#E!zNGI\\Tbs4'1.R]dA\\CH*-6.h\"%J\$Xx0Br4B|r,@-(dw)\\8\"\\IT5z^C;%B8\ns`\nc␑iasmqxZKAʯm>K^͘cD9,g1*X*_cىy,CrRӄAUIpGD!%R\rT\\g9[.S\"mJ4*;/!\n,AJ	\\:Q/=RfM6dzomg|U1t%3hC)\\I+r# 4(\$\$\\Tƶ#~؍y-;wJhPr!]0\rC@:t=x3(n\rpKBNKTH 	&b>}IBL<BZ;~by,\$	KnԈaϼ!/H]؂\\>GS}?'/2`tq\\`EA\rl77@P 2lGA\$>dm@@Z4x,cH< 9<J	!+Rdb}8HVps\nT\$Np4Z9Y{1fj|IP\n\n (8X˙2ƈcadaIH P7ȁ5˂qH>iAXH[&,G(QHCG2^LT[%\0ג\"/i>&@.82FO@\\x\" f8OQ6YH8jMcԘG) 틠pPOC&cG҈E	r;\"{/aATL	4	&8\"ceW!w\r&Fv\0)޻a4M%@JGri#*;.z#{ȚKO\naP<3)Dp\"Oca7͘{/58+;C:٢HQ	Lʂ0T\nZ(,MΏF-i	1uٿPD(N<)(y	<E \\o-#;*yEO	>s΍zA(KOM=\n0ۃ`+N9D=WOK>7*DIPh8)(Bk\np\"ugWJC͉ҼWNrqIW\"f\n% hpXsIPOtȉdiERm^TqHy\"t=琭.6ˋ^LndZ':]=UL3#2\$'n7U)ĄcⳈOiNln\r:f4DĲ";break;case"ka":$e="%)RAt5BPt2'K¢:R>5-%A(:<PSsE,I5AdNi=	  2i?cXM\")v@\nFC1l7fT+U	]MJH^x894\${]&?M3s2Ԏuiz3`̞*Z%\"xܢoJitҵTA=D+I? y12EQ~\rux.ue}2T?rNSzhĬ	ZԸH:\0'i.o.ķIă[2Hָ3Ђ\0[W-o:\rp\$H<C'or.+(dɒ.׽\\3)VD+댙5\\vԶ#ֿ=rV%mBdO0+T/1IRʦNsڥjt.s<*Oc5F-[\"*(d jPQtOJ&O\$N9Z2jC\0BQLy9MSC<ŐsJ3YugF<t[I@ /po7bGAr@wܷQm\\2h9\0x0a::889C|703.!4A\0Ӄm\$Ⳑ\$Y]Of]p4\"2̲6vU3fMmkWnMzme\0sڻo8:W{ɼ\rZꩻ^iuaDM\\Ĩ\\J9_K\">p\ru7FT_5dM^3!5֢0*BWQZPJR2(D nF2AjojUu(Y2]'7@430z\r8a^\\08\rp^aDQ-GȌ΋bjը\$~ւ5htsZd3#*#t^i\"䥸r\\M<UA&E\\ʳOHf)#(ξ'_3}O?0ny?Ct?DaL\n&0YMoB=g\r\"3Ñ{+A	rQL!8g˔ZXv-4b\rq0T>qX\r:5ZD1%wrQ٦²9Ț\$]VehJB}JDU5F K&'U%9JMs;B0Ri̷E4@g*|JaN-3J\\!uMHhɄE:L ʮFFfDEzτ0Bv'|i	4PFyIh*C8Z?Rj}׵%MhħYeĴFR6|\\**YdEh&ܦ,K&>!hIvm\r6VDR}dMu15MapsQz;\rt^E;;(ZS%il4O1\n<)B*FO]@(I~[<%%\"*T[NmT\n=d-[&}DYՂ\$]ujA\0F\nBoS:}%ǄNf=3kQBp):ޥO֕\0!]0&`4M,%\0~5Ԥdr*0X&\"3\rV,/Q%ޡ\"n>-WnTDT@X	9hdu\\DZ\"5=Z (.<mGSGc&VaQIOy@(&v.ύ<cTד{aH%\\1*MBMuC|mo)I'ktnVNBo9e_u`)H%+bY,NA晓y([|שcf;pģnav0\rh+550MߞSF!\\";break;case"ko":$e="%b\nv%Ю\nq֓NU)ЈT2;db4V:\0BapbZ;aا;O)Cf4(s2Cs;jGjYJӑiRAU\"K`I7FS\rzsaV/|XTSɇZvHS^+v&kCi=#qA/iHXElKȤ;Fv(=v!ȉVWj)qss])Kq{fv!松i<Ro@Y.H (u3 P0H3kN.\$zKXvEJ7\rcp;9\rQd(vE*Q  u\$!̝ev\rr(:u@@y'(r6VLSHGA(h!HE@PH g@RdL\"dU@Y@V>1*^+E!@vdL?\nZNGYlBH*-5.h\$;R%MTj\r/rh9\0x0:Z00!^0]pcx3\r#=2׃BzV\"\r#1\r-vkU27cM.\$AWT,Ąu=ҊUJ*!N\nj4LP:K02)ncuRŖG1LM`P7<0:c9è\rxab9j08lî,aJW'mԐh}X9m2U\r@96m8@ l,64M0C3:xׅ+Qx{#47}/~+ސs5ͥй\"ܥP:Y26gk%bk-C9K2C?Sx]n- ;wpHmb/\$@oNaѨPi[9AycBjQ 	R6RD_MT'C\n!/`@HlkቅBG	C*s!\0sky6& k1X0 @b\r!61&D<)뒐@P#Q|\nN:z=D@A*tCtDJa!(\0C`-CQ5lΙ F[dJd B\0s}Mi\"1CppnRyøh\r!47\0LL(1eY3ƀ01ʜ@<D3A3d H!-jfvjq&\0\" #\$Țb630c/{\$Rl3G=9!:\0% o[7AXqnd`\\s6cģ}Rp\0¢Y=	!(@@}:ZwG\$ܜ0A!9X TϢ!F]|KVQ	hlPC8'%aI]iXOh̞z&,H#!Ur%S@Gv\$4(p`ߐ.JKYg;UMrBfZ+`,-\0`+,5lrUl\"%a\$&T*`Zk\\!aq42X	kji6'Q*UNO\n6\0ҝ>KCB!h BSl#H:IÂE5+*iQXGmNLj\nQhȦEc)\ry\$\$1O\"QFuJ3,p2\\24]VT\$1f-PCwt~\0 \$`#m<Y;IfA6.Z\"I\"";break;case"lt":$e="%(e8NǓY@W̦á@f0Mp(a5&	scb!iDS\n:Fe)zQ: #!j6 t7\rLU+	4Y2?M3te>\"K\$s5Ms:o9LtuY),#)gALEuy&C\\MQp7Cj|eVS{/^4L+R:I'S=fPkʼLnx\nO4DXi:zE?FĲC\n錎*[r;\09LC6Τ\n10)_\rz\n(1)Bt8@ݦL^Ť(騩C0xJ2+2<L\$IC.\0܁A b#*JbLގc\nK Ь\"bG%ʲq \03,\$	К&Bc,<h6 AЬeʦ\0Rh\r8\nh-5(0!^0cYcx31S_X舘9BLkUvV2ܑX˓53dܰ\nhЂ*B # P;P±H2=BH672#'E\\07 <w1n\03c&7wXYC>,bg\$\r`˅RF)V]8r(#(7£m58@ \nx9f4`\rhC@:t;+	@|Ƣ0^]ݰٖGZ@J\"IC:Yﻎ!:H=H9Dp;-noÿl(7r\r}f\$)Sܭ\rJy3*:c<¶1<ǪZSƈGw:֋an5r4̃pM%Nf2y8\\f@rT֛b5B\\=CHo2,oLuF]BH\n6BfA\0(&,PO a|hgQ^IHwwD`Ȳ8i*VeCY\rM4BYjτ<848xrI8>C;vI%\0tØe#ˣ_S\nA#\\\0BW\$B2x\rj7=Ôg*税ci¬\$bPeb'M&cu>ؘ:TdKz\r?qsM,mC* -:^mlo1H\"ܑ9(r:q:'0K16\0)RI0Ǖ̰DV@h*)j1M(72Nr~#Љ#nAL\"XCeŢ9LLpE2њT(K	\"ETjNZq\ri\0eT|I\r\" W1b~]Y-T%C`+1@hv\$)r^A&V)T-4C9]!&ak}HX\")[&a&w(cetdy8/`N修yLx  y;xr\rcqCBZ\0cW-w k[\r^\$ސWmVȬGOPL*UI\"U\0jpiՋ7.e A,\$IpF=b\"0M\nnEF>t%mmu";break;case"lv":$e="%(e4SsLq:I :SHaa@m0fl:ZiBf3AĀJ2WYCf4(:T|i8AEh2q1M~\n\$g#)e\$:bq[8zLL4r4wa:LP\\@n0=))L\\逆X,Pm@n2e6Sm'2	i ǛfS0ƁM3{q[ܾH=q#\n2\rc7;0\0P֒c~\rx02M!Y^\\&7I£*±H(0Cx2\0 H\"H`7-BP'):dA(HRd4\\4P ȸpHA&'-HǠP1\roj?T%\n+lF\rYW&IK:382B@	ht)`P2hc=L3MFǡ&Ԡ^:\0x0aԎO\\C<x%5r!p4hbJ\"iH;τ+`1[ՕYq&vk2>4K:d#֥ #B4F!D2lT:@P:RB.(l29*H4(@P!yC!.CNb>9+:n	ν,.1R]7D7[qV[6f)~fѾ	x	'VI\r9v`ĞinogczZl˦ѤIxV\$ۈ暕z\"=pgqT0Cru,#P#&uUռ֌\0D49Ax^;u'َAs>3^2Y@f}{ddI&#ccHɔ}C%uo::OR]ϩbJBi]ab!ab9RPsW^[y= ]av纮BHm͇S%	:	;Bp1ʑH'A}vJBq\r%Dr814؂Q@KiBԚlܓ;}iT]n\r_6Mz[ \0;F'Vg!mgq;dP((`ל\$tPj2`]<ϨbjHfpxB?h#-RR9c&]BP0!R R`_CHH\0N\rͦPgx\"< G!	\r1 6S63&ZNuD7/y1Q3FVZ%\n6|a9ִ݋uq%vHK\r\0@޴eO\naRc+Fo\$@0\0Z_gNII49N5:(x@՚֌%R[gT7<Q	hBH)'_©KYK	)	)W}{`u&:_k|,ȳ&CD,ɗ,,͇;K=VD&We\rL'=CWPqlRvD̨k.b{\"Ql<Ph8XIȶ`+rqtGf:iF+i.w\r,\$G,7qA?\nnH[fCw(HE>-񎥇^	\0FUZ5\naikZ\npRD z6ō\$^Bҩꪧ\\A-ILTp\$(ڄ5&@R#-O0";break;case"ms":$e="%(u0	 3CM9*lpB\$ 6Mg3ImL&8i1a#\\@a2M@Js!FHs;MGS\$dX\nFC1l7AD 8Ls0A7Nl~\n\$g#->9`\\64Ԭ\r pa(bAS\\݌Z*fjSi*4\rfZe;fSsW,[\rfv\$d8NJpƹiɺa6Ӯ`&s=2#*L=<Cm(5x=c9#\"*^:A`P2\nX,Z'cbωzZ3TCh{fԔ4c\0<@LiG*\n5)!hH!- 5ޖIz@!jB\noj		Αb4ʚL4\$Bh\nb-3.ChZ2T'څ\n~.&l<x#4m!c0Ҳ.69N~1\r	_X2PܒJk\$70&+#CI*\nuňN%#'\rrδS0\r*2(UDMڄLcV!1Ӭ6^1\"w. !3v3)v<v6c3P=lTZJ&\"zͨc~82cH_ͳ0<}FB3:x海rXAx)#LAni\rMN#Qb'i<bHX,Sy;)ӘCT>\$C\0C!bC&2Vj8Ƶ\rzXEGc=+Zt=7	bm5\$|33@л#)>3Amj0Pc0ڻn\"dVǺ˶tHwX(JL0 -H% |ڀkȰ Qm\$A8LILobDuC=eܯrtqO-TBØwAh;-COj1\0F@s\r\$SR,6,MRw6qq%vPĚ\rFb\0uVVq%f;2#g*\\7j}W)KjD6O\naQ/w,23y4P@yR:\nas!I!(<`bQ	 KFmRSk`/	w2Q|n08\nAN03p,E&9\r\ni3dCY38ػ#VIB#Iv.PT*`Z;4p~P㜘LLC&?p\0Oa	uwJ\nTw\rBHy8bQ4Iu/JEn4ԇdbFh֕VRg;-HÄ.9D&%;DɓcQi4˸qC";break;case"nl":$e="%(n6Sak3do0p(a<MSlde1tF'#yNb)̅%!MуqtBK%FC1l7ADs)u4̧)іDf4Xj\\2y8DEs->8 4_F[Q~\n\$g#))UYv?!hv,c4mF\$r47e5čʰ*wEI}Na#fuVlnSoгi@t\r2a1hl -湓6FG5!uYq|P+-c1\"̴7H:\$0:(2\r#NAJ9ڽ@;(چ\$OHFPD*01(#\"2J5 PׁA jB^M`\rh0NA-ʼQ/BZè\$	К&B Z6h5QP*IǶ(V¢`:I0S8|\0.=H2Օr5J)\r]@ӠFh9 ށ+J\"\"&ie@Bb80,b߽r\n:j{P2#8ȓc2)\\ћH\nXBQh8!Kx=xH()`ڸ\\mΘՅT7cx>V>G HCNYbi_Ɖo˴3G\"J*4#p֡hg\02erjS\0E t\$;*48^\"*^4Jg_~HLxh#jA3#H,ndQjqj1dJ۷;#V9pY7qu\06,fh@S14\r볦/Ӄ*\n༽:\\Hs\"~EgO/~hJ\nsi=HC&i뿒D&zYHjLP@\$D63ᠴ#AAE\$&E뽏Mhٌ&2S%xbJAA#ph\"BsCMCNz,4ᑎ:ܹ)pvȁB@RĹzEkA@ӒDY\$Zz˛D3#[!J7_sE͆,@C	#gTvۥ#gPTPN짇+q0!MFܴrA\nFq`w!')He\"pk-[pF\n2Tl=v䙉(IHiLEGi!B^N\$:;QP3\r}W7KBYeתu \"G'@I}ܿPh8[1&G쒤Æ!cW]i8uBp[+uru@RK&batC'fE ]LuREZI&m\$j䓵\0(Le֘c2@p8B@c PlVb8b!\r-<(>>s藌\$Ovv`\n\nW(-bcTA:'Tr~qD\0";break;case"no":$e="%(u7I6NgHYp&p(a5&ө@tNHn&\\FSae92t2Y	'8C!X0cAn8G#<t<'\0,uCkQ\$cġsn,p&=&%GHi3&m'0te2b,e3,	hG#	*\n\"Z\rRs3\r,o&wÜg ahf\$A29:ta3\\TϾͳ3}u8h韡B>\n)%˂kW?Sq7p90̳00p;\rP6鼎	V\r8/`P<(\0<LYF*\n5 R4A l@/`43n6i0ȣ)m#2BCX2\r\nɤ782	ht)`Pۃ;2L8:G)@\"a\0x0a`:JX)<x#=!r43у-+KMR\"Ȳ(@ߨ5b޷<\"rENh蜒?{Bt++KنS:B838;((f!hИ.7*3\n@:bbB9c06]8:\rOScj|@an*[\nCXDɋ!C1׃KL\0ЙD4%cx聾.hʰ8^%;?4^ڴ/0db`8<hAn!3B@@8;ta8\r;NP}hZ iV/zjs]\$`)le߻8Ԙ83αP8Z	Z6r2EJ(X1@;1ru1HҲ	c1\"BN٠\r.v4uBtM	Q`L\n (ɩ\0NLY8r^b\$eJޟbw3t3fYd	VRze A3％\r놀sDC6pF\\&g#vy!ц:C n#|BLk#\$:  כ;ݷ7R:-<΁. ،LÈuFǜ3 BL̚|6e12l3/ߑ3~Y4@\rY˖rlYˤ!s\$^2=*PZQJ 2L<&F^Iawu؜0ia`1t)T@R)\\T^g4#JcHs>DQcy	ZUlNC<l3HND<#\$[GKΤT\nZa!fYm58ւ(P!xR&\008\\3V'4@	Wu&E,ON8KQcdA,.3Hi)4tY@B8RrYPi=Bc~>#	&l\0006(\ndTcҘKDhD\"Wm^ZNH7/Th5̠*AxEP";break;case"pl":$e="%(g9MƓ(l4΢劂7!fSi̢Q4k9Ma ;\rmD\"BdJs!I\n0@i9#f(@\nFC1l7AEC :'Ik0geň\$y;¨\rfwS)3	1iz=M0Q\nkr!c:DCyêI#,d	CA2eӘFաњd	B7N^ qR yW~Xzqu&p7v\nBBR\rh01!	`?(.ǌ+NPĲ\r\$#.7`3?c4z2cS'D*hPJ2\"xr( #7 Tk`PH i, P=CT8K3\rk/\rԁB`R7\rɪnzЏC*@t&Ц)Pc,9PA(?@6̮`x0;L0Ĉkx!IS\"3\r1`9:Ʊ썎\rĘB9\rCC*VBC=P\"1Īj/줻bҗL#}:L6`,p:)6\r0̈2 C\$P<QcF	xȰ6:4!igi0#~O=>(hpH:.p8&LeWW['a~7FFc.ea:mg.~w(lv^c4ڋijR) \r6vOT\0D49Ax^;pt0]8zp4axD8ѫLصԽ\rIx<*/g[(vy>ɿ=Ix΋,Ό~lM;όGOWَ]nC\rȹނ%Ru#y9s\r=QRzfTj]L#DSX+yF Xuy@P\$=lN%k,^^aĴ8`-*&xxsFG2ԟ;q3fϹPr`](ף2ۍ'CX\$&mVD5=R<RQHl-8	SF(Yug`F\0004Ü\"#gUTP7ᄘDNHo|CIjaʽּKS#RXt0%QxCHޔfDHC,ܯַ\0C\naH#>Цۏ;}ad`aAYCZ2-mQrRJlV1Aa  .PG)0;Eka}2^z5OX-\rn4׈.l\\iK=	zIċebPOQ_BCy\rPLB`E9\"'0)5hC\"zzH˂\0#tH{\$\nF8׹(H`@D-a\r^KIn68X4\rRN/35\"IGrjR%69yMU7@\nY:}TxȩHkT0d艪D\\EރېBF[d-@)Pѯ5Lp_osq\$i4۩Cha1wɾQj' Q\"TpVTd4KNpU95X9rNT(NI\r7\"g jspc9llb^Y2X[\r6|9Bs8/o'@{+tcg0ipnO\r-?	V-)ȤzA͌P@";break;case"pt":$e="%(Q5Ho9jӱ 2Ɠ	A\n3Lf)oihXj\n2H\$RI4* R4K',t2D\0d3\rFqTiC,i؎hQi6OFTe6\"PDqe0̴m,5=.ǋo;]2yg4&6ZiC	-MCNf;7bh<&1N^p|BRY7DV\n8if)b:[NL,hlI]bo7[2XOԸI2>\$P#8\"#kR߉-ޖB<\np7\r܌I8䔈ClZ-˂4r2Bo߉K\$v0x\nN`A(CʠRC̹A jBN1ЏCH/x:\07mX'~&&J0\n;.@	ht)`P2hc\rL0`G?ȴ+:\0x0!:M:\\E#|Ȇ\$#<2ؖ35,bR\"6[1;KiGit6Ȁ\"3JB\"āBRӘ2#M\$\r0:H727*1䍮R2#\nzb1:k\"38!cf9djڲ8@\"8ʆ79P:3\\u\"#&8fC9n0z\r8a^\\kq[J3^K{A6c28\$dȄ3q84dĒ[rs9,Ť][/cF˳;^۷#5+]#v<\\W,x]\riݏ;vc[C![?)H1Xjﶏ@jX18\"9jyf\\7y͙\$ ŘcHl]'fq	:b`\"Ol\0 u2& PPAI)<2YȨl%+,71G	;E8FXJ\$6'd?&3*qHv&eI:,E>w<_B_\$`vҕ4OъS\nAjZ	@ h@iUl#T	HQ=-WdM	{Fiyi8NIg\nUBI'DPnJgtC1'/-e2_ي'8)&*xS\n\\rZ ]@C u.d|=2`ԭ?/ZhL\r56,PN|O'^L(#/a*B\\ɴ#Z`ݰ\nI2e\nj)i<i\rI5n  	JYP0`		BXStpB\r1BC(z{7(B\n{#5\\Aj{(!YWܵBTIpg)LE'L!@؁\\)2bj>앛iѼO*R)\0MTMDԩ\\lj1%!07oO!V!LقHb鄓dZc	-xĠkw%w4%T\"OjA	F+\n}:<,Vې[avM2ɑ %'aŬ";break;case"pt-br":$e="%(Q5Ho9jӱ 2Ɠ	A\nN\\\n*MqmaOl( 9Hm4\r3x\\4Js!I3@nB3'h5\rAscIEGSbr4EcyUz0Dqe0̢\n<miiQb4(&!Nod?S4L<ي-L,ݒq`S 쪧(o:\r>yxs-s8kjFI{Ct6}c3ܡ\rê:8lܛɭ@ҏ;cp͸K7`P85x7#980+a..\"&\rXb2 z)<m\$ @1*(r2R^sb\n:+=Fh'\0ؾP9-Ct~(#( pk#;`0B@	ht)`P2hc\rD08DZ8@6@*8|ǎdX|<x\$l!`6\r-m͂1?Or8P擠ڟ\"ͣKh΂s\"Kll,A\r	Ncx35CrHnpzP7`81:9ѣ\riK\nR3k[)h&F2mjN*;q:3[K#&leʵ#գǌD49Ax^;sY\r!zo?(O^۝{Y\$pZ̄3meCNuȪȎca)*|2՘ízl6;Zڟv7n9[lˎ(:o:%ғW#\\YH^\$C2\0ZÎNԵi44#J..#Y#9Lk=L.9\rLNkQDRVZL#\$IBz\nHU9E'Y>Á5'uZJ6;C,Jlfphġ@{˛0]<uzq'@hc\r\n4v %щ@`C\naH#EȠ(b&2Հl_H\$v&P(fɓdM9jF`=[AS0\0Q%#ᭈHy;dd9==:WuQm\r4^Asg\0¤^XB:>@\\\$LA=HrIcjl|ʰgcNuQ	&	\n0T\$)GՐfT`M:r7@x	0\$GU6R Fi)U2 |[:XP&?d75rWC5?U	W1Jt 1Eb}S#Z8F_?BFmӆR:)8Rzk'@GB\$6Cq\"P%%&6)\0f*iSa\\\nIUBWP\"(F=0[CZ8:0bR7TN'5ǩH\\\nޅ1HJ@aML.kD@PPUWF(SCO\0Z;pV<qBtdyUZ, +e9-5i3Wpui";break;case"ro":$e="%(uM0r1DcK!2i2a	!;HE4v?!\ra2M'1\0@%9dtˤ!eұ`(`1ƃQp9\r0ӑ@dC&It7AE3ed&3IrE#Q&(r2NrjEDj9M 4ݤ'LqL&V< 1my1&A.Ś2ȦCMeyS\"Dbg3BiMASM7,kYF\\S>t4N;g竔sgA@1B:޲IйlKp9<P6 P\"5xפ#Ak::-kj\n6.H99`30cpʻ9\rs1 @7k˲¼/@PQhpHA!tNB,D80Ƽ+);#p	@t&Ц)C \rh\\-5H.t	꣄ B95\rz9C|bXxIXbxJvͥ/CL\n9h8B\"ލ@Qچґ,R\r286\rP(\06HSI3-WHIN\$<nP13&,\nH2ejLҜRэBh@XiVm)B%ʴ)@410z\r8a^\\gR3^2@}7}\r5hX\nmz\$4Ҡ8^~kj;A:0:+ţV&Pc/rwQ֨2Fնmۆkc]<)/\\	7E\r|&cZMI㔣)ڍF.l2C@A(䜸4\$ZHߤ	ΩيKZAQ&:V`&t<.By~Cf</rf!oA 44RajǤyO:^:-2xJA3aٮppj-H@pHI\rbt4<xFZ(ןiHL\$ψc\rȾ`IrVg!05,7Zp \nA>ɜN]d\\2jBA9GTcP(iԄQʒ.5B^ apҗA'\r\\C#hȅS#qfl;(5T8ʓ\$\$Beɠ!\"TbR,6YZ,ZX,0FK\$CRYkdמ6N%ljL(+!  P(h4 3LNIQ2!uL@\"d'4 u+<#ZbnEYO)yV4!BC&6`Gb@	s2HA!\rNUj=*Ӕ\\4\\\r!5T\rU'bE+Y5faXUHP*@A\"Y\r\n^/fK6qA;yH1gO3>ϙ56BQ\"TI4H\nvg=j_+ܗ\n)7b1}%a.ZJU,xH,F(T\r [\n2,Tȗk.JBpȝRRa<D0amZNbJ+bp	3TJPp*A%:\0";break;case"ru":$e="%)h-D\rAhX4mEFxAf@C#mE#i{a2fAZH^GWqh.ahhh)-IhyL%0q )̅9h(HRDLD)Cf4Ըh/	4&Y9ڡLQcQ\$c9L'3-hKclqu0hʮsizxr#^3KB!A%X֡PTB/G\n>#=Ii\\\"\"\$=i9*JQI`=I3(@n:4<){)h4@F:PD0\r\",fƨIo#4cA%!1c)x%\$*J)G1ۧF딿Ɓ^\00Ŀ̂8@+hڢ->Jy\$10P,#&4\n˴KarΗ1=>˯1\0)cKZ#25lV5|@V\r{W㊃A jӋc%̑T3\$ugTVpTm~c=Qː\$*;(1NhѠt`Pyh+e\\-:.qT,!+\n9io&Ld|zK{gʹ\"-:ߨdqJrjZԬ3k+*хkKdݢKwW6}&KCȠě=t&i:C`9NoT\"Dxb>\rFORc*ښE4wT;H\\S!:Cۑhc\nhNZfB|\">7{-::BH_\\dXoeǺ\n|%hg3=/Ⱦw|.kxcAT\nK&O5gV[9RLP{y5VCZ>:H4^Y8-2y@CHn6L	q4G\")u2@\rf4@:;P\\b|Q`7 (n7LDti끉i\\G~R<~INLW'u]r.֌Pf#KKvT x%;ÌѠ2ƨr<E~2 C@(OsSYmSD̈EUR`-\0UNtRJFNWQ}5	hYqT/'z/\"#2^g'Ȁ`Ll|EϾIde!F}v|y-!'b.[!2g(CL4Fl@eOtAF,M:#PYAIh>5dM1ƥ9wKɟ/kdE6qN@m`<d)RQ<Y|f4uʡ5?J{K/X҉VS3R>'W{hɣ'yrC\\S6Fߚ6ӠjRJL%MRcԳdg'uOܗ:hC}U}Fr}a+Fە̋]F\"H'\0 :)ʓwDvD-Φ=xR{'QK\0P	L*Ko|,x\r)U@+h]uΚ[:LzKaF%Wh1OTUm`ڷpv],∐`S\n!2\"K_H P(D\\T(4h%m-RPH1Ap쌒\$\ni}ia!&+q_.X=@u@*ʪFΈK)WN@Muz+hԙ=Vظlg]{Wg0e>nL6*l{3Rj;~s.YӔ]S^eH0+2QOK+f( \nRУZ1ѩ6ƥb`yxOkO^7|4LH	tbIǔr|SCR5%^ý\$RωGQďkuyֱ(0G*jh^BP\0)\$'Ki#DMg<qi1\rbxU{+F.a7d#ۥ܄xqvOoki|xLPlP	@DshȂ.ޞzC0	9t?@V?s k,H&pB;O9j3to \\[";break;case"sk":$e="%(](!@n2\rC	l7&P\rl25q\$\"r:\rFQ\0B0y%990cAn8U\rZv0&㙭'(a7&(n1!%iAD9ϡf?BKe|i3fRSzi0\"	75d%Stiы&KuqmNemB~Q%b	a6ORj5#'MnqoI{<q\"7)RPcC(p7G)B,CXԦcCh½7\"T6<m1#Ȝ2M4@1 @P7\"̴-I\$1\"@ؔpL,\n#\r#I	2\$\rpJ2:213,1<,ƍS\\c\r	RNqB=5C(5*r77\"bMBBԎQ	ht)`P\rp9VC(\0:!\0x0Csg\"|H73@:VaEr\$\"Ӫ,]P@&X3܎ay0QFT\"WèADk\nC*?\rt5#j!4IEC(6P\r0\nH'f`P2J܊ɢv#(^r,J(X-Ң<ARt6C9~:yZ3*Y\nj(ήk*,\ren:%z>٥Jz/[ՅCCnx22ʢN ɢ\"r\r f:8@0z\r8a^H\\Ð\\z4ہxDJC2#-#I^Vd96hPs0nBJta|Bt\r\$cLHh#! 7m_;|x!<Dxrz!9Zs\rid	\$\rI5HA(<և\0H%jE'\n2	bI& 8C_y94m'~4@@ñ+-4Iho4(!4ơBujJ8˔5xNpf@#>^́3\n_\"E\r~mɀgo1䆊FpTx`Zb[0B+k\$R0Q\$3\$陿@@uY3\$в@#m\0du\rd04f縔2Zid1\0K\rՄI	1(%PO	tS|Y-h&`A,ڿZ\n7\rfG\"LZPJb D;-X;G3t%ȐTY\rΡ\"66Io@'0/dRQ^=Q&Q QR--θ\rJ4#\nŮ5\0BaGa9/)#hl0 P(0LOh،VhG_/=/Fȥ*K`JCgl]X6Y9i`KvLk,FL01~BԈlhH4rΝ\rb4ϋb,=C#|RLXfFNMrxeKpzI0-{tɘ2V@M펶J}	CcMM/ٌBB)(/\"(EWFr@uJ+IJFˮ\"6ǱdwU06_SȚ]]rXDif<ՆʜQQ!1u@ҕ'%\0PCQϕ&qSJft;3f1? @\n	dbأ~Cň/'E	I<`wQGc⑴	I:pcmx.";break;case"sl":$e="%(eM#)@n0\rUi'Cyk2QF\"	1k7Αv?5B25fA2dB\0Pb2ar\n*!fPsSYPaDqa9Ύr\"tDgNfoBAoB&sL@Vdk1:0v9L&9du2hyr4\rS9 դh4Ε܈h9\\,xAcFQ =ptgtfYyS=bX,ģ)^+Nĳ\npǎ`9H[:񌣲\"\rpl4(#Ȑ(7	SHC£5\"\r(0;6(PJ2H:1{2y\rH!1<S\\b	B̵#Ԧ5#`,Z/Bd8F\" '/45B@	ht)`P\rpA<-C{GM:A\0x0a:ظ0!^07Nl@#-UV	\\`P之@u^Xc29,Ezbu8c-+L, 6+S+7Qt5ͅL2\\9אʊBP2D\n{l6˅gc06)g\0/HW :@Q\$^٥t(D*6P3~3X1+4]4(C@:t㾴;Y4!c8^##p^2 =oV)S+Jإ\"c\rǎ|Q`D&8/ǖbυ[biηc9l[%gZFN#hãpI8X:f9a'mP\nV=%k:1,]{@Є#.6c\$mRr	c+>80@]\"E^\"x[2I8冏\nd-d\\4\$Fɂ4y\$\0@\n	)!a`w\nV!=~pKi7\0C~rM3\"\$H;bL&(6na7515vqA9&w9\n@ԑ0BA6p8Rd(1Bw}*]Bpk:!оBLJ`Zό6hLwpijH7tj^H2\r' @ɯ#-\"܏<8!:fih-yeEȑyPZC	i/6F#3JO\naQ̅)##jC4BZ=^T!\"GiR Q	YXIXF\nx#9\r^(9gL8\\&:6F5\$Qn(2Et`'8NOaHTH@k4嫘!Di)Jm@\"ມu\$`2j2DאlaKS0mZHRe0-#ga4EJSySEi=aE~\$ &;W:GFCBiעvmv9cj\nFmXR4YGĜx/0ANLf8 #jRho@Tb.n%y\0F!͂G)\n{\rM\r).;|MZ7oy\0Dl	!.*J]3~\\+Jhak=D:Ő";break;case"sr":$e="%)h.i4	|Ez\\4S֊\rh/PHPnv0G h\r\n)EȄ:%9>/M}H`(`1ƃQp9C\nD?!G: 'a%e|Dqe0̢\nm=c/\"mF:D\"Uj8k:]\nHƖHr9a (h_(әHY7D	Fn7#Il2̧1: :4c41?\n+ʆ4I(k+<F\$70)pE0k/쒎x)H3Σ˩ChH2xKʾ\$1*[;\09Cx䭔r!k)pғ'8R#h82lIk~\"BQH<ҭ>i{W\r2H;\"\"BHiKN}4Bh2&X j\\uXb1)@JSZ'0b\"\"u9OO\n ĝh\$5lH#vj>H)OLr\$	К&B \\6p<Ⱥsl#WQ*h9\0x0>:0<x%>!p4hˊ#dpAoLKݖxc7cN:9dj|\$^F	8XE|S;2\"WF&'Q\rj\r!\006G,/+.4P{6@:烨1c:\07?0QSl|:@U1mIpJ͘q#'47K|ǟ#\$/[>3:xmp^2c}AI 9#(v(koVP*QtJѱ<B4!;\$Ci3< 3yO1=.za3vX/L\$\$~kԑ`!50C[o7B')ZM_0H˾ ȉ<}2A!@ϻF '^!Gq)2Ёa <]E\r!64q:_;`ң)FI/\$Y\0\$K\\߂\0PVI蜵\$Jp%p7;>g|td0Yü+d!(S\$#xx!8F8|P4rGw@40@k&1۔TZb(0F\"\$rI\"K277d%bp^U`QI2lBLp9)2Zf%\0Ha\"1 9S^G[(dwfGP93:\nmvM@ҖC4R@G(60TҩG4)22R_+8]&}\\ۑ6R,Y4&lZ5b3,_b02CZEхLPzM|\0@L}gb\nH4!589侅37bD<m.kL\\\\Cr[\0IX2\\׼\\QcF=qFmI-s[z_7Eb\r\nUi嘊ŒaA(#LV,eT*`ZH+-(\\]M=Qxchu\$,4_Rؤ1krI`,8\r!<bu.+2h7Z.VPi4]\nQVNWd̝F\rՍA)Rb9\0\\䜬VɄQKԵYj\0-xdڎ\"ɛc^aR0~#\$1rW*4f𘈪(vhr::\r[4ZհZ?E0";break;case"sv":$e="%(e:5)@i7	 6ELp&)\\\n\$0s8t!CtrZo9I\rb%9iC7,X\nFC1l7ADqzn\na!CzkDqe0t\n<pō9=N7'L	n%#)HrL×3|+f-5/2p9N\\C*ĝ!7K\\ 2Qч9g6fs+ϦuCS7OenTޝ0֭	ZBѴ\0+\"&h	R7'3((,h7\$J 6D0	0*.1(\$M<P5A b)S:\rj[3<:=.!8䯎qpδ@bz6Hp	К&B3hZSQI69\n\\(\0:\0x0:܊R3\\<x\$}\"!rD3ң-;OJ!VnƢ`3R<C[-3р>5\re.44b/L*&\r)!\"D#܁Ce-`3b +4m,3nc`1mzX7KK5j/à\\߸R4V	aTW~#}썸Mbxr::a(ȓF^+e1\r2c6!^Y::U{r84.0z\r9Ax^;r+	xRMJA5]AzcKrd[驫~.:\\7%\\n~kñ죦ϴ{ny#續\$\"\$\06-7`R\$x8+(E:چ%W*Na̳8\\8<w)C(WPH+aE4f\\nh)9&t<%b!Ha1G \0lX9-!J\0S9j\n3xM1ɇxڜ D2I C&	fq\$A'`3H-!\rLT8蜒Dtbq#&!0o.0YIz)6e	I+>leHLɩPd\$5YzA@.PjV'VȜ\0g2_K˖\0{p-G[Lbzg(8b6BO\naQ?dOP4\0&	A2J!,[JIw\rd*e1f#dt	6(Q	@nF\nAhׂ;\$2KHER\\d=;Ğ#2v;I(G7Υ#Q\\9GFAV>)ipf֘Cfĩ\$\rkVה}1x{;,\$t+`4\0\$\08Dxk\r4jFȽh7ժe@PKk\nXO֐Ni\$\\3Ni(`ViA493:x~MUo)	5i1-%tx1`Wxk8V2%j(x Ӽ[MrMbFc78QV2	ad";break;case"ta":$e="%)J::u>8@#\"\0p6&ALQ\\!_ FKh3Xҽ.B!Pt9_`\$RTmq?5MN%urι@WDS\n4;(pP0cAn8UUɼ_ArªZ.(qg+S\\+5~\n\$g#)eGKN@r|,F,u]FdXGiSTrP+_5ȕʙa^i6OCq)Jj^E.Q@+W@J,W(I{\$#x\r\rx@8CH4(2a\0\$ :74#1EH%!p#%9nҗ@P#x;j\"r\\K<<2Jj2t81Pd2Nx)CH3(Q*ڒŢ2(7L(\npp@2C9@(T=o  첞4좨2PH\n.1Am\"JϒAtrBdA(ԵuscvS8X3Aj̠u\"rʺQ(ȗ)ׂ%9VU`DPH g*LJЙ9s(8x92Ui߉L)gZsj	ЎN&j9Ur.б_RjJu:@P\$Bh\nb2x6\",թx4@h9\0x0h:<0u<x)!p4mAA7*@Go%Qw2m29<Ktso=_/'w~+b[̽U3Z^n)MoS9{f[ofOGrJ87/CgCx3\r9hcIBDj3CθSAP7` :0ƌfΠ,FA\\^ATp\n)´^\nI5m0YD6\nё!XjKIH\nM#z HX\"n4E@܃\n 6 p`q+*0(nģwS>x:E' ? ܮ'b!D5Zy2 2D+A[LJaRiG`t4@(b3F#tpORGh#u\$&X-|:Hw\$Qo]ͶnKq\nŉ4VF]\$_+R[PoN3*R/zSPh71W,NÓ]3K2	`s0n>:FT(\rep4{hВ1<Ϣ\n\n (dt(3Äz!\nq,Pؤ2(EHS\$Nâ1GlJC2HJK:=PW?p̽_CE	Ќcs2t)ueC.\\%c\r\rFpAE)YazF%ǌOگP{>bWI#W'ׁ^{iҥB+;&ےȜ1[4T5҅5#@#5|,:\\JcE_FxH\\h-ʻ,\\{,g@Ԛm&\"f/7V;(A a\0kon&7N4vMqeDbVO2Rm]shݤZX]fTJ=)_a|c9(qUUeR\\ؤ[qN1ͥfDuujCcöO2UF;L(@+!*TKO	\0l.I1*%r.˿1\\؅],֧ڧM.9^ְ%ڹQ:]M5DIKԃgYݚֆAw]7o֯SXV[FC`+1\0vخ6C4% #VۍrT*`Z[mLҁKxuF¸UӃ*Ok\$=i{ݵnIAӗ`Bk̍2dv+mNF6UQgsq1_{t[o-\rNzf\"ޅ[\$)Pٛ;JWj\rkpO):ёDj?IySuUT\\i\nF0gRf#I\\RVQ{/SuCn?iei^?`/e{E6zHd,<3(%yG\$r#>/)D2Jai:Ypex|vFLK(rd";break;case"th":$e="%OZAS0U/Z\$CDAUPȴqp*\n*\nW	lM1\"T!R4\\K3umpPUq\\-c8UR\n%bh9\\EY*uq2[S\ny8\\E1BH#'\0Pb2as=G\nASZg\\Zsf{2q4\rvuTq,..+h(n1s6t9K'vK֗!AvyOS.lUشt.}pTkp+nC퓴>>Bi\"X *~-h+#\0,@4#7\r\09\r#689R: :8à4ƃ1FK=\n[;I쎷+c:lִp,,C셗\$450=9s?B.jQ@o뚑B`P#pΞϓ.(cOs̅B57NK6Mӳ,ҏ+JĐ3ooZ3=z&Yϰ`gc2sUsP,ώ7x#!X<`TP^wbӭJpY'i_'S,6icC\rʴ\\\\eh;A5egA'mi.X\nzC\n\n3P\$Bh\nb50.`ZrS.*M\r:º:TõTC|l[ 703.8㧂\$!\rIP\rC_ 29;Ñ3F+m\$L+A\rLDu5\"˖vO@\r*obKiW;C@P:PB.\"3e20Ae\r01<cX7#n<.:cf9è\rx΢C,F\\]6@s'%̹B>u~	C	7Rx\"Fŵ\0A47*iFp0=A:@/&޺TP#xGnf+ }\\htg!#y'	OX&暗CYCVZb%A>a2dsI1C4#䊎 sv@NdX,G1.&hAtS]9g0x\"l\$6`bt\\#޻Q!:iA''+c&A\0SCbo\0;4P9KC4?`rk7a\0Xw3Ha\rl \nO>2 sNA	⚂I(`!\0P	@\ncIXg4\"\"E;QI\nn^QJ+EdT4H\06\nC91%㬃ZKB\"7UF9	1T>	\$Ò1  0מMXIS aL)eXbOƚ\$_e\\[y5cd)nE[\rU8!34jW`? DlTs;PS[^xdUP7?F8Tf2\r(CY\\c:܌Ϥ}F\$gTڏP-Ÿ%m\\MAx5Ӂ,\nO\0nr݂@hڦBMZ7,H-<D)pb{аMlӉE#JXhiA^<\n&Ts+݃nǘTu+b%B\"\\ܹdiIO^i'ܹ32k&͓4ʴxNK\$`+A11Cd\n+@PF16¨T8qvQ<y@ll'E<el4#ӧ?cdStl\r!<<!a!SJsNl|R&NUwKftץJBȄ4V3	'OvnNL\r6C\nQ>pAkZm?%Mk7zř=:\n{ZN`\\PP-nqsЅ?GJju\\]nm9D";break;case"tr":$e="%(o9L\";\rln2NFai<BS`z4hP\"2B!Bu:`Ehr2r	LcAb'\0(`1ƃQp9Φal1N5+b(Bi=Dqe0̳U18t5hZM,4&`(a1\rɮ}d=Iⶓ^a<~xB3|2u2\"SXS8|Ii1gQ̑̚\r;Mno+\$#ӆҙAE>yFqH7ҵ\\Y;H3B7\"1*ʶ	b\nB8҉^@:&[PA(Ȗ5F˚TDԖ#pHHA R[MN1Cl\$i(0B`ҋ:XPbt\"悌pc<POa\0:mXx0aIB |PHH:,7v\r#fa4\r]IWգ(:\$sľqYb̺&4:!\0?\"\"3R\nܢH`čh2\ra2&h9\nc:\rw,=p5\00J]F\rZ\"77ks80	r!tg(</\\\ro SuB~\0C;&9P #\"։E0z)7Jh=7\\CֲcrKP\0лD49Ax^;듖lAr438^#}祌;,xnTK@˅%8xb:8Acd64hV效A3˻|7p@Ӎ%W\r-X.\nE.꺾#{7lsVIHwr+r9Tg`Ic#vq\rBv{(\r:LS\\)s\rf#C7U&ECp*p܉ \rVHH\n6HX8 䜔(eՔy!/GČ\nJ\0@4\\pAb\$\"exs@1!(9\nR p0ERȩCFI;^BX\\3BX^äo2Ȭ)ȔYA) CQ<Ab4yr\$d<H	Q\$/BһWνH.e~\0Lqn5S(lD9RD8l\r)@p	I\"I摂a2UA}tU^K1@Y\rP	L*&[DAJAc9UanA<Dn9uG0Trr~//&}D)Q'x(GyM`Cj!\"Rbjh7U|駨xj\$=I;iީTץoa8Ԝba\0!\nWh0-7BM\$|r8*50Ɣ2^M*b/Ʈwb,+a 36^`=4\"Dz?\$yjըN:lʳP]v&*Ԡ{5\"Y^tIaDK~/E=3|{&XfCtêdcNhSOQ4RLHW<S3@zQ,Ř`";break;case"uk":$e="%)h-ZƂh. h-mhĆ& h#˘.(.<h#v_Ps94R\\h%p	NmcL4PҒ\0(`1ƃQp9(;Au\r*u`Cd-|EX~\n\$g#)exZ9 G\"HESXj8R9ֽ|_b#rk:-HB!PńRDiyA	ǖx]5KOcJvf[5{ftk,TIjh0'\rz~8ȋ\$\ry*.#΋4nNƃ4ê*0(r}48죎'plA\rDn<@#)یF^ƭs	X ?V	/僬J+L14ܰR	:Om\"*2;] ɣ *s\r<\$p M9O%r\rENUR\n2PH gZ3\0D0E({Z1bZ얨1Bܤ./KMIdh>':.h3m.#(1&haѠRuPh&\\-7\0qȓmb#aJ­~G+L&x!]bדxB+\nܚ+h\\*Vb֪&k`Dk_fB,[7L=4hJ|L&k˨&Xd!ֽP:W0H|s*8/4:=dZURhz\"lB	1BI#c|AG(QnӼ::Mo>*vq	?qϋ#AI/)w3ARkFϼԿY\r}G8*v\\tw}I-;0^?-^j{>lϵ,\n({nP>nO\nhgHڹT} GM,%\$SVj>CHn1'c\$OYAs@x/0xe\r2Ci1\$ɡL,Sr#ֽhp\0dVSL\"g&̖,zNQyy{4ً&S+	&\"D\"%DȜRA*x(xh9(	!IH4J}d?\$	Qtg\\RNʄ8&e<P)L#83¼c[Fd>)(t*\r\r͇drl2,H^Q`\r&ĥ(,㔙Bh-@\rf\n (B+E\$S3~H҆#M	+|5P FfB4nm2{#N<vB&Zi̡}@ZX&Ȕ0삃qJ\"j9C<h\"(*CIRBS\nA\nFCiCUXstyQKbƦQG:&c#ܞ\"JHmi%)+\"7\0FXζ4(ϚYh#Q!oOcRR)l\n\na,1V*앃e>wS((B\0P	L*,^Z^ZZ(,p6i*ZuySʋLN2<n͛OrRMQ\\AbXe29=ز;I6\r]\0Bdn`gWi5I4ԍRu()>kbJg1'SLQA3sv2\rrўyH:f\rzsY3|p,R66%}#I)x.{	pCn*,̮}9:g8HVf^,LbR\"<^T羿cY22ՙSؠnxڤl&6{ZMՂyifaHN,'jE)5\\MH*,t7Um/,_\$\nIܑUH\\U6&N}#xwWo\n:kKIlZ/4lռA#Ќ0b*Ү[&o	i 	W-zcT|E(ݎи%nݾ:Rkf(Y0-\\PNyqv%SsZ<h^m֒k^\$NxG\$mgq9\$JN";break;case"uz":$e="%(a<\rƑk6LBNl6Lp(a51`u<'Ai6&%4MF`B\"u2Kc'80cAn8!\"n:far Io7X&9 5瑃Hq9L'3(}Aap-rLfqJ֘lX*MF\n%mRp(+7NY>|B:\rY.3\r4Asҙuzah@ti8[-:KZaO7;|kul7*'֊+ɜӉh@<6`5h꜎M\$\n\r(#5/[N\"\r<Z,`6h7PJH@褔I6PH g,-pҍ@R*ڌJPkZ!* 7PM-TaК&B ]3G\"=	:--=0\n|)i2T[!^0όSB{O+Pc=+=]X#l@\"Ժ3\rOVu5i:\$[|/:):(:s3C\nHSj5*-C\r)p̈#r亃(;b@T4ۭh>N8(3&:9.%!cRTιN6\0ۑdn9exAff=QUeY.L!.2'v%k2՚&TA˦⹩4##]PCC8a^h\\m8\\،|V4xDC[܅u䈢x3#Ed4O67&	{95}ل[_wH@*yt{&09}4c/OƎ~й\\,7r!\\EQJdcq.ػ7HEc<;\0L&D1bȬf\$P!r`Q^1Edĭ\r<D'Y@		kU%&MtP24` \n (+YK-P`I\r,\r#II+\"H&GPt\"Ų2#G䗙\"hpl9iƆE\r.F\$'Uc!\r7G/aL)hLP;\nd|qxXKI#%p|o|u\0Ie`@fI\$Yc|܈rn58*Rze|4I2hI6[a8-.+xa@'0\$-/HϘF}׀MYhr\\4H,!Ty>2`vj'\naD&Rn\0F\n4تZCf16\$	hD].dt\"BDpSԂcn~Z}R&5&Pz'ĘRj?k\"\"ڹPQF`zLo6Y>0-2)\$VkliUÚy4ɾ*f!!E E@uLg̱4<d,^ǀњn,yRVj<0tcژfnE~w,pq\nV@RY@	t`.:bhyH4+/cPOK/TE\$4\",e	E.?er_ւ~{F>ր";break;case"vi":$e="%(ha\rq]Ҍ]c\rTnAjhc,\"	b5H؉q	Nd)	R!/5!PäA&n&0cAn810Lthb*L QCH1b	,Q^cM3s2Nr=v8]&-.c\rF 1XE)C	nz477JqmU`-M@daH9[׵\rH!y i=Yd\$IXWxmmtWjYoqwD:<6\nc4`P7e'@@#hߢ,*X7@9Cx䐈CJ<(Z8BW	J NsZ:\n\n(T! ŵ|]Cb#cj LtnH7F-t:@MP`PH g:V@[_CA-K hReٗEz6<@RcMR		JH2CCCŋpN	К&Bcl<h6 Tv\r;̝h9:JD1 <x\$6u!p4nA0I4c606DLu|]ݐ2@97+dA.S\n:V\"K0PY0hu@] PABޯ[,3(29C.O0)MZ\n.:&躃.u3\rN7QRUZj2]Hs026Hh\0r/c@3_v\\# D{ǅ\r#\$FY3:xхD0ߡxr#7}ݒv\\\0PSFhA\0@ZQ~:l;%(1\nRG]Hc/HA&G/|?cK}H&\r\\BIIw1Efk+,5ۈ4P	a0!1%i\r r\r2̚1`\$\r.BC9^\$a\r,Ӕ2ok\$	@b	-Td\$HH@\$N6,rJ׋\\rr\r(|xXQ0tpK	w\rkMzMCpY8@P\\;d4\0qaX]\ng'⸀5aL)i\$LJi-ꔳ0r\nTB:Y\n&)\"ĢI.\0p썅أHL6#i#d4(Mc{m!Sb@S %iAI!	\$<3~d*@02_NHߌA.Fw&8Zc̓\n<)FoNF&{}\$p\0NXdT:My)cJ{S࡭Ri'6D;O'Ef?e*`]0 Ua,ED\$oh62I&?\\tH[dQo\"7ؕz9%!@\$jVt,DFvj\$\\6f5!=BFIo	äk;1@{xrXabU\0IuZC~ GiHa:m`!'[lS{1Z<\$Q˄[i%H})a.PHcc5UD(\nAe\$@R83c#SaDkT:zdmD\ncF486-lNA8Kb\"W-n";break;case"zh":$e="%:\$\nr.r/dȻ[8 S8rNT*Ю\\9HHZ1!SVJ@%9Ql]m	FU*qQ;Cf4)ΔT9w:vO\"%CBrixM3s2bV}\n%[L`*9>S؜%yP⣎uYоHQ)\":VdjdK:tRd(t/0Vc5_hIG*\\?M[h9ͣQpCqH\nt+ծB_cS>R\$2Cϒ')2T*´[1P*2sD6rë`re5pKRxLa SA b8sTHAv]\"h^9{sH]AE!zNGI\0ڑeJGD0\$	К&Bc<p6 4g4ml^9h9\0x0:49C|RȆ703ӣ-QU/A\0O+ʴKB%{aD')bJTfӔ>sKaZKaLO\\h̡g)[19A3	}IC`9,k)L]~rD3^N(\$QCA<FCɸt9zZZc*8\$:BM-Y^[C\$HI)OG. אXS3# ]BA\0A\"ZvVR\0кD49Ax^;pãi\\7C8^2xX#X|7ea|AXIBZ\$D5|\"\$;kiy\\F;\n+'/3͓wc.;˳;^7i;~(:nTΘsYq+XDrsdOfX!rBa,+䅌rJו!I18*\"7hF\$spDa*VDYc`F(ebYvGQ\n@\$\0A^pT8Bp!A\$\\<E*D3n9XBךV\" b-5ω3K+CC9`(T+`(!ŢäQ	cD\0F\\RC*Fc7HLfG(fDpta\n	\"\$E9pQG9Ef>AL 0TeE؎hIňs@B5_q8\0¤'Ea':HZs2\\\nR\$8]H+aY@P0HL'qGKAqҾG2h(\\S\\bP7K\nC5<\0\n&q8)=UE*\rx)G5^(	 q(MA/s& X\nP#pvE#F0RJ9c\njMSr*H)Lc%\"RQP9ڪ%Π\$8\\Z/ 0B1?5t0RQ\$\0e)ACk\$%wAxΒm^4EDE՞\n(R_, ";break;case"zh-tw":$e="%:\$\ns.eUȸE9PK72(Ph)ʅ@:i	aJe R)ܫ{	Nd(vQDCѮUjaʜTOABPb2ar\nr/WtЀBT)*yX^%ӕ\\r|I7FS	99STB\$rNuMТUP)&9G'ܪ{;ds'.̖L9ho^^+ieD:=.RFR%F{A,\\{Xs&֚u\0rzM6U!TDǇEtl6N_'zV~NZRZRGATO\$DЭ8UJt|R)O؜PL)^C-eLhJ\\<i6mnt6WA(C2R SA bd89R]g1G\$i^1I%zޏhqzNO	psd:G<N\$	К&Bc4<p6 BKI#@6\nt/c9\r\0\\#0!^0cYcx3\r#=n2V#\0\r5t1g1K?n'AK[h1PPKdJГ12A\$&YA=e8|P:Lte\\MtШq4gWbsާIG&FYg)C\$_IFIL	yqkBAXN0P m2YBɶND.#XB3:xÅ˳Ap9x7%0MAFq|A;YH\nD!)W,OYߛV}.H\\F|cgDu˾opG\rGr\\<Iwö́UD]e+ۤrA\\Its)%|_@L\\et\nHiYLbCՄa2Ma |	0ED	+L|[eI]Kw/nN8Mba(sDx\$\043w	ӯx(ӰhssXD\$)\$DF,CEQ+M;\"-32q@/;0t1z93àC*# f&dr# Ę00 52z\"V9D)C[vG	#Ls\njN&N`LLhGr@`\nPs	8pA7FB>\0!,DcK\"G4uN\"xS\nS`*9=M8oMB+ٞb\"L/6XMhl@	P%fcQL%nVN'HHYX`wF<Ƞ4LQ:f\"\$ideHt#.{x9E\"|_!l`6zO,pE,HP0-ƇQD1Ε(j5O\\)L1*\0(gBz;&'z#]x/5^mP(6ޣh\0BZ`H7vjJt\nK\$(\n􀣮yc1&DeX\\.\n̋Y0";break;}$Cf=array();foreach(explode("\n",lzw_decompress($e))as$W)$Cf[]=(strpos($W,"\t")?explode("\t",$W):$W);return$Cf;}abstract
class
SqlDb{static$instance;var$extension;var$flavor='';var$server_info;var$affected_rows=0;var$info='';var$errno=0;var$error='';protected$multi;abstract
function
attach($O,$U,$G);abstract
function
quote($Q);abstract
function
select_db($hb);abstract
function
query($I,$Gf=false);function
multi_query($I){return$this->multi=$this->query($I);}function
store_result(){return$this->multi;}function
next_result(){return
false;}}if(extension_loaded('pdo')){abstract
class
PdoDb
extends
SqlDb{protected$pdo;function
dsn($ub,$U,$G,array$D=array()){$D[\PDO::ATTR_ERRMODE]=\PDO::ERRMODE_SILENT;$D[\PDO::ATTR_STATEMENT_CLASS]=array('Adminer\PdoResult');try{$this->pdo=new
\PDO($ub,$U,$G,$D);}catch(\Exception$Jb){return$Jb->getMessage();}$this->server_info=@$this->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION);return'';}function
quote($Q){return$this->pdo->quote($Q);}function
query($I,$Gf=false){$J=$this->pdo->query($I);$this->error="";if(!$J){list(,$this->errno,$this->error)=$this->pdo->errorInfo();if(!$this->error)$this->error=lang(23);return
false;}$this->store_result($J);return$J;}function
store_result($J=null){if(!$J){$J=$this->multi;if(!$J)return
false;}if($J->columnCount()){$J->num_rows=$J->rowCount();return$J;}$this->affected_rows=$J->rowCount();return
true;}function
next_result(){$J=$this->multi;if(!is_object($J))return
false;$J->_offset=0;return@$J->nextRowset();}}class
PdoResult
extends
\PDOStatement{var$_offset=0,$num_rows;function
fetch_assoc(){return$this->fetch_array(\PDO::FETCH_ASSOC);}function
fetch_row(){return$this->fetch_array(\PDO::FETCH_NUM);}private
function
fetch_array($Dd){$K=$this->fetch($Dd);return($K?array_map(array($this,'unresource'),$K):$K);}private
function
unresource($W){return(is_resource($W)?stream_get_contents($W):$W);}function
fetch_field(){$L=(object)$this->getColumnMeta($this->_offset++);$T=$L->pdo_type;$L->type=($T==\PDO::PARAM_INT?0:15);$L->charsetnr=($T==\PDO::PARAM_LOB||(isset($L->flags)&&in_array("blob",(array)$L->flags))?63:0);return$L;}function
seek($Nd){for($r=0;$r<$Nd;$r++)$this->fetch();}}}function
add_driver($s,$B){SqlDriver::$drivers[$s]=$B;}function
get_driver($s){return
SqlDriver::$drivers[$s];}abstract
class
SqlDriver{static$instance;static$drivers=array();static$extensions=array();static$jush;protected$conn;protected$types=array();var$delimiter=";";var$insertFunctions=array();var$editFunctions=array();var$unsigned=array();var$operators=array();var$functions=array();var$grouping=array();var$onActions="RESTRICT|NO ACTION|CASCADE|SET NULL|SET DEFAULT";var$partitionBy=array();var$inout="IN|OUT|INOUT";var$enumLength="'(?:''|[^'\\\\]|\\\\.)*'";var$generated=array();static
function
connect($O,$U,$G){$f=new
Db;return($f->attach($O,$U,$G)?:$f);}function
__construct(Db$f){$this->conn=$f;}function
types(){return
call_user_func_array('array_merge',array_values($this->types));}function
structuredTypes(){return
array_map('array_keys',$this->types);}function
enumLength(array$k){}function
unconvertFunction(array$k){}function
select($R,array$N,array$Z,array$q,array$E=array(),$x=1,$F=0,$se=false){$Sc=(count($q)<count($N));$I=adminer()->selectQueryBuild($N,$Z,$q,$E,$x,$F);if(!$I)$I="SELECT".limit(($_GET["page"]!="last"&&$x&&$q&&$Sc&&JUSH=="sql"?"SQL_CALC_FOUND_ROWS ":"").implode(", ",$N)."\nFROM ".table($R),($Z?"\nWHERE ".implode(" AND ",$Z):"").($q&&$Sc?"\nGROUP BY ".implode(", ",$q):"").($E?"\nORDER BY ".implode(", ",$E):""),$x,($F?$x*$F:0),"\n");$df=microtime(true);$K=$this->conn->query($I);if($se)echo
adminer()->selectQuery($I,$df,!$K);return$K;}function
delete($R,$xe,$x=0){$I="FROM ".table($R);return
queries("DELETE".($x?limit1($R,$I,$xe):" $I$xe"));}function
update($R,array$P,$xe,$x=0,$Qe="\n"){$Wf=array();foreach($P
as$w=>$W)$Wf[]="$w = $W";$I=table($R)." SET$Qe".implode(",$Qe",$Wf);return
queries("UPDATE".($x?limit1($R,$I,$xe,$Qe):" $I$xe"));}function
insert($R,array$P){return
queries("INSERT INTO ".table($R).($P?" (".implode(", ",array_keys($P)).")\nVALUES (".implode(", ",$P).")":" DEFAULT VALUES").$this->insertReturning($R));}function
insertReturning($R){return"";}function
insertUpdate($R,array$M,array$re){return
false;}function
begin(){return
queries("BEGIN");}function
commit(){return
queries("COMMIT");}function
rollback(){return
queries("ROLLBACK");}function
slowQuery($I,$tf){}function
convertSearch($t,array$W,array$k){return$t;}function
value($W,array$k){return(method_exists($this->conn,'value')?$this->conn->value($W,$k):$W);}function
quoteBinary($Ie){return
q($Ie);}function
warnings(){}function
tableHelp($B,$Vc=false){}function
inheritsFrom($R){return
array();}function
inheritedTables($R){return
array();}function
partitionsInfo($R){return
array();}function
hasCStyleEscapes(){return
false;}function
engines(){return
array();}function
supportsIndex(array$S){return!is_view($S);}function
indexAlgorithms(array$lf){return
array();}function
checkConstraints($R){return
get_key_vals("SELECT c.CONSTRAINT_NAME, CHECK_CLAUSE
FROM INFORMATION_SCHEMA.CHECK_CONSTRAINTS c
JOIN INFORMATION_SCHEMA.TABLE_CONSTRAINTS t ON c.CONSTRAINT_SCHEMA = t.CONSTRAINT_SCHEMA AND c.CONSTRAINT_NAME = t.CONSTRAINT_NAME".($this->conn->flavor=='maria'?" AND c.TABLE_NAME = t.TABLE_NAME":"")."
WHERE c.CONSTRAINT_SCHEMA = ".q($_GET["ns"]!=""?$_GET["ns"]:DB)."
AND t.TABLE_NAME = ".q($R).(JUSH=="pgsql"?"
AND CHECK_CLAUSE NOT LIKE '% IS NOT NULL'":""),$this->conn);}function
allFields(){$K=array();if(DB!=""){foreach(get_rows("SELECT TABLE_NAME AS tab, COLUMN_NAME AS field, IS_NULLABLE AS nullable, DATA_TYPE AS type, CHARACTER_MAXIMUM_LENGTH AS length".(JUSH=='sql'?", COLUMN_KEY = 'PRI' AS `primary`":"")."
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = ".q($_GET["ns"]!=""?$_GET["ns"]:DB)."
ORDER BY TABLE_NAME, ORDINAL_POSITION",$this->conn)as$L){$L["null"]=($L["nullable"]=="YES");$K[$L["tab"]][]=$L;}}return$K;}}class
Adminer{static$instance;var$error='';private$values=array();function
name(){return"<a href='https://www.adminer.org/editor/'".target_blank()." id='h1'><img src='".h(preg_replace("~\\?.*~","",ME)."?file=logo.png&version=5.4.2")."' width='24' height='24' alt='' id='logo'>".lang(24)."</a>";}function
credentials(){return
array(SERVER,$_GET["username"],get_password());}function
connectSsl(){}function
permanentLogin($Za=false){return
password_file($Za);}function
bruteForceKey(){return$_SERVER["REMOTE_ADDR"];}function
serverName($O){}function
database(){if(connection()){$ib=adminer()->databases(false);return(!$ib?get_val("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1)"):$ib[(information_schema($ib[0])?1:0)]);}}function
operators(){return
array("<=",">=");}function
schemas(){return
schemas();}function
databases($Zb=true){return
get_databases($Zb);}function
pluginsLinks(){}function
queryTimeout(){return
5;}function
afterConnect(){}function
headers(){}function
csp($cb){return$cb;}function
head($fb=null){return
true;}function
bodyClass(){echo" editor";}function
css(){$K=array();foreach(array("","-dark")as$Dd){$m="adminer$Dd.css";if(file_exists($m)){$Ub=file_get_contents($m);$K["$m?v=".crc32($Ub)]=($Dd?"dark":(preg_match('~prefers-color-scheme:\s*dark~',$Ub)?'':'light'));}}return$K;}function
loginForm(){echo"<table class='layout'>\n",adminer()->loginFormField('username','<tr><th>'.lang(25).'<td>',input_hidden("auth[driver]","server").'<input name="auth[username]" autofocus value="'.h($_GET["username"]).'" autocomplete="username" autocapitalize="off">'),adminer()->loginFormField('password','<tr><th>'.lang(26).'<td>','<input type="password" name="auth[password]" autocomplete="current-password">'),"</table>\n","<p><input type='submit' value='".lang(27)."'>\n",checkbox("auth[permanent]",1,$_COOKIE["adminer_permanent"],lang(28))."\n";}function
loginFormField($B,$wc,$X){return$wc.$X."\n";}function
login($ld,$G){return
true;}function
tableName($lf){return
h(isset($lf["Engine"])?($lf["Comment"]!=""?$lf["Comment"]:$lf["Name"]):"");}function
fieldName($k,$E=0){return
h(preg_replace('~\s+\[.*\]$~','',($k["comment"]!=""?$k["comment"]:$k["field"])));}function
selectLinks($lf,$P=""){$a=$lf["Name"];if($P!==null)echo'<p class="tabs"><a href="'.h(ME.'edit='.urlencode($a).$P).'">'.lang(29)."</a>\n";}function
foreignKeys($R){return
foreign_keys($R);}function
backwardKeys($R,$kf){$K=array();foreach(get_rows("SELECT TABLE_NAME, CONSTRAINT_NAME, COLUMN_NAME, REFERENCED_COLUMN_NAME
FROM information_schema.KEY_COLUMN_USAGE
WHERE TABLE_SCHEMA = ".q(adminer()->database())."
AND REFERENCED_TABLE_SCHEMA = ".q(adminer()->database())."
AND REFERENCED_TABLE_NAME = ".q($R)."
ORDER BY ORDINAL_POSITION",null,"")as$L)$K[$L["TABLE_NAME"]]["keys"][$L["CONSTRAINT_NAME"]][$L["COLUMN_NAME"]]=$L["REFERENCED_COLUMN_NAME"];foreach($K
as$w=>$W){$B=adminer()->tableName(table_status1($w,true));if($B!=""){$Ke=preg_quote($kf);$Qe="(:|\\s*-)?\\s+";$K[$w]["name"]=(preg_match("(^$Ke$Qe(.+)|^(.+?)$Qe$Ke\$)iu",$B,$_)?$_[2].$_[3]:$B);}else
unset($K[$w]);}return$K;}function
backwardKeysPrint($ua,$L){foreach($ua
as$R=>$ta){foreach($ta["keys"]as$Qa){$y=ME.'select='.urlencode($R);$r=0;foreach($Qa
as$c=>$W)$y
.=where_link($r++,$c,$L[$W]);echo"<a href='".h($y)."'>".h($ta["name"])."</a>";$y=ME.'edit='.urlencode($R);foreach($Qa
as$c=>$W)$y
.="&set".urlencode("[".bracket_escape($c)."]")."=".urlencode($L[$W]);echo"<a href='".h($y)."' title='".lang(29)."'>+</a> ";}}}function
selectQuery($I,$df,$Qb=false){return"<!--\n".str_replace("--","--><!-- ",$I)."\n(".format_time($df).")\n-->\n";}function
rowDescription($R){foreach(fields($R)as$k){if(preg_match("~varchar|character varying~",$k["type"]))return
idf_escape($k["field"]);}return"";}function
rowDescriptions($M,$dc){$K=$M;foreach($M[0]as$w=>$W){if(list($R,$s,$B)=$this->_foreignColumn($dc,$w)){$Ec=array();foreach($M
as$L)$Ec[$L[$w]]=q($L[$w]);$ob=$this->values[$R];if(!$ob)$ob=get_key_vals("SELECT $s, $B FROM ".table($R)." WHERE $s IN (".implode(", ",$Ec).")");foreach($M
as$A=>$L){if(isset($L[$w]))$K[$A][$w]=(string)$ob[$L[$w]];}}}return$K;}function
selectLink($W,$k){}function
selectVal($W,$y,$k,$Yd){$K="$W";$y=h($y);if(is_blob($k)&&!is_utf8($W)){$K=lang(30,strlen($Yd));if(preg_match("~^(GIF|\xFF\xD8\xFF|\x89PNG\x0D\x0A\x1A\x0A)~",$Yd))$K="<img src='$y' alt='$K'>";}if(like_bool($k)&&$K!="")$K=(preg_match('~^(1|t|true|y|yes|on)$~i',$W)?lang(31):lang(32));if($y)$K="<a href='$y'".(is_url($y)?target_blank():"").">$K</a>";if(preg_match('~date~',$k["type"]))$K="<div class='datetime'>$K</div>";return$K;}function
editVal($W,$k){if(preg_match('~date|timestamp~',$k["type"])&&$W!==null)return
preg_replace('~^(\d{2}(\d+))-(0?(\d+))-(0?(\d+))~',lang(33),$W);return$W;}function
config(){return
array();}function
selectColumnsPrint($N,$d){}function
selectSearchPrint($Z,$d,$v){$Z=(array)$_GET["where"];echo'<fieldset id="fieldset-search"><legend>'.lang(34)."</legend><div>\n";$Zc=array();foreach($Z
as$w=>$W)$Zc[$W["col"]]=$w;$r=0;$l=fields($_GET["select"]);foreach($d
as$B=>$nb){$k=$l[$B];if($k["type"]=="enum"||like_bool($k)){$w=$Zc[$B];$r--;echo"<div>".h($nb).":".input_hidden("where[$r][col]",$B);$W=idx($Z[$w],"val");echo(like_bool($k)?"<select name='where[$r][val]'>".optionlist(array(""=>"",lang(32),lang(31)),$W,true)."</select>":enum_input("checkbox"," name='where[$r][val][]'",$k,(array)$W,lang(35))),"</div>\n";unset($d[$B]);}elseif(is_array($D=$this->foreignKeyOptions($_GET["select"],$B))){if($l[$B]["null"])$D[0]='('.lang(35).')';$w=$Zc[$B];$r--;echo"<div>".h($nb).input_hidden("where[$r][col]",$B).input_hidden("where[$r][op]","=").": <select name='where[$r][val]'>".optionlist($D,idx($Z[$w],"val"),true)."</select></div>\n";unset($d[$B]);}}$r=0;foreach($Z
as$W){if(($W["col"]==""||$d[$W["col"]])&&"$W[col]$W[val]"!=""){echo"<div><select name='where[$r][col]'><option value=''>(".lang(36).")".optionlist($d,$W["col"],true)."</select>",html_select("where[$r][op]",array(-1=>"")+adminer()->operators(),$W["op"]),"<input type='search' name='where[$r][val]' value='".h($W["val"])."'>".script("mixin(qsl('input'), {onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});","")."</div>\n";$r++;}}echo"<div><select name='where[$r][col]'><option value=''>(".lang(36).")".optionlist($d,null,true)."</select>",script("qsl('select').onchange = selectAddRow;",""),html_select("where[$r][op]",array(-1=>"")+adminer()->operators()),"<input type='search' name='where[$r][val]'></div>",script("mixin(qsl('input'), {onchange: function () { this.parentNode.firstChild.onchange(); }, onsearch: selectSearchSearch});"),"</div></fieldset>\n";}function
selectOrderPrint($E,$d,$v){$Xd=array();foreach($v
as$w=>$u){$E=array();foreach($u["columns"]as$W)$E[]=$d[$W];if(count(array_filter($E,'strlen'))>1&&$w!="PRIMARY")$Xd[$w]=implode(", ",$E);}if($Xd)echo'<fieldset><legend>'.lang(37)."</legend><div>","<select name='index_order'>".optionlist(array(""=>"")+$Xd,(idx($_GET["order"],0)!=""?"":$_GET["index_order"]),true)."</select>","</div></fieldset>\n";if($_GET["order"])echo"<div style='display: none;'>".hidden_fields(array("order"=>array(1=>reset($_GET["order"])),"desc"=>($_GET["desc"]?array(1=>1):array()),))."</div>\n";}function
selectLimitPrint($x){echo"<fieldset><legend>".lang(38)."</legend><div>",html_select("limit",array("",50,100),$x),"</div></fieldset>\n";}function
selectLengthPrint($qf){}function
selectActionPrint($v){echo"<fieldset><legend>".lang(39)."</legend><div>","<input type='submit' value='".lang(40)."'>","</div></fieldset>\n";}function
selectCommandPrint(){return
true;}function
selectImportPrint(){return
true;}function
selectEmailPrint($_b,$d){}function
selectColumnsProcess($d,$v){return
array(array(),array());}function
selectSearchProcess($l,$v){$K=array();foreach((array)$_GET["where"]as$w=>$Z){$Na=$Z["col"];$Sd=$Z["op"];$W=$Z["val"];if(($w>=0&&$Na!="")||$W!=""){$Ta=array();foreach(($Na!=""?array($Na=>$l[$Na]):$l)as$B=>$k){if($Na!=""||is_numeric($W)||!preg_match(number_type(),$k["type"])){$B=idf_escape($B);if($Na!=""&&$k["type"]=="enum"){$Gc=array();foreach($W
as$Vf){if(preg_match('~val-~',$Vf))$Gc[]=q(substr($Vf,4));}$Ta[]=(in_array("null",$W)?"$B IS NULL OR ":"").($Gc?"$B IN (".implode(", ",$Gc).")":"0");}else{$rf=preg_match('~char|text|enum|set~',$k["type"]);$X=adminer()->processInput($k,(!$Sd&&$rf&&preg_match('~^[^%]+$~',$W)?"%$W%":$W));$Ta[]=driver()->convertSearch($B,$Z,$k).($X=="NULL"?" IS".($Sd==">="?" NOT":"")." $X":(in_array($Sd,adminer()->operators())||$Sd=="="?" $Sd $X":($rf?" LIKE $X":" IN (".($X[0]=="'"?str_replace(",","', '",$X):$X).")")));if($w<0&&$W=="0")$Ta[]="$B IS NULL";}}}$K[]=($Ta?"(".implode(" OR ",$Ta).")":"1 = 0");}}return$K;}function
selectOrderProcess($l,$v){$Ic=$_GET["index_order"];if($Ic!="")unset($_GET["order"][1]);if($_GET["order"])return
array(idf_escape(reset($_GET["order"])).($_GET["desc"]?" DESC":""));foreach(($Ic!=""?array($v[$Ic]):$v)as$u){if($Ic!=""||$u["type"]=="INDEX"){$rc=array_filter($u["descs"]);$nb=false;foreach($u["columns"]as$W){if(preg_match('~date|timestamp~',$l[$W]["type"])){$nb=true;break;}}$K=array();foreach($u["columns"]as$w=>$W)$K[]=idf_escape($W).(($rc?$u["descs"][$w]:$nb)?" DESC":"");return$K;}}return
array();}function
selectLimitProcess(){return(isset($_GET["limit"])?intval($_GET["limit"]):50);}function
selectLengthProcess(){return"100";}function
selectEmailProcess($Z,$dc){return
false;}function
selectQueryBuild($N,$Z,$q,$E,$x,$F){return"";}function
messageQuery($I,$sf,$Qb=false){return" <span class='time'>".@date("H:i:s")."</span><!--\n".str_replace("--","--><!-- ",$I)."\n".($sf?"($sf)\n":"")."-->";}function
editRowPrint($R,$l,$L,$Nf){}function
editFunctions($k){$K=array();if($k["null"]&&preg_match('~blob~',$k["type"]))$K["NULL"]=lang(35);$K[""]=($k["null"]||$k["auto_increment"]||like_bool($k)?"":"*");if(preg_match('~date|time~',$k["type"]))$K["now"]=lang(41);if(preg_match('~_(md5|sha1)$~i',$k["field"],$_))$K[]=strtolower($_[1]);return$K;}function
editInput($R,$k,$b,$X){if($k["type"]=="enum")return(isset($_GET["select"])?"<label><input type='radio'$b value='orig' checked><i>".lang(10)."</i></label> ":"").enum_input("radio",$b,$k,$X,lang(35));$D=$this->foreignKeyOptions($R,$k["field"],$X);if($D!==null)return(is_array($D)?"<select$b>".optionlist($D,$X,true)."</select>":"<input value='".h($X)."'$b class='hidden'>"."<input value='".h($D)."' class='jsonly'>"."<div></div>".script("qsl('input').oninput = partial(whisper, '".ME."script=complete&source=".urlencode($R)."&field=".urlencode($k["field"])."&value='); qsl('div').onclick = whisperClick;",""));if(like_bool($k))return'<input type="checkbox" value="1"'.(preg_match('~^(1|t|true|y|yes|on)$~i',$X)?' checked':'')."$b>";$yc="";if(preg_match('~time~',$k["type"]))$yc=lang(42);if(preg_match('~date|timestamp~',$k["type"]))$yc=lang(43).($yc?" [$yc]":"");if($yc)return"<input value='".h($X)."'$b> ($yc)";if(preg_match('~_(md5|sha1)$~i',$k["field"]))return"<input type='password' value='".h($X)."'$b>";return'';}function
editHint($R,$k,$X){return(preg_match('~\s+(\[.*\])$~',($k["comment"]!=""?$k["comment"]:$k["field"]),$_)?h(" $_[1]"):'');}function
processInput($k,$X,$p=""){if($p=="now")return"$p()";$K=$X;if(preg_match('~date|timestamp~',$k["type"])&&preg_match('(^'.str_replace('\$1','(?P<p1>\d*)',preg_replace('~(\\\\\\$([2-6]))~','(?P<p\2>\d{1,2})',preg_quote(lang(33)))).'(.*))',$X,$_))$K=($_["p1"]!=""?$_["p1"]:($_["p2"]!=""?($_["p2"]<70?20:19).$_["p2"]:gmdate("Y")))."-$_[p3]$_[p4]-$_[p5]$_[p6]".end($_);$K=q($K);if($X==""&&like_bool($k))$K="'0'";elseif($X==""&&($k["null"]||!preg_match('~char|text~',$k["type"])))$K="NULL";elseif(preg_match('~^(md5|sha1)$~',$p))$K="$p($K)";return
unconvert_field($k,$K);}function
dumpOutput(){return
array();}function
dumpFormat(){return
array('csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function
dumpDatabase($h){}function
dumpTable($R,$gf,$Vc=0){echo"\xef\xbb\xbf";}function
dumpData($R,$gf,$I){$J=connection()->query($I,1);if($J){while($L=$J->fetch_assoc()){if($gf=="table"){dump_csv(array_keys($L));$gf="INSERT";}dump_csv($L);}}}function
dumpFilename($Dc){return
friendly_url($Dc);}function
dumpHeaders($Dc,$Fd=false){$Mb="csv";header("Content-Type: text/csv; charset=utf-8");return$Mb;}function
dumpFooter(){}function
importServerPath(){}function
homepage(){return
true;}function
navigation($Cd){echo"<h1>".adminer()->name()." <span class='version'>".VERSION;$Jd=$_COOKIE["adminer_version"];echo" <a href='https://www.adminer.org/editor/#download'".target_blank()." id='version'>".(version_compare(VERSION,$Jd)<0?h($Jd):"")."</a>","</span></h1>\n";switch_lang();if($Cd=="auth"){$Xb=true;foreach((array)$_SESSION["pwds"]as$Y=>$Se){foreach($Se[""]as$U=>$G){if($G!==null){if($Xb){echo"<ul id='logins'>",script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});");$Xb=false;}echo"<li><a href='".h(auth_url($Y,"",$U))."'>".($U!=""?h($U):"<i>".lang(35)."</i>")."</a>\n";}}}}else{adminer()->databasesPrint($Cd);if($Cd!="db"&&$Cd!="ns"){$S=table_status('',true);if(!$S)echo"<p class='message'>".lang(11)."\n";else
adminer()->tablesPrint($S);}}}function
syntaxHighlighting($nf){}function
databasesPrint($Cd){}function
tablesPrint($nf){echo"<ul id='tables'>",script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($nf
as$L){echo'<li>';$B=adminer()->tableName($L);if($B!="")echo"<a href='".h(ME).'select='.urlencode($L["Name"])."'".bold($_GET["select"]==$L["Name"]||$_GET["edit"]==$L["Name"],"select")." title='".lang(44)."'>$B</a>\n";}echo"</ul>\n";}function
_foreignColumn($dc,$c){foreach((array)$dc[$c]as$cc){if(count($cc["source"])==1){$B=adminer()->rowDescription($cc["table"]);if($B!=""){$s=idf_escape($cc["target"][0]);return
array($cc["table"],$s,$B);}}}}private
function
foreignKeyOptions($R,$c,$X=null){if(list($of,$s,$B)=$this->_foreignColumn(column_foreign_keys($R),$c)){$K=&$this->values[$of];if($K===null){$S=table_status1($of);$K=($S["Rows"]>1000?"":array(""=>"")+get_key_vals("SELECT $s, $B FROM ".table($of)." ORDER BY 2"));}if(!$K&&$X!==null)return
get_val("SELECT $B FROM ".table($of)." WHERE $s = ".q($X));return$K;}}}class
Plugins{private
static$append=array('dumpFormat'=>true,'dumpOutput'=>true,'editRowPrint'=>true,'editFunctions'=>true,'config'=>true);var$plugins;var$error='';private$hooks=array();function
__construct($le){if($le===null){$le=array();$xa="adminer-plugins";if(is_dir($xa)){foreach(glob("$xa/*.php")as$m)$this->includeOnce($m);}$xc=" href='https://www.adminer.org/plugins/#use'".target_blank();if(file_exists("$xa.php")){$Hc=$this->includeOnce("$xa.php");if(is_array($Hc)){foreach($Hc
as$ke)$le[get_class($ke)]=$ke;}else$this->error
.=lang(45,"<b>$xa.php</b>",$xc)."<br>";}foreach(get_declared_classes()as$Ka){if(!$le[$Ka]&&(preg_match('~^Adminer\w~i',$Ka)||is_subclass_of($Ka,'Adminer\Plugin'))){$Be=new
\ReflectionClass($Ka);$Va=$Be->getConstructor();if($Va&&$Va->getNumberOfRequiredParameters())$this->error
.=lang(46,$xc,"<b>$Ka</b>","<b>$xa.php</b>")."<br>";else$le[$Ka]=new$Ka;}}}$this->plugins=$le;$da=new
Adminer;$le[]=$da;$Be=new
\ReflectionObject($da);foreach($Be->getMethods()as$Bd){foreach($le
as$ke){$B=$Bd->getName();if(method_exists($ke,$B))$this->hooks[$B][]=$ke;}}}function
includeOnce($m){return
include_once"./$m";}function
__call($B,array$de){$ja=array();foreach($de
as$w=>$W)$ja[]=&$de[$w];$K=null;foreach($this->hooks[$B]as$ke){$X=call_user_func_array(array($ke,$B),$ja);if($X!==null){if(!self::$append[$B])return$X;$K=$X+(array)$K;}}return$K;}}abstract
class
Plugin{protected$translations=array();function
description(){return$this->lang('');}function
screenshot(){return"";}protected
function
lang($t,$C=null){$ja=func_get_args();$ja[0]=idx($this->translations[LANG],$t)?:$t;return
call_user_func_array('Adminer\lang_format',$ja);}}Adminer::$instance=(function_exists('adminer_object')?adminer_object():(is_dir("adminer-plugins")||file_exists("adminer-plugins.php")?new
Plugins(null):new
Adminer));SqlDriver::$drivers=array("server"=>"MySQL / MariaDB")+SqlDriver::$drivers;if(!defined('Adminer\DRIVER')){define('Adminer\DRIVER',"server");if(extension_loaded("mysqli")&&$_GET["ext"]!="pdo"){class
Db
extends
\MySQLi{static$instance;var$extension="MySQLi",$flavor='';function
__construct(){parent::init();}function
attach($O,$U,$G){mysqli_report(MYSQLI_REPORT_OFF);list($_c,$me)=host_port($O);$cf=adminer()->connectSsl();if($cf)$this->ssl_set($cf['key'],$cf['cert'],$cf['ca'],'','');$K=@$this->real_connect(($O!=""?$_c:ini_get("mysqli.default_host")),($O.$U!=""?$U:ini_get("mysqli.default_user")),($O.$U.$G!=""?$G:ini_get("mysqli.default_pw")),null,(is_numeric($me)?intval($me):ini_get("mysqli.default_port")),(is_numeric($me)?null:$me),($cf?($cf['verify']!==false?2048:64):0));$this->options(MYSQLI_OPT_LOCAL_INFILE,0);return($K?'':$this->error);}function
set_charset($Fa){if(parent::set_charset($Fa))return
true;parent::set_charset('utf8');return$this->query("SET NAMES $Fa");}function
next_result(){return
self::more_results()&&parent::next_result();}function
quote($Q){return"'".$this->escape_string($Q)."'";}}}elseif(extension_loaded("mysql")&&!((ini_bool("sql.safe_mode")||ini_bool("mysql.allow_local_infile"))&&extension_loaded("pdo_mysql"))){class
Db
extends
SqlDb{private$link;function
attach($O,$U,$G){if(ini_bool("mysql.allow_local_infile"))return
lang(47,"'mysql.allow_local_infile'","MySQLi","PDO_MySQL");$this->link=@mysql_connect(($O!=""?$O:ini_get("mysql.default_host")),($O.$U!=""?$U:ini_get("mysql.default_user")),($O.$U.$G!=""?$G:ini_get("mysql.default_password")),true,131072);if(!$this->link)return
mysql_error();$this->server_info=mysql_get_server_info($this->link);return'';}function
set_charset($Fa){if(function_exists('mysql_set_charset')){if(mysql_set_charset($Fa,$this->link))return
true;mysql_set_charset('utf8',$this->link);}return$this->query("SET NAMES $Fa");}function
quote($Q){return"'".mysql_real_escape_string($Q,$this->link)."'";}function
select_db($hb){return
mysql_select_db($hb,$this->link);}function
query($I,$Gf=false){$J=@($Gf?mysql_unbuffered_query($I,$this->link):mysql_query($I,$this->link));$this->error="";if(!$J){$this->errno=mysql_errno($this->link);$this->error=mysql_error($this->link);return
false;}if($J===true){$this->affected_rows=mysql_affected_rows($this->link);$this->info=mysql_info($this->link);return
true;}return
new
Result($J);}}class
Result{var$num_rows;private$result;private$offset=0;function
__construct($J){$this->result=$J;$this->num_rows=mysql_num_rows($J);}function
fetch_assoc(){return
mysql_fetch_assoc($this->result);}function
fetch_row(){return
mysql_fetch_row($this->result);}function
fetch_field(){$K=mysql_fetch_field($this->result,$this->offset++);$K->orgtable=$K->table;$K->charsetnr=($K->blob?63:0);return$K;}function
__destruct(){mysql_free_result($this->result);}}}elseif(extension_loaded("pdo_mysql")){class
Db
extends
PdoDb{var$extension="PDO_MySQL";function
attach($O,$U,$G){$D=array(\PDO::MYSQL_ATTR_LOCAL_INFILE=>false);$cf=adminer()->connectSsl();if($cf){if($cf['key'])$D[\PDO::MYSQL_ATTR_SSL_KEY]=$cf['key'];if($cf['cert'])$D[\PDO::MYSQL_ATTR_SSL_CERT]=$cf['cert'];if($cf['ca'])$D[\PDO::MYSQL_ATTR_SSL_CA]=$cf['ca'];if(isset($cf['verify']))$D[\PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT]=$cf['verify'];}list($_c,$me)=host_port($O);return$this->dsn("mysql:charset=utf8;host=$_c".($me?(is_numeric($me)?";port=":";unix_socket=").$me:""),$U,$G,$D);}function
set_charset($Fa){return$this->query("SET NAMES $Fa");}function
select_db($hb){return$this->query("USE ".idf_escape($hb));}function
query($I,$Gf=false){$this->pdo->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,!$Gf);return
parent::query($I,$Gf);}}}class
Driver
extends
SqlDriver{static$extensions=array("MySQLi","MySQL","PDO_MySQL");static$jush="sql";var$unsigned=array("unsigned","zerofill","unsigned zerofill");var$operators=array("=","<",">","<=",">=","!=","LIKE","LIKE %%","REGEXP","IN","FIND_IN_SET","IS NULL","NOT LIKE","NOT REGEXP","NOT IN","IS NOT NULL","SQL");var$functions=array("char_length","date","from_unixtime","lower","round","floor","ceil","sec_to_time","time_to_sec","upper");var$grouping=array("avg","count","count distinct","group_concat","max","min","sum");static
function
connect($O,$U,$G){$f=parent::connect($O,$U,$G);if(is_string($f)){if(function_exists('iconv')&&!is_utf8($f)&&strlen($Ie=iconv("windows-1250","utf-8",$f))>strlen($f))$f=$Ie;return$f;}$f->set_charset(charset($f));$f->query("SET sql_quote_show_create = 1, autocommit = 1");$f->flavor=(preg_match('~MariaDB~',$f->server_info)?'maria':'mysql');add_driver(DRIVER,($f->flavor=='maria'?"MariaDB":"MySQL"));return$f;}function
__construct(Db$f){parent::__construct($f);$this->types=array(lang(48)=>array("tinyint"=>3,"smallint"=>5,"mediumint"=>8,"int"=>10,"bigint"=>20,"decimal"=>66,"float"=>12,"double"=>21),lang(49)=>array("date"=>10,"datetime"=>19,"timestamp"=>19,"time"=>10,"year"=>4),lang(50)=>array("char"=>255,"varchar"=>65535,"tinytext"=>255,"text"=>65535,"mediumtext"=>16777215,"longtext"=>4294967295),lang(51)=>array("enum"=>65535,"set"=>64),lang(52)=>array("bit"=>20,"binary"=>255,"varbinary"=>65535,"tinyblob"=>255,"blob"=>65535,"mediumblob"=>16777215,"longblob"=>4294967295),lang(53)=>array("geometry"=>0,"point"=>0,"linestring"=>0,"polygon"=>0,"multipoint"=>0,"multilinestring"=>0,"multipolygon"=>0,"geometrycollection"=>0),);$this->insertFunctions=array("char"=>"md5/sha1/password/encrypt/uuid","binary"=>"md5/sha1","date|time"=>"now",);$this->editFunctions=array(number_type()=>"+/-","date"=>"+ interval/- interval","time"=>"addtime/subtime","char|text"=>"concat",);if(min_version('5.7.8',10.2,$f))$this->types[lang(50)]["json"]=4294967295;if(min_version('',10.7,$f)){$this->types[lang(50)]["uuid"]=128;$this->insertFunctions['uuid']='uuid';}if(min_version(9,'',$f)){$this->types[lang(48)]["vector"]=16383;$this->insertFunctions['vector']='string_to_vector';}if(min_version(5.1,'',$f))$this->partitionBy=array("HASH","LINEAR HASH","KEY","LINEAR KEY","RANGE","LIST");if(min_version(5.7,10.2,$f))$this->generated=array("STORED","VIRTUAL");}function
unconvertFunction(array$k){return(preg_match("~binary~",$k["type"])?"<code class='jush-sql'>UNHEX</code>":($k["type"]=="bit"?doc_link(array('sql'=>'bit-value-literals.html'),"<code>b''</code>"):(preg_match("~geometry|point|linestring|polygon~",$k["type"])?"<code class='jush-sql'>GeomFromText</code>":"")));}function
insert($R,array$P){return($P?parent::insert($R,$P):queries("INSERT INTO ".table($R)." ()\nVALUES ()"));}function
insertUpdate($R,array$M,array$re){$d=array_keys(reset($M));$qe="INSERT INTO ".table($R)." (".implode(", ",$d).") VALUES\n";$Wf=array();foreach($d
as$w)$Wf[$w]="$w = VALUES($w)";$if="\nON DUPLICATE KEY UPDATE ".implode(", ",$Wf);$Wf=array();$id=0;foreach($M
as$P){$X="(".implode(", ",$P).")";if($Wf&&(strlen($qe)+$id+strlen($X)+strlen($if)>1e6)){if(!queries($qe.implode(",\n",$Wf).$if))return
false;$Wf=array();$id=0;}$Wf[]=$X;$id+=strlen($X)+2;}return
queries($qe.implode(",\n",$Wf).$if);}function
slowQuery($I,$tf){if(min_version('5.7.8','10.1.2')){if($this->conn->flavor=='maria')return"SET STATEMENT max_statement_time=$tf FOR $I";elseif(preg_match('~^(SELECT\b)(.+)~is',$I,$_))return"$_[1] /*+ MAX_EXECUTION_TIME(".($tf*1000).") */ $_[2]";}}function
convertSearch($t,array$W,array$k){return(preg_match('~char|text|enum|set~',$k["type"])&&!preg_match("~^utf8~",$k["collation"])&&preg_match('~[\x80-\xFF]~',$W['val'])?"CONVERT($t USING ".charset($this->conn).")":$t);}function
warnings(){$J=$this->conn->query("SHOW WARNINGS");if($J&&$J->num_rows){ob_start();print_select_result($J);return
ob_get_clean();}}function
tableHelp($B,$Vc=false){$nd=($this->conn->flavor=='maria');if(information_schema(DB))return
strtolower("information-schema-".($nd?"$B-table/":str_replace("_","-",$B)."-table.html"));if(DB=="mysql")return($nd?"mysql$B-table/":"system-schema.html");}function
partitionsInfo($R){$hc="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($R);$J=$this->conn->query("SELECT PARTITION_METHOD, PARTITION_EXPRESSION, PARTITION_ORDINAL_POSITION $hc ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");$K=array();list($K["partition_by"],$K["partition"],$K["partitions"])=$J->fetch_row();$ge=get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $hc AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");$K["partition_names"]=array_keys($ge);$K["partition_values"]=array_values($ge);return$K;}function
hasCStyleEscapes(){static$Da;if($Da===null){$bf=get_val("SHOW VARIABLES LIKE 'sql_mode'",1,$this->conn);$Da=(strpos($bf,'NO_BACKSLASH_ESCAPES')===false);}return$Da;}function
engines(){$K=array();foreach(get_rows("SHOW ENGINES")as$L){if(preg_match("~YES|DEFAULT~",$L["Support"]))$K[]=$L["Engine"];}return$K;}function
indexAlgorithms(array$lf){return(preg_match('~^(MEMORY|NDB)$~',$lf["Engine"])?array("HASH","BTREE"):array());}}function
idf_escape($t){return"`".str_replace("`","``",$t)."`";}function
table($t){return
idf_escape($t);}function
get_databases($Zb){$K=get_session("dbs");if($K===null){$I="SELECT SCHEMA_NAME FROM information_schema.SCHEMATA ORDER BY SCHEMA_NAME";$K=($Zb?slow_query($I):get_vals($I));restart_session();set_session("dbs",$K);stop_session();}return$K;}function
limit($I,$Z,$x,$Nd=0,$Qe=" "){return" $I$Z".($x?$Qe."LIMIT $x".($Nd?" OFFSET $Nd":""):"");}function
limit1($R,$I,$Z,$Qe="\n"){return
limit($I,$Z,1,0,$Qe);}function
db_collation($h,array$Pa){$K=null;$Za=get_val("SHOW CREATE DATABASE ".idf_escape($h),1);if(preg_match('~ COLLATE ([^ ]+)~',$Za,$_))$K=$_[1];elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$Za,$_))$K=$Pa[$_[1]][-1];return$K;}function
logged_user(){return
get_val("SELECT USER()");}function
tables_list(){return
get_key_vals("SELECT TABLE_NAME, TABLE_TYPE FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ORDER BY TABLE_NAME");}function
count_tables(array$ib){$K=array();foreach($ib
as$h)$K[$h]=count(get_vals("SHOW TABLES IN ".idf_escape($h)));return$K;}function
table_status($B="",$Rb=false){$K=array();foreach(get_rows($Rb?"SELECT TABLE_NAME AS Name, ENGINE AS Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ".($B!=""?"AND TABLE_NAME = ".q($B):"ORDER BY Name"):"SHOW TABLE STATUS".($B!=""?" LIKE ".q(addcslashes($B,"%_\\")):""))as$L){if($L["Engine"]=="InnoDB")$L["Comment"]=preg_replace('~(?:(.+); )?InnoDB free: .*~','\1',$L["Comment"]);if(!isset($L["Engine"]))$L["Comment"]="";if($B!="")$L["Name"]=$B;$K[$L["Name"]]=$L;}return$K;}function
is_view(array$S){return$S["Engine"]===null;}function
fk_support(array$S){return
preg_match('~InnoDB|IBMDB2I'.(min_version(5.6)?'|NDB':'').'~i',$S["Engine"]);}function
fields($R){$nd=(connection()->flavor=='maria');$K=array();foreach(get_rows("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ".q($R)." ORDER BY ORDINAL_POSITION")as$L){$k=$L["COLUMN_NAME"];$T=$L["COLUMN_TYPE"];$lc=$L["GENERATION_EXPRESSION"];$Pb=$L["EXTRA"];preg_match('~^(VIRTUAL|PERSISTENT|STORED)~',$Pb,$kc);preg_match('~^([^( ]+)(?:\((.+)\))?( unsigned)?( zerofill)?$~',$T,$pd);$i=$L["COLUMN_DEFAULT"];if($i!=""){$Uc=preg_match('~text|json~',$pd[1]);if(!$nd&&$Uc)$i=preg_replace("~^(_\w+)?('.*')$~",'\2',stripslashes($i));if($nd||$Uc){$i=($i=="NULL"?null:preg_replace_callback("~^'(.*)'$~",function($_){return
stripslashes(str_replace("''","'",$_[1]));},$i));}if(!$nd&&preg_match('~binary~',$pd[1])&&preg_match('~^0x(\w*)$~',$i,$_))$i=pack("H*",$_[1]);}$K[$k]=array("field"=>$k,"full_type"=>$T,"type"=>$pd[1],"length"=>$pd[2],"unsigned"=>ltrim($pd[3].$pd[4]),"default"=>($kc?($nd?$lc:stripslashes($lc)):$i),"null"=>($L["IS_NULLABLE"]=="YES"),"auto_increment"=>($Pb=="auto_increment"),"on_update"=>(preg_match('~\bon update (\w+)~i',$Pb,$_)?$_[1]:""),"collation"=>$L["COLLATION_NAME"],"privileges"=>array_flip(explode(",","$L[PRIVILEGES],where,order")),"comment"=>$L["COLUMN_COMMENT"],"primary"=>($L["COLUMN_KEY"]=="PRI"),"generated"=>($kc[1]=="PERSISTENT"?"STORED":$kc[1]),);}return$K;}function
indexes($R,$g=null){$K=array();foreach(get_rows("SHOW INDEX FROM ".table($R),$g)as$L){$B=$L["Key_name"];$K[$B]["type"]=($B=="PRIMARY"?"PRIMARY":($L["Index_type"]=="FULLTEXT"?"FULLTEXT":($L["Non_unique"]?($L["Index_type"]=="SPATIAL"?"SPATIAL":"INDEX"):"UNIQUE")));$K[$B]["columns"][]=$L["Column_name"];$K[$B]["lengths"][]=($L["Index_type"]=="SPATIAL"?null:$L["Sub_part"]);$K[$B]["descs"][]=null;$K[$B]["algorithm"]=$L["Index_type"];}return$K;}function
foreign_keys($R){static$ie='(?:`(?:[^`]|``)+`|"(?:[^"]|"")+")';$K=array();$ab=get_val("SHOW CREATE TABLE ".table($R),1);if($ab){preg_match_all("~CONSTRAINT ($ie) FOREIGN KEY ?\\(((?:$ie,? ?)+)\\) REFERENCES ($ie)(?:\\.($ie))? \\(((?:$ie,? ?)+)\\)(?: ON DELETE (".driver()->onActions."))?(?: ON UPDATE (".driver()->onActions."))?~",$ab,$qd,PREG_SET_ORDER);foreach($qd
as$_){preg_match_all("~$ie~",$_[2],$Ze);preg_match_all("~$ie~",$_[5],$of);$K[idf_unescape($_[1])]=array("db"=>idf_unescape($_[4]!=""?$_[3]:$_[4]),"table"=>idf_unescape($_[4]!=""?$_[4]:$_[3]),"source"=>array_map('Adminer\idf_unescape',$Ze[0]),"target"=>array_map('Adminer\idf_unescape',$of[0]),"on_delete"=>($_[6]?:"RESTRICT"),"on_update"=>($_[7]?:"RESTRICT"),);}}return$K;}function
view($B){return
array("select"=>preg_replace('~^(?:[^`]|`[^`]*`)*\s+AS\s+~isU','',get_val("SHOW CREATE VIEW ".table($B),1)));}function
collations(){$K=array();foreach(get_rows("SHOW COLLATION")as$L){if($L["Default"])$K[$L["Charset"]][-1]=$L["Collation"];else$K[$L["Charset"]][]=$L["Collation"];}ksort($K);foreach($K
as$w=>$W)sort($K[$w]);return$K;}function
information_schema($h){return($h=="information_schema")||(min_version(5.5)&&$h=="performance_schema");}function
error(){return
h(preg_replace('~^You have an error.*syntax to use~U',"Syntax error",connection()->error));}function
create_database($h,$Oa){return
queries("CREATE DATABASE ".idf_escape($h).($Oa?" COLLATE ".q($Oa):""));}function
drop_databases(array$ib){$K=apply_queries("DROP DATABASE",$ib,'Adminer\idf_escape');restart_session();set_session("dbs",null);return$K;}function
rename_database($B,$Oa){$K=false;if(create_database($B,$Oa)){$nf=array();$Zf=array();foreach(tables_list()as$R=>$T){if($T=='VIEW')$Zf[]=$R;else$nf[]=$R;}$K=(!$nf&&!$Zf)||move_tables($nf,$Zf,$B);drop_databases($K?array(DB):array());}return$K;}function
auto_increment(){$qa=" PRIMARY KEY";if($_GET["create"]!=""&&$_POST["auto_increment_col"]){foreach(indexes($_GET["create"])as$u){if(in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"],$u["columns"],true)){$qa="";break;}if($u["type"]=="PRIMARY")$qa=" UNIQUE";}}return" AUTO_INCREMENT$qa";}function
alter_table($R,$B,array$l,array$bc,$Sa,$Cb,$Oa,$pa,$fe){$ha=array();foreach($l
as$k){if($k[1]){$i=$k[1][3];if(preg_match('~ GENERATED~',$i)){$k[1][3]=(connection()->flavor=='maria'?"":$k[1][2]);$k[1][2]=$i;}$ha[]=($R!=""?($k[0]!=""?"CHANGE ".idf_escape($k[0]):"ADD"):" ")." ".implode($k[1]).($R!=""?$k[2]:"");}else$ha[]="DROP ".idf_escape($k[0]);}$ha=array_merge($ha,$bc);$ef=($Sa!==null?" COMMENT=".q($Sa):"").($Cb?" ENGINE=".q($Cb):"").($Oa?" COLLATE ".q($Oa):"").($pa!=""?" AUTO_INCREMENT=$pa":"");if($fe){$ge=array();if($fe["partition_by"]=='RANGE'||$fe["partition_by"]=='LIST'){foreach($fe["partition_names"]as$w=>$W){$X=$fe["partition_values"][$w];$ge[]="\n  PARTITION ".idf_escape($W)." VALUES ".($fe["partition_by"]=='RANGE'?"LESS THAN":"IN").($X!=""?" ($X)":" MAXVALUE");}}$ef
.="\nPARTITION BY $fe[partition_by]($fe[partition])";if($ge)$ef
.=" (".implode(",",$ge)."\n)";elseif($fe["partitions"])$ef
.=" PARTITIONS ".(+$fe["partitions"]);}elseif($fe===null)$ef
.="\nREMOVE PARTITIONING";if($R=="")return
queries("CREATE TABLE ".table($B)." (\n".implode(",\n",$ha)."\n)$ef");if($R!=$B)$ha[]="RENAME TO ".table($B);if($ef)$ha[]=ltrim($ef);return($ha?queries("ALTER TABLE ".table($R)."\n".implode(",\n",$ha)):true);}function
alter_indexes($R,$ha){$Ea=array();foreach($ha
as$W)$Ea[]=($W[2]=="DROP"?"\nDROP INDEX ".idf_escape($W[1]):"\nADD $W[0] ".($W[0]=="PRIMARY"?"KEY ":"").($W[1]!=""?idf_escape($W[1])." ":"")."(".implode(", ",$W[2]).")");return
queries("ALTER TABLE ".table($R).implode(",",$Ea));}function
truncate_tables(array$nf){return
apply_queries("TRUNCATE TABLE",$nf);}function
drop_views(array$Zf){return
queries("DROP VIEW ".implode(", ",array_map('Adminer\table',$Zf)));}function
drop_tables(array$nf){return
queries("DROP TABLE ".implode(", ",array_map('Adminer\table',$nf)));}function
move_tables(array$nf,array$Zf,$of){$De=array();foreach($nf
as$R)$De[]=table($R)." TO ".idf_escape($of).".".table($R);if(!$De||queries("RENAME TABLE ".implode(", ",$De))){$lb=array();foreach($Zf
as$R)$lb[table($R)]=view($R);connection()->select_db($of);$h=idf_escape(DB);foreach($lb
as$B=>$Yf){if(!queries("CREATE VIEW $B AS ".str_replace(" $h."," ",$Yf["select"]))||!queries("DROP VIEW $h.$B"))return
false;}return
true;}return
false;}function
copy_tables(array$nf,array$Zf,$of){queries("SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'");foreach($nf
as$R){$B=($of==DB?table("copy_$R"):idf_escape($of).".".table($R));if(($_POST["overwrite"]&&!queries("\nDROP TABLE IF EXISTS $B"))||!queries("CREATE TABLE $B LIKE ".table($R))||!queries("INSERT INTO $B SELECT * FROM ".table($R)))return
false;foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($R,"%_\\")))as$L){$Df=$L["Trigger"];if(!queries("CREATE TRIGGER ".($of==DB?idf_escape("copy_$Df"):idf_escape($of).".".idf_escape($Df))." $L[Timing] $L[Event] ON $B FOR EACH ROW\n$L[Statement];"))return
false;}}foreach($Zf
as$R){$B=($of==DB?table("copy_$R"):idf_escape($of).".".table($R));$Yf=view($R);if(($_POST["overwrite"]&&!queries("DROP VIEW IF EXISTS $B"))||!queries("CREATE VIEW $B AS $Yf[select]"))return
false;}return
true;}function
trigger($B,$R){if($B=="")return
array();$M=get_rows("SHOW TRIGGERS WHERE `Trigger` = ".q($B));return
reset($M);}function
triggers($R){$K=array();foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($R,"%_\\")))as$L)$K[$L["Trigger"]]=array($L["Timing"],$L["Event"]);return$K;}function
trigger_options(){return
array("Timing"=>array("BEFORE","AFTER"),"Event"=>array("INSERT","UPDATE","DELETE"),"Type"=>array("FOR EACH ROW"),);}function
routine($B,$T){$l=get_rows("SELECT
	PARAMETER_NAME field,
	DATA_TYPE type,
	CHARACTER_MAXIMUM_LENGTH length,
	REGEXP_REPLACE(DTD_IDENTIFIER, '^[^ ]+ ', '') `unsigned`,
	1 `null`,
	DTD_IDENTIFIER full_type,
	PARAMETER_MODE `inout`,
	CHARACTER_SET_NAME collation
FROM information_schema.PARAMETERS
WHERE SPECIFIC_SCHEMA = DATABASE() AND ROUTINE_TYPE = '$T' AND SPECIFIC_NAME = ".q($B)."
ORDER BY ORDINAL_POSITION");$K=connection()->query("SELECT ROUTINE_COMMENT comment, ROUTINE_DEFINITION definition, 'SQL' language
FROM information_schema.ROUTINES
WHERE ROUTINE_SCHEMA = DATABASE() AND ROUTINE_TYPE = '$T' AND ROUTINE_NAME = ".q($B))->fetch_assoc();if($l&&$l[0]['field']=='')$K['returns']=array_shift($l);$K['fields']=$l;return$K;}function
routines(){return
get_rows("SELECT SPECIFIC_NAME, ROUTINE_NAME, ROUTINE_TYPE, DTD_IDENTIFIER FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = DATABASE()");}function
routine_languages(){return
array();}function
routine_id($B,array$L){return
idf_escape($B);}function
last_id($J){return
get_val("SELECT LAST_INSERT_ID()");}function
explain(Db$f,$I){return$f->query("EXPLAIN ".(min_version(5.1)&&!min_version(5.7)?"PARTITIONS ":"").$I);}function
found_rows(array$S,array$Z){return($Z||$S["Engine"]!="InnoDB"?null:$S["Rows"]);}function
create_sql($R,$pa,$gf){$K=get_val("SHOW CREATE TABLE ".table($R),1);if(!$pa)$K=preg_replace('~ AUTO_INCREMENT=\d+~','',$K);return$K;}function
truncate_sql($R){return"TRUNCATE ".table($R);}function
use_sql($hb,$gf=""){$B=idf_escape($hb);$K="";if(preg_match('~CREATE~',$gf)&&($Za=get_val("SHOW CREATE DATABASE $B",1))){set_utf8mb4($Za);if($gf=="DROP+CREATE")$K="DROP DATABASE IF EXISTS $B;\n";$K
.="$Za;\n";}return$K."USE $B";}function
trigger_sql($R){$K="";foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($R,"%_\\")),null,"-- ")as$L)$K
.="\nCREATE TRIGGER ".idf_escape($L["Trigger"])." $L[Timing] $L[Event] ON ".table($L["Table"])." FOR EACH ROW\n$L[Statement];;\n";return$K;}function
show_variables(){return
get_rows("SHOW VARIABLES");}function
show_status(){return
get_rows("SHOW STATUS");}function
process_list(){return
get_rows("SHOW FULL PROCESSLIST");}function
convert_field(array$k){if(preg_match("~binary~",$k["type"]))return"HEX(".idf_escape($k["field"]).")";if($k["type"]=="bit")return"BIN(".idf_escape($k["field"])." + 0)";if(preg_match("~geometry|point|linestring|polygon~",$k["type"]))return(min_version(8)?"ST_":"")."AsWKT(".idf_escape($k["field"]).")";}function
unconvert_field(array$k,$K){if(preg_match("~binary~",$k["type"]))$K="UNHEX($K)";if($k["type"]=="bit")$K="CONVERT(b$K, UNSIGNED)";if(preg_match("~geometry|point|linestring|polygon~",$k["type"])){$qe=(min_version(8)?"ST_":"");$K=$qe."GeomFromText($K, $qe"."SRID($k[field]))";}return$K;}function
support($Sb){return
preg_match('~^(comment|columns|copy|database|drop_col|dump|indexes|kill|privileges|move_col|procedure|processlist|routine|sql|status|table|trigger|variables|view'.(min_version(5.1)?'|event':'').(min_version(8)?'|descidx':'').(min_version('8.0.16','10.2.1')?'|check':'').')$~',$Sb);}function
kill_process($s){return
queries("KILL ".number($s));}function
connection_id(){return"SELECT CONNECTION_ID()";}function
max_connections(){return
get_val("SELECT @@max_connections");}function
types(){return
array();}function
type_values($s){return"";}function
schemas(){return
array();}function
get_schema(){return"";}function
set_schema($Je,$g=null){return
true;}}define('Adminer\JUSH',Driver::$jush);define('Adminer\SERVER',"".$_GET[DRIVER]);define('Adminer\DB',"$_GET[db]");define('Adminer\ME',preg_replace('~\?.*~','',relative_uri()).'?'.(sid()?SID.'&':'').(SERVER!==null?DRIVER."=".urlencode(SERVER).'&':'').($_GET["ext"]?"ext=".urlencode($_GET["ext"]).'&':'').(isset($_GET["username"])?"username=".urlencode($_GET["username"]).'&':'').(DB!=""?'db='.urlencode(DB).'&'.(isset($_GET["ns"])?"ns=".urlencode($_GET["ns"])."&":""):''));function
page_header($uf,$j="",$Ca=array(),$vf=""){page_headers();if(is_ajax()&&$j){page_messages($j);exit;}if(!ob_get_level())ob_start('ob_gzhandler',4096);$wf=$uf.($vf!=""?": $vf":"");$xf=strip_tags($wf.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".adminer()->name());echo'<!DOCTYPE html>
<html lang="',LANG,'" dir="',lang(54),'">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="robots" content="noindex">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>',$xf,'</title>
<link rel="stylesheet" href="',h(preg_replace("~\\?.*~","",ME)."?file=default.css&version=5.4.2"),'">
';$db=adminer()->css();if(is_int(key($db)))$db=array_fill_keys($db,'light');$tc=in_array('light',$db)||in_array('',$db);$qc=in_array('dark',$db)||in_array('',$db);$fb=($tc?($qc?null:false):($qc?:null));$yd=" media='(prefers-color-scheme: dark)'";if($fb!==false)echo"<link rel='stylesheet'".($fb?"":$yd)." href='".h(preg_replace("~\\?.*~","",ME)."?file=dark.css&version=5.4.2")."'>\n";echo"<meta name='color-scheme' content='".($fb===null?"light dark":($fb?"dark":"light"))."'>\n",script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=5.4.2");if(adminer()->head($fb))echo"<link rel='icon' href='data:image/gif;base64,R0lGODlhEAAQAJEAAAQCBPz+/PwCBAROZCH5BAEAAAAALAAAAAAQABAAAAI2hI+pGO1rmghihiUdvUBnZ3XBQA7f05mOak1RWXrNq5nQWHMKvuoJ37BhVEEfYxQzHjWQ5qIAADs='>\n","<link rel='apple-touch-icon' href='".h(preg_replace("~\\?.*~","",ME)."?file=logo.png&version=5.4.2")."'>\n";foreach($db
as$Rf=>$Dd){$b=($Dd=='dark'&&!$fb?$yd:($Dd=='light'&&$qc?" media='(prefers-color-scheme: light)'":""));echo"<link rel='stylesheet'$b href='".h($Rf)."'>\n";}echo"\n<body class='".lang(54)." nojs";adminer()->bodyClass();echo"'>\n";$m=get_temp_dir()."/adminer.version";echo
script("mixin(document.body, {onkeydown: bodyKeydown, onclick: bodyClick".(isset($_COOKIE["adminer_version"])?"":", onload: partial(verifyVersion, '".VERSION."')")."});
document.body.classList.replace('nojs', 'js');
const offlineMessage = '".js_escape(lang(55))."';
const thousandsSeparator = '".js_escape(lang(4))."';"),"<div id='help' class='jush-".JUSH." jsonly hidden'></div>\n",script("mixin(qs('#help'), {onmouseover: () => { helpOpen = 1; }, onmouseout: helpMouseout});"),"<div id='content'>\n","<span id='menuopen' class='jsonly'>".icon("move","","menu","")."</span>".script("qs('#menuopen').onclick = event => { qs('#foot').classList.toggle('foot'); event.stopPropagation(); }");if($Ca!==null){$y=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'<p id="breadcrumb"><a href="'.h($y?:".").'">'.get_driver(DRIVER).'</a> » ';$y=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$O=adminer()->serverName(SERVER);$O=($O!=""?$O:lang(56));if($Ca===false)echo"$O\n";else{echo"<a href='".h($y)."' accesskey='1' title='Alt+Shift+1'>$O</a> » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Ca)))echo'<a href="'.h($y."&db=".urlencode(DB).(support("scheme")?"&ns=":"")).'">'.h(DB).'</a> » ';if(is_array($Ca)){if($_GET["ns"]!="")echo'<a href="'.h(substr(ME,0,-1)).'">'.h($_GET["ns"]).'</a> » ';foreach($Ca
as$w=>$W){$nb=(is_array($W)?$W[1]:h($W));if($nb!="")echo"<a href='".h(ME."$w=").urlencode(is_array($W)?$W[0]:$W)."'>$nb</a> » ";}}echo"$uf\n";}}echo"<h2>$wf</h2>\n","<div id='ajaxstatus' class='jsonly hidden'></div>\n";restart_session();page_messages($j);$ib=&get_session("dbs");if(DB!=""&&$ib&&!in_array(DB,$ib,true))$ib=null;stop_session();define('Adminer\PAGE_HEADER',1);}function
page_headers(){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(adminer()->csp(csp())as$cb){$uc=array();foreach($cb
as$w=>$W)$uc[]="$w $W";header("Content-Security-Policy: ".implode("; ",$uc));}adminer()->headers();}function
csp(){return
array(array("script-src"=>"'self' 'unsafe-inline' 'nonce-".get_nonce()."' 'strict-dynamic'","connect-src"=>"'self' https://www.adminer.org","frame-src"=>"'none'","object-src"=>"'none'","base-uri"=>"'none'","form-action"=>"'self'",),);}function
get_nonce(){static$Ld;if(!$Ld)$Ld=base64_encode(rand_string());return$Ld;}function
page_messages($j){$Qf=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Ad=idx($_SESSION["messages"],$Qf);if($Ad){echo"<div class='message'>".implode("</div>\n<div class='message'>",$Ad)."</div>".script("messagesPrint();");unset($_SESSION["messages"][$Qf]);}if($j)echo"<div class='error'>$j</div>\n";if(adminer()->error)echo"<div class='error'>".adminer()->error."</div>\n";}function
page_footer($Cd=""){echo"</div>\n\n<div id='foot' class='foot'>\n<div id='menu'>\n";adminer()->navigation($Cd);echo"</div>\n";if($Cd!="auth")echo'<form action="" method="post">
<p class="logout">
<span>',h($_GET["username"])."\n",'</span>
<input type="submit" name="logout" value="',lang(57),'" id="logout">
',input_token(),'</form>
';echo"</div>\n\n",script("setupSubmitHighlight(document);");}function
int32($A){while($A>=2147483648)$A-=4294967296;while($A<=-2147483649)$A+=4294967296;return(int)$A;}function
long2str(array$V,$bg){$Ie='';foreach($V
as$W)$Ie
.=pack('V',$W);if($bg)return
substr($Ie,0,end($V));return$Ie;}function
str2long($Ie,$bg){$V=array_values(unpack('V*',str_pad($Ie,4*ceil(strlen($Ie)/4),"\0")));if($bg)$V[]=strlen($Ie);return$V;}function
xxtea_mx($gg,$fg,$jf,$Yc){return
int32((($gg>>5&0x7FFFFFF)^$fg<<2)+(($fg>>3&0x1FFFFFFF)^$gg<<4))^int32(($jf^$fg)+($Yc^$gg));}function
encrypt_string($ff,$w){if($ff=="")return"";$w=array_values(unpack("V*",pack("H*",md5($w))));$V=str2long($ff,true);$A=count($V)-1;$gg=$V[$A];$fg=$V[0];$ve=floor(6+52/($A+1));$jf=0;while($ve-->0){$jf=int32($jf+0x9E3779B9);$vb=$jf>>2&3;for($ae=0;$ae<$A;$ae++){$fg=$V[$ae+1];$Gd=xxtea_mx($gg,$fg,$jf,$w[$ae&3^$vb]);$gg=int32($V[$ae]+$Gd);$V[$ae]=$gg;}$fg=$V[0];$Gd=xxtea_mx($gg,$fg,$jf,$w[$ae&3^$vb]);$gg=int32($V[$A]+$Gd);$V[$A]=$gg;}return
long2str($V,false);}function
decrypt_string($ff,$w){if($ff=="")return"";if(!$w)return
false;$w=array_values(unpack("V*",pack("H*",md5($w))));$V=str2long($ff,false);$A=count($V)-1;$gg=$V[$A];$fg=$V[0];$ve=floor(6+52/($A+1));$jf=int32($ve*0x9E3779B9);while($jf){$vb=$jf>>2&3;for($ae=$A;$ae>0;$ae--){$gg=$V[$ae-1];$Gd=xxtea_mx($gg,$fg,$jf,$w[$ae&3^$vb]);$fg=int32($V[$ae]-$Gd);$V[$ae]=$fg;}$gg=$V[$A];$Gd=xxtea_mx($gg,$fg,$jf,$w[$ae&3^$vb]);$fg=int32($V[0]-$Gd);$V[0]=$fg;$jf=int32($jf-0x9E3779B9);}return
long2str($V,true);}$H=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$W){list($w)=explode(":",$W);$H[$w]=$W;}}function
add_invalid_login(){$wa=get_temp_dir()."/adminer.invalid";foreach(glob("$wa*")?:array($wa)as$m){$o=file_open_lock($m);if($o)break;}if(!$o)$o=file_open_lock("$wa-".rand_string());if(!$o)return;$Qc=unserialize(stream_get_contents($o));$sf=time();if($Qc){foreach($Qc
as$Rc=>$W){if($W[0]<$sf)unset($Qc[$Rc]);}}$Pc=&$Qc[adminer()->bruteForceKey()];if(!$Pc)$Pc=array($sf+30*60,0);$Pc[1]++;file_write_unlock($o,serialize($Qc));}function
check_invalid_login(array&$H){$Qc=array();foreach(glob(get_temp_dir()."/adminer.invalid*")as$m){$o=file_open_lock($m);if($o){$Qc=unserialize(stream_get_contents($o));file_unlock($o);break;}}$Pc=idx($Qc,adminer()->bruteForceKey(),array());$Kd=($Pc[1]>29?$Pc[0]-time():0);if($Kd>0)auth_error(lang(58,ceil($Kd/60)),$H);}$oa=$_POST["auth"];if($oa){session_regenerate_id();$Y=$oa["driver"];$O=$oa["server"];$U=$oa["username"];$G=(string)$oa["password"];$h=$oa["db"];set_password($Y,$O,$U,$G);$_SESSION["db"][$Y][$O][$U][$h]=true;if($oa["permanent"]){$w=implode("-",array_map('base64_encode',array($Y,$O,$U,$h)));$te=adminer()->permanentLogin(true);$H[$w]="$w:".base64_encode($te?encrypt_string($G,$te):"");cookie("adminer_permanent",implode(" ",$H));}if(count($_POST)==1||DRIVER!=$Y||SERVER!=$O||$_GET["username"]!==$U||DB!=$h)redirect(auth_url($Y,$O,$U,$h));}elseif($_POST["logout"]&&(!$_SESSION["token"]||verify_token())){foreach(array("pwds","db","dbs","queries")as$w)set_session($w,null);unset_permanent($H);redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),lang(59).' '.lang(60));}elseif($H&&!$_SESSION["pwds"]){session_regenerate_id();$te=adminer()->permanentLogin();foreach($H
as$w=>$W){list(,$Ja)=explode(":",$W);list($Y,$O,$U,$h)=array_map('base64_decode',explode("-",$w));set_password($Y,$O,$U,decrypt_string(base64_decode($Ja),$te));$_SESSION["db"][$Y][$O][$U][$h]=true;}}function
unset_permanent(array&$H){foreach($H
as$w=>$W){list($Y,$O,$U,$h)=array_map('base64_decode',explode("-",$w));if($Y==DRIVER&&$O==SERVER&&$U==$_GET["username"]&&$h==DB)unset($H[$w]);}cookie("adminer_permanent",implode(" ",$H));}function
auth_error($j,array&$H){$Te=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$Te]||$_GET[$Te])&&!$_SESSION["token"])$j=lang(61);else{restart_session();add_invalid_login();$G=get_password();if($G!==null){if($G===false)$j
.=($j?'<br>':'').lang(62,target_blank(),'<code>permanentLogin()</code>');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent($H);}}if(!$_COOKIE[$Te]&&$_GET[$Te]&&ini_bool("session.use_only_cookies"))$j=lang(63);$de=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?:rand_string()),$de["lifetime"]);if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);page_header(lang(27),$j,null);echo"<form action='' method='post'>\n","<div>";if(hidden_fields($_POST,array("auth")))echo"<p class='message'>".lang(64)."\n";echo"</div>\n";adminer()->loginForm();echo"</form>\n";page_footer("auth");exit;}if(isset($_GET["username"])&&!class_exists('Adminer\Db')){unset($_SESSION["pwds"][DRIVER]);unset_permanent($H);page_header(lang(65),lang(66,implode(", ",Driver::$extensions)),false);page_footer("auth");exit;}$f='';if(isset($_GET["username"])&&is_string(get_password())){list(,$me)=host_port(SERVER);if(preg_match('~^\s*([-+]?\d+)~',$me,$_)&&($_[1]<1024||$_[1]>65535))auth_error(lang(67),$H);check_invalid_login($H);$bb=adminer()->credentials();$f=Driver::connect($bb[0],$bb[1],$bb[2]);if(is_object($f)){Db::$instance=$f;Driver::$instance=new
Driver($f);if($f->flavor)save_settings(array("vendor-".DRIVER."-".SERVER=>get_driver(DRIVER)));}}$ld=null;if(!is_object($f)||($ld=adminer()->login($_GET["username"],get_password()))!==true){$j=(is_string($f)?nl_br(h($f)):(is_string($ld)?$ld:lang(68))).(preg_match('~^ | $~',get_password())?'<br>'.lang(69):'');auth_error($j,$H);}if($_POST["logout"]&&$_SESSION["token"]&&!verify_token()){page_header(lang(57),lang(70));page_footer("db");exit;}if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);stop_session(true);if($oa&&$_POST["token"])$_POST["token"]=get_token();$j='';if($_POST){if(!verify_token()){$Kc="max_input_vars";$wd=ini_get($Kc);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$w){$W=ini_get($w);if($W&&(!$wd||$W<$wd)){$Kc=$w;$wd=$W;}}}$j=(!$_POST["token"]&&$wd?lang(71,"'$Kc'"):lang(70).' '.lang(72));}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$j=lang(73,"'post_max_size'");if(isset($_GET["sql"]))$j
.=' '.lang(74);}function
doc_link(array$he,$pf=""){return"";}function
email_header($uc){return"=?UTF-8?B?".base64_encode($uc)."?=";}function
send_mail($zb,$hf,$_d,$hc="",array$Vb=array()){$Fb=PHP_EOL;$_d=str_replace("\n",$Fb,wordwrap(str_replace("\r","","$_d\n")));$Ba=uniqid("boundary");$na="";foreach((array)$Vb["error"]as$w=>$W){if(!$W)$na
.="--$Ba$Fb"."Content-Type: ".str_replace("\n","",$Vb["type"][$w]).$Fb."Content-Disposition: attachment; filename=\"".preg_replace('~["\n]~','',$Vb["name"][$w])."\"$Fb"."Content-Transfer-Encoding: base64$Fb$Fb".chunk_split(base64_encode(file_get_contents($Vb["tmp_name"][$w])),76,$Fb).$Fb;}$ya="";$vc="Content-Type: text/plain; charset=utf-8$Fb"."Content-Transfer-Encoding: 8bit";if($na){$na
.="--$Ba--$Fb";$ya="--$Ba$Fb$vc$Fb$Fb";$vc="Content-Type: multipart/mixed; boundary=\"$Ba\"";}$vc
.=$Fb."MIME-Version: 1.0$Fb"."X-Mailer: Adminer Editor".($hc?$Fb."From: ".str_replace("\n","",$hc):"");return
mail($zb,email_header($hf),$ya.$_d.$na,$vc);}function
like_bool(array$k){return
preg_match("~bool|bit~",$k["type"]);}connection()->select_db(adminer()->database());adminer()->afterConnect();add_driver(DRIVER,lang(27));if(isset($_GET["select"])&&($_POST["edit"]||$_POST["clone"])&&!$_POST["save"])$_GET["edit"]=$_GET["select"];if(isset($_GET["download"])){$a=$_GET["download"];$l=fields($a);header("Content-Type: application/octet-stream");header("Content-Disposition: attachment; filename=".friendly_url("$a-".implode("_",$_GET["where"])).".".friendly_url($_GET["field"]));$N=array(idf_escape($_GET["field"]));$J=driver()->select($a,$N,array(where($_GET,$l)),$N);$L=($J?$J->fetch_row():array());echo
driver()->value($L[0],$l[$_GET["field"]]);exit;}elseif(isset($_GET["edit"])){$a=$_GET["edit"];$l=fields($a);$Z=(isset($_GET["select"])?($_POST["check"]&&count($_POST["check"])==1?where_check($_POST["check"][0],$l):""):where($_GET,$l));$Nf=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($l
as$B=>$k){if((!$Nf&&!isset($k["privileges"]["insert"]))||adminer()->fieldName($k)=="")unset($l[$B]);}if($_POST&&!$j&&!isset($_GET["select"])){$z=$_POST["referer"];if($_POST["insert"])$z=($Nf?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$z))$z=ME."select=".urlencode($a);$v=indexes($a);$If=unique_array($_GET["where"],$v);$ye="\nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($z,lang(75),driver()->delete($a,$ye,$If?0:1));else{$P=array();foreach($l
as$B=>$k){$W=process_input($k);if($W!==false&&$W!==null)$P[idf_escape($B)]=$W;}if($Nf){if(!$P)redirect($z);queries_redirect($z,lang(76),driver()->update($a,$P,$ye,$If?0:1));if(is_ajax()){page_headers();page_messages($j);exit;}}else{$J=driver()->insert($a,$P);$gd=($J?last_id($J):0);queries_redirect($z,lang(77,($gd?" $gd":"")),$J);}}}$L=null;if($Z){$N=array();foreach($l
as$B=>$k){if(isset($k["privileges"]["select"])){$la=($_POST["clone"]&&$k["auto_increment"]?"''":convert_field($k));$N[]=($la?"$la AS ":"").idf_escape($B);}}$L=array();if(!support("table"))$N=array("*");if($N){$J=driver()->select($a,$N,array($Z),$N,array(),(isset($_GET["select"])?2:1));if(!$J)$j=error();else{$L=$J->fetch_assoc();if(!$L)$L=false;}if(isset($_GET["select"])&&(!$L||$J->fetch_assoc()))$L=null;}}if(!support("table")&&!$l){if(!$Z){$J=driver()->select($a,array("*"),array(),array("*"));$L=($J?$J->fetch_assoc():false);if(!$L)$L=array(driver()->primary=>"");}if($L){foreach($L
as$w=>$W){if(!$Z)$L[$w]=null;$l[$w]=array("field"=>$w,"null"=>($w!=driver()->primary),"auto_increment"=>($w==driver()->primary));}}}if($_POST["save"])$L=(array)$_POST["fields"]+($L?$L:array());edit_form($a,$l,$L,$Nf,$j);}elseif(isset($_GET["select"])){$a=$_GET["select"];$S=table_status1($a);$v=indexes($a);$l=fields($a);$fc=column_foreign_keys($a);$Od=$S["Oid"];$ea=get_settings("adminer_import");$He=array();$d=array();$Le=array();$Wd=array();$qf="";foreach($l
as$w=>$k){$B=adminer()->fieldName($k);$Hd=html_entity_decode(strip_tags($B),ENT_QUOTES);if(isset($k["privileges"]["select"])&&$B!=""){$d[$w]=$Hd;if(is_shortable($k))$qf=adminer()->selectLengthProcess();}if(isset($k["privileges"]["where"])&&$B!="")$Le[$w]=$Hd;if(isset($k["privileges"]["order"])&&$B!="")$Wd[$w]=$Hd;$He+=$k["privileges"];}list($N,$q)=adminer()->selectColumnsProcess($d,$v);$N=array_unique($N);$q=array_unique($q);$Sc=count($q)<count($N);$Z=adminer()->selectSearchProcess($l,$v);$E=adminer()->selectOrderProcess($l,$v);$x=adminer()->selectLimitProcess();if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$Jf=>$L){$la=convert_field($l[key($L)]);$N=array($la?:idf_escape(key($L)));$Z[]=where_check($Jf,$l);$K=driver()->select($a,$N,$Z,$N);if($K)echo
first($K->fetch_row());}exit;}$re=$Lf=array();foreach($v
as$u){if($u["type"]=="PRIMARY"){$re=array_flip($u["columns"]);$Lf=($N?$re:array());foreach($Lf
as$w=>$W){if(in_array(idf_escape($w),$N))unset($Lf[$w]);}break;}}if($Od&&!$re){$re=$Lf=array($Od=>0);$v[]=array("type"=>"PRIMARY","columns"=>array($Od));}if($_POST&&!$j){$dg=$Z;if(!$_POST["all"]&&is_array($_POST["check"])){$Ia=array();foreach($_POST["check"]as$Ga)$Ia[]=where_check($Ga,$l);$dg[]="((".implode(") OR (",$Ia)."))";}$dg=($dg?"\nWHERE ".implode(" AND ",$dg):"");if($_POST["export"]){save_settings(array("output"=>$_POST["output"],"format"=>$_POST["format"]),"adminer_import");dump_headers($a);adminer()->dumpTable($a,"");$hc=($N?implode(", ",$N):"*").convert_fields($d,$l,$N)."\nFROM ".table($a);$nc=($q&&$Sc?"\nGROUP BY ".implode(", ",$q):"").($E?"\nORDER BY ".implode(", ",$E):"");$I="SELECT $hc$dg$nc";if(is_array($_POST["check"])&&!$re){$Hf=array();foreach($_POST["check"]as$W)$Hf[]="(SELECT".limit($hc,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($W,$l).$nc,1).")";$I=implode(" UNION ALL ",$Hf);}adminer()->dumpData($a,"table",$I);adminer()->dumpFooter();exit;}if(!adminer()->selectEmailProcess($Z,$fc)){if($_POST["save"]||$_POST["delete"]){$J=true;$fa=0;$P=array();if(!$_POST["delete"]){foreach($_POST["fields"]as$B=>$W){$W=process_input($l[$B]);if($W!==null&&($_POST["clone"]||$W!==false))$P[idf_escape($B)]=($W!==false?$W:idf_escape($B));}}if($_POST["delete"]||$P){$I=($_POST["clone"]?"INTO ".table($a)." (".implode(", ",array_keys($P)).")\nSELECT ".implode(", ",$P)."\nFROM ".table($a):"");if($_POST["all"]||($re&&is_array($_POST["check"]))||$Sc){$J=($_POST["delete"]?driver()->delete($a,$dg):($_POST["clone"]?queries("INSERT $I$dg".driver()->insertReturning($a)):driver()->update($a,$P,$dg)));$fa=connection()->affected_rows;if(is_object($J))$fa+=$J->num_rows;}else{foreach((array)$_POST["check"]as$W){$cg="\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($W,$l);$J=($_POST["delete"]?driver()->delete($a,$cg,1):($_POST["clone"]?queries("INSERT".limit1($a,$I,$cg)):driver()->update($a,$P,$cg,1)));if(!$J)break;$fa+=connection()->affected_rows;}}}$_d=lang(78,$fa);if($_POST["clone"]&&$J&&$fa==1){$gd=last_id($J);if($gd)$_d=lang(77," $gd");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$_d,$J);if(!$_POST["delete"]){$oe=(array)$_POST["fields"];edit_form($a,array_intersect_key($l,$oe),$oe,!$_POST["clone"],$j);page_footer();exit;}}elseif(!$_POST["import"]){if(!$_POST["val"])$j=lang(79);else{$J=true;$fa=0;foreach($_POST["val"]as$Jf=>$L){$P=array();foreach($L
as$w=>$W){$w=bracket_escape($w,true);$P[idf_escape($w)]=(preg_match('~char|text~',$l[$w]["type"])||$W!=""?adminer()->processInput($l[$w],$W):"NULL");}$J=driver()->update($a,$P," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($Jf,$l),($Sc||$re?0:1)," ");if(!$J)break;$fa+=connection()->affected_rows;}queries_redirect(remove_from_uri(),lang(78,$fa),$J);}}elseif(!is_string($Ub=get_file("csv_file",true)))$j=upload_error($Ub);elseif(!preg_match('~~u',$Ub))$j=lang(80);else{save_settings(array("output"=>$ea["output"],"format"=>$_POST["separator"]),"adminer_import");$J=true;$Qa=array_keys($l);preg_match_all('~(?>"[^"]*"|[^"\r\n]+)+~',$Ub,$qd);$fa=count($qd[0]);driver()->begin();$Qe=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));$M=array();foreach($qd[0]as$w=>$W){preg_match_all("~((?>\"[^\"]*\")+|[^$Qe]*)$Qe~",$W.$Qe,$rd);if(!$w&&!array_diff($rd[1],$Qa)){$Qa=$rd[1];$fa--;}else{$P=array();foreach($rd[1]as$r=>$Na)$P[idf_escape($Qa[$r])]=($Na==""&&$l[$Qa[$r]]["null"]?"NULL":q(preg_match('~^".*"$~s',$Na)?str_replace('""','"',substr($Na,1,-1)):$Na));$M[]=$P;}}$J=(!$M||driver()->insertUpdate($a,$M,$re));if($J)driver()->commit();queries_redirect(remove_from_uri("page"),lang(81,$fa),$J);driver()->rollback();}}}$mf=adminer()->tableName($S);if(is_ajax()){page_headers();ob_start();}else
page_header(lang(40).": $mf",$j);$P=null;if(isset($He["insert"])||!support("table")){$de=array();foreach((array)$_GET["where"]as$W){if(isset($fc[$W["col"]])&&count($fc[$W["col"]])==1&&($W["op"]=="="||(!$W["op"]&&(is_array($W["val"])||!preg_match('~[_%]~',$W["val"])))))$de["set"."[".bracket_escape($W["col"])."]"]=$W["val"];}$P=$de?"&".http_build_query($de):"";}adminer()->selectLinks($S,$P);if(!$d&&support("table"))echo"<p class='error'>".lang(82).($l?".":": ".error())."\n";else{echo"<form action='' id='form'>\n","<div style='display: none;'>";hidden_fields_get();echo(DB!=""?input_hidden("db",DB).(isset($_GET["ns"])?input_hidden("ns",$_GET["ns"]):""):""),input_hidden("select",$a),"</div>\n";adminer()->selectColumnsPrint($N,$d);adminer()->selectSearchPrint($Z,$Le,$v);adminer()->selectOrderPrint($E,$Wd,$v);adminer()->selectLimitPrint($x);adminer()->selectLengthPrint($qf);adminer()->selectActionPrint($v);echo"</form>\n";$F=$_GET["page"];$n=null;if($F=="last"){$n=get_val(count_rows($a,$Z,$Sc,$q));$F=floor(max(0,intval($n)-1)/$x);}$Me=$N;$mc=$q;if(!$Me){$Me[]="*";$Xa=convert_fields($d,$l,$N);if($Xa)$Me[]=substr($Xa,2);}foreach($N
as$w=>$W){$k=$l[idf_unescape($W)];if($k&&($la=convert_field($k)))$Me[$w]="$la AS $W";}if(!$Sc&&$Lf){foreach($Lf
as$w=>$W){$Me[]=idf_escape($w);if($mc)$mc[]=idf_escape($w);}}$J=driver()->select($a,$Me,$Z,$mc,$E,$x,$F,true);if(!$J)echo"<p class='error'>".error()."\n";else{if(JUSH=="mssql"&&$F)$J->seek($x*$F);$Ab=array();echo"<form action='' method='post' enctype='multipart/form-data'>\n";$M=array();while($L=$J->fetch_assoc()){if($F&&JUSH=="oracle")unset($L["RNUM"]);$M[]=$L;}if($_GET["page"]!="last"&&$x&&$q&&$Sc&&JUSH=="sql")$n=get_val(" SELECT FOUND_ROWS()");if(!$M)echo"<p class='message'>".lang(14)."\n";else{$va=adminer()->backwardKeys($a,$mf);echo"<div class='scrollable'>","<table id='table' class='nowrap checkable odds'>",script("mixin(qs('#table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true), onkeydown: editingKeydown});"),"<thead><tr>".(!$q&&$N?"":"<td><input type='checkbox' id='all-page' class='jsonly'>".script("qs('#all-page').onclick = partial(formCheck, /check/);","")." <a href='".h($_GET["modify"]?remove_from_uri("modify"):$_SERVER["REQUEST_URI"]."&modify=1")."'>".lang(83)."</a>");$Id=array();$jc=array();reset($N);$_e=1;foreach($M[0]as$w=>$W){if(!isset($Lf[$w])){$W=idx($_GET["columns"],key($N))?:array();$k=$l[$N?($W?$W["col"]:current($N)):$w];$B=($k?adminer()->fieldName($k,$_e):($W["fun"]?"*":h($w)));if($B!=""){$_e++;$Id[$w]=$B;$c=idf_escape($w);$Ac=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($w);$nb="&desc%5B0%5D=1";echo"<th id='th[".h(bracket_escape($w))."]'>".script("mixin(qsl('th'), {onmouseover: partial(columnMouse), onmouseout: partial(columnMouse, ' hidden')});","");$ic=apply_sql_function($W["fun"],$B);$Ye=isset($k["privileges"]["order"])||$ic!=$B;echo($Ye?"<a href='".h($Ac.($E[0]==$c||$E[0]==$w?$nb:''))."'>$ic</a>":$ic);$zd=($Ye?"<a href='".h($Ac.$nb)."' title='".lang(84)."' class='text'> ↓</a>":'');if(!$W["fun"]&&isset($k["privileges"]["where"])){$zd
.='<a href="#fieldset-search" title="'.lang(34).'" class="text jsonly"> =</a>';$zd
.=script("qsl('a').onclick = partial(selectSearch, '".js_escape($w)."');");}echo($zd?"<span class='column hidden'>$zd</span>":"");}$jc[$w]=$W["fun"];next($N);}}$jd=array();if($_GET["modify"]){foreach($M
as$L){foreach($L
as$w=>$W)$jd[$w]=max($jd[$w],min(40,strlen(utf8_decode($W))));}}echo($va?"<th>".lang(85):"")."</thead>\n";if(is_ajax())ob_end_clean();foreach(adminer()->rowDescriptions($M,$fc)as$A=>$L){$If=unique_array($M[$A],$v);if(!$If){$If=array();reset($N);foreach($M[$A]as$w=>$W){if(!preg_match('~^(COUNT|AVG|GROUP_CONCAT|MAX|MIN|SUM)\(~',current($N)))$If[$w]=$W;next($N);}}$Jf="";foreach($If
as$w=>$W){$k=(array)$l[$w];if((JUSH=="sql"||JUSH=="pgsql")&&preg_match('~char|text|enum|set~',$k["type"])&&strlen($W)>64){$w=(strpos($w,'(')?$w:idf_escape($w));$w="MD5(".(JUSH!='sql'||preg_match("~^utf8~",$k["collation"])?$w:"CONVERT($w USING ".charset(connection()).")").")";$W=md5($W);}$Jf
.="&".($W!==null?urlencode("where[".bracket_escape($w)."]")."=".urlencode($W===false?"f":$W):"null%5B%5D=".urlencode($w));}echo"<tr>".(!$q&&$N?"":"<td>".checkbox("check[]",substr($Jf,1),in_array(substr($Jf,1),(array)$_POST["check"])).($Sc||information_schema(DB)?"":" <a href='".h(ME."edit=".urlencode($a).$Jf)."' class='edit'>".lang(86)."</a>"));reset($N);foreach($L
as$w=>$W){if(isset($Id[$w])){$c=current($N);$k=(array)$l[$w];if($W!=""&&(!isset($Ab[$w])||$Ab[$w]!=""))$Ab[$w]=(is_mail($W)?$Id[$w]:"");$y="";if(is_blob($k)&&$W!="")$y=ME.'download='.urlencode($a).'&field='.urlencode($w).$Jf;if(!$y&&$W!==null){foreach((array)$fc[$w]as$ec){if(count($fc[$w])==1||end($ec["source"])==$w){$y="";foreach($ec["source"]as$r=>$Ze)$y
.=where_link($r,$ec["target"][$r],$M[$A][$Ze]);$y=($ec["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\1'.urlencode($ec["db"]),ME):ME).'select='.urlencode($ec["table"]).$y;if($ec["ns"])$y=preg_replace('~([?&]ns=)[^&]+~','\1'.urlencode($ec["ns"]),$y);if(count($ec["source"])==1)break;}}}if($c=="COUNT(*)"){$y=ME."select=".urlencode($a);$r=0;foreach((array)$_GET["where"]as$V){if(!array_key_exists($V["col"],$If))$y
.=where_link($r++,$V["col"],$V["val"],$V["op"]);}foreach($If
as$Yc=>$V)$y
.=where_link($r++,$Yc,$V);}$Bc=select_value($W,$y,$k,$qf);$s=h("val[$Jf][".bracket_escape($w)."]");$pe=idx(idx($_POST["val"],$Jf),bracket_escape($w));$xb=!is_array($L[$w])&&is_utf8($Bc)&&$M[$A][$w]==$L[$w]&&!$jc[$w]&&!$k["generated"];$T=(preg_match('~^(AVG|MIN|MAX)\((.+)\)~',$c,$_)?$l[idf_unescape($_[2])]["type"]:$k["type"]);$pf=preg_match('~text|json|lob~',$T);$Tc=preg_match(number_type(),$T)||preg_match('~^(CHAR_LENGTH|ROUND|FLOOR|CEIL|TIME_TO_SEC|COUNT|SUM)\(~',$c);echo"<td id='$s'".($Tc&&($W===null||is_numeric(strip_tags($Bc))||$T=="money")?" class='number'":"");if(($_GET["modify"]&&$xb&&$W!==null)||$pe!==null){$pc=h($pe!==null?$pe:$L[$w]);echo">".($pf?"<textarea name='$s' cols='30' rows='".(substr_count($L[$w],"\n")+1)."'>$pc</textarea>":"<input name='$s' value='$pc' size='$jd[$w]'>");}else{$md=strpos($Bc,"<i>…</i>");echo" data-text='".($md?2:($pf?1:0))."'".($xb?"":" data-warning='".h(lang(87))."'").">$Bc";}}next($N);}if($va)echo"<td>";adminer()->backwardKeysPrint($va,$M[$A]);echo"</tr>\n";}if(is_ajax())exit;echo"</table>\n","</div>\n";}if(!is_ajax()){if($M||$F){$Kb=true;if($_GET["page"]!="last"){if(!$x||(count($M)<$x&&($M||!$F)))$n=($F?$F*$x:0)+count($M);elseif(JUSH!="sql"||!$Sc){$n=($Sc?false:found_rows($S,$Z));if(intval($n)<max(1e4,2*($F+1)*$x))$n=first(slow_query(count_rows($a,$Z,$Sc,$q)));elseif(JUSH=='sql'||JUSH=='pgsql')$Kb=false;}}$be=($x&&($n===false||$n>$x||$F));if($be)echo(($n===false?count($M)+1:$n-$F*$x)>$x?'<p><a href="'.h(remove_from_uri("page")."&page=".($F+1)).'" class="loadmore">'.lang(88).'</a>'.script("qsl('a').onclick = partial(selectLoadMore, $x, '".lang(89)."…');",""):''),"\n";echo"<div class='footer'><div>\n";if($be){$ud=($n===false?$F+(count($M)>=$x?2:1):floor(($n-1)/$x));echo"<fieldset>";if(JUSH!="simpledb"){echo"<legend><a href='".h(remove_from_uri("page"))."'>".lang(90)."</a></legend>",script("qsl('a').onclick = function () { pageClick(this.href, +prompt('".lang(90)."', '".($F+1)."')); return false; };"),pagination(0,$F).($F>5?" …":"");for($r=max(1,$F-4);$r<min($ud,$F+5);$r++)echo
pagination($r,$F);if($ud>0)echo($F+5<$ud?" …":""),($Kb&&$n!==false?pagination($ud,$F):" <a href='".h(remove_from_uri("page")."&page=last")."' title='~$ud'>".lang(91)."</a>");}else
echo"<legend>".lang(90)."</legend>",pagination(0,$F).($F>1?" …":""),($F?pagination($F,$F):""),($ud>$F?pagination($F+1,$F).($ud>$F+1?" …":""):"");echo"</fieldset>\n";}echo"<fieldset>","<legend>".lang(92)."</legend>";$rb=($Kb?"":"~ ").$n;$Rd="const checked = formChecked(this, /check/); selectCount('selected', this.checked ? '$rb' : checked); selectCount('selected2', this.checked || !checked ? '$rb' : checked);";echo
checkbox("all",1,0,($n!==false?($Kb?"":"~ ").lang(93,$n):""),$Rd)."\n","</fieldset>\n";if(adminer()->selectCommandPrint())echo'<fieldset',($_GET["modify"]?'':' class="jsonly"'),'><legend>',lang(83),'</legend><div>
<input type="submit" value="',lang(16),'"',($_GET["modify"]?'':' title="'.lang(79).'"'),'>
</div></fieldset>
<fieldset><legend>',lang(94),' <span id="selected"></span></legend><div>
<input type="submit" name="edit" value="',lang(12),'">
<input type="submit" name="clone" value="',lang(95),'">
<input type="submit" name="delete" value="',lang(20),'">',confirm(),'</div></fieldset>
';$gc=adminer()->dumpFormat();foreach((array)$_GET["columns"]as$c){if($c["fun"]){unset($gc['sql']);break;}}if($gc){print_fieldset("export",lang(96)." <span id='selected2'></span>");$Zd=adminer()->dumpOutput();echo($Zd?html_select("output",$Zd,$ea["output"])." ":""),html_select("format",$gc,$ea["format"])," <input type='submit' name='export' value='".lang(96)."'>\n","</div></fieldset>\n";}adminer()->selectEmailPrint(array_filter($Ab,'strlen'),$d);echo"</div></div>\n";}if(adminer()->selectImportPrint())echo"<p>","<a href='#import'>".lang(97)."</a>",script("qsl('a').onclick = partial(toggle, 'import');",""),"<span id='import'".($_POST["import"]?"":" class='hidden'").">: ",file_input("<input type='file' name='csv_file'> ".html_select("separator",array("csv"=>"CSV,","csv;"=>"CSV;","tsv"=>"TSV"),$ea["format"])." <input type='submit' name='import' value='".lang(97)."'>"),"</span>";echo
input_token(),"</form>\n",(!$q&&$N?"":script("tableCheck();"));}}}if(is_ajax()){ob_end_clean();exit;}}elseif(isset($_GET["script"])){if($_GET["script"]=="kill")connection()->query("KILL ".number($_POST["kill"]));elseif(list($R,$s,$B)=adminer()->_foreignColumn(column_foreign_keys($_GET["source"]),$_GET["field"])){$x=11;$J=connection()->query("SELECT $s, $B FROM ".table($R)." WHERE ".(preg_match('~^[0-9]+$~',$_GET["value"])?"$s = $_GET[value] OR ":"")."$B LIKE ".q("$_GET[value]%")." ORDER BY 2 LIMIT $x");for($r=1;($L=$J->fetch_row())&&$r<$x;$r++)echo"<a href='".h(ME."edit=".urlencode($R)."&where".urlencode("[".bracket_escape(idf_unescape($s))."]")."=".urlencode($L[0]))."'>".h($L[1])."</a><br>\n";if($L)echo"...\n";}exit;}else{page_header(lang(56),"",false);if(adminer()->homepage()){echo"<form action='' method='post'>\n","<p>".lang(98).": <input type='search' name='query' value='".h($_POST["query"])."'> <input type='submit' value='".lang(34)."'>\n";if($_POST["query"]!="")search_tables();echo"<div class='scrollable'>\n","<table class='nowrap checkable odds'>\n",script("mixin(qsl('table'), {onclick: tableClick, ondblclick: partialArg(tableClick, true)});"),'<thead><tr class="wrap">','<td><input id="check-all" type="checkbox" class="jsonly">'.script("qs('#check-all').onclick = partial(formCheck, /^tables\[/);",""),'<th>'.lang(99),'<td>'.lang(100),"</thead>\n";foreach(table_status()as$R=>$L){$B=adminer()->tableName($L);if($B!=""){echo'<tr><td>'.checkbox("tables[]",$R,in_array($R,(array)$_POST["tables"],true)),"<th><a href='".h(ME).'select='.urlencode($R)."'>$B</a>";$W=format_number($L["Rows"]);echo"<td align='right'><a href='".h(ME."edit=").urlencode($R)."'>".($L["Engine"]=="InnoDB"&&$W?"~ $W":$W)."</a>";}}echo"</table>\n","</div>\n","</form>\n",script("tableCheck();");adminer()->pluginsLinks();}}page_footer();