/*
* API Parceria Perfeita
* Gerar this personalizada de produtos para o afiliado
*
* Copyright (c) 2009 www.Fbits.com.br
* Author: Daniel Repula, Phillipe Cardoso Santana
* Exemplos e documentação em: http://beta.parceriaperfeita.com.br/algumacoisa
* 
* Versão: 1.0 (14/12/2009)                  Autor: Daniel Repula, Phillipe Cardoso Santana
* Versão teste inicial... 
*
* Versão: 1.1   Modificação: 30/12/2009     Autor: Daniel Repula
* Obs: Removido ajax para requisições de conteudo, esta não permite cross domain, logo solução encontrada foi técnica do google, abre-se um iframe, e este faz a requisição, em seguida retorna para a tela da qual o abriu o conteudo requisitado atravês dos links das imagens!
* 
* Versão: 1.2   Modificação: 04/12/2009     Autor: Daniel Repula
* Obs: Solução de iframe encontrada pelo google, não vem ao nosso caso, pois como o retorno da requisição e de tamanho maior q 500k (possivel), gerar muitos iframes se torna inviavel. utilizada nova forma de chamada, url do script direta.
* 

*/

//Variáveis globais que necessitam ser salvas para após requisição serem instaciadas novamente

//Classe MASTER
function Vitrine() {
    /*
    Variáveis de classe publicas
    */
    var anunciante = undefined;
    var categorias = undefined;
    var palavrasChave = undefined;
    var precoMinimo = undefined;
    var precoMaximo = undefined;
    var ordenacaoCampo = undefined;
    var ordenacaoDirecao = undefined;
    var quantidade = undefined;
    var container = undefined;
    var xml = undefined;
    var css = 'http://beta.parceriaperfeita.com.br/css/ApiPP.css';
    //Variáveis de classe privadas

    this.urlTemplate = 'http://beta.parceriaperfeita.com.br/js/API/template.html',
    this.urlLoading = 'http://beta.parceriaperfeita.com.br/img/icons/loading.gif';

    this.templateContext = '<div class="item" style="width: 180px;"><a target="_blank"  href="{#URLProduto}"><img border="0" src="{#URLImagem}" alt="{#Nome}" /></a><br /><a target="_blank"  href="{#URLProduto}">{#Nome} - {#Fabricante}</a><br /><span>R$ {#MenorPreco}</span></div>';

    //Converte string para valor Boleano
    this.boolParse = function(string) {2
        switch (string.toLowerCase()) {
            case "true": case "yes": case "1": return true;
            case "false": case "no": case "0": case null: return false;
            default: return Boolean(string);
        }
    },
    /* 
    Adiciona um documento de estilo à página.
    @cssUrl: String: A URL do arquivo CSS.
    */
    this.adicionarCss = function(cssUrl) {
        var link = document.createElement('link');
        link.href = cssUrl;
        link.media = 'screen';
        link.rel = 'stylesheet'
        link.type = 'text/css';
        document.getElementsByTagName('head')[0].appendChild(link);
    },

    /*
    Helper para ler as propriedades e os valores das mesmas de um objeto JavaScript.
    @obj: Object: O objeto alvo.
    @element: Object ou String: Opcional. O elemento ou ID do elemento onde a informação será lançada.
    Se não informado, a informação será lançada em um alert.
    */
    this.debugObject = function(obj, element) {
        var info = [];
        if (obj) {
            for (var i in obj) {
                try { info.push(i + ': ' + obj[i]); } catch (e) { }
            }
        }
        else
            info.push('undefined');

        info = info.join('\n');
        alert(info);
    },

    /*
    Processa um template substituindo as paralvras chaves por seus respectivos valores.
    Retorna uma versão do template onde os valores foram substituídos por seus respectivos valores.
    @template: String: O template a ser processado.
    @xmlNode: Object: O nó XML com as informações para substituir no template.]
    */
    this.processarTemplate = function(template, xmlNode) {
        try {
            //Funcão privada para leitura do XML
            var getAtribute = function(obj, tagName) {
                //funcao crossbrowser
                var attr = obj.attributes.getNamedItem(tagName);
                if (typeof (attr) != 'undefined' && typeof (attr.value) != 'undefined')
                    return attr.value;
                else {
                    alert('Chave não encontrada no XML!');
                    return null;
                }
            };
            var currentMultilineOption = RegExp.multiline;
            RegExp.multiline = true;
            var rePalavrasChave = /{#([^}]*)}/gm;
            while ((matches = rePalavrasChave.exec(template)))
                template = template.replace(matches[0], getAtribute(xmlNode, matches[1]));
            RegExp.multiline = currentMultilineOption;
            return template;
        }
        catch (e) {
            alert(e);
        }
    },

    /* 
    Imprime os anúncios do PP para o site.
    @container: Object ou String: O elemento ou ID do elemento que conterá os anúncios.
    @htmlTemplate: String: Opcional. A URL do arquivo HTML com o template para os anúncios.
    */
    this.imprimir = function(container, urlHtmlTemplate) {
        container = document.createElement('div');        
        this.container = container;
        this.adicionarCss(css);
        container.innerHTML = '<img  src="' + this.urlLoading + '"><span style="font-family: arial; font-size: 11px;">Carregando...</span>';
        var temp = 'apiPPLoad_' + Math.floor(Math.random()*111);
        document.write('<div id="'+ temp + '">'+container.innerHTML+'</div>');
        try {        
            var Super = this;     
            //atribui classe css para o container
            
            var xml = undefined;
            if (window.DOMParser) {
                parser = new DOMParser();
                xml = parser.parseFromString(Base64.decode(this.xml), "text/xml");
            }
            else // Internet Explorer
            {
                xml = new ActiveXObject("Microsoft.XMLDOM");
                xml.async = "false";
                xml.loadXML(Base64.decode(this.xml));
            }
            var itemTemplate = this.templateContext;
            var htmlBuilder = [];
            var anuncios = xml.getElementsByTagName('Produto');
            if (anuncios.length > 0) {
                for (var i = 0; i < anuncios.length; i++) {
                    htmlBuilder.push(Super.processarTemplate(itemTemplate, anuncios[i]));
                }
            }
            var div = document.getElementById(temp);
            if( div!= null)
                div.innerHTML='';
            container.innerHTML = htmlBuilder.join(''); 
//            //preview da API!           
//            if(document.domain == 'localhost') {
//                document.getElementById('preview').innerHTML = '<div class="apiPP">'+container.innerHTML+'</div>';
//            }
//            else {
                document.write('<div class="apiPP">'+container.innerHTML+'</div>');            
            //}
        }
        catch (Exception) {
            document.write('<div>Erro ao carregar os Produtos!</div>');            
        }
    };
}

//Inicia API
function Init() {
    //intancia vitrine atravês do handler
    var _vitrine = new Vitrine();_vitrine.anunciante='1';
_vitrine.categoria='bloqueadores de gordura';
_vitrine.direcaoordenacao='asc';
_vitrine.ordenacao='menor preço';
_vitrine.quantidade='12';
_vitrine.xml = 'PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4NCjxWaXRyaW5lPg0KICA8UHJvZHV0byBJZD0iNDExNSIgTm9tZT0iUmVkdXggV2F5IiBGYWJyaWNhbnRlPSJNaWRXYXkiIFVSTEltYWdlbT0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvNjM0My5qcGc/c291cmNlPTEyMHgxMjAiIFVSTFByb2R1dG89Imh0dHA6Ly93d3cuY29ycG9wZXJmZWl0by5jb20uYnIvcHJvZHV0by9SZWR1eF9XYXlfTWlkV2F5IiBTQUM9IjA4MDAgNzcyIDA1ODgiIE1haW9yUHJlY289IjE0LDEwIiBNZW5vclByZWNvPSIxNCwxMCIgTWVub3JQYXJjZWxhbWVudG9RdWFudGlkYWRlPSIxMCIgTWVub3JQYXJjZWxhbWVudG9WYWxvcj0iMTYsMTAiPg0KICAgIDxTdWJQcm9kdXRvIElkPSI2MzQzIiBOb21lPSJSZWR1eCBXYXkiIFVuaWRhZGVNZWRpZGE9IjYwIGPDoXBzdWxhcyIgQ29yPSIiIFNhYm9yPSIiIFByZWNvRGU9IjE0IiBQcmVjb1Bvcj0iIiBQcmF6bz0iMSBhIDMgZGlhcyDDunRlaXMiIFVSTFByb2R1dG89Imh0dHA6Ly93d3cuY29ycG9wZXJmZWl0by5jb20uYnIvcHJvZHV0by82MzQzIj4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici82MzQzLmpwZz9zb3VyY2U9NDYweDQ2MCIgVGFtYW5obz0iNDYweDQ2MCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici82MzQzLmpwZz9zb3VyY2U9MTIwMHgxMjAwIiBUYW1hbmhvPSIxMjAweDEyMDAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvNjM0My5qcGc/c291cmNlPTgweDgwIiBUYW1hbmhvPSI4MHg4MCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici82MzQzLmpwZz9zb3VyY2U9MTIweDEyMCIgVGFtYW5obz0iMTIweDEyMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici82MzQzLmpwZz9zb3VyY2U9MzAweDMwMCIgVGFtYW5obz0iMzAweDMwMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici82MzQzLmpwZz9zb3VyY2U9MzJ4MzIiIFRhbWFuaG89IjMyeDMyIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgIDwvU3ViUHJvZHV0bz4NCiAgPC9Qcm9kdXRvPg0KICA8UHJvZHV0byBJZD0iNDA4OCIgTm9tZT0iUXVpdG9zYW5hIFBsdXMiIEZhYnJpY2FudGU9IlZpdGFtZWQiIFVSTEltYWdlbT0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzE4OS5qcGc/c291cmNlPTEyMHgxMjAiIFVSTFByb2R1dG89Imh0dHA6Ly93d3cuY29ycG9wZXJmZWl0by5jb20uYnIvcHJvZHV0by9RdWl0b3NhbmFfUGx1c19WaXRhbWVkIiBTQUM9IjA4MDAgNzcyIDA1ODgiIE1haW9yUHJlY289IjMzLDEwIiBNZW5vclByZWNvPSIzMywxMCIgTWVub3JQYXJjZWxhbWVudG9RdWFudGlkYWRlPSIxMCIgTWVub3JQYXJjZWxhbWVudG9WYWxvcj0iMTYsNTUiPg0KICAgIDxTdWJQcm9kdXRvIElkPSIzMTkwIiBOb21lPSJRdWl0b3NhbmEgUGx1cyIgVW5pZGFkZU1lZGlkYT0iMTIwIHRhYnMiIENvcj0iIiBTYWJvcj0iIiBQcmVjb0RlPSIzMyIgUHJlY29Qb3I9IiIgUHJhem89IjEgYSAzIGRpYXMgw7p0ZWlzIiBVUkxQcm9kdXRvPSJodHRwOi8vd3d3LmNvcnBvcGVyZmVpdG8uY29tLmJyL3Byb2R1dG8vMzE5MCI+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzE5MC5qcGc/c291cmNlPTQ2MHg0NjAiIFRhbWFuaG89IjQ2MHg0NjAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzE5MC5qcGc/c291cmNlPTMyeDMyIiBUYW1hbmhvPSIzMngzMiIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zMTkwLmpwZz9zb3VyY2U9MTIwMHgxMjAwIiBUYW1hbmhvPSIxMjAweDEyMDAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzE5MC5qcGc/c291cmNlPTgweDgwIiBUYW1hbmhvPSI4MHg4MCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zMTkwLmpwZz9zb3VyY2U9MzAweDMwMCIgVGFtYW5obz0iMzAweDMwMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zMTkwLmpwZz9zb3VyY2U9MTIweDEyMCIgVGFtYW5obz0iMTIweDEyMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICA8L1N1YlByb2R1dG8+DQogICAgPFN1YlByb2R1dG8gSWQ9IjMxODkiIE5vbWU9IlF1aXRvc2FuYSBQbHVzIiBVbmlkYWRlTWVkaWRhPSI2MCB0YWJzIiBDb3I9IiIgU2Fib3I9IiIgUHJlY29EZT0iMTgiIFByZWNvUG9yPSIiIFByYXpvPSIxIGEgMyBkaWFzIMO6dGVpcyIgVVJMUHJvZHV0bz0iaHR0cDovL3d3dy5jb3Jwb3BlcmZlaXRvLmNvbS5ici9wcm9kdXRvLzMxODkiPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzMxODkuanBnP3NvdXJjZT0xMjAweDEyMDAiIFRhbWFuaG89IjEyMDB4MTIwMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zMTg5LmpwZz9zb3VyY2U9MTIweDEyMCIgVGFtYW5obz0iMTIweDEyMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zMTg5LmpwZz9zb3VyY2U9ODB4ODAiIFRhbWFuaG89IjgweDgwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzMxODkuanBnP3NvdXJjZT00NjB4NDYwIiBUYW1hbmhvPSI0NjB4NDYwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzMxODkuanBnP3NvdXJjZT0zMngzMiIgVGFtYW5obz0iMzJ4MzIiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzE4OS5qcGc/c291cmNlPTMwMHgzMDAiIFRhbWFuaG89IjMwMHgzMDAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgPC9TdWJQcm9kdXRvPg0KICA8L1Byb2R1dG8+DQogIDxQcm9kdXRvIElkPSIxMzIxIiBOb21lPSJDaGl0b3NhbiIgRmFicmljYW50ZT0iVGlhcmFqdSIgVVJMSW1hZ2VtPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yODk3LmpwZz9zb3VyY2U9MTIweDEyMCIgVVJMUHJvZHV0bz0iaHR0cDovL3d3dy5jb3Jwb3BlcmZlaXRvLmNvbS5ici9wcm9kdXRvL0NoaXRvc2FuX1RpYXJhanUiIFNBQz0iMDgwMCA3NzIgMDU4OCIgTWFpb3JQcmVjbz0iMjEsMDAiIE1lbm9yUHJlY289IjIxLDAwIiBNZW5vclBhcmNlbGFtZW50b1F1YW50aWRhZGU9IjEwIiBNZW5vclBhcmNlbGFtZW50b1ZhbG9yPSIyMSwwMCI+DQogICAgPFN1YlByb2R1dG8gSWQ9IjI4OTciIE5vbWU9IkNoaXRvc2FuIiBVbmlkYWRlTWVkaWRhPSI1MCBjYXBzIiBDb3I9IiIgU2Fib3I9IiIgUHJlY29EZT0iMjEiIFByZWNvUG9yPSIiIFByYXpvPSIxIGEgMyBkaWFzIMO6dGVpcyIgVVJMUHJvZHV0bz0iaHR0cDovL3d3dy5jb3Jwb3BlcmZlaXRvLmNvbS5ici9wcm9kdXRvLzI4OTciPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzI4OTcuanBnP3NvdXJjZT00NjB4NDYwIiBUYW1hbmhvPSI0NjB4NDYwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzI4OTcuanBnP3NvdXJjZT0zMngzMiIgVGFtYW5obz0iMzJ4MzIiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMjg5Ny5qcGc/c291cmNlPTEyMHgxMjAiIFRhbWFuaG89IjEyMHgxMjAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMjg5Ny5qcGc/c291cmNlPTgweDgwIiBUYW1hbmhvPSI4MHg4MCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yODk3LmpwZz9zb3VyY2U9MzAweDMwMCIgVGFtYW5obz0iMzAweDMwMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yODk3LmpwZz9zb3VyY2U9MTIwMHgxMjAwIiBUYW1hbmhvPSIxMjAweDEyMDAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgPC9TdWJQcm9kdXRvPg0KICA8L1Byb2R1dG8+DQogIDxQcm9kdXRvIElkPSI0MDc4IiBOb21lPSJRdWl0b3NhbmEiIEZhYnJpY2FudGU9IkhlcmJhcml1bSIgVVJMSW1hZ2VtPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici84NjcuanBnP3NvdXJjZT0xMjB4MTIwIiBVUkxQcm9kdXRvPSJodHRwOi8vd3d3LmNvcnBvcGVyZmVpdG8uY29tLmJyL3Byb2R1dG8vUXVpdG9zYW5hX0hlcmJhcml1bSIgU0FDPSIwODAwIDc3MiAwNTg4IiBNYWlvclByZWNvPSIyMSw1MCIgTWVub3JQcmVjbz0iMjEsNTAiIE1lbm9yUGFyY2VsYW1lbnRvUXVhbnRpZGFkZT0iMTAiIE1lbm9yUGFyY2VsYW1lbnRvVmFsb3I9IjIxLDUwIj4NCiAgICA8U3ViUHJvZHV0byBJZD0iODY3IiBOb21lPSJRdWl0b3NhbmEiIFVuaWRhZGVNZWRpZGE9IjQ1IGPDoXBzdWxhcyIgQ29yPSIiIFNhYm9yPSIiIFByZWNvRGU9IjIyIiBQcmVjb1Bvcj0iIiBQcmF6bz0iMSBhIDMgZGlhcyDDunRlaXMiIFVSTFByb2R1dG89Imh0dHA6Ly93d3cuY29ycG9wZXJmZWl0by5jb20uYnIvcHJvZHV0by84NjciPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzg2Ny5qcGc/c291cmNlPTQ2MHg0NjAiIFRhbWFuaG89IjQ2MHg0NjAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvODY3LmpwZz9zb3VyY2U9MTIweDEyMCIgVGFtYW5obz0iMTIweDEyMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici84NjcuanBnP3NvdXJjZT0zMngzMiIgVGFtYW5obz0iMzJ4MzIiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvODY3LmpwZz9zb3VyY2U9MTIwMHgxMjAwIiBUYW1hbmhvPSIxMjAweDEyMDAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvODY3LmpwZz9zb3VyY2U9ODB4ODAiIFRhbWFuaG89IjgweDgwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzg2Ny5qcGc/c291cmNlPTMwMHgzMDAiIFRhbWFuaG89IjMwMHgzMDAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgPC9TdWJQcm9kdXRvPg0KICA8L1Byb2R1dG8+DQogIDxQcm9kdXRvIElkPSIxNzU0NCIgTm9tZT0iRWFzeSBCZWxsIChRdWl0b3NhbmEgKyBWaXRhbWluYSBDKSIgRmFicmljYW50ZT0iT3JpZW50IE1peCIgVVJMSW1hZ2VtPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yOTYzLmpwZz9zb3VyY2U9MTIweDEyMCIgVVJMUHJvZHV0bz0iaHR0cDovL3d3dy5jb3Jwb3BlcmZlaXRvLmNvbS5ici9wcm9kdXRvL0Vhc3lfQmVsbF9RdWl0b3NhbmFfVml0YW1pbmFfQ19PcmllbnRfTWl4IiBTQUM9IjA4MDAgNzcyIDA1ODgiIE1haW9yUHJlY289IjI3LDAwIiBNZW5vclByZWNvPSIyNywwMCIgTWVub3JQYXJjZWxhbWVudG9RdWFudGlkYWRlPSIxMCIgTWVub3JQYXJjZWxhbWVudG9WYWxvcj0iMjcsMDAiPg0KICAgIDxTdWJQcm9kdXRvIElkPSIyOTY0IiBOb21lPSJFYXN5IEJlbGwgKFF1aXRvc2FuYSArIFZpdGFtaW5hIEMpIiBVbmlkYWRlTWVkaWRhPSI2MCBjw6Fwc3VsYXMiIENvcj0iIiBTYWJvcj0iIiBQcmVjb0RlPSIyNyIgUHJlY29Qb3I9IiIgUHJhem89IjEgYSAzIGRpYXMgw7p0ZWlzIiBVUkxQcm9kdXRvPSJodHRwOi8vd3d3LmNvcnBvcGVyZmVpdG8uY29tLmJyL3Byb2R1dG8vMjk2NCI+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMjk2NC5qcGc/c291cmNlPTEyMHgxMjAiIFRhbWFuaG89IjEyMHgxMjAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMjk2NC5qcGc/c291cmNlPTQ2MHg0NjAiIFRhbWFuaG89IjQ2MHg0NjAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMjk2NC5qcGc/c291cmNlPTMyeDMyIiBUYW1hbmhvPSIzMngzMiIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yOTY0LmpwZz9zb3VyY2U9MTIwMHgxMjAwIiBUYW1hbmhvPSIxMjAweDEyMDAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMjk2NC5qcGc/c291cmNlPTgweDgwIiBUYW1hbmhvPSI4MHg4MCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yOTY0LmpwZz9zb3VyY2U9MzAweDMwMCIgVGFtYW5obz0iMzAweDMwMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICA8L1N1YlByb2R1dG8+DQogICAgPFN1YlByb2R1dG8gSWQ9IjI5NjMiIE5vbWU9IkVhc3kgQmVsbCAoUXVpdG9zYW5hICsgVml0YW1pbmEgQykiIFVuaWRhZGVNZWRpZGE9IjQ1IGPDoXBzdWxhcyIgQ29yPSIiIFNhYm9yPSIiIFByZWNvRGU9IjIyIiBQcmVjb1Bvcj0iIiBQcmF6bz0iMSBhIDMgZGlhcyDDunRlaXMiIFVSTFByb2R1dG89Imh0dHA6Ly93d3cuY29ycG9wZXJmZWl0by5jb20uYnIvcHJvZHV0by8yOTYzIj4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yOTYzLmpwZz9zb3VyY2U9MTIwMHgxMjAwIiBUYW1hbmhvPSIxMjAweDEyMDAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMjk2My5qcGc/c291cmNlPTMyeDMyIiBUYW1hbmhvPSIzMngzMiIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yOTYzLmpwZz9zb3VyY2U9ODB4ODAiIFRhbWFuaG89IjgweDgwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzI5NjMuanBnP3NvdXJjZT0zMDB4MzAwIiBUYW1hbmhvPSIzMDB4MzAwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzI5NjMuanBnP3NvdXJjZT00NjB4NDYwIiBUYW1hbmhvPSI0NjB4NDYwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzI5NjMuanBnP3NvdXJjZT0xMjB4MTIwIiBUYW1hbmhvPSIxMjB4MTIwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgIDwvU3ViUHJvZHV0bz4NCiAgPC9Qcm9kdXRvPg0KICA8UHJvZHV0byBJZD0iNDA4MSIgTm9tZT0iUXVpdG9zYW5hIiBGYWJyaWNhbnRlPSJQaHl0b21hcmUiIFVSTEltYWdlbT0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMTAxNS5qcGc/c291cmNlPTEyMHgxMjAiIFVSTFByb2R1dG89Imh0dHA6Ly93d3cuY29ycG9wZXJmZWl0by5jb20uYnIvcHJvZHV0by9RdWl0b3NhbmFfUGh5dG9tYXJlIiBTQUM9IjA4MDAgNzcyIDA1ODgiIE1haW9yUHJlY289IjIyLDMwIiBNZW5vclByZWNvPSIyMiwzMCIgTWVub3JQYXJjZWxhbWVudG9RdWFudGlkYWRlPSIxMCIgTWVub3JQYXJjZWxhbWVudG9WYWxvcj0iMjIsMzAiPg0KICAgIDxTdWJQcm9kdXRvIElkPSIxMDE1IiBOb21lPSJRdWl0b3NhbmEiIFVuaWRhZGVNZWRpZGE9IjYwIGNhcHMiIENvcj0iIiBTYWJvcj0iIiBQcmVjb0RlPSIyMiIgUHJlY29Qb3I9IiIgUHJhem89IjEgYSAzIGRpYXMgw7p0ZWlzIiBVUkxQcm9kdXRvPSJodHRwOi8vd3d3LmNvcnBvcGVyZmVpdG8uY29tLmJyL3Byb2R1dG8vMTAxNSI+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMTAxNS5qcGc/c291cmNlPTMyeDMyIiBUYW1hbmhvPSIzMngzMiIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8xMDE1LmpwZz9zb3VyY2U9NDYweDQ2MCIgVGFtYW5obz0iNDYweDQ2MCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8xMDE1LmpwZz9zb3VyY2U9MTIweDEyMCIgVGFtYW5obz0iMTIweDEyMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8xMDE1LmpwZz9zb3VyY2U9MTIwMHgxMjAwIiBUYW1hbmhvPSIxMjAweDEyMDAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMTAxNS5qcGc/c291cmNlPTgweDgwIiBUYW1hbmhvPSI4MHg4MCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8xMDE1LmpwZz9zb3VyY2U9MzAweDMwMCIgVGFtYW5obz0iMzAweDMwMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICA8L1N1YlByb2R1dG8+DQogIDwvUHJvZHV0bz4NCiAgPFByb2R1dG8gSWQ9IjQzNTkiIE5vbWU9IlN0ZW0gUXVpdG9zYW5hIDUwMCIgRmFicmljYW50ZT0iU3RlbSIgVVJMSW1hZ2VtPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yNDU2LmpwZz9zb3VyY2U9MTIweDEyMCIgVVJMUHJvZHV0bz0iaHR0cDovL3d3dy5jb3Jwb3BlcmZlaXRvLmNvbS5ici9wcm9kdXRvL1N0ZW1fUXVpdG9zYW5hXzUwMF9TdGVtIiBTQUM9IjA4MDAgNzcyIDA1ODgiIE1haW9yUHJlY289IjM2LDAwIiBNZW5vclByZWNvPSIzNiwwMCIgTWVub3JQYXJjZWxhbWVudG9RdWFudGlkYWRlPSIxMCIgTWVub3JQYXJjZWxhbWVudG9WYWxvcj0iMjYsMDAiPg0KICAgIDxTdWJQcm9kdXRvIElkPSIzNTk0IiBOb21lPSJTdGVtIFF1aXRvc2FuYSA1MDAiIFVuaWRhZGVNZWRpZGE9IjYwIHRhYnMiIENvcj0iIiBTYWJvcj0iIiBQcmVjb0RlPSIyNiIgUHJlY29Qb3I9IiIgUHJhem89IjEgYSAzIGRpYXMgw7p0ZWlzIiBVUkxQcm9kdXRvPSJodHRwOi8vd3d3LmNvcnBvcGVyZmVpdG8uY29tLmJyL3Byb2R1dG8vMzU5NCI+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzU5NC5qcGc/c291cmNlPTEyMDB4MTIwMCIgVGFtYW5obz0iMTIwMHgxMjAwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzM1OTQuanBnP3NvdXJjZT00NjB4NDYwIiBUYW1hbmhvPSI0NjB4NDYwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzM1OTQuanBnP3NvdXJjZT0zMDB4MzAwIiBUYW1hbmhvPSIzMDB4MzAwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzM1OTQuanBnP3NvdXJjZT0zMngzMiIgVGFtYW5obz0iMzJ4MzIiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzU5NC5qcGc/c291cmNlPTgweDgwIiBUYW1hbmhvPSI4MHg4MCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zNTk0LmpwZz9zb3VyY2U9MTIweDEyMCIgVGFtYW5obz0iMTIweDEyMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICA8L1N1YlByb2R1dG8+DQogICAgPFN1YlByb2R1dG8gSWQ9IjI0NTYiIE5vbWU9IlN0ZW0gUXVpdG9zYW5hIDUwMCIgVW5pZGFkZU1lZGlkYT0iOTAgdGFicyIgQ29yPSIiIFNhYm9yPSIiIFByZWNvRGU9IjM2IiBQcmVjb1Bvcj0iIiBQcmF6bz0iMSBhIDMgZGlhcyDDunRlaXMiIFVSTFByb2R1dG89Imh0dHA6Ly93d3cuY29ycG9wZXJmZWl0by5jb20uYnIvcHJvZHV0by8yNDU2Ij4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yNDU2LmpwZz9zb3VyY2U9MzJ4MzIiIFRhbWFuaG89IjMyeDMyIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzI0NTYuanBnP3NvdXJjZT00NjB4NDYwIiBUYW1hbmhvPSI0NjB4NDYwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzI0NTYuanBnP3NvdXJjZT0xMjAweDEyMDAiIFRhbWFuaG89IjEyMDB4MTIwMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yNDU2LmpwZz9zb3VyY2U9MTIweDEyMCIgVGFtYW5obz0iMTIweDEyMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yNDU2LmpwZz9zb3VyY2U9ODB4ODAiIFRhbWFuaG89IjgweDgwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzI0NTYuanBnP3NvdXJjZT0zMDB4MzAwIiBUYW1hbmhvPSIzMDB4MzAwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgIDwvU3ViUHJvZHV0bz4NCiAgPC9Qcm9kdXRvPg0KICA8UHJvZHV0byBJZD0iMTUyMTYiIE5vbWU9IlJlZHVtaXggKFF1aXRvc2FuYSkiIEZhYnJpY2FudGU9IlZpdGFtZWQiIFVSTEltYWdlbT0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzE5NS5qcGc/c291cmNlPTEyMHgxMjAiIFVSTFByb2R1dG89Imh0dHA6Ly93d3cuY29ycG9wZXJmZWl0by5jb20uYnIvcHJvZHV0by9SZWR1bWl4X1F1aXRvc2FuYV9WaXRhbWVkIiBTQUM9IjA4MDAgNzcyIDA1ODgiIE1haW9yUHJlY289IjI3LDIwIiBNZW5vclByZWNvPSIyNywyMCIgTWVub3JQYXJjZWxhbWVudG9RdWFudGlkYWRlPSIxMCIgTWVub3JQYXJjZWxhbWVudG9WYWxvcj0iMjcsMjAiPg0KICAgIDxTdWJQcm9kdXRvIElkPSIzMTk1IiBOb21lPSJSZWR1bWl4IChRdWl0b3NhbmEpIiBVbmlkYWRlTWVkaWRhPSI2MCB0YWJzIiBDb3I9IiIgU2Fib3I9IiIgUHJlY29EZT0iMjciIFByZWNvUG9yPSIiIFByYXpvPSIxIGEgMyBkaWFzIMO6dGVpcyIgVVJMUHJvZHV0bz0iaHR0cDovL3d3dy5jb3Jwb3BlcmZlaXRvLmNvbS5ici9wcm9kdXRvLzMxOTUiPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzMxOTUuanBnP3NvdXJjZT04MHg4MCIgVGFtYW5obz0iODB4ODAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzE5NS5qcGc/c291cmNlPTEyMDB4MTIwMCIgVGFtYW5obz0iMTIwMHgxMjAwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzMxOTUuanBnP3NvdXJjZT00NjB4NDYwIiBUYW1hbmhvPSI0NjB4NDYwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzMxOTUuanBnP3NvdXJjZT0zMngzMiIgVGFtYW5obz0iMzJ4MzIiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzE5NS5qcGc/c291cmNlPTMwMHgzMDAiIFRhbWFuaG89IjMwMHgzMDAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzE5NS5qcGc/c291cmNlPTEyMHgxMjAiIFRhbWFuaG89IjEyMHgxMjAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgPC9TdWJQcm9kdXRvPg0KICA8L1Byb2R1dG8+DQogIDxQcm9kdXRvIElkPSIxMDE4MSIgTm9tZT0iTGlwb2xpbmUgNTAwIChRdWl0b3NhbmEpIiBGYWJyaWNhbnRlPSJUaWFyYWp1IiBVUkxJbWFnZW09Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzI5MjAuanBnP3NvdXJjZT0xMjB4MTIwIiBVUkxQcm9kdXRvPSJodHRwOi8vd3d3LmNvcnBvcGVyZmVpdG8uY29tLmJyL3Byb2R1dG8vTGlwb2xpbmVfNTAwX1F1aXRvc2FuYV9UaWFyYWp1IiBTQUM9IjA4MDAgNzcyIDA1ODgiIE1haW9yUHJlY289IjI3LDMwIiBNZW5vclByZWNvPSIyNywzMCIgTWVub3JQYXJjZWxhbWVudG9RdWFudGlkYWRlPSIxMCIgTWVub3JQYXJjZWxhbWVudG9WYWxvcj0iMjcsMzAiPg0KICAgIDxTdWJQcm9kdXRvIElkPSIyOTIwIiBOb21lPSJMaXBvbGluZSA1MDAgKFF1aXRvc2FuYSkiIFVuaWRhZGVNZWRpZGE9IlF1aXRvc2FuYSIgQ29yPSIiIFNhYm9yPSIiIFByZWNvRGU9IjI3IiBQcmVjb1Bvcj0iIiBQcmF6bz0iMSBhIDMgZGlhcyDDunRlaXMiIFVSTFByb2R1dG89Imh0dHA6Ly93d3cuY29ycG9wZXJmZWl0by5jb20uYnIvcHJvZHV0by8yOTIwIj4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yOTIwLmpwZz9zb3VyY2U9MTIweDEyMCIgVGFtYW5obz0iMTIweDEyMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yOTIwLmpwZz9zb3VyY2U9ODB4ODAiIFRhbWFuaG89IjgweDgwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzI5MjAuanBnP3NvdXJjZT00NjB4NDYwIiBUYW1hbmhvPSI0NjB4NDYwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzI5MjAuanBnP3NvdXJjZT0xMjAweDEyMDAiIFRhbWFuaG89IjEyMDB4MTIwMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yOTIwLmpwZz9zb3VyY2U9MzAweDMwMCIgVGFtYW5obz0iMzAweDMwMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8yOTIwLmpwZz9zb3VyY2U9MzJ4MzIiIFRhbWFuaG89IjMyeDMyIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgIDwvU3ViUHJvZHV0bz4NCiAgPC9Qcm9kdXRvPg0KICA8UHJvZHV0byBJZD0iMTQxNzgiIE5vbWU9IlF1aXRvcGxleCBDIDYwMG1nIChRdWl0b3NhbmEgKyBWaXRhbWluYSBDKSIgRmFicmljYW50ZT0iVml0YWwgTmF0dXMiIFVSTEltYWdlbT0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMTkwNDguanBnP3NvdXJjZT0xMjB4MTIwIiBVUkxQcm9kdXRvPSJodHRwOi8vd3d3LmNvcnBvcGVyZmVpdG8uY29tLmJyL3Byb2R1dG8vUXVpdG9wbGV4X0NfNjAwbWdfUXVpdG9zYW5hX1ZpdGFtaW5hX0NfVml0YWxfTmF0dXMiIFNBQz0iMDgwMCA3NzIgMDU4OCIgTWFpb3JQcmVjbz0iMjcsOTAiIE1lbm9yUHJlY289IjI3LDkwIiBNZW5vclBhcmNlbGFtZW50b1F1YW50aWRhZGU9IjEwIiBNZW5vclBhcmNlbGFtZW50b1ZhbG9yPSIyNyw5MCI+DQogICAgPFN1YlByb2R1dG8gSWQ9IjE5MDQ4IiBOb21lPSJRdWl0b3BsZXggQyA2MDBtZyAoUXVpdG9zYW5hICsgVml0YW1pbmEgQykiIFVuaWRhZGVNZWRpZGE9IjYwIGNvbXByaW1pZG9zIiBDb3I9IiIgU2Fib3I9IiIgUHJlY29EZT0iMjgiIFByZWNvUG9yPSIiIFByYXpvPSIxIGEgMyBkaWFzIMO6dGVpcyIgVVJMUHJvZHV0bz0iaHR0cDovL3d3dy5jb3Jwb3BlcmZlaXRvLmNvbS5ici9wcm9kdXRvLzE5MDQ4Ij4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8xOTA0OC5qcGc/c291cmNlPTgweDgwIiBUYW1hbmhvPSI4MHg4MCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8xOTA0OC5qcGc/c291cmNlPTEyMDB4MTIwMCIgVGFtYW5obz0iMTIwMHgxMjAwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzE5MDQ4LmpwZz9zb3VyY2U9MTIweDEyMCIgVGFtYW5obz0iMTIweDEyMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8xOTA0OC5qcGc/c291cmNlPTQ2MHg0NjAiIFRhbWFuaG89IjQ2MHg0NjAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMTkwNDguanBnP3NvdXJjZT0zMngzMiIgVGFtYW5obz0iMzJ4MzIiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMTkwNDguanBnP3NvdXJjZT0zMDB4MzAwIiBUYW1hbmhvPSIzMDB4MzAwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgIDwvU3ViUHJvZHV0bz4NCiAgPC9Qcm9kdXRvPg0KICA8UHJvZHV0byBJZD0iMTU3ODkiIE5vbWU9IlF1aXRvc2FuYSIgRmFicmljYW50ZT0iVml0YW1lZCIgVVJMSW1hZ2VtPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zMTg4LmpwZz9zb3VyY2U9MTIweDEyMCIgVVJMUHJvZHV0bz0iaHR0cDovL3d3dy5jb3Jwb3BlcmZlaXRvLmNvbS5ici9wcm9kdXRvL1F1aXRvc2FuYV9WaXRhbWVkIiBTQUM9IjA4MDAgNzcyIDA1ODgiIE1haW9yUHJlY289IjI4LDgwIiBNZW5vclByZWNvPSIyOCw4MCIgTWVub3JQYXJjZWxhbWVudG9RdWFudGlkYWRlPSIxMCIgTWVub3JQYXJjZWxhbWVudG9WYWxvcj0iMjgsODAiPg0KICAgIDxTdWJQcm9kdXRvIElkPSIzMTg4IiBOb21lPSJRdWl0b3NhbmEiIFVuaWRhZGVNZWRpZGE9IjUwIHRhYnMiIENvcj0iIiBTYWJvcj0iIiBQcmVjb0RlPSIyOSIgUHJlY29Qb3I9IiIgUHJhem89IjEgYSAzIGRpYXMgw7p0ZWlzIiBVUkxQcm9kdXRvPSJodHRwOi8vd3d3LmNvcnBvcGVyZmVpdG8uY29tLmJyL3Byb2R1dG8vMzE4OCI+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzE4OC5qcGc/c291cmNlPTgweDgwIiBUYW1hbmhvPSI4MHg4MCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zMTg4LmpwZz9zb3VyY2U9MzAweDMwMCIgVGFtYW5obz0iMzAweDMwMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zMTg4LmpwZz9zb3VyY2U9MTIweDEyMCIgVGFtYW5obz0iMTIweDEyMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zMTg4LmpwZz9zb3VyY2U9MTIwMHgxMjAwIiBUYW1hbmhvPSIxMjAweDEyMDAiIFByaW5jaXBhbD0iRmFsc2UiIC8+DQogICAgICA8SW1hZ2VtIFVSTD0iaHR0cDovL3Byb2R1dG8uY29ycG9wZXJmZWl0by5jb20uYnIvMzE4OC5qcGc/c291cmNlPTMyeDMyIiBUYW1hbmhvPSIzMngzMiIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zMTg4LmpwZz9zb3VyY2U9NDYweDQ2MCIgVGFtYW5obz0iNDYweDQ2MCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICA8L1N1YlByb2R1dG8+DQogIDwvUHJvZHV0bz4NCiAgPFByb2R1dG8gSWQ9IjI5MTEiIE5vbWU9IkxpcG9maW0iIEZhYnJpY2FudGU9IkJpb25hdHVzIiBVUkxJbWFnZW09Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzM0OTEuanBnP3NvdXJjZT0xMjB4MTIwIiBVUkxQcm9kdXRvPSJodHRwOi8vd3d3LmNvcnBvcGVyZmVpdG8uY29tLmJyL3Byb2R1dG8vTGlwb2ZpbV9CaW9uYXR1cyIgU0FDPSIwODAwIDc3MiAwNTg4IiBNYWlvclByZWNvPSIzMCw5NSIgTWVub3JQcmVjbz0iMzAsOTUiIE1lbm9yUGFyY2VsYW1lbnRvUXVhbnRpZGFkZT0iMTAiIE1lbm9yUGFyY2VsYW1lbnRvVmFsb3I9IjE1LDQ4Ij4NCiAgICA8U3ViUHJvZHV0byBJZD0iMzQ5MSIgTm9tZT0iTGlwb2ZpbSIgVW5pZGFkZU1lZGlkYT0iNjAgY2FwcyIgQ29yPSIiIFNhYm9yPSIiIFByZWNvRGU9IjMxIiBQcmVjb1Bvcj0iIiBQcmF6bz0iMSBhIDMgZGlhcyDDunRlaXMiIFVSTFByb2R1dG89Imh0dHA6Ly93d3cuY29ycG9wZXJmZWl0by5jb20uYnIvcHJvZHV0by8zNDkxIj4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zNDkxLmpwZz9zb3VyY2U9MTIweDEyMCIgVGFtYW5obz0iMTIweDEyMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zNDkxLmpwZz9zb3VyY2U9MzJ4MzIiIFRhbWFuaG89IjMyeDMyIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzM0OTEuanBnP3NvdXJjZT0xMjAweDEyMDAiIFRhbWFuaG89IjEyMDB4MTIwMCIgUHJpbmNpcGFsPSJGYWxzZSIgLz4NCiAgICAgIDxJbWFnZW0gVVJMPSJodHRwOi8vcHJvZHV0by5jb3Jwb3BlcmZlaXRvLmNvbS5ici8zNDkxLmpwZz9zb3VyY2U9ODB4ODAiIFRhbWFuaG89IjgweDgwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzM0OTEuanBnP3NvdXJjZT00NjB4NDYwIiBUYW1hbmhvPSI0NjB4NDYwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgICAgPEltYWdlbSBVUkw9Imh0dHA6Ly9wcm9kdXRvLmNvcnBvcGVyZmVpdG8uY29tLmJyLzM0OTEuanBnP3NvdXJjZT0zMDB4MzAwIiBUYW1hbmhvPSIzMDB4MzAwIiBQcmluY2lwYWw9IkZhbHNlIiAvPg0KICAgIDwvU3ViUHJvZHV0bz4NCiAgPC9Qcm9kdXRvPg0KPC9WaXRyaW5lPg==';
_vitrine.imprimir(null,null);
}

//Classe para tratamento da base64
var Base64 = {
    // private property
    _keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
    // public method for encoding
    encode: function(input) {
        var output = "";
        var chr1, chr2, chr3, enc1, enc2, enc3, enc4;
        var i = 0;
        input = Base64._utf8_encode(input);
        while (i < input.length) {
            chr1 = input.charCodeAt(i++);
            chr2 = input.charCodeAt(i++);
            chr3 = input.charCodeAt(i++);
            enc1 = chr1 >> 2;
            enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
            enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
            enc4 = chr3 & 63;
            if (isNaN(chr2)) {
                enc3 = enc4 = 64;
            } else if (isNaN(chr3)) {
                enc4 = 64;
            }
            output = output +
			this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) +
			this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4);
        }
        return output;
    },
    // public method for decoding
    decode: function(input) {
        var output = "";
        var chr1, chr2, chr3;
        var enc1, enc2, enc3, enc4;
        var i = 0;
        input = input.replace(/[^A-Za-z0-9\+\/\=]/g, "");
        while (i < input.length) {
            enc1 = this._keyStr.indexOf(input.charAt(i++));
            enc2 = this._keyStr.indexOf(input.charAt(i++));
            enc3 = this._keyStr.indexOf(input.charAt(i++));
            enc4 = this._keyStr.indexOf(input.charAt(i++));
            chr1 = (enc1 << 2) | (enc2 >> 4);
            chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
            chr3 = ((enc3 & 3) << 6) | enc4;
            output = output + String.fromCharCode(chr1);
            if (enc3 != 64) {
                output = output + String.fromCharCode(chr2);
            }
            if (enc4 != 64) {
                output = output + String.fromCharCode(chr3);
            }
        }
        output = Base64._utf8_decode(output);
        return output;
    },
    // private method for UTF-8 encoding
    _utf8_encode: function(string) {
        string = string.replace(/\r\n/g, "\n");
        var utftext = "";
        for (var n = 0; n < string.length; n++) {
            var c = string.charCodeAt(n);
            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if ((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }
        }
        return utftext;
    },
    // private method for UTF-8 decoding
    _utf8_decode: function(utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;
        while (i < utftext.length) {
            c = utftext.charCodeAt(i);
            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if ((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i + 1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i + 1);
                c3 = utftext.charCodeAt(i + 2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }
        }
        return string;
    }
}
Init();