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__;$_X='Pz48P3BocA0KDQokczR0NTFkcjVzID0gZzV0X2JsMmc0bmYyKCdoMm01Jyk7DQo0Zi..
Decoded Output download
?><?php
$siteadres = get_bloginfo('home');
if( $siteadres == "http://www.fendersleri.com" or $siteadres == "http://fendersleri.com" ){
"Sorun yok domain lisanlıdır";
}else{
die("Net Eğitim Portal Wordpress temasının bu siteye ait bir lisansı bulunmamaktadır, lisans için [email protected] adresine mail atabilirsiniz.");
}
function arimedya_menu_ekle() {
add_menu_page( 'Net Test', 'Net Test', 'activate_plugins', 'arimedya_exam_testing_list', 'arimedya_exam_testing_list', 'dashicons-welcome-learn-more');
add_submenu_page( 'arimedya_exam_testing_list', 'Sınavlar', 'Sınavlar', 'activate_plugins', 'arimedya_exam_testing_list', 'arimedya_exam_testing_list' );
add_submenu_page( 'arimedya_exam_testing_list', 'Sınav Ekle', 'Sınav Ekle', 'activate_plugins', 'arimedya_test_add', 'arimedya_test_add' );
add_submenu_page( 'arimedya_exam_testing_list', 'Soru Ekle', 'Soru Ekle', 'activate_plugins', 'arimedya_question_add', 'arimedya_question_add' );
add_submenu_page( 'arimedya_exam_testing_list', 'Sorular', 'Sorular', 'activate_plugins', 'arimedya_question_list', 'arimedya_question_list' );
add_submenu_page( 'arimedya_exam_testing_list', 'Dışa Aktar', 'Dışa Aktar', 'activate_plugins', 'arimedya_question_export', 'arimedya_question_export' );
add_submenu_page( 'arimedya_exam_testing_list', 'İçe Aktar', 'İçe Aktar', 'activate_plugins', 'arimedya_question_import', 'arimedya_question_import' );
}
if (get_magic_quotes_gpc()) {
function tirnak($veri)
{
$veri = is_array($veri) ? array_map('tirnak', $veri) : stripslashes($veri);
return $veri;
}
$_POST = array_map('tirnak', $_POST);
$_GET = array_map('tirnak', $_GET);
$_COOKIE = array_map('tirnak', $_COOKIE);
$_REQUEST = array_map('tirnak', $_REQUEST);
}
function arimedya_install() {
global $wpdb;
add_option( "arimedya-system-version", "1.0.0" );
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
$table_name = 'arimedya_exam_testing';
$sql = "
CREATE TABLE IF NOT EXISTS $table_name (
`quizID` int(11) NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`quiz_name` varchar(225) NOT NULL,
`quiz_sub_name` varchar(225) NOT NULL,
`excerpt` text NOT NULL,
`excerpt_show` int(1) NOT NULL,
`answer_show` int(1) NOT NULL,
`insertDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`quizID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1
";
dbDelta( $sql );
$table_name = 'arimedya_exam_answers';
$sql = "
CREATE TABLE IF NOT EXISTS $table_name (
`id` int(11) NOT NULL AUTO_INCREMENT,
`quizID` int(11) NOT NULL,
`question` text NOT NULL,
`answers` text NOT NULL,
`correct` varchar(300) CHARACTER SET latin1 NOT NULL,
`q_desc` text NOT NULL,
`page` int(1) NOT NULL,
`insertDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1
";
dbDelta( $sql );
}
function arimedya_uninstall() {
global $wpdb;
$table_name = 'arimedya_exam_testing';
$wpdb->query("DROP TABLE {$table_name}");
$table_name = 'arimedya_exam_answers';
$wpdb->query("DROP TABLE {$table_name}");
}
function arimedya_scripts() {
wp_enqueue_style( 'arimedya_exam_testing',PLUGIN_URL . '/css/arimedya_exam_testing.css', array(), '1.0.0' );
wp_enqueue_style( 'dashicons' );
}
function arimedya_exam_testing_list()
{
display_all_quizzes();
if($_GET["mode"] =="del")
{
$quizID = $_GET["quizID"];
if($quizID){
global $wpdb;
$wpdb->delete( 'arimedya_exam_testing', array('quizID' => $quizID ) );
echo '<div id="message" class="updated"><p>Sınav başarıyla silindi, lütfen sayfa yenileyin.</p></div>';
}
}
if($_GET["mode"] =="test_edit")
{
global $wpdb;
$quizID = $_GET["quizID"];
if($_POST["islem"] == "test_up")
{
$title = trim(strip_tags($_POST["title"]));
$ozet = $_POST["ozet"];
$ozet_aktif = $_POST["ozet_aktif"];
$cevap_aktif = $_POST["cevap_aktif"];
$quiz_name = $_POST["quiz_name"];
$quiz_sub_name = $_POST["quiz_sub_name"];
$test_up = $wpdb->query(
"
UPDATE arimedya_exam_testing
SET title = '".$title."',
excerpt = '".$ozet."',
excerpt_show = '".$ozet_aktif."',
answer_show = '".$cevap_aktif."',
quiz_name = '".$quiz_name."',
quiz_sub_name = '".$quiz_sub_name."'
WHERE quizID = '".$quizID."'"
);
if($test_up)
{
echo $test_ups = '<div id="message" class="updated"><p>Sınav güncellendi!</p></div>';
exit();
}
}
$test_edit = $wpdb->get_row(
"SELECT * FROM arimedya_exam_testing WHERE quizID = '".$quizID."'"
);
?>
<div class="container">
<!-- Row start -->
<div class="row" style="margin-top:30px">
<div class="col-md-12 col-sm-6 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<i class="icon-calendar"></i>
<h3 class="panel-title">Net Test - Sınav Düzenle</h3>
</div>
<div class="panel-body">
<form class="form-horizontal row-border" method="post" action="" id="form" name="form">
<input type="hidden" name="islem" value="test_up" />
<div class="form-group">
<label class="col-md-2 control-label">Sınav Adı:</label>
<div class="col-md-10">
<input type="text" name="title" id="title" class="form-control" value="<?=$test_edit->title?>">
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Başlık/Alt Başlık:</label>
<div class="col-md-10">
<input type="text" name="quiz_name" id="quiz_name" class="form-control" value="<?=$test_edit->quiz_name?>" style="width:450px;float:left">
<input type="text" name="quiz_sub_name" id="quiz_sub_name" class="form-control" value="<?=$test_edit->quiz_sub_name?>" style="width:450px;float:right">
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Özet?</label>
<div class="col-md-10">
<select class="form-control" name="ozet_aktif">
<option value="1"<?php if($test_edit->excerpt_show == 1){echo ' selected';}?>>Aktif</option>
<option value="0"<?php if($test_edit->excerpt_show == 0){echo ' selected';}?>>Pasif</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Cevabı Göster?</label>
<div class="col-md-10">
<select class="form-control" name="cevap_aktif">
<option value="1"<?php if($test_edit->answer_show == 1){echo ' selected';}?>>Aktif</option>
<option value="0"<?php if($test_edit->answer_show == 0){echo ' selected';}?>>Pasif</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Özet</label>
<div class="col-md-10">
<?php
$settings = array( 'wpautop' => true, 'media_buttons' => true, 'tinymce' => true, 'textarea_rows' => 6 );
wp_editor( $test_edit->excerpt, 'ozet',$settings );
?>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label"></label>
<div class="col-md-10">
<button type="submit" class="btn btn-info" onclick="video_ekle();">Güncelle!</button>
</div>
</div>
<span id="sonuc"><?=$sonuc?></span>
</form>
</div>
</div>
</div>
</div>
<!-- Row end -->
<div style="text-align:center"><b>Net Test (Online Quiz Plugin)</b></div>
</div>
<?php
}
}
function arimedya_question_import()
{
global $wpdb;
if($_POST["islem"] =="import")
{
if(!file_exists($_FILES['dosya']['tmp_name']) || !is_uploaded_file($_FILES['dosya']['tmp_name']))
{
echo '<div id="message" class="updated error"><p>Dosya <strong>seçmediniz</strong>.</p></div>';
}else{
$go = file_get_contents($_FILES["dosya"]["tmp_name"]);
preg_match('@<exam>(.*?)</exam>@si', $go, $s);
preg_match('@<sorular>(.*?)</sorular>@si', $go, $s2);
preg_match('@<title>(.*?)</title>@si', $s[1], $title);
preg_match('@<quiz_name>(.*?)</quiz_name>@si', $s[1], $quiz_name);
preg_match('@<quiz_sub_name>(.*?)</quiz_sub_name>@si', $s[1], $quiz_sub_name);
preg_match('@<excerpt>(.*?)</excerpt>@si', $s[1], $excerpt);
preg_match('@<excerpt_show>(.*?)</excerpt_show>@si', $s[1], $excerpt_show);
preg_match('@<answer_show>(.*?)</answer_show>@si', $s[1], $answer_show);
preg_match('@<insertDate>(.*?)</insertDate>@si', $s[1], $insertDate);
$title = trim(($title[1]));
$quiz_name = trim(($quiz_name[1]));
$quiz_sub_name = trim(($quiz_sub_name[1]));
$excerpt = trim(($excerpt[1]));
$excerpt_show = trim(($excerpt_show[1]));
$answer_show = trim(($answer_show[1]));
$insertDate = trim(($insertDate[1]));
$excerpt = str_replace("
",'</br>',trim($excerpt));
if(!empty($title))
{
$wpdb->insert('arimedya_exam_testing',
array(
'title' => $title,
'quiz_name' => $quiz_name,
'quiz_sub_name' => $quiz_sub_name,
'excerpt' => $excerpt,
'excerpt_show' => $excerpt_show,
'answer_show' => $answer_show
));
$sinav_id = $wpdb->insert_id;
}
preg_match_all('@<soru>(.*?)</soru>@si', $s2[1], $sorus);
preg_match_all('@<cevap>(.*?)</cevap>@si', $s2[1], $cevaps);
preg_match_all('@<siklar>(.*?)</siklar>@si', $s2[1], $siklars);
preg_match_all('@<aciklama>(.*?)</aciklama>@si', $s2[1], $aciklamas);
preg_match_all('@<sayfa>(.*?)</sayfa>@si', $s2[1], $sayfas);
preg_match_all('@<tarih>(.*?)</tarih>@si', $s2[1], $tarihs);
for($i=0; $i<count($sorus[1]); $i++)
{
$soru = trim(($sorus[1][$i]));
$cevap = trim(($cevaps[1][$i]));
$siklar = trim(strip_tags($siklars[1][$i]));
$aciklama = trim(($aciklamas[1][$i]));
$sayfa = trim(strip_tags($sayfas[1][$i]));
$tarih = trim(strip_tags($tarihs[1][$i]));
$cevap = str_replace("
",'<br>',trim($cevap));
$soru = str_replace("
",'<br>',trim($soru));
if($sinav_id)
{
$wpdb->insert( 'arimedya_exam_answers',
array(
'quizID' => $sinav_id,
'question' => $soru,
'answers' => $cevap,
'correct' => $siklar,
'q_desc' => $aciklama,
'page' => $sayfa,
'insertDate' => $tarih
));
$soru_id = $wpdb->insert_id;
}
}
if($soru_id)
{
$sonuc_im = '<div id="message" class="updated"><p>Başarıyla Eklendi!</p></div>';
}
}
}
?>
<div class="container">
<!-- Row start -->
<div class="row" style="margin-top:30px">
<div class="col-md-12 col-sm-6 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<i class="icon-calendar"></i>
<h3 class="panel-title">Net Test - İçe Aktar</h3>
</div>
<div class="panel-body">
<form class="form-horizontal row-border" method="post" action="" id="form" name="form" enctype="multipart/form-data">
<input type="hidden" name="islem" value="import">
<div class="form-group">
<label class="col-md-2 control-label">Yükle</label>
<div class="col-md-10">
<input type="file" name="dosya" />
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label"></label>
<div class="col-md-10">
<button type="submit" class="btn btn-info">Yükle</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<span id="sonuc"><?=$sonuc_im?></span>
<!-- Row end -->
<div style="text-align:center"><b>Net Test (Online Quiz Plugin)</b></div>
</div>
<?php
}
function arimedya_question_export()
{
global $wpdb;
if($_POST["islem"] == "export")
{
$site_adresi = get_bloginfo('url');
$quizID = $_POST["quizID"];
$soruyum = get_questions($quizID);
$sinavim = $wpdb->get_row(
"SELECT * FROM arimedya_exam_testing WHERE quizID = '".$quizID."'"
);
$exam = '
<exam>
<title>'.$sinavim->title.'</title>
<quiz_name>'.$sinavim->quiz_name.'</quiz_name>
<quiz_sub_name>'.$sinavim->quiz_sub_name.'</quiz_sub_name>
<excerpt>'.$sinavim->excerpt.'</excerpt>
<excerpt_show>'.$sinavim->excerpt_show.'</excerpt_show>
<answer_show>'.$sinavim->answer_show.'</answer_show>
<insertDate>'.$sinavim->insertDate.'</insertDate>
</exam>
';
$sorular = '<sorular>';
foreach($soruyum as $soru)
{
$sorular .= '
<soru>'.$soru->question.'</soru>
<cevap>'.$soru->answers.'</cevap>
<siklar>'.$soru->correct.'</siklar>
<aciklama>'.$soru->q_desc.'</aciklama>
<sayfa>1</sayfa>
<tarih>'.$soru->insertDate.'</tarih>
';
}
$sorular .= "</sorular>";
$print = $exam.$sorular;
$file = '../db-backup-'.time().'.nettest';
$handle = fopen($file,'w+');
fwrite($handle,$print);
fclose($handle);
if($handle)
{
$sonuc_ex = '<div id="message" class="updated"><p><a href="'.$site_adresi.''.str_replace("..","",$file).'">İNDİR</a></p></div>';
}
}
?>
<div class="container">
<!-- Row start -->
<div class="row" style="margin-top:30px">
<div class="col-md-12 col-sm-6 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<i class="icon-calendar"></i>
<h3 class="panel-title">Net Test - Dışa Aktar</h3>
</div>
<div class="panel-body">
<form class="form-horizontal row-border" method="post" action="" id="form" name="form">
<input type="hidden" name="islem" value="export">
<div class="form-group">
<label class="col-md-2 control-label">Sınav Seç</label>
<div class="col-md-10">
<select type="text" name="quizID" id="quizID" class="form-control">
<?php
$quizzes_a = getAllQuiz();
foreach($quizzes_a as $quiz_l)
{
?>
<option value="<?=$quiz_l->quizID?>"><?=$quiz_l->title?></option>
<?php
}
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label"></label>
<div class="col-md-10">
<button type="submit" class="btn btn-info">Tamam</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<span id="sonuc"><?=$sonuc_ex?></span>
<!-- Row end -->
<div style="text-align:center"><b>Net Test (Online Quiz Plugin)</b></div>
</div>
<?php
}
function arimedya_test_add()
{
if($_POST)
{
global $wpdb;
$title = trim(strip_tags($_POST["title"]));
$ozet = $_POST["ozet"];
$ozet_aktif = $_POST["ozet_aktif"];
$cevap_aktif = $_POST["cevap_aktif"];
$quiz_name = $_POST["quiz_name"];
$quiz_sub_name = $_POST["quiz_sub_name"];
$ozet = str_replace("
",'<br>',trim($ozet));
$sonuc = "";
if($title)
{
$wpdb->insert( 'arimedya_exam_testing', array('title' => $title, 'quiz_name' => $quiz_name, 'quiz_sub_name' => $quiz_sub_name, 'excerpt' => $ozet, 'excerpt_show' => $ozet_aktif, 'answer_show' => $cevap_aktif));
$quizID = $wpdb->insert_id;
if($quizID)
{
$sonuc .= "Sınav eklendi!";
}
}else{
$sonuc .= "Lütfen sınav başlığını giriniz.";
}
}
?>
<div class="container">
<!-- Row start -->
<div class="row" style="margin-top:30px">
<div class="col-md-12 col-sm-6 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<i class="icon-calendar"></i>
<h3 class="panel-title">Net Test - Sınav Ekle</h3>
</div>
<div class="panel-body">
<form class="form-horizontal row-border" method="post" action="" id="form" name="form">
<div class="form-group">
<label class="col-md-2 control-label">Sınav Adı:</label>
<div class="col-md-10">
<input type="text" name="title" id="title" class="form-control" placeholder="Sınav Adı">
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Başlık/Alt Başlık:</label>
<div class="col-md-10">
<input type="text" name="quiz_name" id="quiz_name" class="form-control" placeholder="Başlık" style="width:450px;float:left">
<input type="text" name="quiz_sub_name" id="quiz_sub_name" class="form-control" placeholder="Alt Başlık" style="width:450px;float:right">
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Özet?</label>
<div class="col-md-10">
<select class="form-control" name="ozet_aktif">
<option value="1">Aktif</option>
<option value="0">Pasif</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Cevabı Göster?</label>
<div class="col-md-10">
<select class="form-control" name="cevap_aktif">
<option value="1">Aktif</option>
<option value="0">Pasif</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Özet</label>
<div class="col-md-10">
<?php
$settings = array( 'wpautop' => true, 'media_buttons' => true, 'tinymce' => true, 'textarea_rows' => 6 );
wp_editor( '', 'ozet',$settings );
?>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label"></label>
<div class="col-md-10">
<button type="submit" class="btn btn-info" onclick="video_ekle();">Sınav Oluştur</button>
</div>
</div>
<span id="sonuc"><?=$sonuc?></span>
</form>
</div>
</div>
</div>
</div>
<!-- Row end -->
<div style="text-align:center"><b>Net Test (Online Quiz Plugin)</b></div>
</div>
<?php
}
function arimedya_question_list()
{
?>
<div class="container">
<div class="row" style="margin-top:30px">
<div class="col-md-12 col-sm-6 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<i class="icon-calendar"></i>
<h3 class="panel-title">Net Test - Sınav Seç</h3>
</div>
<div class="panel-body">
<form class="form-horizontal row-border" method="POST" action="<?php echo admin_url( 'admin.php?page=arimedya_question_list' ); ?>" id="form" name="form">
<input type="hidden" name="islem" value="sinav_sec" />
<div class="form-group">
<label class="col-md-2 control-label">Sınav:</label>
<div class="col-md-10">
<select type="text" name="quizID" id="quizID" class="form-control">
<?php
$quizzes_a = getAllQuiz();
foreach($quizzes_a as $quiz_l)
{
?>
<option value="<?=$quiz_l->quizID?>"><?=$quiz_l->title?></option>
<?php
}
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label"></label>
<div class="col-md-10">
<button type="submit" class="btn btn-info">Soruları Listele</button>
</div>
</div>
<span id="sonuc"><?=$sonuc?></span>
</form>
</div>
</div>
</div>
</div>
<?php
if($_GET["mode"] =="del_q")
{
$ID = $_GET["ID"];
if($ID){
global $wpdb;
$wpdb->delete('arimedya_exam_answers', array('id' => $ID ) );
echo '<div id="message" class="updated"><p>Soru başarıyla silindi</p></div>';
}
}
if($_GET["mode"] =="edit_q")
{
$ID = $_GET["ID"];
if($ID)
{
global $wpdb;
$edit_q = $wpdb->get_row(
"SELECT * FROM arimedya_exam_answers WHERE id = '".$ID."'"
);
if($_POST){
$question = $_POST["question"];
$question = str_replace("
",'<br>',trim($question));
$q_desc = $_POST["q_desc"];
$cevaplar = join("|||", $_POST["cevaplar"]);
$kontrols = join("|||", $_POST["kontrol"]);
if($question or $q_desc)
{
//'answers' => $cevaplar, 'correct' => $kontrols
$up = $wpdb->query(
"
UPDATE arimedya_exam_answers
SET question = '".$question."', q_desc = '".$q_desc."', answers = '".$cevaplar."', correct = '".$kontrols."'
WHERE id = '".$ID."'"
);
if($up)
{
echo $sonuc_up = '<div id="message" class="updated"><p>Soru güncellendi!</p></div>';
exit();
}
}
}
?>
<div class="row" style="margin-top:30px">
<div class="col-md-12 col-sm-6 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<i class="icon-calendar"></i>
<h3 class="panel-title">Net Test - Soru Düzenle</h3>
</div>
<div class="panel-body" style="background: #fff;">
<form class="form-horizontal row-border" method="post" action="" id="form" name="form">
<input type="hidden" name="islem" value="edit_up"/>
<input type="hidden" name="ID" value="<?=$ID?>"/>
<div class="form-group">
<label class="col-md-2 control-label">Soru</label>
<div class="col-md-10">
<?php
$edit_q->question = stripslashes($edit_q->question);
$settings = array( 'media_buttons' => true, 'tinymce' => true, 'textarea_rows' => 6 );
wp_editor( $edit_q->question, 'question',$settings );
?>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Açıklama</label>
<div class="col-md-10">
<?php
$settings = array( 'media_buttons' => true, 'tinymce' => true, 'textarea_rows' => 6 );
wp_editor( $edit_q->q_desc, 'q_desc',$settings );
?>
</div>
</div>
<!--Bismillah-->
<div class="form-group">
<label class="col-md-2 control-label">Cevaplar</label>
<div class="col-md-10" id="listValue">
<!--<input name="cevaplar[]" type="text" class="form-control">
<select name="kontrol[]" class="form-control">
<option value="0">Yanlış Cevap</option>
<option value="1">Doğru Cevap</option>
</select>
-->
<?php
$bol = explode("|||",$edit_q->answers);
$siks = explode("|||",$edit_q->correct);
for($say = 0; $say<count($bol); $say++)
{
$cevap = $bol[$say];
$sik = $siks[$say];
?>
<span><input name="cevaplar[]" type="text" class="form-control" value="<?=$cevap?>">
<select name="kontrol[]" class="form-control">
<option value="0"<?php if($sik == 0){echo ' selected';}?>>Yanlış Cevap</option>
<option value="1"<?php if($sik == 1){echo ' selected';}?>>Doğru Cevap</option>
</select>
<?php
}
?>
<br><br><a href="#" id="addItem">Ekle</a>
</div>
</div>
<!--Bismillah-->
<div class="form-group">
<label class="col-md-2 control-label"></label>
<div class="col-md-10"><br />
<button type="submit" class="btn btn-info">Sakla</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<?php
}
}
if($_POST["islem"] =="sinav_sec")
{
$quizID = $_POST["quizID"];
$get_questions = get_questions($_POST["quizID"]);
?>
<div class="row" style="margin-top:30px">
<div class="col-md-12 col-sm-6 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<i class="icon-calendar"></i>
<h3 class="panel-title">Net Test - Sorular</h3>
</div>
<?php
$r = 0;
foreach($get_questions as $question)
{
$r++;
if ($r % 2 == 0 ) {$color = "#F5F5F5";}else{$color = '#FFF';}
?>
<div class="panel-body" style="background: <?=$color?>;">
<div class="form-group">
<div class="col-md-10"><?=stripslashes($question->question);?></div>
<label class="col-md-2 control-label"><a title="Delete" href="<?php echo admin_url( 'admin.php?page=arimedya_question_list&mode=del_q&ID=' .$question->id ); ?>"><img class="edit-quiz" src="<?php echo PLUGIN_URL . '/images/del.png'; ?>" /></a>
<a title="Delete" href="<?php echo admin_url( 'admin.php?page=arimedya_question_list&mode=edit_q&ID=' .$question->id ); ?>"><img class="edit-quiz" src="<?php echo PLUGIN_URL . '/images/edit.png'; ?>" /></a></label>
</div>
</div>
<?php
}
?>
</div>
</div>
</div>
<?php
}
echo '</div>';
}
function arimedya_question_add()
{
?>
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script>
<script>
$(window).load(function(){
$(function() {
var scntDiv = $('#listValue');
var i = $('#listValue').size() + 1;
$(document).on('click','#addItem', function() {
$('<span><input name="cevaplar[]" class="form-control" type="text" /><select name="kontrol[]" class="form-control"><option value="0">Yanlış Cevap</option><option value="1">Doğru Cevap</option></select><a id="delItem" href="#">Sil</a><br /></span>').appendTo(scntDiv);
i++;
return false;
});
$(document).on('click','#delItem', function() {
if( i > 2 ) {
$(this).parents('span').remove();
i--;
}
return false;
});
});
});
</script>
<?php
global $wpdb;
if($_POST["islem"] == "soru_gir")
{
$data = $_POST;
$cevaplar = join("|||", $_POST["cevaplar"]);
$kontrols = join("|||", $_POST["kontrol"]);
$quizID = $_POST["quizID_c"];
$q_desc = $_POST["q_desc"];
$page = $_POST["page"]; if(empty($page)){$page = 1;}
$question = $_POST["question"];
$question = str_replace("
",'<br>',trim($question));
$q_desc = str_replace("
",'<br>',trim($q_desc));
if($cevaplar and $kontrols and !empty($quizID))
{
$wpdb->insert( 'arimedya_exam_answers',
array('quizID' => $quizID, 'question' => $question, 'answers' => $cevaplar, 'correct' => $kontrols, 'page' => $page, 'q_desc' => $q_desc));
$answer_id = $wpdb->insert_id;
}else{
$sonuc .= "Boş alan bırakmayınız.";
}
if($answer_id)
{
$sonuc .= "Soru eklendi!";
}
}
?>
<div class="container">
<div class="row" style="margin-top:30px">
<div class="col-md-12 col-sm-6 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<i class="icon-calendar"></i>
<h3 class="panel-title">Net Test - Sınav Seç</h3>
</div>
<div class="panel-body">
<form class="form-horizontal row-border" method="POST" action="" id="form" name="form">
<input type="hidden" name="islem" value="sinav_sec" />
<div class="form-group">
<label class="col-md-2 control-label">Sınav:</label>
<div class="col-md-10">
<select type="text" name="quizID" id="quizID" class="form-control">
<?php
$quizzes_a = getAllQuiz();
foreach($quizzes_a as $quiz_l)
{
?>
<option value="<?=$quiz_l->quizID?>"><?=$quiz_l->title?></option>
<?php
}
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label"></label>
<div class="col-md-10">
<button type="submit" class="btn btn-info">Seç</button>
</div>
</div>
<span id="sonuc"><?=$sonuc?></span>
</form>
</div>
</div>
</div>
</div>
<!-- Row start -->
<?php
if($_POST["islem"] =="sinav_sec")
{
$quizID_c = $_POST["quizID"];
if($quizID_c)
{
$say = $wpdb->get_results("SELECT COUNT(*) as total FROM arimedya_exam_answers WHERE quizID = '".$quizID_c."' " );
$total = $say[0]->total;
if($total < 10)
{
$sayfa = 1;
}elseif($total >=10 and $total < 20)
{
$sayfa = 2;
}elseif($total >= 20 and $total < 30)
{
$sayfa = 3;
}elseif($total >= 30)
{
$sayfa = 4;
}
}
?>
<div class="row" style="margin-top:30px">
<div class="col-md-12 col-sm-6 col-xs-12">
<div class="panel panel-default">
<div class="panel-heading clearfix">
<i class="icon-calendar"></i>
<h3 class="panel-title">Net Test - Soru Ekleme</h3>
</div>
<div class="panel-body">
<form class="form-horizontal row-border" method="post" action="" id="form" name="form">
<input type="hidden" name="islem" value="soru_gir" />
<input type="hidden" name="quizID_c" value="<?=$quizID_c?>" />
<div class="form-group">
<label class="col-md-2 control-label">Soru Sayfa:</label>
<div class="col-md-10">
<select name="page" class="form-control">
<option value="1"<?php if($sayfa ==1){echo " selected";} ?>>1</option>
<option value="2"<?php if($sayfa ==2){echo " selected";} ?>>2</option>
<option value="3"<?php if($sayfa ==3){echo " selected";} ?>>3</option>
<option value="4"<?php if($sayfa ==4){echo " selected";} ?>>4</option>
<option value="5"<?php if($sayfa ==5){echo " selected";} ?>>5</option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Soru</label>
<div class="col-md-10">
<?php
$settings = array( 'media_buttons' => true, 'tinymce' => true, 'textarea_rows' => 6 );
wp_editor( '', 'question',$settings );
?>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Açıklama</label>
<div class="col-md-10">
<?php
$settings = array( 'media_buttons' => true, 'tinymce' => true, 'textarea_rows' => 6 );
wp_editor( '', 'q_desc',$settings );
?>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">Cevaplar</label>
<div class="col-md-10" id="listValue">
<input name="cevaplar[]" type="text" class="form-control">
<select name="kontrol[]" class="form-control">
<option value="0">Yanlış Cevap</option>
<option value="1">Doğru Cevap</option>
</select>
<a href="#" id="addItem">Ekle</a>
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label"></label>
<div class="col-md-10">
<button type="submit" class="btn btn-info">Soruyu Ekle!</button>
</div>
</div>
<span id="sonuc"><?=$sonuc?></span>
</form>
</div>
</div>
</div>
</div>
<?php }?>
<!-- Row end -->
<div style="text-align:center"><b>Net Test (Online Quiz Plugin)</b></div>
</div>
<?php
}
function arimedya_admin_css() {
echo '<link rel="stylesheet" type="text/css" href="' .PLUGIN_URL . '/css/admin.css' . '">';
echo '<link rel="stylesheet" type="text/css" href="' .PLUGIN_URL . '/css/bootstrap.min.css">';
?>
<style>
</style>
<?php
}
function arimedya_admin_js() {
echo '<script type="text/javascript" src="//netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>
';
?>
<?php
}
function get_questions($quizID) {
global $wpdb;
$questions = $wpdb->get_results(
"SELECT * FROM arimedya_exam_answers WHERE quizID = '".$quizID."' order by id ASC"
);
return $questions;
}
function getAllQuiz() {
global $wpdb;
$db_name = 'arimedya_exam_testing';
$quizzes = $wpdb->get_results(
"SELECT `quizID`, `title`, `excerpt_show`, `answer_show`, `insertDate` FROM $db_name order by quizID desc"
);
return $quizzes;
}
function display_all_quizzes(){
?>
<div class="wrap">
<?php
$quizzes = getAllQuiz();
if(count($quizzes) >= 2) {
?>
<h2>Sınavlar</h2>
<div id="message" class="error">
<p>Bu eklentiyi satın aldığınız / teşekkür ederiz. <a href="mailto:[email protected]">[email protected]</a>
</p></div>
<?php
} else {
?>
<h2>Sınavlar <a href="<?php echo admin_url( 'admin.php?page=arimedya_test_add' ); ?>" class="add-new-h2">Sınav Ekle</a></h2>
<?php
}
?>
<?php
if($updateMessage != '') {
echo $updateMessage;
}
?>
<div class="shortcode-note">
<span>[net_test id="X"]</span>
</div>
<table class="widefat">
<thead>
<tr>
<th width="5%">ID</th>
<th>Başlık</th>
<th width="10%">Özet Göster</th>
<th width="10%">Cevap Göster</th>
<th width="15%">Shortcode</th>
<th width="6%">İşlem</th>
</tr>
</thead>
<tfoot>
<tr>
<th>ID</th>
<th>Başlık</th>
<th>Özet Göster</th>
<th>Cevap Göster</th>
<th>Shortcode</th>
<th>İşlem</th>
</tr>
</tfoot>
<tbody>
<?php
if(count($quizzes) == 0) {
?>
<tr>
<td colspan="5">Henüz sınav eklememişsiniz, hemen bir tane ekleyin!</td>
</tr>
<?php
} else {
$cnt = 0;
foreach($quizzes as $quiz) {
$cnt++;
$class = '';
if($cnt%2 == 0) {
$class = 'alternate';
}
?>
<tr class="<?php echo $class; ?>">
<td><?php echo $quiz->quizID; ?></td>
<td><?php echo $quiz->title; ?></td>
<td>
<?php
if ($quiz->excerpt_show == true) {
?>
<img class="edit-quiz" title="Enabled" src="<?php echo PLUGIN_URL . '/images/enable.png'; ?>" />
<?php
} else {
?>
<img class="edit-quiz" title="Disabled" src="<?php echo PLUGIN_URL . '/images/disable.png'; ?>" />
<?php
}
?>
</td>
<td>
<?php
if ($quiz->answer_show == true) {
?>
<img class="edit-quiz" title="Enabled" src="<?php echo PLUGIN_URL . '/images/enable.png'; ?>" />
<?php
} else {
?>
<img class="edit-quiz" title="Disabled" src="<?php echo PLUGIN_URL . '/images/disable.png'; ?>" />
<?php
}
?>
</td>
<td>[net_test id="<?=$quiz->quizID?>"]</a>
</td>
<td>
<a title="Delete" href="<?php echo admin_url( 'admin.php?page=arimedya_exam_testing_list&mode=del&quizID=' .$quiz->quizID ); ?>"><img class="edit-quiz" src="<?php echo PLUGIN_URL . '/images/del.png'; ?>" /></a>
<a title="Delete" href="<?php echo admin_url( 'admin.php?page=arimedya_exam_testing_list&mode=test_edit&quizID=' .$quiz->quizID ); ?>"><img class="edit-quiz" src="<?php echo PLUGIN_URL . '/images/edit.png'; ?>" /></a>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
<?php
}
?>
Did this file decode correctly?
Original Code
<?php $_F=__FILE__;$_X='Pz48P3BocA0KDQokczR0NTFkcjVzID0gZzV0X2JsMmc0bmYyKCdoMm01Jyk7DQo0ZiggJHM0dDUxZHI1cyA9PSAiaHR0cDovL3d3dy5mNW5kNXJzbDVyNC5jMm0iIDJyICRzNHQ1MWRyNXMgPT0gImh0dHA6Ly9mNW5kNXJzbDVyNC5jMm0iICApew0KICJTMnIzbiB5MmsgZDJtMTRuIGw0czFubCYjbzBpO2QmI28waTtyIjsNCn01bHM1ew0KIGQ0NSgiTjV0IEUmI2E4Nzs0dDRtIFAycnQxbCBXMnJkcHI1c3MgdDVtMXMmI28waTtuJiNvMGk7biBiMyBzNHQ1eTUgMTR0IGI0ciBsNHMxbnMmI28waTsgYjNsM25tMW0xa3QxZCYjbzBpO3IsIGw0czFucyA0JiNhbzY7NG4gbjV0MjFmLmMybUBnbTE0bC5jMm0gMWRyNXM0bjUgbTE0bCAxdDFiNGw0cnM0bjR6LiIpOw0KIH0NCg0KZjNuY3Q0Mm4gMXI0bTVkeTFfbTVuM181a2w1KCkgew0KCTFkZF9tNW4zX3AxZzUoICdONXQgVDVzdCcsICdONXQgVDVzdCcsICcxY3Q0djF0NV9wbDNnNG5zJywgJzFyNG01ZHkxXzV4MW1fdDVzdDRuZ19sNHN0JywgICcxcjRtNWR5MV81eDFtX3Q1c3Q0bmdfbDRzdCcsICdkMXNoNGMybnMtdzVsYzJtNS1sNTFybi1tMnI1Jyk7DQoJMWRkX3MzYm01bjNfcDFnNSggJzFyNG01ZHkxXzV4MW1fdDVzdDRuZ19sNHN0JywgJ1MmI28waTtuMXZsMXInLCAnUyYjbzBpO24xdmwxcicsICcxY3Q0djF0NV9wbDNnNG5zJywgJzFyNG01ZHkxXzV4MW1fdDVzdDRuZ19sNHN0JywgJzFyNG01ZHkxXzV4MW1fdDVzdDRuZ19sNHN0JyApOw0KCTFkZF9zM2JtNW4zX3AxZzUoICcxcjRtNWR5MV81eDFtX3Q1c3Q0bmdfbDRzdCcsICdTJiNvMGk7bjF2IEVrbDUnLCAnUyYjbzBpO24xdiBFa2w1JywgJzFjdDR2MXQ1X3BsM2c0bnMnLCAnMXI0bTVkeTFfdDVzdF8xZGQnLCAnMXI0bTVkeTFfdDVzdF8xZGQnICk7DQoJMWRkX3MzYm01bjNfcDFnNSggJzFyNG01ZHkxXzV4MW1fdDVzdDRuZ19sNHN0JywgJ1MycjMgRWtsNScsICdTMnIzIEVrbDUnLCAnMWN0NHYxdDVfcGwzZzRucycsICcxcjRtNWR5MV9xMzVzdDQybl8xZGQnLCAnMXI0bTVkeTFfcTM1c3Q0Mm5fMWRkJyApOw0KCTFkZF9zM2JtNW4zX3AxZzUoICcxcjRtNWR5MV81eDFtX3Q1c3Q0bmdfbDRzdCcsICdTMnIzbDFyJywgJ1MycjNsMXInLCAnMWN0NHYxdDVfcGwzZzRucycsICcxcjRtNWR5MV9xMzVzdDQybl9sNHN0JywgJzFyNG01ZHkxX3EzNXN0NDJuX2w0c3QnICk7DQoJMWRkX3MzYm01bjNfcDFnNSggJzFyNG01ZHkxXzV4MW1fdDVzdDRuZ19sNHN0JywgJ0QmI28waTsmI29pNjsxIEFrdDFyJywgJ0QmI28waTsmI29pNjsxIEFrdDFyJywgJzFjdDR2MXQ1X3BsM2c0bnMnLCAnMXI0bTVkeTFfcTM1c3Q0Mm5fNXhwMnJ0JywgJzFyNG01ZHkxX3EzNXN0NDJuXzV4cDJydCcgKTsNCgkxZGRfczNibTVuM19wMWc1KCAnMXI0bTVkeTFfNXgxbV90NXN0NG5nX2w0c3QnLCAnJiNvMHU7JiNhbzY7NSBBa3QxcicsICcmI28wdTsmI2FvNjs1IEFrdDFyJywgJzFjdDR2MXQ1X3BsM2c0bnMnLCAnMXI0bTVkeTFfcTM1c3Q0Mm5fNG1wMnJ0JywgJzFyNG01ZHkxX3EzNXN0NDJuXzRtcDJydCcgKTsNCn0NCg0KNGYgKGc1dF9tMWc0Y19xMzJ0NXNfZ3BjKCkpIHsNCg0KICAgIGYzbmN0NDJuIHQ0cm4xaygkdjVyNCkNCg0KICAgIHsNCg0KICAgICAgICAkdjVyNCA9IDRzXzFycjF5KCR2NXI0KSA/IDFycjF5X20xcCgndDRybjFrJywgJHY1cjQpIDogc3RyNHBzbDFzaDVzKCR2NXI0KTsNCg0KICAgICAgICByNXQzcm4gJHY1cjQ7DQoNCiAgICB9DQoNCiAgICAkX1BPU1QgPSAxcnIxeV9tMXAoJ3Q0cm4xaycsICRfUE9TVCk7DQoNCiAgICAkX0dFVCA9IDFycjF5X20xcCgndDRybjFrJywgJF9HRVQpOw0KDQogICAgJF9DT09LSUUgPSAxcnIxeV9tMXAoJ3Q0cm4xaycsICRfQ09PS0lFKTsNCg0KICAgICRfUkVRVUVTVCA9IDFycjF5X20xcCgndDRybjFrJywgJF9SRVFVRVNUKTsNCg0KfQ0KDQpmM25jdDQybiAxcjRtNWR5MV80bnN0MWxsKCkgew0KDQoJZ2wyYjFsICR3cGRiOw0KDQoJMWRkXzJwdDQybiggIjFyNG01ZHkxLXN5c3Q1bS12NXJzNDJuIiwgIjYuMC4wIiApOwkNCg0KCXI1cTM0cjVfMm5jNSggQUJTUEFUSCAuICd3cC0xZG00bi80bmNsM2Q1cy8zcGdyMWQ1LnBocCcgKTsJDQoNCgkkdDFibDVfbjFtNSA9ICcxcjRtNWR5MV81eDFtX3Q1c3Q0bmcnOw0KDQoJJHNxbCA9ICINCg0KQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgJHQxYmw1X24xbTUgKA0KDQogIGBxMzR6SURgIDRudCg2NikgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQoNCiAgYHQ0dGw1YCB2MXJjaDFyKGFpaSkgTk9UIE5VTEwsDQoNCiAgYHEzNHpfbjFtNWAgdjFyY2gxcihhYWkpIE5PVCBOVUxMLA0KDQogIGBxMzR6X3MzYl9uMW01YCB2MXJjaDFyKGFhaSkgTk9UIE5VTEwsDQoNCiAgYDV4YzVycHRgIHQ1eHQgTk9UIE5VTEwsDQoNCiAgYDV4YzVycHRfc2gyd2AgNG50KDYpIE5PVCBOVUxMLA0KDQogIGAxbnN3NXJfc2gyd2AgNG50KDYpIE5PVCBOVUxMLA0KDQogIGA0bnM1cnREMXQ1YCB0NG01c3QxbXAgTk9UIE5VTEwgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwNCg0KICBQUklNQVJZIEtFWSAoYHEzNHpJRGApDQoNCikgRU5HSU5FPUlubjJEQiAgREVGQVVMVCBDSEFSU0VUPTN0ZjggQVVUT19JTkNSRU1FTlQ9NiANCg0KCSI7DQoNCglkYkQ1bHQxKCAkc3FsICk7CQ0KDQoJJHQxYmw1X24xbTUgPSAnMXI0bTVkeTFfNXgxbV8xbnN3NXJzJzsNCg0KCSRzcWwgPSAiDQoNCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTICR0MWJsNV9uMW01ICgNCg0KICBgNGRgIDRudCg2NikgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsDQoNCiAgYHEzNHpJRGAgNG50KDY2KSBOT1QgTlVMTCwNCg0KICBgcTM1c3Q0Mm5gIHQ1eHQgTk9UIE5VTEwsDQoNCiAgYDFuc3c1cnNgIHQ1eHQgTk9UIE5VTEwsDQoNCiAgYGMycnI1Y3RgIHYxcmNoMXIobzAwKSBDSEFSQUNURVIgU0VUIGwxdDRuNiBOT1QgTlVMTCwNCg0KICBgcV9kNXNjYCB0NXh0IE5PVCBOVUxMLA0KDQogIGBwMWc1YCA0bnQoNikgTk9UIE5VTEwsDQoNCiAgYDRuczVydEQxdDVgIHQ0bTVzdDFtcCBOT1QgTlVMTCBERUZBVUxUIENVUlJFTlRfVElNRVNUQU1QLA0KDQogIFBSSU1BUlkgS0VZIChgNGRgKQ0KDQopIEVOR0lORT1Jbm4yREIgIERFRkFVTFQgQ0hBUlNFVD0zdGY4IEFVVE9fSU5DUkVNRU5UPTYgDQoNCgkiOw0KDQoNCg0KCWRiRDVsdDEoICRzcWwgKTsNCg0KDQoNCn0NCg0KDQoNCmYzbmN0NDJuIDFyNG01ZHkxXzNuNG5zdDFsbCgpIHsNCg0KCWdsMmIxbCAkd3BkYjsNCg0KDQoNCgkkdDFibDVfbjFtNSA9ICcxcjRtNWR5MV81eDFtX3Q1c3Q0bmcnOw0KDQoJJHdwZGItPnEzNXJ5KCJEUk9QIFRBQkxFIHskdDFibDVfbjFtNX0iKTsNCg0KCSR0MWJsNV9uMW01ID0gJzFyNG01ZHkxXzV4MW1fMW5zdzVycyc7DQoNCgkkd3BkYi0+cTM1cnkoIkRST1AgVEFCTEUgeyR0MWJsNV9uMW01fSIpOw0KDQp9DQoNCg0KDQpmM25jdDQybiAxcjRtNWR5MV9zY3I0cHRzKCkgew0KDQoJd3BfNW5xMzUzNV9zdHlsNSggJzFyNG01ZHkxXzV4MW1fdDVzdDRuZycsUExVR0lOX1VSTCAuICcvY3NzLzFyNG01ZHkxXzV4MW1fdDVzdDRuZy5jc3MnLCAxcnIxeSgpLCAnNi4wLjAnICk7DQoNCgl3cF81bnEzNTM1X3N0eWw1KCAnZDFzaDRjMm5zJyApOw0KDQp9DQoNCg0KDQpmM25jdDQybiAxcjRtNWR5MV81eDFtX3Q1c3Q0bmdfbDRzdCgpDQoNCnsNCg0KCWQ0c3BsMXlfMWxsX3EzNHp6NXMoKTsNCg0KCTRmKCRfR0VUWyJtMmQ1Il0gPT0iZDVsIikNCg0KCXsNCg0KCQkkcTM0eklEID0gJF9HRVRbInEzNHpJRCJdOw0KDQoJCTRmKCRxMzR6SUQpew0KDQoJCQlnbDJiMWwgJHdwZGI7DQoNCgkJCSR3cGRiLT5kNWw1dDUoICcxcjRtNWR5MV81eDFtX3Q1c3Q0bmcnLCAxcnIxeSgncTM0eklEJyA9PiAkcTM0eklEICkgKTsNCg0KCQkJNWNoMiAnPGQ0diA0ZD0ibTVzczFnNSIgY2wxc3M9IjNwZDF0NWQiPjxwPlMmI28waTtuMXYgYjEmI29pNjsxciYjbzBpO3lsMSBzNGw0bmQ0LCBsJiNhaWE7dGY1biBzMXlmMSB5NW40bDV5NG4uPC9wPjwvZDR2Pic7DQoNCgkJfQ0KDQoJfQ0KDQoJNGYoJF9HRVRbIm0yZDUiXSA9PSJ0NXN0XzVkNHQiKQ0KDQoJew0KDQoJCWdsMmIxbCAkd3BkYjsNCg0KCQkkcTM0eklEID0gJF9HRVRbInEzNHpJRCJdOw0KDQoJCTRmKCRfUE9TVFsiNHNsNW0iXSA9PSAidDVzdF8zcCIpDQoNCgkJew0KDQoJCQkJCSR0NHRsNSAJCQk9IHRyNG0oc3RyNHBfdDFncygkX1BPU1RbInQ0dGw1Il0pKTsNCg0KCQkJCQkkMno1dCAJCQk9ICRfUE9TVFsiMno1dCJdOw0KDQoJCQkJCSQyejV0XzFrdDRmIAk9ICRfUE9TVFsiMno1dF8xa3Q0ZiJdOw0KDQoJCQkJCSRjNXYxcF8xa3Q0ZiAJPSAkX1BPU1RbImM1djFwXzFrdDRmIl07DQoNCgkJCQkJJHEzNHpfbjFtNSAgCT0gJF9QT1NUWyJxMzR6X24xbTUiXTsNCg0KCQkJCQkkcTM0el9zM2JfbjFtNSAgPSAkX1BPU1RbInEzNHpfczNiX24xbTUiXTsJCQkNCg0KCQkJCQkkdDVzdF8zcCAgPSAkd3BkYi0+cTM1cnkoDQoNCgkJCQkJCSINCg0KCQkJCQkJVVBEQVRFIDFyNG01ZHkxXzV4MW1fdDVzdDRuZw0KDQoJCQkJCQlTRVQgdDR0bDUgPSAnIi4kdDR0bDUuIicsIA0KDQoJCQkJCQk1eGM1cnB0ID0gJyIuJDJ6NXQuIicsDQoNCgkJCQkJCTV4YzVycHRfc2gydyA9ICciLiQyejV0XzFrdDRmLiInLA0KDQoJCQkJCQkxbnN3NXJfc2gydyA9ICciLiRjNXYxcF8xa3Q0Zi4iJywNCg0KCQkJCQkJcTM0el9uMW01ID0gJyIuJHEzNHpfbjFtNS4iJywNCg0KCQkJCQkJcTM0el9zM2JfbjFtNSA9ICciLiRxMzR6X3MzYl9uMW01LiInDQoNCgkJCQkJCVdIRVJFIHEzNHpJRCA9ICciLiRxMzR6SUQuIiciDQoNCgkJCQkJKTsNCg0KCQkJCQk0ZigkdDVzdF8zcCkNCg0KCQkJCQl7DQoNCgkJCQkJCTVjaDIgJHQ1c3RfM3BzID0gJzxkNHYgNGQ9Im01c3MxZzUiIGNsMXNzPSIzcGQxdDVkIj48cD5TJiNvMGk7bjF2IGcmI2FpYTtuYzVsbDVuZDQhPC9wPjwvZDR2Pic7DQoNCgkJCQkJCTV4NHQoKTsNCg0KCQkJCQl9DQoNCgkJfQ0KDQoJCQ0KDQoJCQ0KDQoJCSR0NXN0XzVkNHQgPSAJCQkkd3BkYi0+ZzV0X3IydyggDQoNCgkJCQkiU0VMRUNUICogRlJPTSAxcjRtNWR5MV81eDFtX3Q1c3Q0bmcgV0hFUkUgcTM0eklEID0gJyIuJHEzNHpJRC4iJyINCg0KCQkJKTsNCg0KCQk/Pg0KDQogPGQ0diBjbDFzcz0iYzJudDE0bjVyIj4NCg0KICA8IS0tIFIydyBzdDFydCAtLT4NCg0KICA8ZDR2IGNsMXNzPSJyMnciIHN0eWw1PSJtMXJnNG4tdDJwOm8wcHgiPg0KDQogICAgPGQ0diBjbDFzcz0iYzJsLW1kLTZhIGMybC1zbS1lIGMybC14cy02YSI+DQoNCiAgICAgIDxkNHYgY2wxc3M9InAxbjVsIHAxbjVsLWQ1ZjEzbHQiPg0KDQogICAgICAgIDxkNHYgY2wxc3M9InAxbjVsLWg1MWQ0bmcgY2w1MXJmNHgiPg0KDQogICAgICAgICAgPDQgY2wxc3M9IjRjMm4tYzFsNW5kMXIiPjwvND4NCg0KICAgICAgICAgIDxobyBjbDFzcz0icDFuNWwtdDR0bDUiPk41dCBUNXN0IC0gUyYjbzBpO24xdiBEJiNhaWE7ejVubDU8L2hvPg0KDQogICAgICAgIDwvZDR2Pg0KDQogICAgICAgDQoNCiAgICAgICAgPGQ0diBjbDFzcz0icDFuNWwtYjJkeSI+DQoNCgkJICA8ZjJybSBjbDFzcz0iZjJybS1oMnI0ejJudDFsIHIydy1iMnJkNXIiIG01dGgyZD0icDJzdCIgMWN0NDJuPSIiICA0ZD0iZjJybSIgbjFtNT0iZjJybSI+DQoNCgkJICA8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSI0c2w1bSIgdjFsMzU9InQ1c3RfM3AiIC8+DQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQogICAgICAgICAgICAgIDxsMWI1bCBjbDFzcz0iYzJsLW1kLWEgYzJudHIybC1sMWI1bCI+UyYjbzBpO24xdiBBZCYjbzBpOzo8L2wxYjVsPg0KDQogICAgICAgICAgICAgIDxkNHYgY2wxc3M9ImMybC1tZC02MCI+DQoNCiAgICAgICAgICAgICAgICA8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT0idDR0bDUiIDRkPSJ0NHRsNSIgY2wxc3M9ImYycm0tYzJudHIybCIgdjFsMzU9Ijw/PSR0NXN0XzVkNHQtPnQ0dGw1Pz4iPg0KDQogICAgICAgICAgICAgIDwvZDR2Pg0KDQogICAgICAgICAgICA8L2Q0dj4NCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCiAgICAgICAgICAgICAgPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5CMSYjb2k2O2wmI28waTtrL0FsdCBCMSYjb2k2O2wmI28waTtrOjwvbDFiNWw+DQoNCiAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iYzJsLW1kLTYwIj4NCg0KICAgICAgICAgICAgICAgIDw0bnAzdCB0eXA1PSJ0NXh0IiBuMW01PSJxMzR6X24xbTUiIDRkPSJxMzR6X24xbTUiIGNsMXNzPSJmMnJtLWMybnRyMmwiIHYxbDM1PSI8Pz0kdDVzdF81ZDR0LT5xMzR6X24xbTU/PiIgc3R5bDU9Inc0ZHRoOnVpMHB4O2ZsMjF0Omw1ZnQiPg0KDQoJCQkJPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9InEzNHpfczNiX24xbTUiIDRkPSJxMzR6X3MzYl9uMW01IiBjbDFzcz0iZjJybS1jMm50cjJsIiB2MWwzNT0iPD89JHQ1c3RfNWQ0dC0+cTM0el9zM2JfbjFtNT8+IiBzdHlsNT0idzRkdGg6dWkwcHg7ZmwyMXQ6cjRnaHQiPg0KDQogICAgICAgICAgICAgIDwvZDR2Pg0KDQogICAgICAgICAgICA8L2Q0dj4JCQkNCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCiAgICAgICAgICAgICAgPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj4mI2E2dTt6NXQ/PC9sMWI1bD4NCg0KICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJjMmwtbWQtNjAiPg0KDQogICAgICAgICAgICAgICAgPHM1bDVjdCBjbDFzcz0iZjJybS1jMm50cjJsIiBuMW01PSIyejV0XzFrdDRmIj4NCg0KCQkJCQk8MnB0NDJuIHYxbDM1PSI2Ijw/cGhwIDRmKCR0NXN0XzVkNHQtPjV4YzVycHRfc2gydyA9PSA2KXs1Y2gyICcgczVsNWN0NWQnO30/Pj5Ba3Q0ZjwvMnB0NDJuPg0KDQoJCQkJCTwycHQ0Mm4gdjFsMzU9IjAiPD9waHAgNGYoJHQ1c3RfNWQ0dC0+NXhjNXJwdF9zaDJ3ID09IDApezVjaDIgJyBzNWw1Y3Q1ZCc7fT8+PlAxczRmPC8ycHQ0Mm4+DQoNCgkJCQk8L3M1bDVjdD4NCg0KICAgICAgICAgICAgICA8L2Q0dj4NCg0KICAgICAgICAgICAgPC9kNHY+DQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQogICAgICAgICAgICAgIDxsMWI1bCBjbDFzcz0iYzJsLW1kLWEgYzJudHIybC1sMWI1bCI+QzV2MWImI28waTsgRyYjYXVlO3N0NXI/PC9sMWI1bD4NCg0KICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJjMmwtbWQtNjAiPg0KDQogICAgICAgICAgICAgICAgPHM1bDVjdCBjbDFzcz0iZjJybS1jMm50cjJsIiBuMW01PSJjNXYxcF8xa3Q0ZiI+DQoNCgkJCQkJPDJwdDQybiB2MWwzNT0iNiI8P3BocCA0ZigkdDVzdF81ZDR0LT4xbnN3NXJfc2gydyA9PSA2KXs1Y2gyICcgczVsNWN0NWQnO30/Pj5Ba3Q0ZjwvMnB0NDJuPg0KDQoJCQkJCTwycHQ0Mm4gdjFsMzU9IjAiPD9waHAgNGYoJHQ1c3RfNWQ0dC0+MW5zdzVyX3NoMncgPT0gMCl7NWNoMiAnIHM1bDVjdDVkJzt9Pz4+UDFzNGY8LzJwdDQybj4NCg0KCQkJCTwvczVsNWN0Pg0KDQogICAgICAgICAgICAgIDwvZDR2Pg0KDQogICAgICAgICAgICA8L2Q0dj4JDQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQogICAgICAgICAgICAgIDxsMWI1bCBjbDFzcz0iYzJsLW1kLWEgYzJudHIybC1sMWI1bCI+JiNhNnU7ejV0PC9sMWI1bD4NCg0KICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJjMmwtbWQtNjAiPg0KDQogICAgICAgICAgICAgICAgPD9waHAgDQoNCgkJCQkJCQkkczV0dDRuZ3MgPSAxcnIxeSggJ3dwMTN0MnAnID0+IHRyMzUsICdtNWQ0MV9iM3R0Mm5zJyA9PiB0cjM1LCAndDRueW1jNScgPT4gdHIzNSwgJ3Q1eHQxcjUxX3Iyd3MnID0+IGUgKTsNCg0KCQkJCQkJCXdwXzVkNHQyciggJHQ1c3RfNWQ0dC0+NXhjNXJwdCwgJzJ6NXQnLCRzNXR0NG5ncyApOyANCg0KCQkJCT8+DQoNCiAgICAgICAgICAgICAgPC9kNHY+DQoNCiAgICAgICAgICAgIDwvZDR2PgkJCQkNCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCgkJCQk8bDFiNWwgY2wxc3M9ImMybC1tZC1hIGMybnRyMmwtbDFiNWwiPjwvbDFiNWw+DQoNCgkJCQk8ZDR2IGNsMXNzPSJjMmwtbWQtNjAiPg0KDQoJCQkJCTxiM3R0Mm4gdHlwNT0iczNibTR0IiBjbDFzcz0iYnRuIGJ0bi00bmYyIiAybmNsNGNrPSJ2NGQ1Ml81a2w1KCk7Ij5HJiNhaWE7bmM1bGw1ITwvYjN0dDJuPg0KDQoJCQkJPC9kNHY+DQoNCgkJCTwvZDR2Pg0KDQoJCQk8c3AxbiA0ZD0iczJuM2MiPjw/PSRzMm4zYz8+PC9zcDFuPg0KDQogICAgICAgICAgPC9mMnJtPg0KDQogICAgICAgIDwvZDR2Pg0KDQogICAgICA8L2Q0dj4NCg0KICAgIDwvZDR2Pg0KDQogIDwvZDR2Pg0KDQogIDwhLS0gUjJ3IDVuZCAtLT4NCg0KPGQ0diBzdHlsNT0idDV4dC0xbDRnbjpjNW50NXIiPjxiPk41dCBUNXN0IChPbmw0bjUgUTM0eiBQbDNnNG4pPC9iPjwvZDR2Pg0KDQo8L2Q0dj4JCQ0KDQoJCTw/cGhwDQoNCgl9DQoNCn0NCg0KZjNuY3Q0Mm4gMXI0bTVkeTFfcTM1c3Q0Mm5fNG1wMnJ0KCkNCg0Kew0KDQoJZ2wyYjFsICR3cGRiOw0KDQoJNGYoJF9QT1NUWyI0c2w1bSJdID09IjRtcDJydCIpDQoNCgl7DQoNCgkJDQoNCgkJNGYoIWY0bDVfNXg0c3RzKCRfRklMRVNbJ2Qyc3kxJ11bJ3RtcF9uMW01J10pIHx8ICE0c18zcGwyMWQ1ZF9mNGw1KCRfRklMRVNbJ2Qyc3kxJ11bJ3RtcF9uMW01J10pKSANCg0KCQl7DQoNCgkJCTVjaDIgJzxkNHYgNGQ9Im01c3MxZzUiIGNsMXNzPSIzcGQxdDVkIDVycjJyIj48cD5EMnN5MSA8c3RyMm5nPnM1JiNhbzY7bTVkNG40ejwvc3RyMm5nPi48L3A+PC9kNHY+JzsNCg0KCQl9NWxzNXsNCg0KCQkJJGcyID0gZjRsNV9nNXRfYzJudDVudHMoJF9GSUxFU1siZDJzeTEiXVsidG1wX24xbTUiXSk7DQoNCgkJCXByNWdfbTF0Y2goJ0A8NXgxbT4oLio/KTwvNXgxbT5AczQnLCAkZzIsICRzKTsNCg0KCQkJcHI1Z19tMXRjaCgnQDxzMnIzbDFyPiguKj8pPC9zMnIzbDFyPkBzNCcsICRnMiwgJHNhKTsNCg0KCQkJcHI1Z19tMXRjaCgnQDx0NHRsNT4oLio/KTwvdDR0bDU+QHM0JywgJHNbNl0sICR0NHRsNSk7DQoNCgkJCXByNWdfbTF0Y2goJ0A8cTM0el9uMW01PiguKj8pPC9xMzR6X24xbTU+QHM0JywgJHNbNl0sICRxMzR6X24xbTUpOw0KDQoJCQlwcjVnX20xdGNoKCdAPHEzNHpfczNiX24xbTU+KC4qPyk8L3EzNHpfczNiX24xbTU+QHM0JywgJHNbNl0sICRxMzR6X3MzYl9uMW01KTsNCg0KCQkJcHI1Z19tMXRjaCgnQDw1eGM1cnB0PiguKj8pPC81eGM1cnB0PkBzNCcsICRzWzZdLCAkNXhjNXJwdCk7DQoNCgkJCXByNWdfbTF0Y2goJ0A8NXhjNXJwdF9zaDJ3PiguKj8pPC81eGM1cnB0X3NoMnc+QHM0JywgJHNbNl0sICQ1eGM1cnB0X3NoMncpOw0KDQoJCQlwcjVnX20xdGNoKCdAPDFuc3c1cl9zaDJ3PiguKj8pPC8xbnN3NXJfc2gydz5AczQnLCAkc1s2XSwgJDFuc3c1cl9zaDJ3KTsNCg0KCQkJcHI1Z19tMXRjaCgnQDw0bnM1cnREMXQ1PiguKj8pPC80bnM1cnREMXQ1PkBzNCcsICRzWzZdLCAkNG5zNXJ0RDF0NSk7DQoNCgkJCSR0NHRsNSA9IHRyNG0oKCR0NHRsNVs2XSkpOw0KDQoJCQkkcTM0el9uMW01ID0gdHI0bSgoJHEzNHpfbjFtNVs2XSkpOw0KDQoJCQkkcTM0el9zM2JfbjFtNSA9IHRyNG0oKCRxMzR6X3MzYl9uMW01WzZdKSk7DQoNCgkJCSQ1eGM1cnB0ID0gdHI0bSgoJDV4YzVycHRbNl0pKTsNCg0KCQkJJDV4YzVycHRfc2gydyA9IHRyNG0oKCQ1eGM1cnB0X3NoMndbNl0pKTsNCg0KCQkJJDFuc3c1cl9zaDJ3ID0gdHI0bSgoJDFuc3c1cl9zaDJ3WzZdKSk7DQoNCgkJCSQ0bnM1cnREMXQ1ID0gdHI0bSgoJDRuczVydEQxdDVbNl0pKTsNCg0KCQkJJDV4YzVycHQgCT0gc3RyX3I1cGwxYzUoIlxyXG4iLCc8L2JyPicsdHI0bSgkNXhjNXJwdCkpOw0KDQoNCg0KCQkJNGYoITVtcHR5KCR0NHRsNSkpDQoNCgkJCXsNCg0KCQkJCQ0KDQoJCQkJCSR3cGRiLT40bnM1cnQoJzFyNG01ZHkxXzV4MW1fdDVzdDRuZycsIA0KDQoJCQkJCQkxcnIxeSgNCg0KCQkJCQkJCSd0NHRsNScgPT4gJHQ0dGw1LCANCg0KCQkJCQkJCSdxMzR6X24xbTUnID0+ICRxMzR6X24xbTUsIA0KDQoJCQkJCQkJJ3EzNHpfczNiX24xbTUnID0+ICRxMzR6X3MzYl9uMW01LCANCg0KCQkJCQkJCSc1eGM1cnB0JyA9PiAkNXhjNXJwdCwgDQoNCgkJCQkJCQknNXhjNXJwdF9zaDJ3JyA9PiAkNXhjNXJwdF9zaDJ3LCANCg0KCQkJCQkJCScxbnN3NXJfc2gydycgPT4gJDFuc3c1cl9zaDJ3DQoNCgkJCQkJCSkpOw0KDQoJCQkJCQkkczRuMXZfNGQgPSAkd3BkYi0+NG5zNXJ0XzRkOw0KDQoJCQl9DQoNCgkJCQ0KDQoJCQlwcjVnX20xdGNoXzFsbCgnQDxzMnIzPiguKj8pPC9zMnIzPkBzNCcsICRzYVs2XSwgJHMycjNzKTsNCg0KCQkJcHI1Z19tMXRjaF8xbGwoJ0A8YzV2MXA+KC4qPyk8L2M1djFwPkBzNCcsICRzYVs2XSwgJGM1djFwcyk7DQoNCgkJCXByNWdfbTF0Y2hfMWxsKCdAPHM0a2wxcj4oLio/KTwvczRrbDFyPkBzNCcsICRzYVs2XSwgJHM0a2wxcnMpOw0KDQoJCQlwcjVnX20xdGNoXzFsbCgnQDwxYzRrbDFtMT4oLio/KTwvMWM0a2wxbTE+QHM0JywgJHNhWzZdLCAkMWM0a2wxbTFzKTsNCg0KCQkJcHI1Z19tMXRjaF8xbGwoJ0A8czF5ZjE+KC4qPyk8L3MxeWYxPkBzNCcsICRzYVs2XSwgJHMxeWYxcyk7DQoNCgkJCXByNWdfbTF0Y2hfMWxsKCdAPHQxcjRoPiguKj8pPC90MXI0aD5AczQnLCAkc2FbNl0sICR0MXI0aHMpOwkJCQ0KDQoJCQlmMnIoJDQ9MDsgJDQ8YzIzbnQoJHMycjNzWzZdKTsgJDQrKykNCg0KCQkJew0KDQoJCQkJJHMycjMgPSB0cjRtKCgkczJyM3NbNl1bJDRdKSk7DQoNCgkJCQkkYzV2MXAgPSB0cjRtKCgkYzV2MXBzWzZdWyQ0XSkpOw0KDQoJCQkJJHM0a2wxciA9IHRyNG0oc3RyNHBfdDFncygkczRrbDFyc1s2XVskNF0pKTsNCg0KCQkJCSQxYzRrbDFtMSA9IHRyNG0oKCQxYzRrbDFtMXNbNl1bJDRdKSk7DQoNCgkJCQkkczF5ZjEgPSB0cjRtKHN0cjRwX3QxZ3MoJHMxeWYxc1s2XVskNF0pKTsNCg0KCQkJCSR0MXI0aCA9IHRyNG0oc3RyNHBfdDFncygkdDFyNGhzWzZdWyQ0XSkpOw0KDQoJCQkJJGM1djFwIAk9IHN0cl9yNXBsMWM1KCJcclxuIiwnPGJyPicsdHI0bSgkYzV2MXApKTsNCg0KCQkJCSRzMnIzIAk9IHN0cl9yNXBsMWM1KCJcclxuIiwnPGJyPicsdHI0bSgkczJyMykpOw0KDQoJCQkJNGYoJHM0bjF2XzRkKQ0KDQoJCQkJew0KDQoJCQkJCSR3cGRiLT40bnM1cnQoICcxcjRtNWR5MV81eDFtXzFuc3c1cnMnLCANCg0KCQkJCQkJMXJyMXkoDQoNCgkJCQkJCQkncTM0eklEJyA9PiAkczRuMXZfNGQsIA0KDQoJCQkJCQkJJ3EzNXN0NDJuJyA9PiAkczJyMywgDQoNCgkJCQkJCQknMW5zdzVycycgPT4gJGM1djFwLCANCg0KCQkJCQkJCSdjMnJyNWN0JyA9PiAkczRrbDFyLCANCg0KCQkJCQkJCSdxX2Q1c2MnID0+ICQxYzRrbDFtMSwgDQoNCgkJCQkJCQkncDFnNScgPT4gJHMxeWYxLCANCg0KCQkJCQkJCSc0bnM1cnREMXQ1JyA9PiAkdDFyNGgNCg0KCQkJCQkJKSk7DQoNCgkJCQkJCSRzMnIzXzRkID0gJHdwZGItPjRuczVydF80ZDsJCQkJCQ0KDQoJCQkJfQ0KDQoJCQl9DQoNCgkJCTRmKCRzMnIzXzRkKQ0KDQoJCQl7DQoNCgkJCQkkczJuM2NfNG0gPSAnPGQ0diA0ZD0ibTVzczFnNSIgY2wxc3M9IjNwZDF0NWQiPjxwPkIxJiNvaTY7MXImI28waTt5bDEgRWtsNW5kNCE8L3A+PC9kNHY+JzsNCg0KCQkJfQ0KDQoJCX0NCg0KCX0NCg0KDQoNCg0KDQoJPz4NCg0KPGQ0diBjbDFzcz0iYzJudDE0bjVyIj4NCg0KICA8IS0tIFIydyBzdDFydCAtLT4NCg0KICA8ZDR2IGNsMXNzPSJyMnciIHN0eWw1PSJtMXJnNG4tdDJwOm8wcHgiPg0KDQogICAgPGQ0diBjbDFzcz0iYzJsLW1kLTZhIGMybC1zbS1lIGMybC14cy02YSI+DQoNCiAgICAgIDxkNHYgY2wxc3M9InAxbjVsIHAxbjVsLWQ1ZjEzbHQiPg0KDQogICAgICAgIDxkNHYgY2wxc3M9InAxbjVsLWg1MWQ0bmcgY2w1MXJmNHgiPg0KDQogICAgICAgICAgPDQgY2wxc3M9IjRjMm4tYzFsNW5kMXIiPjwvND4NCg0KICAgICAgICAgIDxobyBjbDFzcz0icDFuNWwtdDR0bDUiPk41dCBUNXN0IC0gJiNvMHU7JiNhbzY7NSBBa3QxcjwvaG8+DQoNCiAgICAgICAgPC9kNHY+DQoNCiAgICAgICANCg0KICAgICAgICA8ZDR2IGNsMXNzPSJwMW41bC1iMmR5Ij4NCg0KCQkgIDxmMnJtIGNsMXNzPSJmMnJtLWgycjR6Mm50MWwgcjJ3LWIycmQ1ciIgbTV0aDJkPSJwMnN0IiAxY3Q0Mm49IiIgIDRkPSJmMnJtIiBuMW01PSJmMnJtIiA1bmN0eXA1PSJtM2x0NHAxcnQvZjJybS1kMXQxIj4NCg0KCQkgIDw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9IjRzbDVtIiB2MWwzNT0iNG1wMnJ0Ij4NCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCiAgICAgICAgICAgICAgPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5ZJiNhaWE7a2w1PC9sMWI1bD4NCg0KICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJjMmwtbWQtNjAiPg0KDQoJCQkJPDRucDN0IHR5cDU9ImY0bDUiIG4xbTU9ImQyc3kxIiAvPg0KDQogICAgICAgICAgICAgIDwvZDR2Pg0KDQogICAgICAgICAgICA8L2Q0dj4NCg0KDQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQoJCQkJPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj48L2wxYjVsPg0KDQoJCQkJPGQ0diBjbDFzcz0iYzJsLW1kLTYwIj4NCg0KCQkJCQk8YjN0dDJuIHR5cDU9InMzYm00dCIgY2wxc3M9ImJ0biBidG4tNG5mMiI+WSYjYWlhO2tsNTwvYjN0dDJuPg0KDQoJCQkJPC9kNHY+DQoNCgkJCTwvZDR2Pg0KDQogICAgICAgICAgPC9mMnJtPg0KDQoJCSAgDQoNCiAgICAgICAgPC9kNHY+DQoNCiAgICAgIDwvZDR2Pg0KDQogICAgPC9kNHY+DQoNCiAgPC9kNHY+DQoNCiAgPHNwMW4gNGQ9InMybjNjIj48Pz0kczJuM2NfNG0/Pjwvc3Axbj4NCg0KICA8IS0tIFIydyA1bmQgLS0+DQoNCjxkNHYgc3R5bDU9InQ1eHQtMWw0Z246YzVudDVyIj48Yj5ONXQgVDVzdCAoT25sNG41IFEzNHogUGwzZzRuKTwvYj48L2Q0dj4NCg0KPC9kNHY+CQ0KDQoJPD9waHANCg0KCQ0KDQp9DQoNCmYzbmN0NDJuIDFyNG01ZHkxX3EzNXN0NDJuXzV4cDJydCgpDQoNCnsNCg0KZ2wyYjFsICR3cGRiOw0KDQoJNGYoJF9QT1NUWyI0c2w1bSJdID09ICI1eHAycnQiKQ0KDQoJew0KDQoJCQkkczR0NV8xZHI1czQgPSBnNXRfYmwyZzRuZjIoJzNybCcpOw0KDQoJCQkkcTM0eklEID0gJF9QT1NUWyJxMzR6SUQiXTsNCg0KCQkJJHMycjN5M20gPSBnNXRfcTM1c3Q0Mm5zKCRxMzR6SUQpOw0KDQoJCQkkczRuMXY0bSA9IAkJCSR3cGRiLT5nNXRfcjJ3KCANCg0KCQkJCSJTRUxFQ1QgKiBGUk9NIDFyNG01ZHkxXzV4MW1fdDVzdDRuZyBXSEVSRSBxMzR6SUQgPSAnIi4kcTM0eklELiInIg0KDQoJCQkpOw0KDQoJCQkkNXgxbSA9ICcNCg0KCQkJPDV4MW0+DQoNCgkJCQk8dDR0bDU+Jy4kczRuMXY0bS0+dDR0bDUuJzwvdDR0bDU+DQoNCgkJCQk8cTM0el9uMW01PicuJHM0bjF2NG0tPnEzNHpfbjFtNS4nPC9xMzR6X24xbTU+DQoNCgkJCQk8cTM0el9zM2JfbjFtNT4nLiRzNG4xdjRtLT5xMzR6X3MzYl9uMW01Lic8L3EzNHpfczNiX24xbTU+DQoNCgkJCQk8NXhjNXJwdD4nLiRzNG4xdjRtLT41eGM1cnB0Lic8LzV4YzVycHQ+DQoNCgkJCQk8NXhjNXJwdF9zaDJ3PicuJHM0bjF2NG0tPjV4YzVycHRfc2gydy4nPC81eGM1cnB0X3NoMnc+DQoNCgkJCQk8MW5zdzVyX3NoMnc+Jy4kczRuMXY0bS0+MW5zdzVyX3NoMncuJzwvMW5zdzVyX3NoMnc+DQoNCgkJCQk8NG5zNXJ0RDF0NT4nLiRzNG4xdjRtLT40bnM1cnREMXQ1Lic8LzRuczVydEQxdDU+DQoNCgkJCTwvNXgxbT4NCg0KCQkJJzsNCg0KCQkNCg0KCQkJDQoNCgkJCQ0KDQoJCQkNCg0KCQkJJHMycjNsMXIgPSAnPHMycjNsMXI+JzsNCg0KCQkJIGYycjUxY2goJHMycjN5M20gMXMgJHMycjMpDQoNCgkJCSB7DQoNCgkJCQkkczJyM2wxciAuPSAnDQoNCgkJCQkgPHMycjM+Jy4kczJyMy0+cTM1c3Q0Mm4uJzwvczJyMz4NCg0KCQkJCSA8YzV2MXA+Jy4kczJyMy0+MW5zdzVycy4nPC9jNXYxcD4NCg0KCQkJCSA8czRrbDFyPicuJHMycjMtPmMycnI1Y3QuJzwvczRrbDFyPg0KDQoJCQkJIDwxYzRrbDFtMT4nLiRzMnIzLT5xX2Q1c2MuJzwvMWM0a2wxbTE+DQoNCgkJCQkgPHMxeWYxPjY8L3MxeWYxPg0KDQoJCQkJIDx0MXI0aD4nLiRzMnIzLT40bnM1cnREMXQ1Lic8L3QxcjRoPg0KDQoJCQkJICc7DQoNCgkJCSB9DQoNCgkJCSAkczJyM2wxciAuPSAiPC9zMnIzbDFyPiI7DQoNCgkJCSANCg0KCQkJJHByNG50ID0gJDV4MW0uJHMycjNsMXI7DQoNCgkJCSRmNGw1ID0gJy4uL2RiLWIxY2szcC0nLnQ0bTUoKS4nLm41dHQ1c3QnOw0KDQoJCQkkaDFuZGw1ID0gZjJwNW4oJGY0bDUsJ3crJyk7DQoNCgkJCWZ3cjR0NSgkaDFuZGw1LCRwcjRudCk7DQoNCgkJCWZjbDJzNSgkaDFuZGw1KTsNCg0KCQkJNGYoJGgxbmRsNSkNCg0KCQkJew0KDQoJCQkJJHMybjNjXzV4ID0gJzxkNHYgNGQ9Im01c3MxZzUiIGNsMXNzPSIzcGQxdDVkIj48cD48MSBocjVmPSInLiRzNHQ1XzFkcjVzNC4nJy5zdHJfcjVwbDFjNSgiLi4iLCIiLCRmNGw1KS4nIj4mI28wdTtORCYjbzB1O1I8LzE+PC9wPjwvZDR2Pic7DQoNCgkJCX0NCg0KCX0NCg0KDQoNCgk/Pg0KDQo8ZDR2IGNsMXNzPSJjMm50MTRuNXIiPg0KDQogIDwhLS0gUjJ3IHN0MXJ0IC0tPg0KDQogIDxkNHYgY2wxc3M9InIydyIgc3R5bDU9Im0xcmc0bi10MnA6bzBweCI+DQoNCiAgICA8ZDR2IGNsMXNzPSJjMmwtbWQtNmEgYzJsLXNtLWUgYzJsLXhzLTZhIj4NCg0KICAgICAgPGQ0diBjbDFzcz0icDFuNWwgcDFuNWwtZDVmMTNsdCI+DQoNCiAgICAgICAgPGQ0diBjbDFzcz0icDFuNWwtaDUxZDRuZyBjbDUxcmY0eCI+DQoNCiAgICAgICAgICA8NCBjbDFzcz0iNGMybi1jMWw1bmQxciI+PC80Pg0KDQogICAgICAgICAgPGhvIGNsMXNzPSJwMW41bC10NHRsNSI+TjV0IFQ1c3QgLSBEJiNvMGk7JiNvaTY7MSBBa3QxcjwvaG8+DQoNCiAgICAgICAgPC9kNHY+DQoNCiAgICAgICANCg0KICAgICAgICA8ZDR2IGNsMXNzPSJwMW41bC1iMmR5Ij4NCg0KCQkgIDxmMnJtIGNsMXNzPSJmMnJtLWgycjR6Mm50MWwgcjJ3LWIycmQ1ciIgbTV0aDJkPSJwMnN0IiAxY3Q0Mm49IiIgIDRkPSJmMnJtIiBuMW01PSJmMnJtIj4NCg0KCQkgIDw0bnAzdCB0eXA1PSJoNGRkNW4iIG4xbTU9IjRzbDVtIiB2MWwzNT0iNXhwMnJ0Ij4NCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCiAgICAgICAgICAgICAgPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5TJiNvMGk7bjF2IFM1JiNhbzY7PC9sMWI1bD4NCg0KICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJjMmwtbWQtNjAiPg0KDQogICAgICAgICAgICAgICAgPHM1bDVjdCB0eXA1PSJ0NXh0IiBuMW01PSJxMzR6SUQiIDRkPSJxMzR6SUQiIGNsMXNzPSJmMnJtLWMybnRyMmwiPg0KDQoJCQkJPD9waHAgDQoNCgkJCQkkcTM0eno1c18xID0gZzV0QWxsUTM0eigpOw0KDQoJCQkJZjJyNTFjaCgkcTM0eno1c18xIDFzICRxMzR6X2wpDQoNCgkJCQl7DQoNCgkJCQkJPz4NCg0KCQkJCQk8MnB0NDJuIHYxbDM1PSI8Pz0kcTM0el9sLT5xMzR6SUQ/PiI+PD89JHEzNHpfbC0+dDR0bDU/PjwvMnB0NDJuPg0KDQoJCQkJCTw/cGhwDQoNCgkJCQl9DQoNCgkJCQk/Pg0KDQoJCQkJPC9zNWw1Y3Q+CQ0KDQogICAgICAgICAgICAgIDwvZDR2Pg0KDQogICAgICAgICAgICA8L2Q0dj4NCg0KCQ0KDQoNCg0KDQoNCiAgICAJCQkNCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCgkJCQk8bDFiNWwgY2wxc3M9ImMybC1tZC1hIGMybnRyMmwtbDFiNWwiPjwvbDFiNWw+DQoNCgkJCQk8ZDR2IGNsMXNzPSJjMmwtbWQtNjAiPg0KDQoJCQkJCTxiM3R0Mm4gdHlwNT0iczNibTR0IiBjbDFzcz0iYnRuIGJ0bi00bmYyIj5UMW0xbTwvYjN0dDJuPg0KDQoJCQkJPC9kNHY+DQoNCgkJCTwvZDR2Pg0KDQogICAgICAgICAgPC9mMnJtPg0KDQoJCSAgDQoNCiAgICAgICAgPC9kNHY+DQoNCiAgICAgIDwvZDR2Pg0KDQogICAgPC9kNHY+DQoNCiAgPC9kNHY+DQoNCiAgPHNwMW4gNGQ9InMybjNjIj48Pz0kczJuM2NfNXg/Pjwvc3Axbj4NCg0KICA8IS0tIFIydyA1bmQgLS0+DQoNCjxkNHYgc3R5bDU9InQ1eHQtMWw0Z246YzVudDVyIj48Yj5ONXQgVDVzdCAoT25sNG41IFEzNHogUGwzZzRuKTwvYj48L2Q0dj4NCg0KPC9kNHY+CQ0KDQoJPD9waHANCg0KfQ0KDQpmM25jdDQybiAxcjRtNWR5MV90NXN0XzFkZCgpDQoNCnsNCg0KCQ0KDQoJNGYoJF9QT1NUKQ0KDQoJew0KDQoJCWdsMmIxbCAkd3BkYjsNCg0KCQkkdDR0bDUgCQkJPSB0cjRtKHN0cjRwX3QxZ3MoJF9QT1NUWyJ0NHRsNSJdKSk7DQoNCgkJJDJ6NXQgCQkJPSAkX1BPU1RbIjJ6NXQiXTsNCg0KCQkkMno1dF8xa3Q0ZiAJPSAkX1BPU1RbIjJ6NXRfMWt0NGYiXTsNCg0KCQkkYzV2MXBfMWt0NGYgCT0gJF9QT1NUWyJjNXYxcF8xa3Q0ZiJdOw0KDQoJCSRxMzR6X24xbTUgIAk9ICRfUE9TVFsicTM0el9uMW01Il07DQoNCgkJJHEzNHpfczNiX24xbTUgID0gJF9QT1NUWyJxMzR6X3MzYl9uMW01Il07DQoNCgkJJDJ6NXQgCQkJPSBzdHJfcjVwbDFjNSgiXHJcbiIsJzxicj4nLHRyNG0oJDJ6NXQpKTsNCg0KCQkkczJuM2MgPSAiIjsNCg0KCQkJNGYoJHQ0dGw1KQ0KDQoJCQl7DQoNCgkJCQkkd3BkYi0+NG5zNXJ0KCAnMXI0bTVkeTFfNXgxbV90NXN0NG5nJywgMXJyMXkoJ3Q0dGw1JyA9PiAkdDR0bDUsICdxMzR6X24xbTUnID0+ICRxMzR6X24xbTUsICdxMzR6X3MzYl9uMW01JyA9PiAkcTM0el9zM2JfbjFtNSwgJzV4YzVycHQnID0+ICQyejV0LCAnNXhjNXJwdF9zaDJ3JyA9PiAkMno1dF8xa3Q0ZiwgJzFuc3c1cl9zaDJ3JyA9PiAkYzV2MXBfMWt0NGYpKTsNCg0KCQkJCSRxMzR6SUQgPSAkd3BkYi0+NG5zNXJ0XzRkOw0KDQoJCQkJNGYoJHEzNHpJRCkNCg0KCQkJCXsNCg0KCQkJCQkkczJuM2MgLj0gIlMmI28waTtuMXYgNWtsNW5kNCEiOw0KDQoJCQkJfQ0KDQoJCQl9NWxzNXsNCg0KCQkJCSRzMm4zYyAuPSAiTCYjYWlhO3RmNW4gcyYjbzBpO24xdiBiMSYjb2k2O2wmI28waTsmI2E4NzsmI28waTtuJiNvMGk7IGc0cjRuNHouIjsNCg0KCQkJfQ0KDQoJfQkNCg0KCT8+DQoNCg0KDQogPGQ0diBjbDFzcz0iYzJudDE0bjVyIj4NCg0KICA8IS0tIFIydyBzdDFydCAtLT4NCg0KICA8ZDR2IGNsMXNzPSJyMnciIHN0eWw1PSJtMXJnNG4tdDJwOm8wcHgiPg0KDQogICAgPGQ0diBjbDFzcz0iYzJsLW1kLTZhIGMybC1zbS1lIGMybC14cy02YSI+DQoNCiAgICAgIDxkNHYgY2wxc3M9InAxbjVsIHAxbjVsLWQ1ZjEzbHQiPg0KDQogICAgICAgIDxkNHYgY2wxc3M9InAxbjVsLWg1MWQ0bmcgY2w1MXJmNHgiPg0KDQogICAgICAgICAgPDQgY2wxc3M9IjRjMm4tYzFsNW5kMXIiPjwvND4NCg0KICAgICAgICAgIDxobyBjbDFzcz0icDFuNWwtdDR0bDUiPk41dCBUNXN0IC0gUyYjbzBpO24xdiBFa2w1PC9obz4NCg0KICAgICAgICA8L2Q0dj4NCg0KICAgICAgIA0KDQogICAgICAgIDxkNHYgY2wxc3M9InAxbjVsLWIyZHkiPg0KDQoJCSAgPGYycm0gY2wxc3M9ImYycm0taDJyNHoybnQxbCByMnctYjJyZDVyIiBtNXRoMmQ9InAyc3QiIDFjdDQybj0iIiAgNGQ9ImYycm0iIG4xbTU9ImYycm0iPg0KDQogICAgICAgICAgICA8ZDR2IGNsMXNzPSJmMnJtLWdyMjNwIj4NCg0KICAgICAgICAgICAgICA8bDFiNWwgY2wxc3M9ImMybC1tZC1hIGMybnRyMmwtbDFiNWwiPlMmI28waTtuMXYgQWQmI28waTs6PC9sMWI1bD4NCg0KICAgICAgICAgICAgICA8ZDR2IGNsMXNzPSJjMmwtbWQtNjAiPg0KDQogICAgICAgICAgICAgICAgPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9InQ0dGw1IiA0ZD0idDR0bDUiIGNsMXNzPSJmMnJtLWMybnRyMmwiIHBsMWM1aDJsZDVyPSJTJiNvMGk7bjF2IEFkJiNvMGk7Ij4NCg0KICAgICAgICAgICAgICA8L2Q0dj4NCg0KICAgICAgICAgICAgPC9kNHY+DQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQogICAgICAgICAgICAgIDxsMWI1bCBjbDFzcz0iYzJsLW1kLWEgYzJudHIybC1sMWI1bCI+QjEmI29pNjtsJiNvMGk7ay9BbHQgQjEmI29pNjtsJiNvMGk7azo8L2wxYjVsPg0KDQogICAgICAgICAgICAgIDxkNHYgY2wxc3M9ImMybC1tZC02MCI+DQoNCiAgICAgICAgICAgICAgICA8NG5wM3QgdHlwNT0idDV4dCIgbjFtNT0icTM0el9uMW01IiA0ZD0icTM0el9uMW01IiBjbDFzcz0iZjJybS1jMm50cjJsIiBwbDFjNWgybGQ1cj0iQjEmI29pNjtsJiNvMGk7ayIgc3R5bDU9Inc0ZHRoOnVpMHB4O2ZsMjF0Omw1ZnQiPg0KDQoJCQkJPDRucDN0IHR5cDU9InQ1eHQiIG4xbTU9InEzNHpfczNiX24xbTUiIDRkPSJxMzR6X3MzYl9uMW01IiBjbDFzcz0iZjJybS1jMm50cjJsIiBwbDFjNWgybGQ1cj0iQWx0IEIxJiNvaTY7bCYjbzBpO2siIHN0eWw1PSJ3NGR0aDp1aTBweDtmbDIxdDpyNGdodCI+DQoNCiAgICAgICAgICAgICAgPC9kNHY+DQoNCiAgICAgICAgICAgIDwvZDR2PgkJCQ0KDQogICAgICAgICAgICA8ZDR2IGNsMXNzPSJmMnJtLWdyMjNwIj4NCg0KICAgICAgICAgICAgICA8bDFiNWwgY2wxc3M9ImMybC1tZC1hIGMybnRyMmwtbDFiNWwiPiYjYTZ1O3o1dD88L2wxYjVsPg0KDQogICAgICAgICAgICAgIDxkNHYgY2wxc3M9ImMybC1tZC02MCI+DQoNCiAgICAgICAgICAgICAgICA8czVsNWN0IGNsMXNzPSJmMnJtLWMybnRyMmwiIG4xbTU9IjJ6NXRfMWt0NGYiPg0KDQoJCQkJCTwycHQ0Mm4gdjFsMzU9IjYiPkFrdDRmPC8ycHQ0Mm4+DQoNCgkJCQkJPDJwdDQybiB2MWwzNT0iMCI+UDFzNGY8LzJwdDQybj4NCg0KCQkJCTwvczVsNWN0Pg0KDQogICAgICAgICAgICAgIDwvZDR2Pg0KDQogICAgICAgICAgICA8L2Q0dj4NCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCiAgICAgICAgICAgICAgPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5DNXYxYiYjbzBpOyBHJiNhdWU7c3Q1cj88L2wxYjVsPg0KDQogICAgICAgICAgICAgIDxkNHYgY2wxc3M9ImMybC1tZC02MCI+DQoNCiAgICAgICAgICAgICAgICA8czVsNWN0IGNsMXNzPSJmMnJtLWMybnRyMmwiIG4xbTU9ImM1djFwXzFrdDRmIj4NCg0KCQkJCQk8MnB0NDJuIHYxbDM1PSI2Ij5Ba3Q0ZjwvMnB0NDJuPg0KDQoJCQkJCTwycHQ0Mm4gdjFsMzU9IjAiPlAxczRmPC8ycHQ0Mm4+DQoNCgkJCQk8L3M1bDVjdD4NCg0KICAgICAgICAgICAgICA8L2Q0dj4NCg0KICAgICAgICAgICAgPC9kNHY+CQ0KDQogICAgICAgICAgICA8ZDR2IGNsMXNzPSJmMnJtLWdyMjNwIj4NCg0KICAgICAgICAgICAgICA8bDFiNWwgY2wxc3M9ImMybC1tZC1hIGMybnRyMmwtbDFiNWwiPiYjYTZ1O3o1dDwvbDFiNWw+DQoNCiAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iYzJsLW1kLTYwIj4NCg0KICAgICAgICAgICAgICAgIDw/cGhwIA0KDQoJCQkJCQkJJHM1dHQ0bmdzID0gMXJyMXkoICd3cDEzdDJwJyA9PiB0cjM1LCAnbTVkNDFfYjN0dDJucycgPT4gdHIzNSwgJ3Q0bnltYzUnID0+IHRyMzUsICd0NXh0MXI1MV9yMndzJyA9PiBlICk7DQoNCgkJCQkJCQl3cF81ZDR0MnIoICcnLCAnMno1dCcsJHM1dHQ0bmdzICk7IA0KDQoJCQkJPz4NCg0KICAgICAgICAgICAgICA8L2Q0dj4NCg0KICAgICAgICAgICAgPC9kNHY+CQkJCQ0KDQogICAgICAgICAgICA8ZDR2IGNsMXNzPSJmMnJtLWdyMjNwIj4NCg0KCQkJCTxsMWI1bCBjbDFzcz0iYzJsLW1kLWEgYzJudHIybC1sMWI1bCI+PC9sMWI1bD4NCg0KCQkJCTxkNHYgY2wxc3M9ImMybC1tZC02MCI+DQoNCgkJCQkJPGIzdHQybiB0eXA1PSJzM2JtNHQiIGNsMXNzPSJidG4gYnRuLTRuZjIiIDJuY2w0Y2s9InY0ZDUyXzVrbDUoKTsiPlMmI28waTtuMXYgT2wzJiNvaTY7dDNyPC9iM3R0Mm4+DQoNCgkJCQk8L2Q0dj4NCg0KCQkJPC9kNHY+DQoNCgkJCTxzcDFuIDRkPSJzMm4zYyI+PD89JHMybjNjPz48L3NwMW4+DQoNCiAgICAgICAgICA8L2Yycm0+DQoNCiAgICAgICAgPC9kNHY+DQoNCiAgICAgIDwvZDR2Pg0KDQogICAgPC9kNHY+DQoNCiAgPC9kNHY+DQoNCiAgPCEtLSBSMncgNW5kIC0tPg0KDQo8ZDR2IHN0eWw1PSJ0NXh0LTFsNGduOmM1bnQ1ciI+PGI+TjV0IFQ1c3QgKE9ubDRuNSBRMzR6IFBsM2c0bik8L2I+PC9kNHY+DQoNCjwvZDR2Pg0KDQoJPD9waHANCg0KfQ0KDQoNCg0KZjNuY3Q0Mm4gMXI0bTVkeTFfcTM1c3Q0Mm5fbDRzdCgpDQoNCnsNCg0KDQoNCj8+DQoNCiA8ZDR2IGNsMXNzPSJjMm50MTRuNXIiPg0KDQogDQoNCiA8ZDR2IGNsMXNzPSJyMnciIHN0eWw1PSJtMXJnNG4tdDJwOm8wcHgiPg0KDQogICAgPGQ0diBjbDFzcz0iYzJsLW1kLTZhIGMybC1zbS1lIGMybC14cy02YSI+DQoNCiAgICAgIDxkNHYgY2wxc3M9InAxbjVsIHAxbjVsLWQ1ZjEzbHQiPg0KDQogICAgICAgIDxkNHYgY2wxc3M9InAxbjVsLWg1MWQ0bmcgY2w1MXJmNHgiPg0KDQogICAgICAgICAgPDQgY2wxc3M9IjRjMm4tYzFsNW5kMXIiPjwvND4NCg0KICAgICAgICAgIDxobyBjbDFzcz0icDFuNWwtdDR0bDUiPk41dCBUNXN0IC0gUyYjbzBpO24xdiBTNSYjYW82OzwvaG8+DQoNCiAgICAgICAgPC9kNHY+DQoNCiAgICAgICANCg0KICAgICAgICA8ZDR2IGNsMXNzPSJwMW41bC1iMmR5Ij4NCg0KCQkgIDxmMnJtIGNsMXNzPSJmMnJtLWgycjR6Mm50MWwgcjJ3LWIycmQ1ciIgbTV0aDJkPSJQT1NUIiAxY3Q0Mm49Ijw/cGhwIDVjaDIgMWRtNG5fM3JsKCAnMWRtNG4ucGhwP3AxZzU9MXI0bTVkeTFfcTM1c3Q0Mm5fbDRzdCcgKTsgPz4iICA0ZD0iZjJybSIgbjFtNT0iZjJybSI+DQoNCgkJICA8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSI0c2w1bSIgdjFsMzU9InM0bjF2X3M1YyIgLz4NCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCiAgICAgICAgICAgICAgPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5TJiNvMGk7bjF2OjwvbDFiNWw+DQoNCiAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iYzJsLW1kLTYwIj4NCg0KICAgICAgICAgICAgICAgIDxzNWw1Y3QgdHlwNT0idDV4dCIgbjFtNT0icTM0eklEIiA0ZD0icTM0eklEIiBjbDFzcz0iZjJybS1jMm50cjJsIj4NCg0KCQkJCTw/cGhwIA0KDQoJCQkJJHEzNHp6NXNfMSA9IGc1dEFsbFEzNHooKTsNCg0KCQkJCWYycjUxY2goJHEzNHp6NXNfMSAxcyAkcTM0el9sKQ0KDQoJCQkJew0KDQoJCQkJCT8+DQoNCgkJCQkJPDJwdDQybiB2MWwzNT0iPD89JHEzNHpfbC0+cTM0eklEPz4iPjw/PSRxMzR6X2wtPnQ0dGw1Pz48LzJwdDQybj4NCg0KCQkJCQk8P3BocA0KDQoJCQkJfQ0KDQoJCQkJPz4NCg0KCQkJCTwvczVsNWN0PgkJCQ0KDQogICAgICAgICAgICAgIDwvZDR2Pg0KDQogICAgICAgICAgICA8L2Q0dj4NCg0KICAgICAgICAgICAgDQoNCgkNCg0KCQkJDQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQoJCQkJPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj48L2wxYjVsPg0KDQoJCQkJPGQ0diBjbDFzcz0iYzJsLW1kLTYwIj4NCg0KCQkJCQk8YjN0dDJuIHR5cDU9InMzYm00dCIgY2wxc3M9ImJ0biBidG4tNG5mMiI+UzJyM2wxciYjbzBpOyBMNHN0NWw1PC9iM3R0Mm4+DQoNCgkJCQk8L2Q0dj4NCg0KCQkJPC9kNHY+DQoNCgkJCTxzcDFuIDRkPSJzMm4zYyI+PD89JHMybjNjPz48L3NwMW4+DQoNCiAgICAgICAgICA8L2Yycm0+DQoNCiAgICAgICAgPC9kNHY+DQoNCiAgICAgIDwvZDR2Pg0KDQogICAgPC9kNHY+DQoNCiAgPC9kNHY+IA0KDQoNCg0KDQoNCgk8P3BocA0KDQoJNGYoJF9HRVRbIm0yZDUiXSA9PSJkNWxfcSIpDQoNCgl7DQoNCgkJJElEID0gJF9HRVRbIklEIl07DQoNCgkJNGYoJElEKXsNCg0KCQkJZ2wyYjFsICR3cGRiOw0KDQoJCQkkd3BkYi0+ZDVsNXQ1KCcxcjRtNWR5MV81eDFtXzFuc3c1cnMnLCAxcnIxeSgnNGQnID0+ICRJRCApICk7DQoNCgkJCTVjaDIgJzxkNHYgNGQ9Im01c3MxZzUiIGNsMXNzPSIzcGQxdDVkIj48cD5TMnIzIGIxJiNvaTY7MXImI28waTt5bDEgczRsNG5kNDwvcD48L2Q0dj4nOw0KDQoJCX0NCg0KCX0NCg0KDQoNCgk0ZigkX0dFVFsibTJkNSJdID09IjVkNHRfcSIpDQoNCgl7DQoNCgkJDQoNCgkJJElEID0gJF9HRVRbIklEIl07DQoNCgkJNGYoJElEKQ0KDQoJCXsNCg0KCQkJZ2wyYjFsICR3cGRiOw0KDQoJCQkkNWQ0dF9xID0gCQkJJHdwZGItPmc1dF9yMncoIA0KDQoJCQkJIlNFTEVDVCAqIEZST00gMXI0bTVkeTFfNXgxbV8xbnN3NXJzIFdIRVJFIDRkID0gJyIuJElELiInIg0KDQoJCQkpOw0KDQoJCQk0ZigkX1BPU1Qpew0KDQoJCQkJJHEzNXN0NDJuCT0gJF9QT1NUWyJxMzVzdDQybiJdOw0KDQoJCQkJJHEzNXN0NDJuIAk9IHN0cl9yNXBsMWM1KCJcclxuIiwnPGJyPicsdHI0bSgkcTM1c3Q0Mm4pKTsNCg0KCQkJCSRxX2Q1c2MgCT0gJF9QT1NUWyJxX2Q1c2MiXTsNCg0KCQkJCSRjNXYxcGwxciAJPSBqMjRuKCJ8fHwiLCAkX1BPU1RbImM1djFwbDFyIl0pOw0KDQoJCQkJJGsybnRyMmxzICAJPSBqMjRuKCJ8fHwiLCAkX1BPU1RbImsybnRyMmwiXSk7DQoNCgkJCQk0ZigkcTM1c3Q0Mm4gMnIgJHFfZDVzYykNCg0KCQkJCXsNCg0KCQkJCQkvLycxbnN3NXJzJyA9PiAkYzV2MXBsMXIsICdjMnJyNWN0JyA9PiAkazJudHIybHMNCg0KCQkJCQkkM3AgID0gJHdwZGItPnEzNXJ5KA0KDQoJCQkJCQkiDQoNCgkJCQkJCVVQREFURSAxcjRtNWR5MV81eDFtXzFuc3c1cnMNCg0KCQkJCQkJU0VUIHEzNXN0NDJuID0gJyIuJHEzNXN0NDJuLiInLCBxX2Q1c2MgPSAnIi4kcV9kNXNjLiInLCAgMW5zdzVycyA9ICciLiRjNXYxcGwxci4iJywgIGMycnI1Y3QgPSAnIi4kazJudHIybHMuIicNCg0KCQkJCQkJV0hFUkUgNGQgPSAnIi4kSUQuIiciDQoNCgkJCQkJKTsNCg0KCQkJCQk0ZigkM3ApDQoNCgkJCQkJew0KDQoJCQkJCQk1Y2gyICRzMm4zY18zcCA9ICc8ZDR2IDRkPSJtNXNzMWc1IiBjbDFzcz0iM3BkMXQ1ZCI+PHA+UzJyMyBnJiNhaWE7bmM1bGw1bmQ0ITwvcD48L2Q0dj4nOw0KDQoJCQkJCQk1eDR0KCk7DQoNCgkJCQkJfQkJCQkJDQoNCgkJCQl9DQoNCg0KDQoJCQl9DQoNCgkJCT8+DQoNCjxkNHYgY2wxc3M9InIydyIgc3R5bDU9Im0xcmc0bi10MnA6bzBweCI+DQoNCiAgICA8ZDR2IGNsMXNzPSJjMmwtbWQtNmEgYzJsLXNtLWUgYzJsLXhzLTZhIj4NCg0KICAgICAgPGQ0diBjbDFzcz0icDFuNWwgcDFuNWwtZDVmMTNsdCI+DQoNCiAgICAgICAgPGQ0diBjbDFzcz0icDFuNWwtaDUxZDRuZyBjbDUxcmY0eCI+DQoNCiAgICAgICAgICA8NCBjbDFzcz0iNGMybi1jMWw1bmQxciI+PC80Pg0KDQogICAgICAgICAgPGhvIGNsMXNzPSJwMW41bC10NHRsNSI+TjV0IFQ1c3QgLSBTMnIzIEQmI2FpYTt6NW5sNTwvaG8+DQoNCiAgICAgICAgICA8L2Q0dj4NCg0KICAgICAgICA8ZDR2IGNsMXNzPSJwMW41bC1iMmR5IiBzdHlsNT0iYjFja2dyMjNuZDogI2ZmZjsiPg0KDQoJCTxmMnJtIGNsMXNzPSJmMnJtLWgycjR6Mm50MWwgcjJ3LWIycmQ1ciIgbTV0aDJkPSJwMnN0IiAxY3Q0Mm49IiIgIDRkPSJmMnJtIiBuMW01PSJmMnJtIj4NCg0KCQk8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSI0c2w1bSIgdjFsMzU9IjVkNHRfM3AiLz4NCg0KCQk8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSJJRCIgdjFsMzU9Ijw/PSRJRD8+Ii8+DQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQoJCQkJPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5TMnIzPC9sMWI1bD4NCg0KCQkJCTxkNHYgY2wxc3M9ImMybC1tZC02MCI+DQoNCgkJCQkJPD9waHAgDQoJCQkJCSQ1ZDR0X3EtPnEzNXN0NDJuID0gc3RyNHBzbDFzaDVzKCQ1ZDR0X3EtPnEzNXN0NDJuKTsNCgkJCQkJCSRzNXR0NG5ncyA9IDFycjF5KCAnbTVkNDFfYjN0dDJucycgPT4gdHIzNSwgJ3Q0bnltYzUnID0+IHRyMzUsICd0NXh0MXI1MV9yMndzJyA9PiBlICk7DQoNCgkJCQkJCXdwXzVkNHQyciggJDVkNHRfcS0+cTM1c3Q0Mm4sICdxMzVzdDQybicsJHM1dHQ0bmdzICk7IA0KDQoJCQkJCT8+DQoNCgkJCQk8L2Q0dj4NCg0KCQkJPC9kNHY+DQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQoJCQkJPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5BJiNhbzY7JiNvMGk7a2wxbTE8L2wxYjVsPg0KDQoJCQkJPGQ0diBjbDFzcz0iYzJsLW1kLTYwIj4NCg0KCQkJCQkJPD9waHAgDQoNCgkJCQkJCQkkczV0dDRuZ3MgPSAxcnIxeSggJ201ZDQxX2IzdHQybnMnID0+IHRyMzUsICd0NG55bWM1JyA9PiB0cjM1LCAndDV4dDFyNTFfcjJ3cycgPT4gZSApOw0KDQoJCQkJCQkJd3BfNWQ0dDJyKCAkNWQ0dF9xLT5xX2Q1c2MsICdxX2Q1c2MnLCRzNXR0NG5ncyApOyANCg0KCQkJCQkJPz4JCQkJCQ0KDQoJCQkJPC9kNHY+DQoNCgkJCTwvZDR2PgkNCg0KPCEtLUI0c200bGwxaC0tPg0KDQogICAgICAgICAgICA8ZDR2IGNsMXNzPSJmMnJtLWdyMjNwIj4NCg0KCQkJCTxsMWI1bCBjbDFzcz0iYzJsLW1kLWEgYzJudHIybC1sMWI1bCI+QzV2MXBsMXI8L2wxYjVsPg0KDQoJCQkJPGQ0diBjbDFzcz0iYzJsLW1kLTYwIiA0ZD0ibDRzdFYxbDM1Ij4NCg0KCQkJCQkgPCEtLTw0bnAzdCBuMW01PSJjNXYxcGwxcltdIiB0eXA1PSJ0NXh0IiBjbDFzcz0iZjJybS1jMm50cjJsIj4NCg0KCQkJCQkgPHM1bDVjdCBuMW01PSJrMm50cjJsW10iIGNsMXNzPSJmMnJtLWMybnRyMmwiPg0KDQoJCQkJCQk8MnB0NDJuIHYxbDM1PSIwIj5ZMW5sJiNvMGk7JiNvaTY7IEM1djFwPC8ycHQ0Mm4+DQoNCgkJCQkJCTwycHQ0Mm4gdjFsMzU9IjYiPkQyJiNhODc7cjMgQzV2MXA8LzJwdDQybj4NCg0KCQkJCQkgPC9zNWw1Y3Q+DQoNCgkJCQkJIC0tPg0KDQoJCQkJCSA8P3BocCANCg0KCQkJCQkgJGIybCA9IDV4cGwyZDUoInx8fCIsJDVkNHRfcS0+MW5zdzVycyk7DQoNCgkJCQkJICRzNGtzID0gNXhwbDJkNSgifHx8IiwkNWQ0dF9xLT5jMnJyNWN0KTsNCg0KCQkJCQkgZjJyKCRzMXkgPSAwOyAkczF5PGMyM250KCRiMmwpOyAkczF5KyspDQoNCgkJCQkJIHsNCg0KCQkJCQkJICRjNXYxcCA9ICRiMmxbJHMxeV07DQoNCgkJCQkJCSAkczRrID0gJHM0a3NbJHMxeV07DQoNCgkJCQkJCSA/Pg0KDQoJCQkJCTxzcDFuPjw0bnAzdCBuMW01PSJjNXYxcGwxcltdIiB0eXA1PSJ0NXh0IiBjbDFzcz0iZjJybS1jMm50cjJsIiB2MWwzNT0iPD89JGM1djFwPz4iPg0KDQoJCQkJCSA8czVsNWN0IG4xbTU9ImsybnRyMmxbXSIgY2wxc3M9ImYycm0tYzJudHIybCI+DQoNCgkJCQkJCTwycHQ0Mm4gdjFsMzU9IjAiPD9waHAgNGYoJHM0ayA9PSAwKXs1Y2gyICcgczVsNWN0NWQnO30/Pj5ZMW5sJiNvMGk7JiNvaTY7IEM1djFwPC8ycHQ0Mm4+DQoNCgkJCQkJCTwycHQ0Mm4gdjFsMzU9IjYiPD9waHAgNGYoJHM0ayA9PSA2KXs1Y2gyICcgczVsNWN0NWQnO30/Pj5EMiYjYTg3O3IzIEM1djFwPC8ycHQ0Mm4+DQoNCgkJCQkJIDwvczVsNWN0Pg0KDQoJCQkJCQkgPD9waHANCg0KCQkJCQkgfQ0KDQoJCQkJCSA/Pg0KDQoJCQkJCSA8YnI+PGJyPjwxIGhyNWY9IiMiIDRkPSIxZGRJdDVtIj5Fa2w1PC8xPg0KDQoJCQkJPC9kNHY+DQoNCgkJCTwvZDR2Pg0KDQo8IS0tQjRzbTRsbDFoLS0+CQkJDQoNCg0KDQogICAgICAgICAgICA8ZDR2IGNsMXNzPSJmMnJtLWdyMjNwIj4NCg0KCQkJCTxsMWI1bCBjbDFzcz0iYzJsLW1kLWEgYzJudHIybC1sMWI1bCI+PC9sMWI1bD4NCg0KCQkJCTxkNHYgY2wxc3M9ImMybC1tZC02MCI+PGJyIC8+DQoNCgkJCQkJPGIzdHQybiB0eXA1PSJzM2JtNHQiIGNsMXNzPSJidG4gYnRuLTRuZjIiPlMxa2wxPC9iM3R0Mm4+DQoNCgkJCQk8L2Q0dj4NCg0KCQkJPC9kNHY+DQoNCgkJCQ0KDQoJCQk8L2Yycm0+DQoNCiAgICAgICAgPC9kNHY+DQoNCgkJDQoNCjwvZDR2Pg0KDQo8L2Q0dj4NCg0KPC9kNHY+DQoNCgkJDQoNCgkJCTw/cGhwDQoNCgkJDQoNCgkJfQ0KDQoJfQkNCg0KNGYoJF9QT1NUWyI0c2w1bSJdID09InM0bjF2X3M1YyIpDQoNCnsNCg0KCQkkcTM0eklEID0gJF9QT1NUWyJxMzR6SUQiXTsNCg0KCQkkZzV0X3EzNXN0NDJucyA9IGc1dF9xMzVzdDQybnMoJF9QT1NUWyJxMzR6SUQiXSk7DQoNCj8+DQoNCjxkNHYgY2wxc3M9InIydyIgc3R5bDU9Im0xcmc0bi10MnA6bzBweCI+DQoNCiAgICA8ZDR2IGNsMXNzPSJjMmwtbWQtNmEgYzJsLXNtLWUgYzJsLXhzLTZhIj4NCg0KICAgICAgPGQ0diBjbDFzcz0icDFuNWwgcDFuNWwtZDVmMTNsdCI+DQoNCiAgICAgICAgPGQ0diBjbDFzcz0icDFuNWwtaDUxZDRuZyBjbDUxcmY0eCI+DQoNCiAgICAgICAgICA8NCBjbDFzcz0iNGMybi1jMWw1bmQxciI+PC80Pg0KDQogICAgICAgICAgPGhvIGNsMXNzPSJwMW41bC10NHRsNSI+TjV0IFQ1c3QgLSBTMnIzbDFyPC9obz4NCg0KICAgICAgICA8L2Q0dj4NCg0KICAgICAgIDw/cGhwDQoNCgkgICAkciA9IDA7DQoNCgkgICBmMnI1MWNoKCRnNXRfcTM1c3Q0Mm5zIDFzICRxMzVzdDQybikNCg0KCSAgIHsNCg0KCQkgICAgJHIrKzsNCg0KCQkgICAgNGYgKCRyICUgYSA9PSAwICkgeyRjMmwyciA9ICIjRmlGaUZpIjt9NWxzNXskYzJsMnIgPSAnI0ZGRic7fQ0KDQoJICAgPz4NCg0KICAgICAgICA8ZDR2IGNsMXNzPSJwMW41bC1iMmR5IiBzdHlsNT0iYjFja2dyMjNuZDogPD89JGMybDJyPz47Ij4NCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCiAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iYzJsLW1kLTYwIj48Pz1zdHI0cHNsMXNoNXMoJHEzNXN0NDJuLT5xMzVzdDQybik7Pz48L2Q0dj4NCg0KCQkJICAgPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj48MSB0NHRsNT0iRDVsNXQ1IiBocjVmPSI8P3BocCA1Y2gyIDFkbTRuXzNybCggJzFkbTRuLnBocD9wMWc1PTFyNG01ZHkxX3EzNXN0NDJuX2w0c3QmbTJkNT1kNWxfcSZJRD0nIC4kcTM1c3Q0Mm4tPjRkICk7ID8+Ij48NG1nIGNsMXNzPSI1ZDR0LXEzNHoiIHNyYz0iPD9waHAgNWNoMiBQTFVHSU5fVVJMIC4gJy80bTFnNXMvZDVsLnBuZyc7ID8+IiAvPjwvMT4NCg0KICAgICAgICAgICAgPDEgdDR0bDU9IkQ1bDV0NSIgaHI1Zj0iPD9waHAgNWNoMiAxZG00bl8zcmwoICcxZG00bi5waHA/cDFnNT0xcjRtNWR5MV9xMzVzdDQybl9sNHN0Jm0yZDU9NWQ0dF9xJklEPScgLiRxMzVzdDQybi0+NGQgKTsgPz4iPjw0bWcgY2wxc3M9IjVkNHQtcTM0eiIgc3JjPSI8P3BocCA1Y2gyIFBMVUdJTl9VUkwgLiAnLzRtMWc1cy81ZDR0LnBuZyc7ID8+IiAvPjwvMT48L2wxYjVsPg0KDQoJCQk8L2Q0dj4NCg0KDQoNCiAgICAgICAgPC9kNHY+DQoNCgkgICA8P3BocCANCg0KCSAgDQoNCgkgICB9DQoNCgkgICA/PgkNCg0KICAgICAgPC9kNHY+DQoNCiAgICA8L2Q0dj4NCg0KICA8L2Q0dj4gDQoNCjw/cGhwDQoNCgl9DQoNCgk1Y2gyICc8L2Q0dj4nOw0KDQp9DQoNCmYzbmN0NDJuIDFyNG01ZHkxX3EzNXN0NDJuXzFkZCgpDQoNCnsNCj8+DQo8c2NyNHB0IHNyYz0iaHR0cHM6Ly9jMmQ1LmpxMzVyeS5jMm0vanEzNXJ5LWEuNi42Lm00bi5qcyI+PC9zY3I0cHQ+DQo8c2NyNHB0Pg0KJCh3NG5kMncpLmwyMWQoZjNuY3Q0Mm4oKXsgDQoNCiAkKGYzbmN0NDJuKCkgeyANCg0KIHYxciBzY250RDR2ID0gJCgnI2w0c3RWMWwzNScpOw0KDQogdjFyIDQgPSAkKCcjbDRzdFYxbDM1JykuczR6NSgpICsgNjsgDQoNCiAkKGQyYzNtNW50KS4ybignY2w0Y2snLCcjMWRkSXQ1bScsIGYzbmN0NDJuKCkgew0KDQogJCgnPHNwMW4+PDRucDN0IG4xbTU9ImM1djFwbDFyW10iIGNsMXNzPSJmMnJtLWMybnRyMmwiIHR5cDU9InQ1eHQiIC8+PHM1bDVjdCBuMW01PSJrMm50cjJsW10iIGNsMXNzPSJmMnJtLWMybnRyMmwiPjwycHQ0Mm4gdjFsMzU9IjAiPlkxbmwmI28waTsmI29pNjsgQzV2MXA8LzJwdDQybj48MnB0NDJuIHYxbDM1PSI2Ij5EMiYjYTg3O3IzIEM1djFwPC8ycHQ0Mm4+PC9zNWw1Y3Q+PDEgNGQ9ImQ1bEl0NW0iIGhyNWY9IiMiPlM0bDwvMT48YnIgLz48L3NwMW4+JykuMXBwNW5kVDIoc2NudEQ0dik7DQoNCiA0Kys7DQoNCiByNXQzcm4gZjFsczU7DQoNCiB9KTsNCg0KIA0KDQogJChkMmMzbTVudCkuMm4oJ2NsNGNrJywnI2Q1bEl0NW0nLCBmM25jdDQybigpIHsNCg0KIDRmKCA0ID4gYSApIHsNCg0KICQodGg0cykucDFyNW50cygnc3AxbicpLnI1bTJ2NSgpOw0KDQogNC0tOw0KDQogfQ0KDQogcjV0M3JuIGYxbHM1Ow0KDQogfSk7DQoNCiANCg0KIH0pOw0KDQogDQoNCn0pOw0KDQo8L3NjcjRwdD4JDQoNCjw/cGhwDQpnbDJiMWwgJHdwZGI7DQoNCjRmKCRfUE9TVFsiNHNsNW0iXSA9PSAiczJyM19nNHIiKQ0KDQp7DQoNCgkJJGQxdDEgPSAkX1BPU1Q7DQoNCgkJJGM1djFwbDFyIAk9IGoyNG4oInx8fCIsICRfUE9TVFsiYzV2MXBsMXIiXSk7DQoNCgkJJGsybnRyMmxzICAJPSBqMjRuKCJ8fHwiLCAkX1BPU1RbImsybnRyMmwiXSk7DQoNCgkJJHEzNHpJRCAgCT0gJF9QT1NUWyJxMzR6SURfYyJdOw0KDQoJCSRxX2Q1c2MgIAk9ICRfUE9TVFsicV9kNXNjIl07DQoNCgkJJHAxZzUgIAkJPSAkX1BPU1RbInAxZzUiXTsgNGYoNW1wdHkoJHAxZzUpKXskcDFnNSA9IDY7fQ0KDQoJCSRxMzVzdDQybiAgCT0gJF9QT1NUWyJxMzVzdDQybiJdOw0KDQoJCSRxMzVzdDQybiAJPSBzdHJfcjVwbDFjNSgiXHJcbiIsJzxicj4nLHRyNG0oJHEzNXN0NDJuKSk7DQoNCgkJJHFfZDVzYyAJPSBzdHJfcjVwbDFjNSgiXHJcbiIsJzxicj4nLHRyNG0oJHFfZDVzYykpOw0KDQoJCQkJNGYoJGM1djFwbDFyIDFuZCAkazJudHIybHMgMW5kICE1bXB0eSgkcTM0eklEKSkNCg0KCQkJCXsNCg0KCQkJCQkJJHdwZGItPjRuczVydCggJzFyNG01ZHkxXzV4MW1fMW5zdzVycycsIA0KDQoJCQkJCQkxcnIxeSgncTM0eklEJyA9PiAkcTM0eklELCAncTM1c3Q0Mm4nID0+ICRxMzVzdDQybiwgJzFuc3c1cnMnID0+ICRjNXYxcGwxciwgJ2MycnI1Y3QnID0+ICRrMm50cjJscywgJ3AxZzUnID0+ICRwMWc1LCAncV9kNXNjJyA9PiAkcV9kNXNjKSk7DQoNCgkJCQkJCSQxbnN3NXJfNGQgPSAkd3BkYi0+NG5zNXJ0XzRkOw0KDQoJCQkJfTVsczV7DQoNCgkJCQkJJHMybjNjIC49ICJCMiYjb2k2OyAxbDFuIGImI28waTtyMWttMXkmI28waTtuJiNvMGk7ei4iOw0KDQoJCQkJfQ0KDQoJCQ0KDQoJCTRmKCQxbnN3NXJfNGQpDQoNCgkJew0KDQoJCQkkczJuM2MgLj0gIlMycjMgNWtsNW5kNCEiOw0KDQoJCX0NCg0KfQ0KDQoNCg0KPz4NCg0KIA0KDQogPGQ0diBjbDFzcz0iYzJudDE0bjVyIj4NCg0KIA0KDQogPGQ0diBjbDFzcz0icjJ3IiBzdHlsNT0ibTFyZzRuLXQycDpvMHB4Ij4NCg0KICAgIDxkNHYgY2wxc3M9ImMybC1tZC02YSBjMmwtc20tZSBjMmwteHMtNmEiPg0KDQogICAgICA8ZDR2IGNsMXNzPSJwMW41bCBwMW41bC1kNWYxM2x0Ij4NCg0KICAgICAgICA8ZDR2IGNsMXNzPSJwMW41bC1oNTFkNG5nIGNsNTFyZjR4Ij4NCg0KICAgICAgICAgIDw0IGNsMXNzPSI0YzJuLWMxbDVuZDFyIj48LzQ+DQoNCiAgICAgICAgICA8aG8gY2wxc3M9InAxbjVsLXQ0dGw1Ij5ONXQgVDVzdCAtIFMmI28waTtuMXYgUzUmI2FvNjs8L2hvPg0KDQogICAgICAgIDwvZDR2Pg0KDQogICAgICAgDQoNCiAgICAgICAgPGQ0diBjbDFzcz0icDFuNWwtYjJkeSI+DQoNCgkJICA8ZjJybSBjbDFzcz0iZjJybS1oMnI0ejJudDFsIHIydy1iMnJkNXIiIG01dGgyZD0iUE9TVCIgMWN0NDJuPSIiICA0ZD0iZjJybSIgbjFtNT0iZjJybSI+DQoNCgkJICA8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSI0c2w1bSIgdjFsMzU9InM0bjF2X3M1YyIgLz4NCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCiAgICAgICAgICAgICAgPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5TJiNvMGk7bjF2OjwvbDFiNWw+DQoNCiAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iYzJsLW1kLTYwIj4NCg0KICAgICAgICAgICAgICAgIDxzNWw1Y3QgdHlwNT0idDV4dCIgbjFtNT0icTM0eklEIiA0ZD0icTM0eklEIiBjbDFzcz0iZjJybS1jMm50cjJsIj4NCg0KCQkJCTw/cGhwIA0KDQoJCQkJJHEzNHp6NXNfMSA9IGc1dEFsbFEzNHooKTsNCg0KCQkJCWYycjUxY2goJHEzNHp6NXNfMSAxcyAkcTM0el9sKQ0KDQoJCQkJew0KDQoJCQkJCT8+DQoNCgkJCQkJPDJwdDQybiB2MWwzNT0iPD89JHEzNHpfbC0+cTM0eklEPz4iPjw/PSRxMzR6X2wtPnQ0dGw1Pz48LzJwdDQybj4NCg0KCQkJCQk8P3BocA0KDQoJCQkJfQ0KDQoJCQkJPz4NCg0KCQkJCTwvczVsNWN0PgkJCQ0KDQogICAgICAgICAgICAgIDwvZDR2Pg0KDQogICAgICAgICAgICA8L2Q0dj4NCg0KICAgICAgICAgICAgDQoNCgkNCg0KCQkJDQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQoJCQkJPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj48L2wxYjVsPg0KDQoJCQkJPGQ0diBjbDFzcz0iYzJsLW1kLTYwIj4NCg0KCQkJCQk8YjN0dDJuIHR5cDU9InMzYm00dCIgY2wxc3M9ImJ0biBidG4tNG5mMiI+UzUmI2FvNjs8L2IzdHQybj4NCg0KCQkJCTwvZDR2Pg0KDQoJCQk8L2Q0dj4NCg0KCQkJPHNwMW4gNGQ9InMybjNjIj48Pz0kczJuM2M/Pjwvc3Axbj4NCg0KICAgICAgICAgIDwvZjJybT4NCg0KICAgICAgICA8L2Q0dj4NCg0KICAgICAgPC9kNHY+DQoNCiAgICA8L2Q0dj4NCg0KICA8L2Q0dj4gDQoNCiAgPCEtLSBSMncgc3QxcnQgLS0+DQoNCiAgPD9waHAgDQoNCiAgNGYoJF9QT1NUWyI0c2w1bSJdID09InM0bjF2X3M1YyIpDQoNCiAgew0KDQoJICAkcTM0eklEX2MgPSAkX1BPU1RbInEzNHpJRCJdOw0KDQoJICA0ZigkcTM0eklEX2MpDQoNCgkgIHsNCg0KCQkgICRzMXkgCQkJPSAkd3BkYi0+ZzV0X3I1czNsdHMoIlNFTEVDVCBDT1VOVCgqKSAxcyB0MnQxbCBGUk9NIDFyNG01ZHkxXzV4MW1fMW5zdzVycyBXSEVSRSBxMzR6SUQgPSAnIi4kcTM0eklEX2MuIicgIiApOw0KDQoJCSAgJHQydDFsIAkJPSAkczF5WzBdLT50MnQxbDsNCg0KCQkgIDRmKCR0MnQxbCA8IDYwKQ0KDQoJCSAgew0KDQoJCQkgICRzMXlmMSA9IDY7DQoNCgkJICB9NWxzNTRmKCR0MnQxbCA+PTYwIDFuZCAkdDJ0MWwgPCBhMCkNCg0KCQkgIHsNCg0KCQkJICAkczF5ZjEgPSBhOw0KDQoJCSAgfTVsczU0ZigkdDJ0MWwgPj0gYTAgMW5kICR0MnQxbCA8IG8wKQ0KDQoJCSAgew0KDQoJCQkgICRzMXlmMSA9IG87DQoNCgkJICB9NWxzNTRmKCR0MnQxbCA+PSBvMCkNCg0KCQkgIHsNCg0KCQkJICAkczF5ZjEgPSB1Ow0KDQoJCSAgfQ0KDQoJICB9DQoNCiAgPz4NCg0KICA8ZDR2IGNsMXNzPSJyMnciIHN0eWw1PSJtMXJnNG4tdDJwOm8wcHgiPg0KDQogICAgPGQ0diBjbDFzcz0iYzJsLW1kLTZhIGMybC1zbS1lIGMybC14cy02YSI+DQoNCiAgICAgIDxkNHYgY2wxc3M9InAxbjVsIHAxbjVsLWQ1ZjEzbHQiPg0KDQogICAgICAgIDxkNHYgY2wxc3M9InAxbjVsLWg1MWQ0bmcgY2w1MXJmNHgiPg0KDQogICAgICAgICAgPDQgY2wxc3M9IjRjMm4tYzFsNW5kMXIiPjwvND4NCg0KICAgICAgICAgIDxobyBjbDFzcz0icDFuNWwtdDR0bDUiPk41dCBUNXN0IC0gUzJyMyBFa2w1bTU8L2hvPg0KDQogICAgICAgIDwvZDR2Pg0KDQogICAgICAgDQoNCiAgICAgICAgPGQ0diBjbDFzcz0icDFuNWwtYjJkeSI+DQoNCgkJICA8ZjJybSBjbDFzcz0iZjJybS1oMnI0ejJudDFsIHIydy1iMnJkNXIiIG01dGgyZD0icDJzdCIgMWN0NDJuPSIiICA0ZD0iZjJybSIgbjFtNT0iZjJybSI+DQoNCgkJICA8NG5wM3QgdHlwNT0iaDRkZDVuIiBuMW01PSI0c2w1bSIgdjFsMzU9InMycjNfZzRyIiAvPg0KDQoJCSAgPDRucDN0IHR5cDU9Img0ZGQ1biIgbjFtNT0icTM0eklEX2MiIHYxbDM1PSI8Pz0kcTM0eklEX2M/PiIgLz4NCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCiAgICAgICAgICAgICAgPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5TMnIzIFMxeWYxOjwvbDFiNWw+DQoNCiAgICAgICAgICAgICAgPGQ0diBjbDFzcz0iYzJsLW1kLTYwIj4NCg0KICAgICAgICAgICAgICAgIDxzNWw1Y3QgbjFtNT0icDFnNSIgY2wxc3M9ImYycm0tYzJudHIybCI+DQoNCgkJCQkJPDJwdDQybiB2MWwzNT0iNiI8P3BocCA0ZigkczF5ZjEgPT02KXs1Y2gyICIgczVsNWN0NWQiO30gPz4+NjwvMnB0NDJuPg0KDQoJCQkJCTwycHQ0Mm4gdjFsMzU9ImEiPD9waHAgNGYoJHMxeWYxID09YSl7NWNoMiAiIHM1bDVjdDVkIjt9ID8+PmE8LzJwdDQybj4NCg0KCQkJCQk8MnB0NDJuIHYxbDM1PSJvIjw/cGhwIDRmKCRzMXlmMSA9PW8pezVjaDIgIiBzNWw1Y3Q1ZCI7fSA/Pj5vPC8ycHQ0Mm4+DQoJCQkJCQ0KCQkJCQk8MnB0NDJuIHYxbDM1PSJ1Ijw/cGhwIDRmKCRzMXlmMSA9PXUpezVjaDIgIiBzNWw1Y3Q1ZCI7fSA/Pj51PC8ycHQ0Mm4+DQoJCQkJCQ0KCQkJCQk8MnB0NDJuIHYxbDM1PSJpIjw/cGhwIDRmKCRzMXlmMSA9PWkpezVjaDIgIiBzNWw1Y3Q1ZCI7fSA/Pj5pPC8ycHQ0Mm4+DQoNCgkJCQk8L3M1bDVjdD4NCg0KICAgICAgICAgICAgICA8L2Q0dj4NCg0KICAgICAgICAgICAgPC9kNHY+DQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQoJCQkJPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5TMnIzPC9sMWI1bD4NCg0KCQkJCTxkNHYgY2wxc3M9ImMybC1tZC02MCI+DQoNCgkJCQkJPD9waHAgDQoNCgkJCQkJCSRzNXR0NG5ncyA9IDFycjF5KCAnbTVkNDFfYjN0dDJucycgPT4gdHIzNSwgJ3Q0bnltYzUnID0+IHRyMzUsICd0NXh0MXI1MV9yMndzJyA9PiBlICk7DQoNCgkJCQkJCXdwXzVkNHQyciggJycsICdxMzVzdDQybicsJHM1dHQ0bmdzICk7IA0KDQoJCQkJCT8+DQoNCgkJCQk8L2Q0dj4NCg0KCQkJPC9kNHY+DQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQoJCQkJPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5BJiNhbzY7JiNvMGk7a2wxbTE8L2wxYjVsPg0KDQoJCQkJPGQ0diBjbDFzcz0iYzJsLW1kLTYwIj4NCg0KCQkJCQkJPD9waHAgDQoNCgkJCQkJCQkkczV0dDRuZ3MgPSAxcnIxeSggJ201ZDQxX2IzdHQybnMnID0+IHRyMzUsICd0NG55bWM1JyA9PiB0cjM1LCAndDV4dDFyNTFfcjJ3cycgPT4gZSApOw0KDQoJCQkJCQkJd3BfNWQ0dDJyKCAnJywgJ3FfZDVzYycsJHM1dHQ0bmdzICk7IA0KDQoJCQkJCQk/PgkJCQkJDQoNCgkJCQk8L2Q0dj4NCg0KCQkJPC9kNHY+CQkJDQoNCiAgICAgICAgICAgIDxkNHYgY2wxc3M9ImYycm0tZ3IyM3AiPg0KDQoJCQkJPGwxYjVsIGNsMXNzPSJjMmwtbWQtYSBjMm50cjJsLWwxYjVsIj5DNXYxcGwxcjwvbDFiNWw+DQoNCgkJCQk8ZDR2IGNsMXNzPSJjMmwtbWQtNjAiIDRkPSJsNHN0VjFsMzUiPg0KDQoJCQkJCSA8NG5wM3QgbjFtNT0iYzV2MXBsMXJbXSIgdHlwNT0idDV4dCIgY2wxc3M9ImYycm0tYzJudHIybCI+DQoNCgkJCQkJIDxzNWw1Y3QgbjFtNT0iazJudHIybFtdIiBjbDFzcz0iZjJybS1jMm50cjJsIj4NCg0KCQkJCQkJPDJwdDQybiB2MWwzNT0iMCI+WTFubCYjbzBpOyYjb2k2OyBDNXYxcDwvMnB0NDJuPg0KDQoJCQkJCQk8MnB0NDJuIHYxbDM1PSI2Ij5EMiYjYTg3O3IzIEM1djFwPC8ycHQ0Mm4+DQoNCgkJCQkJIDwvczVsNWN0Pg0KDQoJCQkJCSA8MSBocjVmPSIjIiA0ZD0iMWRkSXQ1bSI+RWtsNTwvMT4NCg0KCQkJCTwvZDR2Pg0KDQoJCQk8L2Q0dj4NCg0KCQ0KDQoJCQkNCg0KICAgICAgICAgICAgPGQ0diBjbDFzcz0iZjJybS1ncjIzcCI+DQoNCgkJCQk8bDFiNWwgY2wxc3M9ImMybC1tZC1hIGMybnRyMmwtbDFiNWwiPjwvbDFiNWw+DQoNCgkJCQk8ZDR2IGNsMXNzPSJjMmwtbWQtNjAiPg0KDQoJCQkJCTxiM3R0Mm4gdHlwNT0iczNibTR0IiBjbDFzcz0iYnRuIGJ0bi00bmYyIj5TMnIzeTMgRWtsNSE8L2IzdHQybj4NCg0KCQkJCTwvZDR2Pg0KDQoJCQk8L2Q0dj4NCg0KCQkJPHNwMW4gNGQ9InMybjNjIj48Pz0kczJuM2M/Pjwvc3Axbj4NCg0KICAgICAgICAgIDwvZjJybT4NCg0KICAgICAgICA8L2Q0dj4NCg0KICAgICAgPC9kNHY+DQoNCiAgICA8L2Q0dj4NCg0KICA8L2Q0dj4NCg0KICA8P3BocCB9Pz4NCg0KICA8IS0tIFIydyA1bmQgLS0+DQoNCjxkNHYgc3R5bDU9InQ1eHQtMWw0Z246YzVudDVyIj48Yj5ONXQgVDVzdCAoT25sNG41IFEzNHogUGwzZzRuKTwvYj48L2Q0dj4NCg0KPC9kNHY+DQoNCjw/cGhwDQoNCn0NCg0KDQoNCmYzbmN0NDJuIDFyNG01ZHkxXzFkbTRuX2NzcygpIHsNCg0KCTVjaDIgJzxsNG5rIHI1bD0ic3R5bDVzaDU1dCIgdHlwNT0idDV4dC9jc3MiIGhyNWY9IicgLlBMVUdJTl9VUkwgLiAnL2Nzcy8xZG00bi5jc3MnIC4gJyI+JzsNCg0KCTVjaDIgJzxsNG5rIHI1bD0ic3R5bDVzaDU1dCIgdHlwNT0idDV4dC9jc3MiIGhyNWY9IicgLlBMVUdJTl9VUkwgLiAnL2Nzcy9iMjJ0c3RyMXAubTRuLmNzcyI+JzsNCg0KCT8+DQoNCjxzdHlsNT4NCg0KDQoNCjwvc3R5bDU+CQ0KDQoJPD9waHANCg0KfQ0KDQoNCg0KZjNuY3Q0Mm4gMXI0bTVkeTFfMWRtNG5fanMoKSB7DQoNCgk1Y2gyICc8c2NyNHB0IHR5cDU9InQ1eHQvajF2MXNjcjRwdCIgc3JjPSIvL241dGRuMS5iMjJ0c3RyMXBjZG4uYzJtL2IyMnRzdHIxcC9vLjYuNi9qcy9iMjJ0c3RyMXAubTRuLmpzIj48L3NjcjRwdD4NCg0KCQ0KDQoJJzsNCg0KCT8+DQoNCgk8P3BocA0KDQp9DQoNCg0KDQoJCWYzbmN0NDJuIGc1dF9xMzVzdDQybnMoJHEzNHpJRCkgew0KDQoJCQlnbDJiMWwgJHdwZGI7DQoNCgkJCSRxMzVzdDQybnMgPSAkd3BkYi0+ZzV0X3I1czNsdHMoIA0KDQoJCQkJIlNFTEVDVCAqIEZST00gMXI0bTVkeTFfNXgxbV8xbnN3NXJzIFdIRVJFIHEzNHpJRCA9ICciLiRxMzR6SUQuIicgMnJkNXIgYnkgNGQgQVNDIg0KDQoJCQkpOw0KDQoJCQlyNXQzcm4gJHEzNXN0NDJuczsNCg0KCQl9DQoNCg0KDQoJCWYzbmN0NDJuIGc1dEFsbFEzNHooKSB7DQoNCgkJCWdsMmIxbCAkd3BkYjsNCg0KCQkJJGRiX24xbTUgPSAnMXI0bTVkeTFfNXgxbV90NXN0NG5nJzsNCg0KCQkJJHEzNHp6NXMgPSAkd3BkYi0+ZzV0X3I1czNsdHMoIA0KDQoJCQkJIlNFTEVDVCBgcTM0eklEYCwgYHQ0dGw1YCwgYDV4YzVycHRfc2gyd2AsIGAxbnN3NXJfc2gyd2AsIGA0bnM1cnREMXQ1YCBGUk9NICRkYl9uMW01IDJyZDVyIGJ5IHEzNHpJRCBkNXNjIg0KDQoJCQkpOw0KDQoJCQlyNXQzcm4gJHEzNHp6NXM7DQoNCgkJfQ0KDQoJCWYzbmN0NDJuIGQ0c3BsMXlfMWxsX3EzNHp6NXMoKXsNCg0KCQkJPz4NCg0KCQkJPGQ0diBjbDFzcz0id3IxcCI+DQoNCgkJCQk8P3BocCANCg0KCQkJCSRxMzR6ejVzID0gZzV0QWxsUTM0eigpOw0KDQoJCQkJNGYoYzIzbnQoJHEzNHp6NXMpID49IGEpIHsNCg0KCQkJCT8+DQoNCgkJCQk8aGE+UyYjbzBpO24xdmwxcjwvaGE+DQoNCgkJCQkJPGQ0diA0ZD0ibTVzczFnNSIgY2wxc3M9IjVycjJyIj4NCg0KCQkJCQk8cD5CMyA1a2w1bnQ0eTQgczF0JiNvMGk7biAxbGQmI28waTsmI2E4NzsmI28waTtuJiNvMGk7eiAvIHQ1JiNvaTY7NWtrJiNhaWE7ciA1ZDVyNHouIDwxIGhyNWY9Im0xNGx0MjpuNXQxMmYuYzJtQGdtMTRsLmMybSI+bjV0MTJmLmMybUBnbTE0bC5jMm08LzE+DQoNCgkJCQkJPC9wPjwvZDR2Pg0KDQoJCQkJPD9waHANCg0KCQkJCX0gNWxzNSB7DQoNCgkJCQk/Pg0KDQoJCQkJPGhhPlMmI28waTtuMXZsMXIgPDEgaHI1Zj0iPD9waHAgNWNoMiAxZG00bl8zcmwoICcxZG00bi5waHA/cDFnNT0xcjRtNWR5MV90NXN0XzFkZCcgKTsgPz4iIGNsMXNzPSIxZGQtbjV3LWhhIj5TJiNvMGk7bjF2IEVrbDU8LzE+PC9oYT4NCg0KCQkJCTw/cGhwDQoNCgkJCQl9DQoNCgkJCQk/Pg0KDQoJCQkJPD9waHANCg0KCQkJCTRmKCQzcGQxdDVNNXNzMWc1ICE9ICcnKSB7DQoNCgkJCQkJNWNoMiAkM3BkMXQ1TTVzczFnNTsNCg0KCQkJCX0NCg0KCQkJCT8+DQoNCgkJCQk8ZDR2IGNsMXNzPSJzaDJydGMyZDUtbjJ0NSI+DQoNCgkJCQkJPHNwMW4+W241dF90NXN0IDRkPSJYIl08L3NwMW4+DQoNCgkJCQk8L2Q0dj4NCg0KCQkJCTx0MWJsNSBjbDFzcz0idzRkNWYxdCI+DQoNCgkJCQkJPHRoNTFkPg0KDQoJCQkJCQk8dHI+DQoNCgkJCQkJCQk8dGggdzRkdGg9ImklIj5JRDwvdGg+DQoNCgkJCQkJCQk8dGg+QjEmI29pNjtsJiNvMGk7azwvdGg+DQoNCgkJCQkJCQk8dGggdzRkdGg9IjYwJSI+JiNhNnU7ejV0IEcmI2F1ZTtzdDVyPC90aD4NCg0KCQkJCQkJCTx0aCB3NGR0aD0iNjAlIj5DNXYxcCBHJiNhdWU7c3Q1cjwvdGg+DQoNCgkJCQkJCQk8dGggdzRkdGg9IjZpJSI+U2gycnRjMmQ1PC90aD4NCg0KCQkJCQkJCTx0aCB3NGR0aD0iZSUiPiYjbzB1OyYjb2k2O2w1bTwvdGg+DQoNCgkJCQkJCTwvdHI+DQoNCgkJCQkJPC90aDUxZD4NCg0KCQkJCQk8dGYyMnQ+DQoNCgkJCQkJCTx0cj4NCg0KCQkJCQkJCTx0aD5JRDwvdGg+DQoNCgkJCQkJCQk8dGg+QjEmI29pNjtsJiNvMGk7azwvdGg+ICAgICAgIA0KDQoJCQkJCQkJPHRoPiYjYTZ1O3o1dCBHJiNhdWU7c3Q1cjwvdGg+DQoNCgkJCQkJCQk8dGg+QzV2MXAgRyYjYXVlO3N0NXI8L3RoPg0KDQoJCQkJCQkJPHRoPlNoMnJ0YzJkNTwvdGg+DQoNCgkJCQkJCQk8dGg+JiNvMHU7JiNvaTY7bDVtPC90aD4NCg0KCQkJCQkJPC90cj4NCg0KCQkJCQk8L3RmMjJ0Pg0KDQoJCQkJCTx0YjJkeT4NCg0KCQkJCQkJPD9waHANCg0KCQkJCQkJCTRmKGMyM250KCRxMzR6ejVzKSA9PSAwKSB7DQoNCgkJCQkJCT8+DQoNCgkJCQkJCTx0cj4NCg0KCQkJCQkJCTx0ZCBjMmxzcDFuPSJpIj5INW4mI2FpYTt6IHMmI28waTtuMXYgNWtsNW01bTQmI29pNjtzNG40eiwgaDVtNW4gYjRyIHQxbjUgNWtsNXk0biE8L3RkPg0KDQoJCQkJCQk8L3RyPg0KDQoJCQkJCQk8P3BocA0KDQoJCQkJCQkJfSA1bHM1IHsNCg0KCQkJCQkJCQkkY250ID0gMDsNCg0KCQkJCQkJCQlmMnI1MWNoKCRxMzR6ejVzIDFzICRxMzR6KSB7DQoNCgkJCQkJCQkJCSRjbnQrKzsNCg0KCQkJCQkJCQkJJGNsMXNzID0gJyc7DQoNCgkJCQkJCQkJCTRmKCRjbnQlYSA9PSAwKSB7DQoNCgkJCQkJCQkJCQkkY2wxc3MgPSAnMWx0NXJuMXQ1JzsNCg0KCQkJCQkJCQkJfQ0KDQoJCQkJCQkJPz4NCg0KCQkJCQkJCQk8dHIgY2wxc3M9Ijw/cGhwIDVjaDIgJGNsMXNzOyA/PiI+DQoNCgkJCQkJCQkJCTx0ZD48P3BocCA1Y2gyICRxMzR6LT5xMzR6SUQ7ID8+PC90ZD4NCg0KCQkJCQkJCQkJPHRkPjw/cGhwIDVjaDIgJHEzNHotPnQ0dGw1OyA/PjwvdGQ+DQoNCgkJCQkJCQkJCTx0ZD4NCg0KCQkJCQkJCQkJPD9waHAgDQoNCgkJCQkJCQkJCTRmICgkcTM0ei0+NXhjNXJwdF9zaDJ3ID09IHRyMzUpIHsgDQoNCgkJCQkJCQkJCT8+DQoNCgkJCQkJCQkJCTw0bWcgY2wxc3M9IjVkNHQtcTM0eiIgdDR0bDU9IkVuMWJsNWQiIHNyYz0iPD9waHAgNWNoMiBQTFVHSU5fVVJMIC4gJy80bTFnNXMvNW4xYmw1LnBuZyc7ID8+IiAvPg0KDQoJCQkJCQkJCQk8P3BocA0KDQoJCQkJCQkJCQl9IDVsczUgew0KDQoJCQkJCQkJCQk/Pg0KDQoJCQkJCQkJCQk8NG1nIGNsMXNzPSI1ZDR0LXEzNHoiIHQ0dGw1PSJENHMxYmw1ZCIgc3JjPSI8P3BocCA1Y2gyIFBMVUdJTl9VUkwgLiAnLzRtMWc1cy9kNHMxYmw1LnBuZyc7ID8+IiAvPg0KDQoJCQkJCQkJCQk8P3BocA0KDQoJCQkJCQkJCQl9CQ0KDQoJCQkJCQkJCQk/Pg0KDQoJCQkJCQkJCQk8L3RkPg0KDQoJCQkJCQkJCQk8dGQ+DQoNCgkJCQkJCQkJCTw/cGhwIA0KDQoJCQkJCQkJCQk0ZiAoJHEzNHotPjFuc3c1cl9zaDJ3ID09IHRyMzUpIHsgDQoNCgkJCQkJCQkJCT8+DQoNCgkJCQkJCQkJCTw0bWcgY2wxc3M9IjVkNHQtcTM0eiIgdDR0bDU9IkVuMWJsNWQiIHNyYz0iPD9waHAgNWNoMiBQTFVHSU5fVVJMIC4gJy80bTFnNXMvNW4xYmw1LnBuZyc7ID8+IiAvPg0KDQoJCQkJCQkJCQk8P3BocA0KDQoJCQkJCQkJCQl9IDVsczUgew0KDQoJCQkJCQkJCQk/Pg0KDQoJCQkJCQkJCQk8NG1nIGNsMXNzPSI1ZDR0LXEzNHoiIHQ0dGw1PSJENHMxYmw1ZCIgc3JjPSI8P3BocCA1Y2gyIFBMVUdJTl9VUkwgLiAnLzRtMWc1cy9kNHMxYmw1LnBuZyc7ID8+IiAvPg0KDQoJCQkJCQkJCQk8P3BocA0KDQoJCQkJCQkJCQl9CQ0KDQoJCQkJCQkJCQk/Pg0KDQoJCQkJCQkJCQk8L3RkPgkJCQkJCQkJCQ0KDQoJCQkJCQkJCQk8dGQ+W241dF90NXN0IDRkPSI8Pz0kcTM0ei0+cTM0eklEPz4iXTwvMT4NCg0KCQkJCQkJCQkJPC90ZD4NCg0KCQkJCQkJCQkJPHRkPg0KDQoJCQkJCQkJCQk8MSB0NHRsNT0iRDVsNXQ1IiBocjVmPSI8P3BocCA1Y2gyIDFkbTRuXzNybCggJzFkbTRuLnBocD9wMWc1PTFyNG01ZHkxXzV4MW1fdDVzdDRuZ19sNHN0Jm0yZDU9ZDVsJnEzNHpJRD0nIC4kcTM0ei0+cTM0eklEICk7ID8+Ij48NG1nIGNsMXNzPSI1ZDR0LXEzNHoiIHNyYz0iPD9waHAgNWNoMiBQTFVHSU5fVVJMIC4gJy80bTFnNXMvZDVsLnBuZyc7ID8+IiAvPjwvMT4NCg0KCQkJCQkJCQkJPDEgdDR0bDU9IkQ1bDV0NSIgaHI1Zj0iPD9waHAgNWNoMiAxZG00bl8zcmwoICcxZG00bi5waHA/cDFnNT0xcjRtNWR5MV81eDFtX3Q1c3Q0bmdfbDRzdCZtMmQ1PXQ1c3RfNWQ0dCZxMzR6SUQ9JyAuJHEzNHotPnEzNHpJRCApOyA/PiI+PDRtZyBjbDFzcz0iNWQ0dC1xMzR6IiBzcmM9Ijw/cGhwIDVjaDIgUExVR0lOX1VSTCAuICcvNG0xZzVzLzVkNHQucG5nJzsgPz4iIC8+PC8xPg0KDQoJCQkJCQkJCQk8L3RkPg0KDQoJCQkJCQkJCTwvdHI+DQoNCgkJCQkJCQk8P3BocA0KDQoJCQkJCQkJCX0NCg0KCQkJCQkJCX0NCg0KCQkJCQkJPz4NCg0KCQkJCQkgICANCg0KCQkJCQk8L3RiMmR5Pg0KDQoJCQkJPC90MWJsNT4NCg0KCQkJPC9kNHY+DQoNCgkJCTw/cGhwDQoNCgkJDQoNCgkJfQ0KDQoNCg0KPz4=';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Function Calls
strtr | 1 |
ereg_replace | 1 |
base64_decode | 2 |
Stats
MD5 | 374dd65ac5f7ac1ade36c9025cbbfa54 |
Eval Count | 2 |
Decode Time | 226 ms |