Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php $_F=__FILE__;$_X='Pz48P3BocCBjbDFzcyAzcGwyMWR7djFyICR2NXJzNDJuO3YxciAkZjRsNV9zcmNfbj..
Decoded Output download
?><?php class upload{var $version;var $file_src_name;var $file_src_name_body;var $file_src_name_ext;var $file_src_mime;var $file_src_size;var $file_src_error;var $file_src_pathname;var $file_src_temp;var $file_dst_path;var $file_dst_name;var $file_dst_name_body;var $file_dst_name_ext;var $file_dst_pathname;var $image_src_x;var $image_src_y;var $image_src_bits;var $image_src_pixels;var $image_src_type;var $image_dst_x;var $image_dst_y;var $image_dst_type;var $image_supported;var $file_is_image;var $uploaded;var $no_upload_check;var $processed;var $error;var $log;var $file_new_name_body;var $file_name_body_add;var $file_name_body_pre;var $file_new_name_ext;var $file_safe_name;var $file_force_extension;var $mime_check;var $mime_fileinfo;var $mime_file;var $mime_magic;var $mime_getimagesize;var $no_script;var $file_auto_rename;var $dir_auto_create;var $dir_auto_chmod;var $dir_chmod;var $file_overwrite;var $file_max_size;var $image_resize;var $image_convert;var $image_x;var $image_y;var $image_ratio;var $image_ratio_crop;var $image_ratio_fill;var $image_ratio_pixels;var $image_ratio_no_zoom_in;var $image_ratio_no_zoom_out;var $image_ratio_x;var $image_ratio_y;var $image_max_width;var $image_max_height;var $image_max_pixels;var $image_max_ratio;var $image_min_width;var $image_min_height;var $image_min_pixels;var $image_min_ratio;var $png_compression;var $jpeg_quality;var $jpeg_size;var $image_interlace;var $preserve_transparency;var $image_is_transparent;var $image_transparent_color;var $image_background_color;var $image_default_color;var $image_is_palette;var $image_brightness;var $image_contrast;var $image_opacity;var $image_threshold;var $image_tint_color;var $image_overlay_color;var $image_overlay_opacity;var $image_overlay_percent;var $image_negative;var $image_greyscale;var $image_pixelate;var $image_unsharp;var $image_unsharp_amount;var $image_unsharp_radius;var $image_unsharp_threshold;var $image_text;var $image_text_direction;var $image_text_color;var $image_text_opacity;var $image_text_percent;var $image_text_background;var $image_text_background_opacity;var $image_text_background_percent;var $image_text_font;var $image_text_position;var $image_text_x;var $image_text_y;var $image_text_padding;var $image_text_padding_x;var $image_text_padding_y;var $image_text_alignment;var $image_text_line_spacing;var $image_reflection_height;var $image_reflection_space;var $image_reflection_color;var $image_reflection_opacity;var $image_flip;var $image_rotate;var $image_crop;var $image_precrop;var $image_bevel;var $image_bevel_color1;var $image_bevel_color2;var $image_border;var $image_border_color;var $image_border_opacity;var $image_border_transparent;var $image_frame;var $image_frame_colors;var $image_frame_opacity;var $image_watermark;var $image_watermark_position;var $image_watermark_x;var $image_watermark_y;var $image_watermark_no_zoom_in;var $image_watermark_no_zoom_out;var $mime_types;var $allowed;var $forbidden;var $translation;var $lang;function init(){$this->file_new_name_body=null;$this->file_name_body_add=null;$this->file_name_body_pre=null;$this->file_new_name_ext=null;$this->file_safe_name=true;$this->file_force_extension=true;$this->file_overwrite=false;$this->file_auto_rename=true;$this->dir_auto_create=true;$this->dir_auto_chmod=true;$this->dir_chmod=0777;$this->no_script=true;$this->mime_check=true;$this->mime_fileinfo=true;$this->mime_file=true;$this->mime_magic=true;$this->mime_getimagesize=true;$this->file_max_size_raw=trim(ini_get('upload_max_filesize'));$this->file_max_size=$this->getsize($this->file_max_size_raw);$this->image_resize=false;$this->image_convert='';$this->image_x=150;$this->image_y=150;$this->image_ratio=false;$this->image_ratio_crop=false;$this->image_ratio_fill=false;$this->image_ratio_pixels=false;$this->image_ratio_no_zoom_in=false;$this->image_ratio_no_zoom_out=false;$this->image_ratio_x=false;$this->image_ratio_y=false;$this->png_compression=null;$this->jpeg_quality=85;$this->jpeg_size=null;$this->image_interlace=false;$this->preserve_transparency=false;$this->image_is_transparent=false;$this->image_transparent_color=null;$this->image_background_color=null;$this->image_default_color='#ffffff';$this->image_is_palette=false;$this->image_max_width=null;$this->image_max_height=null;$this->image_max_pixels=null;$this->image_max_ratio=null;$this->image_min_width=null;$this->image_min_height=null;$this->image_min_pixels=null;$this->image_min_ratio=null;$this->image_brightness=null;$this->image_contrast=null;$this->image_opacity=null;$this->image_threshold=null;$this->image_tint_color=null;$this->image_overlay_color=null;$this->image_overlay_opacity=null;$this->image_overlay_percent=null;$this->image_negative=false;$this->image_greyscale=false;$this->image_pixelate=null;$this->image_unsharp=false;$this->image_unsharp_amount=80;$this->image_unsharp_radius=0.5;$this->image_unsharp_threshold=1;$this->image_text=null;$this->image_text_direction=null;$this->image_text_color='#FFFFFF';$this->image_text_opacity=100;$this->image_text_percent=100;$this->image_text_background=null;$this->image_text_background_opacity=100;$this->image_text_background_percent=100;$this->image_text_font=5;$this->image_text_x=null;$this->image_text_y=null;$this->image_text_position=null;$this->image_text_padding=0;$this->image_text_padding_x=null;$this->image_text_padding_y=null;$this->image_text_alignment='C';$this->image_text_line_spacing=0;$this->image_reflection_height=null;$this->image_reflection_space=2;$this->image_reflection_color='#ffffff';$this->image_reflection_opacity=60;$this->image_watermark=null;$this->image_watermark_x=null;$this->image_watermark_y=null;$this->image_watermark_position=null;$this->image_watermark_no_zoom_in=true;$this->image_watermark_no_zoom_out=false;$this->image_flip=null;$this->image_rotate=null;$this->image_crop=null;$this->image_precrop=null;$this->image_bevel=null;$this->image_bevel_color1='#FFFFFF';$this->image_bevel_color2='#000000';$this->image_border=null;$this->image_border_color='#FFFFFF';$this->image_border_opacity=100;$this->image_border_transparent=null;$this->image_frame=null;$this->image_frame_colors='#FFFFFF #999999 #666666 #000000';$this->image_frame_opacity=100;$this->forbidden=array();$this->allowed=array('application/arj','application/excel','application/gnutar','application/mspowerpoint','application/msword','application/octet-stream','application/onenote','application/pdf','application/plain','application/postscript','application/powerpoint','application/rar','application/rtf','application/vnd.ms-excel','application/vnd.ms-excel.addin.macroEnabled.12','application/vnd.ms-excel.sheet.binary.macroEnabled.12','application/vnd.ms-excel.sheet.macroEnabled.12','application/vnd.ms-excel.template.macroEnabled.12','application/vnd.ms-office','application/vnd.ms-officetheme','application/vnd.ms-powerpoint','application/vnd.ms-powerpoint.addin.macroEnabled.12','application/vnd.ms-powerpoint.presentation.macroEnabled.12','application/vnd.ms-powerpoint.slide.macroEnabled.12','application/vnd.ms-powerpoint.slideshow.macroEnabled.12','application/vnd.ms-powerpoint.template.macroEnabled.12','application/vnd.ms-word','application/vnd.ms-word.document.macroEnabled.12','application/vnd.ms-word.template.macroEnabled.12','application/vnd.oasis.opendocument.chart','application/vnd.oasis.opendocument.database','application/vnd.oasis.opendocument.formula','application/vnd.oasis.opendocument.graphics','application/vnd.oasis.opendocument.graphics-template','application/vnd.oasis.opendocument.image','application/vnd.oasis.opendocument.presentation','application/vnd.oasis.opendocument.presentation-template','application/vnd.oasis.opendocument.spreadsheet','application/vnd.oasis.opendocument.spreadsheet-template','application/vnd.oasis.opendocument.text','application/vnd.oasis.opendocument.text-master','application/vnd.oasis.opendocument.text-template','application/vnd.oasis.opendocument.text-web','application/vnd.openofficeorg.extension','application/vnd.openxmlformats-officedocument.presentationml.presentation','application/vnd.openxmlformats-officedocument.presentationml.slide','application/vnd.openxmlformats-officedocument.presentationml.slideshow','application/vnd.openxmlformats-officedocument.presentationml.template','application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','application/vnd.openxmlformats-officedocument.spreadsheetml.template','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/vnd.openxmlformats-officedocument.wordprocessingml.document','application/vnd.openxmlformats-officedocument.wordprocessingml.template','application/vocaltec-media-file','application/wordperfect','application/x-bittorrent','application/x-bzip','application/x-bzip2','application/x-compressed','application/x-excel','application/x-gzip','application/x-latex','application/x-midi','application/xml','application/x-msexcel','application/x-rar','application/x-rar-compressed','application/x-rtf','application/x-shockwave-flash','application/x-sit','application/x-stuffit','application/x-troff-msvideo','application/x-zip','application/x-zip-compressed','application/zip','audio/*','image/*','multipart/x-gzip','multipart/x-zip','text/plain','text/rtf','text/richtext','text/xml','video/*');$this->mime_types=array('jpg'=>'image/jpeg','jpeg'=>'image/jpeg','jpe'=>'image/jpeg','gif'=>'image/gif','png'=>'image/png','bmp'=>'image/bmp','flv'=>'video/x-flv','js'=>'application/x-javascript','json'=>'application/json','tiff'=>'image/tiff','css'=>'text/css','xml'=>'application/xml','doc'=>'application/msword','docx'=>'application/msword','xls'=>'application/vnd.ms-excel','xlt'=>'application/vnd.ms-excel','xlm'=>'application/vnd.ms-excel','xld'=>'application/vnd.ms-excel','xla'=>'application/vnd.ms-excel','xlc'=>'application/vnd.ms-excel','xlw'=>'application/vnd.ms-excel','xll'=>'application/vnd.ms-excel','ppt'=>'application/vnd.ms-powerpoint','pps'=>'application/vnd.ms-powerpoint','rtf'=>'application/rtf','pdf'=>'application/pdf','html'=>'text/html','htm'=>'text/html','php'=>'text/html','txt'=>'text/plain','mpeg'=>'video/mpeg','mpg'=>'video/mpeg','mpe'=>'video/mpeg','mp3'=>'audio/mpeg3','wav'=>'audio/wav','aiff'=>'audio/aiff','aif'=>'audio/aiff','avi'=>'video/msvideo','wmv'=>'video/x-ms-wmv','mov'=>'video/quicktime','zip'=>'application/zip','tar'=>'application/x-tar','swf'=>'application/x-shockwave-flash','odt'=>'application/vnd.oasis.opendocument.text','ott'=>'application/vnd.oasis.opendocument.text-template','oth'=>'application/vnd.oasis.opendocument.text-web','odm'=>'application/vnd.oasis.opendocument.text-master','odg'=>'application/vnd.oasis.opendocument.graphics','otg'=>'application/vnd.oasis.opendocument.graphics-template','odp'=>'application/vnd.oasis.opendocument.presentation','otp'=>'application/vnd.oasis.opendocument.presentation-template','ods'=>'application/vnd.oasis.opendocument.spreadsheet','ots'=>'application/vnd.oasis.opendocument.spreadsheet-template','odc'=>'application/vnd.oasis.opendocument.chart','odf'=>'application/vnd.oasis.opendocument.formula','odb'=>'application/vnd.oasis.opendocument.database','odi'=>'application/vnd.oasis.opendocument.image','oxt'=>'application/vnd.openofficeorg.extension','docx'=>'application/vnd.openxmlformats-officedocument.wordprocessingml.document','docm'=>'application/vnd.ms-word.document.macroEnabled.12','dotx'=>'application/vnd.openxmlformats-officedocument.wordprocessingml.template','dotm'=>'application/vnd.ms-word.template.macroEnabled.12','xlsx'=>'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet','xlsm'=>'application/vnd.ms-excel.sheet.macroEnabled.12','xltx'=>'application/vnd.openxmlformats-officedocument.spreadsheetml.template','xltm'=>'application/vnd.ms-excel.template.macroEnabled.12','xlsb'=>'application/vnd.ms-excel.sheet.binary.macroEnabled.12','xlam'=>'application/vnd.ms-excel.addin.macroEnabled.12','pptx'=>'application/vnd.openxmlformats-officedocument.presentationml.presentation','pptm'=>'application/vnd.ms-powerpoint.presentation.macroEnabled.12','ppsx'=>'application/vnd.openxmlformats-officedocument.presentationml.slideshow','ppsm'=>'application/vnd.ms-powerpoint.slideshow.macroEnabled.12','potx'=>'application/vnd.openxmlformats-officedocument.presentationml.template','potm'=>'application/vnd.ms-powerpoint.template.macroEnabled.12','ppam'=>'application/vnd.ms-powerpoint.addin.macroEnabled.12','sldx'=>'application/vnd.openxmlformats-officedocument.presentationml.slide','sldm'=>'application/vnd.ms-powerpoint.slide.macroEnabled.12','thmx'=>'application/vnd.ms-officetheme','onetoc'=>'application/onenote','onetoc2'=>'application/onenote','onetmp'=>'application/onenote','onepkg'=>'application/onenote',);}function upload($file,$lang='en_GB'){$this->version='0.33dev';$this->file_src_name='';$this->file_src_name_body='';$this->file_src_name_ext='';$this->file_src_mime='';$this->file_src_size='';$this->file_src_error='';$this->file_src_pathname='';$this->file_src_temp='';$this->file_dst_path='';$this->file_dst_name='';$this->file_dst_name_body='';$this->file_dst_name_ext='';$this->file_dst_pathname='';$this->image_src_x=null;$this->image_src_y=null;$this->image_src_bits=null;$this->image_src_type=null;$this->image_src_pixels=null;$this->image_dst_x=0;$this->image_dst_y=0;$this->image_dst_type='';$this->uploaded=true;$this->no_upload_check=false;$this->processed=true;$this->error='';$this->log='';$this->allowed=array();$this->forbidden=array();$this->file_is_image=false;$this->init();$info=null;$mime_from_browser=null;$this->translation=array();$this->translation['file_error']='File error. Please try again.';$this->translation['local_file_missing']='Local file doesn\'t exist.';$this->translation['local_file_not_readable']='Local file is not readable.';$this->translation['uploaded_too_big_ini']='File upload error (the uploaded file exceeds the upload_max_filesize directive in php.ini).';$this->translation['uploaded_too_big_html']='File upload error (the uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the html form).';$this->translation['uploaded_partial']='File upload error (the uploaded file was only partially uploaded).';$this->translation['uploaded_missing']='File upload error (no file was uploaded).';$this->translation['uploaded_no_tmp_dir']='File upload error (missing a temporary folder).';$this->translation['uploaded_cant_write']='File upload error (failed to write file to disk).';$this->translation['uploaded_err_extension']='File upload error (file upload stopped by extension).';$this->translation['uploaded_unknown']='File upload error (unknown error code).';$this->translation['try_again']='File upload error. Please try again.';$this->translation['file_too_big']='File too big.';$this->translation['no_mime']='MIME type can\'t be detected.';$this->translation['incorrect_file']='Incorrect type of file.';$this->translation['image_too_wide']='Image too wide.';$this->translation['image_too_narrow']='Image too narrow.';$this->translation['image_too_high']='Image too tall.';$this->translation['image_too_short']='Image too short.';$this->translation['ratio_too_high']='Image ratio too high (image too wide).';$this->translation['ratio_too_low']='Image ratio too low (image too high).';$this->translation['too_many_pixels']='Image has too many pixels.';$this->translation['not_enough_pixels']='Image has not enough pixels.';$this->translation['file_not_uploaded']='File not uploaded. Can\'t carry on a process.';$this->translation['already_exists']='%s already exists. Please change the file name.';$this->translation['temp_file_missing']='No correct temp source file. Can\'t carry on a process.';$this->translation['source_missing']='No correct uploaded source file. Can\'t carry on a process.';$this->translation['destination_dir']='Destination directory can\'t be created. Can\'t carry on a process.';$this->translation['destination_dir_missing']='Destination directory doesn\'t exist. Can\'t carry on a process.';$this->translation['destination_path_not_dir']='Destination path is not a directory. Can\'t carry on a process.';$this->translation['destination_dir_write']='Destination directory can\'t be made writeable. Can\'t carry on a process.';$this->translation['destination_path_write']='Destination path is not a writeable. Can\'t carry on a process.';$this->translation['temp_file']='Can\'t create the temporary file. Can\'t carry on a process.';$this->translation['source_not_readable']='Source file is not readable. Can\'t carry on a process.';$this->translation['no_create_support']='No create from %s support.';$this->translation['create_error']='Error in creating %s image from source.';$this->translation['source_invalid']='Can\'t read image source. Not an image?.';$this->translation['gd_missing']='GD doesn\'t seem to be present.';$this->translation['watermark_no_create_support']='No create from %s support, can\'t read watermark.';$this->translation['watermark_create_error']='No %s read support, can\'t create watermark.';$this->translation['watermark_invalid']='Unknown image format, can\'t read watermark.';$this->translation['file_create']='No %s create support.';$this->translation['no_conversion_type']='No conversion type defined.';$this->translation['copy_failed']='Error copying file on the server. copy() failed.';$this->translation['reading_failed']='Error reading the file.';$this->lang=$lang;if($this->lang!='en_GB'&&file_exists(dirname('index.php').'/lang')&&file_exists(dirname('index.php').'/lang/class.upload.'.$lang.'.php')){$translation=null;include(dirname('index.php').'/lang/class.upload.'.$lang.'.php');if(is_array($translation)){$this->translation=array_merge($this->translation,$translation);}else{$this->lang='en_GB';}}$this->image_supported=array();if($this->gdversion()){if(imagetypes()&IMG_GIF){$this->image_supported['image/gif']='gif';}if(imagetypes()&IMG_JPG){$this->image_supported['image/jpg']='jpg';$this->image_supported['image/jpeg']='jpg';$this->image_supported['image/pjpeg']='jpg';}if(imagetypes()&IMG_PNG){$this->image_supported['image/png']='png';$this->image_supported['image/x-png']='png';}if(imagetypes()&IMG_WBMP){$this->image_supported['image/bmp']='bmp';$this->image_supported['image/x-ms-bmp']='bmp';$this->image_supported['image/x-windows-bmp']='bmp';}}if(empty($this->log)){$this->log.='<b>system information</b><br />';if(function_exists('ini_get_all')){$inis=ini_get_all();$open_basedir=(array_key_exists('open_basedir',$inis)&&array_key_exists('local_value',$inis['open_basedir'])&&!empty($inis['open_basedir']['local_value']))?$inis['open_basedir']['local_value']:false;}else{$open_basedir=false;}$gd=$this->gdversion()?$this->gdversion(true):'GD not present';$supported=trim((in_array('png',$this->image_supported)?'png':'').' '.(in_array('jpg',$this->image_supported)?'jpg':'').' '.(in_array('gif',$this->image_supported)?'gif':'').' '.(in_array('bmp',$this->image_supported)?'bmp':''));$this->log.='- class version : '.$this->version.'<br />';$this->log.='- operating system : '.PHP_OS.'<br />';$this->log.='- PHP version : '.PHP_VERSION.'<br />';$this->log.='- GD version : '.$gd.'<br />';$this->log.='- supported image types : '.(!empty($supported)?$supported:'none').'<br />';$this->log.='- open_basedir : '.(!empty($open_basedir)?$open_basedir:'no restriction').'<br />';$this->log.='- upload_max_filesize : '.$this->file_max_size_raw.' ('.$this->file_max_size.' bytes)<br />';$this->log.='- language : '.$this->lang.'<br />';}if(!$file){$this->uploaded=false;$this->error=$this->translate('file_error');}if(!is_array($file)){if(empty($file)){$this->uploaded=false;$this->error=$this->translate('file_error');}else{if(substr($file,0,4)=='php:'){$file=preg_replace('/^php:(.*)/i','$1',$file);if(!$file)$file=$_SERVER['HTTP_X_FILE_NAME'];if(!$file)$file='unknown';$this->log.='<b>'.$this->translate("source is a PHP stream").' '.$file.'</b><br />';$this->no_upload_check=TRUE;$this->log.='- this is a PHP stream, requires a temp file ... ';$hash=$this->temp_dir().md5($file.rand(1,1000));if(file_put_contents($hash,file_get_contents('php://input'))){$this->file_src_pathname=$hash;$this->log.=' file created<br />';$this->log.=' temp file is: '.$this->file_src_pathname.'<br />';}else{$this->log.=' failed<br />';$this->uploaded=false;$this->error=$this->translate('temp_file');}if($this->uploaded){$this->file_src_name=$file;$this->log.='- local file OK<br />';preg_match('/\.([^\.]*$)/',$this->file_src_name,$extension);if(is_array($extension)&&sizeof($extension)>0){$this->file_src_name_ext=strtolower($extension[1]);$this->file_src_name_body=substr($this->file_src_name,0,((strlen($this->file_src_name)-strlen($this->file_src_name_ext)))-1);}else{$this->file_src_name_ext='';$this->file_src_name_body=$this->file_src_name;}$this->file_src_size=(file_exists($this->file_src_pathname)?filesize($this->file_src_pathname):0);}$this->file_src_error=0;}else{$this->log.='<b>'.$this->translate("source is a local file").' '.$file.'</b><br />';$this->no_upload_check=TRUE;if($this->uploaded&&!file_exists($file)){$this->uploaded=false;$this->error=$this->translate('local_file_missing');}if($this->uploaded&&!is_readable($file)){$this->uploaded=false;$this->error=$this->translate('local_file_not_readable');}if($this->uploaded){$this->file_src_pathname=$file;$this->file_src_name=basename($file);$this->log.='- local file OK<br />';preg_match('/\.([^\.]*$)/',$this->file_src_name,$extension);if(is_array($extension)&&sizeof($extension)>0){$this->file_src_name_ext=strtolower($extension[1]);$this->file_src_name_body=substr($this->file_src_name,0,((strlen($this->file_src_name)-strlen($this->file_src_name_ext)))-1);}else{$this->file_src_name_ext='';$this->file_src_name_body=$this->file_src_name;}$this->file_src_size=(file_exists($this->file_src_pathname)?filesize($this->file_src_pathname):0);}$this->file_src_error=0;}}}else{$this->log.='<b>source is an uploaded file</b><br />';if($this->uploaded){$this->file_src_error=trim($file['error']);switch($this->file_src_error){case UPLOAD_ERR_OK:$this->log.='- upload OK<br />';break;case UPLOAD_ERR_INI_SIZE:$this->uploaded=false;$this->error=$this->translate('uploaded_too_big_ini');break;case UPLOAD_ERR_FORM_SIZE:$this->uploaded=false;$this->error=$this->translate('uploaded_too_big_html');break;case UPLOAD_ERR_PARTIAL:$this->uploaded=false;$this->error=$this->translate('uploaded_partial');break;case UPLOAD_ERR_NO_FILE:$this->uploaded=false;$this->error=$this->translate('uploaded_missing');break;case@UPLOAD_ERR_NO_TMP_DIR:$this->uploaded=false;$this->error=$this->translate('uploaded_no_tmp_dir');break;case@UPLOAD_ERR_CANT_WRITE:$this->uploaded=false;$this->error=$this->translate('uploaded_cant_write');break;case@UPLOAD_ERR_EXTENSION:$this->uploaded=false;$this->error=$this->translate('uploaded_err_extension');break;default:$this->uploaded=false;$this->error=$this->translate('uploaded_unknown').' ('.$this->file_src_error.')';}}if($this->uploaded){$this->file_src_pathname=$file['tmp_name'];$this->file_src_name=$file['name'];if($this->file_src_name==''){$this->uploaded=false;$this->error=$this->translate('try_again');}}if($this->uploaded){$this->log.='- file name OK<br />';preg_match('/\.([^\.]*$)/',$this->file_src_name,$extension);if(is_array($extension)&&sizeof($extension)>0){$this->file_src_name_ext=strtolower($extension[1]);$this->file_src_name_body=substr($this->file_src_name,0,((strlen($this->file_src_name)-strlen($this->file_src_name_ext)))-1);}else{$this->file_src_name_ext='';$this->file_src_name_body=$this->file_src_name;}$this->file_src_size=$file['size'];$mime_from_browser=$file['type'];}}if($this->uploaded){$this->log.='<b>determining MIME type</b><br />';$this->file_src_mime=null;if(!$this->file_src_mime||!is_string($this->file_src_mime)||empty($this->file_src_mime)||strpos($this->file_src_mime,'/')===FALSE){if($this->mime_fileinfo){$this->log.='- Checking MIME type with Fileinfo PECL extension<br />';if(function_exists('finfo_open')){$path=null;if($this->mime_fileinfo!==''){if($this->mime_fileinfo===true){if(getenv('MAGIC')===FALSE){if(substr(PHP_OS,0,3)=='WIN'){$path=realpath(ini_get('extension_dir').'/../').'extras/magic';$this->log.=' MAGIC path defaults to '.$path.'<br />';}}else{$path=getenv('MAGIC');$this->log.=' MAGIC path is set to '.$path.' from MAGIC variable<br />';}}else{$path=$this->mime_fileinfo;$this->log.=' MAGIC path is set to '.$path.'<br />';}}if($path){$f=@finfo_open(FILEINFO_MIME,$path);}else{$this->log.=' MAGIC path will not be used<br />';$f=@finfo_open(FILEINFO_MIME);}if(is_resource($f)){$mime=finfo_file($f,realpath($this->file_src_pathname));finfo_close($f);$this->file_src_mime=$mime;$this->log.=' MIME type detected as '.$this->file_src_mime.' by Fileinfo PECL extension<br />';if(preg_match("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",$this->file_src_mime)){$this->file_src_mime=preg_replace("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",'$1/$2',$this->file_src_mime);$this->log.='- MIME validated as '.$this->file_src_mime.'<br />';}else{$this->file_src_mime=null;}}else{$this->log.=' Fileinfo PECL extension failed (finfo_open)<br />';}}elseif(@class_exists('finfo')){$f=new finfo(FILEINFO_MIME);if($f){$this->file_src_mime=$f->file(realpath($this->file_src_pathname));$this->log.='- MIME type detected as '.$this->file_src_mime.' by Fileinfo PECL extension<br />';if(preg_match("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",$this->file_src_mime)){$this->file_src_mime=preg_replace("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",'$1/$2',$this->file_src_mime);$this->log.='- MIME validated as '.$this->file_src_mime.'<br />';}else{$this->file_src_mime=null;}}else{$this->log.=' Fileinfo PECL extension failed (finfo)<br />';}}else{$this->log.=' Fileinfo PECL extension not available<br />';}}else{$this->log.='- Fileinfo PECL extension deactivated<br />';}}if(!$this->file_src_mime||!is_string($this->file_src_mime)||empty($this->file_src_mime)||strpos($this->file_src_mime,'/')===FALSE){if($this->mime_file){$this->log.='- Checking MIME type with UNIX file() command<br />';if(substr(PHP_OS,0,3)!='WIN'){if(function_exists('exec')&&function_exists('escapeshellarg')&&!extension_loaded('suhosin')){if(strlen($mime=@exec("file -bi ".escapeshellarg($this->file_src_pathname)))!=0){$this->file_src_mime=trim($mime);$this->log.=' MIME type detected as '.$this->file_src_mime.' by UNIX file() command<br />';if(preg_match("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",$this->file_src_mime)){$this->file_src_mime=preg_replace("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",'$1/$2',$this->file_src_mime);$this->log.='- MIME validated as '.$this->file_src_mime.'<br />';}else{$this->file_src_mime=null;}}else{$this->log.=' UNIX file() command failed<br />';}}else{$this->log.=' PHP exec() function is disabled<br />';}}else{$this->log.=' UNIX file() command not availabled<br />';}}else{$this->log.='- UNIX file() command is deactivated<br />';}}if(!$this->file_src_mime||!is_string($this->file_src_mime)||empty($this->file_src_mime)||strpos($this->file_src_mime,'/')===FALSE){if($this->mime_magic){$this->log.='- Checking MIME type with mime.magic file (mime_content_type())<br />';if(function_exists('mime_content_type')){$this->file_src_mime=mime_content_type($this->file_src_pathname);$this->log.=' MIME type detected as '.$this->file_src_mime.' by mime_content_type()<br />';if(preg_match("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",$this->file_src_mime)){$this->file_src_mime=preg_replace("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",'$1/$2',$this->file_src_mime);$this->log.='- MIME validated as '.$this->file_src_mime.'<br />';}else{$this->file_src_mime=null;}}else{$this->log.=' mime_content_type() is not available<br />';}}else{$this->log.='- mime.magic file (mime_content_type()) is deactivated<br />';}}if(!$this->file_src_mime||!is_string($this->file_src_mime)||empty($this->file_src_mime)||strpos($this->file_src_mime,'/')===FALSE){if($this->mime_getimagesize){$this->log.='- Checking MIME type with getimagesize()<br />';$info=getimagesize($this->file_src_pathname);if(is_array($info)&&array_key_exists('mime',$info)){$this->file_src_mime=trim($info['mime']);if(empty($this->file_src_mime)){$this->log.=' MIME empty, guessing from type<br />';$mime=(is_array($info)&&array_key_exists(2,$info)?$info[2]:null);$this->file_src_mime=($mime==IMAGETYPE_GIF?'image/gif':($mime==IMAGETYPE_JPEG?'image/jpeg':($mime==IMAGETYPE_PNG?'image/png':($mime==IMAGETYPE_BMP?'image/bmp':null))));}$this->log.=' MIME type detected as '.$this->file_src_mime.' by PHP getimagesize() function<br />';if(preg_match("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",$this->file_src_mime)){$this->file_src_mime=preg_replace("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",'$1/$2',$this->file_src_mime);$this->log.='- MIME validated as '.$this->file_src_mime.'<br />';}else{$this->file_src_mime=null;}}else{$this->log.=' getimagesize() failed<br />';}}else{$this->log.='- getimagesize() is deactivated<br />';}}if(!empty($mime_from_browser)&&!$this->file_src_mime||!is_string($this->file_src_mime)||empty($this->file_src_mime)){$this->file_src_mime=$mime_from_browser;$this->log.='- MIME type detected as '.$this->file_src_mime.' by browser<br />';if(preg_match("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",$this->file_src_mime)){$this->file_src_mime=preg_replace("/^([\.\-\w]+)\/([\.\-\w]+)(.*)$/i",'$1/$2',$this->file_src_mime);$this->log.='- MIME validated as '.$this->file_src_mime.'<br />';}else{$this->file_src_mime=null;}}if($this->file_src_mime=='application/octet-stream'||!$this->file_src_mime||!is_string($this->file_src_mime)||empty($this->file_src_mime)||strpos($this->file_src_mime,'/')===FALSE){if($this->file_src_mime=='application/octet-stream')$this->log.='- Flash may be rewriting MIME as application/octet-stream<br />';$this->log.='- Try to guess MIME type from file extension ('.$this->file_src_name_ext.'): ';if(array_key_exists($this->file_src_name_ext,$this->mime_types))$this->file_src_mime=$this->mime_types[$this->file_src_name_ext];if($this->file_src_mime=='application/octet-stream'){$this->log.='doesn\'t look like anything known<br />';}else{$this->log.='MIME type set to '.$this->file_src_mime.'<br />';}}if(!$this->file_src_mime||!is_string($this->file_src_mime)||empty($this->file_src_mime)||strpos($this->file_src_mime,'/')===FALSE){$this->log.='- MIME type couldn\'t be detected! ('.(string) $this->file_src_mime.')<br />';}if($this->file_src_mime&&is_string($this->file_src_mime)&&!empty($this->file_src_mime)&&array_key_exists($this->file_src_mime,$this->image_supported)){$this->file_is_image=true;$this->image_src_type=$this->image_supported[$this->file_src_mime];}if($this->file_is_image){if($h=fopen($this->file_src_pathname,'r')){fclose($h);$info=getimagesize($this->file_src_pathname);if(is_array($info)){$this->image_src_x=$info[0];$this->image_src_y=$info[1];$this->image_dst_x=$this->image_src_x;$this->image_dst_y=$this->image_src_y;$this->image_src_pixels=$this->image_src_x*$this->image_src_y;$this->image_src_bits=array_key_exists('bits',$info)?$info['bits']:null;}else{$this->file_is_image=false;$this->uploaded=false;$this->log.='- can\'t retrieve image information, image may have been tampered with<br />';$this->error=$this->translate('source_invalid');}}else{$this->log.='- can\'t read source file directly. open_basedir restriction in place?<br />';}}$this->log.='<b>source variables</b><br />';$this->log.='- You can use all these before calling process()<br />';$this->log.=' file_src_name : '.$this->file_src_name.'<br />';$this->log.=' file_src_name_body : '.$this->file_src_name_body.'<br />';$this->log.=' file_src_name_ext : '.$this->file_src_name_ext.'<br />';$this->log.=' file_src_pathname : '.$this->file_src_pathname.'<br />';$this->log.=' file_src_mime : '.$this->file_src_mime.'<br />';$this->log.=' file_src_size : '.$this->file_src_size.' (max= '.$this->file_max_size.')<br />';$this->log.=' file_src_error : '.$this->file_src_error.'<br />';if($this->file_is_image){$this->log.='- source file is an image<br />';$this->log.=' image_src_x : '.$this->image_src_x.'<br />';$this->log.=' image_src_y : '.$this->image_src_y.'<br />';$this->log.=' image_src_pixels : '.$this->image_src_pixels.'<br />';$this->log.=' image_src_type : '.$this->image_src_type.'<br />';$this->log.=' image_src_bits : '.$this->image_src_bits.'<br />';}}}function gdversion($full=false){static $gd_version=null;static $gd_full_version=null;if($gd_version===null){if(function_exists('gd_info')){$gd=gd_info();$gd=$gd["GD Version"];$regex="/([\d\.]+)/i";}else{ob_start();phpinfo(8);$gd=ob_get_contents();ob_end_clean();$regex="/gd\s+version[^\d
]+?([\d\.]+)/i";}if(preg_match($regex,$gd,$m)){$gd_full_version=(string) $m[1];$gd_version=(float) $m[1];}else{$gd_full_version='none';$gd_version=0;}}if($full){return $gd_full_version;}else{return $gd_version;}}function rmkdir($path,$mode=0777){return is_dir($path)||($this->rmkdir(dirname($path),$mode)&&$this->_mkdir($path,$mode));}function _mkdir($path,$mode=0777){$old=umask(0);$res=@mkdir($path,$mode);umask($old);return $res;}function translate($str,$tokens=array()){if(array_key_exists($str,$this->translation))$str=$this->translation[$str];if(is_array($tokens)&&sizeof($tokens)>0)$str=vsprintf($str,$tokens);return $str;}function temp_dir(){$dir='';if(function_exists('sys_get_temp_dir'))$dir=sys_get_temp_dir();if(!$dir&&$tmp=getenv('TMP'))$dir=$tmp;if(!$dir&&$tmp=getenv('TEMP'))$dir=$tmp;if(!$dir&&$tmp=getenv('TMPDIR'))$dir=$tmp;if(!$dir){$tmp=tempnam('index.php','');if(file_exists($tmp)){unlink($tmp);$dir=dirname($tmp);}}if(!$dir)return '';$slash=(strtolower(substr(PHP_OS,0,3))==='win'?'\':'/');if(substr($dir,-1)!=$slash)$dir=$dir.$slash;return $dir;}function getcolors($color){$color=str_replace('#','',$color);if(strlen($color)==3)$color=str_repeat(substr($color,0,1),2).str_repeat(substr($color,1,1),2).str_repeat(substr($color,2,1),2);$r=sscanf($color,"%2x%2x%2x");$red=(is_array($r)&&array_key_exists(0,$r)&&is_numeric($r[0])?$r[0]:0);$green=(is_array($r)&&array_key_exists(1,$r)&&is_numeric($r[1])?$r[1]:0);$blue=(is_array($r)&&array_key_exists(2,$r)&&is_numeric($r[2])?$r[2]:0);return array($red,$green,$blue);}function getsize($size){$last=strtolower($size{strlen($size)-1});switch($last){case 'g':$size*=1024;case 'm':$size*=1024;case 'k':$size*=1024;}return $size;}function getoffsets($offsets,$x,$y,$round=true,$negative=true){if(!is_array($offsets))$offsets=explode(' ',$offsets);if(sizeof($offsets)==4){$ct=$offsets[0];$cr=$offsets[1];$cb=$offsets[2];$cl=$offsets[3];}else if(sizeof($offsets)==2){$ct=$offsets[0];$cr=$offsets[1];$cb=$offsets[0];$cl=$offsets[1];}else{$ct=$offsets[0];$cr=$offsets[0];$cb=$offsets[0];$cl=$offsets[0];}if(strpos($ct,'%')>0)$ct=$y*(str_replace('%','',$ct)/100);if(strpos($cr,'%')>0)$cr=$x*(str_replace('%','',$cr)/100);if(strpos($cb,'%')>0)$cb=$y*(str_replace('%','',$cb)/100);if(strpos($cl,'%')>0)$cl=$x*(str_replace('%','',$cl)/100);if(strpos($ct,'px')>0)$ct=str_replace('px','',$ct);if(strpos($cr,'px')>0)$cr=str_replace('px','',$cr);if(strpos($cb,'px')>0)$cb=str_replace('px','',$cb);if(strpos($cl,'px')>0)$cl=str_replace('px','',$cl);$ct=(int) $ct;$cr=(int) $cr;$cb=(int) $cb;$cl=(int) $cl;if($round){$ct=round($ct);$cr=round($cr);$cb=round($cb);$cl=round($cl);}if(!$negative){if($ct<0)$ct=0;if($cr<0)$cr=0;if($cb<0)$cb=0;if($cl<0)$cl=0;}return array($ct,$cr,$cb,$cl);}function imagecreatenew($x,$y,$fill=true,$trsp=false){if($x<1)$x=1;if($y<1)$y=1;if($this->gdversion()>=2&&!$this->image_is_palette){$dst_im=imagecreatetruecolor($x,$y);if(empty($this->image_background_color)||$trsp){imagealphablending($dst_im,false);imagefilledrectangle($dst_im,0,0,$x,$y,imagecolorallocatealpha($dst_im,0,0,0,127));}}else{$dst_im=imagecreate($x,$y);if(($fill&&$this->image_is_transparent&&empty($this->image_background_color))||$trsp){imagefilledrectangle($dst_im,0,0,$x,$y,$this->image_transparent_color);imagecolortransparent($dst_im,$this->image_transparent_color);}}if($fill&&!empty($this->image_background_color)&&!$trsp){list($red,$green,$blue)=$this->getcolors($this->image_background_color);$background_color=imagecolorallocate($dst_im,$red,$green,$blue);imagefilledrectangle($dst_im,0,0,$x,$y,$background_color);}return $dst_im;}function imagetransfer($src_im,$dst_im){if(is_resource($dst_im))imagedestroy($dst_im);$dst_im=&$src_im;return $dst_im;}function imagecopymergealpha(&$dst_im,&$src_im,$dst_x,$dst_y,$src_x,$src_y,$src_w,$src_h,$pct=0){$dst_x=(int) $dst_x;$dst_y=(int) $dst_y;$src_x=(int) $src_x;$src_y=(int) $src_y;$src_w=(int) $src_w;$src_h=(int) $src_h;$pct=(int) $pct;$dst_w=imagesx($dst_im);$dst_h=imagesy($dst_im);for($y=$src_y;$y<$src_h;$y++){for($x=$src_x;$x<$src_w;$x++){if($x+$dst_x>=0&&$x+$dst_x<$dst_w&&$x+$src_x>=0&&$x+$src_x<$src_w&&$y+$dst_y>=0&&$y+$dst_y<$dst_h&&$y+$src_y>=0&&$y+$src_y<$src_h){$dst_pixel=imagecolorsforindex($dst_im,imagecolorat($dst_im,$x+$dst_x,$y+$dst_y));$src_pixel=imagecolorsforindex($src_im,imagecolorat($src_im,$x+$src_x,$y+$src_y));$src_alpha=1-($src_pixel['alpha']/127);$dst_alpha=1-($dst_pixel['alpha']/127);$opacity=$src_alpha*$pct/100;if($dst_alpha>=$opacity)$alpha=$dst_alpha;if($dst_alpha<$opacity)$alpha=$opacity;if($alpha>1)$alpha=1;if($opacity>0){$dst_red=round((($dst_pixel['red']*$dst_alpha*(1-$opacity))));$dst_green=round((($dst_pixel['green']*$dst_alpha*(1-$opacity))));$dst_blue=round((($dst_pixel['blue']*$dst_alpha*(1-$opacity))));$src_red=round((($src_pixel['red']*$opacity)));$src_green=round((($src_pixel['green']*$opacity)));$src_blue=round((($src_pixel['blue']*$opacity)));$red=round(($dst_red+$src_red)/($dst_alpha*(1-$opacity)+$opacity));$green=round(($dst_green+$src_green)/($dst_alpha*(1-$opacity)+$opacity));$blue=round(($dst_blue+$src_blue)/($dst_alpha*(1-$opacity)+$opacity));if($red>255)$red=255;if($green>255)$green=255;if($blue>255)$blue=255;$alpha=round((1-$alpha)*127);$color=imagecolorallocatealpha($dst_im,$red,$green,$blue,$alpha);imagesetpixel($dst_im,$x+$dst_x,$y+$dst_y,$color);}}}}return true;}function process($server_path=null){$this->error='';$this->processed=true;$return_mode=false;$return_content=null;$this->file_dst_path='';$this->file_dst_pathname='';$this->file_dst_name='';$this->file_dst_name_body='';$this->file_dst_name_ext='';$this->file_max_size=$this->getsize($this->file_max_size);$this->jpeg_size=$this->getsize($this->jpeg_size);if(is_null($this->image_overlay_opacity))$this->image_overlay_opacity=$this->image_overlay_percent;if($this->image_text_opacity==100)$this->image_text_opacity=$this->image_text_percent;if($this->image_text_background_opacity==100)$this->image_text_background_opacity=$this->image_text_background_percent;$file_src_name=$this->file_src_name;$file_src_name_body=$this->file_src_name_body;$file_src_name_ext=$this->file_src_name_ext;if(!$this->uploaded){$this->error=$this->translate('file_not_uploaded');$this->processed=false;}if($this->processed){if(empty($server_path)||is_null($server_path)){$this->log.='<b>process file and return the content</b><br />';$return_mode=true;}else{if(strtolower(substr(PHP_OS,0,3))==='win'){if(substr($server_path,-1,1)!='\')$server_path=$server_path.'\';}else{if(substr($server_path,-1,1)!='/')$server_path=$server_path.'/';}$this->log.='<b>process file to '.$server_path.'</b><br />';}}if($this->processed){if($this->file_src_size>$this->file_max_size){$this->processed=false;$this->error=$this->translate('file_too_big').' : '.$this->file_src_size.' > '.$this->file_max_size;}else{$this->log.='- file size OK<br />';}}if($this->processed){if($this->file_force_extension&&$this->file_is_image&&!$this->file_src_name_ext)$file_src_name_ext=$this->image_src_type;if($this->no_script){if($this->file_force_extension&&empty($file_src_name_ext)){if($key=array_search($this->file_src_mime,$this->mime_types)){$file_src_name_ext=$key;$file_src_name=$file_src_name_body.'.'.$file_src_name_ext;$this->log.='- file renamed as '.$file_src_name_body.'.'.$file_src_name_ext.'!<br />';}}if((((substr($this->file_src_mime,0,5)=='text/'&&$this->file_src_mime!='text/rtf')||strpos($this->file_src_mime,'javascript')!==false)&&(substr($file_src_name,-4)!='.txt'))||preg_match('/\.(php|php5|php4|php3|phtml|pl|py|cgi|asp|js)$/i',$this->file_src_name)||$this->file_force_extension&&empty($file_src_name_ext)){$this->file_src_mime='text/plain';if($this->file_src_name_ext)$file_src_name_body=$file_src_name_body.'.'.$this->file_src_name_ext;$file_src_name_ext='txt';$file_src_name=$file_src_name_body.'.'.$file_src_name_ext;$this->log.='- script renamed as '.$file_src_name_body.'.'.$file_src_name_ext.'!<br />';}}if($this->mime_check&&empty($this->file_src_mime)){$this->processed=false;$this->error=$this->translate('no_mime');}else if($this->mime_check&&!empty($this->file_src_mime)&&strpos($this->file_src_mime,'/')!==false){list($m1,$m2)=explode('/',$this->file_src_mime);$allowed=false;if(!is_array($this->allowed))$this->allowed=array($this->allowed);foreach($this->allowed as $k=>$v){list($v1,$v2)=explode('/',$v);if(($v1=='*'&&$v2=='*')||($v1==$m1&&($v2==$m2||$v2=='*'))){$allowed=true;break;}}if(!is_array($this->forbidden))$this->forbidden=array($this->forbidden);foreach($this->forbidden as $k=>$v){list($v1,$v2)=explode('/',$v);if(($v1=='*'&&$v2=='*')||($v1==$m1&&($v2==$m2||$v2=='*'))){$allowed=false;break;}}if(!$allowed){$this->processed=false;$this->error=$this->translate('incorrect_file');}else{$this->log.='- file mime OK : '.$this->file_src_mime.'<br />';}}else{$this->log.='- file mime (not checked) : '.$this->file_src_mime.'<br />';}if($this->file_is_image){if(is_numeric($this->image_src_x)&&is_numeric($this->image_src_y)){$ratio=$this->image_src_x/$this->image_src_y;if(!is_null($this->image_max_width)&&$this->image_src_x>$this->image_max_width){$this->processed=false;$this->error=$this->translate('image_too_wide');}if(!is_null($this->image_min_width)&&$this->image_src_x<$this->image_min_width){$this->processed=false;$this->error=$this->translate('image_too_narrow');}if(!is_null($this->image_max_height)&&$this->image_src_y>$this->image_max_height){$this->processed=false;$this->error=$this->translate('image_too_high');}if(!is_null($this->image_min_height)&&$this->image_src_y<$this->image_min_height){$this->processed=false;$this->error=$this->translate('image_too_short');}if(!is_null($this->image_max_ratio)&&$ratio>$this->image_max_ratio){$this->processed=false;$this->error=$this->translate('ratio_too_high');}if(!is_null($this->image_min_ratio)&&$ratio<$this->image_min_ratio){$this->processed=false;$this->error=$this->translate('ratio_too_low');}if(!is_null($this->image_max_pixels)&&$this->image_src_pixels>$this->image_max_pixels){$this->processed=false;$this->error=$this->translate('too_many_pixels');}if(!is_null($this->image_min_pixels)&&$this->image_src_pixels<$this->image_min_pixels){$this->processed=false;$this->error=$this->translate('not_enough_pixels');}}else{$this->log.='- no image properties available, can\'t enforce dimension checks : '.$this->file_src_mime.'<br />';}}}if($this->processed){$this->file_dst_path=$server_path;$this->file_dst_name=$file_src_name;$this->file_dst_name_body=$file_src_name_body;$this->file_dst_name_ext=$file_src_name_ext;if($this->file_overwrite)$this->file_auto_rename=false;if($this->image_convert&&$this->file_is_image){if($this->file_src_name_ext)$this->file_dst_name_ext=$this->image_convert;$this->log.='- new file name ext : '.$this->image_convert.'<br />';}if(!is_null($this->file_new_name_body)){$this->file_dst_name_body=$this->file_new_name_body;$this->log.='- new file name body : '.$this->file_new_name_body.'<br />';}if(!is_null($this->file_new_name_ext)){$this->file_dst_name_ext=$this->file_new_name_ext;$this->log.='- new file name ext : '.$this->file_new_name_ext.'<br />';}if(!is_null($this->file_name_body_add)){$this->file_dst_name_body=$this->file_dst_name_body.$this->file_name_body_add;$this->log.='- file name body append : '.$this->file_name_body_add.'<br />';}if(!is_null($this->file_name_body_pre)){$this->file_dst_name_body=$this->file_name_body_pre.$this->file_dst_name_body;$this->log.='- file name body prepend : '.$this->file_name_body_pre.'<br />';}if($this->file_safe_name){$this->file_dst_name_body=utf8_encode(strtr(utf8_decode($this->file_dst_name_body),utf8_decode('ŠŽšžŸÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöøùúûüýÿ'),'SZszYAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy'));$this->file_dst_name_body=strtr($this->file_dst_name_body,array('Þ'=>'TH','þ'=>'th','Ð'=>'DH','ð'=>'dh','ß'=>'ss','Œ'=>'OE','œ'=>'oe','Æ'=>'AE','æ'=>'ae',''=>'u'));$this->file_dst_name_body=preg_replace(array('/\s/','/\.[\.]+/','/[^\w_\.\-]/'),array('_','.',''),$this->file_dst_name_body);$this->log.='- file name safe format<br />';}$this->log.='- destination variables<br />';if(empty($this->file_dst_path)||is_null($this->file_dst_path)){$this->log.=' file_dst_path : n/a<br />';}else{$this->log.=' file_dst_path : '.$this->file_dst_path.'<br />';}$this->log.=' file_dst_name_body : '.$this->file_dst_name_body.'<br />';$this->log.=' file_dst_name_ext : '.$this->file_dst_name_ext.'<br />';$image_manipulation=($this->file_is_image&&($this->image_resize||$this->image_convert!=''||is_numeric($this->image_brightness)||is_numeric($this->image_contrast)||is_numeric($this->image_opacity)||is_numeric($this->image_threshold)||!empty($this->image_tint_color)||!empty($this->image_overlay_color)||$this->image_pixelate||$this->image_unsharp||!empty($this->image_text)||$this->image_greyscale||$this->image_negative||!empty($this->image_watermark)||is_numeric($this->image_rotate)||is_numeric($this->jpeg_size)||!empty($this->image_flip)||!empty($this->image_crop)||!empty($this->image_precrop)||!empty($this->image_border)||!empty($this->image_border_transparent)||$this->image_frame>0||$this->image_bevel>0||$this->image_reflection_height));$this->file_dst_name=$this->file_dst_name_body.(!empty($this->file_dst_name_ext)?'.'.$this->file_dst_name_ext:'');if(!$return_mode){if(!$this->file_auto_rename){$this->log.='- no auto_rename if same filename exists<br />';$this->file_dst_pathname=$this->file_dst_path.$this->file_dst_name;}else{$this->log.='- checking for auto_rename<br />';$this->file_dst_pathname=$this->file_dst_path.$this->file_dst_name;$body=$this->file_dst_name_body;$ext='';if($file_src_name_ext!=$this->file_src_name_ext){if(substr($this->file_dst_name_body,-1-strlen($this->file_src_name_ext))=='.'.$this->file_src_name_ext){$body=substr($this->file_dst_name_body,0,strlen($this->file_dst_name_body)-1-strlen($this->file_src_name_ext));$ext='.'.$this->file_src_name_ext;}}$cpt=1;while(@file_exists($this->file_dst_pathname)){$this->file_dst_name_body=$body.'_'.$cpt.$ext;$this->file_dst_name=$this->file_dst_name_body.(!empty($this->file_dst_name_ext)?'.'.$this->file_dst_name_ext:'');$cpt++;$this->file_dst_pathname=$this->file_dst_path.$this->file_dst_name;}if($cpt>1)$this->log.=' auto_rename to '.$this->file_dst_name.'<br />';}$this->log.='- destination file details<br />';$this->log.=' file_dst_name : '.$this->file_dst_name.'<br />';$this->log.=' file_dst_pathname : '.$this->file_dst_pathname.'<br />';if($this->file_overwrite){$this->log.='- no overwrite checking<br />';}else{if(@file_exists($this->file_dst_pathname)){$this->processed=false;$this->error=$this->translate('already_exists',array($this->file_dst_name));}else{$this->log.='- '.$this->file_dst_name.' doesn\'t exist already<br />';}}}}if($this->processed){if(!empty($this->file_src_temp)){$this->log.='- use the temp file instead of the original file since it is a second process<br />';$this->file_src_pathname=$this->file_src_temp;if(!file_exists($this->file_src_pathname)){$this->processed=false;$this->error=$this->translate('temp_file_missing');}}else if(!$this->no_upload_check){if(!is_uploaded_file($this->file_src_pathname)){$this->processed=false;$this->error=$this->translate('source_missing');}}else{if(!file_exists($this->file_src_pathname)){$this->processed=false;$this->error=$this->translate('source_missing');}}if(!$return_mode){if($this->processed&&!file_exists($this->file_dst_path)){if($this->dir_auto_create){$this->log.='- '.$this->file_dst_path.' doesn\'t exist. Attempting creation:';if(!$this->rmkdir($this->file_dst_path,$this->dir_chmod)){$this->log.=' failed<br />';$this->processed=false;$this->error=$this->translate('destination_dir');}else{$this->log.=' success<br />';}}else{$this->error=$this->translate('destination_dir_missing');}}if($this->processed&&!is_dir($this->file_dst_path)){$this->processed=false;$this->error=$this->translate('destination_path_not_dir');}$hash=md5($this->file_dst_name_body.rand(1,1000));if($this->processed&&!($f=@fopen($this->file_dst_path.$hash.(!empty($this->file_dst_name_ext)?'.'.$this->file_dst_name_ext:''),'a+'))){if($this->dir_auto_chmod){$this->log.='- '.$this->file_dst_path.' is not writeable. Attempting chmod:';if(!@chmod($this->file_dst_path,$this->dir_chmod)){$this->log.=' failed<br />';$this->processed=false;$this->error=$this->translate('destination_dir_write');}else{$this->log.=' success<br />';if(!($f=@fopen($this->file_dst_path.$hash.(!empty($this->file_dst_name_ext)?'.'.$this->file_dst_name_ext:''),'a+'))){$this->processed=false;$this->error=$this->translate('destination_dir_write');}else{@fclose($f);}}}else{$this->processed=false;$this->error=$this->translate('destination_path_write');}}else{if($this->processed)@fclose($f);@unlink($this->file_dst_path.$hash.(!empty($this->file_dst_name_ext)?'.'.$this->file_dst_name_ext:''));}if(!$this->no_upload_check&&empty($this->file_src_temp)&&!@file_exists($this->file_src_pathname)){$this->log.='- attempting to use a temp file:';$hash=md5($this->file_dst_name_body.rand(1,1000));if(move_uploaded_file($this->file_src_pathname,$this->file_dst_path.$hash.(!empty($this->file_dst_name_ext)?'.'.$this->file_dst_name_ext:''))){$this->file_src_pathname=$this->file_dst_path.$hash.(!empty($this->file_dst_name_ext)?'.'.$this->file_dst_name_ext:'');$this->file_src_temp=$this->file_src_pathname;$this->log.=' file created<br />';$this->log.=' temp file is: '.$this->file_src_temp.'<br />';}else{$this->log.=' failed<br />';$this->processed=false;$this->error=$this->translate('temp_file');}}}}if($this->processed){if($image_manipulation&&!@getimagesize($this->file_src_pathname)){$this->log.='- the file is not an image!<br />';$image_manipulation=false;}if($image_manipulation){@ini_set("gd.jpeg_ignore_warning",1);if($this->processed&&!($f=@fopen($this->file_src_pathname,'r'))){$this->processed=false;$this->error=$this->translate('source_not_readable');}else{@fclose($f);}$this->log.='- image resizing or conversion wanted<br />';if($this->gdversion()){switch($this->image_src_type){case 'jpg':if(!function_exists('imagecreatefromjpeg')){$this->processed=false;$this->error=$this->translate('no_create_support',array('JPEG'));}else{$image_src=@imagecreatefromjpeg($this->file_src_pathname);if(!$image_src){$this->processed=false;$this->error=$this->translate('create_error',array('JPEG'));}else{$this->log.='- source image is JPEG<br />';}}break;case 'png':if(!function_exists('imagecreatefrompng')){$this->processed=false;$this->error=$this->translate('no_create_support',array('PNG'));}else{$image_src=@imagecreatefrompng($this->file_src_pathname);if(!$image_src){$this->processed=false;$this->error=$this->translate('create_error',array('PNG'));}else{$this->log.='- source image is PNG<br />';}}break;case 'gif':if(!function_exists('imagecreatefromgif')){$this->processed=false;$this->error=$this->translate('no_create_support',array('GIF'));}else{$image_src=@imagecreatefromgif($this->file_src_pathname);if(!$image_src){$this->processed=false;$this->error=$this->translate('create_error',array('GIF'));}else{$this->log.='- source image is GIF<br />';}}break;case 'bmp':if(!method_exists($this,'imagecreatefrombmp')){$this->processed=false;$this->error=$this->translate('no_create_support',array('BMP'));}else{$image_src=@$this->imagecreatefrombmp($this->file_src_pathname);if(!$image_src){$this->processed=false;$this->error=$this->translate('create_error',array('BMP'));}else{$this->log.='- source image is BMP<br />';}}break;default:$this->processed=false;$this->error=$this->translate('source_invalid');}}else{$this->processed=false;$this->error=$this->translate('gd_missing');}if($this->processed&&$image_src){if(empty($this->image_convert)){$this->log.='- setting destination file type to '.$this->image_src_type.'<br />';$this->image_convert=$this->image_src_type;}if(!in_array($this->image_convert,$this->image_supported)){$this->image_convert='jpg';}if($this->image_convert!='png'&&$this->image_convert!='gif'&&!empty($this->image_default_color)&&empty($this->image_background_color))$this->image_background_color=$this->image_default_color;if(!empty($this->image_background_color))$this->image_default_color=$this->image_background_color;if(empty($this->image_default_color))$this->image_default_color='#FFFFFF';$this->image_src_x=imagesx($image_src);$this->image_src_y=imagesy($image_src);$gd_version=$this->gdversion();$ratio_crop=null;if(!imageistruecolor($image_src)){$this->log.='- image is detected as having a palette<br />';$this->image_is_palette=true;$this->image_transparent_color=imagecolortransparent($image_src);if($this->image_transparent_color>=0&&imagecolorstotal($image_src)>$this->image_transparent_color){$this->image_is_transparent=true;$this->log.=' palette image is detected as transparent<br />';}$this->log.=' convert palette image to true color<br />';$true_color=imagecreatetruecolor($this->image_src_x,$this->image_src_y);imagealphablending($true_color,false);imagesavealpha($true_color,true);for($x=0;$x<$this->image_src_x;$x++){for($y=0;$y<$this->image_src_y;$y++){if($this->image_transparent_color>=0&&imagecolorat($image_src,$x,$y)==$this->image_transparent_color){imagesetpixel($true_color,$x,$y,127<<24);}else{$rgb=imagecolorsforindex($image_src,imagecolorat($image_src,$x,$y));imagesetpixel($true_color,$x,$y,($rgb['alpha']<<24)|($rgb['red']<<16)|($rgb['green']<<8)|$rgb['blue']);}}}$image_src=$this->imagetransfer($true_color,$image_src);imagealphablending($image_src,false);imagesavealpha($image_src,true);$this->image_is_palette=false;}$image_dst=&$image_src;if((!empty($this->image_precrop))){list($ct,$cr,$cb,$cl)=$this->getoffsets($this->image_precrop,$this->image_src_x,$this->image_src_y,true,true);$this->log.='- pre-crop image : '.$ct.' '.$cr.' '.$cb.' '.$cl.' <br />';$this->image_src_x=$this->image_src_x-$cl-$cr;$this->image_src_y=$this->image_src_y-$ct-$cb;if($this->image_src_x<1)$this->image_src_x=1;if($this->image_src_y<1)$this->image_src_y=1;$tmp=$this->imagecreatenew($this->image_src_x,$this->image_src_y);imagecopy($tmp,$image_dst,0,0,$cl,$ct,$this->image_src_x,$this->image_src_y);if($ct<0||$cr<0||$cb<0||$cl<0){if(!empty($this->image_background_color)){list($red,$green,$blue)=$this->getcolors($this->image_background_color);$fill=imagecolorallocate($tmp,$red,$green,$blue);}else{$fill=imagecolorallocatealpha($tmp,0,0,0,127);}if($ct<0)imagefilledrectangle($tmp,0,0,$this->image_src_x,-$ct,$fill);if($cr<0)imagefilledrectangle($tmp,$this->image_src_x+$cr,0,$this->image_src_x,$this->image_src_y,$fill);if($cb<0)imagefilledrectangle($tmp,0,$this->image_src_y+$cb,$this->image_src_x,$this->image_src_y,$fill);if($cl<0)imagefilledrectangle($tmp,0,0,-$cl,$this->image_src_y,$fill);}$image_dst=$this->imagetransfer($tmp,$image_dst);}if($this->image_resize){$this->log.='- resizing...<br />';if($this->image_ratio_x){$this->log.=' calculate x size<br />';$this->image_dst_x=round(($this->image_src_x*$this->image_y)/$this->image_src_y);$this->image_dst_y=$this->image_y;}else if($this->image_ratio_y){$this->log.=' calculate y size<br />';$this->image_dst_x=$this->image_x;$this->image_dst_y=round(($this->image_src_y*$this->image_x)/$this->image_src_x);}else if(is_numeric($this->image_ratio_pixels)){$this->log.=' calculate x/y size to match a number of pixels<br />';$pixels=$this->image_src_y*$this->image_src_x;$diff=sqrt($this->image_ratio_pixels/$pixels);$this->image_dst_x=round($this->image_src_x*$diff);$this->image_dst_y=round($this->image_src_y*$diff);}else if($this->image_ratio||$this->image_ratio_crop||$this->image_ratio_fill||$this->image_ratio_no_zoom_in||$this->image_ratio_no_zoom_out){$this->log.=' check x/y sizes<br />';if((!$this->image_ratio_no_zoom_in&&!$this->image_ratio_no_zoom_out)||($this->image_ratio_no_zoom_in&&($this->image_src_x>$this->image_x||$this->image_src_y>$this->image_y))||($this->image_ratio_no_zoom_out&&$this->image_src_x<$this->image_x&&$this->image_src_y<$this->image_y)){$this->image_dst_x=$this->image_x;$this->image_dst_y=$this->image_y;if($this->image_ratio_crop){if(!is_string($this->image_ratio_crop))$this->image_ratio_crop='';$this->image_ratio_crop=strtolower($this->image_ratio_crop);if(($this->image_src_x/$this->image_x)>($this->image_src_y/$this->image_y)){$this->image_dst_y=$this->image_y;$this->image_dst_x=intval($this->image_src_x*($this->image_y/$this->image_src_y));$ratio_crop=array();$ratio_crop['x']=$this->image_dst_x-$this->image_x;if(strpos($this->image_ratio_crop,'l')!==false){$ratio_crop['l']=0;$ratio_crop['r']=$ratio_crop['x'];}else if(strpos($this->image_ratio_crop,'r')!==false){$ratio_crop['l']=$ratio_crop['x'];$ratio_crop['r']=0;}else{$ratio_crop['l']=round($ratio_crop['x']/2);$ratio_crop['r']=$ratio_crop['x']-$ratio_crop['l'];}$this->log.=' ratio_crop_x : '.$ratio_crop['x'].' ('.$ratio_crop['l'].';'.$ratio_crop['r'].')<br />';if(is_null($this->image_crop))$this->image_crop=array(0,0,0,0);}else{$this->image_dst_x=$this->image_x;$this->image_dst_y=intval($this->image_src_y*($this->image_x/$this->image_src_x));$ratio_crop=array();$ratio_crop['y']=$this->image_dst_y-$this->image_y;if(strpos($this->image_ratio_crop,'t')!==false){$ratio_crop['t']=0;$ratio_crop['b']=$ratio_crop['y'];}else if(strpos($this->image_ratio_crop,'b')!==false){$ratio_crop['t']=$ratio_crop['y'];$ratio_crop['b']=0;}else{$ratio_crop['t']=round($ratio_crop['y']/2);$ratio_crop['b']=$ratio_crop['y']-$ratio_crop['t'];}$this->log.=' ratio_crop_y : '.$ratio_crop['y'].' ('.$ratio_crop['t'].';'.$ratio_crop['b'].')<br />';if(is_null($this->image_crop))$this->image_crop=array(0,0,0,0);}}else if($this->image_ratio_fill){if(!is_string($this->image_ratio_fill))$this->image_ratio_fill='';$this->image_ratio_fill=strtolower($this->image_ratio_fill);if(($this->image_src_x/$this->image_x)<($this->image_src_y/$this->image_y)){$this->image_dst_y=$this->image_y;$this->image_dst_x=intval($this->image_src_x*($this->image_y/$this->image_src_y));$ratio_crop=array();$ratio_crop['x']=$this->image_dst_x-$this->image_x;if(strpos($this->image_ratio_fill,'l')!==false){$ratio_crop['l']=0;$ratio_crop['r']=$ratio_crop['x'];}else if(strpos($this->image_ratio_fill,'r')!==false){$ratio_crop['l']=$ratio_crop['x'];$ratio_crop['r']=0;}else{$ratio_crop['l']=round($ratio_crop['x']/2);$ratio_crop['r']=$ratio_crop['x']-$ratio_crop['l'];}$this->log.=' ratio_fill_x : '.$ratio_crop['x'].' ('.$ratio_crop['l'].';'.$ratio_crop['r'].')<br />';if(is_null($this->image_crop))$this->image_crop=array(0,0,0,0);}else{$this->image_dst_x=$this->image_x;$this->image_dst_y=intval($this->image_src_y*($this->image_x/$this->image_src_x));$ratio_crop=array();$ratio_crop['y']=$this->image_dst_y-$this->image_y;if(strpos($this->image_ratio_fill,'t')!==false){$ratio_crop['t']=0;$ratio_crop['b']=$ratio_crop['y'];}else if(strpos($this->image_ratio_fill,'b')!==false){$ratio_crop['t']=$ratio_crop['y'];$ratio_crop['b']=0;}else{$ratio_crop['t']=round($ratio_crop['y']/2);$ratio_crop['b']=$ratio_crop['y']-$ratio_crop['t'];}$this->log.=' ratio_fill_y : '.$ratio_crop['y'].' ('.$ratio_crop['t'].';'.$ratio_crop['b'].')<br />';if(is_null($this->image_crop))$this->image_crop=array(0,0,0,0);}}else{if(($this->image_src_x/$this->image_x)>($this->image_src_y/$this->image_y)){$this->image_dst_x=$this->image_x;$this->image_dst_y=intval($this->image_src_y*($this->image_x/$this->image_src_x));}else{$this->image_dst_y=$this->image_y;$this->image_dst_x=intval($this->image_src_x*($this->image_y/$this->image_src_y));}}}else{$this->log.=' doesn\'t calculate x/y sizes<br />';$this->image_dst_x=$this->image_src_x;$this->image_dst_y=$this->image_src_y;}}else{$this->log.=' use plain sizes<br />';$this->image_dst_x=$this->image_x;$this->image_dst_y=$this->image_y;}if($this->image_dst_x<1)$this->image_dst_x=1;if($this->image_dst_y<1)$this->image_dst_y=1;$tmp=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y);if($gd_version>=2){$res=imagecopyresampled($tmp,$image_src,0,0,0,0,$this->image_dst_x,$this->image_dst_y,$this->image_src_x,$this->image_src_y);}else{$res=imagecopyresized($tmp,$image_src,0,0,0,0,$this->image_dst_x,$this->image_dst_y,$this->image_src_x,$this->image_src_y);}$this->log.=' resized image object created<br />';$this->log.=' image_src_x y : '.$this->image_src_x.' x '.$this->image_src_y.'<br />';$this->log.=' image_dst_x y : '.$this->image_dst_x.' x '.$this->image_dst_y.'<br />';$image_dst=$this->imagetransfer($tmp,$image_dst);}else{$this->image_dst_x=$this->image_src_x;$this->image_dst_y=$this->image_src_y;}if((!empty($this->image_crop)||!is_null($ratio_crop))){list($ct,$cr,$cb,$cl)=$this->getoffsets($this->image_crop,$this->image_dst_x,$this->image_dst_y,true,true);if(!is_null($ratio_crop)){if(array_key_exists('t',$ratio_crop))$ct+=$ratio_crop['t'];if(array_key_exists('r',$ratio_crop))$cr+=$ratio_crop['r'];if(array_key_exists('b',$ratio_crop))$cb+=$ratio_crop['b'];if(array_key_exists('l',$ratio_crop))$cl+=$ratio_crop['l'];}$this->log.='- crop image : '.$ct.' '.$cr.' '.$cb.' '.$cl.' <br />';$this->image_dst_x=$this->image_dst_x-$cl-$cr;$this->image_dst_y=$this->image_dst_y-$ct-$cb;if($this->image_dst_x<1)$this->image_dst_x=1;if($this->image_dst_y<1)$this->image_dst_y=1;$tmp=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y);imagecopy($tmp,$image_dst,0,0,$cl,$ct,$this->image_dst_x,$this->image_dst_y);if($ct<0||$cr<0||$cb<0||$cl<0){if(!empty($this->image_background_color)){list($red,$green,$blue)=$this->getcolors($this->image_background_color);$fill=imagecolorallocate($tmp,$red,$green,$blue);}else{$fill=imagecolorallocatealpha($tmp,0,0,0,127);}if($ct<0)imagefilledrectangle($tmp,0,0,$this->image_dst_x,-$ct-1,$fill);if($cr<0)imagefilledrectangle($tmp,$this->image_dst_x+$cr,0,$this->image_dst_x,$this->image_dst_y,$fill);if($cb<0)imagefilledrectangle($tmp,0,$this->image_dst_y+$cb,$this->image_dst_x,$this->image_dst_y,$fill);if($cl<0)imagefilledrectangle($tmp,0,0,-$cl-1,$this->image_dst_y,$fill);}$image_dst=$this->imagetransfer($tmp,$image_dst);}if($gd_version>=2&&!empty($this->image_flip)){$this->image_flip=strtolower($this->image_flip);$this->log.='- flip image : '.$this->image_flip.'<br />';$tmp=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y);for($x=0;$x<$this->image_dst_x;$x++){for($y=0;$y<$this->image_dst_y;$y++){if(strpos($this->image_flip,'v')!==false){imagecopy($tmp,$image_dst,$this->image_dst_x-$x-1,$y,$x,$y,1,1);}else{imagecopy($tmp,$image_dst,$x,$this->image_dst_y-$y-1,$x,$y,1,1);}}}$image_dst=$this->imagetransfer($tmp,$image_dst);}if($gd_version>=2&&is_numeric($this->image_rotate)){if(!in_array($this->image_rotate,array(0,90,180,270)))$this->image_rotate=0;if($this->image_rotate!=0){if($this->image_rotate==90||$this->image_rotate==270){$tmp=$this->imagecreatenew($this->image_dst_y,$this->image_dst_x);}else{$tmp=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y);}$this->log.='- rotate image : '.$this->image_rotate.'<br />';for($x=0;$x<$this->image_dst_x;$x++){for($y=0;$y<$this->image_dst_y;$y++){if($this->image_rotate==90){imagecopy($tmp,$image_dst,$y,$x,$x,$this->image_dst_y-$y-1,1,1);}else if($this->image_rotate==180){imagecopy($tmp,$image_dst,$x,$y,$this->image_dst_x-$x-1,$this->image_dst_y-$y-1,1,1);}else if($this->image_rotate==270){imagecopy($tmp,$image_dst,$y,$x,$this->image_dst_x-$x-1,$y,1,1);}else{imagecopy($tmp,$image_dst,$x,$y,$x,$y,1,1);}}}if($this->image_rotate==90||$this->image_rotate==270){$t=$this->image_dst_y;$this->image_dst_y=$this->image_dst_x;$this->image_dst_x=$t;}$image_dst=$this->imagetransfer($tmp,$image_dst);}}if((is_numeric($this->image_pixelate)&&$this->image_pixelate>0)){$this->log.='- pixelate image ('.$this->image_pixelate.'px)<br />';$filter=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y);if($gd_version>=2){imagecopyresampled($filter,$image_dst,0,0,0,0,round($this->image_dst_x/$this->image_pixelate),round($this->image_dst_y/$this->image_pixelate),$this->image_dst_x,$this->image_dst_y);imagecopyresampled($image_dst,$filter,0,0,0,0,$this->image_dst_x,$this->image_dst_y,round($this->image_dst_x/$this->image_pixelate),round($this->image_dst_y/$this->image_pixelate));}else{imagecopyresized($filter,$image_dst,0,0,0,0,round($this->image_dst_x/$this->image_pixelate),round($this->image_dst_y/$this->image_pixelate),$this->image_dst_x,$this->image_dst_y);imagecopyresized($image_dst,$filter,0,0,0,0,$this->image_dst_x,$this->image_dst_y,round($this->image_dst_x/$this->image_pixelate),round($this->image_dst_y/$this->image_pixelate));}imagedestroy($filter);}if($gd_version>=2&&$this->image_unsharp&&is_numeric($this->image_unsharp_amount)&&is_numeric($this->image_unsharp_radius)&&is_numeric($this->image_unsharp_threshold)){if($this->image_unsharp_amount>500)$this->image_unsharp_amount=500;$this->image_unsharp_amount=$this->image_unsharp_amount*0.016;if($this->image_unsharp_radius>50)$this->image_unsharp_radius=50;$this->image_unsharp_radius=$this->image_unsharp_radius*2;if($this->image_unsharp_threshold>255)$this->image_unsharp_threshold=255;$this->image_unsharp_radius=abs(round($this->image_unsharp_radius));if($this->image_unsharp_radius!=0){$this->image_dst_x=imagesx($image_dst);$this->image_dst_y=imagesy($image_dst);$canvas=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y,false,true);$blur=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y,false,true);if(function_exists('imageconvolution')){$matrix=array(array(1,2,1),array(2,4,2),array(1,2,1));imagecopy($blur,$image_dst,0,0,0,0,$this->image_dst_x,$this->image_dst_y);imageconvolution($blur,$matrix,16,0);}else{for($i=0;$i<$this->image_unsharp_radius;$i++){imagecopy($blur,$image_dst,0,0,1,0,$this->image_dst_x-1,$this->image_dst_y);$this->imagecopymergealpha($blur,$image_dst,1,0,0,0,$this->image_dst_x,$this->image_dst_y,50);$this->imagecopymergealpha($blur,$image_dst,0,0,0,0,$this->image_dst_x,$this->image_dst_y,50);imagecopy($canvas,$blur,0,0,0,0,$this->image_dst_x,$this->image_dst_y);$this->imagecopymergealpha($blur,$canvas,0,0,0,1,$this->image_dst_x,$this->image_dst_y-1,33.33333);$this->imagecopymergealpha($blur,$canvas,0,1,0,0,$this->image_dst_x,$this->image_dst_y,25);}}$p_new=array();if($this->image_unsharp_threshold>0){for($x=0;$x<$this->image_dst_x-1;$x++){for($y=0;$y<$this->image_dst_y;$y++){$p_orig=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$p_blur=imagecolorsforindex($blur,imagecolorat($blur,$x,$y));$p_new['red']=(abs($p_orig['red']-$p_blur['red'])>=$this->image_unsharp_threshold)?max(0,min(255,($this->image_unsharp_amount*($p_orig['red']-$p_blur['red']))+$p_orig['red'])):$p_orig['red'];$p_new['green']=(abs($p_orig['green']-$p_blur['green'])>=$this->image_unsharp_threshold)?max(0,min(255,($this->image_unsharp_amount*($p_orig['green']-$p_blur['green']))+$p_orig['green'])):$p_orig['green'];$p_new['blue']=(abs($p_orig['blue']-$p_blur['blue'])>=$this->image_unsharp_threshold)?max(0,min(255,($this->image_unsharp_amount*($p_orig['blue']-$p_blur['blue']))+$p_orig['blue'])):$p_orig['blue'];if(($p_orig['red']!=$p_new['red'])||($p_orig['green']!=$p_new['green'])||($p_orig['blue']!=$p_new['blue'])){$color=imagecolorallocatealpha($image_dst,$p_new['red'],$p_new['green'],$p_new['blue'],$p_orig['alpha']);imagesetpixel($image_dst,$x,$y,$color);}}}}else{for($x=0;$x<$this->image_dst_x;$x++){for($y=0;$y<$this->image_dst_y;$y++){$p_orig=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$p_blur=imagecolorsforindex($blur,imagecolorat($blur,$x,$y));$p_new['red']=($this->image_unsharp_amount*($p_orig['red']-$p_blur['red']))+$p_orig['red'];if($p_new['red']>255){$p_new['red']=255;}elseif($p_new['red']<0){$p_new['red']=0;}$p_new['green']=($this->image_unsharp_amount*($p_orig['green']-$p_blur['green']))+$p_orig['green'];if($p_new['green']>255){$p_new['green']=255;}elseif($p_new['green']<0){$p_new['green']=0;}$p_new['blue']=($this->image_unsharp_amount*($p_orig['blue']-$p_blur['blue']))+$p_orig['blue'];if($p_new['blue']>255){$p_new['blue']=255;}elseif($p_new['blue']<0){$p_new['blue']=0;}$color=imagecolorallocatealpha($image_dst,$p_new['red'],$p_new['green'],$p_new['blue'],$p_orig['alpha']);imagesetpixel($image_dst,$x,$y,$color);}}}imagedestroy($canvas);imagedestroy($blur);}}if($gd_version>=2&&(is_numeric($this->image_overlay_opacity)&&$this->image_overlay_opacity>0&&!empty($this->image_overlay_color))){$this->log.='- apply color overlay<br />';list($red,$green,$blue)=$this->getcolors($this->image_overlay_color);$filter=imagecreatetruecolor($this->image_dst_x,$this->image_dst_y);$color=imagecolorallocate($filter,$red,$green,$blue);imagefilledrectangle($filter,0,0,$this->image_dst_x,$this->image_dst_y,$color);$this->imagecopymergealpha($image_dst,$filter,0,0,0,0,$this->image_dst_x,$this->image_dst_y,$this->image_overlay_opacity);imagedestroy($filter);}if($gd_version>=2&&($this->image_negative||$this->image_greyscale||is_numeric($this->image_threshold)||is_numeric($this->image_brightness)||is_numeric($this->image_contrast)||!empty($this->image_tint_color))){$this->log.='- apply tint, light, contrast correction, negative, greyscale and threshold<br />';if(!empty($this->image_tint_color))list($tint_red,$tint_green,$tint_blue)=$this->getcolors($this->image_tint_color);for($y=0;$y<$this->image_dst_y;$y++){for($x=0;$x<$this->image_dst_x;$x++){if($this->image_greyscale){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$r=$g=$b=round((0.2125*$pixel['red'])+(0.7154*$pixel['green'])+(0.0721*$pixel['blue']));$color=imagecolorallocatealpha($image_dst,$r,$g,$b,$pixel['alpha']);imagesetpixel($image_dst,$x,$y,$color);unset($color);unset($pixel);}if(is_numeric($this->image_threshold)){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$c=(round($pixel['red']+$pixel['green']+$pixel['blue'])/3)-127;$r=$g=$b=($c>$this->image_threshold?255:0);$color=imagecolorallocatealpha($image_dst,$r,$g,$b,$pixel['alpha']);imagesetpixel($image_dst,$x,$y,$color);unset($color);unset($pixel);}if(is_numeric($this->image_brightness)){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$r=max(min(round($pixel['red']+(($this->image_brightness*2))),255),0);$g=max(min(round($pixel['green']+(($this->image_brightness*2))),255),0);$b=max(min(round($pixel['blue']+(($this->image_brightness*2))),255),0);$color=imagecolorallocatealpha($image_dst,$r,$g,$b,$pixel['alpha']);imagesetpixel($image_dst,$x,$y,$color);unset($color);unset($pixel);}if(is_numeric($this->image_contrast)){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$r=max(min(round(($this->image_contrast+128)*$pixel['red']/128),255),0);$g=max(min(round(($this->image_contrast+128)*$pixel['green']/128),255),0);$b=max(min(round(($this->image_contrast+128)*$pixel['blue']/128),255),0);$color=imagecolorallocatealpha($image_dst,$r,$g,$b,$pixel['alpha']);imagesetpixel($image_dst,$x,$y,$color);unset($color);unset($pixel);}if(!empty($this->image_tint_color)){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$r=min(round($tint_red*$pixel['red']/169),255);$g=min(round($tint_green*$pixel['green']/169),255);$b=min(round($tint_blue*$pixel['blue']/169),255);$color=imagecolorallocatealpha($image_dst,$r,$g,$b,$pixel['alpha']);imagesetpixel($image_dst,$x,$y,$color);unset($color);unset($pixel);}if(!empty($this->image_negative)){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$r=round(255-$pixel['red']);$g=round(255-$pixel['green']);$b=round(255-$pixel['blue']);$color=imagecolorallocatealpha($image_dst,$r,$g,$b,$pixel['alpha']);imagesetpixel($image_dst,$x,$y,$color);unset($color);unset($pixel);}}}}if($gd_version>=2&&!empty($this->image_border)){list($ct,$cr,$cb,$cl)=$this->getoffsets($this->image_border,$this->image_dst_x,$this->image_dst_y,true,false);$this->log.='- add border : '.$ct.' '.$cr.' '.$cb.' '.$cl.'<br />';$this->image_dst_x=$this->image_dst_x+$cl+$cr;$this->image_dst_y=$this->image_dst_y+$ct+$cb;if(!empty($this->image_border_color))list($red,$green,$blue)=$this->getcolors($this->image_border_color);$opacity=(is_numeric($this->image_border_opacity)?(int)(127-$this->image_border_opacity/100*127):0);$tmp=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y);$background=imagecolorallocatealpha($tmp,$red,$green,$blue,$opacity);imagefilledrectangle($tmp,0,0,$this->image_dst_x,$this->image_dst_y,$background);imagecopy($tmp,$image_dst,$cl,$ct,0,0,$this->image_dst_x-$cr-$cl,$this->image_dst_y-$cb-$ct);$image_dst=$this->imagetransfer($tmp,$image_dst);}if($gd_version>=2&&!empty($this->image_border_transparent)){list($ct,$cr,$cb,$cl)=$this->getoffsets($this->image_border_transparent,$this->image_dst_x,$this->image_dst_y,true,false);$this->log.='- add transparent border : '.$ct.' '.$cr.' '.$cb.' '.$cl.'<br />';$tmp=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y);imagecopy($tmp,$image_dst,$cl,$ct,$cl,$ct,$this->image_dst_x-$cr-$cl,$this->image_dst_y-$cb-$ct);$opacity=100;for($y=$ct-1;$y>=0;$y--){$il=(int)($ct>0?($cl*($y/$ct)):0);$ir=(int)($ct>0?($cr*($y/$ct)):0);for($x=$il;$x<$this->image_dst_x-$ir;$x++){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$alpha=(1-($pixel['alpha']/127))*$opacity/100;if($alpha>0){if($alpha>1)$alpha=1;$color=imagecolorallocatealpha($tmp,$pixel['red'],$pixel['green'],$pixel['blue'],round((1-$alpha)*127));imagesetpixel($tmp,$x,$y,$color);}}if($opacity>0)$opacity=$opacity-(100/$ct);}$opacity=100;for($x=$this->image_dst_x-$cr;$x<$this->image_dst_x;$x++){$it=(int)($cr>0?($ct*(($this->image_dst_x-$x-1)/$cr)):0);$ib=(int)($cr>0?($cb*(($this->image_dst_x-$x-1)/$cr)):0);for($y=$it;$y<$this->image_dst_y-$ib;$y++){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$alpha=(1-($pixel['alpha']/127))*$opacity/100;if($alpha>0){if($alpha>1)$alpha=1;$color=imagecolorallocatealpha($tmp,$pixel['red'],$pixel['green'],$pixel['blue'],round((1-$alpha)*127));imagesetpixel($tmp,$x,$y,$color);}}if($opacity>0)$opacity=$opacity-(100/$cr);}$opacity=100;for($y=$this->image_dst_y-$cb;$y<$this->image_dst_y;$y++){$il=(int)($cb>0?($cl*(($this->image_dst_y-$y-1)/$cb)):0);$ir=(int)($cb>0?($cr*(($this->image_dst_y-$y-1)/$cb)):0);for($x=$il;$x<$this->image_dst_x-$ir;$x++){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$alpha=(1-($pixel['alpha']/127))*$opacity/100;if($alpha>0){if($alpha>1)$alpha=1;$color=imagecolorallocatealpha($tmp,$pixel['red'],$pixel['green'],$pixel['blue'],round((1-$alpha)*127));imagesetpixel($tmp,$x,$y,$color);}}if($opacity>0)$opacity=$opacity-(100/$cb);}$opacity=100;for($x=$cl-1;$x>=0;$x--){$it=(int)($cl>0?($ct*($x/$cl)):0);$ib=(int)($cl>0?($cb*($x/$cl)):0);for($y=$it;$y<$this->image_dst_y-$ib;$y++){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$alpha=(1-($pixel['alpha']/127))*$opacity/100;if($alpha>0){if($alpha>1)$alpha=1;$color=imagecolorallocatealpha($tmp,$pixel['red'],$pixel['green'],$pixel['blue'],round((1-$alpha)*127));imagesetpixel($tmp,$x,$y,$color);}}if($opacity>0)$opacity=$opacity-(100/$cl);}$image_dst=$this->imagetransfer($tmp,$image_dst);}if($gd_version>=2&&is_numeric($this->image_frame)){if(is_array($this->image_frame_colors)){$vars=$this->image_frame_colors;$this->log.='- add frame : '.implode(' ',$this->image_frame_colors).'<br />';}else{$this->log.='- add frame : '.$this->image_frame_colors.'<br />';$vars=explode(' ',$this->image_frame_colors);}$nb=sizeof($vars);$this->image_dst_x=$this->image_dst_x+($nb*2);$this->image_dst_y=$this->image_dst_y+($nb*2);$tmp=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y);imagecopy($tmp,$image_dst,$nb,$nb,0,0,$this->image_dst_x-($nb*2),$this->image_dst_y-($nb*2));$opacity=(is_numeric($this->image_frame_opacity)?(int)(127-$this->image_frame_opacity/100*127):0);for($i=0;$i<$nb;$i++){list($red,$green,$blue)=$this->getcolors($vars[$i]);$c=imagecolorallocatealpha($tmp,$red,$green,$blue,$opacity);if($this->image_frame==1){imageline($tmp,$i,$i,$this->image_dst_x-$i-1,$i,$c);imageline($tmp,$this->image_dst_x-$i-1,$this->image_dst_y-$i-1,$this->image_dst_x-$i-1,$i,$c);imageline($tmp,$this->image_dst_x-$i-1,$this->image_dst_y-$i-1,$i,$this->image_dst_y-$i-1,$c);imageline($tmp,$i,$i,$i,$this->image_dst_y-$i-1,$c);}else{imageline($tmp,$i,$i,$this->image_dst_x-$i-1,$i,$c);imageline($tmp,$this->image_dst_x-$nb+$i,$this->image_dst_y-$nb+$i,$this->image_dst_x-$nb+$i,$nb-$i,$c);imageline($tmp,$this->image_dst_x-$nb+$i,$this->image_dst_y-$nb+$i,$nb-$i,$this->image_dst_y-$nb+$i,$c);imageline($tmp,$i,$i,$i,$this->image_dst_y-$i-1,$c);}}$image_dst=$this->imagetransfer($tmp,$image_dst);}if($gd_version>=2&&$this->image_bevel>0){if(empty($this->image_bevel_color1))$this->image_bevel_color1='#FFFFFF';if(empty($this->image_bevel_color2))$this->image_bevel_color2='#000000';list($red1,$green1,$blue1)=$this->getcolors($this->image_bevel_color1);list($red2,$green2,$blue2)=$this->getcolors($this->image_bevel_color2);$tmp=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y);imagecopy($tmp,$image_dst,0,0,0,0,$this->image_dst_x,$this->image_dst_y);imagealphablending($tmp,true);for($i=0;$i<$this->image_bevel;$i++){$alpha=round(($i/$this->image_bevel)*127);$c1=imagecolorallocatealpha($tmp,$red1,$green1,$blue1,$alpha);$c2=imagecolorallocatealpha($tmp,$red2,$green2,$blue2,$alpha);imageline($tmp,$i,$i,$this->image_dst_x-$i-1,$i,$c1);imageline($tmp,$this->image_dst_x-$i-1,$this->image_dst_y-$i,$this->image_dst_x-$i-1,$i,$c2);imageline($tmp,$this->image_dst_x-$i-1,$this->image_dst_y-$i-1,$i,$this->image_dst_y-$i-1,$c2);imageline($tmp,$i,$i,$i,$this->image_dst_y-$i-1,$c1);}$image_dst=$this->imagetransfer($tmp,$image_dst);}if($this->image_watermark!=''&&file_exists($this->image_watermark)){$this->log.='- add watermark<br />';$this->image_watermark_position=strtolower($this->image_watermark_position);$watermark_info=getimagesize($this->image_watermark);$watermark_type=(array_key_exists(2,$watermark_info)?$watermark_info[2]:null);$watermark_checked=false;if($watermark_type==IMAGETYPE_GIF){if(!function_exists('imagecreatefromgif')){$this->error=$this->translate('watermark_no_create_support',array('GIF'));}else{$filter=@imagecreatefromgif($this->image_watermark);if(!$filter){$this->error=$this->translate('watermark_create_error',array('GIF'));}else{$this->log.=' watermark source image is GIF<br />';$watermark_checked=true;}}}else if($watermark_type==IMAGETYPE_JPEG){if(!function_exists('imagecreatefromjpeg')){$this->error=$this->translate('watermark_no_create_support',array('JPEG'));}else{$filter=@imagecreatefromjpeg($this->image_watermark);if(!$filter){$this->error=$this->translate('watermark_create_error',array('JPEG'));}else{$this->log.=' watermark source image is JPEG<br />';$watermark_checked=true;}}}else if($watermark_type==IMAGETYPE_PNG){if(!function_exists('imagecreatefrompng')){$this->error=$this->translate('watermark_no_create_support',array('PNG'));}else{$filter=@imagecreatefrompng($this->image_watermark);if(!$filter){$this->error=$this->translate('watermark_create_error',array('PNG'));}else{$this->log.=' watermark source image is PNG<br />';$watermark_checked=true;}}}else if($watermark_type==IMAGETYPE_BMP){if(!method_exists($this,'imagecreatefrombmp')){$this->error=$this->translate('watermark_no_create_support',array('BMP'));}else{$filter=@$this->imagecreatefrombmp($this->image_watermark);if(!$filter){$this->error=$this->translate('watermark_create_error',array('BMP'));}else{$this->log.=' watermark source image is BMP<br />';$watermark_checked=true;}}}else{$this->error=$this->translate('watermark_invalid');}if($watermark_checked){$watermark_dst_width=$watermark_src_width=imagesx($filter);$watermark_dst_height=$watermark_src_height=imagesy($filter);if((!$this->image_watermark_no_zoom_out&&($watermark_dst_width>$this->image_dst_x||$watermark_dst_height>$this->image_dst_y))||(!$this->image_watermark_no_zoom_in&&$watermark_dst_width<$this->image_dst_x&&$watermark_dst_height<$this->image_dst_y)){$canvas_width=$this->image_dst_x-abs($this->image_watermark_x);$canvas_height=$this->image_dst_y-abs($this->image_watermark_y);if(($watermark_src_width/$canvas_width)>($watermark_src_height/$canvas_height)){$watermark_dst_width=$canvas_width;$watermark_dst_height=intval($watermark_src_height*($canvas_width/$watermark_src_width));}else{$watermark_dst_height=$canvas_height;$watermark_dst_width=intval($watermark_src_width*($canvas_height/$watermark_src_height));}$this->log.=' watermark resized from '.$watermark_src_width.'x'.$watermark_src_height.' to '.$watermark_dst_width.'x'.$watermark_dst_height.'<br />';}$watermark_x=0;$watermark_y=0;if(is_numeric($this->image_watermark_x)){if($this->image_watermark_x<0){$watermark_x=$this->image_dst_x-$watermark_dst_width+$this->image_watermark_x;}else{$watermark_x=$this->image_watermark_x;}}else{if(strpos($this->image_watermark_position,'r')!==false){$watermark_x=$this->image_dst_x-$watermark_dst_width;}else if(strpos($this->image_watermark_position,'l')!==false){$watermark_x=0;}else{$watermark_x=($this->image_dst_x-$watermark_dst_width)/2;}}if(is_numeric($this->image_watermark_y)){if($this->image_watermark_y<0){$watermark_y=$this->image_dst_y-$watermark_dst_height+$this->image_watermark_y;}else{$watermark_y=$this->image_watermark_y;}}else{if(strpos($this->image_watermark_position,'b')!==false){$watermark_y=$this->image_dst_y-$watermark_dst_height;}else if(strpos($this->image_watermark_position,'t')!==false){$watermark_y=0;}else{$watermark_y=($this->image_dst_y-$watermark_dst_height)/2;}}imagealphablending($image_dst,true);imagecopyresampled($image_dst,$filter,$watermark_x,$watermark_y,0,0,$watermark_dst_width,$watermark_dst_height,$watermark_src_width,$watermark_src_height);}else{$this->error=$this->translate('watermark_invalid');}}if(!empty($this->image_text)){$this->log.='- add text<br />';$src_size=$this->file_src_size/1024;$src_size_mb=number_format($src_size/1024,1,"."," ");$src_size_kb=number_format($src_size,1,"."," ");$src_size_human=($src_size>1024?$src_size_mb." MB":$src_size_kb." kb");$this->image_text=str_replace(array('[src_name]','[src_name_body]','[src_name_ext]','[src_pathname]','[src_mime]','[src_size]','[src_size_kb]','[src_size_mb]','[src_size_human]','[src_x]','[src_y]','[src_pixels]','[src_type]','[src_bits]','[dst_path]','[dst_name_body]','[dst_name_ext]','[dst_name]','[dst_pathname]','[dst_x]','[dst_y]','[date]','[time]','[host]','[server]','[ip]','[gd_version]'),array($this->file_src_name,$this->file_src_name_body,$this->file_src_name_ext,$this->file_src_pathname,$this->file_src_mime,$this->file_src_size,$src_size_kb,$src_size_mb,$src_size_human,$this->image_src_x,$this->image_src_y,$this->image_src_pixels,$this->image_src_type,$this->image_src_bits,$this->file_dst_path,$this->file_dst_name_body,$this->file_dst_name_ext,$this->file_dst_name,$this->file_dst_pathname,$this->image_dst_x,$this->image_dst_y,date('Y-m-d'),date('H:i:s'),(isset($_SERVER['HTTP_HOST'])?$_SERVER['HTTP_HOST']:'n/a'),(isset($_SERVER['SERVER_NAME'])?$_SERVER['SERVER_NAME']:'n/a'),(isset($_SERVER['REMOTE_ADDR'])?$_SERVER['REMOTE_ADDR']:'n/a'),$this->gdversion(true)),$this->image_text);if(!is_numeric($this->image_text_padding))$this->image_text_padding=0;if(!is_numeric($this->image_text_line_spacing))$this->image_text_line_spacing=0;if(!is_numeric($this->image_text_padding_x))$this->image_text_padding_x=$this->image_text_padding;if(!is_numeric($this->image_text_padding_y))$this->image_text_padding_y=$this->image_text_padding;$this->image_text_position=strtolower($this->image_text_position);$this->image_text_direction=strtolower($this->image_text_direction);$this->image_text_alignment=strtolower($this->image_text_alignment);if(!is_numeric($this->image_text_font)&&strlen($this->image_text_font)>4&&substr(strtolower($this->image_text_font),-4)=='.gdf'){$this->log.=' try to load font '.$this->image_text_font.'... ';if($this->image_text_font=@imageloadfont($this->image_text_font)){$this->log.='success<br />';}else{$this->log.='error<br />';$this->image_text_font=5;}}$text=explode("
",$this->image_text);$char_width=imagefontwidth($this->image_text_font);$char_height=imagefontheight($this->image_text_font);$text_height=0;$text_width=0;$line_height=0;$line_width=0;foreach($text as $k=>$v){if($this->image_text_direction=='v'){$h=($char_width*strlen($v));if($h>$text_height)$text_height=$h;$line_width=$char_height;$text_width+=$line_width+($k<(sizeof($text)-1)?$this->image_text_line_spacing:0);}else{$w=($char_width*strlen($v));if($w>$text_width)$text_width=$w;$line_height=$char_height;$text_height+=$line_height+($k<(sizeof($text)-1)?$this->image_text_line_spacing:0);}}$text_width+=(2*$this->image_text_padding_x);$text_height+=(2*$this->image_text_padding_y);$text_x=0;$text_y=0;if(is_numeric($this->image_text_x)){if($this->image_text_x<0){$text_x=$this->image_dst_x-$text_width+$this->image_text_x;}else{$text_x=$this->image_text_x;}}else{if(strpos($this->image_text_position,'r')!==false){$text_x=$this->image_dst_x-$text_width;}else if(strpos($this->image_text_position,'l')!==false){$text_x=0;}else{$text_x=($this->image_dst_x-$text_width)/2;}}if(is_numeric($this->image_text_y)){if($this->image_text_y<0){$text_y=$this->image_dst_y-$text_height+$this->image_text_y;}else{$text_y=$this->image_text_y;}}else{if(strpos($this->image_text_position,'b')!==false){$text_y=$this->image_dst_y-$text_height;}else if(strpos($this->image_text_position,'t')!==false){$text_y=0;}else{$text_y=($this->image_dst_y-$text_height)/2;}}if(!empty($this->image_text_background)){list($red,$green,$blue)=$this->getcolors($this->image_text_background);if($gd_version>=2&&(is_numeric($this->image_text_background_opacity))&&$this->image_text_background_opacity>=0&&$this->image_text_background_opacity<=100){$filter=imagecreatetruecolor($text_width,$text_height);$background_color=imagecolorallocate($filter,$red,$green,$blue);imagefilledrectangle($filter,0,0,$text_width,$text_height,$background_color);$this->imagecopymergealpha($image_dst,$filter,$text_x,$text_y,0,0,$text_width,$text_height,$this->image_text_background_opacity);imagedestroy($filter);}else{$background_color=imagecolorallocate($image_dst,$red,$green,$blue);imagefilledrectangle($image_dst,$text_x,$text_y,$text_x+$text_width,$text_y+$text_height,$background_color);}}$text_x+=$this->image_text_padding_x;$text_y+=$this->image_text_padding_y;$t_width=$text_width-(2*$this->image_text_padding_x);$t_height=$text_height-(2*$this->image_text_padding_y);list($red,$green,$blue)=$this->getcolors($this->image_text_color);if($gd_version>=2&&(is_numeric($this->image_text_opacity))&&$this->image_text_opacity>=0&&$this->image_text_opacity<=100){if($t_width<0)$t_width=0;if($t_height<0)$t_height=0;$filter=$this->imagecreatenew($t_width,$t_height,false,true);$text_color=imagecolorallocate($filter,$red,$green,$blue);foreach($text as $k=>$v){if($this->image_text_direction=='v'){imagestringup($filter,$this->image_text_font,$k*($line_width+($k>0&&$k<(sizeof($text))?$this->image_text_line_spacing:0)),$text_height-(2*$this->image_text_padding_y)-($this->image_text_alignment=='l'?0:(($t_height-strlen($v)*$char_width)/($this->image_text_alignment=='r'?1:2))),$v,$text_color);}else{imagestring($filter,$this->image_text_font,($this->image_text_alignment=='l'?0:(($t_width-strlen($v)*$char_width)/($this->image_text_alignment=='r'?1:2))),$k*($line_height+($k>0&&$k<(sizeof($text))?$this->image_text_line_spacing:0)),$v,$text_color);}}$this->imagecopymergealpha($image_dst,$filter,$text_x,$text_y,0,0,$t_width,$t_height,$this->image_text_opacity);imagedestroy($filter);}else{$text_color=imageColorAllocate($image_dst,$red,$green,$blue);foreach($text as $k=>$v){if($this->image_text_direction=='v'){imagestringup($image_dst,$this->image_text_font,$text_x+$k*($line_width+($k>0&&$k<(sizeof($text))?$this->image_text_line_spacing:0)),$text_y+$text_height-(2*$this->image_text_padding_y)-($this->image_text_alignment=='l'?0:(($t_height-strlen($v)*$char_width)/($this->image_text_alignment=='r'?1:2))),$v,$text_color);}else{imagestring($image_dst,$this->image_text_font,$text_x+($this->image_text_alignment=='l'?0:(($t_width-strlen($v)*$char_width)/($this->image_text_alignment=='r'?1:2))),$text_y+$k*($line_height+($k>0&&$k<(sizeof($text))?$this->image_text_line_spacing:0)),$v,$text_color);}}}}if($this->image_reflection_height){$this->log.='- add reflection : '.$this->image_reflection_height.'<br />';$image_reflection_height=$this->image_reflection_height;if(strpos($image_reflection_height,'%')>0)$image_reflection_height=$this->image_dst_y*(str_replace('%','',$image_reflection_height/100));if(strpos($image_reflection_height,'px')>0)$image_reflection_height=str_replace('px','',$image_reflection_height);$image_reflection_height=(int) $image_reflection_height;if($image_reflection_height>$this->image_dst_y)$image_reflection_height=$this->image_dst_y;if(empty($this->image_reflection_opacity))$this->image_reflection_opacity=60;$tmp=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y+$image_reflection_height+$this->image_reflection_space,true);$transparency=$this->image_reflection_opacity;imagecopy($tmp,$image_dst,0,0,0,0,$this->image_dst_x,$this->image_dst_y+($this->image_reflection_space<0?$this->image_reflection_space:0));if($image_reflection_height+$this->image_reflection_space>0){if(!empty($this->image_background_color)){list($red,$green,$blue)=$this->getcolors($this->image_background_color);$fill=imagecolorallocate($tmp,$red,$green,$blue);}else{$fill=imagecolorallocatealpha($tmp,0,0,0,127);}imagefill($tmp,round($this->image_dst_x/2),$this->image_dst_y+$image_reflection_height+$this->image_reflection_space-1,$fill);}for($y=0;$y<$image_reflection_height;$y++){for($x=0;$x<$this->image_dst_x;$x++){$pixel_b=imagecolorsforindex($tmp,imagecolorat($tmp,$x,$y+$this->image_dst_y+$this->image_reflection_space));$pixel_o=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$this->image_dst_y-$y-1+($this->image_reflection_space<0?$this->image_reflection_space:0)));$alpha_o=1-($pixel_o['alpha']/127);$alpha_b=1-($pixel_b['alpha']/127);$opacity=$alpha_o*$transparency/100;if($opacity>0){$red=round((($pixel_o['red']*$opacity)+($pixel_b['red'])*$alpha_b)/($alpha_b+$opacity));$green=round((($pixel_o['green']*$opacity)+($pixel_b['green'])*$alpha_b)/($alpha_b+$opacity));$blue=round((($pixel_o['blue']*$opacity)+($pixel_b['blue'])*$alpha_b)/($alpha_b+$opacity));$alpha=($opacity+$alpha_b);if($alpha>1)$alpha=1;$alpha=round((1-$alpha)*127);$color=imagecolorallocatealpha($tmp,$red,$green,$blue,$alpha);imagesetpixel($tmp,$x,$y+$this->image_dst_y+$this->image_reflection_space,$color);}}if($transparency>0)$transparency=$transparency-($this->image_reflection_opacity/$image_reflection_height);}$this->image_dst_y=$this->image_dst_y+$image_reflection_height+$this->image_reflection_space;$image_dst=$this->imagetransfer($tmp,$image_dst);}if($gd_version>=2&&is_numeric($this->image_opacity)&&$this->image_opacity<100){$this->log.='- change opacity<br />';$tmp=$this->imagecreatenew($this->image_dst_x,$this->image_dst_y,true);for($y=0;$y<$this->image_dst_y;$y++){for($x=0;$x<$this->image_dst_x;$x++){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$alpha=$pixel['alpha']+round((127-$pixel['alpha'])*(100-$this->image_opacity)/100);if($alpha>127)$alpha=127;if($alpha>0){$color=imagecolorallocatealpha($tmp,$pixel['red'],$pixel['green'],$pixel['blue'],$alpha);imagesetpixel($tmp,$x,$y,$color);}}}$image_dst=$this->imagetransfer($tmp,$image_dst);}if(is_numeric($this->jpeg_size)&&$this->jpeg_size>0&&($this->image_convert=='jpeg'||$this->image_convert=='jpg')){$this->log.='- JPEG desired file size : '.$this->jpeg_size.'<br />';ob_start();imagejpeg($image_dst,null,75);$buffer=ob_get_contents();ob_end_clean();$size75=strlen($buffer);ob_start();imagejpeg($image_dst,null,50);$buffer=ob_get_contents();ob_end_clean();$size50=strlen($buffer);ob_start();imagejpeg($image_dst,null,25);$buffer=ob_get_contents();ob_end_clean();$size25=strlen($buffer);if($size50==$size25)$size50++;if($size75==$size50||$size75==$size25)$size75++;$mgrad1=25/($size50-$size25);$mgrad2=25/($size75-$size50);$mgrad3=50/($size75-$size25);$mgrad=($mgrad1+$mgrad2+$mgrad3)/3;$q_factor=round($mgrad*($this->jpeg_size-$size50)+50);if($q_factor<1){$this->jpeg_quality=1;}elseif($q_factor>100){$this->jpeg_quality=100;}else{$this->jpeg_quality=$q_factor;}$this->log.=' JPEG quality factor set to '.$this->jpeg_quality.'<br />';}$this->log.='- converting...<br />';$this->image_dst_type=$this->image_convert;switch($this->image_convert){case 'gif':if(imageistruecolor($image_dst)){$this->log.=' true color to palette<br />';$mask=array(array());for($x=0;$x<$this->image_dst_x;$x++){for($y=0;$y<$this->image_dst_y;$y++){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$mask[$x][$y]=$pixel['alpha'];}}list($red,$green,$blue)=$this->getcolors($this->image_default_color);for($x=0;$x<$this->image_dst_x;$x++){for($y=0;$y<$this->image_dst_y;$y++){if($mask[$x][$y]>0){$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));$alpha=($mask[$x][$y]/127);$pixel['red']=round(($pixel['red']*(1-$alpha)+$red*($alpha)));$pixel['green']=round(($pixel['green']*(1-$alpha)+$green*($alpha)));$pixel['blue']=round(($pixel['blue']*(1-$alpha)+$blue*($alpha)));$color=imagecolorallocate($image_dst,$pixel['red'],$pixel['green'],$pixel['blue']);imagesetpixel($image_dst,$x,$y,$color);}}}if(empty($this->image_background_color)){imagetruecolortopalette($image_dst,true,255);$transparency=imagecolorallocate($image_dst,254,1,253);imagecolortransparent($image_dst,$transparency);for($x=0;$x<$this->image_dst_x;$x++){for($y=0;$y<$this->image_dst_y;$y++){if($mask[$x][$y]>120)imagesetpixel($image_dst,$x,$y,$transparency);}}}unset($mask);}break;case 'jpg':case 'bmp':$this->log.=' fills in transparency with default color<br />';list($red,$green,$blue)=$this->getcolors($this->image_default_color);$transparency=imagecolorallocate($image_dst,$red,$green,$blue);for($x=0;$x<$this->image_dst_x;$x++){for($y=0;$y<$this->image_dst_y;$y++){if(imageistruecolor($image_dst)){$rgba=imagecolorat($image_dst,$x,$y);$pixel=array('red'=>($rgba>>16)&0xFF,'green'=>($rgba>>8)&0xFF,'blue'=>$rgba&0xFF,'alpha'=>($rgba&0x7F000000)>>24);}else{$pixel=imagecolorsforindex($image_dst,imagecolorat($image_dst,$x,$y));}if($pixel['alpha']==127){imagesetpixel($image_dst,$x,$y,$transparency);}else if($pixel['alpha']>0){$alpha=($pixel['alpha']/127);$pixel['red']=round(($pixel['red']*(1-$alpha)+$red*($alpha)));$pixel['green']=round(($pixel['green']*(1-$alpha)+$green*($alpha)));$pixel['blue']=round(($pixel['blue']*(1-$alpha)+$blue*($alpha)));$color=imagecolorclosest($image_dst,$pixel['red'],$pixel['green'],$pixel['blue']);imagesetpixel($image_dst,$x,$y,$color);}}}break;default:break;}if($this->image_interlace)imageinterlace($image_dst,true);$this->log.='- saving image...<br />';switch($this->image_convert){case 'jpeg':case 'jpg':if(!$return_mode){$result=@imagejpeg($image_dst,$this->file_dst_pathname,$this->jpeg_quality);}else{ob_start();$result=@imagejpeg($image_dst,null,$this->jpeg_quality);$return_content=ob_get_contents();ob_end_clean();}if(!$result){$this->processed=false;$this->error=$this->translate('file_create',array('JPEG'));}else{$this->log.=' JPEG image created<br />';}break;case 'png':imagealphablending($image_dst,false);imagesavealpha($image_dst,true);if(!$return_mode){if(is_numeric($this->png_compression)&&version_compare(PHP_VERSION,'5.1.2')>=0){$result=@imagepng($image_dst,$this->file_dst_pathname,$this->png_compression);}else{$result=@imagepng($image_dst,$this->file_dst_pathname);}}else{ob_start();if(is_numeric($this->png_compression)&&version_compare(PHP_VERSION,'5.1.2')>=0){$result=@imagepng($image_dst,null,$this->png_compression);}else{$result=@imagepng($image_dst);}$return_content=ob_get_contents();ob_end_clean();}if(!$result){$this->processed=false;$this->error=$this->translate('file_create',array('PNG'));}else{$this->log.=' PNG image created<br />';}break;case 'gif':if(!$return_mode){$result=@imagegif($image_dst,$this->file_dst_pathname);}else{ob_start();$result=@imagegif($image_dst);$return_content=ob_get_contents();ob_end_clean();}if(!$result){$this->processed=false;$this->error=$this->translate('file_create',array('GIF'));}else{$this->log.=' GIF image created<br />';}break;case 'bmp':if(!$return_mode){$result=$this->imagebmp($image_dst,$this->file_dst_pathname);}else{ob_start();$result=$this->imagebmp($image_dst);$return_content=ob_get_contents();ob_end_clean();}if(!$result){$this->processed=false;$this->error=$this->translate('file_create',array('BMP'));}else{$this->log.=' BMP image created<br />';}break;default:$this->processed=false;$this->error=$this->translate('no_conversion_type');}if($this->processed){if(is_resource($image_src))imagedestroy($image_src);if(is_resource($image_dst))imagedestroy($image_dst);$this->log.=' image objects destroyed<br />';}}}else{$this->log.='- no image processing wanted<br />';if(!$return_mode){if(!copy($this->file_src_pathname,$this->file_dst_pathname)){$this->processed=false;$this->error=$this->translate('copy_failed');}}else{$return_content=@file_get_contents($this->file_src_pathname);if($return_content===FALSE){$this->processed=false;$this->error=$this->translate('reading_failed');}}}}if($this->processed){$this->log.='- <b>process OK</b><br />';}else{$this->log.='- <b>error</b>: '.$this->error.'<br />';}$this->init();if($return_mode)return $return_content;}function clean(){$this->log.='<b>cleanup</b><br />';$this->log.='- delete temp file '.$this->file_src_pathname.'<br />';@unlink($this->file_src_pathname);}function imagecreatefrombmp($filename){if(!$f1=fopen($filename,"rb"))return false;$file=unpack("vfile_type/Vfile_size/Vreserved/Vbitmap_offset",fread($f1,14));if($file['file_type']!=19778)return false;$bmp=unpack('Vheader_size/Vwidth/Vheight/vplanes/vbits_per_pixel'.'/Vcompression/Vsize_bitmap/Vhoriz_resolution'.'/Vvert_resolution/Vcolors_used/Vcolors_important',fread($f1,40));$bmp['colors']=pow(2,$bmp['bits_per_pixel']);if($bmp['size_bitmap']==0)$bmp['size_bitmap']=$file['file_size']-$file['bitmap_offset'];$bmp['bytes_per_pixel']=$bmp['bits_per_pixel']/8;$bmp['bytes_per_pixel2']=ceil($bmp['bytes_per_pixel']);$bmp['decal']=($bmp['width']*$bmp['bytes_per_pixel']/4);$bmp['decal']-=floor($bmp['width']*$bmp['bytes_per_pixel']/4);$bmp['decal']=4-(4*$bmp['decal']);if($bmp['decal']==4)$bmp['decal']=0;$palette=array();if($bmp['colors']<16777216){$palette=unpack('V'.$bmp['colors'],fread($f1,$bmp['colors']*4));}$im=fread($f1,$bmp['size_bitmap']);$vide=chr(0);$res=imagecreatetruecolor($bmp['width'],$bmp['height']);$P=0;$Y=$bmp['height']-1;while($Y>=0){$X=0;while($X<$bmp['width']){if($bmp['bits_per_pixel']==24)$color=unpack("V",substr($im,$P,3).$vide);elseif($bmp['bits_per_pixel']==16){$color=unpack("n",substr($im,$P,2));$color[1]=$palette[$color[1]+1];}elseif($bmp['bits_per_pixel']==8){$color=unpack("n",$vide.substr($im,$P,1));$color[1]=$palette[$color[1]+1];}elseif($bmp['bits_per_pixel']==4){$color=unpack("n",$vide.substr($im,floor($P),1));if(($P*2)%2==0)$color[1]=($color[1]>>4);else $color[1]=($color[1]&0x0F);$color[1]=$palette[$color[1]+1];}elseif($bmp['bits_per_pixel']==1){$color=unpack("n",$vide.substr($im,floor($P),1));if(($P*8)%8==0)$color[1]=$color[1]>>7;elseif(($P*8)%8==1)$color[1]=($color[1]&0x40)>>6;elseif(($P*8)%8==2)$color[1]=($color[1]&0x20)>>5;elseif(($P*8)%8==3)$color[1]=($color[1]&0x10)>>4;elseif(($P*8)%8==4)$color[1]=($color[1]&0x8)>>3;elseif(($P*8)%8==5)$color[1]=($color[1]&0x4)>>2;elseif(($P*8)%8==6)$color[1]=($color[1]&0x2)>>1;elseif(($P*8)%8==7)$color[1]=($color[1]&0x1);$color[1]=$palette[$color[1]+1];}else return FALSE;imagesetpixel($res,$X,$Y,$color[1]);$X++;$P+=$bmp['bytes_per_pixel'];}$Y--;$P+=$bmp['decal'];}fclose($f1);return $res;}function imagebmp(&$im,$filename=""){if(!$im)return false;$w=imagesx($im);$h=imagesy($im);$result='';if(!imageistruecolor($im)){$tmp=imagecreatetruecolor($w,$h);imagecopy($tmp,$im,0,0,0,0,$w,$h);imagedestroy($im);$im=&$tmp;}$biBPLine=$w*3;$biStride=($biBPLine+3)&~3;$biSizeImage=$biStride*$h;$bfOffBits=54;$bfSize=$bfOffBits+$biSizeImage;$result.=substr('BM',0,2);$result.=pack('VvvV',$bfSize,0,0,$bfOffBits);$result.=pack('VVVvvVVVVVV',40,$w,$h,1,24,0,$biSizeImage,0,0,0,0);$numpad=$biStride-$biBPLine;for($y=$h-1;$y>=0;--$y){for($x=0;$x<$w;++$x){$col=imagecolorat($im,$x,$y);$result.=substr(pack('V',$col),0,3);}for($i=0;$i<$numpad;++$i)$result.=pack('C',0);}if($filename==""){echo $result;}else{$file=fopen($filename,"wb");fwrite($file,$result);fclose($file);}return true;}} ?>
Did this file decode correctly?
Original Code
<?php $_F=__FILE__;$_X='Pz48P3BocCBjbDFzcyAzcGwyMWR7djFyICR2NXJzNDJuO3YxciAkZjRsNV9zcmNfbjFtNTt2MXIgJGY0bDVfc3JjX24xbTVfYjJkeTt2MXIgJGY0bDVfc3JjX24xbTVfNXh0O3YxciAkZjRsNV9zcmNfbTRtNTt2MXIgJGY0bDVfc3JjX3M0ejU7djFyICRmNGw1X3NyY181cnIycjt2MXIgJGY0bDVfc3JjX3AxdGhuMW01O3YxciAkZjRsNV9zcmNfdDVtcDt2MXIgJGY0bDVfZHN0X3AxdGg7djFyICRmNGw1X2RzdF9uMW01O3YxciAkZjRsNV9kc3RfbjFtNV9iMmR5O3YxciAkZjRsNV9kc3RfbjFtNV81eHQ7djFyICRmNGw1X2RzdF9wMXRobjFtNTt2MXIgJDRtMWc1X3NyY194O3YxciAkNG0xZzVfc3JjX3k7djFyICQ0bTFnNV9zcmNfYjR0czt2MXIgJDRtMWc1X3NyY19wNHg1bHM7djFyICQ0bTFnNV9zcmNfdHlwNTt2MXIgJDRtMWc1X2RzdF94O3YxciAkNG0xZzVfZHN0X3k7djFyICQ0bTFnNV9kc3RfdHlwNTt2MXIgJDRtMWc1X3MzcHAycnQ1ZDt2MXIgJGY0bDVfNHNfNG0xZzU7djFyICQzcGwyMWQ1ZDt2MXIgJG4yXzNwbDIxZF9jaDVjazt2MXIgJHByMmM1c3M1ZDt2MXIgJDVycjJyO3YxciAkbDJnO3YxciAkZjRsNV9uNXdfbjFtNV9iMmR5O3YxciAkZjRsNV9uMW01X2IyZHlfMWRkO3YxciAkZjRsNV9uMW01X2IyZHlfcHI1O3YxciAkZjRsNV9uNXdfbjFtNV81eHQ7djFyICRmNGw1X3MxZjVfbjFtNTt2MXIgJGY0bDVfZjJyYzVfNXh0NW5zNDJuO3YxciAkbTRtNV9jaDVjazt2MXIgJG00bTVfZjRsNTRuZjI7djFyICRtNG01X2Y0bDU7djFyICRtNG01X20xZzRjO3YxciAkbTRtNV9nNXQ0bTFnNXM0ejU7djFyICRuMl9zY3I0cHQ7djFyICRmNGw1XzEzdDJfcjVuMW01O3YxciAkZDRyXzEzdDJfY3I1MXQ1O3YxciAkZDRyXzEzdDJfY2htMmQ7djFyICRkNHJfY2htMmQ7djFyICRmNGw1XzJ2NXJ3cjR0NTt2MXIgJGY0bDVfbTF4X3M0ejU7djFyICQ0bTFnNV9yNXM0ejU7djFyICQ0bTFnNV9jMm52NXJ0O3YxciAkNG0xZzVfeDt2MXIgJDRtMWc1X3k7djFyICQ0bTFnNV9yMXQ0Mjt2MXIgJDRtMWc1X3IxdDQyX2NyMnA7djFyICQ0bTFnNV9yMXQ0Ml9mNGxsO3YxciAkNG0xZzVfcjF0NDJfcDR4NWxzO3YxciAkNG0xZzVfcjF0NDJfbjJfejIybV80bjt2MXIgJDRtMWc1X3IxdDQyX24yX3oyMm1fMjN0O3YxciAkNG0xZzVfcjF0NDJfeDt2MXIgJDRtMWc1X3IxdDQyX3k7djFyICQ0bTFnNV9tMXhfdzRkdGg7djFyICQ0bTFnNV9tMXhfaDU0Z2h0O3YxciAkNG0xZzVfbTF4X3A0eDVsczt2MXIgJDRtMWc1X20xeF9yMXQ0Mjt2MXIgJDRtMWc1X200bl93NGR0aDt2MXIgJDRtMWc1X200bl9oNTRnaHQ7djFyICQ0bTFnNV9tNG5fcDR4NWxzO3YxciAkNG0xZzVfbTRuX3IxdDQyO3YxciAkcG5nX2MybXByNXNzNDJuO3YxciAkanA1Z19xMzFsNHR5O3YxciAkanA1Z19zNHo1O3YxciAkNG0xZzVfNG50NXJsMWM1O3YxciAkcHI1czVydjVfdHIxbnNwMXI1bmN5O3YxciAkNG0xZzVfNHNfdHIxbnNwMXI1bnQ7djFyICQ0bTFnNV90cjFuc3AxcjVudF9jMmwycjt2MXIgJDRtMWc1X2IxY2tncjIzbmRfYzJsMnI7djFyICQ0bTFnNV9kNWYxM2x0X2MybDJyO3YxciAkNG0xZzVfNHNfcDFsNXR0NTt2MXIgJDRtMWc1X2JyNGdodG41c3M7djFyICQ0bTFnNV9jMm50cjFzdDt2MXIgJDRtMWc1XzJwMWM0dHk7djFyICQ0bTFnNV90aHI1c2gybGQ7djFyICQ0bTFnNV90NG50X2MybDJyO3YxciAkNG0xZzVfMnY1cmwxeV9jMmwycjt2MXIgJDRtMWc1XzJ2NXJsMXlfMnAxYzR0eTt2MXIgJDRtMWc1XzJ2NXJsMXlfcDVyYzVudDt2MXIgJDRtMWc1X241ZzF0NHY1O3YxciAkNG0xZzVfZ3I1eXNjMWw1O3YxciAkNG0xZzVfcDR4NWwxdDU7djFyICQ0bTFnNV8zbnNoMXJwO3YxciAkNG0xZzVfM25zaDFycF8xbTIzbnQ7djFyICQ0bTFnNV8zbnNoMXJwX3IxZDQzczt2MXIgJDRtMWc1XzNuc2gxcnBfdGhyNXNoMmxkO3YxciAkNG0xZzVfdDV4dDt2MXIgJDRtMWc1X3Q1eHRfZDRyNWN0NDJuO3YxciAkNG0xZzVfdDV4dF9jMmwycjt2MXIgJDRtMWc1X3Q1eHRfMnAxYzR0eTt2MXIgJDRtMWc1X3Q1eHRfcDVyYzVudDt2MXIgJDRtMWc1X3Q1eHRfYjFja2dyMjNuZDt2MXIgJDRtMWc1X3Q1eHRfYjFja2dyMjNuZF8ycDFjNHR5O3YxciAkNG0xZzVfdDV4dF9iMWNrZ3IyM25kX3A1cmM1bnQ7djFyICQ0bTFnNV90NXh0X2YybnQ7djFyICQ0bTFnNV90NXh0X3AyczR0NDJuO3YxciAkNG0xZzVfdDV4dF94O3YxciAkNG0xZzVfdDV4dF95O3YxciAkNG0xZzVfdDV4dF9wMWRkNG5nO3YxciAkNG0xZzVfdDV4dF9wMWRkNG5nX3g7djFyICQ0bTFnNV90NXh0X3AxZGQ0bmdfeTt2MXIgJDRtMWc1X3Q1eHRfMWw0Z25tNW50O3YxciAkNG0xZzVfdDV4dF9sNG41X3NwMWM0bmc7djFyICQ0bTFnNV9yNWZsNWN0NDJuX2g1NGdodDt2MXIgJDRtMWc1X3I1Zmw1Y3Q0Mm5fc3AxYzU7djFyICQ0bTFnNV9yNWZsNWN0NDJuX2MybDJyO3YxciAkNG0xZzVfcjVmbDVjdDQybl8ycDFjNHR5O3YxciAkNG0xZzVfZmw0cDt2MXIgJDRtMWc1X3IydDF0NTt2MXIgJDRtMWc1X2NyMnA7djFyICQ0bTFnNV9wcjVjcjJwO3YxciAkNG0xZzVfYjV2NWw7djFyICQ0bTFnNV9iNXY1bF9jMmwycjY7djFyICQ0bTFnNV9iNXY1bF9jMmwycmE7djFyICQ0bTFnNV9iMnJkNXI7djFyICQ0bTFnNV9iMnJkNXJfYzJsMnI7djFyICQ0bTFnNV9iMnJkNXJfMnAxYzR0eTt2MXIgJDRtMWc1X2IycmQ1cl90cjFuc3AxcjVudDt2MXIgJDRtMWc1X2ZyMW01O3YxciAkNG0xZzVfZnIxbTVfYzJsMnJzO3YxciAkNG0xZzVfZnIxbTVfMnAxYzR0eTt2MXIgJDRtMWc1X3cxdDVybTFyazt2MXIgJDRtMWc1X3cxdDVybTFya19wMnM0dDQybjt2MXIgJDRtMWc1X3cxdDVybTFya194O3YxciAkNG0xZzVfdzF0NXJtMXJrX3k7djFyICQ0bTFnNV93MXQ1cm0xcmtfbjJfejIybV80bjt2MXIgJDRtMWc1X3cxdDVybTFya19uMl96MjJtXzIzdDt2MXIgJG00bTVfdHlwNXM7djFyICQxbGwydzVkO3YxciAkZjJyYjRkZDVuO3YxciAkdHIxbnNsMXQ0Mm47djFyICRsMW5nO2YzbmN0NDJuIDRuNHQoKXskdGg0cy0+ZjRsNV9uNXdfbjFtNV9iMmR5PW4zbGw7JHRoNHMtPmY0bDVfbjFtNV9iMmR5XzFkZD1uM2xsOyR0aDRzLT5mNGw1X24xbTVfYjJkeV9wcjU9bjNsbDskdGg0cy0+ZjRsNV9uNXdfbjFtNV81eHQ9bjNsbDskdGg0cy0+ZjRsNV9zMWY1X24xbTU9dHIzNTskdGg0cy0+ZjRsNV9mMnJjNV81eHQ1bnM0Mm49dHIzNTskdGg0cy0+ZjRsNV8ydjVyd3I0dDU9ZjFsczU7JHRoNHMtPmY0bDVfMTN0Ml9yNW4xbTU9dHIzNTskdGg0cy0+ZDRyXzEzdDJfY3I1MXQ1PXRyMzU7JHRoNHMtPmQ0cl8xM3QyX2NobTJkPXRyMzU7JHRoNHMtPmQ0cl9jaG0yZD0wNzc3OyR0aDRzLT5uMl9zY3I0cHQ9dHIzNTskdGg0cy0+bTRtNV9jaDVjaz10cjM1OyR0aDRzLT5tNG01X2Y0bDU0bmYyPXRyMzU7JHRoNHMtPm00bTVfZjRsNT10cjM1OyR0aDRzLT5tNG01X20xZzRjPXRyMzU7JHRoNHMtPm00bTVfZzV0NG0xZzVzNHo1PXRyMzU7JHRoNHMtPmY0bDVfbTF4X3M0ejVfcjF3PXRyNG0oNG40X2c1dCgnM3BsMjFkX20xeF9mNGw1czR6NScpKTskdGg0cy0+ZjRsNV9tMXhfczR6NT0kdGg0cy0+ZzV0czR6NSgkdGg0cy0+ZjRsNV9tMXhfczR6NV9yMXcpOyR0aDRzLT40bTFnNV9yNXM0ejU9ZjFsczU7JHRoNHMtPjRtMWc1X2MybnY1cnQ9Jyc7JHRoNHMtPjRtMWc1X3g9NmkwOyR0aDRzLT40bTFnNV95PTZpMDskdGg0cy0+NG0xZzVfcjF0NDI9ZjFsczU7JHRoNHMtPjRtMWc1X3IxdDQyX2NyMnA9ZjFsczU7JHRoNHMtPjRtMWc1X3IxdDQyX2Y0bGw9ZjFsczU7JHRoNHMtPjRtMWc1X3IxdDQyX3A0eDVscz1mMWxzNTskdGg0cy0+NG0xZzVfcjF0NDJfbjJfejIybV80bj1mMWxzNTskdGg0cy0+NG0xZzVfcjF0NDJfbjJfejIybV8yM3Q9ZjFsczU7JHRoNHMtPjRtMWc1X3IxdDQyX3g9ZjFsczU7JHRoNHMtPjRtMWc1X3IxdDQyX3k9ZjFsczU7JHRoNHMtPnBuZ19jMm1wcjVzczQybj1uM2xsOyR0aDRzLT5qcDVnX3EzMWw0dHk9OGk7JHRoNHMtPmpwNWdfczR6NT1uM2xsOyR0aDRzLT40bTFnNV80bnQ1cmwxYzU9ZjFsczU7JHRoNHMtPnByNXM1cnY1X3RyMW5zcDFyNW5jeT1mMWxzNTskdGg0cy0+NG0xZzVfNHNfdHIxbnNwMXI1bnQ9ZjFsczU7JHRoNHMtPjRtMWc1X3RyMW5zcDFyNW50X2MybDJyPW4zbGw7JHRoNHMtPjRtMWc1X2IxY2tncjIzbmRfYzJsMnI9bjNsbDskdGg0cy0+NG0xZzVfZDVmMTNsdF9jMmwycj0nI2ZmZmZmZic7JHRoNHMtPjRtMWc1XzRzX3AxbDV0dDU9ZjFsczU7JHRoNHMtPjRtMWc1X20xeF93NGR0aD1uM2xsOyR0aDRzLT40bTFnNV9tMXhfaDU0Z2h0PW4zbGw7JHRoNHMtPjRtMWc1X20xeF9wNHg1bHM9bjNsbDskdGg0cy0+NG0xZzVfbTF4X3IxdDQyPW4zbGw7JHRoNHMtPjRtMWc1X200bl93NGR0aD1uM2xsOyR0aDRzLT40bTFnNV9tNG5faDU0Z2h0PW4zbGw7JHRoNHMtPjRtMWc1X200bl9wNHg1bHM9bjNsbDskdGg0cy0+NG0xZzVfbTRuX3IxdDQyPW4zbGw7JHRoNHMtPjRtMWc1X2JyNGdodG41c3M9bjNsbDskdGg0cy0+NG0xZzVfYzJudHIxc3Q9bjNsbDskdGg0cy0+NG0xZzVfMnAxYzR0eT1uM2xsOyR0aDRzLT40bTFnNV90aHI1c2gybGQ9bjNsbDskdGg0cy0+NG0xZzVfdDRudF9jMmwycj1uM2xsOyR0aDRzLT40bTFnNV8ydjVybDF5X2MybDJyPW4zbGw7JHRoNHMtPjRtMWc1XzJ2NXJsMXlfMnAxYzR0eT1uM2xsOyR0aDRzLT40bTFnNV8ydjVybDF5X3A1cmM1bnQ9bjNsbDskdGg0cy0+NG0xZzVfbjVnMXQ0djU9ZjFsczU7JHRoNHMtPjRtMWc1X2dyNXlzYzFsNT1mMWxzNTskdGg0cy0+NG0xZzVfcDR4NWwxdDU9bjNsbDskdGg0cy0+NG0xZzVfM25zaDFycD1mMWxzNTskdGg0cy0+NG0xZzVfM25zaDFycF8xbTIzbnQ9ODA7JHRoNHMtPjRtMWc1XzNuc2gxcnBfcjFkNDNzPTAuaTskdGg0cy0+NG0xZzVfM25zaDFycF90aHI1c2gybGQ9NjskdGg0cy0+NG0xZzVfdDV4dD1uM2xsOyR0aDRzLT40bTFnNV90NXh0X2Q0cjVjdDQybj1uM2xsOyR0aDRzLT40bTFnNV90NXh0X2MybDJyPScjRkZGRkZGJzskdGg0cy0+NG0xZzVfdDV4dF8ycDFjNHR5PTYwMDskdGg0cy0+NG0xZzVfdDV4dF9wNXJjNW50PTYwMDskdGg0cy0+NG0xZzVfdDV4dF9iMWNrZ3IyM25kPW4zbGw7JHRoNHMtPjRtMWc1X3Q1eHRfYjFja2dyMjNuZF8ycDFjNHR5PTYwMDskdGg0cy0+NG0xZzVfdDV4dF9iMWNrZ3IyM25kX3A1cmM1bnQ9NjAwOyR0aDRzLT40bTFnNV90NXh0X2YybnQ9aTskdGg0cy0+NG0xZzVfdDV4dF94PW4zbGw7JHRoNHMtPjRtMWc1X3Q1eHRfeT1uM2xsOyR0aDRzLT40bTFnNV90NXh0X3AyczR0NDJuPW4zbGw7JHRoNHMtPjRtMWc1X3Q1eHRfcDFkZDRuZz0wOyR0aDRzLT40bTFnNV90NXh0X3AxZGQ0bmdfeD1uM2xsOyR0aDRzLT40bTFnNV90NXh0X3AxZGQ0bmdfeT1uM2xsOyR0aDRzLT40bTFnNV90NXh0XzFsNGdubTVudD0nQyc7JHRoNHMtPjRtMWc1X3Q1eHRfbDRuNV9zcDFjNG5nPTA7JHRoNHMtPjRtMWc1X3I1Zmw1Y3Q0Mm5faDU0Z2h0PW4zbGw7JHRoNHMtPjRtMWc1X3I1Zmw1Y3Q0Mm5fc3AxYzU9YTskdGg0cy0+NG0xZzVfcjVmbDVjdDQybl9jMmwycj0nI2ZmZmZmZic7JHRoNHMtPjRtMWc1X3I1Zmw1Y3Q0Mm5fMnAxYzR0eT1lMDskdGg0cy0+NG0xZzVfdzF0NXJtMXJrPW4zbGw7JHRoNHMtPjRtMWc1X3cxdDVybTFya194PW4zbGw7JHRoNHMtPjRtMWc1X3cxdDVybTFya195PW4zbGw7JHRoNHMtPjRtMWc1X3cxdDVybTFya19wMnM0dDQybj1uM2xsOyR0aDRzLT40bTFnNV93MXQ1cm0xcmtfbjJfejIybV80bj10cjM1OyR0aDRzLT40bTFnNV93MXQ1cm0xcmtfbjJfejIybV8yM3Q9ZjFsczU7JHRoNHMtPjRtMWc1X2ZsNHA9bjNsbDskdGg0cy0+NG0xZzVfcjJ0MXQ1PW4zbGw7JHRoNHMtPjRtMWc1X2NyMnA9bjNsbDskdGg0cy0+NG0xZzVfcHI1Y3IycD1uM2xsOyR0aDRzLT40bTFnNV9iNXY1bD1uM2xsOyR0aDRzLT40bTFnNV9iNXY1bF9jMmwycjY9JyNGRkZGRkYnOyR0aDRzLT40bTFnNV9iNXY1bF9jMmwycmE9JyMwMDAwMDAnOyR0aDRzLT40bTFnNV9iMnJkNXI9bjNsbDskdGg0cy0+NG0xZzVfYjJyZDVyX2MybDJyPScjRkZGRkZGJzskdGg0cy0+NG0xZzVfYjJyZDVyXzJwMWM0dHk9NjAwOyR0aDRzLT40bTFnNV9iMnJkNXJfdHIxbnNwMXI1bnQ9bjNsbDskdGg0cy0+NG0xZzVfZnIxbTU9bjNsbDskdGg0cy0+NG0xZzVfZnIxbTVfYzJsMnJzPScjRkZGRkZGICM5OTk5OTkgI2VlZWVlZSAjMDAwMDAwJzskdGg0cy0+NG0xZzVfZnIxbTVfMnAxYzR0eT02MDA7JHRoNHMtPmYycmI0ZGQ1bj0xcnIxeSgpOyR0aDRzLT4xbGwydzVkPTFycjF5KCcxcHBsNGMxdDQybi8xcmonLCcxcHBsNGMxdDQybi81eGM1bCcsJzFwcGw0YzF0NDJuL2duM3QxcicsJzFwcGw0YzF0NDJuL21zcDJ3NXJwMjRudCcsJzFwcGw0YzF0NDJuL21zdzJyZCcsJzFwcGw0YzF0NDJuLzJjdDV0LXN0cjUxbScsJzFwcGw0YzF0NDJuLzJuNW4ydDUnLCcxcHBsNGMxdDQybi9wZGYnLCcxcHBsNGMxdDQybi9wbDE0bicsJzFwcGw0YzF0NDJuL3Ayc3RzY3I0cHQnLCcxcHBsNGMxdDQybi9wMnc1cnAyNG50JywnMXBwbDRjMXQ0Mm4vcjFyJywnMXBwbDRjMXQ0Mm4vcnRmJywnMXBwbDRjMXQ0Mm4vdm5kLm1zLTV4YzVsJywnMXBwbDRjMXQ0Mm4vdm5kLm1zLTV4YzVsLjFkZDRuLm0xY3IyRW4xYmw1ZC42YScsJzFwcGw0YzF0NDJuL3ZuZC5tcy01eGM1bC5zaDU1dC5iNG4xcnkubTFjcjJFbjFibDVkLjZhJywnMXBwbDRjMXQ0Mm4vdm5kLm1zLTV4YzVsLnNoNTV0Lm0xY3IyRW4xYmw1ZC42YScsJzFwcGw0YzF0NDJuL3ZuZC5tcy01eGM1bC50NW1wbDF0NS5tMWNyMkVuMWJsNWQuNmEnLCcxcHBsNGMxdDQybi92bmQubXMtMmZmNGM1JywnMXBwbDRjMXQ0Mm4vdm5kLm1zLTJmZjRjNXRoNW01JywnMXBwbDRjMXQ0Mm4vdm5kLm1zLXAydzVycDI0bnQnLCcxcHBsNGMxdDQybi92bmQubXMtcDJ3NXJwMjRudC4xZGQ0bi5tMWNyMkVuMWJsNWQuNmEnLCcxcHBsNGMxdDQybi92bmQubXMtcDJ3NXJwMjRudC5wcjVzNW50MXQ0Mm4ubTFjcjJFbjFibDVkLjZhJywnMXBwbDRjMXQ0Mm4vdm5kLm1zLXAydzVycDI0bnQuc2w0ZDUubTFjcjJFbjFibDVkLjZhJywnMXBwbDRjMXQ0Mm4vdm5kLm1zLXAydzVycDI0bnQuc2w0ZDVzaDJ3Lm0xY3IyRW4xYmw1ZC42YScsJzFwcGw0YzF0NDJuL3ZuZC5tcy1wMnc1cnAyNG50LnQ1bXBsMXQ1Lm0xY3IyRW4xYmw1ZC42YScsJzFwcGw0YzF0NDJuL3ZuZC5tcy13MnJkJywnMXBwbDRjMXQ0Mm4vdm5kLm1zLXcycmQuZDJjM201bnQubTFjcjJFbjFibDVkLjZhJywnMXBwbDRjMXQ0Mm4vdm5kLm1zLXcycmQudDVtcGwxdDUubTFjcjJFbjFibDVkLjZhJywnMXBwbDRjMXQ0Mm4vdm5kLjIxczRzLjJwNW5kMmMzbTVudC5jaDFydCcsJzFwcGw0YzF0NDJuL3ZuZC4yMXM0cy4ycDVuZDJjM201bnQuZDF0MWIxczUnLCcxcHBsNGMxdDQybi92bmQuMjFzNHMuMnA1bmQyYzNtNW50LmYycm0zbDEnLCcxcHBsNGMxdDQybi92bmQuMjFzNHMuMnA1bmQyYzNtNW50LmdyMXBoNGNzJywnMXBwbDRjMXQ0Mm4vdm5kLjIxczRzLjJwNW5kMmMzbTVudC5ncjFwaDRjcy10NW1wbDF0NScsJzFwcGw0YzF0NDJuL3ZuZC4yMXM0cy4ycDVuZDJjM201bnQuNG0xZzUnLCcxcHBsNGMxdDQybi92bmQuMjFzNHMuMnA1bmQyYzNtNW50LnByNXM1bnQxdDQybicsJzFwcGw0YzF0NDJuL3ZuZC4yMXM0cy4ycDVuZDJjM201bnQucHI1czVudDF0NDJuLXQ1bXBsMXQ1JywnMXBwbDRjMXQ0Mm4vdm5kLjIxczRzLjJwNW5kMmMzbTVudC5zcHI1MWRzaDU1dCcsJzFwcGw0YzF0NDJuL3ZuZC4yMXM0cy4ycDVuZDJjM201bnQuc3ByNTFkc2g1NXQtdDVtcGwxdDUnLCcxcHBsNGMxdDQybi92bmQuMjFzNHMuMnA1bmQyYzNtNW50LnQ1eHQnLCcxcHBsNGMxdDQybi92bmQuMjFzNHMuMnA1bmQyYzNtNW50LnQ1eHQtbTFzdDVyJywnMXBwbDRjMXQ0Mm4vdm5kLjIxczRzLjJwNW5kMmMzbTVudC50NXh0LXQ1bXBsMXQ1JywnMXBwbDRjMXQ0Mm4vdm5kLjIxczRzLjJwNW5kMmMzbTVudC50NXh0LXc1YicsJzFwcGw0YzF0NDJuL3ZuZC4ycDVuMmZmNGM1MnJnLjV4dDVuczQybicsJzFwcGw0YzF0NDJuL3ZuZC4ycDVueG1sZjJybTF0cy0yZmY0YzVkMmMzbTVudC5wcjVzNW50MXQ0Mm5tbC5wcjVzNW50MXQ0Mm4nLCcxcHBsNGMxdDQybi92bmQuMnA1bnhtbGYycm0xdHMtMmZmNGM1ZDJjM201bnQucHI1czVudDF0NDJubWwuc2w0ZDUnLCcxcHBsNGMxdDQybi92bmQuMnA1bnhtbGYycm0xdHMtMmZmNGM1ZDJjM201bnQucHI1czVudDF0NDJubWwuc2w0ZDVzaDJ3JywnMXBwbDRjMXQ0Mm4vdm5kLjJwNW54bWxmMnJtMXRzLTJmZjRjNWQyYzNtNW50LnByNXM1bnQxdDQybm1sLnQ1bXBsMXQ1JywnMXBwbDRjMXQ0Mm4vdm5kLjJwNW54bWxmMnJtMXRzLTJmZjRjNWQyYzNtNW50LnNwcjUxZHNoNTV0bWwuc2g1NXQnLCcxcHBsNGMxdDQybi92bmQuMnA1bnhtbGYycm0xdHMtMmZmNGM1ZDJjM201bnQuc3ByNTFkc2g1NXRtbC50NW1wbDF0NScsJzFwcGw0YzF0NDJuL3ZuZC4ycDVueG1sZjJybTF0cy0yZmY0YzVkMmMzbTVudC53MnJkcHIyYzVzczRuZ21sLmQyYzNtNW50JywnMXBwbDRjMXQ0Mm4vdm5kLjJwNW54bWxmMnJtMXRzLTJmZjRjNWQyYzNtNW50LncycmRwcjJjNXNzNG5nbWwuZDJjM201bnQnLCcxcHBsNGMxdDQybi92bmQuMnA1bnhtbGYycm0xdHMtMmZmNGM1ZDJjM201bnQudzJyZHByMmM1c3M0bmdtbC50NW1wbDF0NScsJzFwcGw0YzF0NDJuL3YyYzFsdDVjLW01ZDQxLWY0bDUnLCcxcHBsNGMxdDQybi93MnJkcDVyZjVjdCcsJzFwcGw0YzF0NDJuL3gtYjR0dDJycjVudCcsJzFwcGw0YzF0NDJuL3gtYno0cCcsJzFwcGw0YzF0NDJuL3gtYno0cGEnLCcxcHBsNGMxdDQybi94LWMybXByNXNzNWQnLCcxcHBsNGMxdDQybi94LTV4YzVsJywnMXBwbDRjMXQ0Mm4veC1nejRwJywnMXBwbDRjMXQ0Mm4veC1sMXQ1eCcsJzFwcGw0YzF0NDJuL3gtbTRkNCcsJzFwcGw0YzF0NDJuL3htbCcsJzFwcGw0YzF0NDJuL3gtbXM1eGM1bCcsJzFwcGw0YzF0NDJuL3gtcjFyJywnMXBwbDRjMXQ0Mm4veC1yMXItYzJtcHI1c3M1ZCcsJzFwcGw0YzF0NDJuL3gtcnRmJywnMXBwbDRjMXQ0Mm4veC1zaDJja3cxdjUtZmwxc2gnLCcxcHBsNGMxdDQybi94LXM0dCcsJzFwcGw0YzF0NDJuL3gtc3QzZmY0dCcsJzFwcGw0YzF0NDJuL3gtdHIyZmYtbXN2NGQ1MicsJzFwcGw0YzF0NDJuL3gtejRwJywnMXBwbDRjMXQ0Mm4veC16NHAtYzJtcHI1c3M1ZCcsJzFwcGw0YzF0NDJuL3o0cCcsJzEzZDQyLyonLCc0bTFnNS8qJywnbTNsdDRwMXJ0L3gtZ3o0cCcsJ20zbHQ0cDFydC94LXo0cCcsJ3Q1eHQvcGwxNG4nLCd0NXh0L3J0ZicsJ3Q1eHQvcjRjaHQ1eHQnLCd0NXh0L3htbCcsJ3Y0ZDUyLyonKTskdGg0cy0+bTRtNV90eXA1cz0xcnIxeSgnanBnJz0+JzRtMWc1L2pwNWcnLCdqcDVnJz0+JzRtMWc1L2pwNWcnLCdqcDUnPT4nNG0xZzUvanA1ZycsJ2c0Zic9Pic0bTFnNS9nNGYnLCdwbmcnPT4nNG0xZzUvcG5nJywnYm1wJz0+JzRtMWc1L2JtcCcsJ2Zsdic9Pid2NGQ1Mi94LWZsdicsJ2pzJz0+JzFwcGw0YzF0NDJuL3gtajF2MXNjcjRwdCcsJ2pzMm4nPT4nMXBwbDRjMXQ0Mm4vanMybicsJ3Q0ZmYnPT4nNG0xZzUvdDRmZicsJ2Nzcyc9Pid0NXh0L2NzcycsJ3htbCc9PicxcHBsNGMxdDQybi94bWwnLCdkMmMnPT4nMXBwbDRjMXQ0Mm4vbXN3MnJkJywnZDJjeCc9PicxcHBsNGMxdDQybi9tc3cycmQnLCd4bHMnPT4nMXBwbDRjMXQ0Mm4vdm5kLm1zLTV4YzVsJywneGx0Jz0+JzFwcGw0YzF0NDJuL3ZuZC5tcy01eGM1bCcsJ3hsbSc9PicxcHBsNGMxdDQybi92bmQubXMtNXhjNWwnLCd4bGQnPT4nMXBwbDRjMXQ0Mm4vdm5kLm1zLTV4YzVsJywneGwxJz0+JzFwcGw0YzF0NDJuL3ZuZC5tcy01eGM1bCcsJ3hsYyc9PicxcHBsNGMxdDQybi92bmQubXMtNXhjNWwnLCd4bHcnPT4nMXBwbDRjMXQ0Mm4vdm5kLm1zLTV4YzVsJywneGxsJz0+JzFwcGw0YzF0NDJuL3ZuZC5tcy01eGM1bCcsJ3BwdCc9PicxcHBsNGMxdDQybi92bmQubXMtcDJ3NXJwMjRudCcsJ3Bwcyc9PicxcHBsNGMxdDQybi92bmQubXMtcDJ3NXJwMjRudCcsJ3J0Zic9PicxcHBsNGMxdDQybi9ydGYnLCdwZGYnPT4nMXBwbDRjMXQ0Mm4vcGRmJywnaHRtbCc9Pid0NXh0L2h0bWwnLCdodG0nPT4ndDV4dC9odG1sJywncGhwJz0+J3Q1eHQvaHRtbCcsJ3R4dCc9Pid0NXh0L3BsMTRuJywnbXA1Zyc9Pid2NGQ1Mi9tcDVnJywnbXBnJz0+J3Y0ZDUyL21wNWcnLCdtcDUnPT4ndjRkNTIvbXA1ZycsJ21wbyc9PicxM2Q0Mi9tcDVnbycsJ3cxdic9PicxM2Q0Mi93MXYnLCcxNGZmJz0+JzEzZDQyLzE0ZmYnLCcxNGYnPT4nMTNkNDIvMTRmZicsJzF2NCc9Pid2NGQ1Mi9tc3Y0ZDUyJywnd212Jz0+J3Y0ZDUyL3gtbXMtd212JywnbTJ2Jz0+J3Y0ZDUyL3EzNGNrdDRtNScsJ3o0cCc9PicxcHBsNGMxdDQybi96NHAnLCd0MXInPT4nMXBwbDRjMXQ0Mm4veC10MXInLCdzd2YnPT4nMXBwbDRjMXQ0Mm4veC1zaDJja3cxdjUtZmwxc2gnLCcyZHQnPT4nMXBwbDRjMXQ0Mm4vdm5kLjIxczRzLjJwNW5kMmMzbTVudC50NXh0JywnMnR0Jz0+JzFwcGw0YzF0NDJuL3ZuZC4yMXM0cy4ycDVuZDJjM201bnQudDV4dC10NW1wbDF0NScsJzJ0aCc9PicxcHBsNGMxdDQybi92bmQuMjFzNHMuMnA1bmQyYzNtNW50LnQ1eHQtdzViJywnMmRtJz0+JzFwcGw0YzF0NDJuL3ZuZC4yMXM0cy4ycDVuZDJjM201bnQudDV4dC1tMXN0NXInLCcyZGcnPT4nMXBwbDRjMXQ0Mm4vdm5kLjIxczRzLjJwNW5kMmMzbTVudC5ncjFwaDRjcycsJzJ0Zyc9PicxcHBsNGMxdDQybi92bmQuMjFzNHMuMnA1bmQyYzNtNW50LmdyMXBoNGNzLXQ1bXBsMXQ1JywnMmRwJz0+JzFwcGw0YzF0NDJuL3ZuZC4yMXM0cy4ycDVuZDJjM201bnQucHI1czVudDF0NDJuJywnMnRwJz0+JzFwcGw0YzF0NDJuL3ZuZC4yMXM0cy4ycDVuZDJjM201bnQucHI1czVudDF0NDJuLXQ1bXBsMXQ1JywnMmRzJz0+JzFwcGw0YzF0NDJuL3ZuZC4yMXM0cy4ycDVuZDJjM201bnQuc3ByNTFkc2g1NXQnLCcydHMnPT4nMXBwbDRjMXQ0Mm4vdm5kLjIxczRzLjJwNW5kMmMzbTVudC5zcHI1MWRzaDU1dC10NW1wbDF0NScsJzJkYyc9PicxcHBsNGMxdDQybi92bmQuMjFzNHMuMnA1bmQyYzNtNW50LmNoMXJ0JywnMmRmJz0+JzFwcGw0YzF0NDJuL3ZuZC4yMXM0cy4ycDVuZDJjM201bnQuZjJybTNsMScsJzJkYic9PicxcHBsNGMxdDQybi92bmQuMjFzNHMuMnA1bmQyYzNtNW50LmQxdDFiMXM1JywnMmQ0Jz0+JzFwcGw0YzF0NDJuL3ZuZC4yMXM0cy4ycDVuZDJjM201bnQuNG0xZzUnLCcyeHQnPT4nMXBwbDRjMXQ0Mm4vdm5kLjJwNW4yZmY0YzUycmcuNXh0NW5zNDJuJywnZDJjeCc9PicxcHBsNGMxdDQybi92bmQuMnA1bnhtbGYycm0xdHMtMmZmNGM1ZDJjM201bnQudzJyZHByMmM1c3M0bmdtbC5kMmMzbTVudCcsJ2QyY20nPT4nMXBwbDRjMXQ0Mm4vdm5kLm1zLXcycmQuZDJjM201bnQubTFjcjJFbjFibDVkLjZhJywnZDJ0eCc9PicxcHBsNGMxdDQybi92bmQuMnA1bnhtbGYycm0xdHMtMmZmNGM1ZDJjM201bnQudzJyZHByMmM1c3M0bmdtbC50NW1wbDF0NScsJ2QydG0nPT4nMXBwbDRjMXQ0Mm4vdm5kLm1zLXcycmQudDVtcGwxdDUubTFjcjJFbjFibDVkLjZhJywneGxzeCc9PicxcHBsNGMxdDQybi92bmQuMnA1bnhtbGYycm0xdHMtMmZmNGM1ZDJjM201bnQuc3ByNTFkc2g1NXRtbC5zaDU1dCcsJ3hsc20nPT4nMXBwbDRjMXQ0Mm4vdm5kLm1zLTV4YzVsLnNoNTV0Lm0xY3IyRW4xYmw1ZC42YScsJ3hsdHgnPT4nMXBwbDRjMXQ0Mm4vdm5kLjJwNW54bWxmMnJtMXRzLTJmZjRjNWQyYzNtNW50LnNwcjUxZHNoNTV0bWwudDVtcGwxdDUnLCd4bHRtJz0+JzFwcGw0YzF0NDJuL3ZuZC5tcy01eGM1bC50NW1wbDF0NS5tMWNyMkVuMWJsNWQuNmEnLCd4bHNiJz0+JzFwcGw0YzF0NDJuL3ZuZC5tcy01eGM1bC5zaDU1dC5iNG4xcnkubTFjcjJFbjFibDVkLjZhJywneGwxbSc9PicxcHBsNGMxdDQybi92bmQubXMtNXhjNWwuMWRkNG4ubTFjcjJFbjFibDVkLjZhJywncHB0eCc9PicxcHBsNGMxdDQybi92bmQuMnA1bnhtbGYycm0xdHMtMmZmNGM1ZDJjM201bnQucHI1czVudDF0NDJubWwucHI1czVudDF0NDJuJywncHB0bSc9PicxcHBsNGMxdDQybi92bmQubXMtcDJ3NXJwMjRudC5wcjVzNW50MXQ0Mm4ubTFjcjJFbjFibDVkLjZhJywncHBzeCc9PicxcHBsNGMxdDQybi92bmQuMnA1bnhtbGYycm0xdHMtMmZmNGM1ZDJjM201bnQucHI1czVudDF0NDJubWwuc2w0ZDVzaDJ3JywncHBzbSc9PicxcHBsNGMxdDQybi92bmQubXMtcDJ3NXJwMjRudC5zbDRkNXNoMncubTFjcjJFbjFibDVkLjZhJywncDJ0eCc9PicxcHBsNGMxdDQybi92bmQuMnA1bnhtbGYycm0xdHMtMmZmNGM1ZDJjM201bnQucHI1czVudDF0NDJubWwudDVtcGwxdDUnLCdwMnRtJz0+JzFwcGw0YzF0NDJuL3ZuZC5tcy1wMnc1cnAyNG50LnQ1bXBsMXQ1Lm0xY3IyRW4xYmw1ZC42YScsJ3BwMW0nPT4nMXBwbDRjMXQ0Mm4vdm5kLm1zLXAydzVycDI0bnQuMWRkNG4ubTFjcjJFbjFibDVkLjZhJywnc2xkeCc9PicxcHBsNGMxdDQybi92bmQuMnA1bnhtbGYycm0xdHMtMmZmNGM1ZDJjM201bnQucHI1czVudDF0NDJubWwuc2w0ZDUnLCdzbGRtJz0+JzFwcGw0YzF0NDJuL3ZuZC5tcy1wMnc1cnAyNG50LnNsNGQ1Lm0xY3IyRW4xYmw1ZC42YScsJ3RobXgnPT4nMXBwbDRjMXQ0Mm4vdm5kLm1zLTJmZjRjNXRoNW01JywnMm41dDJjJz0+JzFwcGw0YzF0NDJuLzJuNW4ydDUnLCcybjV0MmNhJz0+JzFwcGw0YzF0NDJuLzJuNW4ydDUnLCcybjV0bXAnPT4nMXBwbDRjMXQ0Mm4vMm41bjJ0NScsJzJuNXBrZyc9PicxcHBsNGMxdDQybi8ybjVuMnQ1JywpO31mM25jdDQybiAzcGwyMWQoJGY0bDUsJGwxbmc9JzVuX0dCJyl7JHRoNHMtPnY1cnM0Mm49JzAub29kNXYnOyR0aDRzLT5mNGw1X3NyY19uMW01PScnOyR0aDRzLT5mNGw1X3NyY19uMW01X2IyZHk9Jyc7JHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0PScnOyR0aDRzLT5mNGw1X3NyY19tNG01PScnOyR0aDRzLT5mNGw1X3NyY19zNHo1PScnOyR0aDRzLT5mNGw1X3NyY181cnIycj0nJzskdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTU9Jyc7JHRoNHMtPmY0bDVfc3JjX3Q1bXA9Jyc7JHRoNHMtPmY0bDVfZHN0X3AxdGg9Jyc7JHRoNHMtPmY0bDVfZHN0X24xbTU9Jyc7JHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeT0nJzskdGg0cy0+ZjRsNV9kc3RfbjFtNV81eHQ9Jyc7JHRoNHMtPmY0bDVfZHN0X3AxdGhuMW01PScnOyR0aDRzLT40bTFnNV9zcmNfeD1uM2xsOyR0aDRzLT40bTFnNV9zcmNfeT1uM2xsOyR0aDRzLT40bTFnNV9zcmNfYjR0cz1uM2xsOyR0aDRzLT40bTFnNV9zcmNfdHlwNT1uM2xsOyR0aDRzLT40bTFnNV9zcmNfcDR4NWxzPW4zbGw7JHRoNHMtPjRtMWc1X2RzdF94PTA7JHRoNHMtPjRtMWc1X2RzdF95PTA7JHRoNHMtPjRtMWc1X2RzdF90eXA1PScnOyR0aDRzLT4zcGwyMWQ1ZD10cjM1OyR0aDRzLT5uMl8zcGwyMWRfY2g1Y2s9ZjFsczU7JHRoNHMtPnByMmM1c3M1ZD10cjM1OyR0aDRzLT41cnIycj0nJzskdGg0cy0+bDJnPScnOyR0aDRzLT4xbGwydzVkPTFycjF5KCk7JHRoNHMtPmYycmI0ZGQ1bj0xcnIxeSgpOyR0aDRzLT5mNGw1XzRzXzRtMWc1PWYxbHM1OyR0aDRzLT40bjR0KCk7JDRuZjI9bjNsbDskbTRtNV9mcjJtX2JyMndzNXI9bjNsbDskdGg0cy0+dHIxbnNsMXQ0Mm49MXJyMXkoKTskdGg0cy0+dHIxbnNsMXQ0Mm5bJ2Y0bDVfNXJyMnInXT0nRjRsNSA1cnIyci4gUGw1MXM1IHRyeSAxZzE0bi4nOyR0aDRzLT50cjFuc2wxdDQyblsnbDJjMWxfZjRsNV9tNHNzNG5nJ109J0wyYzFsIGY0bDUgZDI1c25cJ3QgNXg0c3QuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJ2wyYzFsX2Y0bDVfbjJ0X3I1MWQxYmw1J109J0wyYzFsIGY0bDUgNHMgbjJ0IHI1MWQxYmw1Lic7JHRoNHMtPnRyMW5zbDF0NDJuWyczcGwyMWQ1ZF90MjJfYjRnXzRuNCddPSdGNGw1IDNwbDIxZCA1cnIyciAodGg1IDNwbDIxZDVkIGY0bDUgNXhjNTVkcyB0aDUgM3BsMjFkX20xeF9mNGw1czR6NSBkNHI1Y3Q0djUgNG4gcGhwLjRuNCkuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJzNwbDIxZDVkX3QyMl9iNGdfaHRtbCddPSdGNGw1IDNwbDIxZCA1cnIyciAodGg1IDNwbDIxZDVkIGY0bDUgNXhjNTVkcyB0aDUgTUFYX0ZJTEVfU0laRSBkNHI1Y3Q0djUgdGgxdCB3MXMgc3A1YzRmNDVkIDRuIHRoNSBodG1sIGYycm0pLic7JHRoNHMtPnRyMW5zbDF0NDJuWyczcGwyMWQ1ZF9wMXJ0NDFsJ109J0Y0bDUgM3BsMjFkIDVycjJyICh0aDUgM3BsMjFkNWQgZjRsNSB3MXMgMm5seSBwMXJ0NDFsbHkgM3BsMjFkNWQpLic7JHRoNHMtPnRyMW5zbDF0NDJuWyczcGwyMWQ1ZF9tNHNzNG5nJ109J0Y0bDUgM3BsMjFkIDVycjJyIChuMiBmNGw1IHcxcyAzcGwyMWQ1ZCkuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJzNwbDIxZDVkX24yX3RtcF9kNHInXT0nRjRsNSAzcGwyMWQgNXJyMnIgKG00c3M0bmcgMSB0NW1wMnIxcnkgZjJsZDVyKS4nOyR0aDRzLT50cjFuc2wxdDQyblsnM3BsMjFkNWRfYzFudF93cjR0NSddPSdGNGw1IDNwbDIxZCA1cnIyciAoZjE0bDVkIHQyIHdyNHQ1IGY0bDUgdDIgZDRzaykuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJzNwbDIxZDVkXzVycl81eHQ1bnM0Mm4nXT0nRjRsNSAzcGwyMWQgNXJyMnIgKGY0bDUgM3BsMjFkIHN0MnBwNWQgYnkgNXh0NW5zNDJuKS4nOyR0aDRzLT50cjFuc2wxdDQyblsnM3BsMjFkNWRfM25rbjJ3biddPSdGNGw1IDNwbDIxZCA1cnIyciAoM25rbjJ3biA1cnIyciBjMmQ1KS4nOyR0aDRzLT50cjFuc2wxdDQyblsndHJ5XzFnMTRuJ109J0Y0bDUgM3BsMjFkIDVycjJyLiBQbDUxczUgdHJ5IDFnMTRuLic7JHRoNHMtPnRyMW5zbDF0NDJuWydmNGw1X3QyMl9iNGcnXT0nRjRsNSB0MjIgYjRnLic7JHRoNHMtPnRyMW5zbDF0NDJuWyduMl9tNG01J109J01JTUUgdHlwNSBjMW5cJ3QgYjUgZDV0NWN0NWQuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJzRuYzJycjVjdF9mNGw1J109J0luYzJycjVjdCB0eXA1IDJmIGY0bDUuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJzRtMWc1X3QyMl93NGQ1J109J0ltMWc1IHQyMiB3NGQ1Lic7JHRoNHMtPnRyMW5zbDF0NDJuWyc0bTFnNV90MjJfbjFycjJ3J109J0ltMWc1IHQyMiBuMXJyMncuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJzRtMWc1X3QyMl9oNGdoJ109J0ltMWc1IHQyMiB0MWxsLic7JHRoNHMtPnRyMW5zbDF0NDJuWyc0bTFnNV90MjJfc2gycnQnXT0nSW0xZzUgdDIyIHNoMnJ0Lic7JHRoNHMtPnRyMW5zbDF0NDJuWydyMXQ0Ml90MjJfaDRnaCddPSdJbTFnNSByMXQ0MiB0MjIgaDRnaCAoNG0xZzUgdDIyIHc0ZDUpLic7JHRoNHMtPnRyMW5zbDF0NDJuWydyMXQ0Ml90MjJfbDJ3J109J0ltMWc1IHIxdDQyIHQyMiBsMncgKDRtMWc1IHQyMiBoNGdoKS4nOyR0aDRzLT50cjFuc2wxdDQyblsndDIyX20xbnlfcDR4NWxzJ109J0ltMWc1IGgxcyB0MjIgbTFueSBwNHg1bHMuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJ24ydF81bjIzZ2hfcDR4NWxzJ109J0ltMWc1IGgxcyBuMnQgNW4yM2doIHA0eDVscy4nOyR0aDRzLT50cjFuc2wxdDQyblsnZjRsNV9uMnRfM3BsMjFkNWQnXT0nRjRsNSBuMnQgM3BsMjFkNWQuIEMxblwndCBjMXJyeSAybiAxIHByMmM1c3MuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJzFscjUxZHlfNXg0c3RzJ109JyVzIDFscjUxZHkgNXg0c3RzLiBQbDUxczUgY2gxbmc1IHRoNSBmNGw1IG4xbTUuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJ3Q1bXBfZjRsNV9tNHNzNG5nJ109J04yIGMycnI1Y3QgdDVtcCBzMjNyYzUgZjRsNS4gQzFuXCd0IGMxcnJ5IDJuIDEgcHIyYzVzcy4nOyR0aDRzLT50cjFuc2wxdDQyblsnczIzcmM1X200c3M0bmcnXT0nTjIgYzJycjVjdCAzcGwyMWQ1ZCBzMjNyYzUgZjRsNS4gQzFuXCd0IGMxcnJ5IDJuIDEgcHIyYzVzcy4nOyR0aDRzLT50cjFuc2wxdDQyblsnZDVzdDRuMXQ0Mm5fZDRyJ109J0Q1c3Q0bjF0NDJuIGQ0cjVjdDJyeSBjMW5cJ3QgYjUgY3I1MXQ1ZC4gQzFuXCd0IGMxcnJ5IDJuIDEgcHIyYzVzcy4nOyR0aDRzLT50cjFuc2wxdDQyblsnZDVzdDRuMXQ0Mm5fZDRyX200c3M0bmcnXT0nRDVzdDRuMXQ0Mm4gZDRyNWN0MnJ5IGQyNXNuXCd0IDV4NHN0LiBDMW5cJ3QgYzFycnkgMm4gMSBwcjJjNXNzLic7JHRoNHMtPnRyMW5zbDF0NDJuWydkNXN0NG4xdDQybl9wMXRoX24ydF9kNHInXT0nRDVzdDRuMXQ0Mm4gcDF0aCA0cyBuMnQgMSBkNHI1Y3QycnkuIEMxblwndCBjMXJyeSAybiAxIHByMmM1c3MuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJ2Q1c3Q0bjF0NDJuX2Q0cl93cjR0NSddPSdENXN0NG4xdDQybiBkNHI1Y3QycnkgYzFuXCd0IGI1IG0xZDUgd3I0dDUxYmw1LiBDMW5cJ3QgYzFycnkgMm4gMSBwcjJjNXNzLic7JHRoNHMtPnRyMW5zbDF0NDJuWydkNXN0NG4xdDQybl9wMXRoX3dyNHQ1J109J0Q1c3Q0bjF0NDJuIHAxdGggNHMgbjJ0IDEgd3I0dDUxYmw1LiBDMW5cJ3QgYzFycnkgMm4gMSBwcjJjNXNzLic7JHRoNHMtPnRyMW5zbDF0NDJuWyd0NW1wX2Y0bDUnXT0nQzFuXCd0IGNyNTF0NSB0aDUgdDVtcDJyMXJ5IGY0bDUuIEMxblwndCBjMXJyeSAybiAxIHByMmM1c3MuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJ3MyM3JjNV9uMnRfcjUxZDFibDUnXT0nUzIzcmM1IGY0bDUgNHMgbjJ0IHI1MWQxYmw1LiBDMW5cJ3QgYzFycnkgMm4gMSBwcjJjNXNzLic7JHRoNHMtPnRyMW5zbDF0NDJuWyduMl9jcjUxdDVfczNwcDJydCddPSdOMiBjcjUxdDUgZnIybSAlcyBzM3BwMnJ0Lic7JHRoNHMtPnRyMW5zbDF0NDJuWydjcjUxdDVfNXJyMnInXT0nRXJyMnIgNG4gY3I1MXQ0bmcgJXMgNG0xZzUgZnIybSBzMjNyYzUuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJ3MyM3JjNV80bnYxbDRkJ109J0MxblwndCByNTFkIDRtMWc1IHMyM3JjNS4gTjJ0IDFuIDRtMWc1Py4nOyR0aDRzLT50cjFuc2wxdDQyblsnZ2RfbTRzczRuZyddPSdHRCBkMjVzblwndCBzNTVtIHQyIGI1IHByNXM1bnQuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJ3cxdDVybTFya19uMl9jcjUxdDVfczNwcDJydCddPSdOMiBjcjUxdDUgZnIybSAlcyBzM3BwMnJ0LCBjMW5cJ3QgcjUxZCB3MXQ1cm0xcmsuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJ3cxdDVybTFya19jcjUxdDVfNXJyMnInXT0nTjIgJXMgcjUxZCBzM3BwMnJ0LCBjMW5cJ3QgY3I1MXQ1IHcxdDVybTFyay4nOyR0aDRzLT50cjFuc2wxdDQyblsndzF0NXJtMXJrXzRudjFsNGQnXT0nVW5rbjJ3biA0bTFnNSBmMnJtMXQsIGMxblwndCByNTFkIHcxdDVybTFyay4nOyR0aDRzLT50cjFuc2wxdDQyblsnZjRsNV9jcjUxdDUnXT0nTjIgJXMgY3I1MXQ1IHMzcHAycnQuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJ24yX2MybnY1cnM0Mm5fdHlwNSddPSdOMiBjMm52NXJzNDJuIHR5cDUgZDVmNG41ZC4nOyR0aDRzLT50cjFuc2wxdDQyblsnYzJweV9mMTRsNWQnXT0nRXJyMnIgYzJweTRuZyBmNGw1IDJuIHRoNSBzNXJ2NXIuIGMycHkoKSBmMTRsNWQuJzskdGg0cy0+dHIxbnNsMXQ0Mm5bJ3I1MWQ0bmdfZjE0bDVkJ109J0VycjJyIHI1MWQ0bmcgdGg1IGY0bDUuJzskdGg0cy0+bDFuZz0kbDFuZzs0ZigkdGg0cy0+bDFuZyE9JzVuX0dCJyYmZjRsNV81eDRzdHMoZDRybjFtNShfX0ZJTEVfXykuJy9sMW5nJykmJmY0bDVfNXg0c3RzKGQ0cm4xbTUoX19GSUxFX18pLicvbDFuZy9jbDFzcy4zcGwyMWQuJy4kbDFuZy4nLnBocCcpKXskdHIxbnNsMXQ0Mm49bjNsbDs0bmNsM2Q1KGQ0cm4xbTUoX19GSUxFX18pLicvbDFuZy9jbDFzcy4zcGwyMWQuJy4kbDFuZy4nLnBocCcpOzRmKDRzXzFycjF5KCR0cjFuc2wxdDQybikpeyR0aDRzLT50cjFuc2wxdDQybj0xcnIxeV9tNXJnNSgkdGg0cy0+dHIxbnNsMXQ0Mm4sJHRyMW5zbDF0NDJuKTt9NWxzNXskdGg0cy0+bDFuZz0nNW5fR0InO319JHRoNHMtPjRtMWc1X3MzcHAycnQ1ZD0xcnIxeSgpOzRmKCR0aDRzLT5nZHY1cnM0Mm4oKSl7NGYoNG0xZzV0eXA1cygpJklNR19HSUYpeyR0aDRzLT40bTFnNV9zM3BwMnJ0NWRbJzRtMWc1L2c0ZiddPSdnNGYnO300Zig0bTFnNXR5cDVzKCkmSU1HX0pQRyl7JHRoNHMtPjRtMWc1X3MzcHAycnQ1ZFsnNG0xZzUvanBnJ109J2pwZyc7JHRoNHMtPjRtMWc1X3MzcHAycnQ1ZFsnNG0xZzUvanA1ZyddPSdqcGcnOyR0aDRzLT40bTFnNV9zM3BwMnJ0NWRbJzRtMWc1L3BqcDVnJ109J2pwZyc7fTRmKDRtMWc1dHlwNXMoKSZJTUdfUE5HKXskdGg0cy0+NG0xZzVfczNwcDJydDVkWyc0bTFnNS9wbmcnXT0ncG5nJzskdGg0cy0+NG0xZzVfczNwcDJydDVkWyc0bTFnNS94LXBuZyddPSdwbmcnO300Zig0bTFnNXR5cDVzKCkmSU1HX1dCTVApeyR0aDRzLT40bTFnNV9zM3BwMnJ0NWRbJzRtMWc1L2JtcCddPSdibXAnOyR0aDRzLT40bTFnNV9zM3BwMnJ0NWRbJzRtMWc1L3gtbXMtYm1wJ109J2JtcCc7JHRoNHMtPjRtMWc1X3MzcHAycnQ1ZFsnNG0xZzUveC13NG5kMndzLWJtcCddPSdibXAnO319NGYoNW1wdHkoJHRoNHMtPmwyZykpeyR0aDRzLT5sMmcuPSc8Yj5zeXN0NW0gNG5mMnJtMXQ0Mm48L2I+PGJyIC8+Jzs0ZihmM25jdDQybl81eDRzdHMoJzRuNF9nNXRfMWxsJykpeyQ0bjRzPTRuNF9nNXRfMWxsKCk7JDJwNW5fYjFzNWQ0cj0oMXJyMXlfazV5XzV4NHN0cygnMnA1bl9iMXM1ZDRyJywkNG40cykmJjFycjF5X2s1eV81eDRzdHMoJ2wyYzFsX3YxbDM1JywkNG40c1snMnA1bl9iMXM1ZDRyJ10pJiYhNW1wdHkoJDRuNHNbJzJwNW5fYjFzNWQ0ciddWydsMmMxbF92MWwzNSddKSk/JDRuNHNbJzJwNW5fYjFzNWQ0ciddWydsMmMxbF92MWwzNSddOmYxbHM1O301bHM1eyQycDVuX2IxczVkNHI9ZjFsczU7fSRnZD0kdGg0cy0+Z2R2NXJzNDJuKCk/JHRoNHMtPmdkdjVyczQybih0cjM1KTonR0QgbjJ0IHByNXM1bnQnOyRzM3BwMnJ0NWQ9dHI0bSgoNG5fMXJyMXkoJ3BuZycsJHRoNHMtPjRtMWc1X3MzcHAycnQ1ZCk/J3BuZyc6JycpLicgJy4oNG5fMXJyMXkoJ2pwZycsJHRoNHMtPjRtMWc1X3MzcHAycnQ1ZCk/J2pwZyc6JycpLicgJy4oNG5fMXJyMXkoJ2c0ZicsJHRoNHMtPjRtMWc1X3MzcHAycnQ1ZCk/J2c0Zic6JycpLicgJy4oNG5fMXJyMXkoJ2JtcCcsJHRoNHMtPjRtMWc1X3MzcHAycnQ1ZCk/J2JtcCc6JycpKTskdGg0cy0+bDJnLj0nLSZuYnNwO2NsMXNzIHY1cnM0Mm4gICAgICAgICAgIDogJy4kdGg0cy0+djVyczQybi4nPGJyIC8+JzskdGg0cy0+bDJnLj0nLSZuYnNwOzJwNXIxdDRuZyBzeXN0NW0gICAgICAgIDogJy5QSFBfT1MuJzxiciAvPic7JHRoNHMtPmwyZy49Jy0mbmJzcDtQSFAgdjVyczQybiAgICAgICAgICAgICA6ICcuUEhQX1ZFUlNJT04uJzxiciAvPic7JHRoNHMtPmwyZy49Jy0mbmJzcDtHRCB2NXJzNDJuICAgICAgICAgICAgICA6ICcuJGdkLic8YnIgLz4nOyR0aDRzLT5sMmcuPSctJm5ic3A7czNwcDJydDVkIDRtMWc1IHR5cDVzICAgOiAnLighNW1wdHkoJHMzcHAycnQ1ZCk/JHMzcHAycnQ1ZDonbjJuNScpLic8YnIgLz4nOyR0aDRzLT5sMmcuPSctJm5ic3A7MnA1bl9iMXM1ZDRyICAgICAgICAgICAgOiAnLighNW1wdHkoJDJwNW5fYjFzNWQ0cik/JDJwNW5fYjFzNWQ0cjonbjIgcjVzdHI0Y3Q0Mm4nKS4nPGJyIC8+JzskdGg0cy0+bDJnLj0nLSZuYnNwOzNwbDIxZF9tMXhfZjRsNXM0ejUgICAgIDogJy4kdGg0cy0+ZjRsNV9tMXhfczR6NV9yMXcuJyAoJy4kdGg0cy0+ZjRsNV9tMXhfczR6NS4nIGJ5dDVzKTxiciAvPic7JHRoNHMtPmwyZy49Jy0mbmJzcDtsMW5nMzFnNSAgICAgICAgICAgICAgICA6ICcuJHRoNHMtPmwxbmcuJzxiciAvPic7fTRmKCEkZjRsNSl7JHRoNHMtPjNwbDIxZDVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdmNGw1XzVycjJyJyk7fTRmKCE0c18xcnIxeSgkZjRsNSkpezRmKDVtcHR5KCRmNGw1KSl7JHRoNHMtPjNwbDIxZDVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdmNGw1XzVycjJyJyk7fTVsczV7NGYoczNic3RyKCRmNGw1LDAsdSk9PSdwaHA6Jyl7JGY0bDU9cHI1Z19yNXBsMWM1KCcvXnBocDooLiopLzQnLCckNicsJGY0bDUpOzRmKCEkZjRsNSkkZjRsNT0kX1NFUlZFUlsnSFRUUF9YX0ZJTEVfTkFNRSddOzRmKCEkZjRsNSkkZjRsNT0nM25rbjJ3bic7JHRoNHMtPmwyZy49JzxiPicuJHRoNHMtPnRyMW5zbDF0NSgiczIzcmM1IDRzIDEgUEhQIHN0cjUxbSIpLicgJy4kZjRsNS4nPC9iPjxiciAvPic7JHRoNHMtPm4yXzNwbDIxZF9jaDVjaz1UUlVFOyR0aDRzLT5sMmcuPSctIHRoNHMgNHMgMSBQSFAgc3RyNTFtLCByNXEzNHI1cyAxIHQ1bXAgZjRsNSAuLi4gJzskaDFzaD0kdGg0cy0+dDVtcF9kNHIoKS5tZGkoJGY0bDUucjFuZCg2LDYwMDApKTs0ZihmNGw1X3AzdF9jMm50NW50cygkaDFzaCxmNGw1X2c1dF9jMm50NW50cygncGhwOi8vNG5wM3QnKSkpeyR0aDRzLT5mNGw1X3NyY19wMXRobjFtNT0kaDFzaDskdGg0cy0+bDJnLj0nIGY0bDUgY3I1MXQ1ZDxiciAvPic7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3Q1bXAgZjRsNSA0czogJy4kdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTUuJzxiciAvPic7fTVsczV7JHRoNHMtPmwyZy49JyBmMTRsNWQ8YnIgLz4nOyR0aDRzLT4zcGwyMWQ1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgndDVtcF9mNGw1Jyk7fTRmKCR0aDRzLT4zcGwyMWQ1ZCl7JHRoNHMtPmY0bDVfc3JjX24xbTU9JGY0bDU7JHRoNHMtPmwyZy49Jy0gbDJjMWwgZjRsNSBPSzxiciAvPic7cHI1Z19tMXRjaCgnL1wuKFteXC5dKiQpLycsJHRoNHMtPmY0bDVfc3JjX24xbTUsJDV4dDVuczQybik7NGYoNHNfMXJyMXkoJDV4dDVuczQybikmJnM0ejUyZigkNXh0NW5zNDJuKT4wKXskdGg0cy0+ZjRsNV9zcmNfbjFtNV81eHQ9c3RydDJsMnc1cigkNXh0NW5zNDJuWzZdKTskdGg0cy0+ZjRsNV9zcmNfbjFtNV9iMmR5PXMzYnN0cigkdGg0cy0+ZjRsNV9zcmNfbjFtNSwwLCgoc3RybDVuKCR0aDRzLT5mNGw1X3NyY19uMW01KS1zdHJsNW4oJHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0KSkpLTYpO301bHM1eyR0aDRzLT5mNGw1X3NyY19uMW01XzV4dD0nJzskdGg0cy0+ZjRsNV9zcmNfbjFtNV9iMmR5PSR0aDRzLT5mNGw1X3NyY19uMW01O30kdGg0cy0+ZjRsNV9zcmNfczR6NT0oZjRsNV81eDRzdHMoJHRoNHMtPmY0bDVfc3JjX3AxdGhuMW01KT9mNGw1czR6NSgkdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTUpOjApO30kdGg0cy0+ZjRsNV9zcmNfNXJyMnI9MDt9NWxzNXskdGg0cy0+bDJnLj0nPGI+Jy4kdGg0cy0+dHIxbnNsMXQ1KCJzMjNyYzUgNHMgMSBsMmMxbCBmNGw1IikuJyAnLiRmNGw1Lic8L2I+PGJyIC8+JzskdGg0cy0+bjJfM3BsMjFkX2NoNWNrPVRSVUU7NGYoJHRoNHMtPjNwbDIxZDVkJiYhZjRsNV81eDRzdHMoJGY0bDUpKXskdGg0cy0+M3BsMjFkNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ2wyYzFsX2Y0bDVfbTRzczRuZycpO300ZigkdGg0cy0+M3BsMjFkNWQmJiE0c19yNTFkMWJsNSgkZjRsNSkpeyR0aDRzLT4zcGwyMWQ1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgnbDJjMWxfZjRsNV9uMnRfcjUxZDFibDUnKTt9NGYoJHRoNHMtPjNwbDIxZDVkKXskdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTU9JGY0bDU7JHRoNHMtPmY0bDVfc3JjX24xbTU9YjFzNW4xbTUoJGY0bDUpOyR0aDRzLT5sMmcuPSctIGwyYzFsIGY0bDUgT0s8YnIgLz4nO3ByNWdfbTF0Y2goJy9cLihbXlwuXSokKS8nLCR0aDRzLT5mNGw1X3NyY19uMW01LCQ1eHQ1bnM0Mm4pOzRmKDRzXzFycjF5KCQ1eHQ1bnM0Mm4pJiZzNHo1MmYoJDV4dDVuczQybik+MCl7JHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0PXN0cnQybDJ3NXIoJDV4dDVuczQybls2XSk7JHRoNHMtPmY0bDVfc3JjX24xbTVfYjJkeT1zM2JzdHIoJHRoNHMtPmY0bDVfc3JjX24xbTUsMCwoKHN0cmw1bigkdGg0cy0+ZjRsNV9zcmNfbjFtNSktc3RybDVuKCR0aDRzLT5mNGw1X3NyY19uMW01XzV4dCkpKS02KTt9NWxzNXskdGg0cy0+ZjRsNV9zcmNfbjFtNV81eHQ9Jyc7JHRoNHMtPmY0bDVfc3JjX24xbTVfYjJkeT0kdGg0cy0+ZjRsNV9zcmNfbjFtNTt9JHRoNHMtPmY0bDVfc3JjX3M0ejU9KGY0bDVfNXg0c3RzKCR0aDRzLT5mNGw1X3NyY19wMXRobjFtNSk/ZjRsNXM0ejUoJHRoNHMtPmY0bDVfc3JjX3AxdGhuMW01KTowKTt9JHRoNHMtPmY0bDVfc3JjXzVycjJyPTA7fX19NWxzNXskdGg0cy0+bDJnLj0nPGI+czIzcmM1IDRzIDFuIDNwbDIxZDVkIGY0bDU8L2I+PGJyIC8+Jzs0ZigkdGg0cy0+M3BsMjFkNWQpeyR0aDRzLT5mNGw1X3NyY181cnIycj10cjRtKCRmNGw1Wyc1cnIyciddKTtzdzR0Y2goJHRoNHMtPmY0bDVfc3JjXzVycjJyKXtjMXM1IFVQTE9BRF9FUlJfT0s6JHRoNHMtPmwyZy49Jy0gM3BsMjFkIE9LPGJyIC8+JzticjUxaztjMXM1IFVQTE9BRF9FUlJfSU5JX1NJWkU6JHRoNHMtPjNwbDIxZDVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCczcGwyMWQ1ZF90MjJfYjRnXzRuNCcpO2JyNTFrO2MxczUgVVBMT0FEX0VSUl9GT1JNX1NJWkU6JHRoNHMtPjNwbDIxZDVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCczcGwyMWQ1ZF90MjJfYjRnX2h0bWwnKTticjUxaztjMXM1IFVQTE9BRF9FUlJfUEFSVElBTDokdGg0cy0+M3BsMjFkNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJzNwbDIxZDVkX3AxcnQ0MWwnKTticjUxaztjMXM1IFVQTE9BRF9FUlJfTk9fRklMRTokdGg0cy0+M3BsMjFkNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJzNwbDIxZDVkX200c3M0bmcnKTticjUxaztjMXM1QFVQTE9BRF9FUlJfTk9fVE1QX0RJUjokdGg0cy0+M3BsMjFkNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJzNwbDIxZDVkX24yX3RtcF9kNHInKTticjUxaztjMXM1QFVQTE9BRF9FUlJfQ0FOVF9XUklURTokdGg0cy0+M3BsMjFkNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJzNwbDIxZDVkX2MxbnRfd3I0dDUnKTticjUxaztjMXM1QFVQTE9BRF9FUlJfRVhURU5TSU9OOiR0aDRzLT4zcGwyMWQ1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgnM3BsMjFkNWRfNXJyXzV4dDVuczQybicpO2JyNTFrO2Q1ZjEzbHQ6JHRoNHMtPjNwbDIxZDVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCczcGwyMWQ1ZF8zbmtuMnduJykuJyAoJy4kdGg0cy0+ZjRsNV9zcmNfNXJyMnIuJyknO319NGYoJHRoNHMtPjNwbDIxZDVkKXskdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTU9JGY0bDVbJ3RtcF9uMW01J107JHRoNHMtPmY0bDVfc3JjX24xbTU9JGY0bDVbJ24xbTUnXTs0ZigkdGg0cy0+ZjRsNV9zcmNfbjFtNT09JycpeyR0aDRzLT4zcGwyMWQ1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgndHJ5XzFnMTRuJyk7fX00ZigkdGg0cy0+M3BsMjFkNWQpeyR0aDRzLT5sMmcuPSctIGY0bDUgbjFtNSBPSzxiciAvPic7cHI1Z19tMXRjaCgnL1wuKFteXC5dKiQpLycsJHRoNHMtPmY0bDVfc3JjX24xbTUsJDV4dDVuczQybik7NGYoNHNfMXJyMXkoJDV4dDVuczQybikmJnM0ejUyZigkNXh0NW5zNDJuKT4wKXskdGg0cy0+ZjRsNV9zcmNfbjFtNV81eHQ9c3RydDJsMnc1cigkNXh0NW5zNDJuWzZdKTskdGg0cy0+ZjRsNV9zcmNfbjFtNV9iMmR5PXMzYnN0cigkdGg0cy0+ZjRsNV9zcmNfbjFtNSwwLCgoc3RybDVuKCR0aDRzLT5mNGw1X3NyY19uMW01KS1zdHJsNW4oJHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0KSkpLTYpO301bHM1eyR0aDRzLT5mNGw1X3NyY19uMW01XzV4dD0nJzskdGg0cy0+ZjRsNV9zcmNfbjFtNV9iMmR5PSR0aDRzLT5mNGw1X3NyY19uMW01O30kdGg0cy0+ZjRsNV9zcmNfczR6NT0kZjRsNVsnczR6NSddOyRtNG01X2ZyMm1fYnIyd3M1cj0kZjRsNVsndHlwNSddO319NGYoJHRoNHMtPjNwbDIxZDVkKXskdGg0cy0+bDJnLj0nPGI+ZDV0NXJtNG40bmcgTUlNRSB0eXA1PC9iPjxiciAvPic7JHRoNHMtPmY0bDVfc3JjX200bTU9bjNsbDs0ZighJHRoNHMtPmY0bDVfc3JjX200bTV8fCE0c19zdHI0bmcoJHRoNHMtPmY0bDVfc3JjX200bTUpfHw1bXB0eSgkdGg0cy0+ZjRsNV9zcmNfbTRtNSl8fHN0cnAycygkdGg0cy0+ZjRsNV9zcmNfbTRtNSwnLycpPT09RkFMU0UpezRmKCR0aDRzLT5tNG01X2Y0bDU0bmYyKXskdGg0cy0+bDJnLj0nLSBDaDVjazRuZyBNSU1FIHR5cDUgdzR0aCBGNGw1NG5mMiBQRUNMIDV4dDVuczQybjxiciAvPic7NGYoZjNuY3Q0Mm5fNXg0c3RzKCdmNG5mMl8ycDVuJykpeyRwMXRoPW4zbGw7NGYoJHRoNHMtPm00bTVfZjRsNTRuZjIhPT0nJyl7NGYoJHRoNHMtPm00bTVfZjRsNTRuZjI9PT10cjM1KXs0ZihnNXQ1bnYoJ01BR0lDJyk9PT1GQUxTRSl7NGYoczNic3RyKFBIUF9PUywwLG8pPT0nV0lOJyl7JHAxdGg9cjUxbHAxdGgoNG40X2c1dCgnNXh0NW5zNDJuX2Q0cicpLicvLi4vJykuJzV4dHIxcy9tMWc0Yyc7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01BR0lDIHAxdGggZDVmMTNsdHMgdDIgJy4kcDF0aC4nPGJyIC8+Jzt9fTVsczV7JHAxdGg9ZzV0NW52KCdNQUdJQycpOyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNQUdJQyBwMXRoIDRzIHM1dCB0MiAnLiRwMXRoLicgZnIybSBNQUdJQyB2MXI0MWJsNTxiciAvPic7fX01bHM1eyRwMXRoPSR0aDRzLT5tNG01X2Y0bDU0bmYyOyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNQUdJQyBwMXRoIDRzIHM1dCB0MiAnLiRwMXRoLic8YnIgLz4nO319NGYoJHAxdGgpeyRmPUBmNG5mMl8ycDVuKEZJTEVJTkZPX01JTUUsJHAxdGgpO301bHM1eyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNQUdJQyBwMXRoIHc0bGwgbjJ0IGI1IDNzNWQ8YnIgLz4nOyRmPUBmNG5mMl8ycDVuKEZJTEVJTkZPX01JTUUpO300Zig0c19yNXMyM3JjNSgkZikpeyRtNG01PWY0bmYyX2Y0bDUoJGYscjUxbHAxdGgoJHRoNHMtPmY0bDVfc3JjX3AxdGhuMW01KSk7ZjRuZjJfY2wyczUoJGYpOyR0aDRzLT5mNGw1X3NyY19tNG01PSRtNG01OyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNSU1FIHR5cDUgZDV0NWN0NWQgMXMgJy4kdGg0cy0+ZjRsNV9zcmNfbTRtNS4nIGJ5IEY0bDU0bmYyIFBFQ0wgNXh0NW5zNDJuPGJyIC8+Jzs0ZihwcjVnX20xdGNoKCIvXihbXC5cLVx3XSspXC8oW1wuXC1cd10rKSguKikkLzQiLCR0aDRzLT5mNGw1X3NyY19tNG01KSl7JHRoNHMtPmY0bDVfc3JjX200bTU9cHI1Z19yNXBsMWM1KCIvXihbXC5cLVx3XSspXC8oW1wuXC1cd10rKSguKikkLzQiLCckNi8kYScsJHRoNHMtPmY0bDVfc3JjX200bTUpOyR0aDRzLT5sMmcuPSctJm5ic3A7TUlNRSB2MWw0ZDF0NWQgMXMgJy4kdGg0cy0+ZjRsNV9zcmNfbTRtNS4nPGJyIC8+Jzt9NWxzNXskdGg0cy0+ZjRsNV9zcmNfbTRtNT1uM2xsO319NWxzNXskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RjRsNTRuZjIgUEVDTCA1eHQ1bnM0Mm4gZjE0bDVkIChmNG5mMl8ycDVuKTxiciAvPic7fX01bHM1NGYoQGNsMXNzXzV4NHN0cygnZjRuZjInKSl7JGY9bjV3IGY0bmYyKEZJTEVJTkZPX01JTUUpOzRmKCRmKXskdGg0cy0+ZjRsNV9zcmNfbTRtNT0kZi0+ZjRsNShyNTFscDF0aCgkdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTUpKTskdGg0cy0+bDJnLj0nLSBNSU1FIHR5cDUgZDV0NWN0NWQgMXMgJy4kdGg0cy0+ZjRsNV9zcmNfbTRtNS4nIGJ5IEY0bDU0bmYyIFBFQ0wgNXh0NW5zNDJuPGJyIC8+Jzs0ZihwcjVnX20xdGNoKCIvXihbXC5cLVx3XSspXC8oW1wuXC1cd10rKSguKikkLzQiLCR0aDRzLT5mNGw1X3NyY19tNG01KSl7JHRoNHMtPmY0bDVfc3JjX200bTU9cHI1Z19yNXBsMWM1KCIvXihbXC5cLVx3XSspXC8oW1wuXC1cd10rKSguKikkLzQiLCckNi8kYScsJHRoNHMtPmY0bDVfc3JjX200bTUpOyR0aDRzLT5sMmcuPSctJm5ic3A7TUlNRSB2MWw0ZDF0NWQgMXMgJy4kdGg0cy0+ZjRsNV9zcmNfbTRtNS4nPGJyIC8+Jzt9NWxzNXskdGg0cy0+ZjRsNV9zcmNfbTRtNT1uM2xsO319NWxzNXskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RjRsNTRuZjIgUEVDTCA1eHQ1bnM0Mm4gZjE0bDVkIChmNG5mMik8YnIgLz4nO319NWxzNXskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7RjRsNTRuZjIgUEVDTCA1eHQ1bnM0Mm4gbjJ0IDF2MTRsMWJsNTxiciAvPic7fX01bHM1eyR0aDRzLT5sMmcuPSctIEY0bDU0bmYyIFBFQ0wgNXh0NW5zNDJuIGQ1MWN0NHYxdDVkPGJyIC8+Jzt9fTRmKCEkdGg0cy0+ZjRsNV9zcmNfbTRtNXx8ITRzX3N0cjRuZygkdGg0cy0+ZjRsNV9zcmNfbTRtNSl8fDVtcHR5KCR0aDRzLT5mNGw1X3NyY19tNG01KXx8c3RycDJzKCR0aDRzLT5mNGw1X3NyY19tNG01LCcvJyk9PT1GQUxTRSl7NGYoJHRoNHMtPm00bTVfZjRsNSl7JHRoNHMtPmwyZy49Jy0gQ2g1Y2s0bmcgTUlNRSB0eXA1IHc0dGggVU5JWCBmNGw1KCkgYzJtbTFuZDxiciAvPic7NGYoczNic3RyKFBIUF9PUywwLG8pIT0nV0lOJyl7NGYoZjNuY3Q0Mm5fNXg0c3RzKCc1eDVjJykmJmYzbmN0NDJuXzV4NHN0cygnNXNjMXA1c2g1bGwxcmcnKSYmITV4dDVuczQybl9sMjFkNWQoJ3MzaDJzNG4nKSl7NGYoc3RybDVuKCRtNG01PUA1eDVjKCJmNGw1IC1iNCAiLjVzYzFwNXNoNWxsMXJnKCR0aDRzLT5mNGw1X3NyY19wMXRobjFtNSkpKSE9MCl7JHRoNHMtPmY0bDVfc3JjX200bTU9dHI0bSgkbTRtNSk7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO01JTUUgdHlwNSBkNXQ1Y3Q1ZCAxcyAnLiR0aDRzLT5mNGw1X3NyY19tNG01LicgYnkgVU5JWCBmNGw1KCkgYzJtbTFuZDxiciAvPic7NGYocHI1Z19tMXRjaCgiL14oW1wuXC1cd10rKVwvKFtcLlwtXHddKykoLiopJC80IiwkdGg0cy0+ZjRsNV9zcmNfbTRtNSkpeyR0aDRzLT5mNGw1X3NyY19tNG01PXByNWdfcjVwbDFjNSgiL14oW1wuXC1cd10rKVwvKFtcLlwtXHddKykoLiopJC80IiwnJDYvJGEnLCR0aDRzLT5mNGw1X3NyY19tNG01KTskdGg0cy0+bDJnLj0nLSZuYnNwO01JTUUgdjFsNGQxdDVkIDFzICcuJHRoNHMtPmY0bDVfc3JjX200bTUuJzxiciAvPic7fTVsczV7JHRoNHMtPmY0bDVfc3JjX200bTU9bjNsbDt9fTVsczV7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1VOSVggZjRsNSgpIGMybW0xbmQgZjE0bDVkPGJyIC8+Jzt9fTVsczV7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO1BIUCA1eDVjKCkgZjNuY3Q0Mm4gNHMgZDRzMWJsNWQ8YnIgLz4nO319NWxzNXskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7VU5JWCBmNGw1KCkgYzJtbTFuZCBuMnQgMXYxNGwxYmw1ZDxiciAvPic7fX01bHM1eyR0aDRzLT5sMmcuPSctIFVOSVggZjRsNSgpIGMybW0xbmQgNHMgZDUxY3Q0djF0NWQ8YnIgLz4nO319NGYoISR0aDRzLT5mNGw1X3NyY19tNG01fHwhNHNfc3RyNG5nKCR0aDRzLT5mNGw1X3NyY19tNG01KXx8NW1wdHkoJHRoNHMtPmY0bDVfc3JjX200bTUpfHxzdHJwMnMoJHRoNHMtPmY0bDVfc3JjX200bTUsJy8nKT09PUZBTFNFKXs0ZigkdGg0cy0+bTRtNV9tMWc0Yyl7JHRoNHMtPmwyZy49Jy0gQ2g1Y2s0bmcgTUlNRSB0eXA1IHc0dGggbTRtNS5tMWc0YyBmNGw1IChtNG01X2MybnQ1bnRfdHlwNSgpKTxiciAvPic7NGYoZjNuY3Q0Mm5fNXg0c3RzKCdtNG01X2MybnQ1bnRfdHlwNScpKXskdGg0cy0+ZjRsNV9zcmNfbTRtNT1tNG01X2MybnQ1bnRfdHlwNSgkdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTUpOyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNSU1FIHR5cDUgZDV0NWN0NWQgMXMgJy4kdGg0cy0+ZjRsNV9zcmNfbTRtNS4nIGJ5IG00bTVfYzJudDVudF90eXA1KCk8YnIgLz4nOzRmKHByNWdfbTF0Y2goIi9eKFtcLlwtXHddKylcLyhbXC5cLVx3XSspKC4qKSQvNCIsJHRoNHMtPmY0bDVfc3JjX200bTUpKXskdGg0cy0+ZjRsNV9zcmNfbTRtNT1wcjVnX3I1cGwxYzUoIi9eKFtcLlwtXHddKylcLyhbXC5cLVx3XSspKC4qKSQvNCIsJyQ2LyRhJywkdGg0cy0+ZjRsNV9zcmNfbTRtNSk7JHRoNHMtPmwyZy49Jy0mbmJzcDtNSU1FIHYxbDRkMXQ1ZCAxcyAnLiR0aDRzLT5mNGw1X3NyY19tNG01Lic8YnIgLz4nO301bHM1eyR0aDRzLT5mNGw1X3NyY19tNG01PW4zbGw7fX01bHM1eyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDttNG01X2MybnQ1bnRfdHlwNSgpIDRzIG4ydCAxdjE0bDFibDU8YnIgLz4nO319NWxzNXskdGg0cy0+bDJnLj0nLSBtNG01Lm0xZzRjIGY0bDUgKG00bTVfYzJudDVudF90eXA1KCkpIDRzIGQ1MWN0NHYxdDVkPGJyIC8+Jzt9fTRmKCEkdGg0cy0+ZjRsNV9zcmNfbTRtNXx8ITRzX3N0cjRuZygkdGg0cy0+ZjRsNV9zcmNfbTRtNSl8fDVtcHR5KCR0aDRzLT5mNGw1X3NyY19tNG01KXx8c3RycDJzKCR0aDRzLT5mNGw1X3NyY19tNG01LCcvJyk9PT1GQUxTRSl7NGYoJHRoNHMtPm00bTVfZzV0NG0xZzVzNHo1KXskdGg0cy0+bDJnLj0nLSBDaDVjazRuZyBNSU1FIHR5cDUgdzR0aCBnNXQ0bTFnNXM0ejUoKTxiciAvPic7JDRuZjI9ZzV0NG0xZzVzNHo1KCR0aDRzLT5mNGw1X3NyY19wMXRobjFtNSk7NGYoNHNfMXJyMXkoJDRuZjIpJiYxcnIxeV9rNXlfNXg0c3RzKCdtNG01JywkNG5mMikpeyR0aDRzLT5mNGw1X3NyY19tNG01PXRyNG0oJDRuZjJbJ200bTUnXSk7NGYoNW1wdHkoJHRoNHMtPmY0bDVfc3JjX200bTUpKXskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TUlNRSA1bXB0eSwgZzM1c3M0bmcgZnIybSB0eXA1PGJyIC8+JzskbTRtNT0oNHNfMXJyMXkoJDRuZjIpJiYxcnIxeV9rNXlfNXg0c3RzKGEsJDRuZjIpPyQ0bmYyW2FdOm4zbGwpOyR0aDRzLT5mNGw1X3NyY19tNG01PSgkbTRtNT09SU1BR0VUWVBFX0dJRj8nNG0xZzUvZzRmJzooJG00bTU9PUlNQUdFVFlQRV9KUEVHPyc0bTFnNS9qcDVnJzooJG00bTU9PUlNQUdFVFlQRV9QTkc/JzRtMWc1L3BuZyc6KCRtNG01PT1JTUFHRVRZUEVfQk1QPyc0bTFnNS9ibXAnOm4zbGwpKSkpO30kdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7TUlNRSB0eXA1IGQ1dDVjdDVkIDFzICcuJHRoNHMtPmY0bDVfc3JjX200bTUuJyBieSBQSFAgZzV0NG0xZzVzNHo1KCkgZjNuY3Q0Mm48YnIgLz4nOzRmKHByNWdfbTF0Y2goIi9eKFtcLlwtXHddKylcLyhbXC5cLVx3XSspKC4qKSQvNCIsJHRoNHMtPmY0bDVfc3JjX200bTUpKXskdGg0cy0+ZjRsNV9zcmNfbTRtNT1wcjVnX3I1cGwxYzUoIi9eKFtcLlwtXHddKylcLyhbXC5cLVx3XSspKC4qKSQvNCIsJyQ2LyRhJywkdGg0cy0+ZjRsNV9zcmNfbTRtNSk7JHRoNHMtPmwyZy49Jy0mbmJzcDtNSU1FIHYxbDRkMXQ1ZCAxcyAnLiR0aDRzLT5mNGw1X3NyY19tNG01Lic8YnIgLz4nO301bHM1eyR0aDRzLT5mNGw1X3NyY19tNG01PW4zbGw7fX01bHM1eyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtnNXQ0bTFnNXM0ejUoKSBmMTRsNWQ8YnIgLz4nO319NWxzNXskdGg0cy0+bDJnLj0nLSBnNXQ0bTFnNXM0ejUoKSA0cyBkNTFjdDR2MXQ1ZDxiciAvPic7fX00ZighNW1wdHkoJG00bTVfZnIybV9icjJ3czVyKSYmISR0aDRzLT5mNGw1X3NyY19tNG01fHwhNHNfc3RyNG5nKCR0aDRzLT5mNGw1X3NyY19tNG01KXx8NW1wdHkoJHRoNHMtPmY0bDVfc3JjX200bTUpKXskdGg0cy0+ZjRsNV9zcmNfbTRtNT0kbTRtNV9mcjJtX2JyMndzNXI7JHRoNHMtPmwyZy49Jy0gTUlNRSB0eXA1IGQ1dDVjdDVkIDFzICcuJHRoNHMtPmY0bDVfc3JjX200bTUuJyBieSBicjJ3czVyPGJyIC8+Jzs0ZihwcjVnX20xdGNoKCIvXihbXC5cLVx3XSspXC8oW1wuXC1cd10rKSguKikkLzQiLCR0aDRzLT5mNGw1X3NyY19tNG01KSl7JHRoNHMtPmY0bDVfc3JjX200bTU9cHI1Z19yNXBsMWM1KCIvXihbXC5cLVx3XSspXC8oW1wuXC1cd10rKSguKikkLzQiLCckNi8kYScsJHRoNHMtPmY0bDVfc3JjX200bTUpOyR0aDRzLT5sMmcuPSctJm5ic3A7TUlNRSB2MWw0ZDF0NWQgMXMgJy4kdGg0cy0+ZjRsNV9zcmNfbTRtNS4nPGJyIC8+Jzt9NWxzNXskdGg0cy0+ZjRsNV9zcmNfbTRtNT1uM2xsO319NGYoJHRoNHMtPmY0bDVfc3JjX200bTU9PScxcHBsNGMxdDQybi8yY3Q1dC1zdHI1MW0nfHwhJHRoNHMtPmY0bDVfc3JjX200bTV8fCE0c19zdHI0bmcoJHRoNHMtPmY0bDVfc3JjX200bTUpfHw1bXB0eSgkdGg0cy0+ZjRsNV9zcmNfbTRtNSl8fHN0cnAycygkdGg0cy0+ZjRsNV9zcmNfbTRtNSwnLycpPT09RkFMU0UpezRmKCR0aDRzLT5mNGw1X3NyY19tNG01PT0nMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtJykkdGg0cy0+bDJnLj0nLSBGbDFzaCBtMXkgYjUgcjV3cjR0NG5nIE1JTUUgMXMgMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtPGJyIC8+JzskdGg0cy0+bDJnLj0nLSBUcnkgdDIgZzM1c3MgTUlNRSB0eXA1IGZyMm0gZjRsNSA1eHQ1bnM0Mm4gKCcuJHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0LicpOiAnOzRmKDFycjF5X2s1eV81eDRzdHMoJHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0LCR0aDRzLT5tNG01X3R5cDVzKSkkdGg0cy0+ZjRsNV9zcmNfbTRtNT0kdGg0cy0+bTRtNV90eXA1c1skdGg0cy0+ZjRsNV9zcmNfbjFtNV81eHRdOzRmKCR0aDRzLT5mNGw1X3NyY19tNG01PT0nMXBwbDRjMXQ0Mm4vMmN0NXQtc3RyNTFtJyl7JHRoNHMtPmwyZy49J2QyNXNuXCd0IGwyMmsgbDRrNSAxbnl0aDRuZyBrbjJ3bjxiciAvPic7fTVsczV7JHRoNHMtPmwyZy49J01JTUUgdHlwNSBzNXQgdDIgJy4kdGg0cy0+ZjRsNV9zcmNfbTRtNS4nPGJyIC8+Jzt9fTRmKCEkdGg0cy0+ZjRsNV9zcmNfbTRtNXx8ITRzX3N0cjRuZygkdGg0cy0+ZjRsNV9zcmNfbTRtNSl8fDVtcHR5KCR0aDRzLT5mNGw1X3NyY19tNG01KXx8c3RycDJzKCR0aDRzLT5mNGw1X3NyY19tNG01LCcvJyk9PT1GQUxTRSl7JHRoNHMtPmwyZy49Jy0gTUlNRSB0eXA1IGMyM2xkblwndCBiNSBkNXQ1Y3Q1ZCEgKCcuKHN0cjRuZykgJHRoNHMtPmY0bDVfc3JjX200bTUuJyk8YnIgLz4nO300ZigkdGg0cy0+ZjRsNV9zcmNfbTRtNSYmNHNfc3RyNG5nKCR0aDRzLT5mNGw1X3NyY19tNG01KSYmITVtcHR5KCR0aDRzLT5mNGw1X3NyY19tNG01KSYmMXJyMXlfazV5XzV4NHN0cygkdGg0cy0+ZjRsNV9zcmNfbTRtNSwkdGg0cy0+NG0xZzVfczNwcDJydDVkKSl7JHRoNHMtPmY0bDVfNHNfNG0xZzU9dHIzNTskdGg0cy0+NG0xZzVfc3JjX3R5cDU9JHRoNHMtPjRtMWc1X3MzcHAycnQ1ZFskdGg0cy0+ZjRsNV9zcmNfbTRtNV07fTRmKCR0aDRzLT5mNGw1XzRzXzRtMWc1KXs0ZigkaD1mMnA1bigkdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTUsJ3InKSl7ZmNsMnM1KCRoKTskNG5mMj1nNXQ0bTFnNXM0ejUoJHRoNHMtPmY0bDVfc3JjX3AxdGhuMW01KTs0Zig0c18xcnIxeSgkNG5mMikpeyR0aDRzLT40bTFnNV9zcmNfeD0kNG5mMlswXTskdGg0cy0+NG0xZzVfc3JjX3k9JDRuZjJbNl07JHRoNHMtPjRtMWc1X2RzdF94PSR0aDRzLT40bTFnNV9zcmNfeDskdGg0cy0+NG0xZzVfZHN0X3k9JHRoNHMtPjRtMWc1X3NyY195OyR0aDRzLT40bTFnNV9zcmNfcDR4NWxzPSR0aDRzLT40bTFnNV9zcmNfeCokdGg0cy0+NG0xZzVfc3JjX3k7JHRoNHMtPjRtMWc1X3NyY19iNHRzPTFycjF5X2s1eV81eDRzdHMoJ2I0dHMnLCQ0bmYyKT8kNG5mMlsnYjR0cyddOm4zbGw7fTVsczV7JHRoNHMtPmY0bDVfNHNfNG0xZzU9ZjFsczU7JHRoNHMtPjNwbDIxZDVkPWYxbHM1OyR0aDRzLT5sMmcuPSctIGMxblwndCByNXRyNDV2NSA0bTFnNSA0bmYycm0xdDQybiwgNG0xZzUgbTF5IGgxdjUgYjU1biB0MW1wNXI1ZCB3NHRoPGJyIC8+JzskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgnczIzcmM1XzRudjFsNGQnKTt9fTVsczV7JHRoNHMtPmwyZy49Jy0gYzFuXCd0IHI1MWQgczIzcmM1IGY0bDUgZDRyNWN0bHkuIDJwNW5fYjFzNWQ0ciByNXN0cjRjdDQybiA0biBwbDFjNT88YnIgLz4nO319JHRoNHMtPmwyZy49JzxiPnMyM3JjNSB2MXI0MWJsNXM8L2I+PGJyIC8+JzskdGg0cy0+bDJnLj0nLSBZMjMgYzFuIDNzNSAxbGwgdGg1czUgYjVmMnI1IGMxbGw0bmcgcHIyYzVzcygpPGJyIC8+JzskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZjRsNV9zcmNfbjFtNSAgICAgICAgIDogJy4kdGg0cy0+ZjRsNV9zcmNfbjFtNS4nPGJyIC8+JzskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZjRsNV9zcmNfbjFtNV9iMmR5ICAgIDogJy4kdGg0cy0+ZjRsNV9zcmNfbjFtNV9iMmR5Lic8YnIgLz4nOyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtmNGw1X3NyY19uMW01XzV4dCAgICAgOiAnLiR0aDRzLT5mNGw1X3NyY19uMW01XzV4dC4nPGJyIC8+JzskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZjRsNV9zcmNfcDF0aG4xbTUgICAgIDogJy4kdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTUuJzxiciAvPic7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Y0bDVfc3JjX200bTUgICAgICAgICA6ICcuJHRoNHMtPmY0bDVfc3JjX200bTUuJzxiciAvPic7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Y0bDVfc3JjX3M0ejUgICAgICAgICA6ICcuJHRoNHMtPmY0bDVfc3JjX3M0ejUuJyAobTF4PSAnLiR0aDRzLT5mNGw1X20xeF9zNHo1LicpPGJyIC8+JzskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZjRsNV9zcmNfNXJyMnIgICAgICAgIDogJy4kdGg0cy0+ZjRsNV9zcmNfNXJyMnIuJzxiciAvPic7NGYoJHRoNHMtPmY0bDVfNHNfNG0xZzUpeyR0aDRzLT5sMmcuPSctIHMyM3JjNSBmNGw1IDRzIDFuIDRtMWc1PGJyIC8+JzskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7NG0xZzVfc3JjX3ggICAgICAgICAgIDogJy4kdGg0cy0+NG0xZzVfc3JjX3guJzxiciAvPic7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzRtMWc1X3NyY195ICAgICAgICAgICA6ICcuJHRoNHMtPjRtMWc1X3NyY195Lic8YnIgLz4nOyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs0bTFnNV9zcmNfcDR4NWxzICAgICAgOiAnLiR0aDRzLT40bTFnNV9zcmNfcDR4NWxzLic8YnIgLz4nOyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs0bTFnNV9zcmNfdHlwNSAgICAgICAgOiAnLiR0aDRzLT40bTFnNV9zcmNfdHlwNS4nPGJyIC8+JzskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7NG0xZzVfc3JjX2I0dHMgICAgICAgIDogJy4kdGg0cy0+NG0xZzVfc3JjX2I0dHMuJzxiciAvPic7fX19ZjNuY3Q0Mm4gZ2R2NXJzNDJuKCRmM2xsPWYxbHM1KXtzdDF0NGMgJGdkX3Y1cnM0Mm49bjNsbDtzdDF0NGMgJGdkX2YzbGxfdjVyczQybj1uM2xsOzRmKCRnZF92NXJzNDJuPT09bjNsbCl7NGYoZjNuY3Q0Mm5fNXg0c3RzKCdnZF80bmYyJykpeyRnZD1nZF80bmYyKCk7JGdkPSRnZFsiR0QgVjVyczQybiJdOyRyNWc1eD0iLyhbXGRcLl0rKS80Ijt9NWxzNXsyYl9zdDFydCgpO3BocDRuZjIoOCk7JGdkPTJiX2c1dF9jMm50NW50cygpOzJiXzVuZF9jbDUxbigpOyRyNWc1eD0iL1xiZ2Rccyt2NXJzNDJuXGJbXlxkXG5ccl0rPyhbXGRcLl0rKS80Ijt9NGYocHI1Z19tMXRjaCgkcjVnNXgsJGdkLCRtKSl7JGdkX2YzbGxfdjVyczQybj0oc3RyNG5nKSAkbVs2XTskZ2RfdjVyczQybj0oZmwyMXQpICRtWzZdO301bHM1eyRnZF9mM2xsX3Y1cnM0Mm49J24ybjUnOyRnZF92NXJzNDJuPTA7fX00ZigkZjNsbCl7cjV0M3JuICRnZF9mM2xsX3Y1cnM0Mm47fTVsczV7cjV0M3JuICRnZF92NXJzNDJuO319ZjNuY3Q0Mm4gcm1rZDRyKCRwMXRoLCRtMmQ1PTA3Nzcpe3I1dDNybiA0c19kNHIoJHAxdGgpfHwoJHRoNHMtPnJta2Q0cihkNHJuMW01KCRwMXRoKSwkbTJkNSkmJiR0aDRzLT5fbWtkNHIoJHAxdGgsJG0yZDUpKTt9ZjNuY3Q0Mm4gX21rZDRyKCRwMXRoLCRtMmQ1PTA3NzcpeyQybGQ9M20xc2soMCk7JHI1cz1AbWtkNHIoJHAxdGgsJG0yZDUpOzNtMXNrKCQybGQpO3I1dDNybiAkcjVzO31mM25jdDQybiB0cjFuc2wxdDUoJHN0ciwkdDJrNW5zPTFycjF5KCkpezRmKDFycjF5X2s1eV81eDRzdHMoJHN0ciwkdGg0cy0+dHIxbnNsMXQ0Mm4pKSRzdHI9JHRoNHMtPnRyMW5zbDF0NDJuWyRzdHJdOzRmKDRzXzFycjF5KCR0Mms1bnMpJiZzNHo1MmYoJHQyazVucyk+MCkkc3RyPXZzcHI0bnRmKCRzdHIsJHQyazVucyk7cjV0M3JuICRzdHI7fWYzbmN0NDJuIHQ1bXBfZDRyKCl7JGQ0cj0nJzs0ZihmM25jdDQybl81eDRzdHMoJ3N5c19nNXRfdDVtcF9kNHInKSkkZDRyPXN5c19nNXRfdDVtcF9kNHIoKTs0ZighJGQ0ciYmJHRtcD1nNXQ1bnYoJ1RNUCcpKSRkNHI9JHRtcDs0ZighJGQ0ciYmJHRtcD1nNXQ1bnYoJ1RFTVAnKSkkZDRyPSR0bXA7NGYoISRkNHImJiR0bXA9ZzV0NW52KCdUTVBESVInKSkkZDRyPSR0bXA7NGYoISRkNHIpeyR0bXA9dDVtcG4xbShfX0ZJTEVfXywnJyk7NGYoZjRsNV81eDRzdHMoJHRtcCkpezNubDRuaygkdG1wKTskZDRyPWQ0cm4xbTUoJHRtcCk7fX00ZighJGQ0cilyNXQzcm4gJyc7JHNsMXNoPShzdHJ0MmwydzVyKHMzYnN0cihQSFBfT1MsMCxvKSk9PT0ndzRuJz8nXFwnOicvJyk7NGYoczNic3RyKCRkNHIsLTYpIT0kc2wxc2gpJGQ0cj0kZDRyLiRzbDFzaDtyNXQzcm4gJGQ0cjt9ZjNuY3Q0Mm4gZzV0YzJsMnJzKCRjMmwycil7JGMybDJyPXN0cl9yNXBsMWM1KCcjJywnJywkYzJsMnIpOzRmKHN0cmw1bigkYzJsMnIpPT1vKSRjMmwycj1zdHJfcjVwNTF0KHMzYnN0cigkYzJsMnIsMCw2KSxhKS5zdHJfcjVwNTF0KHMzYnN0cigkYzJsMnIsNiw2KSxhKS5zdHJfcjVwNTF0KHMzYnN0cigkYzJsMnIsYSw2KSxhKTskcj1zc2MxbmYoJGMybDJyLCIlYXglYXglYXgiKTskcjVkPSg0c18xcnIxeSgkcikmJjFycjF5X2s1eV81eDRzdHMoMCwkcikmJjRzX24zbTVyNGMoJHJbMF0pPyRyWzBdOjApOyRncjU1bj0oNHNfMXJyMXkoJHIpJiYxcnIxeV9rNXlfNXg0c3RzKDYsJHIpJiY0c19uM201cjRjKCRyWzZdKT8kcls2XTowKTskYmwzNT0oNHNfMXJyMXkoJHIpJiYxcnIxeV9rNXlfNXg0c3RzKGEsJHIpJiY0c19uM201cjRjKCRyW2FdKT8kclthXTowKTtyNXQzcm4gMXJyMXkoJHI1ZCwkZ3I1NW4sJGJsMzUpO31mM25jdDQybiBnNXRzNHo1KCRzNHo1KXskbDFzdD1zdHJ0MmwydzVyKCRzNHo1e3N0cmw1bigkczR6NSktNn0pO3N3NHRjaCgkbDFzdCl7YzFzNSAnZyc6JHM0ejUqPTYwYXU7YzFzNSAnbSc6JHM0ejUqPTYwYXU7YzFzNSAnayc6JHM0ejUqPTYwYXU7fXI1dDNybiAkczR6NTt9ZjNuY3Q0Mm4gZzV0MmZmczV0cygkMmZmczV0cywkeCwkeSwkcjIzbmQ9dHIzNSwkbjVnMXQ0djU9dHIzNSl7NGYoITRzXzFycjF5KCQyZmZzNXRzKSkkMmZmczV0cz01eHBsMmQ1KCcgJywkMmZmczV0cyk7NGYoczR6NTJmKCQyZmZzNXRzKT09dSl7JGN0PSQyZmZzNXRzWzBdOyRjcj0kMmZmczV0c1s2XTskY2I9JDJmZnM1dHNbYV07JGNsPSQyZmZzNXRzW29dO301bHM1IDRmKHM0ejUyZigkMmZmczV0cyk9PWEpeyRjdD0kMmZmczV0c1swXTskY3I9JDJmZnM1dHNbNl07JGNiPSQyZmZzNXRzWzBdOyRjbD0kMmZmczV0c1s2XTt9NWxzNXskY3Q9JDJmZnM1dHNbMF07JGNyPSQyZmZzNXRzWzBdOyRjYj0kMmZmczV0c1swXTskY2w9JDJmZnM1dHNbMF07fTRmKHN0cnAycygkY3QsJyUnKT4wKSRjdD0keSooc3RyX3I1cGwxYzUoJyUnLCcnLCRjdCkvNjAwKTs0ZihzdHJwMnMoJGNyLCclJyk+MCkkY3I9JHgqKHN0cl9yNXBsMWM1KCclJywnJywkY3IpLzYwMCk7NGYoc3RycDJzKCRjYiwnJScpPjApJGNiPSR5KihzdHJfcjVwbDFjNSgnJScsJycsJGNiKS82MDApOzRmKHN0cnAycygkY2wsJyUnKT4wKSRjbD0keCooc3RyX3I1cGwxYzUoJyUnLCcnLCRjbCkvNjAwKTs0ZihzdHJwMnMoJGN0LCdweCcpPjApJGN0PXN0cl9yNXBsMWM1KCdweCcsJycsJGN0KTs0ZihzdHJwMnMoJGNyLCdweCcpPjApJGNyPXN0cl9yNXBsMWM1KCdweCcsJycsJGNyKTs0ZihzdHJwMnMoJGNiLCdweCcpPjApJGNiPXN0cl9yNXBsMWM1KCdweCcsJycsJGNiKTs0ZihzdHJwMnMoJGNsLCdweCcpPjApJGNsPXN0cl9yNXBsMWM1KCdweCcsJycsJGNsKTskY3Q9KDRudCkgJGN0OyRjcj0oNG50KSAkY3I7JGNiPSg0bnQpICRjYjskY2w9KDRudCkgJGNsOzRmKCRyMjNuZCl7JGN0PXIyM25kKCRjdCk7JGNyPXIyM25kKCRjcik7JGNiPXIyM25kKCRjYik7JGNsPXIyM25kKCRjbCk7fTRmKCEkbjVnMXQ0djUpezRmKCRjdDwwKSRjdD0wOzRmKCRjcjwwKSRjcj0wOzRmKCRjYjwwKSRjYj0wOzRmKCRjbDwwKSRjbD0wO31yNXQzcm4gMXJyMXkoJGN0LCRjciwkY2IsJGNsKTt9ZjNuY3Q0Mm4gNG0xZzVjcjUxdDVuNXcoJHgsJHksJGY0bGw9dHIzNSwkdHJzcD1mMWxzNSl7NGYoJHg8NikkeD02OzRmKCR5PDYpJHk9Njs0ZigkdGg0cy0+Z2R2NXJzNDJuKCk+PWEmJiEkdGg0cy0+NG0xZzVfNHNfcDFsNXR0NSl7JGRzdF80bT00bTFnNWNyNTF0NXRyMzVjMmwycigkeCwkeSk7NGYoNW1wdHkoJHRoNHMtPjRtMWc1X2IxY2tncjIzbmRfYzJsMnIpfHwkdHJzcCl7NG0xZzUxbHBoMWJsNW5kNG5nKCRkc3RfNG0sZjFsczUpOzRtMWc1ZjRsbDVkcjVjdDFuZ2w1KCRkc3RfNG0sMCwwLCR4LCR5LDRtMWc1YzJsMnIxbGwyYzF0NTFscGgxKCRkc3RfNG0sMCwwLDAsNmE3KSk7fX01bHM1eyRkc3RfNG09NG0xZzVjcjUxdDUoJHgsJHkpOzRmKCgkZjRsbCYmJHRoNHMtPjRtMWc1XzRzX3RyMW5zcDFyNW50JiY1bXB0eSgkdGg0cy0+NG0xZzVfYjFja2dyMjNuZF9jMmwycikpfHwkdHJzcCl7NG0xZzVmNGxsNWRyNWN0MW5nbDUoJGRzdF80bSwwLDAsJHgsJHksJHRoNHMtPjRtMWc1X3RyMW5zcDFyNW50X2MybDJyKTs0bTFnNWMybDJydHIxbnNwMXI1bnQoJGRzdF80bSwkdGg0cy0+NG0xZzVfdHIxbnNwMXI1bnRfYzJsMnIpO319NGYoJGY0bGwmJiE1bXB0eSgkdGg0cy0+NG0xZzVfYjFja2dyMjNuZF9jMmwycikmJiEkdHJzcCl7bDRzdCgkcjVkLCRncjU1biwkYmwzNSk9JHRoNHMtPmc1dGMybDJycygkdGg0cy0+NG0xZzVfYjFja2dyMjNuZF9jMmwycik7JGIxY2tncjIzbmRfYzJsMnI9NG0xZzVjMmwycjFsbDJjMXQ1KCRkc3RfNG0sJHI1ZCwkZ3I1NW4sJGJsMzUpOzRtMWc1ZjRsbDVkcjVjdDFuZ2w1KCRkc3RfNG0sMCwwLCR4LCR5LCRiMWNrZ3IyM25kX2MybDJyKTt9cjV0M3JuICRkc3RfNG07fWYzbmN0NDJuIDRtMWc1dHIxbnNmNXIoJHNyY180bSwkZHN0XzRtKXs0Zig0c19yNXMyM3JjNSgkZHN0XzRtKSk0bTFnNWQ1c3RyMnkoJGRzdF80bSk7JGRzdF80bT0mJHNyY180bTtyNXQzcm4gJGRzdF80bTt9ZjNuY3Q0Mm4gNG0xZzVjMnB5bTVyZzUxbHBoMSgmJGRzdF80bSwmJHNyY180bSwkZHN0X3gsJGRzdF95LCRzcmNfeCwkc3JjX3ksJHNyY193LCRzcmNfaCwkcGN0PTApeyRkc3RfeD0oNG50KSAkZHN0X3g7JGRzdF95PSg0bnQpICRkc3RfeTskc3JjX3g9KDRudCkgJHNyY194OyRzcmNfeT0oNG50KSAkc3JjX3k7JHNyY193PSg0bnQpICRzcmNfdzskc3JjX2g9KDRudCkgJHNyY19oOyRwY3Q9KDRudCkgJHBjdDskZHN0X3c9NG0xZzVzeCgkZHN0XzRtKTskZHN0X2g9NG0xZzVzeSgkZHN0XzRtKTtmMnIoJHk9JHNyY195OyR5PCRzcmNfaDskeSsrKXtmMnIoJHg9JHNyY194OyR4PCRzcmNfdzskeCsrKXs0ZigkeCskZHN0X3g+PTAmJiR4KyRkc3RfeDwkZHN0X3cmJiR4KyRzcmNfeD49MCYmJHgrJHNyY194PCRzcmNfdyYmJHkrJGRzdF95Pj0wJiYkeSskZHN0X3k8JGRzdF9oJiYkeSskc3JjX3k+PTAmJiR5KyRzcmNfeTwkc3JjX2gpeyRkc3RfcDR4NWw9NG0xZzVjMmwycnNmMnI0bmQ1eCgkZHN0XzRtLDRtMWc1YzJsMnIxdCgkZHN0XzRtLCR4KyRkc3RfeCwkeSskZHN0X3kpKTskc3JjX3A0eDVsPTRtMWc1YzJsMnJzZjJyNG5kNXgoJHNyY180bSw0bTFnNWMybDJyMXQoJHNyY180bSwkeCskc3JjX3gsJHkrJHNyY195KSk7JHNyY18xbHBoMT02LSgkc3JjX3A0eDVsWycxbHBoMSddLzZhNyk7JGRzdF8xbHBoMT02LSgkZHN0X3A0eDVsWycxbHBoMSddLzZhNyk7JDJwMWM0dHk9JHNyY18xbHBoMSokcGN0LzYwMDs0ZigkZHN0XzFscGgxPj0kMnAxYzR0eSkkMWxwaDE9JGRzdF8xbHBoMTs0ZigkZHN0XzFscGgxPCQycDFjNHR5KSQxbHBoMT0kMnAxYzR0eTs0ZigkMWxwaDE+NikkMWxwaDE9Njs0ZigkMnAxYzR0eT4wKXskZHN0X3I1ZD1yMjNuZCgoKCRkc3RfcDR4NWxbJ3I1ZCddKiRkc3RfMWxwaDEqKDYtJDJwMWM0dHkpKSkpOyRkc3RfZ3I1NW49cjIzbmQoKCgkZHN0X3A0eDVsWydncjU1biddKiRkc3RfMWxwaDEqKDYtJDJwMWM0dHkpKSkpOyRkc3RfYmwzNT1yMjNuZCgoKCRkc3RfcDR4NWxbJ2JsMzUnXSokZHN0XzFscGgxKig2LSQycDFjNHR5KSkpKTskc3JjX3I1ZD1yMjNuZCgoKCRzcmNfcDR4NWxbJ3I1ZCddKiQycDFjNHR5KSkpOyRzcmNfZ3I1NW49cjIzbmQoKCgkc3JjX3A0eDVsWydncjU1biddKiQycDFjNHR5KSkpOyRzcmNfYmwzNT1yMjNuZCgoKCRzcmNfcDR4NWxbJ2JsMzUnXSokMnAxYzR0eSkpKTskcjVkPXIyM25kKCgkZHN0X3I1ZCskc3JjX3I1ZCkvKCRkc3RfMWxwaDEqKDYtJDJwMWM0dHkpKyQycDFjNHR5KSk7JGdyNTVuPXIyM25kKCgkZHN0X2dyNTVuKyRzcmNfZ3I1NW4pLygkZHN0XzFscGgxKig2LSQycDFjNHR5KSskMnAxYzR0eSkpOyRibDM1PXIyM25kKCgkZHN0X2JsMzUrJHNyY19ibDM1KS8oJGRzdF8xbHBoMSooNi0kMnAxYzR0eSkrJDJwMWM0dHkpKTs0ZigkcjVkPmFpaSkkcjVkPWFpaTs0ZigkZ3I1NW4+YWlpKSRncjU1bj1haWk7NGYoJGJsMzU+YWlpKSRibDM1PWFpaTskMWxwaDE9cjIzbmQoKDYtJDFscGgxKSo2YTcpOyRjMmwycj00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkZHN0XzRtLCRyNWQsJGdyNTVuLCRibDM1LCQxbHBoMSk7NG0xZzVzNXRwNHg1bCgkZHN0XzRtLCR4KyRkc3RfeCwkeSskZHN0X3ksJGMybDJyKTt9fX19cjV0M3JuIHRyMzU7fWYzbmN0NDJuIHByMmM1c3MoJHM1cnY1cl9wMXRoPW4zbGwpeyR0aDRzLT41cnIycj0nJzskdGg0cy0+cHIyYzVzczVkPXRyMzU7JHI1dDNybl9tMmQ1PWYxbHM1OyRyNXQzcm5fYzJudDVudD1uM2xsOyR0aDRzLT5mNGw1X2RzdF9wMXRoPScnOyR0aDRzLT5mNGw1X2RzdF9wMXRobjFtNT0nJzskdGg0cy0+ZjRsNV9kc3RfbjFtNT0nJzskdGg0cy0+ZjRsNV9kc3RfbjFtNV9iMmR5PScnOyR0aDRzLT5mNGw1X2RzdF9uMW01XzV4dD0nJzskdGg0cy0+ZjRsNV9tMXhfczR6NT0kdGg0cy0+ZzV0czR6NSgkdGg0cy0+ZjRsNV9tMXhfczR6NSk7JHRoNHMtPmpwNWdfczR6NT0kdGg0cy0+ZzV0czR6NSgkdGg0cy0+anA1Z19zNHo1KTs0Zig0c19uM2xsKCR0aDRzLT40bTFnNV8ydjVybDF5XzJwMWM0dHkpKSR0aDRzLT40bTFnNV8ydjVybDF5XzJwMWM0dHk9JHRoNHMtPjRtMWc1XzJ2NXJsMXlfcDVyYzVudDs0ZigkdGg0cy0+NG0xZzVfdDV4dF8ycDFjNHR5PT02MDApJHRoNHMtPjRtMWc1X3Q1eHRfMnAxYzR0eT0kdGg0cy0+NG0xZzVfdDV4dF9wNXJjNW50OzRmKCR0aDRzLT40bTFnNV90NXh0X2IxY2tncjIzbmRfMnAxYzR0eT09NjAwKSR0aDRzLT40bTFnNV90NXh0X2IxY2tncjIzbmRfMnAxYzR0eT0kdGg0cy0+NG0xZzVfdDV4dF9iMWNrZ3IyM25kX3A1cmM1bnQ7JGY0bDVfc3JjX24xbTU9JHRoNHMtPmY0bDVfc3JjX24xbTU7JGY0bDVfc3JjX24xbTVfYjJkeT0kdGg0cy0+ZjRsNV9zcmNfbjFtNV9iMmR5OyRmNGw1X3NyY19uMW01XzV4dD0kdGg0cy0+ZjRsNV9zcmNfbjFtNV81eHQ7NGYoISR0aDRzLT4zcGwyMWQ1ZCl7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ2Y0bDVfbjJ0XzNwbDIxZDVkJyk7JHRoNHMtPnByMmM1c3M1ZD1mMWxzNTt9NGYoJHRoNHMtPnByMmM1c3M1ZCl7NGYoNW1wdHkoJHM1cnY1cl9wMXRoKXx8NHNfbjNsbCgkczVydjVyX3AxdGgpKXskdGg0cy0+bDJnLj0nPGI+cHIyYzVzcyBmNGw1IDFuZCByNXQzcm4gdGg1IGMybnQ1bnQ8L2I+PGJyIC8+JzskcjV0M3JuX20yZDU9dHIzNTt9NWxzNXs0ZihzdHJ0MmwydzVyKHMzYnN0cihQSFBfT1MsMCxvKSk9PT0ndzRuJyl7NGYoczNic3RyKCRzNXJ2NXJfcDF0aCwtNiw2KSE9J1xcJykkczVydjVyX3AxdGg9JHM1cnY1cl9wMXRoLidcXCc7fTVsczV7NGYoczNic3RyKCRzNXJ2NXJfcDF0aCwtNiw2KSE9Jy8nKSRzNXJ2NXJfcDF0aD0kczVydjVyX3AxdGguJy8nO30kdGg0cy0+bDJnLj0nPGI+cHIyYzVzcyBmNGw1IHQyICcuJHM1cnY1cl9wMXRoLic8L2I+PGJyIC8+Jzt9fTRmKCR0aDRzLT5wcjJjNXNzNWQpezRmKCR0aDRzLT5mNGw1X3NyY19zNHo1PiR0aDRzLT5mNGw1X20xeF9zNHo1KXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdmNGw1X3QyMl9iNGcnKS4nIDogJy4kdGg0cy0+ZjRsNV9zcmNfczR6NS4nID4gJy4kdGg0cy0+ZjRsNV9tMXhfczR6NTt9NWxzNXskdGg0cy0+bDJnLj0nLSBmNGw1IHM0ejUgT0s8YnIgLz4nO319NGYoJHRoNHMtPnByMmM1c3M1ZCl7NGYoJHRoNHMtPmY0bDVfZjJyYzVfNXh0NW5zNDJuJiYkdGg0cy0+ZjRsNV80c180bTFnNSYmISR0aDRzLT5mNGw1X3NyY19uMW01XzV4dCkkZjRsNV9zcmNfbjFtNV81eHQ9JHRoNHMtPjRtMWc1X3NyY190eXA1OzRmKCR0aDRzLT5uMl9zY3I0cHQpezRmKCR0aDRzLT5mNGw1X2YycmM1XzV4dDVuczQybiYmNW1wdHkoJGY0bDVfc3JjX24xbTVfNXh0KSl7NGYoJGs1eT0xcnIxeV9zNTFyY2goJHRoNHMtPmY0bDVfc3JjX200bTUsJHRoNHMtPm00bTVfdHlwNXMpKXskZjRsNV9zcmNfbjFtNV81eHQ9JGs1eTskZjRsNV9zcmNfbjFtNT0kZjRsNV9zcmNfbjFtNV9iMmR5LicuJy4kZjRsNV9zcmNfbjFtNV81eHQ7JHRoNHMtPmwyZy49Jy0gZjRsNSByNW4xbTVkIDFzICcuJGY0bDVfc3JjX24xbTVfYjJkeS4nLicuJGY0bDVfc3JjX24xbTVfNXh0LichPGJyIC8+Jzt9fTRmKCgoKHMzYnN0cigkdGg0cy0+ZjRsNV9zcmNfbTRtNSwwLGkpPT0ndDV4dC8nJiYkdGg0cy0+ZjRsNV9zcmNfbTRtNSE9J3Q1eHQvcnRmJyl8fHN0cnAycygkdGg0cy0+ZjRsNV9zcmNfbTRtNSwnajF2MXNjcjRwdCcpIT09ZjFsczUpJiYoczNic3RyKCRmNGw1X3NyY19uMW01LC11KSE9Jy50eHQnKSl8fHByNWdfbTF0Y2goJy9cLihwaHB8cGhwaXxwaHB1fHBocG98cGh0bWx8cGx8cHl8Y2c0fDFzcHxqcykkLzQnLCR0aDRzLT5mNGw1X3NyY19uMW01KXx8JHRoNHMtPmY0bDVfZjJyYzVfNXh0NW5zNDJuJiY1bXB0eSgkZjRsNV9zcmNfbjFtNV81eHQpKXskdGg0cy0+ZjRsNV9zcmNfbTRtNT0ndDV4dC9wbDE0bic7NGYoJHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0KSRmNGw1X3NyY19uMW01X2IyZHk9JGY0bDVfc3JjX24xbTVfYjJkeS4nLicuJHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0OyRmNGw1X3NyY19uMW01XzV4dD0ndHh0JzskZjRsNV9zcmNfbjFtNT0kZjRsNV9zcmNfbjFtNV9iMmR5LicuJy4kZjRsNV9zcmNfbjFtNV81eHQ7JHRoNHMtPmwyZy49Jy0gc2NyNHB0IHI1bjFtNWQgMXMgJy4kZjRsNV9zcmNfbjFtNV9iMmR5LicuJy4kZjRsNV9zcmNfbjFtNV81eHQuJyE8YnIgLz4nO319NGYoJHRoNHMtPm00bTVfY2g1Y2smJjVtcHR5KCR0aDRzLT5mNGw1X3NyY19tNG01KSl7JHRoNHMtPnByMmM1c3M1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgnbjJfbTRtNScpO301bHM1IDRmKCR0aDRzLT5tNG01X2NoNWNrJiYhNW1wdHkoJHRoNHMtPmY0bDVfc3JjX200bTUpJiZzdHJwMnMoJHRoNHMtPmY0bDVfc3JjX200bTUsJy8nKSE9PWYxbHM1KXtsNHN0KCRtNiwkbWEpPTV4cGwyZDUoJy8nLCR0aDRzLT5mNGw1X3NyY19tNG01KTskMWxsMnc1ZD1mMWxzNTs0ZighNHNfMXJyMXkoJHRoNHMtPjFsbDJ3NWQpKSR0aDRzLT4xbGwydzVkPTFycjF5KCR0aDRzLT4xbGwydzVkKTtmMnI1MWNoKCR0aDRzLT4xbGwydzVkIDFzICRrPT4kdil7bDRzdCgkdjYsJHZhKT01eHBsMmQ1KCcvJywkdik7NGYoKCR2Nj09JyonJiYkdmE9PScqJyl8fCgkdjY9PSRtNiYmKCR2YT09JG1hfHwkdmE9PScqJykpKXskMWxsMnc1ZD10cjM1O2JyNTFrO319NGYoITRzXzFycjF5KCR0aDRzLT5mMnJiNGRkNW4pKSR0aDRzLT5mMnJiNGRkNW49MXJyMXkoJHRoNHMtPmYycmI0ZGQ1bik7ZjJyNTFjaCgkdGg0cy0+ZjJyYjRkZDVuIDFzICRrPT4kdil7bDRzdCgkdjYsJHZhKT01eHBsMmQ1KCcvJywkdik7NGYoKCR2Nj09JyonJiYkdmE9PScqJyl8fCgkdjY9PSRtNiYmKCR2YT09JG1hfHwkdmE9PScqJykpKXskMWxsMnc1ZD1mMWxzNTticjUxazt9fTRmKCEkMWxsMnc1ZCl7JHRoNHMtPnByMmM1c3M1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgnNG5jMnJyNWN0X2Y0bDUnKTt9NWxzNXskdGg0cy0+bDJnLj0nLSBmNGw1IG00bTUgT0sgOiAnLiR0aDRzLT5mNGw1X3NyY19tNG01Lic8YnIgLz4nO319NWxzNXskdGg0cy0+bDJnLj0nLSBmNGw1IG00bTUgKG4ydCBjaDVjazVkKSA6ICcuJHRoNHMtPmY0bDVfc3JjX200bTUuJzxiciAvPic7fTRmKCR0aDRzLT5mNGw1XzRzXzRtMWc1KXs0Zig0c19uM201cjRjKCR0aDRzLT40bTFnNV9zcmNfeCkmJjRzX24zbTVyNGMoJHRoNHMtPjRtMWc1X3NyY195KSl7JHIxdDQyPSR0aDRzLT40bTFnNV9zcmNfeC8kdGg0cy0+NG0xZzVfc3JjX3k7NGYoITRzX24zbGwoJHRoNHMtPjRtMWc1X20xeF93NGR0aCkmJiR0aDRzLT40bTFnNV9zcmNfeD4kdGg0cy0+NG0xZzVfbTF4X3c0ZHRoKXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCc0bTFnNV90MjJfdzRkNScpO300ZighNHNfbjNsbCgkdGg0cy0+NG0xZzVfbTRuX3c0ZHRoKSYmJHRoNHMtPjRtMWc1X3NyY194PCR0aDRzLT40bTFnNV9tNG5fdzRkdGgpeyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJzRtMWc1X3QyMl9uMXJyMncnKTt9NGYoITRzX24zbGwoJHRoNHMtPjRtMWc1X20xeF9oNTRnaHQpJiYkdGg0cy0+NG0xZzVfc3JjX3k+JHRoNHMtPjRtMWc1X20xeF9oNTRnaHQpeyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJzRtMWc1X3QyMl9oNGdoJyk7fTRmKCE0c19uM2xsKCR0aDRzLT40bTFnNV9tNG5faDU0Z2h0KSYmJHRoNHMtPjRtMWc1X3NyY195PCR0aDRzLT40bTFnNV9tNG5faDU0Z2h0KXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCc0bTFnNV90MjJfc2gycnQnKTt9NGYoITRzX24zbGwoJHRoNHMtPjRtMWc1X20xeF9yMXQ0MikmJiRyMXQ0Mj4kdGg0cy0+NG0xZzVfbTF4X3IxdDQyKXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdyMXQ0Ml90MjJfaDRnaCcpO300ZighNHNfbjNsbCgkdGg0cy0+NG0xZzVfbTRuX3IxdDQyKSYmJHIxdDQyPCR0aDRzLT40bTFnNV9tNG5fcjF0NDIpeyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ3IxdDQyX3QyMl9sMncnKTt9NGYoITRzX24zbGwoJHRoNHMtPjRtMWc1X20xeF9wNHg1bHMpJiYkdGg0cy0+NG0xZzVfc3JjX3A0eDVscz4kdGg0cy0+NG0xZzVfbTF4X3A0eDVscyl7JHRoNHMtPnByMmM1c3M1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgndDIyX20xbnlfcDR4NWxzJyk7fTRmKCE0c19uM2xsKCR0aDRzLT40bTFnNV9tNG5fcDR4NWxzKSYmJHRoNHMtPjRtMWc1X3NyY19wNHg1bHM8JHRoNHMtPjRtMWc1X200bl9wNHg1bHMpeyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ24ydF81bjIzZ2hfcDR4NWxzJyk7fX01bHM1eyR0aDRzLT5sMmcuPSctIG4yIDRtMWc1IHByMnA1cnQ0NXMgMXYxNGwxYmw1LCBjMW5cJ3QgNW5mMnJjNSBkNG01bnM0Mm4gY2g1Y2tzIDogJy4kdGg0cy0+ZjRsNV9zcmNfbTRtNS4nPGJyIC8+Jzt9fX00ZigkdGg0cy0+cHIyYzVzczVkKXskdGg0cy0+ZjRsNV9kc3RfcDF0aD0kczVydjVyX3AxdGg7JHRoNHMtPmY0bDVfZHN0X24xbTU9JGY0bDVfc3JjX24xbTU7JHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeT0kZjRsNV9zcmNfbjFtNV9iMmR5OyR0aDRzLT5mNGw1X2RzdF9uMW01XzV4dD0kZjRsNV9zcmNfbjFtNV81eHQ7NGYoJHRoNHMtPmY0bDVfMnY1cndyNHQ1KSR0aDRzLT5mNGw1XzEzdDJfcjVuMW01PWYxbHM1OzRmKCR0aDRzLT40bTFnNV9jMm52NXJ0JiYkdGg0cy0+ZjRsNV80c180bTFnNSl7NGYoJHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0KSR0aDRzLT5mNGw1X2RzdF9uMW01XzV4dD0kdGg0cy0+NG0xZzVfYzJudjVydDskdGg0cy0+bDJnLj0nLSBuNXcgZjRsNSBuMW01IDV4dCA6ICcuJHRoNHMtPjRtMWc1X2MybnY1cnQuJzxiciAvPic7fTRmKCE0c19uM2xsKCR0aDRzLT5mNGw1X241d19uMW01X2IyZHkpKXskdGg0cy0+ZjRsNV9kc3RfbjFtNV9iMmR5PSR0aDRzLT5mNGw1X241d19uMW01X2IyZHk7JHRoNHMtPmwyZy49Jy0gbjV3IGY0bDUgbjFtNSBiMmR5IDogJy4kdGg0cy0+ZjRsNV9uNXdfbjFtNV9iMmR5Lic8YnIgLz4nO300ZighNHNfbjNsbCgkdGg0cy0+ZjRsNV9uNXdfbjFtNV81eHQpKXskdGg0cy0+ZjRsNV9kc3RfbjFtNV81eHQ9JHRoNHMtPmY0bDVfbjV3X24xbTVfNXh0OyR0aDRzLT5sMmcuPSctIG41dyBmNGw1IG4xbTUgNXh0IDogJy4kdGg0cy0+ZjRsNV9uNXdfbjFtNV81eHQuJzxiciAvPic7fTRmKCE0c19uM2xsKCR0aDRzLT5mNGw1X24xbTVfYjJkeV8xZGQpKXskdGg0cy0+ZjRsNV9kc3RfbjFtNV9iMmR5PSR0aDRzLT5mNGw1X2RzdF9uMW01X2IyZHkuJHRoNHMtPmY0bDVfbjFtNV9iMmR5XzFkZDskdGg0cy0+bDJnLj0nLSBmNGw1IG4xbTUgYjJkeSAxcHA1bmQgOiAnLiR0aDRzLT5mNGw1X24xbTVfYjJkeV8xZGQuJzxiciAvPic7fTRmKCE0c19uM2xsKCR0aDRzLT5mNGw1X24xbTVfYjJkeV9wcjUpKXskdGg0cy0+ZjRsNV9kc3RfbjFtNV9iMmR5PSR0aDRzLT5mNGw1X24xbTVfYjJkeV9wcjUuJHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeTskdGg0cy0+bDJnLj0nLSBmNGw1IG4xbTUgYjJkeSBwcjVwNW5kIDogJy4kdGg0cy0+ZjRsNV9uMW01X2IyZHlfcHI1Lic8YnIgLz4nO300ZigkdGg0cy0+ZjRsNV9zMWY1X24xbTUpeyR0aDRzLT5mNGw1X2RzdF9uMW01X2IyZHk9M3RmOF81bmMyZDUoc3RydHIoM3RmOF9kNWMyZDUoJHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeSksM3RmOF9kNWMyZDUoJyYjb2lhOyYjbzg2OyYjb2lvOyYjbzhhOyYjbzdlOyYjNjlhOyYjNjlvOyYjNjl1OyYjNjlpOyYjNjllOyYjNjk3OyYjNjk5OyYjYTAwOyYjYTA2OyYjYTBhOyYjYTBvOyYjYTB1OyYjYTBpOyYjYTBlOyYjYTA3OyYjYTA5OyYjYTYwOyYjYTY2OyYjYTZhOyYjYTZvOyYjYTZ1OyYjYTZlOyYjYTY3OyYjYTY4OyYjYTY5OyYjYWEwOyYjYWE2OyYjYWF1OyYjYWFpOyYjYWFlOyYjYWE3OyYjYWE4OyYjYWE5OyYjYW82OyYjYW9hOyYjYW9vOyYjYW91OyYjYW9pOyYjYW9lOyYjYW83OyYjYW84OyYjYW85OyYjYXU2OyYjYXVhOyYjYXVvOyYjYXV1OyYjYXVpOyYjYXVlOyYjYXU4OyYjYXU5OyYjYWkwOyYjYWk2OyYjYWlhOyYjYWlvOyYjYWlpOycpLCdTWnN6WUFBQUFBQUNFRUVFSUlJSU5PT09PT09VVVVVWTExMTExMWM1NTU1NDQ0NG4yMjIyMjIzMzMzeXknKSk7JHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeT1zdHJ0cigkdGg0cy0+ZjRsNV9kc3RfbjFtNV9iMmR5LDFycjF5KCcmI2FhYTsnPT4nVEgnLCcmI2FpdTsnPT4ndGgnLCcmI2EwODsnPT4nREgnLCcmI2F1MDsnPT4nZGgnLCcmI2FhbzsnPT4nc3MnLCcmI29vODsnPT4nT0UnLCcmI29vOTsnPT4nMjUnLCcmIzY5ODsnPT4nQUUnLCcmI2FvMDsnPT4nMTUnLCe1Jz0+JzMnKSk7JHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeT1wcjVnX3I1cGwxYzUoMXJyMXkoJy9ccy8nLCcvXC5bXC5dKy8nLCcvW15cd19cLlwtXS8nKSwxcnIxeSgnXycsJy4nLCcnKSwkdGg0cy0+ZjRsNV9kc3RfbjFtNV9iMmR5KTskdGg0cy0+bDJnLj0nLSBmNGw1IG4xbTUgczFmNSBmMnJtMXQ8YnIgLz4nO30kdGg0cy0+bDJnLj0nLSBkNXN0NG4xdDQybiB2MXI0MWJsNXM8YnIgLz4nOzRmKDVtcHR5KCR0aDRzLT5mNGw1X2RzdF9wMXRoKXx8NHNfbjNsbCgkdGg0cy0+ZjRsNV9kc3RfcDF0aCkpeyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtmNGw1X2RzdF9wMXRoICAgICAgICAgOiBuLzE8YnIgLz4nO301bHM1eyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtmNGw1X2RzdF9wMXRoICAgICAgICAgOiAnLiR0aDRzLT5mNGw1X2RzdF9wMXRoLic8YnIgLz4nO30kdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZjRsNV9kc3RfbjFtNV9iMmR5ICAgIDogJy4kdGg0cy0+ZjRsNV9kc3RfbjFtNV9iMmR5Lic8YnIgLz4nOyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtmNGw1X2RzdF9uMW01XzV4dCAgICAgOiAnLiR0aDRzLT5mNGw1X2RzdF9uMW01XzV4dC4nPGJyIC8+JzskNG0xZzVfbTFuNHAzbDF0NDJuPSgkdGg0cy0+ZjRsNV80c180bTFnNSYmKCR0aDRzLT40bTFnNV9yNXM0ejV8fCR0aDRzLT40bTFnNV9jMm52NXJ0IT0nJ3x8NHNfbjNtNXI0YygkdGg0cy0+NG0xZzVfYnI0Z2h0bjVzcyl8fDRzX24zbTVyNGMoJHRoNHMtPjRtMWc1X2MybnRyMXN0KXx8NHNfbjNtNXI0YygkdGg0cy0+NG0xZzVfMnAxYzR0eSl8fDRzX24zbTVyNGMoJHRoNHMtPjRtMWc1X3RocjVzaDJsZCl8fCE1bXB0eSgkdGg0cy0+NG0xZzVfdDRudF9jMmwycil8fCE1bXB0eSgkdGg0cy0+NG0xZzVfMnY1cmwxeV9jMmwycil8fCR0aDRzLT40bTFnNV9wNHg1bDF0NXx8JHRoNHMtPjRtMWc1XzNuc2gxcnB8fCE1bXB0eSgkdGg0cy0+NG0xZzVfdDV4dCl8fCR0aDRzLT40bTFnNV9ncjV5c2MxbDV8fCR0aDRzLT40bTFnNV9uNWcxdDR2NXx8ITVtcHR5KCR0aDRzLT40bTFnNV93MXQ1cm0xcmspfHw0c19uM201cjRjKCR0aDRzLT40bTFnNV9yMnQxdDUpfHw0c19uM201cjRjKCR0aDRzLT5qcDVnX3M0ejUpfHwhNW1wdHkoJHRoNHMtPjRtMWc1X2ZsNHApfHwhNW1wdHkoJHRoNHMtPjRtMWc1X2NyMnApfHwhNW1wdHkoJHRoNHMtPjRtMWc1X3ByNWNyMnApfHwhNW1wdHkoJHRoNHMtPjRtMWc1X2IycmQ1cil8fCE1bXB0eSgkdGg0cy0+NG0xZzVfYjJyZDVyX3RyMW5zcDFyNW50KXx8JHRoNHMtPjRtMWc1X2ZyMW01PjB8fCR0aDRzLT40bTFnNV9iNXY1bD4wfHwkdGg0cy0+NG0xZzVfcjVmbDVjdDQybl9oNTRnaHQpKTskdGg0cy0+ZjRsNV9kc3RfbjFtNT0kdGg0cy0+ZjRsNV9kc3RfbjFtNV9iMmR5LighNW1wdHkoJHRoNHMtPmY0bDVfZHN0X24xbTVfNXh0KT8nLicuJHRoNHMtPmY0bDVfZHN0X24xbTVfNXh0OicnKTs0ZighJHI1dDNybl9tMmQ1KXs0ZighJHRoNHMtPmY0bDVfMTN0Ml9yNW4xbTUpeyR0aDRzLT5sMmcuPSctIG4yIDEzdDJfcjVuMW01IDRmIHMxbTUgZjRsNW4xbTUgNXg0c3RzPGJyIC8+JzskdGg0cy0+ZjRsNV9kc3RfcDF0aG4xbTU9JHRoNHMtPmY0bDVfZHN0X3AxdGguJHRoNHMtPmY0bDVfZHN0X24xbTU7fTVsczV7JHRoNHMtPmwyZy49Jy0gY2g1Y2s0bmcgZjJyIDEzdDJfcjVuMW01PGJyIC8+JzskdGg0cy0+ZjRsNV9kc3RfcDF0aG4xbTU9JHRoNHMtPmY0bDVfZHN0X3AxdGguJHRoNHMtPmY0bDVfZHN0X24xbTU7JGIyZHk9JHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeTskNXh0PScnOzRmKCRmNGw1X3NyY19uMW01XzV4dCE9JHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0KXs0ZihzM2JzdHIoJHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeSwtNi1zdHJsNW4oJHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0KSk9PScuJy4kdGg0cy0+ZjRsNV9zcmNfbjFtNV81eHQpeyRiMmR5PXMzYnN0cigkdGg0cy0+ZjRsNV9kc3RfbjFtNV9iMmR5LDAsc3RybDVuKCR0aDRzLT5mNGw1X2RzdF9uMW01X2IyZHkpLTYtc3RybDVuKCR0aDRzLT5mNGw1X3NyY19uMW01XzV4dCkpOyQ1eHQ9Jy4nLiR0aDRzLT5mNGw1X3NyY19uMW01XzV4dDt9fSRjcHQ9Njt3aDRsNShAZjRsNV81eDRzdHMoJHRoNHMtPmY0bDVfZHN0X3AxdGhuMW01KSl7JHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeT0kYjJkeS4nXycuJGNwdC4kNXh0OyR0aDRzLT5mNGw1X2RzdF9uMW01PSR0aDRzLT5mNGw1X2RzdF9uMW01X2IyZHkuKCE1bXB0eSgkdGg0cy0+ZjRsNV9kc3RfbjFtNV81eHQpPycuJy4kdGg0cy0+ZjRsNV9kc3RfbjFtNV81eHQ6JycpOyRjcHQrKzskdGg0cy0+ZjRsNV9kc3RfcDF0aG4xbTU9JHRoNHMtPmY0bDVfZHN0X3AxdGguJHRoNHMtPmY0bDVfZHN0X24xbTU7fTRmKCRjcHQ+NikkdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7MTN0Ml9yNW4xbTUgdDIgJy4kdGg0cy0+ZjRsNV9kc3RfbjFtNS4nPGJyIC8+Jzt9JHRoNHMtPmwyZy49Jy0gZDVzdDRuMXQ0Mm4gZjRsNSBkNXQxNGxzPGJyIC8+JzskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZjRsNV9kc3RfbjFtNSAgICAgICAgIDogJy4kdGg0cy0+ZjRsNV9kc3RfbjFtNS4nPGJyIC8+JzskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7ZjRsNV9kc3RfcDF0aG4xbTUgICAgIDogJy4kdGg0cy0+ZjRsNV9kc3RfcDF0aG4xbTUuJzxiciAvPic7NGYoJHRoNHMtPmY0bDVfMnY1cndyNHQ1KXskdGg0cy0+bDJnLj0nLSBuMiAydjVyd3I0dDUgY2g1Y2s0bmc8YnIgLz4nO301bHM1ezRmKEBmNGw1XzV4NHN0cygkdGg0cy0+ZjRsNV9kc3RfcDF0aG4xbTUpKXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCcxbHI1MWR5XzV4NHN0cycsMXJyMXkoJHRoNHMtPmY0bDVfZHN0X24xbTUpKTt9NWxzNXskdGg0cy0+bDJnLj0nLSAnLiR0aDRzLT5mNGw1X2RzdF9uMW01LicgZDI1c25cJ3QgNXg0c3QgMWxyNTFkeTxiciAvPic7fX19fTRmKCR0aDRzLT5wcjJjNXNzNWQpezRmKCE1bXB0eSgkdGg0cy0+ZjRsNV9zcmNfdDVtcCkpeyR0aDRzLT5sMmcuPSctIDNzNSB0aDUgdDVtcCBmNGw1IDRuc3Q1MWQgMmYgdGg1IDJyNGc0bjFsIGY0bDUgczRuYzUgNHQgNHMgMSBzNWMybmQgcHIyYzVzczxiciAvPic7JHRoNHMtPmY0bDVfc3JjX3AxdGhuMW01PSR0aDRzLT5mNGw1X3NyY190NW1wOzRmKCFmNGw1XzV4NHN0cygkdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTUpKXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCd0NW1wX2Y0bDVfbTRzczRuZycpO319NWxzNSA0ZighJHRoNHMtPm4yXzNwbDIxZF9jaDVjayl7NGYoITRzXzNwbDIxZDVkX2Y0bDUoJHRoNHMtPmY0bDVfc3JjX3AxdGhuMW01KSl7JHRoNHMtPnByMmM1c3M1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgnczIzcmM1X200c3M0bmcnKTt9fTVsczV7NGYoIWY0bDVfNXg0c3RzKCR0aDRzLT5mNGw1X3NyY19wMXRobjFtNSkpeyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ3MyM3JjNV9tNHNzNG5nJyk7fX00ZighJHI1dDNybl9tMmQ1KXs0ZigkdGg0cy0+cHIyYzVzczVkJiYhZjRsNV81eDRzdHMoJHRoNHMtPmY0bDVfZHN0X3AxdGgpKXs0ZigkdGg0cy0+ZDRyXzEzdDJfY3I1MXQ1KXskdGg0cy0+bDJnLj0nLSAnLiR0aDRzLT5mNGw1X2RzdF9wMXRoLicgZDI1c25cJ3QgNXg0c3QuIEF0dDVtcHQ0bmcgY3I1MXQ0Mm46Jzs0ZighJHRoNHMtPnJta2Q0cigkdGg0cy0+ZjRsNV9kc3RfcDF0aCwkdGg0cy0+ZDRyX2NobTJkKSl7JHRoNHMtPmwyZy49JyBmMTRsNWQ8YnIgLz4nOyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ2Q1c3Q0bjF0NDJuX2Q0cicpO301bHM1eyR0aDRzLT5sMmcuPScgczNjYzVzczxiciAvPic7fX01bHM1eyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdkNXN0NG4xdDQybl9kNHJfbTRzczRuZycpO319NGYoJHRoNHMtPnByMmM1c3M1ZCYmITRzX2Q0cigkdGg0cy0+ZjRsNV9kc3RfcDF0aCkpeyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ2Q1c3Q0bjF0NDJuX3AxdGhfbjJ0X2Q0cicpO30kaDFzaD1tZGkoJHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeS5yMW5kKDYsNjAwMCkpOzRmKCR0aDRzLT5wcjJjNXNzNWQmJiEoJGY9QGYycDVuKCR0aDRzLT5mNGw1X2RzdF9wMXRoLiRoMXNoLighNW1wdHkoJHRoNHMtPmY0bDVfZHN0X24xbTVfNXh0KT8nLicuJHRoNHMtPmY0bDVfZHN0X24xbTVfNXh0OicnKSwnMSsnKSkpezRmKCR0aDRzLT5kNHJfMTN0Ml9jaG0yZCl7JHRoNHMtPmwyZy49Jy0gJy4kdGg0cy0+ZjRsNV9kc3RfcDF0aC4nIDRzIG4ydCB3cjR0NTFibDUuIEF0dDVtcHQ0bmcgY2htMmQ6Jzs0ZighQGNobTJkKCR0aDRzLT5mNGw1X2RzdF9wMXRoLCR0aDRzLT5kNHJfY2htMmQpKXskdGg0cy0+bDJnLj0nIGYxNGw1ZDxiciAvPic7JHRoNHMtPnByMmM1c3M1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgnZDVzdDRuMXQ0Mm5fZDRyX3dyNHQ1Jyk7fTVsczV7JHRoNHMtPmwyZy49JyBzM2NjNXNzPGJyIC8+Jzs0ZighKCRmPUBmMnA1bigkdGg0cy0+ZjRsNV9kc3RfcDF0aC4kaDFzaC4oITVtcHR5KCR0aDRzLT5mNGw1X2RzdF9uMW01XzV4dCk/Jy4nLiR0aDRzLT5mNGw1X2RzdF9uMW01XzV4dDonJyksJzErJykpKXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdkNXN0NG4xdDQybl9kNHJfd3I0dDUnKTt9NWxzNXtAZmNsMnM1KCRmKTt9fX01bHM1eyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ2Q1c3Q0bjF0NDJuX3AxdGhfd3I0dDUnKTt9fTVsczV7NGYoJHRoNHMtPnByMmM1c3M1ZClAZmNsMnM1KCRmKTtAM25sNG5rKCR0aDRzLT5mNGw1X2RzdF9wMXRoLiRoMXNoLighNW1wdHkoJHRoNHMtPmY0bDVfZHN0X24xbTVfNXh0KT8nLicuJHRoNHMtPmY0bDVfZHN0X24xbTVfNXh0OicnKSk7fTRmKCEkdGg0cy0+bjJfM3BsMjFkX2NoNWNrJiY1bXB0eSgkdGg0cy0+ZjRsNV9zcmNfdDVtcCkmJiFAZjRsNV81eDRzdHMoJHRoNHMtPmY0bDVfc3JjX3AxdGhuMW01KSl7JHRoNHMtPmwyZy49Jy0gMXR0NW1wdDRuZyB0MiAzczUgMSB0NW1wIGY0bDU6JzskaDFzaD1tZGkoJHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeS5yMW5kKDYsNjAwMCkpOzRmKG0ydjVfM3BsMjFkNWRfZjRsNSgkdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTUsJHRoNHMtPmY0bDVfZHN0X3AxdGguJGgxc2guKCE1bXB0eSgkdGg0cy0+ZjRsNV9kc3RfbjFtNV81eHQpPycuJy4kdGg0cy0+ZjRsNV9kc3RfbjFtNV81eHQ6JycpKSl7JHRoNHMtPmY0bDVfc3JjX3AxdGhuMW01PSR0aDRzLT5mNGw1X2RzdF9wMXRoLiRoMXNoLighNW1wdHkoJHRoNHMtPmY0bDVfZHN0X24xbTVfNXh0KT8nLicuJHRoNHMtPmY0bDVfZHN0X24xbTVfNXh0OicnKTskdGg0cy0+ZjRsNV9zcmNfdDVtcD0kdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTU7JHRoNHMtPmwyZy49JyBmNGw1IGNyNTF0NWQ8YnIgLz4nOyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt0NW1wIGY0bDUgNHM6ICcuJHRoNHMtPmY0bDVfc3JjX3Q1bXAuJzxiciAvPic7fTVsczV7JHRoNHMtPmwyZy49JyBmMTRsNWQ8YnIgLz4nOyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ3Q1bXBfZjRsNScpO319fX00ZigkdGg0cy0+cHIyYzVzczVkKXs0ZigkNG0xZzVfbTFuNHAzbDF0NDJuJiYhQGc1dDRtMWc1czR6NSgkdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTUpKXskdGg0cy0+bDJnLj0nLSB0aDUgZjRsNSA0cyBuMnQgMW4gNG0xZzUhPGJyIC8+JzskNG0xZzVfbTFuNHAzbDF0NDJuPWYxbHM1O300ZigkNG0xZzVfbTFuNHAzbDF0NDJuKXtANG40X3M1dCgiZ2QuanA1Z180Z24ycjVfdzFybjRuZyIsNik7NGYoJHRoNHMtPnByMmM1c3M1ZCYmISgkZj1AZjJwNW4oJHRoNHMtPmY0bDVfc3JjX3AxdGhuMW01LCdyJykpKXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdzMjNyYzVfbjJ0X3I1MWQxYmw1Jyk7fTVsczV7QGZjbDJzNSgkZik7fSR0aDRzLT5sMmcuPSctIDRtMWc1IHI1czR6NG5nIDJyIGMybnY1cnM0Mm4gdzFudDVkPGJyIC8+Jzs0ZigkdGg0cy0+Z2R2NXJzNDJuKCkpe3N3NHRjaCgkdGg0cy0+NG0xZzVfc3JjX3R5cDUpe2MxczUgJ2pwZyc6NGYoIWYzbmN0NDJuXzV4NHN0cygnNG0xZzVjcjUxdDVmcjJtanA1ZycpKXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCduMl9jcjUxdDVfczNwcDJydCcsMXJyMXkoJ0pQRUcnKSk7fTVsczV7JDRtMWc1X3NyYz1ANG0xZzVjcjUxdDVmcjJtanA1ZygkdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTUpOzRmKCEkNG0xZzVfc3JjKXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdjcjUxdDVfNXJyMnInLDFycjF5KCdKUEVHJykpO301bHM1eyR0aDRzLT5sMmcuPSctIHMyM3JjNSA0bTFnNSA0cyBKUEVHPGJyIC8+Jzt9fWJyNTFrO2MxczUgJ3BuZyc6NGYoIWYzbmN0NDJuXzV4NHN0cygnNG0xZzVjcjUxdDVmcjJtcG5nJykpeyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ24yX2NyNTF0NV9zM3BwMnJ0JywxcnIxeSgnUE5HJykpO301bHM1eyQ0bTFnNV9zcmM9QDRtMWc1Y3I1MXQ1ZnIybXBuZygkdGg0cy0+ZjRsNV9zcmNfcDF0aG4xbTUpOzRmKCEkNG0xZzVfc3JjKXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdjcjUxdDVfNXJyMnInLDFycjF5KCdQTkcnKSk7fTVsczV7JHRoNHMtPmwyZy49Jy0gczIzcmM1IDRtMWc1IDRzIFBORzxiciAvPic7fX1icjUxaztjMXM1ICdnNGYnOjRmKCFmM25jdDQybl81eDRzdHMoJzRtMWc1Y3I1MXQ1ZnIybWc0ZicpKXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCduMl9jcjUxdDVfczNwcDJydCcsMXJyMXkoJ0dJRicpKTt9NWxzNXskNG0xZzVfc3JjPUA0bTFnNWNyNTF0NWZyMm1nNGYoJHRoNHMtPmY0bDVfc3JjX3AxdGhuMW01KTs0ZighJDRtMWc1X3NyYyl7JHRoNHMtPnByMmM1c3M1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgnY3I1MXQ1XzVycjJyJywxcnIxeSgnR0lGJykpO301bHM1eyR0aDRzLT5sMmcuPSctIHMyM3JjNSA0bTFnNSA0cyBHSUY8YnIgLz4nO319YnI1MWs7YzFzNSAnYm1wJzo0ZighbTV0aDJkXzV4NHN0cygkdGg0cywnNG0xZzVjcjUxdDVmcjJtYm1wJykpeyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ24yX2NyNTF0NV9zM3BwMnJ0JywxcnIxeSgnQk1QJykpO301bHM1eyQ0bTFnNV9zcmM9QCR0aDRzLT40bTFnNWNyNTF0NWZyMm1ibXAoJHRoNHMtPmY0bDVfc3JjX3AxdGhuMW01KTs0ZighJDRtMWc1X3NyYyl7JHRoNHMtPnByMmM1c3M1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgnY3I1MXQ1XzVycjJyJywxcnIxeSgnQk1QJykpO301bHM1eyR0aDRzLT5sMmcuPSctIHMyM3JjNSA0bTFnNSA0cyBCTVA8YnIgLz4nO319YnI1MWs7ZDVmMTNsdDokdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdzMjNyYzVfNG52MWw0ZCcpO319NWxzNXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdnZF9tNHNzNG5nJyk7fTRmKCR0aDRzLT5wcjJjNXNzNWQmJiQ0bTFnNV9zcmMpezRmKDVtcHR5KCR0aDRzLT40bTFnNV9jMm52NXJ0KSl7JHRoNHMtPmwyZy49Jy0gczV0dDRuZyBkNXN0NG4xdDQybiBmNGw1IHR5cDUgdDIgJy4kdGg0cy0+NG0xZzVfc3JjX3R5cDUuJzxiciAvPic7JHRoNHMtPjRtMWc1X2MybnY1cnQ9JHRoNHMtPjRtMWc1X3NyY190eXA1O300ZighNG5fMXJyMXkoJHRoNHMtPjRtMWc1X2MybnY1cnQsJHRoNHMtPjRtMWc1X3MzcHAycnQ1ZCkpeyR0aDRzLT40bTFnNV9jMm52NXJ0PSdqcGcnO300ZigkdGg0cy0+NG0xZzVfYzJudjVydCE9J3BuZycmJiR0aDRzLT40bTFnNV9jMm52NXJ0IT0nZzRmJyYmITVtcHR5KCR0aDRzLT40bTFnNV9kNWYxM2x0X2MybDJyKSYmNW1wdHkoJHRoNHMtPjRtMWc1X2IxY2tncjIzbmRfYzJsMnIpKSR0aDRzLT40bTFnNV9iMWNrZ3IyM25kX2MybDJyPSR0aDRzLT40bTFnNV9kNWYxM2x0X2MybDJyOzRmKCE1bXB0eSgkdGg0cy0+NG0xZzVfYjFja2dyMjNuZF9jMmwycikpJHRoNHMtPjRtMWc1X2Q1ZjEzbHRfYzJsMnI9JHRoNHMtPjRtMWc1X2IxY2tncjIzbmRfYzJsMnI7NGYoNW1wdHkoJHRoNHMtPjRtMWc1X2Q1ZjEzbHRfYzJsMnIpKSR0aDRzLT40bTFnNV9kNWYxM2x0X2MybDJyPScjRkZGRkZGJzskdGg0cy0+NG0xZzVfc3JjX3g9NG0xZzVzeCgkNG0xZzVfc3JjKTskdGg0cy0+NG0xZzVfc3JjX3k9NG0xZzVzeSgkNG0xZzVfc3JjKTskZ2RfdjVyczQybj0kdGg0cy0+Z2R2NXJzNDJuKCk7JHIxdDQyX2NyMnA9bjNsbDs0ZighNG0xZzU0c3RyMzVjMmwycigkNG0xZzVfc3JjKSl7JHRoNHMtPmwyZy49Jy0gNG0xZzUgNHMgZDV0NWN0NWQgMXMgaDF2NG5nIDEgcDFsNXR0NTxiciAvPic7JHRoNHMtPjRtMWc1XzRzX3AxbDV0dDU9dHIzNTskdGg0cy0+NG0xZzVfdHIxbnNwMXI1bnRfYzJsMnI9NG0xZzVjMmwycnRyMW5zcDFyNW50KCQ0bTFnNV9zcmMpOzRmKCR0aDRzLT40bTFnNV90cjFuc3AxcjVudF9jMmwycj49MCYmNG0xZzVjMmwycnN0MnQxbCgkNG0xZzVfc3JjKT4kdGg0cy0+NG0xZzVfdHIxbnNwMXI1bnRfYzJsMnIpeyR0aDRzLT40bTFnNV80c190cjFuc3AxcjVudD10cjM1OyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwMWw1dHQ1IDRtMWc1IDRzIGQ1dDVjdDVkIDFzIHRyMW5zcDFyNW50PGJyIC8+Jzt9JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2MybnY1cnQgcDFsNXR0NSA0bTFnNSB0MiB0cjM1IGMybDJyPGJyIC8+JzskdHIzNV9jMmwycj00bTFnNWNyNTF0NXRyMzVjMmwycigkdGg0cy0+NG0xZzVfc3JjX3gsJHRoNHMtPjRtMWc1X3NyY195KTs0bTFnNTFscGgxYmw1bmQ0bmcoJHRyMzVfYzJsMnIsZjFsczUpOzRtMWc1czF2NTFscGgxKCR0cjM1X2MybDJyLHRyMzUpO2YycigkeD0wOyR4PCR0aDRzLT40bTFnNV9zcmNfeDskeCsrKXtmMnIoJHk9MDskeTwkdGg0cy0+NG0xZzVfc3JjX3k7JHkrKyl7NGYoJHRoNHMtPjRtMWc1X3RyMW5zcDFyNW50X2MybDJyPj0wJiY0bTFnNWMybDJyMXQoJDRtMWc1X3NyYywkeCwkeSk9PSR0aDRzLT40bTFnNV90cjFuc3AxcjVudF9jMmwycil7NG0xZzVzNXRwNHg1bCgkdHIzNV9jMmwyciwkeCwkeSw2YTc8PGF1KTt9NWxzNXskcmdiPTRtMWc1YzJsMnJzZjJyNG5kNXgoJDRtMWc1X3NyYyw0bTFnNWMybDJyMXQoJDRtMWc1X3NyYywkeCwkeSkpOzRtMWc1czV0cDR4NWwoJHRyMzVfYzJsMnIsJHgsJHksKCRyZ2JbJzFscGgxJ108PGF1KXwoJHJnYlsncjVkJ108PDZlKXwoJHJnYlsnZ3I1NW4nXTw8OCl8JHJnYlsnYmwzNSddKTt9fX0kNG0xZzVfc3JjPSR0aDRzLT40bTFnNXRyMW5zZjVyKCR0cjM1X2MybDJyLCQ0bTFnNV9zcmMpOzRtMWc1MWxwaDFibDVuZDRuZygkNG0xZzVfc3JjLGYxbHM1KTs0bTFnNXMxdjUxbHBoMSgkNG0xZzVfc3JjLHRyMzUpOyR0aDRzLT40bTFnNV80c19wMWw1dHQ1PWYxbHM1O30kNG0xZzVfZHN0PSYkNG0xZzVfc3JjOzRmKCghNW1wdHkoJHRoNHMtPjRtMWc1X3ByNWNyMnApKSl7bDRzdCgkY3QsJGNyLCRjYiwkY2wpPSR0aDRzLT5nNXQyZmZzNXRzKCR0aDRzLT40bTFnNV9wcjVjcjJwLCR0aDRzLT40bTFnNV9zcmNfeCwkdGg0cy0+NG0xZzVfc3JjX3ksdHIzNSx0cjM1KTskdGg0cy0+bDJnLj0nLSBwcjUtY3IycCA0bTFnNSA6ICcuJGN0LicgJy4kY3IuJyAnLiRjYi4nICcuJGNsLicgPGJyIC8+JzskdGg0cy0+NG0xZzVfc3JjX3g9JHRoNHMtPjRtMWc1X3NyY194LSRjbC0kY3I7JHRoNHMtPjRtMWc1X3NyY195PSR0aDRzLT40bTFnNV9zcmNfeS0kY3QtJGNiOzRmKCR0aDRzLT40bTFnNV9zcmNfeDw2KSR0aDRzLT40bTFnNV9zcmNfeD02OzRmKCR0aDRzLT40bTFnNV9zcmNfeTw2KSR0aDRzLT40bTFnNV9zcmNfeT02OyR0bXA9JHRoNHMtPjRtMWc1Y3I1MXQ1bjV3KCR0aDRzLT40bTFnNV9zcmNfeCwkdGg0cy0+NG0xZzVfc3JjX3kpOzRtMWc1YzJweSgkdG1wLCQ0bTFnNV9kc3QsMCwwLCRjbCwkY3QsJHRoNHMtPjRtMWc1X3NyY194LCR0aDRzLT40bTFnNV9zcmNfeSk7NGYoJGN0PDB8fCRjcjwwfHwkY2I8MHx8JGNsPDApezRmKCE1bXB0eSgkdGg0cy0+NG0xZzVfYjFja2dyMjNuZF9jMmwycikpe2w0c3QoJHI1ZCwkZ3I1NW4sJGJsMzUpPSR0aDRzLT5nNXRjMmwycnMoJHRoNHMtPjRtMWc1X2IxY2tncjIzbmRfYzJsMnIpOyRmNGxsPTRtMWc1YzJsMnIxbGwyYzF0NSgkdG1wLCRyNWQsJGdyNTVuLCRibDM1KTt9NWxzNXskZjRsbD00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkdG1wLDAsMCwwLDZhNyk7fTRmKCRjdDwwKTRtMWc1ZjRsbDVkcjVjdDFuZ2w1KCR0bXAsMCwwLCR0aDRzLT40bTFnNV9zcmNfeCwtJGN0LCRmNGxsKTs0ZigkY3I8MCk0bTFnNWY0bGw1ZHI1Y3QxbmdsNSgkdG1wLCR0aDRzLT40bTFnNV9zcmNfeCskY3IsMCwkdGg0cy0+NG0xZzVfc3JjX3gsJHRoNHMtPjRtMWc1X3NyY195LCRmNGxsKTs0ZigkY2I8MCk0bTFnNWY0bGw1ZHI1Y3QxbmdsNSgkdG1wLDAsJHRoNHMtPjRtMWc1X3NyY195KyRjYiwkdGg0cy0+NG0xZzVfc3JjX3gsJHRoNHMtPjRtMWc1X3NyY195LCRmNGxsKTs0ZigkY2w8MCk0bTFnNWY0bGw1ZHI1Y3QxbmdsNSgkdG1wLDAsMCwtJGNsLCR0aDRzLT40bTFnNV9zcmNfeSwkZjRsbCk7fSQ0bTFnNV9kc3Q9JHRoNHMtPjRtMWc1dHIxbnNmNXIoJHRtcCwkNG0xZzVfZHN0KTt9NGYoJHRoNHMtPjRtMWc1X3I1czR6NSl7JHRoNHMtPmwyZy49Jy0gcjVzNHo0bmcuLi48YnIgLz4nOzRmKCR0aDRzLT40bTFnNV9yMXQ0Ml94KXskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7YzFsYzNsMXQ1IHggczR6NTxiciAvPic7JHRoNHMtPjRtMWc1X2RzdF94PXIyM25kKCgkdGg0cy0+NG0xZzVfc3JjX3gqJHRoNHMtPjRtMWc1X3kpLyR0aDRzLT40bTFnNV9zcmNfeSk7JHRoNHMtPjRtMWc1X2RzdF95PSR0aDRzLT40bTFnNV95O301bHM1IDRmKCR0aDRzLT40bTFnNV9yMXQ0Ml95KXskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7YzFsYzNsMXQ1IHkgczR6NTxiciAvPic7JHRoNHMtPjRtMWc1X2RzdF94PSR0aDRzLT40bTFnNV94OyR0aDRzLT40bTFnNV9kc3RfeT1yMjNuZCgoJHRoNHMtPjRtMWc1X3NyY195KiR0aDRzLT40bTFnNV94KS8kdGg0cy0+NG0xZzVfc3JjX3gpO301bHM1IDRmKDRzX24zbTVyNGMoJHRoNHMtPjRtMWc1X3IxdDQyX3A0eDVscykpeyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtjMWxjM2wxdDUgeC95IHM0ejUgdDIgbTF0Y2ggMSBuM21iNXIgMmYgcDR4NWxzPGJyIC8+JzskcDR4NWxzPSR0aDRzLT40bTFnNV9zcmNfeSokdGg0cy0+NG0xZzVfc3JjX3g7JGQ0ZmY9c3FydCgkdGg0cy0+NG0xZzVfcjF0NDJfcDR4NWxzLyRwNHg1bHMpOyR0aDRzLT40bTFnNV9kc3RfeD1yMjNuZCgkdGg0cy0+NG0xZzVfc3JjX3gqJGQ0ZmYpOyR0aDRzLT40bTFnNV9kc3RfeT1yMjNuZCgkdGg0cy0+NG0xZzVfc3JjX3kqJGQ0ZmYpO301bHM1IDRmKCR0aDRzLT40bTFnNV9yMXQ0Mnx8JHRoNHMtPjRtMWc1X3IxdDQyX2NyMnB8fCR0aDRzLT40bTFnNV9yMXQ0Ml9mNGxsfHwkdGg0cy0+NG0xZzVfcjF0NDJfbjJfejIybV80bnx8JHRoNHMtPjRtMWc1X3IxdDQyX24yX3oyMm1fMjN0KXskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7Y2g1Y2sgeC95IHM0ejVzPGJyIC8+Jzs0ZigoISR0aDRzLT40bTFnNV9yMXQ0Ml9uMl96MjJtXzRuJiYhJHRoNHMtPjRtMWc1X3IxdDQyX24yX3oyMm1fMjN0KXx8KCR0aDRzLT40bTFnNV9yMXQ0Ml9uMl96MjJtXzRuJiYoJHRoNHMtPjRtMWc1X3NyY194PiR0aDRzLT40bTFnNV94fHwkdGg0cy0+NG0xZzVfc3JjX3k+JHRoNHMtPjRtMWc1X3kpKXx8KCR0aDRzLT40bTFnNV9yMXQ0Ml9uMl96MjJtXzIzdCYmJHRoNHMtPjRtMWc1X3NyY194PCR0aDRzLT40bTFnNV94JiYkdGg0cy0+NG0xZzVfc3JjX3k8JHRoNHMtPjRtMWc1X3kpKXskdGg0cy0+NG0xZzVfZHN0X3g9JHRoNHMtPjRtMWc1X3g7JHRoNHMtPjRtMWc1X2RzdF95PSR0aDRzLT40bTFnNV95OzRmKCR0aDRzLT40bTFnNV9yMXQ0Ml9jcjJwKXs0ZighNHNfc3RyNG5nKCR0aDRzLT40bTFnNV9yMXQ0Ml9jcjJwKSkkdGg0cy0+NG0xZzVfcjF0NDJfY3IycD0nJzskdGg0cy0+NG0xZzVfcjF0NDJfY3IycD1zdHJ0MmwydzVyKCR0aDRzLT40bTFnNV9yMXQ0Ml9jcjJwKTs0ZigoJHRoNHMtPjRtMWc1X3NyY194LyR0aDRzLT40bTFnNV94KT4oJHRoNHMtPjRtMWc1X3NyY195LyR0aDRzLT40bTFnNV95KSl7JHRoNHMtPjRtMWc1X2RzdF95PSR0aDRzLT40bTFnNV95OyR0aDRzLT40bTFnNV9kc3RfeD00bnR2MWwoJHRoNHMtPjRtMWc1X3NyY194KigkdGg0cy0+NG0xZzVfeS8kdGg0cy0+NG0xZzVfc3JjX3kpKTskcjF0NDJfY3IycD0xcnIxeSgpOyRyMXQ0Ml9jcjJwWyd4J109JHRoNHMtPjRtMWc1X2RzdF94LSR0aDRzLT40bTFnNV94OzRmKHN0cnAycygkdGg0cy0+NG0xZzVfcjF0NDJfY3IycCwnbCcpIT09ZjFsczUpeyRyMXQ0Ml9jcjJwWydsJ109MDskcjF0NDJfY3IycFsnciddPSRyMXQ0Ml9jcjJwWyd4J107fTVsczUgNGYoc3RycDJzKCR0aDRzLT40bTFnNV9yMXQ0Ml9jcjJwLCdyJykhPT1mMWxzNSl7JHIxdDQyX2NyMnBbJ2wnXT0kcjF0NDJfY3IycFsneCddOyRyMXQ0Ml9jcjJwWydyJ109MDt9NWxzNXskcjF0NDJfY3IycFsnbCddPXIyM25kKCRyMXQ0Ml9jcjJwWyd4J10vYSk7JHIxdDQyX2NyMnBbJ3InXT0kcjF0NDJfY3IycFsneCddLSRyMXQ0Ml9jcjJwWydsJ107fSR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyMXQ0Ml9jcjJwX3ggICAgICAgICA6ICcuJHIxdDQyX2NyMnBbJ3gnXS4nICgnLiRyMXQ0Ml9jcjJwWydsJ10uJzsnLiRyMXQ0Ml9jcjJwWydyJ10uJyk8YnIgLz4nOzRmKDRzX24zbGwoJHRoNHMtPjRtMWc1X2NyMnApKSR0aDRzLT40bTFnNV9jcjJwPTFycjF5KDAsMCwwLDApO301bHM1eyR0aDRzLT40bTFnNV9kc3RfeD0kdGg0cy0+NG0xZzVfeDskdGg0cy0+NG0xZzVfZHN0X3k9NG50djFsKCR0aDRzLT40bTFnNV9zcmNfeSooJHRoNHMtPjRtMWc1X3gvJHRoNHMtPjRtMWc1X3NyY194KSk7JHIxdDQyX2NyMnA9MXJyMXkoKTskcjF0NDJfY3IycFsneSddPSR0aDRzLT40bTFnNV9kc3RfeS0kdGg0cy0+NG0xZzVfeTs0ZihzdHJwMnMoJHRoNHMtPjRtMWc1X3IxdDQyX2NyMnAsJ3QnKSE9PWYxbHM1KXskcjF0NDJfY3IycFsndCddPTA7JHIxdDQyX2NyMnBbJ2InXT0kcjF0NDJfY3IycFsneSddO301bHM1IDRmKHN0cnAycygkdGg0cy0+NG0xZzVfcjF0NDJfY3IycCwnYicpIT09ZjFsczUpeyRyMXQ0Ml9jcjJwWyd0J109JHIxdDQyX2NyMnBbJ3knXTskcjF0NDJfY3IycFsnYiddPTA7fTVsczV7JHIxdDQyX2NyMnBbJ3QnXT1yMjNuZCgkcjF0NDJfY3IycFsneSddL2EpOyRyMXQ0Ml9jcjJwWydiJ109JHIxdDQyX2NyMnBbJ3knXS0kcjF0NDJfY3IycFsndCddO30kdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7cjF0NDJfY3IycF95ICAgICAgICAgOiAnLiRyMXQ0Ml9jcjJwWyd5J10uJyAoJy4kcjF0NDJfY3IycFsndCddLic7Jy4kcjF0NDJfY3IycFsnYiddLicpPGJyIC8+Jzs0Zig0c19uM2xsKCR0aDRzLT40bTFnNV9jcjJwKSkkdGg0cy0+NG0xZzVfY3IycD0xcnIxeSgwLDAsMCwwKTt9fTVsczUgNGYoJHRoNHMtPjRtMWc1X3IxdDQyX2Y0bGwpezRmKCE0c19zdHI0bmcoJHRoNHMtPjRtMWc1X3IxdDQyX2Y0bGwpKSR0aDRzLT40bTFnNV9yMXQ0Ml9mNGxsPScnOyR0aDRzLT40bTFnNV9yMXQ0Ml9mNGxsPXN0cnQybDJ3NXIoJHRoNHMtPjRtMWc1X3IxdDQyX2Y0bGwpOzRmKCgkdGg0cy0+NG0xZzVfc3JjX3gvJHRoNHMtPjRtMWc1X3gpPCgkdGg0cy0+NG0xZzVfc3JjX3kvJHRoNHMtPjRtMWc1X3kpKXskdGg0cy0+NG0xZzVfZHN0X3k9JHRoNHMtPjRtMWc1X3k7JHRoNHMtPjRtMWc1X2RzdF94PTRudHYxbCgkdGg0cy0+NG0xZzVfc3JjX3gqKCR0aDRzLT40bTFnNV95LyR0aDRzLT40bTFnNV9zcmNfeSkpOyRyMXQ0Ml9jcjJwPTFycjF5KCk7JHIxdDQyX2NyMnBbJ3gnXT0kdGg0cy0+NG0xZzVfZHN0X3gtJHRoNHMtPjRtMWc1X3g7NGYoc3RycDJzKCR0aDRzLT40bTFnNV9yMXQ0Ml9mNGxsLCdsJykhPT1mMWxzNSl7JHIxdDQyX2NyMnBbJ2wnXT0wOyRyMXQ0Ml9jcjJwWydyJ109JHIxdDQyX2NyMnBbJ3gnXTt9NWxzNSA0ZihzdHJwMnMoJHRoNHMtPjRtMWc1X3IxdDQyX2Y0bGwsJ3InKSE9PWYxbHM1KXskcjF0NDJfY3IycFsnbCddPSRyMXQ0Ml9jcjJwWyd4J107JHIxdDQyX2NyMnBbJ3InXT0wO301bHM1eyRyMXQ0Ml9jcjJwWydsJ109cjIzbmQoJHIxdDQyX2NyMnBbJ3gnXS9hKTskcjF0NDJfY3IycFsnciddPSRyMXQ0Ml9jcjJwWyd4J10tJHIxdDQyX2NyMnBbJ2wnXTt9JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3IxdDQyX2Y0bGxfeCAgICAgICAgIDogJy4kcjF0NDJfY3IycFsneCddLicgKCcuJHIxdDQyX2NyMnBbJ2wnXS4nOycuJHIxdDQyX2NyMnBbJ3InXS4nKTxiciAvPic7NGYoNHNfbjNsbCgkdGg0cy0+NG0xZzVfY3IycCkpJHRoNHMtPjRtMWc1X2NyMnA9MXJyMXkoMCwwLDAsMCk7fTVsczV7JHRoNHMtPjRtMWc1X2RzdF94PSR0aDRzLT40bTFnNV94OyR0aDRzLT40bTFnNV9kc3RfeT00bnR2MWwoJHRoNHMtPjRtMWc1X3NyY195KigkdGg0cy0+NG0xZzVfeC8kdGg0cy0+NG0xZzVfc3JjX3gpKTskcjF0NDJfY3IycD0xcnIxeSgpOyRyMXQ0Ml9jcjJwWyd5J109JHRoNHMtPjRtMWc1X2RzdF95LSR0aDRzLT40bTFnNV95OzRmKHN0cnAycygkdGg0cy0+NG0xZzVfcjF0NDJfZjRsbCwndCcpIT09ZjFsczUpeyRyMXQ0Ml9jcjJwWyd0J109MDskcjF0NDJfY3IycFsnYiddPSRyMXQ0Ml9jcjJwWyd5J107fTVsczUgNGYoc3RycDJzKCR0aDRzLT40bTFnNV9yMXQ0Ml9mNGxsLCdiJykhPT1mMWxzNSl7JHIxdDQyX2NyMnBbJ3QnXT0kcjF0NDJfY3IycFsneSddOyRyMXQ0Ml9jcjJwWydiJ109MDt9NWxzNXskcjF0NDJfY3IycFsndCddPXIyM25kKCRyMXQ0Ml9jcjJwWyd5J10vYSk7JHIxdDQyX2NyMnBbJ2InXT0kcjF0NDJfY3IycFsneSddLSRyMXQ0Ml9jcjJwWyd0J107fSR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyMXQ0Ml9mNGxsX3kgICAgICAgICA6ICcuJHIxdDQyX2NyMnBbJ3knXS4nICgnLiRyMXQ0Ml9jcjJwWyd0J10uJzsnLiRyMXQ0Ml9jcjJwWydiJ10uJyk8YnIgLz4nOzRmKDRzX24zbGwoJHRoNHMtPjRtMWc1X2NyMnApKSR0aDRzLT40bTFnNV9jcjJwPTFycjF5KDAsMCwwLDApO319NWxzNXs0ZigoJHRoNHMtPjRtMWc1X3NyY194LyR0aDRzLT40bTFnNV94KT4oJHRoNHMtPjRtMWc1X3NyY195LyR0aDRzLT40bTFnNV95KSl7JHRoNHMtPjRtMWc1X2RzdF94PSR0aDRzLT40bTFnNV94OyR0aDRzLT40bTFnNV9kc3RfeT00bnR2MWwoJHRoNHMtPjRtMWc1X3NyY195KigkdGg0cy0+NG0xZzVfeC8kdGg0cy0+NG0xZzVfc3JjX3gpKTt9NWxzNXskdGg0cy0+NG0xZzVfZHN0X3k9JHRoNHMtPjRtMWc1X3k7JHRoNHMtPjRtMWc1X2RzdF94PTRudHYxbCgkdGg0cy0+NG0xZzVfc3JjX3gqKCR0aDRzLT40bTFnNV95LyR0aDRzLT40bTFnNV9zcmNfeSkpO319fTVsczV7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2QyNXNuXCd0IGMxbGMzbDF0NSB4L3kgczR6NXM8YnIgLz4nOyR0aDRzLT40bTFnNV9kc3RfeD0kdGg0cy0+NG0xZzVfc3JjX3g7JHRoNHMtPjRtMWc1X2RzdF95PSR0aDRzLT40bTFnNV9zcmNfeTt9fTVsczV7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzNzNSBwbDE0biBzNHo1czxiciAvPic7JHRoNHMtPjRtMWc1X2RzdF94PSR0aDRzLT40bTFnNV94OyR0aDRzLT40bTFnNV9kc3RfeT0kdGg0cy0+NG0xZzVfeTt9NGYoJHRoNHMtPjRtMWc1X2RzdF94PDYpJHRoNHMtPjRtMWc1X2RzdF94PTY7NGYoJHRoNHMtPjRtMWc1X2RzdF95PDYpJHRoNHMtPjRtMWc1X2RzdF95PTY7JHRtcD0kdGg0cy0+NG0xZzVjcjUxdDVuNXcoJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSk7NGYoJGdkX3Y1cnM0Mm4+PWEpeyRyNXM9NG0xZzVjMnB5cjVzMW1wbDVkKCR0bXAsJDRtMWc1X3NyYywwLDAsMCwwLCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3ksJHRoNHMtPjRtMWc1X3NyY194LCR0aDRzLT40bTFnNV9zcmNfeSk7fTVsczV7JHI1cz00bTFnNWMycHlyNXM0ejVkKCR0bXAsJDRtMWc1X3NyYywwLDAsMCwwLCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3ksJHRoNHMtPjRtMWc1X3NyY194LCR0aDRzLT40bTFnNV9zcmNfeSk7fSR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtyNXM0ejVkIDRtMWc1IDJiajVjdCBjcjUxdDVkPGJyIC8+JzskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7NG0xZzVfc3JjX3ggeSAgICAgICAgOiAnLiR0aDRzLT40bTFnNV9zcmNfeC4nIHggJy4kdGg0cy0+NG0xZzVfc3JjX3kuJzxiciAvPic7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOzRtMWc1X2RzdF94IHkgICAgICAgIDogJy4kdGg0cy0+NG0xZzVfZHN0X3guJyB4ICcuJHRoNHMtPjRtMWc1X2RzdF95Lic8YnIgLz4nOyQ0bTFnNV9kc3Q9JHRoNHMtPjRtMWc1dHIxbnNmNXIoJHRtcCwkNG0xZzVfZHN0KTt9NWxzNXskdGg0cy0+NG0xZzVfZHN0X3g9JHRoNHMtPjRtMWc1X3NyY194OyR0aDRzLT40bTFnNV9kc3RfeT0kdGg0cy0+NG0xZzVfc3JjX3k7fTRmKCghNW1wdHkoJHRoNHMtPjRtMWc1X2NyMnApfHwhNHNfbjNsbCgkcjF0NDJfY3IycCkpKXtsNHN0KCRjdCwkY3IsJGNiLCRjbCk9JHRoNHMtPmc1dDJmZnM1dHMoJHRoNHMtPjRtMWc1X2NyMnAsJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSx0cjM1LHRyMzUpOzRmKCE0c19uM2xsKCRyMXQ0Ml9jcjJwKSl7NGYoMXJyMXlfazV5XzV4NHN0cygndCcsJHIxdDQyX2NyMnApKSRjdCs9JHIxdDQyX2NyMnBbJ3QnXTs0ZigxcnIxeV9rNXlfNXg0c3RzKCdyJywkcjF0NDJfY3IycCkpJGNyKz0kcjF0NDJfY3IycFsnciddOzRmKDFycjF5X2s1eV81eDRzdHMoJ2InLCRyMXQ0Ml9jcjJwKSkkY2IrPSRyMXQ0Ml9jcjJwWydiJ107NGYoMXJyMXlfazV5XzV4NHN0cygnbCcsJHIxdDQyX2NyMnApKSRjbCs9JHIxdDQyX2NyMnBbJ2wnXTt9JHRoNHMtPmwyZy49Jy0gY3IycCA0bTFnNSA6ICcuJGN0LicgJy4kY3IuJyAnLiRjYi4nICcuJGNsLicgPGJyIC8+JzskdGg0cy0+NG0xZzVfZHN0X3g9JHRoNHMtPjRtMWc1X2RzdF94LSRjbC0kY3I7JHRoNHMtPjRtMWc1X2RzdF95PSR0aDRzLT40bTFnNV9kc3RfeS0kY3QtJGNiOzRmKCR0aDRzLT40bTFnNV9kc3RfeDw2KSR0aDRzLT40bTFnNV9kc3RfeD02OzRmKCR0aDRzLT40bTFnNV9kc3RfeTw2KSR0aDRzLT40bTFnNV9kc3RfeT02OyR0bXA9JHRoNHMtPjRtMWc1Y3I1MXQ1bjV3KCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3kpOzRtMWc1YzJweSgkdG1wLCQ0bTFnNV9kc3QsMCwwLCRjbCwkY3QsJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSk7NGYoJGN0PDB8fCRjcjwwfHwkY2I8MHx8JGNsPDApezRmKCE1bXB0eSgkdGg0cy0+NG0xZzVfYjFja2dyMjNuZF9jMmwycikpe2w0c3QoJHI1ZCwkZ3I1NW4sJGJsMzUpPSR0aDRzLT5nNXRjMmwycnMoJHRoNHMtPjRtMWc1X2IxY2tncjIzbmRfYzJsMnIpOyRmNGxsPTRtMWc1YzJsMnIxbGwyYzF0NSgkdG1wLCRyNWQsJGdyNTVuLCRibDM1KTt9NWxzNXskZjRsbD00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkdG1wLDAsMCwwLDZhNyk7fTRmKCRjdDwwKTRtMWc1ZjRsbDVkcjVjdDFuZ2w1KCR0bXAsMCwwLCR0aDRzLT40bTFnNV9kc3RfeCwtJGN0LTYsJGY0bGwpOzRmKCRjcjwwKTRtMWc1ZjRsbDVkcjVjdDFuZ2w1KCR0bXAsJHRoNHMtPjRtMWc1X2RzdF94KyRjciwwLCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3ksJGY0bGwpOzRmKCRjYjwwKTRtMWc1ZjRsbDVkcjVjdDFuZ2w1KCR0bXAsMCwkdGg0cy0+NG0xZzVfZHN0X3krJGNiLCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3ksJGY0bGwpOzRmKCRjbDwwKTRtMWc1ZjRsbDVkcjVjdDFuZ2w1KCR0bXAsMCwwLC0kY2wtNiwkdGg0cy0+NG0xZzVfZHN0X3ksJGY0bGwpO30kNG0xZzVfZHN0PSR0aDRzLT40bTFnNXRyMW5zZjVyKCR0bXAsJDRtMWc1X2RzdCk7fTRmKCRnZF92NXJzNDJuPj1hJiYhNW1wdHkoJHRoNHMtPjRtMWc1X2ZsNHApKXskdGg0cy0+NG0xZzVfZmw0cD1zdHJ0MmwydzVyKCR0aDRzLT40bTFnNV9mbDRwKTskdGg0cy0+bDJnLj0nLSBmbDRwIDRtMWc1IDogJy4kdGg0cy0+NG0xZzVfZmw0cC4nPGJyIC8+JzskdG1wPSR0aDRzLT40bTFnNWNyNTF0NW41dygkdGg0cy0+NG0xZzVfZHN0X3gsJHRoNHMtPjRtMWc1X2RzdF95KTtmMnIoJHg9MDskeDwkdGg0cy0+NG0xZzVfZHN0X3g7JHgrKyl7ZjJyKCR5PTA7JHk8JHRoNHMtPjRtMWc1X2RzdF95OyR5KyspezRmKHN0cnAycygkdGg0cy0+NG0xZzVfZmw0cCwndicpIT09ZjFsczUpezRtMWc1YzJweSgkdG1wLCQ0bTFnNV9kc3QsJHRoNHMtPjRtMWc1X2RzdF94LSR4LTYsJHksJHgsJHksNiw2KTt9NWxzNXs0bTFnNWMycHkoJHRtcCwkNG0xZzVfZHN0LCR4LCR0aDRzLT40bTFnNV9kc3RfeS0keS02LCR4LCR5LDYsNik7fX19JDRtMWc1X2RzdD0kdGg0cy0+NG0xZzV0cjFuc2Y1cigkdG1wLCQ0bTFnNV9kc3QpO300ZigkZ2RfdjVyczQybj49YSYmNHNfbjNtNXI0YygkdGg0cy0+NG0xZzVfcjJ0MXQ1KSl7NGYoITRuXzFycjF5KCR0aDRzLT40bTFnNV9yMnQxdDUsMXJyMXkoMCw5MCw2ODAsYTcwKSkpJHRoNHMtPjRtMWc1X3IydDF0NT0wOzRmKCR0aDRzLT40bTFnNV9yMnQxdDUhPTApezRmKCR0aDRzLT40bTFnNV9yMnQxdDU9PTkwfHwkdGg0cy0+NG0xZzVfcjJ0MXQ1PT1hNzApeyR0bXA9JHRoNHMtPjRtMWc1Y3I1MXQ1bjV3KCR0aDRzLT40bTFnNV9kc3RfeSwkdGg0cy0+NG0xZzVfZHN0X3gpO301bHM1eyR0bXA9JHRoNHMtPjRtMWc1Y3I1MXQ1bjV3KCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3kpO30kdGg0cy0+bDJnLj0nLSByMnQxdDUgNG0xZzUgOiAnLiR0aDRzLT40bTFnNV9yMnQxdDUuJzxiciAvPic7ZjJyKCR4PTA7JHg8JHRoNHMtPjRtMWc1X2RzdF94OyR4Kyspe2YycigkeT0wOyR5PCR0aDRzLT40bTFnNV9kc3RfeTskeSsrKXs0ZigkdGg0cy0+NG0xZzVfcjJ0MXQ1PT05MCl7NG0xZzVjMnB5KCR0bXAsJDRtMWc1X2RzdCwkeSwkeCwkeCwkdGg0cy0+NG0xZzVfZHN0X3ktJHktNiw2LDYpO301bHM1IDRmKCR0aDRzLT40bTFnNV9yMnQxdDU9PTY4MCl7NG0xZzVjMnB5KCR0bXAsJDRtMWc1X2RzdCwkeCwkeSwkdGg0cy0+NG0xZzVfZHN0X3gtJHgtNiwkdGg0cy0+NG0xZzVfZHN0X3ktJHktNiw2LDYpO301bHM1IDRmKCR0aDRzLT40bTFnNV9yMnQxdDU9PWE3MCl7NG0xZzVjMnB5KCR0bXAsJDRtMWc1X2RzdCwkeSwkeCwkdGg0cy0+NG0xZzVfZHN0X3gtJHgtNiwkeSw2LDYpO301bHM1ezRtMWc1YzJweSgkdG1wLCQ0bTFnNV9kc3QsJHgsJHksJHgsJHksNiw2KTt9fX00ZigkdGg0cy0+NG0xZzVfcjJ0MXQ1PT05MHx8JHRoNHMtPjRtMWc1X3IydDF0NT09YTcwKXskdD0kdGg0cy0+NG0xZzVfZHN0X3k7JHRoNHMtPjRtMWc1X2RzdF95PSR0aDRzLT40bTFnNV9kc3RfeDskdGg0cy0+NG0xZzVfZHN0X3g9JHQ7fSQ0bTFnNV9kc3Q9JHRoNHMtPjRtMWc1dHIxbnNmNXIoJHRtcCwkNG0xZzVfZHN0KTt9fTRmKCg0c19uM201cjRjKCR0aDRzLT40bTFnNV9wNHg1bDF0NSkmJiR0aDRzLT40bTFnNV9wNHg1bDF0NT4wKSl7JHRoNHMtPmwyZy49Jy0gcDR4NWwxdDUgNG0xZzUgKCcuJHRoNHMtPjRtMWc1X3A0eDVsMXQ1LidweCk8YnIgLz4nOyRmNGx0NXI9JHRoNHMtPjRtMWc1Y3I1MXQ1bjV3KCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3kpOzRmKCRnZF92NXJzNDJuPj1hKXs0bTFnNWMycHlyNXMxbXBsNWQoJGY0bHQ1ciwkNG0xZzVfZHN0LDAsMCwwLDAscjIzbmQoJHRoNHMtPjRtMWc1X2RzdF94LyR0aDRzLT40bTFnNV9wNHg1bDF0NSkscjIzbmQoJHRoNHMtPjRtMWc1X2RzdF95LyR0aDRzLT40bTFnNV9wNHg1bDF0NSksJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSk7NG0xZzVjMnB5cjVzMW1wbDVkKCQ0bTFnNV9kc3QsJGY0bHQ1ciwwLDAsMCwwLCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3kscjIzbmQoJHRoNHMtPjRtMWc1X2RzdF94LyR0aDRzLT40bTFnNV9wNHg1bDF0NSkscjIzbmQoJHRoNHMtPjRtMWc1X2RzdF95LyR0aDRzLT40bTFnNV9wNHg1bDF0NSkpO301bHM1ezRtMWc1YzJweXI1czR6NWQoJGY0bHQ1ciwkNG0xZzVfZHN0LDAsMCwwLDAscjIzbmQoJHRoNHMtPjRtMWc1X2RzdF94LyR0aDRzLT40bTFnNV9wNHg1bDF0NSkscjIzbmQoJHRoNHMtPjRtMWc1X2RzdF95LyR0aDRzLT40bTFnNV9wNHg1bDF0NSksJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSk7NG0xZzVjMnB5cjVzNHo1ZCgkNG0xZzVfZHN0LCRmNGx0NXIsMCwwLDAsMCwkdGg0cy0+NG0xZzVfZHN0X3gsJHRoNHMtPjRtMWc1X2RzdF95LHIyM25kKCR0aDRzLT40bTFnNV9kc3RfeC8kdGg0cy0+NG0xZzVfcDR4NWwxdDUpLHIyM25kKCR0aDRzLT40bTFnNV9kc3RfeS8kdGg0cy0+NG0xZzVfcDR4NWwxdDUpKTt9NG0xZzVkNXN0cjJ5KCRmNGx0NXIpO300ZigkZ2RfdjVyczQybj49YSYmJHRoNHMtPjRtMWc1XzNuc2gxcnAmJjRzX24zbTVyNGMoJHRoNHMtPjRtMWc1XzNuc2gxcnBfMW0yM250KSYmNHNfbjNtNXI0YygkdGg0cy0+NG0xZzVfM25zaDFycF9yMWQ0M3MpJiY0c19uM201cjRjKCR0aDRzLT40bTFnNV8zbnNoMXJwX3RocjVzaDJsZCkpezRmKCR0aDRzLT40bTFnNV8zbnNoMXJwXzFtMjNudD5pMDApJHRoNHMtPjRtMWc1XzNuc2gxcnBfMW0yM250PWkwMDskdGg0cy0+NG0xZzVfM25zaDFycF8xbTIzbnQ9JHRoNHMtPjRtMWc1XzNuc2gxcnBfMW0yM250KjAuMDZlOzRmKCR0aDRzLT40bTFnNV8zbnNoMXJwX3IxZDQzcz5pMCkkdGg0cy0+NG0xZzVfM25zaDFycF9yMWQ0M3M9aTA7JHRoNHMtPjRtMWc1XzNuc2gxcnBfcjFkNDNzPSR0aDRzLT40bTFnNV8zbnNoMXJwX3IxZDQzcyphOzRmKCR0aDRzLT40bTFnNV8zbnNoMXJwX3RocjVzaDJsZD5haWkpJHRoNHMtPjRtMWc1XzNuc2gxcnBfdGhyNXNoMmxkPWFpaTskdGg0cy0+NG0xZzVfM25zaDFycF9yMWQ0M3M9MWJzKHIyM25kKCR0aDRzLT40bTFnNV8zbnNoMXJwX3IxZDQzcykpOzRmKCR0aDRzLT40bTFnNV8zbnNoMXJwX3IxZDQzcyE9MCl7JHRoNHMtPjRtMWc1X2RzdF94PTRtMWc1c3goJDRtMWc1X2RzdCk7JHRoNHMtPjRtMWc1X2RzdF95PTRtMWc1c3koJDRtMWc1X2RzdCk7JGMxbnYxcz0kdGg0cy0+NG0xZzVjcjUxdDVuNXcoJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSxmMWxzNSx0cjM1KTskYmwzcj0kdGg0cy0+NG0xZzVjcjUxdDVuNXcoJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSxmMWxzNSx0cjM1KTs0ZihmM25jdDQybl81eDRzdHMoJzRtMWc1YzJudjJsM3Q0Mm4nKSl7JG0xdHI0eD0xcnIxeSgxcnIxeSg2LGEsNiksMXJyMXkoYSx1LGEpLDFycjF5KDYsYSw2KSk7NG0xZzVjMnB5KCRibDNyLCQ0bTFnNV9kc3QsMCwwLDAsMCwkdGg0cy0+NG0xZzVfZHN0X3gsJHRoNHMtPjRtMWc1X2RzdF95KTs0bTFnNWMybnYybDN0NDJuKCRibDNyLCRtMXRyNHgsNmUsMCk7fTVsczV7ZjJyKCQ0PTA7JDQ8JHRoNHMtPjRtMWc1XzNuc2gxcnBfcjFkNDNzOyQ0KyspezRtMWc1YzJweSgkYmwzciwkNG0xZzVfZHN0LDAsMCw2LDAsJHRoNHMtPjRtMWc1X2RzdF94LTYsJHRoNHMtPjRtMWc1X2RzdF95KTskdGg0cy0+NG0xZzVjMnB5bTVyZzUxbHBoMSgkYmwzciwkNG0xZzVfZHN0LDYsMCwwLDAsJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSxpMCk7JHRoNHMtPjRtMWc1YzJweW01cmc1MWxwaDEoJGJsM3IsJDRtMWc1X2RzdCwwLDAsMCwwLCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3ksaTApOzRtMWc1YzJweSgkYzFudjFzLCRibDNyLDAsMCwwLDAsJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSk7JHRoNHMtPjRtMWc1YzJweW01cmc1MWxwaDEoJGJsM3IsJGMxbnYxcywwLDAsMCw2LCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3ktNixvby5vb29vbyk7JHRoNHMtPjRtMWc1YzJweW01cmc1MWxwaDEoJGJsM3IsJGMxbnYxcywwLDYsMCwwLCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3ksYWkpO319JHBfbjV3PTFycjF5KCk7NGYoJHRoNHMtPjRtMWc1XzNuc2gxcnBfdGhyNXNoMmxkPjApe2YycigkeD0wOyR4PCR0aDRzLT40bTFnNV9kc3RfeC02OyR4Kyspe2YycigkeT0wOyR5PCR0aDRzLT40bTFnNV9kc3RfeTskeSsrKXskcF8ycjRnPTRtMWc1YzJsMnJzZjJyNG5kNXgoJDRtMWc1X2RzdCw0bTFnNWMybDJyMXQoJDRtMWc1X2RzdCwkeCwkeSkpOyRwX2JsM3I9NG0xZzVjMmwycnNmMnI0bmQ1eCgkYmwzciw0bTFnNWMybDJyMXQoJGJsM3IsJHgsJHkpKTskcF9uNXdbJ3I1ZCddPSgxYnMoJHBfMnI0Z1sncjVkJ10tJHBfYmwzclsncjVkJ10pPj0kdGg0cy0+NG0xZzVfM25zaDFycF90aHI1c2gybGQpP20xeCgwLG00bihhaWksKCR0aDRzLT40bTFnNV8zbnNoMXJwXzFtMjNudCooJHBfMnI0Z1sncjVkJ10tJHBfYmwzclsncjVkJ10pKSskcF8ycjRnWydyNWQnXSkpOiRwXzJyNGdbJ3I1ZCddOyRwX241d1snZ3I1NW4nXT0oMWJzKCRwXzJyNGdbJ2dyNTVuJ10tJHBfYmwzclsnZ3I1NW4nXSk+PSR0aDRzLT40bTFnNV8zbnNoMXJwX3RocjVzaDJsZCk/bTF4KDAsbTRuKGFpaSwoJHRoNHMtPjRtMWc1XzNuc2gxcnBfMW0yM250KigkcF8ycjRnWydncjU1biddLSRwX2JsM3JbJ2dyNTVuJ10pKSskcF8ycjRnWydncjU1biddKSk6JHBfMnI0Z1snZ3I1NW4nXTskcF9uNXdbJ2JsMzUnXT0oMWJzKCRwXzJyNGdbJ2JsMzUnXS0kcF9ibDNyWydibDM1J10pPj0kdGg0cy0+NG0xZzVfM25zaDFycF90aHI1c2gybGQpP20xeCgwLG00bihhaWksKCR0aDRzLT40bTFnNV8zbnNoMXJwXzFtMjNudCooJHBfMnI0Z1snYmwzNSddLSRwX2JsM3JbJ2JsMzUnXSkpKyRwXzJyNGdbJ2JsMzUnXSkpOiRwXzJyNGdbJ2JsMzUnXTs0ZigoJHBfMnI0Z1sncjVkJ10hPSRwX241d1sncjVkJ10pfHwoJHBfMnI0Z1snZ3I1NW4nXSE9JHBfbjV3WydncjU1biddKXx8KCRwXzJyNGdbJ2JsMzUnXSE9JHBfbjV3WydibDM1J10pKXskYzJsMnI9NG0xZzVjMmwycjFsbDJjMXQ1MWxwaDEoJDRtMWc1X2RzdCwkcF9uNXdbJ3I1ZCddLCRwX241d1snZ3I1NW4nXSwkcF9uNXdbJ2JsMzUnXSwkcF8ycjRnWycxbHBoMSddKTs0bTFnNXM1dHA0eDVsKCQ0bTFnNV9kc3QsJHgsJHksJGMybDJyKTt9fX19NWxzNXtmMnIoJHg9MDskeDwkdGg0cy0+NG0xZzVfZHN0X3g7JHgrKyl7ZjJyKCR5PTA7JHk8JHRoNHMtPjRtMWc1X2RzdF95OyR5KyspeyRwXzJyNGc9NG0xZzVjMmwycnNmMnI0bmQ1eCgkNG0xZzVfZHN0LDRtMWc1YzJsMnIxdCgkNG0xZzVfZHN0LCR4LCR5KSk7JHBfYmwzcj00bTFnNWMybDJyc2YycjRuZDV4KCRibDNyLDRtMWc1YzJsMnIxdCgkYmwzciwkeCwkeSkpOyRwX241d1sncjVkJ109KCR0aDRzLT40bTFnNV8zbnNoMXJwXzFtMjNudCooJHBfMnI0Z1sncjVkJ10tJHBfYmwzclsncjVkJ10pKSskcF8ycjRnWydyNWQnXTs0ZigkcF9uNXdbJ3I1ZCddPmFpaSl7JHBfbjV3WydyNWQnXT1haWk7fTVsczU0ZigkcF9uNXdbJ3I1ZCddPDApeyRwX241d1sncjVkJ109MDt9JHBfbjV3WydncjU1biddPSgkdGg0cy0+NG0xZzVfM25zaDFycF8xbTIzbnQqKCRwXzJyNGdbJ2dyNTVuJ10tJHBfYmwzclsnZ3I1NW4nXSkpKyRwXzJyNGdbJ2dyNTVuJ107NGYoJHBfbjV3WydncjU1biddPmFpaSl7JHBfbjV3WydncjU1biddPWFpaTt9NWxzNTRmKCRwX241d1snZ3I1NW4nXTwwKXskcF9uNXdbJ2dyNTVuJ109MDt9JHBfbjV3WydibDM1J109KCR0aDRzLT40bTFnNV8zbnNoMXJwXzFtMjNudCooJHBfMnI0Z1snYmwzNSddLSRwX2JsM3JbJ2JsMzUnXSkpKyRwXzJyNGdbJ2JsMzUnXTs0ZigkcF9uNXdbJ2JsMzUnXT5haWkpeyRwX241d1snYmwzNSddPWFpaTt9NWxzNTRmKCRwX241d1snYmwzNSddPDApeyRwX241d1snYmwzNSddPTA7fSRjMmwycj00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkNG0xZzVfZHN0LCRwX241d1sncjVkJ10sJHBfbjV3WydncjU1biddLCRwX241d1snYmwzNSddLCRwXzJyNGdbJzFscGgxJ10pOzRtMWc1czV0cDR4NWwoJDRtMWc1X2RzdCwkeCwkeSwkYzJsMnIpO319fTRtMWc1ZDVzdHIyeSgkYzFudjFzKTs0bTFnNWQ1c3RyMnkoJGJsM3IpO319NGYoJGdkX3Y1cnM0Mm4+PWEmJig0c19uM201cjRjKCR0aDRzLT40bTFnNV8ydjVybDF5XzJwMWM0dHkpJiYkdGg0cy0+NG0xZzVfMnY1cmwxeV8ycDFjNHR5PjAmJiE1bXB0eSgkdGg0cy0+NG0xZzVfMnY1cmwxeV9jMmwycikpKXskdGg0cy0+bDJnLj0nLSAxcHBseSBjMmwyciAydjVybDF5PGJyIC8+JztsNHN0KCRyNWQsJGdyNTVuLCRibDM1KT0kdGg0cy0+ZzV0YzJsMnJzKCR0aDRzLT40bTFnNV8ydjVybDF5X2MybDJyKTskZjRsdDVyPTRtMWc1Y3I1MXQ1dHIzNWMybDJyKCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3kpOyRjMmwycj00bTFnNWMybDJyMWxsMmMxdDUoJGY0bHQ1ciwkcjVkLCRncjU1biwkYmwzNSk7NG0xZzVmNGxsNWRyNWN0MW5nbDUoJGY0bHQ1ciwwLDAsJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSwkYzJsMnIpOyR0aDRzLT40bTFnNWMycHltNXJnNTFscGgxKCQ0bTFnNV9kc3QsJGY0bHQ1ciwwLDAsMCwwLCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3ksJHRoNHMtPjRtMWc1XzJ2NXJsMXlfMnAxYzR0eSk7NG0xZzVkNXN0cjJ5KCRmNGx0NXIpO300ZigkZ2RfdjVyczQybj49YSYmKCR0aDRzLT40bTFnNV9uNWcxdDR2NXx8JHRoNHMtPjRtMWc1X2dyNXlzYzFsNXx8NHNfbjNtNXI0YygkdGg0cy0+NG0xZzVfdGhyNXNoMmxkKXx8NHNfbjNtNXI0YygkdGg0cy0+NG0xZzVfYnI0Z2h0bjVzcyl8fDRzX24zbTVyNGMoJHRoNHMtPjRtMWc1X2MybnRyMXN0KXx8ITVtcHR5KCR0aDRzLT40bTFnNV90NG50X2MybDJyKSkpeyR0aDRzLT5sMmcuPSctIDFwcGx5IHQ0bnQsIGw0Z2h0LCBjMm50cjFzdCBjMnJyNWN0NDJuLCBuNWcxdDR2NSwgZ3I1eXNjMWw1IDFuZCB0aHI1c2gybGQ8YnIgLz4nOzRmKCE1bXB0eSgkdGg0cy0+NG0xZzVfdDRudF9jMmwycikpbDRzdCgkdDRudF9yNWQsJHQ0bnRfZ3I1NW4sJHQ0bnRfYmwzNSk9JHRoNHMtPmc1dGMybDJycygkdGg0cy0+NG0xZzVfdDRudF9jMmwycik7ZjJyKCR5PTA7JHk8JHRoNHMtPjRtMWc1X2RzdF95OyR5Kyspe2YycigkeD0wOyR4PCR0aDRzLT40bTFnNV9kc3RfeDskeCsrKXs0ZigkdGg0cy0+NG0xZzVfZ3I1eXNjMWw1KXskcDR4NWw9NG0xZzVjMmwycnNmMnI0bmQ1eCgkNG0xZzVfZHN0LDRtMWc1YzJsMnIxdCgkNG0xZzVfZHN0LCR4LCR5KSk7JHI9JGc9JGI9cjIzbmQoKDAuYTZhaSokcDR4NWxbJ3I1ZCddKSsoMC43Nml1KiRwNHg1bFsnZ3I1NW4nXSkrKDAuMDdhNiokcDR4NWxbJ2JsMzUnXSkpOyRjMmwycj00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkNG0xZzVfZHN0LCRyLCRnLCRiLCRwNHg1bFsnMWxwaDEnXSk7NG0xZzVzNXRwNHg1bCgkNG0xZzVfZHN0LCR4LCR5LCRjMmwycik7M25zNXQoJGMybDJyKTszbnM1dCgkcDR4NWwpO300Zig0c19uM201cjRjKCR0aDRzLT40bTFnNV90aHI1c2gybGQpKXskcDR4NWw9NG0xZzVjMmwycnNmMnI0bmQ1eCgkNG0xZzVfZHN0LDRtMWc1YzJsMnIxdCgkNG0xZzVfZHN0LCR4LCR5KSk7JGM9KHIyM25kKCRwNHg1bFsncjVkJ10rJHA0eDVsWydncjU1biddKyRwNHg1bFsnYmwzNSddKS9vKS02YTc7JHI9JGc9JGI9KCRjPiR0aDRzLT40bTFnNV90aHI1c2gybGQ/YWlpOjApOyRjMmwycj00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkNG0xZzVfZHN0LCRyLCRnLCRiLCRwNHg1bFsnMWxwaDEnXSk7NG0xZzVzNXRwNHg1bCgkNG0xZzVfZHN0LCR4LCR5LCRjMmwycik7M25zNXQoJGMybDJyKTszbnM1dCgkcDR4NWwpO300Zig0c19uM201cjRjKCR0aDRzLT40bTFnNV9icjRnaHRuNXNzKSl7JHA0eDVsPTRtMWc1YzJsMnJzZjJyNG5kNXgoJDRtMWc1X2RzdCw0bTFnNWMybDJyMXQoJDRtMWc1X2RzdCwkeCwkeSkpOyRyPW0xeChtNG4ocjIzbmQoJHA0eDVsWydyNWQnXSsoKCR0aDRzLT40bTFnNV9icjRnaHRuNXNzKmEpKSksYWlpKSwwKTskZz1tMXgobTRuKHIyM25kKCRwNHg1bFsnZ3I1NW4nXSsoKCR0aDRzLT40bTFnNV9icjRnaHRuNXNzKmEpKSksYWlpKSwwKTskYj1tMXgobTRuKHIyM25kKCRwNHg1bFsnYmwzNSddKygoJHRoNHMtPjRtMWc1X2JyNGdodG41c3MqYSkpKSxhaWkpLDApOyRjMmwycj00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkNG0xZzVfZHN0LCRyLCRnLCRiLCRwNHg1bFsnMWxwaDEnXSk7NG0xZzVzNXRwNHg1bCgkNG0xZzVfZHN0LCR4LCR5LCRjMmwycik7M25zNXQoJGMybDJyKTszbnM1dCgkcDR4NWwpO300Zig0c19uM201cjRjKCR0aDRzLT40bTFnNV9jMm50cjFzdCkpeyRwNHg1bD00bTFnNWMybDJyc2YycjRuZDV4KCQ0bTFnNV9kc3QsNG0xZzVjMmwycjF0KCQ0bTFnNV9kc3QsJHgsJHkpKTskcj1tMXgobTRuKHIyM25kKCgkdGg0cy0+NG0xZzVfYzJudHIxc3QrNmE4KSokcDR4NWxbJ3I1ZCddLzZhOCksYWlpKSwwKTskZz1tMXgobTRuKHIyM25kKCgkdGg0cy0+NG0xZzVfYzJudHIxc3QrNmE4KSokcDR4NWxbJ2dyNTVuJ10vNmE4KSxhaWkpLDApOyRiPW0xeChtNG4ocjIzbmQoKCR0aDRzLT40bTFnNV9jMm50cjFzdCs2YTgpKiRwNHg1bFsnYmwzNSddLzZhOCksYWlpKSwwKTskYzJsMnI9NG0xZzVjMmwycjFsbDJjMXQ1MWxwaDEoJDRtMWc1X2RzdCwkciwkZywkYiwkcDR4NWxbJzFscGgxJ10pOzRtMWc1czV0cDR4NWwoJDRtMWc1X2RzdCwkeCwkeSwkYzJsMnIpOzNuczV0KCRjMmwycik7M25zNXQoJHA0eDVsKTt9NGYoITVtcHR5KCR0aDRzLT40bTFnNV90NG50X2MybDJyKSl7JHA0eDVsPTRtMWc1YzJsMnJzZjJyNG5kNXgoJDRtMWc1X2RzdCw0bTFnNWMybDJyMXQoJDRtMWc1X2RzdCwkeCwkeSkpOyRyPW00bihyMjNuZCgkdDRudF9yNWQqJHA0eDVsWydyNWQnXS82ZTkpLGFpaSk7JGc9bTRuKHIyM25kKCR0NG50X2dyNTVuKiRwNHg1bFsnZ3I1NW4nXS82ZTkpLGFpaSk7JGI9bTRuKHIyM25kKCR0NG50X2JsMzUqJHA0eDVsWydibDM1J10vNmU5KSxhaWkpOyRjMmwycj00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkNG0xZzVfZHN0LCRyLCRnLCRiLCRwNHg1bFsnMWxwaDEnXSk7NG0xZzVzNXRwNHg1bCgkNG0xZzVfZHN0LCR4LCR5LCRjMmwycik7M25zNXQoJGMybDJyKTszbnM1dCgkcDR4NWwpO300ZighNW1wdHkoJHRoNHMtPjRtMWc1X241ZzF0NHY1KSl7JHA0eDVsPTRtMWc1YzJsMnJzZjJyNG5kNXgoJDRtMWc1X2RzdCw0bTFnNWMybDJyMXQoJDRtMWc1X2RzdCwkeCwkeSkpOyRyPXIyM25kKGFpaS0kcDR4NWxbJ3I1ZCddKTskZz1yMjNuZChhaWktJHA0eDVsWydncjU1biddKTskYj1yMjNuZChhaWktJHA0eDVsWydibDM1J10pOyRjMmwycj00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkNG0xZzVfZHN0LCRyLCRnLCRiLCRwNHg1bFsnMWxwaDEnXSk7NG0xZzVzNXRwNHg1bCgkNG0xZzVfZHN0LCR4LCR5LCRjMmwycik7M25zNXQoJGMybDJyKTszbnM1dCgkcDR4NWwpO319fX00ZigkZ2RfdjVyczQybj49YSYmITVtcHR5KCR0aDRzLT40bTFnNV9iMnJkNXIpKXtsNHN0KCRjdCwkY3IsJGNiLCRjbCk9JHRoNHMtPmc1dDJmZnM1dHMoJHRoNHMtPjRtMWc1X2IycmQ1ciwkdGg0cy0+NG0xZzVfZHN0X3gsJHRoNHMtPjRtMWc1X2RzdF95LHRyMzUsZjFsczUpOyR0aDRzLT5sMmcuPSctIDFkZCBiMnJkNXIgOiAnLiRjdC4nICcuJGNyLicgJy4kY2IuJyAnLiRjbC4nPGJyIC8+JzskdGg0cy0+NG0xZzVfZHN0X3g9JHRoNHMtPjRtMWc1X2RzdF94KyRjbCskY3I7JHRoNHMtPjRtMWc1X2RzdF95PSR0aDRzLT40bTFnNV9kc3RfeSskY3QrJGNiOzRmKCE1bXB0eSgkdGg0cy0+NG0xZzVfYjJyZDVyX2MybDJyKSlsNHN0KCRyNWQsJGdyNTVuLCRibDM1KT0kdGg0cy0+ZzV0YzJsMnJzKCR0aDRzLT40bTFnNV9iMnJkNXJfYzJsMnIpOyQycDFjNHR5PSg0c19uM201cjRjKCR0aDRzLT40bTFnNV9iMnJkNXJfMnAxYzR0eSk/KDRudCkoNmE3LSR0aDRzLT40bTFnNV9iMnJkNXJfMnAxYzR0eS82MDAqNmE3KTowKTskdG1wPSR0aDRzLT40bTFnNWNyNTF0NW41dygkdGg0cy0+NG0xZzVfZHN0X3gsJHRoNHMtPjRtMWc1X2RzdF95KTskYjFja2dyMjNuZD00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkdG1wLCRyNWQsJGdyNTVuLCRibDM1LCQycDFjNHR5KTs0bTFnNWY0bGw1ZHI1Y3QxbmdsNSgkdG1wLDAsMCwkdGg0cy0+NG0xZzVfZHN0X3gsJHRoNHMtPjRtMWc1X2RzdF95LCRiMWNrZ3IyM25kKTs0bTFnNWMycHkoJHRtcCwkNG0xZzVfZHN0LCRjbCwkY3QsMCwwLCR0aDRzLT40bTFnNV9kc3RfeC0kY3ItJGNsLCR0aDRzLT40bTFnNV9kc3RfeS0kY2ItJGN0KTskNG0xZzVfZHN0PSR0aDRzLT40bTFnNXRyMW5zZjVyKCR0bXAsJDRtMWc1X2RzdCk7fTRmKCRnZF92NXJzNDJuPj1hJiYhNW1wdHkoJHRoNHMtPjRtMWc1X2IycmQ1cl90cjFuc3AxcjVudCkpe2w0c3QoJGN0LCRjciwkY2IsJGNsKT0kdGg0cy0+ZzV0MmZmczV0cygkdGg0cy0+NG0xZzVfYjJyZDVyX3RyMW5zcDFyNW50LCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3ksdHIzNSxmMWxzNSk7JHRoNHMtPmwyZy49Jy0gMWRkIHRyMW5zcDFyNW50IGIycmQ1ciA6ICcuJGN0LicgJy4kY3IuJyAnLiRjYi4nICcuJGNsLic8YnIgLz4nOyR0bXA9JHRoNHMtPjRtMWc1Y3I1MXQ1bjV3KCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3kpOzRtMWc1YzJweSgkdG1wLCQ0bTFnNV9kc3QsJGNsLCRjdCwkY2wsJGN0LCR0aDRzLT40bTFnNV9kc3RfeC0kY3ItJGNsLCR0aDRzLT40bTFnNV9kc3RfeS0kY2ItJGN0KTskMnAxYzR0eT02MDA7ZjJyKCR5PSRjdC02OyR5Pj0wOyR5LS0peyQ0bD0oNG50KSgkY3Q+MD8oJGNsKigkeS8kY3QpKTowKTskNHI9KDRudCkoJGN0PjA/KCRjciooJHkvJGN0KSk6MCk7ZjJyKCR4PSQ0bDskeDwkdGg0cy0+NG0xZzVfZHN0X3gtJDRyOyR4KyspeyRwNHg1bD00bTFnNWMybDJyc2YycjRuZDV4KCQ0bTFnNV9kc3QsNG0xZzVjMmwycjF0KCQ0bTFnNV9kc3QsJHgsJHkpKTskMWxwaDE9KDYtKCRwNHg1bFsnMWxwaDEnXS82YTcpKSokMnAxYzR0eS82MDA7NGYoJDFscGgxPjApezRmKCQxbHBoMT42KSQxbHBoMT02OyRjMmwycj00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkdG1wLCRwNHg1bFsncjVkJ10sJHA0eDVsWydncjU1biddLCRwNHg1bFsnYmwzNSddLHIyM25kKCg2LSQxbHBoMSkqNmE3KSk7NG0xZzVzNXRwNHg1bCgkdG1wLCR4LCR5LCRjMmwycik7fX00ZigkMnAxYzR0eT4wKSQycDFjNHR5PSQycDFjNHR5LSg2MDAvJGN0KTt9JDJwMWM0dHk9NjAwO2YycigkeD0kdGg0cy0+NG0xZzVfZHN0X3gtJGNyOyR4PCR0aDRzLT40bTFnNV9kc3RfeDskeCsrKXskNHQ9KDRudCkoJGNyPjA/KCRjdCooKCR0aDRzLT40bTFnNV9kc3RfeC0keC02KS8kY3IpKTowKTskNGI9KDRudCkoJGNyPjA/KCRjYiooKCR0aDRzLT40bTFnNV9kc3RfeC0keC02KS8kY3IpKTowKTtmMnIoJHk9JDR0OyR5PCR0aDRzLT40bTFnNV9kc3RfeS0kNGI7JHkrKyl7JHA0eDVsPTRtMWc1YzJsMnJzZjJyNG5kNXgoJDRtMWc1X2RzdCw0bTFnNWMybDJyMXQoJDRtMWc1X2RzdCwkeCwkeSkpOyQxbHBoMT0oNi0oJHA0eDVsWycxbHBoMSddLzZhNykpKiQycDFjNHR5LzYwMDs0ZigkMWxwaDE+MCl7NGYoJDFscGgxPjYpJDFscGgxPTY7JGMybDJyPTRtMWc1YzJsMnIxbGwyYzF0NTFscGgxKCR0bXAsJHA0eDVsWydyNWQnXSwkcDR4NWxbJ2dyNTVuJ10sJHA0eDVsWydibDM1J10scjIzbmQoKDYtJDFscGgxKSo2YTcpKTs0bTFnNXM1dHA0eDVsKCR0bXAsJHgsJHksJGMybDJyKTt9fTRmKCQycDFjNHR5PjApJDJwMWM0dHk9JDJwMWM0dHktKDYwMC8kY3IpO30kMnAxYzR0eT02MDA7ZjJyKCR5PSR0aDRzLT40bTFnNV9kc3RfeS0kY2I7JHk8JHRoNHMtPjRtMWc1X2RzdF95OyR5KyspeyQ0bD0oNG50KSgkY2I+MD8oJGNsKigoJHRoNHMtPjRtMWc1X2RzdF95LSR5LTYpLyRjYikpOjApOyQ0cj0oNG50KSgkY2I+MD8oJGNyKigoJHRoNHMtPjRtMWc1X2RzdF95LSR5LTYpLyRjYikpOjApO2YycigkeD0kNGw7JHg8JHRoNHMtPjRtMWc1X2RzdF94LSQ0cjskeCsrKXskcDR4NWw9NG0xZzVjMmwycnNmMnI0bmQ1eCgkNG0xZzVfZHN0LDRtMWc1YzJsMnIxdCgkNG0xZzVfZHN0LCR4LCR5KSk7JDFscGgxPSg2LSgkcDR4NWxbJzFscGgxJ10vNmE3KSkqJDJwMWM0dHkvNjAwOzRmKCQxbHBoMT4wKXs0ZigkMWxwaDE+NikkMWxwaDE9NjskYzJsMnI9NG0xZzVjMmwycjFsbDJjMXQ1MWxwaDEoJHRtcCwkcDR4NWxbJ3I1ZCddLCRwNHg1bFsnZ3I1NW4nXSwkcDR4NWxbJ2JsMzUnXSxyMjNuZCgoNi0kMWxwaDEpKjZhNykpOzRtMWc1czV0cDR4NWwoJHRtcCwkeCwkeSwkYzJsMnIpO319NGYoJDJwMWM0dHk+MCkkMnAxYzR0eT0kMnAxYzR0eS0oNjAwLyRjYik7fSQycDFjNHR5PTYwMDtmMnIoJHg9JGNsLTY7JHg+PTA7JHgtLSl7JDR0PSg0bnQpKCRjbD4wPygkY3QqKCR4LyRjbCkpOjApOyQ0Yj0oNG50KSgkY2w+MD8oJGNiKigkeC8kY2wpKTowKTtmMnIoJHk9JDR0OyR5PCR0aDRzLT40bTFnNV9kc3RfeS0kNGI7JHkrKyl7JHA0eDVsPTRtMWc1YzJsMnJzZjJyNG5kNXgoJDRtMWc1X2RzdCw0bTFnNWMybDJyMXQoJDRtMWc1X2RzdCwkeCwkeSkpOyQxbHBoMT0oNi0oJHA0eDVsWycxbHBoMSddLzZhNykpKiQycDFjNHR5LzYwMDs0ZigkMWxwaDE+MCl7NGYoJDFscGgxPjYpJDFscGgxPTY7JGMybDJyPTRtMWc1YzJsMnIxbGwyYzF0NTFscGgxKCR0bXAsJHA0eDVsWydyNWQnXSwkcDR4NWxbJ2dyNTVuJ10sJHA0eDVsWydibDM1J10scjIzbmQoKDYtJDFscGgxKSo2YTcpKTs0bTFnNXM1dHA0eDVsKCR0bXAsJHgsJHksJGMybDJyKTt9fTRmKCQycDFjNHR5PjApJDJwMWM0dHk9JDJwMWM0dHktKDYwMC8kY2wpO30kNG0xZzVfZHN0PSR0aDRzLT40bTFnNXRyMW5zZjVyKCR0bXAsJDRtMWc1X2RzdCk7fTRmKCRnZF92NXJzNDJuPj1hJiY0c19uM201cjRjKCR0aDRzLT40bTFnNV9mcjFtNSkpezRmKDRzXzFycjF5KCR0aDRzLT40bTFnNV9mcjFtNV9jMmwycnMpKXskdjFycz0kdGg0cy0+NG0xZzVfZnIxbTVfYzJsMnJzOyR0aDRzLT5sMmcuPSctIDFkZCBmcjFtNSA6ICcuNG1wbDJkNSgnICcsJHRoNHMtPjRtMWc1X2ZyMW01X2MybDJycykuJzxiciAvPic7fTVsczV7JHRoNHMtPmwyZy49Jy0gMWRkIGZyMW01IDogJy4kdGg0cy0+NG0xZzVfZnIxbTVfYzJsMnJzLic8YnIgLz4nOyR2MXJzPTV4cGwyZDUoJyAnLCR0aDRzLT40bTFnNV9mcjFtNV9jMmwycnMpO30kbmI9czR6NTJmKCR2MXJzKTskdGg0cy0+NG0xZzVfZHN0X3g9JHRoNHMtPjRtMWc1X2RzdF94KygkbmIqYSk7JHRoNHMtPjRtMWc1X2RzdF95PSR0aDRzLT40bTFnNV9kc3RfeSsoJG5iKmEpOyR0bXA9JHRoNHMtPjRtMWc1Y3I1MXQ1bjV3KCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3kpOzRtMWc1YzJweSgkdG1wLCQ0bTFnNV9kc3QsJG5iLCRuYiwwLDAsJHRoNHMtPjRtMWc1X2RzdF94LSgkbmIqYSksJHRoNHMtPjRtMWc1X2RzdF95LSgkbmIqYSkpOyQycDFjNHR5PSg0c19uM201cjRjKCR0aDRzLT40bTFnNV9mcjFtNV8ycDFjNHR5KT8oNG50KSg2YTctJHRoNHMtPjRtMWc1X2ZyMW01XzJwMWM0dHkvNjAwKjZhNyk6MCk7ZjJyKCQ0PTA7JDQ8JG5iOyQ0Kyspe2w0c3QoJHI1ZCwkZ3I1NW4sJGJsMzUpPSR0aDRzLT5nNXRjMmwycnMoJHYxcnNbJDRdKTskYz00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkdG1wLCRyNWQsJGdyNTVuLCRibDM1LCQycDFjNHR5KTs0ZigkdGg0cy0+NG0xZzVfZnIxbTU9PTYpezRtMWc1bDRuNSgkdG1wLCQ0LCQ0LCR0aDRzLT40bTFnNV9kc3RfeC0kNC02LCQ0LCRjKTs0bTFnNWw0bjUoJHRtcCwkdGg0cy0+NG0xZzVfZHN0X3gtJDQtNiwkdGg0cy0+NG0xZzVfZHN0X3ktJDQtNiwkdGg0cy0+NG0xZzVfZHN0X3gtJDQtNiwkNCwkYyk7NG0xZzVsNG41KCR0bXAsJHRoNHMtPjRtMWc1X2RzdF94LSQ0LTYsJHRoNHMtPjRtMWc1X2RzdF95LSQ0LTYsJDQsJHRoNHMtPjRtMWc1X2RzdF95LSQ0LTYsJGMpOzRtMWc1bDRuNSgkdG1wLCQ0LCQ0LCQ0LCR0aDRzLT40bTFnNV9kc3RfeS0kNC02LCRjKTt9NWxzNXs0bTFnNWw0bjUoJHRtcCwkNCwkNCwkdGg0cy0+NG0xZzVfZHN0X3gtJDQtNiwkNCwkYyk7NG0xZzVsNG41KCR0bXAsJHRoNHMtPjRtMWc1X2RzdF94LSRuYiskNCwkdGg0cy0+NG0xZzVfZHN0X3ktJG5iKyQ0LCR0aDRzLT40bTFnNV9kc3RfeC0kbmIrJDQsJG5iLSQ0LCRjKTs0bTFnNWw0bjUoJHRtcCwkdGg0cy0+NG0xZzVfZHN0X3gtJG5iKyQ0LCR0aDRzLT40bTFnNV9kc3RfeS0kbmIrJDQsJG5iLSQ0LCR0aDRzLT40bTFnNV9kc3RfeS0kbmIrJDQsJGMpOzRtMWc1bDRuNSgkdG1wLCQ0LCQ0LCQ0LCR0aDRzLT40bTFnNV9kc3RfeS0kNC02LCRjKTt9fSQ0bTFnNV9kc3Q9JHRoNHMtPjRtMWc1dHIxbnNmNXIoJHRtcCwkNG0xZzVfZHN0KTt9NGYoJGdkX3Y1cnM0Mm4+PWEmJiR0aDRzLT40bTFnNV9iNXY1bD4wKXs0Zig1bXB0eSgkdGg0cy0+NG0xZzVfYjV2NWxfYzJsMnI2KSkkdGg0cy0+NG0xZzVfYjV2NWxfYzJsMnI2PScjRkZGRkZGJzs0Zig1bXB0eSgkdGg0cy0+NG0xZzVfYjV2NWxfYzJsMnJhKSkkdGg0cy0+NG0xZzVfYjV2NWxfYzJsMnJhPScjMDAwMDAwJztsNHN0KCRyNWQ2LCRncjU1bjYsJGJsMzU2KT0kdGg0cy0+ZzV0YzJsMnJzKCR0aDRzLT40bTFnNV9iNXY1bF9jMmwycjYpO2w0c3QoJHI1ZGEsJGdyNTVuYSwkYmwzNWEpPSR0aDRzLT5nNXRjMmwycnMoJHRoNHMtPjRtMWc1X2I1djVsX2MybDJyYSk7JHRtcD0kdGg0cy0+NG0xZzVjcjUxdDVuNXcoJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSk7NG0xZzVjMnB5KCR0bXAsJDRtMWc1X2RzdCwwLDAsMCwwLCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3kpOzRtMWc1MWxwaDFibDVuZDRuZygkdG1wLHRyMzUpO2YycigkND0wOyQ0PCR0aDRzLT40bTFnNV9iNXY1bDskNCsrKXskMWxwaDE9cjIzbmQoKCQ0LyR0aDRzLT40bTFnNV9iNXY1bCkqNmE3KTskYzY9NG0xZzVjMmwycjFsbDJjMXQ1MWxwaDEoJHRtcCwkcjVkNiwkZ3I1NW42LCRibDM1NiwkMWxwaDEpOyRjYT00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkdG1wLCRyNWRhLCRncjU1bmEsJGJsMzVhLCQxbHBoMSk7NG0xZzVsNG41KCR0bXAsJDQsJDQsJHRoNHMtPjRtMWc1X2RzdF94LSQ0LTYsJDQsJGM2KTs0bTFnNWw0bjUoJHRtcCwkdGg0cy0+NG0xZzVfZHN0X3gtJDQtNiwkdGg0cy0+NG0xZzVfZHN0X3ktJDQsJHRoNHMtPjRtMWc1X2RzdF94LSQ0LTYsJDQsJGNhKTs0bTFnNWw0bjUoJHRtcCwkdGg0cy0+NG0xZzVfZHN0X3gtJDQtNiwkdGg0cy0+NG0xZzVfZHN0X3ktJDQtNiwkNCwkdGg0cy0+NG0xZzVfZHN0X3ktJDQtNiwkY2EpOzRtMWc1bDRuNSgkdG1wLCQ0LCQ0LCQ0LCR0aDRzLT40bTFnNV9kc3RfeS0kNC02LCRjNik7fSQ0bTFnNV9kc3Q9JHRoNHMtPjRtMWc1dHIxbnNmNXIoJHRtcCwkNG0xZzVfZHN0KTt9NGYoJHRoNHMtPjRtMWc1X3cxdDVybTFyayE9JycmJmY0bDVfNXg0c3RzKCR0aDRzLT40bTFnNV93MXQ1cm0xcmspKXskdGg0cy0+bDJnLj0nLSAxZGQgdzF0NXJtMXJrPGJyIC8+JzskdGg0cy0+NG0xZzVfdzF0NXJtMXJrX3AyczR0NDJuPXN0cnQybDJ3NXIoJHRoNHMtPjRtMWc1X3cxdDVybTFya19wMnM0dDQybik7JHcxdDVybTFya180bmYyPWc1dDRtMWc1czR6NSgkdGg0cy0+NG0xZzVfdzF0NXJtMXJrKTskdzF0NXJtMXJrX3R5cDU9KDFycjF5X2s1eV81eDRzdHMoYSwkdzF0NXJtMXJrXzRuZjIpPyR3MXQ1cm0xcmtfNG5mMlthXTpuM2xsKTskdzF0NXJtMXJrX2NoNWNrNWQ9ZjFsczU7NGYoJHcxdDVybTFya190eXA1PT1JTUFHRVRZUEVfR0lGKXs0ZighZjNuY3Q0Mm5fNXg0c3RzKCc0bTFnNWNyNTF0NWZyMm1nNGYnKSl7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ3cxdDVybTFya19uMl9jcjUxdDVfczNwcDJydCcsMXJyMXkoJ0dJRicpKTt9NWxzNXskZjRsdDVyPUA0bTFnNWNyNTF0NWZyMm1nNGYoJHRoNHMtPjRtMWc1X3cxdDVybTFyayk7NGYoISRmNGx0NXIpeyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCd3MXQ1cm0xcmtfY3I1MXQ1XzVycjJyJywxcnIxeSgnR0lGJykpO301bHM1eyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDt3MXQ1cm0xcmsgczIzcmM1IDRtMWc1IDRzIEdJRjxiciAvPic7JHcxdDVybTFya19jaDVjazVkPXRyMzU7fX19NWxzNSA0ZigkdzF0NXJtMXJrX3R5cDU9PUlNQUdFVFlQRV9KUEVHKXs0ZighZjNuY3Q0Mm5fNXg0c3RzKCc0bTFnNWNyNTF0NWZyMm1qcDVnJykpeyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCd3MXQ1cm0xcmtfbjJfY3I1MXQ1X3MzcHAycnQnLDFycjF5KCdKUEVHJykpO301bHM1eyRmNGx0NXI9QDRtMWc1Y3I1MXQ1ZnIybWpwNWcoJHRoNHMtPjRtMWc1X3cxdDVybTFyayk7NGYoISRmNGx0NXIpeyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCd3MXQ1cm0xcmtfY3I1MXQ1XzVycjJyJywxcnIxeSgnSlBFRycpKTt9NWxzNXskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dzF0NXJtMXJrIHMyM3JjNSA0bTFnNSA0cyBKUEVHPGJyIC8+JzskdzF0NXJtMXJrX2NoNWNrNWQ9dHIzNTt9fX01bHM1IDRmKCR3MXQ1cm0xcmtfdHlwNT09SU1BR0VUWVBFX1BORyl7NGYoIWYzbmN0NDJuXzV4NHN0cygnNG0xZzVjcjUxdDVmcjJtcG5nJykpeyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCd3MXQ1cm0xcmtfbjJfY3I1MXQ1X3MzcHAycnQnLDFycjF5KCdQTkcnKSk7fTVsczV7JGY0bHQ1cj1ANG0xZzVjcjUxdDVmcjJtcG5nKCR0aDRzLT40bTFnNV93MXQ1cm0xcmspOzRmKCEkZjRsdDVyKXskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgndzF0NXJtMXJrX2NyNTF0NV81cnIycicsMXJyMXkoJ1BORycpKTt9NWxzNXskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dzF0NXJtMXJrIHMyM3JjNSA0bTFnNSA0cyBQTkc8YnIgLz4nOyR3MXQ1cm0xcmtfY2g1Y2s1ZD10cjM1O319fTVsczUgNGYoJHcxdDVybTFya190eXA1PT1JTUFHRVRZUEVfQk1QKXs0ZighbTV0aDJkXzV4NHN0cygkdGg0cywnNG0xZzVjcjUxdDVmcjJtYm1wJykpeyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCd3MXQ1cm0xcmtfbjJfY3I1MXQ1X3MzcHAycnQnLDFycjF5KCdCTVAnKSk7fTVsczV7JGY0bHQ1cj1AJHRoNHMtPjRtMWc1Y3I1MXQ1ZnIybWJtcCgkdGg0cy0+NG0xZzVfdzF0NXJtMXJrKTs0ZighJGY0bHQ1cil7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ3cxdDVybTFya19jcjUxdDVfNXJyMnInLDFycjF5KCdCTVAnKSk7fTVsczV7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3cxdDVybTFyayBzMjNyYzUgNG0xZzUgNHMgQk1QPGJyIC8+JzskdzF0NXJtMXJrX2NoNWNrNWQ9dHIzNTt9fX01bHM1eyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCd3MXQ1cm0xcmtfNG52MWw0ZCcpO300ZigkdzF0NXJtMXJrX2NoNWNrNWQpeyR3MXQ1cm0xcmtfZHN0X3c0ZHRoPSR3MXQ1cm0xcmtfc3JjX3c0ZHRoPTRtMWc1c3goJGY0bHQ1cik7JHcxdDVybTFya19kc3RfaDU0Z2h0PSR3MXQ1cm0xcmtfc3JjX2g1NGdodD00bTFnNXN5KCRmNGx0NXIpOzRmKCghJHRoNHMtPjRtMWc1X3cxdDVybTFya19uMl96MjJtXzIzdCYmKCR3MXQ1cm0xcmtfZHN0X3c0ZHRoPiR0aDRzLT40bTFnNV9kc3RfeHx8JHcxdDVybTFya19kc3RfaDU0Z2h0PiR0aDRzLT40bTFnNV9kc3RfeSkpfHwoISR0aDRzLT40bTFnNV93MXQ1cm0xcmtfbjJfejIybV80biYmJHcxdDVybTFya19kc3RfdzRkdGg8JHRoNHMtPjRtMWc1X2RzdF94JiYkdzF0NXJtMXJrX2RzdF9oNTRnaHQ8JHRoNHMtPjRtMWc1X2RzdF95KSl7JGMxbnYxc193NGR0aD0kdGg0cy0+NG0xZzVfZHN0X3gtMWJzKCR0aDRzLT40bTFnNV93MXQ1cm0xcmtfeCk7JGMxbnYxc19oNTRnaHQ9JHRoNHMtPjRtMWc1X2RzdF95LTFicygkdGg0cy0+NG0xZzVfdzF0NXJtMXJrX3kpOzRmKCgkdzF0NXJtMXJrX3NyY193NGR0aC8kYzFudjFzX3c0ZHRoKT4oJHcxdDVybTFya19zcmNfaDU0Z2h0LyRjMW52MXNfaDU0Z2h0KSl7JHcxdDVybTFya19kc3RfdzRkdGg9JGMxbnYxc193NGR0aDskdzF0NXJtMXJrX2RzdF9oNTRnaHQ9NG50djFsKCR3MXQ1cm0xcmtfc3JjX2g1NGdodCooJGMxbnYxc193NGR0aC8kdzF0NXJtMXJrX3NyY193NGR0aCkpO301bHM1eyR3MXQ1cm0xcmtfZHN0X2g1NGdodD0kYzFudjFzX2g1NGdodDskdzF0NXJtMXJrX2RzdF93NGR0aD00bnR2MWwoJHcxdDVybTFya19zcmNfdzRkdGgqKCRjMW52MXNfaDU0Z2h0LyR3MXQ1cm0xcmtfc3JjX2g1NGdodCkpO30kdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7dzF0NXJtMXJrIHI1czR6NWQgZnIybSAnLiR3MXQ1cm0xcmtfc3JjX3c0ZHRoLid4Jy4kdzF0NXJtMXJrX3NyY19oNTRnaHQuJyB0MiAnLiR3MXQ1cm0xcmtfZHN0X3c0ZHRoLid4Jy4kdzF0NXJtMXJrX2RzdF9oNTRnaHQuJzxiciAvPic7fSR3MXQ1cm0xcmtfeD0wOyR3MXQ1cm0xcmtfeT0wOzRmKDRzX24zbTVyNGMoJHRoNHMtPjRtMWc1X3cxdDVybTFya194KSl7NGYoJHRoNHMtPjRtMWc1X3cxdDVybTFya194PDApeyR3MXQ1cm0xcmtfeD0kdGg0cy0+NG0xZzVfZHN0X3gtJHcxdDVybTFya19kc3RfdzRkdGgrJHRoNHMtPjRtMWc1X3cxdDVybTFya194O301bHM1eyR3MXQ1cm0xcmtfeD0kdGg0cy0+NG0xZzVfdzF0NXJtMXJrX3g7fX01bHM1ezRmKHN0cnAycygkdGg0cy0+NG0xZzVfdzF0NXJtMXJrX3AyczR0NDJuLCdyJykhPT1mMWxzNSl7JHcxdDVybTFya194PSR0aDRzLT40bTFnNV9kc3RfeC0kdzF0NXJtMXJrX2RzdF93NGR0aDt9NWxzNSA0ZihzdHJwMnMoJHRoNHMtPjRtMWc1X3cxdDVybTFya19wMnM0dDQybiwnbCcpIT09ZjFsczUpeyR3MXQ1cm0xcmtfeD0wO301bHM1eyR3MXQ1cm0xcmtfeD0oJHRoNHMtPjRtMWc1X2RzdF94LSR3MXQ1cm0xcmtfZHN0X3c0ZHRoKS9hO319NGYoNHNfbjNtNXI0YygkdGg0cy0+NG0xZzVfdzF0NXJtMXJrX3kpKXs0ZigkdGg0cy0+NG0xZzVfdzF0NXJtMXJrX3k8MCl7JHcxdDVybTFya195PSR0aDRzLT40bTFnNV9kc3RfeS0kdzF0NXJtMXJrX2RzdF9oNTRnaHQrJHRoNHMtPjRtMWc1X3cxdDVybTFya195O301bHM1eyR3MXQ1cm0xcmtfeT0kdGg0cy0+NG0xZzVfdzF0NXJtMXJrX3k7fX01bHM1ezRmKHN0cnAycygkdGg0cy0+NG0xZzVfdzF0NXJtMXJrX3AyczR0NDJuLCdiJykhPT1mMWxzNSl7JHcxdDVybTFya195PSR0aDRzLT40bTFnNV9kc3RfeS0kdzF0NXJtMXJrX2RzdF9oNTRnaHQ7fTVsczUgNGYoc3RycDJzKCR0aDRzLT40bTFnNV93MXQ1cm0xcmtfcDJzNHQ0Mm4sJ3QnKSE9PWYxbHM1KXskdzF0NXJtMXJrX3k9MDt9NWxzNXskdzF0NXJtMXJrX3k9KCR0aDRzLT40bTFnNV9kc3RfeS0kdzF0NXJtMXJrX2RzdF9oNTRnaHQpL2E7fX00bTFnNTFscGgxYmw1bmQ0bmcoJDRtMWc1X2RzdCx0cjM1KTs0bTFnNWMycHlyNXMxbXBsNWQoJDRtMWc1X2RzdCwkZjRsdDVyLCR3MXQ1cm0xcmtfeCwkdzF0NXJtMXJrX3ksMCwwLCR3MXQ1cm0xcmtfZHN0X3c0ZHRoLCR3MXQ1cm0xcmtfZHN0X2g1NGdodCwkdzF0NXJtMXJrX3NyY193NGR0aCwkdzF0NXJtMXJrX3NyY19oNTRnaHQpO301bHM1eyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCd3MXQ1cm0xcmtfNG52MWw0ZCcpO319NGYoITVtcHR5KCR0aDRzLT40bTFnNV90NXh0KSl7JHRoNHMtPmwyZy49Jy0gMWRkIHQ1eHQ8YnIgLz4nOyRzcmNfczR6NT0kdGg0cy0+ZjRsNV9zcmNfczR6NS82MGF1OyRzcmNfczR6NV9tYj1uM21iNXJfZjJybTF0KCRzcmNfczR6NS82MGF1LDYsIi4iLCIgIik7JHNyY19zNHo1X2tiPW4zbWI1cl9mMnJtMXQoJHNyY19zNHo1LDYsIi4iLCIgIik7JHNyY19zNHo1X2gzbTFuPSgkc3JjX3M0ejU+NjBhdT8kc3JjX3M0ejVfbWIuIiBNQiI6JHNyY19zNHo1X2tiLiIga2IiKTskdGg0cy0+NG0xZzVfdDV4dD1zdHJfcjVwbDFjNSgxcnIxeSgnW3NyY19uMW01XScsJ1tzcmNfbjFtNV9iMmR5XScsJ1tzcmNfbjFtNV81eHRdJywnW3NyY19wMXRobjFtNV0nLCdbc3JjX200bTVdJywnW3NyY19zNHo1XScsJ1tzcmNfczR6NV9rYl0nLCdbc3JjX3M0ejVfbWJdJywnW3NyY19zNHo1X2gzbTFuXScsJ1tzcmNfeF0nLCdbc3JjX3ldJywnW3NyY19wNHg1bHNdJywnW3NyY190eXA1XScsJ1tzcmNfYjR0c10nLCdbZHN0X3AxdGhdJywnW2RzdF9uMW01X2IyZHldJywnW2RzdF9uMW01XzV4dF0nLCdbZHN0X24xbTVdJywnW2RzdF9wMXRobjFtNV0nLCdbZHN0X3hdJywnW2RzdF95XScsJ1tkMXQ1XScsJ1t0NG01XScsJ1toMnN0XScsJ1tzNXJ2NXJdJywnWzRwXScsJ1tnZF92NXJzNDJuXScpLDFycjF5KCR0aDRzLT5mNGw1X3NyY19uMW01LCR0aDRzLT5mNGw1X3NyY19uMW01X2IyZHksJHRoNHMtPmY0bDVfc3JjX24xbTVfNXh0LCR0aDRzLT5mNGw1X3NyY19wMXRobjFtNSwkdGg0cy0+ZjRsNV9zcmNfbTRtNSwkdGg0cy0+ZjRsNV9zcmNfczR6NSwkc3JjX3M0ejVfa2IsJHNyY19zNHo1X21iLCRzcmNfczR6NV9oM20xbiwkdGg0cy0+NG0xZzVfc3JjX3gsJHRoNHMtPjRtMWc1X3NyY195LCR0aDRzLT40bTFnNV9zcmNfcDR4NWxzLCR0aDRzLT40bTFnNV9zcmNfdHlwNSwkdGg0cy0+NG0xZzVfc3JjX2I0dHMsJHRoNHMtPmY0bDVfZHN0X3AxdGgsJHRoNHMtPmY0bDVfZHN0X24xbTVfYjJkeSwkdGg0cy0+ZjRsNV9kc3RfbjFtNV81eHQsJHRoNHMtPmY0bDVfZHN0X24xbTUsJHRoNHMtPmY0bDVfZHN0X3AxdGhuMW01LCR0aDRzLT40bTFnNV9kc3RfeCwkdGg0cy0+NG0xZzVfZHN0X3ksZDF0NSgnWS1tLWQnKSxkMXQ1KCdIOjQ6cycpLCg0c3M1dCgkX1NFUlZFUlsnSFRUUF9IT1NUJ10pPyRfU0VSVkVSWydIVFRQX0hPU1QnXTonbi8xJyksKDRzczV0KCRfU0VSVkVSWydTRVJWRVJfTkFNRSddKT8kX1NFUlZFUlsnU0VSVkVSX05BTUUnXTonbi8xJyksKDRzczV0KCRfU0VSVkVSWydSRU1PVEVfQUREUiddKT8kX1NFUlZFUlsnUkVNT1RFX0FERFInXTonbi8xJyksJHRoNHMtPmdkdjVyczQybih0cjM1KSksJHRoNHMtPjRtMWc1X3Q1eHQpOzRmKCE0c19uM201cjRjKCR0aDRzLT40bTFnNV90NXh0X3AxZGQ0bmcpKSR0aDRzLT40bTFnNV90NXh0X3AxZGQ0bmc9MDs0ZighNHNfbjNtNXI0YygkdGg0cy0+NG0xZzVfdDV4dF9sNG41X3NwMWM0bmcpKSR0aDRzLT40bTFnNV90NXh0X2w0bjVfc3AxYzRuZz0wOzRmKCE0c19uM201cjRjKCR0aDRzLT40bTFnNV90NXh0X3AxZGQ0bmdfeCkpJHRoNHMtPjRtMWc1X3Q1eHRfcDFkZDRuZ194PSR0aDRzLT40bTFnNV90NXh0X3AxZGQ0bmc7NGYoITRzX24zbTVyNGMoJHRoNHMtPjRtMWc1X3Q1eHRfcDFkZDRuZ195KSkkdGg0cy0+NG0xZzVfdDV4dF9wMWRkNG5nX3k9JHRoNHMtPjRtMWc1X3Q1eHRfcDFkZDRuZzskdGg0cy0+NG0xZzVfdDV4dF9wMnM0dDQybj1zdHJ0MmwydzVyKCR0aDRzLT40bTFnNV90NXh0X3AyczR0NDJuKTskdGg0cy0+NG0xZzVfdDV4dF9kNHI1Y3Q0Mm49c3RydDJsMnc1cigkdGg0cy0+NG0xZzVfdDV4dF9kNHI1Y3Q0Mm4pOyR0aDRzLT40bTFnNV90NXh0XzFsNGdubTVudD1zdHJ0MmwydzVyKCR0aDRzLT40bTFnNV90NXh0XzFsNGdubTVudCk7NGYoITRzX24zbTVyNGMoJHRoNHMtPjRtMWc1X3Q1eHRfZjJudCkmJnN0cmw1bigkdGg0cy0+NG0xZzVfdDV4dF9mMm50KT51JiZzM2JzdHIoc3RydDJsMnc1cigkdGg0cy0+NG0xZzVfdDV4dF9mMm50KSwtdSk9PScuZ2RmJyl7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3RyeSB0MiBsMjFkIGYybnQgJy4kdGg0cy0+NG0xZzVfdDV4dF9mMm50LicuLi4gJzs0ZigkdGg0cy0+NG0xZzVfdDV4dF9mMm50PUA0bTFnNWwyMWRmMm50KCR0aDRzLT40bTFnNV90NXh0X2YybnQpKXskdGg0cy0+bDJnLj0nczNjYzVzczxiciAvPic7fTVsczV7JHRoNHMtPmwyZy49JzVycjJyPGJyIC8+JzskdGg0cy0+NG0xZzVfdDV4dF9mMm50PWk7fX0kdDV4dD01eHBsMmQ1KCJcbiIsJHRoNHMtPjRtMWc1X3Q1eHQpOyRjaDFyX3c0ZHRoPTRtMWc1ZjJudHc0ZHRoKCR0aDRzLT40bTFnNV90NXh0X2YybnQpOyRjaDFyX2g1NGdodD00bTFnNWYybnRoNTRnaHQoJHRoNHMtPjRtMWc1X3Q1eHRfZjJudCk7JHQ1eHRfaDU0Z2h0PTA7JHQ1eHRfdzRkdGg9MDskbDRuNV9oNTRnaHQ9MDskbDRuNV93NGR0aD0wO2YycjUxY2goJHQ1eHQgMXMgJGs9PiR2KXs0ZigkdGg0cy0+NG0xZzVfdDV4dF9kNHI1Y3Q0Mm49PSd2Jyl7JGg9KCRjaDFyX3c0ZHRoKnN0cmw1bigkdikpOzRmKCRoPiR0NXh0X2g1NGdodCkkdDV4dF9oNTRnaHQ9JGg7JGw0bjVfdzRkdGg9JGNoMXJfaDU0Z2h0OyR0NXh0X3c0ZHRoKz0kbDRuNV93NGR0aCsoJGs8KHM0ejUyZigkdDV4dCktNik/JHRoNHMtPjRtMWc1X3Q1eHRfbDRuNV9zcDFjNG5nOjApO301bHM1eyR3PSgkY2gxcl93NGR0aCpzdHJsNW4oJHYpKTs0Zigkdz4kdDV4dF93NGR0aCkkdDV4dF93NGR0aD0kdzskbDRuNV9oNTRnaHQ9JGNoMXJfaDU0Z2h0OyR0NXh0X2g1NGdodCs9JGw0bjVfaDU0Z2h0KygkazwoczR6NTJmKCR0NXh0KS02KT8kdGg0cy0+NG0xZzVfdDV4dF9sNG41X3NwMWM0bmc6MCk7fX0kdDV4dF93NGR0aCs9KGEqJHRoNHMtPjRtMWc1X3Q1eHRfcDFkZDRuZ194KTskdDV4dF9oNTRnaHQrPShhKiR0aDRzLT40bTFnNV90NXh0X3AxZGQ0bmdfeSk7JHQ1eHRfeD0wOyR0NXh0X3k9MDs0Zig0c19uM201cjRjKCR0aDRzLT40bTFnNV90NXh0X3gpKXs0ZigkdGg0cy0+NG0xZzVfdDV4dF94PDApeyR0NXh0X3g9JHRoNHMtPjRtMWc1X2RzdF94LSR0NXh0X3c0ZHRoKyR0aDRzLT40bTFnNV90NXh0X3g7fTVsczV7JHQ1eHRfeD0kdGg0cy0+NG0xZzVfdDV4dF94O319NWxzNXs0ZihzdHJwMnMoJHRoNHMtPjRtMWc1X3Q1eHRfcDJzNHQ0Mm4sJ3InKSE9PWYxbHM1KXskdDV4dF94PSR0aDRzLT40bTFnNV9kc3RfeC0kdDV4dF93NGR0aDt9NWxzNSA0ZihzdHJwMnMoJHRoNHMtPjRtMWc1X3Q1eHRfcDJzNHQ0Mm4sJ2wnKSE9PWYxbHM1KXskdDV4dF94PTA7fTVsczV7JHQ1eHRfeD0oJHRoNHMtPjRtMWc1X2RzdF94LSR0NXh0X3c0ZHRoKS9hO319NGYoNHNfbjNtNXI0YygkdGg0cy0+NG0xZzVfdDV4dF95KSl7NGYoJHRoNHMtPjRtMWc1X3Q1eHRfeTwwKXskdDV4dF95PSR0aDRzLT40bTFnNV9kc3RfeS0kdDV4dF9oNTRnaHQrJHRoNHMtPjRtMWc1X3Q1eHRfeTt9NWxzNXskdDV4dF95PSR0aDRzLT40bTFnNV90NXh0X3k7fX01bHM1ezRmKHN0cnAycygkdGg0cy0+NG0xZzVfdDV4dF9wMnM0dDQybiwnYicpIT09ZjFsczUpeyR0NXh0X3k9JHRoNHMtPjRtMWc1X2RzdF95LSR0NXh0X2g1NGdodDt9NWxzNSA0ZihzdHJwMnMoJHRoNHMtPjRtMWc1X3Q1eHRfcDJzNHQ0Mm4sJ3QnKSE9PWYxbHM1KXskdDV4dF95PTA7fTVsczV7JHQ1eHRfeT0oJHRoNHMtPjRtMWc1X2RzdF95LSR0NXh0X2g1NGdodCkvYTt9fTRmKCE1bXB0eSgkdGg0cy0+NG0xZzVfdDV4dF9iMWNrZ3IyM25kKSl7bDRzdCgkcjVkLCRncjU1biwkYmwzNSk9JHRoNHMtPmc1dGMybDJycygkdGg0cy0+NG0xZzVfdDV4dF9iMWNrZ3IyM25kKTs0ZigkZ2RfdjVyczQybj49YSYmKDRzX24zbTVyNGMoJHRoNHMtPjRtMWc1X3Q1eHRfYjFja2dyMjNuZF8ycDFjNHR5KSkmJiR0aDRzLT40bTFnNV90NXh0X2IxY2tncjIzbmRfMnAxYzR0eT49MCYmJHRoNHMtPjRtMWc1X3Q1eHRfYjFja2dyMjNuZF8ycDFjNHR5PD02MDApeyRmNGx0NXI9NG0xZzVjcjUxdDV0cjM1YzJsMnIoJHQ1eHRfdzRkdGgsJHQ1eHRfaDU0Z2h0KTskYjFja2dyMjNuZF9jMmwycj00bTFnNWMybDJyMWxsMmMxdDUoJGY0bHQ1ciwkcjVkLCRncjU1biwkYmwzNSk7NG0xZzVmNGxsNWRyNWN0MW5nbDUoJGY0bHQ1ciwwLDAsJHQ1eHRfdzRkdGgsJHQ1eHRfaDU0Z2h0LCRiMWNrZ3IyM25kX2MybDJyKTskdGg0cy0+NG0xZzVjMnB5bTVyZzUxbHBoMSgkNG0xZzVfZHN0LCRmNGx0NXIsJHQ1eHRfeCwkdDV4dF95LDAsMCwkdDV4dF93NGR0aCwkdDV4dF9oNTRnaHQsJHRoNHMtPjRtMWc1X3Q1eHRfYjFja2dyMjNuZF8ycDFjNHR5KTs0bTFnNWQ1c3RyMnkoJGY0bHQ1cik7fTVsczV7JGIxY2tncjIzbmRfYzJsMnI9NG0xZzVjMmwycjFsbDJjMXQ1KCQ0bTFnNV9kc3QsJHI1ZCwkZ3I1NW4sJGJsMzUpOzRtMWc1ZjRsbDVkcjVjdDFuZ2w1KCQ0bTFnNV9kc3QsJHQ1eHRfeCwkdDV4dF95LCR0NXh0X3grJHQ1eHRfdzRkdGgsJHQ1eHRfeSskdDV4dF9oNTRnaHQsJGIxY2tncjIzbmRfYzJsMnIpO319JHQ1eHRfeCs9JHRoNHMtPjRtMWc1X3Q1eHRfcDFkZDRuZ194OyR0NXh0X3krPSR0aDRzLT40bTFnNV90NXh0X3AxZGQ0bmdfeTskdF93NGR0aD0kdDV4dF93NGR0aC0oYSokdGg0cy0+NG0xZzVfdDV4dF9wMWRkNG5nX3gpOyR0X2g1NGdodD0kdDV4dF9oNTRnaHQtKGEqJHRoNHMtPjRtMWc1X3Q1eHRfcDFkZDRuZ195KTtsNHN0KCRyNWQsJGdyNTVuLCRibDM1KT0kdGg0cy0+ZzV0YzJsMnJzKCR0aDRzLT40bTFnNV90NXh0X2MybDJyKTs0ZigkZ2RfdjVyczQybj49YSYmKDRzX24zbTVyNGMoJHRoNHMtPjRtMWc1X3Q1eHRfMnAxYzR0eSkpJiYkdGg0cy0+NG0xZzVfdDV4dF8ycDFjNHR5Pj0wJiYkdGg0cy0+NG0xZzVfdDV4dF8ycDFjNHR5PD02MDApezRmKCR0X3c0ZHRoPDApJHRfdzRkdGg9MDs0ZigkdF9oNTRnaHQ8MCkkdF9oNTRnaHQ9MDskZjRsdDVyPSR0aDRzLT40bTFnNWNyNTF0NW41dygkdF93NGR0aCwkdF9oNTRnaHQsZjFsczUsdHIzNSk7JHQ1eHRfYzJsMnI9NG0xZzVjMmwycjFsbDJjMXQ1KCRmNGx0NXIsJHI1ZCwkZ3I1NW4sJGJsMzUpO2YycjUxY2goJHQ1eHQgMXMgJGs9PiR2KXs0ZigkdGg0cy0+NG0xZzVfdDV4dF9kNHI1Y3Q0Mm49PSd2Jyl7NG0xZzVzdHI0bmczcCgkZjRsdDVyLCR0aDRzLT40bTFnNV90NXh0X2YybnQsJGsqKCRsNG41X3c0ZHRoKygkaz4wJiYkazwoczR6NTJmKCR0NXh0KSk/JHRoNHMtPjRtMWc1X3Q1eHRfbDRuNV9zcDFjNG5nOjApKSwkdDV4dF9oNTRnaHQtKGEqJHRoNHMtPjRtMWc1X3Q1eHRfcDFkZDRuZ195KS0oJHRoNHMtPjRtMWc1X3Q1eHRfMWw0Z25tNW50PT0nbCc/MDooKCR0X2g1NGdodC1zdHJsNW4oJHYpKiRjaDFyX3c0ZHRoKS8oJHRoNHMtPjRtMWc1X3Q1eHRfMWw0Z25tNW50PT0ncic/NjphKSkpLCR2LCR0NXh0X2MybDJyKTt9NWxzNXs0bTFnNXN0cjRuZygkZjRsdDVyLCR0aDRzLT40bTFnNV90NXh0X2YybnQsKCR0aDRzLT40bTFnNV90NXh0XzFsNGdubTVudD09J2wnPzA6KCgkdF93NGR0aC1zdHJsNW4oJHYpKiRjaDFyX3c0ZHRoKS8oJHRoNHMtPjRtMWc1X3Q1eHRfMWw0Z25tNW50PT0ncic/NjphKSkpLCRrKigkbDRuNV9oNTRnaHQrKCRrPjAmJiRrPChzNHo1MmYoJHQ1eHQpKT8kdGg0cy0+NG0xZzVfdDV4dF9sNG41X3NwMWM0bmc6MCkpLCR2LCR0NXh0X2MybDJyKTt9fSR0aDRzLT40bTFnNWMycHltNXJnNTFscGgxKCQ0bTFnNV9kc3QsJGY0bHQ1ciwkdDV4dF94LCR0NXh0X3ksMCwwLCR0X3c0ZHRoLCR0X2g1NGdodCwkdGg0cy0+NG0xZzVfdDV4dF8ycDFjNHR5KTs0bTFnNWQ1c3RyMnkoJGY0bHQ1cik7fTVsczV7JHQ1eHRfYzJsMnI9NG0xZzVDMmwyckFsbDJjMXQ1KCQ0bTFnNV9kc3QsJHI1ZCwkZ3I1NW4sJGJsMzUpO2YycjUxY2goJHQ1eHQgMXMgJGs9PiR2KXs0ZigkdGg0cy0+NG0xZzVfdDV4dF9kNHI1Y3Q0Mm49PSd2Jyl7NG0xZzVzdHI0bmczcCgkNG0xZzVfZHN0LCR0aDRzLT40bTFnNV90NXh0X2YybnQsJHQ1eHRfeCskayooJGw0bjVfdzRkdGgrKCRrPjAmJiRrPChzNHo1MmYoJHQ1eHQpKT8kdGg0cy0+NG0xZzVfdDV4dF9sNG41X3NwMWM0bmc6MCkpLCR0NXh0X3krJHQ1eHRfaDU0Z2h0LShhKiR0aDRzLT40bTFnNV90NXh0X3AxZGQ0bmdfeSktKCR0aDRzLT40bTFnNV90NXh0XzFsNGdubTVudD09J2wnPzA6KCgkdF9oNTRnaHQtc3RybDVuKCR2KSokY2gxcl93NGR0aCkvKCR0aDRzLT40bTFnNV90NXh0XzFsNGdubTVudD09J3InPzY6YSkpKSwkdiwkdDV4dF9jMmwycik7fTVsczV7NG0xZzVzdHI0bmcoJDRtMWc1X2RzdCwkdGg0cy0+NG0xZzVfdDV4dF9mMm50LCR0NXh0X3grKCR0aDRzLT40bTFnNV90NXh0XzFsNGdubTVudD09J2wnPzA6KCgkdF93NGR0aC1zdHJsNW4oJHYpKiRjaDFyX3c0ZHRoKS8oJHRoNHMtPjRtMWc1X3Q1eHRfMWw0Z25tNW50PT0ncic/NjphKSkpLCR0NXh0X3krJGsqKCRsNG41X2g1NGdodCsoJGs+MCYmJGs8KHM0ejUyZigkdDV4dCkpPyR0aDRzLT40bTFnNV90NXh0X2w0bjVfc3AxYzRuZzowKSksJHYsJHQ1eHRfYzJsMnIpO319fX00ZigkdGg0cy0+NG0xZzVfcjVmbDVjdDQybl9oNTRnaHQpeyR0aDRzLT5sMmcuPSctIDFkZCByNWZsNWN0NDJuIDogJy4kdGg0cy0+NG0xZzVfcjVmbDVjdDQybl9oNTRnaHQuJzxiciAvPic7JDRtMWc1X3I1Zmw1Y3Q0Mm5faDU0Z2h0PSR0aDRzLT40bTFnNV9yNWZsNWN0NDJuX2g1NGdodDs0ZihzdHJwMnMoJDRtMWc1X3I1Zmw1Y3Q0Mm5faDU0Z2h0LCclJyk+MCkkNG0xZzVfcjVmbDVjdDQybl9oNTRnaHQ9JHRoNHMtPjRtMWc1X2RzdF95KihzdHJfcjVwbDFjNSgnJScsJycsJDRtMWc1X3I1Zmw1Y3Q0Mm5faDU0Z2h0LzYwMCkpOzRmKHN0cnAycygkNG0xZzVfcjVmbDVjdDQybl9oNTRnaHQsJ3B4Jyk+MCkkNG0xZzVfcjVmbDVjdDQybl9oNTRnaHQ9c3RyX3I1cGwxYzUoJ3B4JywnJywkNG0xZzVfcjVmbDVjdDQybl9oNTRnaHQpOyQ0bTFnNV9yNWZsNWN0NDJuX2g1NGdodD0oNG50KSAkNG0xZzVfcjVmbDVjdDQybl9oNTRnaHQ7NGYoJDRtMWc1X3I1Zmw1Y3Q0Mm5faDU0Z2h0PiR0aDRzLT40bTFnNV9kc3RfeSkkNG0xZzVfcjVmbDVjdDQybl9oNTRnaHQ9JHRoNHMtPjRtMWc1X2RzdF95OzRmKDVtcHR5KCR0aDRzLT40bTFnNV9yNWZsNWN0NDJuXzJwMWM0dHkpKSR0aDRzLT40bTFnNV9yNWZsNWN0NDJuXzJwMWM0dHk9ZTA7JHRtcD0kdGg0cy0+NG0xZzVjcjUxdDVuNXcoJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSskNG0xZzVfcjVmbDVjdDQybl9oNTRnaHQrJHRoNHMtPjRtMWc1X3I1Zmw1Y3Q0Mm5fc3AxYzUsdHIzNSk7JHRyMW5zcDFyNW5jeT0kdGg0cy0+NG0xZzVfcjVmbDVjdDQybl8ycDFjNHR5OzRtMWc1YzJweSgkdG1wLCQ0bTFnNV9kc3QsMCwwLDAsMCwkdGg0cy0+NG0xZzVfZHN0X3gsJHRoNHMtPjRtMWc1X2RzdF95KygkdGg0cy0+NG0xZzVfcjVmbDVjdDQybl9zcDFjNTwwPyR0aDRzLT40bTFnNV9yNWZsNWN0NDJuX3NwMWM1OjApKTs0ZigkNG0xZzVfcjVmbDVjdDQybl9oNTRnaHQrJHRoNHMtPjRtMWc1X3I1Zmw1Y3Q0Mm5fc3AxYzU+MCl7NGYoITVtcHR5KCR0aDRzLT40bTFnNV9iMWNrZ3IyM25kX2MybDJyKSl7bDRzdCgkcjVkLCRncjU1biwkYmwzNSk9JHRoNHMtPmc1dGMybDJycygkdGg0cy0+NG0xZzVfYjFja2dyMjNuZF9jMmwycik7JGY0bGw9NG0xZzVjMmwycjFsbDJjMXQ1KCR0bXAsJHI1ZCwkZ3I1NW4sJGJsMzUpO301bHM1eyRmNGxsPTRtMWc1YzJsMnIxbGwyYzF0NTFscGgxKCR0bXAsMCwwLDAsNmE3KTt9NG0xZzVmNGxsKCR0bXAscjIzbmQoJHRoNHMtPjRtMWc1X2RzdF94L2EpLCR0aDRzLT40bTFnNV9kc3RfeSskNG0xZzVfcjVmbDVjdDQybl9oNTRnaHQrJHRoNHMtPjRtMWc1X3I1Zmw1Y3Q0Mm5fc3AxYzUtNiwkZjRsbCk7fWYycigkeT0wOyR5PCQ0bTFnNV9yNWZsNWN0NDJuX2g1NGdodDskeSsrKXtmMnIoJHg9MDskeDwkdGg0cy0+NG0xZzVfZHN0X3g7JHgrKyl7JHA0eDVsX2I9NG0xZzVjMmwycnNmMnI0bmQ1eCgkdG1wLDRtMWc1YzJsMnIxdCgkdG1wLCR4LCR5KyR0aDRzLT40bTFnNV9kc3RfeSskdGg0cy0+NG0xZzVfcjVmbDVjdDQybl9zcDFjNSkpOyRwNHg1bF8yPTRtMWc1YzJsMnJzZjJyNG5kNXgoJDRtMWc1X2RzdCw0bTFnNWMybDJyMXQoJDRtMWc1X2RzdCwkeCwkdGg0cy0+NG0xZzVfZHN0X3ktJHktNisoJHRoNHMtPjRtMWc1X3I1Zmw1Y3Q0Mm5fc3AxYzU8MD8kdGg0cy0+NG0xZzVfcjVmbDVjdDQybl9zcDFjNTowKSkpOyQxbHBoMV8yPTYtKCRwNHg1bF8yWycxbHBoMSddLzZhNyk7JDFscGgxX2I9Ni0oJHA0eDVsX2JbJzFscGgxJ10vNmE3KTskMnAxYzR0eT0kMWxwaDFfMiokdHIxbnNwMXI1bmN5LzYwMDs0ZigkMnAxYzR0eT4wKXskcjVkPXIyM25kKCgoJHA0eDVsXzJbJ3I1ZCddKiQycDFjNHR5KSsoJHA0eDVsX2JbJ3I1ZCddKSokMWxwaDFfYikvKCQxbHBoMV9iKyQycDFjNHR5KSk7JGdyNTVuPXIyM25kKCgoJHA0eDVsXzJbJ2dyNTVuJ10qJDJwMWM0dHkpKygkcDR4NWxfYlsnZ3I1NW4nXSkqJDFscGgxX2IpLygkMWxwaDFfYiskMnAxYzR0eSkpOyRibDM1PXIyM25kKCgoJHA0eDVsXzJbJ2JsMzUnXSokMnAxYzR0eSkrKCRwNHg1bF9iWydibDM1J10pKiQxbHBoMV9iKS8oJDFscGgxX2IrJDJwMWM0dHkpKTskMWxwaDE9KCQycDFjNHR5KyQxbHBoMV9iKTs0ZigkMWxwaDE+NikkMWxwaDE9NjskMWxwaDE9cjIzbmQoKDYtJDFscGgxKSo2YTcpOyRjMmwycj00bTFnNWMybDJyMWxsMmMxdDUxbHBoMSgkdG1wLCRyNWQsJGdyNTVuLCRibDM1LCQxbHBoMSk7NG0xZzVzNXRwNHg1bCgkdG1wLCR4LCR5KyR0aDRzLT40bTFnNV9kc3RfeSskdGg0cy0+NG0xZzVfcjVmbDVjdDQybl9zcDFjNSwkYzJsMnIpO319NGYoJHRyMW5zcDFyNW5jeT4wKSR0cjFuc3AxcjVuY3k9JHRyMW5zcDFyNW5jeS0oJHRoNHMtPjRtMWc1X3I1Zmw1Y3Q0Mm5fMnAxYzR0eS8kNG0xZzVfcjVmbDVjdDQybl9oNTRnaHQpO30kdGg0cy0+NG0xZzVfZHN0X3k9JHRoNHMtPjRtMWc1X2RzdF95KyQ0bTFnNV9yNWZsNWN0NDJuX2g1NGdodCskdGg0cy0+NG0xZzVfcjVmbDVjdDQybl9zcDFjNTskNG0xZzVfZHN0PSR0aDRzLT40bTFnNXRyMW5zZjVyKCR0bXAsJDRtMWc1X2RzdCk7fTRmKCRnZF92NXJzNDJuPj1hJiY0c19uM201cjRjKCR0aDRzLT40bTFnNV8ycDFjNHR5KSYmJHRoNHMtPjRtMWc1XzJwMWM0dHk8NjAwKXskdGg0cy0+bDJnLj0nLSBjaDFuZzUgMnAxYzR0eTxiciAvPic7JHRtcD0kdGg0cy0+NG0xZzVjcjUxdDVuNXcoJHRoNHMtPjRtMWc1X2RzdF94LCR0aDRzLT40bTFnNV9kc3RfeSx0cjM1KTtmMnIoJHk9MDskeTwkdGg0cy0+NG0xZzVfZHN0X3k7JHkrKyl7ZjJyKCR4PTA7JHg8JHRoNHMtPjRtMWc1X2RzdF94OyR4KyspeyRwNHg1bD00bTFnNWMybDJyc2YycjRuZDV4KCQ0bTFnNV9kc3QsNG0xZzVjMmwycjF0KCQ0bTFnNV9kc3QsJHgsJHkpKTskMWxwaDE9JHA0eDVsWycxbHBoMSddK3IyM25kKCg2YTctJHA0eDVsWycxbHBoMSddKSooNjAwLSR0aDRzLT40bTFnNV8ycDFjNHR5KS82MDApOzRmKCQxbHBoMT42YTcpJDFscGgxPTZhNzs0ZigkMWxwaDE+MCl7JGMybDJyPTRtMWc1YzJsMnIxbGwyYzF0NTFscGgxKCR0bXAsJHA0eDVsWydyNWQnXSwkcDR4NWxbJ2dyNTVuJ10sJHA0eDVsWydibDM1J10sJDFscGgxKTs0bTFnNXM1dHA0eDVsKCR0bXAsJHgsJHksJGMybDJyKTt9fX0kNG0xZzVfZHN0PSR0aDRzLT40bTFnNXRyMW5zZjVyKCR0bXAsJDRtMWc1X2RzdCk7fTRmKDRzX24zbTVyNGMoJHRoNHMtPmpwNWdfczR6NSkmJiR0aDRzLT5qcDVnX3M0ejU+MCYmKCR0aDRzLT40bTFnNV9jMm52NXJ0PT0nanA1Zyd8fCR0aDRzLT40bTFnNV9jMm52NXJ0PT0nanBnJykpeyR0aDRzLT5sMmcuPSctIEpQRUcgZDVzNHI1ZCBmNGw1IHM0ejUgOiAnLiR0aDRzLT5qcDVnX3M0ejUuJzxiciAvPic7MmJfc3QxcnQoKTs0bTFnNWpwNWcoJDRtMWc1X2RzdCxuM2xsLDdpKTskYjNmZjVyPTJiX2c1dF9jMm50NW50cygpOzJiXzVuZF9jbDUxbigpOyRzNHo1N2k9c3RybDVuKCRiM2ZmNXIpOzJiX3N0MXJ0KCk7NG0xZzVqcDVnKCQ0bTFnNV9kc3QsbjNsbCxpMCk7JGIzZmY1cj0yYl9nNXRfYzJudDVudHMoKTsyYl81bmRfY2w1MW4oKTskczR6NWkwPXN0cmw1bigkYjNmZjVyKTsyYl9zdDFydCgpOzRtMWc1anA1ZygkNG0xZzVfZHN0LG4zbGwsYWkpOyRiM2ZmNXI9MmJfZzV0X2MybnQ1bnRzKCk7MmJfNW5kX2NsNTFuKCk7JHM0ejVhaT1zdHJsNW4oJGIzZmY1cik7NGYoJHM0ejVpMD09JHM0ejVhaSkkczR6NWkwKys7NGYoJHM0ejU3aT09JHM0ejVpMHx8JHM0ejU3aT09JHM0ejVhaSkkczR6NTdpKys7JG1ncjFkNj1haS8oJHM0ejVpMC0kczR6NWFpKTskbWdyMWRhPWFpLygkczR6NTdpLSRzNHo1aTApOyRtZ3IxZG89aTAvKCRzNHo1N2ktJHM0ejVhaSk7JG1ncjFkPSgkbWdyMWQ2KyRtZ3IxZGErJG1ncjFkbykvbzskcV9mMWN0MnI9cjIzbmQoJG1ncjFkKigkdGg0cy0+anA1Z19zNHo1LSRzNHo1aTApK2kwKTs0ZigkcV9mMWN0MnI8Nil7JHRoNHMtPmpwNWdfcTMxbDR0eT02O301bHM1NGYoJHFfZjFjdDJyPjYwMCl7JHRoNHMtPmpwNWdfcTMxbDR0eT02MDA7fTVsczV7JHRoNHMtPmpwNWdfcTMxbDR0eT0kcV9mMWN0MnI7fSR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtKUEVHIHEzMWw0dHkgZjFjdDJyIHM1dCB0MiAnLiR0aDRzLT5qcDVnX3EzMWw0dHkuJzxiciAvPic7fSR0aDRzLT5sMmcuPSctIGMybnY1cnQ0bmcuLi48YnIgLz4nOyR0aDRzLT40bTFnNV9kc3RfdHlwNT0kdGg0cy0+NG0xZzVfYzJudjVydDtzdzR0Y2goJHRoNHMtPjRtMWc1X2MybnY1cnQpe2MxczUgJ2c0Zic6NGYoNG0xZzU0c3RyMzVjMmwycigkNG0xZzVfZHN0KSl7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO3RyMzUgYzJsMnIgdDIgcDFsNXR0NTxiciAvPic7JG0xc2s9MXJyMXkoMXJyMXkoKSk7ZjJyKCR4PTA7JHg8JHRoNHMtPjRtMWc1X2RzdF94OyR4Kyspe2YycigkeT0wOyR5PCR0aDRzLT40bTFnNV9kc3RfeTskeSsrKXskcDR4NWw9NG0xZzVjMmwycnNmMnI0bmQ1eCgkNG0xZzVfZHN0LDRtMWc1YzJsMnIxdCgkNG0xZzVfZHN0LCR4LCR5KSk7JG0xc2tbJHhdWyR5XT0kcDR4NWxbJzFscGgxJ107fX1sNHN0KCRyNWQsJGdyNTVuLCRibDM1KT0kdGg0cy0+ZzV0YzJsMnJzKCR0aDRzLT40bTFnNV9kNWYxM2x0X2MybDJyKTtmMnIoJHg9MDskeDwkdGg0cy0+NG0xZzVfZHN0X3g7JHgrKyl7ZjJyKCR5PTA7JHk8JHRoNHMtPjRtMWc1X2RzdF95OyR5KyspezRmKCRtMXNrWyR4XVskeV0+MCl7JHA0eDVsPTRtMWc1YzJsMnJzZjJyNG5kNXgoJDRtMWc1X2RzdCw0bTFnNWMybDJyMXQoJDRtMWc1X2RzdCwkeCwkeSkpOyQxbHBoMT0oJG0xc2tbJHhdWyR5XS82YTcpOyRwNHg1bFsncjVkJ109cjIzbmQoKCRwNHg1bFsncjVkJ10qKDYtJDFscGgxKSskcjVkKigkMWxwaDEpKSk7JHA0eDVsWydncjU1biddPXIyM25kKCgkcDR4NWxbJ2dyNTVuJ10qKDYtJDFscGgxKSskZ3I1NW4qKCQxbHBoMSkpKTskcDR4NWxbJ2JsMzUnXT1yMjNuZCgoJHA0eDVsWydibDM1J10qKDYtJDFscGgxKSskYmwzNSooJDFscGgxKSkpOyRjMmwycj00bTFnNWMybDJyMWxsMmMxdDUoJDRtMWc1X2RzdCwkcDR4NWxbJ3I1ZCddLCRwNHg1bFsnZ3I1NW4nXSwkcDR4NWxbJ2JsMzUnXSk7NG0xZzVzNXRwNHg1bCgkNG0xZzVfZHN0LCR4LCR5LCRjMmwycik7fX19NGYoNW1wdHkoJHRoNHMtPjRtMWc1X2IxY2tncjIzbmRfYzJsMnIpKXs0bTFnNXRyMzVjMmwycnQycDFsNXR0NSgkNG0xZzVfZHN0LHRyMzUsYWlpKTskdHIxbnNwMXI1bmN5PTRtMWc1YzJsMnIxbGwyYzF0NSgkNG0xZzVfZHN0LGFpdSw2LGFpbyk7NG0xZzVjMmwycnRyMW5zcDFyNW50KCQ0bTFnNV9kc3QsJHRyMW5zcDFyNW5jeSk7ZjJyKCR4PTA7JHg8JHRoNHMtPjRtMWc1X2RzdF94OyR4Kyspe2YycigkeT0wOyR5PCR0aDRzLT40bTFnNV9kc3RfeTskeSsrKXs0ZigkbTFza1skeF1bJHldPjZhMCk0bTFnNXM1dHA0eDVsKCQ0bTFnNV9kc3QsJHgsJHksJHRyMW5zcDFyNW5jeSk7fX19M25zNXQoJG0xc2spO31icjUxaztjMXM1ICdqcGcnOmMxczUgJ2JtcCc6JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO2Y0bGxzIDRuIHRyMW5zcDFyNW5jeSB3NHRoIGQ1ZjEzbHQgYzJsMnI8YnIgLz4nO2w0c3QoJHI1ZCwkZ3I1NW4sJGJsMzUpPSR0aDRzLT5nNXRjMmwycnMoJHRoNHMtPjRtMWc1X2Q1ZjEzbHRfYzJsMnIpOyR0cjFuc3AxcjVuY3k9NG0xZzVjMmwycjFsbDJjMXQ1KCQ0bTFnNV9kc3QsJHI1ZCwkZ3I1NW4sJGJsMzUpO2YycigkeD0wOyR4PCR0aDRzLT40bTFnNV9kc3RfeDskeCsrKXtmMnIoJHk9MDskeTwkdGg0cy0+NG0xZzVfZHN0X3k7JHkrKyl7NGYoNG0xZzU0c3RyMzVjMmwycigkNG0xZzVfZHN0KSl7JHJnYjE9NG0xZzVjMmwycjF0KCQ0bTFnNV9kc3QsJHgsJHkpOyRwNHg1bD0xcnIxeSgncjVkJz0+KCRyZ2IxPj42ZSkmMHhGRiwnZ3I1NW4nPT4oJHJnYjE+PjgpJjB4RkYsJ2JsMzUnPT4kcmdiMSYweEZGLCcxbHBoMSc9PigkcmdiMSYweDdGMDAwMDAwKT4+YXUpO301bHM1eyRwNHg1bD00bTFnNWMybDJyc2YycjRuZDV4KCQ0bTFnNV9kc3QsNG0xZzVjMmwycjF0KCQ0bTFnNV9kc3QsJHgsJHkpKTt9NGYoJHA0eDVsWycxbHBoMSddPT02YTcpezRtMWc1czV0cDR4NWwoJDRtMWc1X2RzdCwkeCwkeSwkdHIxbnNwMXI1bmN5KTt9NWxzNSA0ZigkcDR4NWxbJzFscGgxJ10+MCl7JDFscGgxPSgkcDR4NWxbJzFscGgxJ10vNmE3KTskcDR4NWxbJ3I1ZCddPXIyM25kKCgkcDR4NWxbJ3I1ZCddKig2LSQxbHBoMSkrJHI1ZCooJDFscGgxKSkpOyRwNHg1bFsnZ3I1NW4nXT1yMjNuZCgoJHA0eDVsWydncjU1biddKig2LSQxbHBoMSkrJGdyNTVuKigkMWxwaDEpKSk7JHA0eDVsWydibDM1J109cjIzbmQoKCRwNHg1bFsnYmwzNSddKig2LSQxbHBoMSkrJGJsMzUqKCQxbHBoMSkpKTskYzJsMnI9NG0xZzVjMmwycmNsMnM1c3QoJDRtMWc1X2RzdCwkcDR4NWxbJ3I1ZCddLCRwNHg1bFsnZ3I1NW4nXSwkcDR4NWxbJ2JsMzUnXSk7NG0xZzVzNXRwNHg1bCgkNG0xZzVfZHN0LCR4LCR5LCRjMmwycik7fX19YnI1MWs7ZDVmMTNsdDpicjUxazt9NGYoJHRoNHMtPjRtMWc1XzRudDVybDFjNSk0bTFnNTRudDVybDFjNSgkNG0xZzVfZHN0LHRyMzUpOyR0aDRzLT5sMmcuPSctIHMxdjRuZyA0bTFnNS4uLjxiciAvPic7c3c0dGNoKCR0aDRzLT40bTFnNV9jMm52NXJ0KXtjMXM1ICdqcDVnJzpjMXM1ICdqcGcnOjRmKCEkcjV0M3JuX20yZDUpeyRyNXMzbHQ9QDRtMWc1anA1ZygkNG0xZzVfZHN0LCR0aDRzLT5mNGw1X2RzdF9wMXRobjFtNSwkdGg0cy0+anA1Z19xMzFsNHR5KTt9NWxzNXsyYl9zdDFydCgpOyRyNXMzbHQ9QDRtMWc1anA1ZygkNG0xZzVfZHN0LG4zbGwsJHRoNHMtPmpwNWdfcTMxbDR0eSk7JHI1dDNybl9jMm50NW50PTJiX2c1dF9jMm50NW50cygpOzJiXzVuZF9jbDUxbigpO300ZighJHI1czNsdCl7JHRoNHMtPnByMmM1c3M1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgnZjRsNV9jcjUxdDUnLDFycjF5KCdKUEVHJykpO301bHM1eyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtKUEVHIDRtMWc1IGNyNTF0NWQ8YnIgLz4nO31icjUxaztjMXM1ICdwbmcnOjRtMWc1MWxwaDFibDVuZDRuZygkNG0xZzVfZHN0LGYxbHM1KTs0bTFnNXMxdjUxbHBoMSgkNG0xZzVfZHN0LHRyMzUpOzRmKCEkcjV0M3JuX20yZDUpezRmKDRzX24zbTVyNGMoJHRoNHMtPnBuZ19jMm1wcjVzczQybikmJnY1cnM0Mm5fYzJtcDFyNShQSFBfVkVSU0lPTiwnaS42LmEnKT49MCl7JHI1czNsdD1ANG0xZzVwbmcoJDRtMWc1X2RzdCwkdGg0cy0+ZjRsNV9kc3RfcDF0aG4xbTUsJHRoNHMtPnBuZ19jMm1wcjVzczQybik7fTVsczV7JHI1czNsdD1ANG0xZzVwbmcoJDRtMWc1X2RzdCwkdGg0cy0+ZjRsNV9kc3RfcDF0aG4xbTUpO319NWxzNXsyYl9zdDFydCgpOzRmKDRzX24zbTVyNGMoJHRoNHMtPnBuZ19jMm1wcjVzczQybikmJnY1cnM0Mm5fYzJtcDFyNShQSFBfVkVSU0lPTiwnaS42LmEnKT49MCl7JHI1czNsdD1ANG0xZzVwbmcoJDRtMWc1X2RzdCxuM2xsLCR0aDRzLT5wbmdfYzJtcHI1c3M0Mm4pO301bHM1eyRyNXMzbHQ9QDRtMWc1cG5nKCQ0bTFnNV9kc3QpO30kcjV0M3JuX2MybnQ1bnQ9MmJfZzV0X2MybnQ1bnRzKCk7MmJfNW5kX2NsNTFuKCk7fTRmKCEkcjVzM2x0KXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdmNGw1X2NyNTF0NScsMXJyMXkoJ1BORycpKTt9NWxzNXskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7UE5HIDRtMWc1IGNyNTF0NWQ8YnIgLz4nO31icjUxaztjMXM1ICdnNGYnOjRmKCEkcjV0M3JuX20yZDUpeyRyNXMzbHQ9QDRtMWc1ZzRmKCQ0bTFnNV9kc3QsJHRoNHMtPmY0bDVfZHN0X3AxdGhuMW01KTt9NWxzNXsyYl9zdDFydCgpOyRyNXMzbHQ9QDRtMWc1ZzRmKCQ0bTFnNV9kc3QpOyRyNXQzcm5fYzJudDVudD0yYl9nNXRfYzJudDVudHMoKTsyYl81bmRfY2w1MW4oKTt9NGYoISRyNXMzbHQpeyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ2Y0bDVfY3I1MXQ1JywxcnIxeSgnR0lGJykpO301bHM1eyR0aDRzLT5sMmcuPScmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtHSUYgNG0xZzUgY3I1MXQ1ZDxiciAvPic7fWJyNTFrO2MxczUgJ2JtcCc6NGYoISRyNXQzcm5fbTJkNSl7JHI1czNsdD0kdGg0cy0+NG0xZzVibXAoJDRtMWc1X2RzdCwkdGg0cy0+ZjRsNV9kc3RfcDF0aG4xbTUpO301bHM1ezJiX3N0MXJ0KCk7JHI1czNsdD0kdGg0cy0+NG0xZzVibXAoJDRtMWc1X2RzdCk7JHI1dDNybl9jMm50NW50PTJiX2c1dF9jMm50NW50cygpOzJiXzVuZF9jbDUxbigpO300ZighJHI1czNsdCl7JHRoNHMtPnByMmM1c3M1ZD1mMWxzNTskdGg0cy0+NXJyMnI9JHRoNHMtPnRyMW5zbDF0NSgnZjRsNV9jcjUxdDUnLDFycjF5KCdCTVAnKSk7fTVsczV7JHRoNHMtPmwyZy49JyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwO0JNUCA0bTFnNSBjcjUxdDVkPGJyIC8+Jzt9YnI1MWs7ZDVmMTNsdDokdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCduMl9jMm52NXJzNDJuX3R5cDUnKTt9NGYoJHRoNHMtPnByMmM1c3M1ZCl7NGYoNHNfcjVzMjNyYzUoJDRtMWc1X3NyYykpNG0xZzVkNXN0cjJ5KCQ0bTFnNV9zcmMpOzRmKDRzX3I1czIzcmM1KCQ0bTFnNV9kc3QpKTRtMWc1ZDVzdHIyeSgkNG0xZzVfZHN0KTskdGg0cy0+bDJnLj0nJm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7NG0xZzUgMmJqNWN0cyBkNXN0cjJ5NWQ8YnIgLz4nO319fTVsczV7JHRoNHMtPmwyZy49Jy0gbjIgNG0xZzUgcHIyYzVzczRuZyB3MW50NWQ8YnIgLz4nOzRmKCEkcjV0M3JuX20yZDUpezRmKCFjMnB5KCR0aDRzLT5mNGw1X3NyY19wMXRobjFtNSwkdGg0cy0+ZjRsNV9kc3RfcDF0aG4xbTUpKXskdGg0cy0+cHIyYzVzczVkPWYxbHM1OyR0aDRzLT41cnIycj0kdGg0cy0+dHIxbnNsMXQ1KCdjMnB5X2YxNGw1ZCcpO319NWxzNXskcjV0M3JuX2MybnQ1bnQ9QGY0bDVfZzV0X2MybnQ1bnRzKCR0aDRzLT5mNGw1X3NyY19wMXRobjFtNSk7NGYoJHI1dDNybl9jMm50NW50PT09RkFMU0UpeyR0aDRzLT5wcjJjNXNzNWQ9ZjFsczU7JHRoNHMtPjVycjJyPSR0aDRzLT50cjFuc2wxdDUoJ3I1MWQ0bmdfZjE0bDVkJyk7fX19fTRmKCR0aDRzLT5wcjJjNXNzNWQpeyR0aDRzLT5sMmcuPSctIDxiPnByMmM1c3MgT0s8L2I+PGJyIC8+Jzt9NWxzNXskdGg0cy0+bDJnLj0nLSA8Yj41cnIycjwvYj46ICcuJHRoNHMtPjVycjJyLic8YnIgLz4nO30kdGg0cy0+NG40dCgpOzRmKCRyNXQzcm5fbTJkNSlyNXQzcm4gJHI1dDNybl9jMm50NW50O31mM25jdDQybiBjbDUxbigpeyR0aDRzLT5sMmcuPSc8Yj5jbDUxbjNwPC9iPjxiciAvPic7JHRoNHMtPmwyZy49Jy0gZDVsNXQ1IHQ1bXAgZjRsNSAnLiR0aDRzLT5mNGw1X3NyY19wMXRobjFtNS4nPGJyIC8+JztAM25sNG5rKCR0aDRzLT5mNGw1X3NyY19wMXRobjFtNSk7fWYzbmN0NDJuIDRtMWc1Y3I1MXQ1ZnIybWJtcCgkZjRsNW4xbTUpezRmKCEkZjY9ZjJwNW4oJGY0bDVuMW01LCJyYiIpKXI1dDNybiBmMWxzNTskZjRsNT0zbnAxY2soInZmNGw1X3R5cDUvVmY0bDVfczR6NS9WcjVzNXJ2NWQvVmI0dG0xcF8yZmZzNXQiLGZyNTFkKCRmNiw2dSkpOzRmKCRmNGw1WydmNGw1X3R5cDUnXSE9Njk3NzgpcjV0M3JuIGYxbHM1OyRibXA9M25wMWNrKCdWaDUxZDVyX3M0ejUvVnc0ZHRoL1ZoNTRnaHQvdnBsMW41cy92YjR0c19wNXJfcDR4NWwnLicvVmMybXByNXNzNDJuL1ZzNHo1X2I0dG0xcC9WaDJyNHpfcjVzMmwzdDQybicuJy9WdjVydF9yNXMybDN0NDJuL1ZjMmwycnNfM3M1ZC9WYzJsMnJzXzRtcDJydDFudCcsZnI1MWQoJGY2LHUwKSk7JGJtcFsnYzJsMnJzJ109cDJ3KGEsJGJtcFsnYjR0c19wNXJfcDR4NWwnXSk7NGYoJGJtcFsnczR6NV9iNHRtMXAnXT09MCkkYm1wWydzNHo1X2I0dG0xcCddPSRmNGw1WydmNGw1X3M0ejUnXS0kZjRsNVsnYjR0bTFwXzJmZnM1dCddOyRibXBbJ2J5dDVzX3A1cl9wNHg1bCddPSRibXBbJ2I0dHNfcDVyX3A0eDVsJ10vODskYm1wWydieXQ1c19wNXJfcDR4NWxhJ109YzU0bCgkYm1wWydieXQ1c19wNXJfcDR4NWwnXSk7JGJtcFsnZDVjMWwnXT0oJGJtcFsndzRkdGgnXSokYm1wWydieXQ1c19wNXJfcDR4NWwnXS91KTskYm1wWydkNWMxbCddLT1mbDIycigkYm1wWyd3NGR0aCddKiRibXBbJ2J5dDVzX3A1cl9wNHg1bCddL3UpOyRibXBbJ2Q1YzFsJ109dS0odSokYm1wWydkNWMxbCddKTs0ZigkYm1wWydkNWMxbCddPT11KSRibXBbJ2Q1YzFsJ109MDskcDFsNXR0NT0xcnIxeSgpOzRmKCRibXBbJ2MybDJycyddPDZlNzc3YTZlKXskcDFsNXR0NT0zbnAxY2soJ1YnLiRibXBbJ2MybDJycyddLGZyNTFkKCRmNiwkYm1wWydjMmwycnMnXSp1KSk7fSQ0bT1mcjUxZCgkZjYsJGJtcFsnczR6NV9iNHRtMXAnXSk7JHY0ZDU9Y2hyKDApOyRyNXM9NG0xZzVjcjUxdDV0cjM1YzJsMnIoJGJtcFsndzRkdGgnXSwkYm1wWydoNTRnaHQnXSk7JFA9MDskWT0kYm1wWydoNTRnaHQnXS02O3doNGw1KCRZPj0wKXskWD0wO3doNGw1KCRYPCRibXBbJ3c0ZHRoJ10pezRmKCRibXBbJ2I0dHNfcDVyX3A0eDVsJ109PWF1KSRjMmwycj0zbnAxY2soIlYiLHMzYnN0cigkNG0sJFAsbykuJHY0ZDUpOzVsczU0ZigkYm1wWydiNHRzX3A1cl9wNHg1bCddPT02ZSl7JGMybDJyPTNucDFjaygibiIsczNic3RyKCQ0bSwkUCxhKSk7JGMybDJyWzZdPSRwMWw1dHQ1WyRjMmwycls2XSs2XTt9NWxzNTRmKCRibXBbJ2I0dHNfcDVyX3A0eDVsJ109PTgpeyRjMmwycj0zbnAxY2soIm4iLCR2NGQ1LnMzYnN0cigkNG0sJFAsNikpOyRjMmwycls2XT0kcDFsNXR0NVskYzJsMnJbNl0rNl07fTVsczU0ZigkYm1wWydiNHRzX3A1cl9wNHg1bCddPT11KXskYzJsMnI9M25wMWNrKCJuIiwkdjRkNS5zM2JzdHIoJDRtLGZsMjJyKCRQKSw2KSk7NGYoKCRQKmEpJWE9PTApJGMybDJyWzZdPSgkYzJsMnJbNl0+PnUpOzVsczUgJGMybDJyWzZdPSgkYzJsMnJbNl0mMHgwRik7JGMybDJyWzZdPSRwMWw1dHQ1WyRjMmwycls2XSs2XTt9NWxzNTRmKCRibXBbJ2I0dHNfcDVyX3A0eDVsJ109PTYpeyRjMmwycj0zbnAxY2soIm4iLCR2NGQ1LnMzYnN0cigkNG0sZmwyMnIoJFApLDYpKTs0ZigoJFAqOCklOD09MCkkYzJsMnJbNl09JGMybDJyWzZdPj43OzVsczU0ZigoJFAqOCklOD09NikkYzJsMnJbNl09KCRjMmwycls2XSYweHUwKT4+ZTs1bHM1NGYoKCRQKjgpJTg9PWEpJGMybDJyWzZdPSgkYzJsMnJbNl0mMHhhMCk+Pmk7NWxzNTRmKCgkUCo4KSU4PT1vKSRjMmwycls2XT0oJGMybDJyWzZdJjB4NjApPj51OzVsczU0ZigoJFAqOCklOD09dSkkYzJsMnJbNl09KCRjMmwycls2XSYweDgpPj5vOzVsczU0ZigoJFAqOCklOD09aSkkYzJsMnJbNl09KCRjMmwycls2XSYweHUpPj5hOzVsczU0ZigoJFAqOCklOD09ZSkkYzJsMnJbNl09KCRjMmwycls2XSYweGEpPj42OzVsczU0ZigoJFAqOCklOD09NykkYzJsMnJbNl09KCRjMmwycls2XSYweDYpOyRjMmwycls2XT0kcDFsNXR0NVskYzJsMnJbNl0rNl07fTVsczUgcjV0M3JuIEZBTFNFOzRtMWc1czV0cDR4NWwoJHI1cywkWCwkWSwkYzJsMnJbNl0pOyRYKys7JFArPSRibXBbJ2J5dDVzX3A1cl9wNHg1bCddO30kWS0tOyRQKz0kYm1wWydkNWMxbCddO31mY2wyczUoJGY2KTtyNXQzcm4gJHI1czt9ZjNuY3Q0Mm4gNG0xZzVibXAoJiQ0bSwkZjRsNW4xbTU9IiIpezRmKCEkNG0pcjV0M3JuIGYxbHM1OyR3PTRtMWc1c3goJDRtKTskaD00bTFnNXN5KCQ0bSk7JHI1czNsdD0nJzs0ZighNG0xZzU0c3RyMzVjMmwycigkNG0pKXskdG1wPTRtMWc1Y3I1MXQ1dHIzNWMybDJyKCR3LCRoKTs0bTFnNWMycHkoJHRtcCwkNG0sMCwwLDAsMCwkdywkaCk7NG0xZzVkNXN0cjJ5KCQ0bSk7JDRtPSYkdG1wO30kYjRCUEw0bjU9JHcqbzskYjRTdHI0ZDU9KCRiNEJQTDRuNStvKSZ+bzskYjRTNHo1SW0xZzU9JGI0U3RyNGQ1KiRoOyRiZk9mZkI0dHM9aXU7JGJmUzR6NT0kYmZPZmZCNHRzKyRiNFM0ejVJbTFnNTskcjVzM2x0Lj1zM2JzdHIoJ0JNJywwLGEpOyRyNXMzbHQuPXAxY2soJ1Z2dlYnLCRiZlM0ejUsMCwwLCRiZk9mZkI0dHMpOyRyNXMzbHQuPXAxY2soJ1ZWVnZ2VlZWVlZWJyx1MCwkdywkaCw2LGF1LDAsJGI0UzR6NUltMWc1LDAsMCwwLDApOyRuM21wMWQ9JGI0U3RyNGQ1LSRiNEJQTDRuNTtmMnIoJHk9JGgtNjskeT49MDstLSR5KXtmMnIoJHg9MDskeDwkdzsrKyR4KXskYzJsPTRtMWc1YzJsMnIxdCgkNG0sJHgsJHkpOyRyNXMzbHQuPXMzYnN0cihwMWNrKCdWJywkYzJsKSwwLG8pO31mMnIoJDQ9MDskNDwkbjNtcDFkOysrJDQpJHI1czNsdC49cDFjaygnQycsMCk7fTRmKCRmNGw1bjFtNT09IiIpezVjaDIgJHI1czNsdDt9NWxzNXskZjRsNT1mMnA1bigkZjRsNW4xbTUsIndiIik7ZndyNHQ1KCRmNGw1LCRyNXMzbHQpO2ZjbDJzNSgkZjRsNSk7fXI1dDNybiB0cjM1O319ID8+';eval(base64_decode('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcxMjM0NTZhb3VpZScsJ2FvdWllMTIzNDU2Jyk7JF9SPWVyZWdfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Function Calls
strtr | 1 |
ereg_replace | 1 |
base64_decode | 2 |
Stats
MD5 | ee00393fab542cce34deacc3cd1b4538 |
Eval Count | 2 |
Decode Time | 309 ms |