<?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.5.0
*/namespace
Adminer;const
VERSION="5.5.0";error_reporting(24575);set_error_handler(function($Ib,$Jb){return!!preg_match('~^Undefined (array key|offset|index)~',$Jb);},E_WARNING|E_NOTICE);$Yb=!preg_match('~^(unsafe_raw)?$~',ini_get("filter.default"));if($Yb||ini_get("filter.default_flags")){foreach(array('_GET','_POST','_COOKIE','_SERVER')as$W){$Nf=filter_input_array(constant("INPUT$W"),FILTER_UNSAFE_RAW);if($Nf)$$W=$Nf;}}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(){$db=adminer()->credentials();$J=Driver::connect($db[0],$db[1],$db[2]);return(is_object($J)?$J:null);}function
idf_unescape($s){if(!preg_match('~^[`\'"[]~',$s))return$s;$id=substr($s,-1);return
str_replace($id.$id,$id,substr($s,1,-1));}function
q($P){return
connection()->quote($P);}function
idx($la,$v,$i=null){return($la&&array_key_exists($v,$la)?$la[$v]:$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$Yf,$Yb=false){$J=array();foreach($Yf
as$v=>$W)$J[stripslashes($v)]=(is_array($W)?remove_slashes($W,$Yb):($Yb?$W:stripslashes($W)));return$J;}function
bracket_escape($s,$ta=false){static$Df=array(':'=>':1',']'=>':2','['=>':3','"'=>':4');return
strtr($s,($ta?array_flip($Df):$Df));}function
min_version($Zf,$rd="",$g=null){$g=connection($g);$Ue=$g->server_info;if($rd&&preg_match('~([\d.]+)-MariaDB~',$Ue,$z)){$Ue=$z[1];$Zf=$rd;}return$Zf&&version_compare($Ue,$Zf)>=0;}function
charset(Db$f){return(min_version("5.5.3",0,$f)?"utf8mb4":"utf8");}function
ini_bool($Nc){$W=ini_get($Nc);return(preg_match('~^(on|true|yes)$~i',$W)||(int)$W);}function
ini_bytes($Nc){$W=ini_get($Nc);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$J;if($J===null)$J=(SID&&!($_COOKIE&&ini_bool("session.use_cookies")));return$J;}function
set_password($Y,$N,$U,$F){$_SESSION["pwds"][$Y][$N][$U]=($_COOKIE["adminer_key"]&&is_string($F)?array(encrypt_string($F,$_COOKIE["adminer_key"])):$F);}function
get_password(){$J=get_session("pwds");if(is_array($J))$J=($_COOKIE["adminer_key"]?decrypt_string($J[0],$_COOKIE["adminer_key"]):false);return$J;}function
get_val($H,$k=0,$Va=null){$Va=connection($Va);$I=$Va->query($H);if(!is_object($I))return
false;$K=$I->fetch_row();return($K?$K[$k]:false);}function
get_vals($H,$c=0){$J=array();$I=connection()->query($H);if(is_object($I)){while($K=$I->fetch_row())$J[]=$K[$c];}return$J;}function
get_key_vals($H,$g=null,$Xe=true){$g=connection($g);$J=array();$I=$g->query($H);if(is_object($I)){while($K=$I->fetch_row()){if($Xe)$J[$K[0]]=$K[1];else$J[]=$K[0];}}return$J;}function
get_rows($H,$g=null,$j="<p class='error'>"){$Va=connection($g);$J=array();$I=$Va->query($H);if(is_object($I)){while($K=$I->fetch_assoc())$J[]=$K;}elseif(!$I&&!$g&&$j&&(defined('Adminer\PAGE_HEADER')||$j=="-- "))echo$j.error()."\n";return$J;}function
unique_array($K,array$u){foreach($u
as$t){if(preg_match("~PRIMARY|UNIQUE~",$t["type"])&&!$t["partial"]){$J=array();foreach($t["columns"]as$v){if(!isset($K[$v]))continue
2;$J[$v]=$K[$v];}return$J;}}}function
escape_key($v){if(preg_match('(^([\w(]+)('.str_replace("_",".*",preg_quote(idf_escape("_"))).')([ \w)]+)$)',$v,$z))return$z[1].idf_escape(idf_unescape($z[2])).$z[3];return
idf_escape($v);}function
where(array$Z,array$l=array()){$J=array();foreach((array)$Z["where"]as$v=>$W){$v=bracket_escape($v,true);$c=escape_key($v);$k=idx($l,$v,array());$Vb=$k["type"];$J[]=$c.(JUSH=="sql"&&$Vb=="json"?" = CAST(".q($W)." AS JSON)":(JUSH=="pgsql"&&preg_match('~^jsonb?$~',$k["full_type"])?"::jsonb = ".q($W)."::jsonb":(JUSH=="sql"&&is_numeric($W)&&preg_match('~\.~',$W)?" LIKE ".q($W):(JUSH=="mssql"&&strpos($Vb,"datetime")===false?" LIKE ".q(preg_replace('~[_%[]~','[\0]',$W)):" = ".unconvert_field($k,q($W))))));if(JUSH=="sql"&&preg_match('~char|text~',$Vb)&&preg_match("~[^ -@]~",$W))$J[]="$c = ".q($W)." COLLATE ".charset(connection())."_bin";}foreach((array)$Z["null"]as$v)$J[]=escape_key($v)." IS NULL";return
implode(" AND ",$J);}function
where_check($W,array$l=array()){parse_str($W,$Ha);remove_slashes(array(&$Ha));return
where($Ha,$l);}function
where_link($q,$c,$X,$Wd="="){return"&where%5B$q%5D%5Bcol%5D=".urlencode($c)."&where%5B$q%5D%5Bop%5D=".urlencode(($X!==null?$Wd:"IS NULL"))."&where%5B$q%5D%5Bval%5D=".urlencode($X);}function
convert_fields(array$d,array$l,array$M=array()){$J="";foreach($d
as$v=>$W){if($M&&!in_array(idf_escape($v),$M))continue;$ma=convert_field($l[$v]);if($ma)$J
.=", $ma AS ".idf_escape($v);}return$J;}function
cookie_path(){return
strtr(preg_replace('~\?.*~','',$_SERVER["REQUEST_URI"]),array(";"=>"%3B",","=>"%2C"));}function
cookie($A,$X,$nd=2592000){header("Set-Cookie: $A=".rawurlencode($X).($nd?"; expires=".gmdate("D, d M Y H:i:s",time()+$nd)." GMT":"")."; path=".cookie_path().(HTTPS?"; secure":"")."; HttpOnly; SameSite=lax",false);}function
get_url($Tf,$Ya){$J=@file_get_contents($Tf,false,$Ya);if(function_exists('http_get_last_response_headers'))$http_response_header=http_get_last_response_headers();return
array($J,(preg_match('~^HTTP/[\d.]+ (\d+)~',$http_response_header[0],$z)?$z[1]:''),);}function
get_settings($ab){parse_str($_COOKIE[$ab],$Ye);return$Ye;}function
get_setting($v,$ab="adminer_settings",$i=null){return
idx(get_settings($ab),$v,$i);}function
save_settings(array$Ye,$ab="adminer_settings"){$X=http_build_query($Ye+get_settings($ab));cookie($ab,$X);$_COOKIE[$ab]=$X;}function
restart_session(){if(!ini_bool("session.use_cookies")&&(!function_exists('session_status')||session_status()==1))session_start();}function
stop_session($cc=false){$Uf=ini_bool("session.use_cookies");if(!$Uf||$cc){session_write_close();if($Uf&&@ini_set("session.use_cookies",'0')===false)session_start();}}function&get_session($v){return$_SESSION[$v][DRIVER][SERVER][$_GET["username"]];}function
set_session($v,$W){$_SESSION[$v][DRIVER][SERVER][$_GET["username"]]=$W;}function
auth_url($Y,$N,$U,$h=null){$Sf=remove_from_uri(implode("|",array_keys(SqlDriver::$drivers))."|username|ext|".($h!==null?"db|":"").($Y=='mssql'||$Y=='pgsql'?"":"ns|").session_name());preg_match('~([^?]*)\??(.*)~',$Sf,$z);return"$z[1]?".(sid()?SID."&":"").($Y!="server"||$N!=""?urlencode($Y)."=".urlencode($N)."&":"").($_GET["ext"]?"ext=".urlencode($_GET["ext"])."&":"")."username=".urlencode($U).($h!=""?"&db=".urlencode($h):"").($z[2]?"&$z[2]":"");}function
is_ajax(){return($_SERVER["HTTP_X_REQUESTED_WITH"]=="XMLHttpRequest");}function
redirect($y,$Cd=null){if($Cd!==null){restart_session();$_SESSION["messages"][preg_replace('~^[^?]*~','',($y!==null?$y:$_SERVER["REQUEST_URI"]))][]=$Cd;}if($y!==null){if($y=="")$y=".";header("Location: $y");exit;}}function
query_redirect($H,$y,$Cd,$De=true,$Nb=true,$Sb=false,$vf=""){if($Nb){$gf=microtime(true);$Sb=!connection()->query($H);$vf=format_time($gf);}$df=($H?adminer()->messageQuery($H,$vf,$Sb):"");if($Sb){adminer()->error
.=error().$df.script("messagesPrint();")."<br>";return
false;}if($De)redirect($y,$Cd.$df);return
true;}class
Queries{static$queries=array();static$start=0;}function
queries($H){if(!Queries::$start)Queries::$start=microtime(true);Queries::$queries[]=(driver()->delimiter!=';'?$H:(preg_match('~;$~',$H)?"DELIMITER ;;\n$H;\nDELIMITER ":$H).";");return
connection()->query($H);}function
apply_queries($H,array$qf,$Kb='Adminer\table'){foreach($qf
as$Q){if(!queries("$H ".$Kb($Q)))return
false;}return
true;}function
queries_redirect($y,$Cd,$De){$ze=implode("\n",Queries::$queries);$vf=format_time(Queries::$start);return
query_redirect($ze,$y,$Cd,$De,false,!$De,$vf);}function
format_time($gf){return
lang(0,max(0,microtime(true)-$gf));}function
relative_uri(){return
str_replace(":","%3a",preg_replace('~^[^?]*/([^?]*)~','\1',$_SERVER["REQUEST_URI"]));}function
remove_from_uri($fe=""){return
substr(preg_replace("~(?<=[?&])($fe".(SID?"":"|".session_name()).")=[^&]*&~",'',relative_uri()."&"),0,-1);}function
get_file($v,$lb=false,$ob=""){$Wb=$_FILES[$v];if(!$Wb)return
null;foreach($Wb
as$v=>$W)$Wb[$v]=(array)$W;$J='';foreach($Wb["error"]as$v=>$j){if($j)return$j;$A=$Wb["name"][$v];$Af=$Wb["tmp_name"][$v];$Xa=file_get_contents($lb&&preg_match('~\.gz$~',$A)?"compress.zlib://$Af":$Af);if($lb){$gf=substr($Xa,0,3);if(function_exists("iconv")&&preg_match("~^\xFE\xFF|^\xFF\xFE~",$gf))$Xa=iconv("utf-16","utf-8",$Xa);elseif($gf=="\xEF\xBB\xBF")$Xa=substr($Xa,3);}$J
.=$Xa;if($ob)$J
.=(preg_match("($ob\\s*\$)",$Xa)?"":$ob)."\n\n";}return$J;}function
upload_error($j){$yd=($j==UPLOAD_ERR_INI_SIZE?ini_get("upload_max_filesize"):0);return($j?lang(1).($yd?" ".lang(2,$yd):""):lang(3));}function
repeat_pattern($le,$ld){return
str_repeat("$le{0,65535}",$ld/65535)."$le{0,".($ld%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($Q,$Tb=false){$J=table_status($Q,$Tb);return($J?reset($J):array("Name"=>$Q));}function
column_foreign_keys($Q){$J=array();foreach(adminer()->foreignKeys($Q)as$gc){foreach($gc["source"]as$W)$J[$W][]=$gc;}return$J;}function
fields_from_edit(){$J=array();foreach((array)$_POST["field_keys"]as$v=>$W){if($W!=""){$W=bracket_escape($W);$_POST["function"][$W]=$_POST["field_funs"][$v];$_POST["fields"][$W]=$_POST["field_vals"][$v];}}foreach((array)$_POST["fields"]as$v=>$W){$A=bracket_escape($v,true);$J[$A]=array("field"=>$A,"privileges"=>array("insert"=>1,"update"=>1,"where"=>1,"order"=>1),"null"=>1,"auto_increment"=>($v==driver()->primary),);}return$J;}function
dump_headers($Gc,$Id=false){$J=adminer()->dumpHeaders($Gc,$Id);$ce=$_POST["output"];if($ce!="text")header("Content-Disposition: attachment; filename=".adminer()->dumpFilename($Gc).".$J".($ce!="file"&&preg_match('~^[0-9a-z]+$~',$ce)?".$ce":""));session_write_close();if(!ob_get_level())ob_start(null,4096);ob_flush();flush();return$J;}function
dump_csv(array$K){$Hf=$_POST["format"]=="tsv";foreach($K
as$v=>$W){if(preg_match('~["\n]|^0[^.]|\.\d*0$|'.($Hf?'\t':'[,;]|^$').'~',$W))$K[$v]='"'.str_replace('"','""',$W).'"';}echo
implode(($_POST["format"]=="csv"?",":($Hf?"\t":";")),$K)."\r\n";}function
apply_sql_function($o,$c){return($o?($o=="unixepoch"?"DATETIME($c, '$o')":($o=="count distinct"?"COUNT(DISTINCT ":strtoupper("$o("))."$c)"):$c);}function
get_temp_dir(){$J=ini_get("upload_tmp_dir");if(!$J){if(function_exists('sys_get_temp_dir'))$J=sys_get_temp_dir();else{$m=@tempnam("","");if(!$m)return'';$J=dirname($m);unlink($m);}}return$J;}function
file_open_lock($m){if(is_link($m))return;$n=@fopen($m,"c+");if(!$n)return;@chmod($m,0660);if(!flock($n,LOCK_EX)){fclose($n);return;}return$n;}function
file_write_unlock($n,$ib){rewind($n);fwrite($n,$ib);ftruncate($n,strlen($ib));file_unlock($n);}function
file_unlock($n){flock($n,LOCK_UN);fclose($n);}function
first(array$la){return
reset($la);}function
password_file($bb){$m=get_temp_dir()."/adminer.key";if(!$bb&&!file_exists($m))return'';$n=file_open_lock($m);if(!$n)return'';$J=stream_get_contents($n);if(!$J){$J=rand_string();file_write_unlock($n,$J);}else
file_unlock($n);return$J;}function
rand_string(){return(function_exists('random_bytes')?bin2hex(random_bytes(16)):md5(uniqid(strval(mt_rand()),true)));}function
select_value($W,$x,array$k,$tf){if(is_array($W)){$J="";if(array_filter($W,'is_array')==array_values($W)){$cd=array();foreach($W
as$V)$cd+=array_fill_keys(array_keys($V),null);foreach(array_keys($cd)as$bd)$J
.="<th>".h($bd);foreach($W
as$V){$J
.="<tr>";foreach(array_merge($cd,$V)as$Wf)$J
.="<td>".select_value($Wf,$x,$k,$tf);}}else{foreach($W
as$bd=>$V)$J
.="<tr>".($W!=array_values($W)?"<th>".h($bd):"")."<td>".select_value($V,$x,$k,$tf);}return"<table>$J</table>";}if(!$x)$x=adminer()->selectLink($W,$k);if($x===null){if(is_mail($W))$x="mailto:$W";if(is_url($W))$x=$W;}$W=driver()->value($W,$k);$J=adminer()->editVal($W,$k);if($J!==null){if(!is_utf8($J))$J="\0";elseif($tf!=""&&is_shortable($k))$J=shorten_utf8($J,max(0,+$tf));else$J=h($J);}return
adminer()->selectVal($J,$x,$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($Ab){$na='[-a-z0-9!#$%&\'*+/=?^_`{|}~]';$ub='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';$le="$na+(\\.$na+)*@($ub?\\.)+$ub";return
is_string($Ab)&&preg_match("(^$le(,\\s*$le)*\$)i",$Ab);}function
is_url($P){$ub='[a-z0-9]([-a-z0-9]{0,61}[a-z0-9])';return
preg_match("~^((https?):)?//($ub?\\.)+$ub(:\\d+)?(/.*)?(\\?.*)?(#.*)?\$~i",$P);}function
is_shortable(array$k){return!preg_match('~'.number_type().'|date|time|year~',$k["type"]);}function
host_port($N){return(preg_match('~^(\[(.+)]|([^:]*)):([^:]+)$~',$N,$z)?array($z[2].$z[3],$z[4]):array($N,''));}function
count_rows($Q,array$Z,$Vc,array$p){$H=" FROM ".table($Q).($Z?" WHERE ".implode(" AND ",$Z):"");return($Vc&&(JUSH=="sql"||count($p)==1)?"SELECT COUNT(DISTINCT ".implode(", ",$p).")$H":"SELECT COUNT(*)".($Vc?" FROM (SELECT 1$H GROUP BY ".implode(", ",$p).") x":$H));}function
slow_query($H){$h=adminer()->database();$wf=adminer()->queryTimeout();$af=driver()->slowQuery($H,$wf);$g=null;if(!$af&&support("kill")){$g=connect();if($g&&($h==""||$g->select_db($h))){$dd=get_val(connection_id(),0,$g);echo
script("const timeout = setTimeout(() => { ajax('".js_escape(ME)."script=kill', function () {}, 'kill=$dd&token=".get_token()."'); }, 1000 * $wf);");}}ob_flush();flush();$J=@get_key_vals(($af?:$H),$g,false);if($g){echo
script("clearTimeout(timeout);");ob_flush();flush();}return$J;}function
get_token(){$Be=rand(1,1e6);return($Be^$_SESSION["token"]).":$Be";}function
verify_token(){list($Bf,$Be)=explode(":",$_POST["token"]);return($Be^$_SESSION["token"])==$Bf&&in_array($_SERVER["HTTP_SEC_FETCH_SITE"],array("","same-origin"));}function
lzw_decompress($_a){$sb=256;$Aa=8;$Na=array();$Ie=0;$Je=0;for($q=0;$q<strlen($_a);$q++){$Ie=($Ie<<8)+ord($_a[$q]);$Je+=8;if($Je>=$Aa){$Je-=$Aa;$Na[]=$Ie>>$Je;$Ie&=(1<<$Je)-1;$sb++;if($sb>>$Aa)$Aa++;}}$rb=range("\0","\xFF");$J="";$gg="";foreach($Na
as$q=>$Ma){$_b=$rb[$Ma];if(!isset($_b))$_b=$gg.$gg[0];$J
.=$_b;if($q)$rb[]=$gg.$_b[0];$gg=$_b;}return$J;}function
script($cf,$Cf="\n"){return"<script".nonce().">$cf</script>$Cf";}function
script_src($Tf,$mb=false){return"<script src='".h($Tf)."'".nonce().($mb?" defer":"")."></script>\n";}function
nonce(){return' nonce="'.get_nonce().'"';}function
input_hidden($A,$X=""){return"<input type='hidden' name='".h($A)."' value='".h($X)."'>\n";}function
input_token(){return
input_hidden("token",get_token());}function
target_blank(){return' target="_blank" rel="noreferrer noopener"';}function
h($P){return
str_replace(array('&','<','"',"'","\0"),array('&amp;','&lt;','&quot;','&#039;','&#0;'),$P);}function
nl_br($P){return
str_replace("\n","<br>",$P);}function
checkbox($A,$X,$Ia,$ed="",$Ud="",$La="",$gd=""){$J="<input type='checkbox' name='$A' value='".h($X)."'".($Ia?" checked":"").($gd?" aria-labelledby='$gd'":"").">".($Ud?script("qsl('input').onclick = function () { $Ud };",""):"");return($ed!=""||$La?"<label".($La?" class='$La'":"").">$J".h($ed)."</label>":$J);}function
optionlist($C,$Qe=null,$Vf=false){$J="";foreach($C
as$bd=>$V){$Yd=array($bd=>$V);if(is_array($V)){$J
.='<optgroup label="'.h($bd).'">';$Yd=$V;}foreach($Yd
as$v=>$W)$J
.='<option'.($Vf||is_string($v)?' value="'.h($v).'"':'').($Qe!==null&&($Vf||is_string($v)?(string)$v:$W)===$Qe?' selected':'').'>'.h($W);if(is_array($V))$J
.='</optgroup>';}return$J;}function
html_select($A,array$C,$X="",$Td="",$gd=""){static$ed=0;$fd="";if(!$gd&&substr($C[""],0,1)=="("){$ed++;$gd="label-$ed";$fd="<option value='' id='$gd'>".h($C[""]);unset($C[""]);}return"<select name='".h($A)."'".($gd?" aria-labelledby='$gd'":"").">".$fd.optionlist($C,$X)."</select>".($Td?script("qsl('select').onchange = function () { $Td };",""):"");}function
html_radios($A,array$C,$X="",$Te=""){$J="";foreach($C
as$v=>$W)$J
.="<label><input type='radio' name='".h($A)."' value='".h($v)."'".($v==$X?" checked":"").">".h($W)."</label>$Te";return$J;}function
confirm($Cd="",$Re="qsl('input')"){return
script("$Re.onclick = () => confirm('".($Cd?js_escape($Cd):lang(7))."');","");}function
print_fieldset($r,$kd,$cg=false){echo"<fieldset><legend>","<a href='#fieldset-$r'>$kd</a>",script("qsl('a').onclick = partial(toggle, 'fieldset-$r');",""),"</legend>","<div id='fieldset-$r'".($cg?"":" class='hidden'").">\n";}function
bold($Ba,$La=""){return($Ba?" class='active $La'":($La?" class='$La'":""));}function
js_escape($P){return
addcslashes($P,"\r\n'\\/");}function
pagination($E,$gb){return" ".($E==$gb?$E+1:'<a href="'.h(remove_from_uri("page|next").($E?"&page=$E".($_GET["next"]?"&next=".urlencode($_GET["next"]):""):"")).'">'.($E+1)."</a>");}function
hidden_fields(array$xe,array$Ic=array(),$te=''){$J=false;foreach($xe
as$v=>$W){if(!in_array($v,$Ic)){if(is_array($W))hidden_fields($W,array(),$v);else{$J=true;echo
input_hidden(($te?$te."[$v]":$v),$W);}}}return$J;}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($Pc){$vd="max_file_uploads";$wd=ini_get($vd);$Qf="upload_max_filesize";$Rf=ini_get($Qf);return(ini_bool("file_uploads")?$Pc.script("qsl('input[type=\"file\"]').onchange = partialArg(fileChange, "."$wd, '".lang(8,"$vd = $wd")."', ".ini_bytes("upload_max_filesize").", '".lang(8,"$Qf = $Rf")."')"):lang(9));}function
enum_input($S,$b,array$k,$X,$Db=""){preg_match_all("~'((?:[^']|'')*)'~",$k["length"],$td);$te=($k["type"]=="enum"?"val-":"");$Ia=(is_array($X)?in_array("null",$X):$X===null);$J=($k["null"]&&$te?"<label><input type='$S'$b value='null'".($Ia?" checked":"")."><i>$Db</i></label>":"");foreach($td[1]as$W){$W=stripcslashes(str_replace("''","'",$W));$Ia=(is_array($X)?in_array($te.$W,$X):$X===$W);$J
.=" <label><input type='$S'$b value='".h($te.$W)."'".($Ia?' checked':'').'>'.h(adminer()->editVal($W,$k)).'</label>';}return$J;}function
input(array$k,$X,$o,$sa=false){$A=h(bracket_escape($k["field"]));echo"<td class='function'>";if(is_array($X)&&!$o)$o="json";$Zc=($o=="json"||preg_match('~^jsonb?$~',$k["full_type"]));if($Zc&&$X!=''&&(JUSH!="pgsql"||$k["type"]!="json"))$X=json_encode(is_array($X)?$X:json_decode($X),128|64|256);$He=(JUSH=="mssql"&&$k["auto_increment"]);if($He&&!$_POST["save"])$o=null;$mc=(isset($_GET["select"])||$He?array("orig"=>lang(10)):array())+adminer()->editFunctions($k);$Gb=driver()->enumLength($k);if($Gb){$k["type"]="enum";$k["length"]=$Gb;}$b=" name='fields[$A]".($k["type"]=="enum"||$k["type"]=="set"?"[]":"")."'".($sa?" autofocus":"");echo
driver()->unconvertFunction($k)." ";$Q=$_GET["edit"]?:$_GET["select"];if($k["type"]=="enum")echo
h($mc[""])."<td>".adminer()->editInput($Q,$k,$b,$X);else{$vc=(in_array($o,$mc)||isset($mc[$o]));echo(count($mc)>1?"<select name='function[$A]'>".optionlist($mc,$o===null||$vc?$o:"")."</select>".on_help("event.target.value.replace(/^SQL\$/, '')",1).script("qsl('select').onchange = functionChange;",""):h(reset($mc))).'<td>';$Pc=adminer()->editInput($Q,$k,$b,$X);if($Pc!="")echo$Pc;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-$A'>";elseif($Zc)echo"<textarea$b cols='50' rows='12' class='jush-js'>".h($X).'</textarea>';elseif(($sf=preg_match('~text|lob|memo~i',$k["type"]))||preg_match("~\n~",$X)){if($sf&&JUSH!="sqlite")$b
.=" cols='50' rows='12'";else{$L=min(12,substr_count($X,"\n")+1);$b
.=" cols='30' rows='$L'";}echo"<textarea$b>".h($X).'</textarea>';}else{$If=driver()->types();$_d=(!preg_match('~int~',$k["type"])&&preg_match('~^(\d+)(,(\d+))?$~',$k["length"],$z)?((preg_match("~binary~",$k["type"])?2:1)*$z[1]+($z[3]?1:0)+($z[2]&&!$k["unsigned"]?1:0)):($If[$k["type"]]?$If[$k["type"]]+($k["unsigned"]?0:1):0));if(JUSH=='sql'&&min_version(5.6)&&preg_match('~time~',$k["type"]))$_d+=7;echo"<input".((!$vc||$o==="")&&preg_match('~(?<!o)int(?!er)~',$k["type"])&&!preg_match('~\[\]~',$k["full_type"])?" type='number'":"")." value='".h($X)."'".($_d?" data-maxlength='$_d'":"").(preg_match('~char|binary~',$k["type"])&&$_d>20?" size='".($_d>99?60:40)."'":"")."$b>";}echo
adminer()->editHint($Q,$k,$X);$Zb=0;foreach($mc
as$v=>$W){if($v===""||!$W)break;$Zb++;}if($Zb&&count($mc)>1)echo
script("qsl('td').oninput = partial(skipOriginal, $Zb);");}}function
process_input(array$k){$s=bracket_escape($k["field"]);$o=idx($_POST["function"],$s);if($o=="orig")return(preg_match('~^CURRENT_TIMESTAMP~i',$k["on_update"])?idf_escape($k["field"]):false);if($o=="NULL")return"NULL";if(is_blob($k)&&ini_bool("file_uploads")){$Wb=get_file("fields-$s");if(!is_string($Wb))return
false;return
driver()->quoteBinary($Wb);}$X=idx($_POST["fields"],$s);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($k["type"]=="set")$X=implode(",",(array)$X);if($o=="json"){$o="";$X=json_decode($X,true);if(!is_array($X))return
false;return$X;}return
adminer()->processInput($k,$X,$o);}function
search_tables(){$_GET["where"][0]["val"]=$_POST["query"];$Se="<ul>\n";foreach(table_status('',true)as$Q=>$R){$A=adminer()->tableName($R);if(isset($R["Engine"])&&$A!=""&&(!$_POST["tables"]||in_array($Q,$_POST["tables"]))){$I=connection()->query("SELECT".limit("1 FROM ".table($Q)," WHERE ".implode(" AND ",adminer()->selectSearchProcess(fields($Q),array())),1));if(!$I||$I->fetch_row()){$ve="<a href='".h(ME."select=".urlencode($Q)."&where[0][op]=".urlencode($_GET["where"][0]["op"])."&where[0][val]=".urlencode($_GET["where"][0]["val"]))."'>$A</a>";echo"$Se<li>".($I?$ve:"<p class='error'>$ve: ".error())."\n";$Se="";}}}echo($Se?"<p class='message'>".lang(11):"</ul>")."\n";}function
on_help($Sa,$Ze=0){return
script("mixin(qsl('select, input'), {onmouseover: function (event) { helpMouseover.call(this, event, $Sa, $Ze) }, onmouseout: helpMouseout});","");}function
edit_form($Q,array$l,$K,$T,$j=''){$pf=adminer()->tableName(table_status1($Q,true));page_header(($T?lang(12):lang(13)),$j,array("select"=>array($Q,$pf)),$pf);adminer()->editRowPrint($Q,$l,$K,$T);if($K===false){echo"<p class='error'>".lang(14)."\n";return;}echo"<form action='' method='post' enctype='multipart/form-data' id='form'>\n";$zb=false;if(!$l)echo"<p class='error'>".lang(15)."\n";else{echo"<table class='layout nowrap'>".script("qsl('table').onkeydown = editingKeydown;");$sa=!$_POST;foreach($l
as$A=>$k){echo"<tr><th>".adminer()->fieldName($k);$i=idx($_GET["set"],bracket_escape($A));if($i===null){$i=$k["default"];if($k["type"]=="bit"&&preg_match("~^b'([01]*)'\$~",$i,$Fe))$i=$Fe[1];if(JUSH=="sql"&&preg_match('~binary~',$k["type"]))$i=bin2hex($i);}$X=($K!==null?($K[$A]!=""&&JUSH=="sql"&&preg_match("~enum|set~",$k["type"])&&is_array($K[$A])?implode(",",$K[$A]):(is_bool($K[$A])?+$K[$A]:$K[$A])):(!$T&&$k["auto_increment"]?"":(isset($_GET["select"])?false:$i)));if(!$_POST["save"]&&is_string($X))$X=adminer()->editVal($X,$k);if(($T&&!isset($k["privileges"]["update"]))||$k["generated"])echo"<td class='function'><td>".select_value($X,'',$k,null);else{$zb=true;$o=($_POST["save"]?idx($_POST["function"],$A,""):($T&&preg_match('~^CURRENT_TIMESTAMP~i',$k["on_update"])?"now":($X===false?null:($X!==null?'':'NULL'))));if(!$_POST&&!$T&&$X==$k["default"]&&preg_match('~^[\w.]+\(~',$X))$o="SQL";if(preg_match("~time~",$k["type"])&&preg_match('~^CURRENT_TIMESTAMP~i',$X)){$X="";$o="now";}if($k["type"]=="uuid"&&$X=="uuid()"){$X="";$o="uuid";}if($sa!==false)$sa=($k["auto_increment"]||$o=="now"||$o=="uuid"?null:true);input($k,$X,$o,$sa);if($sa)$sa=false;}}if(!support("table")&&!fields($Q))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[]'>";echo"</table>\n";}echo"<p>\n";if($zb){echo"<input type='submit' value='".lang(16)."'>\n";if(!isset($_GET["select"]))echo"<input type='submit' name='insert' value='".($T?lang(17):lang(18))."' title='Ctrl+Shift+Enter'>\n",($T?script("qsl('input').onclick = function () { return !ajaxForm(this.form, '".lang(19)."…', this); };"):"");}echo($T?"<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($P,$ld=80,$lf=""){if(!preg_match("(^(".repeat_pattern("[\t\r\n -\x{10FFFF}]",$ld).")($)?)u",$P,$z))preg_match("(^(".repeat_pattern("[\t\r\n -~]",$ld).")($)?)",$P,$z);return
h($z[1]).$lf.(isset($z[2])?"":"<i>…</i>");}function
icon($Fc,$A,$Ec,$xf){return"<button type='submit' ".($A?"name='$A'":"draggable='true'")." title='".h($xf)."' class='icon icon-$Fc".($A?"":" jsonly")."'><span>$Ec</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!ZXèrEdRH;lf\ns\$K`}Ք7jx`d%j]4YHbaWYx.2	LJyzeABY%T\nk00JMeeNދ8@9תWi@-\0bKK4 w3̘DڊVTBTy\\LS0\\ :~2EeIMe('HMNUrA@<QT\0)ϝ:]\nE6A22պ?\$ΚFC1VV'j|RLaʜU\rXe饻70_s	z8N	\"@#9dVL;H64XnaK ^	)2\nYv]>G\\u]ZF`D\r \njEo!!K73.Nm]:s]яLv=	,MTfyv7A23k\$JE]uEջ>n%䯨YOJfSsʻa8`wW[LY޲_2`)i,f#Mn8s-AتDwTNɻj%ix;`L*92KlS;AqZԐl;B1AJb)54t\r\rR^SjWzśM9{kIv\nLCJ7GSf8ٔf5BLH{~` [`뀏q2FB|hvkU{~7ˀ`pmuK(k{uD\rzݶ>f5]E4|Ә3ŎgֿfDNc(f/wPsQNuH ;m!\0V9H\n:f4ܡJ\\i1[Zo1aQG&,k׷ējbl0ufp1RIz[]wrNvdIznn8`{;31I\r]s'ZRwn\0ݳ ]qę}SNU<|9¤}i2x~bSەc5f&m:^nhdauMr?rxe{`˾_>RG<LsޡQo:񈰾V7L3COMȜ2e0NN.l9fhh2}+B;T0rxKf9&C,=(j,/@0^P<o>CH`DXOk7\$KΚM̝,\0C#\rƄ\0PZro^g	\\FdO\$)vbx/P29@Hnb-d1 [nЬ.IB\rPP\"^.Fh\0\r\0\n`	@ 	no	@@\n1 	\0j@q`13\0	12	 \r\0i`fΛ\0\0f\0j\nf`	 \n`@\$n=`\0\0nI0&B|t#*dd\r4\rPĈ.0\r\01Q\n\0_ =>1G \0\n@ fQRˠ@ݒ@F\r@JLO\$%\n>Ne]rjʈ7i&\$0%gڰRrۍ/#Da%Ff%n(YoY\0ҍ'FoJr\rw\$MKZs%S'P-G-R+}.	\n)Ҕ-m\$r\0'0?12.rj~\0IV9+4Hh\n\"b,2P+Djut@q1r)pY/kCc\"CI\rzޭJ-s(&fc1\"\$ʼtގ]OP\r'\rTԍL[zn*7ExL@B\"`\"es Sf>2\r`h\rV%!M:tM\r#C06H,敉 ICПOtT3:p~/4-Rt4DS-7r32C12\r2]I30x?.?oK'B=2?&AIAԱ/`ALb]B-\"rK4㢾\nS(]s~lLE0+*cKoﮧ,!A?KQG)Q/7sL+MU TRs7=/T˥U*\\@ȤJ&͢");}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(preg_match('~^/[^/]~',$_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,cookie_path(),"",HTTPS,true);session_start();}if(function_exists("get_magic_quotes_gpc")&&get_magic_quotes_gpc()){$_GET=remove_slashes($_GET,$Yb);$_POST=remove_slashes($_POST,$Yb);$_COOKIE=remove_slashes($_COOKIE,$Yb);}if(function_exists("get_magic_quotes_runtime")&&get_magic_quotes_runtime())set_magic_quotes_runtime(false);@set_time_limit(0);@ini_set("precision",'16');function
lang($s,$B=null){if(is_string($s)){$qe=array_search($s,get_translations("en"));if($qe!==false)$s=$qe;}$ka=func_get_args();$ka[0]=Lang::$translations[$s]?:$s;return
call_user_func_array('Adminer\lang_format',$ka);}function
lang_format($Ef,$B=null){if(is_array($Ef)){$qe=($B==1?0:(LANG=='cs'||LANG=='sk'?($B&&$B<5?1:2):(LANG=='fr'?(!$B?0:1):(LANG=='pl'?($B%10>1&&$B%10<5&&$B/10%10!=1?1:2):(LANG=='sl'?($B%100==1?0:($B%100==2?1:($B%100==3||$B%100==4?2:3))):(LANG=='lt'?($B%10==1&&$B%100!=11?0:($B%10>1&&$B/10%10!=1?1:2)):(LANG=='lv'?($B%10==1&&$B%100!=11?0:($B?1:2)):(in_array(LANG,array('bs','hr','ru','sr','uk'))?($B%10==1&&$B%100!=11?0:($B%10>1&&$B%10<5&&$B/10%10!=1?1:2)):1))))))));$Ef=$Ef[$qe];}$Ef=str_replace("'",'’',$Ef);$ka=func_get_args();array_shift($ka);$ic=str_replace("%d","%s",$Ef);if($ic!=$Ef)$ka[0]=format_number($B);return
vsprintf($ic,$ka);}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'=>'हिन्दी','hr'=>'Hrvatski','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"])),$td,PREG_SET_ORDER);foreach($td
as$z)$ca[$z[1]]=(isset($z[3])?$z[3]:1);arsort($ca);foreach($ca
as$v=>$ye){if(idx(langs(),$v)){$aa=$v;break;}$v=preg_replace('~-.*~','',$v);if(!isset($ca[$v])&&idx(langs(),$v)){$aa=$v;break;}}}define('Adminer\LANG',$aa);class
Lang{static$translations;}Lang::$translations=(array)$_SESSION["translations"];if($_SESSION["translations_version"]!=LANG.
1693436709){Lang::$translations=array();$_SESSION["translations_version"]=LANG.
1693436709;}if(!Lang::$translations){Lang::$translations=get_translations(LANG);$_SESSION["translations"]=Lang::$translations;}function
get_translations($hd){switch($hd){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#{VFp:?\rc:ϯ`3c\n2*F9@:Ȋz ɎƟc06Ap!,-\"kMmpcs0vWx7{\rì<\r\\W%6#B7\riI\\#& ݎ&4،\r\nC@:t㾄\"[|D7}.\r>x:үb%-ex0>fC`ٛAgyheV~9i:]5\$H[Ev4\r@Zb+c8,s*QRbct7tuG%H+3cx-6lt/@]\00pHh_4}ފ@\rɄBjpx%ȳ)iu]'r4jȳ2	Ct~Q<v%ۗ{\$81#L66t\ra&A\0C\naH#4aU-ݒV \$D1ڨ\$D]Bz%[Ij-EXK{\"8 ,mI_'!5c2IYKFyH%2m\rn5lum!BxS\nŷPJ1'iI\n#{QAV_vfi\"dT`Q	d09X@rw\$hl0A 1	3TQתg_3ъ3)2lz9hdM \nLs|\$\$L	iu\$H\$`lag0֤  ֹ*C29eĖWA\0U\n(pڮ#l̡	<Ί2|e\rj;<\rܤ2	sAJH(PŨ=AH\nf!q{i[*0ˆp3pيʜ^M@VJ0\n\nPP&3T\ni*APCľ-ʢZ\$a^TԅPc*n 9uQw<%-cLk(";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lVk&9`c\n\r06A,Nʬ\$)ri *\rPd!\0yc06`3XZ(37.W0@REĀhxVK@ٕ\0ÎtWp@# ۘZ{\r#\$E_.\"3:xͅ(p^2ZAQuh5<CRJȲ([%\$}+폤#2@PcK.ҽw%r5st#GKzZxE`#htCko@W!5үC\"ho7B~.L57R3v.\n\0@N1T݃A!حP@΃PE&\n]!FÛMiE`wδ) \0\\T\r!6/xBX\"\"%0c#*,@p\0rGM\$4uRc<4IDG\0|,oXÜtP9h:SJH;~B	cUHd>3R仍a@wplo^ Caw&!I/0dHL@!0<w&gѺTIIQiܱDJEH!'	 %\$6R%ƨПB`L6%&T0aK&ǀK'I&dn'ꗰNȐ6>޴D%ӞDv歁\0P	L*b('Y_t!B&A:Xq!Ԉ2KQ}4%4QrE*^ZIÍdt[M=Jgk\n (\n)3jNx8Ķ\0S\n!0-ushF\nBѥߤTA)*1#lAܕEyGٝYTC<5EJ,\nOTeMpN a9WKHc\rlc)W0 4f\0F\n]ْT.EM1(ZŦź*#0D)Y#4eP,VDfɊP/!%\"J.	|[\0D}RDXʚ\"Z\rc(Z}t\roĄIXLHu	b~zTSFElXvJ΅%ZJqV[^!4yf^{[AB\0";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#oLWh1e6`3z0%aCN.\$GS|/1v\"{O)7.K.\"\n\"N))Kf=0ϱN;?U\n:L\$3>)Z1)Ͽ3T]Yp%ϣP(cЯHФ貰!\"i4_]3dW*36ⲧ1#H*^c@440z\r8a^\\_K	\\3Z#\n!ј^	d07v\"Uy\n!X|czln!	+GhҊPlĔAP[0tldUaGϵ_o;.2Xˠl^#c*5;\nB	S;Dq1'au4Ua=hbDiAh@m/X!0@Hl\r1r\rB1P0ua7v+%Ht\r\0]7(̈9?ؠ#z!xZcmhP@Pԡ34P lx<tM\"чi\"TD0\$ߗ\0CRPTk	=yLih!): G^b!i1x>Kz*\$pt)K(u^TWtCh\r!]@d᪦0\0F50nNb[k#|EUd;dϣb\0y\$ ɉ8팷M;%8̝u\rV؇/6Dqʬ5w\\L2a {(WEBy3m!8Dz<[oiE\rZCL1Y\$+WZNڼLTΈ']%kq5?r=}։Y<Hdߗ(MVKc83rrm\n\rj\\mK:.̠@L7eskB0TUrGIpJViZ[sm8y \0/aԱ(ɇ/N&:b)tUd~u́OE1#qF)<<uNV!&䕓OkG1\$l&᳓zv365'K`79ǣ!S-*@A[f2ؓBjD\$0 s<\\zB8ZPrGvݳ\$Q펋)m6lWwm\ngdo.Q4Pю'vwܦu)D%֩I33k7aZ6M7QJmD9(+Tı!%QZKGqX h\nSA&I\$&xSJqdϻ.b\n4ql  kh\"X";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еo6\\4_MR\nùYo(=վҺVbŶ36F֢OeҒvbx=g(`ZWc&,e)v'٩ҼIzpCCHnĶYDC6jl>yN	0@ f4@:;\\a9`7 (n7Lm6<Q;ǅϦTiҔ@!\$Ɋc˕֯`+ܕ]ɔ1-?\$+C.i [YXDX(PK:K!M\$PRo~L,Rp^.fS9#:n'E\0Vj.E!r4Fiq5''	-ƞF\$XBW\"}<\\NxEݰD:c.|MC%Ϫ^}pB<cAOз[L/);JE3y<5^]:<&Ba\n (RPטӣr]Af2\$ZXC`i^9hƲqTfO3du\nK /@9*2co#GGJd|u5ZEr}(9yڋ`CYWTnY<Ԣic4J4pdA) d~%bi&3Z紎R0%<r2+K6Қ,4=9R]=]XFMU!f6m6!j/\nfpQXHS{À\r>`d7\\/(RmVVT\n<)B7JrhH4b\"\\V*%\$KX6lȼ/([/F\n'VTJ.YO\0S\n!2AR#X`[YNwp벹\\\nrYWXp=V>:6O-SmIXdA	IY\0\$2M4Sdr^-NQ y\\\0/E*nFB/QR]{9]qu8\$aH ˘Oa)(lwz+(lM4*@A6tz	FŪ2]SʦsJYbALצWٟD?Ha!jƗ&F~r[,ELy#Y\\u-f\"݆Y*fFtV^̱?(w UfQfL{+Tʩ6QJۄDUg9CС?u08)цKyJTӬ\r~'ײ	gȥ̾`3x@+ccL!Wrbuy~iDlT<!Cb'XNtJ?0Q- ";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	_Fe7mn\r0̚)..@P9G \rH1c:ab9cfYcT7P9062G7)\0.`jI#&o4cXC@:tP,8^baxDn~dWP0e艡ty\r+Q1j@&(80#H4vkŲlF;횒q[üUx6C^7~T(U:CC+:2P0'B0{*;KJB_2 H3(eAf?ZQ&cI\\s*QN?J=h@\$U8 \0#VJi!*t7hrbaZsG俅D:5U< 	ܰ3e	Y-;sd\n798uχ\$ΠcF3\$tJ|#A)EG/gaL)`@#C'䅆G\"R1T\"P1q/05:G\\Ĩ`aK%`\\%\$%lM\rk`ܑ/:Vj-IG9pIhGPYg\n<)EE\n4G%̇GS˛!4% ]Ɣ)vG*aGHDI0\"\\*sV\0B` XH!1	HȨćDKNЃC\nHiHhI)&ՙ:]Ii9)TAIn(}lBfr09XS|5QSA\rVɠk8DvI-*>0:\0bfPh8ZZG @\r;@]RMA7+R\$6E5PbMJwb:M@m&7b՘MKi_DyJmy07O9Yʀ\n\nȣUz\\2oL ]%OIK~*6كL!׉ (\$BWDZF*7{7Ґ:AJ%PSah-@";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(Ϸ\"0<7#e9Nb0\r0\nI	 :\$Hqt7\"ިCp\"M͘A</X؎Y3-,%#pꪅR\$&&3H*5ʄ3ZT\n#&re#5VD49Ax^;r%l!~,ѳ1p^۽vJ\\Y4^:3\"F#F	;ҕŰ# ]XFl6ѵmݫ4I]nvn(fV8få)r	@59d2JIw 4o\nڵ2\r00Ј2:;Ĉ&h ~8pMI(9^T>H՜[a[ep !!ȋ\n\n0)(kDcIBHݜFIjoD83^_3С-ՁO!\$_M\rؗCny=e	:P΍X:\n5!4@G0Y{C) ~\"ࠇn'\$I	#lˋ'gNʂDkA\$I48 a4Tx\r@DCy0:':a+(\"?CȅpΌ \nO:ZYB*&VtN\\dB3r,e:a!ӶHF0	H`\nR:R&0X=`0rh࢘L^mI&w✐e`&97d]XR'e/8!7r<kXX\0L&=\r4T*nEhF;T5\\FNCIEJ]<@t~8*@Ac&7zJzDKHy*5HR_48.iqGf\0Xʚh(?m,O!'JiZOatOiC#y&f&O#76 P\r%m!H\n6tЂq*WV&ʨdE@Pa5y4ҵYزl*G+Y9s>Aò\0";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XbP:D\"Rz0̜*PMZLS#B\"C\"vI `@=f6#YRhہ:#NV6xߘy~m	fuU9#\n*hsm[&ߗ<NCpky'w@	p%؄۴cYn:UbɲuV3:\0tdOBx9 ފO~Az4ccV(e`5cÜgߦˈ u)YwY{JY\rO9V<7Pcv;G>.wnx\$LHnLՒNzY\\y'2X\"Ci\rĬ*TKCVX!RHI:>Rn]<`a|>F.XhtC\r1,]I4-(Xx\\;#adf=PBVg(d\0#j[|\nN-d2Bq	\rIP@K1ŘH]zfd썑L\ndf#Ld\"p^Fu0!= J	L}GI\$^ojd00.=\nd1 U\r`LHy\r:71&8dU16HLh\0V\"`!v|µwTX!Db弙 /xN8rvx6\rieZILmm8sVO\naPAZj.6_\ne|7@\n<4^	Y+/A\0S\n!0^Lr3ho\$#Iy	<:ҵ&d\n7Dh=`AV\$6IzVK5~֫82ƊS\0&kVYhnRƦ*uDFۜdDm屷D6(Y'ViĔKA;gVYd2Șz'0YᲫ1fTUaT*`Z'TY_om_n_͢ԑً	7\0\\_\$HQ!@?BiIpc6론Mv7.S[k?fd9n(dI1|d0a=QYOU!bTjI *#J+@PC'dTsKIE:3a.=\n	dA+\nC&G ;\$esjR7p7b@";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W1U;ZX6XP774#bn;J(\n}+h:c9c0DLh\$0QFCk:A@pî0wc<C6*\r\r>'@ɇ!C1J,P\0ЙD46xȮX1#8^%2\r4^s2T)\"_u>/^˰ahA`.42h:Ah	]qÛgx:ghn9iZecYڝ\$YU@0[IPK{0ksN#\"8;( 60{MƓS!\0Ũ_]~3Y%}_\0a~X4\$(0K[E;fIjӨ8iZ@@PB\n	)lԊe\nY=EfR9.U}CK3%u;v`s&\n<BEd\nTO|H_\nCawBadFT`S\nAP[1Ј\"Ǡ{q#ĀCdeMf&aȻs\rd̑I@m@8VAcJ)!}3\nYK+q&D˛ߔ1 (xS\nʶ\0\"\$T0NNg82'҄s\nDd@bKvS*mD2P\rqgweB,j\naD&0oP(,R~P\"'c\r)J8Lՙ0PeVӡ6C09<Qe';D\r5L[9F!gt)śT*`qC(g?M.tXj1JlP>szai!t0,f\n\0\nb y\"Za?pv{7SBd5A3XM\n;OEX@Q 4D22L8	TVC+iYB!RWbD9̓ZT@)RZi,";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\$T\rt/83ӳRô X؆t5h3\r`6\rԅ\"\rhszKg\r\rp)mf(k,܄\r	jԕ\rp\"\nnrgHkViNF'چ.ڪ<7k~CvȒfy[m\0(S#%ܩ=(Nc_Z.[3хtl!\\18^+CxDB,;-h׊pCjYKA3(\\:#Cs<oR2SYrMAlx9j~YT:ej+u;GlÞ-N޻(x6<enbCz&9G6uڪ	H4/sX.ȕ'҄x/d\"b,	{d.P-\ndz\n5`0i]B\n\"@'@gM+܂(LÛpes&ˢ:CA\$ܼ!2ŨSu\\Ñx̴?1(CAD/ܡgT4/S\nr1Q-U2!O42BC?j&tL	\$D2XeBǆDHEVi8@).QrXpHH@O8E\\tȱ\$aL)czPrv*+;I<by>%DKuRLnKH4\\\rCh#nWN\$\n9vnlr%bwNM[ iy>kĒ\0 -QLpL:N<=-?>99'd{H9BN	F@u|RăYț	\rTȭZQQ	HW> P9mF]\\+\"T22brM*EECA'Flϥ+:>#G%CeU=Qg3u]K\r\"d6DXKN\r_bl!η&\nM,,G~*@A y&Hm1ejcʚ\\.H{cM(uN<H	b֛z\nMdGHm^)j[{\reI9HGnl&3Rȳ RN4a**{b1Գ!UY\n7+~~5]kLh8J\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#)	c8Uk\rL37sQ\n:5_դu\"JsuS	.d(4%sц\$n?\\0d#/)BTfL[]Dc4fYz)DFOaa3cK S-|'47˫7\\)Oи?ctDox?\0Xq)dlV\"PHc)ɵ36(@CXs\0Ai9@\r8f4@:;\\bURJD3xdj:7zm7v\\@,\$RyCz,'\"2JjADd) RbJK*9TBI拱~08Lk7ܣttặvՁx\"hL*6bӚD2%rU[4kI!B*Hi<4Ixa93,ǠfP[N4LrJ\0!0deLjE*SQՆZ 6ŞjÂ6UC2D:0ƶfX6hiS3V 4z;NIfqznDTDKJXD\0M1AI)h\0\0(,GvxSb.) N64ڟŢMT7Ko9E(g-HHفgz<ІN9TG*.ncCB5vb/0C̀7\0ϭsaHHcP3Z/Mm:,2{DNEVNR+BLۺTBEO8RV3J̼<BGB\r~ZTp\"33.E,*\n=sJ\0T\\@Q8KQ!DŽt\$lR2+!e]'\$12AaCØs*xS\nHN9#N\rI)̌\nU2w \\#j/ld\\OsuS>ñax+)pk\$*V\\2KD@fmF1#eмvkagd'ltY/2buYZzPHrRc\\['`U+,(d\\l\rw5a,%w@'\"\"\r1˒q	ktɓ.guՠQ	g-'1񓓤R*\\JQ\"\00-,QNJلgl(y9X\nsy\$B^&K2}mpxoƹJ349kzbJ9N(9:fzX=0`I*c]NFhcŜS*Ix2Z=@2cLM?VŇd#`U8n&-AU#r=qɐ(.S% *;.X498k_XyZ.QJշȳo()7))!~ۙI޾3!@";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ely'P*c=/\r\r\"F)݈w}!u\n:2\nmA!HC\"v\r?n62@O5ȡT5F*3pօBև!\02gxX\rzja\0D49Ax^;uAr3(_:.Au	gr)}eg𦤅0H¶h쉲B\n9C+8\r1[Y<;˲N׶]/s.EZC%wB5]ʆ<weޔ02V*>h[څ7>2ǯ8]GHyfKe0F\\y1A)!fSjIzrVJrW:^)\n@\$C!`t]	94_r4A9WA1],HaBH/t{A\rCFi./l`	twyH2a3[{!ĖePThZaL)h|C\$@+\$ظ	!L|g6Sv]\0Eۚ9d_O@Re1eEB\\+jAșBA萈eN*\\7yjQ+\n{\"f.&{O\naP7I#7:@z\"VBu	/oM#Ĥ4qd]]0B` iH\0F\nL4ɚn\"BP#I]\"N&fbGPA1>\0,[y\"D΅PQ2G7\r3^jMHￚLI鄱#dܢ4DՂv]&T4q21XUAb*Y(TW/IA<Yz͒6<W(qM)>W*IH=` Lm<&*TJ1\$h]:h:=\r:_;Raȸ1dI\\Td厽9Y\$V7rŢ7QB-zl_Y[=-'\n@e%!Z";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(ˬsF+\$#;XR\r27Q472}B@R\r(7#k\\<:c 9èD9#00C\rYH,R6dZ˶\$y#5t#8@ ш!vB9RoкD49Ax^;r(As3^20}WWT&?56cJ>P8\$H8!i`ӤK#j|L8M@]z潰l[&ʹV~7n6%yc,\$çX=7.SЕ#J*7bϋ\$:خͪҳ,Nv\n;9/ZP#	;9xd3:'%0At-\noE)C(FxxL,<C[!g).@PP	7.!ڐi\$ꡠWNIsb98	x3頂=\rf4Z~=r|CcY^q]th==\$#a'Ŋ0 aL)gL1;ecCkrd,Kqb\$P\" Ct%|Ma̸0nA-1,Axt˨qrgl!)\"dW%ynN\\a\$@'0TZ19>:RI\"^\rRH>yr3DDA	uJM<XGsSǂ\0Ba08~l\0!R1FD-\00042ω=hp<*9UFB(<%rP|5#WJ	jfpRc2џg'ޑb'!\rV+-<6zeVAT*`Zsy48R%984S,[\\5Cļ23HxMa<ZlpAӖ:~h9䧑HMPQXvfZ:&AƑh?Ȕ2_\$ddHXIJ9dA-Y\rS3hxa`+TaŪDܰt2Ʌ\"MGFĄ4";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YyQ 6:NlIHl<˸k&*18N39QDe(:ŒjbA\$d,*h͎hD+d@;hf.ijZ7nӢˣ6jT!Xv*\rP]u{\02\r|T4U0C3:xۅ9Eh!xk#7}4!oZQ9	B~ʬ+i<\"J7rb\"e!.@\\+\nX.պ^]vܻ܊sx!{/J\"6\"Jz\n56Ci)8%gK6oLPC*<&#jQ!4仠Rt\\!-p@Hl\r10r\r.̾1P0ua7uhɮxL{\r0D('5U^ȑGrEa*q@@PzДCrNGEm3|A ;A\0tb9@iA˨3~C\\\\5RRscA.EHqbKI\\*0̚⎋7\0<g.pCrsC':aW04\rk䫣_+lbj2T.LfaEtO&tA\$XؤO\$2\"\n|upBHP^<\rCxuYLfqf<8X̯2,\rj:hl2Q{1L6*r=\r8ȌQR,Zvj{R0\0JN4PqDd9)Sep,*pߊ30\$L(H}<#jh\"c8>IS^I*%j8f0oM[z]ĭ~qd+.-t9:۪.ER 	FQ|9: \n\rh˛o%;א0-г[qt}76Amм]\"a+gd)[SID@oQ\".'ıb172NN:U޴e{p?Uv Q똩UkQ/dD2Vڡ{&XDKWb?(> uefobZn@XS\riU\"RƦqT^Y_8l󄭹x4hl+s؛%IbpTE";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:%ͨ}'Pو-r39>ќj0TH\r\r2\nmI\"en})rje\".RYBA\rbp3ZiKo.%&v΂:v#h ;Zrz:n2kV^\0P{Xvמ)L{-mN@ \\iȢUB3Кtl#]]{Op}\r#j5*X7C۽HdpjlׯbS\"t@Ag\\v:rw20kJ*.G<7#YC)1 v+ДC^y&\$ 3u \0lZRGDsL;q-VF.őS8	X%&xRa	vMVx \n (̸A[@SK,6FWhn@d*H`@\n.25\"4 CBBL*`Lɩ%!Y!LnPh@0p8n?ΘdK?&FCl6D6\$%N%݅\0F\r.Ba^Cj2sc>l79cMA0PrHMsR#S3`%!%4'T.L[~ b\\ps5F\nJ>R)lqTB<'Rq!D.bz\n]2w3ΌjCLQ	!@PMqǭ&mPdع(@ǠN	y3,@t2'N~̀a,7غ8sl>pe,0fJB\r;R}M==\0laH'oIyC¨T@\rtT7Ơ&YW8{15.\$|5jG8eY(f@Q6F!3zĽ}ft'y~IvTüTenRTj)8i\\3&i\n>2nU\r&PW!A{*͑j;/*euMX\n\nXi\n\$xY̕Ƚ#\\";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✑P:N2YS	THmzH).sw1^@¢82ˠAz4*0X̡vˣ0Ӻ5:m7bҪ:ߢHZ63Tzj:Kɭ]3N\0.#V06+7\ri̋-dF#&#VnÌD4<CxӅ\$\$h!}STxDvlGsVpl8cm%h{e\$M5·h \$?/44s@:t]'Mu\\vwa~7Y8Je:.vB*R1kXDG8n;trQjk4MS`!0#/<6hp8Bq8 h|-c߆a,EV#GSg ǂ\nyQ=` MSd(ApQ#`Ni-\$7a\n)M&(9/I3yc +3NR-&4^L-SDIJ`+XBjuYi\$WbM|8H\\*'%8q\$P7hR.8%NFJw9%6PXy'k,͊NgN,<\07\r csڜI3:Nal78'Bl_O&LȎV?a\"DfxS\n\0,`5?AIf	9}d\"(gt:Tz\$|eVCwqqb]\n\$Ӡtl\r<SQ8)\0)F\n}?	bbPc\n>12=	8ȡČJNֱS\0-ob=:	,6O\\JA&\0kuv&ЛML4e\r3VLjgEjjCݚн'TLrvP(rO'fP*@AōM,׫>R}l	{;b.cX`ePiSQ&ْ~JlNSamCj*e^:-f*S-=)\0Wf(@)-z&F-HNb|ÕL((Q\$#hӊqIj77P0Fi5wz\n)(ןwXˋ\nA\$e3,`;Y2\$1g1<MHR";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`,|Op2\0SI\\ iPQF1*Z5+pUKvaX2hl)R7p\\Ӑٹl\"PYfIٔrD7N)tp3Z,#&nz2 #D49Ax^;sSĬz(h@^}YVԎX֒#2UBu6!+29Ջ4op;tW7qrAhɎ^]̣j'((lB\nۮPKjp164sv3P\\{&0 ?G\n;ᘭ1:Øs`γt\r@	'%WVzF%𜅃;=6[BH\n7c\0()`~q/\"\$LlJ!bO1x|Pͩ+#X4&T>Y+b]%C0VA/`^1vqbfi+\nR?eqHiaʥ	(!%\")(ak\$*BS\nAGC 	8 9=Bӈ]F@\\b&⦹I1&d6te<(Eq\03Z&2՞U6`˒2ږXp\r@~ȡm!l:ޝx8L%8	L*|A\0gBSj0O\$)1'f)k~kC\$~L@Ld)]\\L~x#Hv|̪&4ݬfc	ߓ<Jhq4'SN2 )+GfHZ\\Mk1V8cB]BGg^g\n!!:IGU\$4!Ph8%	\\L+PamJ6v h|jLq(0D(c\"Tv*MgУ@S`ဦpSZ35ǝ&n	Y\"sH21TsPp\n\n\0sKPQ\".Dudf0k0*PuxeN_ŧ8/`ʣК-LӅ@PFx";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,x:\rEc\$\"Ѣ3Bڎ-*CrL#ie\r, <A,[u<n	+\$_}W%\nCp0b^sO\$C겭h2\rZ@I4@4/#0z\r8a^(]t@8_]%00AB>X%MSk4	f85fI)#jUHr[o\"/Hf˝gh6@nwk&܊5SZQq%^;xS`u18B+\$@`ZFо#L6\r\0ľ\r,^02c:#`3~(:\rо>@zU֪0\"<ѮQgI\\ \n (\0POAI_HлgQy|A٥.STa@i2w tj\0wzHa¼y!ĒdS/C?QTH{\"Hc},3ה_b`c)2fJ.h/BJG\nsk`S([CJ&TW&_g\0\"ݒBNKa~5\$:gayEԂЂa\\`䮇Il=_',ݹ'DFGWk,W(\$A\"Inĳ\"DYjc4_lhzAd6-B(aC)RR%t| hXD2(@5B{c\\0	 ENfnȱ J.htaQneeè ~a:yIyda&\"fǘta)ihvqڕãKI:vlHi9-#z[yܖ5a )0c*w\n5QMZ2.\$ZTӜ\$B]\$aEM6Q #Nj<Cliu%SB*DC\r7]q/\$";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\\\$hm 6x6)\" jJn\n״9'e>=iI̩JozLT4Wbͣ~q\r-̞\\M,N:ubXcXR笜2}jm 70#PXK\$|G~[{Sﵚ\0q0=A:@/hi\r98/@t\r1<&p~Шk!2~aݦfޠ	o.BhJj\rbmg	9؉ԼhB\\'9Uw\nF\n^)Ɨ<rK	2S2gE؅2g\ra9pb<Iq(<HLML-+ŸΓJDn\\ rRwPbvsSk(\\'<d`\r/Ĉa?)67B\\D!D2TB]٩A(,R7egӛw\nɣXI\0tTAO\$\n\n)#JB3\rBe;l\r+D s&ĒWtOx@ڣŪNbW8GT\" <#2\$ȵhc6`ʈL4s8a^JH(\$8c) zα%0RD+s7#-/ /FR=SSGN{w\\JWk*27(*gO1ш)tLhkg&I2= 1H3HL \\Аof2\n<)B5<V֦f/BJv-}+kq!~w\0R_q i6vQ	32 j\nC\0-H`?.ٵf2:i*;zO,N%'N;Sk1LSUS,'l Ps\rG0L<k]_2\r)=saO	?vbBl7+Gi-ކWTtup1MtTa[9-vSBL쌩է7~KcwOQIS;=[[s\$'8e)+Wn4o8t2h\\%ѕ|)^n:4qk2	G{jO+jsQZke-q:xňVR٫0xN6I[qnT.꼄[-AKL`?,ku-6iM,lPX{m{	O{MZö]˹Quz%7d9Qj){Zˏ_E6R\0";break;case"hr":$e="%(r4y@d0\rC) 7BbSoYm0\ryv7!Rl4B%!B)̅!\"DbqYa.pčF`1ƃQp9ftk4\n%NqAi3NQ6b!&CC!YYC7Ӎ!'Q8(LSBU9L:M51t=(_͆,0WףInM:3I!)5&Gifpeb\$M'n<(;Ie!̾~Ǒ\$P*޸CHְ-`IXKځMC<,h7	;&%!S0B5&XJ2:1s1q0JppHH23C7C6C8\nkB|\$j\nCEz 1@9Q@\$Bh\nb2hc<L<*|J(@ɸ\0x0-kZ04A^0\r?PCp̼8Z)UU\":I24t*C؈5cA7,B7Kp+>	JL.-*D@@*r趌2Swá`+%<r88!O24ZCxׇ,Yb(Yov+8ߨè7\\..P#.78Yd֕ej[}.~x2NAi6>]:fjsl\n\rN#v?A\r*. ӨY9OCR3:xхӗ9axȢ(A^hH\\U:Hy[&2{>)ȎzdLx05au<r/1sAt2y<#W֌(7\$̏iP#h6\\tJ^){+LQe2\$K\$\rNļ\rP01*T*60M	Z\ry6SYXq`IA6-)jR	\nNhq*pc \n (DE0((S7^\\èp!\$QDFL}'!sqـr\"G(#\$w%[?7ɴSNzˑ[rK-.4&J2ACۓLћy-!) ZB\"nOZ2Q̝\$Ġ\$y/&\$ͱ2di\0M&\$0C\n0!\\TLtᅕLAb2s&\0¤NOx)at(+Bo&بK.r}Y+CCPs(&Ԇr0\n\n\r\0Ba)E^9b9T\0.0-%ײCafsѩxGu(gᐉUp!:JHQ4D\\߆*|[;5f+[[Zgp=LcA\r*Vq\\dI·\\q3+ƒ;\n8 \nP#q'!(ْHMїH@\$fֳlN#Rey0U29\05_KD1IwZ`NFWbXw	<QcJ'KP(RDaVyE\$PvQ0PȊ([Dc1N%h?\$=!(W%^\\#HIB)4X|,q=I9 ";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*.:GC#mV,3ɚkKC2\$4*\rɏ!\0x֎c0V;@9嘌#8n[\0pP9-B:[-!Pɫ9fW&.;@h#!vc0z\r8a^\\0D]z@0y\rxDq/@3dcڐ'P5aCݲ&/8c=k\" ;Ų8\r)m Ѹ{{(`]pmw6^#hso+msnec^>,-qs\\XA`Srژ)Fy\r'\nFZRZKa3:@٫7l坔ό8 6=0\0c&Yכ\\a7,!U^|H\n\rT4SA?~̈d[ɓDroRpEКcOajl1\naJ䀑T)[dԒ7bٔ8읠rKa0AuAf\nE[\$v=(RČ=-ow-<Ȗ͛\$&)0cPt}DAe\0N`Di-qMQnNh h.H<8SZOC2,\"M(He;֍!Ȓ\0¤}<@4-Y>!	\0ʿJvbYŲkhoLnOC#AkP0	)d`̚[&Y>2K<<\\yD*4EN#DԯQɢv7Q[Tڮ\r3	ftjS'	/Zb+A)VڽYrqx:!W>CHc~P(E&Ns'nPh8\\q2TC`qhVִZhՕ4<B,DvSɒ\"Hh*@d\$4ذ\$)\$!BJ:G>E#Ⱥ cd^JlGc_dZ)*	w8nɀxRM?i1-Q58 F:Ӣ*3i̴0D5W1BӪ֡rņ@Ҏ>]@";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°\"M+NCx30\$u2N\rt2<:cJ9íb6\r:j90r()JDj@HR#]o@h3R%58;\02\r;zuJPD49Ax^;ruP3^2G|Ax=!C2(1I\r΅EmPcD 4 ]FIeVYfecYgU%MT\r\$m:h4\r4 T!(KBKýi:YZ#2D*\r1@;8ף02޴]Vv)8\n7B(@v05(1JR>(	Θ/'*	S3ޒDB[EE\rImd6݃_ckH^ \rG|49B[ԛ 9u)2pp5=<5c#Ld3Rc'2C\naH#>B8Klrpm]͐RFbJd0:xF9E0/0D׷3&\0a0dJM11DW|pxqdXtf5+tA\0P	L*b:O)\$Zo'(ӡr9\$ɉo\reܣq idFTN\r'DBd@\0٘Ќ\rRgm8`r[(\"͡15'L֗3R/yarHՒj7C[1n\\E#Ka:\nP#pKm\0\"bK'ы3uec&\" \0f (',ܕ@)s}d6	;JleBTSBFq-,|\r&TK=B\n\nl.x4( ںG`}PjOC08 ]U8Dhu'>T\\Tp@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(ކڎ2t\")#ҎēZMtCJ4_4&3KU/A\0abܯ-T׷Q\0鸞H{t?}߷:`ivVLs\r.NWő\0004h3%/gjCX1m\\pF̃֗\r8@ H9aNZ4c\"CFH8a^h]4(\\z}US*iIҵ8P!Reta\$C2~*eJ`]wlæѵmv[^nc\r(\$2b|%[mϢ1R>kbSE-\\F8*5]1o23:5y@CeWȋٔUZ	(0ՑHnDEX9GE%Rjj3dibAH\n: fJh 935i_0vo97KކFtҐhty0,A A\rH\r)p֑^Iy:.m5tyAkZ <!b	0T\rᬇ\0Fad)\0004tھc:pC0aFG!Ǽ_S,V67H1)8C	!jů,\0WXitGPpyc}xxS\n)5ȔW+)ET;,*	B\\\$r`gZAB4L9I!_lp<t>V1Zpơh6ޭA	1ךB[b#DlM4֏6HT`m\r1!#D#Li4\$!\"N8OTTddII+\$~lP#	gjEb@N4I:RzɜTh\ra\"(ڬc^*sSD/%s~F*(\$lf^x2\\h\0YxgZɔ{f:^Ռ̗W[rȐtz[8LI{ƲVG.";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!))mAX6SrYQlsLb}(Ш켆L((ksw!%rfXDI4ِ1%rVriTΦcirGɡ\$D+ h72qS؏b7\$\r@xO⩡AW!w\\@420z\r8a^\\0>_xr2paD!'%RE٤B܄TD>AW\$aiwqzݹ!hĈ1<i	JdjDa0G\\\$/A.w_{~oP@HCt@`D_0bBA|\"L !B6H|1(ktaD6wL#C 26 J w\rA1\$\rNH%	2H1xTx\$\"[	)R0NRrYheřT~I%@((Yc.ft3C\"\n)2C7& +@\"0	2!0Ҡ̸rOr|5#*(L<XQ&!AȎel8ynK%2Rĸu?d]q3/d4E@:KHDpmp%-%#FS\nA8}U)2xF4z4\0k\$cX?lDJ cM&@/lv^J11r1(zk2էvCʋLDb[Ib~G(^ÿalg>V+씫d(J#ˈޓ2I\\C\0AڨrOI(5@X183lه]0b:h\$)YQl#@9ũM65(ӟa\\򞗮ZhwDyR|\nSAQ0߫GNx\nZB|=	P	{,a\rWb[LQr z82nT\nP#pRP:7J4En2ǉ<xʠ㜓DR2>\$K9D^\$3q=bۡVA_I'}u5)Z(E@/@#>fmX%QEy\\ds\nUڽUT8\"@dRHNK<WBmA\"s<Q1,";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ڻvLҬ0P:W{ɼ\rZꩻ^iuaDM\\Ĩ\\J9_K\">pu7FT_5dM^3!5֢0*BWQZPJR2(L nF2AjojUu(Y2e'7@430z\r8a^\\0>X\r(nᑌX/@|ɯ|i&MZGMh-#VYw9eFO>mr27Emȝb.J[G%ѼZmy4dUΫ4Vl#AͰᒒ2}>~\0A<HDLnsQ+0ZM,Mp	B#199Wg%S|@ 6Fk* I<lӠ^1.DJY'wJ%\rݺkl+(CDNfVTd1TE[Y>D+T:ͲcyPrS\$W3,AS\$`J4;ED%r63%ԹG\"RSF&꒗0aHkbz[q59a\r\$E\$Aɖl&-PHʮFFhDzτ\"sX#z(M!â;&R95-CHcg@*mSz![lֈa+EPի-Ir;M`Gf-	;YяM*OS9iHդ)X'<<`@\"̩dǥbkيz M\0.&!@'0EH+UwEi>bxDEGk	05KmnmP\"אu\"gi14\\TDsDOK0F\nBs)&(IVS㴈U<覍j(NE'`:ĠXjx\$R>3fmնX\"!pҴvfI04Ct];/XfhԌnFD\nFcPt!\n@7؜VHX4H\$rBkH<^Z0	[\nRgO^\rυ\\DS۪	.27On?<nGTg&V᩾QIOyH8&4/э<ddטj|)aH%\\1MBLnj\$fask\rI=cܳrr\$xAϖ0+4L:)[ؙhNt\rU^([)FJդrģrlp}EM5|(դ";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<5/\"q`9.\$JH\$ṍJY26AB77@1kx3`@6\r<,9X孌#8À3P9)\\1RAqbHV4]Xe\02\rӶx2-6\rXC@:tl<=F#8_%0Axx\$#zB|6skBqjr@g0un,h;3(8\r,XtGTsvNwpqi߼v(Řy\$Ck=zs`6J-\rCPRαH%Rl/Pao{\0CcfL*XXSaϼ6Ccl\\H i!2%Oq9OxRq&q'!P L;@Ct	n`Ja!,\0C`-X5lΙ F[dJd#P8s~-\"?\nppo2?@øh\r!47pS,(1eٜ3ƀ01ʜ@<DkA3d H!-jfjx&\0\" #\$Țb630c/T|Rm3GA9!:\0&\rЊm93Co[5,E?,ߌ%a@'0AGqJa\"\"Ϫ7'\$AH~x\"u\"@(=t(RKJզz\0Ba2D`+h%	qXeyZVYg4]3'މ.;{	T*9	\r\n9H\\c(64T ,K֮|8'Gt\"ķR}WS&k5ɀPe*ل!35RJ4PaKinNT0CMй+hsCm!&ܜӢlNTT\n4misc:.BB@D;O7	,\$GMSBuDk6VVgJҥ	%X!#ZU8\$1mRPJIPHbHNgYUf/.0d\$h=('M\0HbZ@\rdʈ\npAUL zV2uh'v(_\rTl\\D\n.1";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=BUFd*ˀ3xps,\"އ\$pc1:ab9el36.aJ:%ZQwdLhs\nN\02hw(2BuX4-0z\r8a^\\0d&18^ʅKxDqvfX/ہkaν(Q%Dds:Ph5#g#;E8>,QX{q\\7rU6Nsv4E*P.o	,sjںk Ӓ,1i k07 Cf&CI3sY{1flԍACh9*p@[Ms.dS\r!7^k	7T:nc#	.@\$n!n3 FZCpv\$1(n'>dno\rg3BPrʯ\$l;\"\"0dY5xC+	2&Zy!,g54?wN9\$rC\"hKc:a2eɃ/) .@!+Za!<DZ5Q^3ytsGB4VDI	1(2]O4躟uLB2%I&̖EHCrH'(pxfB<&c#rpPn&x:¡,TT\0I\$͛\\P»5YY !4;U˹lg\$B'J6LU\n!0@oM`F\nW׹KqT91:ig/cFiR /\$T*:Ui5(]<E'\$4\\Mi'Auq}xWS\\l\"\r}ƦHIvPCHfegZx\nP#p[lvVDH6\"b DxJf[_jJ4o\"ܡ2M!dU52\"r]	<)O<\"4pBOAX^zӱ(hT2K}6kE.\r~#d\nk)Ij_\n\$V#8f[Qf挤3(%)!ǽVUjf)RP]n^N_wqWbz";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:@PbcX؂-D(⌌P#r契3@0T\n70B\"4#⾮q6\0%CtCu@Ncfsfn-  8hL΋zLi(:/QِӚf~IZ69hhiVغmz^nDGhMiW#·\rO&y7\$ݮ!d:'PB5\r!\02j)'\\;-][ˍhn\r C@:t㿤R}38_q%\r6h^wZFPHn\"<&B4p2YVazs)HaXr`lXrbH+b\\C+y/-ީz\$`9=WXn]񫐒C3aDTIz*BNԡnPsd|2\"Iqańݒ\\CIe2&s8_MN#4fPQ&70_`m:3d[wkM78\nq\rd!ǳ:y@(kѨUm#-AX\n\n)5<.,ÒXF\$.fsD\$s3:,@%\$%4@ lFAbh9\\fD#~-\neٺGnl01APÛSiaϸEbx\"ABbqmfmfMD	7}\r:	 od#_b#h(KrnS\$sbwK2쩥I\n:hО¤9VҚVȀa6:825Z iJrj=C5g\$ K1\$,\"2px0,#䄑e)ιRR2\"Տ\rCteҬ=:?(`i\$iJ\$Iؠ\\Ym/uQZJY=#,JBamv6rxS8uuƧ+.dLʱh(F ŊI7HU\nĚ&(gqDvsoQޒ\npR	8RΑ0͊w|}FVaQ7r`;yo4d#YЙXv[Oepm#*Whp1J4-8Is\"=bƒ/zBiTd#\r/PuUSX\0K^fY{H*hb`~\nYBV Cш)R)MG\0";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%#'\nL2j3e,ꥣx31Cpʌ*vDey!ãlHz9nt\rHމj*#`@r#!X=&[\$#\"֒	Hsj߬p \r9b8l%;xQ\0кD49Ax^;rq=at3^2JhH)|ۭ/ZCSS|ؽI{5æ\"'xtPP@:A뼅nzn&#v^VLQn\0&<֝3xXMI\"~_zDZ4.Ƣa\0i9[o#39 1Ø:xN2z{.㛰c(ș(ՄcLy;'l葸ΰP	@`@\n	)%y2ZJAJ)dgSPruA#vB,,0Ӕ[I)2b	fqpYw+܂Ъ\\{U-䵇0Z542zC;Pe1%ڻc&@!0٪~ar|ԋ\rpTMW^A1&ba.%&E!'Ud	YG&,,@o96aRکp\r\0TqĲ\0Ku\r&:(H:sԡ΂XFGEcA\n!8Bd\r%ulB0TTXj;^d\"vݠ'! `<SXh/ap\rA, `+f(1(qIٱv歟Gͼ0q;Tvh	\r'>/Xけ2d4bYL˔6{H;ϰc됬^PZ8o%2&HRtMZ	zTL,p(y=٦<{#3F*a&|\"0A%iJB94Z~!2FP";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{\r8ȓc2)\\ћH\nXBQh8!Kx=xH()`ڸ\\/mΘՇT7cFV>O HCVقi_Ɖo˴3G\"J*4#p֡(hh\02ejS\0E t\$;J48^\"*^TJh_HLxh#jA3#H,n%eQj(qj1dʶ㹌[;CV9p\rY7q\06,fh@S14\r볦/Ӄ*\n<ݢ:\\Hs\"ShXtqD6ڨo\rd:j!BaKj^K\\׬Ŝq&@@P8c>Hb;mPRILHvM䙉*M({\"\r!4CTMfeK\"ĔRFgDE 憚);eB3\n	50%AٜXi# veA@S445 !0s(3ء%ngRII9)%d-?-(fMB0\rn\0\"\r-ɳ)>YJ.FΩ,L`F)6@'0fY3NiYW1\"`b#&mi-<X7+UH)%8BYO\0S\n!0(E\$a7 !\${& \$I쁃R4ABwȤ@He/Jb72:\rS2\rt˳UAXDٵ	0\$!~\nP#pjc4c<L%I0Bzl:Ca׺=\$	<띒*M7S	#EHPV\r D@0r 	j]e(5ē4I82FJtp]i9-2/j.BduAZPEvGyK.Hy;0+vy#eQ.}EQ\\";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:B83<LΎp[Ֆ!hИ.7*3\n@:bbB9c06]8:\rOScj~@a*[\nCXDɍ!C\"1׃KL\0ЙD4%cx暈.pʰ8^%;?4^/0d߃b`8<hApB@@8;ta8\r;nPh@iv/zks]\$`)lf4߻8Ԙ83αP;XZ	Z6r2EJX1@;1rv}1HҲ	\"BN٠\r.~4uBcvgЛ?9;\0-0P@\n	)(deM-ųNS%&\"NOiFP<-s0C8y\re!H5a5)רl1FR°s>Y{@h\r!1X:h!aL)eyBnFp78a32:G)\$\$Ʊ@\"2MB\n{ӽ ےn#@8Bxb3!ṕ	36jppٔ ƈɳN~DdOf;\0A\\5ft.Yɱfn3\"s	̝xAhkS}F(3mpfyy%LrLi@'PX1ҥRJqE{))!FWDDU^a%j.iU9i:#809m))/JRTn`+\ri7c׹f4;O̡By	-HTrP]zbѢF(1_AJ8ea-G晎Q0ETT#ɦs)wB\rgu\0[Rf|'\0BAɭX4㞡VP	Ѕ6Eup2VJd{±L%4\"I\r`+嶴-\0'h뎘Xr'\"bNXC(";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ܼOf	ba\03ȃ(\nt2EU9t`	xc\\cBVv?CX703낆W<.efTe~uhEyyc2q\n6h+އ}d2f]fZv:&e{3@6 5.蒙	~LɢPٳgl4N\r\rC@:t\\<Cӈ{K&Ad͋]Kԗփűy2kN rϛ\\s?Sc]e87\"~IN<-:|a7FId.\"Qv'0DMcb}trs@P	@82PBz{T\\	\"fīșj!\\T}-͛>AyQvL`n50A`#|td#\nZF6DOPZ05POIE!&OMB!߆b;FɍA Vjk'#rX\"\r!5h%Ua1t C\$쟔\$5آቤ4 ml52XI!a9Nh5CBU4	bdO!\$n`@F%=\rkx03\nm_\0fN*6(Q5\"U'%\$eha|2	\$c|d]X!+?ǤY9SBOn}h6QЙ'|H\\v/<̐\$1D-\"\nm\"sQ	TB(8-͍(g R<`Zq'@mSԋBѠy@۶'\n4&fUH\n!A%c3Q\$d[=!v\"[sofMwYpa\r5tL(5S0t,zl]y\$,ֵcNEP<A'\r-T*`Z	%Hz[T\nr\"YggȽ36&72FMƕ~nJ5rb!/G%eICItgQCQE(݄Kbu)|\rUF>3RbNP%bKU)XŸLxy)!&o-(Ý'6J0t	7'F:{\n6\$Y`ep+\rlRRҝO)(OE\r!A";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\$I 6`S#X3ˈܨC6-HHȌ*\r\\<Ǝ1:PRC\rj82Rn\$*.>BTDKq֐@ oO5ÌD49Ax^;rEm(!zr-^?6<u8h4Y\"έƌѓImH;?ulFնmۆԯv\rsl|E\\ヹv?<Mv<g\rl]/n.\"\ndEˢ˾?qcޠ3t~Ye<̒BXb1sp6.BA38vIic10L'XH\n:hy(( \$o,T64jBFcNz.!h	DнI,ޒ#&eN1̸BR	!Z9:\",=!`怩Z1HQ8C\naH#-B5A(<H\r*\ru9sB\n)\n'**L6/h>8ZQo-'ꂂr,0HI a8s0nJgtC1'/-q@B2_ي8)&0xS\nhrZ a@Cs#^}2]BeϸnY+bs}D=B\r8 \naD&9H{RM2ԉ%\râ*RM9(STNIM\"ITJ)\nN9qJRʆ6A3XNJxޟ#0la Ca1F\"hS\"SDZBFZZ=8Jg.ILdEAĚOq'共DTy/dI0nf*yUp_g1hodb -ƨζ,-7hVH)	xy\r\nef@L0'4dl&@%_\rzҠ{RL<Bd1_P;l^g\rQb܂޻JiNXGiaD8#`";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Cd\$::ɍ0\rʼp9#i@ޗ@:¢#00#EF6,(\naKlݠ0ᵩ8@m.@ }?*ԏV3:x﵅f68^?xDn}gX\"ۏ92嵖(Z;ϭk\"#Ã\"9턤xVc;˳;Xj|n;ݹ EoU.8<\\[XJO=^0pee\"%x2\\j;M;RզPЌ{X;(|Zzף79(ʙbAZO&iYtm`h&'5(C+-&F\n\$@P	AZAG\$`3yP\"XhP!>\",_kRy-YD9O38gam4Px =qXċZ\r:7>S 1^C;chpłoz(!0<[1txF\n~6/*J;\n(3XdɁ2&G0\\A-堩VuA\0P[N4	\$<\"d9@U\\a0mQdXӻygBNxS\nmxVa\np@é#>à̙W\\IHLxM\\ϙV/,{)O3P\0S\n!1D`A\$\0F\n%\"h*n:M:rH7@x	0\$IU깆\"CKNiI0twԽ02\$\r	W4Jt 1F}S#Z8Fd?5BFmӆR:)8Ry)G'B\$6Cq\"P̋%%&6)\0f*iSa\\\nIuB\0YP\"(F=1[CZ8:@b7T<N()5'H\\1HJ@aML.*pD@PVX:H(SCOۅg3V#ʬ'fv^E,jRH8ÄL";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)MH6HSI3-WHIN\$<nP13&,\nH2ejLҜRэJh@)XiVm)B0%ʴ)@410z\r8a^\\hIR3^2@}7}\r5hX\nmz\$4Ҡ8^~skc;A;0:KţV&Pc/rQ֨2[fݸn[k]%)/\\	7e\r|&cZMI㔣)F.t2C@A(䜸+4\$ZHo(rjې{0(͚Oc i5kgC/y\rkA/1c)&iB\n\nG9!Նr+Ya)&zOp<gh'6ݺG}[La  CL'h9bh\ry{Ḇ̝rK0Lm6=/f}S\nA\$=^y|E Iџd-..LI5!eR1Ď4ɳBHܙIX/KT0v<>< ņ|I!dBy)׆36bǝՔ`P	L*FeIMPY1)soD,&3,H#bYa	b1),5L2ka'MBaI`L4B'd\$֙:K&Z] 2qf:bv<VJ\"iu7īR!\rKh^i#f7 S\$ W\rc8lsx40IR i,H*50[-j)jPh83RVCLKb(h-Btҿh:Bj\r56BQ\"х@S8+a#GB'Da&/\0uV2,0+ITn%ܑo[CiHגE\n~y#UW%ʙhHTJJL\"-2VYZ|7jY`B\$@";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:Sc6B*+Gq̻,/Ȧo̤Pmu*<_Bk[I3LueI};YԮ<͹<֍=f`\\aߟ\$'(swυx2-d\$[n]fi`E(T}\"^\0})/<XEns\0˹22Axi\rk\$릥  zf43\nU%C m\r!2 X	2(\$U\$bflاPA\0h6! p`pa1N*8/@t\r2&aR)3&qiH0h\$b91dtIʠb2Cg'T..~Z	aS'e<f/4F#tpQ;GrAH@r.B&J?)LI`_ѶM2!zUIGָU;i3JɌ2s/aC-6O*xBD&Ksd5--̶0<ԑРϴ1W_!dEcD&@\\i\rH)bnZ#H,ŉdgDuY>\n()'&;UA>AdqUgcR;{`\\\"\"y 6Qy2Ve(SUU>FA3fNeP@,D)#Dӫ<lZ/) UPC\naH#oLiЁTTFJLb&F)p1mKcG҉j:qG%ܾ,9nzvƾڈ0ʁъEArs.٣sHBE	eYνI\";gK#2UFEW<)\rUOSS(%8u*4DQS9Z-AU<GW[]'h**PSns0	VC;.qJPx)sI%`\">n\nʪ6HOBT)(cxܠzFIJDUC\rJP\n>qUЌjߖ,v:HrUcgD%#+6)i=BjLl\\m\0+m)_\$7*X6i9JR9a,ˏ6+?ŠRw`(%}z3w@PsAhQY鄛f0XXG&I>r[&\$]x[x>caC[yBd)EgģGbms}^sD#55F/~\0RLsϫlʑ\"&J8ʴl*vzU.D`z܈DGFru74R|Vt&Zw(Ĉˠ\"L]Acoe=,̅s.A|?+oU >hsK ~8!LqXyגq^7Sx̮.";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(6P1HX3 vj	\$P-Ƞ9,-ob2e\"2\"]**#E/LkD:Ap-COכ2̥+Fݰ6[V[:kZ8dj[(rXXt:\$9w##,\$:B+An,+*0߂ɿfc3:xOp9Xxn-#MA9+2A4e\\5fn&;黴-K6IPBa7x2!߉~L,bx<5z!0yj\rϼ7=ŒChp&7'V%\"e5ZW\"dl,t0,%jy'h@B\r~\$Ѷ\n-8AĬּҚqe1ȠjkĄW+.P:*A&ӄQj!zd\0z_2\n@\n\n0)\$%'aYH5ぷ&JB_\"*RqisQDyH`yD2j!d̓BQR?'8VSD&5@RUR f!k\r\0/t'7S8/V\$\$ĠD%Aj%UɄYZ1jEk`(5nA1jJGB],'HL쵀@|/AЗ'&BQh7:Z'\0¢Wȼ!bR9D9x/ FDH:45+`;+Q	0dHYxcG\0#@	3<E3*	\$Bv(h;6,/X:-E\ru`zX	-,-2<ƺICR! q:t^rrf@.\r\rI2D1a=8I-떂e'T41ք&cZ7;{e%a6+Fp5>c`2e	T< D#E]czAF(`&).\$!|M^RڝY\"ivHCxKkZ*DWo\$\\rK\njDƥLԜA2zF>V4䚳iM)@(%e\rEH_|'Lk@XkHY!|[F&:D ";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Qtb)t5ͅL2\\9װyx#*\rڸ.:c|9è\"L8\".ñ!\\pRD{fP	@bS@ v2AtV0z\r8a^\\e0X\\{B7hxDm(.7[pL2(#bD87\n;1D]##PcY+>i͊jk[eh1u:\$wædGE\$a\n@y凨aI@)X,Ǩ1v\r[cB0hHٍTJ3r(&)x5{.P .r\"B<-IQrGh2.ʒ#d<\0 0Co;@\$KyDԀb#hGxt7\$ړ2\"D6/D͢bmϛgOxs~WgPSrsU\0\n\$\$&gH =) 'pإ, \$\$Ġi'p0VzF j!Nq\"	\$<2*(\rBC&aVT\\=f0m 3<(ZyK\0A%R050VI\$ 6᭖R2\$v+)%`K<CP!bDf}J }s.MQV(p7RDnC0AÜZi''\$*qK	\ntSrT*N6p]SeEbԪKL\"k6KY%|ǩ<SsϘ)u2NU\n]T3RڻZTVR*M\"4ػcE)&Ēc+p#9dY	!d4pѻA6`{15#6xs,@)Z,)Nfמm sVjmɴ7B*1	t7Bν\nGhfLh壔iZEɆ~pPK\"Ey6\nW\\%.mN40bBeb";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[Q#`9<H@03\r&ˠ9iC\"1o3`@6\r<|9#8Ôe P93Lr2}\\*=3f8|3ύ*1H-όD49Ax^;pR3({}coc5h1t;fJ+򵼠JARFbyIh\n	#hCwKI\0gSx伷ދz]%\\g,ힱ^HI\r׼c/7#Ck4a]nlN,R\0Y'Faȑ~DAxCZd=׆FCc;wFN9Ce\$C4\r ć7\\{eA6x28Clh}%t\nw=FS_R]\"6C( \n (Icwֹ\0=9jHJr\\gxD-nw۟|ϩ?24%`EyVɁFCCA&3_+>F-3p\r,iH9) h`,!c,\rĵ,U0a) DHEXdnnP&!(\$eV7Th4sR5HeΈ4J\$2Dbi:!F!rʼ	\$<0\r>C`.rd1E!D?TRRi\n<)IG+qm'^q\r}.}Kܛ)X,Y6-B{I/1ghY!fROU\nK(=vA\0 \naD&>ˏRV\$aVY2\$YS\$O%{_2s`X{KPZPFq'N(C}\r%2qk/RQ	~!.m6R삃iUb+:4`Ph8fOब*B1.9P@<2yE[őׁ2lE#Y9KbŮI%P4`AԽ`#ީ\"1Yi&v)D9Yb/3S2%7Vc!YZI TFFE[&HoY4<A*!G*A)KIHH]*d<IU S4/r\$KVtnv`A;O	Fȇi*//cUN[\n4NB1X";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#9?e-`3b +5D,3nc`1mzX7KK5j/à\\8RVatW+}썸Uxr::b(ȓff+e1\r2d6)^ٸ:.:Uur84.0z\r9Ax^;r+	xRMJA5]A|cKrd[髫ʍ~6:|7%\\l]6˳#׶{，\$|\"\$\06-7\r`RDx8+(EZmچ%W*Na̳8\\8<)C(qe4\"aQFĭ折2oCBV!2rP	@Û12PPK?!e3I9t}k؋9\\a+1-3<\r7w\"J#!JD2k@a gغRDJ<O \"vC9uѿ2p!,5K dLGF-2aBS\nAI\0S\ra׶`ғfV[̚BNc_,5cn`I{9iL)Fa3%JaT`B)A|9-rc#k\$(D%@i\\rŴ(	4pLY6SFq6GH HIl`xh㽂C1>]k\$\"єh鍩.2g}OGQ;tKgR({G8b^\nXEY<hSvi\$5Xk^UƢcKzlQR_UTMQ\"42ir;\"ʢZ(V (%ȝ/(ZkH'4D.ZjTh0T4NW{AܙW}Z<TĦ7ӄbY4(:G]S`A\\5+Ta5A<X\nkv8YHfp\n?6ܲ!,,";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/P/`\rHh\r06PC+v8+}BJ#Wl9ur\n\nA\0ut14`0u\rub2P`0p\r:PKbRIh\$r!V\n\"ZJ@TD*ig8g2C0ܨ!HcuA2*Qs@x\\^T\0Qp^Cp/%s,Pq8K%-R\n \\q1uْ'\\2fVҐM8H0{INHeq7cy>3q 7Pk\rG9'ʎzFm0p[pTZ/4d2A&h2D~Wq9R|;ҟCA!F8@d#Fy(*!]H9 P7e=F2\$0P@l,ea0VO[@ĖlH\0@D)䶀DPP	@OǋP(\nY	tAAl6lpv@@nR,\$LR,E0Q DƞNRN*xOT@3/YPF\nwÅyZ0\re)wtvCmqQdnam0q)* mNdeWw4rT\n뉩:XWDݻg-.!=MJYROhҟ\\JcE_Fx\\v9*][,h1ཧNԚݹE&\"f/>HVyx́(xJ`hnH@Qqʈ6Ÿ4d+hQyH\"['!@'0zR,P60*\n<1m[ę%qdB1tbjHcy[Jԇ739-ʞ:d[WQ	ŹW0Tw/_:Ǖ9@vu7Aۭ/KILvoj\\-\nv&6;jJQmXM`K+z\"(\0AB:VWBӽmhdL~zb<Eevn\\U\$6Ck\rVَ+m!3AR5zmg(BF,\\F](DYd@`Q7Å~mUɳ0^ǔ'xDLF_pՉXvO n[b&֯t:9{d](MW%<}ҵȐ\n	O>bzb:( 3ۧyW1w^(H[2	)KʟqjN7dysoU)pФ<ğ6G+9e/M؞5L2ܵeX@M\":+lAm&,3)0G7wy-'<3vU/e,=OR2JaM/](bEOR(J";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;CXdK0j=\r!\0r#06Q#,jPC	\\=|R6c@:јs6\0:`'C8apn\rv\0ڢC<ڟ_~Kl2)<''mITDmgהHg2Apܨ``csA2*Qs@x=|*Rp^Cp/cq桠f ܎0/=b9\"j(jU߬UĶa\"#1sfyC4#䊎 sv@Nd\$Xb|QqV+Ř|At]9g0x\"l\$6`c\0t`#޻Q!:iA''+c&A\0S-Clo\0;\n4P9LC4@\0\0\$vk9a\0X5Ha\rl \nO>2 sNA-⚂I(`!\0P	@\ncXg4\"\"I;QIپ\rډDIQ2M7CQ)Eh tF\0\"D8w&AurP	|ٞXTg*\$0:&jG8A1?r]0N`ZyRXHI)j{) iRFК/ƺU\\AI#u)3RP)uFRc`?۠DlT}PS%[9^d՚鐏ѡ!\0̨l;PK5>9Š*lyӧH.M[Ob2uE`5j+ǧ֠	eܝRxv,^*CEn&8S3Z6pc-PX'Yu> <Y{VMzq(\$`MZ\r2+~*xr'%qvnmZQC!g\n9fWnxN''	991̎y,b3ptY5۟&gOdٲfPYV9>KF`+1OEښJ*FY6(¨T8ȅzQ<@m[>-W{6Ǵjir9Rx?Jf8i4\ruwc\n~ `5UF٫bgVtg^vr>0NIx~J\r#Y\$&E2vN)W^J8#	Ck! 2{n,9D앨`R7[\\o{!AORխYpQ\0";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*H6[`QCl ȚC+8)pD:h5ք0=+u:c6hݭ8&eXќ^\"<LTh]p5N5	10,8B8 Z%&݉8UqZɑ=.CB3:xYBzSXKAY08a⎲CoQRFTic.CX\r 3\$?ӻ!Xk!3.2D98ąN6&\\6aYc8)kZ潰;@ݴVTMZ%#%:SP`]ƻ/_u&R-ŵ\nS-ڭ62'yf\\9Ed!H*[i\"A8V8nDΐgȫ\$A@\$[ig\$,(v\nZNJMA2jAJ\rpr\$ ̢|6Jη1>.*!B.F_Bׁȷ43_,\"{U*@\0+\n8hùE4 E;W%:G)BFXZR5s]HF#J\r(FO#ĀEB`)]ѫdJf&8 9\"P)\06@r\$zdİ**mU y,(-.. aPxk0LPT\"tXv\"ω#*BiQA^?\$L([pߚQ<Pȣq{<R[95D\0G)б5d4^uOԄZR<5gT,QuRf4.\\OoRq:M\0`+f_NR~J¨T\"\n]ėM4U	'f4btSRl4Y#,lzh ЈuA3媇V:h⒟+Cuf\$Lz\r''K\0B,θB|Qa,YTeM]9M?Dxp!H`\"/!3>#ьgV\0fuRX|Ccmr";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!ֽ|7:W0H|s*8/4:=dZURhz\"lB	1BI#c|;AG(QnӼ::MoFJvq?rO#AI/1hw;ARkNOֿyG8Jv\\|x}I;0^_5ފ{1RpH˴%zσ&VtN؛>}Dzn-D_P\"I0*ehQA43zH@Dk\r 4Ah80txw@08k\rpoAP o\r:2HltX΍<)b8zkw\r s\0K5i4frlbgAY\\{lM闗S@q	8e0jZHa#D\"tPA*Ehl[|2frSAu'8JcI顐СWNx,!E,9p1̨IӀhS	:C<+v:fOm2	gO8rl.I &#4velѲlJRQ^9I4&\06h-R@AAZ3LPaԑ(b9Ord̾2\\fCa\rN{1Mm?HѪL݅m(Lh솓Ad668'FVtz(cP/此j(	%19!\\lҘP(?G #\nR~pFBBh:lWA]yԣXއxòpj[.b[)RFȹBrF9M\n:3AznԈuq[%G\00K{Lkپv}̦&aqOly(J@xS\n-?WiWΌ)J)F^LHĥmSLf씓Td|QaLVxkEdkM`)*(sY_~͒BKapo5#{l\nqϕ}\$IoFxl@x:]g,~H\"_|LI\\0C?`Mc:gGg%-Tz[Ax\rQeynsg4flA7\n`Uth.ik@BF>5SlِŁ؞ծnt6&۝7֍׷nSf4\r2F0a;-ɪjGW!cgѾت9wUEB4kEMɓFYH.ֻ#s[2;v\r<pPH,'>LЫɭ[{7vH5Uk#|Ŋ0A)ky~݋w5ޮ`\\*6䭌J-[:оhfNABuHrsXe\\nde+|'o";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亃(;bT4ۭh>N8(3&:9.%!cRTιN>Y ۓenf9AfgC=QUeNL!.2'v-k2՜&TA˦⹩4##ePCC8a^\\m\\،|V4xDC[܅u䈢y3⣚EdO>7&	{9Y{U}ۄ[*_w@*yu0{&09}4c/|oȎع47sC!]D^&F8]uX6;\0Zsñ^κdM,Ȑ6HE\rR&J)el0j4TJA_u\0LYPЖRRhJ( _#A\0o]l\n	)9	\n1H)FfI0]KΒ!xPqnd(ŉuB,<_#(Px|~Iy&9Öhj+dPس nIRI\"peV2P~tRDF`NHxW	A*%D2WW7WbK 	,\$ddB@Epv7ͭʇ&/\\W%-dD 4eÂ2쀼xS\nF)r\0x֖/3D[S5IȗC&l;k\0Ba5&\0`M\$8)o[\\@KoEݣrGB*@HId i,G\0UIH)0&WQUQiaVRj?u0zI&TN+2-<nf`'46q\0CaAS1\nP#qD!2REfJJΞUPL=mn͙;O&`2F4L݄\"d:Y\n\rt5&3XE2/chQ7|<׊Am}{BNO1K\\37b>Y8E+#LU5Gf, =	\n\rSnK14\\ļݤk2lF('L@l*t\"|BHm\\@Zr]ȶ]%sk#A9Mct";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@]93Ce#zl#x3Xpʐe\$e<#4Fj(蛢Rк	ʼ6\"8AGKO9Uj\nAu \r(\"H3D5a\0}pB l4AglC@:tL<o8_~%0HAev]pBMjgIElؔJRT_Jf]Hu\"Q SI.9tIGUu]`6rnˈ\$;VD3l5@a	Hn\$Pǚ~A(sd0ݪ4fpDn9ʙCfMȂPsޗJD\$!ĜX\\]\r0it7L]6%D Plְ\\E2\$P[\0'Ox	r̹%\rļ\\AEϡ!8 ҁgG\noH6x^OZA\r\r\\ֵm9?(`h:	M&LS@7(0~ș\"~+APF@1\$K3 qt*ëOMb,J\$@\nɗ]4Te97:cO1297*O%1Y\$\05\nV@67\0)A*\0q9DBjpE/#q^E<;pTk-m6gbgQG\0t%AqnKC6'>\nU/dP֖[sm\$J\"~dQ:1*F6c\n	XH2Fk\$^ge'DHCzQ]WR\rABzޡ=sKmADknƳ(Eki`R)T*`Z,=p:^i! N\$\n%(EPĜ ((Ua8\n>\"4vs&uClE3HULU]DґnF60UXTAXP@:P,p\"50 XIF\0AVCFDOI q4ooJ[CB\"fat/d\"%zתb";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	}IR\"`9,k)L]~rD3^N(\$QCA<FCɸ9zZZc*8\$:BM-Y^[C\$HI)O.(אXS3# ]JA\0A\"ZvVR\0кD49Ax^;påi\\7C8^2xX#X|7ea|AXIBZ\$D5|\"\$Cki>dF;\n+'/;ϓw.ñ>ӵ~7i#(:oTΠsYq+XDrsdOfX!rBa,+䅌s<Jו!I18L1E+\"!bG8DFυj-t՘=Nfa2Y,՞G`ٴ~o@@PuQC'P C`iF%9gBQ\$\$Ġ)Wp%q*|.f\"i,|IX9]Z=&XAΓ0<B^CG^-خ\"LEET5\" 00 \"%6E5c29Dk6#[W`H	B\$䤕1+fB<(:\na96(.sIw6IW,DBY\"\\srE (!Z,5U	Z&BEF\"Նԟ\$JtT(!REyȺ\0h_p\"DBa=%D<Xz9{DȤq녑7XXQ;Ei	\0P6+HF(\\\nMKp(XWk`L<!wd@O9DunA~+5U\n)1ҷPBjjMSr*)Lc&`\"RQP9ڬΠ\$G\\Z/@0B8G9TtpRQ\$\0e	k\$%wAxϒmm4F4E(VJ_, ";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|AlYd6\$DG!tC)G!x]4*MƤ9uC\"`Xĩ.!w@Ɂ4AVE2YDI aCARS8DB^E\\qdV(T# j;dsrmH!\0нD49Ax^;põm\\7C8^2xe#e|s_.AER!6|\nc(9ߣdkF)K_~'2<<_cv22xtgQYbJ,\\WkvQ؅0K;t,\"¸DҲŀQyeG8^@a!O!V9D5Gːb^ܜqPhID  \n (.hp!Wj^\"ԓhRv!4+ࡒuv,Xq|03!8D#׳ʉ\n!xCi?dEfX(D:`/G2U&b8tu%Dyb̎Q7uܓ\0F70O[xd^bBj((tb!\$r\ra\\-Yȸjd	\0L	i\rQ(JAa<'>B<_mG@9xb,tq8DHntDRO\naP*sPLT'\\	g\\~y8,H\$B	eI\r40T\n͂\"Q	T.mLARR,!Ǚ:'L\$D0̻?	yeP Z/(#O#!\r\\|=WD1rpI*BFx6i44GBCYYQ~>	!P OQA6\"#bDb4/ 96bBem\"(ZkNe	Xa1VIh#e_1^uO\"s&\$ȃm3sEZrX!f";break;}$Ff=array();foreach(explode("\n",lzw_decompress($e))as$W)$Ff[]=(strpos($W,"\t")?explode("\t",$W):$W);return$Ff;}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($N,$U,$F);abstract
function
quote($P);abstract
function
select_db($jb);abstract
function
query($H,$Jf=false);function
multi_query($H){return$this->multi=$this->query($H);}function
store_result(){return$this->multi;}function
next_result(){return
false;}}if(extension_loaded('pdo')){abstract
class
PdoDb
extends
SqlDb{protected$pdo;function
dsn($wb,$U,$F,array$C=array()){$C[\PDO::ATTR_ERRMODE]=\PDO::ERRMODE_SILENT;$C[\PDO::ATTR_STATEMENT_CLASS]=array('Adminer\PdoResult');try{$this->pdo=new
\PDO($wb,$U,$F,$C);}catch(\Exception$Lb){return$Lb->getMessage();}$this->server_info=@$this->pdo->getAttribute(\PDO::ATTR_SERVER_VERSION);return'';}function
quote($P){return$this->pdo->quote($P);}function
query($H,$Jf=false){$I=$this->pdo->query($H);$this->error="";if(!$I){list(,$this->errno,$this->error)=$this->pdo->errorInfo();if(!$this->error)$this->error=lang(23);return
false;}$this->store_result($I);return$I;}function
store_result($I=null){if(!$I){$I=$this->multi;if(!$I)return
false;}if($I->columnCount()){$I->num_rows=$I->rowCount();return$I;}$this->affected_rows=$I->rowCount();return
true;}function
next_result(){$I=$this->multi;if(!is_object($I))return
false;$I->_offset=0;return@$I->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($Gd){$J=$this->fetch($Gd);return($J?array_map(array($this,'unresource'),$J):$J);}private
function
unresource($W){return(is_resource($W)?stream_get_contents($W):$W);}function
fetch_field(){$K=(object)$this->getColumnMeta($this->_offset++);$S=$K->pdo_type;$K->type=($S==\PDO::PARAM_INT?0:15);$K->charsetnr=($S==\PDO::PARAM_LOB||(isset($K->flags)&&in_array("blob",(array)$K->flags))?63:0);return$K;}function
seek($Qd){for($q=0;$q<$Qd;$q++)$this->fetch();}}}function
add_driver($r,$A){SqlDriver::$drivers[$r]=$A;}function
get_driver($r){return
SqlDriver::$drivers[$r];}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($N,$U,$F){$f=new
Db;return($f->attach($N,$U,$F)?:$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($Q,array$M,array$Z,array$p,array$D=array(),$w=1,$E=0,$ve=false){$Vc=(count($p)<count($M));$H=adminer()->selectQueryBuild($M,$Z,$p,$D,$w,$E);if(!$H)$H="SELECT".limit(($_GET["page"]!="last"&&$w&&$p&&$Vc&&JUSH=="sql"?"SQL_CALC_FOUND_ROWS ":"").implode(", ",$M)."\nFROM ".table($Q),($Z?"\nWHERE ".implode(" AND ",$Z):"").($p&&$Vc?"\nGROUP BY ".implode(", ",$p):"").($D?"\nORDER BY ".implode(", ",$D):""),$w,($E?$w*$E:0),"\n");$gf=microtime(true);$J=$this->conn->query($H);if($ve)echo
adminer()->selectQuery($H,$gf,!$J);return$J;}function
delete($Q,$_e,$w=0){$H="FROM ".table($Q);return
queries("DELETE".($w?limit1($Q,$H,$_e):" $H$_e"));}function
update($Q,array$O,$_e,$w=0,$Te="\n"){$Yf=array();foreach($O
as$v=>$W)$Yf[]="$v = $W";$H=table($Q)." SET$Te".implode(",$Te",$Yf);return
queries("UPDATE".($w?limit1($Q,$H,$_e,$Te):" $H$_e"));}function
insert($Q,array$O){return
queries("INSERT INTO ".table($Q).($O?" (".implode(", ",array_keys($O)).")\nVALUES (".implode(", ",$O).")":" DEFAULT VALUES").$this->insertReturning($Q));}function
insertReturning($Q){return"";}function
insertUpdate($Q,array$L,array$ue){return
false;}function
begin(){return
queries("BEGIN");}function
commit(){return
queries("COMMIT");}function
rollback(){return
queries("ROLLBACK");}function
slowQuery($H,$wf){}function
convertSearch($s,array$W,array$k){return$s;}function
value($W,array$k){return(method_exists($this->conn,'value')?$this->conn->value($W,$k):$W);}function
quoteBinary($Le){return
q($Le);}function
warnings(){}function
tableHelp($A,$Yc=false){}function
inheritsFrom($Q){return
array();}function
inheritedTables($Q){return
array();}function
partitionsInfo($Q){return
array();}function
hasCStyleEscapes(){return
false;}function
engines(){return
array();}function
supportsIndex(array$R){return!is_view($R);}function
indexAlgorithms(array$of){return
array();}function
checkConstraints($Q){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 = ".q($Q):"")."
WHERE c.CONSTRAINT_SCHEMA = ".q($_GET["ns"]!=""?$_GET["ns"]:DB)."
AND t.TABLE_NAME = ".q($Q).(JUSH=="pgsql"?"
AND CHECK_CLAUSE NOT LIKE '% IS NOT NULL'":""),$this->conn);}function
allFields(){$J=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$K){$K["null"]=($K["nullable"]=="YES");$J[$K["tab"]][]=$K;}}return$J;}}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.5.0")."' width='24' height='24' alt='' id='logo'>".lang(24)."</a>";}function
credentials(){return
array(SERVER,$_GET["username"],get_password());}function
connectSsl(){}function
permanentLogin($bb=false){return
password_file($bb);}function
bruteForceKey(){return$_SERVER["REMOTE_ADDR"];}function
serverName($N){}function
database(){if(connection()){$kb=adminer()->databases(false);return(!$kb?get_val("SELECT SUBSTRING_INDEX(CURRENT_USER, '@', 1)"):$kb[(information_schema($kb[0])?1:0)]);}}function
operators(){return
array("<=",">=");}function
schemas(){return
schemas();}function
databases($bc=true){return
get_databases($bc);}function
pluginsLinks(){}function
queryTimeout(){return
5;}function
afterConnect(){}function
headers(){}function
csp($eb){return$eb;}function
head($hb=null){return
true;}function
bodyClass(){echo" editor";}function
css(){$J=array();foreach(array("","-dark")as$Gd){$m="adminer$Gd.css";if(file_exists($m)){$Wb=file_get_contents($m);$J["$m?v=".crc32($Wb)]=($Gd?"dark":(preg_match('~prefers-color-scheme:\s*dark~',$Wb)?'':'light'));}}return$J;}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($A,$zc,$X){return$zc.$X."\n";}function
login($od,$F){return
true;}function
tableName($of){return
h(isset($of["Engine"])?($of["Comment"]!=""?$of["Comment"]:$of["Name"]):"");}function
fieldName($k,$D=0){return
h(preg_replace('~\s+\[.*\]$~','',($k["comment"]!=""?$k["comment"]:$k["field"])));}function
selectLinks($of,$O=""){$a=$of["Name"];if($O!==null)echo'<p class="tabs"><a href="'.h(ME.'edit='.urlencode($a).$O).'">'.lang(29)."</a>\n";}function
foreignKeys($Q){return
foreign_keys($Q);}function
backwardKeys($Q,$nf){$J=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($Q)."
ORDER BY ORDINAL_POSITION",null,"")as$K)$J[$K["TABLE_NAME"]]["keys"][$K["CONSTRAINT_NAME"]][$K["COLUMN_NAME"]]=$K["REFERENCED_COLUMN_NAME"];foreach($J
as$v=>$W){$A=adminer()->tableName(table_status1($v,true));if($A!=""){$Ne=preg_quote($nf);$Te="(:|\\s*-)?\\s+";$J[$v]["name"]=(preg_match("(^$Ne$Te(.+)|^(.+?)$Te$Ne\$)iu",$A,$z)?$z[2].$z[3]:$A);}else
unset($J[$v]);}return$J;}function
backwardKeysPrint($va,$K){foreach($va
as$Q=>$ua){foreach($ua["keys"]as$Ra){$x=ME.'select='.urlencode($Q);$q=0;foreach($Ra
as$c=>$W)$x
.=where_link($q++,$c,$K[$W]);echo"<a href='".h($x)."'>".h($ua["name"])."</a>";$x=ME.'edit='.urlencode($Q);foreach($Ra
as$c=>$W)$x
.="&set".urlencode("[".bracket_escape($c)."]")."=".urlencode($K[$W]);echo"<a href='".h($x)."' title='".lang(29)."'>+</a> ";}}}function
selectQuery($H,$gf,$Sb=false){return"<!--\n".str_replace("--","--><!-- ",$H)."\n(".format_time($gf).")\n-->\n";}function
rowDescription($Q){foreach(fields($Q)as$k){if(preg_match("~varchar|character varying~",$k["type"]))return
idf_escape($k["field"]);}return"";}function
rowDescriptions($L,$fc){$J=$L;foreach($L[0]as$v=>$W){if(list($Q,$r,$A)=$this->_foreignColumn($fc,$v)){$Hc=array();foreach($L
as$K)$Hc[$K[$v]]=q($K[$v]);$qb=$this->values[$Q];if(!$qb)$qb=get_key_vals("SELECT $r, $A FROM ".table($Q)." WHERE $r IN (".implode(", ",$Hc).")");foreach($L
as$_=>$K){if(isset($K[$v]))$J[$_][$v]=(string)$qb[$K[$v]];}}}return$J;}function
selectLink($W,$k){}function
selectVal($W,$x,$k,$be){$J="$W";$x=h($x);if(is_blob($k)&&!is_utf8($W)){$J=lang(30,strlen($be));if(preg_match("~^(GIF|\xFF\xD8\xFF|\x89PNG\x0D\x0A\x1A\x0A)~",$be))$J="<img src='$x' alt='$J'>";}if(like_bool($k)&&$J!="")$J=(preg_match('~^(1|t|true|y|yes|on)$~i',$W)?lang(31):lang(32));if($x)$J="<a href='$x'".(is_url($x)?target_blank():"").">$J</a>";if(preg_match('~date~',$k["type"]))$J="<div class='datetime'>$J</div>";return$J;}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($M,$d){}function
selectSearchPrint($Z,$d,$u){$Z=(array)$_GET["where"];echo'<fieldset id="fieldset-search"><legend>'.lang(34)."</legend><div>\n";$cd=array();foreach($Z
as$v=>$W)$cd[$W["col"]]=$v;$q=0;$l=fields($_GET["select"]);foreach($d
as$A=>$pb){$k=$l[$A];if($k["type"]=="enum"||like_bool($k)){$v=$cd[$A];$q--;echo"<div>".h($pb).":".input_hidden("where[$q][col]",$A);$W=idx($Z[$v],"val");echo(like_bool($k)?"<select name='where[$q][val]'>".optionlist(array(""=>"",lang(32),lang(31)),$W,true)."</select>":enum_input("checkbox"," name='where[$q][val][]'",$k,(array)$W,lang(35))),"</div>\n";unset($d[$A]);}elseif(is_array($C=$this->foreignKeyOptions($_GET["select"],$A))){if($l[$A]["null"])$C[0]='('.lang(35).')';$v=$cd[$A];$q--;echo"<div>".h($pb).input_hidden("where[$q][col]",$A).input_hidden("where[$q][op]","=").": <select name='where[$q][val]'>".optionlist($C,idx($Z[$v],"val"),true)."</select></div>\n";unset($d[$A]);}}$q=0;foreach($Z
as$W){if(($W["col"]==""||$d[$W["col"]])&&"$W[col]$W[val]"!=""){echo"<div><select name='where[$q][col]'><option value=''>(".lang(36).")".optionlist($d,$W["col"],true)."</select>",html_select("where[$q][op]",array(-1=>"")+adminer()->operators(),$W["op"]),"<input type='search' name='where[$q][val]' value='".h($W["val"])."'>".script("mixin(qsl('input'), {onkeydown: selectSearchKeydown, onsearch: selectSearchSearch});","")."</div>\n";$q++;}}echo"<div><select name='where[$q][col]'><option value=''>(".lang(36).")".optionlist($d,null,true)."</select>",script("qsl('select').onchange = selectAddRow;",""),html_select("where[$q][op]",array(-1=>"")+adminer()->operators()),"<input type='search' name='where[$q][val]'></div>",script("mixin(qsl('input'), {onchange: function () { this.parentNode.firstChild.onchange(); }, onsearch: selectSearchSearch});"),"</div></fieldset>\n";}function
selectOrderPrint($D,$d,$u){$ae=array();foreach($u
as$v=>$t){$D=array();foreach($t["columns"]as$W)$D[]=$d[$W];if(count(array_filter($D,'strlen'))>1&&$v!="PRIMARY")$ae[$v]=implode(", ",$D);}if($ae)echo'<fieldset><legend>'.lang(37)."</legend><div>","<select name='index_order'>".optionlist(array(""=>"")+$ae,(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($w){echo"<fieldset><legend>".lang(38)."</legend><div>",html_select("limit",array("",50,100),$w),"</div></fieldset>\n";}function
selectLengthPrint($tf){}function
selectActionPrint($u){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($Bb,$d){}function
selectColumnsProcess($d,$u){return
array(array(),array());}function
selectSearchProcess($l,$u){$J=array();foreach((array)$_GET["where"]as$v=>$Z){$Oa=$Z["col"];$Vd=$Z["op"];$W=$Z["val"];if(($v>=0&&$Oa!="")||$W!=""){$Ua=array();foreach(($Oa!=""?array($Oa=>$l[$Oa]):$l)as$A=>$k){if($Oa!=""||is_numeric($W)||!preg_match(number_type(),$k["type"])){$A=idf_escape($A);if($Oa!=""&&$k["type"]=="enum"){$Jc=array();foreach($W
as$Xf){if(preg_match('~val-~',$Xf))$Jc[]=q(substr($Xf,4));}$Ua[]=(in_array("null",$W)?"$A IS NULL OR ":"").($Jc?"$A IN (".implode(", ",$Jc).")":"0");}else{$uf=preg_match('~char|text|enum|set~',$k["type"]);$X=adminer()->processInput($k,(!$Vd&&$uf&&preg_match('~^[^%]+$~',$W)?"%$W%":$W));$Ua[]=driver()->convertSearch($A,$Z,$k).($X=="NULL"?" IS".($Vd==">="?" NOT":"")." $X":(in_array($Vd,adminer()->operators())||$Vd=="="?" $Vd $X":($uf?" LIKE $X":" IN (".($X[0]=="'"?str_replace(",","', '",$X):$X).")")));if($v<0&&$W=="0")$Ua[]="$A IS NULL";}}}$J[]=($Ua?"(".implode(" OR ",$Ua).")":"1 = 0");}}return$J;}function
selectOrderProcess($l,$u){$Lc=$_GET["index_order"];if($Lc!="")unset($_GET["order"][1]);if($_GET["order"])return
array(idf_escape(reset($_GET["order"])).($_GET["desc"]?" DESC":""));foreach(($Lc!=""?array($u[$Lc]):$u)as$t){if($Lc!=""||$t["type"]=="INDEX"){$uc=array_filter($t["descs"]);$pb=false;foreach($t["columns"]as$W){if(preg_match('~date|timestamp~',$l[$W]["type"])){$pb=true;break;}}$J=array();foreach($t["columns"]as$v=>$W)$J[]=idf_escape($W).(($uc?$t["descs"][$v]:$pb)?" DESC":"");return$J;}}return
array();}function
selectLimitProcess(){return(isset($_GET["limit"])?intval($_GET["limit"]):50);}function
selectLengthProcess(){return"100";}function
selectEmailProcess($Z,$fc){return
false;}function
selectQueryBuild($M,$Z,$p,$D,$w,$E){return"";}function
messageQuery($H,$vf,$Sb=false){return" <span class='time'>".@date("H:i:s")."</span><!--\n".str_replace("--","--><!-- ",$H)."\n".($vf?"($vf)\n":"")."-->";}function
editRowPrint($Q,$l,$K,$T){}function
editFunctions($k){$J=array();if($k["null"]&&preg_match('~blob~',$k["type"]))$J["NULL"]=lang(35);$J[""]=($k["null"]||$k["auto_increment"]||like_bool($k)?"":"*");if(preg_match('~date|time~',$k["type"]))$J["now"]=lang(41);if(preg_match('~_(md5|sha1)$~i',$k["field"],$z))$J[]=strtolower($z[1]);return$J;}function
editInput($Q,$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));$C=$this->foreignKeyOptions($Q,$k["field"],$X);if($C!==null)return(is_array($C)?"<select$b>".optionlist($C,(string)$X,true)."</select>":"<input value='".h($X)."'$b class='hidden'>"."<input value='".h($C)."' class='jsonly'>"."<div></div>".script("qsl('input').oninput = partial(whisper, '".ME."script=complete&source=".urlencode($Q)."&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>";$Ac="";if(preg_match('~time~',$k["type"]))$Ac=lang(42);if(preg_match('~date|timestamp~',$k["type"]))$Ac=lang(43).($Ac?" [$Ac]":"");if($Ac)return"<input value='".h($X)."'$b> ($Ac)";if(preg_match('~_(md5|sha1)$~i',$k["field"]))return"<input type='password' value='".h($X)."'$b>";return'';}function
editHint($Q,$k,$X){return(preg_match('~\s+(\[.*\])$~',($k["comment"]!=""?$k["comment"]:$k["field"]),$z)?h(" $z[1]"):'');}function
processInput($k,$X,$o=""){if($o=="now")return"$o()";$J=$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,$z))$J=($z["p1"]!=""?$z["p1"]:($z["p2"]!=""?($z["p2"]<70?20:19).$z["p2"]:gmdate("Y")))."-$z[p3]$z[p4]-$z[p5]$z[p6]".end($z);$J=q($J);if($X==""&&like_bool($k))$J="'0'";elseif($X==""&&($k["null"]||!preg_match('~char|text~',$k["type"])))$J="NULL";elseif(preg_match('~^(md5|sha1)$~',$o))$J="$o($J)";return
unconvert_field($k,$J);}function
dumpOutput(){return
array();}function
dumpFormat(){return
array('csv'=>'CSV,','csv;'=>'CSV;','tsv'=>'TSV');}function
dumpDatabase($h){}function
dumpTable($Q,$jf,$Yc=0){echo"\xef\xbb\xbf";}function
dumpData($Q,$jf,$H){$I=connection()->query($H,1);if($I){while($K=$I->fetch_assoc()){if($jf=="table"){dump_csv(array_keys($K));$jf="INSERT";}dump_csv($K);}}}function
dumpFilename($Gc){return
friendly_url($Gc);}function
dumpHeaders($Gc,$Id=false){$Ob="csv";header("Content-Type: text/csv; charset=utf-8");return$Ob;}function
dumpFooter(){}function
importServerPath(){}function
homepage(){return
true;}function
navigation($Fd){echo"<h1>".adminer()->name()." <span class='version'>".VERSION;$Md=$_COOKIE["adminer_version"];echo" <a href='https://www.adminer.org/editor/#download'".target_blank()." id='version'>".(version_compare(VERSION,$Md)<0?h($Md):"")."</a>","</span></h1>\n";switch_lang();if($Fd=="auth"){$Zb=true;foreach((array)$_SESSION["pwds"]as$Y=>$Ve){foreach($Ve[""]as$U=>$F){if($F!==null){if($Zb){echo"<ul id='logins'>",script("mixin(qs('#logins'), {onmouseover: menuOver, onmouseout: menuOut});");$Zb=false;}echo"<li><a href='".h(auth_url($Y,"",$U))."'>".($U!=""?h($U):"<i>".lang(35)."</i>")."</a>\n";}}}}else{adminer()->databasesPrint($Fd);$da=adminer()->menuActions(array(),$Fd);echo($da?"<p class='links'>\n".implode("\n",$da)."\n":"");if($Fd!="db"&&$Fd!="ns"){$R=table_status('',true);if(!$R)echo"<p class='message'>".lang(11)."\n";else
adminer()->tablesPrint($R);}}}function
syntaxHighlighting($qf){}function
databasesPrint($Fd){}function
menuActions($da,$Fd){return$da;}function
tablesPrint($qf){echo"<ul id='tables'>",script("mixin(qs('#tables'), {onmouseover: menuOver, onmouseout: menuOut});");foreach($qf
as$K){echo'<li>';$A=adminer()->tableName($K);if($A!="")echo"<a href='".h(ME).'select='.urlencode($K["Name"])."'".bold($_GET["select"]==$K["Name"]||$_GET["edit"]==$K["Name"],"select")." title='".lang(44)."'>$A</a>\n";}echo"</ul>\n";}function
_foreignColumn($fc,$c){foreach((array)$fc[$c]as$ec){if(count($ec["source"])==1){$A=adminer()->rowDescription($ec["table"]);if($A!=""){$r=idf_escape($ec["target"][0]);return
array($ec["table"],$r,$A);}}}}private
function
foreignKeyOptions($Q,$c,$X=null){if(list($rf,$r,$A)=$this->_foreignColumn(column_foreign_keys($Q),$c)){$J=&$this->values[$rf];if($J===null){$R=table_status1($rf);$J=($R["Rows"]>1000?"":array(""=>"")+get_key_vals("SELECT $r, $A FROM ".table($rf)." ORDER BY 2"));}if(!$J&&$X!==null)return
get_val("SELECT $A FROM ".table($rf)." WHERE $r = ".q($X));return$J;}}}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($oe){if($oe===null){$oe=array();$ya="adminer-plugins";if(is_dir($ya)){foreach(glob("$ya/*.php")as$m)$this->includeOnce($m);}$_c=" href='https://www.adminer.org/plugins/#use'".target_blank();if(file_exists("$ya.php")){$Kc=$this->includeOnce("$ya.php");if(is_array($Kc)){foreach($Kc
as$ne)$oe[get_class($ne)]=$ne;}else$this->error
.=lang(45,"<b>$ya.php</b>",$_c)."<br>";}foreach(get_declared_classes()as$La){if(!$oe[$La]&&(preg_match('~^Adminer\w~i',$La)||is_subclass_of($La,'Adminer\Plugin'))){$Ee=new
\ReflectionClass($La);$Wa=$Ee->getConstructor();if($Wa&&$Wa->getNumberOfRequiredParameters())$this->error
.=lang(46,$_c,"<b>$La</b>","<b>$ya.php</b>")."<br>";else$oe[$La]=new$La;}}}$this->plugins=$oe;$ea=new
Adminer;$oe[]=$ea;$Ee=new
\ReflectionObject($ea);foreach($Ee->getMethods()as$Ed){foreach($oe
as$ne){$A=$Ed->getName();if(method_exists($ne,$A))$this->hooks[$A][]=$ne;}}}function
includeOnce($m){return
include_once"./$m";}function
__call($A,array$ge){$ka=array();foreach($ge
as$v=>$W)$ka[]=&$ge[$v];$J=null;foreach($this->hooks[$A]as$ne){$X=call_user_func_array(array($ne,$A),$ka);if($X!==null){if(!self::$append[$A])return$X;$J=$X+(array)$J;}}return$J;}}abstract
class
Plugin{protected$translations=array();function
description(){return$this->lang('');}function
screenshot(){return"";}protected
function
lang($s,$B=null){$ka=func_get_args();$ka[0]=idx($this->translations[LANG],$s)?:$s;return
call_user_func_array('Adminer\lang_format',$ka);}}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($N,$U,$F){mysqli_report(MYSQLI_REPORT_OFF);list($Cc,$pe)=host_port($N);$ff=adminer()->connectSsl();if($ff)$this->ssl_set($ff['key'],$ff['cert'],$ff['ca'],'','');$J=@$this->real_connect(($N!=""?$Cc:ini_get("mysqli.default_host")),($N.$U!=""?$U:ini_get("mysqli.default_user")),($N.$U.$F!=""?$F:ini_get("mysqli.default_pw")),null,(is_numeric($pe)?intval($pe):ini_get("mysqli.default_port")),(is_numeric($pe)?null:$pe),($ff?($ff['verify']!==false?2048:64):0));$this->options(MYSQLI_OPT_LOCAL_INFILE,0);return($J?'':$this->error);}function
set_charset($Ga){if(parent::set_charset($Ga))return
true;parent::set_charset('utf8');return$this->query("SET NAMES $Ga");}function
next_result(){return
self::more_results()&&parent::next_result();}function
quote($P){return"'".$this->escape_string($P)."'";}}}elseif(extension_loaded("mysql")&&!((ini_bool("sql.safe_mode")||ini_bool("mysql.allow_local_infile"))&&extension_loaded("pdo_mysql"))){class
Db
extends
SqlDb{private$link;function
attach($N,$U,$F){if(ini_bool("mysql.allow_local_infile"))return
lang(47,"'mysql.allow_local_infile'","MySQLi","PDO_MySQL");$this->link=@mysql_connect(($N!=""?$N:ini_get("mysql.default_host")),($N.$U!=""?$U:ini_get("mysql.default_user")),($N.$U.$F!=""?$F: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($Ga){return
mysql_set_charset($Ga,$this->link)||mysql_set_charset('utf8',$this->link);}function
quote($P){return"'".mysql_real_escape_string($P,$this->link)."'";}function
select_db($jb){return
mysql_select_db($jb,$this->link);}function
query($H,$Jf=false){$I=@($Jf?mysql_unbuffered_query($H,$this->link):mysql_query($H,$this->link));$this->error="";if(!$I){$this->errno=mysql_errno($this->link);$this->error=mysql_error($this->link);return
false;}if($I===true){$this->affected_rows=mysql_affected_rows($this->link);$this->info=mysql_info($this->link);return
true;}return
new
Result($I);}}class
Result{var$num_rows;private$result;private$offset=0;function
__construct($I){$this->result=$I;$this->num_rows=mysql_num_rows($I);}function
fetch_assoc(){return
mysql_fetch_assoc($this->result);}function
fetch_row(){return
mysql_fetch_row($this->result);}function
fetch_field(){$J=mysql_fetch_field($this->result,$this->offset++);$J->orgtable=$J->table;$J->charsetnr=($J->blob?63:0);return$J;}}}elseif(extension_loaded("pdo_mysql")){class
Db
extends
PdoDb{var$extension="PDO_MySQL";function
attach($N,$U,$F){$C=array(\PDO::MYSQL_ATTR_LOCAL_INFILE=>false);$ff=adminer()->connectSsl();if($ff){if($ff['key'])$C[\PDO::MYSQL_ATTR_SSL_KEY]=$ff['key'];if($ff['cert'])$C[\PDO::MYSQL_ATTR_SSL_CERT]=$ff['cert'];if($ff['ca'])$C[\PDO::MYSQL_ATTR_SSL_CA]=$ff['ca'];if(isset($ff['verify']))$C[\PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT]=$ff['verify'];}list($Cc,$pe)=host_port($N);return$this->dsn("mysql:charset=utf8".($Cc!=""?";host=$Cc":'').($pe?(is_numeric($pe)?";port=":";unix_socket=").$pe:""),$U,$F,$C);}function
set_charset($Ga){return$this->query("SET NAMES $Ga");}function
select_db($jb){return$this->query("USE ".idf_escape($jb));}function
query($H,$Jf=false){$this->pdo->setAttribute(\PDO::MYSQL_ATTR_USE_BUFFERED_QUERY,!$Jf);return
parent::query($H,$Jf);}}}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");var$partitionBy=array("HASH","LINEAR HASH","KEY","LINEAR KEY","RANGE","LIST");static
function
connect($N,$U,$F){$f=parent::connect($N,$U,$F);if(is_string($f)){if(function_exists('iconv')&&!is_utf8($f)&&strlen($Le=iconv("windows-1250","utf-8",$f))>strlen($f))$f=$Le;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('',10.5,$f)){$this->types[lang(54)]["inet6"]=39;if(min_version('','10.10',$f))$this->types[lang(54)]["inet4"]=15;}if(min_version(9,11.7,$f))$this->types[lang(48)]["vector"]=16383;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>"):($k["type"]=="vector"?"<code class='jush-sql'>".($this->conn->flavor=='maria'?"VEC_FromText":"STRING_TO_VECTOR")."</code>":(preg_match("~geometry|point|linestring|polygon~",$k["type"])?"<code class='jush-sql'>GeomFromText</code>":""))));}function
insert($Q,array$O){return($O?parent::insert($Q,$O):queries("INSERT INTO ".table($Q)." ()\nVALUES ()"));}function
insertUpdate($Q,array$L,array$ue){$d=array_keys(reset($L));$te="INSERT INTO ".table($Q)." (".implode(", ",$d).") VALUES\n";$Yf=array();foreach($d
as$v)$Yf[$v]="$v = VALUES($v)";$lf="\nON DUPLICATE KEY UPDATE ".implode(", ",$Yf);$Yf=array();$ld=0;foreach($L
as$O){$X="(".implode(", ",$O).")";if($Yf&&(strlen($te)+$ld+strlen($X)+strlen($lf)>1e6)){if(!queries($te.implode(",\n",$Yf).$lf))return
false;$Yf=array();$ld=0;}$Yf[]=$X;$ld+=strlen($X)+2;}return
queries($te.implode(",\n",$Yf).$lf);}function
slowQuery($H,$wf){if(min_version('5.7.8','10.1.2')){if($this->conn->flavor=='maria')return"SET STATEMENT max_statement_time=$wf FOR $H";elseif(preg_match('~^(SELECT\b)(.+)~is',$H,$z))return"$z[1] /*+ MAX_EXECUTION_TIME(".($wf*1000).") */ $z[2]";}}function
convertSearch($s,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($s USING ".charset($this->conn).")":$s);}function
quoteBinary($Le){return"X".q(bin2hex($Le));}function
warnings(){$I=$this->conn->query("SHOW WARNINGS");if($I&&$I->num_rows){ob_start();print_select_result($I);return
ob_get_clean();}}function
tableHelp($A,$Yc=false){$qd=($this->conn->flavor=='maria');if(information_schema(DB))return
strtolower("information-schema-".($qd?"$A-table/":str_replace("_","-",$A)."-table.html"));if(DB=="mysql")return($qd?"mysql$A-table/":"system-schema.html");}function
partitionsInfo($Q){$kc="FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA = ".q(DB)." AND TABLE_NAME = ".q($Q);$I=$this->conn->query("SELECT PARTITION_METHOD, PARTITION_EXPRESSION, PARTITION_ORDINAL_POSITION $kc ORDER BY PARTITION_ORDINAL_POSITION DESC LIMIT 1");$J=array();list($J["partition_by"],$J["partition"],$J["partitions"])=$I->fetch_row();$je=get_key_vals("SELECT PARTITION_NAME, PARTITION_DESCRIPTION $kc AND PARTITION_NAME != '' ORDER BY PARTITION_ORDINAL_POSITION");$J["partition_names"]=array_keys($je);$J["partition_values"]=array_values($je);return$J;}function
hasCStyleEscapes(){static$Ea;if($Ea===null){$ef=get_val("SHOW VARIABLES LIKE 'sql_mode'",1,$this->conn);$Ea=(strpos($ef,'NO_BACKSLASH_ESCAPES')===false);}return$Ea;}function
engines(){$J=array();foreach(get_rows("SHOW ENGINES")as$K){if(preg_match("~YES|DEFAULT~",$K["Support"]))$J[]=$K["Engine"];}return$J;}function
indexAlgorithms(array$of){return(preg_match('~^(MEMORY|NDB)$~',$of["Engine"])?array("HASH","BTREE"):array());}}function
idf_escape($s){return"`".str_replace("`","``",$s)."`";}function
table($s){return
idf_escape($s);}function
get_databases($bc){$J=get_session("dbs");if($J===null){$H="SELECT SCHEMA_NAME FROM information_schema.SCHEMATA ORDER BY SCHEMA_NAME";$J=($bc?slow_query($H):get_vals($H));restart_session();set_session("dbs",$J);stop_session();}return$J;}function
limit($H,$Z,$w,$Qd=0,$Te=" "){return" $H$Z".($w?$Te."LIMIT $w".($Qd?" OFFSET $Qd":""):"");}function
limit1($Q,$H,$Z,$Te="\n"){return
limit($H,$Z,1,0,$Te);}function
db_collation($h,array$Qa){$J=null;$bb=get_val("SHOW CREATE DATABASE ".idf_escape($h),1);if(preg_match('~ COLLATE ([^ ]+)~',$bb,$z))$J=$z[1];elseif(preg_match('~ CHARACTER SET ([^ ]+)~',$bb,$z))$J=$Qa[$z[1]][-1];return$J;}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$kb){$J=array();foreach($kb
as$h)$J[$h]=count(get_vals("SHOW TABLES IN ".idf_escape($h)));return$J;}function
table_status($A="",$Tb=false){$J=array();foreach(get_rows($Tb?"SELECT TABLE_NAME AS Name, ENGINE AS Engine, TABLE_COMMENT AS Comment FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ".($A!=""?"AND TABLE_NAME = ".q($A):"ORDER BY Name"):"SHOW TABLE STATUS".($A!=""?" LIKE ".q(addcslashes($A,"%_\\")):""))as$K){if($K["Engine"]=="InnoDB")$K["Comment"]=preg_replace('~(?:(.+); )?InnoDB free: .*~','\1',$K["Comment"]);if(!isset($K["Engine"]))$K["Comment"]="";if($A!="")$K["Name"]=$A;$J[$K["Name"]]=$K;}return$J;}function
is_view(array$R){return$R["Engine"]===null;}function
fk_support(array$R){return
preg_match('~InnoDB|IBMDB2I'.(min_version(5.6)?'|NDB':'').'~i',$R["Engine"]);}function
fields($Q){$qd=(connection()->flavor=='maria');$J=array();foreach(get_rows("SELECT * FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = DATABASE() AND TABLE_NAME = ".q($Q)." ORDER BY ORDINAL_POSITION")as$K){$k=$K["COLUMN_NAME"];$S=$K["COLUMN_TYPE"];$oc=$K["GENERATION_EXPRESSION"];$Rb=$K["EXTRA"];preg_match('~^(VIRTUAL|PERSISTENT|STORED)~',$Rb,$nc);preg_match('~^([^( ]+)(?:\((.+)\))?( unsigned)?( zerofill)?$~',$S,$sd);$i=$K["COLUMN_DEFAULT"];if($i!=""){$Xc=preg_match('~text|json~',$sd[1]);if(!$qd&&$Xc)$i=preg_replace("~^(_\w+)?('.*')$~",'\2',stripslashes($i));if($qd||$Xc){$i=($i=="NULL"?null:preg_replace_callback("~^'(.*)'$~",function($z){return
stripslashes(str_replace("''","'",$z[1]));},$i));}if(!$qd&&preg_match('~binary~',$sd[1])&&preg_match('~^0x(\w*)$~',$i,$z))$i=pack("H*",$z[1]);}$J[$k]=array("field"=>$k,"full_type"=>$S,"type"=>$sd[1],"length"=>$sd[2],"unsigned"=>ltrim($sd[3].$sd[4]),"default"=>($nc?($qd?$oc:stripslashes($oc)):$i),"null"=>($K["IS_NULLABLE"]=="YES"),"auto_increment"=>($Rb=="auto_increment"),"on_update"=>(preg_match('~\bon update (\w+)~i',$Rb,$z)?$z[1]:""),"collation"=>$K["COLLATION_NAME"],"privileges"=>array_flip(explode(",","$K[PRIVILEGES],where,order")),"comment"=>$K["COLUMN_COMMENT"],"primary"=>($K["COLUMN_KEY"]=="PRI"),"generated"=>($nc[1]=="PERSISTENT"?"STORED":$nc[1]),);}return$J;}function
indexes($Q,$g=null){$J=array();foreach(get_rows("SHOW INDEX FROM ".table($Q),$g)as$K){$A=$K["Key_name"];$J[$A]["type"]=($A=="PRIMARY"?"PRIMARY":($K["Index_type"]=="FULLTEXT"?"FULLTEXT":($K["Non_unique"]?(preg_match('~^(SPATIAL|VECTOR)$~',$K["Index_type"])?$K["Index_type"]:"INDEX"):"UNIQUE")));$J[$A]["columns"][]=$K["Column_name"];$J[$A]["lengths"][]=($K["Index_type"]=="SPATIAL"?null:$K["Sub_part"]);$J[$A]["descs"][]=null;$J[$A]["algorithm"]=$K["Index_type"];}return$J;}function
foreign_keys($Q){static$le='(?:`(?:[^`]|``)+`|"(?:[^"]|"")+")';$J=array();$cb=get_val("SHOW CREATE TABLE ".table($Q),1);if($cb){preg_match_all("~CONSTRAINT ($le) FOREIGN KEY ?\\(((?:$le,? ?)+)\\) REFERENCES ($le)(?:\\.($le))? \\(((?:$le,? ?)+)\\)(?: ON DELETE (".driver()->onActions."))?(?: ON UPDATE (".driver()->onActions."))?~",$cb,$td,PREG_SET_ORDER);foreach($td
as$z){preg_match_all("~$le~",$z[2],$cf);preg_match_all("~$le~",$z[5],$rf);$J[idf_unescape($z[1])]=array("db"=>idf_unescape($z[4]!=""?$z[3]:$z[4]),"table"=>idf_unescape($z[4]!=""?$z[4]:$z[3]),"source"=>array_map('Adminer\idf_unescape',$cf[0]),"target"=>array_map('Adminer\idf_unescape',$rf[0]),"on_delete"=>($z[6]?:"RESTRICT"),"on_update"=>($z[7]?:"RESTRICT"),);}}return$J;}function
view($A){return
array("select"=>preg_replace('~^(?:[^`]|`[^`]*`)*\s+AS\s+~isU','',get_val("SHOW CREATE VIEW ".table($A),1)));}function
collations(){$J=array();foreach(get_rows("SHOW COLLATION")as$K){if($K["Default"])$J[$K["Charset"]][-1]=$K["Collation"];else$J[$K["Charset"]][]=$K["Collation"];}ksort($J);foreach($J
as$v=>$W)sort($J[$v]);return$J;}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,$Pa){return
queries("CREATE DATABASE ".idf_escape($h).($Pa?" COLLATE ".q($Pa):""));}function
drop_databases(array$kb){$J=apply_queries("DROP DATABASE",$kb,'Adminer\idf_escape');restart_session();set_session("dbs",null);return$J;}function
rename_database($A,$Pa){$J=false;if(create_database($A,$Pa)){$qf=array();$bg=array();foreach(tables_list()as$Q=>$S){if($S=='VIEW')$bg[]=$Q;else$qf[]=$Q;}$J=(!$qf&&!$bg)||move_tables($qf,$bg,$A);drop_databases($J?array(DB):array());}return$J;}function
auto_increment(){$ra=" PRIMARY KEY";if($_GET["create"]!=""&&$_POST["auto_increment_col"]){foreach(indexes($_GET["create"])as$t){if(in_array($_POST["fields"][$_POST["auto_increment_col"]]["orig"],$t["columns"],true)){$ra="";break;}if($t["type"]=="PRIMARY")$ra=" UNIQUE";}}return" AUTO_INCREMENT$ra";}function
alter_table($Q,$A,array$l,array$dc,$Ta,$Eb,$Pa,$qa,$ie){$ia=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;}$ia[]=($Q!=""?($k[0]!=""?"CHANGE ".idf_escape($k[0]):"ADD"):" ")." ".implode($k[1]).($Q!=""?$k[2]:"");}else$ia[]="DROP ".idf_escape($k[0]);}$ia=array_merge($ia,$dc);$hf=($Ta!==null?" COMMENT=".q($Ta):"").($Eb?" ENGINE=".q($Eb):"").($Pa?" COLLATE ".q($Pa):"").($qa!=""?" AUTO_INCREMENT=$qa":"");if($ie){$je=array();if($ie["partition_by"]=='RANGE'||$ie["partition_by"]=='LIST'){foreach($ie["partition_names"]as$v=>$W){$X=$ie["partition_values"][$v];$je[]="\n  PARTITION ".idf_escape($W)." VALUES ".($ie["partition_by"]=='RANGE'?"LESS THAN":"IN").($X!=""?" ($X)":" MAXVALUE");}}$hf
.="\nPARTITION BY $ie[partition_by]($ie[partition])";if($je)$hf
.=" (".implode(",",$je)."\n)";elseif($ie["partitions"])$hf
.=" PARTITIONS ".(+$ie["partitions"]);}elseif($ie===null)$hf
.="\nREMOVE PARTITIONING";if($Q=="")return
queries("CREATE TABLE ".table($A)." (\n".implode(",\n",$ia)."\n)$hf");if($Q!=$A)$ia[]="RENAME TO ".table($A);if($hf)$ia[]=ltrim($hf);return($ia?queries("ALTER TABLE ".table($Q)."\n".implode(",\n",$ia)):true);}function
alter_indexes($Q,$ia){$Fa=array();foreach($ia
as$W)$Fa[]=($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($Q).implode(",",$Fa));}function
truncate_tables(array$qf){return
apply_queries("TRUNCATE TABLE",$qf);}function
drop_views(array$bg){return
queries("DROP VIEW ".implode(", ",array_map('Adminer\table',$bg)));}function
drop_tables(array$qf){return
queries("DROP TABLE ".implode(", ",array_map('Adminer\table',$qf)));}function
move_tables(array$qf,array$bg,$rf){$Ge=array();foreach($qf
as$Q)$Ge[]=table($Q)." TO ".idf_escape($rf).".".table($Q);if(!$Ge||queries("RENAME TABLE ".implode(", ",$Ge))){$nb=array();foreach($bg
as$Q)$nb[table($Q)]=view($Q);connection()->select_db($rf);$h=idf_escape(DB);foreach($nb
as$A=>$ag){if(!queries("CREATE VIEW $A AS ".str_replace(" $h."," ",$ag["select"]))||!queries("DROP VIEW $h.$A"))return
false;}return
true;}return
false;}function
copy_tables(array$qf,array$bg,$rf){queries("SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO'");foreach($qf
as$Q){$A=($rf==DB?table("copy_$Q"):idf_escape($rf).".".table($Q));if(($_POST["overwrite"]&&!queries("\nDROP TABLE IF EXISTS $A"))||!queries("CREATE TABLE $A LIKE ".table($Q))||!queries("INSERT INTO $A SELECT * FROM ".table($Q)))return
false;foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")))as$K){$Gf=$K["Trigger"];if(!queries("CREATE TRIGGER ".($rf==DB?idf_escape("copy_$Gf"):idf_escape($rf).".".idf_escape($Gf))." $K[Timing] $K[Event] ON $A FOR EACH ROW\n$K[Statement];"))return
false;}}foreach($bg
as$Q){$A=($rf==DB?table("copy_$Q"):idf_escape($rf).".".table($Q));$ag=view($Q);if(($_POST["overwrite"]&&!queries("DROP VIEW IF EXISTS $A"))||!queries("CREATE VIEW $A AS $ag[select]"))return
false;}return
true;}function
trigger($A,$Q){if($A=="")return
array();$L=get_rows("SHOW TRIGGERS WHERE `Trigger` = ".q($A));return
reset($L);}function
triggers($Q){$J=array();foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")))as$K)$J[$K["Trigger"]]=array($K["Timing"],$K["Event"]);return$J;}function
trigger_options(){return
array("Timing"=>array("BEFORE","AFTER"),"Event"=>array("INSERT","UPDATE","DELETE"),"Type"=>array("FOR EACH ROW"),);}function
routine($A,$S){$l=get_rows("SELECT
	PARAMETER_NAME field,
	DATA_TYPE type,
	REGEXP_REPLACE(DTD_IDENTIFIER, '^[^(]+\\\\(?|\\\\)$', '') length,
	REGEXP_REPLACE(DTD_IDENTIFIER, '^[^ ]+ ', '') `unsigned`,
	1 `null`,
	DTD_IDENTIFIER full_type,
	".($S=="FUNCTION"?"''":"PARAMETER_MODE")." `inout`,
	CHARACTER_SET_NAME collation
FROM information_schema.PARAMETERS
WHERE SPECIFIC_SCHEMA = DATABASE() AND ROUTINE_TYPE = '$S' AND SPECIFIC_NAME = ".q($A)."
ORDER BY ORDINAL_POSITION");$J=connection()->query("SELECT
	ROUTINE_COMMENT comment,
	CONCAT(IF(IS_DETERMINISTIC = 'YES', 'DETERMINISTIC\\n', ''), IF(SQL_DATA_ACCESS != 'CONTAINS SQL', CONCAT(SQL_DATA_ACCESS, '\\n'), ''), ROUTINE_DEFINITION) definition,
	'SQL' language
FROM information_schema.ROUTINES
WHERE ROUTINE_SCHEMA = DATABASE() AND ROUTINE_TYPE = '$S' AND ROUTINE_NAME = ".q($A))->fetch_assoc();if($l&&$l[0]['field']=='')$J['returns']=array_shift($l);$J['fields']=$l;return$J;}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($A,array$K){return
idf_escape($A);}function
last_id($I){return
get_val("SELECT LAST_INSERT_ID()");}function
explain(Db$f,$H){return$f->query("EXPLAIN ".(min_version(5.7)?"":"PARTITIONS ").$H);}function
found_rows(array$R,array$Z){return($Z||$R["Engine"]!="InnoDB"?null:$R["Rows"]);}function
create_sql($Q,$qa,$jf){$J=get_val("SHOW CREATE TABLE ".table($Q),1);if(!$qa)$J=preg_replace('~ AUTO_INCREMENT=\d+~','',$J);return$J;}function
truncate_sql($Q){return"TRUNCATE ".table($Q);}function
use_sql($jb,$jf=""){$A=idf_escape($jb);$J="";if(preg_match('~CREATE~',$jf)&&($bb=get_val("SHOW CREATE DATABASE $A",1))){set_utf8mb4($bb);if($jf=="DROP+CREATE")$J="DROP DATABASE IF EXISTS $A;\n";$J
.="$bb;\n";}return$J."USE $A";}function
trigger_sql($Q){$J="";foreach(get_rows("SHOW TRIGGERS LIKE ".q(addcslashes($Q,"%_\\")),null,"-- ")as$K)$J
.="\nCREATE TRIGGER ".idf_escape($K["Trigger"])." $K[Timing] $K[Event] ON ".table($K["Table"])." FOR EACH ROW\n$K[Statement];;\n";return$J;}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($k["type"]=="vector")return(connection()->flavor=='maria'?"VEC_ToText":"VECTOR_TO_STRING")."(".idf_escape($k["field"]).")";if(preg_match("~geometry|point|linestring|polygon~",$k["type"]))return(min_version(8)?"ST_":"")."AsWKT(".idf_escape($k["field"]).")";}function
unconvert_field(array$k,$J){if(preg_match("~binary~",$k["type"]))$J="UNHEX($J)";if($k["type"]=="bit")$J="CONVERT(b$J, UNSIGNED)";if($k["type"]=="vector")$J=(connection()->flavor=='maria'?"VEC_FromText":"STRING_TO_VECTOR")."($J)";if(preg_match("~geometry|point|linestring|polygon~",$k["type"])){$te=(min_version(8)?"ST_":"");$J=$te."GeomFromText($J, $te"."SRID($k[field]))";}return$J;}function
support($Ub){return
preg_match('~^(comment|columns|copy|database|drop_col|dump|event|indexes|kill|privileges|move_col|procedure|processlist|routine|sql|status|table|trigger|variables|view'.(min_version(8)?'|descidx':'').(min_version('8.0.16','10.2.1')?'|check':'').')$~',$Ub);}function
kill_process($r){return
queries("KILL ".number($r));}function
connection_id(){return"SELECT CONNECTION_ID()";}function
max_connections(){return
get_val("SELECT @@max_connections");}function
types(){return
array();}function
type_values($r){return"";}function
schemas(){return
array();}function
get_schema(){return"";}function
set_schema($Me,$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($xf,$j="",$Da=array(),$yf=""){page_headers();if(is_ajax()&&$j){page_messages($j);exit;}if(!ob_get_level())ob_start('ob_gzhandler',4096);$zf=$xf.($yf!=""?": $yf":"");$_f=strip_tags($zf.(SERVER!=""&&SERVER!="localhost"?h(" - ".SERVER):"")." - ".adminer()->name());echo'<!DOCTYPE html>
<html lang="',LANG,'" dir="',lang(55),'">
<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>',$_f,'</title>
<link rel="stylesheet" href="',h(preg_replace("~\\?.*~","",ME)."?file=default.css&version=5.5.0"),'">
';$fb=adminer()->css();if(is_int(key($fb)))$fb=array_fill_keys($fb,'light');$wc=in_array('light',$fb)||in_array('',$fb);$tc=in_array('dark',$fb)||in_array('',$fb);$hb=($wc?($tc?null:false):($tc?:null));$Ad=" media='(prefers-color-scheme: dark)'";if($hb!==false)echo"<link rel='stylesheet'".($hb?"":$Ad)." href='".h(preg_replace("~\\?.*~","",ME)."?file=dark.css&version=5.5.0")."'>\n";echo"<meta name='color-scheme' content='".($hb===null?"light dark":($hb?"dark":"light"))."'>\n",script_src(preg_replace("~\\?.*~","",ME)."?file=functions.js&version=5.5.0");if(adminer()->head($hb))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.5.0")."'>\n";foreach($fb
as$Tf=>$Gd){$b=($Gd=='dark'&&!$hb?$Ad:($Gd=='light'&&$tc?" media='(prefers-color-scheme: light)'":""));echo"<link rel='stylesheet'$b href='".h($Tf)."'>\n";}echo"\n<body class='".lang(55)." 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');
if (!window.isSecureContext) {
	document.body.classList.add('insecure');
}
const offlineMessage = '".js_escape(lang(56))."';
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($Da!==null){$x=substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1);echo'<p id="breadcrumb"><a href="'.h($x?:".").'">'.get_driver(DRIVER).'</a> » ';$x=substr(preg_replace('~\b(db|ns)=[^&]*&~','',ME),0,-1);$N=adminer()->serverName(SERVER);$N=($N!=""?$N:lang(57));if($Da===false)echo"$N\n";else{echo"<a href='".h($x)."' accesskey='1' title='Alt+Shift+1'>$N</a> » ";if($_GET["ns"]!=""||(DB!=""&&is_array($Da)))echo'<a href="'.h($x."&db=".urlencode(DB).(support("scheme")?"&ns=":"")).'">'.h(DB).'</a> » ';if(is_array($Da)){if($_GET["ns"]!="")echo'<a href="'.h(substr(ME,0,-1)).'">'.h($_GET["ns"]).'</a> » ';foreach($Da
as$v=>$W){$pb=(is_array($W)?$W[1]:h($W));if($pb!="")echo"<a href='".h(ME."$v=").urlencode(is_array($W)?$W[0]:$W)."'>$pb</a> » ";}}echo"$xf\n";}}echo"<h2>$zf</h2>\n","<div id='ajaxstatus' class='jsonly hidden'></div>\n";restart_session();page_messages($j);$kb=&get_session("dbs");if(DB!=""&&$kb&&!in_array(DB,$kb,true))$kb=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$eb){$xc=array();foreach($eb
as$v=>$W)$xc[]="$v $W";header("Content-Security-Policy: ".implode("; ",$xc));}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$Od;if(!$Od)$Od=base64_encode(rand_string());return$Od;}function
page_messages($j){$Sf=preg_replace('~^[^?]*~','',$_SERVER["REQUEST_URI"]);$Dd=idx($_SESSION["messages"],$Sf);if($Dd){echo"<div class='message'>".implode("</div>\n<div class='message'>",$Dd)."</div>".script("messagesPrint();");unset($_SESSION["messages"][$Sf]);}if($j)echo"<div class='error'>$j</div>\n";if(adminer()->error)echo"<div class='error'>".adminer()->error."</div>\n";}function
page_footer($Fd=""){echo"</div>\n\n<div id='foot' class='foot'>\n<div id='menu'>\n";adminer()->navigation($Fd);echo"</div>\n";if($Fd!="auth")echo'<form action="" method="post">
<p class="logout">
<span>',h($_GET["username"])."\n",'</span>
<input type="submit" name="logout" value="',lang(58),'" id="logout">
',input_token(),'</form>
';echo"</div>\n\n",script("setupSubmitHighlight(document);");}function
int32($_){while($_>=2147483648)$_-=4294967296;while($_<=-2147483649)$_+=4294967296;return(int)$_;}function
long2str(array$V,$dg){$Le='';foreach($V
as$W)$Le
.=pack('V',$W);if($dg)return
substr($Le,0,end($V));return$Le;}function
str2long($Le,$dg){$V=array_values(unpack('V*',str_pad($Le,4*ceil(strlen($Le)/4),"\0")));if($dg)$V[]=strlen($Le);return$V;}function
xxtea_mx($ig,$hg,$mf,$bd){return
int32((($ig>>5&0x7FFFFFF)^$hg<<2)+(($hg>>3&0x1FFFFFFF)^$ig<<4))^int32(($mf^$hg)+($bd^$ig));}function
encrypt_string($if,$v){if($if=="")return"";$v=array_values(unpack("V*",pack("H*",md5($v))));$V=str2long($if,true);$_=count($V)-1;$ig=$V[$_];$hg=$V[0];$ye=floor(6+52/($_+1));$mf=0;while($ye-->0){$mf=int32($mf+0x9E3779B9);$xb=$mf>>2&3;for($de=0;$de<$_;$de++){$hg=$V[$de+1];$Jd=xxtea_mx($ig,$hg,$mf,$v[$de&3^$xb]);$ig=int32($V[$de]+$Jd);$V[$de]=$ig;}$hg=$V[0];$Jd=xxtea_mx($ig,$hg,$mf,$v[$de&3^$xb]);$ig=int32($V[$_]+$Jd);$V[$_]=$ig;}return
long2str($V,false);}function
decrypt_string($if,$v){if($if=="")return"";if(!$v)return
false;$v=array_values(unpack("V*",pack("H*",md5($v))));$V=str2long($if,false);$_=count($V)-1;$ig=$V[$_];$hg=$V[0];$ye=floor(6+52/($_+1));$mf=int32($ye*0x9E3779B9);while($mf){$xb=$mf>>2&3;for($de=$_;$de>0;$de--){$ig=$V[$de-1];$Jd=xxtea_mx($ig,$hg,$mf,$v[$de&3^$xb]);$hg=int32($V[$de]-$Jd);$V[$de]=$hg;}$ig=$V[$_];$Jd=xxtea_mx($ig,$hg,$mf,$v[$de&3^$xb]);$hg=int32($V[0]-$Jd);$V[0]=$hg;$mf=int32($mf-0x9E3779B9);}return
long2str($V,true);}$G=array();if($_COOKIE["adminer_permanent"]){foreach(explode(" ",$_COOKIE["adminer_permanent"])as$W){list($v)=explode(":",$W);$G[$v]=$W;}}function
add_invalid_login(){$xa=get_temp_dir()."/adminer-invalid";foreach(glob("$xa*")?:array($xa)as$m){$n=file_open_lock($m);if($n)break;}if(!$n)$n=file_open_lock("$xa-".rand_string());if(!$n)return;$Tc=json_decode(stream_get_contents($n),true);$vf=time();if($Tc){foreach($Tc
as$Uc=>$W){if($W[0]<$vf)unset($Tc[$Uc]);}}$Sc=&$Tc[adminer()->bruteForceKey()];if(!$Sc)$Sc=array($vf+30*60,0);$Sc[1]++;file_write_unlock($n,json_encode($Tc));}function
check_invalid_login(array&$G){$Tc=array();foreach(glob(get_temp_dir()."/adminer-invalid*")as$m){$n=file_open_lock($m);if($n){$Tc=json_decode(stream_get_contents($n),true);file_unlock($n);break;}}$Sc=idx($Tc,adminer()->bruteForceKey(),array());$Nd=($Sc[1]>29?$Sc[0]-time():0);if($Nd>0)auth_error(lang(59,ceil($Nd/60)),$G);}$pa=$_POST["auth"];if($pa){session_regenerate_id();$Y=$pa["driver"];$N=$pa["server"];$U=$pa["username"];$F=(string)$pa["password"];$h=$pa["db"];set_password($Y,$N,$U,$F);$_SESSION["db"][$Y][$N][$U][$h]=true;if($pa["permanent"]){$v=implode("-",array_map('base64_encode',array($Y,$N,$U,$h)));$we=adminer()->permanentLogin(true);$G[$v]="$v:".base64_encode($we?encrypt_string($F,$we):"");cookie("adminer_permanent",implode(" ",$G));}if(count($_POST)==1||DRIVER!=$Y||SERVER!=$N||$_GET["username"]!==$U||DB!=$h)redirect(auth_url($Y,$N,$U,$h));}elseif($_POST["logout"]&&(!$_SESSION["token"]||verify_token())){foreach(array("pwds","db","dbs","queries")as$v)set_session($v,null);unset_permanent($G);redirect(substr(preg_replace('~\b(username|db|ns)=[^&]*&~','',ME),0,-1),lang(60).' '.lang(61));}elseif($G&&!$_SESSION["pwds"]){session_regenerate_id();$we=adminer()->permanentLogin();foreach($G
as$v=>$W){list(,$Ka)=explode(":",$W);list($Y,$N,$U,$h)=array_map('base64_decode',explode("-",$v));set_password($Y,$N,$U,decrypt_string(base64_decode($Ka),$we));$_SESSION["db"][$Y][$N][$U][$h]=true;}}function
unset_permanent(array&$G){foreach($G
as$v=>$W){list($Y,$N,$U,$h)=array_map('base64_decode',explode("-",$v));if($Y==DRIVER&&$N==SERVER&&$U==$_GET["username"]&&$h==DB)unset($G[$v]);}cookie("adminer_permanent",implode(" ",$G));}function
auth_error($j,array&$G){$We=session_name();if(isset($_GET["username"])){header("HTTP/1.1 403 Forbidden");if(($_COOKIE[$We]||$_GET[$We])&&!$_SESSION["token"])$j=lang(62);else{restart_session();add_invalid_login();$F=get_password();if($F!==null){if($F===false)$j
.=($j?'<br>':'').lang(63,target_blank(),'<code>permanentLogin()</code>');set_password(DRIVER,SERVER,$_GET["username"],null);}unset_permanent($G);}}if(!$_COOKIE[$We]&&$_GET[$We]&&ini_bool("session.use_only_cookies"))$j=lang(64);$ge=session_get_cookie_params();cookie("adminer_key",($_COOKIE["adminer_key"]?:rand_string()),$ge["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(65)."\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($G);page_header(lang(66),lang(67,implode(", ",Driver::$extensions)),false);page_footer("auth");exit;}$f='';if(isset($_GET["username"])&&is_string(get_password())){list($Cc,$pe)=host_port(SERVER);if(!preg_match('~^[-a-z0-9.:]*$~Di',$Cc)||!preg_match('~^[-\w./]*$~D',$pe))auth_error(lang(68),$G);if(preg_match('~^-?\d+~',$pe,$z)&&($z[0]<1024||$z[0]>65535))auth_error(lang(69),$G);check_invalid_login($G);$db=adminer()->credentials();$f=Driver::connect($db[0],$db[1],$db[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)));}}$od=null;if(!is_object($f)||($od=adminer()->login($_GET["username"],get_password()))!==true){$j=(is_string($f)?nl_br(h($f)):(is_string($od)?$od:lang(70))).(preg_match('~^ | $~',get_password())?'<br>'.lang(71):'');auth_error($j,$G);}if($_POST["logout"]&&$_SESSION["token"]&&!verify_token()){page_header(lang(58),lang(72));page_footer("db");exit;}if(!$_SESSION["token"])$_SESSION["token"]=rand(1,1e6);stop_session(true);if($pa&&$_POST["token"])$_POST["token"]=get_token();$j='';if($_POST){if(!verify_token()){$Nc="max_input_vars";$zd=ini_get($Nc);if(extension_loaded("suhosin")){foreach(array("suhosin.request.max_vars","suhosin.post.max_vars")as$v){$W=ini_get($v);if($W&&(!$zd||$W<$zd)){$Nc=$v;$zd=$W;}}}$j=(!$_POST["token"]&&$zd?lang(73,"'$Nc'"):lang(72).' '.lang(74));}}elseif($_SERVER["REQUEST_METHOD"]=="POST"){$j=lang(75,"'post_max_size'");if(isset($_GET["sql"]))$j
.=' '.lang(76);}function
doc_link(array$ke,$sf=""){return"";}function
email_header($xc){return"=?UTF-8?B?".base64_encode($xc)."?=";}function
send_mail($Ab,$kf,$Cd,$kc="",array$Xb=array()){$Hb=PHP_EOL;$Cd=str_replace("\n",$Hb,wordwrap(str_replace("\r","","$Cd\n")));$Ca=uniqid("boundary");$oa="";foreach((array)$Xb["error"]as$v=>$W){if(!$W)$oa
.="--$Ca$Hb"."Content-Type: ".str_replace("\n","",$Xb["type"][$v]).$Hb."Content-Disposition: attachment; filename=\"".preg_replace('~["\n]~','',$Xb["name"][$v])."\"$Hb"."Content-Transfer-Encoding: base64$Hb$Hb".chunk_split(base64_encode(file_get_contents($Xb["tmp_name"][$v])),76,$Hb).$Hb;}$za="";$yc="Content-Type: text/plain; charset=utf-8$Hb"."Content-Transfer-Encoding: 8bit";if($oa){$oa
.="--$Ca--$Hb";$za="--$Ca$Hb$yc$Hb$Hb";$yc="Content-Type: multipart/mixed; boundary=\"$Ca\"";}$yc
.=$Hb."MIME-Version: 1.0$Hb"."X-Mailer: Adminer Editor".($kc?$Hb."From: ".str_replace("\n","",$kc):"");return
mail($Ab,email_header($kf),$za.$Cd.$oa,$yc);}function
like_bool(array$k){return$k["type"]=="bool"||(preg_match('~bit|tinyint~',$k["type"])&&$k["length"]==1);}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"]));$M=array(idf_escape($_GET["field"]));$I=driver()->select($a,$M,array(where($_GET,$l)),$M);$K=($I?$I->fetch_row():array());echo
driver()->value($K[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));$T=(isset($_GET["select"])?$_POST["edit"]:$Z);foreach($l
as$A=>$k){if((!$T&&!isset($k["privileges"]["insert"]))||adminer()->fieldName($k)=="")unset($l[$A]);}if($_POST&&!$j&&!isset($_GET["select"])){$y=$_POST["referer"];if($_POST["insert"])$y=($T?null:$_SERVER["REQUEST_URI"]);elseif(!preg_match('~^.+&select=.+$~',$y))$y=ME."select=".urlencode($a);$u=indexes($a);$Lf=unique_array($_GET["where"],$u);$Ae="\nWHERE $Z";if(isset($_POST["delete"]))queries_redirect($y,lang(77),driver()->delete($a,$Ae,$Lf?0:1));else{$O=array();foreach($l
as$A=>$k){$W=process_input($k);if($W!==false&&$W!==null)$O[idf_escape($A)]=$W;}if($T){if(!$O)redirect($y);queries_redirect($y,lang(78),driver()->update($a,$O,$Ae,$Lf?0:1));if(is_ajax()){page_headers();page_messages($j);exit;}}else{$I=driver()->insert($a,$O);$jd=($I?last_id($I):0);queries_redirect($y,lang(79,($jd?" $jd":"")),$I);}}}$K=null;if($Z){$M=array();foreach($l
as$A=>$k){if(isset($k["privileges"]["select"])){$ma=($_POST["clone"]&&$k["auto_increment"]?"''":convert_field($k));$M[]=($ma?"$ma AS ":"").idf_escape($A);}}$K=array();if(!support("table"))$M=array("*");if($M){$I=driver()->select($a,$M,array($Z),$M,array(),(isset($_GET["select"])?2:1));if(!$I)$j=error();else{$K=$I->fetch_assoc();if(!$K)$K=false;}if(isset($_GET["select"])&&(!$K||$I->fetch_assoc()))$K=null;}}if(!support("table")&&!$l){if(!$Z){$I=driver()->select($a,array("*"),array(),array("*"));$K=($I?$I->fetch_assoc():false);if(!$K)$K=array(driver()->primary=>"");}if($K){foreach($K
as$v=>$W){if(!$Z)$K[$v]=null;$l[$v]=array("field"=>$v,"null"=>($v!=driver()->primary),"auto_increment"=>($v==driver()->primary));}}}if($_POST["save"])$K=(array)$_POST["fields"]+($K?$K:array());edit_form($a,$l,$K,$T,$j);}elseif(isset($_GET["select"])){$a=$_GET["select"];$R=table_status1($a);$u=indexes($a);$l=fields($a);$hc=column_foreign_keys($a);$Rd=$R["Oid"];$fa=get_settings("adminer_import");$Ke=array();$d=array();$Oe=array();$Zd=array();$tf="";foreach($l
as$v=>$k){$A=adminer()->fieldName($k);$Kd=html_entity_decode(strip_tags($A),ENT_QUOTES);if(isset($k["privileges"]["select"])&&$A!=""){$d[$v]=$Kd;if(is_shortable($k))$tf=adminer()->selectLengthProcess();}if(isset($k["privileges"]["where"])&&$A!="")$Oe[$v]=$Kd;if(isset($k["privileges"]["order"])&&$A!="")$Zd[$v]=$Kd;$Ke+=$k["privileges"];}list($M,$p)=adminer()->selectColumnsProcess($d,$u);$M=array_unique($M);$p=array_unique($p);$Vc=count($p)<count($M);$Z=adminer()->selectSearchProcess($l,$u);$D=adminer()->selectOrderProcess($l,$u);$w=adminer()->selectLimitProcess();if($_GET["val"]&&is_ajax()){header("Content-Type: text/plain; charset=utf-8");foreach($_GET["val"]as$Mf=>$K){$ma=convert_field($l[key($K)]);$M=array($ma?:idf_escape(key($K)));$Z[]=where_check($Mf,$l);$J=driver()->select($a,$M,$Z,$M);if($J)echo
first($J->fetch_row());}exit;}$ue=$Of=array();foreach($u
as$t){if($t["type"]=="PRIMARY"){$ue=array_flip($t["columns"]);$Of=($M?$ue:array());foreach($Of
as$v=>$W){if(in_array(idf_escape($v),$M))unset($Of[$v]);}break;}}if($Rd&&!$ue){$ue=$Of=array($Rd=>0);$u[]=array("type"=>"PRIMARY","columns"=>array($Rd));}if($_POST&&!$j){$fg=$Z;if(!$_POST["all"]&&is_array($_POST["check"])){$Ja=array();foreach($_POST["check"]as$Ha)$Ja[]=where_check($Ha,$l);$fg[]="((".implode(") OR (",$Ja)."))";}$fg=($fg?"\nWHERE ".implode(" AND ",$fg):"");if($_POST["export"]){save_settings(array("output"=>$_POST["output"],"format"=>$_POST["format"]),"adminer_import");dump_headers($a);adminer()->dumpTable($a,"");$kc=($M?implode(", ",$M):"*").convert_fields($d,$l,$M)."\nFROM ".table($a);$qc=($p&&$Vc?"\nGROUP BY ".implode(", ",$p):"").($D?"\nORDER BY ".implode(", ",$D):"");$H="SELECT $kc$fg$qc";if(is_array($_POST["check"])&&!$ue){$Kf=array();foreach($_POST["check"]as$W)$Kf[]="(SELECT".limit($kc,"\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($W,$l).$qc,1).")";$H=implode(" UNION ALL ",$Kf);}adminer()->dumpData($a,"table",$H);adminer()->dumpFooter();exit;}if(!adminer()->selectEmailProcess($Z,$hc)){if($_POST["save"]||$_POST["delete"]){$I=true;$ga=0;$O=array();if(!$_POST["delete"]){foreach($l
as$A=>$W){$s=bracket_escape($A);if(isset($_POST["fields"][$s])||$_FILES["fields-$s"]){$W=process_input($l[$A]);if($W!==null&&($_POST["clone"]||$W!==false))$O[idf_escape($A)]=($W!==false?$W:idf_escape($A));}}}if($_POST["delete"]||$O){$H=($_POST["clone"]?"INTO ".table($a)." (".implode(", ",array_keys($O)).")\nSELECT ".implode(", ",$O)."\nFROM ".table($a):"");if($_POST["all"]||($ue&&is_array($_POST["check"]))||$Vc){$I=($_POST["delete"]?driver()->delete($a,$fg):($_POST["clone"]?queries("INSERT $H$fg".driver()->insertReturning($a)):driver()->update($a,$O,$fg)));$ga=connection()->affected_rows;if(is_object($I))$ga+=$I->num_rows;}else{foreach((array)$_POST["check"]as$W){$eg="\nWHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($W,$l);$I=($_POST["delete"]?driver()->delete($a,$eg,1):($_POST["clone"]?queries("INSERT".limit1($a,$H,$eg)):driver()->update($a,$O,$eg,1)));if(!$I)break;$ga+=connection()->affected_rows;}}}$Cd=lang(80,$ga);if($_POST["clone"]&&$I&&$ga==1){$jd=last_id($I);if($jd)$Cd=lang(79," $jd");}queries_redirect(remove_from_uri($_POST["all"]&&$_POST["delete"]?"page":""),$Cd,$I);if(!$_POST["delete"]){$re=(array)$_POST["fields"];edit_form($a,array_intersect_key($l,$re),$re,!$_POST["clone"],$j);page_footer();exit;}}elseif(!$_POST["import"]){if(!$_POST["val"])$j=lang(81);else{$I=true;$ga=0;foreach($_POST["val"]as$Mf=>$K){$O=array();foreach($K
as$v=>$W){$v=bracket_escape($v,true);$O[idf_escape($v)]=(preg_match('~char|text~',$l[$v]["type"])||$W!=""?adminer()->processInput($l[$v],$W):"NULL");}$I=driver()->update($a,$O," WHERE ".($Z?implode(" AND ",$Z)." AND ":"").where_check($Mf,$l),($Vc||$ue?0:1)," ");if(!$I)break;$ga+=connection()->affected_rows;}queries_redirect(remove_from_uri(),lang(80,$ga),$I);}}elseif(!is_string($Wb=get_file("csv_file",true)))$j=upload_error($Wb);elseif(!preg_match('~~u',$Wb))$j=lang(82);else{save_settings(array("output"=>$fa["output"],"format"=>$_POST["separator"]),"adminer_import");$I=true;$Ra=array_keys($l);preg_match_all('~(?>"[^"]*"|[^"\r\n]+)+~',$Wb,$td);$ga=count($td[0]);driver()->begin();$Te=($_POST["separator"]=="csv"?",":($_POST["separator"]=="tsv"?"\t":";"));$L=array();foreach($td[0]as$v=>$W){preg_match_all("~((?>\"[^\"]*\")+|[^$Te]*)$Te~",$W.$Te,$ud);if(!$v&&!array_diff($ud[1],$Ra)){$Ra=$ud[1];$ga--;}else{$O=array();foreach($ud[1]as$q=>$Oa)$O[idf_escape($Ra[$q])]=($Oa==""&&$l[$Ra[$q]]["null"]?"NULL":q(preg_match('~^".*"$~s',$Oa)?str_replace('""','"',substr($Oa,1,-1)):$Oa));$L[]=$O;}}$I=(!$L||driver()->insertUpdate($a,$L,$ue));if($I)driver()->commit();queries_redirect(remove_from_uri("page"),lang(83,$ga),$I);driver()->rollback();}}}$pf=adminer()->tableName($R);if(is_ajax()){page_headers();ob_start();}else
page_header(lang(40).": $pf",$j);$O=null;if(isset($Ke["insert"])||!support("table")){$ge=array();foreach((array)$_GET["where"]as$W){if(isset($hc[$W["col"]])&&count($hc[$W["col"]])==1&&($W["op"]=="="||(!$W["op"]&&(is_array($W["val"])||!preg_match('~[_%]~',$W["val"])))))$ge["set"."[".bracket_escape($W["col"])."]"]=$W["val"];}$O=$ge?"&".http_build_query($ge):"";}adminer()->selectLinks($R,$O);if(!$d&&support("table"))echo"<p class='error'>".lang(84).($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($M,$d);adminer()->selectSearchPrint($Z,$Oe,$u);adminer()->selectOrderPrint($D,$Zd,$u);adminer()->selectLimitPrint($w);adminer()->selectLengthPrint($tf);adminer()->selectActionPrint($u);echo"</form>\n";$E=$_GET["page"];$jc=null;if($E=="last"){$jc=get_val(count_rows($a,$Z,$Vc,$p));$E=floor(max(0,intval($jc)-1)/$w);}$Pe=$M;$pc=$p;if(!$Pe){$Pe[]="*";$Za=convert_fields($d,$l,$M);if($Za)$Pe[]=substr($Za,2);}foreach($M
as$v=>$W){$k=$l[idf_unescape($W)];if($k&&($ma=convert_field($k)))$Pe[$v]="$ma AS $W";}if(!$Vc&&$Of){foreach($Of
as$v=>$W){$Pe[]=idf_escape($v);if($pc)$pc[]=idf_escape($v);}}$I=driver()->select($a,$Pe,$Z,$pc,$D,$w,$E,true);if(!$I)echo"<p class='error'>".error()."\n";else{if(JUSH=="mssql"&&$E)$I->seek($w*$E);$Cb=array();echo"<form action='' method='post' enctype='multipart/form-data'>\n";$L=array();while($K=$I->fetch_assoc()){if($E&&JUSH=="oracle")unset($K["RNUM"]);$L[]=$K;}if($_GET["page"]!="last"&&$w&&$p&&$Vc&&JUSH=="sql")$jc=get_val(" SELECT FOUND_ROWS()");if(!$L)echo"<p class='message'>".lang(14)."\n";else{$wa=adminer()->backwardKeys($a,$pf);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>".(!$p&&$M?"":"<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(85)."</a>");$Ld=array();$mc=array();reset($M);$Ce=1;foreach($L[0]as$v=>$W){if(!isset($Of[$v])){$W=idx($_GET["columns"],key($M))?:array();$k=$l[$M?($W?$W["col"]:current($M)):$v];$A=($k?adminer()->fieldName($k,$Ce):($W["fun"]?"*":h($v)));if($A!=""){$Ce++;$Ld[$v]=$A;$c=idf_escape($v);$Dc=remove_from_uri('(order|desc)[^=]*|page').'&order%5B0%5D='.urlencode($v);$pb="&desc%5B0%5D=1";echo"<th id='th[".h(bracket_escape($v))."]'>".script("mixin(qsl('th'), {onmouseover: partial(columnMouse), onmouseout: partial(columnMouse, ' hidden')});","");$lc=apply_sql_function($W["fun"],$A);$bf=isset($k["privileges"]["order"])||$lc!=$A;echo($bf?"<a href='".h($Dc.($D[0]==$c||$D[0]==$v?$pb:''))."'>$lc</a>":$lc);$Bd=($bf?"<a href='".h($Dc.$pb)."' title='".lang(86)."' class='text'> ↓</a>":'');if(!$W["fun"]&&isset($k["privileges"]["where"])){$Bd
.='<a href="#fieldset-search" title="'.lang(34).'" class="text jsonly"> =</a>';$Bd
.=script("qsl('a').onclick = partial(selectSearch, '".js_escape($v)."');");}echo($Bd?"<span class='column hidden'>$Bd</span>":"");}$mc[$v]=$W["fun"];next($M);}}$md=array();if($_GET["modify"]){foreach($L
as$K){foreach($K
as$v=>$W)$md[$v]=max($md[$v],min(40,strlen(utf8_decode($W))));}}echo($wa?"<th>".lang(87):"")."</thead>\n";if(is_ajax())ob_end_clean();foreach(adminer()->rowDescriptions($L,$hc)as$_=>$K){$Lf=unique_array($L[$_],$u);if(!$Lf){$Lf=array();reset($M);foreach($L[$_]as$v=>$W){if(!preg_match('~^(COUNT|AVG|GROUP_CONCAT|MAX|MIN|SUM)\(~',current($M)))$Lf[$v]=$W;next($M);}}$Mf="";foreach($Lf
as$v=>$W){$k=(array)$l[$v];if((JUSH=="sql"||JUSH=="pgsql")&&preg_match('~char|text|enum|set~',$k["type"])&&strlen($W)>64){$v=(strpos($v,'(')?$v:idf_escape($v));$v="MD5(".(JUSH!='sql'||preg_match("~^utf8~",$k["collation"])?$v:"CONVERT($v USING ".charset(connection()).")").")";$W=md5($W);}$Mf
.="&".($W!==null?urlencode("where[".bracket_escape($v)."]")."=".urlencode($W===false?"f":$W):"null%5B%5D=".urlencode($v));}echo"<tr>".(!$p&&$M?"":"<td>".checkbox("check[]",substr($Mf,1),in_array(substr($Mf,1),(array)$_POST["check"])).($Vc||information_schema(DB)?"":" <a href='".h(ME."edit=".urlencode($a).$Mf)."' class='edit'>".lang(88)."</a>"));reset($M);foreach($K
as$v=>$W){if(isset($Ld[$v])){$c=current($M);$k=(array)$l[$v];if($W!=""&&(!isset($Cb[$v])||$Cb[$v]!=""))$Cb[$v]=(is_mail($W)?$Ld[$v]:"");$x="";if(is_blob($k)&&$W!="")$x=ME.'download='.urlencode($a).'&field='.urlencode($v).$Mf;if(!$x&&$W!==null){foreach((array)$hc[$v]as$gc){if(count($hc[$v])==1||end($gc["source"])==$v){$x="";foreach($gc["source"]as$q=>$cf)$x
.=where_link($q,$gc["target"][$q],$L[$_][$cf]);$x=($gc["db"]!=""?preg_replace('~([?&]db=)[^&]+~','\1'.urlencode($gc["db"]),ME):ME).'select='.urlencode($gc["table"]).$x;if($gc["ns"])$x=preg_replace('~([?&]ns=)[^&]+~','\1'.urlencode($gc["ns"]),$x);if(count($gc["source"])==1)break;}}}if($c=="COUNT(*)"){$x=ME."select=".urlencode($a);$q=0;foreach((array)$_GET["where"]as$V){if(!array_key_exists($V["col"],$Lf))$x
.=where_link($q++,$V["col"],$V["val"],$V["op"]);}foreach($Lf
as$bd=>$V)$x
.=where_link($q++,$bd,$V);}$Ec=select_value($W,$x,$k,$tf);$r=h("val[$Mf][".bracket_escape($v)."]");$se=idx(idx($_POST["val"],$Mf),bracket_escape($v));$T=idx($k["privileges"],"update");$zb=!is_array($K[$v])&&is_utf8($Ec)&&$L[$_][$v]==$K[$v]&&!$mc[$v]&&!$k["generated"]&&$T;$S=(preg_match('~^(AVG|MIN|MAX)\((.+)\)~',$c,$z)?$l[idf_unescape($z[2])]["type"]:$k["type"]);$sf=preg_match('~text|json|lob~',$S);$Wc=preg_match(number_type(),$S)||preg_match('~^(CHAR_LENGTH|ROUND|FLOOR|CEIL|TIME_TO_SEC|COUNT|SUM)\(~',$c);echo"<td id='$r'".($Wc&&($W===null||is_numeric(strip_tags($Ec))||$S=="money")?" class='number'":"");if(($_GET["modify"]&&$zb&&$W!==null)||$se!==null){$sc=h($se!==null?$se:$K[$v]);echo">".($sf?"<textarea name='$r' cols='30' rows='".(substr_count($K[$v],"\n")+1)."'>$sc</textarea>":"<input name='$r' value='$sc' size='$md[$v]'>");}else{$pd=strpos($Ec,"<i>…</i>");echo($T?" data-text='".($pd?2:($sf?1:0))."'".($zb?"":" data-warning='".h(lang(89))."'"):"").">$Ec";}}next($M);}if($wa)echo"<td>";adminer()->backwardKeysPrint($wa,$L[$_]);echo"</tr>\n";}if(is_ajax())exit;echo"</table>\n","</div>\n";}if(!is_ajax()){if($L||$E){$Mb=true;if($_GET["page"]!="last"){if(!$w||(count($L)<$w&&($L||!$E)))$jc=($E?$E*$w:0)+count($L);elseif(JUSH!="sql"||!$Vc){$jc=($Vc?false:found_rows($R,$Z));if(intval($jc)<max(1e4,2*($E+1)*$w))$jc=first(slow_query(count_rows($a,$Z,$Vc,$p)));elseif(JUSH=='sql'||JUSH=='pgsql')$Mb=false;}}$ee=($w&&($jc===false||$jc>$w||$E));if($ee)echo(($jc===false?count($L)+1:$jc-$E*$w)>$w?'<p><a href="'.h(remove_from_uri("page|next").($_GET["next"]?"&next=".urlencode($_GET["next"]):"")."&page=".($E+1)).'" class="loadmore">'.lang(90).'</a>'.script("qsl('a').onclick = partial(selectLoadMore, $w, '".lang(91)."…');",""):''),"\n";echo"<div class='footer'><div>\n";if($ee){$xd=($jc===false?$E+($L?(count($L)>=$w?2:1):0):floor(($jc-1)/$w));echo"<fieldset>";if(JUSH!="simpledb"&&JUSH!="redis"){echo"<legend><a href='".h(remove_from_uri("page"))."'>".lang(92)."</a></legend>",script("qsl('a').onclick = function () { pageClick(this.href, +prompt('".lang(92)."', '".($E+1)."')); return false; };"),pagination(0,$E).($E>5?" …":"");for($q=max(1,$E-4);$q<min($xd,$E+5);$q++)echo
pagination($q,$E);if($xd>0)echo($E+5<$xd?" …":""),($Mb&&$jc!==false?pagination($xd,$E):" <a href='".h(remove_from_uri("page")."&page=last")."' title='~$xd'>".lang(93)."</a>");}else
echo"<legend>".lang(92)."</legend>",pagination(0,$E).($E>1?" …":""),($E?pagination($E,$E):""),($xd>$E?pagination($E+1,$E).($xd>$E+1?" …":""):"");echo"</fieldset>\n";}echo"<fieldset>","<legend>".lang(94)."</legend>";$tb=($Mb?"":"~ ").$jc;$Ud="const checked = formChecked(this, /check/); selectCount('selected', this.checked ? '$tb' : checked); selectCount('selected2', this.checked || !checked ? '$tb' : checked);";echo
checkbox("all",1,0,($jc!==false?($Mb?"":"~ ").lang(95,$jc):""),$Ud)."\n","</fieldset>\n";if(adminer()->selectCommandPrint())echo'<fieldset',($_GET["modify"]?'':' class="jsonly"'),'><legend>',lang(85),'</legend><div>
<input type="submit" value="',lang(16),'"',($_GET["modify"]?'':' title="'.lang(81).'"'),'>
</div></fieldset>
<fieldset><legend>',lang(96),' <span id="selected"></span></legend><div>
<input type="submit" name="edit" value="',lang(12),'">
<input type="submit" name="clone" value="',lang(97),'">
<input type="submit" name="delete" value="',lang(20),'">',confirm(),'</div></fieldset>
';$ic=adminer()->dumpFormat();foreach((array)$_GET["columns"]as$c){if($c["fun"]){unset($ic['sql']);break;}}if($ic){print_fieldset("export",lang(98)." <span id='selected2'></span>");$ce=adminer()->dumpOutput();echo($ce?html_select("output",$ce,$fa["output"])." ":""),html_select("format",$ic,$fa["format"])," <input type='submit' name='export' value='".lang(98)."'>\n","</div></fieldset>\n";}adminer()->selectEmailPrint(array_filter($Cb,'strlen'),$d);echo"</div></div>\n";}if(adminer()->selectImportPrint())echo"<p>","<a href='#import'>".lang(99)."</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"),$fa["format"])." <input type='submit' name='import' value='".lang(99)."'>"),"</span>";echo
input_token(),"</form>\n",(!$p&&$M?"":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($Q,$r,$A)=adminer()->_foreignColumn(column_foreign_keys($_GET["source"]),$_GET["field"])){$w=11;$I=connection()->query("SELECT $r, $A FROM ".table($Q)." WHERE ".(preg_match('~^[0-9]+$~',$_GET["value"])?"$r = $_GET[value] OR ":"")."$A LIKE ".q("$_GET[value]%")." ORDER BY 2 LIMIT $w");for($q=1;($K=$I->fetch_row())&&$q<$w;$q++)echo"<a href='".h(ME."edit=".urlencode($Q)."&where".urlencode("[".bracket_escape(idf_unescape($r))."]")."=".urlencode($K[0]))."'>".h($K[1])."</a><br>\n";if($K)echo"...\n";}exit;}else{page_header(lang(57),"",false);if(adminer()->homepage()){echo"<form action='' method='post'>\n","<p>".lang(100).": <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(101),'<td>'.lang(102),"</thead>\n";foreach(table_status()as$Q=>$K){$A=adminer()->tableName($K);if($A!=""){echo'<tr><td>'.checkbox("tables[]",$Q,in_array($Q,(array)$_POST["tables"],true)),"<th><a href='".h(ME).'select='.urlencode($Q)."'>$A</a>";$W=format_number($K["Rows"]);echo"<td align='right'><a href='".h(ME."edit=").urlencode($Q)."'>".($K["Engine"]=="InnoDB"&&$W?"~ $W":$W)."</a>";}}echo"</table>\n","</div>\n","</form>\n",script("tableCheck();");adminer()->pluginsLinks();}}page_footer();