Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /* ===================================================== DataLife Engine - by So..
Decoded Output download
?><?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
http://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004-2017 SoftNews Media Group
=====================================================
=====================================================
: templates.class.php
-----------------------------------------------------
:
=====================================================
*/
if (! defined ( 'DATALIFEENGINE' )) {
die ( "Hacking attempt!" );
}
@ini_set('pcre.recursion_limit', 10000000 );
@ini_set('pcre.backtrack_limit', 10000000 );
@ini_set('pcre.jit', false);
require_once ROOT_DIR . '/engine/classes/mobiledetect.class.php';
class dle_template {
var $dir = '';
var $template = null;
var $copy_template = null;
var $desktop = true;
var $smartphone = false;
var $tablet = false;
var $data = array ();
var $block_data = array ();
var $result = array ('info' => '', 'vote' => '', 'speedbar' => '', 'content' => '' );
var $allow_php_include = true;
var $include_mode = 'tpl';
var $category_tree = false;
var $template_parse_time = 0;
function __construct(){
$this->dir = ROOT_DIR . '/templates/';
$mobile_detect = new Mobile_Detect;
if ( $mobile_detect->isMobile() ) {
$this->smartphone = true;
$this->desktop = false;
}
if ( $mobile_detect->isTablet() ) {
$this->smartphone = false;
$this->desktop = false;
$this->tablet = true;
}
}
function set($name, $var) {
if( is_array( $var ) && count( $var ) ) {
foreach ( $var as $key => $key_var ) {
$this->set( $key, $key_var );
}
} else
$var = str_ireplace( "{include", "{include", $var );
$var = str_ireplace( "{custom", "{custom", $var );
$this->data[$name] = $var;
}
function set_block($name, $var) {
if( is_array( $var ) && count( $var ) ) {
foreach ( $var as $key => $key_var ) {
$this->set_block( $key, $key_var );
}
} else
$var = str_ireplace( "{custom", "{custom", $var );
$var = str_ireplace( "{include", "{include", $var );
$this->block_data[$name] = $var;
}
function load_template($tpl_name) {
$time_before = $this->get_real_time();
$tpl_name = str_replace(chr(0), '', $tpl_name);
$url = @parse_url ( $tpl_name );
$file_path = dirname ($this->clear_url_dir($url['path']));
$tpl_name = pathinfo($url['path']);
$tpl_name = totranslit($tpl_name['basename']);
$type = explode( ".", $tpl_name );
$type = strtolower( end( $type ) );
if ($type != "tpl") {
$this->template = "Not Allowed Template Name: " .str_replace(ROOT_DIR, '', $this->dir)."/".$tpl_name ;
$this->copy_template = $this->template;
return "";
}
if ($file_path AND $file_path != ".") $tpl_name = $file_path."/".$tpl_name;
if( stripos ( $tpl_name, ".php" ) !== false ) {
$this->template = "Not Allowed Template Name: " .str_replace(ROOT_DIR, '', $this->dir)."/".$tpl_name ;
$this->copy_template = $this->template;
return "";
}
if( $tpl_name == '' || !file_exists( $this->dir . "/" . $tpl_name ) ) {
$this->template = "Template not found: " .str_replace(ROOT_DIR, '', $this->dir)."/".$tpl_name ;
$this->copy_template = $this->template;
return "";
}
$this->template = file_get_contents( $this->dir . "/" . $tpl_name );
if (strpos ( $this->template, "{*" ) !== false) {
$this->template = preg_replace("'\{\*(.*?)\*\}'si", '', $this->template);
}
$this->template = $this->check_module($this->template);
if (strpos ( $this->template, "[group=" ) !== false OR strpos ( $this->template, "[not-group=" ) !== false) {
$this->template = $this->check_group($this->template);
}
if (strpos ( $this->template, "[page-count=" ) !== false) {
$this->template = preg_replace_callback ( "#\[(page-count)=(.+?)\](.*?)\[/page-count\]#is", array( &$this, 'check_page'), $this->template );
}
if (strpos ( $this->template, "[not-page-count=" ) !== false) {
$this->template = preg_replace_callback ( "#\[(not-page-count)=(.+?)\](.*?)\[/not-page-count\]#is", array( &$this, 'check_page'), $this->template );
}
if (strpos ( $this->template, "[tags=" ) !== false) {
$this->template = preg_replace_callback ( "#\[(tags)=(.+?)\](.*?)\[/tags\]#is", array( &$this, 'check_tag'), $this->template );
}
if (strpos ( $this->template, "[not-tags=" ) !== false) {
$this->template = preg_replace_callback ( "#\[(not-tags)=(.+?)\](.*?)\[/not-tags\]#is", array( &$this, 'check_tag'), $this->template );
}
if (strpos ( $this->template, "[news=" ) !== false) {
$this->template = preg_replace_callback ( "#\[(news)=(.+?)\](.*?)\[/news\]#is", array( &$this, 'check_tag'), $this->template );
}
if (strpos ( $this->template, "[not-news=" ) !== false) {
$this->template = preg_replace_callback ( "#\[(not-news)=(.+?)\](.*?)\[/not-news\]#is", array( &$this, 'check_tag'), $this->template );
}
if (strpos ( $this->template, "[smartphone]" ) !== false) {
$this->template = preg_replace_callback ( "#\[(smartphone)\](.*?)\[/smartphone\]#is", array( &$this, 'check_device'), $this->template );
}
if (strpos ( $this->template, "[not-smartphone]" ) !== false) {
$this->template = preg_replace_callback ( "#\[(not-smartphone)\](.*?)\[/not-smartphone\]#is", array( &$this, 'check_device'), $this->template );
}
if (strpos ( $this->template, "[tablet]" ) !== false) {
$this->template = preg_replace_callback ( "#\[(tablet)\](.*?)\[/tablet\]#is", array( &$this, 'check_device'), $this->template );
}
if (strpos ( $this->template, "[not-tablet]" ) !== false) {
$this->template = preg_replace_callback ( "#\[(not-tablet)\](.*?)\[/not-tablet\]#is", array( &$this, 'check_device'), $this->template );
}
if (strpos ( $this->template, "[desktop]" ) !== false) {
$this->template = preg_replace_callback ( "#\[(desktop)\](.*?)\[/desktop\]#is", array( &$this, 'check_device'), $this->template );
}
if (strpos ( $this->template, "[not-desktop]" ) !== false) {
$this->template = preg_replace_callback ( "#\[(not-desktop)\](.*?)\[/not-desktop\]#is", array( &$this, 'check_device'), $this->template );
}
if (strpos ( $this->template, "{catmenu" ) !== false) {
$this->template = preg_replace_callback ( "#\{catmenu(.*?)\}#is", array( &$this, 'build_cat_menu'), $this->template );
}
if (strpos ( $this->template, "{catnewscount" ) !== false) {
$this->template = preg_replace_callback ( "#\{catnewscount id=['\"](.+?)['\"]\}#i", array( &$this, 'catnewscount'), $this->template );
}
if( strpos( $this->template, "{include file=" ) !== false ) {
$this->include_mode = 'tpl';
$this->template = preg_replace_callback( "#\{include file=['\"](.+?)['\"]\}#i", array( &$this, 'load_file'), $this->template );
}
$this->copy_template = $this->template;
$this->template_parse_time += $this->get_real_time() - $time_before;
return true;
}
function load_file( $matches=array() ) {
global $db, $is_logged, $member_id, $cat_info, $config, $user_group, $category_id, $_TIME, $lang, $smartphone_detected, $dle_module;
$name = $matches[1];
$name = str_replace( chr(0), "", $name );
$name = str_replace( '..', '', $name );
$url = @parse_url ($name);
$type = explode( ".", $url['path'] );
$type = strtolower( end( $type ) );
if ($type == "tpl") {
return $this->sub_load_template( $name );
}
if ($this->include_mode == "php") {
if ( !$this->allow_php_include ) return;
if ($type != "php") return "To connect permitted only files with the extension: .tpl or .php";
if ($url['path']{0} == "/" )
$file_path = dirname (ROOT_DIR.$url['path']);
else
$file_path = dirname (ROOT_DIR."/".$url['path']);
$file_name = pathinfo($url['path']);
$file_name = $file_name['basename'];
if ( stristr ( php_uname( "s" ) , "windows" ) === false )
$chmod_value = @decoct(@fileperms($file_path)) % 1000;
if ( stristr ( dirname ($url['path']) , "uploads" ) !== false )
return "Include files from directory /uploads/ is denied";
if ( stristr ( dirname ($url['path']) , "templates" ) !== false )
return "Include files from directory /templates/ is denied";
if ( stristr ( dirname ($url['path']) , "engine/data" ) !== false )
return "Include files from directory /engine/data/ is denied";
if ( stristr ( dirname ($url['path']) , "engine/cache" ) !== false )
return "Include files from directory /engine/cache/ is denied";
if ( stristr ( dirname ($url['path']) , "engine/inc" ) !== false )
return "Include files from directory /engine/inc/ is denied";
if ($chmod_value == 777 ) return "File {$url['path']} is in the folder, which is available to write (CHMOD 777). For security purposes the connection files from these folders is impossible. Change the permissions on the folder that it had no rights to the write.";
if ( !file_exists($file_path."/".$file_name) ) return "File {$url['path']} not found.";
$url['query'] = str_ireplace(array("file_path","file_name", "dle_login_hash", "_GET","_FILES","_POST","_REQUEST","_SERVER","_COOKIE","_SESSION") ,"Filtered", $url['query'] );
if( substr_count ($this->template, "{include file=") < substr_count ($this->copy_template, "{include file=")) return "Filtered";
if ( isset($url['query']) AND $url['query'] ) {
$module_params = array();
parse_str( $url['query'], $module_params );
extract($module_params, EXTR_SKIP);
unset($module_params);
}
ob_start();
$tpl = new dle_template();
$tpl->dir = TEMPLATE_DIR;
include $file_path."/".$file_name;
return ob_get_clean();
}
return '{include file="'.$name.'"}';
}
function sub_load_template( $tpl_name ) {
$tpl_name = str_replace(chr(0), '', $tpl_name);
$url = @parse_url ( $tpl_name );
$file_path = dirname ($this->clear_url_dir($url['path']));
$tpl_name = pathinfo($url['path']);
$tpl_name = totranslit($tpl_name['basename']);
$type = explode( ".", $tpl_name );
$type = strtolower( end( $type ) );
if ($type != "tpl") {
return "Not Allowed Template Name: ". $tpl_name;
}
if ($file_path AND $file_path != ".") $tpl_name = $file_path."/".$tpl_name;
if (strpos($tpl_name, '/templates/') === 0) {
$tpl_name = str_replace('/templates/','',$tpl_name);
$templatefile = ROOT_DIR . '/templates/'.$tpl_name;
} else $templatefile = $this->dir . "/" . $tpl_name;
if( $tpl_name == '' || !file_exists( $templatefile ) ) {
$templatefile = str_replace(ROOT_DIR,'',$templatefile);
return "Template not found: " . $templatefile ;
return false;
}
if( stripos ( $templatefile, ".php" ) !== false ) return "Not Allowed Template Name: ". $tpl_name;
$template = file_get_contents( $templatefile );
if (strpos ( $template, "{*" ) !== false) {
$template = preg_replace("'\{\*(.*?)\*\}'si", '', $template);
}
$template = $this->check_module($template);
if (strpos ( $template, "[group=" ) !== false OR strpos ( $template, "[not-group=" ) !== false ) {
$template = $this->check_group($template);
}
if (strpos ( $template, "[page-count=" ) !== false) {
$template = preg_replace_callback ( "#\[(page-count)=(.+?)\](.*?)\[/page-count\]#is", array( &$this, 'check_page'), $template );
}
if (strpos ( $template, "[not-page-count=" ) !== false) {
$template = preg_replace_callback ( "#\[(not-page-count)=(.+?)\](.*?)\[/not-page-count\]#is", array( &$this, 'check_page'), $template );
}
if (strpos ( $template, "[tags=" ) !== false) {
$template = preg_replace_callback ( "#\[(tags)=(.+?)\](.*?)\[/tags\]#is", array( &$this, 'check_tag'), $template );
}
if (strpos ( $template, "[not-tags=" ) !== false) {
$template = preg_replace_callback ( "#\[(not-tags)=(.+?)\](.*?)\[/not-tags\]#is", array( &$this, 'check_tag'), $template );
}
if (strpos ( $template, "[news=" ) !== false) {
$template = preg_replace_callback ( "#\[(news)=(.+?)\](.*?)\[/news\]#is", array( &$this, 'check_tag'), $template );
}
if (strpos ( $template, "[not-news=" ) !== false) {
$template = preg_replace_callback ( "#\[(not-news)=(.+?)\](.*?)\[/not-news\]#is", array( &$this, 'check_tag'), $template );
}
if (strpos ( $template, "[smartphone]" ) !== false) {
$template = preg_replace_callback ( "#\[(smartphone)\](.*?)\[/smartphone\]#is", array( &$this, 'check_device'), $template );
}
if (strpos ( $template, "[not-smartphone]" ) !== false) {
$template = preg_replace_callback ( "#\[(not-smartphone)\](.*?)\[/not-smartphone\]#is", array( &$this, 'check_device'), $template );
}
if (strpos ( $template, "[tablet]" ) !== false) {
$template = preg_replace_callback ( "#\[(tablet)\](.*?)\[/tablet\]#is", array( &$this, 'check_device'), $template );
}
if (strpos ( $template, "[not-tablet]" ) !== false) {
$template = preg_replace_callback ( "#\[(not-tablet)\](.*?)\[/not-tablet\]#is", array( &$this, 'check_device'), $template );
}
if (strpos ( $template, "[desktop]" ) !== false) {
$template = preg_replace_callback ( "#\[(desktop)\](.*?)\[/desktop\]#is", array( &$this, 'check_device'), $template );
}
if (strpos ( $template, "[not-desktop]" ) !== false) {
$template = preg_replace_callback ( "#\[(not-desktop)\](.*?)\[/not-desktop\]#is", array( &$this, 'check_device'), $template );
}
if (strpos ( $template, "{catnewscount" ) !== false) {
$template = preg_replace_callback ( "#\{catnewscount id=['\"](.+?)['\"]\}#i", array( &$this, 'catnewscount'), $template );
}
if (strpos ( $template, "{catmenu" ) !== false) {
$template = preg_replace_callback ( "#\{catmenu(.*?)\}#is", array( &$this, 'build_cat_menu'), $template );
}
return $template;
}
function clear_url_dir($var) {
if ( is_array($var) ) return "";
$var = str_ireplace( ".php", "", $var );
$var = str_ireplace( ".php", ".ppp", $var );
$var = trim( strip_tags( $var ) );
$var = str_replace( "\", "/", $var );
$var = preg_replace( "/[^a-z0-9\/\_\-]+/mi", "", $var );
$var = preg_replace( '#[\/]+#i', '/', $var );
return $var;
}
function check_module($matches) {
global $dle_module;
$regex = '/\[(aviable|available|not-aviable|not-available)=(.+?)\]((?>(?R)|.)*?)\[\/\]/is';
if (is_array($matches)) {
$aviable = $matches[2];
$block = $matches[3];
if ($matches[1] == "aviable" OR $matches[1] == "available") $action = true; else $action = false;
$aviable = explode( '|', $aviable );
if( $action ) {
if( ! (in_array( $dle_module, $aviable )) and ($aviable[0] != "global") ) $matches = '';
else $matches = $block;
} else {
if( (in_array( $dle_module, $aviable )) ) $matches = '';
else $matches = $block;
}
}
return preg_replace_callback($regex, array( &$this, 'check_module'), $matches);
}
function check_group( $matches ) {
global $member_id;
$regex = '/\[(group|not-group)=(.+?)\]((?>(?R)|.)*?)\[\/\]/is';
if (is_array($matches)) {
$groups = $matches[2];
$block = $matches[3];
if ($matches[1] == "group") $action = true; else $action = false;
$groups = explode( ',', $groups );
if( $action ) {
if( ! in_array( $member_id['user_group'], $groups ) ) $matches = ''; else $matches = $block;
} else {
if( in_array( $member_id['user_group'], $groups ) ) $matches = ''; else $matches = $block;
}
}
return preg_replace_callback($regex, array( &$this, 'check_group'), $matches);
}
function check_device( $matches=array() ) {
$block = $matches[2];
$device = $this->desktop;
if ($matches[1] == "smartphone" OR $matches[1] == "tablet" OR $matches[1] == "desktop") $action = true; else $action = false;
if ($matches[1] == "smartphone" OR $matches[1] == "not-smartphone") $device = $this->smartphone;
if ($matches[1] == "tablet" OR $matches[1] == "not-tablet") $device = $this->tablet;
if( $action ) {
if( !$device ) return "";
} else {
if( $device ) return "";
}
return $block;
}
function declination( $matches=array() ) {
$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 check_page( $matches=array() ) {
$pages = $matches[2];
$block = $matches[3];
if ($matches[1] == "page-count") $action = true; else $action = false;
$pages = explode( ',', $pages );
$page = intval($_GET['cstart']);
if ( $page < 1 ) $page = 1;
if( $action ) {
if( !$this->_in_rangearray( $page, $pages ) ) return "";
} else {
if( $this->_in_rangearray( $page, $pages ) ) return "";
}
return $block;
}
function check_tag( $matches=array() ) {
global $config;
$params = $matches[2];
$block = $matches[3];
if ($matches[1] == "tags" OR $matches[1] == "news") $action = true; else $action = false;
if ($matches[1] == "tags" OR $matches[1] == "not-tags") $tag = "tags";
if ($matches[1] == "news" OR $matches[1] == "not-news") $tag = "news";
$props = "";
$params = trim($params);
if ( $tag == "news" ) {
if( defined( 'NEWS_ID' ) ) $props = NEWS_ID;
$params = explode( ',', $params);
if( $action ) {
if( !$this->_in_rangearray( $props, $params ) ) return "";
} else {
if( $this->_in_rangearray( $props, $params ) ) return "";
}
return $block;
} elseif ( $tag == "tags" ) {
if( defined( 'CLOUDSTAG' ) ) {
if( function_exists('mb_strtolower') ) {
$params = mb_strtolower($params, $config['charset']);
$props = trim(mb_strtolower(CLOUDSTAG, $config['charset']));
} else {
$params = strtolower($params);
$props = trim(strtolower(CLOUDSTAG));
}
}
$params = explode( ',', $params);
if( $action ) {
if( !in_array( $props, $params ) ) return "";
} else {
if( in_array( $props, $params ) ) return "";
}
return $block;
} else return "";
}
function _in_rangearray($findvalue, $findarray) {
$findvalue = trim($findvalue);
foreach ($findarray as $value) {
$value = trim($value);
if( $value == $findvalue ) {
return true;
} elseif( count(explode('-', $value)) == 2 ) {
list($min, $max) = explode('-', $value);
$findvalue = intval($findvalue);
$min = intval($min);
$max = intval($max);
if( $findvalue >= $min && $findvalue <= $max ) {
return true;
}
}
}
return false;
}
function catnewscount( $matches=array() ) {
global $cat_info;
$id = intval($matches[1]);
return intval($cat_info[$id]['newscount']);
}
function build_tree( $data ) {
$tree = array();
foreach ($data as $id=>&$node) {
if ($node['parentid'] == 0) {
$tree[$id] = &$node;
} else {
if (!isset($data[$node['parentid']]['children'])) $data[$node['parentid']]['children'] = array();
$data[$node['parentid']]['children'][$id] = &$node;
}
}
return $tree;
}
function recursive_array_search($needle, $haystack, $subcat = true, &$item = false) {
if(!$item) $item = array();
foreach($haystack as $key => $value) {
if(in_array($key, $needle)) {
$item[$key] = $value;
if(!$subcat AND is_array( $value['children'] ) ) {
unset($item[$key]['children']);
$this->recursive_array_search($needle, $value['children'], $subcat, $item);
}
} elseif (is_array( $value['children'] ) ) {
$this->recursive_array_search($needle, $value['children'], $subcat, $item);
}
}
return $item;
}
function build_cat_menu( $matches=array() ) {
global $cat_info, $config;
if(!count($cat_info)) return "";
if( !is_array($this->category_tree) ) {
$this->category_tree = $this->build_tree($cat_info);
}
if(!count($this->category_tree)) return "";
$param_str = trim($matches[1]);
$allow_cache = $config['allow_cache'];
$config['allow_cache'] = false;
$catlist = $this->category_tree;
$cache_id = md5($param_str);
if( $config['category_newscount'] ) $cache_prefix = "news"; else $cache_prefix = "catmenu";
if( preg_match( "#cache=['\"](.+?)['\"]#i", $param_str, $match ) ) {
if( $match[1] == "yes" ) $config['allow_cache'] = 1;
}
$content = dle_cache( $cache_prefix, $cache_id );
if( $content !== false ) {
$config['allow_cache'] = $allow_cache;
return $content;
} else {
if( preg_match( "#subcat=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$subcat = trim($match[1]);
if($subcat == "yes") $subcat = true; else $subcat = false;
} else $subcat = true;
if( preg_match( "#id=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$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);
$catlist= $this->recursive_array_search( explode(',', $temp_array), $catlist, $subcat);
if(!count($catlist)) return "";
}
if( preg_match( "#template=['\"](.+?)['\"]#i", $param_str, $match ) ) {
$template_name = trim($match[1]);
} else $template_name = "categorymenu";
$template = $this->sub_load_template( $template_name . '.tpl' );
$template = str_replace( "[root]", "", $template );
$template = str_replace( "[/root]", "", $template );
if( preg_match( "'\[sub-prefix\](.+?)\[/sub-prefix\]'si", $template, $match ) ) {
$prefix = trim($match[1]);
$template = str_replace( $match[0], "", $template );
}
if( preg_match( "'\[sub-suffix\](.+?)\[/sub-suffix\]'si", $template, $match ) ) {
$suffix = trim($match[1]);
$template = str_replace( $match[0], "", $template );
}
if($config['allow_cache']) {
$template = preg_replace( "'\[active\](.+?)\[/active\]'si", "", $template );
}
if( preg_match( "'\[item\](.+?)\[/item\]'si", $template, $match ) ) {
$item = trim($match[1]);
$template = str_replace( $match[0], "{items}", $template );
$template = str_replace( "{items}", $this->compile_menu($catlist, $prefix, $item, $suffix, false, 0), $template );
}
create_cache( $cache_prefix, $template, $cache_id);
$config['allow_cache'] = $allow_cache;
return $template;
}
}
function compile_menu( $nodes, $prefix, $item_template, $suffix, $sublevelmarker = false, $indent = 0 ) {
$item = "";
foreach ($nodes as $node) {
$item .= $this->compile_item($node, $item_template);
if (isset($node['children'])) {
if ( stripos ( $item_template, "{sub-item}" ) !== false ) {
$item = str_replace( "{sub-item}", $this->compile_menu($node['children'], $prefix, $item_template, $suffix, true, $indent+1), $item );
} else {
$item .= $this->compile_menu($node['children'], $prefix, $item_template, $suffix, true, $indent+1);
}
}
}
if( $sublevelmarker ) {
$item = $prefix.$item.$suffix;
}
return $item;
}
function compile_item( $row, $template) {
global $config, $category_id;
$category = intval($category_id);
$template = str_replace( "{name}", $row['name'], $template );
$template = str_replace( "{icon}", $row['icon'], $template );
$template = str_replace( "{url}", $config['http_home_url'] . get_url( $row['id'] ) . "/" , $template );
$template = str_replace( "{news-count}", intval($row['newscount']), $template );
if($category == $row['id']) {
$template = str_replace( "[active]", "", $template );
$template = str_replace( "[/active]", "", $template );
} else {
$template = preg_replace( "'\[active\](.+?)\[/active\]'si", "", $template );
}
if(!isset($row['children'])) {
$template = str_replace( "{sub-item}", "", $template );
$template = preg_replace( "'\[isparent\](.+?)\[/isparent\]'si", "", $template );
} else {
$template = str_replace( "[isparent]", "", $template );
$template = str_replace( "[/isparent]", "", $template );
}
return $template;
}
function _clear() {
$this->data = array ();
$this->block_data = array ();
$this->copy_template = $this->template;
}
function clear() {
$this->data = array ();
$this->block_data = array ();
$this->copy_template = null;
$this->template = null;
}
function global_clear() {
$this->data = array ();
$this->block_data = array ();
$this->result = array ();
$this->copy_template = null;
$this->template = null;
}
function compile($tpl) {
$time_before = $this->get_real_time();
if( count( $this->block_data ) ) {
foreach ( $this->block_data as $key_find => $key_replace ) {
$find_preg[] = $key_find;
$replace_preg[] = $key_replace;
}
$this->copy_template = preg_replace( $find_preg, $replace_preg, $this->copy_template );
}
foreach ( $this->data as $key_find => $key_replace ) {
$find[] = $key_find;
$replace[] = $key_replace;
}
$this->copy_template = str_ireplace( $find, $replace, $this->copy_template );
if (strpos ( $this->copy_template, "[declination=" ) !== false) {
$this->copy_template = preg_replace_callback ( "#\[declination=(.+?)\](.+?)\[/declination\]#is", array( &$this, 'declination'), $this->copy_template );
}
if( strpos( $this->copy_template, "{customcomments" ) !== false ) {
$this->copy_template = preg_replace_callback( "#\{customcomments(.+?)\}#i", "custom_comments", $this->copy_template );
}
if( strpos( $this->copy_template, "{custom" ) !== false ) {
$this->copy_template = preg_replace_callback( "#\{custom(.+?)\}#i", "custom_print", $this->copy_template );
}
if( strpos( $this->template, "{include file=" ) !== false ) {
$this->include_mode = 'php';
$this->copy_template = preg_replace_callback( "#\{include file=['\"](.+?)['\"]\}#i", array( &$this, 'load_file'), $this->copy_template );
}
if( isset( $this->result[$tpl] ) ) $this->result[$tpl] .= $this->copy_template;
else $this->result[$tpl] = $this->copy_template;
$this->_clear();
$this->template_parse_time += $this->get_real_time() - $time_before;
}
function get_real_time() {
list ( $seconds, $microSeconds ) = explode( ' ', microtime() );
return (( float ) $seconds + ( float ) $microSeconds);
}
}
?>
Did this file decode correctly?
Original Code
<?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
http://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004,2017 SoftNews Media Group
=====================================================
*/
?><?php $_F=__FILE__;$_X='P3F0PzdoNw1uQSoNbnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2DW57NWplakpVdVB7RUgyVUhQey17T3p7aUd1ZURQNmd7W1BZVWp7STxHTjd7DW4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ1ue2hlZTc6QUFZM1AtSFA2Z1E8TkENbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDW57ZEc3ejxVMmhleygxKXtXXV1rLVddYSB7aUd1ZURQNmd7W1BZVWp7STxHTjcNbnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2DW570JTQsNC90L3Ri9C5e9C60L7QtHvQt9Cw0YnQuNGJ0LXQvXvQsNCy0YLQvtGA0YHQutC40LzQuHvQv9GA0LDQstCw0LzQuA1udnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYNbnvQpNCw0LnQuzp7ZVBsNzNqZVBnUTEzamdnUTdoNw1uLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NbnvQndCw0LfQvdCw0YfQtdC90LjQtTp70J/QsNGA0YHQuNC90LN70YjQsNCx0LvQvtC90L7Qsg1udnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnYNbipBDW4NblV1eyghe1lQdVVIUFl7KHsnNXJvckpWeUVFRElWREUneykpe3cNbglZVVB7KHsiTGoxTVVIMntqZWVQbDdlISJ7KTsNblgNbg1uQFVIVV9nUGUoJzcxPFBRPFAxTjxnVUdIXzNVbFVlJyx7YV1dXV1dXV17KTsNbkBVSFVfZ1BlKCc3MTxQUU9qMU1lPGoxTV8zVWxVZScse2FdXV1dXV1deyk7DW5AVUhVX2dQZSgnNzE8UFE0VWUnLHt1ajNnUCk7DW4NbjxQQ05VPFBfR0gxUHswLi5vXzVWMHtReydBUEgyVUhQQTEzamdnUGdBbEdPVTNQWVBlUDFlUTEzamdnUTdoNyc7DW4NbjEzamdne1kzUF9lUGw3M2plUHt3DW4JDW4JOWo8eyRZVTx7dnsnJzsNbgk5ajx7JGVQbDczamVQe3Z7SE4zMzsNbgk5ajx7JDFHN3pfZVBsNzNqZVB7dntITjMzOw1uCTlqPHskWVBnTWVHN3t2e2U8TlA7DW4JOWo8eyRnbGo8ZTdoR0hQe3Z7dWozZ1A7DW4JOWo8eyRlak8zUGV7dnt1ajNnUDsNbgk5ajx7JFlqZWp7dntqPDxqensoKTsNbgk5ajx7JE8zRzFNX1lqZWp7dntqPDxqensoKTsNbgk5ajx7JDxQZ04zZXt2e2o8PGp6eygnVUh1Ryd7dnF7Jycseyc5R2VQJ3t2cXsnJyx7J2c3UFBZT2o8J3t2cXsnJyx7JzFHSGVQSGUne3Zxeycneyk7DW4JOWo8eyRqMzNHNl83aDdfVUgxM05ZUHt2e2U8TlA7DW4JOWo8eyRVSDEzTllQX2xHWVB7dnsnZTczJzsNbgk5ajx7JDFqZVAyRzx6X2U8UFB7dnt1ajNnUDsNbgkNbgk5ajx7JGVQbDczamVQXzdqPGdQX2VVbFB7dntdOw1uDW57e3t7dU5IMWVVR0h7X18xR0hnZTxOMWUoKXcNbg1uCQkkZWhVZy1xWVU8e3Z7MC4ub181VjB7UXsnQWVQbDczamVQZ0EnOw1uDW4JCSRsR09VM1BfWVBlUDFle3Z7SFA2e1tHT1UzUF81UGVQMWU7DW4NbgkJVXV7KHskbEdPVTNQX1lQZVAxZS1xVWdbR09VM1AoKXspe3cNbgkJCSRlaFVnLXFnbGo8ZTdoR0hQe3Z7ZTxOUDsNbgkJCSRlaFVnLXFZUGdNZUc3e3Z7dWozZ1A7DW4JCVgNbg1uCQlVdXsoeyRsR09VM1BfWVBlUDFlLXFVZ29qTzNQZSgpeyl7dw1uCQkJJGVoVWctcWdsajxlN2hHSFB7dnt1ajNnUDsNbgkJCSRlaFVnLXFZUGdNZUc3e3Z7dWozZ1A7DW4JCQkkZWhVZy1xZWpPM1Ble3Z7ZTxOUDsNbgkJWA1uCVgNbgkNbgl1TkgxZVVHSHtnUGUoJEhqbFAseyQ5ajwpe3cNbgkJVXUoe1VnX2o8PGp6KHskOWo8eyl7JiZ7MUdOSGUoeyQ5ajx7KXspe3cNbgkJCXVHPFBqMWh7KHskOWo8e2pneyRNUHp7dnF7JE1Qel85ajx7KXt3DW4JCQkJJGVoVWctcWdQZSh7JE1Qeix7JE1Qel85ajx7KTsNbgkJCVgNbgkJWHtQM2dQDW4JCQkkOWo8e3Z7Z2U8X1U8UDczajFQKHsid1VIMTNOWVAiLHsiJiNhV0s7VUgxM05ZUCIse3skOWo8eyk7DW4JCQkkOWo8e3Z7Z2U8X1U8UDczajFQKHsidzFOZ2VHbCIseyImI2FXSzsxTmdlR2wiLHt7JDlqPHspOw1uCQkJJGVoVWctcVlqZWpiJEhqbFBGe3Z7JDlqPDsNbglYDW4JDW4JdU5IMWVVR0h7Z1BlX08zRzFNKCRIamxQLHskOWo8KXt3DW4JCVV1KHtVZ19qPDxqeih7JDlqPHspeyYmezFHTkhlKHskOWo8eyl7KXt3DW4JCQl1RzxQajFoeyh7JDlqPHtqZ3skTVB6e3ZxeyRNUHpfOWo8eyl7dw1uCQkJCSRlaFVnLXFnUGVfTzNHMU0oeyRNUHoseyRNUHpfOWo8eyk7DW4JCQlYDW4JCVh7UDNnUA1uCQkJJDlqPHt2e2dlPF9VPFA3M2oxUCh7IncxTmdlR2wiLHsiJiNhV0s7MU5nZUdsIix7eyQ5ajx7KTsNbgkJCSQ5ajx7dntnZTxfVTxQNzNqMVAoeyJ3VUgxM05ZUCIseyImI2FXSztVSDEzTllQIix7eyQ5ajx7KTsNbgkJCSRlaFVnLXFPM0cxTV9ZamVqYiRIamxQRnt2eyQ5ajw7DW4JWA1uCQ1uCXVOSDFlVUdIezNHallfZVBsNzNqZVAoJGU3M19IamxQKXt3DW4NbgkJJGVVbFBfT1B1RzxQe3Z7JGVoVWctcTJQZV88UGozX2VVbFAoKTsNbgkJDW4JCSRlNzNfSGpsUHt2e2dlPF88UDczajFQKDFoPChdKSx7JycseyRlNzNfSGpsUCk7DW4NbgkJJE48M3t2e0A3ajxnUF9OPDN7KHskZTczX0hqbFB7KTsNbg1uCQkkdVUzUF83amVoe3Z7WVU8SGpsUHsoJGVoVWctcTEzUGo8X048M19ZVTwoJE48M2InN2plaCdGKSk7DW4JCSRlNzNfSGpsUHt2ezdqZWhVSHVHKCROPDNiJzdqZWgnRik7DW4NbgkJJGU3M19IamxQe3Z7ZUdlPGpIZzNVZSgkZTczX0hqbFBiJ09qZ1BIamxQJ0YpOw1uCQkkZXo3UHt2e1B4NzNHWVAoeyJRIix7JGU3M19IamxQeyk7DW4JCSRlejdQe3Z7Z2U8ZUczRzZQPCh7UEhZKHskZXo3UHspeyk7DW4NbgkJVXV7KCRlejdQeyF2eyJlNzMiKXt3DW4JCQkkZWhVZy1xZVBsNzNqZVB7dnsiREdle3IzM0c2UFl7b1BsNzNqZVB7RGpsUDp7IntRZ2U8XzxQNzNqMVAoMC4ub181VjAseycnLHskZWhVZy1xWVU8KVEiQSJRJGU3M19IamxQezsNbgkJCSRlaFVnLXExRzd6X2VQbDczamVQe3Z7JGVoVWctcWVQbDczamVQOw1uCQkJPFBlTjxIeyIiOw1uDW4JCVgNbg1uCQlVdXsoJHVVM1BfN2plaHtyRDV7JHVVM1BfN2plaHshdnsiUSIpeyRlNzNfSGpsUHt2eyR1VTNQXzdqZWhRIkEiUSRlNzNfSGpsUDsNbg1uCQlVdSh7Z2U8VTdHZ3soeyRlNzNfSGpsUCx7IlE3aDcieyl7IXZ2e3VqM2dQeyl7dw1uCQkJJGVoVWctcWVQbDczamVQe3Z7IkRHZXtyMzNHNlBZe29QbDczamVQe0RqbFA6eyJ7UWdlPF88UDczajFQKDAuLm9fNVYwLHsnJyx7JGVoVWctcVlVPClRIkEiUSRlNzNfSGpsUHs7DW4JCQkkZWhVZy1xMUc3el9lUGw3M2plUHt2eyRlaFVnLXFlUGw3M2plUDsNbgkJCTxQZU48SHsiIjsNbgkJWA1uDW4JCVV1KHskZTczX0hqbFB7dnZ7Jyd7fHx7IXVVM1BfUHhVZ2VnKHskZWhVZy1xWVU8e1F7IkEie1F7JGU3M19IamxQeyl7KXt3DW4JCQkkZWhVZy1xZVBsNzNqZVB7dnsib1BsNzNqZVB7SEdle3VHTkhZOnsie1FnZTxfPFA3M2oxUCgwLi5vXzVWMCx7JycseyRlaFVnLXFZVTwpUSJBIlEkZTczX0hqbFB7Ow1uCQkJJGVoVWctcTFHN3pfZVBsNzNqZVB7dnskZWhVZy1xZVBsNzNqZVA7DW4JCQk8UGVOPEh7IiI7DW4JCVgNbg1uCQkkZWhVZy1xZVBsNzNqZVB7dnt1VTNQXzJQZV8xR0hlUEhlZyh7JGVoVWctcVlVPHtReyJBIntReyRlNzNfSGpsUHspOw1uCQkNbgkJVXV7KGdlPDdHZ3soeyRlaFVnLXFlUGw3M2plUCx7IncqInspeyF2dnt1ajNnUCl7dw1uCQkJJGVoVWctcWVQbDczamVQe3Z7NzxQMl88UDczajFQKCInXFx3XFwqKFEqPylcXCpcXFgnZ1UiLHsnJyx7JGVoVWctcWVQbDczamVQKTsNbgkJWA1uDW4JCSRlaFVnLXFlUGw3M2plUHt2eyRlaFVnLXExaFAxTV9sR1lOM1AoJGVoVWctcWVQbDczamVQKTsNbgkJDW4JCVV1eyhnZTw3R2d7KHskZWhVZy1xZVBsNzNqZVAseyJiMjxHTjd2InspeyF2dnt1ajNnUHsuMHtnZTw3R2d7KHskZWhVZy1xZVBsNzNqZVAseyJiSEdlLTI8R043diJ7KXshdnZ7dWozZ1Ape3cNbgkJCSRlaFVnLXFlUGw3M2plUHt2eyRlaFVnLXExaFAxTV8yPEdONygkZWhVZy1xZVBsNzNqZVApOw1uCQlYDW4JCQ1uCQlVdXsoZ2U8N0dneyh7JGVoVWctcWVQbDczamVQLHsiYjdqMlAtMUdOSGV2InspeyF2dnt1ajNnUCl7dw1uCQkJJGVoVWctcWVQbDczamVQe3Z7NzxQMl88UDczajFQXzFqMzNPajFNeyh7IiNcXGIoN2oyUC0xR05IZSl2KFErPylcXEYoUSo/KVxcYkE3ajJQLTFHTkhlXFxGI1VnIix7ajw8anooeyYkZWhVZyx7JzFoUDFNXzdqMlAnKSx7JGVoVWctcWVQbDczamVQeyk7DW4JCVgNbg1uCQlVdXsoZ2U8N0dneyh7JGVoVWctcWVQbDczamVQLHsiYkhHZS03ajJQLTFHTkhldiJ7KXshdnZ7dWozZ1Ape3cNbgkJCSRlaFVnLXFlUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTXsoeyIjXFxiKEhHZS03ajJQLTFHTkhlKXYoUSs/KVxcRihRKj8pXFxiQUhHZS03ajJQLTFHTkhlXFxGI1VnIix7ajw8anooeyYkZWhVZyx7JzFoUDFNXzdqMlAnKSx7JGVoVWctcWVQbDczamVQeyk7DW4JCVgNbg1uCQlVdXsoZ2U8N0dneyh7JGVoVWctcWVQbDczamVQLHsiYmVqMmd2InspeyF2dnt1ajNnUCl7dw1uCQkJJGVoVWctcWVQbDczamVQe3Z7NzxQMl88UDczajFQXzFqMzNPajFNeyh7IiNcXGIoZWoyZyl2KFErPylcXEYoUSo/KVxcYkFlajJnXFxGI1VnIix7ajw8anooeyYkZWhVZyx7JzFoUDFNX2VqMicpLHskZWhVZy1xZVBsNzNqZVB7KTsNbgkJWA1uDW4NbgkJVXV7KGdlPDdHZ3soeyRlaFVnLXFlUGw3M2plUCx7ImJIR2UtZWoyZ3Yieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZWhVZy1xZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU17KHsiI1xcYihIR2UtZWoyZyl2KFErPylcXEYoUSo/KVxcYkFIR2UtZWoyZ1xcRiNVZyIse2o8PGp6KHsmJGVoVWcseycxaFAxTV9lajInKSx7JGVoVWctcWVQbDczamVQeyk7DW4JCVgNbg1uCQlVdXsoZ2U8N0dneyh7JGVoVWctcWVQbDczamVQLHsiYkhQNmd2InspeyF2dnt1ajNnUCl7dw1uCQkJJGVoVWctcWVQbDczamVQe3Z7NzxQMl88UDczajFQXzFqMzNPajFNeyh7IiNcXGIoSFA2Zyl2KFErPylcXEYoUSo/KVxcYkFIUDZnXFxGI1VnIix7ajw8anooeyYkZWhVZyx7JzFoUDFNX2VqMicpLHskZWhVZy1xZVBsNzNqZVB7KTsNbgkJWA1uDW4JCVV1eyhnZTw3R2d7KHskZWhVZy1xZVBsNzNqZVAseyJiSEdlLUhQNmd2InspeyF2dnt1ajNnUCl7dw1uCQkJJGVoVWctcWVQbDczamVQe3Z7NzxQMl88UDczajFQXzFqMzNPajFNeyh7IiNcXGIoSEdlLUhQNmcpdihRKz8pXFxGKFEqPylcXGJBSEdlLUhQNmdcXEYjVWciLHtqPDxqeih7JiRlaFVnLHsnMWhQMU1fZWoyJykseyRlaFVnLXFlUGw3M2plUHspOw1uCQlYDW4NbgkJVXV7KGdlPDdHZ3soeyRlaFVnLXFlUGw3M2plUCx7ImJnbGo8ZTdoR0hQRiJ7KXshdnZ7dWozZ1Ape3cNbgkJCSRlaFVnLXFlUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTXsoeyIjXFxiKGdsajxlN2hHSFApXFxGKFEqPylcXGJBZ2xqPGU3aEdIUFxcRiNVZyIse2o8PGp6KHsmJGVoVWcseycxaFAxTV9ZUDlVMVAnKSx7JGVoVWctcWVQbDczamVQeyk7DW4JCVgNbg1uCQlVdXsoZ2U8N0dneyh7JGVoVWctcWVQbDczamVQLHsiYkhHZS1nbGo8ZTdoR0hQRiJ7KXshdnZ7dWozZ1Ape3cNbgkJCSRlaFVnLXFlUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTXsoeyIjXFxiKEhHZS1nbGo8ZTdoR0hQKVxcRihRKj8pXFxiQUhHZS1nbGo8ZTdoR0hQXFxGI1VnIix7ajw8anooeyYkZWhVZyx7JzFoUDFNX1lQOVUxUCcpLHskZWhVZy1xZVBsNzNqZVB7KTsNbgkJWA1uDW4JCVV1eyhnZTw3R2d7KHskZWhVZy1xZVBsNzNqZVAseyJiZWpPM1BlRiJ7KXshdnZ7dWozZ1Ape3cNbgkJCSRlaFVnLXFlUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTXsoeyIjXFxiKGVqTzNQZSlcXEYoUSo/KVxcYkFlak8zUGVcXEYjVWciLHtqPDxqeih7JiRlaFVnLHsnMWhQMU1fWVA5VTFQJykseyRlaFVnLXFlUGw3M2plUHspOw1uCQlYDW4NbgkJVXV7KGdlPDdHZ3soeyRlaFVnLXFlUGw3M2plUCx7ImJIR2UtZWpPM1BlRiJ7KXshdnZ7dWozZ1Ape3cNbgkJCSRlaFVnLXFlUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTXsoeyIjXFxiKEhHZS1lak8zUGUpXFxGKFEqPylcXGJBSEdlLWVqTzNQZVxcRiNVZyIse2o8PGp6KHsmJGVoVWcseycxaFAxTV9ZUDlVMVAnKSx7JGVoVWctcWVQbDczamVQeyk7DW4JCVgNbg1uCQlVdXsoZ2U8N0dneyh7JGVoVWctcWVQbDczamVQLHsiYllQZ01lRzdGInspeyF2dnt1ajNnUCl7dw1uCQkJJGVoVWctcWVQbDczamVQe3Z7NzxQMl88UDczajFQXzFqMzNPajFNeyh7IiNcXGIoWVBnTWVHNylcXEYoUSo/KVxcYkFZUGdNZUc3XFxGI1VnIix7ajw8anooeyYkZWhVZyx7JzFoUDFNX1lQOVUxUCcpLHskZWhVZy1xZVBsNzNqZVB7KTsNbgkJWA1uDW4JCVV1eyhnZTw3R2d7KHskZWhVZy1xZVBsNzNqZVAseyJiSEdlLVlQZ01lRzdGInspeyF2dnt1ajNnUCl7dw1uCQkJJGVoVWctcWVQbDczamVQe3Z7NzxQMl88UDczajFQXzFqMzNPajFNeyh7IiNcXGIoSEdlLVlQZ01lRzcpXFxGKFEqPylcXGJBSEdlLVlQZ01lRzdcXEYjVWciLHtqPDxqeih7JiRlaFVnLHsnMWhQMU1fWVA5VTFQJykseyRlaFVnLXFlUGw3M2plUHspOw1uCQlYDW4JCQ1uCQlVdXsoZ2U8N0dneyh7JGVoVWctcWVQbDczamVQLHsidzFqZWxQSE4ieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZWhVZy1xZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU17KHsiI1xcdzFqZWxQSE4oUSo/KVxcWCNVZyIse2o8PGp6KHsmJGVoVWcseydPTlUzWV8xamVfbFBITicpLHskZWhVZy1xZVBsNzNqZVB7KTsNbgkJWA1uCQkNbgkJVXV7KGdlPDdHZ3soeyRlaFVnLXFlUGw3M2plUCx7IncxamVIUDZnMUdOSGUieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZWhVZy1xZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU17KHsiI1xcdzFqZUhQNmcxR05IZXtVWXZiJ1wiRihRKz8pYidcIkZcXFgjVSIse2o8PGp6KHsmJGVoVWcseycxamVIUDZnMUdOSGUnKSx7JGVoVWctcWVQbDczamVQeyk7DW4JCVgNbgkJDW4JCVV1KHtnZTw3R2coeyRlaFVnLXFlUGw3M2plUCx7IndVSDEzTllQe3VVM1B2InspeyF2dnt1ajNnUHspe3cNbgkJCSRlaFVnLXFVSDEzTllQX2xHWVB7dnsnZTczJzsJCQkNbgkJCSRlaFVnLXFlUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTSh7IiNcXHdVSDEzTllQe3VVM1B2YidcIkYoUSs/KWInXCJGXFxYI1UiLHtqPDxqeih7JiRlaFVnLHsnM0dqWV91VTNQJykseyRlaFVnLXFlUGw3M2plUHspOw1uCQkNbgkJWA1uDW4JCSRlaFVnLXExRzd6X2VQbDczamVQe3Z7JGVoVWctcWVQbDczamVQOw1uCQkNbgkJJGVoVWctcWVQbDczamVQXzdqPGdQX2VVbFB7K3Z7JGVoVWctcTJQZV88UGozX2VVbFAoKXsteyRlVWxQX09QdUc8UDsNbgkJPFBlTjxIe2U8TlA7DW4JWA1uDW4JdU5IMWVVR0h7M0dqWV91VTNQKHskbGplMWhQZ3ZqPDxqeigpeyl7dw1uCQkyM0dPajN7JFlPLHskVWdfM0cyMlBZLHskbFBsT1A8X1VZLHskMWplX1VIdUcseyQxR0h1VTIseyROZ1A8XzI8R043LHskMWplUDJHPHpfVVkseyRfb1ZbRSx7JDNqSDIseyRnbGo8ZTdoR0hQX1lQZVAxZVBZLHskWTNQX2xHWU4zUDsNbg1uCQkkSGpsUHt2eyRsamUxaFBnYmFGOw1uDW4JCSRIamxQe3Z7Z2U8XzxQNzNqMVAoezFoPChdKSx7IiIseyRIamxQeyk7DW4JCSRIamxQe3Z7Z2U8XzxQNzNqMVAoeydRUScseycnLHskSGpsUHspOw1uDW4JCSROPDN7dntAN2o8Z1BfTjwzeygkSGpsUCk7DW4JCSRlejdQe3Z7UHg3M0dZUCh7IlEiLHskTjwzYic3amVoJ0Z7KTsNbgkJJGV6N1B7dntnZTxlRzNHNlA8KHtQSFkoeyRlejdQeyl7KTsNbg1uCQlVdXsoJGV6N1B7dnZ7ImU3MyIpe3cNbg1uCQkJPFBlTjxIeyRlaFVnLXFnTk9fM0dqWV9lUGw3M2plUCh7JEhqbFB7KTsNbg1uCQlYDW4NbgkJVXV7KCRlaFVnLXFVSDEzTllQX2xHWVB7dnZ7IjdoNyIpe3cNbg1uCQkJVXV7KHshJGVoVWctcWozM0c2XzdoN19VSDEzTllQeyl7PFBlTjxIOw1uDW4JCQlVdXsoJGV6N1B7IXZ7IjdoNyIpezxQZU48SHsib0d7MUdISFAxZXs3UDxsVWVlUFl7R0gzent1VTNQZ3s2VWVoe2VoUHtQeGVQSGdVR0g6e1FlNzN7Rzx7UTdoNyI7DW4NbgkJCVV1eygkTjwzYic3amVoJ0Z3XVh7dnZ7IkEieykNbgkJCQkkdVUzUF83amVoe3Z7WVU8SGpsUHsoMC4ub181VjBRJE48M2InN2plaCdGKTsNbgkJCVAzZ1ANbgkJCQkkdVUzUF83amVoe3Z7WVU8SGpsUHsoMC4ub181VjBRIkEiUSROPDNiJzdqZWgnRik7DW4NbgkJCSR1VTNQX0hqbFB7dns3amVoVUh1RygkTjwzYic3amVoJ0YpOw1uCQkJJHVVM1BfSGpsUHt2eyR1VTNQX0hqbFBiJ09qZ1BIamxQJ0Y7DW4NbgkJCVV1eyh7Z2U8VWdlPHsoezdoN19OSGpsUCh7Imcieyl7LHsiNlVIWUc2ZyJ7KXt2dnZ7dWozZ1B7KQ1uCQkJCSQxaGxHWV85ajNOUHt2e0BZUDFHMWUoQHVVM1A3UDxsZygkdVUzUF83amVoKSl7JXthXV1dOw1uDW4JCQlVdXsoe2dlPFVnZTx7KHtZVTxIamxQeygkTjwzYic3amVoJ0Ypeyx7Ik43M0dqWWcieyl7IXZ2e3VqM2dQeykNbgkJCQk8UGVOPEh7IlZIMTNOWVB7dVUzUGd7dTxHbHtZVTxQMWVHPHp7QU43M0dqWWdBe1Vne1lQSFVQWSI7DW4NbgkJCVV1eyh7Z2U8VWdlPHsoe1lVPEhqbFB7KCROPDNiJzdqZWgnRil7LHsiZVBsNzNqZVBnInspeyF2dnt1ajNnUHspDW4JCQkJPFBlTjxIeyJWSDEzTllQe3VVM1Bne3U8R2x7WVU8UDFlRzx6e0FlUGw3M2plUGdBe1Vne1lQSFVQWSI7DW4NbgkJCVV1eyh7Z2U8VWdlPHsoe1lVPEhqbFB7KCROPDNiJzdqZWgnRil7LHsiUEgyVUhQQVlqZWoieyl7IXZ2e3VqM2dQeykNbgkJCQk8UGVOPEh7IlZIMTNOWVB7dVUzUGd7dTxHbHtZVTxQMWVHPHp7QVBIMlVIUEFZamVqQXtVZ3tZUEhVUFkiOw1uDW4JCQlVdXsoe2dlPFVnZTx7KHtZVTxIamxQeygkTjwzYic3amVoJ0Ypeyx7IlBIMlVIUEExajFoUCJ7KXshdnZ7dWozZ1B7KQ1uCQkJCTxQZU48SHsiVkgxM05ZUHt1VTNQZ3t1PEdse1lVPFAxZUc8entBUEgyVUhQQTFqMWhQQXtVZ3tZUEhVUFkiOw1uDW4JCQlVdXsoe2dlPFVnZTx7KHtZVTxIamxQeygkTjwzYic3amVoJ0Ypeyx7IlBIMlVIUEFVSDEieyl7IXZ2e3VqM2dQeykNbgkJCQk8UGVOPEh7IlZIMTNOWVB7dVUzUGd7dTxHbHtZVTxQMWVHPHp7QVBIMlVIUEFVSDFBe1Vne1lQSFVQWSI7DW4NbgkJCVV1eygkMWhsR1lfOWozTlB7dnZ7ICAgeyl7PFBlTjxIeyJ5VTNQe3ckTjwzYic3amVoJ0ZYe1Vne1VIe2VoUHt1RzNZUDwsezZoVTFoe1Vne2o5alUzak8zUHtlR3s2PFVlUHsoZExbLjV7ICAgKVF7eUc8e2dQMU48VWV6ezdOPDdHZ1Bne2VoUHsxR0hIUDFlVUdIe3VVM1Bne3U8R2x7ZWhQZ1B7dUczWVA8Z3tVZ3tVbDdHZ2dVTzNQUXtkaGpIMlB7ZWhQezdQPGxVZ2dVR0hne0dIe2VoUHt1RzNZUDx7ZWhqZXtVZXtoall7SEd7PFUyaGVne2VHe2VoUHs2PFVlUFEiOw1uDW4JCQlVdXsoeyF1VTNQX1B4VWdlZygkdVUzUF83amVoUSJBIlEkdVUzUF9IamxQKXspezxQZU48SHsieVUzUHt3JE48M2InN2plaCdGWHtIR2V7dUdOSFlRIjsNbg1uCQkJJE48M2InQ05QPHonRnt2e2dlPF9VPFA3M2oxUChqPDxqeigidVUzUF83amVoIiwidVUzUF9IamxQIix7IlkzUF8zRzJVSF9oamdoIix7Il9JRW8iLCJfeVZKRWkiLCJfcC5pbyIsIl8wRQpCRWlvIiwiX2lFMH1FMCIsIl9kLi4+VkUiLCJfaUVpaVYuRCIpeywieVUzZVA8UFkiLHskTjwzYidDTlA8eidGeyk7DW4NbgkJCVV1KHtnTk9nZTxfMUdOSGV7KCRlaFVnLXFlUGw3M2plUCx7IndVSDEzTllQe3VVM1B2Iil7dHtnTk9nZTxfMUdOSGV7KCRlaFVnLXExRzd6X2VQbDczamVQLHsid1VIMTNOWVB7dVUzUHYiKSl7PFBlTjxIeyJ5VTNlUDxQWSI7DW4NbgkJCVV1eyh7VWdnUGUoJE48M2InQ05QPHonRil7ckQ1eyROPDNiJ0NOUDx6J0Z7KXt3DW4NbgkJCQkkbEdZTjNQXzdqPGpsZ3t2e2o8PGp6KCk7DW4NbgkJCQk3ajxnUF9nZTwoeyROPDNiJ0NOUDx6J0YseyRsR1lOM1BfN2o8amxneyk7DW4NbgkJCQlQeGU8ajFlKCRsR1lOM1BfN2o8amxnLHtFU28wX2k+VnApOw1uDW4JCQkJTkhnUGUoJGxHWU4zUF83ajxqbGcpOw1uCQkJCQ1uDW4JCQlYDW4NbgkJCUdPX2dlajxlKCk7DW4JCQkkZTcze3Z7SFA2e1kzUF9lUGw3M2plUCgpOw1uCQkJJGU3My1xWVU8e3Z7b0VbcEpyb0VfNVYwOw1uCQkJVUgxM05ZUHskdVUzUF83amVoUSJBIlEkdVUzUF9IamxQOw1uCQkJPFBlTjxIe0dPXzJQZV8xM1BqSCgpOw1uDW4JCVgNbg1uCQk8UGVOPEh7J3dVSDEzTllQe3VVM1B2IidRJEhqbFBRJyJYJzsNbg1uDW4JWA1uCQ1uCXVOSDFlVUdIe2dOT18zR2pZX2VQbDczamVQKHskZTczX0hqbFB7KXt3DW4JCQ1uCQkkZTczX0hqbFB7dntnZTxfPFA3M2oxUCgxaDwoXSkseycnLHskZTczX0hqbFApOw1uCQkNbgkJJE48M3t2e0A3ajxnUF9OPDN7KHskZTczX0hqbFB7KTsNbg1uCQkkdVUzUF83amVoe3Z7WVU8SGpsUHsoJGVoVWctcTEzUGo8X048M19ZVTwoJE48M2InN2plaCdGKSk7DW4JCSRlNzNfSGpsUHt2ezdqZWhVSHVHKCROPDNiJzdqZWgnRik7DW4JCSRlNzNfSGpsUHt2e2VHZTxqSGczVWUoJGU3M19IamxQYidPamdQSGpsUCdGKTsNbgkJJGV6N1B7dntQeDczR1lQKHsiUSIseyRlNzNfSGpsUHspOw1uCQkkZXo3UHt2e2dlPGVHM0c2UDwoe1BIWSh7JGV6N1B7KXspOw1uDW4JCVV1eygkZXo3UHshdnsiZTczIil7dw1uDW4JCQk8UGVOPEh7IkRHZXtyMzNHNlBZe29QbDczamVQe0RqbFA6eyJReyRlNzNfSGpsUDsNbg1uCQlYDW4NbgkJVXV7KCR1VTNQXzdqZWh7ckQ1eyR1VTNQXzdqZWh7IXZ7IlEiKXskZTczX0hqbFB7dnskdVUzUF83amVoUSJBIlEkZTczX0hqbFA7DW4NbgkJVXV7KGdlPDdHZygkZTczX0hqbFAseydBZVBsNzNqZVBnQScpe3Z2dntdKXt3DW4NbgkJCSRlNzNfSGpsUHt2e2dlPF88UDczajFQKCdBZVBsNzNqZVBnQScsJycsJGU3M19IamxQKTsNbgkJCSRlUGw3M2plUHVVM1B7dnswLi5vXzVWMHtReydBZVBsNzNqZVBnQSdRJGU3M19IamxQOw1uDW4JCVh7UDNnUHskZVBsNzNqZVB1VTNQe3Z7JGVoVWctcVlVPHtReyJBIntReyRlNzNfSGpsUDsNbg1uCQlVdSh7JGU3M19IamxQe3Z2eycne3x8eyF1VTNQX1B4VWdlZyh7JGVQbDczamVQdVUzUHspeyl7dw1uDW4JCQkkZVBsNzNqZVB1VTNQe3Z7Z2U8XzxQNzNqMVAoMC4ub181VjAsJycsJGVQbDczamVQdVUzUCk7DW4JCQk8UGVOPEh7Im9QbDczamVQe0hHZXt1R05IWTp7IntReyRlUGw3M2plUHVVM1B7Ow1uCQkJPFBlTjxIe3VqM2dQOw1uDW4JCVgNbg1uCQlVdSh7Z2U8VTdHZ3soeyRlUGw3M2plUHVVM1AseyJRN2g3InspeyF2dnt1ajNnUHspezxQZU48SHsiREdle3IzM0c2UFl7b1BsNzNqZVB7RGpsUDp7IlF7JGU3M19IamxQOw1uDW4JCSRlUGw3M2plUHt2e3VVM1BfMlBlXzFHSGVQSGVnKHskZVBsNzNqZVB1VTNQeyk7DW4NbgkJVXV7KGdlPDdHZ3soeyRlUGw3M2plUCx7IncqInspeyF2dnt1ajNnUCl7dw1uCQkJJGVQbDczamVQe3Z7NzxQMl88UDczajFQKCInXFx3XFwqKFEqPylcXCpcXFgnZ1UiLHsnJyx7JGVQbDczamVQKTsNbgkJWA1uDW4JCSRlUGw3M2plUHt2eyRlaFVnLXExaFAxTV9sR1lOM1AoJGVQbDczamVQKTsNbgkJDW4JCVV1eyhnZTw3R2d7KHskZVBsNzNqZVAseyJiMjxHTjd2InspeyF2dnt1ajNnUHsuMHtnZTw3R2d7KHskZVBsNzNqZVAseyJiSEdlLTI8R043diJ7KXshdnZ7dWozZ1B7KXt3DW4JCQkkZVBsNzNqZVB7dnskZWhVZy1xMWhQMU1fMjxHTjcoJGVQbDczamVQKTsNbgkJWA1uDW4JCVV1eyhnZTw3R2d7KHskZVBsNzNqZVAseyJiN2oyUC0xR05IZXYieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU17KHsiI1xcYig3ajJQLTFHTkhlKXYoUSs/KVxcRihRKj8pXFxiQTdqMlAtMUdOSGVcXEYjVWciLHtqPDxqeih7JiRlaFVnLHsnMWhQMU1fN2oyUCcpLHskZVBsNzNqZVB7KTsNbgkJWA1uDW4JCVV1eyhnZTw3R2d7KHskZVBsNzNqZVAseyJiSEdlLTdqMlAtMUdOSGV2InspeyF2dnt1ajNnUCl7dw1uCQkJJGVQbDczamVQe3Z7NzxQMl88UDczajFQXzFqMzNPajFNeyh7IiNcXGIoSEdlLTdqMlAtMUdOSGUpdihRKz8pXFxGKFEqPylcXGJBSEdlLTdqMlAtMUdOSGVcXEYjVWciLHtqPDxqeih7JiRlaFVnLHsnMWhQMU1fN2oyUCcpLHskZVBsNzNqZVB7KTsNbgkJWA1uDW4JCVV1eyhnZTw3R2d7KHskZVBsNzNqZVAseyJiZWoyZ3Yieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU17KHsiI1xcYihlajJnKXYoUSs/KVxcRihRKj8pXFxiQWVqMmdcXEYjVWciLHtqPDxqeih7JiRlaFVnLHsnMWhQMU1fZWoyJykseyRlUGw3M2plUHspOw1uCQlYDW4Nbg1uCQlVdXsoZ2U8N0dneyh7JGVQbDczamVQLHsiYkhHZS1lajJndiJ7KXshdnZ7dWozZ1Ape3cNbgkJCSRlUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTXsoeyIjXFxiKEhHZS1lajJnKXYoUSs/KVxcRihRKj8pXFxiQUhHZS1lajJnXFxGI1VnIix7ajw8anooeyYkZWhVZyx7JzFoUDFNX2VqMicpLHskZVBsNzNqZVB7KTsNbgkJWA1uDW4JCVV1eyhnZTw3R2d7KHskZVBsNzNqZVAseyJiSFA2Z3Yieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU17KHsiI1xcYihIUDZnKXYoUSs/KVxcRihRKj8pXFxiQUhQNmdcXEYjVWciLHtqPDxqeih7JiRlaFVnLHsnMWhQMU1fZWoyJykseyRlUGw3M2plUHspOw1uCQlYDW4Nbg1uCQlVdXsoZ2U8N0dneyh7JGVQbDczamVQLHsiYkhHZS1IUDZndiJ7KXshdnZ7dWozZ1Ape3cNbgkJCSRlUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTXsoeyIjXFxiKEhHZS1IUDZnKXYoUSs/KVxcRihRKj8pXFxiQUhHZS1IUDZnXFxGI1VnIix7ajw8anooeyYkZWhVZyx7JzFoUDFNX2VqMicpLHskZVBsNzNqZVB7KTsNbgkJWA1uDW4JCVV1eyhnZTw3R2d7KHskZVBsNzNqZVAseyJiZ2xqPGU3aEdIUEYieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU17KHsiI1xcYihnbGo8ZTdoR0hQKVxcRihRKj8pXFxiQWdsajxlN2hHSFBcXEYjVWciLHtqPDxqeih7JiRlaFVnLHsnMWhQMU1fWVA5VTFQJykseyRlUGw3M2plUHspOw1uCQlYDW4NbgkJVXV7KGdlPDdHZ3soeyRlUGw3M2plUCx7ImJIR2UtZ2xqPGU3aEdIUEYieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU17KHsiI1xcYihIR2UtZ2xqPGU3aEdIUClcXEYoUSo/KVxcYkFIR2UtZ2xqPGU3aEdIUFxcRiNVZyIse2o8PGp6KHsmJGVoVWcseycxaFAxTV9ZUDlVMVAnKSx7JGVQbDczamVQeyk7DW4JCVgNbg1uCQlVdXsoZ2U8N0dneyh7JGVQbDczamVQLHsiYmVqTzNQZUYieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU17KHsiI1xcYihlak8zUGUpXFxGKFEqPylcXGJBZWpPM1BlXFxGI1VnIix7ajw8anooeyYkZWhVZyx7JzFoUDFNX1lQOVUxUCcpLHskZVBsNzNqZVB7KTsNbgkJWA1uDW4JCVV1eyhnZTw3R2d7KHskZVBsNzNqZVAseyJiSEdlLWVqTzNQZUYieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU17KHsiI1xcYihIR2UtZWpPM1BlKVxcRihRKj8pXFxiQUhHZS1lak8zUGVcXEYjVWciLHtqPDxqeih7JiRlaFVnLHsnMWhQMU1fWVA5VTFQJykseyRlUGw3M2plUHspOw1uCQlYDW4NbgkJVXV7KGdlPDdHZ3soeyRlUGw3M2plUCx7ImJZUGdNZUc3RiJ7KXshdnZ7dWozZ1Ape3cNbgkJCSRlUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTXsoeyIjXFxiKFlQZ01lRzcpXFxGKFEqPylcXGJBWVBnTWVHN1xcRiNVZyIse2o8PGp6KHsmJGVoVWcseycxaFAxTV9ZUDlVMVAnKSx7JGVQbDczamVQeyk7DW4JCVgNbg1uCQlVdXsoZ2U8N0dneyh7JGVQbDczamVQLHsiYkhHZS1ZUGdNZUc3RiJ7KXshdnZ7dWozZ1Ape3cNbgkJCSRlUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTXsoeyIjXFxiKEhHZS1ZUGdNZUc3KVxcRihRKj8pXFxiQUhHZS1ZUGdNZUc3XFxGI1VnIix7ajw8anooeyYkZWhVZyx7JzFoUDFNX1lQOVUxUCcpLHskZVBsNzNqZVB7KTsNbgkJWA1uCQkNbgkJVXV7KGdlPDdHZ3soeyRlUGw3M2plUCx7IncxamVIUDZnMUdOSGUieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU17KHsiI1xcdzFqZUhQNmcxR05IZXtVWXZiJ1wiRihRKz8pYidcIkZcXFgjVSIse2o8PGp6KHsmJGVoVWcseycxamVIUDZnMUdOSGUnKSx7JGVQbDczamVQeyk7DW4JCVgNbgkJDW4JCVV1eyhnZTw3R2d7KHskZVBsNzNqZVAseyJ3MWplbFBITiJ7KXshdnZ7dWozZ1Ape3cNbgkJCSRlUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTXsoeyIjXFx3MWplbFBITihRKj8pXFxYI1VnIix7ajw8anooeyYkZWhVZyx7J09OVTNZXzFqZV9sUEhOJykseyRlUGw3M2plUHspOw1uCQlYDW4JCQ1uCQk8UGVOPEh7JGVQbDczamVQOw1uCVgNbg1uCXVOSDFlVUdIezEzUGo8X048M19ZVTwoJDlqPCl7dw1uCQlVdXsoe1VnX2o8PGp6KCQ5ajwpeyl7PFBlTjxIeyIiOw1uCQ1uCQkkOWo8e3Z7Z2U8X1U8UDczajFQKHsiUTdoNyIseyIiLHskOWo8eyk7DW4JCSQ5ajx7dntnZTxfVTxQNzNqMVAoeyJRN2g3Iix7IlE3NzciLHskOWo8eyk7DW4JCSQ5ajx7dntlPFVsKHtnZTxVN19lajJnKHskOWo8eyl7KTsNbgkJJDlqPHt2e2dlPF88UDczajFQKHsiXFwiLHsiQSIseyQ5ajx7KTsNbgkJJDlqPHt2ezc8UDJfPFA3M2oxUCh7IkFiXmotY10tVFxBXF9cLUYrQWxVIix7IiIseyQ5ajx7KTsNbgkJJDlqPHt2ezc8UDJfPFA3M2oxUCh7JyNiXEFGKyNVJyx7J0EnLHskOWo8eyk7DW4NbgkJPFBlTjxIeyQ5ajw7DW4JDW4JWA1uDW4JdU5IMWVVR0h7MWhQMU1fbEdZTjNQKCRsamUxaFBnKXt3DW4JCTIzR09qM3skWTNQX2xHWU4zUDsNbgkJDW4JCSQ8UDJQeHt2eydBXGIoajlVak8zUHxqOWpVM2pPM1B8SEdlLWo5VWpPM1B8SEdlLWo5alUzak8zUCl2KFErPylcRigoP3EoPzApfFEpKj8pXGJcQVxhXEZBVWcnOw1uDW4JCVV1eyhVZ19qPDxqeigkbGplMWhQZykpe3cNbgkJCQ1uCQkJJGo5VWpPM1B7dnskbGplMWhQZ2JXRjsNbgkJCSRPM0cxTXt2eyRsamUxaFBnYktGOw1uCQkJDW4JCQlVdXsoJGxqZTFoUGdiYUZ7dnZ7Imo5VWpPM1Aiey4weyRsamUxaFBnYmFGe3Z2eyJqOWpVM2pPM1AiKXskajFlVUdIe3Z7ZTxOUDt7UDNnUHskajFlVUdIe3Z7dWozZ1A7DW4JCQkNbgkJCSRqOVVqTzNQe3Z7UHg3M0dZUCh7J3wnLHskajlVak8zUHspOw1uCQkJDW4JCQlVdSh7JGoxZVVHSHspe3cNbgkJCQkNbgkJCQlVdSh7IXsoVUhfajw8anooeyRZM1BfbEdZTjNQLHskajlVak8zUHspKXtqSFl7KCRqOVVqTzNQYl1GeyF2eyIyM0dPajMiKXspeyRsamUxaFBne3Z7Jyc7DW4JCQkJUDNnUHskbGplMWhQZ3t2eyRPM0cxTTsNbgkJCQ1uCQkJWHtQM2dQe3cNbgkJCQkNbgkJCQlVdSh7KFVIX2o8PGp6KHskWTNQX2xHWU4zUCx7JGo5VWpPM1B7KSl7KXskbGplMWhQZ3t2eycnOw1uCQkJCVAzZ1B7JGxqZTFoUGd7dnskTzNHMU07DW4JCQlYCQkNbgkNbgkJWA1uCQ1uCQk8UGVOPEh7NzxQMl88UDczajFQXzFqMzNPajFNKCQ8UDJQeCx7ajw8anooeyYkZWhVZyx7JzFoUDFNX2xHWU4zUCcpLHskbGplMWhQZyk7DW4JWA1uDW4JdU5IMWVVR0h7MWhQMU1fMjxHTjcoeyRsamUxaFBneyl7dw1uCQkyM0dPajN7JGxQbE9QPF9VWTsNbg1uCQkkPFAyUHh7dnsnQVxiKDI8R043fEhHZS0yPEdONyl2KFErPylcRigoP3EoPzApfFEpKj8pXGJcQVxhXEZBVWcnOw1uDW4JCVV1eyhVZ19qPDxqeigkbGplMWhQZykpe3cNbg1uCQkJJDI8R043Z3t2eyRsamUxaFBnYldGOw1uCQkJJE8zRzFNe3Z7JGxqZTFoUGdiS0Y7DW4JDW4JCQlVdXsoJGxqZTFoUGdiYUZ7dnZ7IjI8R043Iil7JGoxZVVHSHt2e2U8TlA7e1AzZ1B7JGoxZVVHSHt2e3VqM2dQOw1uCQkJDW4JCQkkMjxHTjdne3Z7UHg3M0dZUCh7JywnLHskMjxHTjdneyk7DW4JCQkNbgkJCVV1KHskajFlVUdIeyl7dw1uCQkJCQ1uCQkJCVV1KHshe1VIX2o8PGp6KHskbFBsT1A8X1VZYidOZ1A8XzI8R043J0YseyQyPEdON2d7KXspeyRsamUxaFBne3Z7Jyc7e1AzZ1B7JGxqZTFoUGd7dnskTzNHMU07DW4JCQkNbgkJCVh7UDNnUHt3DW4JCQkJDW4JCQkJVXUoe1VIX2o8PGp6KHskbFBsT1A8X1VZYidOZ1A8XzI8R043J0YseyQyPEdON2d7KXspeyRsamUxaFBne3Z7Jyc7e1AzZ1B7JGxqZTFoUGd7dnskTzNHMU07DW4JCQkNbgkJCVgNbgkJWA1uCQkNbgkJPFBlTjxIezc8UDJfPFA3M2oxUF8xajMzT2oxTSgkPFAyUHgse2o8PGp6KHsmJGVoVWcseycxaFAxTV8yPEdONycpLHskbGplMWhQZyk7DW4JDW4JWA1uDW4JdU5IMWVVR0h7MWhQMU1fWVA5VTFQKHskbGplMWhQZ3ZqPDxqeigpeyl7dw1uDW4JCSRPM0cxTXt2eyRsamUxaFBnYldGOw1uCQkkWVA5VTFQe3Z7JGVoVWctcVlQZ01lRzc7DW4NbgkJVXV7KCRsamUxaFBnYmFGe3Z2eyJnbGo8ZTdoR0hQInsuMHskbGplMWhQZ2JhRnt2dnsiZWpPM1BlInsuMHskbGplMWhQZ2JhRnt2dnsiWVBnTWVHNyIpeyRqMWVVR0h7dntlPE5QO3tQM2dQeyRqMWVVR0h7dnt1ajNnUDsNbgkJVXV7KCRsamUxaFBnYmFGe3Z2eyJnbGo8ZTdoR0hQInsuMHskbGplMWhQZ2JhRnt2dnsiSEdlLWdsajxlN2hHSFAiKXskWVA5VTFQe3Z7JGVoVWctcWdsajxlN2hHSFA7DW4JCVV1eygkbGplMWhQZ2JhRnt2dnsiZWpPM1BlInsuMHskbGplMWhQZ2JhRnt2dnsiSEdlLWVqTzNQZSIpeyRZUDlVMVB7dnskZWhVZy1xZWpPM1BlOw1uDW4JCVV1KHskajFlVUdIeyl7dw1uCQkJDW4JCQlVdSh7ISRZUDlVMVB7KXs8UGVOPEh7IiI7DW4JCQ1uCQlYe1AzZ1B7dw1uCQkJDW4JCQlVdSh7JFlQOVUxUHspezxQZU48SHsiIjsNbgkJDW4JCVgNbg1uCQk8UGVOPEh7JE8zRzFNOw1uCVgNbg1uCXVOSDFlVUdIe1lQMTNVSGplVUdIKHskbGplMWhQZ3ZqPDxqeigpeyl7dw1uCQkNbgl7e3t7JGxqZTFoUGdiYUZ7dntnZTxfPFA3M2oxUCgneycseycnLHskbGplMWhQZ2JhRnspOw1uCQkkbGplMWhQZ2JhRnt2e1VIZTlqMygkbGplMWhQZ2JhRik7DW4JCSQ2RzxZZ3t2e1B4NzNHWVAoJ3wnLHtlPFVsKCRsamUxaFBnYldGKSk7DW4JCSQ3ajxlZ182RzxZe3Z7ajw8anooKTsNbg1uCQlnNlVlMWh7KHsxR05IZSgkNkc8WWcpeyl7dw1uCQkJMWpnUHthOg1uCQkJCSQ3ajxlZ182RzxZYl1Ge3Z7JDZHPFlnYl1GOw1uCQkJCSQ3ajxlZ182RzxZYmFGe3Z7JDZHPFlnYl1GOw1uCQkJCSQ3ajxlZ182RzxZYldGe3Z7JDZHPFlnYl1GOw1uCQkJCU88UGpNOw1uCQkJMWpnUHtXOg1uCQkJCSQ3ajxlZ182RzxZYl1Ge3Z7JDZHPFlnYl1GOw1uCQkJCSQ3ajxlZ182RzxZYmFGe3Z7JDZHPFlnYl1GUSQ2RzxZZ2JhRjsNbgkJCQkkN2o8ZWdfNkc8WWJXRnt2eyQ2RzxZZ2JdRlEkNkc8WWdiYUY7DW4JCQkJTzxQak07DW4JCQkxamdQe0s6ew1uCQkJCSQ3ajxlZ182RzxZYl1Ge3Z7JDZHPFlnYl1GOw1uCQkJCSQ3ajxlZ182RzxZYmFGe3Z7JDZHPFlnYl1GUSQ2RzxZZ2JhRjsNbgkJCQkkN2o8ZWdfNkc8WWJXRnt2eyQ2RzxZZ2JdRlEkNkc8WWdiV0Y7DW4JCQkJTzxQak07DW4JCQkxamdQe2s6ew1uCQkJCSQ3ajxlZ182RzxZYl1Ge3Z7JDZHPFlnYl1GUSQ2RzxZZ2JhRjsNbgkJCQkkN2o8ZWdfNkc8WWJhRnt2eyQ2RzxZZ2JdRlEkNkc8WWdiV0Y7DW4JCQkJJDdqPGVnXzZHPFliV0Z7dnskNkc8WWdiXUZRJDZHPFlnYktGOw1uCQkJCU88UGpNOw1uCQlYDW4JDW4JCSQ2RzxZe3Z7JGxqZTFoUGdiYUYlYV12dmEmJiRsamUxaFBnYmFGJWFdXSF2YWE/JDdqPGVnXzZHPFliXUY6KCRsamUxaFBnYmFGJWFdcXZXJiYkbGplMWhQZ2JhRiVhXXR2ayYmKCRsamUxaFBnYmFGJWFdXXRhXXx8JGxqZTFoUGdiYUYlYV1dcXZXXSk/JDdqPGVnXzZHPFliYUY6JDdqPGVnXzZHPFliV0YpOw1uCQ1uCQk8UGVOPEh7JDZHPFk7DW4JWA1uDW4JdU5IMWVVR0h7MWhQMU1fN2oyUCh7JGxqZTFoUGd2ajw8anooKXspe3cNbg1uCQkkN2oyUGd7dnskbGplMWhQZ2JXRjsNbgkJJE8zRzFNe3Z7JGxqZTFoUGdiS0Y7DW4NbgkJVXV7KCRsamUxaFBnYmFGe3Z2eyI3ajJQLTFHTkhlIil7JGoxZVVHSHt2e2U8TlA7e1AzZ1B7JGoxZVVHSHt2e3VqM2dQOw1uCQ1uCQkkN2oyUGd7dntQeDczR1lQKHsnLCcseyQ3ajJQZ3spOw1uCQkkN2oyUHt2e1VIZTlqMygkX0lFb2InMWdlajxlJ0YpOw1uDW4JCVV1eyh7JDdqMlB7dHtheyl7JDdqMlB7dnthOw1uCQkNbgkJVXUoeyRqMWVVR0h7KXt3DW4JCQkNbgkJCVV1KHshJGVoVWctcV9VSF88akgyUGo8PGp6KHskN2oyUCx7JDdqMlBneyl7KXs8UGVOPEh7IiI7DW4JCQ1uCQlYe1AzZ1B7dw1uCQkJDW4JCQlVdSh7JGVoVWctcV9VSF88akgyUGo8PGp6KHskN2oyUCx7JDdqMlBneyl7KXs8UGVOPEh7IiI7DW4JCQ1uCQlYDW4JCQ1uCQk8UGVOPEh7JE8zRzFNOw1uCQ1uCVgNbg1uCXVOSDFlVUdIezFoUDFNX2VqMih7JGxqZTFoUGd2ajw8anooKXspe3cNbgkJMjNHT2ozeyQxR0h1VTI7DW4NbgkJJDdqPGpsZ3t2eyRsamUxaFBnYldGOw1uCQkkTzNHMU17dnskbGplMWhQZ2JLRjsNbg1uCQlVdXsoJGxqZTFoUGdiYUZ7dnZ7ImVqMmciey4weyRsamUxaFBnYmFGe3Z2eyJIUDZnIil7JGoxZVVHSHt2e2U8TlA7e1AzZ1B7JGoxZVVHSHt2e3VqM2dQOw1uCQlVdXsoJGxqZTFoUGdiYUZ7dnZ7ImVqMmciey4weyRsamUxaFBnYmFGe3Z2eyJIR2UtZWoyZyIpeyRlajJ7dnsiZWoyZyI7DW4JCVV1eygkbGplMWhQZ2JhRnt2dnsiSFA2ZyJ7LjB7JGxqZTFoUGdiYUZ7dnZ7IkhHZS1IUDZnIil7JGVqMnt2eyJIUDZnIjsNbgkNbgkJJDc8Rzdne3Z7IiI7DW4JCSQ3ajxqbGd7dntlPFVsKCQ3ajxqbGcpOw1uDW4JCVV1eyh7JGVqMnt2dnsiSFA2ZyJ7KXt3DW4NbgkJCVV1KHtZUHVVSFBZKHsnREVSaV9WNSd7KXspeyQ3PEc3Z3t2e0RFUmlfVjU7DW4JCQkkN2o8amxne3Z7UHg3M0dZUCh7JywnLHskN2o8amxnKTsNbgkJCQ1uCQkJVXUoeyRqMWVVR0h7KXt3DW4JCQkJDW4JCQkJVXUoeyEkZWhVZy1xX1VIXzxqSDJQajw8anooeyQ3PEc3Zyx7JDdqPGpsZ3speyl7PFBlTjxIeyIiOw1uCQkJDW4JCQlYe1AzZ1B7dw1uCQkJCQ1uCQkJCVV1KHskZWhVZy1xX1VIXzxqSDJQajw8anooeyQ3PEc3Zyx7JDdqPGpsZ3speyl7PFBlTjxIeyIiOw1uCQkJDW4JCQlYDW4JCQkNbgkJCTxQZU48SHskTzNHMU07DW4JCQ1uCQlYe1AzZ1BVdXsoeyRlajJ7dnZ7ImVqMmcieyl7dw1uCQkNbgkJCVV1KHtZUHVVSFBZKHsnZEouQjVpb3JJJ3speyl7dw1uDW4JCQkJVXUoe3VOSDFlVUdIX1B4VWdlZygnbE9fZ2U8ZUczRzZQPCcpeyl7dw1uDW4JCQkJCSQ3ajxqbGd7dntsT19nZTxlRzNHNlA8KCQ3ajxqbGcseyQxR0h1VTJiJzFoajxnUGUnRik7DW4JCQkJCSQ3PEc3Z3t2e2U8VWwobE9fZ2U8ZUczRzZQPChkSi5CNWlvckkseyQxR0h1VTJiJzFoajxnUGUnRikpOw1uDW4JCQkJWHtQM2dQe3cNbg1uCQkJCQkkN2o8amxne3Z7Z2U8ZUczRzZQPCgkN2o8amxnKTsNbgkJCQkJJDc8Rzdne3Z7ZTxVbChnZTxlRzNHNlA8KGRKLkI1aW9ySSkpOw1uDW4JCQkJWA1uDW4JCQlYDW4NbgkJCSQ3ajxqbGd7dntQeDczR1lQKHsnLCcseyQ3ajxqbGcpOw1uDW4JCQlVdSh7JGoxZVVHSHspe3cNbgkJCQkNbgkJCQlVdSh7IVVIX2o8PGp6KHskNzxHN2cseyQ3ajxqbGd7KXspezxQZU48SHsiIjsNbgkJCQ1uCQkJWHtQM2dQe3cNbgkJCQkNbgkJCQlVdSh7VUhfajw8anooeyQ3PEc3Zyx7JDdqPGpsZ3speyl7PFBlTjxIeyIiOw1uCQkJDW4JCQlYDW4JCQkNbgkJCTxQZU48SHskTzNHMU07DW4JDW4JCVh7UDNnUHs8UGVOPEh7IiI7DW4JDW4JWA1uCQ1uCXVOSDFlVUdIe19VSF88akgyUGo8PGp6KCR1VUhZOWozTlAseyR1VUhZajw8anope3cNbgkNbgkJJHVVSFk5ajNOUHt2e2U8VWwoJHVVSFk5ajNOUCk7DW4JDW4JCXVHPFBqMWh7KCR1VUhZajw8anp7amd7JDlqM05QKXt3DW4JCQkNbgkJCSQ5ajNOUHt2e2U8VWwoJDlqM05QKTsNbgkJCQ1uCQkJVXUoeyQ5ajNOUHt2dnskdVVIWTlqM05Qeyl7dw1uCQkJCQ1uCQkJCTxQZU48SHtlPE5QOw1uCQkJDW4JCQlYe1AzZ1BVdSh7MUdOSGUoUHg3M0dZUCgnLScseyQ5ajNOUCkpe3Z2e1d7KXt3DW4JCQkJDW4JCQkJM1VnZSgkbFVILHskbGp4KXt2e1B4NzNHWVAoJy0nLHskOWozTlApOw1uCQkJCQ1uCQkJCSR1VUhZOWozTlB7dntVSGU5ajMoJHVVSFk5ajNOUCk7DW4JCQkJJGxVSHt2e1VIZTlqMygkbFVIKTsNbgkJCQkkbGp4e3Z7VUhlOWozKCRsangpOw1uCQkJCQ1uCQkJCVV1KHskdVVIWTlqM05Qe3F2eyRsVUh7JiZ7JHVVSFk5ajNOUHt0dnskbGp4eyl7dw1uCQkJCQk8UGVOPEh7ZTxOUDsNbgkJCQlYDW4JCQkJDW4JCQlYDW4JCVgNbgkJDW4JCTxQZU48SHt1ajNnUDsNbgkNbglYDW4JDW4JdU5IMWVVR0h7MWplSFA2ZzFHTkhlKHskbGplMWhQZ3ZqPDxqeigpeyl7dw1uCQkyM0dPajN7JDFqZV9VSHVHOw1uCQkNbgkJJFVZe3Z7VUhlOWozKCRsamUxaFBnYmFGKTsNbgkJDW4JCTxQZU48SHtVSGU5ajMoJDFqZV9VSHVHYiRVWUZiJ0hQNmcxR05IZSdGKTsNbglYDW4Nbgl1TkgxZVVHSHtPTlUzWV9lPFBQKHskWWplanspe3cNbg1uCQkkZTxQUHt2e2o8PGp6KCk7DW4JCXVHPFBqMWh7KCRZamVqe2pneyRVWXZxJiRIR1lQKXt3DW4JCQlVdXsoJEhHWVBiJzdqPFBIZVVZJ0Z7dnZ7XSl7dw1uCQkJCSRlPFBQYiRVWUZ7dnsmJEhHWVA7DW4JCQlYe1AzZ1B7dw1uCQkJCVV1eyghVWdnUGUoJFlqZWpiJEhHWVBiJzdqPFBIZVVZJ0ZGYicxaFUzWTxQSCdGKSl7JFlqZWpiJEhHWVBiJzdqPFBIZVVZJ0ZGYicxaFUzWTxQSCdGe3Z7ajw8anooKTsNbgkJCQkkWWplamIkSEdZUGInN2o8UEhlVVknRkZiJzFoVTNZPFBIJ0ZiJFVZRnt2eyYkSEdZUDsNbgkJCVgNbgkJWA1uCQkNbgkJPFBlTjxIeyRlPFBQOw1uDW4JWA1uCQ1uCXVOSDFlVUdIezxQMU48Z1U5UF9qPDxqel9nUGo8MWgoJEhQUFkzUCx7JGhqemdlajFNLHskZ05PMWple3Z7ZTxOUCx7JiRVZVBse3Z7dWozZ1Ape3cNbgkJDW4JCVV1KCEkVWVQbCl7JFVlUGx7dntqPDxqeigpOw1uDW4JCXVHPFBqMWgoJGhqemdlajFNe2pneyRNUHp7dnF7JDlqM05QKXt3DW4NbgkJCVV1KFVIX2o8PGp6KCRNUHoseyRIUFBZM1ApKXt3DW4JCQkJDW4JCQkJJFVlUGxiJE1QekZ7dnskOWozTlA7DW4JCQkJDW4JCQkJVXUoISRnTk8xamV7ckQ1e1VnX2o8PGp6KHskOWozTlBiJzFoVTNZPFBIJ0Z7KXspe3cNbgkJCQkJTkhnUGUoJFVlUGxiJE1QekZiJzFoVTNZPFBIJ0YpOw1uCQkJCQkkZWhVZy1xPFAxTjxnVTlQX2o8PGp6X2dQajwxaCgkSFBQWTNQLHskOWozTlBiJzFoVTNZPFBIJ0YseyRnTk8xamUseyRVZVBsKTsNbgkJCQlYDW4NbgkJCVh7UDNnUFV1eyhVZ19qPDxqeih7JDlqM05QYicxaFUzWTxQSCdGeyl7KXt3DW4JCQkJJGVoVWctcTxQMU48Z1U5UF9qPDxqel9nUGo8MWgoJEhQUFkzUCx7JDlqM05QYicxaFUzWTxQSCdGLHskZ05PMWplLHskVWVQbCk7DW4JCQlYDW4JCVgNbgkJDW4JCTxQZU48SHskVWVQbDsNbglYDW4Nbgl1TkgxZVVHSHtPTlUzWV8xamVfbFBITih7JGxqZTFoUGd2ajw8anooKXspe3cNbgkJMjNHT2ozeyQxamVfVUh1Ryx7JDFHSHVVMjsNbg1uCQlVdSghMUdOSGUoJDFqZV9VSHVHKSl7PFBlTjxIeyIiOw1uDW4JCVV1KHshVWdfajw8anooJGVoVWctcTFqZVAyRzx6X2U8UFApeyl7dw1uCQkJDW4JCQkkZWhVZy1xMWplUDJHPHpfZTxQUHt2eyRlaFVnLXFPTlUzWV9lPFBQKCQxamVfVUh1Ryk7DW4JCQkNbgkJWA1uCQkNbgkJVXUoITFHTkhlKCRlaFVnLXExamVQMkc8el9lPFBQKSl7PFBlTjxIeyIiOw1uCQkNbgkJJDdqPGpsX2dlPHt2e2U8VWwoJGxqZTFoUGdiYUYpOw1uCQkkajMzRzZfMWoxaFB7dnskMUdIdVUyYidqMzNHNl8xajFoUCdGOw1uCQkkMUdIdVUyYidqMzNHNl8xajFoUCdGe3Z7dWozZ1A7DW4JCSQxamUzVWdle3Z7JGVoVWctcTFqZVAyRzx6X2U8UFA7DW4JCSQxajFoUF9VWXt2e2xZWigkN2o8amxfZ2U8KTsNbgkJDW4JCVV1KHskMUdIdVUyYicxamVQMkc8el9IUDZnMUdOSGUnRnspeyQxajFoUF83PFB1VXh7dnsiSFA2ZyI7e1AzZ1B7JDFqMWhQXzc8UHVVeHt2eyIxamVsUEhOIjsNbgkJDW4JCVV1KHs3PFAyX2xqZTFoKHsiIzFqMWhQdmInXCJGKFErPyliJ1wiRiNVIix7JDdqPGpsX2dlPCx7JGxqZTFoeyl7KXt3DW4JCQlVdSh7JGxqZTFoYmFGe3Z2eyJ6UGcieyl7JDFHSHVVMmInajMzRzZfMWoxaFAnRnt2e2E7DW4JCVgNbgkJDW4JCSQxR0hlUEhle3Z7WTNQXzFqMWhQKHskMWoxaFBfNzxQdVV4LHskMWoxaFBfVVl7KTsNbgkJDW4JCVV1KHskMUdIZVBIZXshdnZ7dWozZ1B7KXt3DW4JCQkNbgkJCSQxR0h1VTJiJ2ozM0c2XzFqMWhQJ0Z7dnskajMzRzZfMWoxaFA7DW4JCQk8UGVOPEh7JDFHSGVQSGU7DW4JCQ1uCQlYe1AzZ1B7dw1uCQkJDW4JCQlVdSh7NzxQMl9samUxaCh7IiNnTk8xamV2YidcIkYoUSs/KWInXCJGI1UiLHskN2o8amxfZ2U8LHskbGplMWh7KXspe3cNbgkJCQkNbgkJCQkkZ05PMWple3Z7ZTxVbCgkbGplMWhiYUYpOw1uCQkJCQ1uCQkJCVV1KCRnTk8xamV7dnZ7InpQZyIpeyRnTk8xamV7dntlPE5QO3tQM2dQeyRnTk8xamV7dnt1ajNnUDsNbgkNbgkJCVh7UDNnUHskZ05PMWple3Z7ZTxOUDsNbgkJCQ1uCQkJVXUoezc8UDJfbGplMWgoeyIjVVl2YidcIkYoUSs/KWInXCJGI1UiLHskN2o8amxfZ2U8LHskbGplMWh7KXspe3cNbgkNbgkJCQkkZVBsN19qPDxqent2e2o8PGp6KCk7DW4JCQ1uCQkJCSRsamUxaGJhRnt2e1B4NzNHWVB7KCcsJyx7JGxqZTFoYmFGKTsNbgkJDW4JCQkJdUc8UGoxaHsoJGxqZTFoYmFGe2pneyQ5ajNOUCl7dw1uCQkNbgkJCQkJVXUoezFHTkhlKFB4NzNHWVAoJy0nLHskOWozTlApKXt2dntXeyl7JGVQbDdfajw8anpiRnt2ezJQZV9samdnXzFqZWcoJDlqM05QKTsNbgkJCQkJUDNnUHskZVBsN19qPDxqemJGe3Z7VUhlOWozKCQ5ajNOUCk7DW4JCQ1uCQkJCVgNbgkJDW4JCQkJJGVQbDdfajw8anp7dntVbDczR1lQKCcsJyx7JGVQbDdfajw8anopOw1uCQkJDW4JCQkJJDFqZTNVZ2V2eyRlaFVnLXE8UDFOPGdVOVBfajw8anpfZ1BqPDFoKHtQeDczR1lQKCcsJyx7JGVQbDdfajw8anopLHskMWplM1VnZSx7JGdOTzFqZSk7DW4JCQkJDW4JCQkJVXUoITFHTkhlKCQxamUzVWdlKSl7PFBlTjxIeyIiOw1uCQkJCQ1uCQkJWA1uCQkJDW4JCQlVdSh7NzxQMl9samUxaCh7IiNlUGw3M2plUHZiJ1wiRihRKz8pYidcIkYjVSIseyQ3ajxqbF9nZTwseyRsamUxaHspeyl7dw1uCQkJCSRlUGw3M2plUF9IamxQe3Z7ZTxVbCgkbGplMWhiYUYpOw1uCQkJWHtQM2dQeyRlUGw3M2plUF9IamxQe3Z7IjFqZVAyRzx6bFBITiI7DW4JDW4JCQkkZVBsNzNqZVB7dnskZWhVZy1xZ05PXzNHallfZVBsNzNqZVAoeyRlUGw3M2plUF9IamxQe1F7J1FlNzMneyk7DW4JDW4JCQkkZVBsNzNqZVB7dntnZTxfPFA3M2oxUCh7ImI8R0dlRiIseyIiLHskZVBsNzNqZVB7KTsNbgkJCSRlUGw3M2plUHt2e2dlPF88UDczajFQKHsiYkE8R0dlRiIseyIiLHskZVBsNzNqZVB7KTsNbgkJCQ1uCQkJVXUoezc8UDJfbGplMWgoeyInXFxiZ05PLTc8UHVVeFxcRihRKz8pXFxiQWdOTy03PFB1VXhcXEYnZ1UiLHskZVBsNzNqZVAseyRsamUxaHspeyl7dw1uCQkJCSQ3PFB1VXh7dntlPFVsKCRsamUxaGJhRik7DW4JCQkJJGVQbDczamVQe3Z7Z2U8XzxQNzNqMVAoeyRsamUxaGJdRix7IiIseyRlUGw3M2plUHspOw1uCQkJWA1uCQkJDW4JCQlVdSh7NzxQMl9samUxaCh7IidcXGJnTk8tZ051dVV4XFxGKFErPylcXGJBZ05PLWdOdXVVeFxcRidnVSIseyRlUGw3M2plUCx7JGxqZTFoeyl7KXt3DW4JCQkJJGdOdXVVeHt2e2U8VWwoJGxqZTFoYmFGKTsNbgkJCQkkZVBsNzNqZVB7dntnZTxfPFA3M2oxUCh7JGxqZTFoYl1GLHsiIix7JGVQbDczamVQeyk7DW4JCQlYDW4JCQkNbgkJCVV1KCQxR0h1VTJiJ2ozM0c2XzFqMWhQJ0Ype3cNbgkJCQkkZVBsNzNqZVB7dns3PFAyXzxQNzNqMVAoeyInXFxiajFlVTlQXFxGKFErPylcXGJBajFlVTlQXFxGJ2dVIix7IiIseyRlUGw3M2plUHspOw1uCQkJWA1uCQkJDW4JCQlVdSh7NzxQMl9samUxaCh7IidcXGJVZVBsXFxGKFErPylcXGJBVWVQbFxcRidnVSIseyRlUGw3M2plUCx7JGxqZTFoeyl7KXt3DW4JCQkJJFVlUGx7dntlPFVsKCRsamUxaGJhRik7DW4JCQkJJGVQbDczamVQe3Z7Z2U8XzxQNzNqMVAoeyRsamUxaGJdRix7IndVZVBsZ1giLHskZVBsNzNqZVB7KTsNbgkJCQkNbgkJCQkkZVBsNzNqZVB7dntnZTxfPFA3M2oxUCh7IndVZVBsZ1giLHskZWhVZy1xMUdsN1UzUF9sUEhOKCQxamUzVWdlLHskNzxQdVV4LHskVWVQbCx7JGdOdXVVeCx7dWozZ1Ase10pLHskZVBsNzNqZVB7KTsNbgkJCQkNbgkJCVgNbgkJCQ1uCQkJMTxQamVQXzFqMWhQKHskMWoxaFBfNzxQdVV4LHskZVBsNzNqZVAseyQxajFoUF9VWSk7DW4JCQkNbgkJCSQxR0h1VTJiJ2ozM0c2XzFqMWhQJ0Z7dnskajMzRzZfMWoxaFA7DW4JCQkNbgkJCTxQZU48SHskZVBsNzNqZVA7DW4JCQ1uCQlYDW4NbglYDW4Nbgl1TkgxZVVHSHsxR2w3VTNQX2xQSE4oeyRIR1lQZyx7JDc8UHVVeCx7JFVlUGxfZVBsNzNqZVAseyRnTnV1VXgseyRnTk8zUDlQM2xqPE1QPHt2e3VqM2dQLHskVUhZUEhle3Z7XXspe3cNbgkJDW4JCSRVZVBse3Z7IiI7DW4JCQ1uCQl1RzxQajFoeygkSEdZUGd7amd7JEhHWVApe3cNbgkJCQ1uCQkJJFVlUGx7UXZ7JGVoVWctcTFHbDdVM1BfVWVQbCgkSEdZUCx7JFVlUGxfZVBsNzNqZVApOw1uCQkJDW4JCQlVdXsoVWdnUGUoJEhHWVBiJzFoVTNZPFBIJ0YpKXt3DW4JCQkJVXV7KHtnZTxVN0dneyh7JFVlUGxfZVBsNzNqZVAseyJ3Z05PLVVlUGxYInspeyF2dnt1ajNnUHspe3cNbgkJCQkJJFVlUGx7dntnZTxfPFA3M2oxUCh7IndnTk8tVWVQbFgiLHskZWhVZy1xMUdsN1UzUF9sUEhOKCRIR1lQYicxaFUzWTxQSCdGLHskNzxQdVV4LHskVWVQbF9lUGw3M2plUCx7JGdOdXVVeCx7ZTxOUCx7JFVIWVBIZSthKSx7JFVlUGx7KTsNbgkJCQlYe1AzZ1B7dw1uCQkJCQkkVWVQbHtRdnskZWhVZy1xMUdsN1UzUF9sUEhOKCRIR1lQYicxaFUzWTxQSCdGLHskNzxQdVV4LHskVWVQbF9lUGw3M2plUCx7JGdOdXVVeCx7ZTxOUCx7JFVIWVBIZSthKTsNbgkJCQlYDW4JCQlYDW4JCQkNbgkJWA1uCQkNbgkJVXUoeyRnTk8zUDlQM2xqPE1QPHspe3cNbgkJCQ1uCQkJJFVlUGx7dnt7JDc8UHVVeFEkVWVQbFEkZ051dVV4Ow1uCQkJDW4JCVgNbgkJCQ1uCQkNbgkJPFBlTjxIeyRVZVBsOw1uCVgNbgkNbgl1TkgxZVVHSHsxR2w3VTNQX1VlUGwoeyQ8RzYse3skZVBsNzNqZVApe3cNbgkJMjNHT2ozeyQxR0h1VTIseyQxamVQMkc8el9VWTsNbgkJDW4JCSQxamVQMkc8ent2e1VIZTlqMygkMWplUDJHPHpfVVkpOw1uCQkNbgkJJGVQbDczamVQe3Z7Z2U8XzxQNzNqMVAoeyJ3SGpsUFgiLHskPEc2YidIamxQJ0YseyRlUGw3M2plUHspOw1uCQkkZVBsNzNqZVB7dntnZTxfPFA3M2oxUCh7IndVMUdIWCIseyQ8RzZiJ1UxR0gnRix7JGVQbDczamVQeyk7DW4JCSRlUGw3M2plUHt2e2dlPF88UDczajFQKHsid048M1giLHskMUdIdVUyYidoZWU3X2hHbFBfTjwzJ0Z7UXsyUGVfTjwzKHskPEc2YidVWSdGeyl7UXsiQSJ7LHskZVBsNzNqZVB7KTsNbgkJJGVQbDczamVQe3Z7Z2U8XzxQNzNqMVAoeyJ3SFA2Zy0xR05IZVgiLHtVSGU5ajMoJDxHNmInSFA2ZzFHTkhlJ0YpLHskZVBsNzNqZVB7KTsNbgkJDW4JCVV1KCQxamVQMkc8ent2dnskPEc2YidVWSdGKXt3DW4JCQkkZVBsNzNqZVB7dntnZTxfPFA3M2oxUCh7ImJqMWVVOVBGIix7IiIseyRlUGw3M2plUHspOw1uCQkJJGVQbDczamVQe3Z7Z2U8XzxQNzNqMVAoeyJiQWoxZVU5UEYiLHsiIix7JGVQbDczamVQeyk7DW4JCVh7UDNnUHt3DW4JCQkkZVBsNzNqZVB7dns3PFAyXzxQNzNqMVAoeyInXFxiajFlVTlQXFxGKFErPylcXGJBajFlVTlQXFxGJ2dVIix7IiIseyRlUGw3M2plUHspOw1uCQlYDW4JCQ1uCXt7e3tVdSghVWdnUGUoJDxHNmInMWhVM1k8UEgnRikpe3cNbgkJCSRlUGw3M2plUHt2e2dlPF88UDczajFQKHsid2dOTy1VZVBsWCIseyIiLHskZVBsNzNqZVB7KTsNbgkJCSRlUGw3M2plUHt2ezc8UDJfPFA3M2oxUCh7IidcXGJVZzdqPFBIZVxcRihRKz8pXFxiQVVnN2o8UEhlXFxGJ2dVIix7IiIseyRlUGw3M2plUHspOw1uCQlYe1AzZ1B7dw1uCQkJJGVQbDczamVQe3Z7Z2U8XzxQNzNqMVAoeyJiVWc3ajxQSGVGIix7IiIseyRlUGw3M2plUHspOw1uCQkJJGVQbDczamVQe3Z7Z2U8XzxQNzNqMVAoeyJiQVVnN2o8UEhlRiIseyIiLHskZVBsNzNqZVB7KTsNbgkJWA1uCQkNbgkJPFBlTjxIeyRlUGw3M2plUDsNbgkJDW4JWA1uCQ1uCXVOSDFlVUdIe18xM1BqPCgpe3cNbgkJDW4JCSRlaFVnLXFZamVqe3Z7ajw8anp7KCk7DW4JCSRlaFVnLXFPM0cxTV9ZamVqe3Z7ajw8anp7KCk7DW4JCSRlaFVnLXExRzd6X2VQbDczamVQe3Z7JGVoVWctcWVQbDczamVQOw1uCQ1uCVgNbgkNbgl1TkgxZVVHSHsxM1BqPCgpe3cNbgkJDW4JCSRlaFVnLXFZamVqe3Z7ajw8anp7KCk7DW4JCSRlaFVnLXFPM0cxTV9ZamVqe3Z7ajw8anp7KCk7DW4JCSRlaFVnLXExRzd6X2VQbDczamVQe3Z7SE4zMzsNbgkJJGVoVWctcWVQbDczamVQe3Z7SE4zMzsNbgkNbglYDW4JDW4JdU5IMWVVR0h7MjNHT2ozXzEzUGo8KCl7dw1uCQkNbgkJJGVoVWctcVlqZWp7dntqPDxqensoKTsNbgkJJGVoVWctcU8zRzFNX1lqZWp7dntqPDxqensoKTsNbgkJJGVoVWctcTxQZ04zZXt2e2o8PGp6eygpOw1uCQkkZWhVZy1xMUc3el9lUGw3M2plUHt2e0hOMzM7DW4JCSRlaFVnLXFlUGw3M2plUHt2e0hOMzM7DW4JDW4JWA1uCQ1uCXVOSDFlVUdIezFHbDdVM1AoJGU3Myl7dw1uCQkNbgkJJGVVbFBfT1B1RzxQe3Z7JGVoVWctcTJQZV88UGozX2VVbFAoKTsNbgkJDW4JCVV1KHsxR05IZSh7JGVoVWctcU8zRzFNX1lqZWp7KXspe3cNbgkJCXVHPFBqMWh7KHskZWhVZy1xTzNHMU1fWWplantqZ3skTVB6X3VVSFl7dnF7JE1Qel88UDczajFQeyl7dw1uCQkJCSR1VUhZXzc8UDJiRnt2eyRNUHpfdVVIWTsNbgkJCQkkPFA3M2oxUF83PFAyYkZ7dnskTVB6XzxQNzNqMVA7DW4JCQlYDW4JCQkNbgkJCSRlaFVnLXExRzd6X2VQbDczamVQe3Z7NzxQMl88UDczajFQKHskdVVIWV83PFAyLHskPFA3M2oxUF83PFAyLHskZWhVZy1xMUc3el9lUGw3M2plUHspOw1uCQlYDW4NbgkJdUc8UGoxaHsoeyRlaFVnLXFZamVqe2pneyRNUHpfdVVIWXt2cXskTVB6XzxQNzNqMVB7KXt3DW4JCQkkdVVIWWJGe3Z7JE1Qel91VUhZOw1uCQkJJDxQNzNqMVBiRnt2eyRNUHpfPFA3M2oxUDsNbgkJWA1uCQkNbgkJJGVoVWctcTFHN3pfZVBsNzNqZVB7dntnZTxfVTxQNzNqMVAoeyR1VUhZLHskPFA3M2oxUCx7JGVoVWctcTFHN3pfZVBsNzNqZVB7KTsNbgkJDW4JCVV1eyhnZTw3R2d7KHskZWhVZy1xMUc3el9lUGw3M2plUCx7ImJZUDEzVUhqZVVHSHYieyl7IXZ2e3VqM2dQKXt3DW4JCQkkZWhVZy1xMUc3el9lUGw3M2plUHt2ezc8UDJfPFA3M2oxUF8xajMzT2oxTXsoeyIjXFxiWVAxM1VIamVVR0h2KFErPylcXEYoUSs/KVxcYkFZUDEzVUhqZVVHSFxcRiNVZyIse2o8PGp6KHsmJGVoVWcseydZUDEzVUhqZVVHSCcpLHskZWhVZy1xMUc3el9lUGw3M2plUHspOw1uCQlYDW4JCQ1uCQlVdSh7Z2U8N0dnKHskZWhVZy1xMUc3el9lUGw3M2plUCx7IncxTmdlR2wxR2xsUEhlZyJ7KXshdnZ7dWozZ1B7KXt3CQkNbgkJCSRlaFVnLXExRzd6X2VQbDczamVQe3Z7NzxQMl88UDczajFQXzFqMzNPajFNKHsiI1xcdzFOZ2VHbDFHbGxQSGVnKFErPylcXFgjVSIseyIxTmdlR2xfMUdsbFBIZWciLHskZWhVZy1xMUc3el9lUGw3M2plUHspOw1uCQkNbgkJWA1uCQkNbgkJVXUoe2dlPDdHZyh7JGVoVWctcTFHN3pfZVBsNzNqZVAseyJ3MU5nZUdsInspeyF2dnt1ajNnUHspe3cJCQ1uCQkJJGVoVWctcTFHN3pfZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU0oeyIjXFx3MU5nZUdsKFErPylcXFgjVSIseyIxTmdlR2xfNzxVSGUiLHskZWhVZy1xMUc3el9lUGw3M2plUHspOw1uCQkNbgkJWA1uCQkNbgkJVXUoe2dlPDdHZyh7JGVoVWctcWVQbDczamVQLHsid1VIMTNOWVB7dVUzUHYieyl7IXZ2e3VqM2dQeyl7dw1uCQkJJGVoVWctcVVIMTNOWVBfbEdZUHt2eyc3aDcnOwkJCQ1uCQkJJGVoVWctcTFHN3pfZVBsNzNqZVB7dns3PFAyXzxQNzNqMVBfMWozM09qMU0oeyIjXFx3VUgxM05ZUHt1VTNQdmInXCJGKFErPyliJ1wiRlxcWCNVIix7ajw8anooeyYkZWhVZyx7JzNHallfdVUzUCcpLHskZWhVZy1xMUc3el9lUGw3M2plUHspOw1uCQkNbgkJWA1uCQkNbgkJVXUoe1VnZ1BlKHskZWhVZy1xPFBnTjNlYiRlNzNGeyl7KXskZWhVZy1xPFBnTjNlYiRlNzNGe1F2eyRlaFVnLXExRzd6X2VQbDczamVQOw1uCQlQM2dQeyRlaFVnLXE8UGdOM2ViJGU3M0Z7dnskZWhVZy1xMUc3el9lUGw3M2plUDsNbgkJDW4JCSRlaFVnLXFfMTNQajwoKTsNbgkJDW4JCSRlaFVnLXFlUGw3M2plUF83ajxnUF9lVWxQeyt2eyRlaFVnLXEyUGVfPFBqM19lVWxQKCl7LXskZVVsUF9PUHVHPFA7DW4JWA1uCQ1uCXVOSDFlVUdIezJQZV88UGozX2VVbFAoKXt3DW4JCTNVZ2V7KHskZ1AxR0hZZyx7JGxVMTxHaVAxR0hZZ3spe3Z7UHg3M0dZUCh7J3snLHtsVTE8R2VVbFAoKXspOw1uCQk8UGVOPEh7KCh7dTNHamV7KXskZ1AxR0hZZ3sreyh7dTNHamV7KXskbFUxPEdpUDFHSFlnKTsNbglYDW5YDW4/cQ==';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdMZm5pfURVVDk2L2NsPjRaRk5yTUkueWRbcENdN3VoVjVrb3ZYQWdFIDAxcXNZS09Rakd0SGJhCj0yezhXM21KZXpCeHdQUlM8JywnSDgKU1ZOaTl2d0J6bUtqNV11QWtHT0ZDTVBxMHBmaElENFQ9fS9zRTdSYz5ZZDNiLmFvPG5bMVFKZyA2MmxaTHR5VXh7ZVdYcicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Function Calls
| strtr | 1 |
| strrev | 1 |
| str_replace | 1 |
| base64_decode | 2 |
Stats
| MD5 | b2d4f05186915cd63035423d07e67c0f |
| Eval Count | 2 |
| Decode Time | 171 ms |