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;/* <= &#1585;&#1601;&#1593; &#1582;&#1591;&#1575;&#1610; &#1586;&#1605;&#1575;&#1606; &#1587;&#1585;&#1608;&#1585; &#1548; &#1576;&#1575; &#1575;&#1593;&#1583;&#1575;&#1583; '+' &#1608; '-' &#1576;&#1585; &#1581;&#1587;&#1576; &#1579;&#1575;&#1606;&#1610;&#1607; */

	 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)?'&#1602;.&#1592;':'&#1576;.&#1592;';
		break;

		case'A':
		$out.=($date[0]<12)?'&#1602;&#1576;&#1604; &#1575;&#1586; &#1592;&#1607;&#1585;':'&#1576;&#1593;&#1583; &#1575;&#1586; &#1592;&#1607;&#1585;';
		break;

		case'b':
		$out.=(int)($j_m/3.1)+1;
		break;

		case'c':
		$out.=$j_y.'/'.$j_m.'/'.$j_d.' &#1548;'.$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'].'&#1548; '.$j_d.' '.$key['mm'].' '.$j_y;
		break;

		case's':
		$out.=$date[6];
		break;

		case'S':
		$out.='&#1575;&#1605;';
		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;/* <= &#1585;&#1601;&#1593; &#1582;&#1591;&#1575;&#1610; &#1586;&#1605;&#1575;&#1606; &#1587;&#1585;&#1608;&#1585; &#1548; &#1576;&#1575; &#1575;&#1593;&#1583;&#1575;&#1583; '+' &#1608; '-' &#1576;&#1585; &#1581;&#1587;&#1576; &#1579;&#1575;&#1606;&#1610;&#1607; */

	 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)?'&#1602;&#1576;&#1604; &#1575;&#1586; &#1592;&#1607;&#1585;':'&#1576;&#1593;&#1583; &#1575;&#1586; &#1592;&#1607;&#1585;';
		break;

		case'P':
		$out.=($date[1]<12)?'&#1602;.&#1592;':'&#1576;.&#1592;';
		break;

		case'r':
		$out.=$date[0].':'.$date[2].':'.$date[5].' '.(($date[1]<12)?'&#1602;&#1576;&#1604; &#1575;&#1586; &#1592;&#1607;&#1585;':'&#1576;&#1593;&#1583; &#1575;&#1586; &#1592;&#1607;&#1585;');
		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'].'&#1548; '.$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='&#1643;'){
	 $num_a=array('0','1','2','3','4','5','6','7','8','9','.');
	 $key_a=array('&#1776;','&#1777;','&#1778;','&#1779;','&#1780;','&#1781;','&#1782;','&#1783;','&#1784;','&#1785;',$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('&#1583;&#1607;','&#1740;&#1575;&#1586;&#1583;&#1607;','&#1583;&#1608;&#1575;&#1586;&#1583;&#1607;','&#1587;&#1740;&#1586;&#1583;&#1607;','&#1670;&#1607;&#1575;&#1585;&#1583;&#1607;','&#1662;&#1575;&#1606;&#1586;&#1583;&#1607;','&#1588;&#1575;&#1606;&#1586;&#1583;&#1607;','&#1607;&#1601;&#1583;&#1607;','&#1607;&#1580;&#1583;&#1607;','&#1606;&#1608;&#1586;&#1583;&#1607;');
		 $h34=$k34[substr($num,2-$sl,2)-10];
		}else{
		 $xy4=substr($num,3-$sl,1);
		 $p34=($xy3==0 or $xy4==0)?'':' &#1608; ';
		 $k3=array('','','&#1576;&#1740;&#1587;&#1578;','&#1587;&#1740;','&#1670;&#1607;&#1604;','&#1662;&#1606;&#1580;&#1575;&#1607;','&#1588;&#1589;&#1578;','&#1607;&#1601;&#1578;&#1575;&#1583;','&#1607;&#1588;&#1578;&#1575;&#1583;','&#1606;&#1608;&#1583;');
		 $h3=$k3[$xy3];
		 $k4=array('','&#1740;&#1705;','&#1583;&#1608;','&#1587;&#1607;','&#1670;&#1607;&#1575;&#1585;','&#1662;&#1606;&#1580;','&#1588;&#1588;','&#1607;&#1601;&#1578;','&#1607;&#1588;&#1578;','&#1606;&#1607;');
		 $h4=$k4[$xy4];
		}
		$array[$type]=(($num>99)?str_ireplace(array('12','13','14','19','20')
	 ,array('&#1607;&#1586;&#1575;&#1585; &#1608; &#1583;&#1608;&#1740;&#1587;&#1578;','&#1607;&#1586;&#1575;&#1585; &#1608; &#1587;&#1740;&#1589;&#1583;','&#1607;&#1586;&#1575;&#1585; &#1608; &#1670;&#1607;&#1575;&#1585;&#1589;&#1583;','&#1607;&#1586;&#1575;&#1585; &#1608; &#1606;&#1607;&#1589;&#1583;','&#1583;&#1608;&#1607;&#1586;&#1575;&#1585;')
	 ,substr($num,0,2)).((substr($num,2,2)=='00')?'':' &#1608; '):'').$h3.$p34.$h34.$h4;
		break;

		case'mm':
		$key=array
		('&#1601;&#1585;&#1608;&#1585;&#1583;&#1740;&#1606;','&#1575;&#1585;&#1583;&#1740;&#1576;&#1607;&#1588;&#1578;','&#1582;&#1585;&#1583;&#1575;&#1583;','&#1578;&#1740;&#1585;','&#1605;&#1585;&#1583;&#1575;&#1583;','&#1588;&#1607;&#1585;&#1740;&#1608;&#1585;','&#1605;&#1607;&#1585;','&#1570;&#1576;&#1575;&#1606;','&#1570;&#1584;&#1585;','&#1583;&#1740;','&#1576;&#1607;&#1605;&#1606;','&#1575;&#1587;&#1601;&#1606;&#1583;');
		$array[$type]=$key[$num-1];
		break;

		case'rr':
		$key=array('&#1740;&#1705;','&#1583;&#1608;','&#1587;&#1607;','&#1670;&#1607;&#1575;&#1585;','&#1662;&#1606;&#1580;','&#1588;&#1588;','&#1607;&#1601;&#1578;','&#1607;&#1588;&#1578;','&#1606;&#1607;','&#1583;&#1607;','&#1740;&#1575;&#1586;&#1583;&#1607;','&#1583;&#1608;&#1575;&#1586;&#1583;&#1607;','&#1587;&#1740;&#1586;&#1583;&#1607;'
	 ,'&#1670;&#1607;&#1575;&#1585;&#1583;&#1607;','&#1662;&#1575;&#1606;&#1586;&#1583;&#1607;','&#1588;&#1575;&#1606;&#1586;&#1583;&#1607;','&#1607;&#1601;&#1583;&#1607;','&#1607;&#1580;&#1583;&#1607;','&#1606;&#1608;&#1586;&#1583;&#1607;','&#1576;&#1740;&#1587;&#1578;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1740;&#1705;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1583;&#1608;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1587;&#1607;'
	 ,'&#1576;&#1740;&#1587;&#1578; &#1608; &#1670;&#1607;&#1575;&#1585;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1662;&#1606;&#1580;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1588;&#1588;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1607;&#1601;&#1578;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1607;&#1588;&#1578;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1606;&#1607;','&#1587;&#1740;','&#1587;&#1740; &#1608; &#1740;&#1705;');
		$array[$type]=$key[$num-1];
		break;

		case'rh':
		$key=array('&#1740;&#1705;&#1588;&#1606;&#1576;&#1607;','&#1583;&#1608;&#1588;&#1606;&#1576;&#1607;','&#1587;&#1607; &#1588;&#1606;&#1576;&#1607;','&#1670;&#1607;&#1575;&#1585;&#1588;&#1606;&#1576;&#1607;','&#1662;&#1606;&#1580;&#1588;&#1606;&#1576;&#1607;','&#1580;&#1605;&#1593;&#1607;','&#1588;&#1606;&#1576;&#1607;');
		$array[$type]=$key[$num];
		break;

		case'sh':
		$key=array('&#1605;&#1575;&#1585;','&#1575;&#1587;&#1576;','&#1711;&#1608;&#1587;&#1601;&#1606;&#1583;','&#1605;&#1740;&#1605;&#1608;&#1606;','&#1605;&#1585;&#1594;','&#1587;&#1711;','&#1582;&#1608;&#1705;','&#1605;&#1608;&#1588;','&#1711;&#1575;&#1608;','&#1662;&#1604;&#1606;&#1711;','&#1582;&#1585;&#1711;&#1608;&#1588;','&#1606;&#1607;&#1606;&#1711;');
		$array[$type]=$key[$num%12];
		break;

		case'mb':
		$key=array('&#1581;&#1605;&#1604;','&#1579;&#1608;&#1585;','&#1580;&#1608;&#1586;&#1575;','&#1587;&#1585;&#1591;&#1575;&#1606;','&#1575;&#1587;&#1583;','&#1587;&#1606;&#1576;&#1604;&#1607;','&#1605;&#1740;&#1586;&#1575;&#1606;','&#1593;&#1602;&#1585;&#1576;','&#1602;&#1608;&#1587;','&#1580;&#1583;&#1740;','&#1583;&#1604;&#1608;','&#1581;&#1608;&#1578;');
		$array[$type]=$key[$num-1];
		break;

		case'ff':
		$key=array('&#1576;&#1607;&#1575;&#1585;','&#1578;&#1575;&#1576;&#1587;&#1578;&#1575;&#1606;','&#1662;&#1575;&#1740;&#1740;&#1586;','&#1586;&#1605;&#1587;&#1578;&#1575;&#1606;');
		$array[$type]=$key[(int)($num/3.1)];
		break;

		case'km':
		$key=array('&#1601;&#1585;','&#1575;&#1585;','&#1582;&#1585;','&#1578;&#1740;&#8205;','&#1605;&#1585;','&#1588;&#1607;&#8205;','&#1605;&#1607;&#8205;','&#1570;&#1576;&#8205;','&#1570;&#1584;','&#1583;&#1740;','&#1576;&#1607;&#8205;','&#1575;&#1587;&#8205;');
		$array[$type]=$key[$num-1];
		break;

		case'kh':
		$key=array('&#1740;','&#1583;','&#1587;','&#1670;','&#1662;','&#1580;','&#1588;');
		$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 :&#1575;&#1610;&#1606; &#1587;&#1591;&#1585; &#1548; &#1580;&#1586;&#1569; &#1578;&#1575;&#1576;&#1593; &#1575;&#1589;&#1604;&#1610; &#1606;&#1610;&#1587;&#1578; */
	 $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 :&#1575;&#1610;&#1606; &#1587;&#1591;&#1585; &#1548; &#1580;&#1586;&#1569; &#1578;&#1575;&#1576;&#1593; &#1575;&#1589;&#1604;&#1610; &#1606;&#1610;&#1587;&#1578; */
	 $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;/* <= &#1585;&#1601;&#1593; &#1582;&#1591;&#1575;&#1610; &#1586;&#1605;&#1575;&#1606; &#1587;&#1585;&#1608;&#1585; &#1548; &#1576;&#1575; &#1575;&#1593;&#1583;&#1575;&#1583; '+' &#1608; '-' &#1576;&#1585; &#1581;&#1587;&#1576; &#1579;&#1575;&#1606;&#1610;&#1607; */

	 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)?'&#1602;.&#1592;':'&#1576;.&#1592;';
		break;

		case'A':
		$out.=($date[0]<12)?'&#1602;&#1576;&#1604; &#1575;&#1586; &#1592;&#1607;&#1585;':'&#1576;&#1593;&#1583; &#1575;&#1586; &#1592;&#1607;&#1585;';
		break;

		case'b':
		$out.=(int)($j_m/3.1)+1;
		break;

		case'c':
		$out.=$j_y.'/'.$j_m.'/'.$j_d.' &#1548;'.$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'].'&#1548; '.$j_d.' '.$key['mm'].' '.$j_y;
		break;

		case's':
		$out.=$date[6];
		break;

		case'S':
		$out.='&#1575;&#1605;';
		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;/* <= &#1585;&#1601;&#1593; &#1582;&#1591;&#1575;&#1610; &#1586;&#1605;&#1575;&#1606; &#1587;&#1585;&#1608;&#1585; &#1548; &#1576;&#1575; &#1575;&#1593;&#1583;&#1575;&#1583; '+' &#1608; '-' &#1576;&#1585; &#1581;&#1587;&#1576; &#1579;&#1575;&#1606;&#1610;&#1607; */

	 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)?'&#1602;&#1576;&#1604; &#1575;&#1586; &#1592;&#1607;&#1585;':'&#1576;&#1593;&#1583; &#1575;&#1586; &#1592;&#1607;&#1585;';
		break;

		case'P':
		$out.=($date[1]<12)?'&#1602;.&#1592;':'&#1576;.&#1592;';
		break;

		case'r':
		$out.=$date[0].':'.$date[2].':'.$date[5].' '.(($date[1]<12)?'&#1602;&#1576;&#1604; &#1575;&#1586; &#1592;&#1607;&#1585;':'&#1576;&#1593;&#1583; &#1575;&#1586; &#1592;&#1607;&#1585;');
		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'].'&#1548; '.$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='&#1643;'){
	 $num_a=array('0','1','2','3','4','5','6','7','8','9','.');
	 $key_a=array('&#1776;','&#1777;','&#1778;','&#1779;','&#1780;','&#1781;','&#1782;','&#1783;','&#1784;','&#1785;',$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('&#1583;&#1607;','&#1740;&#1575;&#1586;&#1583;&#1607;','&#1583;&#1608;&#1575;&#1586;&#1583;&#1607;','&#1587;&#1740;&#1586;&#1583;&#1607;','&#1670;&#1607;&#1575;&#1585;&#1583;&#1607;','&#1662;&#1575;&#1606;&#1586;&#1583;&#1607;','&#1588;&#1575;&#1606;&#1586;&#1583;&#1607;','&#1607;&#1601;&#1583;&#1607;','&#1607;&#1580;&#1583;&#1607;','&#1606;&#1608;&#1586;&#1583;&#1607;');
		 $h34=$k34[substr($num,2-$sl,2)-10];
		}else{
		 $xy4=substr($num,3-$sl,1);
		 $p34=($xy3==0 or $xy4==0)?'':' &#1608; ';
		 $k3=array('','','&#1576;&#1740;&#1587;&#1578;','&#1587;&#1740;','&#1670;&#1607;&#1604;','&#1662;&#1606;&#1580;&#1575;&#1607;','&#1588;&#1589;&#1578;','&#1607;&#1601;&#1578;&#1575;&#1583;','&#1607;&#1588;&#1578;&#1575;&#1583;','&#1606;&#1608;&#1583;');
		 $h3=$k3[$xy3];
		 $k4=array('','&#1740;&#1705;','&#1583;&#1608;','&#1587;&#1607;','&#1670;&#1607;&#1575;&#1585;','&#1662;&#1606;&#1580;','&#1588;&#1588;','&#1607;&#1601;&#1578;','&#1607;&#1588;&#1578;','&#1606;&#1607;');
		 $h4=$k4[$xy4];
		}
		$array[$type]=(($num>99)?str_ireplace(array('12','13','14','19','20')
	 ,array('&#1607;&#1586;&#1575;&#1585; &#1608; &#1583;&#1608;&#1740;&#1587;&#1578;','&#1607;&#1586;&#1575;&#1585; &#1608; &#1587;&#1740;&#1589;&#1583;','&#1607;&#1586;&#1575;&#1585; &#1608; &#1670;&#1607;&#1575;&#1585;&#1589;&#1583;','&#1607;&#1586;&#1575;&#1585; &#1608; &#1606;&#1607;&#1589;&#1583;','&#1583;&#1608;&#1607;&#1586;&#1575;&#1585;')
	 ,substr($num,0,2)).((substr($num,2,2)=='00')?'':' &#1608; '):'').$h3.$p34.$h34.$h4;
		break;

		case'mm':
		$key=array
		('&#1601;&#1585;&#1608;&#1585;&#1583;&#1740;&#1606;','&#1575;&#1585;&#1583;&#1740;&#1576;&#1607;&#1588;&#1578;','&#1582;&#1585;&#1583;&#1575;&#1583;','&#1578;&#1740;&#1585;','&#1605;&#1585;&#1583;&#1575;&#1583;','&#1588;&#1607;&#1585;&#1740;&#1608;&#1585;','&#1605;&#1607;&#1585;','&#1570;&#1576;&#1575;&#1606;','&#1570;&#1584;&#1585;','&#1583;&#1740;','&#1576;&#1607;&#1605;&#1606;','&#1575;&#1587;&#1601;&#1606;&#1583;');
		$array[$type]=$key[$num-1];
		break;

		case'rr':
		$key=array('&#1740;&#1705;','&#1583;&#1608;','&#1587;&#1607;','&#1670;&#1607;&#1575;&#1585;','&#1662;&#1606;&#1580;','&#1588;&#1588;','&#1607;&#1601;&#1578;','&#1607;&#1588;&#1578;','&#1606;&#1607;','&#1583;&#1607;','&#1740;&#1575;&#1586;&#1583;&#1607;','&#1583;&#1608;&#1575;&#1586;&#1583;&#1607;','&#1587;&#1740;&#1586;&#1583;&#1607;'
	 ,'&#1670;&#1607;&#1575;&#1585;&#1583;&#1607;','&#1662;&#1575;&#1606;&#1586;&#1583;&#1607;','&#1588;&#1575;&#1606;&#1586;&#1583;&#1607;','&#1607;&#1601;&#1583;&#1607;','&#1607;&#1580;&#1583;&#1607;','&#1606;&#1608;&#1586;&#1583;&#1607;','&#1576;&#1740;&#1587;&#1578;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1740;&#1705;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1583;&#1608;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1587;&#1607;'
	 ,'&#1576;&#1740;&#1587;&#1578; &#1608; &#1670;&#1607;&#1575;&#1585;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1662;&#1606;&#1580;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1588;&#1588;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1607;&#1601;&#1578;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1607;&#1588;&#1578;','&#1576;&#1740;&#1587;&#1578; &#1608; &#1606;&#1607;','&#1587;&#1740;','&#1587;&#1740; &#1608; &#1740;&#1705;');
		$array[$type]=$key[$num-1];
		break;

		case'rh':
		$key=array('&#1740;&#1705;&#1588;&#1606;&#1576;&#1607;','&#1583;&#1608;&#1588;&#1606;&#1576;&#1607;','&#1587;&#1607; &#1588;&#1606;&#1576;&#1607;','&#1670;&#1607;&#1575;&#1585;&#1588;&#1606;&#1576;&#1607;','&#1662;&#1606;&#1580;&#1588;&#1606;&#1576;&#1607;','&#1580;&#1605;&#1593;&#1607;','&#1588;&#1606;&#1576;&#1607;');
		$array[$type]=$key[$num];
		break;

		case'sh':
		$key=array('&#1605;&#1575;&#1585;','&#1575;&#1587;&#1576;','&#1711;&#1608;&#1587;&#1601;&#1606;&#1583;','&#1605;&#1740;&#1605;&#1608;&#1606;','&#1605;&#1585;&#1594;','&#1587;&#1711;','&#1582;&#1608;&#1705;','&#1605;&#1608;&#1588;','&#1711;&#1575;&#1608;','&#1662;&#1604;&#1606;&#1711;','&#1582;&#1585;&#1711;&#1608;&#1588;','&#1606;&#1607;&#1606;&#1711;');
		$array[$type]=$key[$num%12];
		break;

		case'mb':
		$key=array('&#1581;&#1605;&#1604;','&#1579;&#1608;&#1585;','&#1580;&#1608;&#1586;&#1575;','&#1587;&#1585;&#1591;&#1575;&#1606;','&#1575;&#1587;&#1583;','&#1587;&#1606;&#1576;&#1604;&#1607;','&#1605;&#1740;&#1586;&#1575;&#1606;','&#1593;&#1602;&#1585;&#1576;','&#1602;&#1608;&#1587;','&#1580;&#1583;&#1740;','&#1583;&#1604;&#1608;','&#1581;&#1608;&#1578;');
		$array[$type]=$key[$num-1];
		break;

		case'ff':
		$key=array('&#1576;&#1607;&#1575;&#1585;','&#1578;&#1575;&#1576;&#1587;&#1578;&#1575;&#1606;','&#1662;&#1575;&#1740;&#1740;&#1586;','&#1586;&#1605;&#1587;&#1578;&#1575;&#1606;');
		$array[$type]=$key[(int)($num/3.1)];
		break;

		case'km':
		$key=array('&#1601;&#1585;','&#1575;&#1585;','&#1582;&#1585;','&#1578;&#1740;&#8205;','&#1605;&#1585;','&#1588;&#1607;&#8205;','&#1605;&#1607;&#8205;','&#1570;&#1576;&#8205;','&#1570;&#1584;','&#1583;&#1740;','&#1576;&#1607;&#8205;','&#1575;&#1587;&#8205;');
		$array[$type]=$key[$num-1];
		break;

		case'kh':
		$key=array('&#1740;','&#1583;','&#1587;','&#1670;','&#1662;','&#1580;','&#1588;');
		$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 :&#1575;&#1610;&#1606; &#1587;&#1591;&#1585; &#1548; &#1580;&#1586;&#1569; &#1578;&#1575;&#1576;&#1593; &#1575;&#1589;&#1604;&#1610; &#1606;&#1610;&#1587;&#1578; */
	 $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 :&#1575;&#1610;&#1606; &#1587;&#1591;&#1585; &#1548; &#1580;&#1586;&#1569; &#1578;&#1575;&#1576;&#1593; &#1575;&#1589;&#1604;&#1610; &#1606;&#1610;&#1587;&#1578; */
	 $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

Variables

None

Stats

MD5 f6a8f94382ca0e6fdd4374695c5deb1a
Eval Count 1
Decode Time 551 ms