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

Signing you up...

Thank you for signing up!

PHP Decode

$_F=__FILE__;$_X='P0tXP0x2TGRIKmQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0..

Decoded Output download

?><?php
/*
=====================================================
 DataLife Engine - by SoftNews Media Group 
-----------------------------------------------------
 https://dle-news.ru/
-----------------------------------------------------
 Copyright (c) 2004-2023 SoftNews Media Group
=====================================================
 This code is protected by copyright
=====================================================
 File: upgrade.php
-----------------------------------------------------
 Use: DLE upgrade
=====================================================
*/

if( !defined( 'DATALIFEENGINE' ) OR !defined( 'LOGGED_IN' ) ) {
	header( "HTTP/1.1 403 Forbidden" );
	header ( 'Location: ../../' );
	die( "Hacking attempt!" );
}

if($member_id['user_group'] != 1){ msg("error", $lang['addnews_denied'], $lang['db_denied']); }

include_once (DLEPlugins::Check(ENGINE_DIR . '/classes/zipextract.class.php'));

function convert_file( $file ) {
	
	$string = @file_get_contents($file);
	
	if(!$string) return false;

	if( function_exists( 'mb_convert_encoding' ) ) {
		$string = mb_convert_encoding( $string, "utf-8", "windows-1251" );
	} elseif( function_exists( 'iconv' ) ) {
		$string = iconv("windows-1251", "utf-8", $string);
	}

	if( $string ) {
		file_put_contents ($file, $string, LOCK_EX);
	}

	return true;
}

function need_convert_file( $file ) {
	
	$string = @file_get_contents($file);
	
	if(!$string) return false;

	if( function_exists( 'mb_convert_encoding' ) ) {

		$sample = mb_convert_encoding( $string, "utf-8", "utf-8" );

	} elseif( function_exists( 'iconv' ) ) {
	
		$sample = iconv("utf-8", "utf-8", $string);
	
	}

	if (md5($sample) == md5($string)) return false;

	return true;
}

function table_convert( $table ) {
	global $db;
	
	$table = $db->safesql( $table );
	
	$db->query( "ALTER TABLE `{$table}` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci" );

}

function need_table_convert( $table ) {
	global $db;
	
	$table = $db->safesql( $table );
	
	$sql = $db->query( "SHOW FULL COLUMNS FROM `$table`" );
	
	while ( $row = $db->get_row($sql) ) {

		if ( $row['Collation'] ) {
			
			list( $charset ) = explode( '_', $row['Collation'] );
			$charset = strtolower( $charset );

			if ( $charset !== 'utf8mb4' ) {
				return true;
			}
		}
		
	}
	
	$row = $db->super_query( "SHOW TABLE STATUS LIKE '{$table}'" );
	list( $table_charset ) = explode( '_', $row['Collation'] );
	$table_charset = strtolower( $table_charset );
	
	if ( $table_charset != 'utf8mb4') {
		return true;
	}
	
	return false;
	
}

function files_check_chmod( $dir,  $bad_files = array() ) {
	
	if ( $dh = @opendir( $dir ) ) {
		
		while ( false !== ( $file = readdir($dh) ) ) {
			
			if ( $file == '.' or $file == '..' or $file == '.svn' or $file == '.DS_store' ) {
					continue;
			}
		
			if ( is_dir( $dir . "/" . $file ) ) {

				$bad_files = files_check_chmod( $dir . "/" . $file, $bad_files );
				
			} else {
				
				if ( preg_match( "#.*\.(php|txt|tpl)#i", $file ) ) {
					$folder = str_replace(ROOT_DIR, "",$dir);
					
					if(!is_writable($dir . "/" . $file)) {
						$bad_files[] = $folder . "/" . $file;
					}
				}
			}
		}
	}
	
	return $bad_files;
}

function get_files( $dir,  $files = array() ) {
	
	if ( $dh = @opendir( $dir ) ) {
		
		while ( false !== ( $file = readdir($dh) ) ) {
			
			if ( $file == '.' or $file == '..' or $file == '.svn' or $file == '.DS_store' ) {
					continue;
			}
		
			if ( is_dir( $dir . "/" . $file ) ) {

				$files = get_files( $dir . "/" . $file, $files );
				
			} else {
				
				if ( preg_match( "#.*\.(php|txt|tpl)#i", $file ) ) {
					$folder = str_replace(ROOT_DIR, "",$dir);
					$files[] = $folder . "/" . $file;
				}
			}
		}
	}
	
	return $files;
}

