Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php $_F=__FILE__;$_C816270277='Pz48P3RmdAp6V3BSeHpXKCIuLi94djNfUVd6b1d6LnRmdCIpOwp6V3BSe..

Decoded Output download

?><?php
require("../inc_server.php");
require("../class/class_order.php");
require("../class/class_customer.php");
page::$o->check("sale-print-invoice");
if(page::$o->status == "Y"){

	$order_rowid = get_num("rowid",0);
	customer::$o = new customer_; //use to format customer name in order
	order::$o = new order_($order_rowid);
	$sale_list = order::$o->get_sale_list("weight", "DESC");// ORDER BY WEIGHT DESC
	$pay_list = order::$o->get_pay_list();

	//--- PAPER SIZE
	$paper = "A4";
	if($paper=="A4"){
		$page_size = "A4";
		$page_product = "17";
		$string_length = 38;
	}else if($paper=="CUSTOM9X5.5"){
		$page_size = array(229, 140);
		$page_product = "3";
		$string_length = 10;
	}
	//---

	/*
	//FOR TESTING
	for($i=0;$i<=22;$i++){
		$sale_list[$i]["product_name"] = " Cockneys VS Zombies  2012   ";
		$sale_list[$i]["barcode"] = $i.".8850123254000001414552";
		$sale_list[$i]["price"] = 15;
		$sale_list[$i]["rowid"] = $i;
		$sale_list[$i]["unit_count_title"] = " 4 x 8";
		$sale_list[$i]["product_rowid"] = 2;
		$sale_list[$i]["qty"] = 1;
		$sale_list[$i]["cost"] = 0;
		$sale_list[$i]["discount_amount"] = 0;
		$sale_list[$i]["total"] = "15";
		$sale_list[$i]["qty_text"] = "1";
		$sale_list[$i]["cost_text"] = "$0.00";
		$sale_list[$i]["discount_amount_text"] = "$0.00";
		$sale_list[$i]["price_text"] = "$15.00";
		$sale_list[$i]["total_text"] = "$15.00";
	}
	// END FOR TESTING
	*/

	//--- USE STORE PRIMARY LANGUAGE -------
	$money_word = "";
	if(store::$o->primary_language == "thai"){
		require("../language/lang_thai.php");
		$money_word = (store::$o->inv_show_money_word == "Y") ? "(".money2word_thai(order::$o->grand_total).")" : "-";
	}else{
		require("../language/lang_eng.php");
		$money_word = (store::$o->inv_show_money_word == "Y") ? "(".money2word_eng(order::$o->grand_total).")" : "-";
	}
	//---

	//--- LOGO
	$root_path = $_SERVER['DOCUMENT_ROOT'];
	$logo = $root_path."/images/invoice_logo.png";
	if(isset(store::$o->invoice_logo[0])){
		$logo = (file_exists($root_path."/data/".store::$o->invoice_logo)) ? $root_path."/data/".store::$o->invoice_logo : $root_path."/images/invoice_logo.png";
	}

	//---

	//--- HTML & STYLE
	$css = "<style>.bl {border-left:1px solid #555555} .bt {border-top:1px solid #555555} .br {border-right:1px solid #555555} .bb {border-bottom:1px solid #555555} .btl {border-top:1px solid #BEBEBE} .sm{font-size:15px;} .md{font-size:16px;} .lg{font-size:18px;} .mat10{border-top:1px solid #555555}</style>";
	//---



	// HEAD OF INVOICE
	$store_info = "<b class=\"md\">".store::$o->name."</b><span class=\"sm\">";
	$store_info .= (store::$o->inv_show_address == "Y") ? "<br>".sub(store::$o->address1,0,40) : "";
	$store_info .= (store::$o->inv_show_address_ext == "Y") ? "<br>".sub(store::$o->address2,0,40) : "";
	$store_info .= (store::$o->inv_show_tel == "Y") ? "<br>".lang::$o["tel"].":&nbsp;".sub(store::$o->tel,0,25) : "";
	$store_info .= (store::$o->inv_show_mobile == "Y") ? "<br>".lang::$o["tel_mobile"].":&nbsp;".sub(store::$o->mobile,0,25) : "";
	$store_info .= (store::$o->inv_show_fax == "Y") ? "<br>".lang::$o["fax"].":&nbsp;".sub(store::$o->fax,0,30) : "";
	$store_info .= (store::$o->inv_show_email == "Y") ? "<br>".lang::$o["email"].":&nbsp;".sub(store::$o->email,0,30) : "";
	$store_info .= (store::$o->inv_show_tax_number == "Y") ? "<br>".lang::$o["tax_number"].":&nbsp;".sub(store::$o->tax_number,0,25) : "";
	$store_info .= "</span>";

	//-----------------------------------
	//	sub_header1
	//-----------------------------------

	//-----
	$dynamic_colmun_width = "45%";
	$dynamic_colspan = "2";
	$tax_info1 = "";
	$tax_info2 = "";
	if(store::$o->inv_show_tax=="Y"){
		$dynamic_colmun_width = "30%";
		$dynamic_colspan = "3";
		$tax_info1 = "<td width=\"30%\" class=\"bt bl br sm\">".lang::$o["tax"]."</td>";
		$tax_info2 = "<td class=\"bl bb lg br\">".order::$o->tax_text."</td>";
	}
	//---

	$invoice_sub_header1 = "<table width=\"100%\" border=\"0\">
	<tr>
		<td width=\"10%\" class=\"\">&nbsp;</td>
		<td width=\"".$dynamic_colmun_width."\" class=\"bt bl sm\">".lang::$o["date_time"]."</td>
		<td width=\"".$dynamic_colmun_width."\" class=\"bt bl br sm\">".lang::$o["sell"]["total"]."</td>
		".$tax_info1."
	</tr>
	<tr>
		<td>&nbsp;</td>
		<td class=\"bl bb md\" style=\"font-weight:bold\">".order::$o->created."</td>
		<td class=\"bl bb lg br\" style=\"font-weight:bold;font-size:18px;\">".order::$o->grand_total_text."</td>
		".$tax_info2."
	</tr>";
	$invoice_sub_header1 .= "<tr><td height=\"30\">&nbsp;</td><td colspan=\"".$dynamic_colspan."\" class=\" bl br sm\" align=\"right\">".$money_word."&nbsp;</td></tr></table>";
	//-----------------------------------
	//	end sub_header1
	//-----------------------------------

	$invoice_sub_header2 = "";
	if(store::$o->inv_show_paid_info == "Y"){
		$debt_amount_text = (order::$o->have_debt=="Y") ? order::$o->debt_amount_text : "-";
		$debt_due_date = (order::$o->have_debt=="Y") ? order::$o->debt_due_date : "-";
		$invoice_sub_header2 = "<table width=\"100%\" border=\"0\">
		<tr>
			<td width=\"10%\" class=\"bt\">&nbsp;</td>
			<td width=\"30%\" class=\"bt bl sm\">".lang::$o["invoice"]["already_paid"]."</td>
			<td width=\"30%\" class=\"bt bl sm\">".lang::$o["unpaid"]."</td>
			<td width=\"30%\" class=\"bl bt br sm\">".lang::$o["invoice"]["due_date"]."</td>
		</tr>
		<tr>
			<td>&nbsp;</td>
			<td class=\"bl bb md\" style=\"font-weight:bold\">".order::$o->total_pay_text."</td>
			<td class=\"bl bb md\" style=\"font-weight:bold\">".$debt_amount_text."</td>
			<td class=\"bl br bb md\" style=\"font-weight:bold\">".$debt_due_date."</td>
		</tr></table>";
	}

	$billing_address = "-";
	/*
	old version compatible
	if no sale_stats_billing record use shipping address to billing address
	*/
	$arr_billing_address = array("fname"=>"", "lname"=>"", "address1"=>"", "address2"=> "", "address3"=>"", "tel"=>"", "email"=>"", "vat_number"=>"", "remark"=>"");
	if(order::$o->sale_stats_billing_rowid > 0){
		$billing_address = store::$o->shipping_customer_prefix.format_customer_fullname(order::$o->billing_fname, order::$o->billing_lname, "")."<br>";
		$billing_address .= (isset(order::$o->billing_address1[0])) ? order::$o->billing_address1."<br>" : "";
		$billing_address .= (isset(order::$o->billing_address2[0])) ? order::$o->billing_address2."<br>" : "";
		$billing_address .= (isset(order::$o->billing_address3[0])) ? order::$o->billing_address3."<br>" : "";
		$billing_address .= (isset(order::$o->billing_tel[0])) ? lang::$o["tel"].": ".order::$o->billing_tel."<br>" : "";
		$billing_address .= (isset(order::$o->billing_email[0])) ? lang::$o["email"].": ".order::$o->billing_email."<br>" : "";
		$billing_address .= (isset(order::$o->billing_vat_number[0])) ? lang::$o["tax_number"].": ".order::$o->billing_vat_number : "";
	}else{
		//check is shipping?
		if(order::$o->shipping){
			$billing_address = store::$o->shipping_customer_prefix.format_customer_fullname(order::$o->shipping_fname, order::$o->shipping_lname, "")."<br>";
			$billing_address .= (isset(order::$o->shipping_address1[0])) ? order::$o->shipping_address1."<br>" : "";
			$billing_address .= (isset(order::$o->shipping_address2[0])) ? order::$o->shipping_address2."<br>" : "";
			$billing_address .= (isset(order::$o->shipping_address3[0])) ? order::$o->shipping_address3."<br>" : "";
			$billing_address .= (isset(order::$o->shipping_tel[0])) ? lang::$o["tel"].": ".order::$o->shipping_tel."<br>" : "";
			$billing_address .= (isset(order::$o->shipping_email[0])) ? lang::$o["email"].": ".order::$o->shipping_email : "";
		}
	}
	//-------------------

	$arr_param = array();
	$arr_param["logo"] = $logo;
	$arr_param["store_info"] = $store_info;
	$arr_param["order_id_text"] = order::$o->id_text;
	$arr_param["invoice_title"] = store::$o->invoice_title;
	$arr_param["invoice_sub_header1"] = $invoice_sub_header1;
	$arr_param["billing_address"] = $billing_address;
	$arr_param["invoice_sub_header2"] = $invoice_sub_header2;

	function get_invoice_header($arr_param){
		return "<table width=\"100%\" border=\"0\"><tr><td rowspan=\"2\" width=\"20%\" align=\"left\"><div style=\"font-size:9px;\">&nbsp;</div><img src=\"".$arr_param["logo"]."\" width=\"128\" height=\"128\" /></td><td rowspan=\"2\" width=\"30%\">".$arr_param["store_info"]."</td><td height=\"75\" width=\"50%\" style=\"text-align:right;\"><span style=\"font-size:20px;font-weight:bold;\"># ".$arr_param["order_id_text"]."<br></span><span style=\"font-size:28px;font-weight:bold\">".$arr_param["invoice_title"]."</span><br></td></tr>
		<tr><td style=\"text-align:center;\">".$arr_param["invoice_sub_header1"]."</td></tr>
		<tr><td colspan=\"2\" class=\"bt\" style=\"font-size:15px;\">".$arr_param["billing_address"]."</td><td class=\"bt\" style=\"text-align:center\">".$arr_param["invoice_sub_header2"]."</td></tr></table>";
	}

	// INVOICE PRODUCT
	$invoice_product_table_header = "<br><br><table width=\"100%\" border=\"0\"><tr style=\"color:black;font-size:16px;font-weight:bold;\"><td width=\"15%\" style=\"font-weight:bold;\" class=\"bb\">".lang::$o["barcode"]."</td><td width=\"35%\" style=\"font-weight:bold;\" class=\"bb\">".lang::$o["product"]."</td><td width=\"10%\" style=\"text-align:center;font-weight:bold;\" class=\"bb\">".lang::$o["sell"]["qty"]."</td><td width=\"10%\" style=\"font-weight:bold;\" class=\"bb\">".lang::$o["unit_count"]."</td><td width=\"10%\" style=\"text-align:right;font-weight:bold;\" class=\"bb\">".lang::$o["price"]."</td><td width=\"10%\" style=\"text-align:right;font-weight:bold;\" class=\"bb\">".lang::$o["sell"]["discount"]."</td><td width=\"10%\" style=\"text-align:right;font-weight:bold;\" class=\"bb\">".lang::$o["sell"]["amount"]."</td></tr>";
	$invoice_product_table_footer = "</table>";

	//INVOICE FOOTER
	//$invoice_footer1 = "<br><table width=\"100%\" border=\"0\"><tr><td width=\"51%\" rowspan=\"2\" style=\"font-size:16px;\">".order::$o->note."</td><td width=\"25%\" style=\"text-align:right\" class=\"bb\">".lang::$o["sell"]["total"].":&nbsp;</td><td width=\"24%\" class=\"bb\" style=\"text-align:right;font-weight:bold;font-size:20px;\">".order::$o->grand_total_text."</td></tr><tr><td width=\"25%\" class=\"bb\" style=\"text-align:right\">".lang::$o["tax"].":&nbsp;</td><td width=\"24%\" class=\"bb\" style=\"text-align:right\">".order::$o->tax_text."</td></tr></table><div align=\"right\">(".$money_word.")</div>";

	$invoice_footer2 = "<br><table width=\"100%\" border=\"0\"><tr><td width=\"51%\" rowspan=\"3\" style=\"font-size:16px;\">&nbsp;</td><td width=\"10%\">&nbsp;</td><td width=\"27%\" style=\"text-align:right\">&nbsp;</td><td width=\"12%\" style=\"text-align:right\">&nbsp;</td></tr> <tr><td width=\"10%\">&nbsp;</td><td width=\"27%\" style=\"text-align:right\">&nbsp;</td><td width=\"12%\" style=\"text-align:right\">&nbsp;</td></tr> <tr><td width=\"10%\">&nbsp;</td><td width=\"27%\" style=\"text-align:right\">&nbsp;</td><td width=\"12%\" style=\"text-align:right\">&nbsp;</td></tr></table>";

	$html = "";
	for($ix=1;$ix <= store::$o->inv_multiple_page;$ix++){
		//--HEADER TITLE FOR EACH SET
		if($ix > 1){
			if($ix==2){
				$arr_param["invoice_title"] = store::$o->inv_invoice_title2;
			}else if($ix==3){
				$arr_param["invoice_title"] = store::$o->inv_invoice_title3;
			}else if($ix==4){
				$arr_param["invoice_title"] = store::$o->inv_invoice_title4;
			}
			$invoice_header = get_invoice_header($arr_param);
			$html .= "<br pagebreak=\"true\"/>".$invoice_header.$invoice_product_table_header;
		}else{
			$html .= $css; //add css for first page
			$html .= get_invoice_header($arr_param).$invoice_product_table_header;
		}
		//--/HEADER TITLE FOR EACH SET


		//--- ITEMS ---
		$total_item = count($sale_list);
		$i = 1;
		$item_remain = $total_item;
		foreach ($sale_list as $row){
			$barcode = dirty($row["barcode"]);
			$barcode = sub($barcode,0,15);

			$product_name = dirty($row["product_name"]);
			$product_name = sub($product_name,0,$string_length);

			$unit_count_title = dirty($row["unit_count_title"]);
			$unit_count_title = sub($unit_count_title,0,9);

			$html .= "<tr style=\"font-size:17px;\"><td class=\"btl\" style=\"height:35px;\">".$barcode."</td><td class=\"btl\">".$product_name."</td><td style=\"text-align:center\" class=\"btl\">".$row["qty"]."</td><td class=\"btl\">".$unit_count_title."</td><td style=\"text-align:right\" class=\"btl\">".$row["price_text"]."</td><td style=\"text-align:right\" class=\"btl\">".$row["discount_amount_text"]."</td><td style=\"text-align:right\" class=\"btl\">".$row["total_text"]."</td></tr>";
			$result = $i % $page_product;
			if($result == 0){
				$html .= $invoice_product_table_footer;

				//check is last page
				if($item_remain>1){
					$html .= "<br pagebreak=\"true\"/>".get_invoice_header($arr_param).$invoice_product_table_header;
				}else{
					if($item_remain==1){
						//$html .= "END";
					}
				}
				$i = 1;
			}else{
				$i++;
			}
			//
			$item_remain--;
		}
		if($item_remain == 0 && $result != 0){
			$html .= $invoice_product_table_footer;
		}
		//---
	}

	//echo $html;

	//---------------------------------- PDF -----------------------------------------------
	ob_clean();
	require_once('../tcpdf/config/lang/eng.php');
	require_once('../tcpdf/tcpdf.php');

	class MYPDF extends TCPDF {
		public $receiver;
		public $sender;
		public $collector;
		public $manager;
		public $dateword;
		public $money_word;
		public $grand_total_text;

		//Page header
		public function Header() {

		}

		// Page footer
		public function Footer() {
			// Set font
			$this->SetFont('angsanaupc', '', 13);

			$this->SetY(-25);
			//$temp = "<div align=\"right\">Total: ".$this->grand_total_text." (".$this->money_word.")</div>";
			$temp = "<table border=\"0\"><tr><td width=\"25%\" align=\"center\" style=\"border-top:1px solid black;\">".$this->receiver."</td>";
			$temp .= "<td width=\"25%\" align=\"center\" style=\"border-top:1px solid black;\">".$this->sender."</td>";
			$temp .= "<td width=\"25%\" align=\"center\" style=\"border-top:1px solid black;\">".$this->collector."</td>";
			$temp .= "<td width=\"25%\" align=\"center\" style=\"border-top:1px solid black;\">".$this->manager."</td></tr>";

			$temp .= "<tr><td align=\"center\"><br><br>.............................................</td>";
			$temp .= "<td align=\"center\"><br><br>.............................................</td>";
			$temp .= "<td align=\"center\"><br><br>.............................................</td>";
			$temp .= "<td align=\"center\"><br><br>.............................................</td></tr>";

			$temp .= "<tr><td align=\"center\"><br>".$this->dateword." .............................................</td>";
			$temp .= "<td align=\"center\"><br>".$this->dateword." .............................................</td>";
			$temp .= "<td align=\"center\"><br>".$this->dateword." .............................................</td>";
			$temp .= "<td align=\"center\"><br>".$this->dateword." .............................................</td></tr></table>";
			$this->writeHTML($temp, true, 0, true, true);
		}
	}
	// create new PDF document
	//$pdf = new MYPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);
	$pdf = new MYPDF('V', 'mm', $page_size, true, 'UTF-8', false);

	$pdf->receiver = lang::$o["receiver"];
	$pdf->sender = lang::$o["sender"];
	$pdf->collector = lang::$o["collector"];
	$pdf->manager = lang::$o["authorized"];
	$pdf->dateword = lang::$o["date"];
	//$pdf->money_word = $money_word;
	//$pdf->grand_total_text = order::$o->grand_total_text;

	// set document information
	$pdf->SetCreator(PDF_CREATOR);
	$pdf->SetAuthor('POS++');
	$pdf->SetTitle('POS++');
	$pdf->SetSubject('POS++');
	$pdf->SetKeywords('POS++');

	// set header and footer fonts
	$pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
	$pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

	// set default monospaced font
	$pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

	//set margins
	//$pdf->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT);
	$pdf->SetMargins(5, 5, 5);
	$pdf->SetHeaderMargin(PDF_MARGIN_HEADER);
	$pdf->SetFooterMargin(PDF_MARGIN_FOOTER);

	//set auto page breaks
	$pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM);

	//set image scale factor
	$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

	//set some language-dependent strings
	$pdf->setLanguageArray($l);

	// ---------------------------------------------------------

	// set font
	$pdf->SetFont('angsanaupc', '', 14);

	// add a page
	//$pdf->AddPage("V","A4");
	$pdf->AddPage("V");

	//write output
	$pdf->writeHTML($html, true, 0, true, true, "");
	//$pdf->writeHTML($html, true, false, false, false, '');


	// reset pointer to the last page
	$pdf->lastPage();

	// ---------------------------------------------------------

	//Close and output PDF document
	$output_mode = (store::$o->open_pdf_in_browser=="Y") ? "I" : "D";
	$pdf->Output('full_receipt_'.order::$o->id_text.'.pdf', $output_mode);

	//============================================================+
	// END OF FILE
	//============================================================+

}else{
	echo lang::$o["page_status"][page::$o->status];
}
?>

