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='P3c8P2xubFc4Kldqampqampqampqampqampqampqampqampqampqampqampqampqampqampq..

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: functions.php
=====================================================
*/

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

if ( isset($config['auth_domain']) AND $config['auth_domain'] ) {

	$domain_cookie = explode (".", clean_url( $_SERVER['HTTP_HOST'] ));
	$domain_cookie_count = count($domain_cookie);
	$domain_allow_count = -2;
	
	if ( $domain_cookie_count > 2 ) {
	
		if ( in_array($domain_cookie[$domain_cookie_count-2], array('com', 'net', 'org') )) $domain_allow_count = -3;
		if ( $domain_cookie[$domain_cookie_count-1] == 'ua' ) $domain_allow_count = -3;
		
		$domain_cookie = array_slice($domain_cookie, $domain_allow_count);
	}
	
	$domain_cookie = "." . implode (".", $domain_cookie);
	
	if( ip2long($_SERVER['HTTP_HOST']) == -1 OR ip2long($_SERVER['HTTP_HOST']) === false ) define( 'DOMAIN', $domain_cookie );
	else define( 'DOMAIN', '' );

} else define( 'DOMAIN', '' );

function dle_session( $sid = false ) {
	global $config;
	
	$params = session_get_cookie_params();

	if ( DOMAIN ) $params['domain'] = DOMAIN;
	
	if (isset($config['only_ssl']) AND $config['only_ssl']) $params['secure'] = true;

	session_set_cookie_params($params['lifetime'], "/", $params['domain'], $params['secure'], true);

	if ( $sid ) session_id( $sid );

	session_start();

}

function set_cookie($name, $value, $expires) {
	global $config;
	
	if( $expires ) {
		
		$expires = time() + ($expires * 86400);
	
	} else {
		
		$expires = FALSE;
	
	}
	
	if ($config['only_ssl']) setcookie( $name, $value, $expires, "/", DOMAIN, TRUE, TRUE );
	else setcookie( $name, $value, $expires, "/", DOMAIN, FALSE, TRUE );

}

function formatsize($file_size) {
	
	if( !$file_size OR $file_size < 1) return '0 b';
	
    $prefix = array("b", "Kb", "Mb", "Gb", "Tb");
    $exp = floor(log($file_size, 1024)) | 0;

    $file_size = round($file_size / (pow(1024, $exp)), 2).' '.$prefix[$exp];
	$file_size = str_replace(",", ".", $file_size);

    return $file_size;

}

class microTimer {
	private $time;

	function __construct() {
		$this->time = $this->get_real_time();
	}
	function get() {
		return round( ($this->get_real_time() - $this->time), 5 );
	}

	function get_real_time() {
		list ( $seconds, $microSeconds ) = explode( ' ', microtime() );
		return (( float ) $seconds + ( float ) $microSeconds);
	}
}

function flooder($ip, $news_time = false) {
	global $config, $db;
	
	$ip = $db->safesql($ip);
	
	if ( $news_time ) {

		$this_time = time() - intval($news_time);
		$db->query( "DELETE FROM " . PREFIX . "_flood where id < '$this_time' AND flag='1' " );
		
		$row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_flood WHERE ip = '$ip' AND flag='1'");
		
		if( $row['count'] ) return TRUE;
		else return FALSE;

	} else {

		$this_time = time() - intval($config['flood_time']);
		$db->query( "DELETE FROM " . PREFIX . "_flood where id < '$this_time' AND flag='0' " );
		
		$row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_flood WHERE ip = '$ip' AND flag='0'");
		
		if( $row['count'] ) return TRUE;
		else return FALSE;

	}

}

function totranslit($var, $lower = true, $punkt = true, $translit = true ) {
	global $langtranslit;
	
	if ( !is_string($var) ) return "";

	$bads = array( '!', '*', '\'', '(', ')', ';', ':', '@', '&', '=', '+', '$', ',', '/', '?', '#', '[', ']', '%', '\', '"', '<', '>', '^', '{', '}', '|', '`', '.php' );
	
	$var = strip_tags( $var );
	$var = str_replace(chr(0), '', $var);

	$var = html_entity_decode($var, ENT_QUOTES | ENT_HTML5, 'utf-8');
	
	if ( $lower ) {
		$var = dle_strtolower($var);	
	}
	
	$var = str_replace( array( "
", "
", "
" ), ' ', $var );
	$var = preg_replace( "/\s+/u", "-", $var );

	if ( !$punkt ) {
		$bads[] = '.';
	}
	
	$var = str_ireplace( $bads, '', $var );
	
	if( $translit ) {
		
		if (is_array($langtranslit) AND count($langtranslit) ) {
			$var = strtr($var, $langtranslit);
		}
		
		if ( $punkt ) {
			
			$var = preg_replace( "/[^a-z0-9\_\-.]+/mi", '', $var );
			$var = preg_replace( '#[.]+#i', '.', $var );
			
		} else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", '', $var );
	
	}
	
	$var = str_ireplace( ".php", ".ppp", $var );
	$var = preg_replace( '/\-+/', '-', $var );
	
	if( dle_strlen( $var ) > 150 ) {
		
		$var = dle_substr( $var, 0, 150 );
		
		if( ($temp_max = dle_strrpos( $var, '-' )) ) $var = dle_substr( $var, 0, $temp_max );
	
	}
    
	$var = trim( $var, '-' );
    $var = trim( $var );
	
	return $var;
}

function langdate($format, $stamp, $servertime = false, $custom = false ) {
	global $langdate, $member_id, $customlangdate;

	$timezones = array('Pacific/Midway','US/Samoa','US/Hawaii','US/Alaska','US/Pacific','America/Tijuana','US/Arizona','US/Mountain','America/Chihuahua','America/Mazatlan','America/Mexico_City','America/Monterrey','US/Central','US/Eastern','US/East-Indiana','America/Lima','America/Caracas','Canada/Atlantic','America/La_Paz','America/Santiago','Canada/Newfoundland','America/Buenos_Aires','America/Godthab','Atlantic/Stanley','Atlantic/Azores','Africa/Casablanca','Europe/Dublin','Europe/Lisbon','Europe/London','Europe/Amsterdam','Europe/Belgrade','Europe/Berlin','Europe/Bratislava','Europe/Brussels','Europe/Budapest','Europe/Copenhagen','Europe/Madrid','Europe/Paris','Europe/Prague','Europe/Rome','Europe/Sarajevo','Europe/Stockholm','Europe/Vienna','Europe/Warsaw','Europe/Zagreb','Europe/Athens','Europe/Bucharest','Europe/Helsinki','Europe/Istanbul','Asia/Jerusalem','Europe/Kiev','Europe/Minsk','Europe/Riga','Europe/Sofia','Europe/Tallinn','Europe/Vilnius','Asia/Baghdad','Asia/Kuwait','Africa/Nairobi','Asia/Tehran','Europe/Kaliningrad','Europe/Moscow','Europe/Volgograd','Europe/Samara','Asia/Baku','Asia/Muscat','Asia/Tbilisi','Asia/Yerevan','Asia/Kabul','Asia/Yekaterinburg','Asia/Tashkent','Asia/Kolkata','Asia/Kathmandu','Asia/Almaty','Asia/Novosibirsk','Asia/Jakarta','Asia/Krasnoyarsk','Asia/Hong_Kong','Asia/Kuala_Lumpur','Asia/Singapore','Asia/Taipei','Asia/Ulaanbaatar','Asia/Urumqi','Asia/Irkutsk','Asia/Seoul','Asia/Tokyo','Australia/Adelaide','Australia/Darwin','Asia/Yakutsk','Australia/Brisbane','Pacific/Port_Moresby','Australia/Sydney','Asia/Vladivostok','Asia/Sakhalin','Asia/Magadan','Pacific/Auckland','Pacific/Fiji');

	if( is_array($custom) ) $locallangdate = $customlangdate; else $locallangdate = $langdate;

	if( !is_array($locallangdate) ) {
		$locallangdate = array();
	}	
	
	if (!$stamp) { $stamp = time(); }
	
	$local = new DateTime('@'.$stamp);

	if (isset($member_id['timezone']) AND $member_id['timezone'] AND !$servertime) {
		$localzone = $member_id['timezone'];

	} else {

		$localzone = date_default_timezone_get();
	}

	if (!in_array($localzone, $timezones)) $localzone = 'Europe/Moscow';

	$local->setTimeZone(new DateTimeZone($localzone));

	return strtr( $local->format($format), $locallangdate );

}

function difflangdate($format, $stamp) {
	global $_TIME, $langdate, $member_id, $lang, $langcommentsweekdays;

	$timezones = array('Pacific/Midway', 'US/Samoa', 'US/Hawaii', 'US/Alaska', 'US/Pacific', 'America/Tijuana', 'US/Arizona', 'US/Mountain', 'America/Chihuahua', 'America/Mazatlan', 'America/Mexico_City', 'America/Monterrey', 'US/Central', 'US/Eastern', 'US/East-Indiana', 'America/Lima', 'America/Caracas', 'Canada/Atlantic', 'America/La_Paz', 'America/Santiago', 'Canada/Newfoundland', 'America/Buenos_Aires', 'America/Godthab', 'Atlantic/Stanley', 'Atlantic/Azores', 'Africa/Casablanca', 'Europe/Dublin', 'Europe/Lisbon', 'Europe/London', 'Europe/Amsterdam', 'Europe/Belgrade', 'Europe/Berlin', 'Europe/Bratislava', 'Europe/Brussels', 'Europe/Budapest', 'Europe/Copenhagen', 'Europe/Madrid', 'Europe/Paris', 'Europe/Prague', 'Europe/Rome', 'Europe/Sarajevo', 'Europe/Stockholm', 'Europe/Vienna', 'Europe/Warsaw', 'Europe/Zagreb', 'Europe/Athens', 'Europe/Bucharest', 'Europe/Helsinki', 'Europe/Istanbul', 'Asia/Jerusalem', 'Europe/Kiev', 'Europe/Minsk', 'Europe/Riga', 'Europe/Sofia', 'Europe/Tallinn', 'Europe/Vilnius', 'Asia/Baghdad', 'Asia/Kuwait', 'Africa/Nairobi', 'Asia/Tehran', 'Europe/Kaliningrad', 'Europe/Moscow', 'Europe/Volgograd', 'Europe/Samara', 'Asia/Baku', 'Asia/Muscat', 'Asia/Tbilisi', 'Asia/Yerevan', 'Asia/Kabul', 'Asia/Yekaterinburg', 'Asia/Tashkent', 'Asia/Kolkata', 'Asia/Kathmandu', 'Asia/Almaty', 'Asia/Novosibirsk', 'Asia/Jakarta', 'Asia/Krasnoyarsk', 'Asia/Hong_Kong', 'Asia/Kuala_Lumpur', 'Asia/Singapore', 'Asia/Taipei', 'Asia/Ulaanbaatar', 'Asia/Urumqi', 'Asia/Irkutsk', 'Asia/Seoul', 'Asia/Tokyo', 'Australia/Adelaide', 'Australia/Darwin', 'Asia/Yakutsk', 'Australia/Brisbane', 'Pacific/Port_Moresby', 'Australia/Sydney', 'Asia/Vladivostok', 'Asia/Sakhalin', 'Asia/Magadan', 'Pacific/Auckland', 'Pacific/Fiji');

	if (!is_array($langdate)) {
		$langdate = array();
	}

	if (!is_array($langcommentsweekdays)) {
		$langcommentsweekdays = array();
	}

	if (!$stamp) {
		$stamp = $_TIME;
	}

	$olddate = new DateTime('@' . $stamp);
	$nowdate = new DateTime('@' . $_TIME);
	$yesterdaydate = new DateTime('-1 day');

	if (isset($member_id['timezone']) and $member_id['timezone']) {
		$localzone = $member_id['timezone'];
	} else {

		$localzone = date_default_timezone_get();
	}

	if (!in_array($localzone, $timezones)) $localzone = 'Europe/Moscow';

	$olddate->setTimeZone(new DateTimeZone($localzone));
	$nowdate->setTimeZone(new DateTimeZone($localzone));
	$yesterdaydate->setTimeZone(new DateTimeZone($localzone));

	$diff = $olddate->diff($nowdate);

	$days    = intval($diff->format('%a') );
	$hours   = intval($diff->format('%h') );
	$minutes = intval($diff->format('%i') );

	if( $olddate->format('Ymd') == $yesterdaydate->format('Ymd') ) {

		$lang_format = str_replace('{date}', $lang['time_gestern'], $lang['diffs_format']);
		$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);

		return $lang_format;

	} elseif( $days < 1 ) {

		if ($hours < 1) {

			if( $minutes < 1 ) {

				return $lang['now_diffs'];

			} else {

				return $minutes . ' ' . declination(array('', $minutes, $lang['minutes_diffs'])) . ' ' . $lang['time_diffs'];

			}

		} elseif ($hours <= 12) {

			return $hours . ' ' . declination(array('', $hours, $lang['hours_diffs'])) . ' ' . $lang['time_diffs'];

		} else {

			$lang_format = str_replace('{date}', $lang['time_heute'], $lang['diffs_format']);
			$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);

			return $lang_format;

		}

	} else {

		if ($days < 6) {

			$lang_format = str_replace('{date}', $olddate->format('l'), $lang['diffs_format']);
			$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);

			return strtr($lang_format, $langcommentsweekdays);

		} else return strtr($olddate->format($format), $langdate);

	}
}

function declination($matches = array())
{

	$matches[1] = strip_tags($matches[1]);
	$matches[1] = str_replace(' ', '', $matches[1]);

	$matches[1] = intval($matches[1]);
	$words = explode('|', trim($matches[2]));
	$parts_word = array();

	switch (count($words)) {
		case 1:
			$parts_word[0] = $words[0];
			$parts_word[1] = $words[0];
			$parts_word[2] = $words[0];
			break;
		case 2:
			$parts_word[0] = $words[0];
			$parts_word[1] = $words[0] . $words[1];
			$parts_word[2] = $words[0] . $words[1];
			break;
		case 3:
			$parts_word[0] = $words[0];
			$parts_word[1] = $words[0] . $words[1];
			$parts_word[2] = $words[0] . $words[2];
			break;
		case 4:
			$parts_word[0] = $words[0] . $words[1];
			$parts_word[1] = $words[0] . $words[2];
			$parts_word[2] = $words[0] . $words[3];
			break;
	}

	$word = $matches[1] % 10 == 1 && $matches[1] % 100 != 11 ? $parts_word[0] : ($matches[1] % 10 >= 2 && $matches[1] % 10 <= 4 && ($matches[1] % 100 < 10 || $matches[1] % 100 >= 20) ? $parts_word[1] : $parts_word[2]);

	return $word;
}

function formdate( $matches=array() ) {
	global $news_date, $customlangdate, $config;
	
	if($config['decline_date']) return langdate($matches[1], $news_date);
	else return langdate($matches[1], $news_date, false, $customlangdate);

}

function check_newscount( $matches=array() ) {
	global $global_news_count;

	$block = $matches[3];

	$counts = explode( ',', trim($matches[2]) );
	
    if( $matches[1] == "newscount" ) {

        if( !in_array($global_news_count, $counts) ) return "";

    } else {

        if( in_array($global_news_count, $counts) ) return "";

    }

	return $block;
	
}

function msgbox($title, $text) {
	global $tpl;

	if (!class_exists('dle_template')) {
	    return;
	}
	
	$tpl_2 = new dle_template( );
	$tpl_2->dir = TEMPLATE_DIR;
	
	$tpl_2->load_template( 'info.tpl' );
	
	$tpl_2->set( '{error}', $text );
	$tpl_2->set( '{title}', $title );
	
	$tpl_2->compile( 'info' );
	$tpl_2->clear();
	
	$tpl->result['info'] .= $tpl_2->result['info'];
}

function ShowRating($id, $rating, $vote_num, $allow = true) {
	global $lang, $config, $row, $dle_module;

	if( !$config['rating_type'] ) {
		
		if( $rating AND $vote_num ) {
			
			$rating = round( ($rating / $vote_num), 0 );
			
		} else {
			$rating = 0;
		}
		
		if ($rating < 0 ) $rating = 0;
		
		$rating = $rating * 20;
	
		if( !$allow ) {
		
			$rated = <<<HTML
<div class="rating">
		<ul class="unit-rating">
		<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
		</ul>
</div>
HTML;
		
			return $rated;
		}
	
		$rated = <<<HTML
<div data-ratig-layer-id='{$id}'>
	<div class="rating">
		<ul class="unit-rating">
		<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
		<li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="doRate('1', '{$id}'); return false;">1</a></li>
		<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="doRate('2', '{$id}'); return false;">2</a></li>
		<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="doRate('3', '{$id}'); return false;">3</a></li>
		<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="doRate('4', '{$id}'); return false;">4</a></li>
		<li><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doRate('5', '{$id}'); return false;">5</a></li>
		</ul>
	</div>
</div>
HTML;
	
		return $rated;

	} elseif ($config['rating_type'] == "1") {
		
		if( $rating < 0 ) $rating = 0;
		
		if( $allow ) $rated = "<span data-ratig-layer-id=\"{$id}\"><span class=\"ratingtypeplus\" >{$rating}</span></span>";
		else $rated = "<span class=\"ratingtypeplus\" >{$rating}</span>";
		
		return $rated;
	
	} elseif ($config['rating_type'] == "2" OR $config['rating_type'] == "3") {
		
		$extraclass = "ratingzero";
		
		if( $rating < 0 ) {
			$extraclass = "ratingminus";
		}
		
		if( $rating > 0 ) {
			$extraclass = "ratingplus";
			$rating = "+".$rating;
		}
		
		if( $allow ) $rated = "<span data-ratig-layer-id=\"{$id}\"><span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span></span>";
		else $rated = "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>";
		
		return $rated;
		
	}
	
}

function ShowCommentsRating($id, $rating, $vote_num, $allow = true) {
	global $lang, $config;

	if( !$config['comments_rating_type'] ) {
		
		if( $rating AND $vote_num ) $rating = round( ($rating / $vote_num), 0 );
		else $rating = 0;
		
		if ($rating < 0 ) $rating = 0;

		$rating = $rating * 20;
	
		if( !$allow ) {
		
			$rated = <<<HTML
<div class="rating">
		<ul class="unit-rating">
		<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
		</ul>
</div>
HTML;
		
			return $rated;
		}
	
		$rated = <<<HTML
<div data-comments-ratig-layer-id='{$id}'><div class="rating">
		<ul class="unit-rating">
		<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
		<li><a href="#" title="{$lang['useless']}" class="r1-unit" onclick="doCommentsRate('1', '{$id}'); return false;">1</a></li>
		<li><a href="#" title="{$lang['poor']}" class="r2-unit" onclick="doCommentsRate('2', '{$id}'); return false;">2</a></li>
		<li><a href="#" title="{$lang['fair']}" class="r3-unit" onclick="doCommentsRate('3', '{$id}'); return false;">3</a></li>
		<li><a href="#" title="{$lang['good']}" class="r4-unit" onclick="doCommentsRate('4', '{$id}'); return false;">4</a></li>
		<li><a href="#" title="{$lang['excellent']}" class="r5-unit" onclick="doCommentsRate('5', '{$id}'); return false;">5</a></li>
		</ul>
</div></div>
HTML;
	
		return $rated;

	} elseif ($config['comments_rating_type'] == "1") {
		
		if( $rating < 0 ) $rating = 0;
		
		if( $allow ) $rated = "<span data-comments-ratig-layer-id=\"{$id}\"><span class=\"ratingtypeplus\" >{$rating}</span></span>";
		else $rated = "<span class=\"ratingtypeplus\" >{$rating}</span>";
		
		return $rated;
	
	} elseif ($config['comments_rating_type'] == "2" OR $config['comments_rating_type'] == "3") {
		
		$extraclass = "ratingzero";
		
		if( $rating < 0 ) {
			$extraclass = "ratingminus";
		}
		
		if( $rating > 0 ) {
			$extraclass = "ratingplus";
			$rating = "+".$rating;
		}
		
		if( $allow ) $rated = "<span data-comments-ratig-layer-id=\"{$id}\"><span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span></span>";
		else $rated = "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>";
		
		return $rated;
		
	}
	
}

function userrating($id) {
	global $db, $config, $lang, $global_news_user_ratingscore;

	$id = intval($id);
	$global_news_user_ratingscore = 0;
		
	$row = $db->super_query( "SELECT SUM(rating) as rating, SUM(vote_num) as num FROM " . PREFIX . "_post_extras WHERE user_id ='{$id}'" );

	if ($row['num']) $global_news_user_ratingscore = str_replace(',', '.', round(($row['rating'] / $row['num']), 1));

	if( !$config['rating_type'] ) {	
	
		if( $row['num'] ) $rating = round( ($row['rating'] / $row['num']), 0 );
		else $rating = 0;

		if ($rating < 0 ) $rating = 0;
		
		$rating = $rating * 20;
	
		$rated = <<<HTML
<div class="rating" style="display:inline;">
		<ul class="unit-rating">
		<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
		</ul>
		</div>
HTML;
	
		return $rated;
	
	} elseif ($config['rating_type'] == "1") {
		
		if( $row['num'] ) $rating = number_format($row['rating'], 0, ',', ' '); else $rating = 0;
		
		if( $row['num'] < 0 ) $rating = 0;
		
		return "<span class=\"ratingtypeplus\" >{$rating}</span>";
		
	} elseif ($config['rating_type'] == "2" OR $config['rating_type'] == "3" ) {

		if( $row['num'] ) $rating = number_format($row['rating'], 0, ',', ' '); else $rating = 0;

		$extraclass = "ratingzero";
		
		if( $row['rating'] < 0 ) {
			$extraclass = "ratingminus";
		}
		
		if( $row['rating'] > 0 ) {
			$extraclass = "ratingplus";
			$rating = "+".$rating;
		}
		
		if($config['rating_type'] == "2") {
			
			return "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>";
		
		} else {
			$dislikes = ($row['num'] - $row['rating'])/2;
			$likes = $row['num'] - $dislikes;
			
			return str_replace(array('{likes}', '{dislikes}', '{rating}'), array("<span class=\"ratingtypeplusminus ratingplus\" >{$likes}</span>", "<span class=\"ratingtypeplusminus ratingminus\" >{$dislikes}</span>", "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>"), $lang['like_dislike_sum']);
		}

		
	}
}

function commentsuserrating($id) {
	global $db, $config, $lang, $global_comments_user_ratingscore;

	$id = intval($id);
	$global_comments_user_ratingscore = 0;

	$row = $db->super_query( "SELECT SUM(rating) as rating, SUM(vote_num) as num FROM " . PREFIX . "_comments WHERE user_id ='{$id}'" );

	if ($row['num']) $global_comments_user_ratingscore = str_replace(',', '.', round(($row['rating'] / $row['num']), 1));

	if( !$config['comments_rating_type'] ) {	
	
		if( $row['num'] ) $rating = round( ($row['rating'] / $row['num']), 0 );
		else $rating = 0;

		if ($rating < 0 ) $rating = 0;
		
		$rating = $rating * 20;
	
		$rated = <<<HTML
<div class="rating" style="display:inline;">
		<ul class="unit-rating">
		<li class="current-rating" style="width:{$rating}%;">{$rating}</li>
		</ul>
		</div>
HTML;
	
		return $rated;
	
	} elseif ($config['comments_rating_type'] == "1") {
		
		if( $row['num'] ) $rating = number_format($row['rating'], 0, ',', ' '); else $rating = 0;
		
		if( $rating < 0 ) $rating = 0;
		
		return "<span class=\"ratingtypeplus\" >{$rating}</span>";
		
	} elseif ($config['comments_rating_type'] == "2" OR $config['comments_rating_type'] == "3") {
		
		if( $row['num'] ) $rating = number_format($row['rating'], 0, ',', ' '); else $rating = 0;

		$extraclass = "ratingzero";
		
		if( $row['rating'] < 0 ) {
			$extraclass = "ratingminus";
		}
		
		if( $row['rating'] > 0 ) {
			$extraclass = "ratingplus";
			$rating = "+".$rating;
		}
		
		if($config['comments_rating_type'] == "2") {
			
			return "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>";
		
		} else {
			
			$dislikes = ($row['num'] - $row['rating'])/2;
			$likes = $row['num'] - $dislikes;
			
			return str_replace(array('{likes}', '{dislikes}', '{rating}'), array("<span class=\"ratingtypeplusminus ratingplus\" >{$likes}</span>", "<span class=\"ratingtypeplusminus ratingminus\" >{$dislikes}</span>", "<span class=\"ratingtypeplusminus {$extraclass}\" >{$rating}</span>"), $lang['like_dislike_sum']);
		}
		
	}
}

function CategoryNewsSelection($categoryid = 0, $parentid = 0, $nocat = TRUE, $sublevelmarker = '', $returnstring = '') {
	global $cat_info, $user_group, $member_id, $dle_module;

	if ($dle_module == 'addnews') {
		
		if($member_id['cat_allow_addnews']) $allow_list = explode( ',', $member_id['cat_allow_addnews'] );
		else $allow_list = explode( ',', $user_group[$member_id['user_group']]['cat_allow_addnews'] );
		
	} else $allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );

	$not_allow_list = explode( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );

	if ($dle_module == 'search') {
		if( count( $cat_info ) ){
			foreach ($cat_info as $cats) {
				if($cats['disable_search']) $not_allow_list[] = $cats['id'];
			}
		}
	}
	
	if (isset($member_id['cat_add']) AND $member_id['cat_add']) $spec_list = explode( ',', $member_id['cat_add'] );
	else $spec_list = explode( ',', $user_group[$member_id['user_group']]['cat_add'] );

	$root_category = array ();
	
	if( $parentid == 0 ) {
		if( $nocat AND $allow_list[0] == "all") $returnstring .= '<option value="0"></option>';
	} else {
		$sublevelmarker .= '&nbsp;&nbsp;&nbsp;';
	}
	
	if( count( $cat_info ) ) {
		
		foreach ( $cat_info as $cats ) {
			if( $cats['parentid'] == $parentid ) $root_category[] = $cats['id'];
		}
		
		if( count( $root_category ) ) {
			foreach ( $root_category as $id ) {
				
				if( $allow_list[0] == "all" OR in_array( $id, $allow_list ) ) {
					
					if( in_array( $id, $not_allow_list ) ) continue;
					
					if( $spec_list[0] == "all" or in_array( $id, $spec_list ) ) $color = "";
					else $color = "style=\"color: red\" ";
					
					$returnstring .= "<option {$color}value=\"" . $id . '" ';
					
					if( is_array( $categoryid ) ) {
						foreach ( $categoryid as $element ) {
							
							$element = intval($element);
							
							if( $element == $id ) $returnstring .= 'selected';
							
						}
					} elseif( intval($categoryid) == $id ) $returnstring .= 'selected';
					
					$returnstring .= '>' . $sublevelmarker . $cat_info[$id]['name'] . '</option>';
				}
				
				$returnstring = CategoryNewsSelection( $categoryid, $id, $nocat, $sublevelmarker, $returnstring );
			}
		}
	}
	return $returnstring;
}

function get_ID($cat_info, $category) {
	foreach ( $cat_info as $cats ) {
		if( $cats['alt_name'] == $category ) return $cats['id'];
	}
	return false;
}

function set_vars($file, $data) {
	
	$file = totranslit($file, true, false);
	
	if ( is_array($data) OR is_int($data) OR is_string($data) ) {
		
		file_put_contents (ENGINE_DIR . '/cache/system/' . $file . '.php', json_encode( $data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ), LOCK_EX);
		@chmod( ENGINE_DIR . '/cache/system/' . $file . '.php', 0666 );
		
	}
}

function get_vars($file) {
	$file = totranslit($file, true, false);

	$data = @file_get_contents( ENGINE_DIR . '/cache/system/' . $file . '.php' );

	if ( $data !== false ) {

		$data = json_decode( $data, true );
		if ( is_array($data) OR is_int($data) OR is_string($data) ) return $data;

	} 

	return false;	
}

function get_count_from_cache( $hash ) {
	
	$hash = md5($hash);

	$all_counts = dle_cache("news_cache_count");
	
	if( $all_counts ) {
		
		$all_counts = json_decode($all_counts, true);
		
		if( isset( $all_counts[$hash] ) ) {
			return intval($all_counts[$hash]);
		}
		
	}
	
	return 0;

}

function set_count_to_cache( $hash, $count ) {
	
	global $config;
	
	if( !$config['allow_cache'] ) return false;
	
	$hash = md5($hash);
	
	$all_counts = dle_cache("news_cache_count");
	
	if( $all_counts ) {
		
		$all_counts = json_decode($all_counts, true);
		
	}
	
	if( !is_array($all_counts) ) $all_counts = array();
	
	$all_counts[$hash] = intval($count);
	
	create_cache ( "news_cache_count", json_encode( $all_counts , JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) );
	
	return true;
	
}

function dle_cache($prefix, $cache_id = false, $member_prefix = false, $customCacheDate = false) {
	global $config, $is_logged, $member_id, $dlefastcache, $_TIME;

	if( !$config['allow_cache'] ) return false;

	$config['clear_cache'] = (intval($config['clear_cache']) > 1) ? intval($config['clear_cache']) : 0;

	if( $is_logged ) $end_file = $member_id['user_group'];
	else $end_file = "0";
	
	if( ! $cache_id ) {
		
		$key = $prefix;
	
	} else {
		
		$cache_id = md5( $cache_id );
		
		if( $member_prefix ) $key = $prefix . "_" . $cache_id . "_" . $end_file;
		else $key = $prefix . "_" . $cache_id;
	
	}
	
	if( $config['cache_type'] ) {
		if( $dlefastcache->connection > 0 ) {
			return $dlefastcache->get($key);
		}
	}

	if(file_exists( ENGINE_DIR . "/cache/" . $key . '.tmp' )) {

		if( $config['clear_cache'] OR $customCacheDate) {

			$file_date = @filemtime( ENGINE_DIR . "/cache/" . $key . '.tmp' );

			if($customCacheDate) {

				$amount = intval($customCacheDate);
				$timeUnit = substr($customCacheDate, -1);

				if( $amount AND in_array($timeUnit, array('d', 'h', 'm') ) ) {

					if ($timeUnit === "d") {
						$file_date += $amount * 24 * 60 * 60;
					} elseif ($timeUnit === "h") {
						$file_date += $amount * 60 * 60;
					} elseif ($timeUnit === "m") {
						$file_date += $amount * 60;
					}

					if( $_TIME > $file_date) {

						@unlink(ENGINE_DIR . "/cache/" . $key . ".tmp");
						return false;

					}

				}

			} elseif ( ( $_TIME - $file_date ) > ($config['clear_cache'] * 60) ) {

				@unlink(ENGINE_DIR . "/cache/" . $key . ".tmp");
				return false;

			}

		}

		return file_get_contents(ENGINE_DIR . "/cache/" . $key . ".tmp");

	}

	return false;

}

function create_cache($prefix, $cache_text, $cache_id = false, $member_prefix = false, $maxAge = false) {
	global $config, $is_logged, $member_id, $dlefastcache;
	
	if( !$config['allow_cache'] ) return false;
	
	if( $is_logged ) $end_file = $member_id['user_group'];
	else $end_file = "0";
	
	if( ! $cache_id ) {
		
		$key = $prefix;
		
	} else {
		
		$cache_id = md5( $cache_id );
		
		if( $member_prefix ) $key = $prefix . "_" . $cache_id . "_" . $end_file;
		else $key = $prefix . "_" . $cache_id;
	
	}
	
	if($cache_text === false) $cache_text = '';

	if( $config['cache_type'] ) {

		if( $dlefastcache->connection > 0 ) {

			if ( $maxAge ) {

				$amount = intval($maxAge);
				$timeUnit = substr($maxAge, -1);

				if ($amount and in_array($timeUnit, array('d', 'h', 'm'))) {

					if ($timeUnit === "d") {
						$maxAge = $amount * 24 * 60 * 60; //  
					} elseif ($timeUnit === "h") {
						$maxAge = $amount * 60 * 60; //  
					} elseif ($timeUnit === "m") {
						$maxAge = $amount * 60; //  
					}

				} else $maxAge = false;

			}

			if ( $maxAge ) $dlefastcache->set($key, $cache_text, $maxAge);
			else $dlefastcache->set($key, $cache_text);
			
			return true;
		}
	}

	file_put_contents (ENGINE_DIR . "/cache/" . $key . ".tmp", $cache_text, LOCK_EX);
	@chmod( ENGINE_DIR . "/cache/" . $key . ".tmp", 0666 );
	
	return true;
	
}

function clear_cache($cache_areas = false) {
	global $dlefastcache, $config;

	if( $config['cache_type'] ) {
		if( $dlefastcache->connection > 0 ) {
			$dlefastcache->clear( $cache_areas );
			return true;
		}
	}

	if ( $cache_areas ) {
		if(!is_array($cache_areas)) {
			$cache_areas = array($cache_areas);
		}
	}
		
	$fdir = opendir( ENGINE_DIR . '/cache' );
		
	while ( $file = readdir( $fdir ) ) {
		if( $file != '.htaccess' AND !is_dir(ENGINE_DIR . '/cache/' . $file) ) {
			
			if( $cache_areas ) {
				
				foreach($cache_areas as $cache_area) if( stripos( $file, $cache_area ) === 0 ) @unlink( ENGINE_DIR . '/cache/' . $file );
			
			} else {
				
				@unlink( ENGINE_DIR . '/cache/' . $file );
			
			}
		}
	}
	
	return true;

}

function ChangeSkin( $skin ) {
	
	$templates_list = get_folder_list( 'templates' );
	unset($templates_list['smartphone']);
	
	$skin_list = "<form method=\"post\"><select onchange=\"submit()\" name=\"skin_name\">";
	
	foreach ( $templates_list as $key => $value ) {
		
		if( $key == $skin ) $selected = " selected=\"selected\"";
		else $selected = "";
		
		$skin_list .= "<option value=\"{$key}\"" . $selected . ">{$value['name']}</option>";
	}
	
	$skin_list .= '</select><input type="hidden" name="action_skin_change" value="yes"></form>';
	
	return $skin_list;
}

function get_folder_list( $folder = 'language' ) {
	global $lang;
	$allowed_folder = array( 'language', 'templates' );
	
	$list = array ();
	
	if( !in_array($folder, $allowed_folder) ) {
		return $list;
	}
	
	if( !$handle = opendir( ROOT_DIR . "/". $folder ) ) {
		$list[]['name'] = $lang['opt_errfo']." ".$folder;
		return $list;
	}
	
	while ( false !== ($file = readdir( $handle )) ) {
		
		if( is_dir( ROOT_DIR . "/".$folder."/".$file ) AND ($file != "." and $file != "..") ) {
			
			if( is_file( ROOT_DIR . "/".$folder."/".$file."/info.json" ) ) {
				
				$data = json_decode( trim(file_get_contents( ROOT_DIR . "/".$folder."/".$file."/info.json" ) ), true );
				
				if( isset($data['name']) AND $data['name'] ) {
					$list[$file] = $data;
					continue;
				}
			}
			
			$list[$file]['name'] = $file;
		}
		
	}

	closedir( $handle );
	ksort($list);

	return $list;

	
}

function get_mass_cats($id) {
	global $cat_info;

	$id = explode ('-', $id);
	$temp_array = array();

	foreach ( $cat_info as $cats ) {

		if ($cats['id'] >= $id[0] AND $cats['id'] <= $id[1] ) $temp_array[] = intval($cats['id']);

	}

	if ( count($temp_array) ) { sort($temp_array); return implode(',', $temp_array); }
	else return 0;

}

function custom_comments( $matches=array() ) {
	global $db, $is_logged, $member_id, $cat_info, $config, $user_group, $category_id, $_TIME, $lang, $smartphone_detected, $dle_module, $allow_comments_ajax, $PHP_SELF, $dle_login_hash, $replace_links;

	if ( !count($matches) ) return "";
	
	$temp_category_id = $category_id;
	$param_str = trim($matches[1]);
	$custom_cache_id = "customcomments".$param_str.$config['skin'];

	$aviable = array("global");
	$comm_sort = "id";
	$comm_msort = "DESC";
	$where = array();
	$thisdate = date( "Y-m-d H:i:s", $_TIME );
	$sql_select = "SELECT cm.id, cm.post_id, cm.user_id, cm.date, cm.autor as gast_name, cm.email as gast_email, text, ip, is_register, cm.rating, cm.vote_num, name, u.email, news_num, u.comm_num, user_group, lastdate, reg_date, signature, foto, fullname, land, u.xfields, p.title, p.date as newsdate, p.alt_name, p.category, p.allow_comm FROM " . PREFIX . "_comments cm LEFT JOIN " . PREFIX . "_post p ON cm.post_id=p.id {cat_join}LEFT JOIN " . USERPREFIX . "_users u ON cm.user_id=u.user_id ";

	$allow_cache = $config['allow_cache'];
	$cats_select = false;
	$ids_for_sort = false;
	
	if( preg_match( "#available=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$aviable = explode( '|', $match[1] );
	}

	$do = $dle_module ? $dle_module : "main";

	if( !in_array( $do, $aviable ) AND ($aviable[0] != "global") ) return "";

	if( preg_match( "#newsid=['\"](.+?)['\"]#i", $param_str, $match ) ) {

		$param_str = str_replace($match[0], '', $param_str);
		$temp_array = array();
		$where_id = array();
		$match[1] = explode (',', trim($match[1]));

		foreach ($match[1] as $value) {

			if( count(explode('-', $value)) == 2 ) {
				$value = explode('-', $value);
				$where_id[] = "p.id >= '" . intval($value[0]) . "' AND p.id <= '".intval($value[1])."'";

			} else $temp_array[] = intval($value);

		}

		if ( count($temp_array) ) {

			$where_id[] = "p.id IN ('" . implode("','", $temp_array) . "')";
			$ids_for_sort = "FIND_IN_SET(p.id, '".implode(",", $temp_array)."') ";
		}

		if ( count($where_id) ) { 
			$custom_id = implode(' OR ', $where_id);
			$where[] = $custom_id;

		}
	}
	
	if( preg_match( "#newsidexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		$param_str = str_replace($match[0], '', $param_str);
		$temp_array = array();
		$where_id = array();
		$match[1] = explode (',', trim($match[1]));

		foreach ($match[1] as $value) {

			if( count(explode('-', $value)) == 2 ) {
				$value = explode('-', $value);
				$where_id[] = "(p.id < '" . intval($value[0]) . "' OR p.id > '".intval($value[1])."')";

			} else $temp_array[] = intval($value);

		}

		if ( count($temp_array) ) {

			$where_id[] = "p.id NOT IN ('" . implode("','", $temp_array) . "')";
		}

		if ( count($where_id) ) { 
			$custom_id = implode(' AND ', $where_id);
			$where[] = $custom_id;

		}
	}
	
	if( preg_match( "#id=['\"](.+?)['\"]#i", $param_str, $match ) ) {

		$temp_array = array();
		$where_id = array();
		$match[1] = explode (',', trim($match[1]));

		foreach ($match[1] as $value) {

			if( count(explode('-', $value)) == 2 ) {
				$value = explode('-', $value);
				$where_id[] = "cm.id >= '" . intval($value[0]) . "' AND cm.id <= '".intval($value[1])."'";

			} else $temp_array[] = intval($value);

		}

		if ( count($temp_array) ) {

			$where_id[] = "cm.id IN ('" . implode("','", $temp_array) . "')";
			$ids_for_sort = "FIND_IN_SET(cm.id, '".implode(",", $temp_array)."') ";
		}

		if ( count($where_id) ) { 
			$custom_id = implode(' OR ', $where_id);
			$where[] = $custom_id;

		}
	}
	
	if( preg_match( "#idexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {

		$temp_array = array();
		$where_id = array();
		$match[1] = explode (',', trim($match[1]));

		foreach ($match[1] as $value) {

			if( count(explode('-', $value)) == 2 ) {
				$value = explode('-', $value);
				$where_id[] = "(cm.id < '" . intval($value[0]) . "' OR cm.id > '".intval($value[1])."')";

			} else $temp_array[] = intval($value);

		}

		if ( count($temp_array) ) {

			$where_id[] = "cm.id NOT IN ('" . implode("','", $temp_array) . "')";
		}

		if ( count($where_id) ) { 
			$custom_id = implode(' AND ', $where_id);
			$where[] = $custom_id;

		}
	}

	$cat_join = "";
	
	if( preg_match( "#category=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$cats_select = true;

		$temp_array = array();

		$match[1] = explode (',', $match[1]);

		foreach ($match[1] as $value) {

			if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
			else $temp_array[] = intval($value);

		}

		$temp_array = implode(',', $temp_array);

		$custom_category = $db->safesql( trim($temp_array) );
		$custom_category = str_replace( ",", "','", $custom_category );

		if( $config['allow_multi_category'] ) {
			
			$cat_join = "INNER JOIN (SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . $custom_category . "')) c ON (p.id=c.news_id) ";
		
		} else {

			$where[] = "p.category IN ('" . $custom_category . "')";
		
		}
	}
	
	if( preg_match( "#categoryexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		$cats_select = true;
		
		$temp_array = array();

		$match[1] = explode (',', $match[1]);

		foreach ($match[1] as $value) {

			if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
			else $temp_array[] = intval($value);

		}

		$temp_array = implode(',', $temp_array);

		$custom_category = $db->safesql( trim($temp_array) );
		$custom_category = str_replace( ",", "','", $custom_category );

		if( $config['allow_multi_category'] ) {
			
			$where[] = "p.id NOT IN ( SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . $custom_category . "') )";
		
		} else {
			
			$where[] = "p.category NOT IN ('" . $custom_category . "')";
		
		}
	}
	
	if (!$cats_select) {
		
		$allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );
		
		if( $allow_list[0] != "all" ) {
	
			if( $config['allow_multi_category'] ) {
					
				$cat_join = "INNER JOIN (SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . implode( "','", $allow_list ) . "')) c ON (p.id=c.news_id) ";
				
			} else {
					
				$where[] = "p.category IN ('" . implode( "','", $allow_list ) . "')";
				
			}
		
		}
	
		$not_allow_cats = explode ( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );
			
		if( $not_allow_cats[0] != "" ) {
			
			if ($config['allow_multi_category']) {
				
				$where[] = "p.id NOT IN ( SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN (" . implode ( ',', $not_allow_cats ) . ") )";
			
			} else {
				
				$where[] = "p.category NOT IN ('" . implode ( "','", $not_allow_cats ) . "')";
			
			}
			
		}
	}
	
	$sql_select = str_replace( "{cat_join}", $cat_join, $sql_select );
	
	if( preg_match( "#days=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$days = intval(trim($match[1]));
		$where[] = "cm.date >= '{$thisdate}' - INTERVAL {$days} DAY AND cm.date < '{$thisdate}'";
	}

	if( preg_match( "#author=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		$match[1] = explode (',', $match[1]);

		$temp_array = array();

		foreach ($match[1] as $value) {

			$value = $db->safesql(trim($value));
			$temp_array[] = "cm.autor = '{$value}'";

		}		
		
		$where[] = implode(' OR ', $temp_array);
		
		
	}

	if( preg_match( "#authorexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		$match[1] = explode (',', $match[1]);

		$temp_array = array();

		foreach ($match[1] as $value) {

			$value = $db->safesql(trim($value));
			$temp_array[] = "cm.autor != '{$value}'";

		}		
		
		$where[] = implode(' AND ', $temp_array);
		
		
	}
	
	if( $config['allow_cmod'] ) {
		
		$where[] = "cm.approve=1";
	
	}

	if( preg_match( "#template=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$custom_template = trim($match[1]);
	} else $custom_template = "comments";
	
	
	if( preg_match( "#sort=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$allowed_sort = array ('asc' => 'ASC', 'desc' => 'DESC' );

		$match[1] = strtolower($match[1]);

		if ( $allowed_sort[$match[1]] ) $comm_msort = $allowed_sort[$match[1]];

	}
	
	if( preg_match( "#order=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$allowed_sort = array ('date' => 'id', 'rating' => 'rating', 'rand' => 'RAND()' );

		$match[1] = strtolower($match[1]);

		if ( $allowed_sort[$match[1]] ) $comm_sort = $allowed_sort[$match[1]];
		
		if ($match[1] == "rand" ) { $comm_msort = ""; }
		
		if($match[1] == "id_as_list" AND $ids_for_sort){
			$comm_sort = $ids_for_sort;
			$comm_msort = "";
		}

	}
	
	if( preg_match( "#from=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$custom_from = intval($match[1]);
	} else { $custom_from = 0; }

	if( preg_match( "#limit=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$custom_limit = intval($match[1]);
	} else $custom_limit = intval($config['comm_nummers']);

	$customCacheFile = false;
	$cacheTimestamp = false;

	if (preg_match("#cache=['\"](.+?)['\"]#i", $param_str, $match)) {

		$timeUnit = substr($match[1], -1);

		if (in_array($timeUnit, array('d', 'h', 'm'))) {

			$amount = intval($match[1]);

			if ($amount) {
				$cacheTimestamp = $amount . $timeUnit;
				$customCacheFile = true;
				$config['allow_cache'] = 1;
			}

		} else {

			if ($match[1] == "yes") $config['allow_cache'] = 1;
			else $config['allow_cache'] = false;
		}
	}

	if ($customCacheFile) $cacheFile = "customcommblock"; else $cacheFile = "news";

	if( count( $where ) ) {
		
		$where = implode( " AND ", $where );
		$where = "WHERE " . $where;
	
	} else $where = "";

	$sql_select .=  $where." ORDER BY " . $comm_sort . " " . $comm_msort . " LIMIT " . $custom_from . "," . $custom_limit;

	$content = dle_cache($cacheFile, $custom_cache_id, true, $cacheTimestamp );

	if( $content !== false ) {

		$config['allow_cache'] = $allow_cache;
		return $content;
	
	} else {

		$tpl = new dle_template();
		$tpl->dir = TEMPLATE_DIR;
			
		$comments = new DLE_Comments( $db, $custom_limit, $custom_limit );
		$comments->query = $sql_select;
		$content = $comments->build_customcomments( $tpl, $custom_template.'.tpl' );

		if ( $config['allow_cache'] ) create_cache( $cacheFile, $content, $custom_cache_id, true, $cacheTimestamp );

		$config['allow_cache'] = $allow_cache;
		$category_id = $temp_category_id;
		
		return $content;
	
	}
	

}

function custom_print( $matches=array() ) {
	global $db, $is_logged, $member_id, $xf_inited, $cat_info, $config, $user_group, $category_id, $_TIME, $lang, $smartphone_detected, $dle_module, $allow_comments_ajax, $PHP_SELF, $news_date, $banners, $banner_in_news, $ban_short, $url_page, $user_query, $custom_news, $global_news_count, $remove_canonical, $custom_navigation, $row, $_DOCUMENT_DATE;

	if ( !count($matches) ) return "";
	$save_row = $row;
	
	$param_str = trim($matches[1]);
	$custom_cache_id = "customnews".$param_str.$config['skin'];


	if( $config['user_in_news'] ) {
		
		$user_select = ", u.email, u.name, u.user_id, u.news_num, u.comm_num as user_comm_num, u.user_group, u.lastdate, u.reg_date, u.banned, u.allow_mail, u.info, u.signature, u.foto, u.fullname, u.land, u.favorites, u.pm_all, u.pm_unread, u.time_limit, u.xfields as user_xfields ";
		$user_join = "LEFT JOIN " . USERPREFIX . "_users u ON (e.user_id=u.user_id) ";
		
	} else { $user_select = ""; $user_join = ""; }
		
	$aviable = array("global");
	$thisdate = date( "Y-m-d H:i:s", $_TIME );
	$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.descr, p.keywords, p.category, p.alt_name, p.comm_num, p.allow_comm, p.allow_main, p.approve, p.fixed, p.symbol, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.disable_index, e.editdate, e.editor, e.reason {$user_select}FROM " . PREFIX . "_post p {cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) {$user_join}";

	$where = array();
	$allow_cache = $config['allow_cache'];
	$cats_select = false;
	$ids_for_sort = false;
	$cat_join_count = "";
	$xfields_in_news = array();

	if( preg_match( "#aviable=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$aviable = explode( '|', $match[1] );
	}
	
	if( preg_match( "#available=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$aviable = explode( '|', $match[1] );
	}
	
	$do = $dle_module ? $dle_module : "main";

	if( !in_array( $do, $aviable ) AND ($aviable[0] != "global") ) return "";

	if( preg_match( "#id=['\"](.+?)['\"]#i", $param_str, $match ) ) {

		$temp_array = array();
		$where_id = array();
		$match[1] = explode (',', trim($match[1]));

		foreach ($match[1] as $value) {

			if( count(explode('-', $value)) == 2 ) {
				$value = explode('-', $value);
				$where_id[] = "id >= '" . intval($value[0]) . "' AND id <= '".intval($value[1])."'";

			} else $temp_array[] = intval($value);

		}

		if ( count($temp_array) ) {

			$where_id[] = "id IN ('" . implode("','", $temp_array) . "')";
			$ids_for_sort = "FIND_IN_SET(id, '".implode(",", $temp_array)."') ";
		}

		if ( count($where_id) ) { 
			$custom_id = "(".implode(' OR ', $where_id).")";
			$where[] = $custom_id;

		}
	}
	
	if( preg_match( "#idexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {

		$temp_array = array();
		$where_id = array();
		$match[1] = explode (',', trim($match[1]));

		foreach ($match[1] as $value) {

			if( count(explode('-', $value)) == 2 ) {
				$value = explode('-', $value);
				$where_id[] = "(id < '" . intval($value[0]) . "' OR id > '".intval($value[1])."')";

			} else $temp_array[] = intval($value);

		}

		if ( count($temp_array) ) {

			$where_id[] = "id NOT IN ('" . implode("','", $temp_array) . "')";
		}

		if ( count($where_id) ) { 
			$custom_id = implode(' AND ', $where_id);
			$where[] = $custom_id;

		}
	}
	
	$cat_join = "";

	if( preg_match( "#category=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		$cats_select = true;
		
		$temp_array = array();

		$match[1] = explode (',', $match[1]);

		foreach ($match[1] as $value) {

			if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
			else $temp_array[] = intval($value);

		}

		$temp_array = trim(implode(',', $temp_array));

		if( $temp_array AND preg_match( "#subcat=['\"](yes|only)['\"]#i", $param_str, $subcat_match ) ) {
			
			$subcat_array = array();
			$c_arr = explode (',', $temp_array);
			
			foreach ($c_arr as $value) {
				$subcat_array[] = get_sub_cats ( $value, '', false );
			}
			
			$subcat_array = trim(str_replace( "|", ",", implode(',', $subcat_array)));
			
			if( $subcat_match[1] == "yes" ) {
				$temp_array .= ','.$subcat_array;
			}
			
			if( $subcat_match[1] == "only" ) {
				$temp_array = $subcat_array;
			}
			
		}

		$custom_category = $db->safesql( $temp_array );
		$custom_category = str_replace( ",", "','", $custom_category );

		if( $config['allow_multi_category'] ) {
			
			$cat_join = "INNER JOIN (SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . $custom_category . "')) c ON (p.id=c.news_id) ";
		
		} else {

			$where[] = "p.category IN ('" . $custom_category . "')";
		
		}
	}
	
	if( preg_match( "#categoryexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		$cats_select = true;
		
		$temp_array = array();

		$match[1] = explode (',', $match[1]);

		foreach ($match[1] as $value) {

			if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
			else $temp_array[] = intval($value);

		}

		$temp_array = trim(implode(',', $temp_array));

		if( $temp_array AND preg_match( "#subcat=['\"](yes|only)['\"]#i", $param_str, $subcat_match ) ) {
			
			$subcat_array = array();
			$c_arr = explode (',', $temp_array);
			
			foreach ($c_arr as $value) {
				$subcat_array[] = get_sub_cats ( $value, '', false );
			}
			
			$subcat_array = trim(str_replace( "|", ",", implode(',', $subcat_array)));
			
			if( $subcat_match[1] == "yes" ) {
				$temp_array .= ','.$subcat_array;
			}
			
			if( $subcat_match[1] == "only" ) {
				$temp_array = $subcat_array;
			}
			
		}

		$custom_category = $db->safesql( $temp_array );
		$custom_category = str_replace( ",", "','", $custom_category );

		if( $config['allow_multi_category'] ) {
			
			$where[] = "p.id NOT IN ( SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . $custom_category . "') )";
		
		} else {
			
			$where[] = "category NOT IN ('" . $custom_category . "')";
		
		}
	}
	
	if( !$cats_select ) {
		
		$allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );
		
		if( $allow_list[0] != "all" AND !$user_group[$member_id['user_group']]['allow_short'] ) {
	
			if( $config['allow_multi_category'] ) {
					
				$cat_join = "INNER JOIN (SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . implode( "','", $allow_list ) . "')) c ON (p.id=c.news_id) ";
				
			} else {
					
				$where[] = "category IN ('" . implode( "','", $allow_list ) . "')";
				
			}
		
		}
	
		$not_allow_cats = explode ( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );
			
		if( $not_allow_cats[0] != "" ) {
			
			if ($config['allow_multi_category']) {
				
				$where[] = "p.id NOT IN ( SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . implode ( "','", $not_allow_cats ) . "') )";
			
			} else {
				
				$where[] = "category NOT IN ('" . implode ( "','", $not_allow_cats ) . "')";
			
			}
			
		}
		
	}
	
	$sql_select = str_replace( "{cat_join}", $cat_join, $sql_select );
	
	if( preg_match( "#futureannounce=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		if( $match[1] == "yes" ) $fromfuture = true;
		else $fromfuture = false;
		
	} else $fromfuture = false;
	
	if( preg_match( "#days=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$days = intval(trim($match[1]));
		
		if($fromfuture) {
			
			$startdate = date("Y-m-d 00:00:00", strtotime("+1 day"));
			$enddate = date("Y-m-d 00:00:00", strtotime("+".($days+1)." day"));
			$where[] = "p.date >= '{$startdate}' AND p.date < '{$enddate}'";
			
		} else {
			
			$where[] = "p.date >= '{$thisdate}' - INTERVAL {$days} DAY AND p.date < '{$thisdate}'";
			
		}
		
	} else $days = 0;

	if( preg_match( "#author=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		$match[1] = explode (',', $match[1]);

		$temp_array = array();

		foreach ($match[1] as $value) {

			$value = $db->safesql(trim($value));
			$temp_array[] = "p.autor = '{$value}'";

		}		
		
		$where[] = "(".implode(' OR ', $temp_array).")";
		
		
	}

	if( preg_match( "#authorexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		$match[1] = explode (',', $match[1]);

		$temp_array = array();

		foreach ($match[1] as $value) {

			$value = $db->safesql(trim($value));
			$temp_array[] = "p.autor != '{$value}'";

		}		
		
		$where[] = implode(' AND ', $temp_array);
		
		
	}

	if( preg_match( "#catalog=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		$match[1] = explode (',', $match[1]);

		$temp_array = array();

		foreach ($match[1] as $value) {

			$value = $db->safesql(trim($value));
			$temp_array[] = "p.symbol = '{$value}'";

		}		
		
		$where[] = "(".implode(' OR ', $temp_array).")";
		
		
	}

	if( preg_match( "#catalogexclude=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		$match[1] = explode (',', $match[1]);

		$temp_array = array();

		foreach ($match[1] as $value) {

			$value = $db->safesql(trim($value));
			$temp_array[] = "p.symbol != '{$value}'";

		}		
		
		$where[] = implode(' AND ', $temp_array);
		
		
	}
	
	if( preg_match( "#xfields=[\"](.+?)[\"]#i", $param_str, $match ) ) {

		$match[1] = explode (',', $match[1]);

		$temp_array = array();

		foreach ($match[1] as $value) {

			$value = $db->safesql(trim($value));
			$temp_array[] = "p.xfields LIKE '%{$value}%'";

		}		
		
		$where[] = "(".implode(' OR ', $temp_array).")";
		
	}

	
	if( preg_match( "#xfieldsexclude=[\"](.+?)[\"]#i", $param_str, $match ) ) {
		
		$match[1] = explode (',', $match[1]);

		$temp_array = array();

		foreach ($match[1] as $value) {

			$value = $db->safesql(trim($value));
			$temp_array[] = "p.xfields NOT LIKE '%{$value}%'";

		}		
		
		$where[] = implode(' AND ', $temp_array);
		
		
	}

	if( preg_match( "#template=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$custom_template = trim($match[1]);
	} else $custom_template = "shortstory";

	if( preg_match( "#from=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$custom_from = intval($match[1]);
		$custom_all = $custom_from;
	} else { $custom_from = 0; $custom_all = 0;}

	if( preg_match( "#limit=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$custom_limit = intval($match[1]);
	} else $custom_limit = intval($config['news_number']);

	$customCacheFile = false;
	$cacheTimestamp = false;

	if( preg_match( "#cache=['\"](.+?)['\"]#i", $param_str, $match ) ) {

		$timeUnit = substr($match[1], -1);

		if( in_array($timeUnit, array('d', 'h', 'm') ) ) {

			$amount = intval($match[1]);

			if( $amount ) {
				$cacheTimestamp = $amount . $timeUnit;
				$customCacheFile = true;
				$config['allow_cache'] = 1;	
			}

		} else {

			if ($match[1] == "yes") $config['allow_cache'] = 1;
			else $config['allow_cache'] = false;

		}

	}

	if ($customCacheFile) $cacheFile = "customblock"; else $cacheFile = "news";

	if( $config['allow_cache'] ) $short_news_cache = true; else $short_news_cache = false;
	
	if( preg_match( "#fixed=['\"](.+?)['\"]#i", $param_str, $match ) ) {

		$fixed = "";

		if( $match[1] == "yes" ) $fixed = "fixed DESC, ";
		elseif( $match[1] == "only" ) { $where[] = "fixed='1'"; }
		elseif( $match[1] == "without" ) { $where[] = "fixed='0'"; }

	} else $fixed = "";
	
	
	if( preg_match( "#banners=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		if( $match[1] == "yes" ) $use_banners = true;
		else $use_banners = false;
		
	} else $use_banners = false;

	if( $is_logged and ($user_group[$member_id['user_group']]['allow_edit'] and ! $user_group[$member_id['user_group']]['allow_all_edit']) ) $config['allow_cache'] = false;

	if (isset($custom_category) AND $custom_category) {
		
		if( $cat_info[$custom_category]['news_sort'] ) $news_sort = $cat_info[$custom_category]['news_sort']; else $news_sort = $config['news_sort'];
		if( $cat_info[$custom_category]['news_msort'] ) $news_msort = $cat_info[$custom_category]['news_msort']; else $news_msort = $config['news_msort'];
		
	} else {
		
		$news_sort = $config['news_sort'];
		$news_msort = $config['news_msort'];
	}

	if( preg_match( "#sort=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$allowed_sort = array ('asc' => 'ASC', 'desc' => 'DESC' );

		$match[1] = strtolower($match[1]);

		if ( $allowed_sort[$match[1]] ) $news_msort = $allowed_sort[$match[1]];

	}

	if( preg_match( "#order=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		$allowed_sort = array ('date' => 'date', 'editdate' => 'editdate', 'rating' => 'rating', 'reads' => 'news_read', 'comments' => 'p.comm_num','title' => 'title', 'rand' => 'RAND()' );

		$match[1] = strtolower($match[1]);

		if ( $allowed_sort[$match[1]] ) $news_sort = $allowed_sort[$match[1]];

		if ($match[1] == "rand" ) { $fixed = ""; $news_msort = ""; }
		
		if($match[1] == "id_as_list" AND $ids_for_sort){
			$news_sort = $ids_for_sort;
			$news_msort = "";
		}

		if($match[1] == "lastviewed") {

			if(!$config['last_viewed']) return $lang['enable_lastviewed'];
		
			if( !$_COOKIE['viewed_ids'] ) return '';
			
			$viewed_ids = explode(',', trim($_COOKIE['viewed_ids']));
			$temp_array = array();
			
			if($news_msort == "ASC") $viewed_ids = array_reverse($viewed_ids);
			
			foreach ($viewed_ids as $value) {
				$value = intval(trim($value));
				
				if ($value > 0) $temp_array[] = $db->safesql($value);
				
			}
			
			if( count($temp_array) ) {
				$fixed = "";
				$where[] = "id IN ('" . implode("','", $temp_array) . "')";
				$news_sort = "FIND_IN_SET(id, '".implode(",", $temp_array)."') ";
				$news_msort = "";
				$config['allow_cache'] = false;
			}
		
		}
		
	}
	
	if( preg_match( "#sortbyuser=['\"](.+?)['\"]#i", $param_str, $match ) ) {
		
		if( $match[1] == "yes" ) {
			
			if (isset ( $_SESSION['dle_sort_global'] )) $news_sort = $_SESSION['dle_sort_global'];
			if (isset ( $_SESSION['dle_direction_global'] )) $news_msort = $_SESSION['dle_direction_global'];
			
			if ( !defined('CUSTOMSORT') ) {
				define('CUSTOMSORT', true);
			}
	
		}

	}
	
	if( preg_match( "#navigation=['\"](.+?)['\"]#i", $param_str, $match ) ) {

		if( $match[1] == "yes" AND $url_page !== false ) {

			$build_navigation = true;
			if (isset ( $_GET['cstart'] )) $cstart = intval ( $_GET['cstart'] ); else $cstart = 0;

			if ($cstart > $config['max_cache_pages']) $config['allow_cache'] = false;

			if ($cstart) {
				$cstart = $cstart - 1;
				$cstart = ($cstart * $custom_limit) + $custom_from;
				$custom_from = $cstart;
				$remove_canonical = true;
			}
			
			$custom_cache_id = $custom_cache_id.$cstart;
			
		} else $build_navigation = false;

	} else $build_navigation = false;

	$content = dle_cache($cacheFile, $custom_cache_id, true, $cacheTimestamp);
	
	if( $content ) {

		$content = json_decode($content, true);
		
		if( is_array( $content ) ) {
			
			if( $content['navigation'] ) {
				if ( !defined('CUSTOMNAVIGATION') ) {
					define('CUSTOMNAVIGATION', true);
					$custom_navigation = $content['navigation'];
				}
			}
			
			if( isset( $active['last-modified'] ) ) {
				
				if( $active['last-modified'] > $_DOCUMENT_DATE ) {
					$_DOCUMENT_DATE = $active['last-modified'];
				}
				
			}
				
			$content = $content['content'];
			
		}
	}
				
	if( $content !== false ) {

		$config['allow_cache'] = $allow_cache;
		$custom_news = true;
		$row = $save_row;
		
		if ($config['allow_quick_wysiwyg'] AND ($user_group[$member_id['user_group']]['allow_edit'] OR $user_group[$member_id['user_group']]['allow_all_edit'])) $allow_comments_ajax = true;
				
		return $content;
	
	} else {

		if( preg_match( "#tags=['\"](.+?)['\"]#i", $param_str, $match ) ) {

			$temp_array = array();
			
			$match[1] = explode (',', trim($match[1]));
			
			foreach ($match[1] as $value) {
				$value = $db->safesql(trim($value));
				if( $value ) $temp_array[] = "tag='{$value}'";
			}
			
			if ( count($temp_array) ) {
	
				$temp_array = implode(" OR ", $temp_array);
				
				$db->query ( "SELECT news_id FROM " . PREFIX . "_tags WHERE {$temp_array}" );

				$temp_array = array ();
				
				while ( $row = $db->get_row () ) {
					
					if (!in_array($row['news_id'], $temp_array)) $temp_array[] = $row['news_id'];
				
				}
				
				if (count ( $temp_array )) {
					
					$where[] = "id IN ('" . implode("','", $temp_array) . "')";
				
				} else $where[] = "id IN ('0')";
				
			}
			
		}
		
		$where[] = "approve=1";

		if( $config['no_date'] AND !$config['news_future'] AND !$days) $where[] = "date < '" . $thisdate . "'";
		
		if ( $build_navigation ) {
			
			$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post p {$cat_join}WHERE ".implode(' AND ', $where);

		} else $sql_count = "";

		$tpl = new dle_template();
		$tpl->dir = TEMPLATE_DIR;				
		$tpl->is_custom = true;

		$tpl->load_template( $custom_template . '.tpl' );
	
		$sql_select .= " WHERE ".implode(' AND ', $where)." ORDER BY " . $fixed . $news_sort . " " . $news_msort . " LIMIT " . $custom_from . "," . $custom_limit;

		$sql_result = $db->query( $sql_select );

		include (DLEPlugins::Check(ENGINE_DIR . '/modules/show.custom.php'));

		if( $config['files_allow'] ) if( strpos( $tpl->result['content'], "[attachment=" ) !== false ) {
			$tpl->result['content'] = show_attach( $tpl->result['content'], $attachments );
		}
		
		if ( $custom_news ) create_cache($cacheFile, json_encode( array('content' => $tpl->result['content'], 'navigation' => $tpl->result['navigation'], 'last-modified' => $_DOCUMENT_DATE ) , JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ), $custom_cache_id, true, $cacheTimestamp );
		
		$config['allow_cache'] = $allow_cache;
		$tpl->is_custom = false;
		$row = $save_row;
		
		return $tpl->result['content'];
	
	}

}

function check_ip($ips) {
	
	$_IP = get_ip();

	$blockip = false;
	
	if( is_array( $ips ) ) {
		
		if( strpos($_IP, ":") === false ) {
			$delimiter = ".";
		} else $delimiter = ":";
		
		$this_ip_split = explode( $delimiter, $_IP );
		$ip_lenght = count($this_ip_split);
		
		foreach ( $ips as $ip_line ) {

			$ip_arr = trim( $ip_line['ip'] );
			
			if( $ip_arr == $_IP ) {
				
				$blockip = $_IP;
				break;
			
			} elseif ( count(explode ('/', $ip_arr)) == 2 ) {
				
				if( maskmatch($_IP, $ip_arr) ) {
					$blockip = $ip_line['ip'];
					break;
				}
				
			} else {
				
				$ip_check_matches = 0;
				$db_ip_split = explode( $delimiter, $ip_arr );

				for($i_i = 0; $i_i < $ip_lenght; $i_i ++) {
					if( $this_ip_split[$i_i] == $db_ip_split[$i_i] or $db_ip_split[$i_i] == '*' ) {
						$ip_check_matches += 1;
					}
				
				}
			
				if( $ip_check_matches == $ip_lenght ) {
					$blockip = $ip_line['ip'];
					break;
				}
			}		
		}
	}
	
	return $blockip;
}

function allowed_ip($ip_array) {
	
	$ip_array = trim( $ip_array );

	$_IP = get_ip();

	if( !$ip_array ) {
		return true;
	}
	
	if( strpos($_IP, ":") === false ) {
		$delimiter = ".";
	} else $delimiter = ":";
	
	$db_ip_split = explode( $delimiter, $_IP );
	$ip_lenght = count($db_ip_split);
	
	$ip_array = explode( "|", $ip_array );
	
	foreach ( $ip_array as $ip ) {
		
		$ip = trim( $ip );
		
		if( $ip == $_IP ) {
			
			return true;
		
		} elseif( count(explode ('/', $ip)) == 2 ) {
				
			if( maskmatch($_IP, $ip) ) return true;
				
		} else {
			
			$ip_check_matches = 0;
			$this_ip_split = explode( $delimiter, $ip );
			
			for($i_i = 0; $i_i < $ip_lenght; $i_i ++) {
				if( $this_ip_split[$i_i] == $db_ip_split[$i_i] OR $this_ip_split[$i_i] == '*' ) {
					$ip_check_matches += 1;
				}
			
			}
			
			if( $ip_check_matches == $ip_lenght ) return true;
		}
	
	}
	
	return false;
}

function maskmatch($IP, $CIDR) {
	
    list ($address, $netmask) = explode('/', $CIDR, 2);

	if( strpos($IP, ".") !== false AND strpos($CIDR, ".") !== false ) {
		
		return ( ip2long($IP) & ~((1 << (32 - $netmask)) - 1) ) == ip2long ($address);
	
	} elseif( strpos($IP, ":") !== false AND strpos($CIDR, ":") !== false ) {
		
        if (!((extension_loaded('sockets') && defined('AF_INET6')) || @inet_pton('::1'))) {
          return false;
        }
		
        $bytesAddr = unpack('n*', @inet_pton($address));
        $bytesTest = unpack('n*', @inet_pton($IP));

        if (!$bytesAddr || !$bytesTest) {
            return false;
        }

        for ($i = 1, $ceil = ceil($netmask / 16); $i <= $ceil; ++$i) {
            $left = $netmask - 16 * ($i - 1);
            $left = ($left <= 16) ? $left : 16;
            $mask = ~(0xffff >> $left) & 0xffff;
            if (($bytesAddr[$i] & $mask) != ($bytesTest[$i] & $mask)) {
                return false;
            }
        }
		
		return true;
		
	}
	
	return false;

}

function check_netz($ip1, $ip2) {
	
	if( strpos($ip1, ":") === false ) {
		$delimiter = ".";
	} else $delimiter = ":";
	
	$ip1 = explode( $delimiter, $ip1 );
	$ip2 = explode( $delimiter, $ip2 );
	
	if( $ip1[0] != $ip2[0] ) return false;
	if( $ip1[1] != $ip2[1] ) return false;
	
	if($delimiter == ":") {
		if( $ip1[2] != $ip2[2] ) return false;
		if( $ip1[3] != $ip2[3] ) return false;
	}
	
	return true;

}

function show_attach($story, $id, $static = false) {
	global $db, $config, $lang, $user_group, $member_id, $_TIME, $news_date;

	$find_1 = array();
	$find_2 = array();
	$replace_1 = array();
	$replace_2 = array();

	$tpl = new dle_template();
	$tpl->dir = TEMPLATE_DIR;
	$root = $config['http_home_url'];
	
	if (strpos($root, "//") === 0) {
		$root = isSSL() ? $root = "https:".$root : $root = "http:".$root;
	} elseif (strpos($root, "/") === 0) {
		$root = isSSL() ? $root = "https://".$_SERVER['HTTP_HOST'].$root : "http://".$_SERVER['HTTP_HOST'].$root;
	}
	
	if( $static ) {
		
		if( is_array( $id ) and count( $id ) ) {
			$list = array();
			
			foreach ( $id as $value ) {
				$list[] = intval($value);
			}
			
			$id = implode( ',', $list );
			
			$where = "static_id IN ({$id})";
			
		} else $where = "static_id = '".intval($id)."'";
		
		$db->query( "SELECT * FROM " . PREFIX . "_static_files WHERE $where" );
		
		$area = "&area=static";
	
	} else {
		
		if( is_array( $id ) and count( $id ) ) {
			
			$list = array();
			
			foreach ( $id as $value ) {
				$list[] = intval($value);
			}
			
			$id = implode( ',', $list );
			
			$where = "news_id IN ({$id})";
			
		} else $where = "news_id = '".intval($id)."'";
		
		$db->query( "SELECT * FROM " . PREFIX . "_files WHERE $where" );
		
		$area = "";
	
	}

	if( !file_exists( $tpl->dir . "/attachment.tpl" ) ) {
	
		$tpl->template = <<<HTML
[allow-download]<span class="attachment"><a href="{link}" >{name}</a> [count] [{size}] ({$lang['att_dcount']} {count})[/count]</span>[/allow-download]
[not-allow-download]<span class="attachment">{$lang['att_denied']}</span>[/not-allow-download]
HTML;
	
		$tpl->copy_template = $tpl->template;
	
	} else {
		
		$tpl->load_template( 'attachment.tpl' );
		
	}
	
	while ( $row = $db->get_row() ) {

		$row['name'] = explode( "/", $row['name'] );
		$row['name'] = end( $row['name'] );
		
		$filename_arr = explode( ".", $row['onserver'] );
		$type = strtolower(end( $filename_arr ));

		$find_1[] = '[attachment=' . $row['id'] . ']';
		$find_2[] = "#\[attachment={$row['id']}:(.+?)\]#i";
		
		if( $row['is_public'] ) $uploaded_path = 'public_files/'; else $uploaded_path = 'files/';

		if (stripos ( $tpl->copy_template, "{md5}" ) !== false) {
			
			if($row['checksum']) $tpl->set( '{md5}', $row['checksum'] );
			else $tpl->set( '{md5}', @md5_file( ROOT_DIR . '/uploads/' . $uploaded_path.$row['onserver'] ) );
			
		}

		if (stripos ( $tpl->copy_template, "{size}" ) !== false) {
			
			if($row['size']) $tpl->set( '{size}', formatsize($row['size']) );
			else $tpl->set( '{size}', formatsize( @filesize( ROOT_DIR . '/uploads/' . $uploaded_path.$row['onserver'] ) ) );
			
		}
		
		$microsoft_ext = array("doc", "docx", "docm", "dotm", "dotx", "xlsx", "xlsb", "xls", "xlsm", "pptx", "ppsx", "ppt", "pps", "pptm", "potm", "ppam", "potx", "ppsm", "odt", "odx");
		$google_ext = array("pdf");

		if ( in_array($type, $microsoft_ext) OR in_array($type, $google_ext) ) {

			$tpl->set( '[allow-online]', "" );
			$tpl->set( '[/allow-online]', "" );

			if(in_array($type, $microsoft_ext)) {
				$tpl->set('{online-view-link}', "https://view.officeapps.live.com/op/view.aspx?src=" . urlencode($root . "index.php?do=download&id=" . $row['id'] . $area . "&viewonline=1"));
			} else {
				$tpl->set('{online-view-link}', "https://docs.google.com/viewer?url=" . urlencode($root . "index.php?do=download&id=" . $row['id'] . $area . "&viewonline=1"));
			}
			

		} else {
			
			$tpl->set( '{online-view-link}', "" );
			$tpl->set_block( "'\[allow-online\](.*?)\[/allow-online\]'si", "" );
			
		}
		
		if ( $user_group[$member_id['user_group']]['allow_files'] ) {
			
			$tpl->set( '[allow-download]', "" );
			$tpl->set( '[/allow-download]', "" );
			$tpl->set_block( "'\[not-allow-download\](.*?)\[/not-allow-download\]'si", "" );
					
		} else {
			
			$tpl->set( '[not-allow-download]', "" );
			$tpl->set( '[/not-allow-download]', "" );
			$tpl->set_block( "'\[allow-download\](.*?)\[/allow-download\]'si", "" );
			
		}
		
		if ( $config['files_count'] ) {
			$tpl->set( '{count}', $row['dcount'] );
			$tpl->set( '[count]', "" );
			$tpl->set( '[/count]', "" );
			$tpl->set_block( "'\[not-allow-count\](.*?)\[/not-allow-count\]'si", "" );
					
		} else {
			$tpl->set( '{count}', "" );			
			$tpl->set( '[not-allow-count]', "" );
			$tpl->set( '[/not-allow-count]', "" );
			$tpl->set_block( "'\[count\](.*?)\[/count\]'si", "" );
			
		}
		
		if( date( 'Ymd', $row['date'] ) == date( 'Ymd', $_TIME ) ) {
			
			$tpl->set( '{date}', $lang['time_heute'] . langdate( ", H:i", $row['date'] ) );
		
		} elseif( date( 'Ymd', $row['date'] ) == date( 'Ymd', ($_TIME - 86400) ) ) {
			
			$tpl->set( '{date}', $lang['time_gestern'] . langdate( ", H:i", $row['date'] ) );
		
		} else {
			
			$tpl->set( '{date}', langdate( $config['timestamp_active'], $row['date'] ) );
		
		}

		$news_date = $row['date'];
		$tpl->copy_template = preg_replace_callback ( "#\{date=(.+?)\}#i", "formdate", $tpl->copy_template );
		
		$tpl->set( '{name}', $row['name'] );
		$tpl->set( '{extension}', $type );
		$tpl->set( '{link}', $config['http_home_url']."index.php?do=download&id=".$row['id'].$area );
		$tpl->set( '{id}', $row['id'] );

		$tpl->compile( 'attachment' );
		
		$replace_1[] = $tpl->result['attachment'];
		
		$tpl->result['attachment'] = str_replace( $row['name'], "", $tpl->result['attachment'] );
		
		$replace_2[] = $tpl->result['attachment'];
		
		$tpl->result['attachment'] = '';

	}
	
	$tpl->clear();
	$db->free();

	$story = str_replace ( $find_1, $replace_1, $story );
	$story = preg_replace( $find_2, $replace_2, $story );
	
	return $story;

}

function xfieldsload($profile = false) {
	global $lang, $config;
	
	if( $profile ) $path = ENGINE_DIR . '/data/xprofile.txt';
	else $path = ENGINE_DIR . '/data/xfields.txt';
	
	$filecontents = file( $path );
	$fields = array();
	$tmp_arr = array();
	
	if( !is_array( $filecontents ) ) {
		
		return array();
	
	} elseif( count($filecontents) ) {
		
		foreach ( $filecontents as $name => $value ) {
			if( trim($value) ) {
				$tmp_arr = explode( "|", trim($value, "	

") );
				foreach ( $tmp_arr as $name2 => $value2 ) {
					$value2 = str_replace( "&#124;", "|", $value2 );
					$value2 = str_replace( "__NEWL__", "
", $value2 );
					$value2 = html_entity_decode($value2, ENT_QUOTES, $config['charset']);
					$fields[$name][$name2] = $value2;
				}
			}
		}
		
		return $fields;
	}
	
	return array();
}

function xfieldsdataload($id) {
	
	if( !is_string($id) OR !$id ) return array();
	
	$xfieldsdata = explode( "||", $id );
	
	foreach ( $xfieldsdata as $xfielddata ) {
		list ( $xfielddataname, $xfielddatavalue ) = explode( "|", $xfielddata );
		$xfielddataname = str_replace( "&#124;", "|", $xfielddataname );
		$xfielddataname = str_replace( "__NEWL__", "
", $xfielddataname );
		$xfielddatavalue = str_replace( "&#124;", "|", $xfielddatavalue );
		$xfielddatavalue = str_replace( "__NEWL__", "
", $xfielddatavalue );
		$data[$xfielddataname] = trim($xfielddatavalue);
	}
	
	return $data;
}

function clear_rss_content ( $content, $rssmode ) {
	
	$content = preg_replace_callback( "#<div class=['\"]quote_body contenteditable['\"]>(.+?)</div>#is", function ($matches) {
            return trim($matches[1]);
        }, $content );
	
	$content = preg_replace_callback( "#<div class=['\"]quote['\"]>(.+?)</div>#is", function ($matches) {
            return trim($matches[1]);
        }, $content );
		
	$content = preg_replace_callback( "#<div class=['\"]quote_block noncontenteditable['\"]>(.+?)</div>#is", function ($matches) {
            return "<blockquote>".trim($matches[1])."</blockquote>";
        }, $content );
	
	$content = preg_replace( "#\[hide(.*?)\](.+?)\[/hide\]#is", "", $content );
	$content = preg_replace( "'\[attachment=(.*?)\]'si", "", $content );	
	$content = preg_replace( "#<!--dle_spoiler(.+?)<!--spoiler_text-->#is", "", $content );
	$content = preg_replace( "#<!--spoiler_text_end-->(.+?)<!--/dle_spoiler-->#is", "", $content );
	$content = preg_replace( "'{banner_(.*?)}'si", "", $content );
	$content = preg_replace( "'\[banner_(.*?)\](.*?)\[/banner_(.*?)\]'si", "", $content );
	$content = preg_replace('#<script[^>]*>.*?</script>#is', '', $content );
	$content = preg_replace( "#<!--(.+?)-->#is", "", $content );
	$content = preg_replace('/\s+/u', ' ', $content);
	
	return trim($content);

}

function clear_content($content, $len = 300, $replace_single_quote = true) {

	global $config;

	if (!$content or !is_string($content)) {
		return '';
	}

	$remove = array("`", "	", "
", "
", '	', '
', '
', "{PAGEBREAK}", "&nbsp;", "<br />", "<br>", " ,");
	$len = intval($len);

	$content = stripslashes($content);

	$content = html_entity_decode($content, ENT_QUOTES | ENT_HTML5, $config['charset']);

	$content = preg_replace("#\[hide(.*?)\](.+?)\[/hide\]#is", "", $content);
	$content = preg_replace("'\[attachment=(.*?)\]'si", "", $content);
	$content = preg_replace("'\[page=(.*?)\](.*?)\[/page\]'si", "", $content);
	$content = preg_replace("#<!--dle_spoiler(.+?)<!--spoiler_text-->#is", "", $content);
	$content = preg_replace("#<!--spoiler_text_end-->(.+?)<!--/dle_spoiler-->#is", "", $content);
	$content = preg_replace("'{banner_(.*?)}'si", "", $content);
	$content = preg_replace("'\[banner_(.*?)\](.*?)\[/banner_(.*?)\]'si", "", $content);
	$content = preg_replace("#<pre(.*?)>(.+?)</pre>#is", "", $content);
	$content = str_replace("&#1072;", "a", $content);
	$content = str_replace("&#111;", "o", $content);
	$content = str_replace("><", "> <", $content);

	$content = str_replace($remove, ' ', $content);
	$content = strip_tags($content);

	$content = preg_replace("#(^|\s|>)((http|https)://\w+[^\s\[\]\<]+)#i", '', $content);

	if ($replace_single_quote) {
		$content = str_replace("&amp;amp;", "&amp;", htmlspecialchars($content, ENT_QUOTES, $config['charset']));
	} else {
		$content = str_replace("&amp;amp;", "&amp;", htmlspecialchars($content, ENT_COMPAT, $config['charset']));
	}

	$content = preg_replace('/\s+/u', ' ', $content);

	if ($len and $len > 1) {

		if (dle_strlen($content, $config['charset']) > $len) {

			$content = dle_substr($content, 0, $len, $config['charset']);

			if (($temp_dmax = dle_strrpos($content, ' ', $config['charset']))) $content = dle_substr($content, 0, $temp_dmax, $config['charset']);
		}
	}

	return trim($content);
}

function create_keywords($story) {
	global $metatags, $config;
	
	$keyword_count = 20;
	$newarr = array ();

	$bad_keywords_symbol = array(",", ".", "/", "#", ":", "@", "~", "=", "-", "+", "*", "^", "%", "$", "?", "!");
	$remove = array('	', '
', '
');
	
	$story = str_replace( $remove, ' ', stripslashes($story) );
	
	$story = clear_content($story, 0, false);
	
	$metatags['description'] = $story;

	if( dle_strlen( $metatags['description'], $config['charset'] ) > 300 ) {
		
		$metatags['description'] = dle_substr( $story, 0, 300, $config['charset'] );
	
		if( ($temp_dmax = dle_strrpos( $metatags['description'], ' ', $config['charset'] )) ) $metatags['description'] = dle_substr( $metatags['description'], 0, $temp_dmax, $config['charset'] );

	}
	
	$story = str_replace( $bad_keywords_symbol, '', $story );
	
	$arr = explode( " ", $story );
	
	foreach ( $arr as $word ) {
		$word = str_replace("&amp;", "&", $word);		
		if( dle_strlen( $word, $config['charset'] ) > 4 ) $newarr[] = $word;
	}
	
	$arr = array_count_values( $newarr );
	arsort( $arr );
	
	$arr = array_keys( $arr );
	
	$offset = 0;
	
	$arr = array_slice( $arr, $offset, $keyword_count );
	
	$metatags['keywords'] = implode( ", ", $arr );
	
}

function news_permission($id) {
	
	if( $id == "" ) return;
	
	$data = array ();
	$groups = explode( "||", $id );
	foreach ( $groups as $group ) {
		list ( $groupid, $groupvalue ) = explode( ":", $group );
		$data[$groupid] = $groupvalue;
	}
	return $data;
}

function bannermass($fest, $massiv) {
	
	if( is_array($massiv) AND count($massiv) ) {
		return $fest . $massiv[array_rand( $massiv )]['text'];
	} else return $fest;

}

function get_sub_cats($id, $subcategory = '', $with_id = true) {
	
	global $cat_info;
	$subfound = array ();
	
	if( !$subcategory AND $with_id) $subcategory = $id;
	
	foreach ( $cat_info as $cats ) {
		if( $cats['parentid'] == $id ) {
			$subfound[] = $cats['id'];
		}
	}
	
	foreach ( $subfound as $parentid ) {
		
		if( $subcategory ) $subcategory .= "|";
		
		$subcategory .= $parentid;
		$subcategory = get_sub_cats( $parentid, $subcategory );
		
	}
	
	return $subcategory;

}

function check_xss() {

	$url = html_entity_decode( urldecode( $_SERVER['QUERY_STRING'] ), ENT_QUOTES, 'ISO-8859-1' );
	$url = str_replace( "\", "/", $url );

	if (isset($_GET['do']) AND $_GET['do'] == "xfsearch") {

		$f = html_entity_decode( urldecode( $_GET['xf'] ), ENT_QUOTES, 'ISO-8859-1' );

		$count1 = substr_count ($f, "'");
		$count2 = substr_count ($url, "'");

		if ( $count1 == $count2 AND (strpos( $url, '<' ) === false) AND (strpos( $url, '>' ) === false) AND (strpos( $url, '.php' ) === false) ) return;

	}

	if (isset($_GET['do']) AND $_GET['do'] == "tags") {

		$f = html_entity_decode( urldecode( $_GET['tag'] ), ENT_QUOTES, 'ISO-8859-1' );

		$count1 = substr_count ($f, "'");
		$count2 = substr_count ($url, "'");

		if ( $count1 == $count2 AND (strpos( $url, '<' ) === false) AND (strpos( $url, '>' ) === false) AND (strpos( $url, './' ) === false) AND (strpos( $url, '../' ) === false) AND (strpos( $url, '.php' ) === false) ) return;

	}
	
	if( $url ) {
		
		if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, './' ) !== false) || (strpos( $url, '../' ) !== false) || (strpos( $url, '\'' ) !== false) || (strpos( $url, '.php' ) !== false) ) {
			if( $_GET['do'] != "search" OR $_GET['subaction'] != "search" ) {
				header( "HTTP/1.1 403 Forbidden" );
				die( "Hacking attempt!" );
			}
		}
	
	}
	
	$url = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ), ENT_QUOTES, 'ISO-8859-1' );
	$url = str_replace( "\", "/", $url );
	
	if( $url ) {
		
		if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, '\'' ) !== false) ) {
			if( $_GET['do'] != "search" OR $_GET['subaction'] != "search" ) {
				header( "HTTP/1.1 403 Forbidden" );
				die( "Hacking attempt!" );
			}
		
		}
	
	}

}

function check_same_domain($url) {
	global $config;
	
	$url = dle_strtolower( (string)parse_url( (string)$url, PHP_URL_HOST));
	$value = dle_strtolower( (string)parse_url($config['http_home_url'], PHP_URL_HOST));
	
	if( !$value ) $value = $_SERVER['HTTP_HOST'];

	if( !$url OR $url == $value ) return true;
	
	return false;
}
	
function if_category_rating( $category ) {
	global $cat_info;
	
	$category = explode( ',', $category );
	
	$found = false;
	
	foreach ( $category as $element ) {
			
		if( isset( $cat_info[$element]['rating_type'] ) AND $cat_info[$element]['rating_type'] > -1 ) {
			return $cat_info[$element]['rating_type'];
		}
	
	}
	
	return $found;
}

function check_category( $matches=array() ) {
	global $category_id;

	$block = $matches[3];
	$category = $category_id;

	$temp_array = array();

	$matches[2] = str_replace(" ", "", $matches[2] );
	$matches[2] = explode (',', $matches[2]);

	foreach ($matches[2] as $value) {

		if( count(explode('-', $value)) == 2 ) $temp_array[] = get_mass_cats($value);
		else $temp_array[] = intval($value);

	}

	$temp_array = implode(',', $temp_array);

	if ($matches[1] == "category" OR $matches[1] == "catlist") $action = true; else $action = false;
	
	$cats = explode( ',', $temp_array );
	$category = explode( ',', $category );
	$found = false;
	
	foreach ( $category as $element ) {
		
		if( $action ) {
			
			if( in_array( $element, $cats ) ) {
				
				return $block;
			}
		
		} else {
			
			if( in_array( $element, $cats ) ) {
				$found = true;
			}
		
		}
	
	}

	if ( !$action AND !$found ) {	

		return $block;
	}

	return "";

}

function clean_url($url) {
	
	if( $url == '' ) return;
	
	$url = str_replace( "http://", "", strtolower( $url ) );
	$url = str_replace( "https://", "", $url );
	if( substr( $url, 0, 2 ) == '//' ) $url = str_replace( "//", "", $url );
	if( substr( $url, 0, 4 ) == 'www.' ) $url = substr( $url, 4 );
	$url = explode( '/', $url );
	$url = reset( $url );
	$url = explode( ':', $url );
	$url = reset( $url );
	
	return $url;
}

function get_url($id) {
	
	global $cat_info;

	$cat_id = false;
	
	if( !$id ) return "";

	$id = explode (",", $id);

	foreach ($id as $val) {
		
		$val = intval($val);
		
		if ( $val AND $cat_info[$val]['id'] ) {
			$cat_id = $val;
			break;
		}
		
	}
	
	if( !$cat_id ) return "";
	
	$id = $cat_id;
	
	$parent_id = $cat_info[$id]['parentid'];
	
	$url = $cat_info[$id]['alt_name'];
	
	while ( $parent_id ) {
		
		if( !$cat_info[$parent_id]['id'] ) {
			break;
		}
		
		$url = $cat_info[$parent_id]['alt_name'] . "/" . $url;
		
		$parent_id = $cat_info[$parent_id]['parentid'];

		if($parent_id) {	
			if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
		}
	
	}
	
	return $url;
}

function get_categories($id, $separator=" &raquo;") {
	
	global $cat_info, $config, $PHP_SELF;
	
	if( ! $id ) return;
	
	$parent_id = $cat_info[$id]['parentid'];
	
	if( $config['allow_alt_url'] ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $id ) . "/\">{$cat_info[$id]['name']}</a>";
	else $list = "<a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$id]['alt_name']}\">{$cat_info[$id]['name']}</a>";
	
	while ( $parent_id ) {
		
		if( $config['allow_alt_url'] ) $list = "<a href=\"" . $config['http_home_url'] . get_url( $parent_id ) . "/\">{$cat_info[$parent_id]['name']}</a>" . $separator . $list;
		else $list = "<a href=\"$PHP_SELF?do=cat&amp;category={$cat_info[$parent_id]['alt_name']}\">{$cat_info[$parent_id]['name']}</a>" . $separator . $list;
		
		$parent_id = $cat_info[$parent_id]['parentid'];

		if( !isset($cat_info[$parent_id]['id']) OR ( isset($cat_info[$parent_id]['id']) AND !$cat_info[$parent_id]['id']) ) {
			break;
		}
		
		if($parent_id) {		
			if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
		}

	}

	return $list;
}

function get_breadcrumbcategories($id, $separator="&raquo;", $last_link = true) {
	
	global $cat_info, $config, $PHP_SELF, $elements, $position;
	
	if( !$id ) return;
	
	$parent_id = $cat_info[$id]['parentid'];
	$list = $temp = array();
	$i = 0;

	if( $config['allow_alt_url'] ) $list[0]['link'] = $config['http_home_url'] . get_url( $id ) . "/";
	else $list[0]['link'] = "{$PHP_SELF}?do=cat&amp;category={$cat_info[$id]['alt_name']}";
		
	if (!$last_link)	{
		
		$list[0]['uri'] = $list[0]['link'];
		unset($list[0]['link']);
		
	}
	
	$list[0]['name'] = $cat_info[$id]['name'];
	
	while ( $parent_id ) {
		$i++;
		
		if( $config['allow_alt_url'] ) $list[$i]['link'] = $config['http_home_url'] . get_url( $parent_id ) . "/";
		else $list[$i]['link'] = "{$PHP_SELF}?do=cat&amp;category={$cat_info[$parent_id]['alt_name']}";
		
		$list[$i]['name'] = $cat_info[$parent_id]['name'];
		$parent_id = $cat_info[$parent_id]['parentid'];

		if( !isset($cat_info[$parent_id]['id']) OR ( isset($cat_info[$parent_id]['id']) AND !$cat_info[$parent_id]['id']) ) {
			break;
		}
		
		if($parent_id) {		
			if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
		}
		
	}

	if(count($list)) {
		
		$list = array_reverse($list);
		
		foreach($list as $value) {
			
			if( isset($value['link']) AND $value['link']) {
				$temp[] = "<a href=\"{$value['link']}\">{$value['name']}</a>";;
			} else {
				$temp[] = $value['name'];
				$value['link'] = $value['uri'];
			}
			
			$elements[] = array(
				'@type'		=> "ListItem",
				'position'	=> $position,
				'item'		=> array(
					'@id'	=> $value['link'],
					'name'	=> $value['name'],
				)
			);
			$position++;
		
		}
		
		$list = $temp;
	}	
	
	return implode($separator, $list);
}

function news_sort($do) {
	
	global $config, $lang, $category_id, $cat_info;

	if( ! $do ) $do = "main";
	
	$find_sort = "dle_sort_" . $do;
	$direction_sort = "dle_direction_" . $do;

	if($do == "cat" AND $category_id) {
		$find_sort .= "_".$category_id;
		$direction_sort .= "_".$category_id;
	}
	
	$find_sort = str_replace( ".", "", $find_sort );
	$direction_sort = str_replace( ".", "", $direction_sort );
	
	$sort = array ();
	$allowed_sort = array ('date', 'rating', 'news_read', 'comm_num','title', 'editdate' );
	
	$soft_by_array = array (

		'date' => array ( 'name' => $lang['sort_by_date'], 'value' => "date", 'direction' => "desc", 'image' => "class=\"sort_by_date\"" ),
		'editdate' => array( 'name' => $lang['sort_by_edate'], 'value' => "editdate", 'direction' => "desc", 'image' => "class=\"sort_by_editdate\""),
		'rating' => array ( 'name' => $lang['sort_by_rating'], 'value' => "rating", 'direction' => "desc", 'image' => "class=\"sort_by_rating\"" ), 
		'news_read' => array ( 'name' => $lang['sort_by_read'], 'value' => "news_read", 'direction' => "desc", 'image' => "class=\"sort_by_news_read\"" ), 
		'comm_num' => array ( 'name' => $lang['sort_by_comm'], 'value' => "comm_num", 'direction' => "desc", 'image' => "class=\"sort_by_comm_num\"" ), 
		'title' => array ( 'name' => $lang['sort_by_title'], 'value' => "title", 'direction' => "desc", 'image' => "class=\"sort_by_title\"" )

	 );

	if( !$config['allow_comments'] ) { unset($allowed_sort[3]); unset($soft_by_array['comm_num']); }
		
	if( isset( $_SESSION[$direction_sort] ) AND ($_SESSION[$direction_sort] == "desc" OR $_SESSION[$direction_sort] == "asc") ) $direction = $_SESSION[$direction_sort];
	else $direction = $config['news_msort'];

	if( isset( $_SESSION[$find_sort] ) AND $_SESSION[$find_sort] AND in_array( $_SESSION[$find_sort], $allowed_sort ) ) $soft_by = $_SESSION[$find_sort];
	elseif( $do == "cat" AND $cat_info[$category_id]['news_sort'] ) $soft_by = $cat_info[$category_id]['news_sort'];
	else $soft_by = $config['news_sort'];
	
	if( strtolower( $direction ) == "asc" ) {
		
		$soft_by_array[$soft_by]['image'] = "class=\"desc sort_by_{$soft_by}\"";
		$soft_by_array[$soft_by]['direction'] = "desc";
	
	} else {
		
		$soft_by_array[$soft_by]['image'] = "class=\"asc sort_by_{$soft_by}\"";
		$soft_by_array[$soft_by]['direction'] = "asc";
	}
	
	foreach ( $soft_by_array as $value ) {
		
		$sort[] = "<li " . $value['image'] . "><a href=\"#\" onclick=\"dle_change_sort('{$value['value']}','{$value['direction']}'); return false;\">" . $value['name'] . "</a></li>";
	}
	
	$sort = implode($sort);
	
	$sort = <<<HTML
<form name="news_set_sort" id="news_set_sort" method="post">
<ul class="sort">{$sort}</ul>
<input type="hidden" name="dlenewssortby" id="dlenewssortby" value="{$config['news_sort']}">
<input type="hidden" name="dledirection" id="dledirection" value="{$config['news_msort']}">
<input type="hidden" name="set_new_sort" id="set_new_sort" value="{$find_sort}">
<input type="hidden" name="set_direction_sort" id="set_direction_sort" value="{$direction_sort}">
</form>
HTML;
	
	return $sort;
}

function compare_tags($a, $b) {
	
	if( $a['tag'] == $b['tag'] ) return 0;
	
	return strcasecmp( $a['tag'], $b['tag'] );

}

function convert_unicode($t, $to = '') {
// deprecated
	return $t;
}

function build_js($js, $config) {
	global $tpl;
	
	$js_array = array();
	$extra_js_array = array();
	$return_js = '';
	
	$i=0;
	$defer = "";
	
	$config['jquery_version'] = intval($config['jquery_version']);
	
	$ver = $config['jquery_version'] ? $config['jquery_version'] : "";

	if( is_array($tpl->js_array) AND count($tpl->js_array) ) {
		
		foreach ( $tpl->js_array as $js_file) {
			
			$js_file = str_ireplace( '{THEME}', 'templates/' . $config['skin'], $js_file );
			
			if( $js_file[0] == '/' ) {
				$js_file = substr($js_file, 1);
			}
			
			if( stripos($js_file, 'http://') === 0 OR stripos($js_file, 'https://') === 0 ) {
				$extra_js_array[] = $js_file;
			} else $js[] = $js_file;
			
		}
	
	}	

	if ($config['js_min']) {

		$js_array[] = "<script src=\"{$config['http_home_url']}engine/classes/min/index.php?g=general{$ver}&amp;v={$config['cache_id']}\"></script>";

		$default_array = array (
			"engine/classes/js/jqueryui{$ver}.js",
			'engine/classes/js/dle_js.js',
		);

		if ( count($js) ) $js = array_merge($default_array, $js); else $js = $default_array;
		
		$js_array[] = "<script src=\"{$config['http_home_url']}engine/classes/min/index.php?f=".implode(",", $js)."&amp;v={$config['cache_id']}\" defer></script>";

		$return_js = implode("
", $js_array);

	} else {

		$default_array = array (
			"engine/classes/js/jquery{$ver}.js",
			"engine/classes/js/jqueryui{$ver}.js",
			'engine/classes/js/dle_js.js',
		);

		if ( count($js) ) $js = array_merge($default_array, $js); else $js = $default_array;

		foreach ($js as $value) {
			if($i > 0) $defer =" defer";
			$js_array[] = "<script src=\"{$config['http_home_url']}{$value}?v={$config['cache_id']}\"{$defer}></script>";
			$i++;
		}

		$return_js = implode("
", $js_array);
	}
	
	if( count($extra_js_array) ) {
		foreach ($extra_js_array as $value) {
			$return_js .= "
<script src=\"{$value}\" defer></script>";
		}
	}
		
	
	return $return_js;

}

function build_css($css, $config) {
	global $tpl;
	
	$css_array = array();
	$tempate_css_array = array();
	$extra_css_array = array();
	$return_css = '';

	if( is_array($tpl->css_array) AND count($tpl->css_array) ) {
		
		foreach ( $tpl->css_array as $css_file) {
			
			$css_file = str_ireplace( '{THEME}', 'templates/' . $config['skin'], $css_file );
			
			if( $css_file[0] == '/' ) {
				$css_file = substr($css_file, 1);
			}
			
			if( stripos($css_file, 'http://') === 0 OR stripos($css_file, 'https://') === 0 ) {
				
				$extra_css_array[] = $css_file;
				
			} else $tempate_css_array[] = $css_file;
			
		}
	
	}
	
	if( count($tempate_css_array) ) {	
		$tempate_css_array = array_reverse($tempate_css_array);
		
		foreach ( $tempate_css_array as $css_file) {
			array_unshift($css, $css_file);
		}
	}

	if ($config['js_min'] AND count($css) ) {

		$return_css = "<link href=\"{$config['http_home_url']}engine/classes/min/index.php?f=".implode(",", $css)."&amp;v={$config['cache_id']}\" rel=\"stylesheet\" type=\"text/css\">";


	} elseif( count($css) ) {

		foreach ($css as $value) {
			$css_array[] = "<link href=\"{$config['http_home_url']}{$value}?v={$config['cache_id']}\" rel=\"stylesheet\" type=\"text/css\">";
		}
	
		$return_css = implode("
", $css_array);
	}
	
	if( count($extra_css_array) ) {
		foreach ($extra_css_array as $value) {
			$return_css .= "
<link href=\"{$value}\" rel=\"stylesheet\" type=\"text/css\">";
		}
	}
		
	
	return $return_css;

}

function check_static($matches=array()) {
	global $dle_module;

	$names = $matches[2];
	$block = $matches[3];

	if ($matches[1] == "static") $action = true; else $action = false;

	$names = str_replace(" ", "", $names );
	$names = explode( ',', $names );

	if ( isset($_GET['page']) ) $page = trim($_GET['page']); else $page = "";
	
	if( $action ) {
			
		if( in_array( $page, $names ) AND $dle_module == "static" ) {
				
			return $block;
		}
		
	} else {
			
		if( !in_array( $page, $names ) OR $dle_module != "static") {
				
			return $block;
		}
		
	}
	
	return "";
}


function dle_strlen($value, $charset = "utf-8" ) {

	if( function_exists( 'mb_strlen' ) ) {
		return mb_strlen( $value, $charset );
	} elseif( function_exists( 'iconv_strlen' ) ) {
		return iconv_strlen($value, $charset);
	}

	return strlen($value);
}

function dle_substr($str, $start, $length, $charset = "utf-8" ) {

	if( function_exists( 'mb_substr' ) ) {
		return mb_substr( $str, $start, $length, $charset );
	
	} elseif( function_exists( 'iconv_substr' ) ) {
		return iconv_substr($str, $start, $length, $charset);
	}

	return substr($str, $start, $length);

}

function dle_strrpos($str, $needle, $charset = "utf-8" ) {

	if( function_exists( 'mb_strrpos' ) ) {
		return mb_strrpos( $str, $needle, 0, $charset );
	
	} elseif( function_exists( 'iconv_strrpos' ) ) {
		return iconv_strrpos($str, $needle, $charset);
	}

	return strrpos($str, $needle);

}

function dle_strpos($str, $needle, $charset = "utf-8" ) {

	if( function_exists( 'mb_strpos' ) ) {
		return mb_strpos( $str, $needle, 0, $charset );
	} elseif( function_exists( 'iconv_strrpos' ) ) {
		return iconv_strpos($str, $needle, 0, $charset);
	}

	return strpos($str, $needle);

}

function dle_strtolower($str, $charset = "utf-8" ) {

	if( function_exists( 'mb_strtolower' ) ) {
		return mb_strtolower( $str, $charset );
	}

	return strtolower($str);

}

function check_allow_login($ip, $max ) {
	global $db, $config;

	$config['login_ban_timeout'] = intval($config['login_ban_timeout']);
	
	$max = intval($max);
	
	if( $max < 2 ) $max = 2;
	
	$block_date = time()-($config['login_ban_timeout'] * 60);

	$row = $db->super_query( "SELECT * FROM " . PREFIX . "_login_log WHERE ip='{$ip}'" );

	if ( isset( $row['count'] ) AND $row['count'] AND $row['date'] < $block_date ) {
		$db->query( "DELETE FROM " . PREFIX . "_login_log WHERE ip = '{$ip}'" );
		return true;
	}

	if ( isset( $row['count'] ) AND $row['count'] >= $max AND $row['date'] > $block_date ) return false;
	else return true;

}

function detect_encoding($string) {  
  static $list = array('utf-8', 'windows-1251');
   
  foreach ($list as $item) {

	if( function_exists( 'mb_convert_encoding' ) ) {

		$sample = mb_convert_encoding( $string, $item, $item );

	} elseif( function_exists( 'iconv' ) ) {
	
		$sample = iconv($item, $item, $string);
	
	}

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

   }

   return null;
}
 
function get_ip() {
	global $config;
	
	if ($config['own_ip']) $ip = $_SERVER[$config['own_ip']]; else $ip = $_SERVER['REMOTE_ADDR'];

	$temp_ip = explode(",", $ip);

	if(count($temp_ip) > 1) $ip = trim($temp_ip[0]);

	if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) {
		return filter_var( $ip , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
	}

	if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) {
		return filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
	}

	return 'not detected';
}

function get_votes($all) {
	
	$data = array ();
	
	if( $all != "" ) {
		$all = explode( "|", $all );
		
		foreach ( $all as $vote ) {
			list ( $answerid, $answervalue ) = explode( ":", $vote );
			$data[$answerid] = intval( $answervalue );
		}
	}
	
	return $data;
}

function http_get_contents( $file, $post_params = false ) {
		
	$data = false;

	if (stripos($file, "http://") !== 0 AND stripos($file, "https://") !== 0) {
		return false;
	}
		
	if( function_exists( 'curl_init' ) ) {
			
		$ch = curl_init();
		curl_setopt( $ch, CURLOPT_URL, $file );

		if( is_array($post_params) ) {

			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_params));

		}

		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
		curl_setopt($ch, CURLOPT_TIMEOUT, 5 );
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
		curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
			
		$data = curl_exec( $ch );
		curl_close( $ch );

		if( $data !== false ) return $data;
		
	} 

	if( preg_match('/1|yes|on|true/i', ini_get('allow_url_fopen')) ) {

		if( is_array($post_params) ) {

			$file .= '?'.http_build_query($post_params);
		}

		$data = @file_get_contents( $file );
			
		if( $data !== false ) return $data;

	}

	return false;	
}

function CheckGzip(){ 

	if (headers_sent() || connection_aborted() || ini_get('zlib.output_compression')) return false; 

	if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'br' ) !== false AND function_exists( 'brotli_compress' ) ) return "br";
	if (strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== false AND function_exists( 'gzencode' ) ) return "gzip";
	
	return false; 
}


function GzipOut($debug=false, $mysql=false){
	global $config, $Timer, $db, $tpl, $_DOCUMENT_DATE;
	
	$s = "";

	@header("Content-type: text/html; charset=".$config['charset']);
	
	if ($debug) $s = "
<!-- The script execution time ".$Timer->get()." seconds -->
<!-- The time compilation of templates ".round($tpl->template_parse_time, 5)." seconds -->
<!-- Time executing MySQL query: ".round($db->MySQL_time_taken, 5)." seconds -->
<!-- The total number of MySQL queries ".$db->query_num." -->";
	
	if( $debug AND function_exists( "memory_get_peak_usage" ) ) $s .="
<!-- RAM uses ".round(memory_get_peak_usage()/(1024*1024),2)." MB -->";

	if($debug AND $mysql AND count($db->query_list) ) {
		
		$temp_list = array();
		
		foreach ($db->query_list as $value) {
			$temp_list[] = "[query] => ".$value['query']."
[time] => ".$value['time']."
[num] => ".$value['num'];
		}
		
		$s .="
<!-- MySQL queries list:

".implode("

", $temp_list)."

-->";
		
	}

	if($_DOCUMENT_DATE) {
		
		$IfModifiedSince = false;
	
		if ( isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) ) $IfModifiedSince = strtotime(substr($_SERVER['HTTP_IF_MODIFIED_SINCE'], 5));
		elseif( isset($_ENV['HTTP_IF_MODIFIED_SINCE']) ) $IfModifiedSince = strtotime(substr($_ENV['HTTP_IF_MODIFIED_SINCE'], 5));
	
		if ($IfModifiedSince && $IfModifiedSince >= $_DOCUMENT_DATE) {
			ob_end_clean();
			header($_SERVER['SERVER_PROTOCOL'] . ' 304 Not Modified');
			die();
		}
	
		@header ("Last-Modified: " . date('r', $_DOCUMENT_DATE) ." GMT");
	}
	
	if($config['disable_frame']) {
		
		if( !preg_match('%^(http:|https:)?//(www.)?(webvisor.com)%', $_SERVER['HTTP_REFERER']) ) {
			@header ("X-Frame-Options: SAMEORIGIN");
		}
	
	}
	
	if ( !$config['allow_gzip'] ) {if ($debug) echo $s; ob_end_flush(); return;}

    $ENCODING = CheckGzip();

    if ($ENCODING) {
        $s .= "
<!-- For compression was used $ENCODING -->
"; 
        $Contents = ob_get_clean(); 

        if ($debug){
			
			if ($ENCODING == "br" ) {
				$after_len = strlen(brotli_compress($Contents));
			} else {
				$after_len = strlen(gzencode($Contents));
			}
			
            $s .= "<!-- The total size of the page: ".strlen($Contents)." bytes "; 
            $s .= "After compression: ".$after_len." bytes -->"; 
            $Contents .= $s; 
        }

        header("Content-Encoding: {$ENCODING}");
		
		if ($ENCODING == "br" ) {
			$Contents = brotli_compress($Contents);
		} else {
			$Contents = gzencode($Contents);
		}	
		
		echo $Contents;
		
		ob_end_flush();
        die();

    } else {
		
	   ob_end_flush(); 
       die();

    }
}

function check_xfvalue( $matches=array() ) {
	global $xfieldsdata, $preg_safe_name, $value;
	
	$matches[1] = trim($matches[1]);
	$check_values = array();

	if( preg_match( "#^{$preg_safe_name}\s*\!\=\s*['\"](.+?)['\"]#i", $matches[1], $match ) ) {

		$tmp_values = explode( ",", trim($match[1]) );
		
		foreach($tmp_values as $check_value) {
			$check_values[] = trim($check_value);
		}
		
		if( !in_array($xfieldsdata[$value[0]], $check_values) ) {
			return $matches[2];
		} else return "";

	}
	
	if( preg_match( "#^{$preg_safe_name}\s*\=\s*['\"](.+?)['\"]#i", $matches[1], $match ) ) {

		$tmp_values = explode( ",", trim($match[1]) );
		
		foreach($tmp_values as $check_value) {
			$check_values[] = trim($check_value);
		}
		
		if( in_array($xfieldsdata[$value[0]], $check_values) ) {
			return $matches[2];
		} else return "";
	}
	
	return $matches[0];
}

function enable_lazyload( $matches=array() ) {
	global $config;

	if($config['image_lazy'] == "1") {
		$matches[0] = str_replace('src="', 'data-src="', $matches[0]);
	} else {
		$matches[0] = str_replace('src="', 'loading="lazy" src="', $matches[0]);
	}
	
	return $matches[0];
}

function deletenewsbyid( $id ) {
	global $config, $db;

	$id = intval($id);
	DLEFiles::init();
	
	$row = $db->super_query( "SELECT user_id FROM " . PREFIX . "_post_extras WHERE news_id = '{$id}'" );
	
	$db->query( "UPDATE " . USERPREFIX . "_users SET news_num=news_num-1 WHERE user_id='{$row['user_id']}'" );
	
	$db->query( "DELETE FROM " . PREFIX . "_post WHERE id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_extras WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_extras_cats WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_poll WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_poll_log WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_log WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_post_pass WHERE news_id='{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_tags WHERE news_id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_xfsearch WHERE news_id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_logs WHERE news_id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_subscribe WHERE news_id='{$id}'");

	deletecommentsbynewsid( $id );

	$row = $db->super_query( "SELECT images  FROM " . PREFIX . "_images WHERE news_id = '{$id}'" );

	if( isset($row['images']) AND $row['images']) {
		
		$listimages = explode( "|||", $row['images'] );
	
		foreach ( $listimages as $dataimage ) {
			
			$dataimage = get_uploaded_image_info($dataimage);
			
			$query = $db->safesql( $dataimage->path );
			$row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%'");

			if( isset($row['count']) AND $row['count'] ) {
				continue;
			}
			
			if( $dataimage->remote ) $disk = DLEFiles::FindDriver($dataimage->url);
			else $disk = 0;
	
			DLEFiles::Delete( "posts/" . $dataimage->path, $disk );

			if ($dataimage->hidpi) {
				DLEFiles::Delete("posts/{$dataimage->folder}/{$dataimage->hidpi}", $disk);
			}

			if( $dataimage->thumb ) {
				
				DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $disk );

				if ($dataimage->hidpi) {
					DLEFiles::Delete("posts/{$dataimage->folder}/thumbs/{$dataimage->hidpi}", $disk);
				}
			}
			
			if( $dataimage->medium ) {
				
				DLEFiles::Delete( "posts/{$dataimage->folder}/medium/{$dataimage->name}", $disk );
				
				if ($dataimage->hidpi) {
					DLEFiles::Delete("posts/{$dataimage->folder}/medium/{$dataimage->hidpi}", $disk);
				}
				
			}
						
		}
	
		$db->query( "DELETE FROM " . PREFIX . "_images WHERE news_id = '{$id}'" );
	
	}

	$db->query( "SELECT * FROM " . PREFIX . "_files WHERE news_id = '{$id}'" );

	while ( $row = $db->get_row() ) {
		
		if( trim($row['onserver']) == ".htaccess") die("Hacking attempt!");
		
		if( $row['is_public'] ) $uploaded_path = 'public_files/'; else $uploaded_path = 'files/';

		DLEFiles::Delete( $uploaded_path.$row['onserver'], $row['driver'] );

	}

	$db->query( "DELETE FROM " . PREFIX . "_files WHERE news_id = '{$id}'" );

	$sql_result = $db->query( "SELECT user_id, favorites FROM " . USERPREFIX . "_users WHERE favorites LIKE '%{$id}%'" );
	
	while ( $row = $db->get_row($sql_result) ) {
		
		$temp_fav = explode( ",", $row['favorites'] );
		$new_fav = array();
		
		foreach ( $temp_fav as $value ) {
			$value = intval($value);
			if($value != $id ) $new_fav[] = $value;
		}
		
		if(count($new_fav)) $new_fav = $db->safesql(implode(",", $new_fav));
		else $new_fav = "";
		
		$db->query( "UPDATE " . USERPREFIX . "_users SET favorites='{$new_fav}' WHERE user_id='{$row['user_id']}'" );

	}
}

function deletecomments( $id ) {
	global $config, $db;
	
	$id = intval($id);
	DLEFiles::init();
	
	$row = $db->super_query( "SELECT id, post_id, user_id, is_register, approve FROM " . PREFIX . "_comments WHERE id = '{$id}'" );
	
	$db->query( "DELETE FROM " . PREFIX . "_comments WHERE id = '{$id}'" );
	$db->query( "DELETE FROM " . PREFIX . "_comment_rating_log WHERE c_id = '{$id}'" );	

	if( $row['is_register'] ) {
		$db->query( "UPDATE " . USERPREFIX . "_users SET comm_num=comm_num-1 WHERE user_id ='{$row['user_id']}'" );
	}
	
	if($row['approve']) $db->query( "UPDATE " . PREFIX . "_post SET comm_num=comm_num-1 WHERE id='{$row['post_id']}'" );

	$db->query( "SELECT id, name, driver FROM " . PREFIX . "_comments_files WHERE c_id = '{$id}'" );
	
	while ( $row = $db->get_row() ) {
		
		$dataimage = get_uploaded_image_info( $row['name'] );
		
		DLEFiles::Delete( "posts/" . $dataimage->path, $row['driver'] );
		
		if( $dataimage->thumb ) {
			
			DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $row['driver'] );
			
		}
			
	}
	
	$db->query( "DELETE FROM " . PREFIX . "_comments_files WHERE c_id = '{$id}'" );
	
	if ( $config['tree_comments'] ) {

		$sql_result = $db->query( "SELECT id FROM " . PREFIX . "_comments WHERE parent = '{$id}'" );
	
		while ( $row = $db->get_row( $sql_result ) ) {
			deletecomments( $row['id'] );
		}

	}

}

function deletecommentsbynewsid( $id ) {
	global $config, $db;
	
	$id = intval($id);
	DLEFiles::init();
	
	$result = $db->query( "SELECT id FROM " . PREFIX . "_comments WHERE post_id='{$id}'" );
	
	while ( $row = $db->get_array( $result ) ) {
		
		$db->query( "DELETE FROM " . PREFIX . "_comment_rating_log WHERE c_id = '{$row['id']}'" );

		$sub_result = $db->query( "SELECT id, name, driver FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
		
		while ( $file = $db->get_row( $sub_result ) ) {
			
			$dataimage = get_uploaded_image_info( $file['name'] );
			
			DLEFiles::Delete( "posts/" . $dataimage->path, $file['driver'] );
			
			if( $dataimage->thumb ) {
				
				DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $file['driver'] );
				
			}

		}
		
		$db->query( "DELETE FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
	
	}
	
	$result = $db->query( "SELECT COUNT(*) as count, user_id FROM " . PREFIX . "_comments WHERE post_id='{$id}' AND is_register='1' GROUP BY user_id" );
	
	while ( $row = $db->get_array( $result ) ) {
		
		$db->query( "UPDATE " . USERPREFIX . "_users SET comm_num=comm_num-{$row['count']} WHERE user_id='{$row['user_id']}'" );
	
	}
	
	$db->query( "DELETE FROM " . PREFIX . "_comments WHERE post_id='{$id}'" );


}
function deleteuserbyid($id) {
	global $config, $db;

	$id = intval($id);

	$row = $db->super_query("SELECT user_id, name, foto FROM " . USERPREFIX . "_users WHERE user_id='{$id}'");

	if (isset($row['user_id']) and $row['user_id']) {

		if ($row['foto'] and count(explode("@", $row['foto'])) != 2) {

			$url = @parse_url($row['foto']);
			$row['foto'] = basename($url['path']);

			$driver = DLEFiles::getDefaultStorage();
			$config['avatar_remote'] = intval($config['avatar_remote']);
			if ($config['avatar_remote'] > -1)  $driver = $config['avatar_remote'];

			DLEFiles::init($driver);
			DLEFiles::Delete("fotos/" . totranslit($row['foto']));
		}

		$db->query("DELETE FROM " . USERPREFIX . "_pm WHERE user_from = '{$row['name']}' AND folder = 'outbox'");
		$db->query("DELETE FROM " . USERPREFIX . "_pm WHERE user='{$row['user_id']}'");
		$db->query("DELETE FROM " . USERPREFIX . "_social_login WHERE uid='{$row['user_id']}'");
		$db->query("DELETE FROM " . USERPREFIX . "_banned WHERE users_id='{$row['user_id']}'");
		$db->query("DELETE FROM " . USERPREFIX . "_ignore_list WHERE user='{$row['user_id']}' OR user_from='{$row['name']}'");
		$db->query("DELETE FROM " . PREFIX . "_notice WHERE user_id = '{$row['user_id']}'");
		$db->query("DELETE FROM " . PREFIX . "_subscribe WHERE user_id='{$row['user_id']}'");
		$db->query("DELETE FROM " . PREFIX . "_logs WHERE `member` = '{$row['name']}'");
		$db->query("DELETE FROM " . PREFIX . "_comment_rating_log WHERE `member` = '{$row['name']}'");
		$db->query("DELETE FROM " . PREFIX . "_vote_result WHERE name = '{$row['name']}'");
		$db->query("DELETE FROM " . PREFIX . "_poll_log WHERE `member` = '{$row['user_id']}'");
		$db->query("DELETE FROM " . USERPREFIX . "_users WHERE user_id='{$row['user_id']}'");
		$db->query("DELETE FROM " . USERPREFIX . "_users_delete WHERE user_id='{$row['user_id']}'");
	}
}

function normalize_name($var, $punkt = true) {
	
	if ( !is_string($var) ) return;

	$var = str_replace(chr(0), '', $var);
	
	$var = trim( strip_tags( $var ) );
	$var = preg_replace( "/\s+/u", "-", $var );
	$var = str_replace( "/", "-", $var );
	
	if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
	else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );

	$var = preg_replace( '#[\-]+#i', '-', $var );
	$var = preg_replace( '#[.]+#i', '.', $var );
	
	return $var;
}

function clearfilepath( $file, $ext=array() ) {

	$file = trim(str_replace(chr(0), '', (string)$file));
	$file = str_replace(array('/', '\'), '/', $file);
	
	$path_parts = pathinfo( $file );

	if( count($ext) ) {
		if ( !in_array( $path_parts['extension'], $ext ) ) return '';
	}
	
	$filename = normalize_name($path_parts['basename'], true);
	
	if( !$filename) return '';
	
	$parts = array_filter(explode('/', $path_parts['dirname']), 'strlen');
	
	$absolutes = array();
	
	foreach ($parts as $part) {
		if ('.' == $part) continue;
		if ('..' == $part) {
			array_pop($absolutes);
		} else {
			$absolutes[] = normalize_name($part, false);
		}
	}

	$path = implode('/', $absolutes);
	
	if ( $path ) return implode('/', $absolutes).'/'.$filename;
	else return '';

}

function cleanpath($path) {
	$path = trim(str_replace(chr(0), '', (string)$path));
	$path = str_replace(array('/', '\'), '/', $path);
	$parts = array_filter(explode('/', $path), 'strlen');
	$absolutes = array();
	foreach ($parts as $part) {
		if ('.' == $part) continue;
		if ('..' == $part) {
			array_pop($absolutes);
		} else {
			$absolutes[] = totranslit($part, false, false);
		}
	}

	return implode('/', $absolutes);
}

function get_uploaded_image_info( $file, $root_folder = 'posts', $force_size = false ) {
	global $config;
	
	$info = array();
	$file = explode("|", $file);
	$path = $file[0];
	$path = str_replace('&#58;',':', $path);

	if( stripos($path, "https://" ) === 0 OR stripos($path, "http://" ) === 0 OR stripos($path, "//" ) === 0 ) {
		
		$info['remote'] = true;
		$info['local'] 	= false;
		$info['exists'] = true;
		$info['url'] 	= $path;
		
		$path = explode("/{$root_folder}/", $path);
		
		$info['path'] = $path[1];
		$info['root'] = $path[0] . "/{$root_folder}/";
		
	} else {
		
		$info['remote'] = false;
		$info['exists'] = true;
		$info['path'] 	= $path;
		$info['root']   = $config['http_home_url'] . "uploads/{$root_folder}/";
		$info['url'] 	= $info['root'] . $info['path'];
		
		if( !file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) ) {
			
			$info['url'] = 	$config['http_home_url'] . "engine/skins/images/noimage.jpg";
			$file[1] = 0;
			$file[2] = 0;
			$file[3] = "0x0";
			$file[4] = "0 b";
			$info['exists'] = false;
	
		}

	}

	if( count($file) == 1) {

		$info['local_check'] = true;
		$file[1] = 0;
		$file[2] = 0;

		$files_array = explode('/', $file[0]);

		if( count($files_array) == 2 ) {
			$folder_prefix = $files_array[0].'/';
			$file_name =  $files_array[1];
		} else {
			$folder_prefix = '';
			$file_name =  $files_array[0];
		}

		if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $folder_prefix . "thumbs/" . $file_name ) ) $file[1] = 1;
		if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $folder_prefix . "medium/" . $file_name ) ) $file[2] = 1;
		
		if( $force_size ) {
			
			if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) ) {
				
				$img_info =  @getimagesize( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] );
				$file[3] = "{$img_info[0]}x{$img_info[1]}";
				$file[4] = formatsize( filesize( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) );
	
			} else {
				
				$file[3] = "0x0";
				$file[4] = "0 b";
				
			}
				
		}
		
		
	} else $info['local_check'] = false;

	$parts = pathinfo($info['path']);
	$info['folder'] = $parts['dirname'];
	$info['name'] = $parts['basename'];

	if (isset($file[5]) and $file[5]) {
		$info['hidpi'] = pathinfo($info['name'], PATHINFO_FILENAME) . '@x2.' . pathinfo($info['name'], PATHINFO_EXTENSION);
	} else {
		$info['hidpi'] = false;
	}

	if (isset($file[1]) and $file[1]) {
		$info['thumb'] = $info['root'] . $info['folder'] . "/thumbs/" . $info['name'];

		if ($info['hidpi']) $info['hidpi_thumb'] = $info['root'] . $info['folder'] . "/thumbs/" . $info['hidpi'];
	} else {
		$info['thumb'] = false;
	}

	if (isset($file[2]) and $file[2]) {
		$info['medium'] = $info['root'] . $info['folder'] . "/medium/" . $info['name'];

		if ($info['hidpi']) $info['hidpi_medium'] = $info['root'] . $info['folder'] . "/medium/" . $info['hidpi'];
	} else {
		$info['medium'] = false;
	}

	if (isset($file[3]) and $file[3]) $info['dimension'] = $file[3]; else $info['dimension'] = false;
	if (isset($file[4]) and $file[4]) $info['size'] = $file[4]; else $info['size'] = false;

	return (object)$info;
}

function is_md5hash( $md5 = '' ) {
  return strlen($md5) == 32 && ctype_xdigit($md5);
}

function generate_pin(){
	
	$pin = "";
	
	for($i = 0; $i < 5; $i ++) {
		$pin .= random_int(0, 9);
	}
	
    return $pin;
}

function isSSL() {
    if( (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off')
        || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
        || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && strtolower($_SERVER['HTTP_X_FORWARDED_SSL']) == 'on')
        || (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443)
        || (isset($_SERVER['HTTP_X_FORWARDED_PORT']) && $_SERVER['HTTP_X_FORWARDED_PORT'] == 443)
        || (isset($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https')
		|| (isset($_SERVER['CF_VISITOR']) && $_SERVER['CF_VISITOR'] == '{"scheme":"https"}')
		|| (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')
    ) return true; else return false;
}

function preg_quote_replacement($str) {
    return str_replace(array('\', '$'), array('\', '\$'), $str);
}

?>

Did this file decode correctly?

Original Code

$_F=__FILE__;$_X='P3c8P2xubFc4KldqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqaldOZ1g9WFMxPjBOXTZBMTYwTi1Oa0xOc3E+PXswRzlObzBSMVhOdDRxSWxOVy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tV05uPT1sOTo4OFJ9MC02MEc5IDRJOFctLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVdOWXFsTDQxQW49TihhKU41W1t6LTVbNU9Oc3E+PXswRzlObzBSMVhOdDRxSWxXampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampXTkhuMTlOYXFSME4xOU5sNHE9MGE9MFJOa0xOYXFsTDQxQW49V2pqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqV05aMX0wOk4+STZhPTFxNjkgbG5sV2pqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqampqVyo4V1cxPihOIVIwPjE2MFIoJ2czSDNTTVpdXXt0TXtdJylOKU5VVwluMFhSMDQoTiJ4SEhlOEQgRE56W09OWnE0azFSUjA2Ik4pO1cJbjBYUjA0TihOJ1NxYVg9MXE2Ok4gIDggIDgnTik7VwlSMTAoTiJ4WGFwMTZBTlg9PTAybD0hIk4pO1cvV1cxPk4oTjE5OTA9KCRhcTY+MUFtJ1hJPW5fUnEyWDE2J0opTjN7Z04kYXE2PjFBbSdYST1uX1JxMlgxNidKTilOVVdXCSRScTJYMTZfYXFxcDEwTmpOMGRsfXFSME4oIiAiLE5hfTBYNl9JNH0oTiRfc11WUF1WbSd4SEhlX3hGc0gnSk4pKTtXCSRScTJYMTZfYXFxcDEwX2FxSTY9TmpOYXFJNj0oJFJxMlgxNl9hcXFwMTApO1cJJFJxMlgxNl9YfX1xR19hcUk2PU5qTi01O1cJVwkxPk4oTiRScTJYMTZfYXFxcDEwX2FxSTY9TndONU4pTlVXCVcJCTE+TihOMTZfWDQ0WEwoJFJxMlgxNl9hcXFwMTBtJFJxMlgxNl9hcXFwMTBfYXFJNj0tNUosTlg0NFhMKCdhcTInLE4nNjA9JyxOJ3E0QScpTikpTiRScTJYMTZfWH19cUdfYXFJNj1Oak4tTztXCQkxPk4oTiRScTJYMTZfYXFxcDEwbSRScTJYMTZfYXFxcDEwX2FxSTY9LURKTmpqTidJWCdOKU4kUnEyWDE2X1h9fXFHX2FxSTY9TmpOLU87VwkJVwkJJFJxMlgxNl9hcXFwMTBOak5YNDRYTF85fTFhMCgkUnEyWDE2X2FxcXAxMCxOJFJxMlgxNl9YfX1xR19hcUk2PSk7VwkvVwlXCSRScTJYMTZfYXFxcDEwTmpOIiAiTiBOMTJsfXFSME4oIiAiLE4kUnEyWDE2X2FxcXAxMCk7VwlXCTE+KE4xbDV9cTZBKCRfc11WUF1WbSd4SEhlX3hGc0gnSilOampOLURORlZOMWw1fXE2QSgkX3NdVlBdVm0neEhIZV94RnNIJ0opTmpqak4+WH05ME4pTlIwPjE2MChOJ2dGbzNNeycsTiRScTJYMTZfYXFxcDEwTik7VwkwfTkwTlIwPjE2MChOJ2dGbzNNeycsTicnTik7V1cvTjB9OTBOUjA+MTYwKE4nZ0ZvM017JyxOJydOKTtXVz5JNmE9MXE2TlJ9MF85MDk5MXE2KE4kOTFSTmpOPlh9OTBOKU5VVwlBfXFrWH1OJGFxNj4xQTtXCVcJJGxYNFgyOU5qTjkwOTkxcTZfQTA9X2FxcXAxMF9sWDRYMjkoKTtXVwkxPk4oTmdGbzNNe04pTiRsWDRYMjltJ1JxMlgxNidKTmpOZ0ZvM017O1cJVwkxPk4oMTk5MD0oJGFxNj4xQW0ncTZ9TF85OX0nSilOM3tnTiRhcTY+MUFtJ3E2fUxfOTl9J0opTiRsWDRYMjltJzkwYUk0MCdKTmpOPTRJMDtXVwk5MDk5MXE2XzkwPV9hcXFwMTBfbFg0WDI5KCRsWDRYMjltJ30xPjA9MTIwJ0osTiI4IixOJGxYNFgyOW0nUnEyWDE2J0osTiRsWDRYMjltJzkwYUk0MCdKLE49NEkwKTtXVwkxPk4oTiQ5MVJOKU45MDk5MXE2XzFSKE4kOTFSTik7V1cJOTA5OTFxNl85PVg0PSgpO1dXL1dXPkk2YT0xcTZOOTA9X2FxcXAxMCgkNlgyMCxOJEJYfUkwLE4kMGRsMTQwOSlOVVcJQX1xa1h9TiRhcTY+MUE7VwlXCTE+KE4kMGRsMTQwOU4pTlVXCQlXCQkkMGRsMTQwOU5qTj0xMjAoKU4rTigkMGRsMTQwOU4qTnVjeltbKTtXCVcJL04wfTkwTlVXCQlXCQkkMGRsMTQwOU5qTlozU3NdO1cJVwkvVwlXCTE+TigkYXE2PjFBbSdxNn1MXzk5fSdKKU45MD1hcXFwMTAoTiQ2WDIwLE4kQlh9STAsTiQwZGwxNDA5LE4iOCIsTmdGbzNNeyxOSFZUXSxOSFZUXU4pO1cJMH05ME45MD1hcXFwMTAoTiQ2WDIwLE4kQlh9STAsTiQwZGwxNDA5LE4iOCIsTmdGbzNNeyxOWjNTc10sTkhWVF1OKTtXVy9XVz5JNmE9MXE2Tj5xNDJYPTkxZjAoJD4xfTBfOTFmMClOVVcJVwkxPihOISQ+MX0wXzkxZjBORlZOJD4xfTBfOTFmME48TkQpTjQwPUk0Nk4nW05rJztXCVdOTk5OJGw0MD4xZE5qTlg0NFhMKCJrIixOIkVrIixOIm9rIixOInRrIixOIkhrIik7V05OTk4kMGRsTmpOPn1xcTQofXFBKCQ+MX0wXzkxZjAsTkRbNXopKU58Tls7V1dOTk5OJD4xfTBfOTFmME5qTjRxSTZSKCQ+MX0wXzkxZjBOOE4obHFHKERbNXosTiQwZGwpKSxONSkgJ04nICRsNDA+MWRtJDBkbEo7VwkkPjF9MF85MWYwTmpOOT00XzQwbH1YYTAoIiwiLE4iICIsTiQ+MX0wXzkxZjApO1dXTk5OTjQwPUk0Nk4kPjF9MF85MWYwO1dXL1dXYX1YOTlOMjFhNHFIMTIwNE5VVwlsNDFCWD0wTiQ9MTIwO1dXCT5JNmE9MXE2Tl9fYXE2OT00SWE9KClOVVcJCSQ9bjE5LXc9MTIwTmpOJD1uMTktd0EwPV80MFh9Xz0xMjAoKTtXCS9XCT5JNmE9MXE2TkEwPSgpTlVXCQk0MD1JNDZONHFJNlIoTigkPW4xOS13QTA9XzQwWH1fPTEyMCgpTi1OJD1uMTktdz0xMjApLE52Tik7VwkvV1cJPkk2YT0xcTZOQTA9XzQwWH1fPTEyMCgpTlVXCQl9MTk9TihOJDkwYXE2UjksTiQyMWE0cXMwYXE2UjlOKU5qTjBkbH1xUjAoTidOJyxOMjFhNHE9MTIwKClOKTtXCQk0MD1JNDZOKChOPn1xWD1OKU4kOTBhcTZSOU4rTihOPn1xWD1OKU4kMjFhNHFzMGFxNlI5KTtXCS9XL1dXPkk2YT0xcTZOPn1xcVIwNCgkMWwsTiQ2MEc5Xz0xMjBOak4+WH05MClOVVcJQX1xa1h9TiRhcTY+MUEsTiRSaztXCVcJJDFsTmpOJFJrLXc5WD4wOXl9KCQxbCk7VwlXCTE+TihOJDYwRzlfPTEyME4pTlVXVwkJJD1uMTlfPTEyME5qTj0xMjAoKU4tTjE2PUJYfSgkNjBHOV89MTIwKTtXCQkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfPn1xcVJOR24wNDBOMVJOPE4nJD1uMTlfPTEyMCdOM3tnTj59WEFqJ0QnTiJOKTtXCQlXCQkkNHFHTmpOJFJrLXc5SWwwNF95STA0TCgic11TXVlITllGVHtIKCopTlg5TmFxSTY9TlpWRm9OIk4gTmVWXVpNCk4gTiJfPn1xcVJOUXhdVl1OMWxOak4nJDFsJ04ze2dOPn1YQWonRCciKTtXCQlXCQkxPihOJDRxR20nYXFJNj0nSk4pTjQwPUk0Nk5IVlRdO1cJCTB9OTBONDA9STQ2TlozU3NdO1dXCS9OMH05ME5VV1cJCSQ9bjE5Xz0xMjBOak49MTIwKClOLU4xNj1CWH0oJGFxNj4xQW0nPn1xcVJfPTEyMCdKKTtXCQkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfPn1xcVJOR24wNDBOMVJOPE4nJD1uMTlfPTEyMCdOM3tnTj59WEFqJ1snTiJOKTtXCQlXCQkkNHFHTmpOJFJrLXc5SWwwNF95STA0TCgic11TXVlITllGVHtIKCopTlg5TmFxSTY9TlpWRm9OIk4gTmVWXVpNCk4gTiJfPn1xcVJOUXhdVl1OMWxOak4nJDFsJ04ze2dOPn1YQWonWyciKTtXCQlXCQkxPihOJDRxR20nYXFJNj0nSk4pTjQwPUk0Nk5IVlRdO1cJCTB9OTBONDA9STQ2TlozU3NdO1dXCS9XVy9XVz5JNmE9MXE2Tj1xPTRYNjl9MT0oJEJYNCxOJH1xRzA0TmpOPTRJMCxOJGxJNnA9TmpOPTRJMCxOJD00WDY5fTE9TmpOPTRJME4pTlVXCUF9cWtYfU4kfVg2QT00WDY5fTE9O1cJVwkxPk4oTiExOV85PTQxNkEoJEJYNClOKU40MD1JNDZOIiI7V1cJJGtYUjlOak5YNDRYTChOJyEnLE4nKicsTidcJycsTicoJyxOJyknLE4nOycsTic6JyxOJ0AnLE4nJicsTidqJyxOJysnLE4nJCcsTicsJyxOJzgnLE4nPycsTicjJyxOJ20nLE4nSicsTiclJyxOJ1xcJyxOJyInLE4nPCcsTid3JyxOJ14nLE4nVScsTicvJyxOJ3wnLE4nYCcsTicgbG5sJ04pO1cJVwkkQlg0TmpOOT00MWxfPVhBOShOJEJYNE4pO1cJJEJYNE5qTjk9NF80MGx9WGEwKGFuNChbKSxOJycsTiRCWDQpO1dXCSRCWDROak5uPTJ9XzA2PTE9TF9SMGFxUjAoJEJYNCxOXXtIX0tURkhdc058Tl17SF94SG9TdixOJ0k9Pi11Jyk7VwlXCTE+TihOJH1xRzA0TilOVVcJCSRCWDROak5SfTBfOT00PXF9cUcwNCgkQlg0KTsJVwkvVwlXCSRCWDROak45PTRfNDBsfVhhMChOWDQ0WEwoTiJcNFw2IixOIlw0IixOIlw2Ik4pLE4nTicsTiRCWDROKTtXCSRCWDROak5sNDBBXzQwbH1YYTAoTiI4XDkrOEkiLE4iLSIsTiRCWDROKTtXVwkxPk4oTiEkbEk2cD1OKU5VVwkJJGtYUjltSk5qTicgJztXCS9XCVcJJEJYNE5qTjk9NF8xNDBsfVhhMChOJGtYUjksTicnLE4kQlg0Tik7VwlXCTE+KE4kPTRYNjl9MT1OKU5VVwkJVwkJMT5OKDE5X1g0NFhMKCR9WDZBPTRYNjl9MT0pTjN7Z05hcUk2PSgkfVg2QT00WDY5fTE9KU4pTlVXCQkJJEJYNE5qTjk9ND00KCRCWDQsTiR9WDZBPTRYNjl9MT0pO1cJCS9XCQlXCQkxPk4oTiRsSTZwPU4pTlVXCQkJVwkJCSRCWDROak5sNDBBXzQwbH1YYTAoTiI4bV5YLWZbLTdcX1wtIEorODIxIixOJycsTiRCWDROKTtXCQkJJEJYNE5qTmw0MEFfNDBsfVhhMChOJyNtIEorIzEnLE4nICcsTiRCWDROKTtXCQkJVwkJL04wfTkwTiRCWDROak5sNDBBXzQwbH1YYTAoTiI4bV5YLWZbLTdcX1wtSis4MjEiLE4nJyxOJEJYNE4pO1cJVwkvVwlXCSRCWDROak45PTRfMTQwbH1YYTAoTiIgbG5sIixOIiBsbGwiLE4kQlg0Tik7VwkkQlg0TmpObDQwQV80MGx9WGEwKE4nOFwtKzgnLE4nLScsTiRCWDROKTtXCVcJMT4oTlJ9MF85PTR9MDYoTiRCWDROKU53TkR2W04pTlVXCQlXCQkkQlg0TmpOUn0wXzlJazk9NChOJEJYNCxOWyxORHZbTik7VwkJVwkJMT4oTigkPTAybF8yWGROak5SfTBfOT00NGxxOShOJEJYNCxOJy0nTikpTilOJEJYNE5qTlJ9MF85SWs5PTQoTiRCWDQsTlssTiQ9MDJsXzJYZE4pO1cJVwkvV05OTk5XCSRCWDROak49NDEyKE4kQlg0LE4nLSdOKTtXTk5OTiRCWDROak49NDEyKE4kQlg0Tik7VwlXCTQwPUk0Nk4kQlg0O1cvV1c+STZhPTFxNk59WDZBUlg9MCgkPnE0Mlg9LE4kOT1YMmwsTiQ5MDRCMDQ9MTIwTmpOPlh9OTAsTiRhSTk9cTJOak4+WH05ME4pTlVXCUF9cWtYfU4kfVg2QVJYPTAsTiQyMDJrMDRfMVIsTiRhSTk9cTJ9WDZBUlg9MDtXVwkkPTEyMGZxNjA5TmpOWDQ0WEwoJ2VYYTE+MWE4bzFSR1hMJywnVHM4c1gycVgnLCdUczh4WEdYMTEnLCdUczgzfVg5cFgnLCdUczhlWGExPjFhJywnMzIwNDFhWDhIMUNJWDZYJywnVHM4MzQxZnE2WCcsJ1RzOG9xSTY9WDE2JywnMzIwNDFhWDhZbjFuSVhuSVgnLCczMjA0MWFYOG9YZlg9fVg2JywnMzIwNDFhWDhvMGQxYXFfWTE9TCcsJzMyMDQxYVg4b3E2PTA0NDBMJywnVHM4WTA2PTRYfScsJ1RzOF1YOT0wNDYnLCdUczhdWDk9LU02UjFYNlgnLCczMjA0MWFYOFMxMlgnLCczMjA0MWFYOFlYNFhhWDknLCdZWDZYUlg4Mz19WDY9MWEnLCczMjA0MWFYOFNYX2VYZicsJzMyMDQxYVg4c1g2PTFYQXEnLCdZWDZYUlg4ezBHPnFJNlJ9WDZSJywnMzIwNDFhWDhpSTA2cTlfMzE0MDknLCczMjA0MWFYOHRxUj1uWGsnLCczPX1YNj0xYThzPVg2fTBMJywnMz19WDY9MWE4M2ZxNDA5JywnMz40MWFYOFlYOVhrfVg2YVgnLCddSTRxbDA4Z0lrfTE2JywnXUk0cWwwOFMxOWtxNicsJ11JNHFsMDhTcTZScTYnLCddSTRxbDA4MzI5PTA0UlgyJywnXUk0cWwwOGkwfUE0WFIwJywnXUk0cWwwOGkwNH0xNicsJ11JNHFsMDhpNFg9MTl9WEJYJywnXUk0cWwwOGk0STk5MH05JywnXUk0cWwwOGlJUlhsMDk9JywnXUk0cWwwOFlxbDA2blhBMDYnLCddSTRxbDA4b1hSNDFSJywnXUk0cWwwOGVYNDE5JywnXUk0cWwwOGU0WEFJMCcsJ11JNHFsMDhWcTIwJywnXUk0cWwwOHNYNFhDMEJxJywnXUk0cWwwOHM9cWFwbnF9MicsJ11JNHFsMDhQMTA2NlgnLCddSTRxbDA4UVg0OVhHJywnXUk0cWwwOHJYQTQwaycsJ11JNHFsMDgzPW4wNjknLCddSTRxbDA4aUlhblg0MDk9JywnXUk0cWwwOHgwfTkxNnAxJywnXUk0cWwwOE05PVg2a0l9JywnMzkxWDguMDRJOVh9MDInLCddSTRxbDA4RTEwQicsJ11JNHFsMDhvMTY5cCcsJ11JNHFsMDhWMUFYJywnXUk0cWwwOHNxPjFYJywnXUk0cWwwOEhYfX0xNjYnLCddSTRxbDA4UDF9NjFJOScsJzM5MVg4aVhBblJYUicsJzM5MVg4RUlHWDE9JywnMz40MWFYOHtYMTRxazEnLCczOTFYOEgwbjRYNicsJ11JNHFsMDhFWH0xNjE2QTRYUicsJ11JNHFsMDhvcTlhcUcnLCddSTRxbDA4UHF9QXFBNFhSJywnXUk0cWwwOHNYMlg0WCcsJzM5MVg4aVhwSScsJzM5MVg4b0k5YVg9JywnMzkxWDhIazF9MTkxJywnMzkxWDhiMDQwQlg2JywnMzkxWDhFWGtJfScsJzM5MVg4YjBwWD0wNDE2a0k0QScsJzM5MVg4SFg5bnAwNj0nLCczOTFYOEVxfXBYPVgnLCczOTFYOEVYPW4yWDZSSScsJzM5MVg4M30yWD1MJywnMzkxWDh7cUJxOTFrMTQ5cCcsJzM5MVg4LlhwWDQ9WCcsJzM5MVg4RTRYOTZxTFg0OXAnLCczOTFYOHhxNkFfRXE2QScsJzM5MVg4RUlYfVhfU0kybEk0JywnMzkxWDhzMTZBWGxxNDAnLCczOTFYOEhYMWwwMScsJzM5MVg4VH1YWDZrWFg9WDQnLCczOTFYOFQ0STJ5MScsJzM5MVg4TTRwST05cCcsJzM5MVg4czBxSX0nLCczOTFYOEhxcExxJywnM0k5PTRYfTFYODNSMH1YMVIwJywnM0k5PTRYfTFYOGdYNEcxNicsJzM5MVg4YlhwST05cCcsJzNJOT00WH0xWDhpNDE5a1g2MCcsJ2VYYTE+MWE4ZXE0PV9vcTQwOWtMJywnM0k5PTRYfTFYOHNMUjYwTCcsJzM5MVg4UH1YUjFCcTk9cXAnLCczOTFYOHNYcG5YfTE2JywnMzkxWDhvWEFYUlg2JywnZVhhMT4xYTgzSWFwfVg2UicsJ2VYYTE+MWE4WjFDMScpO1dXCTE+KE4xOV9YNDRYTCgkYUk5PXEyKU4pTiR9cWFYfX1YNkFSWD0wTmpOJGFJOT1xMn1YNkFSWD0wO04wfTkwTiR9cWFYfX1YNkFSWD0wTmpOJH1YNkFSWD0wO1dXCTE+KE4hMTlfWDQ0WEwoJH1xYVh9fVg2QVJYPTApTilOVVcJCSR9cWFYfX1YNkFSWD0wTmpOWDQ0WEwoKTtXCS8JVwlXCTE+TighJDk9WDJsKU5VTiQ5PVgybE5qTj0xMjAoKTtOL1cJVwkkfXFhWH1Oak42MEdOZ1g9MEgxMjAoJ0AnICQ5PVgybCk7V1cJMT5OKDE5OTA9KCQyMDJrMDRfMVJtJz0xMjBmcTYwJ0opTjN7Z04kMjAyazA0XzFSbSc9MTIwZnE2MCdKTjN7Z04hJDkwNEIwND0xMjApTlVXCQkkfXFhWH1mcTYwTmpOJDIwMmswNF8xUm0nPTEyMGZxNjAnSjtXVwkvTjB9OTBOVVdXCQkkfXFhWH1mcTYwTmpOUlg9MF9SMD5YSX09Xz0xMjBmcTYwX0EwPSgpO1cJL1dXCTE+TighMTZfWDQ0WEwoJH1xYVh9ZnE2MCxOJD0xMjBmcTYwOSkpTiR9cWFYfWZxNjBOak4nXUk0cWwwOG9xOWFxRyc7V1cJJH1xYVh9LXc5MD1IMTIwcnE2MCg2MEdOZ1g9MEgxMjBycTYwKCR9cWFYfWZxNjApKTtXVwk0MD1JNDZOOT00PTQoTiR9cWFYfS13PnE0Mlg9KCQ+cTQyWD0pLE4kfXFhWH19WDZBUlg9ME4pO1dXL1dXPkk2YT0xcTZOUjE+Pn1YNkFSWD0wKCQ+cTQyWD0sTiQ5PVgybClOVVcJQX1xa1h9TiRfSE1vXSxOJH1YNkFSWD0wLE4kMjAyazA0XzFSLE4kfVg2QSxOJH1YNkFhcTIyMDY9OUcwMHBSWEw5O1dXCSQ9MTIwZnE2MDlOak5YNDRYTCgnZVhhMT4xYThvMVJHWEwnLE4nVHM4c1gycVgnLE4nVHM4eFhHWDExJyxOJ1RzODN9WDlwWCcsTidUczhlWGExPjFhJyxOJzMyMDQxYVg4SDFDSVg2WCcsTidUczgzNDFmcTZYJyxOJ1RzOG9xSTY9WDE2JyxOJzMyMDQxYVg4WW4xbklYbklYJyxOJzMyMDQxYVg4b1hmWD19WDYnLE4nMzIwNDFhWDhvMGQxYXFfWTE9TCcsTiczMjA0MWFYOG9xNj0wNDQwTCcsTidUczhZMDY9NFh9JyxOJ1RzOF1YOT0wNDYnLE4nVHM4XVg5PS1NNlIxWDZYJyxOJzMyMDQxYVg4UzEyWCcsTiczMjA0MWFYOFlYNFhhWDknLE4nWVg2WFJYODM9fVg2PTFhJyxOJzMyMDQxYVg4U1hfZVhmJyxOJzMyMDQxYVg4c1g2PTFYQXEnLE4nWVg2WFJYOHswRz5xSTZSfVg2UicsTiczMjA0MWFYOGlJMDZxOV8zMTQwOScsTiczMjA0MWFYOHRxUj1uWGsnLE4nMz19WDY9MWE4cz1YNn0wTCcsTiczPX1YNj0xYTgzZnE0MDknLE4nMz40MWFYOFlYOVhrfVg2YVgnLE4nXUk0cWwwOGdJa30xNicsTiddSTRxbDA4UzE5a3E2JyxOJ11JNHFsMDhTcTZScTYnLE4nXUk0cWwwODMyOT0wNFJYMicsTiddSTRxbDA4aTB9QTRYUjAnLE4nXUk0cWwwOGkwNH0xNicsTiddSTRxbDA4aTRYPTE5fVhCWCcsTiddSTRxbDA4aTRJOTkwfTknLE4nXUk0cWwwOGlJUlhsMDk9JyxOJ11JNHFsMDhZcWwwNm5YQTA2JyxOJ11JNHFsMDhvWFI0MVInLE4nXUk0cWwwOGVYNDE5JyxOJ11JNHFsMDhlNFhBSTAnLE4nXUk0cWwwOFZxMjAnLE4nXUk0cWwwOHNYNFhDMEJxJyxOJ11JNHFsMDhzPXFhcG5xfTInLE4nXUk0cWwwOFAxMDY2WCcsTiddSTRxbDA4UVg0OVhHJyxOJ11JNHFsMDhyWEE0MGsnLE4nXUk0cWwwODM9bjA2OScsTiddSTRxbDA4aUlhblg0MDk9JyxOJ11JNHFsMDh4MH05MTZwMScsTiddSTRxbDA4TTk9WDZrSX0nLE4nMzkxWDguMDRJOVh9MDInLE4nXUk0cWwwOEUxMEInLE4nXUk0cWwwOG8xNjlwJyxOJ11JNHFsMDhWMUFYJyxOJ11JNHFsMDhzcT4xWCcsTiddSTRxbDA4SFh9fTE2NicsTiddSTRxbDA4UDF9NjFJOScsTiczOTFYOGlYQW5SWFInLE4nMzkxWDhFSUdYMT0nLE4nMz40MWFYOHtYMTRxazEnLE4nMzkxWDhIMG40WDYnLE4nXUk0cWwwOEVYfTE2MTZBNFhSJyxOJ11JNHFsMDhvcTlhcUcnLE4nXUk0cWwwOFBxfUFxQTRYUicsTiddSTRxbDA4c1gyWDRYJyxOJzM5MVg4aVhwSScsTiczOTFYOG9JOWFYPScsTiczOTFYOEhrMX0xOTEnLE4nMzkxWDhiMDQwQlg2JyxOJzM5MVg4RVhrSX0nLE4nMzkxWDhiMHBYPTA0MTZrSTRBJyxOJzM5MVg4SFg5bnAwNj0nLE4nMzkxWDhFcX1wWD1YJyxOJzM5MVg4RVg9bjJYNlJJJyxOJzM5MVg4M30yWD1MJyxOJzM5MVg4e3FCcTkxazE0OXAnLE4nMzkxWDguWHBYND1YJyxOJzM5MVg4RTRYOTZxTFg0OXAnLE4nMzkxWDh4cTZBX0VxNkEnLE4nMzkxWDhFSVh9WF9TSTJsSTQnLE4nMzkxWDhzMTZBWGxxNDAnLE4nMzkxWDhIWDFsMDEnLE4nMzkxWDhUfVhYNmtYWD1YNCcsTiczOTFYOFQ0STJ5MScsTiczOTFYOE00cEk9OXAnLE4nMzkxWDhzMHFJfScsTiczOTFYOEhxcExxJyxOJzNJOT00WH0xWDgzUjB9WDFSMCcsTiczSTk9NFh9MVg4Z1g0RzE2JyxOJzM5MVg4YlhwST05cCcsTiczSTk9NFh9MVg4aTQxOWtYNjAnLE4nZVhhMT4xYThlcTQ9X29xNDA5a0wnLE4nM0k5PTRYfTFYOHNMUjYwTCcsTiczOTFYOFB9WFIxQnE5PXFwJyxOJzM5MVg4c1hwblh9MTYnLE4nMzkxWDhvWEFYUlg2JyxOJ2VYYTE+MWE4M0lhcH1YNlInLE4nZVhhMT4xYThaMUMxJyk7V1cJMT5OKCExOV9YNDRYTCgkfVg2QVJYPTApKU5VVwkJJH1YNkFSWD0wTmpOWDQ0WEwoKTtXCS9XVwkxPk4oITE5X1g0NFhMKCR9WDZBYXEyMjA2PTlHMDBwUlhMOSkpTlVXCQkkfVg2QWFxMjIwNj05RzAwcFJYTDlOak5YNDRYTCgpO1cJL1dXCTE+TighJDk9WDJsKU5VVwkJJDk9WDJsTmpOJF9ITW9dO1cJL1dXCSRxfVJSWD0wTmpONjBHTmdYPTBIMTIwKCdAJ04gTiQ5PVgybCk7VwkkNnFHUlg9ME5qTjYwR05nWD0wSDEyMCgnQCdOIE4kX0hNb10pO1cJJEwwOT0wNFJYTFJYPTBOak42MEdOZ1g9MEgxMjAoJy1ETlJYTCcpO1dXCTE+TigxOTkwPSgkMjAyazA0XzFSbSc9MTIwZnE2MCdKKU5YNlJOJDIwMmswNF8xUm0nPTEyMGZxNjAnSilOVVcJCSR9cWFYfWZxNjBOak4kMjAyazA0XzFSbSc9MTIwZnE2MCdKO1cJL04wfTkwTlVXVwkJJH1xYVh9ZnE2ME5qTlJYPTBfUjA+WEl9PV89MTIwZnE2MF9BMD0oKTtXCS9XVwkxPk4oITE2X1g0NFhMKCR9cWFYfWZxNjAsTiQ9MTIwZnE2MDkpKU4kfXFhWH1mcTYwTmpOJ11JNHFsMDhvcTlhcUcnO1dXCSRxfVJSWD0wLXc5MD1IMTIwcnE2MCg2MEdOZ1g9MEgxMjBycTYwKCR9cWFYfWZxNjApKTtXCSQ2cUdSWD0wLXc5MD1IMTIwcnE2MCg2MEdOZ1g9MEgxMjBycTYwKCR9cWFYfWZxNjApKTtXCSRMMDk9MDRSWExSWD0wLXc5MD1IMTIwcnE2MCg2MEdOZ1g9MEgxMjBycTYwKCR9cWFYfWZxNjApKTtXVwkkUjE+Pk5qTiRxfVJSWD0wLXdSMT4+KCQ2cUdSWD0wKTtXVwkkUlhMOU5OTk5qTjE2PUJYfSgkUjE+Pi13PnE0Mlg9KCclWCcpTik7VwkkbnFJNDlOTk5qTjE2PUJYfSgkUjE+Pi13PnE0Mlg9KCclbicpTik7VwkkMjE2ST0wOU5qTjE2PUJYfSgkUjE+Pi13PnE0Mlg9KCclMScpTik7V1cJMT4oTiRxfVJSWD0wLXc+cTQyWD0oJ2IyUicpTmpqTiRMMDk9MDRSWExSWD0wLXc+cTQyWD0oJ2IyUicpTilOVVdXCQkkfVg2QV8+cTQyWD1Oak45PTRfNDBsfVhhMCgnVVJYPTAvJyxOJH1YNkFtJz0xMjBfQTA5PTA0NidKLE4kfVg2QW0nUjE+PjlfPnE0Mlg9J0opO1cJCSR9WDZBXz5xNDJYPU5qTjk9NF80MGx9WGEwKCdVPTEyMC8nLE4kcX1SUlg9MC13PnE0Mlg9KCd4OjEnKSxOJH1YNkFfPnE0Mlg9KTtXVwkJNDA9STQ2TiR9WDZBXz5xNDJYPTtXVwkvTjB9OTAxPihOJFJYTDlOPE5ETilOVVdXCQkxPk4oJG5xSTQ5TjxORClOVVdXCQkJMT4oTiQyMTZJPTA5TjxORE4pTlVXVwkJCQk0MD1JNDZOJH1YNkFtJzZxR19SMT4+OSdKO1dXCQkJL04wfTkwTlVXVwkJCQk0MD1JNDZOJDIxNkk9MDlOIE4nTidOIE5SMGF9MTZYPTFxNihYNDRYTCgnJyxOJDIxNkk9MDksTiR9WDZBbScyMTZJPTA5X1IxPj45J0opKU4gTidOJ04gTiR9WDZBbSc9MTIwX1IxPj45J0o7V1cJCQkvV1cJCS9OMH05MDE+TigkbnFJNDlOPGpORDUpTlVXVwkJCTQwPUk0Nk4kbnFJNDlOIE4nTidOIE5SMGF9MTZYPTFxNihYNDRYTCgnJyxOJG5xSTQ5LE4kfVg2QW0nbnFJNDlfUjE+PjknSikpTiBOJ04nTiBOJH1YNkFtJz0xMjBfUjE+PjknSjtXVwkJL04wfTkwTlVXVwkJCSR9WDZBXz5xNDJYPU5qTjk9NF80MGx9WGEwKCdVUlg9MC8nLE4kfVg2QW0nPTEyMF9uMEk9MCdKLE4kfVg2QW0nUjE+PjlfPnE0Mlg9J0opO1cJCQkkfVg2QV8+cTQyWD1Oak45PTRfNDBsfVhhMCgnVT0xMjAvJyxOJHF9UlJYPTAtdz5xNDJYPSgneDoxJyksTiR9WDZBXz5xNDJYPSk7V1cJCQk0MD1JNDZOJH1YNkFfPnE0Mlg9O1dXCQkvV1cJL04wfTkwTlVXVwkJMT5OKCRSWEw5TjxOYylOVVdXCQkJJH1YNkFfPnE0Mlg9TmpOOT00XzQwbH1YYTAoJ1VSWD0wLycsTiRxfVJSWD0wLXc+cTQyWD0oJ30nKSxOJH1YNkFtJ1IxPj45Xz5xNDJYPSdKKTtXCQkJJH1YNkFfPnE0Mlg9TmpOOT00XzQwbH1YYTAoJ1U9MTIwLycsTiRxfVJSWD0wLXc+cTQyWD0oJ3g6MScpLE4kfVg2QV8+cTQyWD0pO1dXCQkJNDA9STQ2Tjk9ND00KCR9WDZBXz5xNDJYPSxOJH1YNkFhcTIyMDY9OUcwMHBSWEw5KTtXVwkJL04wfTkwTjQwPUk0Nk45PTQ9NCgkcX1SUlg9MC13PnE0Mlg9KCQ+cTQyWD0pLE4kfVg2QVJYPTApO1dXCS9XL1dXPkk2YT0xcTZOUjBhfTE2WD0xcTYoJDJYPWFuMDlOak5YNDRYTCgpKVdVV1cJJDJYPWFuMDltREpOak45PTQxbF89WEE5KCQyWD1hbjA5bURKKTtXCSQyWD1hbjA5bURKTmpOOT00XzQwbH1YYTAoJ04nLE4nJyxOJDJYPWFuMDltREopO1dXCSQyWD1hbjA5bURKTmpOMTY9Qlh9KCQyWD1hbjA5bURKKTtXCSRHcTRSOU5qTjBkbH1xUjAoJ3wnLE49NDEyKCQyWD1hbjA5bTVKKSk7VwkkbFg0PTlfR3E0Uk5qTlg0NFhMKCk7V1cJOUcxPWFuTihhcUk2PSgkR3E0UjkpKU5VVwkJYVg5ME5EOlcJCQkkbFg0PTlfR3E0Um1bSk5qTiRHcTRSOW1bSjtXCQkJJGxYND05X0dxNFJtREpOak4kR3E0UjltW0o7VwkJCSRsWDQ9OV9HcTRSbTVKTmpOJEdxNFI5bVtKO1cJCQlrNDBYcDtXCQlhWDkwTjU6VwkJCSRsWDQ9OV9HcTRSbVtKTmpOJEdxNFI5bVtKO1cJCQkkbFg0PTlfR3E0Um1ESk5qTiRHcTRSOW1bSk4gTiRHcTRSOW1ESjtXCQkJJGxYND05X0dxNFJtNUpOak4kR3E0UjltW0pOIE4kR3E0UjltREo7VwkJCWs0MFhwO1cJCWFYOTBOTzpXCQkJJGxYND05X0dxNFJtW0pOak4kR3E0UjltW0o7VwkJCSRsWDQ9OV9HcTRSbURKTmpOJEdxNFI5bVtKTiBOJEdxNFI5bURKO1cJCQkkbFg0PTlfR3E0Um01Sk5qTiRHcTRSOW1bSk4gTiRHcTRSOW01SjtXCQkJazQwWHA7VwkJYVg5ME56OlcJCQkkbFg0PTlfR3E0Um1bSk5qTiRHcTRSOW1bSk4gTiRHcTRSOW1ESjtXCQkJJGxYND05X0dxNFJtREpOak4kR3E0UjltW0pOIE4kR3E0UjltNUo7VwkJCSRsWDQ9OV9HcTRSbTVKTmpOJEdxNFI5bVtKTiBOJEdxNFI5bU9KO1cJCQlrNDBYcDtXCS9XVwkkR3E0Uk5qTiQyWD1hbjA5bURKTiVORFtOampORE4mJk4kMlg9YW4wOW1ESk4lTkRbW04hak5ERE4/TiRsWDQ9OV9HcTRSbVtKTjpOKCQyWD1hbjA5bURKTiVORFtOd2pONU4mJk4kMlg9YW4wOW1ESk4lTkRbTjxqTnpOJiZOKCQyWD1hbjA5bURKTiVORFtbTjxORFtOfHxOJDJYPWFuMDltREpOJU5EW1tOd2pONVspTj9OJGxYND05X0dxNFJtREpOOk4kbFg0PTlfR3E0Um01Sik7V1cJNDA9STQ2TiRHcTRSO1cvV1c+STZhPTFxNk4+cTQyUlg9MChOJDJYPWFuMDlqWDQ0WEwoKU4pTlVXCUF9cWtYfU4kNjBHOV9SWD0wLE4kYUk5PXEyfVg2QVJYPTAsTiRhcTY+MUE7VwlXCTE+KCRhcTY+MUFtJ1IwYX0xNjBfUlg9MCdKKU40MD1JNDZOfVg2QVJYPTAoJDJYPWFuMDltREosTiQ2MEc5X1JYPTApO1cJMH05ME40MD1JNDZOfVg2QVJYPTAoJDJYPWFuMDltREosTiQ2MEc5X1JYPTAsTj5YfTkwLE4kYUk5PXEyfVg2QVJYPTApO1dXL1dXPkk2YT0xcTZOYW4wYXBfNjBHOWFxSTY9KE4kMlg9YW4wOWpYNDRYTCgpTilOVVcJQX1xa1h9TiRBfXFrWH1fNjBHOV9hcUk2PTtXVwkka31xYXBOak4kMlg9YW4wOW1PSjtXVwkkYXFJNj05TmpOMGRsfXFSMChOJywnLE49NDEyKCQyWD1hbjA5bTVKKU4pO1cJV05OTk4xPihOJDJYPWFuMDltREpOampOIjYwRzlhcUk2PSJOKU5VV1dOTk5OTk5OTjE+KE4hMTZfWDQ0WEwoJEF9cWtYfV82MEc5X2FxSTY9LE4kYXFJNj05KU4pTjQwPUk0Nk4iIjtXV05OTk4vTjB9OTBOVVdXTk5OTk5OTk4xPihOMTZfWDQ0WEwoJEF9cWtYfV82MEc5X2FxSTY9LE4kYXFJNj05KU4pTjQwPUk0Nk4iIjtXV05OTk4vV1cJNDA9STQ2TiRrfXFhcDtXCVcvV1c+STZhPTFxNk4yOUFrcWQoJD0xPX0wLE4kPTBkPSlOVVcJQX1xa1h9TiQ9bH07V1cJMT5OKCFhfVg5OV8wZDE5PTkoJ1J9MF89MDJsfVg9MCcpKU5VVwlOTk5ONDA9STQ2O1cJL1cJVwkkPWx9XzVOak42MEdOUn0wXz0wMmx9WD0wKE4pO1cJJD1sfV81LXdSMTROak5IXW9lUzNIXV9nTVY7VwlXCSQ9bH1fNS13fXFYUl89MDJsfVg9MChOJzE2PnEgPWx9J04pO1cJVwkkPWx9XzUtdzkwPShOJ1UwNDRxNC8nLE4kPTBkPU4pO1cJJD1sfV81LXc5MD0oTidVPTE9fTAvJyxOJD0xPX0wTik7VwlXCSQ9bH1fNS13YXEybDF9MChOJzE2PnEnTik7VwkkPWx9XzUtd2F9MFg0KCk7VwlXCSQ9bH0tdzQwOUl9PW0nMTY+cSdKTiBqTiQ9bH1fNS13NDA5SX09bScxNj5xJ0o7Vy9XVz5JNmE9MXE2TnNucUdWWD0xNkEoJDFSLE4kNFg9MTZBLE4kQnE9MF82STIsTiRYfX1xR05qTj00STApTlVXCUF9cWtYfU4kfVg2QSxOJGFxNj4xQSxOJDRxRyxOJFJ9MF8ycVJJfTA7V1cJMT4oTiEkYXE2PjFBbSc0WD0xNkFfPUxsMCdKTilOVVcJCVcJCTE+KE4kNFg9MTZBTjN7Z04kQnE9MF82STJOKU5VVwkJCVcJCQkkNFg9MTZBTmpONHFJNlIoTigkNFg9MTZBTjhOJEJxPTBfNkkyKSxOW04pO1cJCQlXCQkvTjB9OTBOVVcJCQkkNFg9MTZBTmpOWztXCQkvVwkJVwkJMT5OKCQ0WD0xNkFOPE5bTilOJDRYPTE2QU5qTls7VwkJVwkJJDRYPTE2QU5qTiQ0WD0xNkFOKk41WztXCVcJCTE+KE4hJFh9fXFHTilOVVcJCVcJCQkkNFg9MFJOak48PDx4SG9TVzxSMUJOYX1YOTlqIjRYPTE2QSJ3VwkJPEl9TmF9WDk5aiJJNjE9LTRYPTE2QSJ3VwkJPH0xTmF9WDk5aiJhSTQ0MDY9LTRYPTE2QSJOOT1MfTBqIkcxUj1uOlUkNFg9MTZBLyU7IndVJDRYPTE2QS88OH0xd1cJCTw4SX13Vzw4UjFCd1d4SG9TO1cJCVcJCQk0MD1JNDZOJDRYPTBSO1cJCS9XCVcJCSQ0WD0wUk5qTjw8PHhIb1NXPFIxQk5SWD1YLTRYPTFBLX1YTDA0LTFSaidVJDFSLyd3Vwk8UjFCTmF9WDk5aiI0WD0xNkEid1cJCTxJfU5hfVg5OWoiSTYxPS00WD0xNkEid1cJCTx9MU5hfVg5OWoiYUk0NDA2PS00WD0xNkEiTjk9TH0waiJHMVI9bjpVJDRYPTE2QS8lOyJ3VSQ0WD0xNkEvPDh9MXdXCQk8fTF3PFhObjQwPmoiIyJOPTE9fTBqIlUkfVg2QW0nSTkwfTA5OSdKLyJOYX1YOTlqIjRELUk2MT0iTnE2YX0xYXBqIlJxVlg9MCgnRCcsTidVJDFSLycpO040MD1JNDZOPlh9OTA7IndEPDhYdzw4fTF3VwkJPH0xdzxYTm40MD5qIiMiTj0xPX0waiJVJH1YNkFtJ2xxcTQnSi8iTmF9WDk5aiI0NS1JNjE9Ik5xNmF9MWFwaiJScVZYPTAoJzUnLE4nVSQxUi8nKTtONDA9STQ2Tj5YfTkwOyJ3NTw4WHc8OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbSc+WDE0J0ovIk5hfVg5OWoiNE8tSTYxPSJOcTZhfTFhcGoiUnFWWD0wKCdPJyxOJ1UkMVIvJyk7TjQwPUk0Nk4+WH05MDsid088OFh3PDh9MXdXCQk8fTF3PFhObjQwPmoiIyJOPTE9fTBqIlUkfVg2QW0nQXFxUidKLyJOYX1YOTlqIjR6LUk2MT0iTnE2YX0xYXBqIlJxVlg9MCgneicsTidVJDFSLycpO040MD1JNDZOPlh9OTA7Ind6PDhYdzw4fTF3VwkJPH0xdzxYTm40MD5qIiMiTj0xPX0waiJVJH1YNkFtJzBkYTB9fTA2PSdKLyJOYX1YOTlqIjR2LUk2MT0iTnE2YX0xYXBqIlJxVlg9MCgndicsTidVJDFSLycpO040MD1JNDZOPlh9OTA7Ind2PDhYdzw4fTF3VwkJPDhJfXdXCTw4UjFCd1c8OFIxQndXeEhvUztXCVcJCTQwPUk0Nk4kNFg9MFI7V1cJL04wfTkwMT5OKCRhcTY+MUFtJzRYPTE2QV89TGwwJ0pOampOIkQiKU5VVwkJVwkJMT4oTiQ0WD0xNkFOPE5bTilOJDRYPTE2QU5qTls7VwkJVwkJMT4oTiRYfX1xR04pTiQ0WD0wUk5qTiI8OWxYNk5SWD1YLTRYPTFBLX1YTDA0LTFSalwiVSQxUi9cInc8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5XCJOd1UkNFg9MTZBLzw4OWxYNnc8ODlsWDZ3IjtXCQkwfTkwTiQ0WD0wUk5qTiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5XCJOd1UkNFg9MTZBLzw4OWxYNnciO1cJCVcJCTQwPUk0Nk4kNFg9MFI7VwlXCS9OMH05MDE+TigkYXE2PjFBbSc0WD0xNkFfPUxsMCdKTmpqTiI1Ik5GVk4kYXE2PjFBbSc0WD0xNkFfPUxsMCdKTmpqTiJPIilOVVcJCVcJCSQwZD00WGF9WDk5TmpOIjRYPTE2QWYwNHEiO1cJCVcJCTE+KE4kNFg9MTZBTjxOW04pTlVXCQkJJDBkPTRYYX1YOTlOak4iNFg9MTZBMjE2STkiO1cJCS9XCQlXCQkxPihOJDRYPTE2QU53TltOKU5VVwkJCSQwZD00WGF9WDk5TmpOIjRYPTE2QWx9STkiO1cJCQkkNFg9MTZBTmpOIisiICQ0WD0xNkE7VwkJL1cJCVcJCTE+KE4kWH19cUdOKU4kNFg9MFJOak4iPDlsWDZOUlg9WC00WD0xQS19WEwwNC0xUmpcIlUkMVIvXCJ3PDlsWDZOYX1YOTlqXCI0WD0xNkE9TGwwbH1JOTIxNkk5TlUkMGQ9NFhhfVg5OS9cIk53VSQ0WD0xNkEvPDg5bFg2dzw4OWxYNnciO1cJCTB9OTBOJDRYPTBSTmpOIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU5VJDBkPTRYYX1YOTkvXCJOd1UkNFg9MTZBLzw4OWxYNnciO1cJCVcJCTQwPUk0Nk4kNFg9MFI7VwkJVwkvVwlXL1dXPkk2YT0xcTZOc25xR1lxMjIwNj05Vlg9MTZBKCQxUixOJDRYPTE2QSxOJEJxPTBfNkkyLE4kWH19cUdOak49NEkwKU5VVwlBfXFrWH1OJH1YNkEsTiRhcTY+MUE7V1cJMT4oTiEkYXE2PjFBbSdhcTIyMDY9OV80WD0xNkFfPUxsMCdKTilOVVcJCVcJCTE+KE4kNFg9MTZBTjN7Z04kQnE9MF82STJOKU4kNFg9MTZBTmpONHFJNlIoTigkNFg9MTZBTjhOJEJxPTBfNkkyKSxOW04pO1cJCTB9OTBOJDRYPTE2QU5qTls7VwkJVwkJMT5OKCQ0WD0xNkFOPE5bTilOJDRYPTE2QU5qTls7V1cJCSQ0WD0xNkFOak4kNFg9MTZBTipONVs7VwlXCQkxPihOISRYfX1xR04pTlVXCQlXCQkJJDRYPTBSTmpOPDw8eEhvU1c8UjFCTmF9WDk5aiI0WD0xNkEid1cJCTxJfU5hfVg5OWoiSTYxPS00WD0xNkEid1cJCTx9MU5hfVg5OWoiYUk0NDA2PS00WD0xNkEiTjk9TH0waiJHMVI9bjpVJDRYPTE2QS8lOyJ3VSQ0WD0xNkEvPDh9MXdXCQk8OEl9d1c8OFIxQndXeEhvUztXCQlXCQkJNDA9STQ2TiQ0WD0wUjtXCQkvVwlXCQkkNFg9MFJOak48PDx4SG9TVzxSMUJOUlg9WC1hcTIyMDY9OS00WD0xQS19WEwwNC0xUmonVSQxUi8ndzxSMUJOYX1YOTlqIjRYPTE2QSJ3VwkJPEl9TmF9WDk5aiJJNjE9LTRYPTE2QSJ3VwkJPH0xTmF9WDk5aiJhSTQ0MDY9LTRYPTE2QSJOOT1MfTBqIkcxUj1uOlUkNFg9MTZBLyU7IndVJDRYPTE2QS88OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbSdJOTB9MDk5J0ovIk5hfVg5OWoiNEQtSTYxPSJOcTZhfTFhcGoiUnFZcTIyMDY9OVZYPTAoJ0QnLE4nVSQxUi8nKTtONDA9STQ2Tj5YfTkwOyJ3RDw4WHc8OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbSdscXE0J0ovIk5hfVg5OWoiNDUtSTYxPSJOcTZhfTFhcGoiUnFZcTIyMDY9OVZYPTAoJzUnLE4nVSQxUi8nKTtONDA9STQ2Tj5YfTkwOyJ3NTw4WHc8OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbSc+WDE0J0ovIk5hfVg5OWoiNE8tSTYxPSJOcTZhfTFhcGoiUnFZcTIyMDY9OVZYPTAoJ08nLE4nVSQxUi8nKTtONDA9STQ2Tj5YfTkwOyJ3Tzw4WHc8OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbSdBcXFSJ0ovIk5hfVg5OWoiNHotSTYxPSJOcTZhfTFhcGoiUnFZcTIyMDY9OVZYPTAoJ3onLE4nVSQxUi8nKTtONDA9STQ2Tj5YfTkwOyJ3ejw4WHc8OH0xd1cJCTx9MXc8WE5uNDA+aiIjIk49MT19MGoiVSR9WDZBbScwZGEwfX0wNj0nSi8iTmF9WDk5aiI0di1JNjE9Ik5xNmF9MWFwaiJScVlxMjIwNj05Vlg9MCgndicsTidVJDFSLycpO040MD1JNDZOPlh9OTA7Ind2PDhYdzw4fTF3VwkJPDhJfXdXPDhSMUJ3PDhSMUJ3V3hIb1M7VwlXCQk0MD1JNDZOJDRYPTBSO1dXCS9OMH05MDE+TigkYXE2PjFBbSdhcTIyMDY9OV80WD0xNkFfPUxsMCdKTmpqTiJEIilOVVcJCVcJCTE+KE4kNFg9MTZBTjxOW04pTiQ0WD0xNkFOak5bO1cJCVcJCTE+KE4kWH19cUdOKU4kNFg9MFJOak4iPDlsWDZOUlg9WC1hcTIyMDY9OS00WD0xQS19WEwwNC0xUmpcIlUkMVIvXCJ3PDlsWDZOYX1YOTlqXCI0WD0xNkE9TGwwbH1JOVwiTndVJDRYPTE2QS88ODlsWDZ3PDg5bFg2dyI7VwkJMH05ME4kNFg9MFJOak4iPDlsWDZOYX1YOTlqXCI0WD0xNkE9TGwwbH1JOVwiTndVJDRYPTE2QS88ODlsWDZ3IjtXCQlXCQk0MD1JNDZOJDRYPTBSO1cJVwkvTjB9OTAxPk4oJGFxNj4xQW0nYXEyMjA2PTlfNFg9MTZBXz1MbDAnSk5qak4iNSJORlZOJGFxNj4xQW0nYXEyMjA2PTlfNFg9MTZBXz1MbDAnSk5qak4iTyIpTlVXCQlXCQkkMGQ9NFhhfVg5OU5qTiI0WD0xNkFmMDRxIjtXCQlXCQkxPihOJDRYPTE2QU48TltOKU5VVwkJCSQwZD00WGF9WDk5TmpOIjRYPTE2QTIxNkk5IjtXCQkvVwkJVwkJMT4oTiQ0WD0xNkFOd05bTilOVVcJCQkkMGQ9NFhhfVg5OU5qTiI0WD0xNkFsfUk5IjtXCQkJJDRYPTE2QU5qTiIrIiAkNFg9MTZBO1cJCS9XCQlXCQkxPihOJFh9fXFHTilOJDRYPTBSTmpOIjw5bFg2TlJYPVgtYXEyMjA2PTktNFg9MUEtfVhMMDQtMVJqXCJVJDFSL1widzw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU5VJDBkPTRYYX1YOTkvXCJOd1UkNFg9MTZBLzw4OWxYNnc8ODlsWDZ3IjtXCQkwfTkwTiQ0WD0wUk5qTiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5MjE2STlOVSQwZD00WGF9WDk5L1wiTndVJDRYPTE2QS88ODlsWDZ3IjtXCQlXCQk0MD1JNDZOJDRYPTBSO1cJCVcJL1cJVy9XVz5JNmE9MXE2Tkk5MDQ0WD0xNkEoJDFSKU5VVwlBfXFrWH1OJFJrLE4kYXE2PjFBLE4kfVg2QSxOJEF9cWtYfV82MEc5X0k5MDRfNFg9MTZBOWFxNDA7V1cJJDFSTmpOMTY9Qlh9KCQxUik7VwkkQX1xa1h9XzYwRzlfSTkwNF80WD0xNkE5YXE0ME5qTls7VwkJVwkkNHFHTmpOJFJrLXc5SWwwNF95STA0TChOInNdU11ZSE5zVG8oNFg9MTZBKU5YOU40WD0xNkEsTnNUbyhCcT0wXzZJMilOWDlONkkyTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlOUXhdVl1OSTkwNF8xUk5qJ1UkMVIvJyJOKTtXVwkxPk4oJDRxR20nNkkyJ0opTiRBfXFrWH1fNjBHOV9JOTA0XzRYPTE2QTlhcTQwTmpOOT00XzQwbH1YYTAoJywnLE4nICcsTjRxSTZSKCgkNHFHbSc0WD0xNkEnSk44TiQ0cUdtJzZJMidKKSxORCkpO1dXCTE+KE4hJGFxNj4xQW0nNFg9MTZBXz1MbDAnSk4pTlUJVwlXCQkxPihOJDRxR20nNkkyJ0pOKU4kNFg9MTZBTmpONHFJNlIoTigkNHFHbSc0WD0xNkEnSk44TiQ0cUdtJzZJMidKKSxOW04pO1cJCTB9OTBOJDRYPTE2QU5qTls7V1cJCTE+TigkNFg9MTZBTjxOW04pTiQ0WD0xNkFOak5bO1cJCVcJCSQ0WD0xNkFOak4kNFg9MTZBTipONVs7VwlXCQkkNFg9MFJOak48PDx4SG9TVzxSMUJOYX1YOTlqIjRYPTE2QSJOOT1MfTBqIlIxOWx9WEw6MTZ9MTYwOyJ3VwkJPEl9TmF9WDk5aiJJNjE9LTRYPTE2QSJ3VwkJPH0xTmF9WDk5aiJhSTQ0MDY9LTRYPTE2QSJOOT1MfTBqIkcxUj1uOlUkNFg9MTZBLyU7IndVJDRYPTE2QS88OH0xd1cJCTw4SX13VwkJPDhSMUJ3V3hIb1M7VwlXCQk0MD1JNDZOJDRYPTBSO1cJVwkvTjB9OTAxPk4oJGFxNj4xQW0nNFg9MTZBXz1MbDAnSk5qak4iRCIpTlVXCQlXCQkxPihOJDRxR20nNkkyJ0pOKU4kNFg9MTZBTmpONkkyazA0Xz5xNDJYPSgkNHFHbSc0WD0xNkEnSixOWyxOJywnLE4nTicpO04wfTkwTiQ0WD0xNkFOak5bO1cJCVcJCTE+KE4kNHFHbSc2STInSk48TltOKU4kNFg9MTZBTmpOWztXCQlXCQk0MD1JNDZOIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STlcIk53VSQ0WD0xNkEvPDg5bFg2dyI7VwkJVwkvTjB9OTAxPk4oJGFxNj4xQW0nNFg9MTZBXz1MbDAnSk5qak4iNSJORlZOJGFxNj4xQW0nNFg9MTZBXz1MbDAnSk5qak4iTyJOKU5VV1cJCTE+KE4kNHFHbSc2STInSk4pTiQ0WD0xNkFOak42STJrMDRfPnE0Mlg9KCQ0cUdtJzRYPTE2QSdKLE5bLE4nLCcsTidOJyk7TjB9OTBOJDRYPTE2QU5qTls7V1cJCSQwZD00WGF9WDk5TmpOIjRYPTE2QWYwNHEiO1cJCVcJCTE+KE4kNHFHbSc0WD0xNkEnSk48TltOKU5VVwkJCSQwZD00WGF9WDk5TmpOIjRYPTE2QTIxNkk5IjtXCQkvVwkJVwkJMT4oTiQ0cUdtJzRYPTE2QSdKTndOW04pTlVXCQkJJDBkPTRYYX1YOTlOak4iNFg9MTZBbH1JOSI7VwkJCSQ0WD0xNkFOak4iKyIgJDRYPTE2QTtXCQkvVwkJVwkJMT4oJGFxNj4xQW0nNFg9MTZBXz1MbDAnSk5qak4iNSIpTlVXCQkJVwkJCTQwPUk0Nk4iPDlsWDZOYX1YOTlqXCI0WD0xNkE9TGwwbH1JOTIxNkk5TlUkMGQ9NFhhfVg5OS9cIk53VSQ0WD0xNkEvPDg5bFg2dyI7VwkJVwkJL04wfTkwTlVXCQkJJFIxOX0xcDA5TmpOKCQ0cUdtJzZJMidKTi1OJDRxR20nNFg9MTZBJ0opODU7VwkJCSR9MXAwOU5qTiQ0cUdtJzZJMidKTi1OJFIxOX0xcDA5O1cJCQlXCQkJNDA9STQ2Tjk9NF80MGx9WGEwKFg0NFhMKCdVfTFwMDkvJyxOJ1VSMTl9MXAwOS8nLE4nVTRYPTE2QS8nKSxOWDQ0WEwoIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU40WD0xNkFsfUk5XCJOd1UkfTFwMDkvPDg5bFg2dyIsTiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5MjE2STlONFg9MTZBMjE2STlcIk53VSRSMTl9MXAwOS88ODlsWDZ3IixOIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU5VJDBkPTRYYX1YOTkvXCJOd1UkNFg9MTZBLzw4OWxYNnciKSxOJH1YNkFtJ30xcDBfUjE5fTFwMF85STInSik7VwkJL1dXCQlXCS9XL1dXPkk2YT0xcTZOYXEyMjA2PTlJOTA0NFg9MTZBKCQxUilOVVcJQX1xa1h9TiRSayxOJGFxNj4xQSxOJH1YNkEsTiRBfXFrWH1fYXEyMjA2PTlfSTkwNF80WD0xNkE5YXE0MDtXVwkkMVJOak4xNj1CWH0oJDFSKTtXCSRBfXFrWH1fYXEyMjA2PTlfSTkwNF80WD0xNkE5YXE0ME5qTls7V1cJJDRxR05qTiRSay13OUlsMDRfeUkwNEwoTiJzXVNdWUhOc1RvKDRYPTE2QSlOWDlONFg9MTZBLE5zVG8oQnE9MF82STIpTlg5TjZJMk5aVkZvTiJOIE5lVl1aTQpOIE4iX2FxMjIwNj05TlF4XVZdTkk5MDRfMVJOaidVJDFSLyciTik7V1cJMT5OKCQ0cUdtJzZJMidKKU4kQX1xa1h9X2FxMjIwNj05X0k5MDRfNFg9MTZBOWFxNDBOak45PTRfNDBsfVhhMCgnLCcsTicgJyxONHFJNlIoKCQ0cUdtJzRYPTE2QSdKTjhOJDRxR20nNkkyJ0opLE5EKSk7V1cJMT4oTiEkYXE2PjFBbSdhcTIyMDY9OV80WD0xNkFfPUxsMCdKTilOVQlXCVcJCTE+KE4kNHFHbSc2STInSk4pTiQ0WD0xNkFOak40cUk2UihOKCQ0cUdtJzRYPTE2QSdKTjhOJDRxR20nNkkyJ0opLE5bTik7VwkJMH05ME4kNFg9MTZBTmpOWztXVwkJMT5OKCQ0WD0xNkFOPE5bTilOJDRYPTE2QU5qTls7VwkJVwkJJDRYPTE2QU5qTiQ0WD0xNkFOKk41WztXCVcJCSQ0WD0wUk5qTjw8PHhIb1NXPFIxQk5hfVg5OWoiNFg9MTZBIk45PUx9MGoiUjE5bH1YTDoxNn0xNjA7IndXCQk8SX1OYX1YOTlqIkk2MT0tNFg9MTZBIndXCQk8fTFOYX1YOTlqImFJNDQwNj0tNFg9MTZBIk45PUx9MGoiRzFSPW46VSQ0WD0xNkEvJTsid1UkNFg9MTZBLzw4fTF3VwkJPDhJfXdXCQk8OFIxQndXeEhvUztXCVcJCTQwPUk0Nk4kNFg9MFI7VwlXCS9OMH05MDE+TigkYXE2PjFBbSdhcTIyMDY9OV80WD0xNkFfPUxsMCdKTmpqTiJEIilOVVcJCVcJCTE+KE4kNHFHbSc2STInSk4pTiQ0WD0xNkFOak42STJrMDRfPnE0Mlg9KCQ0cUdtJzRYPTE2QSdKLE5bLE4nLCcsTidOJyk7TjB9OTBOJDRYPTE2QU5qTls7VwkJVwkJMT4oTiQ0WD0xNkFOPE5bTilOJDRYPTE2QU5qTls7VwkJVwkJNDA9STQ2TiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5XCJOd1UkNFg9MTZBLzw4OWxYNnciO1cJCVcJL04wfTkwMT5OKCRhcTY+MUFtJ2FxMjIwNj05XzRYPTE2QV89TGwwJ0pOampOIjUiTkZWTiRhcTY+MUFtJ2FxMjIwNj05XzRYPTE2QV89TGwwJ0pOampOIk8iKU5VVwkJVwkJMT4oTiQ0cUdtJzZJMidKTilOJDRYPTE2QU5qTjZJMmswNF8+cTQyWD0oJDRxR20nNFg9MTZBJ0osTlssTicsJyxOJ04nKTtOMH05ME4kNFg9MTZBTmpOWztXVwkJJDBkPTRYYX1YOTlOak4iNFg9MTZBZjA0cSI7VwkJVwkJMT4oTiQ0cUdtJzRYPTE2QSdKTjxOW04pTlVXCQkJJDBkPTRYYX1YOTlOak4iNFg9MTZBMjE2STkiO1cJCS9XCQlXCQkxPihOJDRxR20nNFg9MTZBJ0pOd05bTilOVVcJCQkkMGQ9NFhhfVg5OU5qTiI0WD0xNkFsfUk5IjtXCQkJJDRYPTE2QU5qTiIrIiAkNFg9MTZBO1cJCS9XCQlXCQkxPigkYXE2PjFBbSdhcTIyMDY9OV80WD0xNkFfPUxsMCdKTmpqTiI1IilOVVcJCQlXCQkJNDA9STQ2TiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5MjE2STlOVSQwZD00WGF9WDk5L1wiTndVJDRYPTE2QS88ODlsWDZ3IjtXCQlXCQkvTjB9OTBOVVcJCQlXCQkJJFIxOX0xcDA5TmpOKCQ0cUdtJzZJMidKTi1OJDRxR20nNFg9MTZBJ0opODU7VwkJCSR9MXAwOU5qTiQ0cUdtJzZJMidKTi1OJFIxOX0xcDA5O1cJCQlXCQkJNDA9STQ2Tjk9NF80MGx9WGEwKFg0NFhMKCdVfTFwMDkvJyxOJ1VSMTl9MXAwOS8nLE4nVTRYPTE2QS8nKSxOWDQ0WEwoIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU40WD0xNkFsfUk5XCJOd1UkfTFwMDkvPDg5bFg2dyIsTiI8OWxYNk5hfVg5OWpcIjRYPTE2QT1MbDBsfUk5MjE2STlONFg9MTZBMjE2STlcIk53VSRSMTl9MXAwOS88ODlsWDZ3IixOIjw5bFg2TmF9WDk5alwiNFg9MTZBPUxsMGx9STkyMTZJOU5VJDBkPTRYYX1YOTkvXCJOd1UkNFg9MTZBLzw4OWxYNnciKSxOJH1YNkFtJ30xcDBfUjE5fTFwMF85STInSik7VwkJL1cJCVcJL1cvV1c+STZhPTFxNk5ZWD0wQXE0THswRzlzMH0wYT0xcTYoJGFYPTBBcTRMMVJOak5bLE4kbFg0MDY9MVJOak5bLE4kNnFhWD1Oak5IVlRdLE4kOUlrfTBCMH0yWDRwMDROak4nJyxOJDQwPUk0Njk9NDE2QU5qTicnKU5VVwlBfXFrWH1OJGFYPV8xNj5xLE4kSTkwNF9BNHFJbCxOJDIwMmswNF8xUixOJFJ9MF8ycVJJfTA7V1cJMT5OKCRSfTBfMnFSSX0wTmpqTidYUlI2MEc5JylOVVcJCVcJCTE+KCQyMDJrMDRfMVJtJ2FYPV9YfX1xR19YUlI2MEc5J0opTiRYfX1xR199MTk9TmpOMGRsfXFSMChOJywnLE4kMjAyazA0XzFSbSdhWD1fWH19cUdfWFJSNjBHOSdKTik7VwkJMH05ME4kWH19cUdffTE5PU5qTjBkbH1xUjAoTicsJyxOJEk5MDRfQTRxSWxtJDIwMmswNF8xUm0nSTkwNF9BNHFJbCdKSm0nYVg9X1h9fXFHX1hSUjYwRzknSk4pO1cJCVcJL04wfTkwTiRYfX1xR199MTk9TmpOMGRsfXFSMChOJywnLE4kSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSdYfX1xR19hWD05J0pOKTtXVwkkNnE9X1h9fXFHX30xOT1Oak4wZGx9cVIwKE4nLCcsTiRJOTA0X0E0cUlsbSQyMDJrMDRfMVJtJ0k5MDRfQTRxSWwnSkptJzZxPV9YfX1xR19hWD05J0pOKTtXVwkxPk4oJFJ9MF8ycVJJfTBOampOJzkwWDRhbicpTlVXCQkxPihOYXFJNj0oTiRhWD1fMTY+cU4pTilVVwkJCT5xNDBYYW5OKCRhWD1fMTY+cU5YOU4kYVg9OSlOVVcJCQkJMT4oJGFYPTltJ1IxOVhrfTBfOTBYNGFuJ0opTiQ2cT1fWH19cUdffTE5PW1KTmpOJGFYPTltJzFSJ0o7VwkJCS9XCQkvVwkvVwlXCTE+TigxOTkwPSgkMjAyazA0XzFSbSdhWD1fWFJSJ0opTjN7Z04kMjAyazA0XzFSbSdhWD1fWFJSJ0opTiQ5bDBhX30xOT1Oak4wZGx9cVIwKE4nLCcsTiQyMDJrMDRfMVJtJ2FYPV9YUlInSk4pO1cJMH05ME4kOWwwYV99MTk9TmpOMGRsfXFSMChOJywnLE4kSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSdhWD1fWFJSJ0pOKTtXVwkkNHFxPV9hWD0wQXE0TE5qTlg0NFhMTigpO1cJVwkxPihOJGxYNDA2PTFSTmpqTltOKU5VVwkJMT4oTiQ2cWFYPU4ze2dOJFh9fXFHX30xOT1tW0pOampOIlh9fSIpTiQ0MD1JNDY5PTQxNkFOIGpOJzxxbD0xcTZOQlh9STBqIlsidzw4cWw9MXE2dyc7VwkvTjB9OTBOVVcJCSQ5SWt9MEIwfTJYNHAwNE4gak4nJjZrOWw7JjZrOWw7JjZrOWw7JztXCS9XCVcJMT4oTmFxSTY9KE4kYVg9XzE2PnFOKU4pTlVXCQlXCQk+cTQwWGFuTihOJGFYPV8xNj5xTlg5TiRhWD05TilOVVcJCQkxPihOJGFYPTltJ2xYNDA2PTFSJ0pOampOJGxYNDA2PTFSTilOJDRxcT1fYVg9MEFxNExtSk5qTiRhWD05bScxUidKO1cJCS9XCQlXCQkxPihOYXFJNj0oTiQ0cXE9X2FYPTBBcTRMTilOKU5VVwkJCT5xNDBYYW5OKE4kNHFxPV9hWD0wQXE0TE5YOU4kMVJOKU5VVwkJCQlXCQkJCTE+KE4kWH19cUdffTE5PW1bSk5qak4iWH19Ik5GVk4xNl9YNDRYTChOJDFSLE4kWH19cUdffTE5PU4pTilOVVcJCQkJCVcJCQkJCTE+KE4xNl9YNDRYTChOJDFSLE4kNnE9X1h9fXFHX30xOT1OKU4pTmFxNj0xNkkwO1cJCQkJCVcJCQkJCTE+KE4kOWwwYV99MTk9bVtKTmpqTiJYfX0iTnE0TjE2X1g0NFhMKE4kMVIsTiQ5bDBhX30xOT1OKU4pTiRhcX1xNE5qTiIiO1cJCQkJCTB9OTBOJGFxfXE0TmpOIjk9TH0walwiYXF9cTQ6TjQwUlwiTiI7VwkJCQkJVwkJCQkJJDQwPUk0Njk9NDE2QU4gak4iPHFsPTFxNk5VJGFxfXE0L0JYfUkwalwiIk4gTiQxUk4gTiciTic7VwkJCQkJVwkJCQkJMT4oTjE5X1g0NFhMKE4kYVg9MEFxNEwxUk4pTilOVVcJCQkJCQk+cTQwWGFuTihOJGFYPTBBcTRMMVJOWDlOJDB9MDIwNj1OKU5VVwkJCQkJCQlXCQkJCQkJCSQwfTAyMDY9TmpOMTY9Qlh9KCQwfTAyMDY9KTtXCQkJCQkJCVcJCQkJCQkJMT4oTiQwfTAyMDY9TmpqTiQxUk4pTiQ0MD1JNDY5PTQxNkFOIGpOJzkwfTBhPTBSJztXCQkJCQkJCVcJCQkJCQkvVwkJCQkJL04wfTkwMT4oTjE2PUJYfSgkYVg9MEFxNEwxUilOampOJDFSTilOJDQwPUk0Njk9NDE2QU4gak4nOTB9MGE9MFInO1cJCQkJCVcJCQkJCSQ0MD1JNDY5PTQxNkFOIGpOJ3cnTiBOJDlJa30wQjB9Mlg0cDA0TiBOJGFYPV8xNj5xbSQxUkptJzZYMjAnSk4gTic8OHFsPTFxNncnO1cJCQkJL1cJCQkJVwkJCQkkNDA9STQ2OT00MTZBTmpOWVg9MEFxNEx7MEc5czB9MGE9MXE2KE4kYVg9MEFxNEwxUixOJDFSLE4kNnFhWD0sTiQ5SWt9MEIwfTJYNHAwNCxOJDQwPUk0Njk9NDE2QU4pO1cJCQkvVwkJL1cJL1cJNDA9STQ2TiQ0MD1JNDY5PTQxNkE7Vy9XVz5JNmE9MXE2TkEwPV9NZygkYVg9XzE2PnEsTiRhWD0wQXE0TClOVVcJPnE0MFhhbk4oTiRhWD1fMTY+cU5YOU4kYVg9OU4pTlVXCQkxPihOJGFYPTltJ1h9PV82WDIwJ0pOampOJGFYPTBBcTRMTilONDA9STQ2TiRhWD05bScxUidKO1cJL1cJNDA9STQ2Tj5YfTkwO1cvV1c+STZhPTFxNk45MD1fQlg0OSgkPjF9MCxOJFJYPVgpTlVXCVcJJD4xfTBOak49cT00WDY5fTE9KCQ+MX0wLE49NEkwLE4+WH05MCk7VwlXCTE+TihOMTlfWDQ0WEwoJFJYPVgpTkZWTjE5XzE2PSgkUlg9WClORlZOMTlfOT00MTZBKCRSWD1YKU4pTlVXCQlXCQk+MX0wX2xJPV9hcTY9MDY9OU4oXXt0TXtdX2dNVk4gTic4YVhhbjA4OUw5PTAyOCdOIE4kPjF9ME4gTicgbG5sJyxOQzlxNl8wNmFxUjAoTiRSWD1YLE4uc0Z7X1R7XXNZM2VdZ19Ue01ZRmddTnxOLnNGe19Ue11zWTNlXWdfc1Mzc3hdc04pLE5TRllFX10KKTtXCQlAYW4ycVIoTl17dE17XV9nTVZOIE4nOGFYYW4wODlMOT0wMjgnTiBOJD4xfTBOIE4nIGxubCcsTltjY2NOKTtXCQlXCS9XL1dXPkk2YT0xcTZOQTA9X0JYNDkoJD4xfTApTlVXCSQ+MX0wTmpOPXE9NFg2OX0xPSgkPjF9MCxOPTRJMCxOPlh9OTApO1dXCSRSWD1YTmpOQD4xfTBfQTA9X2FxNj0wNj05KE5de3RNe11fZ01WTiBOJzhhWGFuMDg5TDk9MDI4J04gTiQ+MX0wTiBOJyBsbmwnTik7V1cJMT5OKE4kUlg9WE4hampOPlh9OTBOKU5VV1cJCSRSWD1YTmpOQzlxNl9SMGFxUjAoTiRSWD1YLE49NEkwTik7VwkJMT5OKE4xOV9YNDRYTCgkUlg9WClORlZOMTlfMTY9KCRSWD1YKU5GVk4xOV85PTQxNkEoJFJYPVgpTilONDA9STQ2TiRSWD1YO1dXCS9OV1cJNDA9STQ2Tj5YfTkwOwlXL1dXPkk2YT0xcTZOQTA9X2FxSTY9Xz40cTJfYVhhbjAoTiRuWDluTilOVVcJVwkkblg5bk5qTjJSdigkblg5bik7V1cJJFh9fV9hcUk2PTlOak5SfTBfYVhhbjAoIjYwRzlfYVhhbjBfYXFJNj0iKTtXCVcJMT4oTiRYfX1fYXFJNj05TilOVVcJCVcJCSRYfX1fYXFJNj05TmpOQzlxNl9SMGFxUjAoJFh9fV9hcUk2PTksTj00STApO1cJCVcJCTE+KE4xOTkwPShOJFh9fV9hcUk2PTltJG5YOW5KTilOKU5VVwkJCTQwPUk0Nk4xNj1CWH0oJFh9fV9hcUk2PTltJG5YOW5KKTtXCQkvVwkJVwkvVwlXCTQwPUk0Nk5bO1dXL1dXPkk2YT0xcTZOOTA9X2FxSTY9Xz1xX2FYYW4wKE4kblg5bixOJGFxSTY9TilOVVcJVwlBfXFrWH1OJGFxNj4xQTtXCVcJMT4oTiEkYXE2PjFBbSdYfX1xR19hWGFuMCdKTilONDA9STQ2Tj5YfTkwO1cJVwkkblg5bk5qTjJSdigkblg5bik7VwlXCSRYfX1fYXFJNj05TmpOUn0wX2FYYW4wKCI2MEc5X2FYYW4wX2FxSTY9Iik7VwlXCTE+KE4kWH19X2FxSTY9OU4pTlVXCQlXCQkkWH19X2FxSTY9OU5qTkM5cTZfUjBhcVIwKCRYfX1fYXFJNj05LE49NEkwKTtXCQlXCS9XCVcJMT4oTiExOV9YNDRYTCgkWH19X2FxSTY9OSlOKU4kWH19X2FxSTY9OU5qTlg0NFhMKCk7VwlXCSRYfX1fYXFJNj05bSRuWDluSk5qTjE2PUJYfSgkYXFJNj0pO1cJVwlhNDBYPTBfYVhhbjBOKE4iNjBHOV9hWGFuMF9hcUk2PSIsTkM5cTZfMDZhcVIwKE4kWH19X2FxSTY9OU4sTi5zRntfVHtdc1kzZV1nX1R7TVlGZ11OfE4uc0Z7X1R7XXNZM2VdZ19zUzNzeF1zTilOKTtXCVcJNDA9STQ2Tj00STA7VwlXL1dXPkk2YT0xcTZOUn0wX2FYYW4wKCRsNDA+MWQsTiRhWGFuMF8xUk5qTj5YfTkwLE4kMjAyazA0X2w0MD4xZE5qTj5YfTkwLE4kYUk5PXEyWVhhbjBnWD0wTmpOPlh9OTApTlVXCUF9cWtYfU4kYXE2PjFBLE4kMTlffXFBQTBSLE4kMjAyazA0XzFSLE4kUn0wPlg5PWFYYW4wLE4kX0hNb107V1cJMT4oTiEkYXE2PjFBbSdYfX1xR19hWGFuMCdKTilONDA9STQ2Tj5YfTkwO1dXCSRhcTY+MUFtJ2F9MFg0X2FYYW4wJ0pOak4oMTY9Qlh9KCRhcTY+MUFtJ2F9MFg0X2FYYW4wJ0opTndORClOP04xNj1CWH0oJGFxNj4xQW0nYX0wWDRfYVhhbjAnSilOOk5bO1dXCTE+KE4kMTlffXFBQTBSTilOJDA2Ul8+MX0wTmpOJDIwMmswNF8xUm0nSTkwNF9BNHFJbCdKO1cJMH05ME4kMDZSXz4xfTBOak4iWyI7VwlXCTE+KE4hTiRhWGFuMF8xUk4pTlVXCQlXCQkkcDBMTmpOJGw0MD4xZDtXCVcJL04wfTkwTlVXCQlXCQkkYVhhbjBfMVJOak4yUnYoTiRhWGFuMF8xUk4pO1cJCVcJCTE+KE4kMjAyazA0X2w0MD4xZE4pTiRwMExOak4kbDQwPjFkTiBOIl8iTiBOJGFYYW4wXzFSTiBOIl8iTiBOJDA2Ul8+MX0wO1cJCTB9OTBOJHAwTE5qTiRsNDA+MWROIE4iXyJOIE4kYVhhbjBfMVI7VwlXCS9XCVcJMT4oTiRhcTY+MUFtJ2FYYW4wXz1MbDAnSk4pTlVXCQkxPihOJFJ9MD5YOT1hWGFuMC13YXE2NjBhPTFxNk53TltOKU5VVwkJCTQwPUk0Nk4kUn0wPlg5PWFYYW4wLXdBMD0oJHAwTCk7VwkJL1cJL1dXCTE+KD4xfTBfMGQxOT05KE5de3RNe11fZ01WTiBOIjhhWGFuMDgiTiBOJHAwTE4gTicgPTJsJ04pKU5VV1cJCTE+KE4kYXE2PjFBbSdhfTBYNF9hWGFuMCdKTkZWTiRhSTk9cTJZWGFuMGdYPTApTlVXVwkJCSQ+MX0wX1JYPTBOak5APjF9MDI9MTIwKE5de3RNe11fZ01WTiBOIjhhWGFuMDgiTiBOJHAwTE4gTicgPTJsJ04pO1dXCQkJMT4oJGFJOT1xMllYYW4wZ1g9MClOVVdXCQkJCSRYMnFJNj1Oak4xNj1CWH0oJGFJOT1xMllYYW4wZ1g9MCk7VwkJCQkkPTEyMFQ2MT1Oak45SWs5PTQoJGFJOT1xMllYYW4wZ1g9MCxOLUQpO1dXCQkJCTE+KE4kWDJxSTY9TjN7Z04xNl9YNDRYTCgkPTEyMFQ2MT0sTlg0NFhMKCdSJyxOJ24nLE4nMicpTilOKU5VV1cJCQkJCTE+TigkPTEyMFQ2MT1OampqTiJSIilOVVcJCQkJCQkkPjF9MF9SWD0wTitqTiRYMnFJNj1OKk41ek4qTmNbTipOY1s7VwkJCQkJL04wfTkwMT5OKCQ9MTIwVDYxPU5qampOIm4iKU5VVwkJCQkJCSQ+MX0wX1JYPTBOK2pOJFgycUk2PU4qTmNbTipOY1s7VwkJCQkJL04wfTkwMT5OKCQ9MTIwVDYxPU5qampOIjIiKU5VVwkJCQkJCSQ+MX0wX1JYPTBOK2pOJFgycUk2PU4qTmNbO1cJCQkJCS9XVwkJCQkJMT4oTiRfSE1vXU53TiQ+MX0wX1JYPTApTlVXVwkJCQkJCUBJNn0xNnAoXXt0TXtdX2dNVk4gTiI4YVhhbjA4Ik4gTiRwMExOIE4iID0ybCIpO1cJCQkJCQk0MD1JNDZOPlh9OTA7V1cJCQkJCS9XVwkJCQkvV1cJCQkvTjB9OTAxPk4oTihOJF9ITW9dTi1OJD4xfTBfUlg9ME4pTndOKCRhcTY+MUFtJ2F9MFg0X2FYYW4wJ0pOKk5jWylOKU5VV1cJCQkJQEk2fTE2cChde3RNe11fZ01WTiBOIjhhWGFuMDgiTiBOJHAwTE4gTiIgPTJsIik7VwkJCQk0MD1JNDZOPlh9OTA7V1cJCQkvV1cJCS9XVwkJNDA9STQ2Tj4xfTBfQTA9X2FxNj0wNj05KF17dE17XV9nTVZOIE4iOGFYYW4wOCJOIE4kcDBMTiBOIiA9MmwiKTtXVwkvV1cJNDA9STQ2Tj5YfTkwO1dXL1dXPkk2YT0xcTZOYTQwWD0wX2FYYW4wKCRsNDA+MWQsTiRhWGFuMF89MGQ9LE4kYVhhbjBfMVJOak4+WH05MCxOJDIwMmswNF9sNDA+MWROak4+WH05MCxOJDJYZDNBME5qTj5YfTkwKU5VVwlBfXFrWH1OJGFxNj4xQSxOJDE5X31xQUEwUixOJDIwMmswNF8xUixOJFJ9MD5YOT1hWGFuMDtXCVcJMT4oTiEkYXE2PjFBbSdYfX1xR19hWGFuMCdKTilONDA9STQ2Tj5YfTkwO1cJVwkxPihOJDE5X31xQUEwUk4pTiQwNlJfPjF9ME5qTiQyMDJrMDRfMVJtJ0k5MDRfQTRxSWwnSjtXCTB9OTBOJDA2Ul8+MX0wTmpOIlsiO1cJVwkxPihOIU4kYVhhbjBfMVJOKU5VVwkJVwkJJHAwTE5qTiRsNDA+MWQ7VwkJVwkvTjB9OTBOVVcJCVcJCSRhWGFuMF8xUk5qTjJSdihOJGFYYW4wXzFSTik7VwkJVwkJMT4oTiQyMDJrMDRfbDQwPjFkTilOJHAwTE5qTiRsNDA+MWROIE4iXyJOIE4kYVhhbjBfMVJOIE4iXyJOIE4kMDZSXz4xfTA7VwkJMH05ME4kcDBMTmpOJGw0MD4xZE4gTiJfIk4gTiRhWGFuMF8xUjtXCVcJL1cJVwkxPigkYVhhbjBfPTBkPU5qampOPlh9OTApTiRhWGFuMF89MGQ9TmpOJyc7V1cJMT4oTiRhcTY+MUFtJ2FYYW4wXz1MbDAnSk4pTlVXVwkJMT4oTiRSfTA+WDk9YVhhbjAtd2FxNjYwYT0xcTZOd05bTilOVVdXCQkJMT5OKE4kMlhkM0EwTilOVVdXCQkJCSRYMnFJNj1Oak4xNj1CWH0oJDJYZDNBMCk7VwkJCQkkPTEyMFQ2MT1Oak45SWs5PTQoJDJYZDNBMCxOLUQpO1dXCQkJCTE+TigkWDJxSTY9Tlg2Uk4xNl9YNDRYTCgkPTEyMFQ2MT0sTlg0NFhMKCdSJyxOJ24nLE4nMicpKSlOVVdXCQkJCQkxPk4oJD0xMjBUNjE9Tmpqak4iUiIpTlVXCQkJCQkJJDJYZDNBME5qTiRYMnFJNj1OKk41ek4qTmNbTipOY1s7Tjg4TtC00L7QsdCw0LLQu9GP0LXQvE7QtNC90LhXCQkJCQkvTjB9OTAxPk4oJD0xMjBUNjE9Tmpqak4ibiIpTlVXCQkJCQkJJDJYZDNBME5qTiRYMnFJNj1OKk5jW04qTmNbO044OE7QtNC+0LHQsNCy0LvRj9C10LxO0YfQsNGB0YtXCQkJCQkvTjB9OTAxPk4oJD0xMjBUNjE9Tmpqak4iMiIpTlVXCQkJCQkJJDJYZDNBME5qTiRYMnFJNj1OKk5jWztOODhO0LTQvtCx0LDQstC70Y/QtdC8TtC80LjQvdGD0YLRi1cJCQkJCS9XVwkJCQkvTjB9OTBOJDJYZDNBME5qTj5YfTkwO1dXCQkJL1dXCQkJMT5OKE4kMlhkM0EwTilOJFJ9MD5YOT1hWGFuMC13OTA9KCRwMEwsTiRhWGFuMF89MGQ9LE4kMlhkM0EwKTtXCQkJMH05ME4kUn0wPlg5PWFYYW4wLXc5MD0oJHAwTCxOJGFYYW4wXz0wZD0pO1cJCQlXCQkJNDA9STQ2Tj00STA7VwkJL1cJL1dXCT4xfTBfbEk9X2FxNj0wNj05Tihde3RNe11fZ01WTiBOIjhhWGFuMDgiTiBOJHAwTE4gTiIgPTJsIixOJGFYYW4wXz0wZD0sTlNGWUVfXQopO1cJQGFuMnFSKE5de3RNe11fZ01WTiBOIjhhWGFuMDgiTiBOJHAwTE4gTiIgPTJsIixOW2NjY04pO1cJVwk0MD1JNDZOPTRJMDtXCVcvV1c+STZhPTFxNk5hfTBYNF9hWGFuMCgkYVhhbjBfWDQwWDlOak4+WH05MClOVVcJQX1xa1h9TiRSfTA+WDk9YVhhbjAsTiRhcTY+MUE7V1cJMT4oTiRhcTY+MUFtJ2FYYW4wXz1MbDAnSk4pTlVXCQkxPihOJFJ9MD5YOT1hWGFuMC13YXE2NjBhPTFxNk53TltOKU5VVwkJCSRSfTA+WDk9YVhhbjAtd2F9MFg0KE4kYVhhbjBfWDQwWDlOKTtXCQkJNDA9STQ2Tj00STA7VwkJL1cJL1dXCTE+TihOJGFYYW4wX1g0MFg5TilOVVcJCTE+KCExOV9YNDRYTCgkYVhhbjBfWDQwWDkpKU5VVwkJCSRhWGFuMF9YNDBYOU5qTlg0NFhMKCRhWGFuMF9YNDBYOSk7VwkJL1cJL1cJCVcJJD5SMTROak5xbDA2UjE0KE5de3RNe11fZ01WTiBOJzhhWGFuMCdOKTtXCQlXCUduMX0wTihOJD4xfTBOak40MFhSUjE0KE4kPlIxNE4pTilOVVcJCTE+KE4kPjF9ME4hak4nIG49WGFhMDk5J04ze2dOITE5X1IxNChde3RNe11fZ01WTiBOJzhhWGFuMDgnTiBOJD4xfTApTilOVVcJCQlXCQkJMT4oTiRhWGFuMF9YNDBYOU4pTlVXCQkJCVcJCQkJPnE0MFhhbigkYVhhbjBfWDQwWDlOWDlOJGFYYW4wX1g0MFgpTjE+KE45PTQxbHE5KE4kPjF9MCxOJGFYYW4wX1g0MFhOKU5qampOW04pTkBJNn0xNnAoTl17dE17XV9nTVZOIE4nOGFYYW4wOCdOIE4kPjF9ME4pO1cJCQlXCQkJL04wfTkwTlVXCQkJCVcJCQkJQEk2fTE2cChOXXt0TXtdX2dNVk4gTic4YVhhbjA4J04gTiQ+MX0wTik7VwkJCVcJCQkvVwkJL1cJL1cJVwk0MD1JNDZOPTRJMDtXVy9XVz5JNmE9MXE2TlluWDZBMHNwMTYoTiQ5cDE2TilOVVcJVwkkPTAybH1YPTA5X30xOT1Oak5BMD1fPnF9UjA0X30xOT0oTic9MDJsfVg9MDknTik7VwlJNjkwPSgkPTAybH1YPTA5X30xOT1tJzkyWDQ9bG5xNjAnSik7VwlXCSQ5cDE2X30xOT1Oak4iPD5xNDJOMjA9bnFSalwibHE5PVwidzw5MH0wYT1OcTZhblg2QTBqXCI5SWsyMT0oKVwiTjZYMjBqXCI5cDE2XzZYMjBcInciO1cJVwk+cTQwWGFuTihOJD0wMmx9WD0wOV99MTk9Tlg5TiRwMExOandOJEJYfUkwTilOVVcJCVcJCTE+KE4kcDBMTmpqTiQ5cDE2TilOJDkwfTBhPTBSTmpOIk45MH0wYT0wUmpcIjkwfTBhPTBSXCIiO1cJCTB9OTBOJDkwfTBhPTBSTmpOIiI7VwkJVwkJJDlwMTZffTE5PU4gak4iPHFsPTFxNk5CWH1JMGpcIlUkcDBML1wiIk4gTiQ5MH0wYT0wUk4gTiJ3VSRCWH1JMG0nNlgyMCdKLzw4cWw9MXE2dyI7VwkvVwlXCSQ5cDE2X30xOT1OIGpOJzw4OTB9MGE9dzwxNmxJPU49TGwwaiJuMVJSMDYiTjZYMjBqIlhhPTFxNl85cDE2X2FuWDZBMCJOQlh9STBqIkwwOSJ3PDg+cTQydyc7VwlXCTQwPUk0Nk4kOXAxNl99MTk9O1cvV1c+STZhPTFxNk5BMD1fPnF9UjA0X30xOT0oTiQ+cX1SMDROak4nfVg2QUlYQTAnTilOVVcJQX1xa1h9TiR9WDZBO1cJJFh9fXFHMFJfPnF9UjA0TmpOWDQ0WEwoTid9WDZBSVhBMCcsTic9MDJsfVg9MDknTik7VwlXCSR9MTk9TmpOWDQ0WExOKCk7VwlXCTE+KE4hMTZfWDQ0WEwoJD5xfVIwNCxOJFh9fXFHMFJfPnF9UjA0KU4pTlVXCQk0MD1JNDZOJH0xOT07VwkvVwlXCTE+KE4hJG5YNlJ9ME5qTnFsMDZSMTQoTlZGRkhfZ01WTiBOIjgiIE4kPnF9UjA0TilOKU5VVwkJJH0xOT1tSm0nNlgyMCdKTmpOJH1YNkFtJ3FsPV8wNDQ+cSdKICJOIiAkPnF9UjA0O1cJCTQwPUk0Nk4kfTE5PTtXCS9XCVcJR24xfTBOKE4+WH05ME4hampOKCQ+MX0wTmpONDBYUlIxNChOJG5YNlJ9ME4pKU4pTlVXCQlXCQkxPihOMTlfUjE0KE5WRkZIX2dNVk4gTiI4IiAkPnF9UjA0ICI4IiAkPjF9ME4pTjN7Z04oJD4xfTBOIWpOIiAiTlg2Uk4kPjF9ME4hak4iICAiKU4pTlVXCQkJVwkJCTE+KE4xOV8+MX0wKE5WRkZIX2dNVk4gTiI4IiAkPnF9UjA0ICI4IiAkPjF9MCAiODE2PnEgQzlxNiJOKU4pTlVXCQkJCVcJCQkJJFJYPVhOak5DOXE2X1IwYXFSMChOPTQxMig+MX0wX0EwPV9hcTY9MDY9OShOVkZGSF9nTVZOIE4iOCIgJD5xfVIwNCAiOCIgJD4xfTAgIjgxNj5xIEM5cTYiTilOKSxOPTRJME4pO1cJCQkJVwkJCQkxPihOMTk5MD0oJFJYPVhtJzZYMjAnSilOM3tnTiRSWD1YbSc2WDIwJ0pOKU5VVwkJCQkJJH0xOT1tJD4xfTBKTmpOJFJYPVg7VwkJCQkJYXE2PTE2STA7VwkJCQkvVwkJCS9XCQkJVwkJCSR9MTk9bSQ+MX0wSm0nNlgyMCdKTmpOJD4xfTA7VwkJL1cJCVcJL1dXCWF9cTkwUjE0KE4kblg2Un0wTik7VwlwOXE0PSgkfTE5PSk7V1cJNDA9STQ2TiR9MTk9O1dXCVcvV1c+STZhPTFxNk5BMD1fMlg5OV9hWD05KCQxUilOVVcJQX1xa1h9TiRhWD1fMTY+cTtXVwkkMVJOak4wZGx9cVIwTignLScsTiQxUik7VwkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJPnE0MFhhbk4oTiRhWD1fMTY+cU5YOU4kYVg9OU4pTlVXVwkJMT5OKCRhWD05bScxUidKTndqTiQxUm1bSk4ze2dOJGFYPTltJzFSJ0pOPGpOJDFSbURKTilOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkYVg9OW0nMVInSik7V1cJL1dXCTE+TihOYXFJNj0oJD0wMmxfWDQ0WEwpTilOVU45cTQ9KCQ9MDJsX1g0NFhMKTtONDA9STQ2TjEybH1xUjAoJywnLE4kPTAybF9YNDRYTCk7Ti9XCTB9OTBONDA9STQ2Tls7V1cvV1c+STZhPTFxNk5hSTk9cTJfYXEyMjA2PTkoTiQyWD1hbjA5alg0NFhMKClOKU5VVwlBfXFrWH1OJFJrLE4kMTlffXFBQTBSLE4kMjAyazA0XzFSLE4kYVg9XzE2PnEsTiRhcTY+MUEsTiRJOTA0X0E0cUlsLE4kYVg9MEFxNExfMVIsTiRfSE1vXSxOJH1YNkEsTiQ5Mlg0PWxucTYwX1IwPTBhPTBSLE4kUn0wXzJxUkl9MCxOJFh9fXFHX2FxMjIwNj05X1hDWGQsTiRleGVfc11TWixOJFJ9MF99cUExNl9uWDluLE4kNDBsfVhhMF99MTZwOTtXVwkxPk4oTiFhcUk2PSgkMlg9YW4wOSlOKU40MD1JNDZOIiI7VwlXCSQ9MDJsX2FYPTBBcTRMXzFSTmpOJGFYPTBBcTRMXzFSO1cJJGxYNFgyXzk9NE5qTj00MTIoJDJYPWFuMDltREopO1cJJGFJOT1xMl9hWGFuMF8xUk5qTiJhSTk9cTJhcTIyMDY9OSIgJGxYNFgyXzk9NCAkYXE2PjFBbSc5cDE2J0o7V1cJJFhCMVhrfTBOak5YNDRYTCgiQX1xa1h9Iik7VwkkYXEyMl85cTQ9TmpOIjFSIjtXCSRhcTIyXzI5cTQ9TmpOImddc1kiO1cJJEduMDQwTmpOWDQ0WEwoKTtXCSQ9bjE5Ulg9ME5qTlJYPTAoTiJiLTItUk54OjE6OSIsTiRfSE1vXU4pO1cJJDl5fV85MH0wYT1Oak4ic11TXVlITmEyIDFSLE5hMiBscTk9XzFSLE5hMiBJOTA0XzFSLE5hMiBSWD0wLE5hMiBYST1xNE5YOU5BWDk9XzZYMjAsTmEyIDAyWDF9Tlg5TkFYOT1fMDJYMX0sTj0wZD0sTjFsLE4xOV80MEExOT0wNCxOYTIgNFg9MTZBLE5hMiBCcT0wXzZJMixONlgyMCxOSSAwMlgxfSxONjBHOV82STIsTkkgYXEyMl82STIsTkk5MDRfQTRxSWwsTn1YOT1SWD0wLE40MEFfUlg9MCxOOTFBNlg9STQwLE4+cT1xLE4+SX19NlgyMCxOfVg2UixOSSBkPjEwfVI5LE5sID0xPX0wLE5sIFJYPTBOWDlONjBHOVJYPTAsTmwgWH09XzZYMjAsTmwgYVg9MEFxNEwsTmwgWH19cUdfYXEyMk5aVkZvTiJOIE5lVl1aTQpOIE4iX2FxMjIwNj05TmEyTlNdWkhOLkZNe04iTiBOZVZdWk0KTiBOIl9scTk9TmxORntOYTIgbHE5PV8xUmpsIDFSTlVhWD1fQ3ExNi9TXVpITi5GTXtOIk4gTlRzXVZlVl1aTQpOIE4iX0k5MDQ5TklORntOYTIgSTkwNF8xUmpJIEk5MDRfMVJOIjtXVwkkWH19cUdfYVhhbjBOak4kYXE2PjFBbSdYfX1xR19hWGFuMCdKO1cJJGFYPTlfOTB9MGE9TmpOPlh9OTA7VwkkMVI5Xz5xNF85cTQ9TmpOPlh9OTA7VwlXCTE+KE5sNDBBXzJYPWFuKE4iI1hCWDF9WGt9MGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCSRYQjFYa30wTmpOMGRsfXFSMChOJ3wnLE4kMlg9YW5tREpOKTtXCS9XVwkkUnFOak4kUn0wXzJxUkl9ME4/TiRSfTBfMnFSSX0wTjpOIjJYMTYiO1dXCTE+KE4hMTZfWDQ0WEwoTiRScSxOJFhCMVhrfTBOKU4ze2dOKCRYQjFYa30wbVtKTiFqTiJBfXFrWH0iKU4pTjQwPUk0Nk4iIjtXVwkxPihObDQwQV8yWD1hbihOIiM2MEc5MVJqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXVwkJJGxYNFgyXzk9NE5qTjk9NF80MGx9WGEwKCQyWD1hbm1bSixOJycsTiRsWDRYMl85PTQpO1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkkR24wNDBfMVJOak5YNDRYTCgpO1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOVVcJCQkJJEJYfUkwTmpOMGRsfXFSMCgnLScsTiRCWH1JMCk7VwkJCQkkR24wNDBfMVJtSk5qTiJsIDFSTndqTiciTiBOMTY9Qlh9KCRCWH1JMG1bSilOIE4iJ04ze2dObCAxUk48ak4nIiAxNj1CWH0oJEJYfUkwbURKKSAiJyI7V1cJCQkvTjB9OTBOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkQlh9STApO1dXCQkvV1cJCTE+TihOYXFJNj0oJD0wMmxfWDQ0WEwpTilOVVdXCQkJJEduMDQwXzFSbUpOak4ibCAxUk5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCQkkMVI5Xz5xNF85cTQ9TmpOIlpNe2dfTXtfc11IKGwgMVIsTiciIDEybH1xUjAoIiwiLE4kPTAybF9YNDRYTCkgIicpTiI7VwkJL1dXCQkxPk4oTmFxSTY9KCRHbjA0MF8xUilOKU5VTlcJCQkkYUk5PXEyXzFSTmpOMTJsfXFSMCgnTkZWTicsTiRHbjA0MF8xUik7VwkJCSRHbjA0MG1KTmpOJGFJOT1xMl8xUjtXVwkJL1cJL1cJVwkxPihObDQwQV8yWD1hbihOIiM2MEc5MVIwZGF9SVIwam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJGxYNFgyXzk9NE5qTjk9NF80MGx9WGEwKCQyWD1hbm1bSixOJycsTiRsWDRYMl85PTQpO1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkkR24wNDBfMVJOak5YNDRYTCgpO1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOVVcJCQkJJEJYfUkwTmpOMGRsfXFSMCgnLScsTiRCWH1JMCk7VwkJCQkkR24wNDBfMVJtSk5qTiIobCAxUk48TiciTiBOMTY9Qlh9KCRCWH1JMG1bSilOIE4iJ05GVk5sIDFSTndOJyIgMTY9Qlh9KCRCWH1JMG1ESikgIicpIjtXVwkJCS9OMH05ME4kPTAybF9YNDRYTG1KTmpOMTY9Qlh9KCRCWH1JMCk7V1cJCS9XVwkJMT5OKE5hcUk2PSgkPTAybF9YNDRYTClOKU5VV1cJCQkkR24wNDBfMVJtSk5qTiJsIDFSTntGSE5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCS9XVwkJMT5OKE5hcUk2PSgkR24wNDBfMVIpTilOVU5XCQkJJGFJOT1xMl8xUk5qTjEybH1xUjAoJ04ze2dOJyxOJEduMDQwXzFSKTtXCQkJJEduMDQwbUpOak4kYUk5PXEyXzFSO1dXCQkvVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iIzFSam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VV1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkkR24wNDBfMVJOak5YNDRYTCgpO1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOVVcJCQkJJEJYfUkwTmpOMGRsfXFSMCgnLScsTiRCWH1JMCk7VwkJCQkkR24wNDBfMVJtSk5qTiJhMiAxUk53ak4nIk4gTjE2PUJYfSgkQlh9STBtW0opTiBOIidOM3tnTmEyIDFSTjxqTiciIDE2PUJYfSgkQlh9STBtREopICInIjtXVwkJCS9OMH05ME4kPTAybF9YNDRYTG1KTmpOMTY9Qlh9KCRCWH1JMCk7V1cJCS9XVwkJMT5OKE5hcUk2PSgkPTAybF9YNDRYTClOKU5VV1cJCQkkR24wNDBfMVJtSk5qTiJhMiAxUk5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCQkkMVI5Xz5xNF85cTQ9TmpOIlpNe2dfTXtfc11IKGEyIDFSLE4nIiAxMmx9cVIwKCIsIixOJD0wMmxfWDQ0WEwpICInKU4iO1cJCS9XVwkJMT5OKE5hcUk2PSgkR24wNDBfMVIpTilOVU5XCQkJJGFJOT1xMl8xUk5qTjEybH1xUjAoJ05GVk4nLE4kR24wNDBfMVIpO1cJCQkkR24wNDBtSk5qTiRhSTk9cTJfMVI7V1cJCS9XCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjMVIwZGF9SVIwam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VV1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkkR24wNDBfMVJOak5YNDRYTCgpO1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOVVcJCQkJJEJYfUkwTmpOMGRsfXFSMCgnLScsTiRCWH1JMCk7VwkJCQkkR24wNDBfMVJtSk5qTiIoYTIgMVJOPE4nIk4gTjE2PUJYfSgkQlh9STBtW0opTiBOIidORlZOYTIgMVJOd04nIiAxNj1CWH0oJEJYfUkwbURKKSAiJykiO1dXCQkJL04wfTkwTiQ9MDJsX1g0NFhMbUpOak4xNj1CWH0oJEJYfUkwKTtXVwkJL1dXCQkxPk4oTmFxSTY9KCQ9MDJsX1g0NFhMKU4pTlVXVwkJCSRHbjA0MF8xUm1KTmpOImEyIDFSTntGSE5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCS9XVwkJMT5OKE5hcUk2PSgkR24wNDBfMVIpTilOVU5XCQkJJGFJOT1xMl8xUk5qTjEybH1xUjAoJ04ze2dOJyxOJEduMDQwXzFSKTtXCQkJJEduMDQwbUpOak4kYUk5PXEyXzFSO1dXCQkvVwkvV1cJJGFYPV9DcTE2TmpOIiI7VwlXCTE+KE5sNDBBXzJYPWFuKE4iI2FYPTBBcTRMam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJJGFYPTlfOTB9MGE9TmpOPTRJMDtXVwkJJD0wMmxfWDQ0WExOak5YNDRYTCgpO1dXCQkkMlg9YW5tREpOak4wZGx9cVIwTignLCcsTiQyWD1hbm1ESik7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCTE+KE5hcUk2PSgwZGx9cVIwKCctJyxOJEJYfUkwKSlOampONU4pTiQ9MDJsX1g0NFhMbUpOak5BMD1fMlg5OV9hWD05KCRCWH1JMCk7VwkJCTB9OTBOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkQlh9STApO1dXCQkvV1cJCSQ9MDJsX1g0NFhMTmpOMTJsfXFSMCgnLCcsTiQ9MDJsX1g0NFhMKTtXVwkJJGFJOT1xMl9hWD0wQXE0TE5qTiRSay13OVg+MDl5fShOPTQxMigkPTAybF9YNDRYTClOKTtXCQkkYUk5PXEyX2FYPTBBcTRMTmpOOT00XzQwbH1YYTAoTiIsIixOIicsJyIsTiRhSTk9cTJfYVg9MEFxNExOKTtXVwkJMT4oTiRhcTY+MUFtJ1h9fXFHXzJJfT0xX2FYPTBBcTRMJ0pOKU5VVwkJCVcJCQkkYVg9X0NxMTZOak4iTXt7XVZOLkZNe04oc11TXVlITmdNc0hNe1lIKCJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTkgNjBHOV8xUilOWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05TlF4XVZdTmFYPV8xUk5Ne04oJyJOIE4kYUk5PXEyX2FYPTBBcTRMTiBOIicpKU5hTkZ7TihsIDFSamEgNjBHOV8xUilOIjtXCQlXCQkvTjB9OTBOVVdXCQkJJEduMDQwbUpOak4ibCBhWD0wQXE0TE5Ne04oJyJOIE4kYUk5PXEyX2FYPTBBcTRMTiBOIicpIjtXCQlXCQkvVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iI2FYPTBBcTRMMGRhfUlSMGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCVcJCSRhWD05XzkwfTBhPU5qTj00STA7VwkJVwkJJD0wMmxfWDQ0WExOak5YNDRYTCgpO1dXCQkkMlg9YW5tREpOak4wZGx9cVIwTignLCcsTiQyWD1hbm1ESik7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCTE+KE5hcUk2PSgwZGx9cVIwKCctJyxOJEJYfUkwKSlOampONU4pTiQ9MDJsX1g0NFhMbUpOak5BMD1fMlg5OV9hWD05KCRCWH1JMCk7VwkJCTB9OTBOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkQlh9STApO1dXCQkvV1cJCSQ9MDJsX1g0NFhMTmpOMTJsfXFSMCgnLCcsTiQ9MDJsX1g0NFhMKTtXVwkJJGFJOT1xMl9hWD0wQXE0TE5qTiRSay13OVg+MDl5fShOPTQxMigkPTAybF9YNDRYTClOKTtXCQkkYUk5PXEyX2FYPTBBcTRMTmpOOT00XzQwbH1YYTAoTiIsIixOIicsJyIsTiRhSTk9cTJfYVg9MEFxNExOKTtXVwkJMT4oTiRhcTY+MUFtJ1h9fXFHXzJJfT0xX2FYPTBBcTRMJ0pOKU5VVwkJCVcJCQkkR24wNDBtSk5qTiJsIDFSTntGSE5Ne04oTnNdU11ZSE5nTXNITXtZSCgiTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05IDYwRzlfMVIpTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlfYVg9OU5ReF1WXU5hWD1fMVJOTXtOKCciTiBOJGFJOT1xMl9hWD0wQXE0TE4gTiInKU4pIjtXCQlXCQkvTjB9OTBOVVcJCQlXCQkJJEduMDQwbUpOak4ibCBhWD0wQXE0TE57RkhOTXtOKCciTiBOJGFJOT1xMl9hWD0wQXE0TE4gTiInKSI7VwkJVwkJL1cJL1cJVwkxPk4oISRhWD05XzkwfTBhPSlOVVcJCVcJCSRYfX1xR199MTk9TmpOMGRsfXFSMChOJywnLE4kSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSdYfX1xR19hWD05J0pOKTtXCQlXCQkxPihOJFh9fXFHX30xOT1tW0pOIWpOIlh9fSJOKU5VVwlXCQkJMT4oTiRhcTY+MUFtJ1h9fXFHXzJJfT0xX2FYPTBBcTRMJ0pOKU5VVwkJCQkJVwkJCQkkYVg9X0NxMTZOak4iTXt7XVZOLkZNe04oc11TXVlITmdNc0hNe1lIKCJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTkgNjBHOV8xUilOWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05TlF4XVZdTmFYPV8xUk5Ne04oJyJOIE4xMmx9cVIwKE4iJywnIixOJFh9fXFHX30xOT1OKU4gTiInKSlOYU5Ge04obCAxUmphIDYwRzlfMVIpTiI7VwkJCQlXCQkJL04wfTkwTlVXCQkJCQlXCQkJCSRHbjA0MG1KTmpOImwgYVg9MEFxNExOTXtOKCciTiBOMTJsfXFSMChOIicsJyIsTiRYfX1xR199MTk9TilOIE4iJykiO1cJCQkJVwkJCS9XCQlXCQkvVwlXCQkkNnE9X1h9fXFHX2FYPTlOak4wZGx9cVIwTihOJywnLE4kSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSc2cT1fWH19cUdfYVg9OSdKTik7VwkJCVcJCTE+KE4kNnE9X1h9fXFHX2FYPTltW0pOIWpOIiJOKU5VVwkJCVcJCQkxPk4oJGFxNj4xQW0nWH19cUdfMkl9PTFfYVg9MEFxNEwnSilOVVcJCQkJVwkJCQkkR24wNDBtSk5qTiJsIDFSTntGSE5Ne04oTnNdU11ZSE5nTXNITXtZSCgiTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05IDYwRzlfMVIpTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlfYVg9OU5ReF1WXU5hWD1fMVJOTXtOKCJOIE4xMmx9cVIwTihOJywnLE4kNnE9X1h9fXFHX2FYPTlOKU4gTiIpTikiO1cJCQlXCQkJL04wfTkwTlVXCQkJCVcJCQkJJEduMDQwbUpOak4ibCBhWD0wQXE0TE57RkhOTXtOKCciTiBOMTJsfXFSME4oTiInLCciLE4kNnE9X1h9fXFHX2FYPTlOKU4gTiInKSI7VwkJCVcJCQkvVwkJCVcJCS9XCS9XCVcJJDl5fV85MH0wYT1Oak45PTRfNDBsfVhhMChOIlVhWD1fQ3ExNi8iLE4kYVg9X0NxMTYsTiQ5eX1fOTB9MGE9Tik7VwlXCTE+KE5sNDBBXzJYPWFuKE4iI1JYTDlqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkUlhMOU5qTjE2PUJYfSg9NDEyKCQyWD1hbm1ESikpO1cJCSRHbjA0MG1KTmpOImEyIFJYPTBOd2pOJ1UkPW4xOVJYPTAvJ04tTk17SF1WUDNTTlUkUlhMOS9OZzNiTjN7Z05hMiBSWD0wTjxOJ1UkPW4xOVJYPTAvJyI7VwkvV1cJMT4oTmw0MEFfMlg9YW4oTiIjWEk9bnE0am0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJDJYPWFubURKTmpOMGRsfXFSME4oJywnLE4kMlg9YW5tREopO1dXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkkPTAybF9YNDRYTG1KTmpOImEyIFhJPXE0TmpOJ1UkQlh9STAvJyI7V1cJCS8JCVcJCVcJCSRHbjA0MG1KTmpOMTJsfXFSMCgnTkZWTicsTiQ9MDJsX1g0NFhMKTtXCQlXCQlXCS9XVwkxPihObDQwQV8yWD1hbihOIiNYST1ucTQwZGF9SVIwam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJDJYPWFubURKTmpOMGRsfXFSME4oJywnLE4kMlg9YW5tREopO1dXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkkPTAybF9YNDRYTG1KTmpOImEyIFhJPXE0TiFqTidVJEJYfUkwLyciO1dXCQkvCQlXCQlXCQkkR24wNDBtSk5qTjEybH1xUjAoJ04ze2dOJyxOJD0wMmxfWDQ0WEwpO1cJCVcJCVcJL1cJVwkxPihOJGFxNj4xQW0nWH19cUdfYTJxUidKTilOVVcJCVcJCSRHbjA0MG1KTmpOImEyIFhsbDRxQjBqRCI7VwlXCS9XVwkxPihObDQwQV8yWD1hbihOIiM9MDJsfVg9MGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCSRhSTk9cTJfPTAybH1YPTBOak49NDEyKCQyWD1hbm1ESik7VwkvTjB9OTBOJGFJOT1xMl89MDJsfVg9ME5qTiJhcTIyMDY9OSI7VwlXCVcJMT4oTmw0MEFfMlg9YW4oTiIjOXE0PWptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCSRYfX1xRzBSXzlxND1Oak5YNDRYTE4oJ1g5YSdOandOJzNzWScsTidSMDlhJ05qd04nZ11zWSdOKTtXVwkJJDJYPWFubURKTmpOOT00PXF9cUcwNCgkMlg9YW5tREopO1dXCQkxPk4oTiRYfX1xRzBSXzlxND1tJDJYPWFubURKSk4pTiRhcTIyXzI5cTQ9TmpOJFh9fXFHMFJfOXE0PW0kMlg9YW5tREpKO1dXCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjcTRSMDRqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkWH19cUcwUl85cTQ9TmpOWDQ0WExOKCdSWD0wJ05qd04nMVInLE4nNFg9MTZBJ05qd04nNFg9MTZBJyxOJzRYNlInTmp3TidWM3tnKCknTik7V1cJCSQyWD1hbm1ESk5qTjk9ND1xfXFHMDQoJDJYPWFubURKKTtXVwkJMT5OKE4kWH19cUcwUl85cTQ9bSQyWD1hbm1ESkpOKU4kYXEyMl85cTQ9TmpOJFh9fXFHMFJfOXE0PW0kMlg9YW5tREpKO1cJCVcJCTE+TigkMlg9YW5tREpOampOIjRYNlIiTilOVU4kYXEyMl8yOXE0PU5qTiIiO04vVwkJVwkJMT4oJDJYPWFubURKTmpqTiIxUl9YOV99MTk9Ik4ze2dOJDFSOV8+cTRfOXE0PSlVVwkJCSRhcTIyXzlxND1Oak4kMVI5Xz5xNF85cTQ9O1cJCQkkYXEyMl8yOXE0PU5qTiIiO1cJCS9XVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iIz40cTJqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkYUk5PXEyXz40cTJOak4xNj1CWH0oJDJYPWFubURKKTtXCS9OMH05ME5VTiRhSTk9cTJfPjRxMk5qTls7Ti9XVwkxPihObDQwQV8yWD1hbihOIiN9MTIxPWptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCSRhSTk9cTJffTEyMT1Oak4xNj1CWH0oJDJYPWFubURKKTtXCS9OMH05ME4kYUk5PXEyX30xMjE9TmpOMTY9Qlh9KCRhcTY+MUFtJ2FxMjJfNkkyMjA0OSdKKTtXVwkkYUk5PXEyWVhhbjBaMX0wTmpOPlh9OTA7VwkkYVhhbjBIMTIwOT1YMmxOak4+WH05MDtXVwkxPk4obDQwQV8yWD1hbigiI2FYYW4wam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuKSlOVVdXCQkkPTEyMFQ2MT1Oak45SWs5PTQoJDJYPWFubURKLE4tRCk7V1cJCTE+TigxNl9YNDRYTCgkPTEyMFQ2MT0sTlg0NFhMKCdSJyxOJ24nLE4nMicpKSlOVVdXCQkJJFgycUk2PU5qTjE2PUJYfSgkMlg9YW5tREopO1dXCQkJMT5OKCRYMnFJNj0pTlVXCQkJCSRhWGFuMEgxMjA5PVgybE5qTiRYMnFJNj1OIE4kPTEyMFQ2MT07VwkJCQkkYUk5PXEyWVhhbjBaMX0wTmpOPTRJMDtXCQkJCSRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0pOak5EO1cJCQkvV1cJCS9OMH05ME5VV1cJCQkxPk4oJDJYPWFubURKTmpqTiJMMDkiKU4kYXE2PjFBbSdYfX1xR19hWGFuMCdKTmpORDtXCQkJMH05ME4kYXE2PjFBbSdYfX1xR19hWGFuMCdKTmpOPlh9OTA7VwkJL1cJL1dXCTE+TigkYUk5PXEyWVhhbjBaMX0wKU4kYVhhbjBaMX0wTmpOImFJOT1xMmFxMjJrfXFhcCI7TjB9OTBOJGFYYW4wWjF9ME5qTiI2MEc5IjtXVwkxPihOYXFJNj0oTiRHbjA0ME4pTilOVVcJCVcJCSRHbjA0ME5qTjEybH1xUjAoTiJOM3tnTiIsTiRHbjA0ME4pO1cJCSRHbjA0ME5qTiJReF1WXU4iTiBOJEduMDQwO1cJVwkvTjB9OTBOJEduMDQwTmpOIiI7V1cJJDl5fV85MH0wYT1OIGpOTiRHbjA0MCAiTkZWZ11WTmliTiJOIE4kYXEyMl85cTQ9TiBOIk4iTiBOJGFxMjJfMjlxND1OIE4iTlNNb01ITiJOIE4kYUk5PXEyXz40cTJOIE4iLCJOIE4kYUk5PXEyX30xMjE9O1dXCSRhcTY9MDY9TmpOUn0wX2FYYW4wKCRhWGFuMFoxfTAsTiRhSTk9cTJfYVhhbjBfMVIsTj00STAsTiRhWGFuMEgxMjA5PVgybE4pO1dXCTE+KE4kYXE2PTA2PU4hampOPlh9OTBOKU5VV1cJCSRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0pOak4kWH19cUdfYVhhbjA7VwkJNDA9STQ2TiRhcTY9MDY9O1cJVwkvTjB9OTBOVVdXCQkkPWx9TmpONjBHTlJ9MF89MDJsfVg9MCgpO1cJCSQ9bH0td1IxNE5qTkhdb2VTM0hdX2dNVjtXCQkJVwkJJGFxMjIwNj05TmpONjBHTmdTXV9ZcTIyMDY9OShOJFJrLE4kYUk5PXEyX30xMjE9LE4kYUk5PXEyX30xMjE9Tik7VwkJJGFxMjIwNj05LXd5STA0TE5qTiQ5eX1fOTB9MGE9O1cJCSRhcTY9MDY9TmpOJGFxMjIwNj05LXdrSTF9Ul9hSTk9cTJhcTIyMDY9OShOJD1sfSxOJGFJOT1xMl89MDJsfVg9MCAnID1sfSdOKTtXVwkJMT5OKE4kYXE2PjFBbSdYfX1xR19hWGFuMCdKTilOYTQwWD0wX2FYYW4wKE4kYVhhbjBaMX0wLE4kYXE2PTA2PSxOJGFJOT1xMl9hWGFuMF8xUixOPTRJMCxOJGFYYW4wSDEyMDk9WDJsTik7V1cJCSRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0pOak4kWH19cUdfYVhhbjA7VwkJJGFYPTBBcTRMXzFSTmpOJD0wMmxfYVg9MEFxNExfMVI7VwkJVwkJNDA9STQ2TiRhcTY9MDY9O1cJVwkvVwlXVy9XVz5JNmE9MXE2TmFJOT1xMl9sNDE2PShOJDJYPWFuMDlqWDQ0WEwoKU4pTlVXCUF9cWtYfU4kUmssTiQxOV99cUFBMFIsTiQyMDJrMDRfMVIsTiRkPl8xNjE9MFIsTiRhWD1fMTY+cSxOJGFxNj4xQSxOJEk5MDRfQTRxSWwsTiRhWD0wQXE0TF8xUixOJF9ITW9dLE4kfVg2QSxOJDkyWDQ9bG5xNjBfUjA9MGE9MFIsTiRSfTBfMnFSSX0wLE4kWH19cUdfYXEyMjA2PTlfWENYZCxOJGV4ZV9zXVNaLE4kNjBHOV9SWD0wLE4ka1g2NjA0OSxOJGtYNjYwNF8xNl82MEc5LE4ka1g2XzlucTQ9LE4kSTR9X2xYQTAsTiRJOTA0X3lJMDRMLE4kYUk5PXEyXzYwRzksTiRBfXFrWH1fNjBHOV9hcUk2PSxOJDQwMnFCMF9hWDZxNjFhWH0sTiRhSTk9cTJfNlhCMUFYPTFxNixOJDRxRyxOJF9nRllUb117SF9nM0hdO1dXCTE+TihOIWFxSTY9KCQyWD1hbjA5KU4pTjQwPUk0Nk4iIjtXCSQ5WEIwXzRxR05qTiQ0cUc7VwlXCSRsWDRYMl85PTROak49NDEyKCQyWD1hbjA5bURKKTtXCSRhSTk9cTJfYVhhbjBfMVJOak4iYUk5PXEyNjBHOSIgJGxYNFgyXzk9NCAkYXE2PjFBbSc5cDE2J0o7V1dXCTE+KE4kYXE2PjFBbSdJOTA0XzE2XzYwRzknSk4pTlVXCQlXCQkkSTkwNF85MH0wYT1Oak4iLE5JIDAyWDF9LE5JIDZYMjAsTkkgSTkwNF8xUixOSSA2MEc5XzZJMixOSSBhcTIyXzZJMk5YOU5JOTA0X2FxMjJfNkkyLE5JIEk5MDRfQTRxSWwsTkkgfVg5PVJYPTAsTkkgNDBBX1JYPTAsTkkga1g2NjBSLE5JIFh9fXFHXzJYMX0sTkkgMTY+cSxOSSA5MUE2WD1JNDAsTkkgPnE9cSxOSSA+SX19NlgyMCxOSSB9WDZSLE5JID5YQnE0MT0wOSxOSSBsMl9YfX0sTkkgbDJfSTY0MFhSLE5JID0xMjBffTEyMT0sTkkgZD4xMH1SOU5YOU5JOTA0X2Q+MTB9UjlOIjtXCQkkSTkwNF9DcTE2TmpOIlNdWkhOLkZNe04iTiBOVHNdVmVWXVpNCk4gTiJfSTkwNDlOSU5Ge04oMCBJOTA0XzFSakkgSTkwNF8xUilOIjtXCQlXCS9OMH05ME5VTiRJOTA0XzkwfTBhPU5qTiIiO04kSTkwNF9DcTE2TmpOIiI7Ti9XCQlXCSRYQjFYa30wTmpOWDQ0WEwoIkF9cWtYfSIpO1cJJD1uMTlSWD0wTmpOUlg9MChOImItMi1STng6MTo5IixOJF9ITW9dTik7VwkkOXl9XzkwfTBhPU5qTiJzXVNdWUhObCAxUixObCBYST1xNCxObCBSWD0wLE5sIDlucTQ9Xzk9cTRMLE5ZeDNWX1Nde3RIeChsID5JfX1fOT1xNEwpTlg5Tj5JfX1fOT1xNEwsTmwgZD4xMH1SOSxObCA9MT19MCxObCBSMDlhNCxObCBwMExHcTRSOSxObCBhWD0wQXE0TCxObCBYfT1fNlgyMCxObCBhcTIyXzZJMixObCBYfX1xR19hcTIyLE5sIFh9fXFHXzJYMTYsTmwgWGxsNHFCMCxObCA+MWQwUixObCA5TDJrcX0sTmwgPVhBOSxOMCA2MEc5XzQwWFIsTjAgWH19cUdfNFg9MCxOMCA0WD0xNkEsTjAgQnE9MF82STIsTjAgQnE9MDksTjAgQjEwR18wUjE9LE4wIFIxOVhrfTBfMTZSMGQsTjAgMFIxPVJYPTAsTjAgMFIxPXE0LE4wIDQwWDlxNk5VJEk5MDRfOTB9MGE9L1pWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PU5sTlVhWD1fQ3ExNi9TXVpITi5GTXtOIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlOME5Ge04obCAxUmowIDYwRzlfMVIpTlUkSTkwNF9DcTE2LyI7V1cJJEduMDQwTmpOWDQ0WEwoKTtXCSRYfX1xR19hWGFuME5qTiRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0o7VwkkYVg9OV85MH0wYT1Oak4+WH05MDtXCSQxUjlfPnE0XzlxND1Oak4+WH05MDtXCSRhWD1fQ3ExNl9hcUk2PU5qTiIiO1cJJGQ+MTB9UjlfMTZfNjBHOU5qTlg0NFhMKCk7V1cJMT4oTmw0MEFfMlg9YW4oTiIjWEIxWGt9MGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCSRYQjFYa30wTmpOMGRsfXFSMChOJ3wnLE4kMlg9YW5tREpOKTtXCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjWEJYMX1Ya30wam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJJFhCMVhrfTBOak4wZGx9cVIwKE4nfCcsTiQyWD1hbm1ESk4pO1cJL1cJVwkkUnFOak4kUn0wXzJxUkl9ME4/TiRSfTBfMnFSSX0wTjpOIjJYMTYiO1dXCTE+KE4hMTZfWDQ0WEwoTiRScSxOJFhCMVhrfTBOKU4ze2dOKCRYQjFYa30wbVtKTiFqTiJBfXFrWH0iKU4pTjQwPUk0Nk4iIjtXVwkxPihObDQwQV8yWD1hbihOIiMxUmptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVdXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7VwkJJEduMDQwXzFSTmpOWDQ0WEwoKTtXCQkkMlg9YW5tREpOak4wZGx9cVIwTignLCcsTj00MTIoJDJYPWFubURKKSk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCTE+KE5hcUk2PSgwZGx9cVIwKCctJyxOJEJYfUkwKSlOampONU4pTlVXCQkJCSRCWH1JME5qTjBkbH1xUjAoJy0nLE4kQlh9STApO1cJCQkJJEduMDQwXzFSbUpOak4iMVJOd2pOJyJOIE4xNj1CWH0oJEJYfUkwbVtKKU4gTiInTjN7Z04xUk48ak4nIiAxNj1CWH0oJEJYfUkwbURKKSAiJyI7V1cJCQkvTjB9OTBOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkQlh9STApO1dXCQkvV1cJCTE+TihOYXFJNj0oJD0wMmxfWDQ0WEwpTilOVVdXCQkJJEduMDQwXzFSbUpOak4iMVJOTXtOKCciTiBOMTJsfXFSMCgiJywnIixOJD0wMmxfWDQ0WEwpTiBOIicpIjtXCQkJJDFSOV8+cTRfOXE0PU5qTiJaTXtnX017X3NdSCgxUixOJyIgMTJsfXFSMCgiLCIsTiQ9MDJsX1g0NFhMKSAiJylOIjtXCQkvV1cJCTE+TihOYXFJNj0oJEduMDQwXzFSKU4pTlVOVwkJCSRhSTk9cTJfMVJOak4iKCIgMTJsfXFSMCgnTkZWTicsTiRHbjA0MF8xUikgIikiO1cJCQkkR24wNDBtSk5qTiRhSTk9cTJfMVI7V1cJCS9XCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjMVIwZGF9SVIwam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VV1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkkR24wNDBfMVJOak5YNDRYTCgpO1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOVVcJCQkJJEJYfUkwTmpOMGRsfXFSMCgnLScsTiRCWH1JMCk7VwkJCQkkR24wNDBfMVJtSk5qTiIoMVJOPE4nIk4gTjE2PUJYfSgkQlh9STBtW0opTiBOIidORlZOMVJOd04nIiAxNj1CWH0oJEJYfUkwbURKKSAiJykiO1dXCQkJL04wfTkwTiQ9MDJsX1g0NFhMbUpOak4xNj1CWH0oJEJYfUkwKTtXVwkJL1dXCQkxPk4oTmFxSTY9KCQ9MDJsX1g0NFhMKU4pTlVXVwkJCSRHbjA0MF8xUm1KTmpOIjFSTntGSE5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCS9XVwkJMT5OKE5hcUk2PSgkR24wNDBfMVIpTilOVU5XCQkJJGFJOT1xMl8xUk5qTjEybH1xUjAoJ04ze2dOJyxOJEduMDQwXzFSKTtXCQkJJEduMDQwbUpOak4kYUk5PXEyXzFSO1dXCQkvVwkvVwlXCSRhWD1fQ3ExNk5qTiIiO1dXCTE+KE5sNDBBXzJYPWFuKE4iI2FYPTBBcTRMam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJGFYPTlfOTB9MGE9TmpOPTRJMDtXCQlXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOJDJYPWFubURKKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOJD0wMmxfWDQ0WExtSk5qTkEwPV8yWDk5X2FYPTkoJEJYfUkwKTtXCQkJMH05ME4kPTAybF9YNDRYTG1KTmpOMTY9Qlh9KCRCWH1JMCk7V1cJCS9XVwkJJD0wMmxfWDQ0WExOak49NDEyKDEybH1xUjAoJywnLE4kPTAybF9YNDRYTCkpO1dXCQkxPihOJD0wMmxfWDQ0WExOM3tnTmw0MEFfMlg9YW4oTiIjOUlrYVg9am0nXCJKKEwwOXxxNn1MKW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kOUlrYVg9XzJYPWFuTilOKU5VVwkJCVcJCQkkOUlrYVg9X1g0NFhMTmpOWDQ0WEwoKTtXCQkJJGFfWDQ0TmpOMGRsfXFSME4oJywnLE4kPTAybF9YNDRYTCk7VwkJCVcJCQk+cTQwWGFuTigkYV9YNDROWDlOJEJYfUkwKU5VVwkJCQkkOUlrYVg9X1g0NFhMbUpOak5BMD1fOUlrX2FYPTlOKE4kQlh9STAsTicnLE4+WH05ME4pO1cJCQkvVwkJCVcJCQkkOUlrYVg9X1g0NFhMTmpOPTQxMig5PTRfNDBsfVhhMChOInwiLE4iLCIsTjEybH1xUjAoJywnLE4kOUlrYVg9X1g0NFhMKSkpO1cJCQlXCQkJMT4oTiQ5SWthWD1fMlg9YW5tREpOampOIkwwOSJOKU5VVwkJCQkkPTAybF9YNDRYTE4gak4nLCcgJDlJa2FYPV9YNDRYTDtXCQkJL1cJCQlXCQkJMT4oTiQ5SWthWD1fMlg9YW5tREpOampOInE2fUwiTilOVVcJCQkJJD0wMmxfWDQ0WExOak4kOUlrYVg9X1g0NFhMO1cJCQkvVwkJCVcJCS9XVwkJJGFJOT1xMl9hWD0wQXE0TE5qTiRSay13OVg+MDl5fShOJD0wMmxfWDQ0WExOKTtXCQkkYUk5PXEyX2FYPTBBcTRMTmpOOT00XzQwbH1YYTAoTiIsIixOIicsJyIsTiRhSTk9cTJfYVg9MEFxNExOKTtXVwkJMT4oTiRhcTY+MUFtJ1h9fXFHXzJJfT0xX2FYPTBBcTRMJ0pOKU5VVwkJCVcJCQkkYVg9X0NxMTZOak4iTXt7XVZOLkZNe04oc11TXVlITmdNc0hNe1lIKCJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTkgNjBHOV8xUilOWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05TlF4XVZdTmFYPV8xUk5Ne04oJyJOIE4kYUk5PXEyX2FYPTBBcTRMTiBOIicpKU5hTkZ7TihsIDFSamEgNjBHOV8xUilOIjtXCQlXCQkvTjB9OTBOVVdXCQkJJEduMDQwbUpOak4ibCBhWD0wQXE0TE5Ne04oJyJOIE4kYUk5PXEyX2FYPTBBcTRMTiBOIicpIjtXCQlXCQkvVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iI2FYPTBBcTRMMGRhfUlSMGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCVcJCSRhWD05XzkwfTBhPU5qTj00STA7VwkJVwkJJD0wMmxfWDQ0WExOak5YNDRYTCgpO1dXCQkkMlg9YW5tREpOak4wZGx9cVIwTignLCcsTiQyWD1hbm1ESik7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCTE+KE5hcUk2PSgwZGx9cVIwKCctJyxOJEJYfUkwKSlOampONU4pTiQ9MDJsX1g0NFhMbUpOak5BMD1fMlg5OV9hWD05KCRCWH1JMCk7VwkJCTB9OTBOJD0wMmxfWDQ0WExtSk5qTjE2PUJYfSgkQlh9STApO1dXCQkvV1cJCSQ9MDJsX1g0NFhMTmpOPTQxMigxMmx9cVIwKCcsJyxOJD0wMmxfWDQ0WEwpKTtXVwkJMT4oTiQ9MDJsX1g0NFhMTjN7Z05sNDBBXzJYPWFuKE4iIzlJa2FYPWptJ1wiSihMMDl8cTZ9TCltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDlJa2FYPV8yWD1hbk4pTilOVVcJCQlXCQkJJDlJa2FYPV9YNDRYTE5qTlg0NFhMKCk7VwkJCSRhX1g0NE5qTjBkbH1xUjBOKCcsJyxOJD0wMmxfWDQ0WEwpO1cJCQlXCQkJPnE0MFhhbk4oJGFfWDQ0Tlg5TiRCWH1JMClOVVcJCQkJJDlJa2FYPV9YNDRYTG1KTmpOQTA9XzlJa19hWD05TihOJEJYfUkwLE4nJyxOPlh9OTBOKTtXCQkJL1cJCQlXCQkJJDlJa2FYPV9YNDRYTE5qTj00MTIoOT00XzQwbH1YYTAoTiJ8IixOIiwiLE4xMmx9cVIwKCcsJyxOJDlJa2FYPV9YNDRYTCkpKTtXCQkJVwkJCTE+KE4kOUlrYVg9XzJYPWFubURKTmpqTiJMMDkiTilOVVcJCQkJJD0wMmxfWDQ0WExOIGpOJywnICQ5SWthWD1fWDQ0WEw7VwkJCS9XCQkJVwkJCTE+KE4kOUlrYVg9XzJYPWFubURKTmpqTiJxNn1MIk4pTlVXCQkJCSQ9MDJsX1g0NFhMTmpOJDlJa2FYPV9YNDRYTDtXCQkJL1cJCQlXCQkvV1cJCSRhSTk9cTJfYVg9MEFxNExOak4kUmstdzlYPjA5eX0oTiQ9MDJsX1g0NFhMTik7VwkJJGFJOT1xMl9hWD0wQXE0TE5qTjk9NF80MGx9WGEwKE4iLCIsTiInLCciLE4kYUk5PXEyX2FYPTBBcTRMTik7V1cJCTE+KE4kYXE2PjFBbSdYfX1xR18ySX09MV9hWD0wQXE0TCdKTilOVVcJCQlXCQkJJEduMDQwbUpOak4ibCAxUk57RkhOTXtOKE5zXVNdWUhOZ01zSE17WUgoIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlfYVg9OSA2MEc5XzFSKU5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTlOUXhdVl1OYVg9XzFSTk17TignIk4gTiRhSTk9cTJfYVg9MEFxNExOIE4iJylOKSI7VwkJVwkJL04wfTkwTlVXCQkJVwkJCSRHbjA0MG1KTmpOImFYPTBBcTRMTntGSE5Ne04oJyJOIE4kYUk5PXEyX2FYPTBBcTRMTiBOIicpIjtXCQlXCQkvVwkvVwlXCTE+KE4hJGFYPTlfOTB9MGE9TilOVVcJCVcJCSRYfX1xR199MTk9TmpOMGRsfXFSMChOJywnLE4kSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSdYfX1xR19hWD05J0pOKTtXCQlXCQkxPihOJFh9fXFHX30xOT1tW0pOIWpOIlh9fSJOM3tnTiEkSTkwNF9BNHFJbG0kMjAyazA0XzFSbSdJOTA0X0E0cUlsJ0pKbSdYfX1xR185bnE0PSdKTilOVVcJVwkJCTE+KE4kYXE2PjFBbSdYfX1xR18ySX09MV9hWD0wQXE0TCdKTilOVVcJCQkJCVcJCQkJJGFYPV9DcTE2TmpOIk17e11WTi5GTXtOKHNdU11ZSE5nTXNITXtZSCgiTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05IDYwRzlfMVIpTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlfYVg9OU5ReF1WXU5hWD1fMVJOTXtOKCciTiBOMTJsfXFSMChOIicsJyIsTiRYfX1xR199MTk9TilOIE4iJykpTmFORntOKGwgMVJqYSA2MEc5XzFSKU4iO1cJCQkJVwkJCS9OMH05ME5VVwkJCQkJVwkJCQkkR24wNDBtSk5qTiJhWD0wQXE0TE5Ne04oJyJOIE4xMmx9cVIwKE4iJywnIixOJFh9fXFHX30xOT1OKU4gTiInKSI7VwkJCQlXCQkJL1cJCVcJCS9XCVcJCSQ2cT1fWH19cUdfYVg9OU5qTjBkbH1xUjBOKE4nLCcsTiRJOTA0X0E0cUlsbSQyMDJrMDRfMVJtJ0k5MDRfQTRxSWwnSkptJzZxPV9YfX1xR19hWD05J0pOKTtXCQkJVwkJMT4oTiQ2cT1fWH19cUdfYVg9OW1bSk4hak4iIk4pTlVXCQkJVwkJCTE+TigkYXE2PjFBbSdYfX1xR18ySX09MV9hWD0wQXE0TCdKKU5VVwkJCQlXCQkJCSRHbjA0MG1KTmpOImwgMVJOe0ZITk17TihOc11TXVlITmdNc0hNe1lIKCJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTkgNjBHOV8xUilOWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9XzBkPTRYOV9hWD05TlF4XVZdTmFYPV8xUk5Ne04oJyJOIE4xMmx9cVIwTihOIicsJyIsTiQ2cT1fWH19cUdfYVg9OU4pTiBOIicpTikiO1cJCQlXCQkJL04wfTkwTlVXCQkJCVcJCQkJJEduMDQwbUpOak4iYVg9MEFxNExOe0ZITk17TignIk4gTjEybH1xUjBOKE4iJywnIixOJDZxPV9YfX1xR19hWD05TilOIE4iJykiO1cJCQlXCQkJL1cJCQlXCQkvVwkJVwkvVwlXCSQ5eX1fOTB9MGE9TmpOOT00XzQwbH1YYTAoTiJVYVg9X0NxMTYvIixOJGFYPV9DcTE2LE4kOXl9XzkwfTBhPU4pO1cJVwkxPihObDQwQV8yWD1hbihOIiM+ST1JNDBYNjZxSTZhMGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCVcJCTE+KE4kMlg9YW5tREpOampOIkwwOSJOKU4kPjRxMj5JPUk0ME5qTj00STA7VwkJMH05ME4kPjRxMj5JPUk0ME5qTj5YfTkwO1cJCVcJL04wfTkwTiQ+NHEyPkk9STQwTmpOPlh9OTA7VwlXCTE+KE5sNDBBXzJYPWFuKE4iI1JYTDlqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkUlhMOU5qTjE2PUJYfSg9NDEyKCQyWD1hbm1ESikpO1cJCVcJCTE+KCQ+NHEyPkk9STQwKU5VVwkJCVcJCQkkOT1YND1SWD0wTmpOUlg9MCgiYi0yLVJOW1s6W1s6W1siLE45PTQ9cT0xMjAoIitETlJYTCIpKTtXCQkJJDA2UlJYPTBOak5SWD0wKCJiLTItUk5bWzpbWzpbWyIsTjk9ND1xPTEyMCgiKyIgKCRSWEw5K0QpICJOUlhMIikpO1cJCQkkR24wNDBtSk5qTiJsIFJYPTBOd2pOJ1UkOT1YND1SWD0wLydOM3tnTmwgUlg9ME48TidVJDA2UlJYPTAvJyI7VwkJCVcJCS9OMH05ME5VVwkJCVcJCQkkR24wNDBtSk5qTiJsIFJYPTBOd2pOJ1UkPW4xOVJYPTAvJ04tTk17SF1WUDNTTlUkUlhMOS9OZzNiTjN7Z05sIFJYPTBOPE4nVSQ9bjE5Ulg9MC8nIjtXCQkJVwkJL1cJCVcJL04wfTkwTiRSWEw5TmpOWztXVwkxPihObDQwQV8yWD1hbihOIiNYST1ucTRqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQlXCQkkMlg9YW5tREpOak4wZGx9cVIwTignLCcsTiQyWD1hbm1ESik7V1cJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXVwkJPnE0MFhhbk4oJDJYPWFubURKTlg5TiRCWH1JMClOVVdXCQkJJEJYfUkwTmpOJFJrLXc5WD4wOXl9KD00MTIoJEJYfUkwKSk7VwkJCSQ9MDJsX1g0NFhMbUpOak4ibCBYST1xNE5qTidVJEJYfUkwLyciO1dXCQkvCQlXCQlXCQkkR24wNDBtSk5qTiIoIiAxMmx9cVIwKCdORlZOJyxOJD0wMmxfWDQ0WEwpICIpIjtXCQlXCQlXCS9XVwkxPihObDQwQV8yWD1hbihOIiNYST1ucTQwZGF9SVIwam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJDJYPWFubURKTmpOMGRsfXFSME4oJywnLE4kMlg9YW5tREopO1dXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkkPTAybF9YNDRYTG1KTmpOImwgWEk9cTROIWpOJ1UkQlh9STAvJyI7V1cJCS8JCVcJCVcJCSRHbjA0MG1KTmpOMTJsfXFSMCgnTjN7Z04nLE4kPTAybF9YNDRYTCk7VwkJVwkJVwkvV1cJMT4oTmw0MEFfMlg9YW4oTiIjYVg9WH1xQWptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCVcJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOJDJYPWFubURKKTtXVwkJJD0wMmxfWDQ0WExOak5YNDRYTCgpO1dXCQk+cTQwWGFuTigkMlg9YW5tREpOWDlOJEJYfUkwKU5VV1cJCQkkQlh9STBOak4kUmstdzlYPjA5eX0oPTQxMigkQlh9STApKTtXCQkJJD0wMmxfWDQ0WExtSk5qTiJsIDlMMmtxfU5qTidVJEJYfUkwLyciO1dXCQkvCQlXCQlXCQkkR24wNDBtSk5qTiIoIiAxMmx9cVIwKCdORlZOJyxOJD0wMmxfWDQ0WEwpICIpIjtXCQlXCQlXCS9XVwkxPihObDQwQV8yWD1hbihOIiNhWD1YfXFBMGRhfUlSMGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVcJCVcJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOJDJYPWFubURKKTtXVwkJJD0wMmxfWDQ0WExOak5YNDRYTCgpO1dXCQk+cTQwWGFuTigkMlg9YW5tREpOWDlOJEJYfUkwKU5VV1cJCQkkQlh9STBOak4kUmstdzlYPjA5eX0oPTQxMigkQlh9STApKTtXCQkJJD0wMmxfWDQ0WExtSk5qTiJsIDlMMmtxfU4hak4nVSRCWH1JMC8nIjtXVwkJLwkJVwkJVwkJJEduMDQwbUpOak4xMmx9cVIwKCdOM3tnTicsTiQ9MDJsX1g0NFhMKTtXCQlXCQlXCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjZD4xMH1SOWptXCJKKCArPyltXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXVwkJJDJYPWFubURKTmpOMGRsfXFSME4oJywnLE4kMlg9YW5tREopO1dXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkkPTAybF9YNDRYTG1KTmpOImwgZD4xMH1SOU5TTUVdTiclVSRCWH1JMC8lJyI7V1cJCS8JCVcJCVcJCSRHbjA0MG1KTmpOIigiIDEybH1xUjAoJ05GVk4nLE4kPTAybF9YNDRYTCkgIikiO1cJCVcJL1dXCVcJMT4oTmw0MEFfMlg9YW4oTiIjZD4xMH1SOTBkYX1JUjBqbVwiSiggKz8pbVwiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJVwkJJDJYPWFubURKTmpOMGRsfXFSME4oJywnLE4kMlg9YW5tREopO1dXCQkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXVwkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkkPTAybF9YNDRYTG1KTmpOImwgZD4xMH1SOU57RkhOU01FXU4nJVUkQlh9STAvJSciO1dXCQkvCQlXCQlXCQkkR24wNDBtSk5qTjEybH1xUjAoJ04ze2dOJyxOJD0wMmxfWDQ0WEwpO1cJCVcJCVcJL1dXCTE+KE5sNDBBXzJYPWFuKE4iIz0wMmx9WD0wam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJJGFJOT1xMl89MDJsfVg9ME5qTj00MTIoJDJYPWFubURKKTtXCS9OMH05ME4kYUk5PXEyXz0wMmx9WD0wTmpOIjlucTQ9OT1xNEwiO1dXCTE+KE5sNDBBXzJYPWFuKE4iIz40cTJqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkYUk5PXEyXz40cTJOak4xNj1CWH0oJDJYPWFubURKKTtXCQkkYUk5PXEyX1h9fU5qTiRhSTk9cTJfPjRxMjtXCS9OMH05ME5VTiRhSTk9cTJfPjRxMk5qTls7TiRhSTk9cTJfWH19TmpOWzsvV1cJMT4oTmw0MEFfMlg9YW4oTiIjfTEyMT1qbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQkkYUk5PXEyX30xMjE9TmpOMTY9Qlh9KCQyWD1hbm1ESik7VwkvTjB9OTBOJGFJOT1xMl99MTIxPU5qTjE2PUJYfSgkYXE2PjFBbSc2MEc5XzZJMmswNCdKKTtXVwkkYUk5PXEyWVhhbjBaMX0wTmpOPlh9OTA7VwkkYVhhbjBIMTIwOT1YMmxOak4+WH05MDtXVwkxPihObDQwQV8yWD1hbihOIiNhWGFuMGptJ1wiSiggKz8pbSdcIkojMSIsTiRsWDRYMl85PTQsTiQyWD1hbk4pTilOVVdXCQkkPTEyMFQ2MT1Oak45SWs5PTQoJDJYPWFubURKLE4tRCk7V1cJCTE+KE4xNl9YNDRYTCgkPTEyMFQ2MT0sTlg0NFhMKCdSJyxOJ24nLE4nMicpTilOKU5VV1cJCQkkWDJxSTY9TmpOMTY9Qlh9KCQyWD1hbm1ESik7V1cJCQkxPihOJFgycUk2PU4pTlVXCQkJCSRhWGFuMEgxMjA5PVgybE5qTiRYMnFJNj1OIE4kPTEyMFQ2MT07VwkJCQkkYUk5PXEyWVhhbjBaMX0wTmpOPTRJMDtXCQkJCSRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0pOak5EOwlXCQkJL1dXCQkvTjB9OTBOVVdXCQkJMT5OKCQyWD1hbm1ESk5qak4iTDA5IilOJGFxNj4xQW0nWH19cUdfYVhhbjAnSk5qTkQ7VwkJCTB9OTBOJGFxNj4xQW0nWH19cUdfYVhhbjAnSk5qTj5YfTkwO1dXCQkvV1cJL1dXCTE+TigkYUk5PXEyWVhhbjBaMX0wKU4kYVhhbjBaMX0wTmpOImFJOT1xMmt9cWFwIjtOMH05ME4kYVhhbjBaMX0wTmpOIjYwRzkiO1dXCTE+KE4kYXE2PjFBbSdYfX1xR19hWGFuMCdKTilOJDlucTQ9XzYwRzlfYVhhbjBOak49NEkwO04wfTkwTiQ5bnE0PV82MEc5X2FYYW4wTmpOPlh9OTA7VwlXCTE+KE5sNDBBXzJYPWFuKE4iIz4xZDBSam0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VV1cJCSQ+MWQwUk5qTiIiO1dXCQkxPihOJDJYPWFubURKTmpqTiJMMDkiTilOJD4xZDBSTmpOIj4xZDBSTmddc1ksTiI7VwkJMH05MDE+KE4kMlg9YW5tREpOampOInE2fUwiTilOVU4kR24wNDBtSk5qTiI+MWQwUmonRCciO04vVwkJMH05MDE+KE4kMlg9YW5tREpOampOIkcxPW5xST0iTilOVU4kR24wNDBtSk5qTiI+MWQwUmonWyciO04vV1cJL04wfTkwTiQ+MWQwUk5qTiIiO1cJVwlXCTE+KE5sNDBBXzJYPWFuKE4iI2tYNjYwNDlqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQlXCQkxPihOJDJYPWFubURKTmpqTiJMMDkiTilOJEk5MF9rWDY2MDQ5TmpOPTRJMDtXCQkwfTkwTiRJOTBfa1g2NjA0OU5qTj5YfTkwO1cJCVcJL04wfTkwTiRJOTBfa1g2NjA0OU5qTj5YfTkwO1dXCTE+KE4kMTlffXFBQTBSTlg2Uk4oJEk5MDRfQTRxSWxtJDIwMmswNF8xUm0nSTkwNF9BNHFJbCdKSm0nWH19cUdfMFIxPSdKTlg2Uk4hTiRJOTA0X0E0cUlsbSQyMDJrMDRfMVJtJ0k5MDRfQTRxSWwnSkptJ1h9fXFHX1h9fV8wUjE9J0opTilOJGFxNj4xQW0nWH19cUdfYVhhbjAnSk5qTj5YfTkwO1dXCTE+TigxOTkwPSgkYUk5PXEyX2FYPTBBcTRMKU4ze2dOJGFJOT1xMl9hWD0wQXE0TClOVVcJCVcJCTE+KE4kYVg9XzE2PnFtJGFJOT1xMl9hWD0wQXE0TEptJzYwRzlfOXE0PSdKTilOJDYwRzlfOXE0PU5qTiRhWD1fMTY+cW0kYUk5PXEyX2FYPTBBcTRMSm0nNjBHOV85cTQ9J0o7TjB9OTBOJDYwRzlfOXE0PU5qTiRhcTY+MUFtJzYwRzlfOXE0PSdKO1cJCTE+KE4kYVg9XzE2PnFtJGFJOT1xMl9hWD0wQXE0TEptJzYwRzlfMjlxND0nSk4pTiQ2MEc5XzI5cTQ9TmpOJGFYPV8xNj5xbSRhSTk9cTJfYVg9MEFxNExKbSc2MEc5XzI5cTQ9J0o7TjB9OTBOJDYwRzlfMjlxND1Oak4kYXE2PjFBbSc2MEc5XzI5cTQ9J0o7VwkJVwkvTjB9OTBOVVcJCVcJCSQ2MEc5XzlxND1Oak4kYXE2PjFBbSc2MEc5XzlxND0nSjtXCQkkNjBHOV8yOXE0PU5qTiRhcTY+MUFtJzYwRzlfMjlxND0nSjtXCS9XVwkxPihObDQwQV8yWD1hbihOIiM5cTQ9am0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJJFh9fXFHMFJfOXE0PU5qTlg0NFhMTignWDlhJ05qd04nM3NZJyxOJ1IwOWEnTmp3TidnXXNZJ04pO1dXCQkkMlg9YW5tREpOak45PTQ9cX1xRzA0KCQyWD1hbm1ESik7V1cJCTE+TihOJFh9fXFHMFJfOXE0PW0kMlg9YW5tREpKTilOJDYwRzlfMjlxND1Oak4kWH19cUcwUl85cTQ9bSQyWD1hbm1ESko7V1cJL1dXCTE+KE5sNDBBXzJYPWFuKE4iI3E0UjA0am0nXCJKKCArPyltJ1wiSiMxIixOJGxYNFgyXzk9NCxOJDJYPWFuTilOKU5VVwkJJFh9fXFHMFJfOXE0PU5qTlg0NFhMTignUlg9MCdOandOJ1JYPTAnLE4nMFIxPVJYPTAnTmp3TicwUjE9Ulg9MCcsTic0WD0xNkEnTmp3Tic0WD0xNkEnLE4nNDBYUjknTmp3Tic2MEc5XzQwWFInLE4nYXEyMjA2PTknTmp3TidsIGFxMjJfNkkyJywnPTE9fTAnTmp3Tic9MT19MCcsTic0WDZSJ05qd04nVjN7ZygpJ04pO1dXCQkkMlg9YW5tREpOak45PTQ9cX1xRzA0KCQyWD1hbm1ESik7V1cJCTE+TihOJFh9fXFHMFJfOXE0PW0kMlg9YW5tREpKTilOJDYwRzlfOXE0PU5qTiRYfX1xRzBSXzlxND1tJDJYPWFubURKSjtXVwkJMT5OKCQyWD1hbm1ESk5qak4iNFg2UiJOKU5VTiQ+MWQwUk5qTiIiO04kNjBHOV8yOXE0PU5qTiIiO04vVwkJVwkJMT4oJDJYPWFubURKTmpqTiIxUl9YOV99MTk9Ik4ze2dOJDFSOV8+cTRfOXE0PSlVVwkJCSQ2MEc5XzlxND1Oak4kMVI5Xz5xNF85cTQ9O1cJCQkkNjBHOV8yOXE0PU5qTiIiO1cJCS9XVwkJMT4oJDJYPWFubURKTmpqTiJ9WDk9QjEwRzBSIilOVVdXCQkJMT4oISRhcTY+MUFtJ31YOT1fQjEwRzBSJ0opTjQwPUk0Nk4kfVg2QW0nMDZYa30wX31YOT1CMTBHMFInSjtXCQlXCQkJMT4oTiEkX1lGRkVNXW0nQjEwRzBSXzFSOSdKTilONDA9STQ2TicnO1cJCQlXCQkJJEIxMEcwUl8xUjlOak4wZGx9cVIwKCcsJyxOPTQxMigkX1lGRkVNXW0nQjEwRzBSXzFSOSdKKSk7VwkJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkJVwkJCTE+KCQ2MEc5XzI5cTQ9TmpqTiIzc1kiKU4kQjEwRzBSXzFSOU5qTlg0NFhMXzQwQjA0OTAoJEIxMEcwUl8xUjkpO1cJCQlXCQkJPnE0MFhhbk4oJEIxMEcwUl8xUjlOWDlOJEJYfUkwKU5VVwkJCQkkQlh9STBOak4xNj1CWH0oPTQxMigkQlh9STApKTtXCQkJCVcJCQkJMT5OKCRCWH1JME53TlspTiQ9MDJsX1g0NFhMbUpOak4kUmstdzlYPjA5eX0oJEJYfUkwKTtXCQkJCVcJCQkvVwkJCVcJCQkxPihOYXFJNj0oJD0wMmxfWDQ0WEwpTilOVVcJCQkJJD4xZDBSTmpOIiI7VwkJCQkkR24wNDBtSk5qTiIxUk5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCQkJJDYwRzlfOXE0PU5qTiJaTXtnX017X3NdSCgxUixOJyIgMTJsfXFSMCgiLCIsTiQ9MDJsX1g0NFhMKSAiJylOIjtXCQkJCSQ2MEc5XzI5cTQ9TmpOIiI7VwkJCQkkYXE2PjFBbSdYfX1xR19hWGFuMCdKTmpOPlh9OTA7VwkJCS9XCQlXCQkvVwkJVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iIzlxND1rTEk5MDRqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXCQlXCQkxPihOJDJYPWFubURKTmpqTiJMMDkiTilOVVcJCQlXCQkJMT5OKDE5OTA9TihOJF9zXXNzTUZ7bSdSfTBfOXE0PV9BfXFrWH0nSk4pKU4kNjBHOV85cTQ9TmpOJF9zXXNzTUZ7bSdSfTBfOXE0PV9BfXFrWH0nSjtXCQkJMT5OKDE5OTA9TihOJF9zXXNzTUZ7bSdSfTBfUjE0MGE9MXE2X0F9cWtYfSdKTikpTiQ2MEc5XzI5cTQ9TmpOJF9zXXNzTUZ7bSdSfTBfUjE0MGE9MXE2X0F9cWtYfSdKO1cJCQlXCQkJMT5OKE4hUjA+MTYwUignWVRzSEZvc0ZWSCcpTilOVVcJCQkJUjA+MTYwKCdZVHNIRm9zRlZIJyxOPTRJMCk7VwkJCS9XCVcJCS9XVwkvVwlXCTE+KE5sNDBBXzJYPWFuKE4iIzZYQjFBWD0xcTZqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXVwkJMT4oTiQyWD1hbm1ESk5qak4iTDA5Ik4ze2dOJEk0fV9sWEEwTiFqak4+WH05ME4pTlVXVwkJCSRrSTF9Ul82WEIxQVg9MXE2TmpOPTRJMDtXCQkJMT5OKDE5OTA9TihOJF90XUhtJ2E5PVg0PSdKTikpTiRhOT1YND1Oak4xNj1CWH1OKE4kX3RdSG0nYTk9WDQ9J0pOKTtOMH05ME4kYTk9WDQ9TmpOWztXVwkJCTE+TigkYTk9WDQ9TndOJGFxNj4xQW0nMlhkX2FYYW4wX2xYQTA5J0opTiRhcTY+MUFtJ1h9fXFHX2FYYW4wJ0pOak4+WH05MDtXVwkJCTE+TigkYTk9WDQ9KU5VVwkJCQkkYTk9WDQ9TmpOJGE5PVg0PU4tTkQ7VwkJCQkkYTk9WDQ9TmpOKCRhOT1YND1OKk4kYUk5PXEyX30xMjE9KU4rTiRhSTk9cTJfPjRxMjtXCQkJCSRhSTk9cTJfPjRxMk5qTiRhOT1YND07VwkJCQkkNDAycUIwX2FYNnE2MWFYfU5qTj00STA7VwkJCS9XCQkJVwkJCSRhSTk9cTJfYVhhbjBfMVJOak4kYUk5PXEyX2FYYW4wXzFSICRhOT1YND07VwkJCVcJCS9OMH05ME4ka0kxfVJfNlhCMUFYPTFxNk5qTj5YfTkwO1dXCS9OMH05ME4ka0kxfVJfNlhCMUFYPTFxNk5qTj5YfTkwO1dXCSRhcTY9MDY9TmpOUn0wX2FYYW4wKCRhWGFuMFoxfTAsTiRhSTk9cTJfYVhhbjBfMVIsTj00STAsTiRhWGFuMEgxMjA5PVgybCk7VwlXCTE+KE4kYXE2PTA2PU4pTlVXVwkJJGFxNj0wNj1Oak5DOXE2X1IwYXFSMCgkYXE2PTA2PSxOPTRJMCk7VwkJVwkJMT4oTjE5X1g0NFhMKE4kYXE2PTA2PU4pTilOVVcJCQlXCQkJMT4oTiRhcTY9MDY9bSc2WEIxQVg9MXE2J0pOKU5VVwkJCQkxPk4oTiFSMD4xNjBSKCdZVHNIRm97M1BNdDNITUZ7JylOKU5VVwkJCQkJUjA+MTYwKCdZVHNIRm97M1BNdDNITUZ7JyxOPTRJMCk7VwkJCQkJJGFJOT1xMl82WEIxQVg9MXE2TmpOJGFxNj0wNj1tJzZYQjFBWD0xcTYnSjtXCQkJCS9XCQkJL1cJCQlXCQkJMT4oTjE5OTA9KE4kWGE9MUIwbSd9WDk9LTJxUjE+MTBSJ0pOKU4pTlVXCQkJCVcJCQkJMT4oTiRYYT0xQjBtJ31YOT0tMnFSMT4xMFInSk53TiRfZ0ZZVG9de0hfZzNIXU4pTlVXCQkJCQkkX2dGWVRvXXtIX2czSF1Oak4kWGE9MUIwbSd9WDk9LTJxUjE+MTBSJ0o7VwkJCQkvVwkJCQlXCQkJL1cJCQkJVwkJCSRhcTY9MDY9TmpOJGFxNj0wNj1tJ2FxNj0wNj0nSjtXCQkJVwkJL1cJL1cJCQkJVwkxPihOJGFxNj0wNj1OIWpqTj5YfTkwTilOVVdXCQkkYXE2PjFBbSdYfX1xR19hWGFuMCdKTmpOJFh9fXFHX2FYYW4wO1cJCSRhSTk9cTJfNjBHOU5qTj00STA7VwkJJDRxR05qTiQ5WEIwXzRxRztXCQlXCQkxPk4oJGFxNj4xQW0nWH19cUdfeUkxYXBfR0w5MUdMQSdKTjN7Z04oJEk5MDRfQTRxSWxtJDIwMmswNF8xUm0nSTkwNF9BNHFJbCdKSm0nWH19cUdfMFIxPSdKTkZWTiRJOTA0X0E0cUlsbSQyMDJrMDRfMVJtJ0k5MDRfQTRxSWwnSkptJ1h9fXFHX1h9fV8wUjE9J0opKU4kWH19cUdfYXEyMjA2PTlfWENYZE5qTj00STA7VwkJCQlXCQk0MD1JNDZOJGFxNj0wNj07VwlXCS9OMH05ME5VV1cJCTE+KE5sNDBBXzJYPWFuKE4iIz1YQTlqbSdcIkooICs/KW0nXCJKIzEiLE4kbFg0WDJfOT00LE4kMlg9YW5OKU4pTlVXVwkJCSQ9MDJsX1g0NFhMTmpOWDQ0WEwoKTtXCQkJVwkJCSQyWD1hbm1ESk5qTjBkbH1xUjBOKCcsJyxOPTQxMigkMlg9YW5tREopKTtXCQkJVwkJCT5xNDBYYW5OKCQyWD1hbm1ESk5YOU4kQlh9STApTlVXCQkJCSRCWH1JME5qTiRSay13OVg+MDl5fSg9NDEyKCRCWH1JMCkpO1cJCQkJMT4oTiRCWH1JME4pTiQ9MDJsX1g0NFhMbUpOak4iPVhBaidVJEJYfUkwLyciO1cJCQkvVwkJCVcJCQkxPk4oTmFxSTY9KCQ9MDJsX1g0NFhMKU4pTlVXCVcJCQkJJD0wMmxfWDQ0WExOak4xMmx9cVIwKCJORlZOIixOJD0wMmxfWDQ0WEwpO1cJCQkJVwkJCQkkUmstd3lJMDRMTihOInNdU11ZSE42MEc5XzFSTlpWRm9OIk4gTmVWXVpNCk4gTiJfPVhBOU5ReF1WXU5VJD0wMmxfWDQ0WEwvIk4pO1dXCQkJCSQ9MDJsX1g0NFhMTmpOWDQ0WExOKCk7VwkJCQlXCQkJCUduMX0wTihOJDRxR05qTiRSay13QTA9XzRxR04oKU4pTlVXCQkJCQlXCQkJCQkxPk4oITE2X1g0NFhMKCQ0cUdtJzYwRzlfMVInSixOJD0wMmxfWDQ0WEwpKU4kPTAybF9YNDRYTG1KTmpOJDRxR20nNjBHOV8xUidKO1cJCQkJVwkJCQkvVwkJCQlXCQkJCTE+TihhcUk2PU4oTiQ9MDJsX1g0NFhMTikpTlVXCQkJCQlXCQkJCQkkR24wNDBtSk5qTiIxUk5Ne04oJyJOIE4xMmx9cVIwKCInLCciLE4kPTAybF9YNDRYTClOIE4iJykiO1cJCQkJVwkJCQkvTjB9OTBOJEduMDQwbUpOak4iMVJOTXtOKCdbJykiO1cJCQkJVwkJCS9XCQkJVwkJL1cJCVcJCSRHbjA0MG1KTmpOIlhsbDRxQjBqRCI7V1cJCTE+KE4kYXE2PjFBbSc2cV9SWD0wJ0pOM3tnTiEkYXE2PjFBbSc2MEc5Xz5JPUk0MCdKTjN7Z04hJFJYTDkpTiRHbjA0MG1KTmpOIlJYPTBOPE4nIk4gTiQ9bjE5Ulg9ME4gTiInIjtXCQlXCQkxPk4oTiRrSTF9Ul82WEIxQVg9MXE2TilOVVcJCQlXCQkJJDl5fV9hcUk2PU5qTiJzXVNdWUhOWUZUe0goKilOWDlOYXFJNj1OWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9TmxOVSRhWD1fQ3ExNi9ReF1WXU4iIDEybH1xUjAoJ04ze2dOJyxOJEduMDQwKTtXVwkJL04wfTkwTiQ5eX1fYXFJNj1Oak4iIjtXVwkJJD1sfU5qTjYwR05SfTBfPTAybH1YPTAoKTtXCQkkPWx9LXdSMTROak5IXW9lUzNIXV9nTVY7CQkJCVcJCSQ9bH0tdzE5X2FJOT1xMk5qTj00STA7V1cJCSQ9bH0td31xWFJfPTAybH1YPTAoTiRhSTk9cTJfPTAybH1YPTBOIE4nID1sfSdOKTtXCVcJCSQ5eX1fOTB9MGE9TiBqTiJOUXhdVl1OIiAxMmx9cVIwKCdOM3tnTicsTiRHbjA0MCkgIk5GVmddVk5pYk4iTiBOJD4xZDBSTiBOJDYwRzlfOXE0PU4gTiJOIk4gTiQ2MEc5XzI5cTQ9TiBOIk5TTW9NSE4iTiBOJGFJOT1xMl8+NHEyTiBOIiwiTiBOJGFJOT1xMl99MTIxPTtXVwkJJDl5fV80MDlJfT1Oak4kUmstd3lJMDRMKE4kOXl9XzkwfTBhPU4pO1dXCQkxNmF9SVIwTihnU11lfUlBMTY5OjpZbjBhcChde3RNe11fZ01WTiBOJzgycVJJfTA5ODlucUcgYUk5PXEyIGxubCcpKTtXVwkJMT4oTiRhcTY+MUFtJz4xfTA5X1h9fXFHJ0pOKU4xPihOOT00bHE5KE4kPWx9LXc0MDlJfT1tJ2FxNj0wNj0nSixOIm1YPT1YYW4yMDY9aiJOKU4hampOPlh9OTBOKU5VVwkJCSQ9bH0tdzQwOUl9PW0nYXE2PTA2PSdKTmpOOW5xR19YPT1YYW4oTiQ9bH0tdzQwOUl9PW0nYXE2PTA2PSdKLE4kWD09WGFuMjA2PTlOKTtXCQkvVwkJVwkJMT5OKE4kYUk5PXEyXzYwRzlOKU5hNDBYPTBfYVhhbjAoJGFYYW4wWjF9MCxOQzlxNl8wNmFxUjAoTlg0NFhMKCdhcTY9MDY9J05qd04kPWx9LXc0MDlJfT1tJ2FxNj0wNj0nSixOJzZYQjFBWD0xcTYnTmp3TiQ9bH0tdzQwOUl9PW0nNlhCMUFYPTFxNidKLE4nfVg5PS0ycVIxPjEwUidOandOJF9nRllUb117SF9nM0hdTilOLE4uc0Z7X1R7XXNZM2VdZ19Ue01ZRmddTnxOLnNGe19Ue11zWTNlXWdfc1Mzc3hdc04pLE4kYUk5PXEyX2FYYW4wXzFSLE49NEkwLE4kYVhhbjBIMTIwOT1YMmxOKTtXCQlXCQkkYXE2PjFBbSdYfX1xR19hWGFuMCdKTmpOJFh9fXFHX2FYYW4wO1cJCSQ9bH0tdzE5X2FJOT1xMk5qTj5YfTkwO1cJCSQ0cUdOak4kOVhCMF80cUc7VwkJVwkJNDA9STQ2TiQ9bH0tdzQwOUl9PW0nYXE2PTA2PSdKO1cJVwkvV1cvV1c+STZhPTFxNk5hbjBhcF8xbCgkMWw5KU5VVwlXCSRfTWVOak5BMD1fMWwoKTtXVwkka31xYXAxbE5qTj5YfTkwO1cJVwkxPihOMTlfWDQ0WEwoTiQxbDlOKU4pTlVXCQlXCQkxPihOOT00bHE5KCRfTWUsTiI6IilOampqTj5YfTkwTilOVVcJCQkkUjB9MTIxPTA0TmpOIiAiO1cJCS9OMH05ME4kUjB9MTIxPTA0TmpOIjoiO1cJCVcJCSQ9bjE5XzFsXzlsfTE9TmpOMGRsfXFSMChOJFIwfTEyMT0wNCxOJF9NZU4pO1cJCSQxbF99MDZBbj1Oak5hcUk2PSgkPW4xOV8xbF85bH0xPSk7VwkJVwkJPnE0MFhhbk4oTiQxbDlOWDlOJDFsX30xNjBOKU5VV1cJCQkkMWxfWDQ0TmpOPTQxMihOJDFsX30xNjBtJzFsJ0pOKTtXCQkJVwkJCTE+KE4kMWxfWDQ0TmpqTiRfTWVOKU5VVwkJCQlXCQkJCSRrfXFhcDFsTmpOJF9NZTtXCQkJCWs0MFhwO1cJCQlXCQkJL04wfTkwMT5OKE5hcUk2PSgwZGx9cVIwTignOCcsTiQxbF9YNDQpKU5qak41TilOVVcJCQkJVwkJCQkxPihOMlg5cDJYPWFuKCRfTWUsTiQxbF9YNDQpTilOVVcJCQkJCSRrfXFhcDFsTmpOJDFsX30xNjBtJzFsJ0o7VwkJCQkJazQwWHA7VwkJCQkvVwkJCQlXCQkJL04wfTkwTlVXCQkJCVcJCQkJJDFsX2FuMGFwXzJYPWFuMDlOak5bO1cJCQkJJFJrXzFsXzlsfTE9TmpOMGRsfXFSMChOJFIwfTEyMT0wNCxOJDFsX1g0NE4pO1dXCQkJCT5xNCgkMV8xTmpOWztOJDFfMU48TiQxbF99MDZBbj07TiQxXzFOKyspTlVXCQkJCQkxPihOJD1uMTlfMWxfOWx9MT1tJDFfMUpOampOJFJrXzFsXzlsfTE9bSQxXzFKTnE0TiRSa18xbF85bH0xPW0kMV8xSk5qak4nKidOKU5VVwkJCQkJCSQxbF9hbjBhcF8yWD1hbjA5TitqTkQ7VwkJCQkJL1cJCQkJVwkJCQkvVwkJCVcJCQkJMT4oTiQxbF9hbjBhcF8yWD1hbjA5TmpqTiQxbF99MDZBbj1OKU5VVwkJCQkJJGt9cWFwMWxOak4kMWxffTE2MG0nMWwnSjtXCQkJCQlrNDBYcDtXCQkJCS9XCQkJLwkJVwkJL1cJL1cJVwk0MD1JNDZOJGt9cWFwMWw7Vy9XVz5JNmE9MXE2Tlh9fXFHMFJfMWwoJDFsX1g0NFhMKU5VVwlXCSQxbF9YNDRYTE5qTj00MTIoTiQxbF9YNDRYTE4pO1dXCSRfTWVOak5BMD1fMWwoKTtXVwkxPihOISQxbF9YNDRYTE4pTlVXCQk0MD1JNDZOPTRJMDtXCS9XCVcJMT4oTjk9NGxxOSgkX01lLE4iOiIpTmpqak4+WH05ME4pTlVXCQkkUjB9MTIxPTA0TmpOIiAiO1cJL04wfTkwTiRSMH0xMjE9MDROak4iOiI7VwlXCSRSa18xbF85bH0xPU5qTjBkbH1xUjAoTiRSMH0xMjE9MDQsTiRfTWVOKTtXCSQxbF99MDZBbj1Oak5hcUk2PSgkUmtfMWxfOWx9MT0pO1cJVwkkMWxfWDQ0WExOak4wZGx9cVIwKE4ifCIsTiQxbF9YNDRYTE4pO1cJVwk+cTQwWGFuTihOJDFsX1g0NFhMTlg5TiQxbE4pTlVXCQlXCQkkMWxOak49NDEyKE4kMWxOKTtXCQlXCQkxPihOJDFsTmpqTiRfTWVOKU5VVwkJCVcJCQk0MD1JNDZOPTRJMDtXCQlXCQkvTjB9OTAxPihOYXFJNj0oMGRsfXFSME4oJzgnLE4kMWwpKU5qak41TilOVVcJCQkJVwkJCTE+KE4yWDlwMlg9YW4oJF9NZSxOJDFsKU4pTjQwPUk0Nk49NEkwO1cJCQkJVwkJL04wfTkwTlVXCQkJVwkJCSQxbF9hbjBhcF8yWD1hbjA5TmpOWztXCQkJJD1uMTlfMWxfOWx9MT1Oak4wZGx9cVIwKE4kUjB9MTIxPTA0LE4kMWxOKTtXCQkJVwkJCT5xNCgkMV8xTmpOWztOJDFfMU48TiQxbF99MDZBbj07TiQxXzFOKyspTlVXCQkJCTE+KE4kPW4xOV8xbF85bH0xPW0kMV8xSk5qak4kUmtfMWxfOWx9MT1tJDFfMUpORlZOJD1uMTlfMWxfOWx9MT1tJDFfMUpOampOJyonTilOVVcJCQkJCSQxbF9hbjBhcF8yWD1hbjA5TitqTkQ7VwkJCQkvVwkJCVcJCQkvVwkJCVcJCQkxPihOJDFsX2FuMGFwXzJYPWFuMDlOampOJDFsX30wNkFuPU4pTjQwPUk0Nk49NEkwO1cJCS9XCVcJL1cJVwk0MD1JNDZOPlh9OTA7Vy9XVz5JNmE9MXE2TjJYOXAyWD1hbigkTWUsTiRZTWdWKU5VVwlXTk5OTn0xOT1OKCRYUlI0MDk5LE4kNjA9Mlg5cClOak4wZGx9cVIwKCc4JyxOJFlNZ1YsTjUpO1dXCTE+KE45PTRscTkoJE1lLE4iICIpTiFqak4+WH05ME4ze2dOOT00bHE5KCRZTWdWLE4iICIpTiFqak4+WH05ME4pTlVXCQlXCQk0MD1JNDZOKE4xbDV9cTZBKCRNZSlOJk5+KChETjw8TihPNU4tTiQ2MD0yWDlwKSlOLU5EKU4pTmpqTjFsNX1xNkFOKCRYUlI0MDk5KTtXCVcJL04wfTkwMT4oTjk9NGxxOSgkTWUsTiI6IilOIWpqTj5YfTkwTjN7Z045PTRscTkoJFlNZ1YsTiI6IilOIWpqTj5YfTkwTilOVVcJCVdOTk5OTk5OTjE+TighKCgwZD0wNjkxcTZffXFYUjBSKCc5cWFwMD05JylOJiZOUjA+MTYwUignM1pfTXtdSGMnKSlOfHxOQDE2MD1fbD1xNignOjpEJykpKU5VV05OTk5OTk5OTk40MD1JNDZOPlh9OTA7V05OTk5OTk5OL1cJCVdOTk5OTk5OTiRrTD0wOTNSUjROak5JNmxYYXAoJzYqJyxOQDE2MD1fbD1xNigkWFJSNDA5OSkpO1dOTk5OTk5OTiRrTD0wOUgwOT1Oak5JNmxYYXAoJzYqJyxOQDE2MD1fbD1xNigkTWUpKTtXV05OTk5OTk5OMT5OKCEka0w9MDkzUlI0Tnx8TiEka0w9MDlIMDk9KU5VV05OTk5OTk5OTk5OTjQwPUk0Nk4+WH05MDtXTk5OTk5OTk4vV1dOTk5OTk5OTj5xNE4oJDFOak5ELE4kYTAxfU5qTmEwMX0oJDYwPTJYOXBOOE5EYyk7TiQxTjxqTiRhMDF9O04rKyQxKU5VV05OTk5OTk5OTk5OTiR9MD49TmpOJDYwPTJYOXBOLU5EY04qTigkMU4tTkQpO1dOTk5OTk5OTk5OTk4kfTA+PU5qTigkfTA+PU48ak5EYylOP04kfTA+PU46TkRjO1dOTk5OTk5OTk5OTk4kMlg5cE5qTn4oW2Q+Pj4+Tnd3TiR9MD49KU4mTltkPj4+PjtXTk5OTk5OTk5OTk5OMT5OKCgka0w9MDkzUlI0bSQxSk4mTiQyWDlwKU4hak4oJGtMPTA5SDA5PW0kMUpOJk4kMlg5cCkpTlVXTk5OTk5OTk5OTk5OTk5OTjQwPUk0Nk4+WH05MDtXTk5OTk5OTk5OTk5OL1dOTk5OTk5OTi9XCQlXCQk0MD1JNDZOPTRJMDtXCQlXCS9XCVcJNDA9STQ2Tj5YfTkwO1dXL1dXPkk2YT0xcTZOYW4wYXBfNjA9ZigkMWxELE4kMWw1KU5VVwlXCTE+KE45PTRscTkoJDFsRCxOIjoiKU5qampOPlh9OTBOKU5VVwkJJFIwfTEyMT0wNE5qTiIgIjtXCS9OMH05ME4kUjB9MTIxPTA0TmpOIjoiO1cJVwkkMWxETmpOMGRsfXFSMChOJFIwfTEyMT0wNCxOJDFsRE4pO1cJJDFsNU5qTjBkbH1xUjAoTiRSMH0xMjE9MDQsTiQxbDVOKTtXCVcJMT4oTiQxbERtW0pOIWpOJDFsNW1bSk4pTjQwPUk0Nk4+WH05MDtXCTE+KE4kMWxEbURKTiFqTiQxbDVtREpOKU40MD1JNDZOPlh9OTA7VwlXCTE+KCRSMH0xMjE9MDROampOIjoiKU5VVwkJMT4oTiQxbERtNUpOIWpOJDFsNW01Sk4pTjQwPUk0Nk4+WH05MDtXCQkxPihOJDFsRG1PSk4hak4kMWw1bU9KTilONDA9STQ2Tj5YfTkwO1cJL1cJVwk0MD1JNDZOPTRJMDtXVy9XVz5JNmE9MXE2TjlucUdfWD09WGFuKCQ5PXE0TCxOJDFSLE4kOT1YPTFhTmpOPlh9OTApTlVXCUF9cWtYfU4kUmssTiRhcTY+MUEsTiR9WDZBLE4kSTkwNF9BNHFJbCxOJDIwMmswNF8xUixOJF9ITW9dLE4kNjBHOV9SWD0wO1dXCSQ+MTZSX0ROak5YNDRYTCgpO1cJJD4xNlJfNU5qTlg0NFhMKCk7VwkkNDBsfVhhMF9ETmpOWDQ0WEwoKTtXCSQ0MGx9WGEwXzVOak5YNDRYTCgpO1dXCSQ9bH1Oak42MEdOUn0wXz0wMmx9WD0wKCk7VwkkPWx9LXdSMTROak5IXW9lUzNIXV9nTVY7VwkkNHFxPU5qTiRhcTY+MUFtJ249PWxfbnEyMF9JNH0nSjtXCVcJMT5OKDk9NGxxOSgkNHFxPSxOIjg4IilOampqTlspTlVXCQkkNHFxPU5qTjE5c3NTKClOP04kNHFxPU5qTiJuPT1sOToiICQ0cXE9TjpOJDRxcT1Oak4ibj09bDoiICQ0cXE9O1cJL04wfTkwMT5OKDk9NGxxOSgkNHFxPSxOIjgiKU5qampOWylOVVcJCSQ0cXE9TmpOMTlzc1MoKU4/TiQ0cXE9TmpOIm49PWw5Ojg4IiAkX3NdVlBdVm0neEhIZV94RnNIJ0ogJDRxcT1OOk4ibj09bDo4OCIgJF9zXVZQXVZtJ3hISGVfeEZzSCdKICQ0cXE9O1cJL1cJVwkxPihOJDk9WD0xYU4pTlVXCQlXCQkxPihOMTlfWDQ0WEwoTiQxUk4pTlg2Uk5hcUk2PShOJDFSTilOKU5VVwkJCSR9MTk9TmpOWDQ0WEwoKTtXCQkJVwkJCT5xNDBYYW5OKE4kMVJOWDlOJEJYfUkwTilOVVcJCQkJJH0xOT1tSk5qTjE2PUJYfSgkQlh9STApO1cJCQkvVwkJCVcJCQkkMVJOak4xMmx9cVIwKE4nLCcsTiR9MTk9Tik7VwkJCVcJCQkkR24wNDBOak4iOT1YPTFhXzFSTk17TihVJDFSLykiO1cJCQlXCQkvTjB9OTBOJEduMDQwTmpOIjk9WD0xYV8xUk5qTiciIDE2PUJYfSgkMVIpICInIjtXCQlXCQkkUmstd3lJMDRMKE4ic11TXVlITipOWlZGb04iTiBOZVZdWk0KTiBOIl85PVg9MWFfPjF9MDlOUXhdVl1OJEduMDQwIk4pO1cJCVcJCSRYNDBYTmpOIiZYNDBYajk9WD0xYSI7VwlXCS9OMH05ME5VVwkJVwkJMT4oTjE5X1g0NFhMKE4kMVJOKU5YNlJOYXFJNj0oTiQxUk4pTilOVVcJCQlXCQkJJH0xOT1Oak5YNDRYTCgpO1cJCQlXCQkJPnE0MFhhbk4oTiQxUk5YOU4kQlh9STBOKU5VVwkJCQkkfTE5PW1KTmpOMTY9Qlh9KCRCWH1JMCk7VwkJCS9XCQkJVwkJCSQxUk5qTjEybH1xUjAoTicsJyxOJH0xOT1OKTtXCQkJVwkJCSRHbjA0ME5qTiI2MEc5XzFSTk17TihVJDFSLykiO1cJCQlXCQkvTjB9OTBOJEduMDQwTmpOIjYwRzlfMVJOak4nIiAxNj1CWH0oJDFSKSAiJyI7VwkJVwkJJFJrLXd5STA0TChOInNdU11ZSE4qTlpWRm9OIk4gTmVWXVpNCk4gTiJfPjF9MDlOUXhdVl1OJEduMDQwIk4pO1cJCVcJCSRYNDBYTmpOIiI7VwlXCS9XVwkxPihOIT4xfTBfMGQxOT05KE4kPWx9LXdSMTROIE4iOFg9PVhhbjIwNj0gPWx9Ik4pTilOVVcJVwkJJD1sfS13PTAybH1YPTBOak48PDx4SG9TV21YfX1xRy1ScUc2fXFYUko8OWxYNk5hfVg5OWoiWD09WGFuMjA2PSJ3PFhObjQwPmoiVX0xNnAvIk53VTZYMjAvPDhYd05tYXFJNj1KTm1VOTFmMC9KTihVJH1YNkFtJ1g9PV9SYXFJNj0nSi9OVWFxSTY9LyltOGFxSTY9Sjw4OWxYNndtOFh9fXFHLVJxRzZ9cVhSSldtNnE9LVh9fXFHLVJxRzZ9cVhSSjw5bFg2TmF9WDk5aiJYPT1YYW4yMDY9IndVJH1YNkFtJ1g9PV9SMDYxMFInSi88ODlsWDZ3bTg2cT0tWH19cUctUnFHNn1xWFJKV3hIb1M7VwlXCQkkPWx9LXdhcWxMXz0wMmx9WD0wTmpOJD1sfS13PTAybH1YPTA7VwlXCS9OMH05ME5VVwkJVwkJJD1sfS13fXFYUl89MDJsfVg9MChOJ1g9PVhhbjIwNj0gPWx9J04pO1cJCVcJL1cJVwlHbjF9ME4oTiQ0cUdOak4kUmstd0EwPV80cUcoKU4pTlVXVwkJJDRxR20nNlgyMCdKTmpOMGRsfXFSMChOIjgiLE4kNHFHbSc2WDIwJ0pOKTtXCQkkNHFHbSc2WDIwJ0pOak4wNlIoTiQ0cUdtJzZYMjAnSk4pO1cJCVcJCSQ+MX0wNlgyMF9YNDROak4wZGx9cVIwKE4iICIsTiQ0cUdtJ3E2OTA0QjA0J0pOKTtXCQkkPUxsME5qTjk9ND1xfXFHMDQoMDZSKE4kPjF9MDZYMjBfWDQ0TikpO1dXCQkkPjE2Ul9EbUpOak4nbVg9PVhhbjIwNj1qJ04gTiQ0cUdtJzFSJ0pOIE4nSic7VwkJJD4xNlJfNW1KTmpOIiNcbVg9PVhhbjIwNj1qVSQ0cUdtJzFSJ0ovOiggKz8pXEojMSI7VwkJVwkJMT4oTiQ0cUdtJzE5X2xJa30xYSdKTilOJElsfXFYUjBSX2xYPW5Oak4nbElrfTFhXz4xfTA5OCc7TjB9OTBOJElsfXFYUjBSX2xYPW5Oak4nPjF9MDk4JztXVwkJMT5OKDk9NDFscTlOKE4kPWx9LXdhcWxMXz0wMmx9WD0wLE4iVTJSdi8iTilOIWpqTj5YfTkwKU5VVwkJCVcJCQkxPigkNHFHbSdhbjBhcDlJMidKKU4kPWx9LXc5MD0oTidVMlJ2LycsTiQ0cUdtJ2FuMGFwOUkyJ0pOKTtXCQkJMH05ME4kPWx9LXc5MD0oTidVMlJ2LycsTkAyUnZfPjF9MChOVkZGSF9nTVZOIE4nOElsfXFYUjk4J04gTiRJbH1xWFIwUl9sWD1uICQ0cUdtJ3E2OTA0QjA0J0pOKU4pO1cJCQlXCQkvV1cJCTE+Tig5PTQxbHE5TihOJD1sfS13YXFsTF89MDJsfVg9MCxOIlU5MWYwLyJOKU4hampOPlh9OTApTlVXCQkJVwkJCTE+KCQ0cUdtJzkxZjAnSilOJD1sfS13OTA9KE4nVTkxZjAvJyxOPnE0Mlg9OTFmMCgkNHFHbSc5MWYwJ0opTik7VwkJCTB9OTBOJD1sfS13OTA9KE4nVTkxZjAvJyxOPnE0Mlg9OTFmMChOQD4xfTA5MWYwKE5WRkZIX2dNVk4gTic4SWx9cVhSOTgnTiBOJElsfXFYUjBSX2xYPW4gJDRxR20ncTY5MDRCMDQnSk4pTilOKTtXCQkJVwkJL1cJCVcJCSQyMWE0cTlxPj1fMGQ9TmpOWDQ0WEwoIlJxYSIsTiJScWFkIixOIlJxYTIiLE4iUnE9MiIsTiJScT1kIixOImR9OWQiLE4iZH05ayIsTiJkfTkiLE4iZH05MiIsTiJsbD1kIixOImxsOWQiLE4ibGw9IixOImxsOSIsTiJsbD0yIixOImxxPTIiLE4ibGxYMiIsTiJscT1kIixOImxsOTIiLE4icVI9IixOInFSZCIpO1cJCSRBcXFBfTBfMGQ9TmpOWDQ0WEwoImxSPiIpO1dXCQkxPk4oTjE2X1g0NFhMKCQ9TGwwLE4kMjFhNHE5cT49XzBkPSlORlZOMTZfWDQ0WEwoJD1MbDAsTiRBcXFBfTBfMGQ9KU4pTlVXVwkJCSQ9bH0tdzkwPShOJ21YfX1xRy1xNn0xNjBKJyxOIiJOKTtXCQkJJD1sfS13OTA9KE4nbThYfX1xRy1xNn0xNjBKJyxOIiJOKTtXVwkJCTE+KDE2X1g0NFhMKCQ9TGwwLE4kMjFhNHE5cT49XzBkPSkpTlVXCQkJCSQ9bH0tdzkwPSgnVXE2fTE2MC1CMTBHLX0xNnAvJyxOIm49PWw5Ojg4QjEwRyBxPj4xYTBYbGw5IH0xQjAgYXEyOHFsOEIxMEcgWDlsZD85NGFqIk4gTkk0fTA2YXFSMCgkNHFxPU4gTiIxNlIwZCBsbmw/UnFqUnFHNn1xWFImMVJqIk4gTiQ0cUdtJzFSJ0pOIE4kWDQwWE4gTiImQjEwR3E2fTE2MGpEIikpO1cJCQkvTjB9OTBOVVcJCQkJJD1sfS13OTA9KCdVcTZ9MTYwLUIxMEctfTE2cC8nLE4ibj09bDk6ODhScWE5IEFxcUF9MCBhcTI4QjEwRzA0P0k0fWoiTiBOSTR9MDZhcVIwKCQ0cXE9TiBOIjE2UjBkIGxubD9ScWpScUc2fXFYUiYxUmoiTiBOJDRxR20nMVInSk4gTiRYNDBYTiBOIiZCMTBHcTZ9MTYwakQiKSk7VwkJCS9XCQkJV1cJCS9OMH05ME5VVwkJCVcJCQkkPWx9LXc5MD0oTidVcTZ9MTYwLUIxMEctfTE2cC8nLE4iIk4pO1cJCQkkPWx9LXc5MD1fa31xYXAoTiInXFxtWH19cUctcTZ9MTYwXFxKKCAqPylcXG04WH19cUctcTZ9MTYwXFxKJzkxIixOIiJOKTtXCQkJVwkJL1cJCVcJCTE+TihOJEk5MDRfQTRxSWxtJDIwMmswNF8xUm0nSTkwNF9BNHFJbCdKSm0nWH19cUdfPjF9MDknSk4pTlVXCQkJVwkJCSQ9bH0tdzkwPShOJ21YfX1xRy1ScUc2fXFYUkonLE4iIk4pO1cJCQkkPWx9LXc5MD0oTidtOFh9fXFHLVJxRzZ9cVhSSicsTiIiTik7VwkJCSQ9bH0tdzkwPV9rfXFhcChOIidcXG02cT0tWH19cUctUnFHNn1xWFJcXEooICo/KVxcbTg2cT0tWH19cUctUnFHNn1xWFJcXEonOTEiLE4iIk4pO1cJCQkJCVcJCS9OMH05ME5VVwkJCVcJCQkkPWx9LXc5MD0oTidtNnE9LVh9fXFHLVJxRzZ9cVhSSicsTiIiTik7VwkJCSQ9bH0tdzkwPShOJ204NnE9LVh9fXFHLVJxRzZ9cVhSSicsTiIiTik7VwkJCSQ9bH0tdzkwPV9rfXFhcChOIidcXG1YfX1xRy1ScUc2fXFYUlxcSiggKj8pXFxtOFh9fXFHLVJxRzZ9cVhSXFxKJzkxIixOIiJOKTtXCQkJVwkJL1cJCVcJCTE+TihOJGFxNj4xQW0nPjF9MDlfYXFJNj0nSk4pTlVXCQkJJD1sfS13OTA9KE4nVWFxSTY9LycsTiQ0cUdtJ1JhcUk2PSdKTik7VwkJCSQ9bH0tdzkwPShOJ21hcUk2PUonLE4iIk4pO1cJCQkkPWx9LXc5MD0oTidtOGFxSTY9SicsTiIiTik7VwkJCSQ9bH0tdzkwPV9rfXFhcChOIidcXG02cT0tWH19cUctYXFJNj1cXEooICo/KVxcbTg2cT0tWH19cUctYXFJNj1cXEonOTEiLE4iIk4pO1cJCQkJCVcJCS9OMH05ME5VVwkJCSQ9bH0tdzkwPShOJ1VhcUk2PS8nLE4iIk4pOwkJCVcJCQkkPWx9LXc5MD0oTidtNnE9LVh9fXFHLWFxSTY9SicsTiIiTik7VwkJCSQ9bH0tdzkwPShOJ204NnE9LVh9fXFHLWFxSTY9SicsTiIiTik7VwkJCSQ9bH0tdzkwPV9rfXFhcChOIidcXG1hcUk2PVxcSiggKj8pXFxtOGFxSTY9XFxKJzkxIixOIiJOKTtXCQkJVwkJL1cJCVcJCTE+KE5SWD0wKE4nYjJSJyxOJDRxR20nUlg9MCdKTilOampOUlg9MChOJ2IyUicsTiRfSE1vXU4pTilOVVcJCQlXCQkJJD1sfS13OTA9KE4nVVJYPTAvJyxOJH1YNkFtJz0xMjBfbjBJPTAnSk4gTn1YNkFSWD0wKE4iLE54OjEiLE4kNHFHbSdSWD0wJ0pOKU4pO1cJCVcJCS9OMH05MDE+KE5SWD0wKE4nYjJSJyxOJDRxR20nUlg9MCdKTilOampOUlg9MChOJ2IyUicsTigkX0hNb11OLU51Y3pbWylOKU4pTlVXCQkJVwkJCSQ9bH0tdzkwPShOJ1VSWD0wLycsTiR9WDZBbSc9MTIwX0EwOT0wNDYnSk4gTn1YNkFSWD0wKE4iLE54OjEiLE4kNHFHbSdSWD0wJ0pOKU4pO1cJCVcJCS9OMH05ME5VVwkJCVcJCQkkPWx9LXc5MD0oTidVUlg9MC8nLE59WDZBUlg9MChOJGFxNj4xQW0nPTEyMDk9WDJsX1hhPTFCMCdKLE4kNHFHbSdSWD0wJ0pOKU4pO1cJCVcJCS9XVwkJJDYwRzlfUlg9ME5qTiQ0cUdtJ1JYPTAnSjtXCQkkPWx9LXdhcWxMXz0wMmx9WD0wTmpObDQwQV80MGx9WGEwX2FYfX1rWGFwTihOIiNcVVJYPTBqKCArPylcLyMxIixOIj5xNDJSWD0wIixOJD1sfS13YXFsTF89MDJsfVg9ME4pO1cJCVcJCSQ9bH0tdzkwPShOJ1U2WDIwLycsTiQ0cUdtJzZYMjAnSk4pO1cJCSQ9bH0tdzkwPShOJ1UwZD0wNjkxcTYvJyxOJD1MbDBOKTtXCQkkPWx9LXc5MD0oTidVfTE2cC8nLE4kYXE2PjFBbSduPT1sX25xMjBfSTR9J0ogIjE2UjBkIGxubD9ScWpScUc2fXFYUiYxUmoiICQ0cUdtJzFSJ0ogJFg0MFhOKTtXCQkkPWx9LXc5MD0oTidVMVIvJyxOJDRxR20nMVInSk4pO1dXCQkkPWx9LXdhcTJsMX0wKE4nWD09WGFuMjA2PSdOKTtXCQlXCQkkNDBsfVhhMF9EbUpOak4kPWx9LXc0MDlJfT1tJ1g9PVhhbjIwNj0nSjtXCQlXCQkkPWx9LXc0MDlJfT1tJ1g9PVhhbjIwNj0nSk5qTjk9NF80MGx9WGEwKE4kNHFHbSc2WDIwJ0osTiJcXEQiLE4kPWx9LXc0MDlJfT1tJ1g9PVhhbjIwNj0nSk4pO1cJCVcJCSQ0MGx9WGEwXzVtSk5qTiQ9bH0tdzQwOUl9PW0nWD09WGFuMjA2PSdKO1cJCVcJCSQ9bH0tdzQwOUl9PW0nWD09WGFuMjA2PSdKTmpOJyc7V1cJL1cJVwkkPWx9LXdhfTBYNCgpO1cJJFJrLXc+NDAwKCk7V1cJJDk9cTRMTmpOOT00XzQwbH1YYTBOKE4kPjE2Ul9ELE4kNDBsfVhhMF9ELE4kOT1xNExOKTtXCSQ5PXE0TE5qTmw0MEFfNDBsfVhhMChOJD4xNlJfNSxOJDQwbH1YYTBfNSxOJDk9cTRMTik7VwlXCTQwPUk0Nk4kOT1xNEw7V1cvV1c+STZhPTFxNk5kPjEwfVI5fXFYUigkbDRxPjF9ME5qTj5YfTkwKU5VVwlBfXFrWH1OJH1YNkEsTiRhcTY+MUE7VwlXCTE+KE4kbDRxPjF9ME4pTiRsWD1uTmpOXXt0TXtdX2dNVk4gTic4Ulg9WDhkbDRxPjF9MCA9ZD0nO1cJMH05ME4kbFg9bk5qTl17dE17XV9nTVZOIE4nOFJYPVg4ZD4xMH1SOSA9ZD0nO1cJVwkkPjF9MGFxNj0wNj05TmpOPjF9MChOJGxYPW5OKTtXCSQ+MTB9UjlOak5YNDRYTCgpO1cJJD0ybF9YNDROak5YNDRYTCgpO1cJVwkxPihOITE5X1g0NFhMKE4kPjF9MGFxNj0wNj05TilOKU5VVwkJVwkJNDA9STQ2Tlg0NFhMKCk7VwlXCS9OMH05MDE+KE5hcUk2PSgkPjF9MGFxNj0wNj05KU4pTlVXCQlXCQk+cTQwWGFuTihOJD4xfTBhcTY9MDY9OU5YOU4kNlgyME5qd04kQlh9STBOKU5VVwkJCTE+KE49NDEyKCRCWH1JMClOKU5VVwkJCQkkPTJsX1g0NE5qTjBkbH1xUjAoTiJ8IixOPTQxMigkQlh9STAsTiJcPVw2XDRcW1xkW2kiKU4pO1cJCQkJPnE0MFhhbk4oTiQ9MmxfWDQ0Tlg5TiQ2WDIwNU5qd04kQlh9STA1TilOVVcJCQkJCSRCWH1JMDVOak45PTRfNDBsfVhhMChOIiYjRDV6OyIsTiJ8IixOJEJYfUkwNU4pO1cJCQkJCSRCWH1JMDVOak45PTRfNDBsfVhhMChOIl9fe11RU19fIixOIlw0XDYiLE4kQlh9STA1Tik7VwkJCQkJJEJYfUkwNU5qTm49Mn1fMDY9MT1MX1IwYXFSMCgkQlh9STA1LE5de0hfS1RGSF1zLE4kYXE2PjFBbSdhblg0OTA9J0opO1cJCQkJCSQ+MTB9UjltJDZYMjBKbSQ2WDIwNUpOak4kQlh9STA1O1cJCQkJL1cJCQkvVwkJL1cJCVcJCTQwPUk0Nk4kPjEwfVI5O1cJL1cJVwk0MD1JNDZOWDQ0WEwoKTtXL1dXPkk2YT0xcTZOZD4xMH1SOVJYPVh9cVhSKCQxUilOVVcJVwkxPihOITE5Xzk9NDE2QSgkMVIpTkZWTiEkMVJOKU40MD1JNDZOWDQ0WEwoKTtXCVcJJGQ+MTB9UjlSWD1YTmpOMGRsfXFSMChOInx8IixOJDFSTik7VwlXCT5xNDBYYW5OKE4kZD4xMH1SOVJYPVhOWDlOJGQ+MTB9UlJYPVhOKU5VVwkJfTE5PU4oTiRkPjEwfVJSWD1YNlgyMCxOJGQ+MTB9UlJYPVhCWH1JME4pTmpOMGRsfXFSMChOInwiLE4kZD4xMH1SUlg9WE4pO1cJCSRkPjEwfVJSWD1YNlgyME5qTjk9NF80MGx9WGEwKE4iJiNENXo7IixOInwiLE4kZD4xMH1SUlg9WDZYMjBOKTtXCQkkZD4xMH1SUlg9WDZYMjBOak45PTRfNDBsfVhhMChOIl9fe11RU19fIixOIlw0XDYiLE4kZD4xMH1SUlg9WDZYMjBOKTtXCQkkZD4xMH1SUlg9WEJYfUkwTmpOOT00XzQwbH1YYTAoTiImI0Q1ejsiLE4ifCIsTiRkPjEwfVJSWD1YQlh9STBOKTtXCQkkZD4xMH1SUlg9WEJYfUkwTmpOOT00XzQwbH1YYTAoTiJfX3tdUVNfXyIsTiJcNFw2IixOJGQ+MTB9UlJYPVhCWH1JME4pO1cJCSRSWD1YbSRkPjEwfVJSWD1YNlgyMEpOak49NDEyKCRkPjEwfVJSWD1YQlh9STApO1cJL1cJVwk0MD1JNDZOJFJYPVg7Vy9XVz5JNmE9MXE2TmF9MFg0XzQ5OV9hcTY9MDY9TihOJGFxNj0wNj0sTiQ0OTkycVIwTilOVVcJVwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMF9hWH19a1hhcChOIiM8UjFCTmF9WDk5am0nXCJKeUlxPTBfa3FSTE5hcTY9MDY9MFIxPVhrfTBtJ1wiSncoICs/KTw4UjFCdyMxOSIsTj5JNmE9MXE2TigkMlg9YW4wOSlOVVdOTk5OTk5OTk5OTk40MD1JNDZOPTQxMigkMlg9YW4wOW1ESik7V05OTk5OTk5OLyxOJGFxNj0wNj1OKTtXCVcJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTBfYVh9fWtYYXAoTiIjPFIxQk5hfVg5OWptJ1wiSnlJcT0wbSdcIkp3KCArPyk8OFIxQncjMTkiLE4+STZhPTFxNk4oJDJYPWFuMDkpTlVXTk5OTk5OTk5OTk5ONDA9STQ2Tj00MTIoJDJYPWFuMDltREopO1dOTk5OTk5OTi8sTiRhcTY9MDY9Tik7VwkJVwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMF9hWH19a1hhcChOIiM8UjFCTmF9WDk5am0nXCJKeUlxPTBfa31xYXBONnE2YXE2PTA2PTBSMT1Ya30wbSdcIkp3KCArPyk8OFIxQncjMTkiLE4+STZhPTFxNk4oJDJYPWFuMDkpTlVXTk5OTk5OTk5OTk5ONDA9STQ2TiI8a31xYXB5SXE9MHciID00MTIoJDJYPWFuMDltREopICI8OGt9cWFweUlxPTB3IjtXTk5OTk5OTk4vLE4kYXE2PTA2PU4pO1cJVwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMChOIiNcbW4xUjAoICo/KVxKKCArPylcbThuMVIwXEojMTkiLE4iIixOJGFxNj0wNj1OKTtXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKE4iJ1xtWD09WGFuMjA2PWooICo/KVxKJzkxIixOIiIsTiRhcTY9MDY9Tik7CVcJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoTiIjPCEtLVJ9MF85bHExfTA0KCArPyk8IS0tOWxxMX0wNF89MGQ9LS13IzE5IixOIiIsTiRhcTY9MDY9Tik7VwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMChOIiM8IS0tOWxxMX0wNF89MGQ9XzA2Ui0tdyggKz8pPCEtLThSfTBfOWxxMX0wNC0tdyMxOSIsTiIiLE4kYXE2PTA2PU4pO1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoTiInVWtYNjYwNF8oICo/KS8nOTEiLE4iIixOJGFxNj0wNj1OKTtXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKE4iJ1xcbWtYNjYwNF8oICo/KVxcSiggKj8pXFxtOGtYNjYwNF8oICo/KVxcSic5MSIsTiIiLE4kYXE2PTA2PU4pO1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoJyM8OWE0MWw9bV53Sip3ICo/PDg5YTQxbD13IzE5JyxOJycsTiRhcTY9MDY9Tik7VwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMChOIiM8IS0tKCArPyktLXcjMTkiLE4iIixOJGFxNj0wNj1OKTtXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKCc4XDkrOEknLE4nTicsTiRhcTY9MDY9KTtXCVcJNDA9STQ2Tj00MTIoJGFxNj0wNj0pO1dXL1dXPkk2YT0xcTZOYX0wWDRfYXE2PTA2PSgkYXE2PTA2PSxOJH0wNk5qTk9bWyxOJDQwbH1YYTBfOTE2QX0wX3lJcT0wTmpOPTRJMClOVVdXCUF9cWtYfU4kYXE2PjFBO1dXCTE+TighJGFxNj0wNj1OcTROITE5Xzk9NDE2QSgkYXE2PTA2PSkpTlVXCQk0MD1JNDZOJyc7VwkvV1cJJDQwMnFCME5qTlg0NFhMKCJcZGNbIixOIlw9IixOIlw2IixOIlw0IixOJ1w9JyxOJ1w2JyxOJ1w0JyxOIlVlM3RdaVZdM0UvIixOIiY2azlsOyIsTiI8azROOHciLE4iPGs0dyIsTiJOLCIpO1cJJH0wNk5qTjE2PUJYfSgkfTA2KTtXVwkkYXE2PTA2PU5qTjk9NDFsOX1YOW4wOSgkYXE2PTA2PSk7V1cJJGFxNj0wNj1Oak5uPTJ9XzA2PTE9TF9SMGFxUjAoJGFxNj0wNj0sTl17SF9LVEZIXXNOfE5de0hfeEhvU3YsTiRhcTY+MUFtJ2FuWDQ5MD0nSik7V1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoIiNcbW4xUjAoICo/KVxKKCArPylcbThuMVIwXEojMTkiLE4iIixOJGFxNj0wNj0pO1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoIidcbVg9PVhhbjIwNj1qKCAqPylcSic5MSIsTiIiLE4kYXE2PTA2PSk7VwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMCgiJ1xtbFhBMGooICo/KVxKKCAqPylcbThsWEEwXEonOTEiLE4iIixOJGFxNj0wNj0pO1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoIiM8IS0tUn0wXzlscTF9MDQoICs/KTwhLS05bHExfTA0Xz0wZD0tLXcjMTkiLE4iIixOJGFxNj0wNj0pO1cJJGFxNj0wNj1Oak5sNDBBXzQwbH1YYTAoIiM8IS0tOWxxMX0wNF89MGQ9XzA2Ui0tdyggKz8pPCEtLThSfTBfOWxxMX0wNC0tdyMxOSIsTiIiLE4kYXE2PTA2PSk7VwkkYXE2PTA2PU5qTmw0MEFfNDBsfVhhMCgiJ1VrWDY2MDRfKCAqPykvJzkxIixOIiIsTiRhcTY9MDY9KTtXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKCInXFxta1g2NjA0XyggKj8pXFxKKCAqPylcXG04a1g2NjA0XyggKj8pXFxKJzkxIixOIiIsTiRhcTY9MDY9KTtXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKCIjPGw0MCggKj8pdyggKz8pPDhsNDB3IzE5IixOIiIsTiRhcTY9MDY9KTtXCSRhcTY9MDY9TmpOOT00XzQwbH1YYTAoIiYjRFtoNTsiLE4iWCIsTiRhcTY9MDY9KTtXCSRhcTY9MDY9TmpOOT00XzQwbH1YYTAoIiYjREREOyIsTiJxIixOJGFxNj0wNj0pO1cJJGFxNj0wNj1Oak45PTRfNDBsfVhhMCgidzwiLE4id048IixOJGFxNj0wNj0pO1dXCSRhcTY9MDY9TmpOOT00XzQwbH1YYTAoJDQwMnFCMCxOJ04nLE4kYXE2PTA2PSk7VwkkYXE2PTA2PU5qTjk9NDFsXz1YQTkoJGFxNj0wNj0pO1dXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKCIjKF58XDl8dykoKG49PWx8bj09bDkpOjg4XEcrbV5cOVxtXEpcPEorKSMxIixOJycsTiRhcTY9MDY9KTtXVwkxPk4oJDQwbH1YYTBfOTE2QX0wX3lJcT0wKU5VVwkJJGFxNj0wNj1Oak45PTRfNDBsfVhhMCgiJlgybDtYMmw7IixOIiZYMmw7IixObj0yfTlsMGExWH1hblg0OSgkYXE2PTA2PSxOXXtIX0tURkhdcyxOJGFxNj4xQW0nYW5YNDkwPSdKKSk7VwkvTjB9OTBOVVcJCSRhcTY9MDY9TmpOOT00XzQwbH1YYTAoIiZYMmw7WDJsOyIsTiImWDJsOyIsTm49Mn05bDBhMVh9YW5YNDkoJGFxNj0wNj0sTl17SF9ZRm9lM0gsTiRhcTY+MUFtJ2FuWDQ5MD0nSikpO1cJL1dXCSRhcTY9MDY9TmpObDQwQV80MGx9WGEwKCc4XDkrOEknLE4nTicsTiRhcTY9MDY9KTtXVwkxPk4oJH0wNk5YNlJOJH0wNk53TkQpTlVXVwkJMT5OKFJ9MF85PTR9MDYoJGFxNj0wNj0sTiRhcTY+MUFtJ2FuWDQ5MD0nSilOd04kfTA2KU5VV1cJCQkkYXE2PTA2PU5qTlJ9MF85SWs5PTQoJGFxNj0wNj0sTlssTiR9MDYsTiRhcTY+MUFtJ2FuWDQ5MD0nSik7V1cJCQkxPk4oKCQ9MDJsX1IyWGROak5SfTBfOT00NGxxOSgkYXE2PTA2PSxOJ04nLE4kYXE2PjFBbSdhblg0OTA9J0opKSlOJGFxNj0wNj1Oak5SfTBfOUlrOT00KCRhcTY9MDY9LE5bLE4kPTAybF9SMlhkLE4kYXE2PjFBbSdhblg0OTA9J0opO1cJCS9XCS9XVwk0MD1JNDZOPTQxMigkYXE2PTA2PSk7Vy9XVz5JNmE9MXE2TmE0MFg9MF9wMExHcTRSOSgkOT1xNEwpTlVXCUF9cWtYfU4kMjA9WD1YQTksTiRhcTY+MUE7VwlXCSRwMExHcTRSX2FxSTY9TmpONVs7VwkkNjBHWDQ0TmpOWDQ0WExOKCk7V1cJJGtYUl9wMExHcTRSOV85TDJrcX1Oak5YNDRYTCgiLCIsTiIgIixOIjgiLE4iIyIsTiI6IixOIkAiLE4ifiIsTiJqIixOIi0iLE4iKyIsTiIqIixOIl4iLE4iJSIsTiIkIixOIj8iLE4iISIpO1cJJDQwMnFCME5qTlg0NFhMKCdcPScsTidcNicsTidcNCcpO1cJVwkkOT1xNExOak45PTRfNDBsfVhhMChOJDQwMnFCMCxOJ04nLE45PTQxbDl9WDluMDkoJDk9cTRMKU4pO1cJVwkkOT1xNExOak5hfTBYNF9hcTY9MDY9KCQ5PXE0TCxOWyxOPlh9OTApO1cJVwkkMjA9WD1YQTltJ1IwOWE0MWw9MXE2J0pOak4kOT1xNEw7V1cJMT4oTlJ9MF85PTR9MDYoTiQyMD1YPVhBOW0nUjA5YTQxbD0xcTYnSixOJGFxNj4xQW0nYW5YNDkwPSdKTilOd05PW1tOKU5VVwkJVwkJJDIwPVg9WEE5bSdSMDlhNDFsPTFxNidKTmpOUn0wXzlJazk9NChOJDk9cTRMLE5bLE5PW1ssTiRhcTY+MUFtJ2FuWDQ5MD0nSk4pO1cJVwkJMT4oTigkPTAybF9SMlhkTmpOUn0wXzk9NDRscTkoTiQyMD1YPVhBOW0nUjA5YTQxbD0xcTYnSixOJ04nLE4kYXE2PjFBbSdhblg0OTA9J0pOKSlOKU4kMjA9WD1YQTltJ1IwOWE0MWw9MXE2J0pOak5SfTBfOUlrOT00KE4kMjA9WD1YQTltJ1IwOWE0MWw9MXE2J0osTlssTiQ9MDJsX1IyWGQsTiRhcTY+MUFtJ2FuWDQ5MD0nSk4pO1dXCS9XCVcJJDk9cTRMTmpOOT00XzQwbH1YYTAoTiRrWFJfcDBMR3E0UjlfOUwya3F9LE4nJyxOJDk9cTRMTik7VwlXCSRYNDROak4wZGx9cVIwKE4iTiIsTiQ5PXE0TE4pO1cJVwk+cTQwWGFuTihOJFg0NE5YOU4kR3E0Uk4pTlVXCQkkR3E0Uk5qTjk9NF80MGx9WGEwKCImWDJsOyIsTiImIixOJEdxNFIpOwkJVwkJMT4oTlJ9MF85PTR9MDYoTiRHcTRSLE4kYXE2PjFBbSdhblg0OTA9J0pOKU53TnpOKU4kNjBHWDQ0bUpOak4kR3E0UjtXCS9XCVcJJFg0NE5qTlg0NFhMX2FxSTY9X0JYfUkwOShOJDYwR1g0NE4pO1cJWDQ5cTQ9KE4kWDQ0Tik7VwlXCSRYNDROak5YNDRYTF9wMEw5KE4kWDQ0Tik7VwlXCSRxPj45MD1Oak5bO1cJVwkkWDQ0TmpOWDQ0WExfOX0xYTAoTiRYNDQsTiRxPj45MD0sTiRwMExHcTRSX2FxSTY9Tik7VwlXCSQyMD1YPVhBOW0ncDBMR3E0UjknSk5qTjEybH1xUjAoTiIsTiIsTiRYNDROKTtXCVcvV1c+STZhPTFxNk42MEc5X2wwNDIxOTkxcTYoJDFSKU5VVwlXCTE+KE4kMVJOampOIiJOKU40MD1JNDY7VwlXCSRSWD1YTmpOWDQ0WExOKCk7VwkkQTRxSWw5TmpOMGRsfXFSMChOInx8IixOJDFSTik7Vwk+cTQwWGFuTihOJEE0cUlsOU5YOU4kQTRxSWxOKU5VVwkJfTE5PU4oTiRBNHFJbDFSLE4kQTRxSWxCWH1JME4pTmpOMGRsfXFSMChOIjoiLE4kQTRxSWxOKTtXCQkkUlg9WG0kQTRxSWwxUkpOak4kQTRxSWxCWH1JMDtXCS9XCTQwPUk0Nk4kUlg9WDtXL1dXPkk2YT0xcTZOa1g2NjA0Mlg5OSgkPjA5PSxOJDJYOTkxQilOVVcJVwkxPihOMTlfWDQ0WEwoJDJYOTkxQilOM3tnTmFxSTY9KCQyWDk5MUIpTilOVVcJCTQwPUk0Nk4kPjA5PU4gTiQyWDk5MUJtWDQ0WExfNFg2UihOJDJYOTkxQk4pSm0nPTBkPSdKO1cJL04wfTkwTjQwPUk0Nk4kPjA5PTtXVy9XVz5JNmE9MXE2TkEwPV85SWtfYVg9OSgkMVIsTiQ5SWthWD0wQXE0TE5qTicnLE4kRzE9bl8xUk5qTj00STApTlVXCVcJQX1xa1h9TiRhWD1fMTY+cTtXCSQ5SWs+cUk2Uk5qTlg0NFhMTigpO1cJVwkxPihOISQ5SWthWD0wQXE0TE4ze2dOJEcxPW5fMVIpTiQ5SWthWD0wQXE0TE5qTiQxUjtXCVcJPnE0MFhhbk4oTiRhWD1fMTY+cU5YOU4kYVg9OU4pTlVXCQkxPihOJGFYPTltJ2xYNDA2PTFSJ0pOampOJDFSTilOVVcJCQkkOUlrPnFJNlJtSk5qTiRhWD05bScxUidKO1cJCS9XCS9XCVcJPnE0MFhhbk4oTiQ5SWs+cUk2Uk5YOU4kbFg0MDY9MVJOKU5VVwkJVwkJMT4oTiQ5SWthWD0wQXE0TE4pTiQ5SWthWD0wQXE0TE4gak4ifCI7VwkJVwkJJDlJa2FYPTBBcTRMTiBqTiRsWDQwNj0xUjtXCQkkOUlrYVg9MEFxNExOak5BMD1fOUlrX2FYPTkoTiRsWDQwNj0xUixOJDlJa2FYPTBBcTRMTik7VwkJVwkvVwlXCTQwPUk0Nk4kOUlrYVg9MEFxNEw7V1cvV1c+STZhPTFxNk5hbjBhcF9kOTkoKU5VV1cJJEk0fU5qTm49Mn1fMDY9MT1MX1IwYXFSMChOSTR9UjBhcVIwKE4kX3NdVlBdVm0nS1RdVmJfc0hWTXt0J0pOKSxOXXtIX0tURkhdcyxOJ01zRi11dXY3LUQnTik7VwkkSTR9TmpOOT00XzQwbH1YYTAoTiJcXCIsTiI4IixOJEk0fU4pO1dXCTE+TigxOTkwPSgkX3RdSG0nUnEnSilOM3tnTiRfdF1IbSdScSdKTmpqTiJkPjkwWDRhbiIpTlVXVwkJJD5Oak5uPTJ9XzA2PTE9TF9SMGFxUjAoTkk0fVIwYXFSMChOJF90XUhtJ2Q+J0pOKSxOXXtIX0tURkhdcyxOJ01zRi11dXY3LUQnTik7V1cJCSRhcUk2PUROak45SWs5PTRfYXFJNj1OKCQ+LE4iJyIpO1cJCSRhcUk2PTVOak45SWs5PTRfYXFJNj1OKCRJNH0sTiInIik7V1cJCTE+TihOJGFxSTY9RE5qak4kYXFJNj01TjN7Z04oOT00bHE5KE4kSTR9LE4nPCdOKU5qampOPlh9OTApTjN7Z04oOT00bHE5KE4kSTR9LE4ndydOKU5qampOPlh9OTApTjN7Z04oOT00bHE5KE4kSTR9LE4nIGxubCdOKU5qampOPlh9OTApTilONDA9STQ2O1dXCS9XVwkxPk4oMTk5MD0oJF90XUhtJ1JxJ0opTjN7Z04kX3RdSG0nUnEnSk5qak4iPVhBOSIpTlVXVwkJJD5Oak5uPTJ9XzA2PTE9TF9SMGFxUjAoTkk0fVIwYXFSMChOJF90XUhtJz1YQSdKTiksTl17SF9LVEZIXXMsTidNc0YtdXV2Ny1EJ04pO1dXCQkkYXFJNj1ETmpOOUlrOT00X2FxSTY9TigkPixOIiciKTtXCQkkYXFJNj01TmpOOUlrOT00X2FxSTY9TigkSTR9LE4iJyIpO1dXCQkxPk4oTiRhcUk2PUROampOJGFxSTY9NU4ze2dOKDk9NGxxOShOJEk0fSxOJzwnTilOampqTj5YfTkwKU4ze2dOKDk9NGxxOShOJEk0fSxOJ3cnTilOampqTj5YfTkwKU4ze2dOKDk9NGxxOShOJEk0fSxOJyA4J04pTmpqak4+WH05MClOM3tnTig5PTRscTkoTiRJNH0sTicgIDgnTilOampqTj5YfTkwKU4ze2dOKDk9NGxxOShOJEk0fSxOJyBsbmwnTilOampqTj5YfTkwKU4pTjQwPUk0NjtXVwkvVwlXCTE+KE4kSTR9TilOVVcJCVcJCTE+KE4oOT00bHE5KE4kSTR9LE4nPCdOKU4hampOPlh9OTApTnx8Tig5PTRscTkoTiRJNH0sTid3J04pTiFqak4+WH05MClOfHxOKDk9NGxxOShOJEk0fSxOJyA4J04pTiFqak4+WH05MClOfHxOKDk9NGxxOShOJEk0fSxOJyAgOCdOKU4hampOPlh9OTApTnx8Tig5PTRscTkoTiRJNH0sTidcJydOKU4hampOPlh9OTApTnx8Tig5PTRscTkoTiRJNH0sTicgbG5sJ04pTiFqak4+WH05MClOKU5VVwkJCTE+KE4kX3RdSG0nUnEnSk4hak4iOTBYNGFuIk5GVk4kX3RdSG0nOUlrWGE9MXE2J0pOIWpOIjkwWDRhbiJOKU5VVwkJCQluMFhSMDQoTiJ4SEhlOEQgRE56W09OWnE0azFSUjA2Ik4pO1cJCQkJUjEwKE4ieFhhcDE2QU5YPT0wMmw9ISJOKTtXCQkJL1cJCS9XCVcJL1cJVwkkSTR9TmpObj0yfV8wNj0xPUxfUjBhcVIwKE5JNH1SMGFxUjAoTiRfc11WUF1WbSdWXUtUXXNIX1RWTSdKTiksTl17SF9LVEZIXXMsTidNc0YtdXV2Ny1EJ04pO1cJJEk0fU5qTjk9NF80MGx9WGEwKE4iXFwiLE4iOCIsTiRJNH1OKTtXCVcJMT4oTiRJNH1OKU5VVwkJVwkJMT4oTig5PTRscTkoTiRJNH0sTic8J04pTiFqak4+WH05MClOfHxOKDk9NGxxOShOJEk0fSxOJ3cnTilOIWpqTj5YfTkwKU58fE4oOT00bHE5KE4kSTR9LE4nXCcnTilOIWpqTj5YfTkwKU4pTlVXCQkJMT4oTiRfdF1IbSdScSdKTiFqTiI5MFg0YW4iTkZWTiRfdF1IbSc5SWtYYT0xcTYnSk4hak4iOTBYNGFuIk4pTlVXCQkJCW4wWFIwNChOInhISGU4RCBETnpbT05acTRrMVJSMDYiTik7VwkJCQlSMTAoTiJ4WGFwMTZBTlg9PTAybD0hIk4pO1cJCQkvVwkJVwkJL1cJVwkvV1cvV1c+STZhPTFxNk5hbjBhcF85WDIwX1JxMlgxNigkSTR9KU5VVwlBfXFrWH1OJGFxNj4xQTtXCVcJJEk0fU5qTlJ9MF85PTQ9cX1xRzA0KE4oOT00MTZBKWxYNDkwX0k0fShOKDk9NDE2QSkkSTR9LE5leGVfVFZTX3hGc0gpKTtXCSRCWH1JME5qTlJ9MF85PTQ9cX1xRzA0KE4oOT00MTZBKWxYNDkwX0k0fSgkYXE2PjFBbSduPT1sX25xMjBfSTR9J0osTmV4ZV9UVlNfeEZzSCkpO1cJVwkxPihOISRCWH1JME4pTiRCWH1JME5qTiRfc11WUF1WbSd4SEhlX3hGc0gnSjtXVwkxPihOISRJNH1ORlZOJEk0fU5qak4kQlh9STBOKU40MD1JNDZOPTRJMDtXCVcJNDA9STQ2Tj5YfTkwO1cvVwlXPkk2YT0xcTZOMT5fYVg9MEFxNExfNFg9MTZBKE4kYVg9MEFxNExOKU5VVwlBfXFrWH1OJGFYPV8xNj5xO1cJVwkkYVg9MEFxNExOak4wZGx9cVIwKE4nLCcsTiRhWD0wQXE0TE4pO1cJVwkkPnFJNlJOak4+WH05MDtXCVcJPnE0MFhhbk4oTiRhWD0wQXE0TE5YOU4kMH0wMjA2PU4pTlVXCQkJVwkJMT4oTjE5OTA9KE4kYVg9XzE2PnFtJDB9MDIwNj1KbSc0WD0xNkFfPUxsMCdKTilOM3tnTiRhWD1fMTY+cW0kMH0wMjA2PUptJzRYPTE2QV89TGwwJ0pOd04tRE4pTlVXCQkJNDA9STQ2TiRhWD1fMTY+cW0kMH0wMjA2PUptJzRYPTE2QV89TGwwJ0o7VwkJL1cJVwkvVwlXCTQwPUk0Nk4kPnFJNlI7Vy9XVz5JNmE9MXE2TmFuMGFwX2FYPTBBcTRMKE4kMlg9YW4wOWpYNDRYTCgpTilOVVcJQX1xa1h9TiRhWD0wQXE0TF8xUjtXVwkka31xYXBOak4kMlg9YW4wOW1PSjtXCSRhWD0wQXE0TE5qTiRhWD0wQXE0TF8xUjtXVwkkPTAybF9YNDRYTE5qTlg0NFhMKCk7V1cJJDJYPWFuMDltNUpOak45PTRfNDBsfVhhMCgiTiIsTiIiLE4kMlg9YW4wOW01Sk4pO1cJJDJYPWFuMDltNUpOak4wZGx9cVIwTignLCcsTiQyWD1hbjA5bTVKKTtXVwk+cTQwWGFuTigkMlg9YW4wOW01Sk5YOU4kQlh9STApTlVXVwkJMT4oTmFxSTY9KDBkbH1xUjAoJy0nLE4kQlh9STApKU5qak41TilOJD0wMmxfWDQ0WExtSk5qTkEwPV8yWDk5X2FYPTkoJEJYfUkwKTtXCQkwfTkwTiQ9MDJsX1g0NFhMbUpOak4xNj1CWH0oJEJYfUkwKTtXVwkvV1cJJD0wMmxfWDQ0WExOak4xMmx9cVIwKCcsJyxOJD0wMmxfWDQ0WEwpO1dXCTE+TigkMlg9YW4wOW1ESk5qak4iYVg9MEFxNEwiTkZWTiQyWD1hbjA5bURKTmpqTiJhWD19MTk9IilOJFhhPTFxNk5qTj00STA7TjB9OTBOJFhhPTFxNk5qTj5YfTkwO1cJVwkkYVg9OU5qTjBkbH1xUjAoTicsJyxOJD0wMmxfWDQ0WExOKTtXCSRhWD0wQXE0TE5qTjBkbH1xUjAoTicsJyxOJGFYPTBBcTRMTik7VwkkPnFJNlJOak4+WH05MDtXCVcJPnE0MFhhbk4oTiRhWD0wQXE0TE5YOU4kMH0wMjA2PU4pTlVXCQlXCQkxPihOJFhhPTFxNk4pTlVXCQkJVwkJCTE+KE4xNl9YNDRYTChOJDB9MDIwNj0sTiRhWD05TilOKU5VVwkJCQlXCQkJCTQwPUk0Nk4ka31xYXA7VwkJCS9XCQlXCQkvTjB9OTBOVVcJCQlXCQkJMT4oTjE2X1g0NFhMKE4kMH0wMjA2PSxOJGFYPTlOKU4pTlVXCQkJCSQ+cUk2Uk5qTj00STA7VwkJCS9XCQlXCQkvVwlXCS9XVwkxPk4oTiEkWGE9MXE2TjN7Z04hJD5xSTZSTilOVQlXVwkJNDA9STQ2TiRrfXFhcDtXCS9XVwk0MD1JNDZOIiI7V1cvV1c+STZhPTFxNk5hfTBYNl9JNH0oJEk0fSlOVVcJVwkxPihOJEk0fU5qak4nJ04pTjQwPUk0NjtXCVcJJEk0fU5qTjk9NF80MGx9WGEwKE4ibj09bDo4OCIsTiIiLE45PTQ9cX1xRzA0KE4kSTR9TilOKTtXCSRJNH1Oak45PTRfNDBsfVhhMChOIm49PWw5Ojg4IixOIiIsTiRJNH1OKTtXCTE+KE45SWs5PTQoTiRJNH0sTlssTjVOKU5qak4nODgnTilOJEk0fU5qTjk9NF80MGx9WGEwKE4iODgiLE4iIixOJEk0fU4pO1cJMT4oTjlJazk9NChOJEk0fSxOWyxOek4pTmpqTidHR0cgJ04pTiRJNH1Oak45SWs5PTQoTiRJNH0sTnpOKTtXCSRJNH1Oak4wZGx9cVIwKE4nOCcsTiRJNH1OKTtXCSRJNH1Oak40MDkwPShOJEk0fU4pO1cJJEk0fU5qTjBkbH1xUjAoTic6JyxOJEk0fU4pO1cJJEk0fU5qTjQwOTA9KE4kSTR9Tik7VwlXCTQwPUk0Nk4kSTR9O1cvV1c+STZhPTFxNk5BMD1fSTR9KCQxUilOVVcJVwlBfXFrWH1OJGFYPV8xNj5xO1dXCSRhWD1fMVJOak4+WH05MDtXCVcJMT4oTiEkMVJOKU40MD1JNDZOIiI7V1cJJDFSTmpOMGRsfXFSME4oIiwiLE4kMVIpO1dXCT5xNDBYYW5OKCQxUk5YOU4kQlh9KU5VVwkJVwkJJEJYfU5qTjE2PUJYfSgkQlh9KTtXCQlXCQkxPk4oTiRCWH1OM3tnTiRhWD1fMTY+cW0kQlh9Sm0nMVInSk4pTlVXCQkJJGFYPV8xUk5qTiRCWH07VwkJCWs0MFhwO1cJCS9XCQlXCS9XCVcJMT4oTiEkYVg9XzFSTilONDA9STQ2TiIiO1cJVwkkMVJOak4kYVg9XzFSO1cJVwkkbFg0MDY9XzFSTmpOJGFYPV8xNj5xbSQxUkptJ2xYNDA2PTFSJ0o7VwlXCSRJNH1Oak4kYVg9XzE2PnFtJDFSSm0nWH09XzZYMjAnSjtXCVcJR24xfTBOKE4kbFg0MDY9XzFSTilOVVcJCVcJCTE+KE4hJGFYPV8xNj5xbSRsWDQwNj1fMVJKbScxUidKTilOVVcJCQlrNDBYcDtXCQkvVwkJVwkJJEk0fU5qTiRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nWH09XzZYMjAnSk4gTiI4Ik4gTiRJNH07VwkJVwkJJGxYNDA2PV8xUk5qTiRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nbFg0MDY9MVInSjtXVwkJMT4oJGxYNDA2PV8xUilOVQlXCQkJMT4oTiRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nbFg0MDY9MVInSk5qak4kYVg9XzE2PnFtJGxYNDA2PV8xUkptJzFSJ0pOKU5rNDBYcDtXCQkvVwlXCS9XCVcJNDA9STQ2TiRJNH07Vy9XVz5JNmE9MXE2TkEwPV9hWD0wQXE0MTA5KCQxUixOJDkwbFg0WD1xNGoiTiY0WHlJcTsiKU5VVwlXCUF9cWtYfU4kYVg9XzE2PnEsTiRhcTY+MUEsTiRleGVfc11TWjtXCVcJMT4oTiFOJDFSTilONDA9STQ2O1cJVwkkbFg0MDY9XzFSTmpOJGFYPV8xNj5xbSQxUkptJ2xYNDA2PTFSJ0o7VwlXCTE+KE4kYXE2PjFBbSdYfX1xR19YfT1fSTR9J0pOKU4kfTE5PU5qTiI8WE5uNDA+alwiIk4gTiRhcTY+MUFtJ249PWxfbnEyMF9JNH0nSk4gTkEwPV9JNH0oTiQxUk4pTiBOIjhcIndVJGFYPV8xNj5xbSQxUkptJzZYMjAnSi88OFh3IjtXCTB9OTBOJH0xOT1Oak4iPFhObjQwPmpcIiRleGVfc11TWj9ScWphWD0mWDJsO2FYPTBBcTRMalUkYVg9XzE2PnFtJDFSSm0nWH09XzZYMjAnSi9cIndVJGFYPV8xNj5xbSQxUkptJzZYMjAnSi88OFh3IjtXCVcJR24xfTBOKE4kbFg0MDY9XzFSTilOVVcJCVcJCTE+KE4kYXE2PjFBbSdYfX1xR19YfT1fSTR9J0pOKU4kfTE5PU5qTiI8WE5uNDA+alwiIk4gTiRhcTY+MUFtJ249PWxfbnEyMF9JNH0nSk4gTkEwPV9JNH0oTiRsWDQwNj1fMVJOKU4gTiI4XCJ3VSRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nNlgyMCdKLzw4WHciTiBOJDkwbFg0WD1xNE4gTiR9MTk9O1cJCTB9OTBOJH0xOT1Oak4iPFhObjQwPmpcIiRleGVfc11TWj9ScWphWD0mWDJsO2FYPTBBcTRMalUkYVg9XzE2PnFtJGxYNDA2PV8xUkptJ1h9PV82WDIwJ0ovXCJ3VSRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nNlgyMCdKLzw4WHciTiBOJDkwbFg0WD1xNE4gTiR9MTk9O1cJCVcJCSRsWDQwNj1fMVJOak4kYVg9XzE2PnFtJGxYNDA2PV8xUkptJ2xYNDA2PTFSJ0o7V1cJCTE+KE4hMTk5MD0oJGFYPV8xNj5xbSRsWDQwNj1fMVJKbScxUidKKU5GVk4oTjE5OTA9KCRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nMVInSilOM3tnTiEkYVg9XzE2PnFtJGxYNDA2PV8xUkptJzFSJ0opTilOVVcJCQlrNDBYcDtXCQkvVwkJVwkJMT4oJGxYNDA2PV8xUilOVQkJVwkJCTE+KE4kYVg9XzE2PnFtJGxYNDA2PV8xUkptJ2xYNDA2PTFSJ0pOampOJGFYPV8xNj5xbSRsWDQwNj1fMVJKbScxUidKTilOazQwWHA7VwkJL1dXCS9XVwk0MD1JNDZOJH0xOT07Vy9XVz5JNmE9MXE2TkEwPV9rNDBYUmE0STJrYVg9MEFxNDEwOSgkMVIsTiQ5MGxYNFg9cTRqIiY0WHlJcTsiLE4kfVg5PV99MTZwTmpOPTRJMClOVVcJVwlBfXFrWH1OJGFYPV8xNj5xLE4kYXE2PjFBLE4kZXhlX3NdU1osTiQwfTAyMDY9OSxOJGxxOTE9MXE2O1cJVwkxPihOISQxUk4pTjQwPUk0NjtXCVcJJGxYNDA2PV8xUk5qTiRhWD1fMTY+cW0kMVJKbSdsWDQwNj0xUidKO1cJJH0xOT1Oak4kPTAybE5qTlg0NFhMKCk7VwkkMU5qTls7V1cJMT4oTiRhcTY+MUFtJ1h9fXFHX1h9PV9JNH0nSk4pTiR9MTk9bVtKbSd9MTZwJ0pOak4kYXE2PjFBbSduPT1sX25xMjBfSTR9J0pOIE5BMD1fSTR9KE4kMVJOKU4gTiI4IjtXCTB9OTBOJH0xOT1tW0ptJ30xNnAnSk5qTiJVJGV4ZV9zXVNaLz9ScWphWD0mWDJsO2FYPTBBcTRMalUkYVg9XzE2PnFtJDFSSm0nWH09XzZYMjAnSi8iO1cJCVcJMT5OKCEkfVg5PV99MTZwKQlVVwkJVwkJJH0xOT1tW0ptJ0k0MSdKTmpOJH0xOT1tW0ptJ30xNnAnSjtXCQlJNjkwPSgkfTE5PW1bSm0nfTE2cCdKKTtXCQlXCS9XCVcJJH0xOT1tW0ptJzZYMjAnSk5qTiRhWD1fMTY+cW0kMVJKbSc2WDIwJ0o7VwlXCUduMX0wTihOJGxYNDA2PV8xUk4pTlVXCQkkMSsrO1cJCVcJCTE+KE4kYXE2PjFBbSdYfX1xR19YfT1fSTR9J0pOKU4kfTE5PW0kMUptJ30xNnAnSk5qTiRhcTY+MUFtJ249PWxfbnEyMF9JNH0nSk4gTkEwPV9JNH0oTiRsWDQwNj1fMVJOKU4gTiI4IjtXCQkwfTkwTiR9MTk9bSQxSm0nfTE2cCdKTmpOIlUkZXhlX3NdU1ovP1JxamFYPSZYMmw7YVg9MEFxNExqVSRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nWH09XzZYMjAnSi8iO1cJCVcJCSR9MTk9bSQxSm0nNlgyMCdKTmpOJGFYPV8xNj5xbSRsWDQwNj1fMVJKbSc2WDIwJ0o7VwkJJGxYNDA2PV8xUk5qTiRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nbFg0MDY9MVInSjtXVwkJMT4oTiExOTkwPSgkYVg9XzE2PnFtJGxYNDA2PV8xUkptJzFSJ0opTkZWTihOMTk5MD0oJGFYPV8xNj5xbSRsWDQwNj1fMVJKbScxUidKKU4ze2dOISRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nMVInSilOKU5VVwkJCWs0MFhwO1cJCS9XCQlXCQkxPigkbFg0MDY9XzFSKU5VCQlXCQkJMT4oTiRhWD1fMTY+cW0kbFg0MDY9XzFSSm0nbFg0MDY9MVInSk5qak4kYVg9XzE2PnFtJGxYNDA2PV8xUkptJzFSJ0pOKU5rNDBYcDtXCQkvVwkJVwkvV1cJMT4oYXFJNj0oJH0xOT0pKU5VVwkJVwkJJH0xOT1Oak5YNDRYTF80MEIwNDkwKCR9MTk9KTtXCQlXCQk+cTQwWGFuKCR9MTk9Tlg5TiRCWH1JMClOVVcJCQlXCQkJMT4oTjE5OTA9KCRCWH1JMG0nfTE2cCdKKU4ze2dOJEJYfUkwbSd9MTZwJ0opTlVXCQkJCSQ9MDJsbUpOak4iPFhObjQwPmpcIlUkQlh9STBtJ30xNnAnSi9cIndVJEJYfUkwbSc2WDIwJ0ovPDhYdyI7O1cJCQkvTjB9OTBOVVcJCQkJJD0wMmxtSk5qTiRCWH1JMG0nNlgyMCdKO1cJCQkJJEJYfUkwbSd9MTZwJ0pOak4kQlh9STBtJ0k0MSdKO1cJCQkvVwkJCVcJCQkkMH0wMjA2PTltSk5qTlg0NFhMKFcJCQkJJ0A9TGwwJwkJandOIlMxOT1NPTAyIixXCQkJCSdscTkxPTFxNicJandOJGxxOTE9MXE2LFcJCQkJJzE9MDInCQlqd05YNDRYTChXCQkJCQknQDFSJwlqd04kQlh9STBtJ30xNnAnSixXCQkJCQknNlgyMCcJandOJEJYfUkwbSc2WDIwJ0osVwkJCQkpVwkJCSk7VwkJCSRscTkxPTFxNisrO1cJCVcJCS9XCQlXCQkkfTE5PU5qTiQ9MDJsO1cJLwlXCVcJNDA9STQ2TjEybH1xUjAoJDkwbFg0WD1xNCxOJH0xOT0pO1cvV1c+STZhPTFxNk42MEc5XzlxND0oJFJxKU5VVwlXCUF9cWtYfU4kYXE2PjFBLE4kfVg2QSxOJGFYPTBBcTRMXzFSLE4kYVg9XzE2PnE7V1cJMT4oTiFOJFJxTilOJFJxTmpOIjJYMTYiO1cJVwkkPjE2Ul85cTQ9TmpOIlJ9MF85cTQ9XyJOIE4kUnE7VwkkUjE0MGE9MXE2XzlxND1Oak4iUn0wX1IxNDBhPTFxNl8iTiBOJFJxO1dXCTE+KCRScU5qak4iYVg9Ik4ze2dOJGFYPTBBcTRMXzFSKU5VVwkJJD4xNlJfOXE0PU4gak4iXyIgJGFYPTBBcTRMXzFSO1cJCSRSMTQwYT0xcTZfOXE0PU4gak4iXyIgJGFYPTBBcTRMXzFSO1cJL1cJVwkkPjE2Ul85cTQ9TmpOOT00XzQwbH1YYTAoTiIgIixOIiIsTiQ+MTZSXzlxND1OKTtXCSRSMTQwYT0xcTZfOXE0PU5qTjk9NF80MGx9WGEwKE4iICIsTiIiLE4kUjE0MGE9MXE2XzlxND1OKTtXCVcJJDlxND1Oak5YNDRYTE4oKTtXCSRYfX1xRzBSXzlxND1Oak5YNDRYTE4oJ1JYPTAnLE4nNFg9MTZBJyxOJzYwRzlfNDBYUicsTidhcTIyXzZJMicsJz0xPX0wJyxOJzBSMT1SWD0wJ04pO1cJVwkkOXE+PV9rTF9YNDRYTE5qTlg0NFhMTihXVwkJJ1JYPTAnTmp3Tlg0NFhMTihOJzZYMjAnTmp3TiR9WDZBbSc5cTQ9X2tMX1JYPTAnSixOJ0JYfUkwJ05qd04iUlg9MCIsTidSMTQwYT0xcTYnTmp3TiJSMDlhIixOJzEyWEEwJ05qd04iYX1YOTlqXCI5cTQ9X2tMX1JYPTBcIiJOKSxXCQknMFIxPVJYPTAnTmp3Tlg0NFhMKE4nNlgyMCdOandOJH1YNkFtJzlxND1fa0xfMFJYPTAnSixOJ0JYfUkwJ05qd04iMFIxPVJYPTAiLE4nUjE0MGE9MXE2J05qd04iUjA5YSIsTicxMlhBMCdOandOImF9WDk5alwiOXE0PV9rTF8wUjE9Ulg9MFwiIiksVwkJJzRYPTE2QSdOandOWDQ0WExOKE4nNlgyMCdOandOJH1YNkFtJzlxND1fa0xfNFg9MTZBJ0osTidCWH1JMCdOandOIjRYPTE2QSIsTidSMTQwYT0xcTYnTmp3TiJSMDlhIixOJzEyWEEwJ05qd04iYX1YOTlqXCI5cTQ9X2tMXzRYPTE2QVwiIk4pLE5XCQknNjBHOV80MFhSJ05qd05YNDRYTE4oTic2WDIwJ05qd04kfVg2QW0nOXE0PV9rTF80MFhSJ0osTidCWH1JMCdOandOIjYwRzlfNDBYUiIsTidSMTQwYT0xcTYnTmp3TiJSMDlhIixOJzEyWEEwJ05qd04iYX1YOTlqXCI5cTQ9X2tMXzYwRzlfNDBYUlwiIk4pLE5XCQknYXEyMl82STInTmp3Tlg0NFhMTihOJzZYMjAnTmp3TiR9WDZBbSc5cTQ9X2tMX2FxMjInSixOJ0JYfUkwJ05qd04iYXEyMl82STIiLE4nUjE0MGE9MXE2J05qd04iUjA5YSIsTicxMlhBMCdOandOImF9WDk5alwiOXE0PV9rTF9hcTIyXzZJMlwiIk4pLE5XCQknPTE9fTAnTmp3Tlg0NFhMTihOJzZYMjAnTmp3TiR9WDZBbSc5cTQ9X2tMXz0xPX0wJ0osTidCWH1JMCdOandOIj0xPX0wIixOJ1IxNDBhPTFxNidOandOIlIwOWEiLE4nMTJYQTAnTmp3TiJhfVg5OWpcIjlxND1fa0xfPTE9fTBcIiJOKVdXCU4pO1dXCTE+KE4hJGFxNj4xQW0nWH19cUdfYXEyMjA2PTknSk4pTlVOSTY5MD0oJFh9fXFHMFJfOXE0PW1PSik7Tkk2OTA9KCQ5cT49X2tMX1g0NFhMbSdhcTIyXzZJMidKKTtOL1cJCVcJMT4oTjE5OTA9KE4kX3Ndc3NNRnttJFIxNDBhPTFxNl85cTQ9Sk4pTjN7Z04oJF9zXXNzTUZ7bSRSMTQwYT0xcTZfOXE0PUpOampOIlIwOWEiTkZWTiRfc11zc01Ge20kUjE0MGE9MXE2XzlxND1KTmpqTiJYOWEiKU4pTiRSMTQwYT0xcTZOak4kX3Ndc3NNRnttJFIxNDBhPTFxNl85cTQ9SjtXCTB9OTBOJFIxNDBhPTFxNk5qTiRhcTY+MUFtJzYwRzlfMjlxND0nSjtXVwkxPihOMTk5MD0oTiRfc11zc01Ge20kPjE2Ul85cTQ9Sk4pTjN7Z04kX3Ndc3NNRnttJD4xNlJfOXE0PUpOM3tnTjE2X1g0NFhMKE4kX3Ndc3NNRnttJD4xNlJfOXE0PUosTiRYfX1xRzBSXzlxND1OKU4pTiQ5cT49X2tMTmpOJF9zXXNzTUZ7bSQ+MTZSXzlxND1KO1cJMH05MDE+KE4kUnFOampOImFYPSJOM3tnTiRhWD1fMTY+cW0kYVg9MEFxNExfMVJKbSc2MEc5XzlxND0nSk4pTiQ5cT49X2tMTmpOJGFYPV8xNj5xbSRhWD0wQXE0TF8xUkptJzYwRzlfOXE0PSdKO1cJMH05ME4kOXE+PV9rTE5qTiRhcTY+MUFtJzYwRzlfOXE0PSdKO1cJVwkxPihOOT00PXF9cUcwNChOJFIxNDBhPTFxNk4pTmpqTiJYOWEiTilOVVcJCVcJCSQ5cT49X2tMX1g0NFhMbSQ5cT49X2tMSm0nMTJYQTAnSk5qTiJhfVg5OWpcIlIwOWFOOXE0PV9rTF9VJDlxPj1fa0wvXCIiO1cJCSQ5cT49X2tMX1g0NFhMbSQ5cT49X2tMSm0nUjE0MGE9MXE2J0pOak4iUjA5YSI7VwlXCS9OMH05ME5VVwkJVwkJJDlxPj1fa0xfWDQ0WExtJDlxPj1fa0xKbScxMlhBMCdKTmpOImF9WDk5alwiWDlhTjlxND1fa0xfVSQ5cT49X2tML1wiIjtXCQkkOXE+PV9rTF9YNDRYTG0kOXE+PV9rTEptJ1IxNDBhPTFxNidKTmpOIlg5YSI7VwkvVwlXCT5xNDBYYW5OKE4kOXE+PV9rTF9YNDRYTE5YOU4kQlh9STBOKU5VVwkJVwkJJDlxND1tSk5qTiI8fTFOIk4gTiRCWH1JMG0nMTJYQTAnSk4gTiJ3PFhObjQwPmpcIiNcIk5xNmF9MWFwalwiUn0wX2FuWDZBMF85cTQ9KCdVJEJYfUkwbSdCWH1JMCdKLycsJ1UkQlh9STBtJ1IxNDBhPTFxNidKLycpO040MD1JNDZOPlh9OTA7XCJ3Ik4gTiRCWH1JMG0nNlgyMCdKTiBOIjw4WHc8OH0xdyI7VwkvVwlXCSQ5cTQ9TmpOMTJsfXFSMCgkOXE0PSk7VwlXCSQ5cTQ9TmpOPDw8eEhvU1c8PnE0Mk42WDIwaiI2MEc5XzkwPV85cTQ9Ik4xUmoiNjBHOV85MD1fOXE0PSJOMjA9bnFSaiJscTk9IndXPEl9TmF9WDk5aiI5cTQ9IndVJDlxND0vPDhJfXdXPDE2bEk9Tj1MbDBqIm4xUlIwNiJONlgyMGoiUn0wNjBHOTlxND1rTCJOMVJqIlJ9MDYwRzk5cTQ9a0wiTkJYfUkwaiJVJGFxNj4xQW0nNjBHOV85cTQ9J0ovIndXPDE2bEk9Tj1MbDBqIm4xUlIwNiJONlgyMGoiUn0wUjE0MGE9MXE2Ik4xUmoiUn0wUjE0MGE9MXE2Ik5CWH1JMGoiVSRhcTY+MUFtJzYwRzlfMjlxND0nSi8id1c8MTZsST1OPUxsMGoibjFSUjA2Ik42WDIwaiI5MD1fNjBHXzlxND0iTjFSaiI5MD1fNjBHXzlxND0iTkJYfUkwaiJVJD4xNlJfOXE0PS8id1c8MTZsST1OPUxsMGoibjFSUjA2Ik42WDIwaiI5MD1fUjE0MGE9MXE2XzlxND0iTjFSaiI5MD1fUjE0MGE9MXE2XzlxND0iTkJYfUkwaiJVJFIxNDBhPTFxNl85cTQ9LyJ3Vzw4PnE0MndXeEhvUztXCVcJNDA9STQ2TiQ5cTQ9O1cvV1c+STZhPTFxNk5hcTJsWDQwXz1YQTkoJFgsTiRrKU5VVwlXCTE+KE4kWG0nPVhBJ0pOampOJGttJz1YQSdKTilONDA9STQ2Tls7VwlXCTQwPUk0Nk45PTRhWDkwYTJsKE4kWG0nPVhBJ0osTiRrbSc9WEEnSk4pO1dXL1dXPkk2YT0xcTZOYXE2QjA0PV9JNjFhcVIwKCQ9LE4kPXFOak4nJylOVVc4OE5SMGw0MGFYPTBSVwk0MD1JNDZOJD07Vy9XVz5JNmE9MXE2TmtJMX1SX0M5KCRDOSxOJGFxNj4xQSlOVVcJQX1xa1h9TiQ9bH07VwlXCSRDOV9YNDRYTE5qTlg0NFhMKCk7VwkkMGQ9NFhfQzlfWDQ0WExOak5YNDRYTCgpO1cJJDQwPUk0Nl9DOU5qTicnO1cJVwkkMWpbO1cJJFIwPjA0TmpOIiI7VwlXCSRhcTY+MUFtJ0N5STA0TF9CMDQ5MXE2J0pOak4xNj1CWH0oJGFxNj4xQW0nQ3lJMDRMX0IwNDkxcTYnSik7VwlXCSRCMDROak4kYXE2PjFBbSdDeUkwNExfQjA0OTFxNidKTj9OJGFxNj4xQW0nQ3lJMDRMX0IwNDkxcTYnSk46TiIiO1dXCTE+KE4xOV9YNDRYTCgkPWx9LXdDOV9YNDRYTClOM3tnTmFxSTY9KCQ9bH0td0M5X1g0NFhMKU4pTlVXCQlXCQk+cTQwWGFuTihOJD1sfS13QzlfWDQ0WExOWDlOJEM5Xz4xfTApTlVXCQkJVwkJCSRDOV8+MX0wTmpOOT00XzE0MGx9WGEwKE4nVUh4XW9dLycsTic9MDJsfVg9MDk4J04gTiRhcTY+MUFtJzlwMTYnSixOJEM5Xz4xfTBOKTtXCQkJVwkJCTE+KE4kQzlfPjF9MG1bSk5qak4nOCdOKU5VVwkJCQkkQzlfPjF9ME5qTjlJazk9NCgkQzlfPjF9MCxORCk7VwkJCS9XCQkJVwkJCTE+KE45PTQxbHE5KCRDOV8+MX0wLE4nbj09bDo4OCcpTmpqak5bTkZWTjk9NDFscTkoJEM5Xz4xfTAsTiduPT1sOTo4OCcpTmpqak5bTilOVVcJCQkJJDBkPTRYX0M5X1g0NFhMbUpOak4kQzlfPjF9MDtXCQkJL04wfTkwTiRDOW1KTmpOJEM5Xz4xfTA7VwkJCVcJCS9XCVcJLwlXVwkxPk4oJGFxNj4xQW0nQzlfMjE2J0opTlVXVwkJJEM5X1g0NFhMbUpOak4iPDlhNDFsPU45NGFqXCJVJGFxNj4xQW0nbj09bF9ucTIwX0k0fSdKLzA2QTE2MDhhfVg5OTA5ODIxNjgxNlIwZCBsbmw/QWpBMDYwNFh9VSRCMDQvJlgybDtCalUkYXE2PjFBbSdhWGFuMF8xUidKL1widzw4OWE0MWw9dyI7V1cJCSRSMD5YSX09X1g0NFhMTmpOWDQ0WExOKFcJCQkiMDZBMTYwOGF9WDk5MDk4Qzk4Q3lJMDRMSTFVJEIwNC8gQzkiLFcJCQknMDZBMTYwOGF9WDk5MDk4Qzk4Un0wX0M5IEM5JyxXCQkpO1dXCQkxPk4oTmFxSTY9KCRDOSlOKU4kQzlOak5YNDRYTF8yMDRBMCgkUjA+WEl9PV9YNDRYTCxOJEM5KTtOMH05ME4kQzlOak4kUjA+WEl9PV9YNDRYTDtXCQlXCQkkQzlfWDQ0WExtSk5qTiI8OWE0MWw9Tjk0YWpcIlUkYXE2PjFBbSduPT1sX25xMjBfSTR9J0ovMDZBMTYwOGF9WDk5MDk4MjE2ODE2UjBkIGxubD8+aiIgMTJsfXFSMCgiLCIsTiRDOSkgIiZYMmw7QmpVJGFxNj4xQW0nYVhhbjBfMVInSi9cIk5SMD4wNHc8ODlhNDFsPXciO1dXCQkkNDA9STQ2X0M5TmpOMTJsfXFSMCgiXDYiLE4kQzlfWDQ0WEwpO1dXCS9OMH05ME5VV1cJCSRSMD5YSX09X1g0NFhMTmpOWDQ0WExOKFcJCQkiMDZBMTYwOGF9WDk5MDk4Qzk4Q3lJMDRMVSRCMDQvIEM5IixXCQkJIjA2QTE2MDhhfVg5OTA5OEM5OEN5STA0TEkxVSRCMDQvIEM5IixXCQkJJzA2QTE2MDhhfVg5OTA5OEM5OFJ9MF9DOSBDOScsVwkJKTtXVwkJMT5OKE5hcUk2PSgkQzkpTilOJEM5TmpOWDQ0WExfMjA0QTAoJFIwPlhJfT1fWDQ0WEwsTiRDOSk7TjB9OTBOJEM5TmpOJFIwPlhJfT1fWDQ0WEw7V1cJCT5xNDBYYW5OKCRDOU5YOU4kQlh9STApTlVXCQkJMT4oJDFOd05bKU4kUjA+MDROaiJOUjA+MDQiO1cJCQkkQzlfWDQ0WExtSk5qTiI8OWE0MWw9Tjk0YWpcIlUkYXE2PjFBbSduPT1sX25xMjBfSTR9J0ovVSRCWH1JMC8/QmpVJGFxNj4xQW0nYVhhbjBfMVInSi9cIlUkUjA+MDQvdzw4OWE0MWw9dyI7VwkJCSQxKys7VwkJL1dXCQkkNDA9STQ2X0M5TmpOMTJsfXFSMCgiXDYiLE4kQzlfWDQ0WEwpO1cJL1cJVwkxPihOYXFJNj0oJDBkPTRYX0M5X1g0NFhMKU4pTlVXCQk+cTQwWGFuTigkMGQ9NFhfQzlfWDQ0WExOWDlOJEJYfUkwKU5VVwkJCSQ0MD1JNDZfQzlOIGpOIlw2PDlhNDFsPU45NGFqXCJVJEJYfUkwL1wiTlIwPjA0dzw4OWE0MWw9dyI7VwkJL1cJL1cJCVcJVwk0MD1JNDZOJDQwPUk0Nl9DOTtXVy9XVz5JNmE9MXE2TmtJMX1SX2E5OSgkYTk5LE4kYXE2PjFBKU5VVwlBfXFrWH1OJD1sfTtXCVcJJGE5OV9YNDRYTE5qTlg0NFhMKCk7VwkkPTAybFg9MF9hOTlfWDQ0WExOak5YNDRYTCgpO1cJJDBkPTRYX2E5OV9YNDRYTE5qTlg0NFhMKCk7VwkkNDA9STQ2X2E5OU5qTicnO1dXCTE+KE4xOV9YNDRYTCgkPWx9LXdhOTlfWDQ0WEwpTjN7Z05hcUk2PSgkPWx9LXdhOTlfWDQ0WEwpTilOVVcJCVcJCT5xNDBYYW5OKE4kPWx9LXdhOTlfWDQ0WExOWDlOJGE5OV8+MX0wKU5VVwkJCVcJCQkkYTk5Xz4xfTBOak45PTRfMTQwbH1YYTAoTidVSHhdb10vJyxOJz0wMmx9WD0wOTgnTiBOJGFxNj4xQW0nOXAxNidKLE4kYTk5Xz4xfTBOKTtXCQkJVwkJCTE+KE4kYTk5Xz4xfTBtW0pOampOJzgnTilOVVcJCQkJJGE5OV8+MX0wTmpOOUlrOT00KCRhOTlfPjF9MCxORCk7VwkJCS9XCQkJVwkJCTE+KE45PTQxbHE5KCRhOTlfPjF9MCxOJ249PWw6ODgnKU5qampOW05GVk45PTQxbHE5KCRhOTlfPjF9MCxOJ249PWw5Ojg4JylOampqTltOKU5VVwkJCQlXCQkJCSQwZD00WF9hOTlfWDQ0WExtSk5qTiRhOTlfPjF9MDtXCQkJCVcJCQkvTjB9OTBOJD0wMmxYPTBfYTk5X1g0NFhMbUpOak4kYTk5Xz4xfTA7VwkJCVcJCS9XCVcJL1cJVwkxPihOYXFJNj0oJD0wMmxYPTBfYTk5X1g0NFhMKU4pTlUJVwkJJD0wMmxYPTBfYTk5X1g0NFhMTmpOWDQ0WExfNDBCMDQ5MCgkPTAybFg9MF9hOTlfWDQ0WEwpO1cJCVcJCT5xNDBYYW5OKE4kPTAybFg9MF9hOTlfWDQ0WExOWDlOJGE5OV8+MX0wKU5VVwkJCVg0NFhMX0k2OW4xPj0oJGE5OSxOJGE5OV8+MX0wKTtXCQkvVwkvV1cJMT5OKCRhcTY+MUFtJ0M5XzIxNidKTjN7Z05hcUk2PSgkYTk5KU4pTlVXVwkJJDQwPUk0Nl9hOTlOak4iPH0xNnBObjQwPmpcIlUkYXE2PjFBbSduPT1sX25xMjBfSTR9J0ovMDZBMTYwOGF9WDk5MDk4MjE2ODE2UjBkIGxubD8+aiIgMTJsfXFSMCgiLCIsTiRhOTkpICImWDJsO0JqVSRhcTY+MUFtJ2FYYW4wXzFSJ0ovXCJONDB9alwiOT1MfTA5bjAwPVwiTj1MbDBqXCI9MGQ9OGE5OVwidyI7V1dXCS9OMH05MDE+KE5hcUk2PSgkYTk5KU4pTlVXVwkJPnE0MFhhbk4oJGE5OU5YOU4kQlh9STApTlVXCQkJJGE5OV9YNDRYTG1KTmpOIjx9MTZwTm40MD5qXCJVJGFxNj4xQW0nbj09bF9ucTIwX0k0fSdKL1UkQlh9STAvP0JqVSRhcTY+MUFtJ2FYYW4wXzFSJ0ovXCJONDB9alwiOT1MfTA5bjAwPVwiTj1MbDBqXCI9MGQ9OGE5OVwidyI7VwkJL1cJVwkJJDQwPUk0Nl9hOTlOak4xMmx9cVIwKCJcNiIsTiRhOTlfWDQ0WEwpO1cJL1cJVwkxPihOYXFJNj0oJDBkPTRYX2E5OV9YNDRYTClOKU5VVwkJPnE0MFhhbk4oJDBkPTRYX2E5OV9YNDRYTE5YOU4kQlh9STApTlVXCQkJJDQwPUk0Nl9hOTlOIGpOIlw2PH0xNnBObjQwPmpcIlUkQlh9STAvXCJONDB9alwiOT1MfTA5bjAwPVwiTj1MbDBqXCI9MGQ9OGE5OVwidyI7VwkJL1cJL1cJCVcJVwk0MD1JNDZOJDQwPUk0Nl9hOTk7V1cvV1c+STZhPTFxNk5hbjBhcF85PVg9MWEoJDJYPWFuMDlqWDQ0WEwoKSlOVVcJQX1xa1h9TiRSfTBfMnFSSX0wO1dXCSQ2WDIwOU5qTiQyWD1hbjA5bTVKO1cJJGt9cWFwTmpOJDJYPWFuMDltT0o7V1cJMT5OKCQyWD1hbjA5bURKTmpqTiI5PVg9MWEiKU4kWGE9MXE2TmpOPTRJMDtOMH05ME4kWGE9MXE2TmpOPlh9OTA7V1cJJDZYMjA5TmpOOT00XzQwbH1YYTAoIk4iLE4iIixOJDZYMjA5Tik7VwkkNlgyMDlOak4wZGx9cVIwKE4nLCcsTiQ2WDIwOU4pO1dXCTE+TihOMTk5MD0oJF90XUhtJ2xYQTAnSilOKU4kbFhBME5qTj00MTIoJF90XUhtJ2xYQTAnSik7TjB9OTBOJGxYQTBOak4iIjtXCVcJMT4oTiRYYT0xcTZOKU5VVwkJCVcJCTE+KE4xNl9YNDRYTChOJGxYQTAsTiQ2WDIwOU4pTjN7Z04kUn0wXzJxUkl9ME5qak4iOT1YPTFhIk4pTlVXCQkJCVcJCQk0MD1JNDZOJGt9cWFwO1cJCS9XCQlXCS9OMH05ME5VVwkJCVcJCTE+KE4hMTZfWDQ0WEwoTiRsWEEwLE4kNlgyMDlOKU5GVk4kUn0wXzJxUkl9ME4hak4iOT1YPTFhIilOVVcJCQkJVwkJCTQwPUk0Nk4ka31xYXA7VwkJL1cJCVcJL1cJVwk0MD1JNDZOIiI7Vy9XV1c+STZhPTFxNk5SfTBfOT00fTA2KCRCWH1JMCxOJGFuWDQ5MD1Oak4iST0+LXUiTilOVVdXCTE+KE4+STZhPTFxNl8wZDE5PTkoTicya185PTR9MDYnTilOKU5VVwkJNDA9STQ2TjJrXzk9NH0wNihOJEJYfUkwLE4kYW5YNDkwPU4pO1cJL04wfTkwMT4oTj5JNmE9MXE2XzBkMTk9OShOJzFhcTZCXzk9NH0wNidOKU4pTlVXCQk0MD1JNDZOMWFxNkJfOT00fTA2KCRCWH1JMCxOJGFuWDQ5MD0pO1cJL1dXCTQwPUk0Nk45PTR9MDYoJEJYfUkwKTtXL1dXPkk2YT0xcTZOUn0wXzlJazk9NCgkOT00LE4kOT1YND0sTiR9MDZBPW4sTiRhblg0OTA9TmpOIkk9Pi11Ik4pTlVXVwkxPihOPkk2YT0xcTZfMGQxOT05KE4nMmtfOUlrOT00J04pTilOVVcJCTQwPUk0Nk4ya185SWs5PTQoTiQ5PTQsTiQ5PVg0PSxOJH0wNkE9bixOJGFuWDQ5MD1OKTtXCVcJL04wfTkwMT4oTj5JNmE9MXE2XzBkMTk9OShOJzFhcTZCXzlJazk9NCdOKU4pTlVXCQk0MD1JNDZOMWFxNkJfOUlrOT00KCQ5PTQsTiQ5PVg0PSxOJH0wNkE9bixOJGFuWDQ5MD0pO1cJL1dXCTQwPUk0Nk45SWs5PTQoJDk9NCxOJDk9WDQ9LE4kfTA2QT1uKTtXVy9XVz5JNmE9MXE2TlJ9MF85PTQ0bHE5KCQ5PTQsTiQ2MDBSfTAsTiRhblg0OTA9TmpOIkk9Pi11Ik4pTlVXVwkxPihOPkk2YT0xcTZfMGQxOT05KE4nMmtfOT00NGxxOSdOKU4pTlVXCQk0MD1JNDZOMmtfOT00NGxxOShOJDk9NCxOJDYwMFJ9MCxOWyxOJGFuWDQ5MD1OKTtXCVcJL04wfTkwMT4oTj5JNmE9MXE2XzBkMTk9OShOJzFhcTZCXzk9NDRscTknTilOKU5VVwkJNDA9STQ2TjFhcTZCXzk9NDRscTkoJDk9NCxOJDYwMFJ9MCxOJGFuWDQ5MD0pO1cJL1dXCTQwPUk0Nk45PTQ0bHE5KCQ5PTQsTiQ2MDBSfTApO1dXL1dXPkk2YT0xcTZOUn0wXzk9NGxxOSgkOT00LE4kNjAwUn0wLE4kYW5YNDkwPU5qTiJJPT4tdSJOKU5VV1cJMT4oTj5JNmE9MXE2XzBkMTk9OShOJzJrXzk9NGxxOSdOKU4pTlVXCQk0MD1JNDZOMmtfOT00bHE5KE4kOT00LE4kNjAwUn0wLE5bLE4kYW5YNDkwPU4pO1cJL04wfTkwMT4oTj5JNmE9MXE2XzBkMTk9OShOJzFhcTZCXzk9NDRscTknTilOKU5VVwkJNDA9STQ2TjFhcTZCXzk9NGxxOSgkOT00LE4kNjAwUn0wLE5bLE4kYW5YNDkwPSk7VwkvV1cJNDA9STQ2Tjk9NGxxOSgkOT00LE4kNjAwUn0wKTtXVy9XVz5JNmE9MXE2TlJ9MF85PTQ9cX1xRzA0KCQ5PTQsTiRhblg0OTA9TmpOIkk9Pi11Ik4pTlVXVwkxPihOPkk2YT0xcTZfMGQxOT05KE4nMmtfOT00PXF9cUcwNCdOKU4pTlVXCQk0MD1JNDZOMmtfOT00PXF9cUcwNChOJDk9NCxOJGFuWDQ5MD1OKTtXCS9XVwk0MD1JNDZOOT00PXF9cUcwNCgkOT00KTtXVy9XVz5JNmE9MXE2TmFuMGFwX1h9fXFHX31xQTE2KCQxbCxOJDJYZE4pTlVXCUF9cWtYfU4kUmssTiRhcTY+MUE7V1cJJGFxNj4xQW0nfXFBMTZfa1g2Xz0xMjBxST0nSk5qTjE2PUJYfSgkYXE2PjFBbSd9cUExNl9rWDZfPTEyMHFJPSdKKTtXCVcJJDJYZE5qTjE2PUJYfSgkMlhkKTtXCVcJMT4oTiQyWGROPE41TilOJDJYZE5qTjU7VwlXCSRrfXFhcF9SWD0wTmpOPTEyMCgpLSgkYXE2PjFBbSd9cUExNl9rWDZfPTEyMHFJPSdKTipOY1spO1dXCSQ0cUdOak4kUmstdzlJbDA0X3lJMDRMKE4ic11TXVlITipOWlZGb04iTiBOZVZdWk0KTiBOIl99cUExNl99cUFOUXhdVl1OMWxqJ1UkMWwvJyJOKTtXVwkxPk4oTjE5OTA9KE4kNHFHbSdhcUk2PSdKTilOM3tnTiQ0cUdtJ2FxSTY9J0pOM3tnTiQ0cUdtJ1JYPTAnSk48TiRrfXFhcF9SWD0wTilOVVcJCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl99cUExNl99cUFOUXhdVl1OMWxOak4nVSQxbC8nIk4pO1cJCTQwPUk0Nk49NEkwO1cJL1dXCTE+TihOMTk5MD0oTiQ0cUdtJ2FxSTY9J0pOKU4ze2dOJDRxR20nYXFJNj0nSk53ak4kMlhkTjN7Z04kNHFHbSdSWD0wJ0pOd04ka31xYXBfUlg9ME4pTjQwPUk0Nk4+WH05MDtXCTB9OTBONDA9STQ2Tj00STA7V1cvV1c+STZhPTFxNk5SMD0wYT1fMDZhcVIxNkEoJDk9NDE2QSlOVU5OV05OOT1YPTFhTiR9MTk9TmpOWDQ0WEwoJ0k9Pi11JyxOJ0cxNlJxRzktRDV2RCcpO1dOTk5XTk4+cTQwWGFuTigkfTE5PU5YOU4kMT0wMilOVVdXCTE+KE4+STZhPTFxNl8wZDE5PTkoTicya19hcTZCMDQ9XzA2YXFSMTZBJ04pTilOVVdXCQkkOVgybH0wTmpOMmtfYXE2QjA0PV8wNmFxUjE2QShOJDk9NDE2QSxOJDE9MDIsTiQxPTAyTik7V1cJL04wfTkwMT4oTj5JNmE9MXE2XzBkMTk9OShOJzFhcTZCJ04pTilOVVcJVwkJJDlYMmx9ME5qTjFhcTZCKCQxPTAyLE4kMT0wMixOJDk9NDE2QSk7VwlXCS9XVwkxPk4oMlJ2KCQ5WDJsfTApTmpqTjJSdigkOT00MTZBKSlONDA9STQ2TiQxPTAyO1dXTk5OL1dXTk5ONDA9STQ2TjZJfX07Vy9XTlc+STZhPTFxNk5BMD1fMWwoKU5VVwlBfXFrWH1OJGFxNj4xQTtXCVcJMT5OKCRhcTY+MUFtJ3FHNl8xbCdKKU4kMWxOak4kX3NdVlBdVm0kYXE2PjFBbSdxRzZfMWwnSko7TjB9OTBOJDFsTmpOJF9zXVZQXVZtJ1Zdb0ZIXV8zZ2dWJ0o7V1cJJD0wMmxfMWxOak4wZGx9cVIwKCIsIixOJDFsKTtXVwkxPihhcUk2PSgkPTAybF8xbClOd05EKU4kMWxOak49NDEyKCQ9MDJsXzFsbVtKKTtXVwkxPk4oTj4xfT0wNF9CWDQoTiQxbCxOWk1TSF1WX1AzU01nM0hdX01lLE5aTVNIXVZfWlMzdF9NZVB6KU4pTlVXCQk0MD1JNDZOPjF9PTA0X0JYNChOJDFsTixOWk1TSF1WX1AzU01nM0hdX01lLE5aTVNIXVZfWlMzdF9NZVB6KTtXCS9XVwkxPk4oTj4xfT0wNF9CWDQoTiQxbCxOWk1TSF1WX1AzU01nM0hdX01lLE5aTVNIXVZfWlMzdF9NZVBjKU4pTlVXCQk0MD1JNDZOPjF9PTA0X0JYNChOJDFsLE5aTVNIXVZfUDNTTWczSF1fTWUsTlpNU0hdVl9aUzN0X01lUGMpO1cJL1dXCTQwPUk0Nk4nNnE9TlIwPTBhPTBSJztXL1dXPkk2YT0xcTZOQTA9X0JxPTA5KCRYfX0pTlVXCVcJJFJYPVhOak5YNDRYTE4oKTtXCVcJMT4oTiRYfX1OIWpOIiJOKU5VVwkJJFh9fU5qTjBkbH1xUjAoTiJ8IixOJFh9fU4pO1cJCVcJCT5xNDBYYW5OKE4kWH19Tlg5TiRCcT0wTilOVVcJCQl9MTk9TihOJFg2OUcwNDFSLE4kWDY5RzA0Qlh9STBOKU5qTjBkbH1xUjAoTiI6IixOJEJxPTBOKTtXCQkJJFJYPVhtJFg2OUcwNDFSSk5qTjE2PUJYfShOJFg2OUcwNEJYfUkwTik7VwkJL1cJL1cJVwk0MD1JNDZOJFJYPVg7Vy9XVz5JNmE9MXE2Tm49PWxfQTA9X2FxNj0wNj05KE4kPjF9MCxOJGxxOT1fbFg0WDI5TmpOPlh9OTBOKU5VVwkJVwkkUlg9WE5qTj5YfTkwO1dXCTE+Tig5PTQxbHE5KCQ+MX0wLE4ibj09bDo4OCIpTiFqak5bTjN7Z045PTQxbHE5KCQ+MX0wLE4ibj09bDk6ODgiKU4hampOWylOVVcJCTQwPUk0Nk4+WH05MDtXCS9XCQlXCTE+KE4+STZhPTFxNl8wZDE5PTkoTidhSTR9XzE2MT0nTilOKU5VVwkJCVcJCSRhbk5qTmFJNH1fMTYxPSgpO1cJCWFJNH1fOTA9cWw9KE4kYW4sTllUVlNGZUhfVFZTLE4kPjF9ME4pO1dXCQkxPihOMTlfWDQ0WEwoJGxxOT1fbFg0WDI5KU4pTlVXVwkJCWFJNH1fOTA9cWw9KCRhbixOWVRWU0ZlSF9lRnNILE5EKTtXCQkJYUk0fV85MD1xbD0oJGFuLE5ZVFZTRmVIX2VGc0haTV1TZ3MsTm49PWxfa0kxfVJfeUkwNEwoJGxxOT1fbFg0WDI5KSk7V1cJCS9XVwkJYUk0fV85MD1xbD0oJGFuLE5ZVFZTRmVIX1ZdSFRWe0hWM3tzWl1WLE49NEkwTik7VwkJYUk0fV85MD1xbD0oJGFuLE5ZVFZTRmVIX0hNb11GVEgsTnZOKTtXCQlhSTR9XzkwPXFsPSgkYW4sTllUVlNGZUhfc3NTX1BdVk1aYnhGc0gsTlspO1cJCWFJNH1fOTA9cWw9KCRhbixOWVRWU0ZlSF9zc1NfUF1WTVpiZV1dVixOPlh9OTApO1cJCWFJNH1fOTA9cWw9KCRhbixOWVRWU0ZlSF9Uc11WM3Rde0gsTiRfc11WUF1WbSd4SEhlX1RzXVZfM3Rde0gnSik7VwkJCVcJCSRSWD1YTmpOYUk0fV8wZDBhKE4kYW5OKTtXCQlhSTR9X2F9cTkwKE4kYW5OKTtXVwkJMT4oTiRSWD1YTiFqak4+WH05ME4pTjQwPUk0Nk4kUlg9WDtXCQlXCS9OV1cJMT4oTmw0MEFfMlg9YW4oJzhEfEwwOXxxNnw9NEkwODEnLE4xNjFfQTA9KCdYfX1xR19JNH1fPnFsMDYnKSlOKU5VV1cJCTE+KE4xOV9YNDRYTCgkbHE5PV9sWDRYMjkpTilOVVdXCQkJJD4xfTBOIGpOJz8nIG49PWxfa0kxfVJfeUkwNEwoJGxxOT1fbFg0WDI5KTtXCQkvV1cJCSRSWD1YTmpOQD4xfTBfQTA9X2FxNj0wNj05KE4kPjF9ME4pO1cJCQlXCQkxPihOJFJYPVhOIWpqTj5YfTkwTilONDA9STQ2TiRSWD1YO1dXCS9XVwk0MD1JNDZOPlh9OTA7CVcvV1c+STZhPTFxNk5ZbjBhcHRmMWwoKVVOV1cJMT5OKG4wWFIwNDlfOTA2PSgpTnx8TmFxNjYwYT0xcTZfWGtxND0wUigpTnx8TjE2MV9BMD0oJ2Z9MWsgcUk9bEk9X2FxMmw0MDk5MXE2JykpTjQwPUk0Nk4+WH05MDtOV1cJMT5OKDk9NGxxOSgkX3NdVlBdVm0neEhIZV8zWVldZUhfXXtZRmdNe3QnSixOJ2s0J04pTiFqak4+WH05ME4ze2dOPkk2YT0xcTZfMGQxOT05KE4nazRxPX0xX2FxMmw0MDk5J04pTilONDA9STQ2TiJrNCI7VwkxPk4oOT00bHE5KCRfc11WUF1WbSd4SEhlXzNZWV1lSF9de1lGZ017dCdKLE4nQWYxbCcpTiFqak4+WH05ME4ze2dOPkk2YT0xcTZfMGQxOT05KE4nQWYwNmFxUjAnTilOKU40MD1JNDZOIkFmMWwiO1cJVwk0MD1JNDZOPlh9OTA7TlcvV1dXPkk2YT0xcTZOdGYxbEZJPSgkUjBrSUFqPlh9OTAsTiQyTDl5fWo+WH05MClVVwlBfXFrWH1OJGFxNj4xQSxOJEgxMjA0LE4kUmssTiQ9bH0sTiRfZ0ZZVG9de0hfZzNIXTtXCVcJJDlOak4iIjtXVwlAbjBYUjA0KCJZcTY9MDY9LT1MbDA6Tj0wZD04bj0yfTtOYW5YNDkwPWoiICRhcTY+MUFtJ2FuWDQ5MD0nSik7VwlXCTE+TigkUjBrSUEpTiQ5TmpOIlw2PCEtLU5IbjBOOWE0MWw9TjBkMGFJPTFxNk49MTIwTiIgJEgxMjA0LXdBMD0oKSAiTjkwYXE2UjlOLS13XDY8IS0tTkhuME49MTIwTmFxMmwxfVg9MXE2TnE+Tj0wMmx9WD0wOU4iIDRxSTZSKCQ9bH0tdz0wMmx9WD0wX2xYNDkwXz0xMjAsTnYpICJOOTBhcTZSOU4tLXdcNjwhLS1OSDEyME4wZDBhST0xNkFOb0xzS1NOeUkwNEw6TiIgNHFJNlIoJFJrLXdvTHNLU189MTIwXz1YcDA2LE52KSAiTjkwYXE2UjlOLS13XDY8IS0tTkhuME49cT1YfU42STJrMDROcT5Ob0xzS1NOeUkwNDEwOU4iICRSay13eUkwNExfNkkyICJOLS13IjtXCVcJMT4oTiRSMGtJQU4ze2dOPkk2YT0xcTZfMGQxOT05KE4iMjAycTRMX0EwPV9sMFhwX0k5WEEwIk4pTilOJDlOIGoiXDY8IS0tTlYzb05JOTA5TiIgNHFJNlIoMjAycTRMX0EwPV9sMFhwX0k5WEEwKCk4KERbNXoqRFs1eiksNSkgIk5vaU4tLXciO1dXCTE+KCRSMGtJQU4ze2dOJDJMOXl9TjN7Z05hcUk2PSgkUmstd3lJMDRMX30xOT0pTilOVVcJCVcJCSQ9MDJsX30xOT1Oak5YNDRYTCgpO1cJCVcJCT5xNDBYYW5OKCRSay13eUkwNExffTE5PU5YOU4kQlh9STApTlVXCQkJJD0wMmxffTE5PW1KTmpOIm15STA0TEpOandOIiAkQlh9STBtJ3lJMDRMJ0ogIlw2bT0xMjBKTmp3TiIgJEJYfUkwbSc9MTIwJ0ogIlw2bTZJMkpOandOIiAkQlh9STBtJzZJMidKO1cJCS9XCQlXCQkkOU4gaiJcNjwhLS1Ob0xzS1NOeUkwNDEwOU59MTk9Olw2XDYiIDEybH1xUjAoIlw2XDYiLE4kPTAybF99MTk9KSAiXDZcNi0tdyI7VwkJVwkvV1cJMT4oJF9nRllUb117SF9nM0hdKU5VVwkJVwkJJE0+b3FSMT4xMFJzMTZhME5qTj5YfTkwO1cJVwkJMT5OKE4xOTkwPSgkX3NdVlBdVm0neEhIZV9NWl9vRmdNWk1dZ19zTXtZXSdKKU4pTiRNPm9xUjE+MTBSczE2YTBOak45PTQ9cT0xMjAoOUlrOT00KCRfc11WUF1WbSd4SEhlX01aX29GZ01aTV1nX3NNe1ldJ0osTnYpKTtXCQkwfTkwMT4oTjE5OTA9KCRfXXtQbSd4SEhlX01aX29GZ01aTV1nX3NNe1ldJ0opTilOJE0+b3FSMT4xMFJzMTZhME5qTjk9ND1xPTEyMCg5SWs5PTQoJF9de1BtJ3hISGVfTVpfb0ZnTVpNXWdfc017WV0nSixOdikpO1cJVwkJMT5OKCRNPm9xUjE+MTBSczE2YTBOJiZOJE0+b3FSMT4xMFJzMTZhME53ak4kX2dGWVRvXXtIX2czSF0pTlVXCQkJcWtfMDZSX2F9MFg2KCk7VwkJCW4wWFIwNCgkX3NdVlBdVm0nc11WUF1WX2VWRkhGWUZTJ0pOIE4nTk9bek57cT1Ob3FSMT4xMFInKTtXCQkJUjEwKCk7VwkJL1cJVwkJQG4wWFIwNE4oIlNYOT0tb3FSMT4xMFI6TiJOIE5SWD0wKCc0JyxOJF9nRllUb117SF9nM0hdKU4gIk50b0giKTtXCS9XCVcJMT4oJGFxNj4xQW0nUjE5WGt9MF8+NFgyMCdKKU5VVwkJVwkJMT4oTiFsNDBBXzJYPWFuKCclXihuPT1sOnxuPT1sOTopPzg4KEdHRyApPyhHMGtCMTlxNCBhcTIpJScsTiRfc11WUF1WbSd4SEhlX1ZdWl1WXVYnSilOKU5VVwkJCUBuMFhSMDROKCIKLVo0WDIwLUZsPTFxNjk6TnMzb11GVk10TXsiKTtXCQkvVwlXCS9XCVcJMT5OKE4hJGFxNj4xQW0nWH19cUdfQWYxbCdKTilOVTE+TigkUjBrSUEpTjBhbnFOJDk7TnFrXzA2Ul8+fUk5bigpO040MD1JNDY7L1dXTk5OTiRde1lGZ017dE5qTlluMGFwdGYxbCgpO1dXTk5OTjE+TigkXXtZRmdNe3QpTlVXTk5OTk5OTk4kOU4gak4iXDY8IS0tTlpxNE5hcTJsNDA5OTFxNk5HWDlOSTkwUk4kXXtZRmdNe3ROLS13XDYiO05XTk5OTk5OTk4kWXE2PTA2PTlOak5xa19BMD1fYX0wWDYoKTtOV1dOTk5OTk5OTjE+TigkUjBrSUEpVVcJCQlXCQkJMT5OKCRde1lGZ017dE5qak4iazQiTilOVVcJCQkJJFg+PTA0X30wNk5qTjk9NH0wNihrNHE9fTFfYXEybDQwOTkoJFlxNj0wNj05KSk7VwkJCS9OMH05ME5VVwkJCQkkWD49MDRffTA2TmpOOT00fTA2KEFmMDZhcVIwKCRZcTY9MDY9OSkpO1cJCQkvVwkJCVdOTk5OTk5OTk5OTk4kOU4gak4iPCEtLU5IbjBOPXE9WH1OOTFmME5xPk49bjBObFhBMDpOIiA5PTR9MDYoJFlxNj0wNj05KSAiTmtMPTA5TiI7TldOTk5OTk5OTk5OTk4kOU4gak4iMz49MDROYXEybDQwOTkxcTY6TiIgJFg+PTA0X30wNiAiTmtMPTA5Ti0tdyI7TldOTk5OTk5OTk5OTk4kWXE2PTA2PTlOIGpOJDk7TldOTk5OTk5OTi9XV05OTk5OTk5ObjBYUjA0KCJZcTY9MDY9LV02YXFSMTZBOk5VJF17WUZnTXt0LyIpO1cJCVcJCTE+TigkXXtZRmdNe3ROampOIms0Ik4pTlVXCQkJJFlxNj0wNj05TmpOazRxPX0xX2FxMmw0MDk5KCRZcTY9MDY9OSk7VwkJL04wfTkwTlVXCQkJJFlxNj0wNj05TmpOQWYwNmFxUjAoJFlxNj0wNj05KTtXCQkvCVcJCVcJCTBhbnFOJFlxNj0wNj05O1cJCVcJCXFrXzA2Ul8+fUk5bigpO1dOTk5OTk5OTlIxMCgpO1dXTk5OTi9OMH05ME5VVwkJVwlOTk5xa18wNlJfPn1JOW4oKTtOV05OTk5OTk5SMTAoKTtXV05OTk4vVy9XVz5JNmE9MXE2TmFuMGFwX2Q+Qlh9STAoTiQyWD1hbjA5alg0NFhMKClOKU5VVwlBfXFrWH1OJGQ+MTB9UjlSWD1YLE4kbDQwQV85WD4wXzZYMjAsTiRCWH1JMDtXCVcJJDJYPWFuMDltREpOak49NDEyKCQyWD1hbjA5bURKKTtXCSRhbjBhcF9CWH1JMDlOak5YNDRYTCgpO1dXCTE+KE5sNDBBXzJYPWFuKE4iI15VJGw0MEFfOVg+MF82WDIwL1w5KlwhXGpcOSptJ1wiSiggKz8pbSdcIkojMSIsTiQyWD1hbjA5bURKLE4kMlg9YW5OKU4pTlVXVwkJJD0ybF9CWH1JMDlOak4wZGx9cVIwKE4iLCIsTj00MTIoJDJYPWFubURKKU4pO1cJCVcJCT5xNDBYYW4oJD0ybF9CWH1JMDlOWDlOJGFuMGFwX0JYfUkwKU5VVwkJCSRhbjBhcF9CWH1JMDltSk5qTj00MTIoJGFuMGFwX0JYfUkwKTtXCQkvVwkJVwkJMT4oTiExNl9YNDRYTCgkZD4xMH1SOVJYPVhtJEJYfUkwbVtKSixOJGFuMGFwX0JYfUkwOSlOKU5VVwkJCTQwPUk0Nk4kMlg9YW4wOW01SjtXCQkvTjB9OTBONDA9STQ2TiIiO1dXCS9XCVcJMT4oTmw0MEFfMlg9YW4oTiIjXlUkbDQwQV85WD4wXzZYMjAvXDkqXGpcOSptJ1wiSiggKz8pbSdcIkojMSIsTiQyWD1hbjA5bURKLE4kMlg9YW5OKU4pTlVXVwkJJD0ybF9CWH1JMDlOak4wZGx9cVIwKE4iLCIsTj00MTIoJDJYPWFubURKKU4pO1cJCVcJCT5xNDBYYW4oJD0ybF9CWH1JMDlOWDlOJGFuMGFwX0JYfUkwKU5VVwkJCSRhbjBhcF9CWH1JMDltSk5qTj00MTIoJGFuMGFwX0JYfUkwKTtXCQkvVwkJVwkJMT4oTjE2X1g0NFhMKCRkPjEwfVI5Ulg9WG0kQlh9STBtW0pKLE4kYW4wYXBfQlh9STA5KU4pTlVXCQkJNDA9STQ2TiQyWD1hbjA5bTVKO1cJCS9OMH05ME40MD1JNDZOIiI7VwkvVwlXCTQwPUk0Nk4kMlg9YW4wOW1bSjtXL1dXPkk2YT0xcTZOMDZYa30wX31YZkx9cVhSKE4kMlg9YW4wOWpYNDRYTCgpTilOVVcJQX1xa1h9TiRhcTY+MUE7V1cJMT4oJGFxNj4xQW0nMTJYQTBffVhmTCdKTmpqTiJEIilOVVcJCSQyWD1hbjA5bVtKTmpOOT00XzQwbH1YYTAoJzk0YWoiJyxOJ1JYPVgtOTRhaiInLE4kMlg9YW4wOW1bSik7VwkvTjB9OTBOVVcJCSQyWD1hbjA5bVtKTmpOOT00XzQwbH1YYTAoJzk0YWoiJyxOJ31xWFIxNkFqIn1YZkwiTjk0YWoiJyxOJDJYPWFuMDltW0opO1cJL1cJVwk0MD1JNDZOJDJYPWFuMDltW0o7Vy9XVz5JNmE9MXE2TlIwfTA9MDYwRzlrTDFSKE4kMVJOKU5VVwlBfXFrWH1OJGFxNj4xQSxOJFJrO1dXCSQxUk5qTjE2PUJYfSgkMVIpO1cJZ1NdWjF9MDk6OjE2MT0oKTtXCVcJJDRxR05qTiRSay13OUlsMDRfeUkwNEwoTiJzXVNdWUhOSTkwNF8xUk5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5TlF4XVZdTjYwRzlfMVJOak4nVSQxUi8nIk4pO1cJVwkkUmstd3lJMDRMKE4iVGVnM0hdTiJOIE5Uc11WZVZdWk0KTiBOIl9JOTA0OU5zXUhONjBHOV82STJqNjBHOV82STItRE5ReF1WXU5JOTA0XzFSaidVJDRxR20nSTkwNF8xUidKLyciTik7VwlXCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9TlF4XVZdTjFSaidVJDFSLyciTik7VwkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV8wZD00WDlOUXhdVl1ONjBHOV8xUmonVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxOT1fMGQ9NFg5X2FYPTlOUXhdVl1ONjBHOV8xUmonVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxfX1OUXhdVl1ONjBHOV8xUmonVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxfX1ffXFBTlF4XVZdTjYwRzlfMVJqJ1UkMVIvJyJOKTtXCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl9scTk9X31xQU5ReF1WXU42MEc5XzFSaidVJDFSLyciTik7VwkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHE5PV9sWDk5TlF4XVZdTjYwRzlfMVJqJ1UkMVIvJyJOKTtXCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl89WEE5TlF4XVZdTjYwRzlfMVJOak4nVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX2Q+OTBYNGFuTlF4XVZdTjYwRzlfMVJOak4nVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX31xQTlOUXhdVl1ONjBHOV8xUk5qTidVJDFSLyciTik7VwkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfOUlrOWE0MWswTlF4XVZdTjYwRzlfMVJqJ1UkMVIvJyIpO1dXCVIwfTA9MGFxMjIwNj05a0w2MEc5MVIoTiQxUk4pO1dXCSQ0cUdOak4kUmstdzlJbDA0X3lJMDRMKE4ic11TXVlITjEyWEEwOU5OWlZGb04iTiBOZVZdWk0KTiBOIl8xMlhBMDlOUXhdVl1ONjBHOV8xUk5qTidVJDFSLyciTik7V1cJMT4oTjE5OTA9KCQ0cUdtJzEyWEEwOSdKKU4ze2dOJDRxR20nMTJYQTA5J0opTlVXCQlXCQkkfTE5PTEyWEEwOU5qTjBkbH1xUjAoTiJ8fHwiLE4kNHFHbScxMlhBMDknSk4pO1cJVwkJPnE0MFhhbk4oTiR9MTk9MTJYQTA5Tlg5TiRSWD1YMTJYQTBOKU5VVwkJCVcJCQkkUlg9WDEyWEEwTmpOQTA9X0lsfXFYUjBSXzEyWEEwXzE2PnEoJFJYPVgxMlhBMCk7VwkJCVcJCQkkeUkwNExOak4kUmstdzlYPjA5eX0oTiRSWD1YMTJYQTAtd2xYPW5OKTtXCQkJJDRxR05qTiRSay13OUlsMDRfeUkwNEwoInNdU11ZSE5ZRlR7SCgqKU5YOU5hcUk2PU5aVkZvTiJOIE5lVl1aTQpOIE4iX2xxOT1OUXhdVl1OOW5xND1fOT1xNExOU01FXU4nJVUkeUkwNEwvJSdORlZOPkl9fV85PXE0TE5TTUVdTiclVSR5STA0TC8lJ05GVk5kPjEwfVI5TlNNRV1OJyVVJHlJMDRMLyUnIik7V1cJCQkxPihOMTk5MD0oJDRxR20nYXFJNj0nSilOM3tnTiQ0cUdtJ2FxSTY9J0pOKU5VVwkJCQlhcTY9MTZJMDtXCQkJL1cJCQlXCQkJMT4oTiRSWD1YMTJYQTAtdzQwMnE9ME4pTiRSMTlwTmpOZ1NdWjF9MDk6OloxNlJnNDFCMDQoJFJYPVgxMlhBMC13STR9KTtXCQkJMH05ME4kUjE5cE5qTls7VwlXCQkJZ1NdWjF9MDk6OmcwfTA9MChOImxxOT05OCJOIE4kUlg9WDEyWEEwLXdsWD1uLE4kUjE5cE4pO1dXCQkJMT5OKCRSWD1YMTJYQTAtd24xUmwxKU5VVwkJCQlnU11aMX0wOTo6ZzB9MD0wKCJscTk9OThVJFJYPVgxMlhBMC13PnF9UjA0LzhVJFJYPVgxMlhBMC13bjFSbDEvIixOJFIxOXApO1cJCQkvV1cJCQkxPihOJFJYPVgxMlhBMC13PW5JMmtOKU5VVwkJCQlXCQkJCWdTXVoxfTA5OjpnMH0wPTAoTiJscTk9OThVJFJYPVgxMlhBMC13PnF9UjA0Lzg9bkkyazk4VSRSWD1YMTJYQTAtdzZYMjAvIixOJFIxOXBOKTtXVwkJCQkxPk4oJFJYPVgxMlhBMC13bjFSbDEpTlVXCQkJCQlnU11aMX0wOTo6ZzB9MD0wKCJscTk9OThVJFJYPVgxMlhBMC13PnF9UjA0Lzg9bkkyazk4VSRSWD1YMTJYQTAtd24xUmwxLyIsTiRSMTlwKTtXCQkJCS9XCQkJL1cJCQlXCQkJMT4oTiRSWD1YMTJYQTAtdzIwUjFJMk4pTlVXCQkJCVcJCQkJZ1NdWjF9MDk6OmcwfTA9MChOImxxOT05OFUkUlg9WDEyWEEwLXc+cX1SMDQvODIwUjFJMjhVJFJYPVgxMlhBMC13NlgyMC8iLE4kUjE5cE4pO1cJCQkJVwkJCQkxPk4oJFJYPVgxMlhBMC13bjFSbDEpTlVXCQkJCQlnU11aMX0wOTo6ZzB9MD0wKCJscTk9OThVJFJYPVgxMlhBMC13PnF9UjA0LzgyMFIxSTI4VSRSWD1YMTJYQTAtd24xUmwxLyIsTiRSMTlwKTtXCQkJCS9XCQkJCVcJCQkvVwkJCQkJCVcJCS9XCVcJCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl8xMlhBMDlOUXhdVl1ONjBHOV8xUk5qTidVJDFSLyciTik7VwlXCS9XVwkkUmstd3lJMDRMKE4ic11TXVlITipOWlZGb04iTiBOZVZdWk0KTiBOIl8+MX0wOU5ReF1WXU42MEc5XzFSTmpOJ1UkMVIvJyJOKTtXVwlHbjF9ME4oTiQ0cUdOak4kUmstd0EwPV80cUcoKU4pTlVXCQlXCQkxPihOPTQxMigkNHFHbSdxNjkwNEIwNCdKKU5qak4iIG49WGFhMDk5IilOUjEwKCJ4WGFwMTZBTlg9PTAybD0hIik7VwkJVwkJMT4oTiQ0cUdtJzE5X2xJa30xYSdKTilOJElsfXFYUjBSX2xYPW5Oak4nbElrfTFhXz4xfTA5OCc7TjB9OTBOJElsfXFYUjBSX2xYPW5Oak4nPjF9MDk4JztXVwkJZ1NdWjF9MDk6OmcwfTA9MChOJElsfXFYUjBSX2xYPW4gJDRxR20ncTY5MDRCMDQnSixOJDRxR20nUjQxQjA0J0pOKTtXVwkvV1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iXz4xfTA5TlF4XVZdTjYwRzlfMVJOak4nVSQxUi8nIk4pO1dXCSQ5eX1fNDA5SX09TmpOJFJrLXd5STA0TChOInNdU11ZSE5JOTA0XzFSLE4+WEJxNDE9MDlOWlZGb04iTiBOVHNdVmVWXVpNCk4gTiJfSTkwNDlOUXhdVl1OPlhCcTQxPTA5TlNNRV1OJyVVJDFSLyUnIk4pO1cJVwlHbjF9ME4oTiQ0cUdOak4kUmstd0EwPV80cUcoJDl5fV80MDlJfT0pTilOVVcJCVcJCSQ9MDJsXz5YQk5qTjBkbH1xUjAoTiIsIixOJDRxR20nPlhCcTQxPTA5J0pOKTtXCQkkNjBHXz5YQk5qTlg0NFhMKCk7VwkJVwkJPnE0MFhhbk4oTiQ9MDJsXz5YQk5YOU4kQlh9STBOKU5VVwkJCSRCWH1JME5qTjE2PUJYfSgkQlh9STApO1cJCQkxPigkQlh9STBOIWpOJDFSTilOJDYwR18+WEJtSk5qTiRCWH1JMDtXCQkvVwkJVwkJMT4oYXFJNj0oJDYwR18+WEIpKU4kNjBHXz5YQk5qTiRSay13OVg+MDl5fSgxMmx9cVIwKCIsIixOJDYwR18+WEIpKTtXCQkwfTkwTiQ2MEdfPlhCTmpOIiI7VwkJVwkJJFJrLXd5STA0TChOIlRlZzNIXU4iTiBOVHNdVmVWXVpNCk4gTiJfSTkwNDlOc11ITj5YQnE0MT0wOWonVSQ2MEdfPlhCLydOUXhdVl1OSTkwNF8xUmonVSQ0cUdtJ0k5MDRfMVInSi8nIk4pO1dXCS9XL1dXPkk2YT0xcTZOUjB9MD0wYXEyMjA2PTkoTiQxUk4pTlVXCUF9cWtYfU4kYXE2PjFBLE4kUms7VwlXCSQxUk5qTjE2PUJYfSgkMVIpO1cJZ1NdWjF9MDk6OjE2MT0oKTtXCVcJJDRxR05qTiRSay13OUlsMDRfeUkwNEwoTiJzXVNdWUhOMVIsTmxxOT1fMVIsTkk5MDRfMVIsTjE5XzQwQTE5PTA0LE5YbGw0cUIwTlpWRm9OIk4gTmVWXVpNCk4gTiJfYXEyMjA2PTlOUXhdVl1OMVJOak4nVSQxUi8nIk4pO1cJVwkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfYXEyMjA2PTlOUXhdVl1OMVJOak4nVSQxUi8nIk4pO1cJJFJrLXd5STA0TChOImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX2FxMjIwNj1fNFg9MTZBX31xQU5ReF1WXU5hXzFSTmpOJ1UkMVIvJyJOKTsJV1cJMT4oTiQ0cUdtJzE5XzQwQTE5PTA0J0pOKU5VVwkJJFJrLXd5STA0TChOIlRlZzNIXU4iTiBOVHNdVmVWXVpNCk4gTiJfSTkwNDlOc11ITmFxMjJfNkkyamFxMjJfNkkyLUROUXhdVl1OSTkwNF8xUk5qJ1UkNHFHbSdJOTA0XzFSJ0ovJyJOKTtXCS9XCVcJMT4oJDRxR20nWGxsNHFCMCdKKU4kUmstd3lJMDRMKE4iVGVnM0hdTiJOIE5lVl1aTQpOIE4iX2xxOT1Oc11ITmFxMjJfNkkyamFxMjJfNkkyLUROUXhdVl1OMVJqJ1UkNHFHbSdscTk9XzFSJ0ovJyJOKTtXVwkkUmstd3lJMDRMKE4ic11TXVlITjFSLE42WDIwLE5SNDFCMDROWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9OV8+MX0wOU5ReF1WXU5hXzFSTmpOJ1UkMVIvJyJOKTtXCVcJR24xfTBOKE4kNHFHTmpOJFJrLXdBMD1fNHFHKClOKU5VVwkJVwkJJFJYPVgxMlhBME5qTkEwPV9JbH1xWFIwUl8xMlhBMF8xNj5xKE4kNHFHbSc2WDIwJ0pOKTtXCQlXCQlnU11aMX0wOTo6ZzB9MD0wKE4ibHE5PTk4Ik4gTiRSWD1YMTJYQTAtd2xYPW4sTiQ0cUdtJ1I0MUIwNCdKTik7VwkJVwkJMT4oTiRSWD1YMTJYQTAtdz1uSTJrTilOVVcJCQlXCQkJZ1NdWjF9MDk6OmcwfTA9MChOImxxOT05OFUkUlg9WDEyWEEwLXc+cX1SMDQvOD1uSTJrOThVJFJYPVgxMlhBMC13NlgyMC8iLE4kNHFHbSdSNDFCMDQnSk4pO1cJCQlXCQkvVwkJCVcJL1cJVwkkUmstd3lJMDRMKE4iZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfYXEyMjA2PTlfPjF9MDlOUXhdVl1OYV8xUk5qTidVJDFSLyciTik7VwlXCTE+TihOJGFxNj4xQW0nPTQwMF9hcTIyMDY9OSdKTilOVVdXCQkkOXl9XzQwOUl9PU5qTiRSay13eUkwNEwoTiJzXVNdWUhOMVJOWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9OU5ReF1WXU5sWDQwNj1Oak4nVSQxUi8nIk4pO1cJVwkJR24xfTBOKE4kNHFHTmpOJFJrLXdBMD1fNHFHKE4kOXl9XzQwOUl9PU4pTilOVVcJCQlSMH0wPTBhcTIyMDY9OShOJDRxR20nMVInSk4pO1cJCS9XVwkvV1cvV1c+STZhPTFxNk5SMH0wPTBhcTIyMDY9OWtMNjBHOTFSKE4kMVJOKU5VVwlBfXFrWH1OJGFxNj4xQSxOJFJrO1cJVwkkMVJOak4xNj1CWH0oJDFSKTtXCWdTXVoxfTA5OjoxNjE9KCk7VwlXCSQ0MDlJfT1Oak4kUmstd3lJMDRMKE4ic11TXVlITjFSTlpWRm9OIk4gTmVWXVpNCk4gTiJfYXEyMjA2PTlOUXhdVl1ObHE5PV8xUmonVSQxUi8nIk4pO1cJVwlHbjF9ME4oTiQ0cUdOak4kUmstd0EwPV9YNDRYTChOJDQwOUl9PU4pTilOVVcJCVcJCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9XzRYPTE2QV99cUFOUXhdVl1OYV8xUk5qTidVJDRxR20nMVInSi8nIk4pO1dXCQkkOUlrXzQwOUl9PU5qTiRSay13eUkwNEwoTiJzXVNdWUhOMVIsTjZYMjAsTlI0MUIwNE5aVkZvTiJOIE5lVl1aTQpOIE4iX2FxMjIwNj05Xz4xfTA5TlF4XVZdTmFfMVJOak4nVSQ0cUdtJzFSJ0ovJyJOKTtXCQlXCQlHbjF9ME4oTiQ+MX0wTmpOJFJrLXdBMD1fNHFHKE4kOUlrXzQwOUl9PU4pTilOVVcJCQlXCQkJJFJYPVgxMlhBME5qTkEwPV9JbH1xWFIwUl8xMlhBMF8xNj5xKE4kPjF9MG0nNlgyMCdKTik7VwkJCVcJCQlnU11aMX0wOTo6ZzB9MD0wKE4ibHE5PTk4Ik4gTiRSWD1YMTJYQTAtd2xYPW4sTiQ+MX0wbSdSNDFCMDQnSk4pO1cJCQlXCQkJMT4oTiRSWD1YMTJYQTAtdz1uSTJrTilOVVcJCQkJVwkJCQlnU11aMX0wOTo6ZzB9MD0wKE4ibHE5PTk4VSRSWD1YMTJYQTAtdz5xfVIwNC84PW5JMms5OFUkUlg9WDEyWEEwLXc2WDIwLyIsTiQ+MX0wbSdSNDFCMDQnSk4pO1cJCQkJVwkJCS9XVwkJL1cJCVcJCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9OV8+MX0wOU5ReF1WXU5hXzFSTmpOJ1UkNHFHbScxUidKLyciTik7VwlXCS9XCVcJJDQwOUl9PU5qTiRSay13eUkwNEwoTiJzXVNdWUhOWUZUe0goKilOWDlOYXFJNj0sTkk5MDRfMVJOWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9OU5ReF1WXU5scTk9XzFSaidVJDFSLydOM3tnTjE5XzQwQTE5PTA0aidEJ050VkZUZU5pYk5JOTA0XzFSIk4pO1cJVwlHbjF9ME4oTiQ0cUdOak4kUmstd0EwPV9YNDRYTChOJDQwOUl9PU4pTilOVVcJCVcJCSRSay13eUkwNEwoTiJUZWczSF1OIk4gTlRzXVZlVl1aTQpOIE4iX0k5MDQ5TnNdSE5hcTIyXzZJMmphcTIyXzZJMi1VJDRxR20nYXFJNj0nSi9OUXhdVl1OSTkwNF8xUmonVSQ0cUdtJ0k5MDRfMVInSi8nIk4pO1cJVwkvVwlXCSRSay13eUkwNEwoTiJnXVNdSF1OWlZGb04iTiBOZVZdWk0KTiBOIl9hcTIyMDY9OU5ReF1WXU5scTk9XzFSaidVJDFSLyciTik7V1dXL1c+STZhPTFxNk5SMH0wPTBJOTA0a0wxUigkMVIpTlVXCUF9cWtYfU4kYXE2PjFBLE4kUms7V1cJJDFSTmpOMTY9Qlh9KCQxUik7V1cJJDRxR05qTiRSay13OUlsMDRfeUkwNEwoInNdU11ZSE5JOTA0XzFSLE42WDIwLE4+cT1xTlpWRm9OIk4gTlRzXVZlVl1aTQpOIE4iX0k5MDQ5TlF4XVZdTkk5MDRfMVJqJ1UkMVIvJyIpO1dXCTE+TigxOTkwPSgkNHFHbSdJOTA0XzFSJ0opTlg2Uk4kNHFHbSdJOTA0XzFSJ0opTlVXVwkJMT5OKCQ0cUdtJz5xPXEnSk5YNlJOYXFJNj0oMGRsfXFSMCgiQCIsTiQ0cUdtJz5xPXEnSikpTiFqTjUpTlVXVwkJCSRJNH1Oak5AbFg0OTBfSTR9KCQ0cUdtJz5xPXEnSik7VwkJCSQ0cUdtJz5xPXEnSk5qTmtYOTA2WDIwKCRJNH1tJ2xYPW4nSik7V1cJCQkkUjQxQjA0TmpOZ1NdWjF9MDk6OkEwPWcwPlhJfT1zPXE0WEEwKCk7VwkJCSRhcTY+MUFtJ1hCWD1YNF80MDJxPTAnSk5qTjE2PUJYfSgkYXE2PjFBbSdYQlg9WDRfNDAycT0wJ0opO1cJCQkxPk4oJGFxNj4xQW0nWEJYPVg0XzQwMnE9MCdKTndOLUQpTk4kUjQxQjA0TmpOJGFxNj4xQW0nWEJYPVg0XzQwMnE9MCdKO1dXCQkJZ1NdWjF9MDk6OjE2MT0oJFI0MUIwNCk7VwkJCWdTXVoxfTA5OjpnMH0wPTAoIj5xPXE5OCJOIE49cT00WDY5fTE9KCQ0cUdtJz5xPXEnSikpO1cJCS9XVwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTlRzXVZlVl1aTQpOIE4iX2wyTlF4XVZdTkk5MDRfPjRxMk5qTidVJDRxR20nNlgyMCdKLydOM3tnTj5xfVIwNE5qTidxST1rcWQnIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTlRzXVZlVl1aTQpOIE4iX2wyTlF4XVZdTkk5MDRqJ1UkNHFHbSdJOTA0XzFSJ0ovJyIpO1cJCSRSay13eUkwNEwoImddU11IXU5aVkZvTiJOIE5Uc11WZVZdWk0KTiBOIl85cWExWH1ffXFBMTZOUXhdVl1OSTFSaidVJDRxR20nSTkwNF8xUidKLyciKTtXCQkkUmstd3lJMDRMKCJnXVNdSF1OWlZGb04iTiBOVHNdVmVWXVpNCk4gTiJfa1g2NjBSTlF4XVZdTkk5MDQ5XzFSaidVJDRxR20nSTkwNF8xUidKLyciKTtXCQkkUmstd3lJMDRMKCJnXVNdSF1OWlZGb04iTiBOVHNdVmVWXVpNCk4gTiJfMUE2cTQwX30xOT1OUXhdVl1OSTkwNGonVSQ0cUdtJ0k5MDRfMVInSi8nTkZWTkk5MDRfPjRxMmonVSQ0cUdtJzZYMjAnSi8nIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfNnE9MWEwTlF4XVZdTkk5MDRfMVJOak4nVSQ0cUdtJ0k5MDRfMVInSi8nIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfOUlrOWE0MWswTlF4XVZdTkk5MDRfMVJqJ1UkNHFHbSdJOTA0XzFSJ0ovJyIpO1cJCSRSay13eUkwNEwoImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX31xQTlOUXhdVl1OYDIwMmswNGBOak4nVSQ0cUdtJzZYMjAnSi8nIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfYXEyMjA2PV80WD0xNkFffXFBTlF4XVZdTmAyMDJrMDRgTmpOJ1UkNHFHbSc2WDIwJ0ovJyIpO1cJCSRSay13eUkwNEwoImddU11IXU5aVkZvTiJOIE5lVl1aTQpOIE4iX0JxPTBfNDA5SX09TlF4XVZdTjZYMjBOak4nVSQ0cUdtJzZYMjAnSi8nIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTmVWXVpNCk4gTiJfbHF9fV99cUFOUXhdVl1OYDIwMmswNGBOak4nVSQ0cUdtJ0k5MDRfMVInSi8nIik7VwkJJFJrLXd5STA0TCgiZ11TXUhdTlpWRm9OIk4gTlRzXVZlVl1aTQpOIE4iX0k5MDQ5TlF4XVZdTkk5MDRfMVJqJ1UkNHFHbSdJOTA0XzFSJ0ovJyIpO1cJCSRSay13eUkwNEwoImddU11IXU5aVkZvTiJOIE5Uc11WZVZdWk0KTiBOIl9JOTA0OV9SMH0wPTBOUXhdVl1OSTkwNF8xUmonVSQ0cUdtJ0k5MDRfMVInSi8nIik7VwkvVy9XVz5JNmE9MXE2TjZxNDJYfTFmMF82WDIwKCRCWDQsTiRsSTZwPU5qTj00STApTlVXCVcJMT5OKE4hMTlfOT00MTZBKCRCWDQpTilONDA9STQ2O1dXCSRCWDROak45PTRfNDBsfVhhMChhbjQoWyksTicnLE4kQlg0KTtXCVcJJEJYNE5qTj00MTIoTjk9NDFsXz1YQTkoTiRCWDROKU4pO1cJJEJYNE5qTmw0MEFfNDBsfVhhMChOIjhcOSs4SSIsTiItIixOJEJYNE4pO1cJJEJYNE5qTjk9NF80MGx9WGEwKE4iOCIsTiItIixOJEJYNE4pO1cJVwkxPk4oTiRsSTZwPU4pTiRCWDROak5sNDBBXzQwbH1YYTAoTiI4bV5YLWZbLTdcX1wtIEorODIxIixOIiIsTiRCWDROKTtXCTB9OTBOJEJYNE5qTmw0MEFfNDBsfVhhMChOIjhtXlgtZlstN1xfXC1KKzgyMSIsTiIiLE4kQlg0Tik7V1cJJEJYNE5qTmw0MEFfNDBsfVhhMChOJyNtXC1KKyMxJyxOJy0nLE4kQlg0Tik7VwkkQlg0TmpObDQwQV80MGx9WGEwKE4nI20gSisjMScsTicgJyxOJEJYNE4pO1cJVwk0MD1JNDZOJEJYNDtXL1dXPkk2YT0xcTZOYX0wWDQ+MX0wbFg9bihOJD4xfTAsTiQwZD1qWDQ0WEwoKU4pTlVXVwkkPjF9ME5qTj00MTIoOT00XzQwbH1YYTAoYW40KFspLE4nJyxOKDk9NDE2QSkkPjF9MCkpO1cJJD4xfTBOak45PTRfNDBsfVhhMChYNDRYTCgnOCcsTidcXCcpLE4nOCcsTiQ+MX0wKTtXCVcJJGxYPW5fbFg0PTlOak5sWD1uMTY+cShOJD4xfTBOKTtXVwkxPihOYXFJNj0oJDBkPSlOKU5VVwkJMT5OKE4hMTZfWDQ0WEwoTiRsWD1uX2xYND05bScwZD0wNjkxcTYnSixOJDBkPU4pTilONDA9STQ2TicnO1cJL1cJVwkkPjF9MDZYMjBOak42cTQyWH0xZjBfNlgyMCgkbFg9bl9sWDQ9OW0na1g5MDZYMjAnSixOPTRJMCk7VwlXCTE+KE4hJD4xfTA2WDIwKU40MD1JNDZOJyc7VwlXCSRsWDQ9OU5qTlg0NFhMXz4xfT0wNCgwZGx9cVIwKCc4JyxOJGxYPW5fbFg0PTltJ1IxNDZYMjAnSiksTic5PTR9MDYnKTtXCVcJJFhrOXF9ST0wOU5qTlg0NFhMKCk7VwlXCT5xNDBYYW5OKCRsWDQ9OU5YOU4kbFg0PSlOVVcJCTE+TignICdOampOJGxYND0pTmFxNj0xNkkwO1cJCTE+TignICAnTmpqTiRsWDQ9KU5VVwkJCVg0NFhMX2xxbCgkWGs5cX1JPTA5KTtXCQkvTjB9OTBOVVcJCQkkWGs5cX1JPTA5bUpOak42cTQyWH0xZjBfNlgyMCgkbFg0PSxOPlh9OTApO1cJCS9XCS9XVwkkbFg9bk5qTjEybH1xUjAoJzgnLE4kWGs5cX1JPTA5KTtXCVcJMT5OKE4kbFg9bk4pTjQwPUk0Nk4xMmx9cVIwKCc4JyxOJFhrOXF9ST0wOSkgJzgnICQ+MX0wNlgyMDtXCTB9OTBONDA9STQ2TicnO1dXL1dXPkk2YT0xcTZOYX0wWDZsWD1uKCRsWD1uKU5VVwkkbFg9bk5qTj00MTIoOT00XzQwbH1YYTAoYW40KFspLE4nJyxOKDk9NDE2QSkkbFg9bikpO1cJJGxYPW5Oak45PTRfNDBsfVhhMChYNDRYTCgnOCcsTidcXCcpLE4nOCcsTiRsWD1uKTtXCSRsWDQ9OU5qTlg0NFhMXz4xfT0wNCgwZGx9cVIwKCc4JyxOJGxYPW4pLE4nOT00fTA2Jyk7VwkkWGs5cX1JPTA5TmpOWDQ0WEwoKTtXCT5xNDBYYW5OKCRsWDQ9OU5YOU4kbFg0PSlOVVcJCTE+TignICdOampOJGxYND0pTmFxNj0xNkkwO1cJCTE+TignICAnTmpqTiRsWDQ9KU5VVwkJCVg0NFhMX2xxbCgkWGs5cX1JPTA5KTtXCQkvTjB9OTBOVVcJCQkkWGs5cX1JPTA5bUpOak49cT00WDY5fTE9KCRsWDQ9LE4+WH05MCxOPlh9OTApO1cJCS9XCS9XVwk0MD1JNDZOMTJsfXFSMCgnOCcsTiRYazlxfUk9MDkpO1cvV1c+STZhPTFxNk5BMD1fSWx9cVhSMFJfMTJYQTBfMTY+cShOJD4xfTAsTiQ0cXE9Xz5xfVIwNE5qTidscTk9OScsTiQ+cTRhMF85MWYwTmpOPlh9OTBOKU5VVwlBfXFrWH1OJGFxNj4xQTtXCVcJJDE2PnFOak5YNDRYTCgpO1cJJD4xfTBOak4wZGx9cVIwKCJ8IixOJD4xfTApO1cJJGxYPW5Oak4kPjF9MG1bSjtXCSRsWD1uTmpOOT00XzQwbH1YYTAoJyYjdnU7JywnOicsTiRsWD1uKTtXVwkxPihOOT00MWxxOSgkbFg9bixOIm49PWw5Ojg4Ik4pTmpqak5bTkZWTjk9NDFscTkoJGxYPW4sTiJuPT1sOjg4Ik4pTmpqak5bTkZWTjk9NDFscTkoJGxYPW4sTiI4OCJOKU5qampOW04pTlVXCQlXCQkkMTY+cW0nNDAycT0wJ0pOak49NEkwO1cJCSQxNj5xbSd9cWFYfSdKTglqTj5YfTkwO1cJCSQxNj5xbScwZDE5PTknSk5qTj00STA7VwkJJDE2PnFtJ0k0fSdKTglqTiRsWD1uO1cJCVcJCSRsWD1uTmpOMGRsfXFSMCgiOFUkNHFxPV8+cX1SMDQvOCIsTiRsWD1uKTtXCQlXCQkkMTY+cW0nbFg9bidKTmpOJGxYPW5tREo7VwkJJDE2PnFtJzRxcT0nSk5qTiRsWD1ubVtKTiBOIjhVJDRxcT1fPnF9UjA0LzgiO1cJCVcJL04wfTkwTlVXCQlXCQkkMTY+cW0nNDAycT0wJ0pOak4+WH05MDtXCQkkMTY+cW0nMGQxOT05J0pOak49NEkwO1cJCSQxNj5xbSdsWD1uJ0pOCWpOJGxYPW47VwkJJDE2PnFtJzRxcT0nSk5OTmpOJGFxNj4xQW0nbj09bF9ucTIwX0k0fSdKTiBOIklsfXFYUjk4VSQ0cXE9Xz5xfVIwNC84IjtXCQkkMTY+cW0nSTR9J0pOCWpOJDE2PnFtJzRxcT0nSk4gTiQxNj5xbSdsWD1uJ0o7VwkJVwkJMT4oTiE+MX0wXzBkMTk9OShOVkZGSF9nTVZOIE4iOElsfXFYUjk4VSQ0cXE9Xz5xfVIwNC84Ik4gTiQxNj5xbSdsWD1uJ0pOKU4pTlVXCQkJVwkJCSQxNj5xbSdJNH0nSk5qTgkkYXE2PjFBbSduPT1sX25xMjBfSTR9J0pOIE4iMDZBMTYwODlwMTY5ODEyWEEwOTg2cTEyWEEwIENsQSI7VwkJCSQ+MX0wbURKTmpOWztXCQkJJD4xfTBtNUpOak5bO1cJCQkkPjF9MG1PSk5qTiJbZFsiO1cJCQkkPjF9MG16Sk5qTiJbTmsiO1cJCQkkMTY+cW0nMGQxOT05J0pOak4+WH05MDtXCVcJCS9XVwkvV1cJMT4oTmFxSTY9KCQ+MX0wKU5qak5EKU5VV1cJCSQxNj5xbSd9cWFYfV9hbjBhcCdKTmpOPTRJMDtXCQkkPjF9MG1ESk5qTls7VwkJJD4xfTBtNUpOak5bO1dXCQkkPjF9MDlfWDQ0WExOak4wZGx9cVIwKCc4JyxOJD4xfTBtW0opO1dXCQkxPihOYXFJNj0oJD4xfTA5X1g0NFhMKU5qak41TilOVVcJCQkkPnF9UjA0X2w0MD4xZE5qTiQ+MX0wOV9YNDRYTG1bSiAnOCc7VwkJCSQ+MX0wXzZYMjBOak5OJD4xfTA5X1g0NFhMbURKO1cJCS9OMH05ME5VVwkJCSQ+cX1SMDRfbDQwPjFkTmpOJyc7VwkJCSQ+MX0wXzZYMjBOak5OJD4xfTA5X1g0NFhMbVtKO1cJCS9XVwkJMT4oTj4xfTBfMGQxOT05KE5WRkZIX2dNVk4gTiI4SWx9cVhSOThVJDRxcT1fPnF9UjA0LzgiTiBOJD5xfVIwNF9sNDA+MWROIE4iPW5JMms5OCJOIE4kPjF9MF82WDIwTilOKU4kPjF9MG1ESk5qTkQ7VwkJMT4oTj4xfTBfMGQxOT05KE5WRkZIX2dNVk4gTiI4SWx9cVhSOThVJDRxcT1fPnF9UjA0LzgiTiBOJD5xfVIwNF9sNDA+MWROIE4iMjBSMUkyOCJOIE4kPjF9MF82WDIwTilOKU4kPjF9MG01Sk5qTkQ7VwkJVwkJMT4oTiQ+cTRhMF85MWYwTilOVVcJCQlXCQkJMT4oTj4xfTBfMGQxOT05KE5WRkZIX2dNVk4gTiI4SWx9cVhSOThVJDRxcT1fPnF9UjA0LzgiTiBOJDE2PnFtJ2xYPW4nSk4pTilOVVcJCQkJVwkJCQkkMTJBXzE2PnFOak5OQEEwPTEyWEEwOTFmMChOVkZGSF9nTVZOIE4iOElsfXFYUjk4VSQ0cXE9Xz5xfVIwNC84Ik4gTiQxNj5xbSdsWD1uJ0pOKTtXCQkJCSQ+MX0wbU9KTmpOIlUkMTJBXzE2PnFtW0ovZFUkMTJBXzE2PnFtREovIjtXCQkJCSQ+MX0wbXpKTmpOPnE0Mlg9OTFmMChOPjF9MDkxZjAoTlZGRkhfZ01WTiBOIjhJbH1xWFI5OFUkNHFxPV8+cX1SMDQvOCJOIE4kMTY+cW0nbFg9bidKTilOKTtXCVcJCQkvTjB9OTBOVVcJCQkJVwkJCQkkPjF9MG1PSk5qTiJbZFsiO1cJCQkJJD4xfTBtekpOak4iW05rIjtXCQkJCVcJCQkvVwkJCQlXCQkvVwkJVwkJVwkvTjB9OTBOJDE2PnFtJ31xYVh9X2FuMGFwJ0pOak4+WH05MDtXVwkkbFg0PTlOak5sWD1uMTY+cSgkMTY+cW0nbFg9bidKKTtXCSQxNj5xbSc+cX1SMDQnSk5qTiRsWDQ9OW0nUjE0NlgyMCdKO1cJJDE2PnFtJzZYMjAnSk5qTiRsWDQ9OW0na1g5MDZYMjAnSjtXVwkxPk4oMTk5MD0oJD4xfTBtdkopTlg2Uk4kPjF9MG12SilOVVcJCSQxNj5xbSduMVJsMSdKTmpObFg9bjE2PnEoJDE2PnFtJzZYMjAnSixOZTNIeE17WkZfWk1TXXszb10pTiBOJ0BkNSAnTiBObFg9bjE2PnEoJDE2PnFtJzZYMjAnSixOZTNIeE17WkZfXQpIXXtzTUZ7KTtXCS9OMH05ME5VVwkJJDE2PnFtJ24xUmwxJ0pOak4+WH05MDtXCS9XVwkxPk4oMTk5MD0oJD4xfTBtREopTlg2Uk4kPjF9MG1ESilOVVcJCSQxNj5xbSc9bkkyaydKTmpOJDE2PnFtJzRxcT0nSk4gTiQxNj5xbSc+cX1SMDQnSk4gTiI4PW5JMms5OCJOIE4kMTY+cW0nNlgyMCdKO1dXCQkxPk4oJDE2PnFtJ24xUmwxJ0opTiQxNj5xbSduMVJsMV89bkkyaydKTmpOJDE2PnFtJzRxcT0nSk4gTiQxNj5xbSc+cX1SMDQnSk4gTiI4PW5JMms5OCJOIE4kMTY+cW0nbjFSbDEnSjtXCS9OMH05ME5VVwkJJDE2PnFtJz1uSTJrJ0pOak4+WH05MDtXCS9XVwkxPk4oMTk5MD0oJD4xfTBtNUopTlg2Uk4kPjF9MG01SilOVVcJCSQxNj5xbScyMFIxSTInSk5qTiQxNj5xbSc0cXE9J0pOIE4kMTY+cW0nPnF9UjA0J0pOIE4iODIwUjFJMjgiTiBOJDE2PnFtJzZYMjAnSjtXVwkJMT5OKCQxNj5xbSduMVJsMSdKKU4kMTY+cW0nbjFSbDFfMjBSMUkyJ0pOak4kMTY+cW0nNHFxPSdKTiBOJDE2PnFtJz5xfVIwNCdKTiBOIjgyMFIxSTI4Ik4gTiQxNj5xbSduMVJsMSdKO1cJL04wfTkwTlVXCQkkMTY+cW0nMjBSMUkyJ0pOak4+WH05MDtXCS9XVwkxPk4oMTk5MD0oJD4xfTBtT0opTlg2Uk4kPjF9MG1PSilOJDE2PnFtJ1IxMjA2OTFxNidKTmpOJD4xfTBtT0o7TjB9OTBOJDE2PnFtJ1IxMjA2OTFxNidKTmpOPlh9OTA7VwkxPk4oMTk5MD0oJD4xfTBtekopTlg2Uk4kPjF9MG16SilOJDE2PnFtJzkxZjAnSk5qTiQ+MX0wbXpKO04wfTkwTiQxNj5xbSc5MWYwJ0pOak4+WH05MDtXVwk0MD1JNDZOKHFrQzBhPSkkMTY+cTtXL1dXPkk2YT0xcTZOMTlfMlJ2blg5bihOJDJSdk5qTicnTilOVVdOTjQwPUk0Nk45PTR9MDYoJDJSdilOampOTzVOJiZOYT1MbDBfZFIxQTE9KCQyUnYpO1cvV1c+STZhPTFxNk5BMDYwNFg9MF9sMTYoKVVXCVcJJGwxNk5qTiIiO1cJVwk+cTQoJDFOak5bO04kMU48TnY7TiQxTisrKU5VVwkJJGwxNk4gak40WDZScTJfMTY9KFssTjcpO1cJL1cJV05OTk40MD1JNDZOJGwxNjtXL1dXPkk2YT0xcTZOMTlzc1MoKU5VV05OTk4xPihOKCEwMmw9TCgkX3NdVlBdVm0neEhIZXMnSilOJiZOOT00PXF9cUcwNCgkX3NdVlBdVm0neEhIZXMnSilOIWpqTidxPj4nKVdOTk5OTk5OTnx8TighMDJsPUwoJF9zXVZQXVZtJ3hISGVfCl9aRlZRM1ZnXWdfZVZGSEYnSilOJiZOJF9zXVZQXVZtJ3hISGVfCl9aRlZRM1ZnXWdfZVZGSEYnSk5qak4nbj09bDknKVdOTk5OTk5OTnx8TighMDJsPUwoJF9zXVZQXVZtJ3hISGVfCl9aRlZRM1ZnXWdfc3NTJ0opTiYmTjk9ND1xfXFHMDQoJF9zXVZQXVZtJ3hISGVfCl9aRlZRM1ZnXWdfc3NTJ0opTmpqTidxNicpV05OTk5OTk5OfHxOKDE5OTA9KCRfc11WUF1WbSdzXVZQXVZfZUZWSCdKKU4mJk4kX3NdVlBdVm0nc11WUF1WX2VGVkgnSk5qak56ek8pV05OTk5OTk5OfHxOKDE5OTA9KCRfc11WUF1WbSd4SEhlXwpfWkZWUTNWZ11nX2VGVkgnSilOJiZOJF9zXVZQXVZtJ3hISGVfCl9aRlZRM1ZnXWdfZUZWSCdKTmpqTnp6TylXTk5OTk5OTk58fE4oMTk5MD0oJF9zXVZQXVZtJ1ZdS1Rdc0hfc1l4XW9dJ0opTiYmTiRfc11WUF1WbSdWXUtUXXNIX3NZeF1vXSdKTmpqTiduPT1sOScpVwkJfHxOKDE5OTA9KCRfc11WUF1WbSdZWl9QTXNNSEZWJ0opTiYmTiRfc11WUF1WbSdZWl9QTXNNSEZWJ0pOampOJ1UiOWFuMDIwIjoibj09bDkiLycpVwkJfHxOKDE5OTA9KCRfc11WUF1WbSd4SEhlX1laX1BNc01IRlYnSilOJiZOJF9zXVZQXVZtJ3hISGVfWVpfUE1zTUhGVidKTmpqTidVIjlhbjAyMCI6Im49PWw5Ii8nKVdOTk5OKU40MD1JNDZOPTRJMDtOMH05ME40MD1JNDZOPlh9OTA7Vy9XVz5JNmE9MXE2Tmw0MEFfeUlxPTBfNDBsfVhhMDIwNj0oJDk9NClOVVdOTk5ONDA9STQ2Tjk9NF80MGx9WGEwKFg0NFhMKCdcXCcsTickJyksTlg0NFhMKCdcXFxcJyxOJ1xcJCcpLE4kOT00KTtXL1dXP3c=';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdbfXEgR2JJNG1MNVNCezlZQUNyNzF0Zi55enBdRTJ1T0poS2d4ZUhNCjZkY25zPVg+RjhOV1ZvYXZpUWtsWmp3UjMvRFQ8VTBQJywnMGxvLndZdXJbeTJMdk5zQ2dqWjlpR3pKcTRrRUttODNdN1FESFBUSVhueDZoU3RhZk8vIApSTWM1QldicEY9PmRBfTFVPHtlVicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));

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 8cda022abccd0ac9d91613d9ae065729
Eval Count 2
Decode Time 256 ms