if($_REQUEST['action'] == "upgrade_files" ) {
	
		if( !isset($_REQUEST['user_hash']) OR !$_REQUEST['user_hash'] OR $_REQUEST['user_hash'] != $dle_login_hash ) {
			die( "Hacking attempt! User not found" );
		}
	
		$distr_file = ENGINE_DIR . "/cache/system/" . md5('ugrdistr'.SECURE_AUTH_KEY) . ".zip";
		
		$done = 0;

		try {
			
			$fs = new dle_zip_extract( $distr_file );
			$total = $fs->zip->numFiles;
			
			$offset = intval($_POST['offset']);
			
			if( $_SESSION['distr']['ftp'] )	{
				$fs->FtpConnect( $_SESSION['distr']['ftp'] );
			}
			
			$done = $fs->ExtractZipArchive($offset, 100);
			
			if (function_exists('opcache_reset')) {
				opcache_reset();
			}
		
		} catch ( Exception $e ) {
	
			$response['error'] = $e->getMessage();
			echo json_encode($response);
			die();
			
		}
		
		if( !isset($_SESSION['files_errors']) ) $_SESSION['files_errors'] = array();
	
		if( $done )	{
			$offset = $offset + $done;
		} else {
			$offset = $total;
		}
		
		if($offset >= $total){
			$fs->FixHtaccess();
			@unlink(ENGINE_DIR.'/data/snap.db');
			clear_all_caches();
		}
		
		if( $_SESSION['distr']['ftp'] )	{
			$fs->DisconnectFTP();
		}
		
		if( count($fs->errors_list) ) $_SESSION['files_errors'] = array_merge($_SESSION['files_errors'], $fs->errors_list);
		
		echo "{\"status\": \"ok\", \"offset\": \"{$offset}\"}";
		die();


} elseif($_REQUEST['action'] == "checkftp" ) {
	
	if( !isset($_REQUEST['user_hash']) OR !$_REQUEST['user_hash'] OR $_REQUEST['user_hash'] != $dle_login_hash ) {
		die( "Hacking attempt! User not found" );
	}
	
	try {
		
		$fs = new dle_zip_extract();
		$fs->FtpConnect( $_POST['ftp'] );
		
	} catch ( Exception $e ) {
		
		$response['error'] = $e->getMessage();
		echo json_encode($response);
		die();
	}

	$_SESSION['distr']['ftp'] = $_POST['ftp'];
	
	echo "{\"status\": \"ok\"}";
	die();
	
} elseif($_REQUEST['action'] == "download" ) {
	
	if ( !isset( $_SESSION['distr'] ) )	{
		header( "Location: ?mod=upgrade" );
		die();
	}
	
	$no_access = files_check_chmod(ROOT_DIR."/engine" );


	if($_REQUEST['subaction'] == "manual" OR !class_exists('ZipArchive') ) {
		
		echoheader( "<i class=\"fa fa-database position-left\"></i><span class=\"text-semibold\">{$lang['upgr_dbtitle_2']}</span>", $lang['upgr_dbtitle_3']);
		
		$lang['upgr_ftp_10'] = str_replace("{link}", "<a href=\"{$_SESSION['distr']['link']}\" target=\"_blank\">{$lang['upgr_ftp_11']} {$_SESSION['distr']['version']}</a>", $lang['upgr_ftp_10']);
		
		echo <<<HTML
	<div class="panel panel-default">
	  <div class="panel-heading">
		{$lang['upgr_dbtitle_2']}
	  </div>
		<div class="panel-body">
			{$lang['upgr_ftp_9']}
		</div>
		<div class="panel-body">
			<ol>{$lang['upgr_ftp_10']}</ol>
		</div>
	  <div class="panel-footer">
		 <a href="?mod=upgrade&action=dbupgrade&to={$_SESSION['distr']['version']}" class="btn bg-teal btn-sm btn-raised"><i class="fa fa-forward position-left"></i>{$lang['upgr_next']}</a>
	   </div>
	</div>
HTML;

		if( !class_exists('ZipArchive') ) {
			echo "<div class=\"alert alert-warning alert-styled-left alert-arrow-left alert-component\">{$lang['upgr_f_error_19']}</div>";
		}
		
		echofooter();
		
	} elseif( count($no_access) AND !isset( $_SESSION['distr']['ftp'] ) ) {
		
		echoheader( "<i class=\"fa fa-database position-left\"></i><span class=\"text-semibold\">{$lang['upgr_dbtitle_2']}</span>", $lang['upgr_dbtitle_3']);

		$root = ROOT_DIR;

		echo <<<HTML
	<form class="form-horizontal" id="ftpserver">
	<div class="panel panel-default">
	  <div class="panel-heading">
		{$lang['upgr_dbtitle_2']}
	  </div>
		<div class="panel-body">
			{$lang['upgr_ftp_1']}
		</div>
		<div class="panel-body">
			<div class="form-group">
				<label class="control-label col-sm-2">{$lang['upgr_ftp_2']}</label>
				<div class="col-sm-10">
					<label class="radio-inline position-left"><input class="icheck" type="radio" name="ftp[type]" value="ftp" checked>FTP</label>
					<label class="radio-inline position-left"><input class="icheck" type="radio" name="ftp[type]" value="sslftp">SSL FTP</label>
					<label class="radio-inline position-left"><input class="icheck" type="radio" name="ftp[type]" value="ssh2">SFTP SSH2</label>
				</div>
			</div>
			<div class="form-group">
				<label class="control-label col-sm-2">{$lang['upgr_ftp_3']}</label>
				<div class="col-sm-10">
					<input type="text" class="form-control width-350 position-left" name="ftp[server]">
					<span class="position-left">{$lang['upgr_ftp_4']}</span>
					<input type="text" class="form-control position-left" name="ftp[port]" style="width:45px" value="21">
				</div>
			</div>
			<div class="form-group">
				<label class="control-label col-sm-2">{$lang['upgr_ftp_5']}</label>
				<div class="col-sm-10">
					<input type="text" class="form-control width-350 position-left" name="ftp[username]">
				</div>
			</div>
			<div class="form-group">
				<label class="control-label col-sm-2">{$lang['upgr_ftp_6']}</label>
				<div class="col-sm-10">
					<input type="text" class="form-control width-350 position-left" name="ftp[password]">
				</div>
			</div>
			<div class="form-group">
				<label class="control-label col-sm-2">{$lang['upgr_ftp_7']}</label>
				<div class="col-sm-10">
					<input type="text" class="form-control width-450 position-left" name="ftp[path]" value="{$root}">
				</div>
			</div>
		</div>
	  <div class="panel-footer">
		 <button id="button" onclick="check_ftp(); return false;" type="button" class="btn bg-teal btn-sm btn-raised position-left"><i class="fa fa-forward position-left"></i>{$lang['upgr_next']}</button>
		 <a href="?mod=upgrade&action=download&subaction=manual" class="btn bg-brown-600 btn-sm btn-raised"><i class="fa fa-download position-left"></i>{$lang['upgr_ftp_8']}</a>
	   </div>
	<script>
	<!--
	function check_ftp() {
	
		var formData = new FormData($('#ftpserver')[0]);
		
		ShowLoading('');
		$('#button').attr("disabled", "disabled");
		
		$.ajax({
			url: "?mod=upgrade&action=checkftp&user_hash={$dle_login_hash}",
			data: formData,
			processData: false,
			contentType: false,
			type: 'POST',
			dataType: 'json',
			success: function(data) {
			
				HideLoading('');
				
				if (data.status == "ok") {
					setTimeout("window.location = '?mod=upgrade&action=download'", 300 );
				} else {
					$('#button').attr("disabled", false);
					DLEalert(data.error, '{$lang['all_info']}');
						
				}
			}
		});
	
		return false;
	}
	//-->
	</script>
	</div>
	</form>
HTML;

		echofooter();
		
	} else {
		
		$distr_file = ENGINE_DIR . "/cache/system/" . md5('ugrdistr'.SECURE_AUTH_KEY) . ".zip";
		@unlink( $distr_file );

		$arrContextOptions=array(
		    "ssl"=>array(
		        "verify_peer"=>false,
		        "verify_peer_name"=>false,
		    ),
		);

		if ( !@copy($_SESSION['distr']['link'], $distr_file, stream_context_create($arrContextOptions) ) ) {
			msg( "error", $lang['addnews_error'], $lang['upgr_f_error_8'], array('javascript:location.reload(true);' => $lang['upgr_btn_1'], '?mod=upgrade&action=download&subaction=manual' => $lang['upgr_ftp_8'] ) );
		}
		
		if( md5_file($distr_file) != $_SESSION['distr']['crc']) {
			msg( "error", $lang['addnews_error'], $lang['upgr_f_error_9'], array('javascript:location.reload(true);' => $lang['upgr_btn_1'], '?mod=upgrade&action=download&subaction=manual' => $lang['upgr_ftp_8'] ) );
		}
		
		$fs = new dle_zip_extract( $distr_file );
		$total = $fs->zip->numFiles;

		DLEFiles::init( 0, false, '');
		$rootlist = DLEFiles::ListDirectory( '', array('php'), 0 );
		
		foreach ( $rootlist['files'] as $rootfile ) {
			$data = DLEFiles::Read( $rootfile['name'], 0 );
				
			if( stripos( $data, 'Use: Cron operations' ) !== false ) {
				
				if( stripos( $data, '$allow_cron = 0;' ) === false ) {
					$_SESSION['cronfile'] = $rootfile['name'];
				}
				
				break;
			}
		
		}

		echoheader( "<i class=\"fa fa-database position-left\"></i><span class=\"text-semibold\">{$lang['upgr_dbtitle_2']}</span>", $lang['upgr_dbtitle_3']);
		
		echo <<<HTML
			<div class="panel panel-default">
			  <div class="panel-heading">
				{$lang['upgr_ftp_12']}
			  </div>
				<div class="panel-body">
					<div class="progress"><div id="progressbar" class="progress-bar progress-blue" style="width:0%;"><span></span></div></div>
					<div class="text-size-small">{$lang['upgr_ftp_14']} <span id="files_ok"></span> <span id="status"></span></div>
				</div>
				<div class="panel-body">
					<div id="ajaxerror"></div>
					<div class="text-muted text-size-small">{$lang['upgr_ftp_13']}</div>
				</div>	
				<div class="panel-footer">
					<button id="button" type="button" class="btn bg-teal btn-sm btn-raised" disabled><i class="fa fa-forward position-left"></i>{$lang['upgr_next']}</button>
				</div>
			</div>
<script>

	var total = {$total};
	var offset = 0;

	function upgrade_files(offset)  {

		$('#ajaxerror').html('');

		$.post("?user_hash={$dle_login_hash}", { mod: 'upgrade', action: 'upgrade_files', offset: offset },
			function(data){
				if (data) {
					if (data.status == "ok") {
					
						offset = data.offset;

						$('#files_ok').text(offset);
						
						var proc = Math.round( (100 * data.offset) / total );
	
						if ( proc > 100 ) proc = 100;
	
						$('#progressbar').css( "width", proc + '%' );

						 if (data.offset >= total)
						 {
							setTimeout("window.location = '?mod=upgrade&action=dbupgrade&to={$_SESSION['distr']['version']}'", 100 );
							
						 } else { setTimeout("upgrade_files(" + data.offset + ")", 300 ); }
	
	
					} else if( data.error ) { $('#status').text(data.error); }
	
				}
			}, "json").fail(function(jqXHR, textStatus, errorThrown ) {

				var error_status = '';
			
				if (jqXHR.status < 200 || jqXHR.status >= 300) {
				  error_status = 'HTTP Error: ' + jqXHR.status;
				} else {
					error_status = 'Invalid JSON: ' + jqXHR.responseText;
				}
		
				$('#status').html('{$lang['upgr_error']}');
				$('#ajaxerror').html('<div class="alert alert-danger alert-styled-left alert-bordered">' + error_status + '</div>');
				$('#button').attr("disabled", false);
			
		});
	
		return false;
	
	}

	$(function() {
		
		$('#button').click(function() {
			$('#button').attr("disabled", "disabled");
			upgrade_files(offset);
			return false;
		});
		
		setTimeout("upgrade_files(offset)", 300 );
	});
</script>
HTML;

		echofooter();
	}
	

	
} elseif($_REQUEST['action'] == "checklicense" ) {

	if( !isset($_REQUEST['user_hash']) OR !$_REQUEST['user_hash'] OR $_REQUEST['user_hash'] != $dle_login_hash ) {
		die( "Hacking attempt! User not found" );
	}
	
	if( strlen(trim((string)$_REQUEST['dle_key'])) != 29 ){
		echo "{\"error\": \"{$lang['upgr_f_error_5']}\"}";
		die();
	}
	
	$params = array(
		'action' => 'info',
		'domain' => $_SERVER['HTTP_HOST'],
		'key' => (string)$_REQUEST['dle_key'],
		'version' => VERSIONID,
		'build' => BUILDID,
		'site_key' => get_domen_hash()
	);

	$data = http_get_contents("https://dle-news.ru/extras/upgrade/index.php?".http_build_query($params, '', '&') );

	if( $data !== false ) {

		$data = json_decode ($data, true);

		if(is_array($data) ) {

			if( isset($data['error']) AND $data['error']) {
				
				if( $data['error'] == "-3" ) $data['error'] = $lang['upgr_f_error_2'];
				if( $data['error'] == "-2" ) $data['error'] = $lang['upgr_f_error_3'];
				if( $data['error'] == "-1" ) $data['error'] = $lang['upgr_f_error_4'];
				
				echo "{\"error\": \"{$data['error']}\"}";
				die();
			}
			
			if( $data['distr']['version'] ) {

				if( version_compare(VERSIONID, $data['distr']['version'], '>') ) {
					echo "{\"error\": \"{$lang['upgr_f_error_6']}\"}";
					die();
				}
				
				if( version_compare(VERSIONID, $data['distr']['version'], '==') AND version_compare(BUILDID, $data['distr']['build'], '>=') AND !defined('DEMOVERSION') ) {
					echo "{\"error\": \"{$lang['upgr_f_error_6']}\"}";
					die();
				}

				if (isset($data['distr']['phpversion']) AND $data['distr']['phpversion']) {
					$phpv = phpversion();
					if (version_compare($phpv, $data['distr']['phpversion'], '<')) {

						$lang['upgr_f_error_20'] = str_replace('{version}', '<b><span style=\"color:red\">' . $phpv . '</span></b>', $lang['upgr_f_error_20']);
						$lang['upgr_f_error_20'] = str_replace('{regversion}', '<b>' . $data['distr']['phpversion']  . '</b>', $lang['upgr_f_error_20']);
						$lang['upgr_f_error_20'] = str_replace('{dleversion}', $data['distr']['version'], $lang['upgr_f_error_20']);

						echo "{\"error\": \"{$lang['upgr_f_error_20']}\"}";
						die();
					}
				}

				$_SESSION['distr'] = $data['distr'];
				echo "{\"status\": \"ok\"}";
				die();
				
			}
			
		}
		
	}

	echo "{\"error\": \"{$lang['upgr_f_error_1']}\"}";
	die();
	
} elseif($_REQUEST['action'] == "dbupgradecheck" ) {

	if ( !$_SESSION['db_upgrade'] )	{
		header( "Location: ?mod=main" );
		die();
	}
	
	unset($_SESSION['db_upgrade']);
	
	if( isset($_SESSION['query_errors']) AND is_array( $_SESSION['query_errors'] ) ) $errors_query = count( $_SESSION['query_errors'] ); else $errors_query = 0;	
	if( isset($_SESSION['files_errors']) AND is_array( $_SESSION['files_errors'] ) ) $errors_files = count( $_SESSION['files_errors'] ); else $errors_files = 0;
	
	$lang['upgr_db_success'] = str_replace("{version}", $config['version_id'], $lang['upgr_db_success']);

	if(COLLATE != "utf8" AND COLLATE != "utf8mb4") {
		
		if( !$errors_query AND !$errors_files ) {
			
			$_SESSION['db_convert'] = 1;
			unset($_SESSION['query_errors']);
			unset($_SESSION['files_errors']);
			header( "Location: ?mod=upgrade&action=dodbconvert&user_hash={$dle_login_hash}" );
			die();
		}
		
		$next_link = '?mod=upgrade&action=dbconvert';
		
	} else $next_link = '?mod=main';
	
	if( !$errors_query AND !$errors_files ) {
		
		unset($_SESSION['query_errors']);
		unset($_SESSION['files_errors']);
		
		msg( "success", $lang['all_info'], $lang['upgr_db_success'], array( $next_link => $lang['upgr_next']) );
	}
	
	echoheader( "<i class=\"fa fa-database position-left\"></i><span class=\"text-semibold\">{$lang['upgr_dbtitle_2']}</span>", $lang['upgr_dbtitle_3']);
		
	$errors = "<div class=\"panel-body\">".$lang['upgr_db_success']."</div>";
	$errors .= "<div class=\"panel-body\">".$lang['upgr_db_errors']."</div>";
	$sql_errors = "";
	$file_errors = "";

	if($errors_files) {
		foreach ($_SESSION['files_errors'] as $value) {
			$file_errors .= "<div class=\"quote\"><b>{$lang['upgr_file']}</b> {$value['file']}<br /><b>{$lang['upgr_db_errt']}</b> {$value['error']}</div>";
		}
		
		$errors .= "<div class=\"panel-body\"><div class=\"text-size-small pre-scrollable\">".$file_errors."</div></div>";
	}
	
	if($errors_query) {
		foreach ($_SESSION['query_errors'] as $value) {
			$sql_errors .= "<div class=\"quote\"><b>{$lang['upgr_db_query']}</b> {$value['query']}<br /><b>{$lang['upgr_db_errt']}</b> {$value['error']}</div>";
		}
		
		$errors .= "<div class=\"panel-body\"><div class=\"text-size-small pre-scrollable\">".$sql_errors."</div></div>";
	}
	
	
		echo <<<HTML
	<div class="panel panel-default">
	  <div class="panel-heading">
		{$lang['upgr_dbtitle_2']}
	  </div>
	  {$errors}
	  <div class="panel-footer">
		 <a href="{$next_link}" class="btn bg-teal btn-sm btn-raised position-left"><i class="fa fa-forward position-left"></i>{$lang['upgr_next']}</a>
	   </div>
	</div>
HTML;

	unset($_SESSION['query_errors']);
	unset($_SESSION['files_errors']);
		
	echofooter();
	die();
	
} elseif($_REQUEST['action'] == "dodbupgrade" ) {
	
	if ( !$_SESSION['db_upgrade'] )	{
		header( "Location: ?mod=upgrade&action=dbupgrade" );
		die();
	}
	
	if( $config['version_id'] == VERSIONID ) {
		echo "{\"status\": \"ok\", \"version\":\"{$config['version_id']}\"}";
		die();
	}
		
	$row = $db->super_query("SHOW TABLE STATUS WHERE Name = '" . PREFIX . "_post'");
	$storage_engine = $row['Engine'];
	
	if ( strtolower($storage_engine) == "innodb" ) {
		$storage_engine = "InnoDB";
	} else $storage_engine = "MyISAM";

	if( isset($_SESSION['distr']) ) {
		$config['key'] = md5( get_domen_hash() . DINITVERSION );
		unset($_SESSION['distr']);
	}

	if( file_exists( ENGINE_DIR . "/inc/upgrade/" . totranslit($config['version_id']) . ".php" ) ) {
		include ( ENGINE_DIR . "/inc/upgrade/" . totranslit($config['version_id']) . ".php" );
	}
	
	if( !isset($_SESSION['query_errors']) ) $_SESSION['query_errors'] = array();
	
	if( count($db->query_errors_list) ) $_SESSION['query_errors'] = array_merge($_SESSION['query_errors'], $db->query_errors_list);

	clear_all_caches();
	@unlink(ENGINE_DIR.'/data/snap.db');
	
	echo "{\"status\": \"ok\", \"version\":\"{$config['version_id']}\"}";
	die();
	
} elseif($_REQUEST['action'] == "dbsettingsconvert" ) {
	
	if ( !$_SESSION['db_convert'] )	{
		header( "Location: ?mod=upgrade&action=dbconvert" );
		die();
	}

	if( !isset($_REQUEST['user_hash']) OR !$_REQUEST['user_hash'] OR $_REQUEST['user_hash'] != $dle_login_hash ) {
		die( "Hacking attempt! User not found" );
	}
	
	$config_dbhost = DBHOST;
	$config_dbname = DBNAME;
	$config_dbuser = DBUSER;
	$config_dbpasswd = DBPASS;
	$config_dbprefix = PREFIX;
	$config_userprefix = USERPREFIX;
	$auth_key = SECURE_AUTH_KEY;
	
	$config_dbcollate = "utf8mb4";
	$config_dbpasswd = str_replace ('"', '\"', str_replace ("$", "\$", $config_dbpasswd) );

	$dbconfig = <<<HTML
<?php
	
define ("DBHOST", "{$config_dbhost}"); 
	
define ("DBNAME", "{$config_dbname}");
	
define ("DBUSER", "{$config_dbuser}");
	
define ("DBPASS", "{$config_dbpasswd}");  
	
define ("PREFIX", "{$config_dbprefix}");
	
define ("USERPREFIX", "{$config_userprefix}");
	
define ("COLLATE", "{$config_dbcollate}");
	
define('SECURE_AUTH_KEY', '{$auth_key}');
	
\$db = new db;
	
?>
HTML;
	
	$handler = fopen(ENGINE_DIR.'/data/dbconfig.php', "w");
	fwrite($handler, $dbconfig);
	fclose($handler);
	
	unset($_SESSION['db_convert']);
	clear_all_caches();
	
	echo "{\"status\": \"ok\"}";
	die();	

} elseif($_REQUEST['action'] == "settingsconvert" ) {

	if ( !$_SESSION['db_convert'] )	{
		header( "Location: ?mod=upgrade&action=dbconvert" );
		die();
	}

	if( !isset($_REQUEST['user_hash']) OR !$_REQUEST['user_hash'] OR $_REQUEST['user_hash'] != $dle_login_hash ) {
		die( "Hacking attempt! User not found" );
	}
	
	$config['charset'] = "utf-8";
	$handler = fopen(ENGINE_DIR.'/data/config.php', "w");
	fwrite($handler, "<?php 

//System Configurations

\$config = array (

");
	foreach($config as $name => $value)
	{
		fwrite($handler, "'{$name}' => '{$value}',

");
	}
	fwrite($handler, ");

?>");
	fclose($handler);

	$config_dbhost = DBHOST;
	$config_dbname = DBNAME;
	$config_dbuser = DBUSER;
	$config_dbpasswd = DBPASS;
	$config_dbprefix = PREFIX;
	$config_userprefix = USERPREFIX;
	$auth_key = SECURE_AUTH_KEY;
	
	$config_dbcollate = "utf8mb4";
	$config_dbpasswd = str_replace ('"', '\"', str_replace ("$", "\$", $config_dbpasswd) );

	$dbconfig = <<<HTML
<?php
	
define ("DBHOST", "{$config_dbhost}"); 
	
define ("DBNAME", "{$config_dbname}");
	
define ("DBUSER", "{$config_dbuser}");
	
define ("DBPASS", "{$config_dbpasswd}");  
	
define ("PREFIX", "{$config_dbprefix}");
	
define ("USERPREFIX", "{$config_userprefix}");
	
define ("COLLATE", "{$config_dbcollate}");
	
define('SECURE_AUTH_KEY', '{$auth_key}');
	
\$db = new db;
	
?>
HTML;
	
	$handler = fopen(ENGINE_DIR.'/data/dbconfig.php', "w");
	fwrite($handler, $dbconfig);
	fclose($handler);

	$settings_files = get_files(ROOT_DIR."/engine/data");
	
	foreach($settings_files as $file) {
		if( need_convert_file(ROOT_DIR.$file) ) {
			convert_file(ROOT_DIR.$file);
		}
	}

	unset($_SESSION['db_convert']);
	
	clear_all_caches();
	
	echo "{\"status\": \"ok\"}";
	die();

} elseif($_REQUEST['action'] == "templateconvert" ) {

	if ( !$_SESSION['db_convert'] )	{
		header( "Location: ?mod=upgrade&action=dbconvert" );
		die();
	}

	if( !isset($_REQUEST['user_hash']) OR !$_REQUEST['user_hash'] OR $_REQUEST['user_hash'] != $dle_login_hash ) {
		die( "Hacking attempt! User not found" );
	}

	$template_files = get_files(ROOT_DIR."/templates");
	
	foreach($template_files as $file) {
		if( need_convert_file(ROOT_DIR.$file) ) {
			convert_file(ROOT_DIR.$file);
		}
	}
	
	echo "{\"status\": \"ok\"}";
	die();

} elseif($_REQUEST['action'] == "tableconvert" ) {
	
	if( !isset($_REQUEST['user_hash']) OR !$_REQUEST['user_hash'] OR $_REQUEST['user_hash'] != $dle_login_hash ) {
		die( "Hacking attempt! User not found" );
	}
	
	if ( !$_SESSION['db_convert'] )	{
		header( "Location: ?mod=upgrade&action=dbconvert" );
		die();
	}

	$table = trim(totranslit($_POST['table'], false, false));
	
	if(!$table) die('error');
	
	if( need_table_convert( $table ) ) {
		table_convert( $table );
	}
	
	echo "{\"status\": \"ok\"}";
	die();
	
} elseif($_REQUEST['action'] == "dodbconvert" ) {

	if ( !$_SESSION['db_convert'] )	{
		header( "Location: ?mod=upgrade&action=dbconvert" );
		die();
	}

	if( !isset($_REQUEST['user_hash']) OR !$_REQUEST['user_hash'] OR $_REQUEST['user_hash'] != $dle_login_hash ) {
		msg( "error", $lang['addnews_error'], $lang['sess_error'] );
	}
	

	$tables = array();
	$sql = $db->query( "SHOW TABLES" );
	
	while ( $row = $db->get_array($sql) ) {
		if( substr($row[0], 0, strlen( PREFIX ) ) == PREFIX ) {
			if( need_table_convert($row[0]) ) $tables[] = $row[0];
		}
	}
	
	if(!count($tables) ) msg( "warning", $lang['all_info'], $lang['upgr_all_conv'] );
	
	$total = $totaltables = count($tables);
	$tables = "['".implode("','", $tables)."']";

	if($_REQUEST['subaction'] != "onlymb4" ) {
		
		$total = $total+2;
		
		$convert_files = <<<HTML
		function convert_templates()  {
		
			step ++;
			
			$('#wconvert').html('{$lang['upgr_templ_conv']}');
			$('#ajaxerror').html('');
			
			$.post("?user_hash={$dle_login_hash}", { mod: 'upgrade', action: 'templateconvert' },
				function(data){
		
					if (data) {
		
						if (data.status == "ok") {
		
							var proc = Math.round( (100 * step) / total );
		
							if ( proc > 100 ) proc = 100;
		
							$('#progressbar').css( "width", proc + '%' );
							
							setTimeout("convert_settings()", 300 );
		
						}
		
					}
				}, "json").fail(function(jqXHR, textStatus, errorThrown ) {

				var error_status = '';
			
				if (jqXHR.status < 200 || jqXHR.status >= 300) {
				  error_status = 'HTTP Error: ' + jqXHR.status;
				} else {
					error_status = 'Invalid JSON: ' + jqXHR.responseText;
				}
		
				$('#status').html('{$lang['upgr_error']}');
				$('#ajaxerror').html('<div class="alert alert-danger alert-styled-left alert-bordered">' + error_status + '</div>');
				$('#button').attr("disabled", false);
			
			});
		
			return false;
		
		}
		
		function convert_settings()  {
		
			step ++;
			
			$('#wconvert').html('{$lang['upgr_sett_conv']}');
			$('#ajaxerror').html('');
			
			$.post("?user_hash={$dle_login_hash}", { mod: 'upgrade', action: 'settingsconvert' },
				function(data){
		
					if (data) {
		
						if (data.status == "ok") {
							var proc = Math.round( (100 * step) / total );
		
							if ( proc > 100 ) proc = 100;
		
							$('#progressbar').css( "width", proc + '%' );
							
							setTimeout("window.location = '?mod=main'", 300 );
		
						}
		
					}
				}, "json").fail(function(jqXHR, textStatus, errorThrown ) {

					var error_status = '';
				
					if (jqXHR.status < 200 || jqXHR.status >= 300) {
					  error_status = 'HTTP Error: ' + jqXHR.status;
					} else {
						error_status = 'Invalid JSON: ' + jqXHR.responseText;
					}
			
					$('#status').html('{$lang['upgr_error']}');
					$('#ajaxerror').html('<div class="alert alert-danger alert-styled-left alert-bordered">' + error_status + '</div>');
					$('#button').attr("disabled", false);
			
			});
		
			return false;
		
		}
HTML;

	} else { $convert_files = ""; $total = $total+1; }
	
	echoheader( "<i class=\"fa fa-database position-left\"></i><span class=\"text-semibold\">{$lang['upgr_dbtitle']}</span>", $lang['upgr_dbtitle_1']);

	echo <<<HTML
<script>

	var total = $total;
	var totaltables = $totaltables;
	var tables = {$tables};
	var step = 0;
	var table_info = '{$lang['upgr_table_conv']}';

	function convert_tables()  {
	
		var table = tables[step];
		step ++;
		
		$('#wconvert').html(table_info + ' <b>' + table + '</b>');
		$('#ajaxerror').html('');
		
		$.post("?user_hash={$dle_login_hash}", { mod: 'upgrade', action: 'tableconvert', table: table },
			function(data){
	
				if (data) {
	
					if (data.status == "ok") {
	
						var proc = Math.round( (100 * step) / total );
	
						if ( proc > 100 ) proc = 100;
	
						$('#progressbar').css( "width", proc + '%' );

						 if (step >= totaltables)
						 {
							if (typeof convert_templates == 'function') {
							
								setTimeout("convert_templates()", 300 );
								
							} else {
							
								setTimeout("convert_dbsettings()", 300 );
								
							}
							
						 } else { setTimeout("convert_tables()", 300 ); }
	
	
					}
	
				}
			}, "json").fail(function(jqXHR, textStatus, errorThrown ) {

				var error_status = '';
			
				if (jqXHR.status < 200 || jqXHR.status >= 300) {
				  error_status = 'HTTP Error: ' + jqXHR.status;
				} else {
					error_status = 'Invalid JSON: ' + jqXHR.responseText;
				}
		
				$('#status').html('{$lang['upgr_error']}');
				$('#ajaxerror').html('<div class="alert alert-danger alert-styled-left alert-bordered">' + error_status + '</div>');
				$('#button').attr("disabled", false);
			
		});
	
		return false;
	
	}
	
	function convert_dbsettings()  {
		
		step ++;
			
		$('#wconvert').html('{$lang['upgr_sett_conv']}');
		$('#ajaxerror').html('');
		
		$.post("?user_hash={$dle_login_hash}", { mod: 'upgrade', action: 'dbsettingsconvert' },
			function(data){
	
				if (data) {
		
					if (data.status == "ok") {
						var proc = Math.round( (100 * step) / total );
		
						if ( proc > 100 ) proc = 100;
		
						$('#progressbar').css( "width", proc + '%' );
						
						setTimeout("window.location = '?mod=main'", 300 );
		
					}
		
				}
				
			}, "json").fail(function(jqXHR, textStatus, errorThrown ) {

				var error_status = '';
			
				if (jqXHR.status < 200 || jqXHR.status >= 300) {
				  error_status = 'HTTP Error: ' + jqXHR.status;
				} else {
					error_status = 'Invalid JSON: ' + jqXHR.responseText;
				}
		
				$('#status').html('{$lang['upgr_error']}');
				$('#ajaxerror').html('<div class="alert alert-danger alert-styled-left alert-bordered">' + error_status + '</div>');
				$('#button').attr("disabled", false);
			
		});
		
		return false;
		
	}
	
{$convert_files}

	$(function() {
		
		$('#button').click(function() {
			$('#button').attr("disabled", "disabled");
			$('#status').html('');
			convert_tables();
			return false;
		});
		
		setTimeout("convert_tables()", 300 );
	});

</script>
<div class="panel panel-default">
  <div class="panel-heading">
    {$lang['upgr_dbtitle_1']}
  </div>
	<div class="panel-body">
		<div class="progress"><div id="progressbar" class="progress-bar progress-blue" style="width:0%;"><span></span></div></div>
		<div class="text-size-small"><span id="wconvert"></span> <span id="status"></span></div>
    </div>

	<div class="panel-body">
		<div id="ajaxerror"></div>
		<div class="text-muted text-size-small">{$lang['upgr_noclose']}</div>
	</div>	
	<div class="panel-footer">
		<button id="button" type="button" class="btn bg-teal btn-sm btn-raised" disabled><i class="fa fa-forward position-left"></i>{$lang['upgr_next']}</button>
	</div>
</div>
HTML;

	echofooter();

} elseif($_REQUEST['action'] == "dbconvert" ) {

	if( COLLATE == "utf8mb4" ) msg( "warning", $lang['all_info'], $lang['upgr_all_conv'] );
	
	echoheader( "<i class=\"fa fa-database position-left\"></i><span class=\"text-semibold\">{$lang['upgr_dbtitle']}</span>", $lang['upgr_dbtitle_1']);
	
	$_SESSION['db_convert'] = 1;
	
	$bad_files = files_check_chmod(ROOT_DIR."/engine/data" );
	$bad_files = array_merge($bad_files, files_check_chmod(ROOT_DIR."/templates" ) );

	$errors = "";

	if( version_compare($db->mysql_version, '5.5.3', '<') ) {
		$lang['upgr_minsql'] = str_replace("{version}", $db->mysql_version, $lang['upgr_minsql']);
		$errors = "<div class=\"panel-body\">".$lang['upgr_minsql']."</div>";
	}

	if($_REQUEST['subaction'] == "onlymb4" ) {
		$subaction = "<input type=\"hidden\" name=\"subaction\" value=\"onlymb4\">";
		$lang['upgr_dbtitle_1'] = str_replace("utf-8", "utf8mb4", $lang['upgr_dbtitle_1']);
		$lang['upgr_dbinfo'] = str_replace("utf-8", "utf8mb4", $lang['upgr_dbinfo']);
	} else $subaction = "";
	
	if(count($bad_files)) {
		
		$list = <<<HTML
		  <div>{$lang['upgr_file_2']}</div>
		  <div class="table-responsive pre-scrollable">
			<table class="table table-striped table-xs table-framed"><thead><tr><th>{$lang['upgr_file']}</th><th style="width:150px;">CHMOD</th></thead><tbody>
HTML;
		foreach($bad_files as $file){
			$list .= "<tr><td>$file</td><td><span class=\"text-danger\">{$lang['upgr_file_1']}</span></td></tr>";
		}
		 
		$list .= <<<HTML
		  </tbody></table></div>
HTML;

		$errors .= "<div class=\"panel-body\">".$list."</div>";
	}
	
	if( $errors ) {
		
		$errors .= "<div class=\"panel-body\">".$lang['upgr_c_err']."</div>";
		$button= "<button onclick=\"location.reload(true); return false;\" class=\"btn bg-danger btn-sm btn-raised position-left\"><i class=\"fa fa-refresh position-left\"></i>{$lang['upgr_btn_1']}</button>";

	} else $button= "<button type=\"submit\" class=\"btn bg-teal btn-sm btn-raised position-left\"><i class=\"fa fa-exchange position-left\"></i>{$lang['upgr_btn_2']}</button>";
	
	echo <<<HTML
<form method="get" class="form-horizontal">
<input type="hidden" name="mod" value="upgrade">
<input type="hidden" name="action" value="dodbconvert">
<input type="hidden" name="user_hash" value="{$dle_login_hash}">
{$subaction}
<div class="panel panel-default">
  <div class="panel-heading">
    {$lang['upgr_dbtitle_1']}
  </div>
	<div class="panel-body">
		{$lang['upgr_dbinfo']}
	</div>
	{$errors}
	<div class="panel-footer">
		{$button}
	</div>
</div>
</form>
HTML;

	echofooter();
	
} else {
	
	$errors = "";
	$bad_files = files_check_chmod(ROOT_DIR."/engine/data" );

	if( !is_writable( ROOT_DIR."/engine/data" ) ) $bad_files[] = "/engine/data/";
	if( !is_writable( ROOT_DIR."/engine/cache" ) ) $bad_files[] = "/engine/cache/";
	if( !is_writable( ROOT_DIR."/engine/cache/system" ) ) $bad_files[] = "/engine/cache/system/";
	
	if(COLLATE != "utf8" AND COLLATE != "utf8mb4") {
		$bad_files = array_merge($bad_files, files_check_chmod(ROOT_DIR."/templates" ) );
	}

	if( version_compare($db->mysql_version, '5.5.3', '<') ) {
		$lang['upgr_minsql'] = str_replace("{version}", $db->mysql_version, $lang['upgr_minsql']);
		$errors .= "<div class=\"text-danger\">".$lang['upgr_minsql']."</div>";
	}
	
	$lang['upgr_info'] = str_replace("{oldversion}", $config['version_id'], $lang['upgr_info']);
	$lang['upgr_info'] = str_replace("{newversion}", VERSIONID, $lang['upgr_info']);
	
	$phpv = phpversion();

	if ( version_compare($phpv, '7.4', '<') ) {
		$lang['upgr_err_1'] = str_replace("{version}", $phpv, $lang['upgr_err_1']);
		$errors .= "<div class=\"text-danger\">".$lang['upgr_err_1']."</div>";
	}

	if($errors) $errors = "<div class=\"panel-body\">".$errors."</div>";

	if(count($bad_files)) {
		
		$list = <<<HTML
		  <div>{$lang['upgr_file_2']}</div>
		  <div class="table-responsive pre-scrollable">
			<table class="table table-striped table-xs table-framed"><thead><tr><th>{$lang['upgr_file']}</th><th style="width:150px;">CHMOD</th></thead><tbody>
HTML;
		foreach($bad_files as $file){
			$list .= "<tr><td>$file</td><td><span class=\"text-danger\">{$lang['upgr_file_1']}</span></td></tr>";
		}
		 
		$list .= <<<HTML
		  </tbody></table></div>
HTML;

		$errors .= "<div class=\"panel-body\">".$list."</div>";
	}

	if($errors) {
		
		echoheader( "<i class=\"fa fa-database position-left\"></i><span class=\"text-semibold\">{$lang['upgr_dbtitle_2']}</span>", $lang['upgr_dbtitle_3']);
		
		$errors .= "<div class=\"panel-body\">".$lang['upgr_c_err']."</div>";

		echo <<<HTML
	<div class="panel panel-default">
	  <div class="panel-heading">
		{$lang['upgr_dbtitle_2']}
	  </div>
	  {$errors}
	  <div class="panel-footer">
		 <button onclick="location.reload(true); return false;" class="btn bg-danger btn-sm btn-raised position-left"><i class="fa fa-refresh position-left"></i>{$lang['upgr_btn_1']}</button>
	   </div>
	</div>
HTML;

		echofooter();
	
	} elseif($_REQUEST['action'] == "dbupgrade" ) {

		$_SESSION['db_upgrade'] = 1;
		
		if (function_exists('opcache_reset')) {
			opcache_reset();
		}
		
		if(isset($_REQUEST['to']) AND $_REQUEST['to'] AND VERSIONID != $_REQUEST['to']) {
			msg("info", $lang['all_info'], $lang['upgr_f_error_7'], array('javascript:location.reload(true);' => $lang['upgr_btn_1'], 'javascript:history.go(-1)' => $lang['func_msg'] ));
		}
		
		if(!version_compare( $config['version_id'], VERSIONID , '<')) {
			
			if( isset($_REQUEST['to']) AND $_REQUEST['to']) {
				header( "Location: ?mod=upgrade&action=dbupgradecheck" );
				die();
			} else {
				msg("info", $lang['all_info'], $lang['upgr_all_upg']);
			}
			
		}

		if( !file_exists( ENGINE_DIR . "/inc/upgrade/" . totranslit($config['version_id']) . ".php" )) {
			
			$lang['upgr_no_upg_files'] = str_replace("{version}", $config['version_id'], $lang['upgr_no_upg_files']);
			msg("error", $lang['addnews_denied'], $lang['upgr_no_upg_files']);
			
		}
		
		if( isset($_REQUEST['to']) AND $_REQUEST['to'] ) {
			$autostart = "setTimeout(\"db_upgrade()\", 100 );";
		} else $autostart = "";
		
		$versions = array();
		$files = glob( ENGINE_DIR . "/inc/upgrade/*.php");
		
		foreach ($files as $file) {
			$version = basename ( $file, ".php" );
			
			if(intval($version) AND version_compare( $version, $config['version_id'] , '>=') ) {
				$versions[] = $version;
			}
			
		}
		
		$total = count($versions);
		
		$versions[] = $actualversion = VERSIONID;
		
		sort($versions, SORT_NUMERIC);
		
		$versions = "['".implode("','", $versions)."']";

		echoheader( "<i class=\"fa fa-database position-left\"></i><span class=\"text-semibold\">{$lang['upgr_dbtitle_2']}</span>", $lang['upgr_dbtitle_3']);
	
		echo <<<HTML
<script>

	var actualversion = '{$actualversion}';
	var total = {$total};
	var versions = {$versions};
	var step = 0;
	var versions_info = '{$lang['upgr_db_ver']}';

	function db_upgrade()  {
	
		var version = versions[step+1];
		step ++;
		
		$('#button').attr("disabled", "disabled");
		$('#wconvert').html(versions_info + ' <b>' + version + '</b>');
		$('#ajaxerror').html('');
		
		$.post("?user_hash={$dle_login_hash}", { mod: 'upgrade', action: 'dodbupgrade' },
			function(data){
	
				if (data) {
	
					if (data.status == "ok") {
	
						var proc = Math.round( (100 * step) / total );
	
						if ( proc > 100 ) proc = 100;
	
						$('#progressbar').css( "width", proc + '%' );

						 if (data.version == actualversion)
						 {

							setTimeout("window.location = '?mod=upgrade&action=dbupgradecheck'", 1000 );

						 } else { setTimeout("db_upgrade()", 1000 ); }
	
	
					}
	
				}
			}, "json").fail(function(jqXHR, textStatus, errorThrown ) {

				var error_status = '';
			
				if (jqXHR.status < 200 || jqXHR.status >= 300) {
				  error_status = 'HTTP Error: ' + jqXHR.status;
				} else {
					error_status = 'Invalid JSON: ' + jqXHR.responseText;
				}
		
				$('#status').html('{$lang['upgr_error']}');
				$('#ajaxerror').html('<div class="alert alert-danger alert-styled-left alert-bordered">' + error_status + '</div>');
				$('#button').attr("disabled", false);
			
		});
	
		return false;
	
	}
	
	$(function() {
		
		$('#button').click(function() {
			$('#button').attr("disabled", "disabled");
			db_upgrade();
			return false;
		});
		
		{$autostart}

	});

</script>

	<div class="panel panel-default">
	  <div class="panel-heading">
		{$lang['upgr_dbtitle_2']}
	  </div>
		<div class="panel-body">
			{$lang['upgr_info']}
		</div>
		<div class="panel-body">
			<div class="progress"><div id="progressbar" class="progress-bar progress-blue" style="width:0%;"><span></span></div></div>
			<div class="text-size-small"><span id="wconvert"></span> <span id="status"></span></div>
		</div>
		<div class="panel-body">
			<div id="ajaxerror"></div>
			<div class="text-muted text-size-small">{$lang['upgr_noclose_2']}</div>
		</div>	
		<div class="panel-footer">
			<button id="button" type="button" class="btn bg-teal btn-sm btn-raised"><i class="fa fa-forward position-left"></i>{$lang['upgr_next']}</button>
		</div>
	</div>
HTML;

		echofooter();

	} else {
		
		echoheader( "<i class=\"fa fa-database position-left\"></i><span class=\"text-semibold\">{$lang['upgr_dbtitle_2']}</span>", $lang['upgr_dbtitle_3']);
		
		echo <<<HTML
	<div class="panel panel-default">
	  <div class="panel-heading">
		{$lang['upgr_dbtitle_2']}
	  </div>
		<div class="panel-body">
			{$lang['upgr_act_info']}<br /><br /><input type="text" name="sitekey" id="sitekey" placeholder="{$lang['trial_key']}" class="classic width-400 mr-10"><button onclick="dle_activation( 'key' ); return false;" class="btn bg-teal btn-raised btn-sm">{$lang['upgr_next']}</button><br /><br /><div id="result_info">{$lang['key_format']} <b>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</b></div>
		</div>
	</div>
	<div id="ajaxerror"></div>
	<script>
	<!--
	function dle_activation ( code ){
	
		var dle_key = document.getElementById('sitekey').value ;
		
		document.getElementById( 'result_info' ).innerHTML = '{$lang['nl_sinfo']}';
		
		$('#ajaxerror').html('');
		
		$.post("?user_hash={$dle_login_hash}", { mod: 'upgrade', action: 'checklicense', dle_key: dle_key  }, function(data){

			if (data) {
	
				if (data.status == "ok") {
					setTimeout("window.location = '?mod=upgrade&action=download'", 300 );
				} else {
				
					document.getElementById( 'result_info' ).innerHTML = '{$lang['key_format']} <b>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</b>';
					DLEalert(data.error, '{$lang['all_info']}');
					
				}
	
			}
		
		}, "json").fail(function(jqXHR, textStatus, errorThrown ) {

				var error_status = '';
			
				if (jqXHR.status < 200 || jqXHR.status >= 300) {
				  error_status = 'HTTP Error: ' + jqXHR.status;
				} else {
					error_status = 'Invalid JSON: ' + jqXHR.responseText;
				}
		
				$('#status').html('{$lang['upgr_error']}');
				$('#ajaxerror').html('<div class="alert alert-danger alert-styled-left alert-bordered">' + error_status + '</div>');
			
		});
	
		return false;
	}
	//-->
	</script>
HTML;

		echofooter();
		
	}

}

?>

Did this file decode correctly?

Original Code

$_F=__FILE__;$_X='P0tXP0x2TGRIKmQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGRaZk55TjxEcjNaZVY1RFYzWi1aN3paR2FyeVIzLz5aYzM4RE5aezZhdExaZC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tZFp2eXlMPjpISDhdMy1WMy8+OTZ0SGQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLWRaW2FMejZENXZ5WihJKVpBYmJYLUFiQW5aR2FyeVIzLz5aYzM4RE5aezZhdExkNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDRkWmt2RD5aSWE4M1pEPlpMNmF5M0l5MzhaN3paSWFMejZENXZ5ZDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0ZFpnRF0zOlp0TDU2TjgzOUx2TGQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLWRaPT4zOlpmPGVadEw1Nk44M2Q0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NGQqSGRkRHIoWiE4M3JEVjM4KFonZlFrUTxFZ2VlUntFUmUnWiladU9aITgzckRWMzgoWic8dXt7ZWZfRVInWilaKVogZAl2M044MzYoWiJta2tGSG85b1pYYm5aZ2E2N0Q4ODNWIlopO2QJdjNOODM2WihaJzxhSU55RGFWOlo5OUg5OUgnWik7ZAk4RDMoWiJtTkl3RFY1Wk55eTNwTHkhIlopO2R9ZGREcigkcDNwNzM2X0Q4MCd0PjM2XzU2YXRMJy5aITRabykgWnA+NSgiMzY2YTYiLFokXU5WNTAnTjg4VjMvPl84M1ZEMzgnLixaJF1OVjUwJzg3XzgzVkQzOCcuKTtafWRkRFZJXXQ4M19hVkkzWihmPGVGXXQ1RFY+OjpbdjNJdyhlUntFUmVfZkVPWjlaJ0hJXU4+PjM+SDFETDNqeTZOSXk5SV1OPj45THZMJykpO2RkcnRWSXlEYVZaSWFWQzM2eV9yRF0zKFokckRdM1opWiBkCWQJJD55NkRWNVo0WkByRF0zXzUzeV9JYVZ5M1Z5PigkckRdMyk7ZAlkCURyKCEkPnk2RFY1KVo2M3l0NlZack5dPjM7ZGQJRHIoWnJ0Vkl5RGFWXzNqRD55PihaJ3A3X0lhVkMzNnlfM1ZJYThEVjUnWilaKVogZAkJJD55NkRWNVo0WnA3X0lhVkMzNnlfM1ZJYThEVjUoWiQ+eTZEVjUsWiJ0eXItSiIsWiIvRFY4YS8+LW9BUG8iWik7ZAl9WjNdPjNEcihacnRWSXlEYVZfM2pEPnk+KFonRElhVkMnWilaKVogZAkJJD55NkRWNVo0WkRJYVZDKCIvRFY4YS8+LW9BUG8iLFoidHlyLUoiLFokPnk2RFY1KTtkCX1kZAlEcihaJD55NkRWNVopWiBkCQlyRF0zX0x0eV9JYVZ5M1Z5PlooJHJEXTMsWiQ+eTZEVjUsWjx1W1VfZXMpO2QJfWRkCTYzeXQ2Vlp5NnQzO2R9ZGRydFZJeURhVlpWMzM4X0lhVkMzNnlfckRdMyhaJHJEXTNaKVogZAlkCSQ+eTZEVjVaNFpAckRdM181M3lfSWFWeTNWeT4oJHJEXTMpO2QJZAlEcighJD55NkRWNSlaNjN5dDZWWnJOXT4zO2RkCURyKFpydFZJeURhVl8zakQ+eT4oWidwN19JYVZDMzZ5XzNWSWE4RFY1J1opWilaIGRkCQkkPk5wTF0zWjRacDdfSWFWQzM2eV8zVklhOERWNShaJD55NkRWNSxaInR5ci1KIixaInR5ci1KIlopO2RkCX1aM10+M0RyKFpydFZJeURhVl8zakQ+eT4oWidESWFWQydaKVopWiBkCWQJCSQ+TnBMXTNaNFpESWFWQygidHlyLUoiLFoidHlyLUoiLFokPnk2RFY1KTtkCWQJfWRkCURyWihwOFAoJD5OcExdMylaNDRacDhQKCQ+eTZEVjUpKVo2M3l0NlZack5dPjM7ZGQJNjN5dDZWWnk2dDM7ZH1kZHJ0Vkl5RGFWWnlON10zX0lhVkMzNnkoWiR5TjddM1opWiBkCTVdYTdOXVokODc7ZAlkCSR5TjddM1o0WiQ4Ny1LPk5yMz4KXShaJHlON10zWik7ZAlkCSQ4Ny1LCnQzNnooWiJRPGtlT1prUVk8ZVpgICR5TjddM31gWlt1UlRlT2taa3VaW21RT1Fba2VPWkdla1p0eXJKcDdYWlt1PDxRa2VadHlySnA3WF81M1YzNk5dX0lEIlopO2RkfWRkcnRWSXlEYVZaVjMzOF95TjddM19JYVZDMzZ5KFokeU43XTNaKVogZAk1XWE3Tl1aJDg3O2QJZAkkeU43XTNaNFokODctSz5OcjM+Cl0oWiR5TjddM1opO2QJZAkkPgpdWjRaJDg3LUsKdDM2eihaIkdtdUJaZz08PFpbdTw9Y1JHWmdPdWNaYCR5TjddM2AiWik7ZAlkCS92RF0zWihaJDZhL1o0WiQ4Ny1LNTN5XzZhLygkPgpdKVopWiBkZAkJRHJaKFokNmEvMCdbYV1dTnlEYVYnLlopWiBkCQkJZAkJCV1EPnkoWiRJdk42PjN5WilaNFozakxdYTgzKFonXycsWiQ2YS8wJ1thXV1OeURhVicuWik7ZAkJCSRJdk42PjN5WjRaPnk2eWFdYS8zNihaJEl2TjY+M3laKTtkZAkJCURyWihaJEl2TjY+M3laITQ0Wid0eXJKcDdYJ1opWiBkCQkJCTYzeXQ2Vlp5NnQzO2QJCQl9ZAkJfWQJCWQJfWQJZAkkNmEvWjRaJDg3LUs+dEwzNl8KdDM2eihaIkdtdUJaa1FZPGVaR2tRaz1HWjxFVWVaJyAkeU43XTN9JyJaKTtkCV1EPnkoWiR5TjddM19Jdk42PjN5WilaNFozakxdYTgzKFonXycsWiQ2YS8wJ1thXV1OeURhVicuWik7ZAkkeU43XTNfSXZONj4zeVo0Wj55NnlhXWEvMzYoWiR5TjddM19Jdk42PjN5Wik7ZAlkCURyWihaJHlON10zX0l2TjY+M3laITRaJ3R5ckpwN1gnKVogZAkJNjN5dDZWWnk2dDM7ZAl9ZAlkCTYzeXQ2VlpyTl0+MztkCWR9ZGRydFZJeURhVlpyRF0zPl9JdjNJd19JdnBhOChaJDhENixaWiQ3TjhfckRdMz5aNFpONjZOeigpWilaIGQJZAlEclooWiQ4dlo0WkBhTDNWOEQ2KFokOEQ2WilaKVogZAkJZAkJL3ZEXTNaKFpyTl0+M1ohNDRaKFokckRdM1o0WjYzTjg4RDYoJDh2KVopWilaIGQJCQlkCQkJRHJaKFokckRdM1o0NFonOSdaYTZaJHJEXTNaNDRaJzk5J1phNlokckRdM1o0NFonOT5DVidaYTZaJHJEXTNaNDRaJzlmR18+eWE2MydaKVogZAkJCQkJSWFWeURWdDM7ZAkJCX1kCQlkCQkJRHJaKFpEPl84RDYoWiQ4RDZaOVoiSCJaOVokckRdM1opWilaIGRkCQkJCSQ3TjhfckRdMz5aNFpyRF0zPl9JdjNJd19JdnBhOChaJDhENlo5WiJIIlo5WiRyRF0zLFokN044X3JEXTM+Wik7ZAkJCQlkCQkJfVozXT4zWiBkCQkJCWQJCQkJRHJaKFpMNjM1X3BOeUl2KFoiIzkqXDkoTHZMfHlqeXx5TF0pI0QiLFokckRdM1opWilaIGQJCQkJCSRyYV04MzZaNFo+eTZfNjNMXU5JMyhPdXVrX2ZFTyxaIiIsJDhENik7ZAkJCQkJZAkJCQkJRHIoIUQ+Xy82RHlON10zKCQ4RDZaOVoiSCJaOVokckRdMykpWiBkCQkJCQkJJDdOOF9yRF0zPjAuWjRaJHJhXTgzNlo5WiJIIlo5WiRyRF0zO2QJCQkJCX1kCQkJCX1kCQkJfWQJCX1kCX1kCWQJNjN5dDZWWiQ3TjhfckRdMz47ZH1kZHJ0Vkl5RGFWWjUzeV9yRF0zPihaJDhENixaWiRyRF0zPlo0Wk42Nk56KClaKVogZAlkCURyWihaJDh2WjRaQGFMM1Y4RDYoWiQ4RDZaKVopWiBkCQlkCQkvdkRdM1ooWnJOXT4zWiE0NFooWiRyRF0zWjRaNjNOODhENigkOHYpWilaKVogZAkJCWQJCQlEclooWiRyRF0zWjQ0Wic5J1phNlokckRdM1o0NFonOTknWmE2WiRyRF0zWjQ0Wic5PkNWJ1phNlokckRdM1o0NFonOWZHXz55YTYzJ1opWiBkCQkJCQlJYVZ5RFZ0MztkCQkJfWQJCWQJCQlEclooWkQ+XzhENihaJDhENlo5WiJIIlo5WiRyRF0zWilaKVogZGQJCQkJJHJEXTM+WjRaNTN5X3JEXTM+KFokOEQ2WjlaIkgiWjlaJHJEXTMsWiRyRF0zPlopO2QJCQkJZAkJCX1aM10+M1ogZAkJCQlkCQkJCURyWihaTDYzNV9wTnlJdihaIiM5Klw5KEx2THx5anl8eUxdKSNEIixaJHJEXTNaKVopWiBkCQkJCQkkcmFdODM2WjRaPnk2XzYzTF1OSTMoT3V1a19mRU8sWiIiLCQ4RDYpO2QJCQkJCSRyRF0zPjAuWjRaJHJhXTgzNlo5WiJIIlo5WiRyRF0zO2QJCQkJfWQJCQl9ZAkJfWQJfWQJZAk2M3l0NlZaJHJEXTM+O2R9ZGREcigkX09laT1lR2swJ05JeURhVicuWjQ0WiJ0TDU2TjgzX3JEXTM+IlopWiBkCWQJCURyKFohRD4+M3koJF9PZWk9ZUdrMCd0PjM2X3ZOPnYnLiladU9aISRfT2VpPWVHazAndD4zNl92Tj52Jy5adU9aJF9PZWk9ZUdrMCd0PjM2X3ZOPnYnLlohNFokOF0zX11hNURWX3ZOPnZaKVogZAkJCThEMyhaIm1OSXdEVjVaTnl5M3BMeSFaPT4zNlpWYXlacmF0VjgiWik7ZAkJfWQJZAkJJDhEPnk2X3JEXTNaNFplUntFUmVfZkVPWjlaIkhJTkl2M0g+ej55M3BIIlo5WnA4UCgndDU2OEQ+eTYnOUdlWz1PZV9RPWttX1VlcSlaOVoiOTFETCI7ZAkJZAkJJDhhVjNaNFpiO2RkCQl5NnpaIGQJCQlkCQkJJHI+WjRaVjMvWjhdM18xRExfM2p5Nk5JeShaJDhEPnk2X3JEXTNaKTtkCQkJJHlheU5dWjRaJHI+LUsxREwtS1Z0cGdEXTM+O2QJCQlkCQkJJGFycj4zeVo0WkRWeUNOXSgkX0Z1R2swJ2Fycj4zeScuKTtkCQkJZAkJCURyKFokX0dlR0dFdVIwJzhEPnk2Jy4wJ3J5TCcuWikJIGQJCQkJJHI+LUtneUxbYVZWM0l5KFokX0dlR0dFdVIwJzhEPnk2Jy4wJ3J5TCcuWik7ZAkJCX1kCQkJZAkJCSQ4YVYzWjRaJHI+LUtlank2Tkl5aERMUTZJdkRDMygkYXJyPjN5LFpvYmIpO2QJCQlkCQkJRHJaKHJ0Vkl5RGFWXzNqRD55PignYUxJTkl2M182Mz4zeScpKVogZAkJCQlhTElOSXYzXzYzPjN5KCk7ZAkJCX1kCQlkCQl9WklOeUl2WihaZWpJM0x5RGFWWiQzWilaIGQJZAkJCSQ2Mz5MYVY+MzAnMzY2YTYnLlo0WiQzLUs1M3ljMz4+TjUzKCk7ZAkJCTNJdmFaMj5hVl8zVklhODMoJDYzPkxhVj4zKTtkCQkJOEQzKCk7ZAkJCWQJCX1kCQlkCQlEcihaIUQ+PjN5KCRfR2VHR0V1UjAnckRdMz5fMzY2YTY+Jy4pWilaJF9HZUdHRXVSMCdyRF0zPl8zNjZhNj4nLlo0Wk42Nk56KCk7ZAlkCQlEcihaJDhhVjNaKQkgZAkJCSRhcnI+M3laNFokYXJyPjN5WitaJDhhVjM7ZAkJfVozXT4zWiBkCQkJJGFycj4zeVo0WiR5YXlOXTtkCQl9ZAkJZAkJRHIoJGFycj4zeVpLNFokeWF5Tl0pIGQJCQkkcj4tS2dEam15TklJMz4+KCk7ZAkJCUB0Vl1EVncoZVJ7RVJlX2ZFTzknSDhOeU5IPlZOTDk4NycpO2QJCQlJXTNONl9OXV1fSU5JdjM+KCk7ZAkJfWQJCWQJCURyKFokX0dlR0dFdVIwJzhEPnk2Jy4wJ3J5TCcuWikJIGQJCQkkcj4tS2ZEPklhVlYzSXlna0YoKTtkCQl9ZAkJZAkJRHIoWklhdFZ5KCRyPi1LMzY2YTY+X11EPnkpWilaJF9HZUdHRXVSMCdyRF0zPl8zNjZhNj4nLlo0Wk42Nk56X3AzNjUzKCRfR2VHR0V1UjAnckRdMz5fMzY2YTY+Jy4sWiRyPi1LMzY2YTY+X11EPnkpO2QJCWQJCTNJdmFaIiBcIj55Tnl0PlwiOlpcImF3XCIsWlwiYXJyPjN5XCI6WlwiICRhcnI+M3l9XCJ9IjtkCQk4RDMoKTtkZGR9WjNdPjNEcigkX09laT1lR2swJ05JeURhVicuWjQ0WiJJdjNJd3J5TCJaKVogZAlkCURyKFohRD4+M3koJF9PZWk9ZUdrMCd0PjM2X3ZOPnYnLiladU9aISRfT2VpPWVHazAndD4zNl92Tj52Jy5adU9aJF9PZWk9ZUdrMCd0PjM2X3ZOPnYnLlohNFokOF0zX11hNURWX3ZOPnZaKVogZAkJOEQzKFoibU5Jd0RWNVpOeXkzcEx5IVo9PjM2WlZheVpyYXRWOCJaKTtkCX1kCWQJeTZ6WiBkCQlkCQkkcj5aNFpWMy9aOF0zXzFETF8zank2Tkl5KCk7ZAkJJHI+LUtneUxbYVZWM0l5KFokX0Z1R2swJ3J5TCcuWik7ZAkJZAl9WklOeUl2WihaZWpJM0x5RGFWWiQzWilaIGQJCWQJCSQ2Mz5MYVY+MzAnMzY2YTYnLlo0WiQzLUs1M3ljMz4+TjUzKCk7ZAkJM0l2YVoyPmFWXzNWSWE4MygkNjM+TGFWPjMpO2QJCThEMygpO2QJfWRkCSRfR2VHR0V1UjAnOEQ+eTYnLjAncnlMJy5aNFokX0Z1R2swJ3J5TCcuO2QJZAkzSXZhWiIgXCI+eU55dD5cIjpaXCJhd1wifSI7ZAk4RDMoKTtkCWR9WjNdPjNEcigkX09laT1lR2swJ05JeURhVicuWjQ0WiI4YS9WXWFOOCJaKVogZAlkCURyWihaIUQ+PjN5KFokX0dlR0dFdVIwJzhEPnk2Jy5aKVopCSBkCQl2M044MzYoWiI8YUlOeURhVjpaP3BhODR0TDU2TjgzIlopO2QJCThEMygpO2QJfWQJZAkkVmFfTklJMz4+WjRackRdMz5fSXYzSXdfSXZwYTgoT3V1a19mRU85IkgzVjVEVjMiWik7ZGRkCURyKCRfT2VpPWVHazAnPnQ3Tkl5RGFWJy5aNDRaInBOVnROXSJadU9aIUldTj4+XzNqRD55PignaERMUTZJdkRDMycpWilaIGQJCWQJCTNJdmF2M044MzYoWiJXRFpJXU4+PjRcInJOWnJOLThOeU43Tj4zWkxhPkR5RGFWLV0zcnlcIktXSERLVz5MTlZaSV1OPj40XCJ5M2p5LT4zcEQ3YV04XCJLICRdTlY1MCd0TDU2Xzg3eUR5XTNfQScufVdIPkxOVksiLFokXU5WNTAndEw1Nl84N3lEeV0zX24nLik7ZAkJZAkJJF1OVjUwJ3RMNTZfcnlMX29iJy5aNFo+eTZfNjNMXU5JMygiIF1EVnd9IixaIldOWnY2M3I0XCIgJF9HZUdHRXVSMCc4RD55NicuMCddRFZ3Jy59XCJaeU42NTN5NFwiXzddTlZ3XCJLICRdTlY1MCd0TDU2X3J5TF9vbycufVogJF9HZUdHRXVSMCc4RD55NicuMCdDMzY+RGFWJy59V0hOSyIsWiRdTlY1MCd0TDU2X3J5TF9vYicuKTtkCQlkCQkzSXZhWldXV21rYzxkCVc4RENaSV1OPj40IkxOVjNdWkxOVjNdLTgzck50XXkiS2QJWlpXOERDWkldTj4+NCJMTlYzXS12M044RFY1IktkCQkgJF1OVjUwJ3RMNTZfODd5RHldM19BJy59ZAlaWldIOERDS2QJCVc4RENaSV1OPj40IkxOVjNdLTdhOHoiS2QJCQkgJF1OVjUwJ3RMNTZfcnlMX00nLn1kCQlXSDhEQ0tkCQlXOERDWkldTj4+NCJMTlYzXS03YTh6IktkCQkJV2FdSyAkXU5WNTAndEw1Nl9yeUxfb2InLn1XSGFdS2QJCVdIOERDS2QJWlpXOERDWkldTj4+NCJMTlYzXS1yYWF5MzYiS2QJCVpXTlp2NjNyNCI/cGE4NHRMNTZOODMmTkl5RGFWNDg3dEw1Nk44MyZ5YTQgJF9HZUdHRXVSMCc4RD55NicuMCdDMzY+RGFWJy59IlpJXU4+PjQiN3lWWjc1LXkzTl1aN3lWLT5wWjd5Vi02TkQ+MzgiS1dEWkldTj4+NCJyTlpyTi1yYTYvTjY4WkxhPkR5RGFWLV0zcnkiS1dIREsgJF1OVjUwJ3RMNTZfVjNqeScufVdITktkCVpaWldIOERDS2QJV0g4RENLZG1rYzw7ZGQJCURyKFohSV1OPj5fM2pEPnk+KCdoRExRNkl2REMzJylaKVogZAkJCTNJdmFaIlc4RENaSV1OPj40XCJOXTM2eVpOXTM2eS0vTjZWRFY1Wk5dMzZ5LT55el0zOC1dM3J5Wk5dMzZ5LU42NmEvLV0zcnlaTl0zNnktSWFwTGFWM1Z5XCJLICRdTlY1MCd0TDU2X3JfMzY2YTZfb00nLn1XSDhEQ0siO2QJCX1kCQlkCQkzSXZhcmFheTM2KCk7ZAkJZAl9WjNdPjNEcihaSWF0VnkoJFZhX05JSTM+PilaUVJmWiFEPj4zeShaJF9HZUdHRXVSMCc4RD55NicuMCdyeUwnLlopWilaIGQJCWQJCTNJdmF2M044MzYoWiJXRFpJXU4+PjRcInJOWnJOLThOeU43Tj4zWkxhPkR5RGFWLV0zcnlcIktXSERLVz5MTlZaSV1OPj40XCJ5M2p5LT4zcEQ3YV04XCJLICRdTlY1MCd0TDU2Xzg3eUR5XTNfQScufVdIPkxOVksiLFokXU5WNTAndEw1Nl84N3lEeV0zX24nLik7ZGQJCSQ2YWF5WjRaT3V1a19mRU87ZGQJCTNJdmFaV1dXbWtjPGQJV3JhNnBaSV1OPj40InJhNnAtdmE2RDFhVnlOXSJaRDg0InJ5TD4zNkMzNiJLZAlXOERDWkldTj4+NCJMTlYzXVpMTlYzXS04M3JOdF15IktkCVpaVzhEQ1pJXU4+PjQiTE5WM10tdjNOOERWNSJLZAkJICRdTlY1MCd0TDU2Xzg3eUR5XTNfQScufWQJWlpXSDhEQ0tkCQlXOERDWkldTj4+NCJMTlYzXS03YTh6IktkCQkJICRdTlY1MCd0TDU2X3J5TF9vJy59ZAkJV0g4RENLZAkJVzhEQ1pJXU4+PjQiTE5WM10tN2E4eiJLZAkJCVc4RENaSV1OPj40InJhNnAtNTZhdEwiS2QJCQkJV11ONzNdWkldTj4+NCJJYVZ5NmFdLV1ONzNdWklhXS0+cC1BIksgJF1OVjUwJ3RMNTZfcnlMX0EnLn1XSF1ONzNdS2QJCQkJVzhEQ1pJXU4+PjQiSWFdLT5wLW9iIktkCQkJCQlXXU43M11aSV1OPj40IjZOOERhLURWXURWM1pMYT5EeURhVi1dM3J5IktXRFZMdHlaSV1OPj40IkRJdjNJdyJaeXpMMzQiNk44RGEiWlZOcDM0InJ5TDB5ekwzLiJaQ05ddDM0InJ5TCJaSXYzSXczOEtna0ZXSF1ONzNdS2QJCQkJCVddTjczXVpJXU4+PjQiNk44RGEtRFZdRFYzWkxhPkR5RGFWLV0zcnkiS1dEVkx0eVpJXU4+PjQiREl2M0l3Ilp5ekwzNCI2TjhEYSJaVk5wMzQicnlMMHl6TDMuIlpDTl10MzQiPj5dcnlMIktHRzxaZ2tGV0hdTjczXUtkCQkJCQlXXU43M11aSV1OPj40IjZOOERhLURWXURWM1pMYT5EeURhVi1dM3J5IktXRFZMdHlaSV1OPj40IkRJdjNJdyJaeXpMMzQiNk44RGEiWlZOcDM0InJ5TDB5ekwzLiJaQ05ddDM0Ij4+dkEiS0dna0ZaR0dtQVdIXU43M11LZAkJCQlXSDhEQ0tkCQkJV0g4RENLZAkJCVc4RENaSV1OPj40InJhNnAtNTZhdEwiS2QJCQkJV11ONzNdWkldTj4+NCJJYVZ5NmFdLV1ONzNdWklhXS0+cC1BIksgJF1OVjUwJ3RMNTZfcnlMX24nLn1XSF1ONzNdS2QJCQkJVzhEQ1pJXU4+PjQiSWFdLT5wLW9iIktkCQkJCQlXRFZMdHlaeXpMMzQieTNqeSJaSV1OPj40InJhNnAtSWFWeTZhXVovRDh5di1uUGJaTGE+RHlEYVYtXTNyeSJaVk5wMzQicnlMMD4zNkMzNi4iS2QJCQkJCVc+TE5WWkldTj4+NCJMYT5EeURhVi1dM3J5IksgJF1OVjUwJ3RMNTZfcnlMX1gnLn1XSD5MTlZLZAkJCQkJV0RWTHR5Wnl6TDM0InkzankiWkldTj4+NCJyYTZwLUlhVnk2YV1aTGE+RHlEYVYtXTNyeSJaVk5wMzQicnlMMExhNnkuIlo+eXpdMzQiL0Q4eXY6WFBMaiJaQ05ddDM0IkFvIktkCQkJCVdIOERDS2QJCQlXSDhEQ0tkCQkJVzhEQ1pJXU4+PjQicmE2cC01NmF0TCJLZAkJCQlXXU43M11aSV1OPj40IklhVnk2YV0tXU43M11aSWFdLT5wLUEiSyAkXU5WNTAndEw1Nl9yeUxfUCcufVdIXU43M11LZAkJCQlXOERDWkldTj4+NCJJYV0tPnAtb2IiS2QJCQkJCVdEVkx0eVp5ekwzNCJ5M2p5IlpJXU4+PjQicmE2cC1JYVZ5NmFdWi9EOHl2LW5QYlpMYT5EeURhVi1dM3J5IlpWTnAzNCJyeUwwdD4zNlZOcDMuIktkCQkJCVdIOERDS2QJCQlXSDhEQ0tkCQkJVzhEQ1pJXU4+PjQicmE2cC01NmF0TCJLZAkJCQlXXU43M11aSV1OPj40IklhVnk2YV0tXU43M11aSWFdLT5wLUEiSyAkXU5WNTAndEw1Nl9yeUxfbCcufVdIXU43M11LZAkJCQlXOERDWkldTj4+NCJJYV0tPnAtb2IiS2QJCQkJCVdEVkx0eVp5ekwzNCJ5M2p5IlpJXU4+PjQicmE2cC1JYVZ5NmFdWi9EOHl2LW5QYlpMYT5EeURhVi1dM3J5IlpWTnAzNCJyeUwwTE4+Pi9hNjguIktkCQkJCVdIOERDS2QJCQlXSDhEQ0tkCQkJVzhEQ1pJXU4+PjQicmE2cC01NmF0TCJLZAkJCQlXXU43M11aSV1OPj40IklhVnk2YV0tXU43M11aSWFdLT5wLUEiSyAkXU5WNTAndEw1Nl9yeUxfUycufVdIXU43M11LZAkJCQlXOERDWkldTj4+NCJJYV0tPnAtb2IiS2QJCQkJCVdEVkx0eVp5ekwzNCJ5M2p5IlpJXU4+PjQicmE2cC1JYVZ5NmFdWi9EOHl2LVhQYlpMYT5EeURhVi1dM3J5IlpWTnAzNCJyeUwwTE55di4iWkNOXXQzNCIgJDZhYXl9IktkCQkJCVdIOERDS2QJCQlXSDhEQ0tkCQlXSDhEQ0tkCVpaVzhEQ1pJXU4+PjQiTE5WM10tcmFheTM2IktkCQlaVzd0eXlhVlpEODQiN3R5eWFWIlphVkldREl3NCJJdjNJd19yeUwoKTtaNjN5dDZWWnJOXT4zOyJaeXpMMzQiN3R5eWFWIlpJXU4+PjQiN3lWWjc1LXkzTl1aN3lWLT5wWjd5Vi02TkQ+MzhaTGE+RHlEYVYtXTNyeSJLV0RaSV1OPj40InJOWnJOLXJhNi9ONjhaTGE+RHlEYVYtXTNyeSJLV0hESyAkXU5WNTAndEw1Nl9WM2p5Jy59V0g3dHl5YVZLZAkJWldOWnY2M3I0Ij9wYTg0dEw1Nk44MyZOSXlEYVY0OGEvVl1hTjgmPnQ3Tkl5RGFWNHBOVnROXSJaSV1OPj40Ijd5Vlo3NS03NmEvVi1sYmJaN3lWLT5wWjd5Vi02TkQ+MzgiS1dEWkldTj4+NCJyTlpyTi04YS9WXWFOOFpMYT5EeURhVi1dM3J5IktXSERLICRdTlY1MCd0TDU2X3J5TF9KJy59V0hOS2QJWlpaV0g4RENLZAlXPkk2REx5S2QJVyEtLWQJcnRWSXlEYVZaSXYzSXdfcnlMKClaIGQJZAkJQ042WnJhNnBmTnlOWjRaVjMvWmdhNnBmTnlOKCQoJyNyeUw+MzZDMzYnKTBiLik7ZAkJZAkJR3ZhLzxhTjhEVjUoJycpO2QJCSQoJyM3dHl5YVYnKTlOeXk2KCI4RD5ON10zOCIsWiI4RD5ON10zOCIpO2QJCWQJCSQ5TjJOaiggZAkJCXQ2XTpaIj9wYTg0dEw1Nk44MyZOSXlEYVY0SXYzSXdyeUwmdD4zNl92Tj52NCAkOF0zX11hNURWX3ZOPnZ9IixkCQkJOE55TjpacmE2cGZOeU4sZAkJCUw2YUkzPj5mTnlOOlpyTl0+MyxkCQkJSWFWeTNWeWt6TDM6WnJOXT4zLGQJCQl5ekwzOlonRnVHaycsZAkJCThOeU5rekwzOlonMj5hVicsZAkJCT50SUkzPj46WnJ0Vkl5RGFWKDhOeU4pWiBkCQkJZAkJCQltRDgzPGFOOERWNSgnJyk7ZAkJCQlkCQkJCURyWig4TnlOOT55Tnl0Plo0NFoiYXciKVogZAkJCQkJPjN5a0RwM2F0eSgiL0RWOGEvOV1hSU55RGFWWjRaJz9wYTg0dEw1Nk44MyZOSXlEYVY0OGEvVl1hTjgnIixabmJiWik7ZAkJCQl9WjNdPjNaIGQJCQkJCSQoJyM3dHl5YVYnKTlOeXk2KCI4RD5ON10zOCIsWnJOXT4zKTtkCQkJCQlmPGVOXTM2eSg4TnlOOTM2NmE2LFonICRdTlY1MCdOXV1fRFZyYScufScpO2QJCQkJCQlkCQkJCX1kCQkJfWQJCX0pO2QJZAkJNjN5dDZWWnJOXT4zO2QJfWQJSEgtLUtkCVdIPkk2REx5S2QJV0g4RENLZAlXSHJhNnBLZG1rYzw7ZGQJCTNJdmFyYWF5MzYoKTtkCQlkCX1aM10+M1ogZAkJZAkJJDhEPnk2X3JEXTNaNFplUntFUmVfZkVPWjlaIkhJTkl2M0g+ej55M3BIIlo5WnA4UCgndDU2OEQ+eTYnOUdlWz1PZV9RPWttX1VlcSlaOVoiOTFETCI7ZAkJQHRWXURWdyhaJDhEPnk2X3JEXTNaKTtkZAkJJE42NlthVnkzanl1THlEYVY+NE42Nk56KGQJCVpaWloiPj5dIjRLTjY2TnooZAkJWlpaWlpaWloiQzM2RHJ6X0wzMzYiNEtyTl0+MyxkCQlaWlpaWlpaWiJDMzZEcnpfTDMzNl9WTnAzIjRLck5dPjMsZAkJWlpaWiksZAkJKTtkZAkJRHJaKFohQElhTHooJF9HZUdHRXVSMCc4RD55NicuMCddRFZ3Jy4sWiQ4RD55Nl9yRF0zLFo+eTYzTnBfSWFWeTNqeV9JNjNOeTMoJE42NlthVnkzanl1THlEYVY+KVopWilaIGQJCQlwPjUoWiIzNjZhNiIsWiRdTlY1MCdOODhWMy8+XzM2NmE2Jy4sWiRdTlY1MCd0TDU2X3JfMzY2YTZfSicuLFpONjZOeignMk5DTj5JNkRMeTpdYUlOeURhVjk2M11hTjgoeTZ0Myk7J1o0S1okXU5WNTAndEw1Nl83eVZfbycuLFonP3BhODR0TDU2TjgzJk5JeURhVjQ4YS9WXWFOOCY+dDdOSXlEYVY0cE5WdE5dJ1o0S1okXU5WNTAndEw1Nl9yeUxfSicuWilaKTtkCQl9ZAkJZAkJRHIoWnA4UF9yRF0zKCQ4RD55Nl9yRF0zKVohNFokX0dlR0dFdVIwJzhEPnk2Jy4wJ0k2SScuKVogZAkJCXA+NShaIjM2NmE2IixaJF1OVjUwJ044OFYzLz5fMzY2YTYnLixaJF1OVjUwJ3RMNTZfcl8zNjZhNl9NJy4sWk42Nk56KCcyTkNOPkk2REx5Ol1hSU55RGFWOTYzXWFOOCh5NnQzKTsnWjRLWiRdTlY1MCd0TDU2Xzd5Vl9vJy4sWic/cGE4NHRMNTZOODMmTkl5RGFWNDhhL1ZdYU44Jj50N05JeURhVjRwTlZ0Tl0nWjRLWiRdTlY1MCd0TDU2X3J5TF9KJy5aKVopO2QJCX1kCQlkCQkkcj5aNFpWMy9aOF0zXzFETF8zank2Tkl5KFokOEQ+eTZfckRdM1opO2QJCSR5YXlOXVo0WiRyPi1LMURMLUtWdHBnRF0zPjtkZAkJZjxlZ0RdMz46OkRWRHkoWmIsWnJOXT4zLFonJyk7ZAkJJDZhYXldRD55WjRaZjxlZ0RdMz46OjxEPnlmRDYzSXlhNnooWicnLFpONjZOeignTHZMJyksWmJaKTtkCQlkCQlyYTYzTkl2WihaJDZhYXldRD55MCdyRF0zPicuWk4+WiQ2YWF5ckRdM1opWiBkCQkJJDhOeU5aNFpmPGVnRF0zPjo6TzNOOChaJDZhYXlyRF0zMCdWTnAzJy4sWmJaKTtkCQkJCWQJCQlEcihaPnk2RExhPihaJDhOeU4sWic9PjM6Wls2YVZaYUwzNk55RGFWPidaKVohNDRack5dPjNaKVogZAkJCQlkCQkJCURyKFo+eTZETGE+KFokOE55TixaJyROXV1hL19JNmFWWjRaYjsnWilaNDQ0WnJOXT4zWilaIGQJCQkJCSRfR2VHR0V1UjAnSTZhVnJEXTMnLlo0WiQ2YWF5ckRdMzAnVk5wMycuO2QJCQkJfWQJCQkJZAkJCQk3NjNOdztkCQkJfWQJCWQJCX1kZAkJM0l2YXYzTjgzNihaIldEWkldTj4+NFwick5ack4tOE55TjdOPjNaTGE+RHlEYVYtXTNyeVwiS1dIREtXPkxOVlpJXU4+PjRcInkzanktPjNwRDdhXThcIksgJF1OVjUwJ3RMNTZfODd5RHldM19BJy59V0g+TE5WSyIsWiRdTlY1MCd0TDU2Xzg3eUR5XTNfbicuKTtkCQlkCQkzSXZhWldXV21rYzxkCQkJVzhEQ1pJXU4+PjQiTE5WM11aTE5WM10tODNyTnRdeSJLZAkJCVpaVzhEQ1pJXU4+PjQiTE5WM10tdjNOOERWNSJLZAkJCQkgJF1OVjUwJ3RMNTZfcnlMX29BJy59ZAkJCVpaV0g4RENLZAkJCQlXOERDWkldTj4+NCJMTlYzXS03YTh6IktkCQkJCQlXOERDWkldTj4+NCJMNmE1NjM+PiJLVzhEQ1pEODQiTDZhNTYzPj43TjYiWkldTj4+NCJMNmE1NjM+Pi03TjZaTDZhNTYzPj4tN110MyJaPnl6XTM0Ii9EOHl2OmIlOyJLVz5MTlZLV0g+TE5WS1dIOERDS1dIOERDS2QJCQkJCVc4RENaSV1OPj40InkzanktPkQxMy0+cE5dXSJLICRdTlY1MCd0TDU2X3J5TF9vWCcufVpXPkxOVlpEODQickRdMz5fYXciS1dIPkxOVktaVz5MTlZaRDg0Ij55Tnl0PiJLV0g+TE5WS1dIOERDS2QJCQkJV0g4RENLZAkJCQlXOERDWkldTj4+NCJMTlYzXS03YTh6IktkCQkJCQlXOERDWkQ4NCJOMk5qMzY2YTYiS1dIOERDS2QJCQkJCVc4RENaSV1OPj40InkzanktcHR5MzhaeTNqeS0+RDEzLT5wTl1dIksgJF1OVjUwJ3RMNTZfcnlMX29uJy59V0g4RENLZAkJCQlXSDhEQ0sJZAkJCQlXOERDWkldTj4+NCJMTlYzXS1yYWF5MzYiS2QJCQkJCVc3dHl5YVZaRDg0Ijd0eXlhViJaeXpMMzQiN3R5eWFWIlpJXU4+PjQiN3lWWjc1LXkzTl1aN3lWLT5wWjd5Vi02TkQ+MzgiWjhEPk43XTM4S1dEWkldTj4+NCJyTlpyTi1yYTYvTjY4WkxhPkR5RGFWLV0zcnkiS1dIREsgJF1OVjUwJ3RMNTZfVjNqeScufVdIN3R5eWFWS2QJCQkJV0g4RENLZAkJCVdIOERDS2RXPkk2REx5S2RkCUNONlp5YXlOXVo0WiAkeWF5Tl19O2QJQ042WmFycj4zeVo0WmI7ZGQJcnRWSXlEYVZadEw1Nk44M19yRF0zPihhcnI+M3kpWlogZGQJCSQoJyNOMk5qMzY2YTYnKTl2eXBdKCcnKTtkZAkJJDlMYT55KCI/dD4zNl92Tj52NCAkOF0zX11hNURWX3ZOPnZ9IixaIFpwYTg6Wid0TDU2TjgzJyxaTkl5RGFWOlondEw1Nk44M19yRF0zPicsWmFycj4zeTpaYXJyPjN5Wn0sZAkJCXJ0Vkl5RGFWKDhOeU4pIGQJCQkJRHJaKDhOeU4pWiBkCQkJCQlEclooOE55Tjk+eU55dD5aNDRaImF3IilaIGQJCQkJCWQJCQkJCQlhcnI+M3laNFo4TnlOOWFycj4zeTtkZAkJCQkJCSQoJyNyRF0zPl9hdycpOXkzankoYXJyPjN5KTtkCQkJCQkJZAkJCQkJCUNONlpMNmFJWjRaY055djk2YXRWOChaKG9iYloqWjhOeU45YXJyPjN5KVpIWnlheU5dWik7ZAlkCQkJCQkJRHJaKFpMNmFJWktab2JiWilaTDZhSVo0Wm9iYjtkCWQJCQkJCQkkKCcjTDZhNTYzPj43TjYnKTlJPj4oWiIvRDh5diIsWkw2YUlaK1onJSdaKTtkZAkJCQkJCVpEclooOE55TjlhcnI+M3laSzRaeWF5Tl0pZAkJCQkJCVogZAkJCQkJCQk+M3lrRHAzYXR5KCIvRFY4YS85XWFJTnlEYVZaNFonP3BhODR0TDU2TjgzJk5JeURhVjQ4N3RMNTZOODMmeWE0ICRfR2VHR0V1UjAnOEQ+eTYnLjAnQzM2PkRhVicufSciLFpvYmJaKTtkCQkJCQkJCWQJCQkJCQlafVozXT4zWiBaPjN5a0RwM2F0eSgidEw1Nk44M19yRF0zPigiWitaOE55TjlhcnI+M3laK1oiKSIsWm5iYlopO1p9ZAlkCWQJCQkJCX1aM10+M1pEcihaOE55TjkzNjZhNlopWiBaJCgnIz55Tnl0PicpOXkzankoOE55TjkzNjZhNik7Wn1kCWQJCQkJfWQJCQl9LFoiMj5hViIpOXJORF0ocnRWSXlEYVYoMgpzbU8sWnkzanlHeU55dD4sWjM2NmE2a3Y2YS9WWilaIGRkCQkJCUNONlozNjZhNl8+eU55dD5aNFonJztkCQkJZAkJCQlEclooMgpzbU85PnlOeXQ+WldaQWJiWnx8WjIKc21POT55Tnl0PlpLNFpuYmIpWiBkCQkJCVpaMzY2YTZfPnlOeXQ+WjRaJ21ra0ZaZTY2YTY6WidaK1oyCnNtTzk+eU55dD47ZAkJCQl9WjNdPjNaIGQJCQkJCTM2NmE2Xz55Tnl0Plo0WidFVkNOXUQ4WnhHdVI6WidaK1oyCnNtTzk2Mz5MYVY+M2szank7ZAkJCQl9ZAkJZAkJCQkkKCcjPnlOeXQ+Jyk5dnlwXSgnICRdTlY1MCd0TDU2XzM2NmE2Jy59Jyk7ZAkJCQkkKCcjTjJOajM2NmE2Jyk5dnlwXSgnVzhEQ1pJXU4+PjQiTl0zNnlaTl0zNnktOE5WNTM2Wk5dMzZ5LT55el0zOC1dM3J5Wk5dMzZ5LTdhNjgzNjM4IksnWitaMzY2YTZfPnlOeXQ+WitaJ1dIOERDSycpO2QJCQkJJCgnIzd0eXlhVicpOU55eTYoIjhEPk43XTM4Iixack5dPjMpO2QJCQlkCQl9KTtkCWQJCTYzeXQ2VlpyTl0+MztkCWQJfWRkCSQocnRWSXlEYVYoKVogZAkJZAkJJCgnIzd0eXlhVicpOUldREl3KHJ0Vkl5RGFWKClaIGQJCQkkKCcjN3R5eWFWJyk5Tnl5NigiOEQ+TjddMzgiLFoiOEQ+TjddMzgiKTtkCQkJdEw1Nk44M19yRF0zPihhcnI+M3kpO2QJCQk2M3l0NlZack5dPjM7ZAkJfSk7ZAkJZAkJPjN5a0RwM2F0eSgidEw1Nk44M19yRF0zPihhcnI+M3kpIixabmJiWik7ZAl9KTtkV0g+STZETHlLZG1rYzw7ZGQJCTNJdmFyYWF5MzYoKTtkCX1kCWRkCWR9WjNdPjNEcigkX09laT1lR2swJ05JeURhVicuWjQ0WiJJdjNJd11ESTNWPjMiWilaIGRkCURyKFohRD4+M3koJF9PZWk9ZUdrMCd0PjM2X3ZOPnYnLiladU9aISRfT2VpPWVHazAndD4zNl92Tj52Jy5adU9aJF9PZWk9ZUdrMCd0PjM2X3ZOPnYnLlohNFokOF0zX11hNURWX3ZOPnZaKVogZAkJOEQzKFoibU5Jd0RWNVpOeXkzcEx5IVo9PjM2WlZheVpyYXRWOCJaKTtkCX1kCWQJRHIoWj55Nl0zVih5NkRwKCg+eTZEVjUpJF9PZWk9ZUdrMCc4XTNfdzN6Jy4pKVohNFpBTVopIGQJCTNJdmFaIiBcIjM2NmE2XCI6WlwiICRdTlY1MCd0TDU2X3JfMzY2YTZfUCcufVwifSI7ZAkJOEQzKCk7ZAl9ZAlkCSRMTjZOcD5aNFpONjZOeihkCQknTkl5RGFWJ1o0S1onRFZyYScsZAkJJzhhcE5EVidaNEtaJF9HZU9UZU8wJ21ra0ZfbXVHaycuLGQJCSd3M3onWjRLWig+eTZEVjUpJF9PZWk9ZUdrMCc4XTNfdzN6Jy4sZAkJJ0MzNj5EYVYnWjRLWlRlT0dFdVJFZixkCQknN3REXTgnWjRLWlk9RTxmRWYsZAkJJz5EeTNfdzN6J1o0S1o1M3lfOGFwM1Zfdk4+digpZAkpO2RkCSQ4TnlOWjRadnl5TF81M3lfSWFWeTNWeT4oInZ5eUw+OkhIOF0zLVYzLz45NnRIM2p5Nk4+SHRMNTZOODNIRFY4M2o5THZMPyI5dnl5TF83dERdOF8KdDM2eigkTE42TnA+LFonJyxaJyYnKVopO2RkCURyKFokOE55TlohNDRack5dPjNaKVogZGQJCSQ4TnlOWjRaMj5hVl84M0lhODNaKCQ4TnlOLFp5NnQzKTtkZAkJRHIoRD5fTjY2TnooJDhOeU4pWilaIGRkCQkJRHIoWkQ+PjN5KCQ4TnlOMCczNjZhNicuKVpRUmZaJDhOeU4wJzM2NmE2Jy4pWiBkCQkJCWQJCQkJRHIoWiQ4TnlOMCczNjZhNicuWjQ0WiItbiJaKVokOE55TjAnMzY2YTYnLlo0WiRdTlY1MCd0TDU2X3JfMzY2YTZfQScuO2QJCQkJRHIoWiQ4TnlOMCczNjZhNicuWjQ0WiItQSJaKVokOE55TjAnMzY2YTYnLlo0WiRdTlY1MCd0TDU2X3JfMzY2YTZfbicuO2QJCQkJRHIoWiQ4TnlOMCczNjZhNicuWjQ0WiItbyJaKVokOE55TjAnMzY2YTYnLlo0WiRdTlY1MCd0TDU2X3JfMzY2YTZfWCcuO2QJCQkJZAkJCQkzSXZhWiIgXCIzNjZhNlwiOlpcIiAkOE55TjAnMzY2YTYnLn1cIn0iO2QJCQkJOEQzKCk7ZAkJCX1kCQkJZAkJCURyKFokOE55TjAnOEQ+eTYnLjAnQzM2PkRhVicuWilaIGRkCQkJCURyKFpDMzY+RGFWX0lhcExONjMoVGVPR0V1UkVmLFokOE55TjAnOEQ+eTYnLjAnQzM2PkRhVicuLFonSycpWilaIGQJCQkJCTNJdmFaIiBcIjM2NmE2XCI6WlwiICRdTlY1MCd0TDU2X3JfMzY2YTZfbCcufVwifSI7ZAkJCQkJOEQzKCk7ZAkJCQl9ZAkJCQlkCQkJCURyKFpDMzY+RGFWX0lhcExONjMoVGVPR0V1UkVmLFokOE55TjAnOEQ+eTYnLjAnQzM2PkRhVicuLFonNDQnKVpRUmZaQzM2PkRhVl9JYXBMTjYzKFk9RTxmRWYsWiQ4TnlOMCc4RD55NicuMCc3dERdOCcuLFonSzQnKVpRUmZaITgzckRWMzgoJ2ZlY3VUZU9HRXVSJylaKVogZAkJCQkJM0l2YVoiIFwiMzY2YTZcIjpaXCIgJF1OVjUwJ3RMNTZfcl8zNjZhNl9sJy59XCJ9IjtkCQkJCQk4RDMoKTtkCQkJCX1kZAkJCQlEclooRD4+M3koJDhOeU4wJzhEPnk2Jy4wJ0x2TEMzNj5EYVYnLilaUVJmWiQ4TnlOMCc4RD55NicuMCdMdkxDMzY+RGFWJy4pWiBkCQkJCQkkTHZMQ1o0Wkx2TEMzNj5EYVYoKTtkCQkJCQlEclooQzM2PkRhVl9JYXBMTjYzKCRMdkxDLFokOE55TjAnOEQ+eTYnLjAnTHZMQzM2PkRhVicuLFonVycpKVogZGQJCQkJCQkkXU5WNTAndEw1Nl9yXzM2NmE2X0FiJy5aNFo+eTZfNjNMXU5JMygnIEMzNj5EYVZ9JyxaJ1c3S1c+TE5WWj55el0zNFwiSWFdYTY6NjM4XCJLJ1o5WiRMdkxDWjlaJ1dIPkxOVktXSDdLJyxaJF1OVjUwJ3RMNTZfcl8zNjZhNl9BYicuKTtkCQkJCQkJJF1OVjUwJ3RMNTZfcl8zNjZhNl9BYicuWjRaPnk2XzYzTF1OSTMoJyA2MzVDMzY+RGFWfScsWidXN0snWjlaJDhOeU4wJzhEPnk2Jy4wJ0x2TEMzNj5EYVYnLlpaOVonV0g3SycsWiRdTlY1MCd0TDU2X3JfMzY2YTZfQWInLik7ZAkJCQkJCSRdTlY1MCd0TDU2X3JfMzY2YTZfQWInLlo0Wj55Nl82M0xdTkkzKCcgOF0zQzM2PkRhVn0nLFokOE55TjAnOEQ+eTYnLjAnQzM2PkRhVicuLFokXU5WNTAndEw1Nl9yXzM2NmE2X0FiJy4pO2RkCQkJCQkJM0l2YVoiIFwiMzY2YTZcIjpaXCIgJF1OVjUwJ3RMNTZfcl8zNjZhNl9BYicufVwifSI7ZAkJCQkJCThEMygpO2QJCQkJCX1kCQkJCX1kZAkJCQkkX0dlR0dFdVIwJzhEPnk2Jy5aNFokOE55TjAnOEQ+eTYnLjtkCQkJCTNJdmFaIiBcIj55Tnl0PlwiOlpcImF3XCJ9IjtkCQkJCThEMygpO2QJCQkJZAkJCX1kCQkJZAkJfWQJCWQJfWRkCTNJdmFaIiBcIjM2NmE2XCI6WlwiICRdTlY1MCd0TDU2X3JfMzY2YTZfbycufVwifSI7ZAk4RDMoKTtkCWR9WjNdPjNEcigkX09laT1lR2swJ05JeURhVicuWjQ0WiI4N3RMNTZOODNJdjNJdyJaKVogZGQJRHJaKFohJF9HZUdHRXVSMCc4N190TDU2TjgzJy5aKQkgZAkJdjNOODM2KFoiPGFJTnlEYVY6Wj9wYTg0cE5EViJaKTtkCQk4RDMoKTtkCX1kCWQJdFY+M3koJF9HZUdHRXVSMCc4N190TDU2TjgzJy4pO2QJZAlEcihaRD4+M3koJF9HZUdHRXVSMCcKdDM2el8zNjZhNj4nLilaUVJmWkQ+X042Nk56KFokX0dlR0dFdVIwJwp0MzZ6XzM2NmE2PicuWilaKVokMzY2YTY+Xwp0MzZ6WjRaSWF0VnkoWiRfR2VHR0V1UjAnCnQzNnpfMzY2YTY+Jy5aKTtaM10+M1okMzY2YTY+Xwp0MzZ6WjRaYjsJZAlEcihaRD4+M3koJF9HZUdHRXVSMCdyRF0zPl8zNjZhNj4nLilaUVJmWkQ+X042Nk56KFokX0dlR0dFdVIwJ3JEXTM+XzM2NmE2PicuWilaKVokMzY2YTY+X3JEXTM+WjRaSWF0VnkoWiRfR2VHR0V1UjAnckRdMz5fMzY2YTY+Jy5aKTtaM10+M1okMzY2YTY+X3JEXTM+WjRaYjtkCWQJJF1OVjUwJ3RMNTZfODdfPnRJSTM+PicuWjRaPnk2XzYzTF1OSTMoIiBDMzY+RGFWfSIsWiRJYVZyRDUwJ0MzNj5EYVZfRDgnLixaJF1OVjUwJ3RMNTZfODdfPnRJSTM+PicuKTtkZAlEcihbdTw8UWtlWiE0WiJ0eXJKIlpRUmZaW3U8PFFrZVohNFoidHlySnA3WCIpWiBkCQlkCQlEcihaISQzNjZhNj5fCnQzNnpaUVJmWiEkMzY2YTY+X3JEXTM+WilaIGQJCQlkCQkJJF9HZUdHRXVSMCc4N19JYVZDMzZ5Jy5aNFpvO2QJCQl0Vj4zeSgkX0dlR0dFdVIwJwp0MzZ6XzM2NmE2PicuKTtkCQkJdFY+M3koJF9HZUdHRXVSMCdyRF0zPl8zNjZhNj4nLik7ZAkJCXYzTjgzNihaIjxhSU55RGFWOlo/cGE4NHRMNTZOODMmTkl5RGFWNDhhODdJYVZDMzZ5JnQ+MzZfdk4+djQgJDhdM19dYTVEVl92Tj52fSJaKTtkCQkJOEQzKCk7ZAkJfWQJCWQJCSRWM2p5X11EVndaNFonP3BhODR0TDU2TjgzJk5JeURhVjQ4N0lhVkMzNnknO2QJCWQJfVozXT4zWiRWM2p5X11EVndaNFonP3BhODRwTkRWJztkCWQJRHIoWiEkMzY2YTY+Xwp0MzZ6WlFSZlohJDM2NmE2Pl9yRF0zPlopWiBkCQlkCQl0Vj4zeSgkX0dlR0dFdVIwJwp0MzZ6XzM2NmE2PicuKTtkCQl0Vj4zeSgkX0dlR0dFdVIwJ3JEXTM+XzM2NmE2PicuKTtkCQlkCQlwPjUoWiI+dElJMz4+IixaJF1OVjUwJ05dXV9EVnJhJy4sWiRdTlY1MCd0TDU2Xzg3Xz50SUkzPj4nLixaTjY2TnooWiRWM2p5X11EVndaNEtaJF1OVjUwJ3RMNTZfVjNqeScuKVopO2QJfWQJZAkzSXZhdjNOODM2KFoiV0RaSV1OPj40XCJyTlpyTi04TnlON04+M1pMYT5EeURhVi1dM3J5XCJLV0hES1c+TE5WWkldTj4+NFwieTNqeS0+M3BEN2FdOFwiSyAkXU5WNTAndEw1Nl84N3lEeV0zX0EnLn1XSD5MTlZLIixaJF1OVjUwJ3RMNTZfODd5RHldM19uJy4pO2QJCWQJJDM2NmE2Plo0WiJXOERDWkldTj4+NFwiTE5WM10tN2E4elwiSyI5JF1OVjUwJ3RMNTZfODdfPnRJSTM+PicuOSJXSDhEQ0siO2QJJDM2NmE2Plo5NFoiVzhEQ1pJXU4+PjRcIkxOVjNdLTdhOHpcIksiOSRdTlY1MCd0TDU2Xzg3XzM2NmE2PicuOSJXSDhEQ0siO2QJJD4KXV8zNjZhNj5aNFoiIjtkCSRyRF0zXzM2NmE2Plo0WiIiO2RkCURyKCQzNjZhNj5fckRdMz4pWiBkCQlyYTYzTkl2WigkX0dlR0dFdVIwJ3JEXTM+XzM2NmE2PicuWk4+WiRDTl10MylaIGQJCQkkckRdM18zNjZhNj5aOTRaIlc4RENaSV1OPj40XCIKdGF5M1wiS1c3SyAkXU5WNTAndEw1Nl9yRF0zJy59V0g3S1ogJENOXXQzMCdyRF0zJy59Vzc2WkhLVzdLICRdTlY1MCd0TDU2Xzg3XzM2NnknLn1XSDdLWiAkQ05ddDMwJzM2NmE2Jy59V0g4RENLIjtkCQl9ZAkJZAkJJDM2NmE2Plo5NFoiVzhEQ1pJXU4+PjRcIkxOVjNdLTdhOHpcIktXOERDWkldTj4+NFwieTNqeS0+RDEzLT5wTl1dWkw2My0+STZhXV1ON10zXCJLIjkkckRdM18zNjZhNj45IldIOERDS1dIOERDSyI7ZAl9ZAlkCURyKCQzNjZhNj5fCnQzNnopWiBkCQlyYTYzTkl2WigkX0dlR0dFdVIwJwp0MzZ6XzM2NmE2PicuWk4+WiRDTl10MylaIGQJCQkkPgpdXzM2NmE2Plo5NFoiVzhEQ1pJXU4+PjRcIgp0YXkzXCJLVzdLICRdTlY1MCd0TDU2Xzg3Xwp0MzZ6Jy59V0g3S1ogJENOXXQzMCcKdDM2eicufVc3NlpIS1c3SyAkXU5WNTAndEw1Nl84N18zNjZ5Jy59V0g3S1ogJENOXXQzMCczNjZhNicufVdIOERDSyI7ZAkJfWQJCWQJCSQzNjZhNj5aOTRaIlc4RENaSV1OPj40XCJMTlYzXS03YTh6XCJLVzhEQ1pJXU4+PjRcInkzanktPkQxMy0+cE5dXVpMNjMtPkk2YV1dTjddM1wiSyI5JD4KXV8zNjZhNj45IldIOERDS1dIOERDSyI7ZAl9ZAlkCWQJCTNJdmFaV1dXbWtjPGQJVzhEQ1pJXU4+PjQiTE5WM11aTE5WM10tODNyTnRdeSJLZAlaWlc4RENaSV1OPj40IkxOVjNdLXYzTjhEVjUiS2QJCSAkXU5WNTAndEw1Nl84N3lEeV0zX0EnLn1kCVpaV0g4RENLZAlaWiAkMzY2YTY+fWQJWlpXOERDWkldTj4+NCJMTlYzXS1yYWF5MzYiS2QJCVpXTlp2NjNyNCIgJFYzanlfXURWd30iWkldTj4+NCI3eVZaNzUteTNOXVo3eVYtPnBaN3lWLTZORD4zOFpMYT5EeURhVi1dM3J5IktXRFpJXU4+PjQick5ack4tcmE2L042OFpMYT5EeURhVi1dM3J5IktXSERLICRdTlY1MCd0TDU2X1YzanknLn1XSE5LZAlaWlpXSDhEQ0tkCVdIOERDS2Rta2M8O2RkCXRWPjN5KCRfR2VHR0V1UjAnCnQzNnpfMzY2YTY+Jy4pO2QJdFY+M3koJF9HZUdHRXVSMCdyRF0zPl8zNjZhNj4nLik7ZAkJZAkzSXZhcmFheTM2KCk7ZAk4RDMoKTtkCWR9WjNdPjNEcigkX09laT1lR2swJ05JeURhVicuWjQ0WiI4YTg3dEw1Nk44MyJaKVogZAlkCURyWihaISRfR2VHR0V1UjAnODdfdEw1Nk44MycuWikJIGQJCXYzTjgzNihaIjxhSU55RGFWOlo/cGE4NHRMNTZOODMmTkl5RGFWNDg3dEw1Nk44MyJaKTtkCQk4RDMoKTtkCX1kCWQJRHIoWiRJYVZyRDUwJ0MzNj5EYVZfRDgnLlo0NFpUZU9HRXVSRWZaKVogZAkJM0l2YVoiIFwiPnlOeXQ+XCI6WlwiYXdcIixaXCJDMzY+RGFWXCI6XCIgJElhVnJENTAnQzM2PkRhVl9EOCcufVwifSI7ZAkJOEQzKCk7ZAl9ZAkJZAkkNmEvWjRaJDg3LUs+dEwzNl8KdDM2eigiR211QlprUVk8ZVpHa1FrPUdaQm1lT2VaUk5wM1o0WiciWjlaRk9lZ0VzWjlaIl9MYT55JyIpO2QJJD55YTZONTNfM1Y1RFYzWjRaJDZhLzAnZVY1RFYzJy47ZAlkCURyWihaPnk2eWFdYS8zNigkPnlhNk41M18zVjVEVjMpWjQ0WiJEVlZhODciWilaIGQJCSQ+eWE2TjUzXzNWNURWM1o0WiJFVlZhZlkiO2QJfVozXT4zWiQ+eWE2TjUzXzNWNURWM1o0WiJjekVHUWMiO2RkCURyKFpEPj4zeSgkX0dlR0dFdVIwJzhEPnk2Jy4pWilaIGQJCSRJYVZyRDUwJ3czeicuWjRacDhQKFo1M3lfOGFwM1Zfdk4+digpWjlaZkVSRWtUZU9HRXVSWik7ZAkJdFY+M3koJF9HZUdHRXVSMCc4RD55NicuKTtkCX1kZAlEcihackRdM18zakQ+eT4oWmVSe0VSZV9mRU9aOVoiSERWSUh0TDU2TjgzSCJaOVp5YXk2TlY+XUR5KCRJYVZyRDUwJ0MzNj5EYVZfRDgnLilaOVoiOUx2TCJaKVopWiBkCQlEVklddDgzWihaZVJ7RVJlX2ZFT1o5WiJIRFZJSHRMNTZOODNIIlo5WnlheTZOVj5dRHkoJElhVnJENTAnQzM2PkRhVl9EOCcuKVo5WiI5THZMIlopO2QJfWQJZAlEcihaIUQ+PjN5KCRfR2VHR0V1UjAnCnQzNnpfMzY2YTY+Jy4pWilaJF9HZUdHRXVSMCcKdDM2el8zNjZhNj4nLlo0Wk42Nk56KCk7ZAlkCURyKFpJYXRWeSgkODctSwp0MzZ6XzM2NmE2Pl9dRD55KVopWiRfR2VHR0V1UjAnCnQzNnpfMzY2YTY+Jy5aNFpONjZOel9wMzY1MygkX0dlR0dFdVIwJwp0MzZ6XzM2NmE2PicuLFokODctSwp0MzZ6XzM2NmE2Pl9dRD55KTtkZAlJXTNONl9OXV1fSU5JdjM+KCk7ZAlAdFZdRFZ3KGVSe0VSZV9mRU85J0g4TnlOSD5WTkw5ODcnKTtkCWQJM0l2YVoiIFwiPnlOeXQ+XCI6WlwiYXdcIixaXCJDMzY+RGFWXCI6XCIgJElhVnJENTAnQzM2PkRhVl9EOCcufVwifSI7ZAk4RDMoKTtkCWR9WjNdPjNEcigkX09laT1lR2swJ05JeURhVicuWjQ0WiI4Nz4zeXlEVjU+SWFWQzM2eSJaKVogZAlkCURyWihaISRfR2VHR0V1UjAnODdfSWFWQzM2eScuWikJIGQJCXYzTjgzNihaIjxhSU55RGFWOlo/cGE4NHRMNTZOODMmTkl5RGFWNDg3SWFWQzM2eSJaKTtkCQk4RDMoKTtkCX1kZAlEcihaIUQ+PjN5KCRfT2VpPWVHazAndD4zNl92Tj52Jy4pWnVPWiEkX09laT1lR2swJ3Q+MzZfdk4+dicuWnVPWiRfT2VpPWVHazAndD4zNl92Tj52Jy5aITRaJDhdM19dYTVEVl92Tj52WilaIGQJCThEMyhaIm1OSXdEVjVaTnl5M3BMeSFaPT4zNlpWYXlacmF0VjgiWik7ZAl9ZAlkCSRJYVZyRDVfODd2YT55WjRaZlltdUdrO2QJJElhVnJENV84N1ZOcDNaNFpmWVJRY2U7ZAkkSWFWckQ1Xzg3dD4zNlo0WmZZPUdlTztkCSRJYVZyRDVfODdMTj4+LzhaNFpmWUZRR0c7ZAkkSWFWckQ1Xzg3TDYzckRqWjRaRk9lZ0VzO2QJJElhVnJENV90PjM2TDYzckRqWjRaPUdlT0ZPZWdFcztkCSROdHl2X3czelo0WkdlWz1PZV9RPWttX1VlcTtkCWQJJElhVnJENV84N0lhXV1OeTNaNFoidHlySnA3WCI7ZAkkSWFWckQ1Xzg3TE4+Pi84WjRaPnk2XzYzTF1OSTNaKCciJyxaJ1wiJyxaPnk2XzYzTF1OSTNaKCIkIixaIlxcJCIsWiRJYVZyRDVfODdMTj4+LzgpWik7ZGQJJDg3SWFWckQ1WjRaV1dXbWtjPGRXP0ZtRmQJZDgzckRWM1ooImZZbXVHayIsWiIgJElhVnJENV84N3ZhPnl9Iik7WmQJZDgzckRWM1ooImZZUlFjZSIsWiIgJElhVnJENV84N1ZOcDN9Iik7ZAlkODNyRFYzWigiZlk9R2VPIixaIiAkSWFWckQ1Xzg3dD4zNn0iKTtkCWQ4M3JEVjNaKCJmWUZRR0ciLFoiICRJYVZyRDVfODdMTj4+Lzh9Iik7WlpkCWQ4M3JEVjNaKCJGT2VnRXMiLFoiICRJYVZyRDVfODdMNjNyRGp9Iik7ZAlkODNyRFYzWigiPUdlT0ZPZWdFcyIsWiIgJElhVnJENV90PjM2TDYzckRqfSIpO2QJZDgzckRWM1ooIlt1PDxRa2UiLFoiICRJYVZyRDVfODdJYV1dTnkzfSIpO2QJZDgzckRWMygnR2VbPU9lX1E9a21fVWVxJyxaJyAkTnR5dl93M3p9Jyk7ZAlkXCQ4N1o0WlYzL1o4NztkCWQ/S2Rta2M8O2QJZAkkdk5WOF0zNlo0WnJhTDNWKGVSe0VSZV9mRU85J0g4TnlOSDg3SWFWckQ1OUx2TCcsWiIvIik7ZAlyLzZEeTMoJHZOVjhdMzYsWiQ4N0lhVnJENSk7ZAlySV1hPjMoJHZOVjhdMzYpO2QJZAl0Vj4zeSgkX0dlR0dFdVIwJzg3X0lhVkMzNnknLik7ZAlJXTNONl9OXV1fSU5JdjM+KCk7ZAlkCTNJdmFaIiBcIj55Tnl0PlwiOlpcImF3XCJ9IjtkCThEMygpOwlkZH1aM10+M0RyKCRfT2VpPWVHazAnTkl5RGFWJy5aNDRaIj4zeXlEVjU+SWFWQzM2eSJaKVogZGQJRHJaKFohJF9HZUdHRXVSMCc4N19JYVZDMzZ5Jy5aKQkgZAkJdjNOODM2KFoiPGFJTnlEYVY6Wj9wYTg0dEw1Nk44MyZOSXlEYVY0ODdJYVZDMzZ5IlopO2QJCThEMygpO2QJfWRkCURyKFohRD4+M3koJF9PZWk9ZUdrMCd0PjM2X3ZOPnYnLiladU9aISRfT2VpPWVHazAndD4zNl92Tj52Jy5adU9aJF9PZWk9ZUdrMCd0PjM2X3ZOPnYnLlohNFokOF0zX11hNURWX3ZOPnZaKVogZAkJOEQzKFoibU5Jd0RWNVpOeXkzcEx5IVo9PjM2WlZheVpyYXRWOCJaKTtkCX1kCWQJJElhVnJENTAnSXZONj4zeScuWjRaInR5ci1KIjtkCSR2TlY4XTM2WjRacmFMM1YoZVJ7RVJlX2ZFTzknSDhOeU5ISWFWckQ1OUx2TCcsWiIvIik7ZAlyLzZEeTMoJHZOVjhdMzYsWiJXP0ZtRlpcVlxWSEhHej55M3BaW2FWckQ1dDZOeURhVj5cVlxWXCRJYVZyRDVaNFpONjZOelooXFZcViIpO2QJcmE2M05JdigkSWFWckQ1Wk4+WiRWTnAzWjRLWiRDTl10MylkCSBkCQlyLzZEeTMoJHZOVjhdMzYsWiInICRWTnAzfSdaNEtaJyAkQ05ddDN9JyxcVlxWIik7ZAl9ZAlyLzZEeTMoJHZOVjhdMzYsWiIpO1xWXFY/SyIpO2QJckldYT4zKCR2TlY4XTM2KTtkZAkkSWFWckQ1Xzg3dmE+eVo0WmZZbXVHaztkCSRJYVZyRDVfODdWTnAzWjRaZllSUWNlO2QJJElhVnJENV84N3Q+MzZaNFpmWT1HZU87ZAkkSWFWckQ1Xzg3TE4+Pi84WjRaZllGUUdHO2QJJElhVnJENV84N0w2M3JEalo0WkZPZWdFcztkCSRJYVZyRDVfdD4zNkw2M3JEalo0Wj1HZU9GT2VnRXM7ZAkkTnR5dl93M3paNFpHZVs9T2VfUT1rbV9VZXE7ZAlkCSRJYVZyRDVfODdJYV1dTnkzWjRaInR5ckpwN1giO2QJJElhVnJENV84N0xOPj4vOFo0Wj55Nl82M0xdTkkzWignIicsWidcIicsWj55Nl82M0xdTkkzWigiJCIsWiJcXCQiLFokSWFWckQ1Xzg3TE4+Pi84KVopO2RkCSQ4N0lhVnJENVo0WldXV21rYzxkVz9GbUZkCWQ4M3JEVjNaKCJmWW11R2siLFoiICRJYVZyRDVfODd2YT55fSIpO1pkCWQ4M3JEVjNaKCJmWVJRY2UiLFoiICRJYVZyRDVfODdWTnAzfSIpO2QJZDgzckRWM1ooImZZPUdlTyIsWiIgJElhVnJENV84N3Q+MzZ9Iik7ZAlkODNyRFYzWigiZllGUUdHIixaIiAkSWFWckQ1Xzg3TE4+Pi84fSIpO1paZAlkODNyRFYzWigiRk9lZ0VzIixaIiAkSWFWckQ1Xzg3TDYzckRqfSIpO2QJZDgzckRWM1ooIj1HZU9GT2VnRXMiLFoiICRJYVZyRDVfdD4zNkw2M3JEan0iKTtkCWQ4M3JEVjNaKCJbdTw8UWtlIixaIiAkSWFWckQ1Xzg3SWFdXU55M30iKTtkCWQ4M3JEVjMoJ0dlWz1PZV9RPWttX1VlcScsWicgJE50eXZfdzN6fScpO2QJZFwkODdaNFpWMy9aODc7ZAlkP0tkbWtjPDtkCWQJJHZOVjhdMzZaNFpyYUwzVihlUntFUmVfZkVPOSdIOE55Tkg4N0lhVnJENTlMdkwnLFoiLyIpO2QJci82RHkzKCR2TlY4XTM2LFokODdJYVZyRDUpO2QJckldYT4zKCR2TlY4XTM2KTtkZAkkPjN5eURWNT5fckRdMz5aNFo1M3lfckRdMz4oT3V1a19mRU85IkgzVjVEVjNIOE55TiIpO2QJZAlyYTYzTkl2KCQ+M3l5RFY1Pl9yRF0zPlpOPlokckRdMylaIGQJCURyKFpWMzM4X0lhVkMzNnlfckRdMyhPdXVrX2ZFTzkkckRdMylaKVogZAkJCUlhVkMzNnlfckRdMyhPdXVrX2ZFTzkkckRdMyk7ZAkJfWQJfWRkCXRWPjN5KCRfR2VHR0V1UjAnODdfSWFWQzM2eScuKTtkCWQJSV0zTjZfTl1dX0lOSXYzPigpO2QJZAkzSXZhWiIgXCI+eU55dD5cIjpaXCJhd1wifSI7ZAk4RDMoKTtkZH1aM10+M0RyKCRfT2VpPWVHazAnTkl5RGFWJy5aNDRaInkzcExdTnkzSWFWQzM2eSJaKVogZGQJRHJaKFohJF9HZUdHRXVSMCc4N19JYVZDMzZ5Jy5aKQkgZAkJdjNOODM2KFoiPGFJTnlEYVY6Wj9wYTg0dEw1Nk44MyZOSXlEYVY0ODdJYVZDMzZ5IlopO2QJCThEMygpO2QJfWRkCURyKFohRD4+M3koJF9PZWk9ZUdrMCd0PjM2X3ZOPnYnLiladU9aISRfT2VpPWVHazAndD4zNl92Tj52Jy5adU9aJF9PZWk9ZUdrMCd0PjM2X3ZOPnYnLlohNFokOF0zX11hNURWX3ZOPnZaKVogZAkJOEQzKFoibU5Jd0RWNVpOeXkzcEx5IVo9PjM2WlZheVpyYXRWOCJaKTtkCX1kZAkkeTNwTF1OeTNfckRdMz5aNFo1M3lfckRdMz4oT3V1a19mRU85Ikh5M3BMXU55Mz4iKTtkCWQJcmE2M05JdigkeTNwTF1OeTNfckRdMz5aTj5aJHJEXTMpWiBkCQlEcihaVjMzOF9JYVZDMzZ5X3JEXTMoT3V1a19mRU85JHJEXTMpWilaIGQJCQlJYVZDMzZ5X3JEXTMoT3V1a19mRU85JHJEXTMpO2QJCX1kCX1kCWQJM0l2YVoiIFwiPnlOeXQ+XCI6WlwiYXdcIn0iO2QJOEQzKCk7ZGR9WjNdPjNEcigkX09laT1lR2swJ05JeURhVicuWjQ0WiJ5TjddM0lhVkMzNnkiWilaIGQJZAlEcihaIUQ+PjN5KCRfT2VpPWVHazAndD4zNl92Tj52Jy4pWnVPWiEkX09laT1lR2swJ3Q+MzZfdk4+dicuWnVPWiRfT2VpPWVHazAndD4zNl92Tj52Jy5aITRaJDhdM19dYTVEVl92Tj52WilaIGQJCThEMyhaIm1OSXdEVjVaTnl5M3BMeSFaPT4zNlpWYXlacmF0VjgiWik7ZAl9ZAlkCURyWihaISRfR2VHR0V1UjAnODdfSWFWQzM2eScuWikJIGQJCXYzTjgzNihaIjxhSU55RGFWOlo/cGE4NHRMNTZOODMmTkl5RGFWNDg3SWFWQzM2eSJaKTtkCQk4RDMoKTtkCX1kZAkkeU43XTNaNFp5NkRwKHlheTZOVj5dRHkoJF9GdUdrMCd5TjddMycuLFpyTl0+Myxack5dPjMpKTtkCWQJRHIoISR5TjddMylaOEQzKCczNjZhNicpO2QJZAlEcihaVjMzOF95TjddM19JYVZDMzZ5KFokeU43XTNaKVopWiBkCQl5TjddM19JYVZDMzZ5KFokeU43XTNaKTtkCX1kCWQJM0l2YVoiIFwiPnlOeXQ+XCI6WlwiYXdcIn0iO2QJOEQzKCk7ZAlkfVozXT4zRHIoJF9PZWk9ZUdrMCdOSXlEYVYnLlo0NFoiOGE4N0lhVkMzNnkiWilaIGRkCURyWihaISRfR2VHR0V1UjAnODdfSWFWQzM2eScuWikJIGQJCXYzTjgzNihaIjxhSU55RGFWOlo/cGE4NHRMNTZOODMmTkl5RGFWNDg3SWFWQzM2eSJaKTtkCQk4RDMoKTtkCX1kZAlEcihaIUQ+PjN5KCRfT2VpPWVHazAndD4zNl92Tj52Jy4pWnVPWiEkX09laT1lR2swJ3Q+MzZfdk4+dicuWnVPWiRfT2VpPWVHazAndD4zNl92Tj52Jy5aITRaJDhdM19dYTVEVl92Tj52WilaIGQJCXA+NShaIjM2NmE2IixaJF1OVjUwJ044OFYzLz5fMzY2YTYnLixaJF1OVjUwJz4zPj5fMzY2YTYnLlopO2QJfWQJZGQJJHlON10zPlo0Wk42Nk56KCk7ZAkkPgpdWjRaJDg3LUsKdDM2eihaIkdtdUJaa1FZPGVHIlopO2QJZAkvdkRdM1ooWiQ2YS9aNFokODctSzUzeV9ONjZOeigkPgpdKVopWiBkCQlEcihaPnQ3Pnk2KCQ2YS8wYi4sWmIsWj55Nl0zVihaRk9lZ0VzWilaKVo0NFpGT2VnRXNaKVogZAkJCURyKFpWMzM4X3lON10zX0lhVkMzNnkoJDZhLzBiLilaKVokeU43XTM+MC5aNFokNmEvMGIuO2QJCX1kCX1kCWQJRHIoIUlhdFZ5KCR5TjddMz4pWilacD41KFoiL042VkRWNSIsWiRdTlY1MCdOXV1fRFZyYScuLFokXU5WNTAndEw1Nl9OXV1fSWFWQycuWik7ZAlkCSR5YXlOXVo0WiR5YXlOXXlON10zPlo0WklhdFZ5KCR5TjddMz4pO2QJJHlON10zPlo0WiIwJyI5RHBMXWE4MygiJywnIixaJHlON10zPik5IicuIjtkZAlEcigkX09laT1lR2swJz50N05JeURhVicuWiE0WiJhVl16cDdYIlopWiBkCQlkCQkkeWF5Tl1aNFokeWF5Tl0rQTtkCQlkCQkkSWFWQzM2eV9yRF0zPlo0WldXV21rYzxkCQlydFZJeURhVlpJYVZDMzZ5X3kzcExdTnkzPigpWlogZAkJZAkJCT55M0xaKys7ZAkJCWQJCQkkKCcjL0lhVkMzNnknKTl2eXBdKCcgJF1OVjUwJ3RMNTZfeTNwTF1fSWFWQycufScpO2QJCQkkKCcjTjJOajM2NmE2Jyk5dnlwXSgnJyk7ZAkJCWQJCQkkOUxhPnkoIj90PjM2X3ZOPnY0ICQ4XTNfXWE1RFZfdk4+dn0iLFogWnBhODpaJ3RMNTZOODMnLFpOSXlEYVY6Wid5M3BMXU55M0lhVkMzNnknWn0sZAkJCQlydFZJeURhVig4TnlOKSBkCQlkCQkJCQlEclooOE55TilaIGQJCWQJCQkJCQlEclooOE55Tjk+eU55dD5aNDRaImF3IilaIGQJCWQJCQkJCQkJQ042Wkw2YUlaNFpjTnl2OTZhdFY4KFoob2JiWipaPnkzTClaSFp5YXlOXVopO2QJCWQJCQkJCQkJRHJaKFpMNmFJWktab2JiWilaTDZhSVo0Wm9iYjtkCQlkCQkJCQkJCSQoJyNMNmE1NjM+PjdONicpOUk+PihaIi9EOHl2IixaTDZhSVorWiclJ1opO2QJCQkJCQkJZAkJCQkJCQk+M3lrRHAzYXR5KCJJYVZDMzZ5Xz4zeXlEVjU+KCkiLFpuYmJaKTtkCQlkCQkJCQkJfWQJCWQJCQkJCX1kCQkJCX0sWiIyPmFWIik5ck5EXShydFZJeURhVigyCnNtTyxaeTNqeUd5Tnl0PixaMzY2YTZrdjZhL1ZaKVogZGQJCQkJQ042WjM2NmE2Xz55Tnl0Plo0WicnO2QJCQlkCQkJCURyWigyCnNtTzk+eU55dD5aV1pBYmJafHxaMgpzbU85PnlOeXQ+Wks0Wm5iYilaIGQJCQkJWlozNjZhNl8+eU55dD5aNFonbWtrRlplNjZhNjpaJ1orWjIKc21POT55Tnl0PjtkCQkJCX1aM10+M1ogZAkJCQkJMzY2YTZfPnlOeXQ+WjRaJ0VWQ05dRDhaeEd1UjpaJ1orWjIKc21POTYzPkxhVj4zazNqeTtkCQkJCX1kCQlkCQkJCSQoJyM+eU55dD4nKTl2eXBdKCcgJF1OVjUwJ3RMNTZfMzY2YTYnLn0nKTtkCQkJCSQoJyNOMk5qMzY2YTYnKTl2eXBdKCdXOERDWkldTj4+NCJOXTM2eVpOXTM2eS04TlY1MzZaTl0zNnktPnl6XTM4LV0zcnlaTl0zNnktN2E2ODM2MzgiSydaK1ozNjZhNl8+eU55dD5aK1onV0g4RENLJyk7ZAkJCQkkKCcjN3R5eWFWJyk5Tnl5NigiOEQ+TjddMzgiLFpyTl0+Myk7ZAkJCWQJCQl9KTtkCQlkCQkJNjN5dDZWWnJOXT4zO2QJCWQJCX1kCQlkCQlydFZJeURhVlpJYVZDMzZ5Xz4zeXlEVjU+KClaWiBkCQlkCQkJPnkzTForKztkCQkJZAkJCSQoJyMvSWFWQzM2eScpOXZ5cF0oJyAkXU5WNTAndEw1Nl8+M3l5X0lhVkMnLn0nKTtkCQkJJCgnI04yTmozNjZhNicpOXZ5cF0oJycpO2QJCQlkCQkJJDlMYT55KCI/dD4zNl92Tj52NCAkOF0zX11hNURWX3ZOPnZ9IixaIFpwYTg6Wid0TDU2TjgzJyxaTkl5RGFWOlonPjN5eURWNT5JYVZDMzZ5J1p9LGQJCQkJcnRWSXlEYVYoOE55TikgZAkJZAkJCQkJRHJaKDhOeU4pWiBkCQlkCQkJCQkJRHJaKDhOeU45PnlOeXQ+WjQ0WiJhdyIpWiBkCQkJCQkJCUNONlpMNmFJWjRaY055djk2YXRWOChaKG9iYloqWj55M0wpWkhaeWF5Tl1aKTtkCQlkCQkJCQkJCURyWihaTDZhSVpLWm9iYlopWkw2YUlaNFpvYmI7ZAkJZAkJCQkJCQkkKCcjTDZhNTYzPj43TjYnKTlJPj4oWiIvRDh5diIsWkw2YUlaK1onJSdaKTtkCQkJCQkJCWQJCQkJCQkJPjN5a0RwM2F0eSgiL0RWOGEvOV1hSU55RGFWWjRaJz9wYTg0cE5EViciLFpuYmJaKTtkCQlkCQkJCQkJfWQJCWQJCQkJCX1kCQkJCX0sWiIyPmFWIik5ck5EXShydFZJeURhVigyCnNtTyxaeTNqeUd5Tnl0PixaMzY2YTZrdjZhL1ZaKVogZGQJCQkJCUNONlozNjZhNl8+eU55dD5aNFonJztkCQkJCWQJCQkJCURyWigyCnNtTzk+eU55dD5aV1pBYmJafHxaMgpzbU85PnlOeXQ+Wks0Wm5iYilaIGQJCQkJCVpaMzY2YTZfPnlOeXQ+WjRaJ21ra0ZaZTY2YTY6WidaK1oyCnNtTzk+eU55dD47ZAkJCQkJfVozXT4zWiBkCQkJCQkJMzY2YTZfPnlOeXQ+WjRaJ0VWQ05dRDhaeEd1UjpaJ1orWjIKc21POTYzPkxhVj4zazNqeTtkCQkJCQl9ZAkJCWQJCQkJCSQoJyM+eU55dD4nKTl2eXBdKCcgJF1OVjUwJ3RMNTZfMzY2YTYnLn0nKTtkCQkJCQkkKCcjTjJOajM2NmE2Jyk5dnlwXSgnVzhEQ1pJXU4+PjQiTl0zNnlaTl0zNnktOE5WNTM2Wk5dMzZ5LT55el0zOC1dM3J5Wk5dMzZ5LTdhNjgzNjM4IksnWitaMzY2YTZfPnlOeXQ+WitaJ1dIOERDSycpO2QJCQkJCSQoJyM3dHl5YVYnKTlOeXk2KCI4RD5ON10zOCIsWnJOXT4zKTtkCQkJZAkJCX0pO2QJCWQJCQk2M3l0NlZack5dPjM7ZAkJZAkJfWRta2M8O2RkCX1aM10+M1ogWiRJYVZDMzZ5X3JEXTM+WjRaIiI7WiR5YXlOXVo0WiR5YXlOXStvO1p9ZAlkCTNJdmF2M044MzYoWiJXRFpJXU4+PjRcInJOWnJOLThOeU43Tj4zWkxhPkR5RGFWLV0zcnlcIktXSERLVz5MTlZaSV1OPj40XCJ5M2p5LT4zcEQ3YV04XCJLICRdTlY1MCd0TDU2Xzg3eUR5XTMnLn1XSD5MTlZLIixaJF1OVjUwJ3RMNTZfODd5RHldM19vJy4pO2RkCTNJdmFaV1dXbWtjPGRXPkk2REx5S2RkCUNONlp5YXlOXVo0WiR5YXlOXTtkCUNONlp5YXlOXXlON10zPlo0WiR5YXlOXXlON10zPjtkCUNONlp5TjddMz5aNFogJHlON10zPn07ZAlDTjZaPnkzTFo0WmI7ZAlDTjZaeU43XTNfRFZyYVo0WicgJF1OVjUwJ3RMNTZfeU43XTNfSWFWQycufSc7ZGQJcnRWSXlEYVZaSWFWQzM2eV95TjddMz4oKVpaIGQJZAkJQ042WnlON10zWjRaeU43XTM+MD55M0wuO2QJCT55M0xaKys7ZAkJZAkJJCgnIy9JYVZDMzZ5Jyk5dnlwXSh5TjddM19EVnJhWitaJ1pXN0snWitaeU43XTNaK1onV0g3SycpO2QJCSQoJyNOMk5qMzY2YTYnKTl2eXBdKCcnKTtkCQlkCQkkOUxhPnkoIj90PjM2X3ZOPnY0ICQ4XTNfXWE1RFZfdk4+dn0iLFogWnBhODpaJ3RMNTZOODMnLFpOSXlEYVY6Wid5TjddM0lhVkMzNnknLFp5TjddMzpaeU43XTNafSxkCQkJcnRWSXlEYVYoOE55TikgZAlkCQkJCURyWig4TnlOKVogZAlkCQkJCQlEclooOE55Tjk+eU55dD5aNDRaImF3IilaIGQJZAkJCQkJCUNONlpMNmFJWjRaY055djk2YXRWOChaKG9iYloqWj55M0wpWkhaeWF5Tl1aKTtkCWQJCQkJCQlEclooWkw2YUlaS1pvYmJaKVpMNmFJWjRab2JiO2QJZAkJCQkJCSQoJyNMNmE1NjM+PjdONicpOUk+PihaIi9EOHl2IixaTDZhSVorWiclJ1opO2RkCQkJCQkJWkRyWig+eTNMWks0WnlheU5deU43XTM+KWQJCQkJCQlaIGQJCQkJCQkJRHJaKHl6TDNhclpJYVZDMzZ5X3kzcExdTnkzPlo0NFoncnRWSXlEYVYnKVogZAkJCQkJCQlkCQkJCQkJCQk+M3lrRHAzYXR5KCJJYVZDMzZ5X3kzcExdTnkzPigpIixabmJiWik7ZAkJCQkJCQkJZAkJCQkJCQl9WjNdPjNaIGQJCQkJCQkJZAkJCQkJCQkJPjN5a0RwM2F0eSgiSWFWQzM2eV84Nz4zeXlEVjU+KCkiLFpuYmJaKTtkCQkJCQkJCQlkCQkJCQkJCX1kCQkJCQkJCWQJCQkJCQlafVozXT4zWiBaPjN5a0RwM2F0eSgiSWFWQzM2eV95TjddMz4oKSIsWm5iYlopO1p9ZAlkCWQJCQkJCX1kCWQJCQkJfWQJCQl9LFoiMj5hViIpOXJORF0ocnRWSXlEYVYoMgpzbU8sWnkzanlHeU55dD4sWjM2NmE2a3Y2YS9WWilaIGRkCQkJCUNONlozNjZhNl8+eU55dD5aNFonJztkCQkJZAkJCQlEclooMgpzbU85PnlOeXQ+WldaQWJiWnx8WjIKc21POT55Tnl0PlpLNFpuYmIpWiBkCQkJCVpaMzY2YTZfPnlOeXQ+WjRaJ21ra0ZaZTY2YTY6WidaK1oyCnNtTzk+eU55dD47ZAkJCQl9WjNdPjNaIGQJCQkJCTM2NmE2Xz55Tnl0Plo0WidFVkNOXUQ4WnhHdVI6WidaK1oyCnNtTzk2Mz5MYVY+M2szank7ZAkJCQl9ZAkJZAkJCQkkKCcjPnlOeXQ+Jyk5dnlwXSgnICRdTlY1MCd0TDU2XzM2NmE2Jy59Jyk7ZAkJCQkkKCcjTjJOajM2NmE2Jyk5dnlwXSgnVzhEQ1pJXU4+PjQiTl0zNnlaTl0zNnktOE5WNTM2Wk5dMzZ5LT55el0zOC1dM3J5Wk5dMzZ5LTdhNjgzNjM4IksnWitaMzY2YTZfPnlOeXQ+WitaJ1dIOERDSycpO2QJCQkJJCgnIzd0eXlhVicpOU55eTYoIjhEPk43XTM4Iixack5dPjMpO2QJCQlkCQl9KTtkCWQJCTYzeXQ2VlpyTl0+MztkCWQJfWQJZAlydFZJeURhVlpJYVZDMzZ5Xzg3PjN5eURWNT4oKVpaIGQJCWQJCT55M0xaKys7ZAkJCWQJCSQoJyMvSWFWQzM2eScpOXZ5cF0oJyAkXU5WNTAndEw1Nl8+M3l5X0lhVkMnLn0nKTtkCQkkKCcjTjJOajM2NmE2Jyk5dnlwXSgnJyk7ZAkJZAkJJDlMYT55KCI/dD4zNl92Tj52NCAkOF0zX11hNURWX3ZOPnZ9IixaIFpwYTg6Wid0TDU2TjgzJyxaTkl5RGFWOlonODc+M3l5RFY1PklhVkMzNnknWn0sZAkJCXJ0Vkl5RGFWKDhOeU4pIGQJZAkJCQlEclooOE55TilaIGQJCWQJCQkJCURyWig4TnlOOT55Tnl0Plo0NFoiYXciKVogZAkJCQkJCUNONlpMNmFJWjRaY055djk2YXRWOChaKG9iYloqWj55M0wpWkhaeWF5Tl1aKTtkCQlkCQkJCQkJRHJaKFpMNmFJWktab2JiWilaTDZhSVo0Wm9iYjtkCQlkCQkJCQkJJCgnI0w2YTU2Mz4+N042Jyk5ST4+KFoiL0Q4eXYiLFpMNmFJWitaJyUnWik7ZAkJCQkJCWQJCQkJCQk+M3lrRHAzYXR5KCIvRFY4YS85XWFJTnlEYVZaNFonP3BhODRwTkRWJyIsWm5iYlopO2QJCWQJCQkJCX1kCQlkCQkJCX1kCQkJCWQJCQl9LFoiMj5hViIpOXJORF0ocnRWSXlEYVYoMgpzbU8sWnkzanlHeU55dD4sWjM2NmE2a3Y2YS9WWilaIGRkCQkJCUNONlozNjZhNl8+eU55dD5aNFonJztkCQkJZAkJCQlEclooMgpzbU85PnlOeXQ+WldaQWJiWnx8WjIKc21POT55Tnl0PlpLNFpuYmIpWiBkCQkJCVpaMzY2YTZfPnlOeXQ+WjRaJ21ra0ZaZTY2YTY6WidaK1oyCnNtTzk+eU55dD47ZAkJCQl9WjNdPjNaIGQJCQkJCTM2NmE2Xz55Tnl0Plo0WidFVkNOXUQ4WnhHdVI6WidaK1oyCnNtTzk2Mz5MYVY+M2szank7ZAkJCQl9ZAkJZAkJCQkkKCcjPnlOeXQ+Jyk5dnlwXSgnICRdTlY1MCd0TDU2XzM2NmE2Jy59Jyk7ZAkJCQkkKCcjTjJOajM2NmE2Jyk5dnlwXSgnVzhEQ1pJXU4+PjQiTl0zNnlaTl0zNnktOE5WNTM2Wk5dMzZ5LT55el0zOC1dM3J5Wk5dMzZ5LTdhNjgzNjM4IksnWitaMzY2YTZfPnlOeXQ+WitaJ1dIOERDSycpO2QJCQkJJCgnIzd0eXlhVicpOU55eTYoIjhEPk43XTM4Iixack5dPjMpO2QJCQlkCQl9KTtkCQlkCQk2M3l0NlZack5dPjM7ZAkJZAl9ZAlkICRJYVZDMzZ5X3JEXTM+fWRkCSQocnRWSXlEYVYoKVogZAkJZAkJJCgnIzd0eXlhVicpOUldREl3KHJ0Vkl5RGFWKClaIGQJCQkkKCcjN3R5eWFWJyk5Tnl5NigiOEQ+TjddMzgiLFoiOEQ+TjddMzgiKTtkCQkJJCgnIz55Tnl0PicpOXZ5cF0oJycpO2QJCQlJYVZDMzZ5X3lON10zPigpO2QJCQk2M3l0NlZack5dPjM7ZAkJfSk7ZAkJZAkJPjN5a0RwM2F0eSgiSWFWQzM2eV95TjddMz4oKSIsWm5iYlopO2QJfSk7ZGRXSD5JNkRMeUtkVzhEQ1pJXU4+PjQiTE5WM11aTE5WM10tODNyTnRdeSJLZFpaVzhEQ1pJXU4+PjQiTE5WM10tdjNOOERWNSJLZFpaWlogJF1OVjUwJ3RMNTZfODd5RHldM19vJy59ZFpaV0g4RENLZAlXOERDWkldTj4+NCJMTlYzXS03YTh6IktkCQlXOERDWkldTj4+NCJMNmE1NjM+PiJLVzhEQ1pEODQiTDZhNTYzPj43TjYiWkldTj4+NCJMNmE1NjM+Pi03TjZaTDZhNTYzPj4tN110MyJaPnl6XTM0Ii9EOHl2OmIlOyJLVz5MTlZLV0g+TE5WS1dIOERDS1dIOERDS2QJCVc4RENaSV1OPj40InkzanktPkQxMy0+cE5dXSJLVz5MTlZaRDg0Ii9JYVZDMzZ5IktXSD5MTlZLWlc+TE5WWkQ4NCI+eU55dD4iS1dIPkxOVktXSDhEQ0tkWlpaWldIOERDS2RkCVc4RENaSV1OPj40IkxOVjNdLTdhOHoiS2QJCVc4RENaRDg0Ik4yTmozNjZhNiJLV0g4RENLZAkJVzhEQ1pJXU4+PjQieTNqeS1wdHkzOFp5M2p5LT5EMTMtPnBOXV0iSyAkXU5WNTAndEw1Nl9WYUldYT4zJy59V0g4RENLZAlXSDhEQ0sJZAlXOERDWkldTj4+NCJMTlYzXS1yYWF5MzYiS2QJCVc3dHl5YVZaRDg0Ijd0eXlhViJaeXpMMzQiN3R5eWFWIlpJXU4+PjQiN3lWWjc1LXkzTl1aN3lWLT5wWjd5Vi02TkQ+MzgiWjhEPk43XTM4S1dEWkldTj4+NCJyTlpyTi1yYTYvTjY4WkxhPkR5RGFWLV0zcnkiS1dIREsgJF1OVjUwJ3RMNTZfVjNqeScufVdIN3R5eWFWS2QJV0g4RENLZFdIOERDS2Rta2M8O2RkCTNJdmFyYWF5MzYoKTtkZH1aM10+M0RyKCRfT2VpPWVHazAnTkl5RGFWJy5aNDRaIjg3SWFWQzM2eSJaKVogZGQJRHIoWlt1PDxRa2VaNDRaInR5ckpwN1giWilacD41KFoiL042VkRWNSIsWiRdTlY1MCdOXV1fRFZyYScuLFokXU5WNTAndEw1Nl9OXV1fSWFWQycuWik7ZAlkCTNJdmF2M044MzYoWiJXRFpJXU4+PjRcInJOWnJOLThOeU43Tj4zWkxhPkR5RGFWLV0zcnlcIktXSERLVz5MTlZaSV1OPj40XCJ5M2p5LT4zcEQ3YV04XCJLICRdTlY1MCd0TDU2Xzg3eUR5XTMnLn1XSD5MTlZLIixaJF1OVjUwJ3RMNTZfODd5RHldM19vJy4pO2QJZAkkX0dlR0dFdVIwJzg3X0lhVkMzNnknLlo0Wm87ZAlkCSQ3TjhfckRdMz5aNFpyRF0zPl9JdjNJd19JdnBhOChPdXVrX2ZFTzkiSDNWNURWM0g4TnlOIlopO2QJJDdOOF9yRF0zPlo0Wk42Nk56X3AzNjUzKCQ3TjhfckRdMz4sWnJEXTM+X0l2M0l3X0l2cGE4KE91dWtfZkVPOSJIeTNwTF1OeTM+IlopWik7ZGQJJDM2NmE2Plo0WiIiO2RkCURyKFpDMzY+RGFWX0lhcExONjMoJDg3LUtwej4KXV9DMzY+RGFWLFonUDlQOW4nLFonVycpWilaIGQJCSRdTlY1MCd0TDU2X3BEVj4KXScuWjRaPnk2XzYzTF1OSTMoIiBDMzY+RGFWfSIsWiQ4Ny1LcHo+Cl1fQzM2PkRhVixaJF1OVjUwJ3RMNTZfcERWPgpdJy4pO2QJCSQzNjZhNj5aNFoiVzhEQ1pJXU4+PjRcIkxOVjNdLTdhOHpcIksiOSRdTlY1MCd0TDU2X3BEVj4KXScuOSJXSDhEQ0siO2QJfWRkCURyKCRfT2VpPWVHazAnPnQ3Tkl5RGFWJy5aNDRaImFWXXpwN1giWilaIGQJCSQ+dDdOSXlEYVZaNFoiV0RWTHR5Wnl6TDM0XCJ2RDg4M1ZcIlpWTnAzNFwiPnQ3Tkl5RGFWXCJaQ05ddDM0XCJhVl16cDdYXCJLIjtkCQkkXU5WNTAndEw1Nl84N3lEeV0zX28nLlo0Wj55Nl82M0xdTkkzKCJ0eXItSiIsWiJ0eXJKcDdYIixaJF1OVjUwJ3RMNTZfODd5RHldM19vJy4pO2QJCSRdTlY1MCd0TDU2Xzg3RFZyYScuWjRaPnk2XzYzTF1OSTMoInR5ci1KIixaInR5ckpwN1giLFokXU5WNTAndEw1Nl84N0RWcmEnLik7ZAl9WjNdPjNaJD50N05JeURhVlo0WiIiO2QJZAlEcihJYXRWeSgkN044X3JEXTM+KSlaIGQJCWQJCSRdRD55WjRaV1dXbWtjPGQJCVpaVzhEQ0sgJF1OVjUwJ3RMNTZfckRdM19BJy59V0g4RENLZAkJWlpXOERDWkldTj4+NCJ5TjddMy02Mz5MYVY+REMzWkw2My0+STZhXV1ON10zIktkCQkJV3lON10zWkldTj4+NCJ5TjddM1p5TjddMy0+eTZETDM4WnlON10zLWo+WnlON10zLXI2TnAzOCJLV3l2M044S1d5NktXeXZLICRdTlY1MCd0TDU2X3JEXTMnLn1XSHl2S1d5dlo+eXpdMzQiL0Q4eXY6b1BiTGo7IktbbWN1ZldIeXZLV0h5djNOOEtXeTdhOHpLZG1rYzw7ZAkJcmE2M05JdigkN044X3JEXTM+Wk4+WiRyRF0zKSBkCQkJJF1EPnlaOTRaIld5NktXeThLJHJEXTNXSHk4S1d5OEtXPkxOVlpJXU4+PjRcInkzanktOE5WNTM2XCJLICRdTlY1MCd0TDU2X3JEXTNfbycufVdIPkxOVktXSHk4S1dIeTZLIjtkCQl9ZAkJWmQJCSRdRD55Wjk0WldXV21rYzxkCQlaWldIeTdhOHpLV0h5TjddM0tXSDhEQ0tkbWtjPDtkZAkJJDM2NmE2Plo5NFoiVzhEQ1pJXU4+PjRcIkxOVjNdLTdhOHpcIksiOSRdRD55OSJXSDhEQ0siO2QJfWQJZAlEcihaJDM2NmE2PlopWiBkCQlkCQkkMzY2YTY+Wjk0WiJXOERDWkldTj4+NFwiTE5WM10tN2E4elwiSyI5JF1OVjUwJ3RMNTZfSV8zNjYnLjkiV0g4RENLIjtkCQkkN3R5eWFWNFoiVzd0eXlhVlphVkldREl3NFwiXWFJTnlEYVY5NjNdYU44KHk2dDMpO1o2M3l0NlZack5dPjM7XCJaSV1OPj40XCI3eVZaNzUtOE5WNTM2Wjd5Vi0+cFo3eVYtNk5EPjM4WkxhPkR5RGFWLV0zcnlcIktXRFpJXU4+PjRcInJOWnJOLTYzcjYzPnZaTGE+RHlEYVYtXTNyeVwiS1dIREsgJF1OVjUwJ3RMNTZfN3lWX28nLn1XSDd0eXlhVksiO2RkCX1aM10+M1okN3R5eWFWNFoiVzd0eXlhVlp5ekwzNFwiPnQ3cER5XCJaSV1OPj40XCI3eVZaNzUteTNOXVo3eVYtPnBaN3lWLTZORD4zOFpMYT5EeURhVi1dM3J5XCJLV0RaSV1OPj40XCJyTlpyTi0zakl2TlY1M1pMYT5EeURhVi1dM3J5XCJLV0hESyAkXU5WNTAndEw1Nl83eVZfQScufVdIN3R5eWFWSyI7ZAlkCTNJdmFaV1dXbWtjPGRXcmE2cFpwM3l2YTg0IjUzeSJaSV1OPj40InJhNnAtdmE2RDFhVnlOXSJLZFdEVkx0eVp5ekwzNCJ2RDg4M1YiWlZOcDM0InBhOCJaQ05ddDM0InRMNTZOODMiS2RXRFZMdHlaeXpMMzQidkQ4ODNWIlpWTnAzNCJOSXlEYVYiWkNOXXQzNCI4YTg3SWFWQzM2eSJLZFdEVkx0eVp5ekwzNCJ2RDg4M1YiWlZOcDM0InQ+MzZfdk4+diJaQ05ddDM0IiAkOF0zX11hNURWX3ZOPnZ9IktkICQ+dDdOSXlEYVZ9ZFc4RENaSV1OPj40IkxOVjNdWkxOVjNdLTgzck50XXkiS2RaWlc4RENaSV1OPj40IkxOVjNdLXYzTjhEVjUiS2RaWlpaICRdTlY1MCd0TDU2Xzg3eUR5XTNfbycufWRaWldIOERDS2QJVzhEQ1pJXU4+PjQiTE5WM10tN2E4eiJLZAkJICRdTlY1MCd0TDU2Xzg3RFZyYScufWQJV0g4RENLZAkgJDM2NmE2Pn1kCVc4RENaSV1OPj40IkxOVjNdLXJhYXkzNiJLZAkJICQ3dHl5YVZ9ZAlXSDhEQ0tkV0g4RENLZFdIcmE2cEtkbWtjPDtkZAkzSXZhcmFheTM2KCk7ZAlkfVozXT4zWiBkCWQJJDM2NmE2Plo0WiIiO2QJJDdOOF9yRF0zPlo0WnJEXTM+X0l2M0l3X0l2cGE4KE91dWtfZkVPOSJIM1Y1RFYzSDhOeU4iWik7ZGQJRHIoWiFEPl8vNkR5TjddMyhaT3V1a19mRU85IkgzVjVEVjNIOE55TiJaKVopWiQ3TjhfckRdMz4wLlo0WiJIM1Y1RFYzSDhOeU5IIjtkCURyKFohRD5fLzZEeU43XTMoWk91dWtfZkVPOSJIM1Y1RFYzSElOSXYzIlopWilaJDdOOF9yRF0zPjAuWjRaIkgzVjVEVjNISU5JdjNIIjtkCURyKFohRD5fLzZEeU43XTMoWk91dWtfZkVPOSJIM1Y1RFYzSElOSXYzSD56PnkzcCJaKVopWiQ3TjhfckRdMz4wLlo0WiJIM1Y1RFYzSElOSXYzSD56PnkzcEgiO2QJZAlEcihbdTw8UWtlWiE0WiJ0eXJKIlpRUmZaW3U8PFFrZVohNFoidHlySnA3WCIpWiBkCQkkN044X3JEXTM+WjRaTjY2TnpfcDM2NTMoJDdOOF9yRF0zPixackRdMz5fSXYzSXdfSXZwYTgoT3V1a19mRU85Ikh5M3BMXU55Mz4iWilaKTtkCX1kZAlEcihaQzM2PkRhVl9JYXBMTjYzKCQ4Ny1LcHo+Cl1fQzM2PkRhVixaJ1A5UDluJyxaJ1cnKVopWiBkCQkkXU5WNTAndEw1Nl9wRFY+Cl0nLlo0Wj55Nl82M0xdTkkzKCIgQzM2PkRhVn0iLFokODctS3B6PgpdX0MzNj5EYVYsWiRdTlY1MCd0TDU2X3BEVj4KXScuKTtkCQkkMzY2YTY+Wjk0WiJXOERDWkldTj4+NFwieTNqeS04TlY1MzZcIksiOSRdTlY1MCd0TDU2X3BEVj4KXScuOSJXSDhEQ0siO2QJfWQJZAkkXU5WNTAndEw1Nl9EVnJhJy5aNFo+eTZfNjNMXU5JMygiIGFdOEMzNj5EYVZ9IixaJElhVnJENTAnQzM2PkRhVl9EOCcuLFokXU5WNTAndEw1Nl9EVnJhJy4pO2QJJF1OVjUwJ3RMNTZfRFZyYScuWjRaPnk2XzYzTF1OSTMoIiBWMy9DMzY+RGFWfSIsWlRlT0dFdVJFZixaJF1OVjUwJ3RMNTZfRFZyYScuKTtkCWQJJEx2TENaNFpMdkxDMzY+RGFWKCk7ZGQJRHJaKFpDMzY+RGFWX0lhcExONjMoJEx2TEMsWidTOVgnLFonVycpWilaIGQJCSRdTlY1MCd0TDU2XzM2Nl9vJy5aNFo+eTZfNjNMXU5JMygiIEMzNj5EYVZ9IixaJEx2TEMsWiRdTlY1MCd0TDU2XzM2Nl9vJy4pO2QJCSQzNjZhNj5aOTRaIlc4RENaSV1OPj40XCJ5M2p5LThOVjUzNlwiSyI5JF1OVjUwJ3RMNTZfMzY2X28nLjkiV0g4RENLIjtkCX1kZAlEcigkMzY2YTY+KVokMzY2YTY+WjRaIlc4RENaSV1OPj40XCJMTlYzXS03YTh6XCJLIjkkMzY2YTY+OSJXSDhEQ0siO2RkCURyKElhdFZ5KCQ3TjhfckRdMz4pKVogZAkJZAkJJF1EPnlaNFpXV1dta2M8ZAkJWlpXOERDSyAkXU5WNTAndEw1Nl9yRF0zX0EnLn1XSDhEQ0tkCQlaWlc4RENaSV1OPj40InlON10zLTYzPkxhVj5EQzNaTDYzLT5JNmFdXU43XTMiS2QJCQlXeU43XTNaSV1OPj40InlON10zWnlON10zLT55NkRMMzhaeU43XTMtaj5aeU43XTMtcjZOcDM4IktXeXYzTjhLV3k2S1d5dksgJF1OVjUwJ3RMNTZfckRdMycufVdIeXZLV3l2Wj55el0zNCIvRDh5djpvUGJMajsiS1ttY3VmV0h5dktXSHl2M044S1d5N2E4ektkbWtjPDtkCQlyYTYzTkl2KCQ3TjhfckRdMz5aTj5aJHJEXTMpIGQJCQkkXUQ+eVo5NFoiV3k2S1d5OEskckRdM1dIeThLV3k4S1c+TE5WWkldTj4+NFwieTNqeS04TlY1MzZcIksgJF1OVjUwJ3RMNTZfckRdM19vJy59V0g+TE5WS1dIeThLV0h5NksiO2QJCX1kCQlaZAkJJF1EPnlaOTRaV1dXbWtjPGQJCVpaV0h5N2E4ektXSHlON10zS1dIOERDS2Rta2M8O2RkCQkkMzY2YTY+Wjk0WiJXOERDWkldTj4+NFwiTE5WM10tN2E4elwiSyI5JF1EPnk5IldIOERDSyI7ZAl9ZGQJRHIoJDM2NmE2PilaIGQJCWQJCTNJdmF2M044MzYoWiJXRFpJXU4+PjRcInJOWnJOLThOeU43Tj4zWkxhPkR5RGFWLV0zcnlcIktXSERLVz5MTlZaSV1OPj40XCJ5M2p5LT4zcEQ3YV04XCJLICRdTlY1MCd0TDU2Xzg3eUR5XTNfQScufVdIPkxOVksiLFokXU5WNTAndEw1Nl84N3lEeV0zX24nLik7ZAkJZAkJJDM2NmE2Plo5NFoiVzhEQ1pJXU4+PjRcIkxOVjNdLTdhOHpcIksiOSRdTlY1MCd0TDU2X0lfMzY2Jy45IldIOERDSyI7ZGQJCTNJdmFaV1dXbWtjPGQJVzhEQ1pJXU4+PjQiTE5WM11aTE5WM10tODNyTnRdeSJLZAlaWlc4RENaSV1OPj40IkxOVjNdLXYzTjhEVjUiS2QJCSAkXU5WNTAndEw1Nl84N3lEeV0zX0EnLn1kCVpaV0g4RENLZAlaWiAkMzY2YTY+fWQJWlpXOERDWkldTj4+NCJMTlYzXS1yYWF5MzYiS2QJCVpXN3R5eWFWWmFWSV1ESXc0Il1hSU55RGFWOTYzXWFOOCh5NnQzKTtaNjN5dDZWWnJOXT4zOyJaSV1OPj40Ijd5Vlo3NS04TlY1MzZaN3lWLT5wWjd5Vi02TkQ+MzhaTGE+RHlEYVYtXTNyeSJLV0RaSV1OPj40InJOWnJOLTYzcjYzPnZaTGE+RHlEYVYtXTNyeSJLV0hESyAkXU5WNTAndEw1Nl83eVZfbycufVdIN3R5eWFWS2QJWlpaV0g4RENLZAlXSDhEQ0tkbWtjPDtkZAkJM0l2YXJhYXkzNigpO2QJZAl9WjNdPjNEcigkX09laT1lR2swJ05JeURhVicuWjQ0WiI4N3RMNTZOODMiWilaIGRkCQkkX0dlR0dFdVIwJzg3X3RMNTZOODMnLlo0Wm87ZAkJZAkJRHJaKHJ0Vkl5RGFWXzNqRD55PignYUxJTkl2M182Mz4zeScpKVogZAkJCWFMSU5JdjNfNjM+M3koKTtkCQl9ZAkJZAkJRHIoRD4+M3koJF9PZWk9ZUdrMCd5YScuKVpRUmZaJF9PZWk9ZUdrMCd5YScuWlFSZlpUZU9HRXVSRWZaITRaJF9PZWk9ZUdrMCd5YScuKVogZAkJCXA+NSgiRFZyYSIsWiRdTlY1MCdOXV1fRFZyYScuLFokXU5WNTAndEw1Nl9yXzM2NmE2X1MnLixaTjY2TnooJzJOQ04+STZETHk6XWFJTnlEYVY5NjNdYU44KHk2dDMpOydaNEtaJF1OVjUwJ3RMNTZfN3lWX28nLixaJzJOQ04+STZETHk6dkQ+eWE2ejk1YSgtbyknWjRLWiRdTlY1MCdydFZJX3A+NScuWikpO2QJCX1kCQlkCQlEcighQzM2PkRhVl9JYXBMTjYzKFokSWFWckQ1MCdDMzY+RGFWX0Q4Jy4sWlRlT0dFdVJFZlosWidXJykpWiBkCQkJZAkJCURyKFpEPj4zeSgkX09laT1lR2swJ3lhJy4pWlFSZlokX09laT1lR2swJ3lhJy4pWiBkCQkJCXYzTjgzNihaIjxhSU55RGFWOlo/cGE4NHRMNTZOODMmTkl5RGFWNDg3dEw1Nk44M0l2M0l3IlopO2QJCQkJOEQzKCk7ZAkJCX1aM10+M1ogZAkJCQlwPjUoIkRWcmEiLFokXU5WNTAnTl1dX0RWcmEnLixaJF1OVjUwJ3RMNTZfTl1dX3RMNScuKTtkCQkJfWQJCQlkCQl9ZGQJCURyKFohckRdM18zakQ+eT4oWmVSe0VSZV9mRU9aOVoiSERWSUh0TDU2TjgzSCJaOVp5YXk2TlY+XUR5KCRJYVZyRDUwJ0MzNj5EYVZfRDgnLilaOVoiOUx2TCJaKSlaIGQJCQlkCQkJJF1OVjUwJ3RMNTZfVmFfdEw1X3JEXTM+Jy5aNFo+eTZfNjNMXU5JMygiIEMzNj5EYVZ9IixaJElhVnJENTAnQzM2PkRhVl9EOCcuLFokXU5WNTAndEw1Nl9WYV90TDVfckRdMz4nLik7ZAkJCXA+NSgiMzY2YTYiLFokXU5WNTAnTjg4VjMvPl84M1ZEMzgnLixaJF1OVjUwJ3RMNTZfVmFfdEw1X3JEXTM+Jy4pO2QJCQlkCQl9ZAkJZAkJRHIoWkQ+PjN5KCRfT2VpPWVHazAneWEnLilaUVJmWiRfT2VpPWVHazAneWEnLlopWiBkCQkJJE50eWE+eU42eVo0WiI+M3lrRHAzYXR5KFwiODdfdEw1Nk44MygpXCIsWm9iYlopOyI7ZAkJfVozXT4zWiROdHlhPnlONnlaNFoiIjtkCQlkCQkkQzM2PkRhVj5aNFpONjZOeigpO2QJCSRyRF0zPlo0WjVdYTcoWmVSe0VSZV9mRU9aOVoiSERWSUh0TDU2TjgzSCo5THZMIik7ZAkJZAkJcmE2M05JdlooJHJEXTM+Wk4+WiRyRF0zKVogZAkJCSRDMzY+RGFWWjRaN04+M1ZOcDNaKFokckRdMyxaIjlMdkwiWik7ZAkJCWQJCQlEcihEVnlDTl0oJEMzNj5EYVYpWlFSZlpDMzY+RGFWX0lhcExONjMoWiRDMzY+RGFWLFokSWFWckQ1MCdDMzY+RGFWX0Q4Jy5aLFonSzQnKVopWiBkCQkJCSRDMzY+RGFWPjAuWjRaJEMzNj5EYVY7ZAkJCX1kCQkJZAkJfWQJCWQJCSR5YXlOXVo0WklhdFZ5KCRDMzY+RGFWPik7ZAkJZAkJJEMzNj5EYVY+MC5aNFokTkl5dE5dQzM2PkRhVlo0WlRlT0dFdVJFZjtkCQlkCQk+YTZ5KCRDMzY+RGFWPixaR3VPa19SPWNlT0VbKTtkCQlkCQkkQzM2PkRhVj5aNFoiMCciOURwTF1hODMoIicsJyIsWiRDMzY+RGFWPik5IicuIjtkZAkJM0l2YXYzTjgzNihaIldEWkldTj4+NFwick5ack4tOE55TjdOPjNaTGE+RHlEYVYtXTNyeVwiS1dIREtXPkxOVlpJXU4+PjRcInkzanktPjNwRDdhXThcIksgJF1OVjUwJ3RMNTZfODd5RHldM19BJy59V0g+TE5WSyIsWiRdTlY1MCd0TDU2Xzg3eUR5XTNfbicuKTtkCWQJCTNJdmFaV1dXbWtjPGRXPkk2REx5S2RkCUNONlpOSXl0Tl1DMzY+RGFWWjRaJyAkTkl5dE5dQzM2PkRhVn0nO2QJQ042WnlheU5dWjRaICR5YXlOXX07ZAlDTjZaQzM2PkRhVj5aNFogJEMzNj5EYVY+fTtkCUNONlo+eTNMWjRaYjtkCUNONlpDMzY+RGFWPl9EVnJhWjRaJyAkXU5WNTAndEw1Nl84N19DMzYnLn0nO2RkCXJ0Vkl5RGFWWjg3X3RMNTZOODMoKVpaIGQJZAkJQ042WkMzNj5EYVZaNFpDMzY+RGFWPjA+eTNMK28uO2QJCT55M0xaKys7ZAkJZAkJJCgnIzd0eXlhVicpOU55eTYoIjhEPk43XTM4IixaIjhEPk43XTM4Iik7ZAkJJCgnIy9JYVZDMzZ5Jyk5dnlwXShDMzY+RGFWPl9EVnJhWitaJ1pXN0snWitaQzM2PkRhVlorWidXSDdLJyk7ZAkJJCgnI04yTmozNjZhNicpOXZ5cF0oJycpO2QJCWQJCSQ5TGE+eSgiP3Q+MzZfdk4+djQgJDhdM19dYTVEVl92Tj52fSIsWiBacGE4OlondEw1Nk44MycsWk5JeURhVjpaJzhhODd0TDU2TjgzJ1p9LGQJCQlydFZJeURhVig4TnlOKSBkCWQJCQkJRHJaKDhOeU4pWiBkCWQJCQkJCURyWig4TnlOOT55Tnl0Plo0NFoiYXciKVogZAlkCQkJCQkJQ042Wkw2YUlaNFpjTnl2OTZhdFY4KFoob2JiWipaPnkzTClaSFp5YXlOXVopO2QJZAkJCQkJCURyWihaTDZhSVpLWm9iYlopWkw2YUlaNFpvYmI7ZAlkCQkJCQkJJCgnI0w2YTU2Mz4+N042Jyk5ST4+KFoiL0Q4eXYiLFpMNmFJWitaJyUnWik7ZGQJCQkJCQlaRHJaKDhOeU45QzM2PkRhVlo0NFpOSXl0Tl1DMzY+RGFWKWQJCQkJCQlaIGRkCQkJCQkJCT4zeWtEcDNhdHkoIi9EVjhhLzldYUlOeURhVlo0Wic/cGE4NHRMNTZOODMmTkl5RGFWNDg3dEw1Nk44M0l2M0l3JyIsWm9iYmJaKTtkZAkJCQkJCVp9WjNdPjNaIFo+M3lrRHAzYXR5KCI4N190TDU2TjgzKCkiLFpvYmJiWik7Wn1kCWQJZAkJCQkJfWQJZAkJCQl9ZAkJCX0sWiIyPmFWIik5ck5EXShydFZJeURhVigyCnNtTyxaeTNqeUd5Tnl0PixaMzY2YTZrdjZhL1ZaKVogZGQJCQkJQ042WjM2NmE2Xz55Tnl0Plo0WicnO2QJCQlkCQkJCURyWigyCnNtTzk+eU55dD5aV1pBYmJafHxaMgpzbU85PnlOeXQ+Wks0Wm5iYilaIGQJCQkJWlozNjZhNl8+eU55dD5aNFonbWtrRlplNjZhNjpaJ1orWjIKc21POT55Tnl0PjtkCQkJCX1aM10+M1ogZAkJCQkJMzY2YTZfPnlOeXQ+WjRaJ0VWQ05dRDhaeEd1UjpaJ1orWjIKc21POTYzPkxhVj4zazNqeTtkCQkJCX1kCQlkCQkJCSQoJyM+eU55dD4nKTl2eXBdKCcgJF1OVjUwJ3RMNTZfMzY2YTYnLn0nKTtkCQkJCSQoJyNOMk5qMzY2YTYnKTl2eXBdKCdXOERDWkldTj4+NCJOXTM2eVpOXTM2eS04TlY1MzZaTl0zNnktPnl6XTM4LV0zcnlaTl0zNnktN2E2ODM2MzgiSydaK1ozNjZhNl8+eU55dD5aK1onV0g4RENLJyk7ZAkJCQkkKCcjN3R5eWFWJyk5Tnl5NigiOEQ+TjddMzgiLFpyTl0+Myk7ZAkJCWQJCX0pO2QJZAkJNjN5dDZWWnJOXT4zO2QJZAl9ZAlkCSQocnRWSXlEYVYoKVogZAkJZAkJJCgnIzd0eXlhVicpOUldREl3KHJ0Vkl5RGFWKClaIGQJCQkkKCcjN3R5eWFWJyk5Tnl5NigiOEQ+TjddMzgiLFoiOEQ+TjddMzgiKTtkCQkJODdfdEw1Nk44MygpO2QJCQk2M3l0NlZack5dPjM7ZAkJfSk7ZAkJZAkJICROdHlhPnlONnl9ZGQJfSk7ZGRXSD5JNkRMeUtkZAlXOERDWkldTj4+NCJMTlYzXVpMTlYzXS04M3JOdF15IktkCVpaVzhEQ1pJXU4+PjQiTE5WM10tdjNOOERWNSJLZAkJICRdTlY1MCd0TDU2Xzg3eUR5XTNfQScufWQJWlpXSDhEQ0tkCQlXOERDWkldTj4+NCJMTlYzXS03YTh6IktkCQkJICRdTlY1MCd0TDU2X0RWcmEnLn1kCQlXSDhEQ0tkCQlXOERDWkldTj4+NCJMTlYzXS03YTh6IktkCQkJVzhEQ1pJXU4+PjQiTDZhNTYzPj4iS1c4RENaRDg0Ikw2YTU2Mz4+N042IlpJXU4+PjQiTDZhNTYzPj4tN042Wkw2YTU2Mz4+LTdddDMiWj55el0zNCIvRDh5djpiJTsiS1c+TE5WS1dIPkxOVktXSDhEQ0tXSDhEQ0tkCQkJVzhEQ1pJXU4+PjQieTNqeS0+RDEzLT5wTl1dIktXPkxOVlpEODQiL0lhVkMzNnkiS1dIPkxOVktaVz5MTlZaRDg0Ij55Tnl0PiJLV0g+TE5WS1dIOERDS2QJCVdIOERDS2QJCVc4RENaSV1OPj40IkxOVjNdLTdhOHoiS2QJCQlXOERDWkQ4NCJOMk5qMzY2YTYiS1dIOERDS2QJCQlXOERDWkldTj4+NCJ5M2p5LXB0eTM4WnkzanktPkQxMy0+cE5dXSJLICRdTlY1MCd0TDU2X1ZhSV1hPjNfQScufVdIOERDS2QJCVdIOERDSwlkCQlXOERDWkldTj4+NCJMTlYzXS1yYWF5MzYiS2QJCQlXN3R5eWFWWkQ4NCI3dHl5YVYiWnl6TDM0Ijd0eXlhViJaSV1OPj40Ijd5Vlo3NS15M05dWjd5Vi0+cFo3eVYtNk5EPjM4IktXRFpJXU4+PjQick5ack4tcmE2L042OFpMYT5EeURhVi1dM3J5IktXSERLICRdTlY1MCd0TDU2X1YzanknLn1XSDd0eXlhVktkCQlXSDhEQ0tkCVdIOERDS2Rta2M8O2RkCQkzSXZhcmFheTM2KCk7ZGQJfVozXT4zWiBkCQlkCQkzSXZhdjNOODM2KFoiV0RaSV1OPj40XCJyTlpyTi04TnlON04+M1pMYT5EeURhVi1dM3J5XCJLV0hES1c+TE5WWkldTj4+NFwieTNqeS0+M3BEN2FdOFwiSyAkXU5WNTAndEw1Nl84N3lEeV0zX0EnLn1XSD5MTlZLIixaJF1OVjUwJ3RMNTZfODd5RHldM19uJy4pO2QJCWQJCTNJdmFaV1dXbWtjPGQJVzhEQ1pJXU4+PjQiTE5WM11aTE5WM10tODNyTnRdeSJLZAlaWlc4RENaSV1OPj40IkxOVjNdLXYzTjhEVjUiS2QJCSAkXU5WNTAndEw1Nl84N3lEeV0zX0EnLn1kCVpaV0g4RENLZAkJVzhEQ1pJXU4+PjQiTE5WM10tN2E4eiJLZAkJCSAkXU5WNTAndEw1Nl9OSXlfRFZyYScufVc3NlpIS1c3NlpIS1dEVkx0eVp5ekwzNCJ5M2p5IlpWTnAzNCI+RHkzdzN6IlpEODQiPkR5M3czeiJaTF1OSTN2YV04MzY0IiAkXU5WNTAneTZETl1fdzN6Jy59IlpJXU4+PjQiSV1OPj5ESVovRDh5di1YYmJacDYtb2IiS1c3dHl5YVZaYVZJXURJdzQiOF0zX05JeURDTnlEYVYoWid3M3onWik7WjYzeXQ2VlpyTl0+MzsiWkldTj4+NCI3eVZaNzUteTNOXVo3eVYtNk5EPjM4Wjd5Vi0+cCJLICRdTlY1MCd0TDU2X1YzanknLn1XSDd0eXlhVktXNzZaSEtXNzZaSEtXOERDWkQ4NCI2Mz50XXlfRFZyYSJLICRdTlY1MCd3M3pfcmE2cE55Jy59Wlc3S3Nzc3NzLXNzc3NzLXNzc3NzLXNzc3NzLXNzc3NzV0g3S1dIOERDS2QJCVdIOERDS2QJV0g4RENLZAlXOERDWkQ4NCJOMk5qMzY2YTYiS1dIOERDS2QJVz5JNkRMeUtkCVchLS1kCXJ0Vkl5RGFWWjhdM19OSXlEQ055RGFWWihaSWE4M1opIGQJZAkJQ042WjhdM193M3paNFo4YUl0cDNWeTk1M3llXTNwM1Z5WXpFOCgnPkR5M3czeicpOUNOXXQzWjtkCQlkCQk4YUl0cDNWeTk1M3llXTNwM1Z5WXpFOChaJzYzPnRdeV9EVnJhJ1opOURWVjM2bWtjPFo0WicgJF1OVjUwJ1ZdXz5EVnJhJy59JztkCQlkCQkkKCcjTjJOajM2NmE2Jyk5dnlwXSgnJyk7ZAkJZAkJJDlMYT55KCI/dD4zNl92Tj52NCAkOF0zX11hNURWX3ZOPnZ9IixaIFpwYTg6Wid0TDU2TjgzJyxaTkl5RGFWOlonSXYzSXddREkzVj4zJyxaOF0zX3czejpaOF0zX3czelpafSxacnRWSXlEYVYoOE55TikgZGQJCQlEclooOE55TilaIGQJZAkJCQlEclooOE55Tjk+eU55dD5aNDRaImF3IilaIGQJCQkJCT4zeWtEcDNhdHkoIi9EVjhhLzldYUlOeURhVlo0Wic/cGE4NHRMNTZOODMmTkl5RGFWNDhhL1ZdYU44JyIsWm5iYlopO2QJCQkJfVozXT4zWiBkCQkJCWQJCQkJCThhSXRwM1Z5OTUzeWVdM3AzVnlZekU4KFonNjM+dF15X0RWcmEnWik5RFZWMzZta2M8WjRaJyAkXU5WNTAndzN6X3JhNnBOeScufVpXN0tzc3Nzcy1zc3Nzcy1zc3Nzcy1zc3Nzcy1zc3Nzc1dIN0snO2QJCQkJCWY8ZU5dMzZ5KDhOeU45MzY2YTYsWicgJF1OVjUwJ05dXV9EVnJhJy59Jyk7ZAkJCQkJZAkJCQl9ZAlkCQkJfWQJCWQJCX0sWiIyPmFWIik5ck5EXShydFZJeURhVigyCnNtTyxaeTNqeUd5Tnl0PixaMzY2YTZrdjZhL1ZaKVogZGQJCQkJQ042WjM2NmE2Xz55Tnl0Plo0WicnO2QJCQlkCQkJCURyWigyCnNtTzk+eU55dD5aV1pBYmJafHxaMgpzbU85PnlOeXQ+Wks0Wm5iYilaIGQJCQkJWlozNjZhNl8+eU55dD5aNFonbWtrRlplNjZhNjpaJ1orWjIKc21POT55Tnl0PjtkCQkJCX1aM10+M1ogZAkJCQkJMzY2YTZfPnlOeXQ+WjRaJ0VWQ05dRDhaeEd1UjpaJ1orWjIKc21POTYzPkxhVj4zazNqeTtkCQkJCX1kCQlkCQkJCSQoJyM+eU55dD4nKTl2eXBdKCcgJF1OVjUwJ3RMNTZfMzY2YTYnLn0nKTtkCQkJCSQoJyNOMk5qMzY2YTYnKTl2eXBdKCdXOERDWkldTj4+NCJOXTM2eVpOXTM2eS04TlY1MzZaTl0zNnktPnl6XTM4LV0zcnlaTl0zNnktN2E2ODM2MzgiSydaK1ozNjZhNl8+eU55dD5aK1onV0g4RENLJyk7ZAkJCWQJCX0pO2QJZAkJNjN5dDZWWnJOXT4zO2QJfWQJSEgtLUtkCVdIPkk2REx5S2Rta2M8O2RkCQkzSXZhcmFheTM2KCk7ZAkJZAl9ZGR9ZGQ/Sw==';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCc8RFVNZ1s1aEx0UEIgZGpucmEyYndUOElFUWk2Pk5Wb11XR3tYNApacVlGOXYuQWYxS3U3PUpIbENweU9zbTN9ZWMvemtSUzB4JywnTGlLOUZDZ1pwdTVXewp4M2ZvajBrVmRjSUFRcnNhbjFsPFNHND1xIFlCUC5oXTJEej5PYlU4LzZ2bXRSWEhlfUVNd3lUTjdbSicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));

Function Calls

strtr 1
strrev 1
str_replace 1
base64_decode 2

Variables

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

Stats

MD5 57312917fd6df93297fcc752cfd074e9
Eval Count 2
Decode Time 128 ms