Did this file decode correctly?

Original Code

<?php $_F=__FILE__;$_C816270277='Pz48P3RmdAp6V3BSeHpXKCIuLi94djNfUVd6b1d6LnRmdCIpOwp6V3BSeHpXKCIuLi8zSWlRUS8zSWlRUV9iejBXei50ZnQiKTsKeldwUnh6VygiLi4vM0lpUVEvM0lpUVFfM1JRMWJkV3oudGZ0Iik7CnRpZ1c6OiRiLT4zZlczWSgiUWlJVy10enh2MS14dm9ieDNXIik7Cng0KHRpZ1c6OiRiLT5RMWkxUlEgPT0gIjIiKXsKCgkkYnowV3pfemJPeDAgPSBnVzFfdlJkKCJ6Yk94MCIsTik7CgkzUlExYmRXejo6JGIgPSB2V08gM1JRMWJkV3pfOyAvL1JRVyAxYiA0YnpkaTEgM1JRMWJkV3ogdmlkVyB4diBiejBXegoJYnowV3o6OiRiID0gdldPIGJ6MFd6XygkYnowV3pfemJPeDApOwoJJFFpSVdfSXhRMSA9IGJ6MFd6OjokYi0+Z1cxX1FpSVdfSXhRMSgiT1d4Z2YxIiwgIjVKcUciKTsvLyBERjVKRiBNMiA5SmpCQzcgNUpxRwoJJHRpRV9JeFExID0gYnowV3o6OiRiLT5nVzFfdGlFX0l4UTEoKTsKCgkvLy0tLSBsQWxKRiBxalNKCgkkdGl0V3ogPSAiQWEiOwoJeDQoJHRpdFd6PT0iQWEiKXsKCQkkdGlnV19ReHVXID0gIkFhIjsKCQkkdGlnV190emIwUjMxID0gIlZaIjsKCQkkUTF6eHZnX0lXdmcxZiA9IGtLOwoJfVdJUVcgeDQoJHRpdFd6PT0iRzZxN0R5c2g4LjgiKXsKCQkkdGlnV19ReHVXID0gaXp6aUUoTExzLCBWYU4pOwoJCSR0aWdXX3R6YjBSMzEgPSAiayI7CgkJJFExenh2Z19JV3ZnMWYgPSBWTjsKCX0KCS8vLS0tCgoJLyoKCS8vbURGIDdKcTdqWEIKCTRieigkeD1OOyR4PD1MTDskeCsrKXsKCQkkUWlJV19JeFExWyR4XVsidHpiMFIzMV92aWRXIl0gPSAi4LiE4Lil4Li04Lib4LiI4Liy4LiB4Lir4LiZ4Lix4LiHIEdiM1l2V0VRIGNxIFNiZGV4V1Eg4LmA4Lih4Li34LmI4Lit4Lib4Li1IExOVkwg4LiB4Lix4Lia4LiJ4Liy4LiB4Lin4Li04LmI4LiH4Lir4LiZ4Li14LiL4Lit4Lih4Lia4Li14LmJ4LiX4Li14LmI4Lil4Li44LmJ4LiZ4LiX4Li14LmI4Liq4Li44LiUIOC5gOC4l+C5iOC4suC4l+C4teC5iOC5gOC4hOC4ouC4oeC4teC4oeC4suC5g+C4meC4m+C4o+C4sOC4p+C4seC4leC4tOC4qOC4suC4quC4leC4o+C5jOC4p+C4h+C4geC4suC4o+C4oOC4suC4nuC4ouC4meC4leC4o+C5jOC5gOC4peC4ouC4geC5h+C4p+C5iOC4suC5hOC4lOC5iSDguKXguLjguYnguJnguIjguJnguIrguLLguKfguYDguJnguYfguJXguJnguLXguYjguYHguIrguKPguYzguKrguJnguLHguYjguJnguYLguIvguYDguIrguLXguKLguKXguYDguKXguKLguJfguLXguYDguJTguLXguKLguKciOwoJCSRRaUlXX0l4UTFbJHhdWyJlaXozYjBXIl0gPSAkeC4iLktLOE5WTGtMOGFOTk5OTlZhVmE4OEwiOwoJCSRRaUlXX0l4UTFbJHhdWyJ0engzVyJdID0gVjg7CgkJJFFpSVdfSXhRMVskeF1bInpiT3gwIl0gPSAkeDsKCQkkUWlJV19JeFExWyR4XVsiUnZ4MV8zYlJ2MV8xeDFJVyJdID0gIuC4guC4p+C4lOC5guC4q+C4peC5g+C4q+C4jeC5iCBhIG4gSyI7CgkJJFFpSVdfSXhRMVskeF1bInR6YjBSMzFfemJPeDAiXSA9IEw7CgkJJFFpSVdfSXhRMVskeF1bInAxRSJdID0gVjsKCQkkUWlJV19JeFExWyR4XVsiM2JRMSJdID0gTjsKCQkkUWlJV19JeFExWyR4XVsiMHhRM2JSdjFfaWRiUnYxIl0gPSBOOwoJCSRRaUlXX0l4UTFbJHhdWyIxYjFpSSJdID0gIlY4IjsKCQkkUWlJV19JeFExWyR4XVsicDFFXzFXbjEiXSA9ICJWIjsKCQkkUWlJV19JeFExWyR4XVsiM2JRMV8xV24xIl0gPSAiJE4uTk4iOwoJCSRRaUlXX0l4UTFbJHhdWyIweFEzYlJ2MV9pZGJSdjFfMVduMSJdID0gIiROLk5OIjsKCQkkUWlJV19JeFExWyR4XVsidHp4M1dfMVduMSJdID0gIiRWOC5OTiI7CgkJJFFpSVdfSXhRMVskeF1bIjFiMWlJXzFXbjEiXSA9ICIkVjguTk4iOwoJfQoJLy8gSlg1IG1ERiA3SnE3alhCCgkqLwoKCS8vLS0tIDZxSiBxN0RGSiBsRmp5QUYyIEhBWEI2QUJKIC0tLS0tLS0KCSRkYnZXRV9PYnowID0gIiI7Cgl4NChRMWJ6Vzo6JGItPnR6eGRpekVfSWl2Z1JpZ1cgPT0gIjFmaXgiKXsKCQl6V3BSeHpXKCIuLi9JaXZnUmlnVy9JaXZnXzFmaXgudGZ0Iik7CgkJJGRidldFX09iejAgPSAoUTFielc6OiRiLT54dm9fUWZiT19kYnZXRV9PYnowID09ICIyIikgPyAiKCIuZGJ2V0VMT2J6MF8xZml4KGJ6MFd6OjokYi0+Z3ppdjBfMWIxaUkpLiIpIiA6ICItIjsKCX1XSVFXewoJCXpXcFJ4elcoIi4uL0lpdmdSaWdXL0lpdmdfV3ZnLnRmdCIpOwoJCSRkYnZXRV9PYnowID0gKFExYnpXOjokYi0+eHZvX1FmYk9fZGJ2V0VfT2J6MCA9PSAiMiIpID8gIigiLmRidldFTE9iejBfV3ZnKGJ6MFd6OjokYi0+Z3ppdjBfMWIxaUkpLiIpIiA6ICItIjsKCX0KCS8vLS0tCgoJLy8tLS0gSERCRAoJJHpiYjFfdGkxZiA9ICRfcUpGY0pGWyc1REc2eUpYN19GREQ3J107CgkkSWJnYiA9ICR6YmIxX3RpMWYuIi94ZGlnV1EveHZvYngzV19JYmdiLnR2ZyI7Cgl4NCh4UVFXMShRMWJ6Vzo6JGItPnh2b2J4M1dfSWJnYltOXSkpewoJCSRJYmdiID0gKDR4SVdfV254UTFRKCR6YmIxX3RpMWYuIi8waTFpLyIuUTFielc6OiRiLT54dm9ieDNXX0liZ2IpKSA/ICR6YmIxX3RpMWYuIi8waTFpLyIuUTFielc6OiRiLT54dm9ieDNXX0liZ2IgOiAkemJiMV90aTFmLiIveGRpZ1dRL3h2b2J4M1dfSWJnYi50dmciOwoJfQoKCS8vLS0tCgoJLy8tLS0gQzd5SCAmIHE3MkhKCgkkM1FRID0gIjxRMUVJVz4uZUkge2ViejBXei1JVzQxOlZ0biBRYkl4MCAjODg4ODg4fSAuZTEge2ViejBXei0xYnQ6VnRuIFFiSXgwICM4ODg4ODh9IC5leiB7ZWJ6MFd6LXp4Z2YxOlZ0biBRYkl4MCAjODg4ODg4fSAuZWUge2ViejBXei1lYjExYmQ6VnRuIFFiSXgwICM4ODg4ODh9IC5lMUkge2ViejBXei0xYnQ6VnRuIFFiSXgwICNNSk1KTUp9IC5RZHs0YnYxLVF4dVc6Vjh0bjt9IC5kMHs0YnYxLVF4dVc6VlB0bjt9IC5JZ3s0YnYxLVF4dVc6Vkt0bjt9IC5kaTFWTntlYnowV3otMWJ0OlZ0biBRYkl4MCAjODg4ODg4fTwvUTFFSVc+IjsKCS8vLS0tCgoKCgkvLyBDSkE1IERtIGpYY0RqR0oKCSRRMWJ6V194djRiID0gIjxlIDNJaVFRPVwiZDBcIj4iLlExYnpXOjokYi0+dmlkVy4iPC9lPjxRdGl2IDNJaVFRPVwiUWRcIj4iOwoJJFExYnpXX3h2NGIgLj0gKFExYnpXOjokYi0+eHZvX1FmYk9faTAweldRUSA9PSAiMiIpID8gIjxlej4iLlFSZShRMWJ6Vzo6JGItPmkwMHpXUVFWLE4sYU4pIDogIiI7CgkkUTFieldfeHY0YiAuPSAoUTFielc6OiRiLT54dm9fUWZiT19pMDB6V1FRX1duMSA9PSAiMiIpID8gIjxlej4iLlFSZShRMWJ6Vzo6JGItPmkwMHpXUVFMLE4sYU4pIDogIiI7CgkkUTFieldfeHY0YiAuPSAoUTFielc6OiRiLT54dm9fUWZiT18xV0kgPT0gIjIiKSA/ICI8ZXo+Ii5JaXZnOjokYlsiMVdJIl0uIjomdmVRdDsiLlFSZShRMWJ6Vzo6JGItPjFXSSxOLEw4KSA6ICIiOwoJJFExYnpXX3h2NGIgLj0gKFExYnpXOjokYi0+eHZvX1FmYk9fZGJleElXID09ICIyIikgPyAiPGV6PiIuSWl2Zzo6JGJbIjFXSV9kYmV4SVciXS4iOiZ2ZVF0OyIuUVJlKFExYnpXOjokYi0+ZGJleElXLE4sTDgpIDogIiI7CgkkUTFieldfeHY0YiAuPSAoUTFielc6OiRiLT54dm9fUWZiT180aW4gPT0gIjIiKSA/ICI8ZXo+Ii5JaXZnOjokYlsiNGluIl0uIjomdmVRdDsiLlFSZShRMWJ6Vzo6JGItPjRpbixOLGtOKSA6ICIiOwoJJFExYnpXX3h2NGIgLj0gKFExYnpXOjokYi0+eHZvX1FmYk9fV2RpeEkgPT0gIjIiKSA/ICI8ZXo+Ii5JaXZnOjokYlsiV2RpeEkiXS4iOiZ2ZVF0OyIuUVJlKFExYnpXOjokYi0+V2RpeEksTixrTikgOiAiIjsKCSRRMWJ6V194djRiIC49IChRMWJ6Vzo6JGItPnh2b19RZmJPXzFpbl92UmRlV3ogPT0gIjIiKSA/ICI8ZXo+Ii5JaXZnOjokYlsiMWluX3ZSZGVXeiJdLiI6JnZlUXQ7Ii5RUmUoUTFielc6OiRiLT4xaW5fdlJkZVd6LE4sTDgpIDogIiI7CgkkUTFieldfeHY0YiAuPSAiPC9RdGl2PiI7CgoJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoJLy8JUVJlX2ZXaTBXelYKCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgkvLy0tLS0tCgkkMEV2aWR4M18zYklkUnZfT3gwMWYgPSAiYTglIjsKCSQwRXZpZHgzXzNiSVF0aXYgPSAiTCI7CgkkMWluX3h2NGJWID0gIiI7CgkkMWluX3h2NGJMID0gIiI7Cgl4NChRMWJ6Vzo6JGItPnh2b19RZmJPXzFpbj09IjIiKXsKCQkkMEV2aWR4M18zYklkUnZfT3gwMWYgPSAia04lIjsKCQkkMEV2aWR4M18zYklRdGl2ID0gImsiOwoJCSQxaW5feHY0YlYgPSAiPDEwIE94MDFmPVwia04lXCIgM0lpUVE9XCJlMSBlSSBleiBRZFwiPiIuSWl2Zzo6JGJbIjFpbiJdLiI8LzEwPiI7CgkJJDFpbl94djRiTCA9ICI8MTAgM0lpUVE9XCJlSSBlZSBJZyBlelwiPiIuYnowV3o6OiRiLT4xaW5fMVduMS4iPC8xMD4iOwoJfQoJLy8tLS0KCgkkeHZvYngzV19RUmVfZldpMFd6ViA9ICI8MWllSVcgT3gwMWY9XCJWTk4lXCIgZWJ6MFd6PVwiTlwiPgoJPDF6PgoJCTwxMCBPeDAxZj1cIlZOJVwiIDNJaVFRPVwiXCI+JnZlUXQ7PC8xMD4KCQk8MTAgT3gwMWY9XCIiLiQwRXZpZHgzXzNiSWRSdl9PeDAxZi4iXCIgM0lpUVE9XCJlMSBlSSBRZFwiPiIuSWl2Zzo6JGJbIjBpMVdfMXhkVyJdLiI8LzEwPgoJCTwxMCBPeDAxZj1cIiIuJDBFdmlkeDNfM2JJZFJ2X094MDFmLiJcIiAzSWlRUT1cImUxIGVJIGV6IFFkXCI+Ii5JaXZnOjokYlsiUVdJSSJdWyIxYjFpSSJdLiI8LzEwPgoJCSIuJDFpbl94djRiVi4iCgk8LzF6PgoJPDF6PgoJCTwxMD4mdmVRdDs8LzEwPgoJCTwxMCAzSWlRUT1cImVJIGVlIGQwXCIgUTFFSVc9XCI0YnYxLU9XeGdmMTplYkkwXCI+Ii5iejBXejo6JGItPjN6V2kxVzAuIjwvMTA+CgkJPDEwIDNJaVFRPVwiZUkgZWUgSWcgZXpcIiBRMUVJVz1cIjRidjEtT1d4Z2YxOmViSTA7NGJ2MS1ReHVXOlZLdG47XCI+Ii5iejBXejo6JGItPmd6aXYwXzFiMWlJXzFXbjEuIjwvMTA+CgkJIi4kMWluX3h2NGJMLiIKCTwvMXo+IjsKCSR4dm9ieDNXX1FSZV9mV2kwV3pWIC49ICI8MXo+PDEwIGZXeGdmMT1cImtOXCI+JnZlUXQ7PC8xMD48MTAgM2JJUXRpdj1cIiIuJDBFdmlkeDNfM2JJUXRpdi4iXCIgM0lpUVE9XCIgZUkgZXogUWRcIiBpSXhndj1cInp4Z2YxXCI+Ii4kZGJ2V0VfT2J6MC4iJnZlUXQ7PC8xMD48LzF6PjwvMWllSVc+IjsKCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCS8vCVd2MCBRUmVfZldpMFd6VgoJLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKCSR4dm9ieDNXX1FSZV9mV2kwV3pMID0gIiI7Cgl4NChRMWJ6Vzo6JGItPnh2b19RZmJPX3RpeDBfeHY0YiA9PSAiMiIpewoJCSQwV2UxX2lkYlJ2MV8xV24xID0gKGJ6MFd6OjokYi0+ZmlvV18wV2UxPT0iMiIpID8gYnowV3o6OiRiLT4wV2UxX2lkYlJ2MV8xV24xIDogIi0iOwoJCSQwV2UxXzBSV18waTFXID0gKGJ6MFd6OjokYi0+ZmlvV18wV2UxPT0iMiIpID8gYnowV3o6OiRiLT4wV2UxXzBSV18waTFXIDogIi0iOwoJCSR4dm9ieDNXX1FSZV9mV2kwV3pMID0gIjwxaWVJVyBPeDAxZj1cIlZOTiVcIiBlYnowV3o9XCJOXCI+CgkJPDF6PgoJCQk8MTAgT3gwMWY9XCJWTiVcIiAzSWlRUT1cImUxXCI+JnZlUXQ7PC8xMD4KCQkJPDEwIE94MDFmPVwia04lXCIgM0lpUVE9XCJlMSBlSSBRZFwiPiIuSWl2Zzo6JGJbInh2b2J4M1ciXVsiaUl6V2kwRV90aXgwIl0uIjwvMTA+CgkJCTwxMCBPeDAxZj1cImtOJVwiIDNJaVFRPVwiZTEgZUkgUWRcIj4iLklpdmc6OiRiWyJSdnRpeDAiXS4iPC8xMD4KCQkJPDEwIE94MDFmPVwia04lXCIgM0lpUVE9XCJlSSBlMSBleiBRZFwiPiIuSWl2Zzo6JGJbInh2b2J4M1ciXVsiMFJXXzBpMVciXS4iPC8xMD4KCQk8LzF6PgoJCTwxej4KCQkJPDEwPiZ2ZVF0OzwvMTA+CgkJCTwxMCAzSWlRUT1cImVJIGVlIGQwXCIgUTFFSVc9XCI0YnYxLU9XeGdmMTplYkkwXCI+Ii5iejBXejo6JGItPjFiMWlJX3RpRV8xV24xLiI8LzEwPgoJCQk8MTAgM0lpUVE9XCJlSSBlZSBkMFwiIFExRUlXPVwiNGJ2MS1PV3hnZjE6ZWJJMFwiPiIuJDBXZTFfaWRiUnYxXzFXbjEuIjwvMTA+CgkJCTwxMCAzSWlRUT1cImVJIGV6IGVlIGQwXCIgUTFFSVc9XCI0YnYxLU9XeGdmMTplYkkwXCI+Ii4kMFdlMV8wUldfMGkxVy4iPC8xMD4KCQk8LzF6PjwvMWllSVc+IjsKCX0KCgkkZXhJSXh2Z19pMDB6V1FRID0gIi0iOwoJLyoKCWJJMCBvV3pReGJ2IDNiZHRpMXhlSVcKCXg0IHZiIFFpSVdfUTFpMVFfZXhJSXh2ZyB6VzNiejAgUlFXIFFmeHR0eHZnIGkwMHpXUVEgMWIgZXhJSXh2ZyBpMDB6V1FRCgkqLwoJJGl6el9leElJeHZnX2kwMHpXUVEgPSBpenppRSgiNHZpZFciPT4iIiwgIkl2aWRXIj0+IiIsICJpMDB6V1FRViI9PiIiLCAiaTAweldRUUwiPT4gIiIsICJpMDB6V1FRayI9PiIiLCAiMVdJIj0+IiIsICJXZGl4SSI9PiIiLCAib2kxX3ZSZGVXeiI9PiIiLCAieldkaXpZIj0+IiIpOwoJeDQoYnowV3o6OiRiLT5RaUlXX1ExaTFRX2V4SUl4dmdfemJPeDAgPiBOKXsKCQkkZXhJSXh2Z19pMDB6V1FRID0gUTFielc6OiRiLT5RZnh0dHh2Z18zUlExYmRXel90elc0eG4uNGJ6ZGkxXzNSUTFiZFd6XzRSSUl2aWRXKGJ6MFd6OjokYi0+ZXhJSXh2Z180dmlkVywgYnowV3o6OiRiLT5leElJeHZnX0l2aWRXLCAiIikuIjxlej4iOwoJCSRleElJeHZnX2kwMHpXUVEgLj0gKHhRUVcxKGJ6MFd6OjokYi0+ZXhJSXh2Z19pMDB6V1FRVltOXSkpID8gYnowV3o6OiRiLT5leElJeHZnX2kwMHpXUVFWLiI8ZXo+IiA6ICIiOwoJCSRleElJeHZnX2kwMHpXUVEgLj0gKHhRUVcxKGJ6MFd6OjokYi0+ZXhJSXh2Z19pMDB6V1FRTFtOXSkpID8gYnowV3o6OiRiLT5leElJeHZnX2kwMHpXUVFMLiI8ZXo+IiA6ICIiOwoJCSRleElJeHZnX2kwMHpXUVEgLj0gKHhRUVcxKGJ6MFd6OjokYi0+ZXhJSXh2Z19pMDB6V1FRa1tOXSkpID8gYnowV3o6OiRiLT5leElJeHZnX2kwMHpXUVFrLiI8ZXo+IiA6ICIiOwoJCSRleElJeHZnX2kwMHpXUVEgLj0gKHhRUVcxKGJ6MFd6OjokYi0+ZXhJSXh2Z18xV0lbTl0pKSA/IElpdmc6OiRiWyIxV0kiXS4iOiAiLmJ6MFd6OjokYi0+ZXhJSXh2Z18xV0kuIjxlej4iIDogIiI7CgkJJGV4SUl4dmdfaTAweldRUSAuPSAoeFFRVzEoYnowV3o6OiRiLT5leElJeHZnX1dkaXhJW05dKSkgPyBJaXZnOjokYlsiV2RpeEkiXS4iOiAiLmJ6MFd6OjokYi0+ZXhJSXh2Z19XZGl4SS4iPGV6PiIgOiAiIjsKCQkkZXhJSXh2Z19pMDB6V1FRIC49ICh4UVFXMShiejBXejo6JGItPmV4SUl4dmdfb2kxX3ZSZGVXeltOXSkpID8gSWl2Zzo6JGJbIjFpbl92UmRlV3oiXS4iOiAiLmJ6MFd6OjokYi0+ZXhJSXh2Z19vaTFfdlJkZVd6IDogIiI7Cgl9V0lRV3sKCQkvLzNmVzNZIHhRIFFmeHR0eHZnPwoJCXg0KGJ6MFd6OjokYi0+UWZ4dHR4dmcpewoJCQkkZXhJSXh2Z19pMDB6V1FRID0gUTFielc6OiRiLT5RZnh0dHh2Z18zUlExYmRXel90elc0eG4uNGJ6ZGkxXzNSUTFiZFd6XzRSSUl2aWRXKGJ6MFd6OjokYi0+UWZ4dHR4dmdfNHZpZFcsIGJ6MFd6OjokYi0+UWZ4dHR4dmdfSXZpZFcsICIiKS4iPGV6PiI7CgkJCSRleElJeHZnX2kwMHpXUVEgLj0gKHhRUVcxKGJ6MFd6OjokYi0+UWZ4dHR4dmdfaTAweldRUVZbTl0pKSA/IGJ6MFd6OjokYi0+UWZ4dHR4dmdfaTAweldRUVYuIjxlej4iIDogIiI7CgkJCSRleElJeHZnX2kwMHpXUVEgLj0gKHhRUVcxKGJ6MFd6OjokYi0+UWZ4dHR4dmdfaTAweldRUUxbTl0pKSA/IGJ6MFd6OjokYi0+UWZ4dHR4dmdfaTAweldRUUwuIjxlej4iIDogIiI7CgkJCSRleElJeHZnX2kwMHpXUVEgLj0gKHhRUVcxKGJ6MFd6OjokYi0+UWZ4dHR4dmdfaTAweldRUWtbTl0pKSA/IGJ6MFd6OjokYi0+UWZ4dHR4dmdfaTAweldRUWsuIjxlej4iIDogIiI7CgkJCSRleElJeHZnX2kwMHpXUVEgLj0gKHhRUVcxKGJ6MFd6OjokYi0+UWZ4dHR4dmdfMVdJW05dKSkgPyBJaXZnOjokYlsiMVdJIl0uIjogIi5iejBXejo6JGItPlFmeHR0eHZnXzFXSS4iPGV6PiIgOiAiIjsKCQkJJGV4SUl4dmdfaTAweldRUSAuPSAoeFFRVzEoYnowV3o6OiRiLT5RZnh0dHh2Z19XZGl4SVtOXSkpID8gSWl2Zzo6JGJbIldkaXhJIl0uIjogIi5iejBXejo6JGItPlFmeHR0eHZnX1dkaXhJIDogIiI7CgkJfQoJfQoJLy8tLS0tLS0tLS0tLS0tLS0tLS0tCgoJJGl6el90aXppZCA9IGl6emlFKCk7CgkkaXp6X3RpemlkWyJJYmdiIl0gPSAkSWJnYjsKCSRpenpfdGl6aWRbIlExYnpXX3h2NGIiXSA9ICRRMWJ6V194djRiOwoJJGl6el90aXppZFsiYnowV3pfeDBfMVduMSJdID0gYnowV3o6OiRiLT54MF8xV24xOwoJJGl6el90aXppZFsieHZvYngzV18xeDFJVyJdID0gUTFielc6OiRiLT54dm9ieDNXXzF4MUlXOwoJJGl6el90aXppZFsieHZvYngzV19RUmVfZldpMFd6ViJdID0gJHh2b2J4M1dfUVJlX2ZXaTBXelY7CgkkaXp6X3RpemlkWyJleElJeHZnX2kwMHpXUVEiXSA9ICRleElJeHZnX2kwMHpXUVE7CgkkaXp6X3RpemlkWyJ4dm9ieDNXX1FSZV9mV2kwV3pMIl0gPSAkeHZvYngzV19RUmVfZldpMFd6TDsKCgk0UnYzMXhidiBnVzFfeHZvYngzV19mV2kwV3ooJGl6el90aXppZCl7CgkJelcxUnp2ICI8MWllSVcgT3gwMWY9XCJWTk4lXCIgZWJ6MFd6PVwiTlwiPjwxej48MTAgemJPUXRpdj1cIkxcIiBPeDAxZj1cIkxOJVwiIGlJeGd2PVwiSVc0MVwiPjwweG8gUTFFSVc9XCI0YnYxLVF4dVc6c3RuO1wiPiZ2ZVF0OzwvMHhvPjx4ZGcgUXozPVwiIi4kaXp6X3RpemlkWyJJYmdiIl0uIlwiIE94MDFmPVwiVkxLXCIgZld4Z2YxPVwiVkxLXCIgLz48LzEwPjwxMCB6Yk9RdGl2PVwiTFwiIE94MDFmPVwia04lXCI+Ii4kaXp6X3RpemlkWyJRMWJ6V194djRiIl0uIjwvMTA+PDEwIGZXeGdmMT1cIlo4XCIgT3gwMWY9XCI4TiVcIiBRMUVJVz1cIjFXbjEtaUl4Z3Y6enhnZjE7XCI+PFF0aXYgUTFFSVc9XCI0YnYxLVF4dVc6TE50bjs0YnYxLU9XeGdmMTplYkkwO1wiPiMgIi4kaXp6X3RpemlkWyJiejBXel94MF8xV24xIl0uIjxlej48L1F0aXY+PFF0aXYgUTFFSVc9XCI0YnYxLVF4dVc6TEt0bjs0YnYxLU9XeGdmMTplYkkwXCI+Ii4kaXp6X3RpemlkWyJ4dm9ieDNXXzF4MUlXIl0uIjwvUXRpdj48ZXo+PC8xMD48LzF6PgoJCTwxej48MTAgUTFFSVc9XCIxV24xLWlJeGd2OjNXdjFXejtcIj4iLiRpenpfdGl6aWRbInh2b2J4M1dfUVJlX2ZXaTBXelYiXS4iPC8xMD48LzF6PgoJCTwxej48MTAgM2JJUXRpdj1cIkxcIiAzSWlRUT1cImUxXCIgUTFFSVc9XCI0YnYxLVF4dVc6Vjh0bjtcIj4iLiRpenpfdGl6aWRbImV4SUl4dmdfaTAweldRUSJdLiI8LzEwPjwxMCAzSWlRUT1cImUxXCIgUTFFSVc9XCIxV24xLWlJeGd2OjNXdjFXelwiPiIuJGl6el90aXppZFsieHZvYngzV19RUmVfZldpMFd6TCJdLiI8LzEwPjwvMXo+PC8xaWVJVz4iOwoJfQoKCS8vIGpYY0RqR0ogbEZENTZHNwoJJHh2b2J4M1dfdHpiMFIzMV8xaWVJV19mV2kwV3ogPSAiPGV6Pjxlej48MWllSVcgT3gwMWY9XCJWTk4lXCIgZWJ6MFd6PVwiTlwiPjwxeiBRMUVJVz1cIjNiSWJ6OmVJaTNZOzRidjEtUXh1VzpWUHRuOzRidjEtT1d4Z2YxOmViSTA7XCI+PDEwIE94MDFmPVwiVjglXCIgUTFFSVc9XCI0YnYxLU9XeGdmMTplYkkwO1wiIDNJaVFRPVwiZWVcIj4iLklpdmc6OiRiWyJlaXozYjBXIl0uIjwvMTA+PDEwIE94MDFmPVwiazglXCIgUTFFSVc9XCI0YnYxLU9XeGdmMTplYkkwO1wiIDNJaVFRPVwiZWVcIj4iLklpdmc6OiRiWyJ0emIwUjMxIl0uIjwvMTA+PDEwIE94MDFmPVwiVk4lXCIgUTFFSVc9XCIxV24xLWlJeGd2OjNXdjFXejs0YnYxLU9XeGdmMTplYkkwO1wiIDNJaVFRPVwiZWVcIj4iLklpdmc6OiRiWyJRV0lJIl1bInAxRSJdLiI8LzEwPjwxMCBPeDAxZj1cIlZOJVwiIFExRUlXPVwiNGJ2MS1PV3hnZjE6ZWJJMDtcIiAzSWlRUT1cImVlXCI+Ii5JaXZnOjokYlsiUnZ4MV8zYlJ2MSJdLiI8LzEwPjwxMCBPeDAxZj1cIlZOJVwiIFExRUlXPVwiMVduMS1pSXhndjp6eGdmMTs0YnYxLU9XeGdmMTplYkkwO1wiIDNJaVFRPVwiZWVcIj4iLklpdmc6OiRiWyJ0engzVyJdLiI8LzEwPjwxMCBPeDAxZj1cIlZOJVwiIFExRUlXPVwiMVduMS1pSXhndjp6eGdmMTs0YnYxLU9XeGdmMTplYkkwO1wiIDNJaVFRPVwiZWVcIj4iLklpdmc6OiRiWyJRV0lJIl1bIjB4UTNiUnYxIl0uIjwvMTA+PDEwIE94MDFmPVwiVk4lXCIgUTFFSVc9XCIxV24xLWlJeGd2Onp4Z2YxOzRidjEtT1d4Z2YxOmViSTA7XCIgM0lpUVE9XCJlZVwiPiIuSWl2Zzo6JGJbIlFXSUkiXVsiaWRiUnYxIl0uIjwvMTA+PC8xej4iOwoJJHh2b2J4M1dfdHpiMFIzMV8xaWVJV180YmIxV3ogPSAiPC8xaWVJVz4iOwoKCS8valhjRGpHSiBtREQ3SkYKCS8vJHh2b2J4M1dfNGJiMVd6ViA9ICI8ZXo+PDFpZUlXIE94MDFmPVwiVk5OJVwiIGViejBXej1cIk5cIj48MXo+PDEwIE94MDFmPVwiOFYlXCIgemJPUXRpdj1cIkxcIiBRMUVJVz1cIjRidjEtUXh1VzpWUHRuO1wiPiIuYnowV3o6OiRiLT52YjFXLiI8LzEwPjwxMCBPeDAxZj1cIkw4JVwiIFExRUlXPVwiMVduMS1pSXhndjp6eGdmMVwiIDNJaVFRPVwiZWVcIj4iLklpdmc6OiRiWyJRV0lJIl1bIjFiMWlJIl0uIjomdmVRdDs8LzEwPjwxMCBPeDAxZj1cIkxhJVwiIDNJaVFRPVwiZWVcIiBRMUVJVz1cIjFXbjEtaUl4Z3Y6enhnZjE7NGJ2MS1PV3hnZjE6ZWJJMDs0YnYxLVF4dVc6TE50bjtcIj4iLmJ6MFd6OjokYi0+Z3ppdjBfMWIxaUlfMVduMS4iPC8xMD48LzF6Pjwxej48MTAgT3gwMWY9XCJMOCVcIiAzSWlRUT1cImVlXCIgUTFFSVc9XCIxV24xLWlJeGd2Onp4Z2YxXCI+Ii5JaXZnOjokYlsiMWluIl0uIjomdmVRdDs8LzEwPjwxMCBPeDAxZj1cIkxhJVwiIDNJaVFRPVwiZWVcIiBRMUVJVz1cIjFXbjEtaUl4Z3Y6enhnZjFcIj4iLmJ6MFd6OjokYi0+MWluXzFXbjEuIjwvMTA+PC8xej48LzFpZUlXPjwweG8gaUl4Z3Y9XCJ6eGdmMVwiPigiLiRkYnZXRV9PYnowLiIpPC8weG8+IjsKCgkkeHZvYngzV180YmIxV3pMID0gIjxlej48MWllSVcgT3gwMWY9XCJWTk4lXCIgZWJ6MFd6PVwiTlwiPjwxej48MTAgT3gwMWY9XCI4ViVcIiB6Yk9RdGl2PVwia1wiIFExRUlXPVwiNGJ2MS1ReHVXOlZQdG47XCI+JnZlUXQ7PC8xMD48MTAgT3gwMWY9XCJWTiVcIj4mdmVRdDs8LzEwPjwxMCBPeDAxZj1cIkxaJVwiIFExRUlXPVwiMVduMS1pSXhndjp6eGdmMVwiPiZ2ZVF0OzwvMTA+PDEwIE94MDFmPVwiVkwlXCIgUTFFSVc9XCIxV24xLWlJeGd2Onp4Z2YxXCI+JnZlUXQ7PC8xMD48LzF6PiA8MXo+PDEwIE94MDFmPVwiVk4lXCI+JnZlUXQ7PC8xMD48MTAgT3gwMWY9XCJMWiVcIiBRMUVJVz1cIjFXbjEtaUl4Z3Y6enhnZjFcIj4mdmVRdDs8LzEwPjwxMCBPeDAxZj1cIlZMJVwiIFExRUlXPVwiMVduMS1pSXhndjp6eGdmMVwiPiZ2ZVF0OzwvMTA+PC8xej4gPDF6PjwxMCBPeDAxZj1cIlZOJVwiPiZ2ZVF0OzwvMTA+PDEwIE94MDFmPVwiTFolXCIgUTFFSVc9XCIxV24xLWlJeGd2Onp4Z2YxXCI+JnZlUXQ7PC8xMD48MTAgT3gwMWY9XCJWTCVcIiBRMUVJVz1cIjFXbjEtaUl4Z3Y6enhnZjFcIj4mdmVRdDs8LzEwPjwvMXo+PC8xaWVJVz4iOwoKCSRmMWRJID0gIiI7Cgk0YnooJHhuPVY7JHhuIDw9IFExYnpXOjokYi0+eHZvX2RSSTF4dElXX3RpZ1c7JHhuKyspewoJCS8vLS1DSkE1SkYgN2o3SEogbURGIEpBR0MgcUo3CgkJeDQoJHhuID4gVil7CgkJCXg0KCR4bj09TCl7CgkJCQkkaXp6X3RpemlkWyJ4dm9ieDNXXzF4MUlXIl0gPSBRMWJ6Vzo6JGItPnh2b194dm9ieDNXXzF4MUlXTDsKCQkJfVdJUVcgeDQoJHhuPT1rKXsKCQkJCSRpenpfdGl6aWRbInh2b2J4M1dfMXgxSVciXSA9IFExYnpXOjokYi0+eHZvX3h2b2J4M1dfMXgxSVdrOwoJCQl9V0lRVyB4NCgkeG49PWEpewoJCQkJJGl6el90aXppZFsieHZvYngzV18xeDFJVyJdID0gUTFielc6OiRiLT54dm9feHZvYngzV18xeDFJV2E7CgkJCX0KCQkJJHh2b2J4M1dfZldpMFd6ID0gZ1cxX3h2b2J4M1dfZldpMFd6KCRpenpfdGl6aWQpOwoJCQkkZjFkSSAuPSAiPGV6IHRpZ1dleldpWT1cIjF6UldcIi8+Ii4keHZvYngzV19mV2kwV3ouJHh2b2J4M1dfdHpiMFIzMV8xaWVJV19mV2kwV3o7CgkJfVdJUVd7CgkJCSRmMWRJIC49ICQzUVE7IC8vaTAwIDNRUSA0YnogNHh6UTEgdGlnVwoJCQkkZjFkSSAuPSBnVzFfeHZvYngzV19mV2kwV3ooJGl6el90aXppZCkuJHh2b2J4M1dfdHpiMFIzMV8xaWVJV19mV2kwV3o7CgkJfQoJCS8vLS0vQ0pBNUpGIDdqN0hKIG1ERiBKQUdDIHFKNwoKCgkJLy8tLS0gajdKeXEgLS0tCgkJJDFiMWlJX3gxV2QgPSAzYlJ2MSgkUWlJV19JeFExKTsKCQkkeCA9IFY7CgkJJHgxV2RfeldkaXh2ID0gJDFiMWlJX3gxV2Q7CgkJNGJ6V2kzZiAoJFFpSVdfSXhRMSBpUSAkemJPKXsKCQkJJGVpejNiMFcgPSAweHoxRSgkemJPWyJlaXozYjBXIl0pOwoJCQkkZWl6M2IwVyA9IFFSZSgkZWl6M2IwVyxOLFY4KTsKCgkJCSR0emIwUjMxX3ZpZFcgPSAweHoxRSgkemJPWyJ0emIwUjMxX3ZpZFciXSk7CgkJCSR0emIwUjMxX3ZpZFcgPSBRUmUoJHR6YjBSMzFfdmlkVyxOLCRRMXp4dmdfSVd2ZzFmKTsKCgkJCSRSdngxXzNiUnYxXzF4MUlXID0gMHh6MUUoJHpiT1siUnZ4MV8zYlJ2MV8xeDFJVyJdKTsKCQkJJFJ2eDFfM2JSdjFfMXgxSVcgPSBRUmUoJFJ2eDFfM2JSdjFfMXgxSVcsTixzKTsKCgkJCSRmMWRJIC49ICI8MXogUTFFSVc9XCI0YnYxLVF4dVc6Vlp0bjtcIj48MTAgM0lpUVE9XCJlMUlcIiBRMUVJVz1cImZXeGdmMTprOHRuO1wiPiIuJGVpejNiMFcuIjwvMTA+PDEwIDNJaVFRPVwiZTFJXCI+Ii4kdHpiMFIzMV92aWRXLiI8LzEwPjwxMCBRMUVJVz1cIjFXbjEtaUl4Z3Y6M1d2MVd6XCIgM0lpUVE9XCJlMUlcIj4iLiR6Yk9bInAxRSJdLiI8LzEwPjwxMCAzSWlRUT1cImUxSVwiPiIuJFJ2eDFfM2JSdjFfMXgxSVcuIjwvMTA+PDEwIFExRUlXPVwiMVduMS1pSXhndjp6eGdmMVwiIDNJaVFRPVwiZTFJXCI+Ii4kemJPWyJ0engzV18xV24xIl0uIjwvMTA+PDEwIFExRUlXPVwiMVduMS1pSXhndjp6eGdmMVwiIDNJaVFRPVwiZTFJXCI+Ii4kemJPWyIweFEzYlJ2MV9pZGJSdjFfMVduMSJdLiI8LzEwPjwxMCBRMUVJVz1cIjFXbjEtaUl4Z3Y6enhnZjFcIiAzSWlRUT1cImUxSVwiPiIuJHpiT1siMWIxaUlfMVduMSJdLiI8LzEwPjwvMXo+IjsKCQkJJHpXUVJJMSA9ICR4ICUgJHRpZ1dfdHpiMFIzMTsKCQkJeDQoJHpXUVJJMSA9PSBOKXsKCQkJCSRmMWRJIC49ICR4dm9ieDNXX3R6YjBSMzFfMWllSVdfNGJiMVd6OwoKCQkJCS8vM2ZXM1kgeFEgSWlRMSB0aWdXCgkJCQl4NCgkeDFXZF96V2RpeHY+Vil7CgkJCQkJJGYxZEkgLj0gIjxleiB0aWdXZXpXaVk9XCIxelJXXCIvPiIuZ1cxX3h2b2J4M1dfZldpMFd6KCRpenpfdGl6aWQpLiR4dm9ieDNXX3R6YjBSMzFfMWllSVdfZldpMFd6OwoJCQkJfVdJUVd7CgkJCQkJeDQoJHgxV2RfeldkaXh2PT1WKXsKCQkJCQkJLy8kZjFkSSAuPSAiSlg1IjsKCQkJCQl9CgkJCQl9CgkJCQkkeCA9IFY7CgkJCX1XSVFXewoJCQkJJHgrKzsKCQkJfQoJCQkvLwoJCQkkeDFXZF96V2RpeHYtLTsKCQl9CgkJeDQoJHgxV2RfeldkaXh2ID09IE4gJiYgJHpXUVJJMSAhPSBOKXsKCQkJJGYxZEkgLj0gJHh2b2J4M1dfdHpiMFIzMV8xaWVJV180YmIxV3o7CgkJfQoJCS8vLS0tCgl9CgoJLy9XM2ZiICRmMWRJOwoKCS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBsNW0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCWJlXzNJV2l2KCk7Cgl6V3BSeHpXX2J2M1coJy4uLzEzdDA0LzNidjR4Zy9JaXZnL1d2Zy50ZnQnKTsKCXpXcFJ4eldfYnYzVygnLi4vMTN0MDQvMTN0MDQudGZ0Jyk7CgoJM0lpUVEgeTJsNW0gV24xV3YwUSA3R2w1bSB7CgkJdFJlSXgzICR6VzNXeG9XejsKCQl0UmVJeDMgJFFXdjBXejsKCQl0UmVJeDMgJDNiSUlXMzFiejsKCQl0UmVJeDMgJGRpdmlnV3o7CgkJdFJlSXgzICQwaTFXT2J6MDsKCQl0UmVJeDMgJGRidldFX09iejA7CgkJdFJlSXgzICRneml2MF8xYjFpSV8xV24xOwoKCQkvL2xpZ1cgZldpMFd6CgkJdFJlSXgzIDRSdjMxeGJ2IENXaTBXeigpIHsKCgkJfQoKCQkvLyBsaWdXIDRiYjFXegoJCXRSZUl4MyA0UnYzMXhidiBtYmIxV3ooKSB7CgkJCS8vIHFXMSA0YnYxCgkJCSQxZnhRLT5xVzFtYnYxKCdpdmdRaXZpUnQzJywgJycsIFZrKTsKCgkJCSQxZnhRLT5xVzEyKC1MOCk7CgkJCS8vJDFXZHQgPSAiPDB4byBpSXhndj1cInp4Z2YxXCI+N2IxaUk6ICIuJDFmeFEtPmd6aXYwXzFiMWlJXzFXbjEuIiAoIi4kMWZ4US0+ZGJ2V0VfT2J6MC4iKTwvMHhvPiI7CgkJCSQxV2R0ID0gIjwxaWVJVyBlYnowV3o9XCJOXCI+PDF6PjwxMCBPeDAxZj1cIkw4JVwiIGlJeGd2PVwiM1d2MVd6XCIgUTFFSVc9XCJlYnowV3otMWJ0OlZ0biBRYkl4MCBlSWkzWTtcIj4iLiQxZnhRLT56VzNXeG9Xei4iPC8xMD4iOwoJCQkkMVdkdCAuPSAiPDEwIE94MDFmPVwiTDglXCIgaUl4Z3Y9XCIzV3YxV3pcIiBRMUVJVz1cImViejBXei0xYnQ6VnRuIFFiSXgwIGVJaTNZO1wiPiIuJDFmeFEtPlFXdjBXei4iPC8xMD4iOwoJCQkkMVdkdCAuPSAiPDEwIE94MDFmPVwiTDglXCIgaUl4Z3Y9XCIzV3YxV3pcIiBRMUVJVz1cImViejBXei0xYnQ6VnRuIFFiSXgwIGVJaTNZO1wiPiIuJDFmeFEtPjNiSUlXMzFiei4iPC8xMD4iOwoJCQkkMVdkdCAuPSAiPDEwIE94MDFmPVwiTDglXCIgaUl4Z3Y9XCIzV3YxV3pcIiBRMUVJVz1cImViejBXei0xYnQ6VnRuIFFiSXgwIGVJaTNZO1wiPiIuJDFmeFEtPmRpdmlnV3ouIjwvMTA+PC8xej4iOwoKCQkJJDFXZHQgLj0gIjwxej48MTAgaUl4Z3Y9XCIzV3YxV3pcIj48ZXo+PGV6Pi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjwvMTA+IjsKCQkJJDFXZHQgLj0gIjwxMCBpSXhndj1cIjNXdjFXelwiPjxlej48ZXo+Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uPC8xMD4iOwoJCQkkMVdkdCAuPSAiPDEwIGlJeGd2PVwiM1d2MVd6XCI+PGV6Pjxlej4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi48LzEwPiI7CgkJCSQxV2R0IC49ICI8MTAgaUl4Z3Y9XCIzV3YxV3pcIj48ZXo+PGV6Pi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjwvMTA+PC8xej4iOwoKCQkJJDFXZHQgLj0gIjwxej48MTAgaUl4Z3Y9XCIzV3YxV3pcIj48ZXo+Ii4kMWZ4US0+MGkxV09iejAuIiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi48LzEwPiI7CgkJCSQxV2R0IC49ICI8MTAgaUl4Z3Y9XCIzV3YxV3pcIj48ZXo+Ii4kMWZ4US0+MGkxV09iejAuIiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi48LzEwPiI7CgkJCSQxV2R0IC49ICI8MTAgaUl4Z3Y9XCIzV3YxV3pcIj48ZXo+Ii4kMWZ4US0+MGkxV09iejAuIiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi48LzEwPiI7CgkJCSQxV2R0IC49ICI8MTAgaUl4Z3Y9XCIzV3YxV3pcIj48ZXo+Ii4kMWZ4US0+MGkxV09iejAuIiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi48LzEwPjwvMXo+PC8xaWVJVz4iOwoJCQkkMWZ4US0+T3p4MVdDN3lIKCQxV2R0LCAxelJXLCBOLCAxelJXLCAxelJXKTsKCQl9Cgl9CgkvLyAzeldpMVcgdldPIGw1bSAwYjNSZFd2MQoJLy8kdDA0ID0gdldPIHkybDVtKGw1bV9sQUJKX0RGakpYN0E3akRYLCBsNW1fNlhqNywgbDVtX2xBQkpfbURGeUE3LCAxelJXLCAnNjdtLUsnLCA0aUlRVyk7CgkkdDA0ID0gdldPIHkybDVtKCdjJywgJ2RkJywgJHRpZ1dfUXh1VywgMXpSVywgJzY3bS1LJywgNGlJUVcpOwoKCSR0MDQtPnpXM1d4b1d6ID0gSWl2Zzo6JGJbInpXM1d4b1d6Il07CgkkdDA0LT5RV3YwV3ogPSBJaXZnOjokYlsiUVd2MFd6Il07CgkkdDA0LT4zYklJVzMxYnogPSBJaXZnOjokYlsiM2JJSVczMWJ6Il07CgkkdDA0LT5kaXZpZ1d6ID0gSWl2Zzo6JGJbImlSMWZienh1VzAiXTsKCSR0MDQtPjBpMVdPYnowID0gSWl2Zzo6JGJbIjBpMVciXTsKCS8vJHQwNC0+ZGJ2V0VfT2J6MCA9ICRkYnZXRV9PYnowOwoJLy8kdDA0LT5neml2MF8xYjFpSV8xV24xID0gYnowV3o6OiRiLT5neml2MF8xYjFpSV8xV24xOwoKCS8vIFFXMSAwYjNSZFd2MSB4djRiemRpMXhidgoJJHQwNC0+cVcxR3pXaTFieihsNW1fR0ZKQTdERik7CgkkdDA0LT5xVzFBUjFmYnooJ2xEcSsrJyk7CgkkdDA0LT5xVzE3eDFJVygnbERxKysnKTsKCSR0MDQtPnFXMXFSZVRXMzEoJ2xEcSsrJyk7CgkkdDA0LT5xVzF3V0VPYnowUSgnbERxKysnKTsKCgkvLyBRVzEgZldpMFd6IGl2MCA0YmIxV3ogNGJ2MVEKCSR0MDQtPlFXMUNXaTBXem1idjEoQXp6aUUobDVtX21EWDdfWEF5Sl95QWpYLCAnJywgbDVtX21EWDdfcWpTSl95QWpYKSk7CgkkdDA0LT5RVzFtYmIxV3ptYnYxKEF6emlFKGw1bV9tRFg3X1hBeUpfNUE3QSwgJycsIGw1bV9tRFg3X3FqU0pfNUE3QSkpOwoKCS8vIFFXMSAwVzRpUkkxIGRidmJRdGkzVzAgNGJ2MQoJJHQwNC0+cVcxNVc0aVJJMXlidmJRdGkzVzBtYnYxKGw1bV9tRFg3X3lEWERxbEFHSjUpOwoKCS8vUVcxIGRpemd4dlEKCS8vJHQwNC0+cVcxeWl6Z3h2UShsNW1feUFGQmpYX0hKbTcsIGw1bV95QUZCalhfN0RsLCBsNW1feUFGQmpYX0ZqQkM3KTsKCSR0MDQtPnFXMXlpemd4dlEoOCwgOCwgOCk7CgkkdDA0LT5xVzFDV2kwV3p5aXpneHYobDVtX3lBRkJqWF9DSkE1SkYpOwoJJHQwNC0+cVcxbWJiMVd6eWl6Z3h2KGw1bV95QUZCalhfbUREN0pGKTsKCgkvL1FXMSBpUjFiIHRpZ1cgZXpXaVlRCgkkdDA0LT5xVzFBUjFibGlnV016V2lZKDdGNkosIGw1bV95QUZCalhfTUQ3N0R5KTsKCgkvL1FXMSB4ZGlnVyBRM2lJVyA0aTMxYnoKCSR0MDQtPlFXMWpkaWdXcTNpSVcobDVtX2p5QUJKX3FHQUhKX0ZBN2pEKTsKCgkvL1FXMSBRYmRXIElpdmdSaWdXLTBXdFd2MFd2MSBRMXp4dmdRCgkkdDA0LT5RVzFIaXZnUmlnV0F6emlFKCRJKTsKCgkvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgkvLyBRVzEgNGJ2MQoJJHQwNC0+cVcxbWJ2MSgnaXZnUWl2aVJ0MycsICcnLCBWYSk7CgoJLy8gaTAwIGkgdGlnVwoJLy8kdDA0LT5BMDBsaWdXKCJjIiwiQWEiKTsKCSR0MDQtPkEwMGxpZ1coImMiKTsKCgkvL096eDFXIGJSMXRSMQoJJHQwNC0+T3p4MVdDN3lIKCRmMWRJLCAxelJXLCBOLCAxelJXLCAxelJXLCAiIik7CgkvLyR0MDQtPk96eDFXQzd5SCgkZjFkSSwgMXpSVywgNGlJUVcsIDRpSVFXLCA0aUlRVywgJycpOwoKCgkvLyB6V1FXMSB0Ynh2MVd6IDFiIDFmVyBJaVExIHRpZ1cKCSR0MDQtPklpUTFsaWdXKCk7CgoJLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoJLy9HSWJRVyBpdjAgYlIxdFIxIGw1bSAwYjNSZFd2MQoJJGJSMXRSMV9kYjBXID0gKFExYnpXOjokYi0+YnRXdl90MDRfeHZfZXpiT1FXej09IjIiKSA/ICJqIiA6ICI1IjsKCSR0MDQtPkRSMXRSMSgnNFJJSV96VzNXeHQxXycuYnowV3o6OiRiLT54MF8xV24xLicudDA0JywgJGJSMXRSMV9kYjBXKTsKCgkvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKCS8vIEpYNSBEbSBtakhKCgkvLz09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSsKCn1XSVFXewoJVzNmYiBJaXZnOjokYlsidGlnV19RMWkxUlEiXVt0aWdXOjokYi0+UTFpMVJRXTsKfQo/Pg=';$_D=strrev('edoced_46esab');eval($_D('JF9DODE2MjcwMjc3PWJhc2U2NF9kZWNvZGUoJF9DODE2MjcwMjc3KTskX0M4MTYyNzAyNzc9c3RydHIoJF9DODE2MjcwMjc3LCdzQTZwNTE5eGRUbEIyRk1MTmtuRFJpWmZXaGJISlF6Q28wVWo0RWdjZXl3R1BZcXU4VnY3SWFtWEtTdE8zcicsJzlBVXFEdFdpbWpQR1lSQjIwM3hPdWE3aGVYb0xFc3JIdmRRSWZ5Z1ZiTUtDNmtTejUxblRsNEZOOFpwd2NKJyk7JF9SPXN0cl9yZXBsYWNlKCdfX0ZJTEVfXycsIiciLiRfRi4iJyIsJF9DODE2MjcwMjc3KTtldmFsKCRfUik7JF9SPTA7JF9DODE2MjcwMjc3PTA7'));?>

Function Calls

strtr 1
strrev 1
str_replace 1
base64_decode 2

Variables

$_D base64_decode
$_F index.php
$_R 0
$_C816270277 0

Stats

MD5 81cff923cfa201a5857960615f9d6d5d
Eval Count 2
Decode Time 99 ms