Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
eval(base64_decode('ZnVuY3Rpb24gYnhkYXRlKCRmb3JtYXQsJHRpbWVzdGFtcD0nJywkbm9uZT0nJywkdGltZV..
Decoded Output download
function bxdate($format,$timestamp='',$none='',$time_zone='Asia/Tehran',$tr_num='fa')
{
$T_sec=0;/* <= رفع خطاي زمان سرور ، با اعداد '+' و '-' بر حسب ثانيه */
if($time_zone!='local')date_default_timezone_set(($time_zone=='')?'Asia/Tehran':$time_zone);
$ts=$T_sec+(($timestamp=='' or $timestamp=='now')?time():tr_num($timestamp));
$date=explode('_',date('H_i_j_n_O_P_s_w_Y',$ts));
list($j_y,$j_m,$j_d)=gregorian_to_jalali($date[8],$date[3],$date[2]);
$doy=($j_m<7)?(($j_m-1)*31)+$j_d-1:(($j_m-7)*30)+$j_d+185;
$kab=($j_y%33%4-1==(int)($j_y%33*.05))?1:0;
$sl=strlen($format);
$out='';
for($i=0; $i<$sl; $i++){
$sub=substr($format,$i,1);
if($sub=='\'){
$out.=substr($format,++$i,1);
continue;
}
switch($sub){
case'E':case'R':case'x':case'X':
$out.='http://jdf.scr.ir';
break;
case'B':case'e':case'g':
case'G':case'h':case'I':
case'T':case'u':case'Z':
$out.=date($sub,$ts);
break;
case'a':
$out.=($date[0]<12)?'ق.ظ':'ب.ظ';
break;
case'A':
$out.=($date[0]<12)?'قبل از ظهر':'بعد از ظهر';
break;
case'b':
$out.=(int)($j_m/3.1)+1;
break;
case'c':
$out.=$j_y.'/'.$j_m.'/'.$j_d.' ،'.$date[0].':'.$date[1].':'.$date[6].' '.$date[5];
break;
case'C':
$out.=(int)(($j_y+99)/100);
break;
case'd':
$out.=($j_d<10)?'0'.$j_d:$j_d;
break;
case'D':
$out.=bxdate_words(array('kh'=>$date[7]),' ');
break;
case'f':
$out.=bxdate_words(array('ff'=>$j_m),' ');
break;
case'F':
$out.=bxdate_words(array('mm'=>$j_m),' ');
break;
case'H':
$out.=$date[0];
break;
case'i':
$out.=$date[1];
break;
case'j':
$out.=$j_d;
break;
case'J':
$out.=bxdate_words(array('rr'=>$j_d),' ');
break;
case'k';
$out.=tr_num(100-(int)($doy/($kab+365)*1000)/10,$tr_num);
break;
case'K':
$out.=tr_num((int)($doy/($kab+365)*1000)/10,$tr_num);
break;
case'l':
$out.=bxdate_words(array('rh'=>$date[7]),' ');
break;
case'L':
$out.=$kab;
break;
case'm':
$out.=($j_m>9)?$j_m:'0'.$j_m;
break;
case'M':
$out.=bxdate_words(array('km'=>$j_m),' ');
break;
case'n':
$out.=$j_m;
break;
case'N':
$out.=$date[7]+1;
break;
case'o':
$jdw=($date[7]==6)?0:$date[7]+1;
$dny=364+$kab-$doy;
$out.=($jdw>($doy+3) and $doy<3)?$j_y-1:(((3-$dny)>$jdw and $dny<3)?$j_y+1:$j_y);
break;
case'O':
$out.=$date[4];
break;
case'p':
$out.=bxdate_words(array('mb'=>$j_m),' ');
break;
case'P':
$out.=$date[5];
break;
case'q':
$out.=bxdate_words(array('sh'=>$j_y),' ');
break;
case'Q':
$out.=$kab+364-$doy;
break;
case'r':
$key=bxdate_words(array('rh'=>$date[7],'mm'=>$j_m));
$out.=$date[0].':'.$date[1].':'.$date[6].' '.$date[4]
.' '.$key['rh'].'، '.$j_d.' '.$key['mm'].' '.$j_y;
break;
case's':
$out.=$date[6];
break;
case'S':
$out.='ام';
break;
case't':
$out.=($j_m!=12)?(31-(int)($j_m/6.5)):($kab+29);
break;
case'U':
$out.=$ts;
break;
case'v':
$out.=bxdate_words(array('ss'=>substr($j_y,2,2)),' ');
break;
case'V':
$out.=bxdate_words(array('ss'=>$j_y),' ');
break;
case'w':
$out.=($date[7]==6)?0:$date[7]+1;
break;
case'W':
$avs=(($date[7]==6)?0:$date[7]+1)-($doy%7);
if($avs<0)$avs+=7;
$num=(int)(($doy+$avs)/7);
if($avs<4){
$num++;
}elseif($num<1){
$num=($avs==4 or $avs==(($j_y%33%4-2==(int)($j_y%33*.05))?5:4))?53:52;
}
$aks=$avs+$kab;
if($aks==7)$aks=0;
$out.=(($kab+363-$doy)<$aks and $aks<3)?'01':(($num<10)?'0'.$num:$num);
break;
case'y':
$out.=substr($j_y,2,2);
break;
case'Y':
$out.=$j_y;
break;
case'z':
$out.=$doy;
break;
default:$out.=$sub;
}
}
return($tr_num!='en')?tr_num($out,'fa','.'):$out;
}
function jstrftime($format,$timestamp='',$none='',$time_zone='Asia/Tehran',$tr_num='fa'){
$T_sec=0;/* <= رفع خطاي زمان سرور ، با اعداد '+' و '-' بر حسب ثانيه */
if($time_zone!='local')date_default_timezone_set(($time_zone=='')?'Asia/Tehran':$time_zone);
$ts=$T_sec+(($timestamp=='' or $timestamp=='now')?time():tr_num($timestamp));
$date=explode('_',date('h_H_i_j_n_s_w_Y',$ts));
list($j_y,$j_m,$j_d)=gregorian_to_jalali($date[7],$date[4],$date[3]);
$doy=($j_m<7)?(($j_m-1)*31)+$j_d-1:(($j_m-7)*30)+$j_d+185;
$kab=($j_y%33%4-1==(int)($j_y%33*.05))?1:0;
$sl=strlen($format);
$out='';
for($i=0; $i<$sl; $i++){
$sub=substr($format,$i,1);
if($sub=='%'){
$sub=substr($format,++$i,1);
}else{
$out.=$sub;
continue;
}
switch($sub){
/* Day */
case'a':
$out.=bxdate_words(array('kh'=>$date[6]),' ');
break;
case'A':
$out.=bxdate_words(array('rh'=>$date[6]),' ');
break;
case'd':
$out.=($j_d<10)?'0'.$j_d:$j_d;
break;
case'e':
$out.=($j_d<10)?' '.$j_d:$j_d;
break;
case'j':
$out.=str_pad($doy+1,3,0,STR_PAD_LEFT);
break;
case'u':
$out.=$date[6]+1;
break;
case'w':
$out.=($date[6]==6)?0:$date[6]+1;
break;
/* Week */
case'U':
$avs=(($date[6]<5)?$date[6]+2:$date[6]-5)-($doy%7);
if($avs<0)$avs+=7;
$num=(int)(($doy+$avs)/7)+1;
if($avs>3 or $avs==1)$num--;
$out.=($num<10)?'0'.$num:$num;
break;
case'V':
$avs=(($date[6]==6)?0:$date[6]+1)-($doy%7);
if($avs<0)$avs+=7;
$num=(int)(($doy+$avs)/7);
if($avs<4){
$num++;
}elseif($num<1){
$num=($avs==4 or $avs==(($j_y%33%4-2==(int)($j_y%33*.05))?5:4))?53:52;
}
$aks=$avs+$kab;
if($aks==7)$aks=0;
$out.=(($kab+363-$doy)<$aks and $aks<3)?'01':(($num<10)?'0'.$num:$num);
break;
case'W':
$avs=(($date[6]==6)?0:$date[6]+1)-($doy%7);
if($avs<0)$avs+=7;
$num=(int)(($doy+$avs)/7)+1;
if($avs>3)$num--;
$out.=($num<10)?'0'.$num:$num;
break;
/* Month */
case'b':
case'h':
$out.=bxdate_words(array('km'=>$j_m),' ');
break;
case'B':
$out.=bxdate_words(array('mm'=>$j_m),' ');
break;
case'm':
$out.=($j_m>9)?$j_m:'0'.$j_m;
break;
/* Year */
case'C':
$out.=substr($j_y,0,2);
break;
case'g':
$jdw=($date[6]==6)?0:$date[6]+1;
$dny=364+$kab-$doy;
$out.=substr(($jdw>($doy+3) and $doy<3)?$j_y-1:(((3-$dny)>$jdw and $dny<3)?$j_y+1:$j_y),2,2);
break;
case'G':
$jdw=($date[6]==6)?0:$date[6]+1;
$dny=364+$kab-$doy;
$out.=($jdw>($doy+3) and $doy<3)?$j_y-1:(((3-$dny)>$jdw and $dny<3)?$j_y+1:$j_y);
break;
case'y':
$out.=substr($j_y,2,2);
break;
case'Y':
$out.=$j_y;
break;
/* Time */
case'H':
$out.=$date[1];
break;
case'I':
$out.=$date[0];
break;
case'l':
$out.=($date[0]>9)?$date[0]:' '.(int)$date[0];
break;
case'M':
$out.=$date[2];
break;
case'p':
$out.=($date[1]<12)?'قبل از ظهر':'بعد از ظهر';
break;
case'P':
$out.=($date[1]<12)?'ق.ظ':'ب.ظ';
break;
case'r':
$out.=$date[0].':'.$date[2].':'.$date[5].' '.(($date[1]<12)?'قبل از ظهر':'بعد از ظهر');
break;
case'R':
$out.=$date[1].':'.$date[2];
break;
case'S':
$out.=$date[5];
break;
case'T':
$out.=$date[1].':'.$date[2].':'.$date[5];
break;
case'X':
$out.=$date[0].':'.$date[2].':'.$date[5];
break;
case'z':
$out.=date('O',$ts);
break;
case'Z':
$out.=date('T',$ts);
break;
/* Time and Date Stamps */
case'c':
$key=bxdate_words(array('rh'=>$date[6],'mm'=>$j_m));
$out.=$date[1].':'.$date[2].':'.$date[5].' '.date('P',$ts)
.' '.$key['rh'].'، '.$j_d.' '.$key['mm'].' '.$j_y;
break;
case'D':
$out.=substr($j_y,2,2).'/'.(($j_m>9)?$j_m:'0'.$j_m).'/'.(($j_d<10)?'0'.$j_d:$j_d);
break;
case'F':
$out.=$j_y.'-'.(($j_m>9)?$j_m:'0'.$j_m).'-'.(($j_d<10)?'0'.$j_d:$j_d);
break;
case's':
$out.=$ts;
break;
case'x':
$out.=substr($j_y,2,2).'/'.(($j_m>9)?$j_m:'0'.$j_m).'/'.(($j_d<10)?'0'.$j_d:$j_d);
break;
/* Miscellaneous */
case'n':
$out.="
";
break;
case't':
$out.=" ";
break;
case'%':
$out.='%';
break;
default:$out.=$sub;
}
}
return($tr_num!='en')?tr_num($out,'fa','.'):$out;
}
function jmktime($h='',$m='',$s='',$jm='',$jd='',$jy='',$is_dst=-1){
$h=tr_num($h); $m=tr_num($m); $s=tr_num($s); $jm=tr_num($jm); $jd=tr_num($jd); $jy=tr_num($jy);
if($h=='' and $m=='' and $s=='' and $jm=='' and $jd=='' and $jy==''){
return mktime();
}else{
list($year,$month,$day)=jalali_to_gregorian($jy,$jm,$jd);
return mktime($h,$m,$s,$month,$day,$year,$is_dst);
}
}
function jgetdate($timestamp='',$none='',$tz='Asia/Tehran',$tn='en'){
$ts=($timestamp=='')?time():tr_num($timestamp);
$bxdate=explode('_',bxdate('F_G_i_j_l_n_s_w_Y_z',$ts,'',$tz,$tn));
return array(
'seconds'=>tr_num((int)tr_num($bxdate[6]),$tn),
'minutes'=>tr_num((int)tr_num($bxdate[2]),$tn),
'hours'=>$bxdate[1],
'mday'=>$bxdate[3],
'wday'=>$bxdate[7],
'mon'=>$bxdate[5],
'year'=>$bxdate[8],
'yday'=>$bxdate[9],
'weekday'=>$bxdate[4],
'month'=>$bxdate[0],
0=>tr_num($ts,$tn)
);
}
function jcheckdate($jm,$jd,$jy){
$jm=tr_num($jm); $jd=tr_num($jd); $jy=tr_num($jy);
$l_d=($jm==12)?(($jy%33%4-1==(int)($jy%33*.05))?30:29):31-(int)($jm/6.5);
return($jm>0 and $jd>0 and $jy>0 and $jm<13 and $jd<=$l_d)?true:false;
}
function tr_num($str,$mod='en',$mf='٫'){
$num_a=array('0','1','2','3','4','5','6','7','8','9','.');
$key_a=array('۰','۱','۲','۳','۴','۵','۶','۷','۸','۹',$mf);
return($mod=='fa')?str_replace($num_a,$key_a,$str):str_replace($key_a,$num_a,$str);
}
function bxdate_words($array,$mod=''){
foreach($array as $type=>$num){
$num=(int)tr_num($num);
switch($type){
case'ss':
$sl=strlen($num);
$xy3=substr($num,2-$sl,1);
$h3=$h34=$h4='';
if($xy3==1){
$p34='';
$k34=array('ده','یازده','دوازده','سیزده','چهارده','پانزده','شانزده','هفده','هجده','نوزده');
$h34=$k34[substr($num,2-$sl,2)-10];
}else{
$xy4=substr($num,3-$sl,1);
$p34=($xy3==0 or $xy4==0)?'':' و ';
$k3=array('','','بیست','سی','چهل','پنجاه','شصت','هفتاد','هشتاد','نود');
$h3=$k3[$xy3];
$k4=array('','یک','دو','سه','چهار','پنج','شش','هفت','هشت','نه');
$h4=$k4[$xy4];
}
$array[$type]=(($num>99)?str_ireplace(array('12','13','14','19','20')
,array('هزار و دویست','هزار و سیصد','هزار و چهارصد','هزار و نهصد','دوهزار')
,substr($num,0,2)).((substr($num,2,2)=='00')?'':' و '):'').$h3.$p34.$h34.$h4;
break;
case'mm':
$key=array
('فروردین','اردیبهشت','خرداد','تیر','مرداد','شهریور','مهر','آبان','آذر','دی','بهمن','اسفند');
$array[$type]=$key[$num-1];
break;
case'rr':
$key=array('یک','دو','سه','چهار','پنج','شش','هفت','هشت','نه','ده','یازده','دوازده','سیزده'
,'چهارده','پانزده','شانزده','هفده','هجده','نوزده','بیست','بیست و یک','بیست و دو','بیست و سه'
,'بیست و چهار','بیست و پنج','بیست و شش','بیست و هفت','بیست و هشت','بیست و نه','سی','سی و یک');
$array[$type]=$key[$num-1];
break;
case'rh':
$key=array('یکشنبه','دوشنبه','سه شنبه','چهارشنبه','پنجشنبه','جمعه','شنبه');
$array[$type]=$key[$num];
break;
case'sh':
$key=array('مار','اسب','گوسفند','میمون','مرغ','سگ','خوک','موش','گاو','پلنگ','خرگوش','نهنگ');
$array[$type]=$key[$num%12];
break;
case'mb':
$key=array('حمل','ثور','جوزا','سرطان','اسد','سنبله','میزان','عقرب','قوس','جدی','دلو','حوت');
$array[$type]=$key[$num-1];
break;
case'ff':
$key=array('بهار','تابستان','پاییز','زمستان');
$array[$type]=$key[(int)($num/3.1)];
break;
case'km':
$key=array('فر','ار','خر','تی‍','مر','شه‍','مه‍','آب‍','آذ','دی','به‍','اس‍');
$array[$type]=$key[$num-1];
break;
case'kh':
$key=array('ی','د','س','چ','پ','ج','ش');
$array[$type]=$key[$num];
break;
default:$array[$type]=$num;
}
}
return($mod=='')?$array:implode($mod,$array);
}
function gregorian_to_jalali($gy,$gm,$gd,$mod=''){
$gy=tr_num($gy); $gm=tr_num($gm); $gd=tr_num($gd);/* <= Extra :اين سطر ، جزء تابع اصلي نيست */
$g_d_m=array(0,31,59,90,120,151,181,212,243,273,304,334);
$jy=($gy<=1600)?0:979;
$gy-=($gy<=1600)?621:1600;
$gy2=($gm>2)?($gy+1):$gy;
$days=(365*$gy) +((int)(($gy2+3)/4)) -((int)(($gy2+99)/100))
+((int)(($gy2+399)/400)) -80 +$gd +$g_d_m[$gm-1];
$jy+=33*((int)($days/12053));
$days%=12053;
$jy+=4*((int)($days/1461));
$days%=1461;
$jy+=(int)(($days-1)/365);
if($days > 365)$days=($days-1)%365;
$jm=($days < 186)?1+(int)($days/31):7+(int)(($days-186)/30);
$jd=1+(($days < 186)?($days%31):(($days-186)%30));
return($mod=='')?array($jy,$jm,$jd):$jy.$mod.$jm.$mod.$jd;
}
function jalali_to_gregorian($jy,$jm,$jd,$mod=''){
$jy=tr_num($jy); $jm=tr_num($jm); $jd=tr_num($jd);/* <= Extra :اين سطر ، جزء تابع اصلي نيست */
$gy=($jy<=979)?621:1600;
$jy-=($jy<=979)?0:979;
$days=(365*$jy) +(((int)($jy/33))*8) +((int)((($jy%33)+3)/4))
+78 +$jd +(($jm<7)?($jm-1)*31:(($jm-7)*30)+186);
$gy+=400*((int)($days/146097));
$days%=146097;
if($days > 36524){
$gy+=100*((int)(--$days/36524));
$days%=36524;
if($days >= 365)$days++;
}
$gy+=4*((int)(($days)/1461));
$days%=1461;
$gy+=(int)(($days-1)/365);
if($days > 365)$days=($days-1)%365;
$gd=$days+1;
foreach(array(0,31,(($gy%4==0 and $gy%100!=0) or ($gy%400==0))?29:28
,31,30,31,30,31,31,30,31,30,31) as $gm=>$v){
if($gd<=$v)break;
$gd-=$v;
}
return($mod=='')?array($gy,$gm,$gd):$gy.$mod.$gm.$mod.$gd;
}function bxdate($format,$timestamp='',$none='',$time_zone='Asia/Tehran',$tr_num='fa')
{
$T_sec=0;/* <= رفع خطاي زمان سرور ، با اعداد '+' و '-' بر حسب ثانيه */
if($time_zone!='local')date_default_timezone_set(($time_zone=='')?'Asia/Tehran':$time_zone);
$ts=$T_sec+(($timestamp=='' or $timestamp=='now')?time():tr_num($timestamp));
$date=explode('_',date('H_i_j_n_O_P_s_w_Y',$ts));
list($j_y,$j_m,$j_d)=gregorian_to_jalali($date[8],$date[3],$date[2]);
$doy=($j_m<7)?(($j_m-1)*31)+$j_d-1:(($j_m-7)*30)+$j_d+185;
$kab=($j_y%33%4-1==(int)($j_y%33*.05))?1:0;
$sl=strlen($format);
$out='';
for($i=0; $i<$sl; $i++){
$sub=substr($format,$i,1);
if($sub=='\'){
$out.=substr($format,++$i,1);
continue;
}
switch($sub){
case'E':case'R':case'x':case'X':
$out.='http://jdf.scr.ir';
break;
case'B':case'e':case'g':
case'G':case'h':case'I':
case'T':case'u':case'Z':
$out.=date($sub,$ts);
break;
case'a':
$out.=($date[0]<12)?'ق.ظ':'ب.ظ';
break;
case'A':
$out.=($date[0]<12)?'قبل از ظهر':'بعد از ظهر';
break;
case'b':
$out.=(int)($j_m/3.1)+1;
break;
case'c':
$out.=$j_y.'/'.$j_m.'/'.$j_d.' ،'.$date[0].':'.$date[1].':'.$date[6].' '.$date[5];
break;
case'C':
$out.=(int)(($j_y+99)/100);
break;
case'd':
$out.=($j_d<10)?'0'.$j_d:$j_d;
break;
case'D':
$out.=bxdate_words(array('kh'=>$date[7]),' ');
break;
case'f':
$out.=bxdate_words(array('ff'=>$j_m),' ');
break;
case'F':
$out.=bxdate_words(array('mm'=>$j_m),' ');
break;
case'H':
$out.=$date[0];
break;
case'i':
$out.=$date[1];
break;
case'j':
$out.=$j_d;
break;
case'J':
$out.=bxdate_words(array('rr'=>$j_d),' ');
break;
case'k';
$out.=tr_num(100-(int)($doy/($kab+365)*1000)/10,$tr_num);
break;
case'K':
$out.=tr_num((int)($doy/($kab+365)*1000)/10,$tr_num);
break;
case'l':
$out.=bxdate_words(array('rh'=>$date[7]),' ');
break;
case'L':
$out.=$kab;
break;
case'm':
$out.=($j_m>9)?$j_m:'0'.$j_m;
break;
case'M':
$out.=bxdate_words(array('km'=>$j_m),' ');
break;
case'n':
$out.=$j_m;
break;
case'N':
$out.=$date[7]+1;
break;
case'o':
$jdw=($date[7]==6)?0:$date[7]+1;
$dny=364+$kab-$doy;
$out.=($jdw>($doy+3) and $doy<3)?$j_y-1:(((3-$dny)>$jdw and $dny<3)?$j_y+1:$j_y);
break;
case'O':
$out.=$date[4];
break;
case'p':
$out.=bxdate_words(array('mb'=>$j_m),' ');
break;
case'P':
$out.=$date[5];
break;
case'q':
$out.=bxdate_words(array('sh'=>$j_y),' ');
break;
case'Q':
$out.=$kab+364-$doy;
break;
case'r':
$key=bxdate_words(array('rh'=>$date[7],'mm'=>$j_m));
$out.=$date[0].':'.$date[1].':'.$date[6].' '.$date[4]
.' '.$key['rh'].'، '.$j_d.' '.$key['mm'].' '.$j_y;
break;
case's':
$out.=$date[6];
break;
case'S':
$out.='ام';
break;
case't':
$out.=($j_m!=12)?(31-(int)($j_m/6.5)):($kab+29);
break;
case'U':
$out.=$ts;
break;
case'v':
$out.=bxdate_words(array('ss'=>substr($j_y,2,2)),' ');
break;
case'V':
$out.=bxdate_words(array('ss'=>$j_y),' ');
break;
case'w':
$out.=($date[7]==6)?0:$date[7]+1;
break;
case'W':
$avs=(($date[7]==6)?0:$date[7]+1)-($doy%7);
if($avs<0)$avs+=7;
$num=(int)(($doy+$avs)/7);
if($avs<4){
$num++;
}elseif($num<1){
$num=($avs==4 or $avs==(($j_y%33%4-2==(int)($j_y%33*.05))?5:4))?53:52;
}
$aks=$avs+$kab;
if($aks==7)$aks=0;
$out.=(($kab+363-$doy)<$aks and $aks<3)?'01':(($num<10)?'0'.$num:$num);
break;
case'y':
$out.=substr($j_y,2,2);
break;
case'Y':
$out.=$j_y;
break;
case'z':
$out.=$doy;
break;
default:$out.=$sub;
}
}
return($tr_num!='en')?tr_num($out,'fa','.'):$out;
}
/* F */
function jstrftime($format,$timestamp='',$none='',$time_zone='Asia/Tehran',$tr_num='fa'){
$T_sec=0;/* <= رفع خطاي زمان سرور ، با اعداد '+' و '-' بر حسب ثانيه */
if($time_zone!='local')date_default_timezone_set(($time_zone=='')?'Asia/Tehran':$time_zone);
$ts=$T_sec+(($timestamp=='' or $timestamp=='now')?time():tr_num($timestamp));
$date=explode('_',date('h_H_i_j_n_s_w_Y',$ts));
list($j_y,$j_m,$j_d)=gregorian_to_jalali($date[7],$date[4],$date[3]);
$doy=($j_m<7)?(($j_m-1)*31)+$j_d-1:(($j_m-7)*30)+$j_d+185;
$kab=($j_y%33%4-1==(int)($j_y%33*.05))?1:0;
$sl=strlen($format);
$out='';
for($i=0; $i<$sl; $i++){
$sub=substr($format,$i,1);
if($sub=='%'){
$sub=substr($format,++$i,1);
}else{
$out.=$sub;
continue;
}
switch($sub){
/* Day */
case'a':
$out.=bxdate_words(array('kh'=>$date[6]),' ');
break;
case'A':
$out.=bxdate_words(array('rh'=>$date[6]),' ');
break;
case'd':
$out.=($j_d<10)?'0'.$j_d:$j_d;
break;
case'e':
$out.=($j_d<10)?' '.$j_d:$j_d;
break;
case'j':
$out.=str_pad($doy+1,3,0,STR_PAD_LEFT);
break;
case'u':
$out.=$date[6]+1;
break;
case'w':
$out.=($date[6]==6)?0:$date[6]+1;
break;
/* Week */
case'U':
$avs=(($date[6]<5)?$date[6]+2:$date[6]-5)-($doy%7);
if($avs<0)$avs+=7;
$num=(int)(($doy+$avs)/7)+1;
if($avs>3 or $avs==1)$num--;
$out.=($num<10)?'0'.$num:$num;
break;
case'V':
$avs=(($date[6]==6)?0:$date[6]+1)-($doy%7);
if($avs<0)$avs+=7;
$num=(int)(($doy+$avs)/7);
if($avs<4){
$num++;
}elseif($num<1){
$num=($avs==4 or $avs==(($j_y%33%4-2==(int)($j_y%33*.05))?5:4))?53:52;
}
$aks=$avs+$kab;
if($aks==7)$aks=0;
$out.=(($kab+363-$doy)<$aks and $aks<3)?'01':(($num<10)?'0'.$num:$num);
break;
case'W':
$avs=(($date[6]==6)?0:$date[6]+1)-($doy%7);
if($avs<0)$avs+=7;
$num=(int)(($doy+$avs)/7)+1;
if($avs>3)$num--;
$out.=($num<10)?'0'.$num:$num;
break;
/* Month */
case'b':
case'h':
$out.=bxdate_words(array('km'=>$j_m),' ');
break;
case'B':
$out.=bxdate_words(array('mm'=>$j_m),' ');
break;
case'm':
$out.=($j_m>9)?$j_m:'0'.$j_m;
break;
/* Year */
case'C':
$out.=substr($j_y,0,2);
break;
case'g':
$jdw=($date[6]==6)?0:$date[6]+1;
$dny=364+$kab-$doy;
$out.=substr(($jdw>($doy+3) and $doy<3)?$j_y-1:(((3-$dny)>$jdw and $dny<3)?$j_y+1:$j_y),2,2);
break;
case'G':
$jdw=($date[6]==6)?0:$date[6]+1;
$dny=364+$kab-$doy;
$out.=($jdw>($doy+3) and $doy<3)?$j_y-1:(((3-$dny)>$jdw and $dny<3)?$j_y+1:$j_y);
break;
case'y':
$out.=substr($j_y,2,2);
break;
case'Y':
$out.=$j_y;
break;
/* Time */
case'H':
$out.=$date[1];
break;
case'I':
$out.=$date[0];
break;
case'l':
$out.=($date[0]>9)?$date[0]:' '.(int)$date[0];
break;
case'M':
$out.=$date[2];
break;
case'p':
$out.=($date[1]<12)?'قبل از ظهر':'بعد از ظهر';
break;
case'P':
$out.=($date[1]<12)?'ق.ظ':'ب.ظ';
break;
case'r':
$out.=$date[0].':'.$date[2].':'.$date[5].' '.(($date[1]<12)?'قبل از ظهر':'بعد از ظهر');
break;
case'R':
$out.=$date[1].':'.$date[2];
break;
case'S':
$out.=$date[5];
break;
case'T':
$out.=$date[1].':'.$date[2].':'.$date[5];
break;
case'X':
$out.=$date[0].':'.$date[2].':'.$date[5];
break;
case'z':
$out.=date('O',$ts);
break;
case'Z':
$out.=date('T',$ts);
break;
/* Time and Date Stamps */
case'c':
$key=bxdate_words(array('rh'=>$date[6],'mm'=>$j_m));
$out.=$date[1].':'.$date[2].':'.$date[5].' '.date('P',$ts)
.' '.$key['rh'].'، '.$j_d.' '.$key['mm'].' '.$j_y;
break;
case'D':
$out.=substr($j_y,2,2).'/'.(($j_m>9)?$j_m:'0'.$j_m).'/'.(($j_d<10)?'0'.$j_d:$j_d);
break;
case'F':
$out.=$j_y.'-'.(($j_m>9)?$j_m:'0'.$j_m).'-'.(($j_d<10)?'0'.$j_d:$j_d);
break;
case's':
$out.=$ts;
break;
case'x':
$out.=substr($j_y,2,2).'/'.(($j_m>9)?$j_m:'0'.$j_m).'/'.(($j_d<10)?'0'.$j_d:$j_d);
break;
/* Miscellaneous */
case'n':
$out.="
";
break;
case't':
$out.=" ";
break;
case'%':
$out.='%';
break;
default:$out.=$sub;
}
}
return($tr_num!='en')?tr_num($out,'fa','.'):$out;
}
/* F */
function jmktime($h='',$m='',$s='',$jm='',$jd='',$jy='',$is_dst=-1){
$h=tr_num($h); $m=tr_num($m); $s=tr_num($s); $jm=tr_num($jm); $jd=tr_num($jd); $jy=tr_num($jy);
if($h=='' and $m=='' and $s=='' and $jm=='' and $jd=='' and $jy==''){
return mktime();
}else{
list($year,$month,$day)=jalali_to_gregorian($jy,$jm,$jd);
return mktime($h,$m,$s,$month,$day,$year,$is_dst);
}
}
/* F */
function jgetdate($timestamp='',$none='',$tz='Asia/Tehran',$tn='en'){
$ts=($timestamp=='')?time():tr_num($timestamp);
$bxdate=explode('_',bxdate('F_G_i_j_l_n_s_w_Y_z',$ts,'',$tz,$tn));
return array(
'seconds'=>tr_num((int)tr_num($bxdate[6]),$tn),
'minutes'=>tr_num((int)tr_num($bxdate[2]),$tn),
'hours'=>$bxdate[1],
'mday'=>$bxdate[3],
'wday'=>$bxdate[7],
'mon'=>$bxdate[5],
'year'=>$bxdate[8],
'yday'=>$bxdate[9],
'weekday'=>$bxdate[4],
'month'=>$bxdate[0],
0=>tr_num($ts,$tn)
);
}
/* F */
function jcheckdate($jm,$jd,$jy){
$jm=tr_num($jm); $jd=tr_num($jd); $jy=tr_num($jy);
$l_d=($jm==12)?(($jy%33%4-1==(int)($jy%33*.05))?30:29):31-(int)($jm/6.5);
return($jm>0 and $jd>0 and $jy>0 and $jm<13 and $jd<=$l_d)?true:false;
}
/* F */
function tr_num($str,$mod='en',$mf='٫'){
$num_a=array('0','1','2','3','4','5','6','7','8','9','.');
$key_a=array('۰','۱','۲','۳','۴','۵','۶','۷','۸','۹',$mf);
return($mod=='fa')?str_replace($num_a,$key_a,$str):str_replace($key_a,$num_a,$str);
}
/* F */
function bxdate_words($array,$mod=''){
foreach($array as $type=>$num){
$num=(int)tr_num($num);
switch($type){
case'ss':
$sl=strlen($num);
$xy3=substr($num,2-$sl,1);
$h3=$h34=$h4='';
if($xy3==1){
$p34='';
$k34=array('ده','یازده','دوازده','سیزده','چهارده','پانزده','شانزده','هفده','هجده','نوزده');
$h34=$k34[substr($num,2-$sl,2)-10];
}else{
$xy4=substr($num,3-$sl,1);
$p34=($xy3==0 or $xy4==0)?'':' و ';
$k3=array('','','بیست','سی','چهل','پنجاه','شصت','هفتاد','هشتاد','نود');
$h3=$k3[$xy3];
$k4=array('','یک','دو','سه','چهار','پنج','شش','هفت','هشت','نه');
$h4=$k4[$xy4];
}
$array[$type]=(($num>99)?str_ireplace(array('12','13','14','19','20')
,array('هزار و دویست','هزار و سیصد','هزار و چهارصد','هزار و نهصد','دوهزار')
,substr($num,0,2)).((substr($num,2,2)=='00')?'':' و '):'').$h3.$p34.$h34.$h4;
break;
case'mm':
$key=array
('فروردین','اردیبهشت','خرداد','تیر','مرداد','شهریور','مهر','آبان','آذر','دی','بهمن','اسفند');
$array[$type]=$key[$num-1];
break;
case'rr':
$key=array('یک','دو','سه','چهار','پنج','شش','هفت','هشت','نه','ده','یازده','دوازده','سیزده'
,'چهارده','پانزده','شانزده','هفده','هجده','نوزده','بیست','بیست و یک','بیست و دو','بیست و سه'
,'بیست و چهار','بیست و پنج','بیست و شش','بیست و هفت','بیست و هشت','بیست و نه','سی','سی و یک');
$array[$type]=$key[$num-1];
break;
case'rh':
$key=array('یکشنبه','دوشنبه','سه شنبه','چهارشنبه','پنجشنبه','جمعه','شنبه');
$array[$type]=$key[$num];
break;
case'sh':
$key=array('مار','اسب','گوسفند','میمون','مرغ','سگ','خوک','موش','گاو','پلنگ','خرگوش','نهنگ');
$array[$type]=$key[$num%12];
break;
case'mb':
$key=array('حمل','ثور','جوزا','سرطان','اسد','سنبله','میزان','عقرب','قوس','جدی','دلو','حوت');
$array[$type]=$key[$num-1];
break;
case'ff':
$key=array('بهار','تابستان','پاییز','زمستان');
$array[$type]=$key[(int)($num/3.1)];
break;
case'km':
$key=array('فر','ار','خر','تی‍','مر','شه‍','مه‍','آب‍','آذ','دی','به‍','اس‍');
$array[$type]=$key[$num-1];
break;
case'kh':
$key=array('ی','د','س','چ','پ','ج','ش');
$array[$type]=$key[$num];
break;
default:$array[$type]=$num;
}
}
return($mod=='')?$array:implode($mod,$array);
}
/** Gregorian & Jalali (Hijri_Shamsi,Solar) date converter Functions
Copyright(C)2015 JDF.SCR.IR : [ http://jdf.scr.ir/jdf ] version 2.60
--------------------------------------------------------------------
1461 = 365*4 + 4/4 & 146097 = 365*400 + 400/4 - 400/100 + 400/400
12053 = 365*33 + 32/4 & 36524 = 365*100 + 100/4 - 100/100 */
/* F */
function gregorian_to_jalali($gy,$gm,$gd,$mod=''){
$gy=tr_num($gy); $gm=tr_num($gm); $gd=tr_num($gd);/* <= Extra :اين سطر ، جزء تابع اصلي نيست */
$g_d_m=array(0,31,59,90,120,151,181,212,243,273,304,334);
$jy=($gy<=1600)?0:979;
$gy-=($gy<=1600)?621:1600;
$gy2=($gm>2)?($gy+1):$gy;
$days=(365*$gy) +((int)(($gy2+3)/4)) -((int)(($gy2+99)/100))
+((int)(($gy2+399)/400)) -80 +$gd +$g_d_m[$gm-1];
$jy+=33*((int)($days/12053));
$days%=12053;
$jy+=4*((int)($days/1461));
$days%=1461;
$jy+=(int)(($days-1)/365);
if($days > 365)$days=($days-1)%365;
$jm=($days < 186)?1+(int)($days/31):7+(int)(($days-186)/30);
$jd=1+(($days < 186)?($days%31):(($days-186)%30));
return($mod=='')?array($jy,$jm,$jd):$jy.$mod.$jm.$mod.$jd;
}
/* F */
function jalali_to_gregorian($jy,$jm,$jd,$mod=''){
$jy=tr_num($jy); $jm=tr_num($jm); $jd=tr_num($jd);/* <= Extra :اين سطر ، جزء تابع اصلي نيست */
$gy=($jy<=979)?621:1600;
$jy-=($jy<=979)?0:979;
$days=(365*$jy) +(((int)($jy/33))*8) +((int)((($jy%33)+3)/4))
+78 +$jd +(($jm<7)?($jm-1)*31:(($jm-7)*30)+186);
$gy+=400*((int)($days/146097));
$days%=146097;
if($days > 36524){
$gy+=100*((int)(--$days/36524));
$days%=36524;
if($days >= 365)$days++;
}
$gy+=4*((int)(($days)/1461));
$days%=1461;
$gy+=(int)(($days-1)/365);
if($days > 365)$days=($days-1)%365;
$gd=$days+1;
foreach(array(0,31,(($gy%4==0 and $gy%100!=0) or ($gy%400==0))?29:28
,31,30,31,30,31,31,30,31,30,31) as $gm=>$v){
if($gd<=$v)break;
$gd-=$v;
}
return($mod=='')?array($gy,$gm,$gd):$gy.$mod.$gm.$mod.$gd;
}
Did this file decode correctly?
Original Code
eval(base64_decode('ZnVuY3Rpb24gYnhkYXRlKCRmb3JtYXQsJHRpbWVzdGFtcD0nJywkbm9uZT0nJywkdGltZV96b25lPSdBc2lhL1RlaHJhbicsJHRyX251bT0nZmEnKQ0KCXsNCg0KCSAkVF9zZWM9MDsvKiA8PSAmIzE1ODU7JiMxNjAxOyYjMTU5MzsgJiMxNTgyOyYjMTU5MTsmIzE1NzU7JiMxNjEwOyAmIzE1ODY7JiMxNjA1OyYjMTU3NTsmIzE2MDY7ICYjMTU4NzsmIzE1ODU7JiMxNjA4OyYjMTU4NTsgJiMxNTQ4OyAmIzE1NzY7JiMxNTc1OyAmIzE1NzU7JiMxNTkzOyYjMTU4MzsmIzE1NzU7JiMxNTgzOyAnKycgJiMxNjA4OyAnLScgJiMxNTc2OyYjMTU4NTsgJiMxNTgxOyYjMTU4NzsmIzE1NzY7ICYjMTU3OTsmIzE1NzU7JiMxNjA2OyYjMTYxMDsmIzE2MDc7ICovDQoNCgkgaWYoJHRpbWVfem9uZSE9J2xvY2FsJylkYXRlX2RlZmF1bHRfdGltZXpvbmVfc2V0KCgkdGltZV96b25lPT0nJyk/J0FzaWEvVGVocmFuJzokdGltZV96b25lKTsNCgkgJHRzPSRUX3NlYysoKCR0aW1lc3RhbXA9PScnIG9yICR0aW1lc3RhbXA9PSdub3cnKT90aW1lKCk6dHJfbnVtKCR0aW1lc3RhbXApKTsNCgkgJGRhdGU9ZXhwbG9kZSgnXycsZGF0ZSgnSF9pX2pfbl9PX1Bfc193X1knLCR0cykpOw0KCSBsaXN0KCRqX3ksJGpfbSwkal9kKT1ncmVnb3JpYW5fdG9famFsYWxpKCRkYXRlWzhdLCRkYXRlWzNdLCRkYXRlWzJdKTsNCgkgJGRveT0oJGpfbTw3KT8oKCRqX20tMSkqMzEpKyRqX2QtMTooKCRqX20tNykqMzApKyRqX2QrMTg1Ow0KCSAka2FiPSgkal95JTMzJTQtMT09KGludCkoJGpfeSUzMyouMDUpKT8xOjA7DQoJICRzbD1zdHJsZW4oJGZvcm1hdCk7DQoJICRvdXQ9Jyc7DQoJIGZvcigkaT0wOyAkaTwkc2w7ICRpKyspew0KCSAgJHN1Yj1zdWJzdHIoJGZvcm1hdCwkaSwxKTsNCgkgIGlmKCRzdWI9PSdcXCcpew0KCQkkb3V0Lj1zdWJzdHIoJGZvcm1hdCwrKyRpLDEpOw0KCQljb250aW51ZTsNCgkgIH0NCgkgIHN3aXRjaCgkc3ViKXsNCg0KCQljYXNlJ0UnOmNhc2UnUic6Y2FzZSd4JzpjYXNlJ1gnOg0KCQkkb3V0Lj0naHR0cDovL2pkZi5zY3IuaXInOw0KCQlicmVhazsNCg0KCQljYXNlJ0InOmNhc2UnZSc6Y2FzZSdnJzoNCgkJY2FzZSdHJzpjYXNlJ2gnOmNhc2UnSSc6DQoJCWNhc2UnVCc6Y2FzZSd1JzpjYXNlJ1onOg0KCQkkb3V0Lj1kYXRlKCRzdWIsJHRzKTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdhJzoNCgkJJG91dC49KCRkYXRlWzBdPDEyKT8nJiMxNjAyOy4mIzE1OTI7JzonJiMxNTc2Oy4mIzE1OTI7JzsNCgkJYnJlYWs7DQoNCgkJY2FzZSdBJzoNCgkJJG91dC49KCRkYXRlWzBdPDEyKT8nJiMxNjAyOyYjMTU3NjsmIzE2MDQ7ICYjMTU3NTsmIzE1ODY7ICYjMTU5MjsmIzE2MDc7JiMxNTg1Oyc6JyYjMTU3NjsmIzE1OTM7JiMxNTgzOyAmIzE1NzU7JiMxNTg2OyAmIzE1OTI7JiMxNjA3OyYjMTU4NTsnOw0KCQlicmVhazsNCg0KCQljYXNlJ2InOg0KCQkkb3V0Lj0oaW50KSgkal9tLzMuMSkrMTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdjJzoNCgkJJG91dC49JGpfeS4nLycuJGpfbS4nLycuJGpfZC4nICYjMTU0ODsnLiRkYXRlWzBdLic6Jy4kZGF0ZVsxXS4nOicuJGRhdGVbNl0uJyAnLiRkYXRlWzVdOw0KCQlicmVhazsNCg0KCQljYXNlJ0MnOg0KCQkkb3V0Lj0oaW50KSgoJGpfeSs5OSkvMTAwKTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdkJzoNCgkJJG91dC49KCRqX2Q8MTApPycwJy4kal9kOiRqX2Q7DQoJCWJyZWFrOw0KDQoJCWNhc2UnRCc6DQoJCSRvdXQuPWJ4ZGF0ZV93b3JkcyhhcnJheSgna2gnPT4kZGF0ZVs3XSksJyAnKTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdmJzoNCgkJJG91dC49YnhkYXRlX3dvcmRzKGFycmF5KCdmZic9PiRqX20pLCcgJyk7DQoJCWJyZWFrOw0KDQoJCWNhc2UnRic6DQoJCSRvdXQuPWJ4ZGF0ZV93b3JkcyhhcnJheSgnbW0nPT4kal9tKSwnICcpOw0KCQlicmVhazsNCg0KCQljYXNlJ0gnOg0KCQkkb3V0Lj0kZGF0ZVswXTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdpJzoNCgkJJG91dC49JGRhdGVbMV07DQoJCWJyZWFrOw0KDQoJCWNhc2Unaic6DQoJCSRvdXQuPSRqX2Q7DQoJCWJyZWFrOw0KDQoJCWNhc2UnSic6DQoJCSRvdXQuPWJ4ZGF0ZV93b3JkcyhhcnJheSgncnInPT4kal9kKSwnICcpOw0KCQlicmVhazsNCg0KCQljYXNlJ2snOw0KCQkkb3V0Lj10cl9udW0oMTAwLShpbnQpKCRkb3kvKCRrYWIrMzY1KSoxMDAwKS8xMCwkdHJfbnVtKTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdLJzoNCgkJJG91dC49dHJfbnVtKChpbnQpKCRkb3kvKCRrYWIrMzY1KSoxMDAwKS8xMCwkdHJfbnVtKTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdsJzoNCgkJJG91dC49YnhkYXRlX3dvcmRzKGFycmF5KCdyaCc9PiRkYXRlWzddKSwnICcpOw0KCQlicmVhazsNCg0KCQljYXNlJ0wnOg0KCQkkb3V0Lj0ka2FiOw0KCQlicmVhazsNCg0KCQljYXNlJ20nOg0KCQkkb3V0Lj0oJGpfbT45KT8kal9tOicwJy4kal9tOw0KCQlicmVhazsNCg0KCQljYXNlJ00nOg0KCQkkb3V0Lj1ieGRhdGVfd29yZHMoYXJyYXkoJ2ttJz0+JGpfbSksJyAnKTsNCgkJYnJlYWs7DQoNCgkJY2FzZSduJzoNCgkJJG91dC49JGpfbTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdOJzoNCgkJJG91dC49JGRhdGVbN10rMTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdvJzoNCgkJJGpkdz0oJGRhdGVbN109PTYpPzA6JGRhdGVbN10rMTsNCgkJJGRueT0zNjQrJGthYi0kZG95Ow0KCQkkb3V0Lj0oJGpkdz4oJGRveSszKSBhbmQgJGRveTwzKT8kal95LTE6KCgoMy0kZG55KT4kamR3IGFuZCAkZG55PDMpPyRqX3krMTokal95KTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdPJzoNCgkJJG91dC49JGRhdGVbNF07DQoJCWJyZWFrOw0KDQoJCWNhc2UncCc6DQoJCSRvdXQuPWJ4ZGF0ZV93b3JkcyhhcnJheSgnbWInPT4kal9tKSwnICcpOw0KCQlicmVhazsNCg0KCQljYXNlJ1AnOg0KCQkkb3V0Lj0kZGF0ZVs1XTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdxJzoNCgkJJG91dC49YnhkYXRlX3dvcmRzKGFycmF5KCdzaCc9PiRqX3kpLCcgJyk7DQoJCWJyZWFrOw0KDQoJCWNhc2UnUSc6DQoJCSRvdXQuPSRrYWIrMzY0LSRkb3k7DQoJCWJyZWFrOw0KDQoJCWNhc2Uncic6DQoJCSRrZXk9YnhkYXRlX3dvcmRzKGFycmF5KCdyaCc9PiRkYXRlWzddLCdtbSc9PiRqX20pKTsNCgkJJG91dC49JGRhdGVbMF0uJzonLiRkYXRlWzFdLic6Jy4kZGF0ZVs2XS4nICcuJGRhdGVbNF0NCgkgLicgJy4ka2V5WydyaCddLicmIzE1NDg7ICcuJGpfZC4nICcuJGtleVsnbW0nXS4nICcuJGpfeTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdzJzoNCgkJJG91dC49JGRhdGVbNl07DQoJCWJyZWFrOw0KDQoJCWNhc2UnUyc6DQoJCSRvdXQuPScmIzE1NzU7JiMxNjA1Oyc7DQoJCWJyZWFrOw0KDQoJCWNhc2UndCc6DQoJCSRvdXQuPSgkal9tIT0xMik/KDMxLShpbnQpKCRqX20vNi41KSk6KCRrYWIrMjkpOw0KCQlicmVhazsNCg0KCQljYXNlJ1UnOg0KCQkkb3V0Lj0kdHM7DQoJCWJyZWFrOw0KDQoJCWNhc2Undic6DQoJCSAkb3V0Lj1ieGRhdGVfd29yZHMoYXJyYXkoJ3NzJz0+c3Vic3RyKCRqX3ksMiwyKSksJyAnKTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdWJzoNCgkJJG91dC49YnhkYXRlX3dvcmRzKGFycmF5KCdzcyc9PiRqX3kpLCcgJyk7DQoJCWJyZWFrOw0KDQoJCWNhc2Undyc6DQoJCSRvdXQuPSgkZGF0ZVs3XT09Nik/MDokZGF0ZVs3XSsxOw0KCQlicmVhazsNCg0KCQljYXNlJ1cnOg0KCQkkYXZzPSgoJGRhdGVbN109PTYpPzA6JGRhdGVbN10rMSktKCRkb3klNyk7DQoJCWlmKCRhdnM8MCkkYXZzKz03Ow0KCQkkbnVtPShpbnQpKCgkZG95KyRhdnMpLzcpOw0KCQlpZigkYXZzPDQpew0KCQkgJG51bSsrOw0KCQl9ZWxzZWlmKCRudW08MSl7DQoJCSAkbnVtPSgkYXZzPT00IG9yICRhdnM9PSgoJGpfeSUzMyU0LTI9PShpbnQpKCRqX3klMzMqLjA1KSk/NTo0KSk/NTM6NTI7DQoJCX0NCgkJJGFrcz0kYXZzKyRrYWI7DQoJCWlmKCRha3M9PTcpJGFrcz0wOw0KCQkkb3V0Lj0oKCRrYWIrMzYzLSRkb3kpPCRha3MgYW5kICRha3M8Myk/JzAxJzooKCRudW08MTApPycwJy4kbnVtOiRudW0pOw0KCQlicmVhazsNCg0KCQljYXNlJ3knOg0KCQkkb3V0Lj1zdWJzdHIoJGpfeSwyLDIpOw0KCQlicmVhazsNCg0KCQljYXNlJ1knOg0KCQkkb3V0Lj0kal95Ow0KCQlicmVhazsNCg0KCQljYXNlJ3onOg0KCQkkb3V0Lj0kZG95Ow0KCQlicmVhazsNCg0KCQlkZWZhdWx0OiRvdXQuPSRzdWI7DQoJICB9DQoJIH0NCgkgcmV0dXJuKCR0cl9udW0hPSdlbicpP3RyX251bSgkb3V0LCdmYScsJy4nKTokb3V0Ow0KCX0NCg0KCS8qCUYJKi8NCglmdW5jdGlvbiBqc3RyZnRpbWUoJGZvcm1hdCwkdGltZXN0YW1wPScnLCRub25lPScnLCR0aW1lX3pvbmU9J0FzaWEvVGVocmFuJywkdHJfbnVtPSdmYScpew0KDQoJICRUX3NlYz0wOy8qIDw9ICYjMTU4NTsmIzE2MDE7JiMxNTkzOyAmIzE1ODI7JiMxNTkxOyYjMTU3NTsmIzE2MTA7ICYjMTU4NjsmIzE2MDU7JiMxNTc1OyYjMTYwNjsgJiMxNTg3OyYjMTU4NTsmIzE2MDg7JiMxNTg1OyAmIzE1NDg7ICYjMTU3NjsmIzE1NzU7ICYjMTU3NTsmIzE1OTM7JiMxNTgzOyYjMTU3NTsmIzE1ODM7ICcrJyAmIzE2MDg7ICctJyAmIzE1NzY7JiMxNTg1OyAmIzE1ODE7JiMxNTg3OyYjMTU3NjsgJiMxNTc5OyYjMTU3NTsmIzE2MDY7JiMxNjEwOyYjMTYwNzsgKi8NCg0KCSBpZigkdGltZV96b25lIT0nbG9jYWwnKWRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoKCR0aW1lX3pvbmU9PScnKT8nQXNpYS9UZWhyYW4nOiR0aW1lX3pvbmUpOw0KCSAkdHM9JFRfc2VjKygoJHRpbWVzdGFtcD09Jycgb3IgJHRpbWVzdGFtcD09J25vdycpP3RpbWUoKTp0cl9udW0oJHRpbWVzdGFtcCkpOw0KCSAkZGF0ZT1leHBsb2RlKCdfJyxkYXRlKCdoX0hfaV9qX25fc193X1knLCR0cykpOw0KCSBsaXN0KCRqX3ksJGpfbSwkal9kKT1ncmVnb3JpYW5fdG9famFsYWxpKCRkYXRlWzddLCRkYXRlWzRdLCRkYXRlWzNdKTsNCgkgJGRveT0oJGpfbTw3KT8oKCRqX20tMSkqMzEpKyRqX2QtMTooKCRqX20tNykqMzApKyRqX2QrMTg1Ow0KCSAka2FiPSgkal95JTMzJTQtMT09KGludCkoJGpfeSUzMyouMDUpKT8xOjA7DQoJICRzbD1zdHJsZW4oJGZvcm1hdCk7DQoJICRvdXQ9Jyc7DQoJIGZvcigkaT0wOyAkaTwkc2w7ICRpKyspew0KCSAgJHN1Yj1zdWJzdHIoJGZvcm1hdCwkaSwxKTsNCgkgIGlmKCRzdWI9PSclJyl7DQoJCSRzdWI9c3Vic3RyKCRmb3JtYXQsKyskaSwxKTsNCgkgIH1lbHNlew0KCQkkb3V0Lj0kc3ViOw0KCQljb250aW51ZTsNCgkgIH0NCgkgIHN3aXRjaCgkc3ViKXsNCg0KCQkvKiBEYXkgKi8NCgkJY2FzZSdhJzoNCgkJJG91dC49YnhkYXRlX3dvcmRzKGFycmF5KCdraCc9PiRkYXRlWzZdKSwnICcpOw0KCQlicmVhazsNCg0KCQljYXNlJ0EnOg0KCQkkb3V0Lj1ieGRhdGVfd29yZHMoYXJyYXkoJ3JoJz0+JGRhdGVbNl0pLCcgJyk7DQoJCWJyZWFrOw0KDQoJCWNhc2UnZCc6DQoJCSRvdXQuPSgkal9kPDEwKT8nMCcuJGpfZDokal9kOw0KCQlicmVhazsNCg0KCQljYXNlJ2UnOg0KCQkkb3V0Lj0oJGpfZDwxMCk/JyAnLiRqX2Q6JGpfZDsNCgkJYnJlYWs7DQoNCgkJY2FzZSdqJzoNCgkJJG91dC49c3RyX3BhZCgkZG95KzEsMywwLFNUUl9QQURfTEVGVCk7DQoJCWJyZWFrOw0KDQoJCWNhc2UndSc6DQoJCSRvdXQuPSRkYXRlWzZdKzE7DQoJCWJyZWFrOw0KDQoJCWNhc2Undyc6DQoJCSRvdXQuPSgkZGF0ZVs2XT09Nik/MDokZGF0ZVs2XSsxOw0KCQlicmVhazsNCg0KCQkvKiBXZWVrICovDQoJCWNhc2UnVSc6DQoJCSRhdnM9KCgkZGF0ZVs2XTw1KT8kZGF0ZVs2XSsyOiRkYXRlWzZdLTUpLSgkZG95JTcpOw0KCQlpZigkYXZzPDApJGF2cys9NzsNCgkJJG51bT0oaW50KSgoJGRveSskYXZzKS83KSsxOw0KCQlpZigkYXZzPjMgb3IgJGF2cz09MSkkbnVtLS07DQoJCSRvdXQuPSgkbnVtPDEwKT8nMCcuJG51bTokbnVtOw0KCQlicmVhazsNCg0KCQljYXNlJ1YnOg0KCQkkYXZzPSgoJGRhdGVbNl09PTYpPzA6JGRhdGVbNl0rMSktKCRkb3klNyk7DQoJCWlmKCRhdnM8MCkkYXZzKz03Ow0KCQkkbnVtPShpbnQpKCgkZG95KyRhdnMpLzcpOw0KCQlpZigkYXZzPDQpew0KCQkgJG51bSsrOw0KCQl9ZWxzZWlmKCRudW08MSl7DQoJCSAkbnVtPSgkYXZzPT00IG9yICRhdnM9PSgoJGpfeSUzMyU0LTI9PShpbnQpKCRqX3klMzMqLjA1KSk/NTo0KSk/NTM6NTI7DQoJCX0NCgkJJGFrcz0kYXZzKyRrYWI7DQoJCWlmKCRha3M9PTcpJGFrcz0wOw0KCQkkb3V0Lj0oKCRrYWIrMzYzLSRkb3kpPCRha3MgYW5kICRha3M8Myk/JzAxJzooKCRudW08MTApPycwJy4kbnVtOiRudW0pOw0KCQlicmVhazsNCg0KCQljYXNlJ1cnOg0KCQkkYXZzPSgoJGRhdGVbNl09PTYpPzA6JGRhdGVbNl0rMSktKCRkb3klNyk7DQoJCWlmKCRhdnM8MCkkYXZzKz03Ow0KCQkkbnVtPShpbnQpKCgkZG95KyRhdnMpLzcpKzE7DQoJCWlmKCRhdnM+MykkbnVtLS07DQoJCSRvdXQuPSgkbnVtPDEwKT8nMCcuJG51bTokbnVtOw0KCQlicmVhazsNCg0KCQkvKiBNb250aCAqLw0KCQljYXNlJ2InOg0KCQljYXNlJ2gnOg0KCQkkb3V0Lj1ieGRhdGVfd29yZHMoYXJyYXkoJ2ttJz0+JGpfbSksJyAnKTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdCJzoNCgkJJG91dC49YnhkYXRlX3dvcmRzKGFycmF5KCdtbSc9PiRqX20pLCcgJyk7DQoJCWJyZWFrOw0KDQoJCWNhc2UnbSc6DQoJCSRvdXQuPSgkal9tPjkpPyRqX206JzAnLiRqX207DQoJCWJyZWFrOw0KDQoJCS8qIFllYXIgKi8NCgkJY2FzZSdDJzoNCgkJJG91dC49c3Vic3RyKCRqX3ksMCwyKTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdnJzoNCgkJJGpkdz0oJGRhdGVbNl09PTYpPzA6JGRhdGVbNl0rMTsNCgkJJGRueT0zNjQrJGthYi0kZG95Ow0KCQkkb3V0Lj1zdWJzdHIoKCRqZHc+KCRkb3krMykgYW5kICRkb3k8Myk/JGpfeS0xOigoKDMtJGRueSk+JGpkdyBhbmQgJGRueTwzKT8kal95KzE6JGpfeSksMiwyKTsNCgkJYnJlYWs7CQ0KDQoJCWNhc2UnRyc6DQoJCSRqZHc9KCRkYXRlWzZdPT02KT8wOiRkYXRlWzZdKzE7DQoJCSRkbnk9MzY0KyRrYWItJGRveTsNCgkJJG91dC49KCRqZHc+KCRkb3krMykgYW5kICRkb3k8Myk/JGpfeS0xOigoKDMtJGRueSk+JGpkdyBhbmQgJGRueTwzKT8kal95KzE6JGpfeSk7DQoJCWJyZWFrOw0KDQoJCWNhc2UneSc6DQoJCSRvdXQuPXN1YnN0cigkal95LDIsMik7DQoJCWJyZWFrOw0KDQoJCWNhc2UnWSc6DQoJCSRvdXQuPSRqX3k7DQoJCWJyZWFrOw0KDQoJCS8qIFRpbWUgKi8NCgkJY2FzZSdIJzoNCgkJJG91dC49JGRhdGVbMV07DQoJCWJyZWFrOw0KDQoJCWNhc2UnSSc6DQoJCSRvdXQuPSRkYXRlWzBdOw0KCQlicmVhazsNCg0KCQljYXNlJ2wnOg0KCQkkb3V0Lj0oJGRhdGVbMF0+OSk/JGRhdGVbMF06JyAnLihpbnQpJGRhdGVbMF07DQoJCWJyZWFrOw0KDQoJCWNhc2UnTSc6DQoJCSRvdXQuPSRkYXRlWzJdOw0KCQlicmVhazsNCg0KCQljYXNlJ3AnOg0KCQkkb3V0Lj0oJGRhdGVbMV08MTIpPycmIzE2MDI7JiMxNTc2OyYjMTYwNDsgJiMxNTc1OyYjMTU4NjsgJiMxNTkyOyYjMTYwNzsmIzE1ODU7JzonJiMxNTc2OyYjMTU5MzsmIzE1ODM7ICYjMTU3NTsmIzE1ODY7ICYjMTU5MjsmIzE2MDc7JiMxNTg1Oyc7DQoJCWJyZWFrOw0KDQoJCWNhc2UnUCc6DQoJCSRvdXQuPSgkZGF0ZVsxXTwxMik/JyYjMTYwMjsuJiMxNTkyOyc6JyYjMTU3NjsuJiMxNTkyOyc7DQoJCWJyZWFrOw0KDQoJCWNhc2Uncic6DQoJCSRvdXQuPSRkYXRlWzBdLic6Jy4kZGF0ZVsyXS4nOicuJGRhdGVbNV0uJyAnLigoJGRhdGVbMV08MTIpPycmIzE2MDI7JiMxNTc2OyYjMTYwNDsgJiMxNTc1OyYjMTU4NjsgJiMxNTkyOyYjMTYwNzsmIzE1ODU7JzonJiMxNTc2OyYjMTU5MzsmIzE1ODM7ICYjMTU3NTsmIzE1ODY7ICYjMTU5MjsmIzE2MDc7JiMxNTg1OycpOw0KCQlicmVhazsNCg0KCQljYXNlJ1InOg0KCQkkb3V0Lj0kZGF0ZVsxXS4nOicuJGRhdGVbMl07DQoJCWJyZWFrOw0KDQoJCWNhc2UnUyc6DQoJCSRvdXQuPSRkYXRlWzVdOw0KCQlicmVhazsNCg0KCQljYXNlJ1QnOg0KCQkkb3V0Lj0kZGF0ZVsxXS4nOicuJGRhdGVbMl0uJzonLiRkYXRlWzVdOw0KCQlicmVhazsNCg0KCQljYXNlJ1gnOg0KCQkkb3V0Lj0kZGF0ZVswXS4nOicuJGRhdGVbMl0uJzonLiRkYXRlWzVdOw0KCQlicmVhazsNCg0KCQljYXNlJ3onOg0KCQkkb3V0Lj1kYXRlKCdPJywkdHMpOw0KCQlicmVhazsNCg0KCQljYXNlJ1onOg0KCQkkb3V0Lj1kYXRlKCdUJywkdHMpOw0KCQlicmVhazsNCg0KCQkvKiBUaW1lIGFuZCBEYXRlIFN0YW1wcyAqLw0KCQljYXNlJ2MnOg0KCQkka2V5PWJ4ZGF0ZV93b3JkcyhhcnJheSgncmgnPT4kZGF0ZVs2XSwnbW0nPT4kal9tKSk7DQoJCSRvdXQuPSRkYXRlWzFdLic6Jy4kZGF0ZVsyXS4nOicuJGRhdGVbNV0uJyAnLmRhdGUoJ1AnLCR0cykNCgkgLicgJy4ka2V5WydyaCddLicmIzE1NDg7ICcuJGpfZC4nICcuJGtleVsnbW0nXS4nICcuJGpfeTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdEJzoNCgkJJG91dC49c3Vic3RyKCRqX3ksMiwyKS4nLycuKCgkal9tPjkpPyRqX206JzAnLiRqX20pLicvJy4oKCRqX2Q8MTApPycwJy4kal9kOiRqX2QpOw0KCQlicmVhazsNCg0KCQljYXNlJ0YnOg0KCQkkb3V0Lj0kal95LictJy4oKCRqX20+OSk/JGpfbTonMCcuJGpfbSkuJy0nLigoJGpfZDwxMCk/JzAnLiRqX2Q6JGpfZCk7DQoJCWJyZWFrOw0KDQoJCWNhc2Uncyc6DQoJCSRvdXQuPSR0czsNCgkJYnJlYWs7DQoNCgkJY2FzZSd4JzoNCgkJJG91dC49c3Vic3RyKCRqX3ksMiwyKS4nLycuKCgkal9tPjkpPyRqX206JzAnLiRqX20pLicvJy4oKCRqX2Q8MTApPycwJy4kal9kOiRqX2QpOw0KCQlicmVhazsNCg0KCQkvKiBNaXNjZWxsYW5lb3VzICovDQoJCWNhc2Unbic6DQoJCSRvdXQuPSJcbiI7DQoJCWJyZWFrOw0KDQoJCWNhc2UndCc6DQoJCSRvdXQuPSJcdCI7DQoJCWJyZWFrOw0KDQoJCWNhc2UnJSc6DQoJCSRvdXQuPSclJzsNCgkJYnJlYWs7DQoNCgkJZGVmYXVsdDokb3V0Lj0kc3ViOw0KCSAgfQ0KCSB9DQoJIHJldHVybigkdHJfbnVtIT0nZW4nKT90cl9udW0oJG91dCwnZmEnLCcuJyk6JG91dDsNCgl9DQoNCgkvKglGCSovDQoJZnVuY3Rpb24gam1rdGltZSgkaD0nJywkbT0nJywkcz0nJywkam09JycsJGpkPScnLCRqeT0nJywkaXNfZHN0PS0xKXsNCgkgJGg9dHJfbnVtKCRoKTsgJG09dHJfbnVtKCRtKTsgJHM9dHJfbnVtKCRzKTsgJGptPXRyX251bSgkam0pOyAkamQ9dHJfbnVtKCRqZCk7ICRqeT10cl9udW0oJGp5KTsNCgkgaWYoJGg9PScnIGFuZCAkbT09JycgYW5kICRzPT0nJyBhbmQgJGptPT0nJyBhbmQgJGpkPT0nJyBhbmQgJGp5PT0nJyl7DQoJCXJldHVybiBta3RpbWUoKTsNCgkgfWVsc2V7DQoJCWxpc3QoJHllYXIsJG1vbnRoLCRkYXkpPWphbGFsaV90b19ncmVnb3JpYW4oJGp5LCRqbSwkamQpOw0KCQlyZXR1cm4gbWt0aW1lKCRoLCRtLCRzLCRtb250aCwkZGF5LCR5ZWFyLCRpc19kc3QpOw0KCSB9DQoJfQ0KDQoJLyoJRgkqLw0KCWZ1bmN0aW9uIGpnZXRkYXRlKCR0aW1lc3RhbXA9JycsJG5vbmU9JycsJHR6PSdBc2lhL1RlaHJhbicsJHRuPSdlbicpew0KCSAkdHM9KCR0aW1lc3RhbXA9PScnKT90aW1lKCk6dHJfbnVtKCR0aW1lc3RhbXApOw0KCSAkYnhkYXRlPWV4cGxvZGUoJ18nLGJ4ZGF0ZSgnRl9HX2lfal9sX25fc193X1lfeicsJHRzLCcnLCR0eiwkdG4pKTsNCgkgcmV0dXJuIGFycmF5KA0KCQknc2Vjb25kcyc9PnRyX251bSgoaW50KXRyX251bSgkYnhkYXRlWzZdKSwkdG4pLA0KCQknbWludXRlcyc9PnRyX251bSgoaW50KXRyX251bSgkYnhkYXRlWzJdKSwkdG4pLA0KCQknaG91cnMnPT4kYnhkYXRlWzFdLA0KCQknbWRheSc9PiRieGRhdGVbM10sDQoJCSd3ZGF5Jz0+JGJ4ZGF0ZVs3XSwNCgkJJ21vbic9PiRieGRhdGVbNV0sDQoJCSd5ZWFyJz0+JGJ4ZGF0ZVs4XSwNCgkJJ3lkYXknPT4kYnhkYXRlWzldLA0KCQknd2Vla2RheSc9PiRieGRhdGVbNF0sDQoJCSdtb250aCc9PiRieGRhdGVbMF0sDQoJCTA9PnRyX251bSgkdHMsJHRuKQ0KCSApOw0KCX0NCg0KCS8qCUYJKi8NCglmdW5jdGlvbiBqY2hlY2tkYXRlKCRqbSwkamQsJGp5KXsNCgkgJGptPXRyX251bSgkam0pOyAkamQ9dHJfbnVtKCRqZCk7ICRqeT10cl9udW0oJGp5KTsNCgkgJGxfZD0oJGptPT0xMik/KCgkanklMzMlNC0xPT0oaW50KSgkanklMzMqLjA1KSk/MzA6MjkpOjMxLShpbnQpKCRqbS82LjUpOw0KCSByZXR1cm4oJGptPjAgYW5kICRqZD4wIGFuZCAkank+MCBhbmQgJGptPDEzIGFuZCAkamQ8PSRsX2QpP3RydWU6ZmFsc2U7DQoJfQ0KDQoJLyoJRgkqLw0KCWZ1bmN0aW9uIHRyX251bSgkc3RyLCRtb2Q9J2VuJywkbWY9JyYjMTY0MzsnKXsNCgkgJG51bV9hPWFycmF5KCcwJywnMScsJzInLCczJywnNCcsJzUnLCc2JywnNycsJzgnLCc5JywnLicpOw0KCSAka2V5X2E9YXJyYXkoJyYjMTc3NjsnLCcmIzE3Nzc7JywnJiMxNzc4OycsJyYjMTc3OTsnLCcmIzE3ODA7JywnJiMxNzgxOycsJyYjMTc4MjsnLCcmIzE3ODM7JywnJiMxNzg0OycsJyYjMTc4NTsnLCRtZik7DQoJIHJldHVybigkbW9kPT0nZmEnKT9zdHJfcmVwbGFjZSgkbnVtX2EsJGtleV9hLCRzdHIpOnN0cl9yZXBsYWNlKCRrZXlfYSwkbnVtX2EsJHN0cik7DQoJfQ0KDQoJLyoJRgkqLw0KCWZ1bmN0aW9uIGJ4ZGF0ZV93b3JkcygkYXJyYXksJG1vZD0nJyl7DQoJIGZvcmVhY2goJGFycmF5IGFzICR0eXBlPT4kbnVtKXsNCgkgICRudW09KGludCl0cl9udW0oJG51bSk7DQoJICBzd2l0Y2goJHR5cGUpew0KDQoJCWNhc2Unc3MnOg0KCQkkc2w9c3RybGVuKCRudW0pOw0KCQkkeHkzPXN1YnN0cigkbnVtLDItJHNsLDEpOw0KCQkkaDM9JGgzND0kaDQ9Jyc7DQoJCWlmKCR4eTM9PTEpew0KCQkgJHAzND0nJzsNCgkJICRrMzQ9YXJyYXkoJyYjMTU4MzsmIzE2MDc7JywnJiMxNzQwOyYjMTU3NTsmIzE1ODY7JiMxNTgzOyYjMTYwNzsnLCcmIzE1ODM7JiMxNjA4OyYjMTU3NTsmIzE1ODY7JiMxNTgzOyYjMTYwNzsnLCcmIzE1ODc7JiMxNzQwOyYjMTU4NjsmIzE1ODM7JiMxNjA3OycsJyYjMTY3MDsmIzE2MDc7JiMxNTc1OyYjMTU4NTsmIzE1ODM7JiMxNjA3OycsJyYjMTY2MjsmIzE1NzU7JiMxNjA2OyYjMTU4NjsmIzE1ODM7JiMxNjA3OycsJyYjMTU4ODsmIzE1NzU7JiMxNjA2OyYjMTU4NjsmIzE1ODM7JiMxNjA3OycsJyYjMTYwNzsmIzE2MDE7JiMxNTgzOyYjMTYwNzsnLCcmIzE2MDc7JiMxNTgwOyYjMTU4MzsmIzE2MDc7JywnJiMxNjA2OyYjMTYwODsmIzE1ODY7JiMxNTgzOyYjMTYwNzsnKTsNCgkJICRoMzQ9JGszNFtzdWJzdHIoJG51bSwyLSRzbCwyKS0xMF07DQoJCX1lbHNlew0KCQkgJHh5ND1zdWJzdHIoJG51bSwzLSRzbCwxKTsNCgkJICRwMzQ9KCR4eTM9PTAgb3IgJHh5ND09MCk/Jyc6JyAmIzE2MDg7ICc7DQoJCSAkazM9YXJyYXkoJycsJycsJyYjMTU3NjsmIzE3NDA7JiMxNTg3OyYjMTU3ODsnLCcmIzE1ODc7JiMxNzQwOycsJyYjMTY3MDsmIzE2MDc7JiMxNjA0OycsJyYjMTY2MjsmIzE2MDY7JiMxNTgwOyYjMTU3NTsmIzE2MDc7JywnJiMxNTg4OyYjMTU4OTsmIzE1Nzg7JywnJiMxNjA3OyYjMTYwMTsmIzE1Nzg7JiMxNTc1OyYjMTU4MzsnLCcmIzE2MDc7JiMxNTg4OyYjMTU3ODsmIzE1NzU7JiMxNTgzOycsJyYjMTYwNjsmIzE2MDg7JiMxNTgzOycpOw0KCQkgJGgzPSRrM1skeHkzXTsNCgkJICRrND1hcnJheSgnJywnJiMxNzQwOyYjMTcwNTsnLCcmIzE1ODM7JiMxNjA4OycsJyYjMTU4NzsmIzE2MDc7JywnJiMxNjcwOyYjMTYwNzsmIzE1NzU7JiMxNTg1OycsJyYjMTY2MjsmIzE2MDY7JiMxNTgwOycsJyYjMTU4ODsmIzE1ODg7JywnJiMxNjA3OyYjMTYwMTsmIzE1Nzg7JywnJiMxNjA3OyYjMTU4ODsmIzE1Nzg7JywnJiMxNjA2OyYjMTYwNzsnKTsNCgkJICRoND0kazRbJHh5NF07DQoJCX0NCgkJJGFycmF5WyR0eXBlXT0oKCRudW0+OTkpP3N0cl9pcmVwbGFjZShhcnJheSgnMTInLCcxMycsJzE0JywnMTknLCcyMCcpDQoJICxhcnJheSgnJiMxNjA3OyYjMTU4NjsmIzE1NzU7JiMxNTg1OyAmIzE2MDg7ICYjMTU4MzsmIzE2MDg7JiMxNzQwOyYjMTU4NzsmIzE1Nzg7JywnJiMxNjA3OyYjMTU4NjsmIzE1NzU7JiMxNTg1OyAmIzE2MDg7ICYjMTU4NzsmIzE3NDA7JiMxNTg5OyYjMTU4MzsnLCcmIzE2MDc7JiMxNTg2OyYjMTU3NTsmIzE1ODU7ICYjMTYwODsgJiMxNjcwOyYjMTYwNzsmIzE1NzU7JiMxNTg1OyYjMTU4OTsmIzE1ODM7JywnJiMxNjA3OyYjMTU4NjsmIzE1NzU7JiMxNTg1OyAmIzE2MDg7ICYjMTYwNjsmIzE2MDc7JiMxNTg5OyYjMTU4MzsnLCcmIzE1ODM7JiMxNjA4OyYjMTYwNzsmIzE1ODY7JiMxNTc1OyYjMTU4NTsnKQ0KCSAsc3Vic3RyKCRudW0sMCwyKSkuKChzdWJzdHIoJG51bSwyLDIpPT0nMDAnKT8nJzonICYjMTYwODsgJyk6JycpLiRoMy4kcDM0LiRoMzQuJGg0Ow0KCQlicmVhazsNCg0KCQljYXNlJ21tJzoNCgkJJGtleT1hcnJheQ0KCQkoJyYjMTYwMTsmIzE1ODU7JiMxNjA4OyYjMTU4NTsmIzE1ODM7JiMxNzQwOyYjMTYwNjsnLCcmIzE1NzU7JiMxNTg1OyYjMTU4MzsmIzE3NDA7JiMxNTc2OyYjMTYwNzsmIzE1ODg7JiMxNTc4OycsJyYjMTU4MjsmIzE1ODU7JiMxNTgzOyYjMTU3NTsmIzE1ODM7JywnJiMxNTc4OyYjMTc0MDsmIzE1ODU7JywnJiMxNjA1OyYjMTU4NTsmIzE1ODM7JiMxNTc1OyYjMTU4MzsnLCcmIzE1ODg7JiMxNjA3OyYjMTU4NTsmIzE3NDA7JiMxNjA4OyYjMTU4NTsnLCcmIzE2MDU7JiMxNjA3OyYjMTU4NTsnLCcmIzE1NzA7JiMxNTc2OyYjMTU3NTsmIzE2MDY7JywnJiMxNTcwOyYjMTU4NDsmIzE1ODU7JywnJiMxNTgzOyYjMTc0MDsnLCcmIzE1NzY7JiMxNjA3OyYjMTYwNTsmIzE2MDY7JywnJiMxNTc1OyYjMTU4NzsmIzE2MDE7JiMxNjA2OyYjMTU4MzsnKTsNCgkJJGFycmF5WyR0eXBlXT0ka2V5WyRudW0tMV07DQoJCWJyZWFrOw0KDQoJCWNhc2UncnInOg0KCQkka2V5PWFycmF5KCcmIzE3NDA7JiMxNzA1OycsJyYjMTU4MzsmIzE2MDg7JywnJiMxNTg3OyYjMTYwNzsnLCcmIzE2NzA7JiMxNjA3OyYjMTU3NTsmIzE1ODU7JywnJiMxNjYyOyYjMTYwNjsmIzE1ODA7JywnJiMxNTg4OyYjMTU4ODsnLCcmIzE2MDc7JiMxNjAxOyYjMTU3ODsnLCcmIzE2MDc7JiMxNTg4OyYjMTU3ODsnLCcmIzE2MDY7JiMxNjA3OycsJyYjMTU4MzsmIzE2MDc7JywnJiMxNzQwOyYjMTU3NTsmIzE1ODY7JiMxNTgzOyYjMTYwNzsnLCcmIzE1ODM7JiMxNjA4OyYjMTU3NTsmIzE1ODY7JiMxNTgzOyYjMTYwNzsnLCcmIzE1ODc7JiMxNzQwOyYjMTU4NjsmIzE1ODM7JiMxNjA3OycNCgkgLCcmIzE2NzA7JiMxNjA3OyYjMTU3NTsmIzE1ODU7JiMxNTgzOyYjMTYwNzsnLCcmIzE2NjI7JiMxNTc1OyYjMTYwNjsmIzE1ODY7JiMxNTgzOyYjMTYwNzsnLCcmIzE1ODg7JiMxNTc1OyYjMTYwNjsmIzE1ODY7JiMxNTgzOyYjMTYwNzsnLCcmIzE2MDc7JiMxNjAxOyYjMTU4MzsmIzE2MDc7JywnJiMxNjA3OyYjMTU4MDsmIzE1ODM7JiMxNjA3OycsJyYjMTYwNjsmIzE2MDg7JiMxNTg2OyYjMTU4MzsmIzE2MDc7JywnJiMxNTc2OyYjMTc0MDsmIzE1ODc7JiMxNTc4OycsJyYjMTU3NjsmIzE3NDA7JiMxNTg3OyYjMTU3ODsgJiMxNjA4OyAmIzE3NDA7JiMxNzA1OycsJyYjMTU3NjsmIzE3NDA7JiMxNTg3OyYjMTU3ODsgJiMxNjA4OyAmIzE1ODM7JiMxNjA4OycsJyYjMTU3NjsmIzE3NDA7JiMxNTg3OyYjMTU3ODsgJiMxNjA4OyAmIzE1ODc7JiMxNjA3OycNCgkgLCcmIzE1NzY7JiMxNzQwOyYjMTU4NzsmIzE1Nzg7ICYjMTYwODsgJiMxNjcwOyYjMTYwNzsmIzE1NzU7JiMxNTg1OycsJyYjMTU3NjsmIzE3NDA7JiMxNTg3OyYjMTU3ODsgJiMxNjA4OyAmIzE2NjI7JiMxNjA2OyYjMTU4MDsnLCcmIzE1NzY7JiMxNzQwOyYjMTU4NzsmIzE1Nzg7ICYjMTYwODsgJiMxNTg4OyYjMTU4ODsnLCcmIzE1NzY7JiMxNzQwOyYjMTU4NzsmIzE1Nzg7ICYjMTYwODsgJiMxNjA3OyYjMTYwMTsmIzE1Nzg7JywnJiMxNTc2OyYjMTc0MDsmIzE1ODc7JiMxNTc4OyAmIzE2MDg7ICYjMTYwNzsmIzE1ODg7JiMxNTc4OycsJyYjMTU3NjsmIzE3NDA7JiMxNTg3OyYjMTU3ODsgJiMxNjA4OyAmIzE2MDY7JiMxNjA3OycsJyYjMTU4NzsmIzE3NDA7JywnJiMxNTg3OyYjMTc0MDsgJiMxNjA4OyAmIzE3NDA7JiMxNzA1OycpOw0KCQkkYXJyYXlbJHR5cGVdPSRrZXlbJG51bS0xXTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdyaCc6DQoJCSRrZXk9YXJyYXkoJyYjMTc0MDsmIzE3MDU7JiMxNTg4OyYjMTYwNjsmIzE1NzY7JiMxNjA3OycsJyYjMTU4MzsmIzE2MDg7JiMxNTg4OyYjMTYwNjsmIzE1NzY7JiMxNjA3OycsJyYjMTU4NzsmIzE2MDc7ICYjMTU4ODsmIzE2MDY7JiMxNTc2OyYjMTYwNzsnLCcmIzE2NzA7JiMxNjA3OyYjMTU3NTsmIzE1ODU7JiMxNTg4OyYjMTYwNjsmIzE1NzY7JiMxNjA3OycsJyYjMTY2MjsmIzE2MDY7JiMxNTgwOyYjMTU4ODsmIzE2MDY7JiMxNTc2OyYjMTYwNzsnLCcmIzE1ODA7JiMxNjA1OyYjMTU5MzsmIzE2MDc7JywnJiMxNTg4OyYjMTYwNjsmIzE1NzY7JiMxNjA3OycpOw0KCQkkYXJyYXlbJHR5cGVdPSRrZXlbJG51bV07DQoJCWJyZWFrOw0KDQoJCWNhc2Unc2gnOg0KCQkka2V5PWFycmF5KCcmIzE2MDU7JiMxNTc1OyYjMTU4NTsnLCcmIzE1NzU7JiMxNTg3OyYjMTU3NjsnLCcmIzE3MTE7JiMxNjA4OyYjMTU4NzsmIzE2MDE7JiMxNjA2OyYjMTU4MzsnLCcmIzE2MDU7JiMxNzQwOyYjMTYwNTsmIzE2MDg7JiMxNjA2OycsJyYjMTYwNTsmIzE1ODU7JiMxNTk0OycsJyYjMTU4NzsmIzE3MTE7JywnJiMxNTgyOyYjMTYwODsmIzE3MDU7JywnJiMxNjA1OyYjMTYwODsmIzE1ODg7JywnJiMxNzExOyYjMTU3NTsmIzE2MDg7JywnJiMxNjYyOyYjMTYwNDsmIzE2MDY7JiMxNzExOycsJyYjMTU4MjsmIzE1ODU7JiMxNzExOyYjMTYwODsmIzE1ODg7JywnJiMxNjA2OyYjMTYwNzsmIzE2MDY7JiMxNzExOycpOw0KCQkkYXJyYXlbJHR5cGVdPSRrZXlbJG51bSUxMl07DQoJCWJyZWFrOw0KDQoJCWNhc2UnbWInOg0KCQkka2V5PWFycmF5KCcmIzE1ODE7JiMxNjA1OyYjMTYwNDsnLCcmIzE1Nzk7JiMxNjA4OyYjMTU4NTsnLCcmIzE1ODA7JiMxNjA4OyYjMTU4NjsmIzE1NzU7JywnJiMxNTg3OyYjMTU4NTsmIzE1OTE7JiMxNTc1OyYjMTYwNjsnLCcmIzE1NzU7JiMxNTg3OyYjMTU4MzsnLCcmIzE1ODc7JiMxNjA2OyYjMTU3NjsmIzE2MDQ7JiMxNjA3OycsJyYjMTYwNTsmIzE3NDA7JiMxNTg2OyYjMTU3NTsmIzE2MDY7JywnJiMxNTkzOyYjMTYwMjsmIzE1ODU7JiMxNTc2OycsJyYjMTYwMjsmIzE2MDg7JiMxNTg3OycsJyYjMTU4MDsmIzE1ODM7JiMxNzQwOycsJyYjMTU4MzsmIzE2MDQ7JiMxNjA4OycsJyYjMTU4MTsmIzE2MDg7JiMxNTc4OycpOw0KCQkkYXJyYXlbJHR5cGVdPSRrZXlbJG51bS0xXTsNCgkJYnJlYWs7DQoNCgkJY2FzZSdmZic6DQoJCSRrZXk9YXJyYXkoJyYjMTU3NjsmIzE2MDc7JiMxNTc1OyYjMTU4NTsnLCcmIzE1Nzg7JiMxNTc1OyYjMTU3NjsmIzE1ODc7JiMxNTc4OyYjMTU3NTsmIzE2MDY7JywnJiMxNjYyOyYjMTU3NTsmIzE3NDA7JiMxNzQwOyYjMTU4NjsnLCcmIzE1ODY7JiMxNjA1OyYjMTU4NzsmIzE1Nzg7JiMxNTc1OyYjMTYwNjsnKTsNCgkJJGFycmF5WyR0eXBlXT0ka2V5WyhpbnQpKCRudW0vMy4xKV07DQoJCWJyZWFrOw0KDQoJCWNhc2Una20nOg0KCQkka2V5PWFycmF5KCcmIzE2MDE7JiMxNTg1OycsJyYjMTU3NTsmIzE1ODU7JywnJiMxNTgyOyYjMTU4NTsnLCcmIzE1Nzg7JiMxNzQwOyYjODIwNTsnLCcmIzE2MDU7JiMxNTg1OycsJyYjMTU4ODsmIzE2MDc7JiM4MjA1OycsJyYjMTYwNTsmIzE2MDc7JiM4MjA1OycsJyYjMTU3MDsmIzE1NzY7JiM4MjA1OycsJyYjMTU3MDsmIzE1ODQ7JywnJiMxNTgzOyYjMTc0MDsnLCcmIzE1NzY7JiMxNjA3OyYjODIwNTsnLCcmIzE1NzU7JiMxNTg3OyYjODIwNTsnKTsNCgkJJGFycmF5WyR0eXBlXT0ka2V5WyRudW0tMV07DQoJCWJyZWFrOw0KDQoJCWNhc2Una2gnOg0KCQkka2V5PWFycmF5KCcmIzE3NDA7JywnJiMxNTgzOycsJyYjMTU4NzsnLCcmIzE2NzA7JywnJiMxNjYyOycsJyYjMTU4MDsnLCcmIzE1ODg7Jyk7DQoJCSRhcnJheVskdHlwZV09JGtleVskbnVtXTsNCgkJYnJlYWs7DQoNCgkJZGVmYXVsdDokYXJyYXlbJHR5cGVdPSRudW07DQoJICB9DQoJIH0NCgkgcmV0dXJuKCRtb2Q9PScnKT8kYXJyYXk6aW1wbG9kZSgkbW9kLCRhcnJheSk7DQoJfQ0KDQoJLyoqIEdyZWdvcmlhbiAmIEphbGFsaSAoSGlqcmlfU2hhbXNpLFNvbGFyKSBkYXRlIGNvbnZlcnRlciBGdW5jdGlvbnMNCglDb3B5cmlnaHQoQykyMDE1IEpERi5TQ1IuSVIgOiBbIGh0dHA6Ly9qZGYuc2NyLmlyL2pkZiBdIHZlcnNpb24gMi42MA0KCS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQoJMTQ2MSA9IDM2NSo0ICsgNC80ICAgJiAgMTQ2MDk3ID0gMzY1KjQwMCArIDQwMC80IC0gNDAwLzEwMCArIDQwMC80MDANCgkxMjA1MyA9IDM2NSozMyArIDMyLzQgICAgJiAgICAzNjUyNCA9IDM2NSoxMDAgKyAxMDAvNCAtIDEwMC8xMDAgICAqLw0KDQoJLyoJRgkqLw0KCWZ1bmN0aW9uIGdyZWdvcmlhbl90b19qYWxhbGkoJGd5LCRnbSwkZ2QsJG1vZD0nJyl7DQoJCSRneT10cl9udW0oJGd5KTsgJGdtPXRyX251bSgkZ20pOyAkZ2Q9dHJfbnVtKCRnZCk7LyogPD0gRXh0cmEgOiYjMTU3NTsmIzE2MTA7JiMxNjA2OyAmIzE1ODc7JiMxNTkxOyYjMTU4NTsgJiMxNTQ4OyAmIzE1ODA7JiMxNTg2OyYjMTU2OTsgJiMxNTc4OyYjMTU3NTsmIzE1NzY7JiMxNTkzOyAmIzE1NzU7JiMxNTg5OyYjMTYwNDsmIzE2MTA7ICYjMTYwNjsmIzE2MTA7JiMxNTg3OyYjMTU3ODsgKi8NCgkgJGdfZF9tPWFycmF5KDAsMzEsNTksOTAsMTIwLDE1MSwxODEsMjEyLDI0MywyNzMsMzA0LDMzNCk7DQoJICRqeT0oJGd5PD0xNjAwKT8wOjk3OTsNCgkgJGd5LT0oJGd5PD0xNjAwKT82MjE6MTYwMDsNCgkgJGd5Mj0oJGdtPjIpPygkZ3krMSk6JGd5Ow0KCSAkZGF5cz0oMzY1KiRneSkgKygoaW50KSgoJGd5MiszKS80KSkgLSgoaW50KSgoJGd5Mis5OSkvMTAwKSkgDQoJKygoaW50KSgoJGd5MiszOTkpLzQwMCkpIC04MCArJGdkICskZ19kX21bJGdtLTFdOw0KCSAkankrPTMzKigoaW50KSgkZGF5cy8xMjA1MykpOyANCgkgJGRheXMlPTEyMDUzOw0KCSAkankrPTQqKChpbnQpKCRkYXlzLzE0NjEpKTsNCgkgJGRheXMlPTE0NjE7DQoJICRqeSs9KGludCkoKCRkYXlzLTEpLzM2NSk7DQoJIGlmKCRkYXlzID4gMzY1KSRkYXlzPSgkZGF5cy0xKSUzNjU7DQoJICRqbT0oJGRheXMgPCAxODYpPzErKGludCkoJGRheXMvMzEpOjcrKGludCkoKCRkYXlzLTE4NikvMzApOw0KCSAkamQ9MSsoKCRkYXlzIDwgMTg2KT8oJGRheXMlMzEpOigoJGRheXMtMTg2KSUzMCkpOw0KCSByZXR1cm4oJG1vZD09JycpP2FycmF5KCRqeSwkam0sJGpkKTokankuJG1vZC4kam0uJG1vZC4kamQ7DQoJfQ0KDQoJLyoJRgkqLw0KCWZ1bmN0aW9uIGphbGFsaV90b19ncmVnb3JpYW4oJGp5LCRqbSwkamQsJG1vZD0nJyl7DQoJCSRqeT10cl9udW0oJGp5KTsgJGptPXRyX251bSgkam0pOyAkamQ9dHJfbnVtKCRqZCk7LyogPD0gRXh0cmEgOiYjMTU3NTsmIzE2MTA7JiMxNjA2OyAmIzE1ODc7JiMxNTkxOyYjMTU4NTsgJiMxNTQ4OyAmIzE1ODA7JiMxNTg2OyYjMTU2OTsgJiMxNTc4OyYjMTU3NTsmIzE1NzY7JiMxNTkzOyAmIzE1NzU7JiMxNTg5OyYjMTYwNDsmIzE2MTA7ICYjMTYwNjsmIzE2MTA7JiMxNTg3OyYjMTU3ODsgKi8NCgkgJGd5PSgkank8PTk3OSk/NjIxOjE2MDA7DQoJICRqeS09KCRqeTw9OTc5KT8wOjk3OTsNCgkgJGRheXM9KDM2NSokankpICsoKChpbnQpKCRqeS8zMykpKjgpICsoKGludCkoKCgkanklMzMpKzMpLzQpKSANCgkrNzggKyRqZCArKCgkam08Nyk/KCRqbS0xKSozMTooKCRqbS03KSozMCkrMTg2KTsNCgkgJGd5Kz00MDAqKChpbnQpKCRkYXlzLzE0NjA5NykpOw0KCSAkZGF5cyU9MTQ2MDk3Ow0KCSBpZigkZGF5cyA+IDM2NTI0KXsNCgkgICRneSs9MTAwKigoaW50KSgtLSRkYXlzLzM2NTI0KSk7DQoJICAkZGF5cyU9MzY1MjQ7DQoJICBpZigkZGF5cyA+PSAzNjUpJGRheXMrKzsNCgkgfQ0KCSAkZ3krPTQqKChpbnQpKCgkZGF5cykvMTQ2MSkpOw0KCSAkZGF5cyU9MTQ2MTsNCgkgJGd5Kz0oaW50KSgoJGRheXMtMSkvMzY1KTsNCgkgaWYoJGRheXMgPiAzNjUpJGRheXM9KCRkYXlzLTEpJTM2NTsNCgkgJGdkPSRkYXlzKzE7DQoJIGZvcmVhY2goYXJyYXkoMCwzMSwoKCRneSU0PT0wIGFuZCAkZ3klMTAwIT0wKSBvciAoJGd5JTQwMD09MCkpPzI5OjI4IA0KCSwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMSkgYXMgJGdtPT4kdil7DQoJICBpZigkZ2Q8PSR2KWJyZWFrOw0KCSAgJGdkLT0kdjsNCgkgfQ0KCSByZXR1cm4oJG1vZD09JycpP2FycmF5KCRneSwkZ20sJGdkKTokZ3kuJG1vZC4kZ20uJG1vZC4kZ2Q7IA0KCX0='));
Function Calls
base64_decode | 1 |
Stats
MD5 | f6a8f94382ca0e6fdd4374695c5deb1a |
Eval Count | 1 |
Decode Time | 551 ms |