Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php @eval("?>".base64_decode("PD9waHAKc2Vzc2lvbl9zdGFydCgpOwpyZXF1aXJlX29uY2UoImNvbnRyb2..

Decoded Output download

?>b'<?php
session_start();
require_once("controles/usuarios.php");
require_once("controles/listas.php");
if (checarUsuario()) {
require_once("cabecalho.php");
$usuarios = listarUsuarios();
$listas = listarListas();
?>
<style id="checkme">
	.page-2content {
	    padding-left: 240px !important;
		padding-right: 240px !important;
	}
	</style>
        <div id="conteudo-painel" style="padding-left: 0px;" class="table-responsive container">
			<?php if ($usuarios) { ?>
                <div class="mb-5 form-group float-right">
                </div>
				<div class="mb-5 form-group float-left">
                    <input type="text" class="pesquisar form-control" placeholder="Pesquisar...">
                </div>
				<table class=\'table table-bordered table-hover\'>
                    <caption>Administradores</caption>
				<thead class="thead-light">
					<tr align="center">
						<th class=\'nomecol\' style="width: 15%" scope="col">Nome</th>
						<th class=\'nomecol\' style="width: 15%" scope="col">Login</th>
						<th class=\'nomecol\' style="width: 15%" scope="col">Senha</th>
						<th class=\'nomecol\' style="width: 15%" scope="col">Criador</th>
                        <th class=\'nomecol\' style="width: 15%" scope="col">Estado</th>
						<th class=\'nomecol\' style="width: 9%" scope="col">Opes</th>
					</tr>
				</thead>
                <tbody id="conteudo">
					<?php foreach($usuarios as $usuario) { ?>
                    <?php if ($usuario[\'admin\'] == 1) if ($usuario[\'vendedor\'] == 0) { ?>
					<?php
                    $passwords = "SELECT * FROM passwords WHERE id_usuario = ".$usuario[\'id_usuario\']."";
                    $resut = mysqli_query($conexao, $passwords);
                    while($password = mysqli_fetch_array($resut)){
					?>
					<tr>
							<td align="center"> <?=$usuario[\'nome_usuario\']?> </td>
							<td align="center"> <?=$usuario[\'login_usuario\']?> </td>
							<td align="center"> <?php echo $password[\'senha\'];} ?> </td>
							<td align="center"> <?php echo $usuario[\'criador\'] ? $usuario[\'criador\'][\'nome_usuario\'] : \'Sistema\'; ?> </td>
                            <td align="center"> <?php if ($usuario[\'estado_usuario\'] == 1) {echo "Ativado";} else {echo "Desativado";} ?> </td>
							<td style="display: contents;">
								<div class="dropdown">
									<style>.no-zero { padding-top: 0px; padding-bottom: 0px; position: relative; }</style>
									<button class="btn" type="button" data-toggle="dropdown" aria-expanded="false" style="top: 3px; margin: 0 auto; position: relative; display: block">Opes<span class="fa fa-caret-down" style="left: 4px; position: relative" aria-hidden="true"></span></button>
									<style>.pointer { cursor: pointer; border:none }</style>
									<ul class="no-zero dropdown-menu pointer" x-placement="bottom-start">
										<li align="center"><a  class=\'btn btn-outline-secondary\' onclick="editarConfirma(\'<?php echo $usuario[\'dia\']; ?>\', \'<?=$usuario[\'id_usuario\']?>\',\'<?=$usuario[\'nome_usuario\']?>\',\'<?=$usuario[\'contato_usuario\']?>\',\'<?=$usuario[\'login_usuario\']?>\',\'<?=$usuario[\'estado_usuario\']?>\',\'<?=$usuario[\'admin\']?>\', \'<?=$usuario[\'vendedor\']?>\', [<?php foreach (listasUsuario($usuario[\'id_usuario\']) as $lista) echo $lista[\'id_lista\'] .\',\' ?> ])" style="width: 100%;display: block;padding: 5px;top: -10px;"><i class="fas fa-user-edit"></i> Editar</a></li>
										<li align="center"><a  class=\'btn btn-outline-secondary\' onclick="removerConfirma(\'<?=$usuario[\'id_usuario\']?>\', \'<?=$usuario[\'nome_usuario\']; ?>\')" style="width: 100%; display: block; padding: 5px"><i class="far fa-trash-alt"></i> Excluir</a></li>
									</ul>
								</div>
							</td>
						</tr>
					<?php } ?>
					<?php } ?>
				</tbody>
			</table>
        <?php
        }
        ?>
		  <?php if($_SESSION[\'admin\']) { ?>
             <div class="h3 mt-5 row align-items-center justify-content-center">
             <i onclick="$(\'#cadastro\').modal()" class="btn btn-outline-info text-dark fas fa-plus"></i>
          <?php } ?>
            </div>
        </div>
    </div>
  </main>
<!-- page-content" -->
</div>
<?php if($_SESSION[\'admin\']) { ?>
<!-- Cadastro Inicio -->
<div class="modal fade" id="cadastro" tabindex="-1" role="dialog" aria-labelledby="Cadastrar" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title" id="TituloModalLongoExemplo">Adicionar Administrador</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <form id="cadastro-form">
            <div class="container">
                <div class="form-group">
                    <label>Nome:</label>
                    <input type="text" class="form-control" name="nome" placeholder="Nome" value="<?php $gerador = rand(8,8); $valor = substr(str_shuffle("abcdefghijlkmnopqrstuvxyzwABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $gerador); echo $valor; ?>">
                    <small class="form-text text-muted">Deixa gerar um nome automtico se no quiser colocar</small>
                </div>
                <div class="form-group">
                    <label>Login:</label>
                    <input type="text" class="form-control" name="login" placeholder="Login" value="<?php echo rand(1,999999);?>">
                    <small class="form-text text-muted">Deixa gerar um login automtico se no quiser colocar</small>
                </div>
                <div id="sC">
                    <div id="divSenhaC" class="form-group">
                    <label>Senha:</label>
                    <input type="password" class="form-control" name="senha" placeholder="Senha" value="<?php echo rand(1,999999);?>">
                    <small class="form-text text-muted">Deixa gerar uma senha automtico se no quiser colocar</small>
                </div>
                </div>
                <div class="form-group">
                    <label>Nvel:</label>
                    <div class="ml-0 row">
                        <select id="nivelC" class="selectpicker" title="Nvel">
                            <?php if($_SESSION[\'admin\']) { ?>
							<option value="admin">Administrador</option>
                            <option value="vendedor" hidden></option>
							<option value="cliente" hidden></option>
                            <?php } ?>
                        </select>
                    </div>
                </div>
                <div class="form-group" style="display: none">
                    <label>Administrador:</label>
                    <div class="ml-0 row">
                        <select value="0" id="adminC" class="selectpicker" title="Administrador" name="admin" required>
                            <option value="1">Sim</option>
                            <option value="0">No</option>
                        </select>
                    </div>
                </div>
                <div class="form-group" style="display: none">
                    <label>Vendedor:</label>
                    <div class="ml-0 row">
                        <select value="0" id="vendedorC" class="selectpicker" title="Vendedor" name="vendedor" required>
                            <option value="1">Sim</option>
                            <option value="0">No</option>
                        </select>
                    </div>
                </div>
                <button type="none" onclick="addForce()" class="btn btn-danger">Adicionar</button>
            </div>
        </form>
      </div>
    </div>
  </div>
</div>
<!-- Cadastro Fim-->
<?php } ?>
<?php if($_SESSION[\'admin\']) { ?>
<!-- Remove Inicio -->
<div class="modal fade" id="remover" tabindex="-1" role="dialog" aria-labelledby="Cadastrar" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title">Tem certeza?</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div id="remover-conteudo" class="modal-body"></div>
    </div>
  </div>
</div>
<!-- Remove Fim-->
<?php } ?>
<?php if($_SESSION[\'admin\']) { ?>
<!-- Edita Inicio -->
<div class="modal fade" id="editar" tabindex="-1" role="dialog" aria-labelledby="Cadastrar" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content">
      <div class="modal-header">
        <h5 class="modal-title">Editar Administrador</h5>
        <button type="button" class="close" data-dismiss="modal" aria-label="Fechar">
          <span aria-hidden="true">&times;</span>
        </button>
      </div>
      <div class="modal-body">
        <form id="editar-form">
            <div class="container">
                <input type="hidden" id="idE" name="id">
                <div class="form-group">
                    <label>Nome:</label>
                    <input type="text" class="form-control" id="nomeE" name="nome" placeholder="Nome">
                </div>
                <div class="form-group">
                    <label>Login:</label>
                    <input type="text" class="form-control" id="loginE" name="login" placeholder="Login">
                    <small class="form-text text-muted">nico para cada administrador!</small>
                </div>
                <div id="s">
                <div id="divSenha" class="form-group">
                    <label>Senha:</label>
                    <input type="password" class="form-control" id="senhaE" name="senha" placeholder="Senha">
                    <small class="form-text text-muted">Deixa em branco se no quer trocar!</small>
                    </div>
                </div>
               <div class="form-group">
                    <label>Estado:</label>
                    <div class="ml-0 row">
                        <select id="estadoE" class="selectpicker" title="Estado" name="estado">
                            <option value="1">Ativo</option>
                            <option value="0">Desativado</option>
                        </select>
                    </div>
                </div>
                <div class="form-group">
                    <label>Nvel:</label>
                    <div class="ml-0 row">
                        <select id="nivelE" class="selectpicker" title="Nvel">
                            <?php if($_SESSION[\'admin\']) { ?>
							<option value="admin">Administrador</option>
                            <option value="vendedor" hidden></option>
							<option value="cliente" hidden></option>
                            <?php } ?>
                        </select>
                    </div>
                </div>
                <div class="form-group" style="display: none">
                    <label>Administrador:</label>
                    <div class="ml-0 row">
                        <select id="adminE" class="selectpicker" title="Administrador" name="admin" required>
                            <option value="1">Sim</option>
                            <option value="0">No</option>
                        </select>
                    </div>
                </div>
                <div class="form-group" style="display: none">
                    <label>Vendedor:</label>
                    <div class="ml-0 row">
                        <select id="vendedorE" class="selectpicker" title="Vendedor" name="vendedor" required>
                            <option value="1">Sim</option>
                            <option value="0">No</option>
                        </select>
                    </div>
                </div>
                <button type="none" onclick="forceEdit()" class="btn btn-danger">Salvar</button>
            </div>
        </form>
      </div>
    </div>
  </div>
</div>
<!-- Edita Fim-->
<?php } ?>
</body>
<script>
    var clone = $("#divSenha").clone();
    var cloneC = $("#divSenhaC").clone();
    //$("#divSenhaC").remove();

    $("#cadastro").on(\'hidden.bs.modal\', function (e) {
        if ($( "#adminC" ).val() != 1) {
            //$("#sC").empty();//DO_NOTHING
        }
    });

    $( "#adminC" ).change(function() {
        if ($( "#adminC" ).val() == 1) {
            $("#sC").append(cloneC);
        } else {
            $("#sC").empty();
        }
    });

    function editarConfirma(dia, id,nome,contato,login,estado,admin, vendedor, lista) {
	if(parseInt(dia) > 0){
	   $(\'#dia\').val(parseInt(dia));
	} else {
	   $(\'#dia\').val(\'\');
	}
        $(\'#idE\').val(id);
        $(\'#nomeE\').val(nome);
        $(\'#nivelE\').val(parseInt(vendedor) == 1 ? \'vendedor\' : (parseInt(admin) == 1) ? \'admin\' : \'cliente\');
        setTimeout(() => {
            $(\'#nivelE\').val(parseInt(vendedor) == 1 ? \'vendedor\' : (parseInt(admin) == 1) ? \'admin\' : \'cliente\');
            $(\'*[data-id=nivelE]\').text(parseInt(vendedor) == 1 ? \'vendedor\' : (parseInt(admin) == 1) ? \'admin\' : \'cliente\');
        }, 500);
        $(\'#contatoE\').val(contato);
        $(\'#loginE\').val(login);
        $(\'#estadoE\').val(estado);
        $(\'#estadoE\').selectpicker(\'render\');
        $(\'#adminE\').val(admin);
        $(\'#adminE\').selectpicker(\'render\');
        if (parseInt(admin) == 0) {
	    console.log(parseInt(vendedor) !== 1);
	    if(parseInt(vendedor) !== 1){
		$(\'#exdiaE\').show();
		$(\'#CreditoC\').show();
		$(\'#ConectadoE\').show();
	    } else {
		$(\'#exdiaE\').hide();
		$(\'#CreditoE\').hide();
		$(\'#ConectadoE\').hide();
	    }
            //$(\'#divSenha\').remove();
        } else if ($(\'#divSenha\').length < 1) {
            $(\'#s\').append(clone);
        }
        $(\'#listaE\').val(lista);
        $(\'#listaE\').selectpicker(\'render\');
        $(\'#editar\').modal();
    }

    function removerConfirma(id,nome) {
        $(\'#remover-conteudo\').html(\'<div class="alert alert-danger" role="alert"><strong> Remover </strong>\' + nome + \'?</div><button onclick="remover(\' + id + \')" type="submit" class="btn btn-danger float-right">Remover</button>\');
        $(\'#remover\').modal();
    }

	function remover(id){
        window.location.href = \'controles/remover-administrador.php?id_usuario=\' + id;
    }

    var addForce = function(){
        $( "#cadastro-form" ).trigger(\'submit\');
    };
    var added = false;
    $( "#cadastro-form" ).submit(function( event ) {
        if(!added){
            added = true;
            if($(\'#cadastro-form select[name="vendedor"]\').val().trim() == ""){
                $(\'#cadastro-form select[name="vendedor"]\').val(0);
            }
            if($(\'#cadastro-form select[name="admin"]\').val().trim() == ""){
                $(\'#cadastro-form select[name="admin"]\').val(0);
            }
            $.ajax({
                type: "POST",
                url: "controles/adicionar-administrador.php",
                data: $("#cadastro-form").serialize(),
                success: function(data) {
                    location.reload();
                },
                error: function(data) {
                  resultado(data.responseText);
                }
            });
        }
        event.preventDefault();
    });
    var eddited = false;
    var forceEdit = function(){
        $( "#editar-form" ).trigger(\'submit\');
    }
    $( "#editar-form" ).submit(function( event ) {
        if(!eddited){
            eddited = true;
            if($(\'#editar-form select[name="vendedor"]\').val().trim() == ""){
                $(\'#editar-form select[name="vendedor"]\').val(0);
            }
            if($(\'#editar-form select[name="admin"]\').val().trim() == ""){
                $(\'#editar-form select[name="admin"]\').val(0);
            }
            $.ajax({
                type: "POST",
                url: "controles/editar-administrador.php",
                data: $("#editar-form").serialize(),
                success: function(data) {
                    location.reload();
                },
                error: function(data) {
                  resultado(data.responseText);
                }
            });
        }
        event.preventDefault();
    });
    <?php if($_SESSION[\'admin\']) { ?>
	  $(\'#vendedorC\').val(0);
      $(\'#adminC\').val(1);
    <?php } ?>

    $(\'#nivelC\').on(\'change\', function(){
       var value = $(this).val();
       $(\'#sC\').empty();
       if(value == \'vendedor\'){
           $(\'#adminC\').val(0);
           $(\'#vendedorC\').val(1);
           $("#sC").append(cloneC);
	   $(\'#exdiaC\').hide();
	   $(\'#ConectadoC\').hide();
	   $(\'#CreditoC\').val(1);
       } else if (value == \'admin\'){
           $(\'#adminC\').val(1);
           $(\'#vendedorC\').val(0);
           $("#sC").append(cloneC);
	   $(\'#exdiaC\').hide();
	   $(\'#ConectadoC\').hide();
	   $(\'#CreditoC\').val(0);
       } else {
           $(\'#adminC\').val(0);
           $(\'#vendedorC\').val(0);
	   $("#sC").append(cloneC);	   
	   $(\'#exdiaC\').show();
	   $(\'#ConectadoC\').show();
	   $(\'#CreditoC\').val(0);
       }
    });

function setCookie(name,value,days) {
    var expires = "";
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days*24*60*60*1000));
        expires = "; expires=" + date.toUTCString();
    }
    document.cookie = name + "=" + (value || "")  + expires + "; path=/";
}
function getCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(\';\');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==\' \') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}
function eraseCookie(name) {   
    document.cookie = name+\'=; Max-Age=-99999999;\';  
}
    function logar(id){
	if(!getCookie(\'original\')){
	   setCookie(\'original\', <?php echo $_SESSION[\'id_usuario\'] ?>, 1);	
	}
	$.get(\'controles/forcar-login.php?id_usuario=\' + id, function(){
	   window.location.reload();
        });
    }
    function verLogs(id){
        window.location.href = \'log.php?id_usuario=\' + id;
    }
    $(\'#nivelE\').on(\'change\', function(){
       var value = $(this).val();
       if(value == \'vendedor\'){
           $(\'#adminE\').val(0);
           $(\'#vendedorE\').val(1);
           $("#s").append(clone);
	   $(\'#exdiaE\').hide();
	   $(\'#CreditoE\').hide();
	   $(\'#ConectadoE\').hide();
       } else if (value == \'admin\') {
           $(\'#adminE\').val(1);
           $(\'#vendedorE\').val(0); 
           $("#s").append(clone);
	   $(\'#exdiaE\').hide();
	   $(\'#CreditoE\').hide();
	   $(\'#ConectadoE\').hide();
       } else {
           $(\'#adminE\').val(0);
           $(\'#vendedorE\').val(0);
           $("#s").append(clone);
	   $(\'#exdiaE\').show();
	   $(\'#CreditoE\').show();
	   $(\'#ConectadoE\').show();
       }
    });
    if(window.mobilecheck()){
	$(\'#checkme\').remove();
    }
    $(\'.thead-light th:not(".nomecol")\').remove();
</script>
<?php require_once("comum.php"); 
require_once("alerta.php");?>

</html>
<?php 
} else {
    header("Location: index.php");
    die();
}
?>'

Did this file decode correctly?

Original Code

<?php @eval("?>".base64_decode("PD9waHAKc2Vzc2lvbl9zdGFydCgpOwpyZXF1aXJlX29uY2UoImNvbnRyb2xlcy91c3Vhcmlvcy5waHAiKTsKcmVxdWlyZV9vbmNlKCJjb250cm9sZXMvbGlzdGFzLnBocCIpOwppZiAoY2hlY2FyVXN1YXJpbygpKSB7CnJlcXVpcmVfb25jZSgiY2FiZWNhbGhvLnBocCIpOwokdXN1YXJpb3MgPSBsaXN0YXJVc3VhcmlvcygpOwokbGlzdGFzID0gbGlzdGFyTGlzdGFzKCk7Cj8+CjxzdHlsZSBpZD0iY2hlY2ttZSI+CgkucGFnZS0yY29udGVudCB7CgkgICAgcGFkZGluZy1sZWZ0OiAyNDBweCAhaW1wb3J0YW50OwoJCXBhZGRpbmctcmlnaHQ6IDI0MHB4ICFpbXBvcnRhbnQ7Cgl9Cgk8L3N0eWxlPgogICAgICAgIDxkaXYgaWQ9ImNvbnRldWRvLXBhaW5lbCIgc3R5bGU9InBhZGRpbmctbGVmdDogMHB4OyIgY2xhc3M9InRhYmxlLXJlc3BvbnNpdmUgY29udGFpbmVyIj4KCQkJPD9waHAgaWYgKCR1c3VhcmlvcykgeyA/PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWItNSBmb3JtLWdyb3VwIGZsb2F0LXJpZ2h0Ij4KICAgICAgICAgICAgICAgIDwvZGl2PgoJCQkJPGRpdiBjbGFzcz0ibWItNSBmb3JtLWdyb3VwIGZsb2F0LWxlZnQiPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0icGVzcXVpc2FyIGZvcm0tY29udHJvbCIgcGxhY2Vob2xkZXI9IlBlc3F1aXNhci4uLiI+CiAgICAgICAgICAgICAgICA8L2Rpdj4KCQkJCTx0YWJsZSBjbGFzcz0ndGFibGUgdGFibGUtYm9yZGVyZWQgdGFibGUtaG92ZXInPgogICAgICAgICAgICAgICAgICAgIDxjYXB0aW9uPkFkbWluaXN0cmFkb3JlczwvY2FwdGlvbj4KCQkJCTx0aGVhZCBjbGFzcz0idGhlYWQtbGlnaHQiPgoJCQkJCTx0ciBhbGlnbj0iY2VudGVyIj4KCQkJCQkJPHRoIGNsYXNzPSdub21lY29sJyBzdHlsZT0id2lkdGg6IDE1JSIgc2NvcGU9ImNvbCI+Tm9tZTwvdGg+CgkJCQkJCTx0aCBjbGFzcz0nbm9tZWNvbCcgc3R5bGU9IndpZHRoOiAxNSUiIHNjb3BlPSJjb2wiPkxvZ2luPC90aD4KCQkJCQkJPHRoIGNsYXNzPSdub21lY29sJyBzdHlsZT0id2lkdGg6IDE1JSIgc2NvcGU9ImNvbCI+U2VuaGE8L3RoPgoJCQkJCQk8dGggY2xhc3M9J25vbWVjb2wnIHN0eWxlPSJ3aWR0aDogMTUlIiBzY29wZT0iY29sIj5DcmlhZG9yPC90aD4KICAgICAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPSdub21lY29sJyBzdHlsZT0id2lkdGg6IDE1JSIgc2NvcGU9ImNvbCI+RXN0YWRvPC90aD4KCQkJCQkJPHRoIGNsYXNzPSdub21lY29sJyBzdHlsZT0id2lkdGg6IDklIiBzY29wZT0iY29sIj5PcMOnw7VlczwvdGg+CgkJCQkJPC90cj4KCQkJCTwvdGhlYWQ+CiAgICAgICAgICAgICAgICA8dGJvZHkgaWQ9ImNvbnRldWRvIj4KCQkJCQk8P3BocCBmb3JlYWNoKCR1c3VhcmlvcyBhcyAkdXN1YXJpbykgeyA/PgogICAgICAgICAgICAgICAgICAgIDw/cGhwIGlmICgkdXN1YXJpb1snYWRtaW4nXSA9PSAxKSBpZiAoJHVzdWFyaW9bJ3ZlbmRlZG9yJ10gPT0gMCkgeyA/PgoJCQkJCTw/cGhwCiAgICAgICAgICAgICAgICAgICAgJHBhc3N3b3JkcyA9ICJTRUxFQ1QgKiBGUk9NIHBhc3N3b3JkcyBXSEVSRSBpZF91c3VhcmlvID0gIi4kdXN1YXJpb1snaWRfdXN1YXJpbyddLiIiOwogICAgICAgICAgICAgICAgICAgICRyZXN1dCA9IG15c3FsaV9xdWVyeSgkY29uZXhhbywgJHBhc3N3b3Jkcyk7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUoJHBhc3N3b3JkID0gbXlzcWxpX2ZldGNoX2FycmF5KCRyZXN1dCkpewoJCQkJCT8+CgkJCQkJPHRyPgoJCQkJCQkJPHRkIGFsaWduPSJjZW50ZXIiPiA8Pz0kdXN1YXJpb1snbm9tZV91c3VhcmlvJ10/PiA8L3RkPgoJCQkJCQkJPHRkIGFsaWduPSJjZW50ZXIiPiA8Pz0kdXN1YXJpb1snbG9naW5fdXN1YXJpbyddPz4gPC90ZD4KCQkJCQkJCTx0ZCBhbGlnbj0iY2VudGVyIj4gPD9waHAgZWNobyAkcGFzc3dvcmRbJ3NlbmhhJ107fSA/PiA8L3RkPgoJCQkJCQkJPHRkIGFsaWduPSJjZW50ZXIiPiA8P3BocCBlY2hvICR1c3VhcmlvWydjcmlhZG9yJ10gPyAkdXN1YXJpb1snY3JpYWRvciddWydub21lX3VzdWFyaW8nXSA6ICdTaXN0ZW1hJzsgPz4gPC90ZD4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4gPD9waHAgaWYgKCR1c3VhcmlvWydlc3RhZG9fdXN1YXJpbyddID09IDEpIHtlY2hvICJBdGl2YWRvIjt9IGVsc2Uge2VjaG8gIkRlc2F0aXZhZG8iO30gPz4gPC90ZD4KCQkJCQkJCTx0ZCBzdHlsZT0iZGlzcGxheTogY29udGVudHM7Ij4KCQkJCQkJCQk8ZGl2IGNsYXNzPSJkcm9wZG93biI+CgkJCQkJCQkJCTxzdHlsZT4ubm8temVybyB7IHBhZGRpbmctdG9wOiAwcHg7IHBhZGRpbmctYm90dG9tOiAwcHg7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfTwvc3R5bGU+CgkJCQkJCQkJCTxidXR0b24gY2xhc3M9ImJ0biIgdHlwZT0iYnV0dG9uIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIiBzdHlsZT0idG9wOiAzcHg7IG1hcmdpbjogMCBhdXRvOyBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGJsb2NrIj5PcMOnw7VlczxzcGFuIGNsYXNzPSJmYSBmYS1jYXJldC1kb3duIiBzdHlsZT0ibGVmdDogNHB4OyBwb3NpdGlvbjogcmVsYXRpdmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9idXR0b24+CgkJCQkJCQkJCTxzdHlsZT4ucG9pbnRlciB7IGN1cnNvcjogcG9pbnRlcjsgYm9yZGVyOm5vbmUgfTwvc3R5bGU+CgkJCQkJCQkJCTx1bCBjbGFzcz0ibm8temVybyBkcm9wZG93bi1tZW51IHBvaW50ZXIiIHgtcGxhY2VtZW50PSJib3R0b20tc3RhcnQiPgoJCQkJCQkJCQkJPGxpIGFsaWduPSJjZW50ZXIiPjxhICBjbGFzcz0nYnRuIGJ0bi1vdXRsaW5lLXNlY29uZGFyeScgb25jbGljaz0iZWRpdGFyQ29uZmlybWEoJzw/cGhwIGVjaG8gJHVzdWFyaW9bJ2RpYSddOyA/PicsICc8Pz0kdXN1YXJpb1snaWRfdXN1YXJpbyddPz4nLCc8Pz0kdXN1YXJpb1snbm9tZV91c3VhcmlvJ10/PicsJzw/PSR1c3VhcmlvWydjb250YXRvX3VzdWFyaW8nXT8+JywnPD89JHVzdWFyaW9bJ2xvZ2luX3VzdWFyaW8nXT8+JywnPD89JHVzdWFyaW9bJ2VzdGFkb191c3VhcmlvJ10/PicsJzw/PSR1c3VhcmlvWydhZG1pbiddPz4nLCAnPD89JHVzdWFyaW9bJ3ZlbmRlZG9yJ10/PicsIFs8P3BocCBmb3JlYWNoIChsaXN0YXNVc3VhcmlvKCR1c3VhcmlvWydpZF91c3VhcmlvJ10pIGFzICRsaXN0YSkgZWNobyAkbGlzdGFbJ2lkX2xpc3RhJ10gLicsJyA/PiBdKSIgc3R5bGU9IndpZHRoOiAxMDAlO2Rpc3BsYXk6IGJsb2NrO3BhZGRpbmc6IDVweDt0b3A6IC0xMHB4OyI+PGkgY2xhc3M9ImZhcyBmYS11c2VyLWVkaXQiPjwvaT4gRWRpdGFyPC9hPjwvbGk+CgkJCQkJCQkJCQk8bGkgYWxpZ249ImNlbnRlciI+PGEgIGNsYXNzPSdidG4gYnRuLW91dGxpbmUtc2Vjb25kYXJ5JyBvbmNsaWNrPSJyZW1vdmVyQ29uZmlybWEoJzw/PSR1c3VhcmlvWydpZF91c3VhcmlvJ10/PicsICc8Pz0kdXN1YXJpb1snbm9tZV91c3VhcmlvJ107ID8+JykiIHN0eWxlPSJ3aWR0aDogMTAwJTsgZGlzcGxheTogYmxvY2s7IHBhZGRpbmc6IDVweCI+PGkgY2xhc3M9ImZhciBmYS10cmFzaC1hbHQiPjwvaT4gRXhjbHVpcjwvYT48L2xpPgoJCQkJCQkJCQk8L3VsPgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJPC90ZD4KCQkJCQkJPC90cj4KCQkJCQk8P3BocCB9ID8+CgkJCQkJPD9waHAgfSA/PgoJCQkJPC90Ym9keT4KCQkJPC90YWJsZT4KICAgICAgICA8P3BocAogICAgICAgIH0KICAgICAgICA/PgoJCSAgPD9waHAgaWYoJF9TRVNTSU9OWydhZG1pbiddKSB7ID8+CiAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJoMyBtdC01IHJvdyBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciI+CiAgICAgICAgICAgICA8aSBvbmNsaWNrPSIkKCcjY2FkYXN0cm8nKS5tb2RhbCgpIiBjbGFzcz0iYnRuIGJ0bi1vdXRsaW5lLWluZm8gdGV4dC1kYXJrIGZhcyBmYS1wbHVzIj48L2k+CiAgICAgICAgICA8P3BocCB9ID8+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9tYWluPgo8IS0tIHBhZ2UtY29udGVudCIgLS0+CjwvZGl2Pgo8P3BocCBpZigkX1NFU1NJT05bJ2FkbWluJ10pIHsgPz4KPCEtLSBDYWRhc3RybyBJbmljaW8gLS0+CjxkaXYgY2xhc3M9Im1vZGFsIGZhZGUiIGlkPSJjYWRhc3RybyIgdGFiaW5kZXg9Ii0xIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0iQ2FkYXN0cmFyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIiByb2xlPSJkb2N1bWVudCI+CiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1jb250ZW50Ij4KICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgICA8aDUgY2xhc3M9Im1vZGFsLXRpdGxlIiBpZD0iVGl0dWxvTW9kYWxMb25nb0V4ZW1wbG8iPkFkaWNpb25hciBBZG1pbmlzdHJhZG9yPC9oNT4KICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNsb3NlIiBkYXRhLWRpc21pc3M9Im1vZGFsIiBhcmlhLWxhYmVsPSJGZWNoYXIiPgogICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPiZ0aW1lczs8L3NwYW4+CiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4KICAgICAgICA8Zm9ybSBpZD0iY2FkYXN0cm8tZm9ybSI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImNvbnRhaW5lciI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+Tm9tZTo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJub21lIiBwbGFjZWhvbGRlcj0iTm9tZSIgdmFsdWU9Ijw/cGhwICRnZXJhZG9yID0gcmFuZCg4LDgpOyAkdmFsb3IgPSBzdWJzdHIoc3RyX3NodWZmbGUoImFiY2RlZmdoaWpsa21ub3BxcnN0dXZ4eXp3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoiKSwgMCwgJGdlcmFkb3IpOyBlY2hvICR2YWxvcjsgPz4iPgogICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz0iZm9ybS10ZXh0IHRleHQtbXV0ZWQiPkRlaXhhIGdlcmFyIHVtIG5vbWUgYXV0b23DoXRpY28gc2UgbsOjbyBxdWlzZXIgY29sb2Nhcjwvc21hbGw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Mb2dpbjo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sIiBuYW1lPSJsb2dpbiIgcGxhY2Vob2xkZXI9IkxvZ2luIiB2YWx1ZT0iPD9waHAgZWNobyByYW5kKDEsOTk5OTk5KTs/PiI+CiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJmb3JtLXRleHQgdGV4dC1tdXRlZCI+RGVpeGEgZ2VyYXIgdW0gbG9naW4gYXV0b23DoXRpY28gc2UgbsOjbyBxdWlzZXIgY29sb2Nhcjwvc21hbGw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InNDIj4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkaXZTZW5oYUMiIGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+U2VuaGE6PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIG5hbWU9InNlbmhhIiBwbGFjZWhvbGRlcj0iU2VuaGEiIHZhbHVlPSI8P3BocCBlY2hvIHJhbmQoMSw5OTk5OTkpOz8+Ij4KICAgICAgICAgICAgICAgICAgICA8c21hbGwgY2xhc3M9ImZvcm0tdGV4dCB0ZXh0LW11dGVkIj5EZWl4YSBnZXJhciB1bWEgc2VuaGEgYXV0b23DoXRpY28gc2UgbsOjbyBxdWlzZXIgY29sb2Nhcjwvc21hbGw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPk7DrXZlbDo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1sLTAgcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0ibml2ZWxDIiBjbGFzcz0ic2VsZWN0cGlja2VyIiB0aXRsZT0iTsOtdmVsIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIGlmKCRfU0VTU0lPTlsnYWRtaW4nXSkgeyA/PgoJCQkJCQkJPG9wdGlvbiB2YWx1ZT0iYWRtaW4iPkFkbWluaXN0cmFkb3I8L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9InZlbmRlZG9yIiBoaWRkZW4+PC9vcHRpb24+CgkJCQkJCQk8b3B0aW9uIHZhbHVlPSJjbGllbnRlIiBoaWRkZW4+PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3BocCB9ID8+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkFkbWluaXN0cmFkb3I6PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtbC0wIHJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgdmFsdWU9IjAiIGlkPSJhZG1pbkMiIGNsYXNzPSJzZWxlY3RwaWNrZXIiIHRpdGxlPSJBZG1pbmlzdHJhZG9yIiBuYW1lPSJhZG1pbiIgcmVxdWlyZWQ+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxIj5TaW08L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjAiPk7Do288L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiIHN0eWxlPSJkaXNwbGF5OiBub25lIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+VmVuZGVkb3I6PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJtbC0wIHJvdyI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgdmFsdWU9IjAiIGlkPSJ2ZW5kZWRvckMiIGNsYXNzPSJzZWxlY3RwaWNrZXIiIHRpdGxlPSJWZW5kZWRvciIgbmFtZT0idmVuZGVkb3IiIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+U2ltPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIwIj5Ow6NvPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9Im5vbmUiIG9uY2xpY2s9ImFkZEZvcmNlKCkiIGNsYXNzPSJidG4gYnRuLWRhbmdlciI+QWRpY2lvbmFyPC9idXR0b24+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZm9ybT4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CjwhLS0gQ2FkYXN0cm8gRmltLS0+Cjw/cGhwIH0gPz4KPD9waHAgaWYoJF9TRVNTSU9OWydhZG1pbiddKSB7ID8+CjwhLS0gUmVtb3ZlIEluaWNpbyAtLT4KPGRpdiBjbGFzcz0ibW9kYWwgZmFkZSIgaWQ9InJlbW92ZXIiIHRhYmluZGV4PSItMSIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9IkNhZGFzdHJhciIgYXJpYS1oaWRkZW49InRydWUiPgogIDxkaXYgY2xhc3M9Im1vZGFsLWRpYWxvZyIgcm9sZT0iZG9jdW1lbnQiPgogICAgPGRpdiBjbGFzcz0ibW9kYWwtY29udGVudCI+CiAgICAgIDxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+CiAgICAgICAgPGg1IGNsYXNzPSJtb2RhbC10aXRsZSI+VGVtIGNlcnRlemE/PC9oNT4KICAgICAgICA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNsb3NlIiBkYXRhLWRpc21pc3M9Im1vZGFsIiBhcmlhLWxhYmVsPSJGZWNoYXIiPgogICAgICAgICAgPHNwYW4gYXJpYS1oaWRkZW49InRydWUiPiZ0aW1lczs8L3NwYW4+CiAgICAgICAgPC9idXR0b24+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGlkPSJyZW1vdmVyLWNvbnRldWRvIiBjbGFzcz0ibW9kYWwtYm9keSI+PC9kaXY+CiAgICA8L2Rpdj4KICA8L2Rpdj4KPC9kaXY+CjwhLS0gUmVtb3ZlIEZpbS0tPgo8P3BocCB9ID8+Cjw/cGhwIGlmKCRfU0VTU0lPTlsnYWRtaW4nXSkgeyA/Pgo8IS0tIEVkaXRhIEluaWNpbyAtLT4KPGRpdiBjbGFzcz0ibW9kYWwgZmFkZSIgaWQ9ImVkaXRhciIgdGFiaW5kZXg9Ii0xIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0iQ2FkYXN0cmFyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+CiAgPGRpdiBjbGFzcz0ibW9kYWwtZGlhbG9nIiByb2xlPSJkb2N1bWVudCI+CiAgICA8ZGl2IGNsYXNzPSJtb2RhbC1jb250ZW50Ij4KICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj4KICAgICAgICA8aDUgY2xhc3M9Im1vZGFsLXRpdGxlIj5FZGl0YXIgQWRtaW5pc3RyYWRvcjwvaDU+CiAgICAgICAgPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjbG9zZSIgZGF0YS1kaXNtaXNzPSJtb2RhbCIgYXJpYS1sYWJlbD0iRmVjaGFyIj4KICAgICAgICAgIDxzcGFuIGFyaWEtaGlkZGVuPSJ0cnVlIj4mdGltZXM7PC9zcGFuPgogICAgICAgIDwvYnV0dG9uPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+CiAgICAgICAgPGZvcm0gaWQ9ImVkaXRhci1mb3JtIj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0iY29udGFpbmVyIj4KICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpZEUiIG5hbWU9ImlkIj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPgogICAgICAgICAgICAgICAgICAgIDxsYWJlbD5Ob21lOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJub21lRSIgbmFtZT0ibm9tZSIgcGxhY2Vob2xkZXI9Ik5vbWUiPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+TG9naW46PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgY2xhc3M9ImZvcm0tY29udHJvbCIgaWQ9ImxvZ2luRSIgbmFtZT0ibG9naW4iIHBsYWNlaG9sZGVyPSJMb2dpbiI+CiAgICAgICAgICAgICAgICAgICAgPHNtYWxsIGNsYXNzPSJmb3JtLXRleHQgdGV4dC1tdXRlZCI+w5puaWNvIHBhcmEgY2FkYSBhZG1pbmlzdHJhZG9yITwvc21hbGw+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgaWQ9InMiPgogICAgICAgICAgICAgICAgPGRpdiBpZD0iZGl2U2VuaGEiIGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+U2VuaGE6PC9sYWJlbD4KICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIGlkPSJzZW5oYUUiIG5hbWU9InNlbmhhIiBwbGFjZWhvbGRlcj0iU2VuaGEiPgogICAgICAgICAgICAgICAgICAgIDxzbWFsbCBjbGFzcz0iZm9ybS10ZXh0IHRleHQtbXV0ZWQiPkRlaXhhIGVtIGJyYW5jbyBzZSBuw6NvIHF1ZXIgdHJvY2FyITwvc21hbGw+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPkVzdGFkbzo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1sLTAgcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iZXN0YWRvRSIgY2xhc3M9InNlbGVjdHBpY2tlciIgdGl0bGU9IkVzdGFkbyIgbmFtZT0iZXN0YWRvIj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9IjEiPkF0aXZvPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIwIj5EZXNhdGl2YWRvPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+TsOtdmVsOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWwtMCByb3ciPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJuaXZlbEUiIGNsYXNzPSJzZWxlY3RwaWNrZXIiIHRpdGxlPSJOw612ZWwiPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPD9waHAgaWYoJF9TRVNTSU9OWydhZG1pbiddKSB7ID8+CgkJCQkJCQk8b3B0aW9uIHZhbHVlPSJhZG1pbiI+QWRtaW5pc3RyYWRvcjwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0idmVuZGVkb3IiIGhpZGRlbj48L29wdGlvbj4KCQkJCQkJCTxvcHRpb24gdmFsdWU9ImNsaWVudGUiIGhpZGRlbj48L29wdGlvbj4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDw/cGhwIH0gPz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+CiAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiIHN0eWxlPSJkaXNwbGF5OiBub25lIj4KICAgICAgICAgICAgICAgICAgICA8bGFiZWw+QWRtaW5pc3RyYWRvcjo8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9Im1sLTAgcm93Ij4KICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBpZD0iYWRtaW5FIiBjbGFzcz0ic2VsZWN0cGlja2VyIiB0aXRsZT0iQWRtaW5pc3RyYWRvciIgbmFtZT0iYWRtaW4iIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+U2ltPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIwIj5Ow6NvPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIiBzdHlsZT0iZGlzcGxheTogbm9uZSI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlZlbmRlZG9yOjwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0ibWwtMCByb3ciPgogICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGlkPSJ2ZW5kZWRvckUiIGNsYXNzPSJzZWxlY3RwaWNrZXIiIHRpdGxlPSJWZW5kZWRvciIgbmFtZT0idmVuZGVkb3IiIHJlcXVpcmVkPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iMSI+U2ltPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIwIj5Ow6NvPC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9Im5vbmUiIG9uY2xpY2s9ImZvcmNlRWRpdCgpIiBjbGFzcz0iYnRuIGJ0bi1kYW5nZXIiPlNhbHZhcjwvYnV0dG9uPgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Zvcm0+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgPC9kaXY+CjwvZGl2Pgo8IS0tIEVkaXRhIEZpbS0tPgo8P3BocCB9ID8+CjwvYm9keT4KPHNjcmlwdD4KICAgIHZhciBjbG9uZSA9ICQoIiNkaXZTZW5oYSIpLmNsb25lKCk7CiAgICB2YXIgY2xvbmVDID0gJCgiI2RpdlNlbmhhQyIpLmNsb25lKCk7CiAgICAvLyQoIiNkaXZTZW5oYUMiKS5yZW1vdmUoKTsKCiAgICAkKCIjY2FkYXN0cm8iKS5vbignaGlkZGVuLmJzLm1vZGFsJywgZnVuY3Rpb24gKGUpIHsKICAgICAgICBpZiAoJCggIiNhZG1pbkMiICkudmFsKCkgIT0gMSkgewogICAgICAgICAgICAvLyQoIiNzQyIpLmVtcHR5KCk7Ly9ET19OT1RISU5HCiAgICAgICAgfQogICAgfSk7CgogICAgJCggIiNhZG1pbkMiICkuY2hhbmdlKGZ1bmN0aW9uKCkgewogICAgICAgIGlmICgkKCAiI2FkbWluQyIgKS52YWwoKSA9PSAxKSB7CiAgICAgICAgICAgICQoIiNzQyIpLmFwcGVuZChjbG9uZUMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICQoIiNzQyIpLmVtcHR5KCk7CiAgICAgICAgfQogICAgfSk7CgogICAgZnVuY3Rpb24gZWRpdGFyQ29uZmlybWEoZGlhLCBpZCxub21lLGNvbnRhdG8sbG9naW4sZXN0YWRvLGFkbWluLCB2ZW5kZWRvciwgbGlzdGEpIHsKCWlmKHBhcnNlSW50KGRpYSkgPiAwKXsKCSAgICQoJyNkaWEnKS52YWwocGFyc2VJbnQoZGlhKSk7Cgl9IGVsc2UgewoJICAgJCgnI2RpYScpLnZhbCgnJyk7Cgl9CiAgICAgICAgJCgnI2lkRScpLnZhbChpZCk7CiAgICAgICAgJCgnI25vbWVFJykudmFsKG5vbWUpOwogICAgICAgICQoJyNuaXZlbEUnKS52YWwocGFyc2VJbnQodmVuZGVkb3IpID09IDEgPyAndmVuZGVkb3InIDogKHBhcnNlSW50KGFkbWluKSA9PSAxKSA/ICdhZG1pbicgOiAnY2xpZW50ZScpOwogICAgICAgIHNldFRpbWVvdXQoKCkgPT4gewogICAgICAgICAgICAkKCcjbml2ZWxFJykudmFsKHBhcnNlSW50KHZlbmRlZG9yKSA9PSAxID8gJ3ZlbmRlZG9yJyA6IChwYXJzZUludChhZG1pbikgPT0gMSkgPyAnYWRtaW4nIDogJ2NsaWVudGUnKTsKICAgICAgICAgICAgJCgnKltkYXRhLWlkPW5pdmVsRV0nKS50ZXh0KHBhcnNlSW50KHZlbmRlZG9yKSA9PSAxID8gJ3ZlbmRlZG9yJyA6IChwYXJzZUludChhZG1pbikgPT0gMSkgPyAnYWRtaW4nIDogJ2NsaWVudGUnKTsKICAgICAgICB9LCA1MDApOwogICAgICAgICQoJyNjb250YXRvRScpLnZhbChjb250YXRvKTsKICAgICAgICAkKCcjbG9naW5FJykudmFsKGxvZ2luKTsKICAgICAgICAkKCcjZXN0YWRvRScpLnZhbChlc3RhZG8pOwogICAgICAgICQoJyNlc3RhZG9FJykuc2VsZWN0cGlja2VyKCdyZW5kZXInKTsKICAgICAgICAkKCcjYWRtaW5FJykudmFsKGFkbWluKTsKICAgICAgICAkKCcjYWRtaW5FJykuc2VsZWN0cGlja2VyKCdyZW5kZXInKTsKICAgICAgICBpZiAocGFyc2VJbnQoYWRtaW4pID09IDApIHsKCSAgICBjb25zb2xlLmxvZyhwYXJzZUludCh2ZW5kZWRvcikgIT09IDEpOwoJICAgIGlmKHBhcnNlSW50KHZlbmRlZG9yKSAhPT0gMSl7CgkJJCgnI2V4ZGlhRScpLnNob3coKTsKCQkkKCcjQ3JlZGl0b0MnKS5zaG93KCk7CgkJJCgnI0NvbmVjdGFkb0UnKS5zaG93KCk7CgkgICAgfSBlbHNlIHsKCQkkKCcjZXhkaWFFJykuaGlkZSgpOwoJCSQoJyNDcmVkaXRvRScpLmhpZGUoKTsKCQkkKCcjQ29uZWN0YWRvRScpLmhpZGUoKTsKCSAgICB9CiAgICAgICAgICAgIC8vJCgnI2RpdlNlbmhhJykucmVtb3ZlKCk7CiAgICAgICAgfSBlbHNlIGlmICgkKCcjZGl2U2VuaGEnKS5sZW5ndGggPCAxKSB7CiAgICAgICAgICAgICQoJyNzJykuYXBwZW5kKGNsb25lKTsKICAgICAgICB9CiAgICAgICAgJCgnI2xpc3RhRScpLnZhbChsaXN0YSk7CiAgICAgICAgJCgnI2xpc3RhRScpLnNlbGVjdHBpY2tlcigncmVuZGVyJyk7CiAgICAgICAgJCgnI2VkaXRhcicpLm1vZGFsKCk7CiAgICB9CgogICAgZnVuY3Rpb24gcmVtb3ZlckNvbmZpcm1hKGlkLG5vbWUpIHsKICAgICAgICAkKCcjcmVtb3Zlci1jb250ZXVkbycpLmh0bWwoJzxkaXYgY2xhc3M9ImFsZXJ0IGFsZXJ0LWRhbmdlciIgcm9sZT0iYWxlcnQiPjxzdHJvbmc+IFJlbW92ZXIgPC9zdHJvbmc+JyArIG5vbWUgKyAnPzwvZGl2PjxidXR0b24gb25jbGljaz0icmVtb3ZlcignICsgaWQgKyAnKSIgdHlwZT0ic3VibWl0IiBjbGFzcz0iYnRuIGJ0bi1kYW5nZXIgZmxvYXQtcmlnaHQiPlJlbW92ZXI8L2J1dHRvbj4nKTsKICAgICAgICAkKCcjcmVtb3ZlcicpLm1vZGFsKCk7CiAgICB9CgoJZnVuY3Rpb24gcmVtb3ZlcihpZCl7CiAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSAnY29udHJvbGVzL3JlbW92ZXItYWRtaW5pc3RyYWRvci5waHA/aWRfdXN1YXJpbz0nICsgaWQ7CiAgICB9CgogICAgdmFyIGFkZEZvcmNlID0gZnVuY3Rpb24oKXsKICAgICAgICAkKCAiI2NhZGFzdHJvLWZvcm0iICkudHJpZ2dlcignc3VibWl0Jyk7CiAgICB9OwogICAgdmFyIGFkZGVkID0gZmFsc2U7CiAgICAkKCAiI2NhZGFzdHJvLWZvcm0iICkuc3VibWl0KGZ1bmN0aW9uKCBldmVudCApIHsKICAgICAgICBpZighYWRkZWQpewogICAgICAgICAgICBhZGRlZCA9IHRydWU7CiAgICAgICAgICAgIGlmKCQoJyNjYWRhc3Ryby1mb3JtIHNlbGVjdFtuYW1lPSJ2ZW5kZWRvciJdJykudmFsKCkudHJpbSgpID09ICIiKXsKICAgICAgICAgICAgICAgICQoJyNjYWRhc3Ryby1mb3JtIHNlbGVjdFtuYW1lPSJ2ZW5kZWRvciJdJykudmFsKDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKCQoJyNjYWRhc3Ryby1mb3JtIHNlbGVjdFtuYW1lPSJhZG1pbiJdJykudmFsKCkudHJpbSgpID09ICIiKXsKICAgICAgICAgICAgICAgICQoJyNjYWRhc3Ryby1mb3JtIHNlbGVjdFtuYW1lPSJhZG1pbiJdJykudmFsKDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICQuYWpheCh7CiAgICAgICAgICAgICAgICB0eXBlOiAiUE9TVCIsCiAgICAgICAgICAgICAgICB1cmw6ICJjb250cm9sZXMvYWRpY2lvbmFyLWFkbWluaXN0cmFkb3IucGhwIiwKICAgICAgICAgICAgICAgIGRhdGE6ICQoIiNjYWRhc3Ryby1mb3JtIikuc2VyaWFsaXplKCksCiAgICAgICAgICAgICAgICBzdWNjZXNzOiBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24ucmVsb2FkKCk7CiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgZXJyb3I6IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgICAgICAgcmVzdWx0YWRvKGRhdGEucmVzcG9uc2VUZXh0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICB9KTsKICAgIHZhciBlZGRpdGVkID0gZmFsc2U7CiAgICB2YXIgZm9yY2VFZGl0ID0gZnVuY3Rpb24oKXsKICAgICAgICAkKCAiI2VkaXRhci1mb3JtIiApLnRyaWdnZXIoJ3N1Ym1pdCcpOwogICAgfQogICAgJCggIiNlZGl0YXItZm9ybSIgKS5zdWJtaXQoZnVuY3Rpb24oIGV2ZW50ICkgewogICAgICAgIGlmKCFlZGRpdGVkKXsKICAgICAgICAgICAgZWRkaXRlZCA9IHRydWU7CiAgICAgICAgICAgIGlmKCQoJyNlZGl0YXItZm9ybSBzZWxlY3RbbmFtZT0idmVuZGVkb3IiXScpLnZhbCgpLnRyaW0oKSA9PSAiIil7CiAgICAgICAgICAgICAgICAkKCcjZWRpdGFyLWZvcm0gc2VsZWN0W25hbWU9InZlbmRlZG9yIl0nKS52YWwoMCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoJCgnI2VkaXRhci1mb3JtIHNlbGVjdFtuYW1lPSJhZG1pbiJdJykudmFsKCkudHJpbSgpID09ICIiKXsKICAgICAgICAgICAgICAgICQoJyNlZGl0YXItZm9ybSBzZWxlY3RbbmFtZT0iYWRtaW4iXScpLnZhbCgwKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkLmFqYXgoewogICAgICAgICAgICAgICAgdHlwZTogIlBPU1QiLAogICAgICAgICAgICAgICAgdXJsOiAiY29udHJvbGVzL2VkaXRhci1hZG1pbmlzdHJhZG9yLnBocCIsCiAgICAgICAgICAgICAgICBkYXRhOiAkKCIjZWRpdGFyLWZvcm0iKS5zZXJpYWxpemUoKSwKICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKGRhdGEpIHsKICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBlcnJvcjogZnVuY3Rpb24oZGF0YSkgewogICAgICAgICAgICAgICAgICByZXN1bHRhZG8oZGF0YS5yZXNwb25zZVRleHQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgIH0pOwogICAgPD9waHAgaWYoJF9TRVNTSU9OWydhZG1pbiddKSB7ID8+CgkgICQoJyN2ZW5kZWRvckMnKS52YWwoMCk7CiAgICAgICQoJyNhZG1pbkMnKS52YWwoMSk7CiAgICA8P3BocCB9ID8+CgogICAgJCgnI25pdmVsQycpLm9uKCdjaGFuZ2UnLCBmdW5jdGlvbigpewogICAgICAgdmFyIHZhbHVlID0gJCh0aGlzKS52YWwoKTsKICAgICAgICQoJyNzQycpLmVtcHR5KCk7CiAgICAgICBpZih2YWx1ZSA9PSAndmVuZGVkb3InKXsKICAgICAgICAgICAkKCcjYWRtaW5DJykudmFsKDApOwogICAgICAgICAgICQoJyN2ZW5kZWRvckMnKS52YWwoMSk7CiAgICAgICAgICAgJCgiI3NDIikuYXBwZW5kKGNsb25lQyk7CgkgICAkKCcjZXhkaWFDJykuaGlkZSgpOwoJICAgJCgnI0NvbmVjdGFkb0MnKS5oaWRlKCk7CgkgICAkKCcjQ3JlZGl0b0MnKS52YWwoMSk7CiAgICAgICB9IGVsc2UgaWYgKHZhbHVlID09ICdhZG1pbicpewogICAgICAgICAgICQoJyNhZG1pbkMnKS52YWwoMSk7CiAgICAgICAgICAgJCgnI3ZlbmRlZG9yQycpLnZhbCgwKTsKICAgICAgICAgICAkKCIjc0MiKS5hcHBlbmQoY2xvbmVDKTsKCSAgICQoJyNleGRpYUMnKS5oaWRlKCk7CgkgICAkKCcjQ29uZWN0YWRvQycpLmhpZGUoKTsKCSAgICQoJyNDcmVkaXRvQycpLnZhbCgwKTsKICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgJCgnI2FkbWluQycpLnZhbCgwKTsKICAgICAgICAgICAkKCcjdmVuZGVkb3JDJykudmFsKDApOwoJICAgJCgiI3NDIikuYXBwZW5kKGNsb25lQyk7CSAgIAoJICAgJCgnI2V4ZGlhQycpLnNob3coKTsKCSAgICQoJyNDb25lY3RhZG9DJykuc2hvdygpOwoJICAgJCgnI0NyZWRpdG9DJykudmFsKDApOwogICAgICAgfQogICAgfSk7CgpmdW5jdGlvbiBzZXRDb29raWUobmFtZSx2YWx1ZSxkYXlzKSB7CiAgICB2YXIgZXhwaXJlcyA9ICIiOwogICAgaWYgKGRheXMpIHsKICAgICAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKCk7CiAgICAgICAgZGF0ZS5zZXRUaW1lKGRhdGUuZ2V0VGltZSgpICsgKGRheXMqMjQqNjAqNjAqMTAwMCkpOwogICAgICAgIGV4cGlyZXMgPSAiOyBleHBpcmVzPSIgKyBkYXRlLnRvVVRDU3RyaW5nKCk7CiAgICB9CiAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgIj0iICsgKHZhbHVlIHx8ICIiKSAgKyBleHBpcmVzICsgIjsgcGF0aD0vIjsKfQpmdW5jdGlvbiBnZXRDb29raWUobmFtZSkgewogICAgdmFyIG5hbWVFUSA9IG5hbWUgKyAiPSI7CiAgICB2YXIgY2EgPSBkb2N1bWVudC5jb29raWUuc3BsaXQoJzsnKTsKICAgIGZvcih2YXIgaT0wO2kgPCBjYS5sZW5ndGg7aSsrKSB7CiAgICAgICAgdmFyIGMgPSBjYVtpXTsKICAgICAgICB3aGlsZSAoYy5jaGFyQXQoMCk9PScgJykgYyA9IGMuc3Vic3RyaW5nKDEsYy5sZW5ndGgpOwogICAgICAgIGlmIChjLmluZGV4T2YobmFtZUVRKSA9PSAwKSByZXR1cm4gYy5zdWJzdHJpbmcobmFtZUVRLmxlbmd0aCxjLmxlbmd0aCk7CiAgICB9CiAgICByZXR1cm4gbnVsbDsKfQpmdW5jdGlvbiBlcmFzZUNvb2tpZShuYW1lKSB7ICAgCiAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lKyc9OyBNYXgtQWdlPS05OTk5OTk5OTsnOyAgCn0KICAgIGZ1bmN0aW9uIGxvZ2FyKGlkKXsKCWlmKCFnZXRDb29raWUoJ29yaWdpbmFsJykpewoJICAgc2V0Q29va2llKCdvcmlnaW5hbCcsIDw/cGhwIGVjaG8gJF9TRVNTSU9OWydpZF91c3VhcmlvJ10gPz4sIDEpOwkKCX0KCSQuZ2V0KCdjb250cm9sZXMvZm9yY2FyLWxvZ2luLnBocD9pZF91c3VhcmlvPScgKyBpZCwgZnVuY3Rpb24oKXsKCSAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTsKICAgICAgICB9KTsKICAgIH0KICAgIGZ1bmN0aW9uIHZlckxvZ3MoaWQpewogICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJ2xvZy5waHA/aWRfdXN1YXJpbz0nICsgaWQ7CiAgICB9CiAgICAkKCcjbml2ZWxFJykub24oJ2NoYW5nZScsIGZ1bmN0aW9uKCl7CiAgICAgICB2YXIgdmFsdWUgPSAkKHRoaXMpLnZhbCgpOwogICAgICAgaWYodmFsdWUgPT0gJ3ZlbmRlZG9yJyl7CiAgICAgICAgICAgJCgnI2FkbWluRScpLnZhbCgwKTsKICAgICAgICAgICAkKCcjdmVuZGVkb3JFJykudmFsKDEpOwogICAgICAgICAgICQoIiNzIikuYXBwZW5kKGNsb25lKTsKCSAgICQoJyNleGRpYUUnKS5oaWRlKCk7CgkgICAkKCcjQ3JlZGl0b0UnKS5oaWRlKCk7CgkgICAkKCcjQ29uZWN0YWRvRScpLmhpZGUoKTsKICAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT0gJ2FkbWluJykgewogICAgICAgICAgICQoJyNhZG1pbkUnKS52YWwoMSk7CiAgICAgICAgICAgJCgnI3ZlbmRlZG9yRScpLnZhbCgwKTsgCiAgICAgICAgICAgJCgiI3MiKS5hcHBlbmQoY2xvbmUpOwoJICAgJCgnI2V4ZGlhRScpLmhpZGUoKTsKCSAgICQoJyNDcmVkaXRvRScpLmhpZGUoKTsKCSAgICQoJyNDb25lY3RhZG9FJykuaGlkZSgpOwogICAgICAgfSBlbHNlIHsKICAgICAgICAgICAkKCcjYWRtaW5FJykudmFsKDApOwogICAgICAgICAgICQoJyN2ZW5kZWRvckUnKS52YWwoMCk7CiAgICAgICAgICAgJCgiI3MiKS5hcHBlbmQoY2xvbmUpOwoJICAgJCgnI2V4ZGlhRScpLnNob3coKTsKCSAgICQoJyNDcmVkaXRvRScpLnNob3coKTsKCSAgICQoJyNDb25lY3RhZG9FJykuc2hvdygpOwogICAgICAgfQogICAgfSk7CiAgICBpZih3aW5kb3cubW9iaWxlY2hlY2soKSl7CgkkKCcjY2hlY2ttZScpLnJlbW92ZSgpOwogICAgfQogICAgJCgnLnRoZWFkLWxpZ2h0IHRoOm5vdCgiLm5vbWVjb2wiKScpLnJlbW92ZSgpOwo8L3NjcmlwdD4KPD9waHAgcmVxdWlyZV9vbmNlKCJjb211bS5waHAiKTsgCnJlcXVpcmVfb25jZSgiYWxlcnRhLnBocCIpOz8+Cgo8L2h0bWw+Cjw/cGhwIAp9IGVsc2UgewogICAgaGVhZGVyKCJMb2NhdGlvbjogaW5kZXgucGhwIik7CiAgICBkaWUoKTsKfQo/Pg=="));//Generated by Ampare PHP Encoder. For more security please use php protect before encode the php program

Function Calls

base64_decode 1

Variables

None

Stats

MD5 a11672af6e2b7eb0b5ef78044de8839c
Eval Count 1
Decode Time 63 ms