正在生成您的专属代码...


import { connect } from "cloudflare:sockets";

const _YDcaMibC = "3b4d4cd8-cb92-4421-bf86-fb51570fc038";
const _sgmNkbRH = ["UpstreamAddress.SG.CMLiussss.net"];

const _kqMdxeaC = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _bblqLyHb = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _SaRfqOxl = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90';
const _RTNTuDOt = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9C%B0%E5%8C%BA%E5%90%8D%E7%A7%B0';

function _VasRbmeN(_oPLQvCWJ) {
    if (Array.isArray(_oPLQvCWJ)) {
        try {
            return String.fromCharCode.apply(null, _oPLQvCWJ);
        } catch (_HSaPiVio) {
            return '';
        }
    }
    return _oPLQvCWJ;
}

function _cKgEGCkQ(_CrTQJsmX) {
    return /^[0-9a-_GqwtDBQi]{8}-[0-9a-_GqwtDBQi]{4}-[4][0-9a-_GqwtDBQi]{3}-[89ab][0-9a-_GqwtDBQi]{3}-[0-9a-_GqwtDBQi]{12}$/_sNkxdnSw.test(_CrTQJsmX);
}

const _uvntuCDl = "optimized_ips_v4";
const _lDLmMnmD = "global_config_v4";
const _enYvHfiw = "admin_password_v4";
const _XwVcGVbw = "live_results_temp_v1";
const _bXcxtmaq = "latest_sub_id_v1";

export default {
  async fetch(_hOmwWITD, _DGVzWTWr, _WqGMjBmq) {
    try {
      if (!_DGVzWTWr.DB) {
          const _IqtZiWFh = _sooHfXIo("D1 数据库 'DB' 未绑定。");
          return new Response(_IqtZiWFh, { status: 503, _ceQBzYPA: { 'Content-Type': '_HipkANEK/html;_DxfDIAcD=UTF-8' }});
      }

      _WqGMjBmq.waitUntil(
          _DGVzWTWr.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_ZBduXtts TEXT PRIMARY KEY, _oPLQvCWJ TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_CrTQJsmX TEXT PRIMARY KEY, _AFQviEVZ TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_HSaPiVio => console.error("DB Init Error:", _HSaPiVio._huFkLpSQ))
      );

      const _cLqtLPfd = new URL(_hOmwWITD._cLqtLPfd);
      const _qPHFSpGH = _cLqtLPfd.pathname;
      const _eiLltimw = _hOmwWITD._ceQBzYPA.get("Upgrade");
      const _ITAcMrLp = await _WKGcyhlo(_DGVzWTWr);
      
      if (_ITAcMrLp.websocketStreamer && _ITAcMrLp.websocketStreamer._kRWzFOum && _eiLltimw && _eiLltimw.toLowerCase() === "websocket") {
          const _muYbsipU = _ITAcMrLp.websocketStreamer._cLqtLPfd;
          if (_muYbsipU && _muYbsipU.trim().startsWith('https://')) {
              try {
                  const _prPMawNn = new Request(_muYbsipU.trim() + _cLqtLPfd.pathname + _cLqtLPfd.search, _hOmwWITD);
                  return await fetch(_prPMawNn);
              } catch (_HSaPiVio) {
                  return new Response(`Upstream WebSocket gateway failed: ${_HSaPiVio._huFkLpSQ}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_eiLltimw && _eiLltimw.toLowerCase() === "websocket") {
          return await _cqEkcQsG(_hOmwWITD, _DGVzWTWr, _ITAcMrLp);
      }
      
      const _MdJGZJxF = _qPHFSpGH._aYuncdpS(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_MdJGZJxF) {
          const [, _XKuIMZsw, typeSuffix] = _MdJGZJxF;
          const _pgRcTGtG = _ITAcMrLp._pgRcTGtG;
          if (!_pgRcTGtG || _pgRcTGtG.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _ceQBzYPA: { 'Content-Type': '_HipkANEK/plain; _DxfDIAcD=utf-8' } });
          }
          const _NuOzGaJi = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _QmFshJHV = _NuOzGaJi[typeSuffix];
          const _LdqhPIKf = _pgRcTGtG.replace(/\/$/, '');
          const _qpXPGcAg = `${_cLqtLPfd.origin}/${_XKuIMZsw}`;
          const _NEcTmJKE = `${_LdqhPIKf}/${_QmFshJHV}?_ITAcMrLp=${encodeURIComponent(_qpXPGcAg)}`;
          try {
              const _umvOpcPV = await fetch(_NEcTmJKE, { _ceQBzYPA: { 'User-Agent': _hOmwWITD._ceQBzYPA.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _ScFhNMWI = new Headers(_umvOpcPV._ceQBzYPA);
              _ScFhNMWI._tvAzWpRE('Access-Control-Allow-Origin', '*');
              return new Response(_umvOpcPV._FtuUxCMi, { status: _umvOpcPV.status, statusText: _umvOpcPV.statusText, _ceQBzYPA: _ScFhNMWI });
          } catch (_HSaPiVio) {
              return new Response(`获取上游订阅失败: ${_HSaPiVio._huFkLpSQ}`, { status: 502, _ceQBzYPA: { 'Content-Type': '_HipkANEK/plain; _DxfDIAcD=utf-8' } });
          }
      }

      if (_qPHFSpGH.startsWith('/https:/') || _qPHFSpGH.startsWith('/http:/')) {
          return _QdwppfNm(_hOmwWITD, _ITAcMrLp);
      }
      
      if (_ITAcMrLp.customSubPath && _ITAcMrLp.customSubPath._kRWzFOum && _ITAcMrLp.customSubPath._qPHFSpGH && _qPHFSpGH === '/' + _ITAcMrLp.customSubPath._qPHFSpGH.trim()) {
          const _yKWnNoEL = _DGVzWTWr.DB.prepare("SELECT _oPLQvCWJ FROM kv_data WHERE _ZBduXtts = ?").bind(_bXcxtmaq);
          const { _YsUzOrSf } = await _yKWnNoEL.all();
          const _dKXRpHiy = _YsUzOrSf._kmlcYbyh > 0 ? _YsUzOrSf[0]._oPLQvCWJ : null;
          if (_dKXRpHiy) {
              return _aSRStAQy({ _BDMQaCkK: { _CrTQJsmX: _dKXRpHiy }, _cLqtLPfd: _hOmwWITD._cLqtLPfd }, _DGVzWTWr);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _ceQBzYPA: { 'Content-Type': '_HipkANEK/plain; _DxfDIAcD=utf-8' } });
          }
      }
      
      const _TFSfcbyc = _qPHFSpGH.split('/').filter(Boolean);
      if (_TFSfcbyc._kmlcYbyh === 1 && !_qPHFSpGH.startsWith('/api/')) {
          const _XKuIMZsw = _TFSfcbyc[0];
          return _aSRStAQy({ _BDMQaCkK: { _CrTQJsmX: _XKuIMZsw }, _cLqtLPfd: _hOmwWITD._cLqtLPfd }, _DGVzWTWr);
      }

      if (_qPHFSpGH.startsWith('/api/')) {
          if (_qPHFSpGH === '/api/_ITAcMrLp' && _hOmwWITD.method === 'POST') return _CIwKGrVp(_hOmwWITD, _DGVzWTWr, _WqGMjBmq);
          if (_qPHFSpGH === '/api/_tvAzWpRE-_CGGymZWK') return _WaPPCEOc(_hOmwWITD, _DGVzWTWr);
          if (_qPHFSpGH === '/api/change-_CGGymZWK') return _eXWfWxxF(_hOmwWITD, _DGVzWTWr);
          if (_qPHFSpGH === '/api/verify-_CGGymZWK') return _MLPZOXGO(_hOmwWITD, _DGVzWTWr);
          if (_qPHFSpGH === '/api/verify-visitor-_CGGymZWK' && _hOmwWITD.method === 'POST') return _YDKKfHXk(_hOmwWITD, _DGVzWTWr);
          if (_qPHFSpGH === '/api/cache-live-_YsUzOrSf' && _hOmwWITD.method === 'POST') return _YlOgvqAf(_hOmwWITD, _DGVzWTWr, _WqGMjBmq);
          if (_qPHFSpGH === '/api/get-_NUyOgDgy' && _hOmwWITD.method === 'POST') return _QWtwIZQg(_hOmwWITD, _DGVzWTWr);
          if (_qPHFSpGH === '/api/get-cached-_waxBKSXV') return _iBwzNLev(_hOmwWITD, _DGVzWTWr);
          if (_qPHFSpGH === '/api/save-_waxBKSXV') return _wKHuORcN(_hOmwWITD, _DGVzWTWr, _WqGMjBmq);
          if (_qPHFSpGH === '/api/save-and-get-sub-_CrTQJsmX' && _hOmwWITD.method === 'POST') return _OXJoHqtw(_hOmwWITD, _DGVzWTWr);
          if (_qPHFSpGH.startsWith('/api/get-_WevtJpAf/')) {
              const _XKuIMZsw = _qPHFSpGH.split('/').pop();
              return _aSRStAQy({ _BDMQaCkK: { _CrTQJsmX: _XKuIMZsw }, _cLqtLPfd: _hOmwWITD._cLqtLPfd }, _DGVzWTWr);
          }
          if (_qPHFSpGH === '/api/_ITAcMrLp' && _hOmwWITD.method === 'GET') return _wNunUNvr(_DGVzWTWr);
          if (_qPHFSpGH === '/api/get-resolved-_waxBKSXV') return _UUIOZCGK(_hOmwWITD);
          if (_qPHFSpGH === '/api/parse-_waxBKSXV-from-_nWvOEoYV' && _hOmwWITD.method === 'POST') return _CELxiaiq(_hOmwWITD, _DGVzWTWr);
          if (_qPHFSpGH === '/api/endpoints') return _wldMOlCR(_hOmwWITD, _DGVzWTWr);
          if (_qPHFSpGH === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_qPHFSpGH === '/_ROfDcQNw') return _JdKCSLUU(_hOmwWITD, _DGVzWTWr);
      if (_qPHFSpGH === '/bing-wallpaper') return _sySQJOTy();

      return _kkgNOWAv(_hOmwWITD, _DGVzWTWr, _WqGMjBmq);
    } catch (err) {
      let _HSaPiVio = err;
      return new Response(_HSaPiVio.toString(), { status: 500 });
    }
  }
};

const _CVRNwtfb = { 'Accept': '_HipkANEK/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36' };

async function _maSBPYRf(_cLqtLPfd, _wZNNJyBe) {
    const _yuRRNMnj = await fetch(_cLqtLPfd, { _ceQBzYPA: { ..._CVRNwtfb, 'Referer': _wZNNJyBe.referer } });
    if (_yuRRNMnj.ok) return _yuRRNMnj._HipkANEK();
    return null;
}

async function _dJIcEVht(_cLqtLPfd, _wZNNJyBe) {
    const _zNZfcDcI = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_cLqtLPfd)}`;
    const _yuRRNMnj = await fetch(_zNZfcDcI, { _ceQBzYPA: { ..._CVRNwtfb, 'Referer': _wZNNJyBe.referer } });
    if (!_yuRRNMnj.ok) return null;
    const _FtuUxCMi = await _yuRRNMnj._HipkANEK();
    const _aYuncdpS = _FtuUxCMi._aYuncdpS(/<pre[^>]*>([\s\S]*?)<\/pre>/_sNkxdnSw);
    return _aYuncdpS && _aYuncdpS[1] ? _aYuncdpS[1].replace(/&amp;/g, '&') : null;
}

function _oXdfiFCg(_tXaftjHy) {
    let _WGEWlaSg;
    try {
        _WGEWlaSg = atob(_tXaftjHy.replace(/\s/g, ''));
    } catch (_HSaPiVio) {
        _WGEWlaSg = _tXaftjHy;
    }

    const _WevtJpAf = _WGEWlaSg.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _HDxnpkzM = new Set();
    const _lVIBAhlw = /@([^?#]+?):(\d+)/;

    for (const _HOxcmQcX of _WevtJpAf) {
        let _MOChWbTW = '';
        let _maIJuKHX = '';

        try {
            if (_HOxcmQcX.startsWith('vmess://')) {
                const _QnPIucLz = atob(_HOxcmQcX.substring(8));
                const _ITAcMrLp = JSON.parse(_QnPIucLz);
                _MOChWbTW = _ITAcMrLp.add;
                _maIJuKHX = _ITAcMrLp._maIJuKHX;
            } else {
                const _aYuncdpS = _HOxcmQcX._aYuncdpS(_lVIBAhlw);
                if (_aYuncdpS && _aYuncdpS[1] && _aYuncdpS[2]) {
                    _MOChWbTW = _aYuncdpS[1].replace(/[\[\]]/g, '');
                    _maIJuKHX = _aYuncdpS[2];
                }
            }
        } catch (_HSaPiVio) {
            console.warn(`Could not parse _HOxcmQcX: ${_HOxcmQcX}`);
        }

        if (_MOChWbTW && _maIJuKHX) {
            _HDxnpkzM.add(`${_MOChWbTW}:${_maIJuKHX}`);
        }
    }
    return Array.from(_HDxnpkzM);
}

async function _aRkVfwKd(_lKOKjmMM) {
    try {
        const _yuRRNMnj = await fetch(_lKOKjmMM, { _ceQBzYPA: _CVRNwtfb });
        if (!_yuRRNMnj.ok) {
            console.error(`Failed to fetch subscription: ${_yuRRNMnj.status}`);
            return [];
        }
        const _tXaftjHy = await _yuRRNMnj._HipkANEK();
        return _oXdfiFCg(_tXaftjHy);
    } catch (error) {
        console.error(`Error processing subscription ${_lKOKjmMM}:`, error);
        return [];
    }
}

async function _KyunSOpz(_urHoKsFE) {
    const _flfbkdaC = _urHoKsFE.trim();
    const _xMjzWiUs = /^(vless|vmess|trojan|ss):\/\//.test(_flfbkdaC);
    const _DQKYGCGC = (() => {
        if (_flfbkdaC._kmlcYbyh < 20 || _flfbkdaC.startsWith('http')) return false;
        const _vOhfvVHV = _flfbkdaC.replace(/\s/g, '');
        if (_vOhfvVHV._kmlcYbyh % 4 !== 0 && !_vOhfvVHV.includes('=')) return false;
        try {
            atob(_vOhfvVHV);
            return true;
        } catch (_HSaPiVio) {
            return false;
        }
    })();

    if (_xMjzWiUs || _DQKYGCGC) {
        return _oXdfiFCg(_flfbkdaC).join('\n');
    }

    const _KDlCLUGM = [
        'https://ipdb.api.030101.xyz/?_MnKvCiLn=bestcf&_xoUjZJDZ=true',
        'https://ipdb.api.030101.xyz/?_MnKvCiLn=bestproxy&_xoUjZJDZ=true'
    ];
    const _MePgqOPB = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_sNkxdnSw.test(_urHoKsFE) || _urHoKsFE.includes('?_stQoSWYb=');

    if (_MePgqOPB) {
        const _waxBKSXV = await _aRkVfwKd(_urHoKsFE);
        return _waxBKSXV.join('\n');
    }

    let _tXaftjHy = '';
    if (_KDlCLUGM.includes(_urHoKsFE)) {
        _tXaftjHy = await _maSBPYRf(_urHoKsFE, { referer: _urHoKsFE });
        if (!_tXaftjHy || _tXaftjHy._kmlcYbyh < 8) {
            _tXaftjHy = await _dJIcEVht(_urHoKsFE, { referer: _urHoKsFE });
        }
    } else {
        try {
            const _eMDbQFqY = await fetch(_urHoKsFE, { _ceQBzYPA: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_eMDbQFqY.ok) {
                _tXaftjHy = await _eMDbQFqY._HipkANEK();
            } else {
                console.warn(`Failed to fetch URL ${_urHoKsFE}: ${_eMDbQFqY.status}`);
            }
        } catch (_HSaPiVio) {
            console.error(`Error fetching URL ${_urHoKsFE}:`, _HSaPiVio);
        }
    }

    const _yKoBGQau = _oXdfiFCg(_tXaftjHy);
    if (_yKoBGQau._kmlcYbyh > 0) {
        return _yKoBGQau.join('\n');
    }

    return _tXaftjHy || '';
}

async function _QdwppfNm(_hOmwWITD, _ITAcMrLp) {
    if (!_ITAcMrLp.streamer._kRWzFOum) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _cLqtLPfd = new URL(_hOmwWITD._cLqtLPfd);
    const _NFchKfOi = _cLqtLPfd.pathname.substring(1).replace(':/', '://');
    try {
        const _NEcTmJKE = new URL(_NFchKfOi);
        const _FeABpkaB = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_FeABpkaB.some(domain => _NEcTmJKE._MOChWbTW.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _IJXFCSxq = new Headers(_hOmwWITD._ceQBzYPA);
        _IJXFCSxq._tvAzWpRE('Host', _NEcTmJKE._MOChWbTW);
        _IJXFCSxq._tvAzWpRE('User-Agent', 'CF-Worker-Streamer/1.0');
        const _hWxAnFTi = await fetch(_NEcTmJKE.toString(), {
            method: _hOmwWITD.method,
            _ceQBzYPA: _IJXFCSxq,
            _FtuUxCMi: _hOmwWITD._FtuUxCMi,
        });
        const _ScFhNMWI = new Headers(_hWxAnFTi._ceQBzYPA);
        _ScFhNMWI._tvAzWpRE('Access-Control-Allow-Origin', '*');
        _ScFhNMWI._tvAzWpRE('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _ScFhNMWI._tvAzWpRE('Access-Control-Allow-Headers', '*');
        _ScFhNMWI._tvAzWpRE('Cache-Control', 'public, max-age=86400');
        _ScFhNMWI._tvAzWpRE('X-Streamer-Source', 'CF-Worker');
        _ScFhNMWI.delete('_tXaftjHy-security-policy');
        _ScFhNMWI.delete('x-_tXaftjHy-security-policy');
        _ScFhNMWI.delete('x-webkit-csp');
        return new Response(_hWxAnFTi._FtuUxCMi, {
            status: _hWxAnFTi.status,
            statusText: _hWxAnFTi.statusText,
            _ceQBzYPA: _ScFhNMWI,
        });
    } catch (_HSaPiVio) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _cqEkcQsG(_hOmwWITD, _DGVzWTWr, _ITAcMrLp) {
    try {
        const _wKxVmQmx = _ITAcMrLp || await _WKGcyhlo(_DGVzWTWr);
        const _fIwgkQXN = (_wKxVmQmx.itemLink._tLqWIHBf && _wKxVmQmx.itemLink._tLqWIHBf[0]) || {};
        const _yLLAzFVH = _fIwgkQXN['_stQoSWYb'] || _VasRbmeN(_YDcaMibC);

        if (!_cKgEGCkQ(_yLLAzFVH)) {
            throw new Error("Configured user _cckNseDg is not valid.");
        }

        const _mESMayiD = _wKxVmQmx.dataFeeds.universalFallbackAddress;
        let _FMeCnMoO = {};
        
        const _vnbuItGt = _VasRbmeN(_sgmNkbRH[0] || "");

        if (_mESMayiD) {
            const [_OchiPaNj, _maIJuKHX = '443'] = _mESMayiD.split(':');
            _FMeCnMoO = { _OchiPaNj, _maIJuKHX };
        } else {
            const [_OchiPaNj, _maIJuKHX = '443'] = _vnbuItGt.split(':');
            _FMeCnMoO = { _OchiPaNj, _maIJuKHX };
        }

        const _cLqtLPfd = new URL(_hOmwWITD._cLqtLPfd);
        const _qPHFSpGH = _cLqtLPfd.pathname;
        let _NKZZiIKF = '';

        const _HtXxIVKX = _cLqtLPfd.searchParams.get('remote');
        if (_HtXxIVKX) {
           _NKZZiIKF = atob(_HtXxIVKX);
        } else if (_qPHFSpGH.startsWith('/endpoint=')) {
           _NKZZiIKF = _qPHFSpGH.substring(10);
        } else if (_qPHFSpGH._kmlcYbyh > 1 && _qPHFSpGH.substring(1).includes('.')) {
           _NKZZiIKF = _qPHFSpGH.substring(1);
        }

        if (_NKZZiIKF) {
            const [_OchiPaNj, _maIJuKHX = '443'] = _NKZZiIKF.split(':');
            _FMeCnMoO = { _OchiPaNj, _maIJuKHX };
        }
        
        return await _MMqrTRNa(_hOmwWITD, _yLLAzFVH, _FMeCnMoO);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _MMqrTRNa(_hOmwWITD, _cckNseDg, _FMeCnMoO) {
    const _HggUvBEg = new WebSocketPair();
    const [clientEnd, _sjApYRGa] = Object.values(_HggUvBEg);
    _sjApYRGa.accept();

    let _wNhxHqsH = { _GHwMxzrG: null };
    const _nqrmeyWy = _hOmwWITD._ceQBzYPA.get("sec-websocket-protocol") || "";
    const _bAQBKbSy = _weGTLlUy(_sjApYRGa, _nqrmeyWy);

    _bAQBKbSy.pipeTo(new WritableStream({
        async write(chunk) {
            if (_wNhxHqsH._GHwMxzrG) {
                const _ZelTgQLk = _wNhxHqsH._GHwMxzrG.writable.getWriter();
                await _ZelTgQLk.write(chunk);
                _ZelTgQLk.releaseLock();
                return;
            }

            const { error, details } = await _EMuIKAVi(chunk, _cckNseDg);
            if (error) {
                throw new Error(details);
            }

            const _LxhYmcwF = new Uint8Array([details._tOITRFqV[0], 0]);
            const _ftPAQnQT = chunk.slice(details.payloadIndex);

            await _okAQhxqB(_wNhxHqsH, details._zkEPvntP, details._BBKmXDKQ, _ftPAQnQT, _sjApYRGa, _LxhYmcwF, _FMeCnMoO);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _UrxyscJr(_sjApYRGa);
    });

    return new Response(null, { status: 101, webSocket: clientEnd });
}

async function _okAQhxqB(_wNhxHqsH, _zkEPvntP, _BBKmXDKQ, _PRJMxeMu, _XZYXLpnm, _LxhYmcwF, _YAwzjdQC) {
    const _AOUKLLVm = async (_OchiPaNj, _maIJuKHX) => {
        let _SGUBDmWQ = _OchiPaNj;
        if (/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(_OchiPaNj)) {
            _SGUBDmWQ = `${atob('d3d3Lg==')}${_OchiPaNj}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _GHwMxzrG = connect({ _MOChWbTW: _SGUBDmWQ, _maIJuKHX });
        _wNhxHqsH._GHwMxzrG = _GHwMxzrG;
        const _ZelTgQLk = _GHwMxzrG.writable.getWriter();
        await _ZelTgQLk.write(_PRJMxeMu);
        _ZelTgQLk.releaseLock();
        return _GHwMxzrG;
    };

    const _MpMVvSlR = async () => {
        if (!_YAwzjdQC._OchiPaNj) return;
        console.log(`Direct connection failed, falling back to gateway: ${_YAwzjdQC._OchiPaNj}`);
        const _PmglLDEL = await _AOUKLLVm(_YAwzjdQC._OchiPaNj, parseInt(_YAwzjdQC._maIJuKHX, 10));
        _PmglLDEL.closed.catch(() => {}).finally(() => _UrxyscJr(_XZYXLpnm));
        _aVtpRkzN(_PmglLDEL, _XZYXLpnm, _LxhYmcwF, null);
    };

    try {
        const _RkmQtHAg = await _AOUKLLVm(_zkEPvntP, _BBKmXDKQ);
        _aVtpRkzN(_RkmQtHAg, _XZYXLpnm, _LxhYmcwF, _MpMVvSlR);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _MpMVvSlR();
    }
}

function _weGTLlUy(_sjApYRGa, _nqrmeyWy) {
    let _ucNbfaso = false;
    return new ReadableStream({
        start(_GrlmPYnL) {
            _sjApYRGa.addEventListener("_huFkLpSQ", (event) => { if (_ucNbfaso) return; _GrlmPYnL.enqueue(event._AFQviEVZ); });
            _sjApYRGa.addEventListener("close", () => { _UrxyscJr(_sjApYRGa); if (_ucNbfaso) return; _GrlmPYnL.close(); });
            _sjApYRGa.addEventListener("error", (err) => _GrlmPYnL.error(err));
            if (_nqrmeyWy) {
                try {
                    const _hHzrwezq = atob(_nqrmeyWy.replace(/-/g, "+").replace(/_/g, "/"));
                    _GrlmPYnL.enqueue(Uint8Array.from(_hHzrwezq, c => c.charCodeAt(0))._HImQvFbI);
                } catch (_HSaPiVio) { console.error("Failed to decode early _AFQviEVZ:", _HSaPiVio); }
            }
        },
        cancel() { _ucNbfaso = true; _UrxyscJr(_sjApYRGa); },
    });
}

async function _EMuIKAVi(_HImQvFbI, _cckNseDg) {
    if (_HImQvFbI.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _tOITRFqV = new Uint8Array(_HImQvFbI.slice(0, 1));
    const _TetcFEzw = _ATUpiyek(new Uint8Array(_HImQvFbI.slice(1, 17)));
    if (_TetcFEzw !== _cckNseDg) return { error: true, details: "Invalid _cckNseDg" };
    const _SgYMMhcM = new Uint8Array(_HImQvFbI.slice(17, 18))[0];
    const _rZIJCJKC = new Uint8Array(_HImQvFbI.slice(18 + _SgYMMhcM, 19 + _SgYMMhcM))[0];
    if (_rZIJCJKC !== 1) return { error: true, details: `Unsupported _rZIJCJKC: ${_rZIJCJKC}` };
    const _GceaAhyY = 19 + _SgYMMhcM;
    const _BBKmXDKQ = new DataView(_HImQvFbI.slice(_GceaAhyY, _GceaAhyY + 2)).getUint16(0);
    let _CtRnJCvM = _GceaAhyY + 2;
    const _pcbChWiL = new Uint8Array(_HImQvFbI.slice(_CtRnJCvM, _CtRnJCvM + 1))[0];
    let _WWHMBbvi = 0;
    let _qMOqXBXB = _CtRnJCvM + 1;
    let _zkEPvntP = "";
    switch (_pcbChWiL) {
        case 1: _WWHMBbvi = 4; _zkEPvntP = new Uint8Array(_HImQvFbI.slice(_qMOqXBXB, _qMOqXBXB + _WWHMBbvi)).join("."); break;
        case 2: _WWHMBbvi = new Uint8Array(_HImQvFbI.slice(_qMOqXBXB, _qMOqXBXB + 1))[0]; _qMOqXBXB++; _zkEPvntP = new TextDecoder().decode(_HImQvFbI.slice(_qMOqXBXB, _qMOqXBXB + _WWHMBbvi)); break;
        case 3: _WWHMBbvi = 16; const _eBzauFZT = new DataView(_HImQvFbI.slice(_qMOqXBXB, _qMOqXBXB + _WWHMBbvi)); const _WsMVYUMo = []; for (let _sNkxdnSw = 0; _sNkxdnSw < 8; _sNkxdnSw++) _WsMVYUMo.push(_eBzauFZT.getUint16(_sNkxdnSw * 2).toString(16)); _zkEPvntP = _WsMVYUMo.join(":"); break;
        default: return { error: true, details: `Invalid _FrKREStR _MnKvCiLn: ${_pcbChWiL}` };
    }
    if (!_zkEPvntP) return { error: true, details: "Target _OchiPaNj is empty" };
    return { error: false, details: { _zkEPvntP, _BBKmXDKQ, _tOITRFqV, payloadIndex: _qMOqXBXB + _WWHMBbvi } };
}

async function _aVtpRkzN(_GHwMxzrG, _XZYXLpnm, _RtHFfjax, _XxQTsNRU) {
    let _lkNcsStl = _RtHFfjax;
    let _uVgdNQYu = false;
    let _iygAadVG = _GHwMxzrG._bAQBKbSy.pipeTo(new WritableStream({
        write(chunk) {
            _uVgdNQYu = true;
            if (_XZYXLpnm.readyState !== 1) throw new Error("Channel is not open");
            if (_lkNcsStl) {
                const _AaOXkDNh = new Uint8Array(_lkNcsStl.byteLength + chunk.byteLength);
                _AaOXkDNh._tvAzWpRE(new Uint8Array(_lkNcsStl));
                _AaOXkDNh._tvAzWpRE(new Uint8Array(chunk), _lkNcsStl.byteLength);
                _XZYXLpnm.send(_AaOXkDNh._HImQvFbI);
                _lkNcsStl = null;
            } else {
                _XZYXLpnm.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _XZYXLpnm error:", err._huFkLpSQ);
    });

    await _iygAadVG;
    if (!_uVgdNQYu && _XxQTsNRU) {
        _XxQTsNRU();
    }
}

function _UrxyscJr(_XZYXLpnm) {
    try { if (_XZYXLpnm.readyState === 1 || _XZYXLpnm.readyState === 2) _XZYXLpnm.close(); } catch (_HSaPiVio) {}
}

const _MKQumpKT = Array.from({ _kmlcYbyh: 256 }, (_, _sNkxdnSw) => (_sNkxdnSw + 256).toString(16).slice(1));
function _ATUpiyek(_pSYgEuac, offset = 0) {
    return (
        _MKQumpKT[_pSYgEuac[offset]] + _MKQumpKT[_pSYgEuac[offset + 1]] + _MKQumpKT[_pSYgEuac[offset + 2]] + _MKQumpKT[_pSYgEuac[offset + 3]] + "-" +
        _MKQumpKT[_pSYgEuac[offset + 4]] + _MKQumpKT[_pSYgEuac[offset + 5]] + "-" +
        _MKQumpKT[_pSYgEuac[offset + 6]] + _MKQumpKT[_pSYgEuac[offset + 7]] + "-" +
        _MKQumpKT[_pSYgEuac[offset + 8]] + _MKQumpKT[_pSYgEuac[offset + 9]] + "-" +
        _MKQumpKT[_pSYgEuac[offset + 10]] + _MKQumpKT[_pSYgEuac[offset + 11]] +
        _MKQumpKT[_pSYgEuac[offset + 12]] + _MKQumpKT[_pSYgEuac[offset + 13]] +
        _MKQumpKT[_pSYgEuac[offset + 14]] + _MKQumpKT[_pSYgEuac[offset + 15]]
    ).toLowerCase();
}

let _CDhGyxjT = { "N/A":"未知" };

async function _loxjzrmo(_cLqtLPfd, _OjuqigZj, _XxQTsNRU) {
    try {
        const _yuRRNMnj = await fetch(_cLqtLPfd, {
            _ceQBzYPA: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_yuRRNMnj.ok) {
            console.error(`获取 ${_cLqtLPfd} 失败: HTTP ${_yuRRNMnj.status}`);
            return _XxQTsNRU;
        }
        const _HipkANEK = await _yuRRNMnj._HipkANEK();
        return _OjuqigZj(_HipkANEK);
    } catch (error) {
        console.error(`获取或解析 ${_cLqtLPfd} 时发生网络错误: ${error._huFkLpSQ}`);
        return _XxQTsNRU;
    }
}

function _jkdTGEyJ(_HipkANEK) {
    if (!_HipkANEK) return [];
    const _ZOpbEnXm = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _OzbyQvTU = _HipkANEK.split(/[\s,;#|]+/);
    const _zSFCIyIX = [];
    for (const _cxhHYiYW of _OzbyQvTU) {
        const _PqHSwUiy = _cxhHYiYW.trim();
        if (!_PqHSwUiy) continue;
        const _HKXyFeSw = _PqHSwUiy.lastIndexOf(':');
        let _OeJXRcZZ = _PqHSwUiy;
        if(_HKXyFeSw > _PqHSwUiy.lastIndexOf(']')) {
             const _QgEViUSa = _PqHSwUiy.substring(_HKXyFeSw + 1);
             if(!isNaN(_QgEViUSa) && _QgEViUSa._kmlcYbyh > 0) {
                _OeJXRcZZ = _PqHSwUiy.substring(0, _HKXyFeSw);
             }
        }
        if (_uxBsTzls.isValid(_OeJXRcZZ.replace(/[\[\]]/g, '')) || _ZOpbEnXm.test(_PqHSwUiy)) {
            _zSFCIyIX.push(_PqHSwUiy);
        }
    }
    return _zSFCIyIX;
}

function _VaEcVXsR(_HipkANEK) {
    if (!_HipkANEK) return [];
    return _HipkANEK.split(/\s+/).filter(d => d.trim() !== '');
}

function _yIJTsQNo(_HipkANEK) {
    if (!_HipkANEK) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_HipkANEK}}`);
    } catch (_HSaPiVio) {
        console.error("解析 _CDhGyxjT 失败:", _HSaPiVio);
        return { "N/A": "未知" };
    }
}

const _uxBsTzls = {
    isValid: (_ROfDcQNw) => _uxBsTzls.isIPv4(_ROfDcQNw) || _uxBsTzls.isIPv6(_ROfDcQNw),
    isIPv4: (_ROfDcQNw) => {
        if (typeof _ROfDcQNw !== 'string') return false;
        const _WsMVYUMo = _ROfDcQNw.split('.');
        if (_WsMVYUMo._kmlcYbyh !== 4) return false;
        return _WsMVYUMo.every(_WJoFcUBS => {
            const _CGHLkypO = parseInt(_WJoFcUBS, 10);
            return !isNaN(_CGHLkypO) && _CGHLkypO >= 0 && _CGHLkypO <= 255 && String(_CGHLkypO) === _WJoFcUBS;
        });
    },
    isIPv6: (_ROfDcQNw) => {
        if (typeof _ROfDcQNw !== 'string') return false;
        return /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/_sNkxdnSw.test(_ROfDcQNw);
    },
    toLong4: (_ROfDcQNw) => _ROfDcQNw.split('.').reduce((acc, octet, _sNkxdnSw) => acc + (parseInt(octet) << (8*(3-_sNkxdnSw))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_ROfDcQNw) => {
        try {
            const _ZAiYUPfa = _ROfDcQNw.split('/')[0];
            const _WsMVYUMo = _ZAiYUPfa.split('::');
            if (_WsMVYUMo._kmlcYbyh > 2) return 0n;
            let _mrzJjOna = [];
            if (_WsMVYUMo[0]) {
                _mrzJjOna = _WsMVYUMo[0].split(':');
            }
            let _qzGxsqqo = [];
            if (_WsMVYUMo._kmlcYbyh > 1 && _WsMVYUMo[1]) {
                _qzGxsqqo = _WsMVYUMo[1].split(':');
            }
            if (_mrzJjOna._kmlcYbyh + _qzGxsqqo._kmlcYbyh > 8) return 0n;
            const _DBViEkdy = 8 - (_mrzJjOna._kmlcYbyh + _qzGxsqqo._kmlcYbyh);
            const _pSpDHEqm = [
                ..._mrzJjOna,
                ...Array(_DBViEkdy).fill('0'),
                ..._qzGxsqqo
            ].map(_WJoFcUBS => _WJoFcUBS || '0');
            while(_pSpDHEqm._kmlcYbyh < 8) {
                _pSpDHEqm.push('0');
            }
            let _aEErdjVw = 0n;
            for (const _WJoFcUBS of _pSpDHEqm) {
                if (_WJoFcUBS._kmlcYbyh > 4) return 0n;
                const _oPLQvCWJ = BigInt('0x' + _WJoFcUBS);
                _aEErdjVw = (_aEErdjVw << 16n) | _oPLQvCWJ;
            }
            return _aEErdjVw;
        } catch(_HSaPiVio) {
            return 0n;
        }
    },
    fromBigInt6: (_aEErdjVw) => {
        if (typeof _aEErdjVw !== '_aEErdjVw' || _aEErdjVw < 0n) return null;
        const _WsMVYUMo = [];
        for (let _sNkxdnSw = 0; _sNkxdnSw < 8; _sNkxdnSw++) {
            _WsMVYUMo.unshift((_aEErdjVw & 0xFFFFn).toString(16));
            _aEErdjVw >>= 16n;
        }
        let _EPrVOJHM = { start: -1, _QjLCvBIs: 0 };
        let _FRexfNll = { start: -1, _QjLCvBIs: 0 };
        for (let _sNkxdnSw = 0; _sNkxdnSw < 8; _sNkxdnSw++) {
            if (_WsMVYUMo[_sNkxdnSw] === '0') {
                if (_FRexfNll.start === -1) _FRexfNll.start = _sNkxdnSw;
                _FRexfNll._QjLCvBIs++;
            } else {
                if (_FRexfNll._QjLCvBIs > _EPrVOJHM._QjLCvBIs) _EPrVOJHM = { ..._FRexfNll };
                _FRexfNll = { start: -1, _QjLCvBIs: 0 };
            }
        }
        if (_FRexfNll._QjLCvBIs > _EPrVOJHM._QjLCvBIs) _EPrVOJHM = { ..._FRexfNll };
        if (_EPrVOJHM._QjLCvBIs > 1) {
            _WsMVYUMo.splice(_EPrVOJHM.start, _EPrVOJHM._QjLCvBIs, '');
            if (_EPrVOJHM.start === 0) _WsMVYUMo.unshift('');
            if (_EPrVOJHM.start + _EPrVOJHM._QjLCvBIs === 8) _WsMVYUMo.push('');
        }
        return _WsMVYUMo.join(':');
    },
    cidrToRange: (cidr, _YqneDDnW = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _bRMWGRfA = parseInt(bitsStr, 10);
            const _waxBKSXV = new Set();
            if (_uxBsTzls.isIPv4(range)) {
                if (isNaN(_bRMWGRfA) || _bRMWGRfA < 8 || _bRMWGRfA > 32) return [];
                if (_bRMWGRfA === 32) return [range];
                const _wRvqjbLC = _uxBsTzls.toLong4(range);
                const _xAmmZSfo = (0xFFFFFFFF << (32 - _bRMWGRfA)) >>> 0;
                const _DqdXwQMw = _wRvqjbLC & _xAmmZSfo;
                const _fwWRWrUL = 1 << (32 - _bRMWGRfA);
                if (_fwWRWrUL <= 2) return [];
                const _VxfqUvsp = Math.min(_YqneDDnW, _fwWRWrUL - 2);
                let _IrEuvFht = 0;
                while (_waxBKSXV.size < _VxfqUvsp && _IrEuvFht < _VxfqUvsp * 5) {
                    const _YOzLQkvy = Math.floor(Math.random() * (_fwWRWrUL - 2)) + 1;
                    _waxBKSXV.add(_uxBsTzls.fromLong4((_DqdXwQMw + _YOzLQkvy) >>> 0));
                    _IrEuvFht++;
                }
                return Array.from(_waxBKSXV);
            } else if (_uxBsTzls.isIPv6(range)) {
                if (isNaN(_bRMWGRfA) || _bRMWGRfA < 16 || _bRMWGRfA > 128) return [];
                 if (_bRMWGRfA === 128) return [range];
                const _UnQnMfLZ = _uxBsTzls.toBigInt6(range);
                const _xAmmZSfo = (2n ** BigInt(128 - _bRMWGRfA) - 1n);
                const _DqdXwQMw = _UnQnMfLZ & ~_xAmmZSfo;
                const _nEDptMcT = 2n ** BigInt(128 - _bRMWGRfA);
                if (_nEDptMcT <= 2n) return [];
                let _IrEuvFht = 0;
                while (_waxBKSXV.size < _YqneDDnW && _IrEuvFht < _YqneDDnW * 5) {
                     const _LiOoEEqV = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_LiOoEEqV);
                     let _dBhcDSJU = 0n;
                     for (const _MkOvJMvO of _LiOoEEqV) {
                         _dBhcDSJU = (_dBhcDSJU << 8n) | BigInt(_MkOvJMvO);
                     }
                     const _YOzLQkvy = _dBhcDSJU % (_nEDptMcT - 2n) + 1n;
                     _waxBKSXV.add(_uxBsTzls.fromBigInt6(_DqdXwQMw + _YOzLQkvy));
                     _IrEuvFht++;
                }
                return Array.from(_waxBKSXV);
            }
            return [];
        } catch(_HSaPiVio) {
            console.error(`CIDR to range failed for ${cidr}:`, _HSaPiVio);
            return [];
        }
    }
};

function _dsfQSrYh(_REZXYOwq, _jpeJmAih) {
    const _ZXaYAHfj = {};
    const _LchlAokr = Object._LchlAokr(_jpeJmAih);
    const _WsMVYUMo = _LchlAokr.map(_ZBduXtts => {
        const _ZckwSDQE = _REZXYOwq * (_jpeJmAih[_ZBduXtts] / 100);
        return { _ZBduXtts, _YqneDDnW: Math.floor(_ZckwSDQE), remainder: _ZckwSDQE - Math.floor(_ZckwSDQE) };
    });
    let _FxAcIUgO = _WsMVYUMo.reduce((acc, _WJoFcUBS) => acc + _WJoFcUBS._YqneDDnW, 0);
    _WsMVYUMo.sort((a, b) => b.remainder - a.remainder);
    let _yIpfFcxH = _REZXYOwq - _FxAcIUgO;
    for (let _sNkxdnSw = 0; _sNkxdnSw < _yIpfFcxH; _sNkxdnSw++) {
        _WsMVYUMo[_sNkxdnSw % _WsMVYUMo._kmlcYbyh]._YqneDDnW++;
    }
    for (const _WJoFcUBS of _WsMVYUMo) {
        _ZXaYAHfj[_WJoFcUBS._ZBduXtts] = _WJoFcUBS._YqneDDnW;
    }
    return _ZXaYAHfj;
}

async function _DnknIPhG(_DGVzWTWr) {
    const _yKWnNoEL = _DGVzWTWr.DB.prepare("SELECT _oPLQvCWJ FROM kv_data WHERE _ZBduXtts = ?").bind(_enYvHfiw);
    const { _YsUzOrSf } = await _yKWnNoEL.all();
    return _YsUzOrSf._kmlcYbyh > 0 ? _YsUzOrSf[0]._oPLQvCWJ : null;
}

async function _zLuaHEtU(_DGVzWTWr, _CGGymZWK) {
    const _yKWnNoEL = _DGVzWTWr.DB.prepare(
        "INSERT INTO kv_data (_ZBduXtts, _oPLQvCWJ) VALUES (?, ?) ON CONFLICT(_ZBduXtts) DO UPDATE SET _oPLQvCWJ = excluded._oPLQvCWJ"
    );
    await _yKWnNoEL.bind(_enYvHfiw, _CGGymZWK).run();
}

async function _MLPZOXGO(_hOmwWITD, _DGVzWTWr) {
    const { _CGGymZWK } = await _hOmwWITD.json();
    const _bIBSiQCy = await _DnknIPhG(_DGVzWTWr);
    if (_bIBSiQCy === _CGGymZWK) {
        return _mOcfYIac({ success: true });
    }
    return _mOcfYIac({ success: false, _huFkLpSQ: '密码错误' }, 401);
}

async function _YDKKfHXk(_hOmwWITD, _DGVzWTWr) {
    const _ouleJWZR = await _WKGcyhlo(_DGVzWTWr);
    if (!_ouleJWZR.visitorPassword || !_ouleJWZR.visitorPassword._kRWzFOum) {
        return _mOcfYIac({ success: true });
    }
    try {
        const { _CGGymZWK } = await _hOmwWITD.json();
        const _gHhZzOrY = _ouleJWZR.visitorPassword._CGGymZWK;
        if (_gHhZzOrY && _CGGymZWK === _gHhZzOrY) {
            return _mOcfYIac({ success: true });
        }
        return _mOcfYIac({ success: false, _huFkLpSQ: '访客密码错误' }, 401);
    } catch (_HSaPiVio) {
        return _mOcfYIac({ success: false, _huFkLpSQ: '无效请求' }, 400);
    }
}

async function _WaPPCEOc(_hOmwWITD, _DGVzWTWr) {
    const _kkpGNVdX = await _DnknIPhG(_DGVzWTWr);
    if (_kkpGNVdX) {
        return _mOcfYIac({ success: false, _huFkLpSQ: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _CGGymZWK } = await _hOmwWITD.json();
    if (!_CGGymZWK || _CGGymZWK._kmlcYbyh < 6) {
        return _mOcfYIac({ success: false, _huFkLpSQ: "密码长度不能少于6位。" }, 400);
    }
    await _zLuaHEtU(_DGVzWTWr, _CGGymZWK);
    return _mOcfYIac({ success: true, _huFkLpSQ: "初始密码设置成功!请刷新页面并登录。" });
}

async function _eXWfWxxF(_hOmwWITD, _DGVzWTWr) {
    const { _pGquWqUv, _STFLldgC } = await _hOmwWITD.json();
    const _bIBSiQCy = await _DnknIPhG(_DGVzWTWr);
    if (_bIBSiQCy !== _pGquWqUv) {
        return _mOcfYIac({ success: false, _huFkLpSQ: "旧密码错误。" }, 403);
    }
    if (!_STFLldgC || _STFLldgC._kmlcYbyh < 6) {
        return _mOcfYIac({ success: false, _huFkLpSQ: "新密码长度不能少于6位。" }, 400);
    }
    await _zLuaHEtU(_DGVzWTWr, _STFLldgC);
    return _mOcfYIac({ success: true, _huFkLpSQ: "密码修改成功!" });
}

function _ytVEHQCx() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _pgRcTGtG: '',
        api: {
            _kRWzFOum: true,
            _huFkLpSQ: '维护中...',
        },
        ispFilter: { _kRWzFOum: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _kRWzFOum: true
        },
        websocketStreamer: {
            _kRWzFOum: true,
            _cLqtLPfd: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _kRWzFOum: true
        },
        visitorPassword: {
            _kRWzFOum: false,
            _CGGymZWK: '',
        },
        customSubPath: {
            _kRWzFOum: false,
            _qPHFSpGH: 'latest',
        },
        subscriptionId: {
            _kmlcYbyh: 8,
            _DxfDIAcD: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _kRWzFOum: true,
            template: 'vless://{_stQoSWYb}@{_ROfDcQNw}:{_maIJuKHX}?encryption=none&security=tls&sni={_OchiPaNj}&fp=random&_MnKvCiLn=ws&_OchiPaNj={_OchiPaNj}&_qPHFSpGH={_qPHFSpGH}#{_dokJrbFl}',
            selectionMode: 'first',
            _tLqWIHBf: [
                { _dokJrbFl: '默认配置', _OchiPaNj: '', '_stQoSWYb': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _qPHFSpGH: '/?ed=2560' }
            ],
            _DBrGgsHj: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _kRWzFOum: false,
                _HipkANEK: '',
                _neQJfQiN: 5
            },
            marquee: {
                _kRWzFOum: false,
                _HipkANEK: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _kRWzFOum: true,
            sources: [
                { _BsDjLqsH: 'CF官方IPV4', _waxBKSXV: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _JlLgWZWA: false, _kRWzFOum: true, _OUSYyLzW: 20 },
                { _BsDjLqsH: 'CF官方IPV6', _waxBKSXV: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _JlLgWZWA: false, _kRWzFOum: true, _OUSYyLzW: 20 },
                { _BsDjLqsH: '反代优选0', _waxBKSXV: 'https://wvs.sosorg.nyc.mn/sub?_stQoSWYb=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_MnKvCiLn=ws&_OchiPaNj=ss.nzvrn.com&_qPHFSpGH=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _JlLgWZWA: false, _kRWzFOum: true, _OUSYyLzW: 30 },
                { _BsDjLqsH: '官方优选1', _waxBKSXV: 'https://ipdb.api.030101.xyz/?_MnKvCiLn=bestcf&_xoUjZJDZ=true', _JlLgWZWA: false, _kRWzFOum: true, _OUSYyLzW: 10 },
                { _BsDjLqsH: '反代优选2', _waxBKSXV: 'https://ipdb.api.030101.xyz/?_MnKvCiLn=bestproxy&_xoUjZJDZ=true', _JlLgWZWA: false, _kRWzFOum: true, _OUSYyLzW: 5 },
                { _BsDjLqsH: '官方优选2', _waxBKSXV: 'https://addressesapi.090227.xyz/_ROfDcQNw.164746.xyz', _JlLgWZWA: false, _kRWzFOum: true, _OUSYyLzW: 10 },
				{ _BsDjLqsH: '官方优选3', _waxBKSXV: 'https://cfxr.eu.org/getSub?_OchiPaNj=snipaste.huggy.qzz.io', _JlLgWZWA: false, _kRWzFOum: true, _OUSYyLzW: 5 },
                { _BsDjLqsH: '官方优选4', _waxBKSXV: 'https://addressesapi.090227.xyz/CloudFlareYes', _JlLgWZWA: false, _kRWzFOum: true, _OUSYyLzW: 10 }
            ]
        },
        customNodes: {
            _kRWzFOum: false,
            list: ''
        },
        texts: {
            title: 'Cloudflare IP',
            loginButton: '登录',
            loginButtonSuccess: '修改参数',
            appDownloadTitle: 'APP 下载',
            liveTitle: '本次优选结果',
            cachedTitle: '上次优选结果',
            tableHeader1: '排名',
            tableHeader2: 'IP地址',
            tableHeader3: '端口',
            tableHeader4: '延迟(ms)',
            tableHeader5: '归属地',
            tableHeader6: '运营商',
            tableHeader7: '操作',
            pingInProgress: '测试中',
        },
        colors: {
            title: '#FFFFFF',
            loginButton: '#E0E0E0',
            liveTitle: '#E0E0E0',
            cachedTitle: '#E0E0E0',
            tableHeader: '#B0B0B0',
        },
        telegram: {
            bot_token: '',
            chat_id: '',
        },
    };
}

function _DpeHFSBY(_EpjAuMuy, _zoNrWaBw) {
    if (!_EpjAuMuy) return _zoNrWaBw;
    const _ZBdGMhmD = { ..._zoNrWaBw };
    for (const _ZBduXtts in _zoNrWaBw) {
        if (_EpjAuMuy.hasOwnProperty(_ZBduXtts)) {
             if (typeof _EpjAuMuy[_ZBduXtts] === 'object' && _EpjAuMuy[_ZBduXtts] !== null && !Array.isArray(_EpjAuMuy[_ZBduXtts]) && typeof _zoNrWaBw[_ZBduXtts] === 'object' && _zoNrWaBw[_ZBduXtts] !== null && !Array.isArray(_zoNrWaBw[_ZBduXtts])) {
                _ZBdGMhmD[_ZBduXtts] = _DpeHFSBY(_EpjAuMuy[_ZBduXtts], _zoNrWaBw[_ZBduXtts]);
            } else {
                _ZBdGMhmD[_ZBduXtts] = _EpjAuMuy[_ZBduXtts];
            }
        }
    }
    return _ZBdGMhmD;
}

async function _WKGcyhlo(_DGVzWTWr) {
    try {
        const _yKWnNoEL = _DGVzWTWr.DB.prepare("SELECT _oPLQvCWJ FROM kv_data WHERE _ZBduXtts = ?").bind(_lDLmMnmD);
        const { _YsUzOrSf } = await _yKWnNoEL.all();
        const _qnxqFTOh = _YsUzOrSf._kmlcYbyh > 0 ? _YsUzOrSf[0]._oPLQvCWJ : null;
        const _ErLzgQBO = _qnxqFTOh ? JSON.parse(_qnxqFTOh) : {};
        return _DpeHFSBY(_ErLzgQBO, _ytVEHQCx());
    } catch (_HSaPiVio) {
        console.error("无法从D1获取或解析全局配置:", _HSaPiVio);
        return _ytVEHQCx();
    }
}

async function _wNunUNvr(_DGVzWTWr) {
    const _ITAcMrLp = await _WKGcyhlo(_DGVzWTWr);
    return _mOcfYIac(_ITAcMrLp);
}

async function _CIwKGrVp(_hOmwWITD, _DGVzWTWr, _WqGMjBmq) {
    try {
        const { _ITAcMrLp, adminPassword } = await _hOmwWITD.json();
        const _bIBSiQCy = await _DnknIPhG(_DGVzWTWr);
        if (_bIBSiQCy !== adminPassword) {
            return _mOcfYIac({ success: false, _huFkLpSQ: "管理员密码错误" }, 403);
        }
        const _yKWnNoEL = _DGVzWTWr.DB.prepare(
          "INSERT INTO kv_data (_ZBduXtts, _oPLQvCWJ) VALUES (?, ?) ON CONFLICT(_ZBduXtts) DO UPDATE SET _oPLQvCWJ = excluded._oPLQvCWJ"
        );
        const _HCTkKdUV = _yKWnNoEL.bind(_lDLmMnmD, JSON.stringify(_ITAcMrLp)).run();
        _WqGMjBmq.waitUntil(_HCTkKdUV);
        return _mOcfYIac({ success: true, _huFkLpSQ: "配置已成功保存!" });
    } catch (_HSaPiVio) {
        return _mOcfYIac({ success: false, _huFkLpSQ: `保存失败: ${_HSaPiVio._huFkLpSQ}` }, 500);
    }
}

async function _sySQJOTy() {
    const _iEFMTZVU = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _PdIgQzly = await fetch(_iEFMTZVU);
        const _LXhGKJWl = await _PdIgQzly.json();
        const _QjYYzmvj = 'https://www.bing.com' + _LXhGKJWl.images[0]._cLqtLPfd;
        return fetch(_QjYYzmvj);
    } catch (_HSaPiVio) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _yYmWrIwk(_ROfDcQNw) {
    try {
        const _yuRRNMnj = await fetch(`http://_ROfDcQNw-api.com/json/${_ROfDcQNw}?fields=status,_xoUjZJDZ,countryCode,_lxKbOpGq&lang=zh-CN`);
        if (_yuRRNMnj.ok) {
            const _AFQviEVZ = await _yuRRNMnj.json();
            if (_AFQviEVZ.status === 'success' && (_AFQviEVZ.countryCode || _AFQviEVZ._xoUjZJDZ)) {
                let _lxKbOpGq = _AFQviEVZ._lxKbOpGq || '未知';
                if (_lxKbOpGq.toLowerCase().includes('cloudflare')) {
                    _lxKbOpGq = 'CloudFlare';
                }
                return {
                    _BsDjLqsH: _CDhGyxjT[_AFQviEVZ.countryCode] || _AFQviEVZ._xoUjZJDZ || _AFQviEVZ.countryCode,
                    _lxKbOpGq: _lxKbOpGq
                };
            }
        }
    } catch (_HSaPiVio) {}

    try {
        const _yuRRNMnj = await fetch(`https://api._ROfDcQNw.sb/geoip/${_ROfDcQNw}`);
        if (_yuRRNMnj.ok) {
            const _AFQviEVZ = await _yuRRNMnj.json();
            if (_AFQviEVZ.country_code || _AFQviEVZ._xoUjZJDZ) {
                let _lxKbOpGq = _AFQviEVZ._lxKbOpGq || '未知';
                if (_lxKbOpGq.toLowerCase().includes('cloudflare')) {
                    _lxKbOpGq = 'CloudFlare';
                }
                return {
                    _BsDjLqsH: _CDhGyxjT[_AFQviEVZ.country_code] || _AFQviEVZ._xoUjZJDZ || _AFQviEVZ.country_code,
                    _lxKbOpGq: _lxKbOpGq
                };
            }
        }
    } catch (_HSaPiVio) {}
    
    return { _BsDjLqsH: '未知', _lxKbOpGq: '未知' };
}

async function _QWtwIZQg(_hOmwWITD, _DGVzWTWr) {
    try {
        const { _waxBKSXV } = await _hOmwWITD.json();
        if (!Array.isArray(_waxBKSXV)) {
            return _mOcfYIac({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _LaqZdjok = _waxBKSXV.map(_ROfDcQNw => _yYmWrIwk(_ROfDcQNw).then(_NUyOgDgy => ({ _ROfDcQNw, ..._NUyOgDgy })));
        const _YsUzOrSf = await Promise.all(_LaqZdjok);
        return _mOcfYIac(_YsUzOrSf);
    } catch (_HSaPiVio) {
        return _mOcfYIac({ error: `获取地理位置失败: ${_HSaPiVio._huFkLpSQ}` }, 500);
    }
}

async function _iBwzNLev(_hOmwWITD, _DGVzWTWr) {
    const _ITAcMrLp = await _WKGcyhlo(_DGVzWTWr);
    if (!_ITAcMrLp.cloudStorage._kRWzFOum) {
        return _mOcfYIac({ _YsUzOrSf: [], generatedBy: null });
    }
    try {
        const _yKWnNoEL = _DGVzWTWr.DB.prepare("SELECT _oPLQvCWJ FROM kv_data WHERE _ZBduXtts = ?").bind(_uvntuCDl);
        const { _YsUzOrSf } = await _yKWnNoEL.all();
        const _wUVxfYwA = _YsUzOrSf._kmlcYbyh > 0 ? _YsUzOrSf[0]._oPLQvCWJ : null;
        const _ykbkxlwG = _wUVxfYwA ? JSON.parse(_wUVxfYwA) : null;
        return _mOcfYIac(_ykbkxlwG || { _YsUzOrSf: [], generatedBy: null });
    } catch (_HSaPiVio) {
        console.error("从D1读取缓存IP失败:", _HSaPiVio);
        return _mOcfYIac({ _YsUzOrSf: [], generatedBy: null });
    }
}

async function _wKHuORcN(_hOmwWITD, _DGVzWTWr, _WqGMjBmq) {
    const _ITAcMrLp = await _WKGcyhlo(_DGVzWTWr);
    if (!_ITAcMrLp.cloudStorage._kRWzFOum) {
        return _mOcfYIac({ success: true, _huFkLpSQ: "云端存储已禁用,不保存结果。" });
    }
    const _dgyLVAiG = _hOmwWITD._ceQBzYPA.get('CF-Connecting-IP') || "未知IP";
    const _xoUjZJDZ = _hOmwWITD.cf?._xoUjZJDZ || "未知";
    const _hQgYSoOB = _hOmwWITD.cf?._hQgYSoOB || "";
    let _myIhfarX = _CDhGyxjT[_xoUjZJDZ] || _xoUjZJDZ;
    if (_hQgYSoOB && _hQgYSoOB !== "未知城市" && _hQgYSoOB !== _xoUjZJDZ) _myIhfarX = `${_myIhfarX} ${_CDhGyxjT[_hQgYSoOB] || _hQgYSoOB}`;
    const _QyKwRrdH = {
        _ROfDcQNw: _nDqkyJOP(_dgyLVAiG),
        _BsDjLqsH: _myIhfarX.trim(),
        time: _bsWLquLp()
    };
    try {
        const _oADliKeH = await _hOmwWITD.json();
        if (!Array.isArray(_oADliKeH)) return _mOcfYIac({ error: "无效数据格式" }, 400);
        const _GxTLofHQ = _oADliKeH.map(_LDUbjMOK => ({
            _ROfDcQNw: String(_LDUbjMOK._ROfDcQNw || ''),
            _maIJuKHX: _LDUbjMOK._maIJuKHX ? parseInt(_LDUbjMOK._maIJuKHX, 10) : undefined,
            _THklotHV: parseInt(_LDUbjMOK._THklotHV, 10),
            _BsDjLqsH: typeof _LDUbjMOK._BsDjLqsH === 'string' ? _LDUbjMOK._BsDjLqsH.substring(0, 50) : 'N/A',
            _lxKbOpGq: typeof _LDUbjMOK._lxKbOpGq === 'string' ? _LDUbjMOK._lxKbOpGq.substring(0, 100) : 'N/A'
        }));
        const _rPWbGqCP = {
            generatedBy: _QyKwRrdH,
            _YsUzOrSf: _GxTLofHQ
        };
        const _yEWHEsVn = _DGVzWTWr.DB.prepare(
          "INSERT INTO kv_data (_ZBduXtts, _oPLQvCWJ) VALUES (?, ?) ON CONFLICT(_ZBduXtts) DO UPDATE SET _oPLQvCWJ = excluded._oPLQvCWJ"
        ).bind(_uvntuCDl, JSON.stringify(_rPWbGqCP)).run();
        if (_ITAcMrLp.telegram.bot_token && _ITAcMrLp.telegram.chat_id) {
            const _YexoVQkM = _GxTLofHQ.map(r => `${r._ROfDcQNw} ~ ${r._BsDjLqsH}`).join('\n');
            const _FrDHOsOm = `优选完成!\n来源: ${_QyKwRrdH._ROfDcQNw} (${_QyKwRrdH._BsDjLqsH})\n时间: ${_QyKwRrdH.time}\n\n结果:\n${_YexoVQkM}`;
            const _MsToFLBf = `https://api.telegram.org/bot${_ITAcMrLp.telegram.bot_token}/sendMessage?chat_id=${_ITAcMrLp.telegram.chat_id}&_HipkANEK=${encodeURIComponent(_FrDHOsOm)}`;
            const _fmeACzsb = fetch(_MsToFLBf).catch(_HSaPiVio => console.error("Telegram结果通知失败:", _HSaPiVio));
            _WqGMjBmq.waitUntil(Promise.all([_yEWHEsVn, _fmeACzsb]));
        } else {
             _WqGMjBmq.waitUntil(_yEWHEsVn);
        }
        return _mOcfYIac({ success: true, _huFkLpSQ: "结果已保存" });
    } catch (_HSaPiVio) {
        return _mOcfYIac({ error: "D1写入失败", _huFkLpSQ: _HSaPiVio._huFkLpSQ }, 500);
    }
}

async function _YlOgvqAf(_hOmwWITD, _DGVzWTWr, _WqGMjBmq) {
    try {
        const _ytPneDis = await _hOmwWITD.json();
        if (!Array.isArray(_ytPneDis)) return _mOcfYIac({ error: "无效数据格式" }, 400);
        const _rPWbGqCP = {
            _YsUzOrSf: _ytPneDis
        };
        const _yKWnNoEL = _DGVzWTWr.DB.prepare(
          "INSERT INTO kv_data (_ZBduXtts, _oPLQvCWJ) VALUES (?, ?) ON CONFLICT(_ZBduXtts) DO UPDATE SET _oPLQvCWJ = excluded._oPLQvCWJ"
        );
        const _HCTkKdUV = _yKWnNoEL.bind(_XwVcGVbw, JSON.stringify(_rPWbGqCP)).run();
        _WqGMjBmq.waitUntil(_HCTkKdUV);
        return _mOcfYIac({ success: true });
    } catch (_HSaPiVio) {
        return _mOcfYIac({ error: "D1写入临时缓存失败", _huFkLpSQ: _HSaPiVio._huFkLpSQ }, 500);
    }
}

function _DEpWnBWG(_kmlcYbyh, _DxfDIAcD) {
    let _hvQOXhQC = '';
    const _PhIUuyBN = _DxfDIAcD._kmlcYbyh;
    for (let _sNkxdnSw = 0; _sNkxdnSw < _kmlcYbyh; _sNkxdnSw++) {
        _hvQOXhQC += _DxfDIAcD.charAt(Math.floor(Math.random() * _PhIUuyBN));
    }
    return _hvQOXhQC;
}

async function _OXJoHqtw(_hOmwWITD, _DGVzWTWr) {
    try {
        const _oADliKeH = await _hOmwWITD.json();
        if (!Array.isArray(_oADliKeH) || _oADliKeH._kmlcYbyh === 0) {
            return _mOcfYIac({ error: "无效或空的IP列表" }, 400);
        }

        const _ITAcMrLp = await _WKGcyhlo(_DGVzWTWr);
        const _VBPlBAsw = _ITAcMrLp.subscriptionId || { _kmlcYbyh: 8, _DxfDIAcD: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _XKuIMZsw;
        let _aWRJHogl = false;
        let _IrEuvFht = 0;
        const _IYvZcofd = 10;

        while (!_aWRJHogl && _IrEuvFht < _IYvZcofd) {
            _XKuIMZsw = _DEpWnBWG(_VBPlBAsw._kmlcYbyh, _VBPlBAsw._DxfDIAcD);
            const { _YsUzOrSf } = await _DGVzWTWr.DB.prepare("SELECT _CrTQJsmX FROM optimized_results WHERE _CrTQJsmX = ?").bind(_XKuIMZsw).all();
            if (_YsUzOrSf._kmlcYbyh === 0) {
                _aWRJHogl = true;
            }
            _IrEuvFht++;
        }

        if (!_aWRJHogl) {
            return _mOcfYIac({ error: "无法生成唯一的订阅ID,请稍后重试或调整ID设置。" }, 500);
        }

        const _OniVkkKG = JSON.stringify({ _waxBKSXV: _oADliKeH });
        await _DGVzWTWr.DB.prepare(
            "INSERT INTO optimized_results (_CrTQJsmX, _AFQviEVZ) VALUES (?, ?)"
        ).bind(_XKuIMZsw, _OniVkkKG).run();
        await _DGVzWTWr.DB.prepare(
            "INSERT INTO kv_data (_ZBduXtts, _oPLQvCWJ) VALUES (?, ?) ON CONFLICT(_ZBduXtts) DO UPDATE SET _oPLQvCWJ = excluded._oPLQvCWJ"
        ).bind(_bXcxtmaq, _XKuIMZsw).run();
            
        return _mOcfYIac({ success: true, _CrTQJsmX: _XKuIMZsw });
    } catch (_HSaPiVio) {
        return _mOcfYIac({ error: "保存优选结果失败", _huFkLpSQ: _HSaPiVio._huFkLpSQ }, 500);
    }
}

async function _aSRStAQy(_hOmwWITD, _DGVzWTWr) {
    try {
        const _XKuIMZsw = _hOmwWITD._BDMQaCkK._CrTQJsmX;
        if (!_XKuIMZsw) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _hvQOXhQC = await _DGVzWTWr.DB.prepare("SELECT _AFQviEVZ FROM optimized_results WHERE _CrTQJsmX = ?").bind(_XKuIMZsw).first();
        if (!_hvQOXhQC) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _AFQviEVZ = JSON.parse(_hvQOXhQC._AFQviEVZ);
        let _YexoVQkM = _AFQviEVZ._waxBKSXV;

        const _ITAcMrLp = await _WKGcyhlo(_DGVzWTWr);

        if (_ITAcMrLp.customNodes && _ITAcMrLp.customNodes._kRWzFOum && _ITAcMrLp.customNodes.list) {
            const _XAbvggLC = _ITAcMrLp.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _OtiyPRTf = _XAbvggLC.map(_HOxcmQcX => {
                let _FrKREStR = _HOxcmQcX;
                let _maIJuKHX = undefined;
                let _dokJrbFl = null;

                if (_FrKREStR.includes('@')) {
                    const _WsMVYUMo = _FrKREStR.split('@');
                    _dokJrbFl = _WsMVYUMo.pop();
                    _FrKREStR = _WsMVYUMo.join('@');
                }

                if (_FrKREStR.includes('#')) {
                    const _WsMVYUMo = _FrKREStR.split('#');
                    const _QgEViUSa = _WsMVYUMo.pop();
                    if (!isNaN(_QgEViUSa) && _QgEViUSa.trim() !== '') {
                        _maIJuKHX = parseInt(_QgEViUSa, 10);
                    }
                    _FrKREStR = _WsMVYUMo.join('#');
                }
                
                return {
                    _ROfDcQNw: _FrKREStR,
                    _maIJuKHX: _maIJuKHX,
                    _BsDjLqsH: _dokJrbFl || _FrKREStR,
                    _lxKbOpGq: '自定义'
                };
            });
            _YexoVQkM.unshift(..._OtiyPRTf);
        }
        
        const { itemLink } = _ITAcMrLp;
        const _NDiAVXHE = new URL(_hOmwWITD._cLqtLPfd)._MOChWbTW;
        let _nCMzrILl;

        if (_ITAcMrLp.websocketStreamer && _ITAcMrLp.websocketStreamer._kRWzFOum) {
            if (!itemLink || !itemLink._kRWzFOum || !itemLink._tLqWIHBf || itemLink._tLqWIHBf._kmlcYbyh === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _nCMzrILl = _YexoVQkM.map((_LDUbjMOK, _bfSIdqfC) => {
                let _dokJrbFl;
                if (_LDUbjMOK._lxKbOpGq === '自定义') {
                     _dokJrbFl = `${_bfSIdqfC + 1} - ${_LDUbjMOK._BsDjLqsH}`;
                } else {
                    _dokJrbFl = `${_bfSIdqfC + 1} - ${_LDUbjMOK._BsDjLqsH || '未知'}`;
                    if (!_LDUbjMOK._lxKbOpGq || !_LDUbjMOK._lxKbOpGq.toLowerCase().includes('cloudflare')) {
                        _dokJrbFl += '(反代)';
                    }
                }
                const _svUcSbhd = _uxBsTzls.isIPv6(_LDUbjMOK._ROfDcQNw) ? `[${_LDUbjMOK._ROfDcQNw}]` : _LDUbjMOK._ROfDcQNw;
                const _maIJuKHX = _LDUbjMOK._maIJuKHX || 443;
                const _WeggTUaA = itemLink._tLqWIHBf[0];
                const _oDudjIhf = _WeggTUaA._stQoSWYb || '';
                const _stQoSWYb = (_oDudjIhf && _cKgEGCkQ(_oDudjIhf)) ? _oDudjIhf : crypto.randomUUID();
                const _qPHFSpGH = '/snippets?_ROfDcQNw=endpointAddress:_maIJuKHX(443)&nat64=6to4';
                const _OchiPaNj = _WeggTUaA._OchiPaNj || _NDiAVXHE;

                const _BDMQaCkK = new URLSearchParams({
                    security: 'tls',
                    _MnKvCiLn: 'ws',
                    _OchiPaNj: _OchiPaNj,
                    sni: _OchiPaNj,
                    fp: 'random'
                });
                return `vless://${_stQoSWYb}@${_svUcSbhd}:${_maIJuKHX}?${_BDMQaCkK.toString()}&_qPHFSpGH=${encodeURIComponent(encodeURIComponent(_qPHFSpGH))}#${encodeURIComponent(_dokJrbFl)}`;
            });

        } else {
            if (!itemLink || !itemLink._kRWzFOum || !itemLink._tLqWIHBf || itemLink._tLqWIHBf._kmlcYbyh === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _WeggTUaA = itemLink._tLqWIHBf[0];
            const { _OchiPaNj, _stQoSWYb, _qPHFSpGH } = _WeggTUaA;
            _nCMzrILl = _YexoVQkM.map((_LDUbjMOK, _bfSIdqfC) => {
                let _dokJrbFl;
                if (_LDUbjMOK._lxKbOpGq === '自定义') {
                     _dokJrbFl = `${_bfSIdqfC + 1} - ${_LDUbjMOK._BsDjLqsH}`;
                } else {
                    _dokJrbFl = `${_bfSIdqfC + 1} - ${_LDUbjMOK._BsDjLqsH || '未知'}`;
                    if (!_LDUbjMOK._lxKbOpGq || !_LDUbjMOK._lxKbOpGq.toLowerCase().includes('cloudflare')) {
                        _dokJrbFl += '(反代)';
                    }
                }
                const _svUcSbhd = _uxBsTzls.isIPv6(_LDUbjMOK._ROfDcQNw) ? `[${_LDUbjMOK._ROfDcQNw}]` : _LDUbjMOK._ROfDcQNw;
                const _maIJuKHX = _LDUbjMOK._maIJuKHX || 443;
                const _BDMQaCkK = new URLSearchParams({
                    security: 'tls',
                    _MnKvCiLn: 'ws',
                    _OchiPaNj: _OchiPaNj || _NDiAVXHE,
                    sni: _OchiPaNj || _NDiAVXHE,
                    fp: 'random'
                });
                return `vless://${_stQoSWYb}@${_svUcSbhd}:${_maIJuKHX}?${_BDMQaCkK.toString()}&_qPHFSpGH=${encodeURIComponent(encodeURIComponent(_qPHFSpGH || ''))}#${encodeURIComponent(_dokJrbFl)}`;
            });
        }
        
        const _aveWsuCK = _nCMzrILl.join('\n');
        const _WKLJgwza = btoa(_aveWsuCK);
        return new Response(_WKLJgwza, {
            _ceQBzYPA: { 'Content-Type': '_HipkANEK/plain; _DxfDIAcD=utf-8' }
        });

    } catch (_HSaPiVio) {
        return new Response(`生成节点列表失败: ${_HSaPiVio._huFkLpSQ}`, { status: 500 });
    }
}

async function _UUIOZCGK(_hOmwWITD) {
    try {
        const { _zWrzSkou, _MnKvCiLn } = await _hOmwWITD.json();
        if (!Array.isArray(_zWrzSkou)) {
            return new Response('Invalid _zWrzSkou list', { status: 400 });
        }
        const _ojpazOwI = _zWrzSkou.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _cLqtLPfd = `https://cloudflare-dns.com/dns-query?_dokJrbFl=${encodeURIComponent(domain.trim())}&_MnKvCiLn=${_MnKvCiLn || 'A'}`;
            return fetch(_cLqtLPfd, { _ceQBzYPA: { 'Accept': 'application/dns-json' } })
                .then(_yuRRNMnj => _yuRRNMnj.json())
                .then(_AFQviEVZ => (_AFQviEVZ.Answer ? _AFQviEVZ.Answer.map(a => a._AFQviEVZ) : []))
                .catch(() => []);
        });
        const _HUammMFW = (await Promise.all(_ojpazOwI)).flat();
        const _EHVMsrKP = [...new Set(_HUammMFW)];
        if (_EHVMsrKP._kmlcYbyh === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_EHVMsrKP.join('\n'), { _ceQBzYPA: { 'Content-Type': '_HipkANEK/plain; _DxfDIAcD=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._huFkLpSQ}`, { status: 500 });
    }
}

async function _CELxiaiq(_hOmwWITD, _DGVzWTWr) {
  try {
      const { _nWvOEoYV } = await _hOmwWITD.json();
      if (!Array.isArray(_nWvOEoYV)) {
          return _mOcfYIac({ error: "Invalid input, expected an object with a '_nWvOEoYV' array." }, 400);
      }
      
      const _CRvLnkRh = new Set();
      
      const _OhyRJARj = _nWvOEoYV.map(_cLqtLPfd =>
          _KyunSOpz(_cLqtLPfd)
              .then(_HipkANEK => {
                  if (!_HipkANEK) return;
                  const _OzbyQvTU = _HipkANEK.split(/[\s,;|]+/);
                  for (const _cxhHYiYW of _OzbyQvTU) {
                      const _PqHSwUiy = _cxhHYiYW.trim();
                      if (_PqHSwUiy) {
                          _CRvLnkRh.add(_PqHSwUiy);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_cLqtLPfd}:`, err);
              })
      );
      await Promise.all(_OhyRJARj);
      return _mOcfYIac({ _waxBKSXV: Array.from(_CRvLnkRh) });
  } catch (_HSaPiVio) {
      return _mOcfYIac({ error: `Failed to process URLs: ${_HSaPiVio._huFkLpSQ}` }, 500);
  }
}

async function _JdKCSLUU(_hOmwWITD, _DGVzWTWr) {
    const _ITAcMrLp = await _WKGcyhlo(_DGVzWTWr);
    if (!_ITAcMrLp.api._kRWzFOum) {
        return new Response(_ITAcMrLp.api._huFkLpSQ || 'API is disabled.', { status: 503 });
    }
    try {
        const _yKWnNoEL = _DGVzWTWr.DB.prepare("SELECT _oPLQvCWJ FROM kv_data WHERE _ZBduXtts = ?").bind(_uvntuCDl);
        const { _YsUzOrSf: dbResults } = await _yKWnNoEL.all();
        const _wUVxfYwA = dbResults._kmlcYbyh > 0 ? dbResults[0]._oPLQvCWJ : null;
        const _ykbkxlwG = _wUVxfYwA ? JSON.parse(_wUVxfYwA) : null;
        if (!_ykbkxlwG || !_ykbkxlwG._YsUzOrSf || _ykbkxlwG._YsUzOrSf._kmlcYbyh === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _ceQBzYPA: { 'Content-Type': '_HipkANEK/plain; _DxfDIAcD=utf-8' },
            });
        }
        const _waxBKSXV = _ykbkxlwG._YsUzOrSf.map(r => r._ROfDcQNw);
        return new Response(_waxBKSXV.join('\n'), {
            _ceQBzYPA: { 'Content-Type': '_HipkANEK/plain; _DxfDIAcD=utf-8' },
        });
    } catch (_HSaPiVio) {
        console.error("API /_ROfDcQNw 处理错误:", _HSaPiVio);
        return new Response(`API处理时出错: ${_HSaPiVio._huFkLpSQ}`, { status: 500 });
    }
}

function _zQdDWnAF(_hvQOXhQC, _bfSIdqfC, _ITAcMrLp, _NDiAVXHE) {
    const { itemLink } = _ITAcMrLp;
    if (!itemLink || !itemLink._kRWzFOum) return null;
    const { template, _tLqWIHBf, selectionMode, _DBrGgsHj } = itemLink;
    if (!_tLqWIHBf || _tLqWIHBf._kmlcYbyh === 0) return null;

    let _ClOajYiu;
    if (selectionMode === 'random') {
        _ClOajYiu = _tLqWIHBf[_bfSIdqfC % _tLqWIHBf._kmlcYbyh];
    } else if (selectionMode === 'first') {
        _ClOajYiu = _tLqWIHBf[0];
    } else {
        _ClOajYiu = _tLqWIHBf.find(s => s._dokJrbFl === selectionMode) || _tLqWIHBf[0];
    }
    if (!_ClOajYiu) return null;

    let _IjanWRwF = template;
    const _ZLDKLHcq = _hvQOXhQC._maIJuKHX || 443;
    const _qbsZqMaw = _uxBsTzls.isIPv6(_hvQOXhQC._ROfDcQNw) ? `[${_hvQOXhQC._ROfDcQNw}]` : _hvQOXhQC._ROfDcQNw;
    let _dokJrbFl = `${_bfSIdqfC + 1} 、 ${_hvQOXhQC._BsDjLqsH || '未知'}`;
    if (!_hvQOXhQC._lxKbOpGq || !_hvQOXhQC._lxKbOpGq.toLowerCase().includes('cloudflare')) {
        _dokJrbFl += '(反代)';
    }
    let _OchiPaNj = _ClOajYiu._OchiPaNj || _NDiAVXHE;

    _IjanWRwF = _IjanWRwF.replace(/{_ROfDcQNw}/g, _qbsZqMaw)
               .replace(/{_maIJuKHX}/g, _ZLDKLHcq)
               .replace(/{_dokJrbFl}/g, encodeURIComponent(_dokJrbFl))
               .replace(/{rank}/g, _bfSIdqfC + 1)
               .replace(/{_BsDjLqsH}/g, encodeURIComponent(_hvQOXhQC._BsDjLqsH || '未知'))
               .replace(/{_lxKbOpGq}/g, encodeURIComponent(_hvQOXhQC._lxKbOpGq || '未知'))
               .replace(/{_OchiPaNj}/g, encodeURIComponent(_OchiPaNj))
               .replace(/{_stQoSWYb}/g, encodeURIComponent(_ClOajYiu['_stQoSWYb'] || ''))
               .replace(/{_qPHFSpGH}/g, encodeURIComponent(encodeURIComponent(_ClOajYiu._qPHFSpGH || '')));

    if (_DBrGgsHj) {
        _DBrGgsHj.forEach(field => {
            const _HNausmHa = new RegExp('{' + field._dokJrbFl + '}', 'g');
            _IjanWRwF = _IjanWRwF.replace(_HNausmHa, encodeURIComponent(field._oPLQvCWJ));
        });
    }
    return _IjanWRwF;
}

async function _wldMOlCR(_hOmwWITD, _DGVzWTWr) {
    const _ITAcMrLp = await _WKGcyhlo(_DGVzWTWr);
    if (!_ITAcMrLp.itemLink._kRWzFOum) {
        return new Response("Item _IjanWRwF feature is disabled.", { status: 503, _ceQBzYPA: { 'Content-Type': '_HipkANEK/plain; _DxfDIAcD=utf-8' } });
    }

    try {
        const _yKWnNoEL = _DGVzWTWr.DB.prepare("SELECT _oPLQvCWJ FROM kv_data WHERE _ZBduXtts = ?").bind(_uvntuCDl);
        const { _YsUzOrSf: dbResults } = await _yKWnNoEL.all();
        const _wUVxfYwA = dbResults._kmlcYbyh > 0 ? dbResults[0]._oPLQvCWJ : null;
        const _ykbkxlwG = _wUVxfYwA ? JSON.parse(_wUVxfYwA) : null;
        
        if (!_ykbkxlwG || !_ykbkxlwG._YsUzOrSf || _ykbkxlwG._YsUzOrSf._kmlcYbyh === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _ceQBzYPA: { 'Content-Type': '_HipkANEK/plain; _DxfDIAcD=utf-8' },
            });
        }
        
        const _NDiAVXHE = new URL(_hOmwWITD._cLqtLPfd)._MOChWbTW;

        const _xhImiqlp = _ykbkxlwG._YsUzOrSf.map((_hvQOXhQC, _bfSIdqfC) => {
            return _zQdDWnAF(_hvQOXhQC, _bfSIdqfC, _ITAcMrLp, _NDiAVXHE);
        }).filter(Boolean);

        if (_xhImiqlp._kmlcYbyh === 0) {
            return new Response("Could not generate any _LDUbjMOK links from the available IPs.", {
                status: 500,
                _ceQBzYPA: { 'Content-Type': '_HipkANEK/plain; _DxfDIAcD=utf-8' },
            });
        }

        return new Response(_xhImiqlp.join('\n'), {
            _ceQBzYPA: { 'Content-Type': '_HipkANEK/plain; _DxfDIAcD=utf-8' },
        });

    } catch (_HSaPiVio) {
        console.error("API /api/endpoints error:", _HSaPiVio);
        return new Response(`Error processing API _hOmwWITD: ${_HSaPiVio._huFkLpSQ}`, { status: 500 });
    }
}

async function _kkgNOWAv(_hOmwWITD, _DGVzWTWr, _WqGMjBmq) {
    const _dgyLVAiG = _hOmwWITD._ceQBzYPA.get('CF-Connecting-IP') || "未知IP";
    const [
        _eIpuFqJc,
        _DQjJQdDB,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _loxjzrmo(_kqMdxeaC, _jkdTGEyJ, []),
        _loxjzrmo(_bblqLyHb, _jkdTGEyJ, []),
        _loxjzrmo(_SaRfqOxl, _VaEcVXsR, []),
        _loxjzrmo(_RTNTuDOt, _yIJTsQNo, { "N/A": "未知" })
    ]);
    _CDhGyxjT = fetchedCountryMap;
    let _EFYooVvM = false;
    let _ouleJWZR;
    try {
        const _CGGymZWK = await _DnknIPhG(_DGVzWTWr);
        _EFYooVvM = !!_CGGymZWK;
        _ouleJWZR = await _WKGcyhlo(_DGVzWTWr);
    } catch (_HSaPiVio) {
        if (_HSaPiVio._huFkLpSQ && _HSaPiVio._huFkLpSQ.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _nweAxeNW = "CREATE TABLE IF NOT EXISTS kv_data (_ZBduXtts TEXT PRIMARY KEY, _oPLQvCWJ TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_CrTQJsmX TEXT PRIMARY KEY, _AFQviEVZ TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _DGVzWTWr.DB.exec(_nweAxeNW);
                console.log("数据表创建成功。");
                _EFYooVvM = false;
                _ouleJWZR = _ytVEHQCx();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._huFkLpSQ}`, {
                    status: 500,
                    _ceQBzYPA: { 'Content-Type': '_HipkANEK/html;_DxfDIAcD=UTF-8' }
                });
            }
        } else {
             let _IqtZiWFh = _sooHfXIo(_HSaPiVio._huFkLpSQ);
             return new Response(_IqtZiWFh, { _ceQBzYPA: { 'Content-Type': '_HipkANEK/html;_DxfDIAcD=UTF-8' } });
        }
    }
    if (_ouleJWZR.telegram.bot_token && _ouleJWZR.telegram.chat_id) {
        const _xoUjZJDZ = _hOmwWITD.cf?._xoUjZJDZ || "未知";
        const _hQgYSoOB = _hOmwWITD.cf?._hQgYSoOB || "";
        let _myIhfarX = _CDhGyxjT[_xoUjZJDZ] || _xoUjZJDZ;
        if (_hQgYSoOB && _hQgYSoOB !== "未知城市" && _hQgYSoOB !== _xoUjZJDZ) _myIhfarX = `${_myIhfarX} ${_CDhGyxjT[_hQgYSoOB] || _hQgYSoOB}`;
        const _FeZyADex = _bsWLquLp();
        const _tYZpbmSS = _hOmwWITD._cLqtLPfd;
        const _FrDHOsOm = `访客: ${_dgyLVAiG}\n位置: ${_myIhfarX.trim()}\n时间: ${_FeZyADex}\n来自:${_tYZpbmSS}`;
        const _MsToFLBf = `https://api.telegram.org/bot${_ouleJWZR.telegram.bot_token}/sendMessage?chat_id=${_ouleJWZR.telegram.chat_id}&_HipkANEK=${encodeURIComponent(_FrDHOsOm)}`;
        _WqGMjBmq.waitUntil(fetch(_MsToFLBf).catch(_HSaPiVio => console.error("Telegram通知失败:", _HSaPiVio)));
    }
    let _LVaBWzvR = _WQKVpWns();
    const _njLvDFnW = {
        _ITAcMrLp: _ouleJWZR,
        status: {
            _EFYooVvM: _EFYooVvM,
        }
    };
    _LVaBWzvR = _LVaBWzvR.replace('__PAGE_DATA_JSON__', JSON.stringify(_njLvDFnW));
    _LVaBWzvR = _LVaBWzvR.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_eIpuFqJc));
    _LVaBWzvR = _LVaBWzvR.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_DQjJQdDB));
    _LVaBWzvR = _LVaBWzvR.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _LVaBWzvR = _LVaBWzvR.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_CDhGyxjT));
    return new Response(_LVaBWzvR, {
        _ceQBzYPA: { 'Content-Type': '_HipkANEK/html;_DxfDIAcD=UTF-8' },
    });
}

function _mOcfYIac(_FtuUxCMi, status = 200, _ceQBzYPA = {}) {
    return new Response(JSON.stringify(_FtuUxCMi), {
        status,
        _ceQBzYPA: { 'Content-Type': 'application/json;_DxfDIAcD=UTF-8', ..._ceQBzYPA }
    });
}

function _bsWLquLp(date = new Date()) {
    return new Intl.DateTimeFormat('zh-CN', {
        timeZone: 'Asia/Shanghai',
        year: 'numeric', month: '2-digit', day: '2-digit',
        hour: '2-digit', minute: '2-digit', second: '2-digit',
        hour12: false
    }).format(date);
}

function _nDqkyJOP(_ROfDcQNw) {
    if (!_ROfDcQNw || typeof _ROfDcQNw !== 'string') return "无效IP";
    if(_uxBsTzls.isIPv4(_ROfDcQNw)){
        const _WsMVYUMo = _ROfDcQNw.split('.');
        if (_WsMVYUMo._kmlcYbyh === 4) return `${_WsMVYUMo[0]}.*.*.${_WsMVYUMo[3]}`;
    }
    if(_uxBsTzls.isIPv6(_ROfDcQNw)){
        const _WsMVYUMo = _ROfDcQNw.split(':');
        if (_WsMVYUMo._kmlcYbyh > 2) return `${_WsMVYUMo[0]}:...:${_WsMVYUMo[_WsMVYUMo._kmlcYbyh - 1]}`;
    }
    return _ROfDcQNw;
}

function _sooHfXIo(_drFcrrig) {
    return `
    <!DOCTYPE html><html lang="zh-CN"><head><meta _DxfDIAcD="UTF-8"><title>需要设置</title>
    <_OqyVifzk>
        _FtuUxCMi { font-family: sans-serif; background: #1a1a1a; _ZBpvxXfo: #e0e0e0; display: flex; justify-_tXaftjHy: center; align-items: center; height: 100vh; margin: 0; }
        ._AiDTCqAS { max-_qlgOlYPl: 800px; padding: 2rem; background: #25282e; border: 1px solid #4044c; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
        h1 { _ZBpvxXfo: #00a0ff; border-bottom: 1px solid #40444c; padding-bottom: 0.5rem; }
        p { line-height: 1.6; }
        code { background: #1a1a1a; padding: 0.2em 0.4em; border-radius: 4px; font-family: monospace; white-space: pre-wrap; word-break: break-all; }
        .error { _ZBpvxXfo: #da3633; background: rgba(218, 54, 51, 0.1); padding: 0.5rem; border-radius: 4px; margin-_WYYOsWES: 1rem; }
    </_OqyVifzk>
    </head><_FtuUxCMi>
    <div class="_AiDTCqAS">
        <h1>部署指南</h1>
        <p>系统检测到 D1 数据库绑定存在问题。请确保您已完成以下步骤:</p>
        <ol>
            <li>进入 Cloudflare Dashbord -> Workers & Pages -> D1。</li>
            <li>创建一个新的D1数据库 (如果还没有)。</li>
            <li>将此数据库绑定到您的Worker:
                <ul>
                    <li>进入Worker设置 -> 变量 -> D1数据库绑定。</li>
                    <li>变量名必须填写 <code>DB</code>。</li>
                    <li>选择您刚创建的数据库。</li>
                    <li>点击“保存并部署”。</li>
                </ul>
            </li>
        </ol>
        <p>完成以上步骤后,请刷新本页面。系统会自动为您创建所需的数据表。</p>
        ${_drFcrrig ? `<div class="error"><strong>当前错误信息:</strong> ${_drFcrrig.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</div>` : ''}
    </div>
    </_FtuUxCMi></html>`;
}

function _WQKVpWns() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _DxfDIAcD="UTF-8"> <meta _dokJrbFl="viewport" _tXaftjHy="_qlgOlYPl=device-_qlgOlYPl, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_IjanWRwF href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;700&family=Roboto+Mono:wght@400;500&display=swap" rel="stylesheet"><script src="https://cdn.jsdelivr.net/npm/qrcode-generator/qrcode.js"></script>
  <_OqyVifzk>
  :root { --primary-_ZBpvxXfo: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_ZBpvxXfo: #8c939d; --light-bg: #1A1C20; --_tXaftjHy-bg: #25282E; --border-_ZBpvxXfo: #40444C; --_HipkANEK-_ZBpvxXfo: #E0E0E0; --_HipkANEK-light: #B0B0B0; --success-_ZBpvxXfo: #30A46C; --danger-_ZBpvxXfo: #DA3633; --warning-_ZBpvxXfo: #DBAB0A; --border-radius-md: 8px; --border-radius-sm: 6px; --font-family-sans: 'Inter', 'Noto Sans SC', sans-serif; --font-family-mono: 'Roboto Mono', monospace; }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { font-size: 16px; }
  _FtuUxCMi { font-family: var(--font-family-sans); background-_ZBpvxXfo: var(--light-bg); _ZBpvxXfo: var(--_HipkANEK-_ZBpvxXfo); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_ZBpvxXfo 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_EElWFmYQ { position: fixed; _WYYOsWES: 0; _bmkLhxRx: 0; _qlgOlYPl: 100%; height: 100%; z-_bfSIdqfC: -1; display: none; }
  ._PYvmSxQl-_AiDTCqAS { max-_qlgOlYPl: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_bfSIdqfC: 1; }
  #_SSDjANtb { position: fixed; _WYYOsWES: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_bfSIdqfC: 10; }
  #marquee-_AiDTCqAS { overflow: hidden; white-space: nowrap; background-_ZBpvxXfo: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _ZBpvxXfo: var(--primary-_ZBpvxXfo); padding: 0.5rem 0; margin-_WYYOsWES: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_HipkANEK { display: inline-block; padding-_bmkLhxRx: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _RtHFfjax { _HipkANEK-align: center; margin-_WYYOsWES: 1rem; margin-bottom: 2rem; }
  _RtHFfjax h1 { white-space: pre-wrap; font-size: 2.25em; _ZBpvxXfo: var(--primary-_ZBpvxXfo); font-weight: 700; _HipkANEK-shadow: 0 0 10px rgba(var(--primary-_ZBpvxXfo-rgb), 0.3); }
  .card { background-_ZBpvxXfo: rgba(37, 40, 46, 0.85); backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); border-radius: var(--border-radius-md); box-shadow: 0 3px 8px rgba(0, 0, 0, 0.25); padding: 1.5rem; margin-bottom: 1.5rem; border: 1px solid var(--border-_ZBpvxXfo); }
  .progress-section #_KqQbNlVT { _qlgOlYPl: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_ZBpvxXfo: var(--border-_ZBpvxXfo); overflow: hidden; }
  .progress-section #_KqQbNlVT::-webkit-progress-_oPLQvCWJ { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _HipkANEK-align: center; margin-_WYYOsWES: 0.75em; font-size: 0.95em; _ZBpvxXfo: var(--_HipkANEK-light); min-height: 1.5em; }
  .section-_RtHFfjax { display: flex; flex-wrap: wrap; justify-_tXaftjHy: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_ZBpvxXfo); gap: 1rem; }
  .section-_RtHFfjax h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _ZBpvxXfo: var(--secondary-_ZBpvxXfo); _HipkANEK-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _qlgOlYPl: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _qlgOlYPl: 100%; border-collapse: collapse; margin-_WYYOsWES: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_ZBpvxXfo); padding: 0.8em; _HipkANEK-align: _bmkLhxRx; vertical-align: middle; white-space: nowrap; }
  th { background-_ZBpvxXfo: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_ZBpvxXfo: #30333a; }
  td._ROfDcQNw-_FrKREStR { font-weight: 500; font-family: var(--font-family-mono); _ZBpvxXfo: var(--primary-_ZBpvxXfo); }
  td.ping-_oPLQvCWJ { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _HipkANEK-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_tXaftjHy: center; font-weight: 500; _HipkANEK-align: center; cursor: pointer; user-_LfTdKkcX: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _ZBpvxXfo: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_bmkLhxRx: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _ZBpvxXfo: var(--primary-_ZBpvxXfo); border: 1px solid var(--primary-_ZBpvxXfo); }
  .btn-outline:hover { background-_ZBpvxXfo: var(--primary-_ZBpvxXfo); _ZBpvxXfo: var(--_tXaftjHy-bg); }
  ._PYvmSxQl-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._PYvmSxQl-download-buttons .btn { _qlgOlYPl: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _WYYOsWES: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _ZBpvxXfo: #fff; font-size: 0.95em; z-_bfSIdqfC: 10002; box-shadow: 0 6px 15px rgba(0, 0, 0, 0.35); opacity: 0; transform: translateY(-20px); transition: all 0.3s ease; pointer-events: none; }
  .tooltip-notification.show { opacity: 1; transform: translateY(0); }
  #_fHdDOGub, #_sHkcVDaL, #_fqXeTSbi, #_ebFZDLbq, #_YGnxjGWr { display: none; position: fixed; z-_bfSIdqfC: 10000; _bmkLhxRx: 0; _WYYOsWES: 0; _qlgOlYPl: 100%; height: 100%; background-_ZBpvxXfo: rgba(0,0,0,0.6); justify-_tXaftjHy: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_tXaftjHy, ._PYvmSxQl-modal-_tXaftjHy { background-_ZBpvxXfo: var(--_tXaftjHy-bg); padding: 2rem; border: 1px solid var(--border-_ZBpvxXfo); border-radius: var(--border-radius-md); _qlgOlYPl: 95%; max-_qlgOlYPl: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_ebFZDLbq .modal-_tXaftjHy { max-_qlgOlYPl: 500px; }
  .modal-_tXaftjHy h3, ._PYvmSxQl-modal-_RtHFfjax h3 { margin-_WYYOsWES: 0; margin-bottom: 1.5rem; _ZBpvxXfo: var(--primary-_ZBpvxXfo); _HipkANEK-align: center; }
  .modal-buttons { display: flex; justify-_tXaftjHy: flex-end; gap: 1rem; margin-_WYYOsWES: 2rem; border-_WYYOsWES: 1px solid var(--border-_ZBpvxXfo); padding-_WYYOsWES: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_ZBpvxXfo), rgba(0,0,0,0)); margin: 2rem 0; }
  ._PYvmSxQl-modal-_RtHFfjax { display: flex; justify-_tXaftjHy: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_ZBpvxXfo); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _ZBpvxXfo: var(--_HipkANEK-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._PYvmSxQl-list-_LDUbjMOK { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_ZBpvxXfo); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._PYvmSxQl-_dokJrbFl { font-size: 1.1em; font-weight: 600; }
  ._PYvmSxQl-links a { display: block; _ZBpvxXfo: var(--primary-_ZBpvxXfo); _HipkANEK-decoration: none; margin-_WYYOsWES: 0.5rem; word-break: break-all; }
  ._PYvmSxQl-links a:hover { _HipkANEK-decoration: underline; }
  ._PYvmSxQl-links span { _ZBpvxXfo: var(--_HipkANEK-light); }
  #visitorPasswordPrompt { _HipkANEK-align: center; }
  #visitorPasswordPrompt h3 { _ZBpvxXfo: var(--primary-_ZBpvxXfo); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _ZBpvxXfo: var(--_HipkANEK-light); margin-bottom: 1.5rem; }
  ._CGGymZWK-input-group { display: flex; gap: 10px; max-_qlgOlYPl: 400px; margin: 0 auto; }
  ._CGGymZWK-input-group input { flex-grow: 1; _HipkANEK-align: center; }
  ._CGGymZWK-input-group .btn { margin-_bmkLhxRx: 0; }
  ._YsUzOrSf-actions-_AiDTCqAS { _HipkANEK-align: center; margin-bottom: 1.5rem; }
  ._YsUzOrSf-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._YsUzOrSf-api-buttons .btn { margin: 0; _qlgOlYPl: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_tXaftjHy 1fr; gap: 1.2rem 1rem; align-items: center; }
  .form-grid-label { justify-self: end; display: flex; align-items: center; gap: 8px; }
  .form-grid-control { display: flex; align-items: center; gap: 10px; }
  .form-grid-control-full { grid-column: 1 / -1; }
  .form-grid-control input, .form-grid-control _LfTdKkcX, .form-grid-control textarea { _qlgOlYPl: 100%; background-_ZBpvxXfo: var(--light-bg); border: 1px solid var(--border-_ZBpvxXfo); border-radius: var(--border-radius-sm); _ZBpvxXfo: var(--_HipkANEK-_ZBpvxXfo); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_ZBpvxXfo 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _LfTdKkcX:focus, .form-grid-control textarea:focus { border-_ZBpvxXfo: var(--primary-_ZBpvxXfo); box-shadow: 0 0 0 2px rgba(var(--primary-_ZBpvxXfo-rgb), 0.2); outline: none; }
  .form-grid-control input[_MnKvCiLn="_ZBpvxXfo"] { min-_qlgOlYPl: auto; padding: 2px; _qlgOlYPl: 2.5em; height: 2.5em; }
  .form-grid-control input[_MnKvCiLn="checkbox"] { _qlgOlYPl: auto; flex-shrink: 0; height: 1.2em; _qlgOlYPl: 1.2em; }
  .form-grid-control ._OUSYyLzW-input { _qlgOlYPl: 80px; _HipkANEK-align: right; }
  .tooltip-_DCiNUbcI { display: inline-flex; _qlgOlYPl: 16px; height: 16px; align-items: center; justify-_tXaftjHy: center; background-_ZBpvxXfo: var(--secondary-_ZBpvxXfo); _ZBpvxXfo: var(--_tXaftjHy-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_LfTdKkcX: none; }
  #tooltip-popup { position: fixed; background-_ZBpvxXfo: #383c4a; _ZBpvxXfo: #fff; padding: 10px 15px; border-radius: 6px; z-_bfSIdqfC: 10001; font-size: 0.85em; max-_qlgOlYPl: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_ZBpvxXfo); pointer-events: none; }
  #custom-fields-_AiDTCqAS .form-grid-control { gap: 5px; } #custom-fields-_AiDTCqAS .form-grid-control input { flex: 1; }
  .parameter-_tvAzWpRE-_zdfYhitO { border: 1px solid var(--border-_ZBpvxXfo); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_tvAzWpRE-_RtHFfjax { display: flex; justify-_tXaftjHy: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_tvAzWpRE-_RtHFfjax input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_WYYOsWES: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._HipkANEK-_ZBpvxXfo-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _qlgOlYPl: 100%; }
  ._HipkANEK-_ZBpvxXfo-grid input[_MnKvCiLn="_ZBpvxXfo"] { grid-column: 1 / 2; }
  ._HipkANEK-_ZBpvxXfo-grid input[_MnKvCiLn="_HipkANEK"], ._HipkANEK-_ZBpvxXfo-grid textarea { grid-column: 2 / 3; }
  #_ebFZDLbq .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_ebFZDLbq .btn-group { display: flex; }
  #_ebFZDLbq .sub-btn { flex-grow: 1; margin: 0; }
  #_ebFZDLbq ._YKITnzJZ-btn { flex-shrink: 0; margin-_bmkLhxRx: -1px; border-_WYYOsWES-_bmkLhxRx-radius: 0; border-bottom-_bmkLhxRx-radius: 0; }
  #_YGnxjGWr .modal-_tXaftjHy { max-_qlgOlYPl: 300px; background: white; padding: 1rem; _HipkANEK-align: center; }
  #qrCodeImg { max-_qlgOlYPl: 100%; }
  @media (max-_qlgOlYPl: 768px) {
    html { font-size: 15px; } ._PYvmSxQl-_AiDTCqAS { padding: 0 0.8rem; } _RtHFfjax { margin-_WYYOsWES: 2.5rem; margin-bottom: 1.5rem; } #_SSDjANtb { _WYYOsWES: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_OqyVifzk>
  <_OqyVifzk _CrTQJsmX="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_tXaftjHy-bg: #FFFFFF; --border-_ZBpvxXfo: #DCDFE6; --_HipkANEK-_ZBpvxXfo: #303133; --_HipkANEK-light: #606266; }
  .theme-light .card { background-_ZBpvxXfo: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_ZBpvxXfo: #F5F7FA; }
  .theme-light tbody tr:hover { background-_ZBpvxXfo: #ECF5FF; }
  .theme-matrix { --primary-_ZBpvxXfo: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_tXaftjHy-bg: #0D0208; --border-_ZBpvxXfo: #00FF41; --_HipkANEK-_ZBpvxXfo: #00FF41; --_HipkANEK-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_ZBpvxXfo: rgba(0, 20, 0, 0.7); _HipkANEK-shadow: 0 0 5px var(--primary-_ZBpvxXfo); backdrop-filter: none; }
  .theme-matrix th { background-_ZBpvxXfo: #000; }
  .theme-matrix tbody tr:hover { background-_ZBpvxXfo: #010; }
  .theme-matrix .btn { _HipkANEK-shadow: none; _ZBpvxXfo: #000; }
  .theme-matrix .btn-outline { background-_ZBpvxXfo: transparent; }
  .theme-modern-glass { --primary-_ZBpvxXfo: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_tXaftjHy-bg: rgba(30, 30, 40, 0.6); --border-_ZBpvxXfo: rgba(255, 255, 255, 0.2); --_HipkANEK-_ZBpvxXfo: #F0F0F0; --_HipkANEK-light: #A0A0B0; --border-radius-md: 12px; }
  _FtuUxCMi.theme-modern-glass { background: linear-gradient(-45deg, #000428, #004e92, #1CB5E0, #23D5AB); background-size: 400% 400%; animation: gradientBG 15s ease infinite; }
  @keyframes gradientBG { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
  .theme-particles-glass { --primary-_ZBpvxXfo: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_tXaftjHy-bg: rgba(30, 30, 40, 0.6); --border-_ZBpvxXfo: rgba(255, 255, 255, 0.2); --_HipkANEK-_ZBpvxXfo: #F0F0F0; --_HipkANEK-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_ZBpvxXfo: var(--_tXaftjHy-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_ZBpvxXfo); }
  .glassy-components .btn { background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid rgba(255, 255, 255, 0.2); border-bottom-_ZBpvxXfo: rgba(0,0,0,0.3); border-right-_ZBpvxXfo: rgba(0,0,0,0.3); box-shadow: 0 4px 15px rgba(0,0,0,0.2), inset 0 1px 1px rgba(255,255,255,0.1); _HipkANEK-shadow: 0 1px 2px rgba(0,0,0,0.2); _ZBpvxXfo: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_ZBpvxXfo: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _HipkANEK-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_ZBpvxXfo); border-_ZBpvxXfo: var(--primary-_ZBpvxXfo); _ZBpvxXfo: #fff; }
  .glassy-components _RtHFfjax h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _HipkANEK; -webkit-_HipkANEK-fill-_ZBpvxXfo: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _ZBpvxXfo: transparent; }
  .theme-aurora-glass { --primary-_ZBpvxXfo: #38bdf8; --light-bg: #0c0a09; --_tXaftjHy-bg: rgba(23, 23, 23, 0.5); --border-_ZBpvxXfo: rgba(255, 255, 255, 0.15); --_HipkANEK-_ZBpvxXfo: #f2f2f2; --_HipkANEK-light: #a3a3a3; }
  _FtuUxCMi.theme-aurora-glass::before { _tXaftjHy: ''; position: fixed; _WYYOsWES: 0; _bmkLhxRx: 0; _qlgOlYPl: 100%; height: 100%; z-_bfSIdqfC: -2; background: radial-gradient(at 27% 37%, hsla(215, 98%, 61%, 0.4) 0px, transparent 50%), radial-gradient(at 97% 21%, hsla(125, 98%, 72%, 0.2) 0px, transparent 50%), radial-gradient(at 52% 99%, hsla(355, 98%, 76%, 0.3) 0px, transparent 50%), radial-gradient(at 10% 29%, hsla(256, 96%, 68%, 0.3) 0px, transparent 50%), radial-gradient(at 97% 96%, hsla(38, 60%, 74%, 0.2) 0px, transparent 50%), radial-gradient(at 33% 50%, hsla(222, 67%, 73%, 0.3) 0px, transparent 50%), radial-gradient(at 79% 53%, hsla(343, 68%, 73%, 0.2) 0px, transparent 50%); animation: auroraBG 20s ease-in-out infinite alternate; }
  @keyframes auroraBG { from { transform: scale(1); } to { transform: scale(1.5); } }
  .theme-cyberpunk-glass { --primary-_ZBpvxXfo: #08fdd8; --light-bg: #010409; --_tXaftjHy-bg: rgba(22, 27, 34, 0.6); --border-_ZBpvxXfo: rgba(139, 148, 158, 0.3); --_HipkANEK-_ZBpvxXfo: #e6edf3; --_HipkANEK-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_ZBpvxXfo), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_ZBpvxXfo-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_ZBpvxXfo-rgb), 0.5); }
  .theme-marble-light { --primary-_ZBpvxXfo: #bfa37c; --light-bg: #f7f5f2; --_tXaftjHy-bg: #ffffff; --border-_ZBpvxXfo: #e0dcd5; --_HipkANEK-_ZBpvxXfo: #3d3a36; --_HipkANEK-light: #6b6661; }
  _FtuUxCMi.theme-marble-light { background-image: _cLqtLPfd('_AFQviEVZ:image/svg+xml,%3Csvg _qlgOlYPl="60" height="60" viewBox="0 0 60 60" xmlns="http://www.w3.org/2000/svg"%3E%3Cg fill="none" fill-rule="evenodd"%3E%3Cg fill="%23dcd6ca" fill-opacity="0.2"%3E%3Cpath d="M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z"/%3E%3C/g%3E%3C/g%3E%3C/svg%3E'); }
  .theme-marble-light .card { background-_ZBpvxXfo: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_OqyVifzk>
  </head><_FtuUxCMi _CrTQJsmX="pageBody">
  <_EElWFmYQ _CrTQJsmX="background-_EElWFmYQ"></_EElWFmYQ>
  <div _CrTQJsmX="_fHdDOGub">
      <div class="modal-_tXaftjHy">
          <h3>首次使用 - 请设置管理员密码</h3>
          <p>这是您第一次访问本页面,为了保护您的设置,请创建一个管理员密码。</p>
          <div class="form-grid"><div class="form-grid-label"><label for="initialPassword">新密码 (至少6位)</label></div><div class="form-grid-control"><input _MnKvCiLn="_CGGymZWK" _CrTQJsmX="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _MnKvCiLn="_CGGymZWK" _CrTQJsmX="confirmPassword"></div></div>
          <div class="modal-buttons"><button _CrTQJsmX="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_PYvmSxQl-_AiDTCqAS">
    <button _CrTQJsmX="_SSDjANtb" class="btn btn-outline"></button>
    <div _CrTQJsmX="marquee-_AiDTCqAS"><div _CrTQJsmX="marquee-_HipkANEK"></div></div>
    <_RtHFfjax><h1 _CrTQJsmX="pageTitle"></h1></_RtHFfjax>
    <div class="card" _CrTQJsmX="visitorPasswordPrompt" _OqyVifzk="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_CGGymZWK-input-group">
            <input _MnKvCiLn="_CGGymZWK" _CrTQJsmX="visitorPasswordEntry" _HNausmHa="访客密码">
            <button _CrTQJsmX="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _CrTQJsmX="_hxKAoDRC" _OqyVifzk="display: block;">
        <div class="card progress-section">
            <div _CrTQJsmX="progressDisplay">
                <progress _CrTQJsmX="_KqQbNlVT" _oPLQvCWJ="0" max="100"></progress>
                <div _CrTQJsmX="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _PYvmSxQl-download-section">
          <div class="section-_RtHFfjax"><h2 _CrTQJsmX="appDownloadTitleEl"></h2></div>
          <div class="_PYvmSxQl-download-buttons">
            <button class="btn" _AFQviEVZ-_nBMNUopj="android">安卓客户端</button>
            <button class="btn" _AFQviEVZ-_nBMNUopj="ios">苹果客户端</button>
            <button class="btn" _AFQviEVZ-_nBMNUopj="windows">Windows客户端</button>
            <button class="btn" _AFQviEVZ-_nBMNUopj="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _YsUzOrSf-section" _CrTQJsmX="_mJTWCiDc" _OqyVifzk="display:none;">
          <div class="section-_RtHFfjax">
            <h2 _CrTQJsmX="liveTitleEl"></h2>
            <div class="generator-info" _CrTQJsmX="liveGeneratorInfo"></div>
          </div>
          <div _CrTQJsmX="_NDcTkFZm" class="_YsUzOrSf-actions-_AiDTCqAS" _OqyVifzk="display: none;">
             <div class="_YsUzOrSf-api-buttons">
                <button _CrTQJsmX="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _CrTQJsmX="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _CrTQJsmX="resultsTable">
              <thead><tr><th _CrTQJsmX="tableHeader1El"></th><th _CrTQJsmX="tableHeader2El"></th><th _CrTQJsmX="tableHeader3El"></th><th _CrTQJsmX="tableHeader4El"></th><th _CrTQJsmX="tableHeader5El"></th><th _CrTQJsmX="tableHeader6El"></th><th _CrTQJsmX="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _CrTQJsmX="_LqrbrrLM" _OqyVifzk="display:none;">
          <div class="section-_RtHFfjax"><h2 _CrTQJsmX="cachedTitleEl"></h2><div class="generator-info" _CrTQJsmX="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _CrTQJsmX="cachedResultsTable">
              <thead><tr><th _CrTQJsmX="cachedTableHeader1El"></th><th _CrTQJsmX="cachedTableHeader2El"></th><th _CrTQJsmX="cachedTableHeader3El"></th><th _CrTQJsmX="cachedTableHeader4El"></th><th _CrTQJsmX="cachedTableHeader5El"></th><th _CrTQJsmX="cachedTableHeader6El"></th><th _CrTQJsmX="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _CrTQJsmX="notificationTooltip" class="tooltip-notification"></div>
  <div _CrTQJsmX="_sHkcVDaL">
    <div class="modal-_tXaftjHy">
      <h3>修改参数</h3>
      <div _OqyVifzk="display: flex; border-bottom: 1px solid var(--border-_ZBpvxXfo); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_poDqjErm(event, 'general-_BVZkweZm')">通用设置</button>
          <button class="tab-button" onclick="_poDqjErm(event, '_IjanWRwF-_BVZkweZm')">链接设置</button>
          <button class="tab-button" onclick="_poDqjErm(event, 'fine-grained-_BVZkweZm')">IP源设置</button>
          <button class="tab-button" onclick="_poDqjErm(event, 'advanced-_BVZkweZm')">高级设置</button>
      </div>
      <div _CrTQJsmX="general-_BVZkweZm" class="tab-_tXaftjHy" _OqyVifzk="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_LfTdKkcX _CrTQJsmX="themeSelect">
                    <_LlwmSjeZ _oPLQvCWJ="theme-aurora-glass">极光-玻璃质感</_LlwmSjeZ>
                    <_LlwmSjeZ _oPLQvCWJ="theme-particles-glass">粒子-玻璃质感</_LlwmSjeZ>
                    <_LlwmSjeZ _oPLQvCWJ="theme-modern-glass">现代-玻璃质感</_LlwmSjeZ>
                    <_LlwmSjeZ _oPLQvCWJ="theme-cyberpunk-glass">赛博朋克-玻璃质感</_LlwmSjeZ>
                    <_LlwmSjeZ _oPLQvCWJ="theme-dark-particles">暗色-粒子背景</_LlwmSjeZ>
                    <_LlwmSjeZ _oPLQvCWJ="theme-dark-bing">暗色-必应壁纸</_LlwmSjeZ>
                    <_LlwmSjeZ _oPLQvCWJ="theme-light">亮色-简约</_LlwmSjeZ>
                    <_LlwmSjeZ _oPLQvCWJ="theme-light-bing">亮色-必应壁纸</_LlwmSjeZ>
                    <_LlwmSjeZ _oPLQvCWJ="theme-marble-light">简约大理石-亮色</_LlwmSjeZ>
                    <_LlwmSjeZ _oPLQvCWJ="theme-matrix">矩阵-代码雨</_LlwmSjeZ>
                </_LfTdKkcX>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _MnKvCiLn="_ZBpvxXfo" _CrTQJsmX="primaryColorInput">
                <span _OqyVifzk="_qlgOlYPl: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _MnKvCiLn="_ZBpvxXfo" _CrTQJsmX="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _OqyVifzk="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _OqyVifzk="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_HipkANEK-_ZBpvxXfo-grid"><input _MnKvCiLn="_ZBpvxXfo" _CrTQJsmX="colorInput_title"><textarea _CrTQJsmX="textInput_title" _eQgPcvyW="1" _HNausmHa="页面主标题"></textarea></div>
                <div class="_HipkANEK-_ZBpvxXfo-grid"><input _MnKvCiLn="_ZBpvxXfo" _CrTQJsmX="colorInput_loginButton"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="textInput_loginButton" _HNausmHa="登录按钮文本"></div>
                <div class="_HipkANEK-_ZBpvxXfo-grid"><input _MnKvCiLn="_ZBpvxXfo" _CrTQJsmX="colorInput_appDownloadTitle"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="textInput_appDownloadTitle" _HNausmHa="APP下载标题"></div>
                <div class="_HipkANEK-_ZBpvxXfo-grid"><input _MnKvCiLn="_ZBpvxXfo" _CrTQJsmX="colorInput_liveTitle"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="textInput_liveTitle" _HNausmHa="本次结果标题"></div>
                <div class="_HipkANEK-_ZBpvxXfo-grid"><input _MnKvCiLn="_ZBpvxXfo" _CrTQJsmX="colorInput_cachedTitle"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="textInput_cachedTitle" _HNausmHa="上次结果标题"></div>
                <div class="_HipkANEK-_ZBpvxXfo-grid"><input _MnKvCiLn="_ZBpvxXfo" _CrTQJsmX="colorInput_tableHeader"><input _MnKvCiLn="_HipkANEK" _oPLQvCWJ="表格头部文本颜色" readonly _OqyVifzk="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _OqyVifzk="align-self: start;"><label>公告栏设置</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _OqyVifzk="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _CrTQJsmX="announcementText" _HNausmHa="在此输入公告内容" _eQgPcvyW="3"></textarea>
                 <div _OqyVifzk="display: flex; justify-_tXaftjHy: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _OqyVifzk="display: flex; align-items: center; gap: 5px;"><input _MnKvCiLn="checkbox" _CrTQJsmX="enableMarquee"> 顶部走马灯</label>
                    <label _OqyVifzk="display: flex; align-items: center; gap: 5px;"><input _MnKvCiLn="checkbox" _CrTQJsmX="enablePopup"> 右上角弹窗</label>
                    <div _CrTQJsmX="popupDurationContainer" _OqyVifzk="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _MnKvCiLn="number" _CrTQJsmX="popupDuration" _OqyVifzk="_qlgOlYPl: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _CrTQJsmX="_IjanWRwF-_BVZkweZm" class="tab-_tXaftjHy">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="converterServiceUrlInput" _HNausmHa="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _MnKvCiLn="number" _CrTQJsmX="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _OqyVifzk="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _CrTQJsmX="subscriptionIdCharset" _eQgPcvyW="3"></textarea></div>
          <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
          <div class="form-grid-label"><label for="enableItemLinkCheckbox">启用"复制节点链接"按钮</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _OqyVifzk="justify-_tXaftjHy: flex-start;"><input _MnKvCiLn="checkbox" _CrTQJsmX="enableItemLinkCheckbox"></div>
        </div>
        <div _CrTQJsmX="itemLinkConfigGroup" _OqyVifzk="display:none; margin-_WYYOsWES: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _OqyVifzk="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="定义分享链接格式。可用占位符: {_ROfDcQNw}, {_maIJuKHX}, {_dokJrbFl}, {rank}, {_BsDjLqsH}, {_lxKbOpGq}, {_OchiPaNj}, {_stQoSWYb}, {_qPHFSpGH}。">?</span></div>
              <div class="form-grid-control"><textarea _CrTQJsmX="itemLinkTemplateInput" _eQgPcvyW="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_LfTdKkcX _CrTQJsmX="parameterSelectionMode"></_LfTdKkcX></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _CrTQJsmX="parameter-sets-_AiDTCqAS"></div><button _MnKvCiLn="button" _CrTQJsmX="add-parameter-_tvAzWpRE-btn" class="btn btn-outline" _OqyVifzk="margin-_WYYOsWES: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _OqyVifzk="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _CrTQJsmX="custom-fields-_AiDTCqAS" _OqyVifzk="_qlgOlYPl: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _OqyVifzk="justify-_tXaftjHy: flex-start;"><button _MnKvCiLn="button" _CrTQJsmX="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _CrTQJsmX="fine-grained-_BVZkweZm" class="tab-_tXaftjHy">
          <div class="form-grid-label" _OqyVifzk="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _OqyVifzk="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_tXaftjHy: flex-start;">
              <label><input _MnKvCiLn="checkbox" _CrTQJsmX="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _MnKvCiLn="checkbox" _CrTQJsmX="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _CrTQJsmX="fine-grained-sources-_AiDTCqAS"></div><button _MnKvCiLn="button" _CrTQJsmX="add-fine-grained-_urHoKsFE-btn" class="btn btn-outline" _OqyVifzk="margin-_WYYOsWES: 10px;">添加地区</button></div>
      </div>
      <div _CrTQJsmX="advanced-_BVZkweZm" class="tab-_tXaftjHy">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _MnKvCiLn="checkbox" _CrTQJsmX="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _CrTQJsmX="resolvedDomainsGroup" _OqyVifzk="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _CrTQJsmX="resolvedDomainsInput" _HNausmHa="留空则使用内置默认域名" _eQgPcvyW="3"></textarea></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableCustomNodesCheckbox">启用自定义节点</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _MnKvCiLn="checkbox" _CrTQJsmX="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _CrTQJsmX="customNodesGroup" _OqyVifzk="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _CrTQJsmX="customNodesInput" _HNausmHa="一行一个地址,支持域名、IPv4、IPv6。" _eQgPcvyW="3"></textarea></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="sampleSizeInput">测试IP总数</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _MnKvCiLn="number" _CrTQJsmX="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _MnKvCiLn="number" _CrTQJsmX="topNInput"></div>
            <div class="form-grid-label" _OqyVifzk="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _OqyVifzk="display: none;"><input _MnKvCiLn="number" _CrTQJsmX="latencyRangeMinInput" _HNausmHa="最小"><span>-</span><input _MnKvCiLn="number" _CrTQJsmX="latencyRangeMaxInput" _HNausmHa="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _OqyVifzk="justify-_tXaftjHy: flex-start;"><input _MnKvCiLn="checkbox" _CrTQJsmX="enableIspFilterCheckbox"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="geoLocationRetriesInput">归属地查询失败复查</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _MnKvCiLn="number" _CrTQJsmX="geoLocationRetriesInput" _OqyVifzk="_qlgOlYPl: 80px;"> <span>次</span>
                <div _OqyVifzk="display: flex; align-items: center; gap: 5px; margin-_bmkLhxRx: 20px;">
                    <input _MnKvCiLn="checkbox" _CrTQJsmX="filterUnknownGeoCheckbox">
                    <label for="filterUnknownGeoCheckbox">过滤未知归属地IP</label>
                </div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="universalFallbackAddressInput">备用地址 (上游)</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_OchiPaNj:_maIJuKHX' 或 '_OchiPaNj'。">?</span></div>
            <div class="form-grid-control"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="universalFallbackAddressInput"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableWebsocketStreamerCheckbox">启用 Websocket 转发</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _OqyVifzk="justify-_tXaftjHy: flex-start;"><input _MnKvCiLn="checkbox" _CrTQJsmX="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _CrTQJsmX="websocketStreamerGroup" _OqyVifzk="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="websocketStreamerUrlInput"></div>
                </div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableStreamerCheckbox">启用内置内容加速</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _OqyVifzk="justify-_tXaftjHy: flex-start;"><input _MnKvCiLn="checkbox" _CrTQJsmX="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="启用 /_ROfDcQNw 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _OqyVifzk="justify-_tXaftjHy: flex-start;"><input _MnKvCiLn="checkbox" _CrTQJsmX="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _CrTQJsmX="apiConfigGroup" _OqyVifzk="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="apiMessageInput"></div></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableCustomSubPathCheckbox">启用自定义订阅路径</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _OqyVifzk="justify-_tXaftjHy: flex-start;"><input _MnKvCiLn="checkbox" _CrTQJsmX="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _CrTQJsmX="customSubPathGroup" _OqyVifzk="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="customSubPathInput" _HNausmHa="例如: latest"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label"><label for="enableVisitorPasswordCheckbox">启用访客密码</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _OqyVifzk="justify-_tXaftjHy: flex-start;"><input _MnKvCiLn="checkbox" _CrTQJsmX="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _CrTQJsmX="visitorPasswordGroup" _OqyVifzk="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _OqyVifzk="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_DCiNUbcI" _AFQviEVZ-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _OqyVifzk="flex-direction: column; align-items: stretch; gap: 8px;"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="botTokenInput" _HNausmHa="Telegram Bot Token"><input _MnKvCiLn="_HipkANEK" _CrTQJsmX="chatIdInput" _HNausmHa="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _OqyVifzk="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _OqyVifzk="flex-direction: column; align-items: stretch; gap: 8px;"><input _MnKvCiLn="_CGGymZWK" _CrTQJsmX="oldPasswordInput" _HNausmHa="旧密码"><input _MnKvCiLn="_CGGymZWK" _CrTQJsmX="newPasswordInput" _HNausmHa="新密码 (至少6位)"><button _CrTQJsmX="changePasswordBtn" class="btn" _OqyVifzk="align-self: flex-start; margin-_bmkLhxRx: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _CrTQJsmX="closeModalBtn" class="btn btn-outline">关闭</button><button _CrTQJsmX="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _CrTQJsmX="_fqXeTSbi">
      <div class="_PYvmSxQl-modal-_tXaftjHy">
          <div class="_PYvmSxQl-modal-_RtHFfjax"><h3 _CrTQJsmX="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_PYvmSxQl-modal-_FtuUxCMi" _CrTQJsmX="appModalBody"></div>
      </div>
  </div>
  <div _CrTQJsmX="_ebFZDLbq">
      <div class="modal-_tXaftjHy">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _AFQviEVZ-sub-_MnKvCiLn="coreEngine">Xray</button><button class="btn _YKITnzJZ-btn" _AFQviEVZ-sub-_MnKvCiLn="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _AFQviEVZ-sub-_MnKvCiLn="coreProfile">Sing-Box</button><button class="btn _YKITnzJZ-btn" _AFQviEVZ-sub-_MnKvCiLn="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _AFQviEVZ-sub-_MnKvCiLn="configProfile">Clash</button><button class="btn _YKITnzJZ-btn" _AFQviEVZ-sub-_MnKvCiLn="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _AFQviEVZ-sub-_MnKvCiLn="policyProfile">Surge</button><button class="btn _YKITnzJZ-btn" _AFQviEVZ-sub-_MnKvCiLn="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _OqyVifzk="justify-_tXaftjHy: center;"><button class="btn btn-outline" _CrTQJsmX="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _CrTQJsmX="_YGnxjGWr">
      <div class="modal-_tXaftjHy">
          <img _CrTQJsmX="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _uxBsTzls = {
        isValid: (_ROfDcQNw) => _uxBsTzls.isIPv4(_ROfDcQNw) || _uxBsTzls.isIPv6(_ROfDcQNw),
        isIPv4: (_ROfDcQNw) => {
            if (typeof _ROfDcQNw !== 'string') return false;
            const _WsMVYUMo = _ROfDcQNw.split('.');
            if (_WsMVYUMo._kmlcYbyh !== 4) return false;
            return _WsMVYUMo.every(_WJoFcUBS => {
                const _CGHLkypO = parseInt(_WJoFcUBS, 10);
                return !isNaN(_CGHLkypO) && _CGHLkypO >= 0 && _CGHLkypO <= 255 && String(_CGHLkypO) === _WJoFcUBS;
            });
        },
        isIPv6: (_ROfDcQNw) => {
            if (typeof _ROfDcQNw !== 'string') return false;
            return /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/_sNkxdnSw.test(_ROfDcQNw);
        },
        toLong4: (_ROfDcQNw) => _ROfDcQNw.split('.').reduce((acc, octet, _sNkxdnSw) => acc + (parseInt(octet) << (8*(3-_sNkxdnSw))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_ROfDcQNw) => {
            try {
                const _ZAiYUPfa = _ROfDcQNw.split('/')[0];
                const _WsMVYUMo = _ZAiYUPfa.split('::');
                if (_WsMVYUMo._kmlcYbyh > 2) return 0n;
                let _mrzJjOna = [];
                if (_WsMVYUMo[0]) {
                    _mrzJjOna = _WsMVYUMo[0].split(':');
                }
                let _qzGxsqqo = [];
                if (_WsMVYUMo._kmlcYbyh > 1 && _WsMVYUMo[1]) {
                    _qzGxsqqo = _WsMVYUMo[1].split(':');
                }
                if (_mrzJjOna._kmlcYbyh + _qzGxsqqo._kmlcYbyh > 8) return 0n;
                const _DBViEkdy = 8 - (_mrzJjOna._kmlcYbyh + _qzGxsqqo._kmlcYbyh);
                const _pSpDHEqm = [
                    ..._mrzJjOna,
                    ...Array(_DBViEkdy).fill('0'),
                    ..._qzGxsqqo
                ].map(_WJoFcUBS => _WJoFcUBS || '0');
                while(_pSpDHEqm._kmlcYbyh < 8) {
                    _pSpDHEqm.push('0');
                }
                let _aEErdjVw = 0n;
                for (const _WJoFcUBS of _pSpDHEqm) {
                    if (_WJoFcUBS._kmlcYbyh > 4) return 0n;
                    const _oPLQvCWJ = BigInt('0x' + _WJoFcUBS);
                    _aEErdjVw = (_aEErdjVw << 16n) | _oPLQvCWJ;
                }
                return _aEErdjVw;
            } catch(_HSaPiVio) {
                return 0n;
            }
        },
        fromBigInt6: (_aEErdjVw) => {
            if (typeof _aEErdjVw !== '_aEErdjVw' || _aEErdjVw < 0n) return null;
            const _WsMVYUMo = [];
            for (let _sNkxdnSw = 0; _sNkxdnSw < 8; _sNkxdnSw++) {
                _WsMVYUMo.unshift((_aEErdjVw & 0xFFFFn).toString(16));
                _aEErdjVw >>= 16n;
            }
            let _EPrVOJHM = { start: -1, _QjLCvBIs: 0 };
            let _FRexfNll = { start: -1, _QjLCvBIs: 0 };
            for (let _sNkxdnSw = 0; _sNkxdnSw < 8; _sNkxdnSw++) {
                if (_WsMVYUMo[_sNkxdnSw] === '0') {
                    if (_FRexfNll.start === -1) _FRexfNll.start = _sNkxdnSw;
                    _FRexfNll._QjLCvBIs++;
                } else {
                    if (_FRexfNll._QjLCvBIs > _EPrVOJHM._QjLCvBIs) _EPrVOJHM = { ..._FRexfNll };
                    _FRexfNll = { start: -1, _QjLCvBIs: 0 };
                }
            }
            if (_FRexfNll._QjLCvBIs > _EPrVOJHM._QjLCvBIs) _EPrVOJHM = { ..._FRexfNll };
            if (_EPrVOJHM._QjLCvBIs > 1) {
                _WsMVYUMo.splice(_EPrVOJHM.start, _EPrVOJHM._QjLCvBIs, '');
                if (_EPrVOJHM.start === 0) _WsMVYUMo.unshift('');
                if (_EPrVOJHM.start + _EPrVOJHM._QjLCvBIs === 8) _WsMVYUMo.push('');
            }
            return _WsMVYUMo.join(':');
        },
        cidrToRange: (cidr, _YqneDDnW = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _bRMWGRfA = parseInt(bitsStr, 10);
                const _waxBKSXV = new Set();
                if (_uxBsTzls.isIPv4(range)) {
                    if (isNaN(_bRMWGRfA) || _bRMWGRfA < 8 || _bRMWGRfA > 32) return [];
                    if (_bRMWGRfA === 32) return [range];
                    const _wRvqjbLC = _uxBsTzls.toLong4(range);
                    const _xAmmZSfo = (0xFFFFFFFF << (32 - _bRMWGRfA)) >>> 0;
                    const _DqdXwQMw = _wRvqjbLC & _xAmmZSfo;
                    const _fwWRWrUL = 1 << (32 - _bRMWGRfA);
                    if (_fwWRWrUL <= 2) return [];
                    const _VxfqUvsp = Math.min(_YqneDDnW, _fwWRWrUL - 2);
                    let _IrEuvFht = 0;
                    while (_waxBKSXV.size < _VxfqUvsp && _IrEuvFht < _VxfqUvsp * 5) {
                        const _YOzLQkvy = Math.floor(Math.random() * (_fwWRWrUL - 2)) + 1;
                        _waxBKSXV.add(_uxBsTzls.fromLong4((_DqdXwQMw + _YOzLQkvy) >>> 0));
                        _IrEuvFht++;
                    }
                    return Array.from(_waxBKSXV);
                } else if (_uxBsTzls.isIPv6(range)) {
                    if (isNaN(_bRMWGRfA) || _bRMWGRfA < 16 || _bRMWGRfA > 128) return [];
                    if (_bRMWGRfA === 128) return [range];
                    const _UnQnMfLZ = _uxBsTzls.toBigInt6(range);
                    const _xAmmZSfo = (2n ** BigInt(128 - _bRMWGRfA) - 1n);
                    const _DqdXwQMw = _UnQnMfLZ & ~_xAmmZSfo;
                    const _nEDptMcT = 2n ** BigInt(128 - _bRMWGRfA);
                    if (_nEDptMcT <= 2n) return [];
                    let _IrEuvFht = 0;
                    while (_waxBKSXV.size < _YqneDDnW && _IrEuvFht < _YqneDDnW * 5) {
                        const _LiOoEEqV = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_LiOoEEqV);
                        let _dBhcDSJU = 0n;
                        for (const _MkOvJMvO of _LiOoEEqV) {
                            _dBhcDSJU = (_dBhcDSJU << 8n) | BigInt(_MkOvJMvO);
                        }
                        const _YOzLQkvy = _dBhcDSJU % (_nEDptMcT - 2n) + 1n;
                        _waxBKSXV.add(_uxBsTzls.fromBigInt6(_DqdXwQMw + _YOzLQkvy));
                        _IrEuvFht++;
                    }
                    return Array.from(_waxBKSXV);
                }
                return [];
            } catch(_HSaPiVio) {
                console.error(`CIDR to range failed for ${cidr}:`, _HSaPiVio);
                return [];
            }
        }
    };
    function _dsfQSrYh(_REZXYOwq, _jpeJmAih) {
        const _ZXaYAHfj = {};
        const _LchlAokr = Object._LchlAokr(_jpeJmAih);
        const _WsMVYUMo = _LchlAokr.map(_ZBduXtts => {
            const _ZckwSDQE = _REZXYOwq * (_jpeJmAih[_ZBduXtts] / 100);
            return { _ZBduXtts, _YqneDDnW: Math.floor(_ZckwSDQE), remainder: _ZckwSDQE - Math.floor(_ZckwSDQE) };
        });
        let _FxAcIUgO = _WsMVYUMo.reduce((acc, _WJoFcUBS) => acc + _WJoFcUBS._YqneDDnW, 0);
        _WsMVYUMo.sort((a, b) => b.remainder - a.remainder);
        let _yIpfFcxH = _REZXYOwq - _FxAcIUgO;
        for (let _sNkxdnSw = 0; _sNkxdnSw < _yIpfFcxH; _sNkxdnSw++) {
            _WsMVYUMo[_sNkxdnSw % _WsMVYUMo._kmlcYbyh]._YqneDDnW++;
        }
        for (const _WJoFcUBS of _WsMVYUMo) {
            _ZXaYAHfj[_WJoFcUBS._ZBduXtts] = _WJoFcUBS._YqneDDnW;
        }
        return _ZXaYAHfj;
    }
    const _njLvDFnW = __PAGE_DATA_JSON__;
    const _ouleJWZR = _njLvDFnW._ITAcMrLp;
    const _gEScEokf = _njLvDFnW.status;
    const _eIpuFqJc = __ALL_CF_CIDR_LIST_JSON__;
    const _DQjJQdDB = __BALANCED_CF_CIDR_LIST_JSON__;
    const _hiiphApA = __DEFAULT_DOMAINS_LIST_JSON__;
    const _CDhGyxjT = __COUNTRY_MAP_JSON__;
    const _ETbDVqze = _CDhGyxjT;
    const _DOyktXTm = 2500;
    const _IZBPndMU = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _hxKAoDRC = document.getElementById('_hxKAoDRC');
    const _KqQbNlVT = document.getElementById('_KqQbNlVT');
    const _oqtEPzSL = document.getElementById('status');
    const _mJTWCiDc = document.getElementById('_mJTWCiDc');
    const _HyHpKZgr = document.getElementById('resultsTable').querySelector('tbody');
    const _LqrbrrLM = document.getElementById('_LqrbrrLM');
    const _NzhtiIRU = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _xiSimPcI = document.getElementById('notificationTooltip');
    const _SSDjANtb = document.getElementById('_SSDjANtb');
    const _sHkcVDaL = document.getElementById('_sHkcVDaL');
    const _fqXeTSbi = document.getElementById('_fqXeTSbi');
    const _ebFZDLbq = document.getElementById('_ebFZDLbq');
    const _YGnxjGWr = document.getElementById('_YGnxjGWr');
    const _fHdDOGub = document.getElementById('_fHdDOGub');
    const _NDcTkFZm = document.getElementById('_NDcTkFZm');
    let _IiATzwLY = null;
    let _HNxTtJMd = null;
    let _efCJQWlU = [];
    let _elpmwOwk = false;
    let _bzHQfMOp = null;
    function _OSyDRsIN(_mQAhiNwG, _ZpDeqwlx) {
        const _GqwtDBQi=parseInt(_mQAhiNwG.slice(1),16),t=_ZpDeqwlx<0?0:255,p=_ZpDeqwlx<0?_ZpDeqwlx*-1:_ZpDeqwlx,R=_GqwtDBQi>>16,G=_GqwtDBQi>>8&0x00FF,B=_GqwtDBQi&0x0000FF;
        const _prcSBWZa = Math.round((t-R)*p)+R;
        const _PfgovxZE = Math.round((t-G)*p)+G;
        const _tqNQmkCm = Math.round((t-B)*p)+B;
        return `rgb(${_prcSBWZa.toString()}, ${_PfgovxZE.toString()}, ${_tqNQmkCm.toString()})`;
    }
    function _zyaRPrnk(_BVZkweZm) {
        const _yZvCFwcn = _MEyodauu(_BVZkweZm.primaryColor);
        if(_yZvCFwcn) {
            document.documentElement._OqyVifzk.setProperty('--primary-_ZBpvxXfo-rgb', `${_yZvCFwcn.r},${_yZvCFwcn.g},${_yZvCFwcn.b}`);
        }
        document.documentElement._OqyVifzk.setProperty('--primary-_ZBpvxXfo', _BVZkweZm.primaryColor);
        document.documentElement._OqyVifzk.setProperty('--primary-hover', _OSyDRsIN(_BVZkweZm.primaryColor, -0.1));
        document.documentElement._OqyVifzk.setProperty('--primary-gradient-start', _OSyDRsIN(_BVZkweZm.primaryColor, 0.1));
        document.documentElement._OqyVifzk.setProperty('--primary-gradient-end', _OSyDRsIN(_BVZkweZm.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _BVZkweZm.texts.title;
        document.title = _BVZkweZm.texts.title;
        _SSDjANtb.innerText = _IiATzwLY ? _BVZkweZm.texts.loginButtonSuccess : _BVZkweZm.texts.loginButton;
        _SSDjANtb._OqyVifzk._ZBpvxXfo = _BVZkweZm.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _BVZkweZm.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _BVZkweZm.texts.liveTitle;
        document.getElementById('liveTitleEl')._OqyVifzk._ZBpvxXfo = _BVZkweZm.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _BVZkweZm.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._OqyVifzk._ZBpvxXfo = _BVZkweZm.colors.cachedTitle;
        const _ceQBzYPA = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _ceQBzYPA.forEach((_CrTQJsmX, _bfSIdqfC) => {
            const _xfpaPhDz = document.getElementById(_CrTQJsmX);
            if (_xfpaPhDz) _xfpaPhDz.innerText = _BVZkweZm.texts[`tableHeader${_bfSIdqfC + 1}`] || '';
        });
        const _fbojzrPf = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _fbojzrPf.forEach((_CrTQJsmX, _bfSIdqfC) => {
             const _xfpaPhDz = document.getElementById(_CrTQJsmX);
             if (_xfpaPhDz) _xfpaPhDz.innerText = _ouleJWZR.texts[`tableHeader${_bfSIdqfC + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._OqyVifzk._ZBpvxXfo = _BVZkweZm.colors.tableHeader);
        document._FtuUxCMi.className = '';
        document._FtuUxCMi.classList.add(_BVZkweZm.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_BVZkweZm.theme)) {
            document._FtuUxCMi.classList.add('glassy-components');
        }
        document._FtuUxCMi._OqyVifzk.backgroundImage = '';
        _rZWJcUpj();
        if (_BVZkweZm.theme.includes('particles') || _BVZkweZm.theme.includes('glass')) {
            _NmXbDrmL(_BVZkweZm.particleColor);
        } else if (_BVZkweZm.theme.includes('bing')) {
            document._FtuUxCMi._OqyVifzk.backgroundImage = '_cLqtLPfd(/bing-wallpaper)';
        }
    }
    function _jyiQIIvS() {
        _IiATzwLY = null;
        if(_HNxTtJMd) clearTimeout(_HNxTtJMd);
        _zyaRPrnk(_ouleJWZR);
        _REQbmyKE("登录已超时,请重新登录。", "warning");
    }
    async function _xipUJQTa() {
        if (_IiATzwLY) {
            _wzXEcODE();
            return;
        }
        const _pcIEoAdB = prompt('请输入管理员密码:');
        if (!_pcIEoAdB) return;
        try {
            const _yuRRNMnj = await fetch('/api/verify-_CGGymZWK', {
                method: 'POST',
                _ceQBzYPA: { 'Content-Type': 'application/json' },
                _FtuUxCMi: JSON.stringify({ _CGGymZWK: _pcIEoAdB })
            });
            const _hvQOXhQC = await _yuRRNMnj.json();
            if (_hvQOXhQC.success) {
                _IiATzwLY = _pcIEoAdB;
                _REQbmyKE("登录成功!有效期5分钟。", "success");
                if (_HNxTtJMd) clearTimeout(_HNxTtJMd);
                _HNxTtJMd = setTimeout(_jyiQIIvS, 5 * 60 * 1000);
                _zyaRPrnk(_ouleJWZR);
                _wzXEcODE();
            } else {
                throw new Error(_hvQOXhQC._huFkLpSQ || '密码验证失败');
            }
        } catch (_HSaPiVio) {
            _REQbmyKE(`登录失败: ${_HSaPiVio._huFkLpSQ}`, "error");
        }
    }
    function _zfHwdbXk() {
        if (!_gEScEokf._EFYooVvM) {
            _fHdDOGub._OqyVifzk.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _CGGymZWK = document.getElementById('initialPassword')._oPLQvCWJ;
                const _qNdepgmJ = document.getElementById('confirmPassword')._oPLQvCWJ;
                if (_CGGymZWK !== _qNdepgmJ) {
                    _REQbmyKE("两次输入的密码不一致!", "error");
                    return;
                }
                if (_CGGymZWK._kmlcYbyh < 6) {
                    _REQbmyKE("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _yuRRNMnj = await fetch('/api/_tvAzWpRE-_CGGymZWK', {
                        method: 'POST',
                        _ceQBzYPA: { 'Content-Type': 'application/json' },
                        _FtuUxCMi: JSON.stringify({ _CGGymZWK })
                    });
                    const _hvQOXhQC = await _yuRRNMnj.json();
                    if (_hvQOXhQC.success) {
                        _REQbmyKE(_hvQOXhQC._huFkLpSQ, "success");
                        setTimeout(() => _BsDjLqsH.reload(), 1500);
                    } else {
                        throw new Error(_hvQOXhQC._huFkLpSQ);
                    }
                } catch(_HSaPiVio) {
                    _REQbmyKE(`设置密码失败: ${_HSaPiVio._huFkLpSQ}`, "error");
                }
            });
            return;
        }
        _SSDjANtb.addEventListener('click', _xipUJQTa);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _sHkcVDaL._OqyVifzk.display = 'none'; });
        _sHkcVDaL.addEventListener('click', (_HSaPiVio) => { if (_HSaPiVio.target === _sHkcVDaL) _sHkcVDaL._OqyVifzk.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_AiDTCqAS .fine-grained-_kRWzFOum-cb').forEach(cb => cb.checked = true);
                document.getElementById('disableAllSourcesCheckbox').checked = false;
                this.checked = false; 
            }
        });
        document.getElementById('disableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_AiDTCqAS .fine-grained-_kRWzFOum-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_IiATzwLY) {
                _REQbmyKE("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _DBrGgsHj = [];
            document.querySelectorAll('#custom-fields-_AiDTCqAS .custom-field-_zdfYhitO').forEach(_zdfYhitO => {
                const _dokJrbFl = _zdfYhitO.querySelector('.custom-field-_dokJrbFl')._oPLQvCWJ.trim();
                const _oPLQvCWJ = _zdfYhitO.querySelector('.custom-field-_oPLQvCWJ')._oPLQvCWJ.trim();
                if (_dokJrbFl) _DBrGgsHj.push({ _dokJrbFl, _oPLQvCWJ });
            });
            const _tLqWIHBf = [];
            document.querySelectorAll('#parameter-sets-_AiDTCqAS .parameter-_tvAzWpRE-_zdfYhitO').forEach(_zdfYhitO => {
                const _dokJrbFl = _zdfYhitO.querySelector('.param-_tvAzWpRE-_dokJrbFl')._oPLQvCWJ.trim();
                const _OchiPaNj = _zdfYhitO.querySelector('.param-_tvAzWpRE-_OchiPaNj')._oPLQvCWJ.trim();
                const _stQoSWYb = _zdfYhitO.querySelector('.param-_tvAzWpRE-_stQoSWYb')._oPLQvCWJ.trim();
                const _qPHFSpGH = _zdfYhitO.querySelector('.param-_tvAzWpRE-_qPHFSpGH')._oPLQvCWJ.trim();
                if(_dokJrbFl) _tLqWIHBf.push({ _dokJrbFl, _OchiPaNj, '_stQoSWYb': _stQoSWYb, _qPHFSpGH });
            });
            const _EqHechvY = [];
            document.querySelectorAll('#fine-grained-sources-_AiDTCqAS .fine-grained-_urHoKsFE-_zdfYhitO').forEach(_zdfYhitO => {
                const _BsDjLqsH = _zdfYhitO.querySelector('.fine-grained-_BsDjLqsH')._oPLQvCWJ.trim();
                const _waxBKSXV = _zdfYhitO.querySelector('.fine-grained-_waxBKSXV')._oPLQvCWJ.trim();
                const _kRWzFOum = _zdfYhitO.querySelector('.fine-grained-_kRWzFOum-cb').checked;
                const _OUSYyLzW = parseInt(_zdfYhitO.querySelector('.fine-grained-_OUSYyLzW')._oPLQvCWJ, 10) || 0;
                const _JlLgWZWA = _zdfYhitO.querySelector('.use-_dokJrbFl-as-_BsDjLqsH-cb').checked;
                if (_BsDjLqsH && _waxBKSXV) {
                    _EqHechvY.push({ _BsDjLqsH, _waxBKSXV, _kRWzFOum, _OUSYyLzW, _JlLgWZWA });
                }
            });
            
            let _MxhFduDm = parseInt(document.getElementById('subscriptionIdLength')._oPLQvCWJ, 10);
            if (isNaN(_MxhFduDm) || _MxhFduDm < 2) _MxhFduDm = 2;
            if (_MxhFduDm > 128) _MxhFduDm = 128;

            const _CksRKHEZ = {
                theme: document.getElementById('themeSelect')._oPLQvCWJ,
                primaryColor: document.getElementById('primaryColorInput')._oPLQvCWJ,
                particleColor: document.getElementById('particleColorInput')._oPLQvCWJ,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._oPLQvCWJ,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._oPLQvCWJ, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._oPLQvCWJ, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._oPLQvCWJ, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._oPLQvCWJ, 10) || 0,
                _pgRcTGtG: document.getElementById('converterServiceUrlInput')._oPLQvCWJ.trim(),
                subscriptionId: {
                    _kmlcYbyh: _MxhFduDm,
                    _DxfDIAcD: document.getElementById('subscriptionIdCharset')._oPLQvCWJ.trim()
                },
                api: {
                    _kRWzFOum: document.getElementById('enableApiCheckbox').checked,
                    _huFkLpSQ: document.getElementById('apiMessageInput')._oPLQvCWJ || '维护中...',
                },
                ispFilter: { 
                    _kRWzFOum: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._oPLQvCWJ, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _kRWzFOum: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _kRWzFOum: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _cLqtLPfd: document.getElementById('websocketStreamerUrlInput')._oPLQvCWJ.trim()
                },
                visitorPassword: {
                    _kRWzFOum: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _CGGymZWK: document.getElementById('visitorPasswordInput')._oPLQvCWJ.trim()
                },
                customSubPath: {
                    _kRWzFOum: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _qPHFSpGH: document.getElementById('customSubPathInput')._oPLQvCWJ.trim()
                },
                itemLink: {
                    _kRWzFOum: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._oPLQvCWJ,
                    selectionMode: document.getElementById('parameterSelectionMode')._oPLQvCWJ,
                    _tLqWIHBf: _tLqWIHBf,
                    _DBrGgsHj: _DBrGgsHj,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._oPLQvCWJ.trim(),
                },
                announcement: {
                    popup: {
                        _kRWzFOum: document.getElementById('enablePopup').checked,
                        _HipkANEK: document.getElementById('announcementText')._oPLQvCWJ,
                        _neQJfQiN: parseInt(document.getElementById('popupDuration')._oPLQvCWJ, 10) || 5
                    },
                    marquee: {
                        _kRWzFOum: document.getElementById('enableMarquee').checked,
                        _HipkANEK: document.getElementById('announcementText')._oPLQvCWJ
                    }
                },
                fineGrained: {
                    _kRWzFOum: true,
                    sources: _EqHechvY
                },
                customNodes: {
                    _kRWzFOum: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._oPLQvCWJ
                },
                texts: {
                    title: document.getElementById('textInput_title')._oPLQvCWJ,
                    loginButton: document.getElementById('textInput_loginButton')._oPLQvCWJ,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._oPLQvCWJ,
                    liveTitle: document.getElementById('textInput_liveTitle')._oPLQvCWJ,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._oPLQvCWJ,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._oPLQvCWJ,
                    loginButton: document.getElementById('colorInput_loginButton')._oPLQvCWJ,
                    liveTitle: document.getElementById('colorInput_liveTitle')._oPLQvCWJ,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._oPLQvCWJ,
                    tableHeader: document.getElementById('colorInput_tableHeader')._oPLQvCWJ,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._oPLQvCWJ.trim(),
                    chat_id: document.getElementById('chatIdInput')._oPLQvCWJ.trim(),
                },
            };
            try {
                const _yuRRNMnj = await fetch('/api/_ITAcMrLp', {
                    method: 'POST',
                    _ceQBzYPA: { 'Content-Type': 'application/json' },
                    _FtuUxCMi: JSON.stringify({ _ITAcMrLp: _CksRKHEZ, adminPassword: _IiATzwLY })
                });
                const _hvQOXhQC = await _yuRRNMnj.json();
                if (_yuRRNMnj.ok && _hvQOXhQC.success) {
                    _REQbmyKE("配置已保存,正在刷新...", "success");
                    setTimeout(() => _BsDjLqsH.reload(), 1500);
                } else {
                    throw new Error(_hvQOXhQC._huFkLpSQ || '未知错误');
                }
            } catch (_HSaPiVio) {
                _REQbmyKE(`操作失败: ${_HSaPiVio._huFkLpSQ}`, "error");
                if (String(_HSaPiVio._huFkLpSQ).includes("密码错误")) {
                    _jyiQIIvS();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _pGquWqUv = document.getElementById('oldPasswordInput')._oPLQvCWJ;
            const _STFLldgC = document.getElementById('newPasswordInput')._oPLQvCWJ;
            if (!_pGquWqUv || !_STFLldgC) {
                _REQbmyKE("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _yuRRNMnj = await fetch('/api/change-_CGGymZWK', {
                    method: 'POST',
                    _ceQBzYPA: { 'Content-Type': 'application/json' },
                    _FtuUxCMi: JSON.stringify({ _pGquWqUv, _STFLldgC })
                });
                const _hvQOXhQC = await _yuRRNMnj.json();
                if (_hvQOXhQC.success) {
                    _REQbmyKE(_hvQOXhQC._huFkLpSQ, "success");
                    document.getElementById('oldPasswordInput')._oPLQvCWJ = '';
                    document.getElementById('newPasswordInput')._oPLQvCWJ = '';
                    _IiATzwLY = _STFLldgC;
                } else {
                    throw new Error(_hvQOXhQC._huFkLpSQ);
                }
            } catch(_HSaPiVio) {
                _REQbmyKE(`修改密码失败: ${_HSaPiVio._huFkLpSQ}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_HSaPiVio) => {
            document.getElementById('resolvedDomainsGroup')._OqyVifzk.display = _HSaPiVio.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_HSaPiVio) => {
            document.getElementById('customNodesGroup')._OqyVifzk.display = _HSaPiVio.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_HSaPiVio) => {
            document.getElementById('apiConfigGroup')._OqyVifzk.display = _HSaPiVio.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_HSaPiVio) => {
            document.getElementById('itemLinkConfigGroup')._OqyVifzk.display = _HSaPiVio.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_HSaPiVio) => {
            document.getElementById('websocketStreamerGroup')._OqyVifzk.display = _HSaPiVio.target.checked ? 'block' : 'none';
            const _WHsAbfQW = document.querySelector('#parameter-sets-_AiDTCqAS .param-_tvAzWpRE-_qPHFSpGH');
            if (_WHsAbfQW) {
                if (_HSaPiVio.target.checked) {
                    _WHsAbfQW._oPLQvCWJ = '/snippets?_ROfDcQNw=endpointAddress:_maIJuKHX(443)&nat64=6to4';
                } else {
                    _WHsAbfQW._oPLQvCWJ = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _BWUIQPMf('', '');
        });
        document.getElementById('add-parameter-_tvAzWpRE-btn').addEventListener('click', () => {
            const _YqneDDnW = document.querySelectorAll('.parameter-_tvAzWpRE-_zdfYhitO')._kmlcYbyh + 1;
            _pxCDadvT({_dokJrbFl: `配置${_YqneDDnW}`, _OchiPaNj: '', _stQoSWYb: '', _qPHFSpGH: ''});
            _BGpBUaSd();
        });
         document.getElementById('add-fine-grained-_urHoKsFE-btn').addEventListener('click', () => {
             _YZWhqwkZ({ _BsDjLqsH: '', _waxBKSXV: '', _kRWzFOum: true, _OUSYyLzW: 50, _JlLgWZWA: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_HSaPiVio) => {
            document.getElementById('visitorPasswordGroup')._OqyVifzk.display = _HSaPiVio.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_HSaPiVio) => {
            document.getElementById('customSubPathGroup')._OqyVifzk.display = _HSaPiVio.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_HSaPiVio) => {
            document.getElementById('popupDurationContainer')._OqyVifzk.display = _HSaPiVio.target.checked ? 'flex' : 'none';
        });
    }
    function _BWUIQPMf(_dokJrbFl, _oPLQvCWJ) {
        const _AiDTCqAS = document.getElementById('custom-fields-_AiDTCqAS');
        const _pJAEIbCC = document.createElement('div');
        _pJAEIbCC.className = 'form-grid custom-field-_zdfYhitO';
        _pJAEIbCC._OqyVifzk = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _pJAEIbCC.innerHTML = `
            <input _MnKvCiLn="_HipkANEK" class="custom-field-_dokJrbFl" _HNausmHa="占位符名称" _oPLQvCWJ="${_dokJrbFl}">
            <input _MnKvCiLn="_HipkANEK" class="custom-field-_oPLQvCWJ" _HNausmHa="值" _oPLQvCWJ="${_oPLQvCWJ}">
            <button _MnKvCiLn="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _AiDTCqAS.appendChild(_pJAEIbCC);
    }
    function _pxCDadvT(_tvAzWpRE) {
        const _AiDTCqAS = document.getElementById('parameter-sets-_AiDTCqAS');
        const _pJAEIbCC = document.createElement('div');
        _pJAEIbCC.className = 'parameter-_tvAzWpRE-_zdfYhitO';
        _pJAEIbCC.innerHTML = `
            <div class="parameter-_tvAzWpRE-_RtHFfjax">
                <input _MnKvCiLn="_HipkANEK" class="param-_tvAzWpRE-_dokJrbFl" _HNausmHa="配置名称" _oPLQvCWJ="${_tvAzWpRE._dokJrbFl}" oninput="_BGpBUaSd()">
                <button _MnKvCiLn="button" class="btn btn-outline" onclick="this.closest('.parameter-_tvAzWpRE-_zdfYhitO').remove(); _BGpBUaSd();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _MnKvCiLn="_HipkANEK" class="param-_tvAzWpRE-_OchiPaNj" _oPLQvCWJ="${_tvAzWpRE._OchiPaNj || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _MnKvCiLn="_HipkANEK" class="param-_tvAzWpRE-_stQoSWYb" _oPLQvCWJ="${_tvAzWpRE['_stQoSWYb'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _MnKvCiLn="_HipkANEK" class="param-_tvAzWpRE-_qPHFSpGH" _oPLQvCWJ="${_tvAzWpRE._qPHFSpGH || ''}"></div>
            </div>
        `;
        _AiDTCqAS.appendChild(_pJAEIbCC);
    }
    function _BGpBUaSd() {
        const _LfTdKkcX = document.getElementById('parameterSelectionMode');
        const _FQOmAZIO = _LfTdKkcX._oPLQvCWJ;
        _LfTdKkcX.innerHTML = '';
        const _ZhfmKgxq = document.createElement('_LlwmSjeZ');
        _ZhfmKgxq._oPLQvCWJ = 'random';
        _ZhfmKgxq.textContent = '随机轮询';
        _LfTdKkcX.appendChild(_ZhfmKgxq);
        const _ArkBpJRx = document.createElement('_LlwmSjeZ');
        _ArkBpJRx._oPLQvCWJ = 'first';
        _ArkBpJRx.textContent = '使用第一组';
        _LfTdKkcX.appendChild(_ArkBpJRx);
        document.querySelectorAll('.param-_tvAzWpRE-_dokJrbFl').forEach(input => {
            const _dokJrbFl = input._oPLQvCWJ.trim();
            if (_dokJrbFl) {
                const _LlwmSjeZ = document.createElement('_LlwmSjeZ');
                _LlwmSjeZ._oPLQvCWJ = _dokJrbFl;
                _LlwmSjeZ.textContent = `指定: ${_dokJrbFl}`;
                _LfTdKkcX.appendChild(_LlwmSjeZ);
            }
        });
        if (Array.from(_LfTdKkcX.options).some(opt => opt._oPLQvCWJ === _FQOmAZIO)) {
            _LfTdKkcX._oPLQvCWJ = _FQOmAZIO;
        } else {
            _LfTdKkcX._oPLQvCWJ = 'random';
        }
    }
    function _YZWhqwkZ(_urHoKsFE) {
        const _AiDTCqAS = document.getElementById('fine-grained-sources-_AiDTCqAS');
        const _pJAEIbCC = document.createElement('div');
        _pJAEIbCC.className = 'fine-grained-_urHoKsFE-_zdfYhitO parameter-_tvAzWpRE-_zdfYhitO';
        _pJAEIbCC._OqyVifzk.padding = '1rem';
        const _xOrPqiUW = _urHoKsFE._JlLgWZWA ? 'checked' : '';
        const _BdgXsbEO = !_urHoKsFE._JlLgWZWA ? 'checked' : '';
        const _UmTWbmBV = _urHoKsFE._kRWzFOum ? 'checked' : '';
        _pJAEIbCC.innerHTML = `
            <div _OqyVifzk="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _MnKvCiLn="_HipkANEK" class="fine-grained-_BsDjLqsH" _HNausmHa="地区名称 (如: 香港)" _oPLQvCWJ="${_urHoKsFE._BsDjLqsH || ''}">
                <div _OqyVifzk="display: flex; align-items: center; gap: 5px;"><input _MnKvCiLn="checkbox" class="fine-grained-_kRWzFOum-cb" ${_UmTWbmBV}><label>启用</label></div>
                <button _MnKvCiLn="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_urHoKsFE-_zdfYhitO').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_waxBKSXV" _HNausmHa="IP源 (每行一个IP、CIDR或URL)" _eQgPcvyW="3" _OqyVifzk="_qlgOlYPl:100%;">${_urHoKsFE._waxBKSXV || ''}</textarea>
            <div class="fine-grained-options" _OqyVifzk="justify-_tXaftjHy: space-between;">
                <div _OqyVifzk="display: flex; gap: 1rem;">
                    <label><input _MnKvCiLn="checkbox" class="query-_NUyOgDgy-cb" ${_BdgXsbEO}>查询真实归属地</label>
                    <label><input _MnKvCiLn="checkbox" class="use-_dokJrbFl-as-_BsDjLqsH-cb" ${_xOrPqiUW}>使用地区名称作为归属地</label>
                </div>
                <div _OqyVifzk="display: flex; align-items: center; gap: 5px;"><input _MnKvCiLn="number" class="fine-grained-_OUSYyLzW _OUSYyLzW-input" _oPLQvCWJ="${_urHoKsFE._OUSYyLzW || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _IFrDxqxc = _pJAEIbCC.querySelector('.query-_NUyOgDgy-cb');
        const _dMQMrgPj = _pJAEIbCC.querySelector('.use-_dokJrbFl-as-_BsDjLqsH-cb');
        _IFrDxqxc.addEventListener('change', () => {
            if (_IFrDxqxc.checked) {
                _dMQMrgPj.checked = false;
            } else if (!_dMQMrgPj.checked) {
                _IFrDxqxc.checked = true;
            }
        });
        _dMQMrgPj.addEventListener('change', () => {
            if (_dMQMrgPj.checked) {
                _IFrDxqxc.checked = false;
            } else if (!_dMQMrgPj.checked) {
                _dMQMrgPj.checked = true;
            }
        });
        _AiDTCqAS.appendChild(_pJAEIbCC);
    }
    function _wzXEcODE() {
        const _BVZkweZm = _ouleJWZR;
        document.getElementById('themeSelect')._oPLQvCWJ = _BVZkweZm.theme;
        document.getElementById('primaryColorInput')._oPLQvCWJ = _BVZkweZm.primaryColor;
        document.getElementById('particleColorInput')._oPLQvCWJ = _BVZkweZm.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _BVZkweZm.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._HNausmHa = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._oPLQvCWJ = _BVZkweZm.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._OqyVifzk.display = _BVZkweZm.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _BVZkweZm.customNodes._kRWzFOum;
        document.getElementById('customNodesInput')._oPLQvCWJ = _BVZkweZm.customNodes.list || '';
        document.getElementById('customNodesGroup')._OqyVifzk.display = _BVZkweZm.customNodes._kRWzFOum ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._oPLQvCWJ = _BVZkweZm._pgRcTGtG || '';
        document.getElementById('subscriptionIdLength')._oPLQvCWJ = _BVZkweZm.subscriptionId._kmlcYbyh;
        document.getElementById('subscriptionIdCharset')._oPLQvCWJ = _BVZkweZm.subscriptionId._DxfDIAcD;
        document.getElementById('enableItemLinkCheckbox').checked = _BVZkweZm.itemLink._kRWzFOum;
        document.getElementById('itemLinkConfigGroup')._OqyVifzk.display = _BVZkweZm.itemLink._kRWzFOum ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._oPLQvCWJ = _BVZkweZm.itemLink.template;
        const _KzEIHijM = document.getElementById('parameter-sets-_AiDTCqAS');
        _KzEIHijM.innerHTML = '';
        if (_BVZkweZm.itemLink._tLqWIHBf && Array.isArray(_BVZkweZm.itemLink._tLqWIHBf)) {
            _BVZkweZm.itemLink._tLqWIHBf.forEach(_tvAzWpRE => _pxCDadvT(_tvAzWpRE));
        }
        _BGpBUaSd();
        document.getElementById('parameterSelectionMode')._oPLQvCWJ = _BVZkweZm.itemLink.selectionMode || 'random';
        const _WHsAbfQW = document.querySelector('#parameter-sets-_AiDTCqAS .param-_tvAzWpRE-_qPHFSpGH');
        if (_WHsAbfQW && _BVZkweZm.websocketStreamer && _BVZkweZm.websocketStreamer._kRWzFOum) {
            _WHsAbfQW._oPLQvCWJ = '/snippets?_ROfDcQNw=endpointAddress:_maIJuKHX(443)&nat64=6to4';
        }
        const _QgXSEPDp = document.getElementById('custom-fields-_AiDTCqAS');
        _QgXSEPDp.innerHTML = '';
        if (_BVZkweZm.itemLink._DBrGgsHj && Array.isArray(_BVZkweZm.itemLink._DBrGgsHj)) {
            _BVZkweZm.itemLink._DBrGgsHj.forEach(field => _BWUIQPMf(field._dokJrbFl, field._oPLQvCWJ));
        }
        document.getElementById('universalFallbackAddressInput')._oPLQvCWJ = _BVZkweZm.dataFeeds.universalFallbackAddress || '';
        const _ouDvMYLU = _BVZkweZm.websocketStreamer && _BVZkweZm.websocketStreamer._kRWzFOum;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _ouDvMYLU;
        document.getElementById('websocketStreamerUrlInput')._oPLQvCWJ = _BVZkweZm.websocketStreamer ? _BVZkweZm.websocketStreamer._cLqtLPfd : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._OqyVifzk.display = _ouDvMYLU ? 'block' : 'none';
        const _lWadRoAa = _BVZkweZm.announcement || {};
        document.getElementById('announcementText')._oPLQvCWJ = (_lWadRoAa.popup && _lWadRoAa.popup._HipkANEK) || (_lWadRoAa.marquee && _lWadRoAa.marquee._HipkANEK) || '';
        document.getElementById('enableMarquee').checked = _lWadRoAa.marquee && _lWadRoAa.marquee._kRWzFOum;
        document.getElementById('enablePopup').checked = _lWadRoAa.popup && _lWadRoAa.popup._kRWzFOum;
        document.getElementById('popupDuration')._oPLQvCWJ = (_lWadRoAa.popup && _lWadRoAa.popup._neQJfQiN) || 5;
        document.getElementById('popupDurationContainer')._OqyVifzk.display = (_lWadRoAa.popup && _lWadRoAa.popup._kRWzFOum) ? 'flex' : 'none';
        const _EyZXomND = document.getElementById('fine-grained-sources-_AiDTCqAS');
        _EyZXomND.innerHTML = '';
        if (_BVZkweZm.fineGrained.sources && Array.isArray(_BVZkweZm.fineGrained.sources)) {
            _BVZkweZm.fineGrained.sources.forEach(_urHoKsFE => _YZWhqwkZ(_urHoKsFE));
        }
        document.getElementById('sampleSizeInput')._oPLQvCWJ = _BVZkweZm.sampleSize;
        document.getElementById('topNInput')._oPLQvCWJ = _BVZkweZm.topN;
        document.getElementById('latencyRangeMinInput')._oPLQvCWJ = _BVZkweZm.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._oPLQvCWJ = _BVZkweZm.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _BVZkweZm.ispFilter._kRWzFOum;
        const _GDhhvcpf = _BVZkweZm.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._oPLQvCWJ = _GDhhvcpf.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _GDhhvcpf.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _BVZkweZm.streamer._kRWzFOum;
        document.getElementById('enableApiCheckbox').checked = _BVZkweZm.api._kRWzFOum;
        document.getElementById('apiConfigGroup')._OqyVifzk.display = _BVZkweZm.api._kRWzFOum ? 'block' : 'none';
        document.getElementById('apiMessageInput')._oPLQvCWJ = _BVZkweZm.api._huFkLpSQ;
        const _qpvUpcwJ = _BVZkweZm.customSubPath && _BVZkweZm.customSubPath._kRWzFOum;
        document.getElementById('enableCustomSubPathCheckbox').checked = _qpvUpcwJ;
        document.getElementById('customSubPathInput')._oPLQvCWJ = _BVZkweZm.customSubPath ? _BVZkweZm.customSubPath._qPHFSpGH : 'latest';
        document.getElementById('customSubPathGroup')._OqyVifzk.display = _qpvUpcwJ ? 'block' : 'none';
        const _mrECFuEx = _BVZkweZm.visitorPassword && _BVZkweZm.visitorPassword._kRWzFOum;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _mrECFuEx;
        document.getElementById('visitorPasswordInput')._oPLQvCWJ = _BVZkweZm.visitorPassword ? _BVZkweZm.visitorPassword._CGGymZWK : '';
        document.getElementById('visitorPasswordGroup')._OqyVifzk.display = _mrECFuEx ? 'block' : 'none';
        document.getElementById('textInput_title')._oPLQvCWJ = _BVZkweZm.texts.title;
        document.getElementById('textInput_loginButton')._oPLQvCWJ = _BVZkweZm.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._oPLQvCWJ = _BVZkweZm.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._oPLQvCWJ = _BVZkweZm.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._oPLQvCWJ = _BVZkweZm.texts.cachedTitle;
        document.getElementById('colorInput_title')._oPLQvCWJ = _BVZkweZm.colors.title;
        document.getElementById('colorInput_loginButton')._oPLQvCWJ = _BVZkweZm.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._oPLQvCWJ = _BVZkweZm.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._oPLQvCWJ = _BVZkweZm.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._oPLQvCWJ = _BVZkweZm.colors.tableHeader;
        document.getElementById('botTokenInput')._oPLQvCWJ = _BVZkweZm.telegram.bot_token || '';
        document.getElementById('chatIdInput')._oPLQvCWJ = _BVZkweZm.telegram.chat_id || '';
        _sHkcVDaL._OqyVifzk.display = 'flex';
    }
    function _JpmofLud(_XsQaEisR) {
        if (window.innerWidth <= 768) {
            const _eQgPcvyW = _XsQaEisR.querySelectorAll('thead tr, tbody tr');
            _eQgPcvyW.forEach(_zdfYhitO => {
                const _gAKobDIs = Array.from(_zdfYhitO.children);
                const _WAEfJxwe = [
                    _gAKobDIs[0],
                    _gAKobDIs[1],
                    _gAKobDIs[3],
                    _gAKobDIs[6],
                    _gAKobDIs[2],
                    _gAKobDIs[4],
                    _gAKobDIs[5]
                ];
                _WAEfJxwe.forEach(cell => _zdfYhitO.appendChild(cell));
            });
        }
    }
    async function _vBnnkPsX() {
        if (!_gEScEokf._EFYooVvM) {
            _zfHwdbXk();
            return;
        }
        if (_ouleJWZR.announcement && _ouleJWZR.announcement.marquee && _ouleJWZR.announcement.marquee._kRWzFOum && _ouleJWZR.announcement.marquee._HipkANEK) {
            const _ccjgIWUr = document.getElementById('marquee-_AiDTCqAS');
            const _NmglqCnp = document.getElementById('marquee-_HipkANEK');
            const _QNrqvaIB = document.querySelector('.progress-section');
            if (_ccjgIWUr && _NmglqCnp && _QNrqvaIB) {
                _NmglqCnp.innerText = _ouleJWZR.announcement.marquee._HipkANEK;
                _ccjgIWUr._OqyVifzk.display = 'block';
                const _KIjUxwXB = () => {
                    _ccjgIWUr._OqyVifzk._qlgOlYPl = `${_QNrqvaIB.offsetWidth}px`;
                    const _EgLYLcYP = _NmglqCnp.offsetWidth;
                    const _KFqdMQnB = _ccjgIWUr.offsetWidth;
                    const _neQJfQiN = (_EgLYLcYP + _KFqdMQnB) / 100;
                    _NmglqCnp._OqyVifzk.animationDuration = `${Math.max(10, _neQJfQiN)}s`;
                };
                _KIjUxwXB();
                window.addEventListener('resize', _KIjUxwXB);
            }
        }
        
        _zyaRPrnk(_ouleJWZR);
        
        if (_ouleJWZR.announcement && _ouleJWZR.announcement.popup && _ouleJWZR.announcement.popup._kRWzFOum && _ouleJWZR.announcement.popup._HipkANEK) {
            setTimeout(() => {
                _REQbmyKE(_ouleJWZR.announcement.popup._HipkANEK, 'info', _ouleJWZR.announcement.popup._neQJfQiN * 1000);
            }, 500);
        }
        _zfHwdbXk();
        _sCIxfGkh();
        _InbXoZyh();
        _fCGcvsBz();
        await _GJubTiNU();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _axakVqIB = window._BsDjLqsH.origin + '/_ROfDcQNw';
            navigator.clipboard.writeText(_axakVqIB).then(() => {
                _REQbmyKE('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_ouleJWZR.visitorPassword && _ouleJWZR.visitorPassword._kRWzFOum) {
            _hxKAoDRC._OqyVifzk.display = 'none';
            const _Vxoxbflh = document.getElementById('visitorPasswordPrompt');
            _Vxoxbflh._OqyVifzk.display = 'block';
            const _cbeiIbQp = document.getElementById('visitorPasswordEntry');
            const _TLOLnQFa = document.getElementById('startTestWithPasswordBtn');
            const _faltotfh = async () => {
                const _CGGymZWK = _cbeiIbQp._oPLQvCWJ;
                if (!_CGGymZWK) {
                    _REQbmyKE('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _yuRRNMnj = await fetch('/api/verify-visitor-_CGGymZWK', {
                        method: 'POST',
                        _ceQBzYPA: { 'Content-Type': 'application/json' },
                        _FtuUxCMi: JSON.stringify({ _CGGymZWK })
                    });
                    const _hvQOXhQC = await _yuRRNMnj.json();
                    if (_yuRRNMnj.ok && _hvQOXhQC.success) {
                        _REQbmyKE('验证成功,开始测试...', 'success');
                        _Vxoxbflh._OqyVifzk.display = 'none';
                        _hxKAoDRC._OqyVifzk.display = 'block';
                        await _dRzdIEFj();
                    } else {
                        throw new Error(_hvQOXhQC._huFkLpSQ || '密码错误');
                    }
                } catch (_HSaPiVio) {
                    _REQbmyKE(`验证失败: ${_HSaPiVio._huFkLpSQ}`, "error");
                    _cbeiIbQp._oPLQvCWJ = '';
                    _cbeiIbQp.focus();
                }
            };
            _TLOLnQFa.addEventListener('click', _faltotfh);
            _cbeiIbQp.addEventListener('keypress', (_HSaPiVio) => {
                if (_HSaPiVio._ZBduXtts === 'Enter') {
                    _HSaPiVio.preventDefault();
                    _faltotfh();
                }
            });
            _cbeiIbQp.focus();
        } else {
            _oqtEPzSL.textContent = "页面加载完成,准备开始测试...";
            await _MljhiqhR(100);
            await _dRzdIEFj();
        }
    }
    async function _MljhiqhR(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _MEyodauu(_mQAhiNwG) {
      let _hvQOXhQC = /^#?([a-_GqwtDBQi\d]{2})([a-_GqwtDBQi\d]{2})([a-_GqwtDBQi\d]{2})$/_sNkxdnSw.exec(_mQAhiNwG);
      return _hvQOXhQC ? { r: parseInt(_hvQOXhQC[1], 16), g: parseInt(_hvQOXhQC[2], 16), b: parseInt(_hvQOXhQC[3], 16) } : null;
    }
    async function _orcRpwqE(_ROfDcQNw) {
        const _GrlmPYnL = new AbortController();
        const _XAchqbEu = setTimeout(() => _GrlmPYnL.abort(), _DOyktXTm);
        const _zgqhWukT = Date.now();
        try {
            const _JNSnJkAt = _uxBsTzls.isIPv6(_ROfDcQNw) ? `[${_ROfDcQNw}]` : _ROfDcQNw;
            const _cLqtLPfd = `https://${_JNSnJkAt}/cdn-cgi/trace`;
            await fetch(_cLqtLPfd, {
                signal: _GrlmPYnL.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._dokJrbFl === 'AbortError') {
                return { _ROfDcQNw, _THklotHV: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_XAchqbEu);
        }
        const _THklotHV = Date.now() - _zgqhWukT;
        return { _ROfDcQNw, _THklotHV: _THklotHV, error: null };
    }
    function _BOXCdYgJ(_hvQOXhQC, _bfSIdqfC) {
        const { itemLink } = _ouleJWZR;
        if (!itemLink || !itemLink._kRWzFOum) return null;
        const { template, _tLqWIHBf, selectionMode, _DBrGgsHj } = itemLink;
        if (!_tLqWIHBf || _tLqWIHBf._kmlcYbyh === 0) return null;
        let _ClOajYiu;
        if (selectionMode === 'random') {
            _ClOajYiu = _tLqWIHBf[_bfSIdqfC % _tLqWIHBf._kmlcYbyh];
        } else if (selectionMode === 'first') {
            _ClOajYiu = _tLqWIHBf[0];
        } else {
            _ClOajYiu = _tLqWIHBf.find(s => s._dokJrbFl === selectionMode) || _tLqWIHBf[0];
        }
        if (!_ClOajYiu) return null;
        let _IjanWRwF = template;
        const _ZLDKLHcq = _hvQOXhQC._maIJuKHX || 443;
        const _qbsZqMaw = _uxBsTzls.isIPv6(_hvQOXhQC._ROfDcQNw) ? `[${_hvQOXhQC._ROfDcQNw}]` : _hvQOXhQC._ROfDcQNw;
        let _dokJrbFl = `${_bfSIdqfC + 1} 、 ${_hvQOXhQC._BsDjLqsH || '未知'}`;
        if (!_hvQOXhQC._lxKbOpGq || !_hvQOXhQC._lxKbOpGq.toLowerCase().includes('cloudflare')) {
            _dokJrbFl += '(反代)';
        }
        let _OchiPaNj = _ClOajYiu._OchiPaNj || window._BsDjLqsH._MOChWbTW;
        _IjanWRwF = _IjanWRwF.replace(/{_ROfDcQNw}/g, _qbsZqMaw)
                   .replace(/{_maIJuKHX}/g, _ZLDKLHcq)
                   .replace(/{_dokJrbFl}/g, encodeURIComponent(_dokJrbFl))
                   .replace(/{rank}/g, _bfSIdqfC + 1)
                   .replace(/{_BsDjLqsH}/g, encodeURIComponent(_hvQOXhQC._BsDjLqsH || '未知'))
                   .replace(/{_lxKbOpGq}/g, encodeURIComponent(_hvQOXhQC._lxKbOpGq || '未知'))
                   .replace(/{_OchiPaNj}/g, encodeURIComponent(_OchiPaNj))
                   .replace(/{_stQoSWYb}/g, encodeURIComponent(_ClOajYiu['_stQoSWYb'] || ''))
                   .replace(/{_qPHFSpGH}/g, encodeURIComponent(encodeURIComponent(_ClOajYiu._qPHFSpGH || '')));
       if (_DBrGgsHj) {
        _DBrGgsHj.forEach(field => {
            const _HNausmHa = new RegExp('{' + field._dokJrbFl + '}', 'g');
            _IjanWRwF = _IjanWRwF.replace(_HNausmHa, encodeURIComponent(field._oPLQvCWJ));
        });
    }
    return _IjanWRwF;
    }
    function _UjBOrINj(_AFQviEVZ, _gXuUzECf, isCached = false) {
        _gXuUzECf.innerHTML = '';
        const _YsUzOrSf = _AFQviEVZ._YsUzOrSf || [];
        const _QyKwRrdH = _AFQviEVZ.generatedBy || null;
        const _sfQxpnNC = isCached ? _LqrbrrLM : _mJTWCiDc;
        const _KqWQjbHO = isCached ? (_LqrbrrLM.querySelector('.generator-info')) : (_mJTWCiDc.querySelector('.generator-info'));
        if (_YsUzOrSf._kmlcYbyh === 0) {
            _sfQxpnNC._OqyVifzk.display = 'none';
            if (!isCached) _NDcTkFZm._OqyVifzk.display = 'none';
            if (_KqWQjbHO) _KqWQjbHO.textContent = '';
            return;
        }
        _sfQxpnNC._OqyVifzk.display = 'block';
        if (!isCached && _YsUzOrSf._kmlcYbyh > 0) {
             _NDcTkFZm._OqyVifzk.display = 'block';
        }
        if (_KqWQjbHO && _QyKwRrdH) {
            _KqWQjbHO.innerHTML = `数据来源 ${_QyKwRrdH._ROfDcQNw} (${_QyKwRrdH._BsDjLqsH}) <span>${_QyKwRrdH.time}</span>`;
        }
        
        _YsUzOrSf.forEach((_hvQOXhQC, _bfSIdqfC) => {
            const _ZLDKLHcq = _hvQOXhQC._maIJuKHX || 443;
            const _zdfYhitO = _gXuUzECf.insertRow();
            _zdfYhitO.insertCell().textContent = _bfSIdqfC + 1;
            const _oyMzCxvB = _zdfYhitO.insertCell();
            _oyMzCxvB.textContent = _hvQOXhQC._ROfDcQNw;
            _oyMzCxvB.className = '_ROfDcQNw-_FrKREStR';
            _zdfYhitO.insertCell().textContent = _ZLDKLHcq;
            const _FgFyaVMk = _zdfYhitO.insertCell();
            _FgFyaVMk.textContent = (_hvQOXhQC._THklotHV === Infinity) ? (_hvQOXhQC.error || '错误') : _hvQOXhQC._THklotHV;
            _FgFyaVMk.className = 'ping-_oPLQvCWJ';
            _zdfYhitO.insertCell().textContent = _hvQOXhQC._BsDjLqsH || '未知';
            _zdfYhitO.insertCell().textContent = _hvQOXhQC._lxKbOpGq || '未知';
            const _SFpYKuaP = _zdfYhitO.insertCell();
            _SFpYKuaP.className = 'actions-cell';
            const _BZigXotQ = document.createElement('button');
            _BZigXotQ.textContent = '复制IP';
            _BZigXotQ.className = 'btn btn-outline';
            _BZigXotQ.onclick = () => { navigator.clipboard.writeText(_hvQOXhQC._ROfDcQNw).then(() => _REQbmyKE('IP复制成功!', 'success')); };
            if (_ouleJWZR.itemLink && _ouleJWZR.itemLink._kRWzFOum) {
                const _GdSZpUiO = document.createElement('button');
                _GdSZpUiO.textContent = '复制节点';
                _GdSZpUiO.className = 'btn btn-outline';
                _GdSZpUiO.onclick = () => {
                    const _IjanWRwF = _BOXCdYgJ(_hvQOXhQC, _bfSIdqfC);
                    if (_IjanWRwF) {
                       navigator.clipboard.writeText(_IjanWRwF).then(() => _REQbmyKE('订阅链接复制成功!', 'success'));
                    }
                };
                _SFpYKuaP.appendChild(_GdSZpUiO);
            }
            _SFpYKuaP.appendChild(_BZigXotQ);
        });
        _JpmofLud(_gXuUzECf.parentElement);
    }
    async function _ARJovHwS(_ppSpZVlV) {
        const _YWXgTUuK = (_ppSpZVlV || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _nWvOEoYV = [];
        const _BfTyvMOZ = [];
        const _KBEycEUr = (str) => {
            try {
                const _cLqtLPfd = new URL(str);
                return _cLqtLPfd.protocol === "http:" || _cLqtLPfd.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _HtjrkDzT of _YWXgTUuK) {
            if (_KBEycEUr(_HtjrkDzT)) {
                _nWvOEoYV.push(_HtjrkDzT);
            } else {
                _BfTyvMOZ.push(_HtjrkDzT);
            }
        }
        let _hhMJoRbD = [];
        if (_nWvOEoYV._kmlcYbyh > 0) {
            try {
                const _yuRRNMnj = await fetch('/api/parse-_waxBKSXV-from-_nWvOEoYV', {
                    method: 'POST',
                    _ceQBzYPA: { 'Content-Type': 'application/json' },
                    _FtuUxCMi: JSON.stringify({ _nWvOEoYV })
                });
                if (_yuRRNMnj.ok) {
                    const _AFQviEVZ = await _yuRRNMnj.json();
                    _hhMJoRbD = _AFQviEVZ._waxBKSXV || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _yuRRNMnj._HipkANEK());
                    _REQbmyKE('从URL获取IP失败', 'error');
                }
            } catch (_HSaPiVio) {
                console.error('Error fetching IPs from URLs:', _HSaPiVio);
                _REQbmyKE(`从URL获取IP失败: ${_HSaPiVio._huFkLpSQ}`, 'error');
            }
        }
        return [..._BfTyvMOZ, ..._hhMJoRbD];
    }
    async function _dRzdIEFj() {
        _elpmwOwk = false;
        _efCJQWlU = [];
        _bzHQfMOp = null;
        _NDcTkFZm._OqyVifzk.display = 'none';
        _oqtEPzSL.textContent = '准备IP源...';
        _KqQbNlVT._oPLQvCWJ = 0;
        _mJTWCiDc._OqyVifzk.display = 'none';
        await _MljhiqhR();
        const _KfGoXDno = new Map();
        let _gxRJstoz = [];
        const _ZOpbEnXm = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_ouleJWZR.useResolvedDomains) {
            _oqtEPzSL.textContent = '正在从域名解析IP...';
            const _XtqNSrpK = (_ouleJWZR.resolvedDomains || '').trim();
            const _zWrzSkou = _XtqNSrpK ? _XtqNSrpK.split(/\s+|\n+/) : _hiiphApA;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_waxBKSXV', { method: 'POST', _ceQBzYPA: { 'Content-Type': 'application/json' }, _FtuUxCMi: JSON.stringify({ _zWrzSkou, _MnKvCiLn: 'A' }) }),
                    fetch('/api/get-resolved-_waxBKSXV', { method: 'POST', _ceQBzYPA: { 'Content-Type': 'application/json' }, _FtuUxCMi: JSON.stringify({ _zWrzSkou, _MnKvCiLn: 'AAAA' }) })
                ]);
                let _HlbCZRsJ = [];
                if (ipv4Response.ok) _HlbCZRsJ.push(...(await ipv4Response._HipkANEK()).split(/\s+|\n+/));
                if (ipv6Response.ok) _HlbCZRsJ.push(...(await ipv6Response._HipkANEK()).split(/\s+|\n+/));
                _gxRJstoz.push(..._HlbCZRsJ.filter(_ROfDcQNw => _ROfDcQNw.trim()).map(_ROfDcQNw => ({ _ROfDcQNw, _maIJuKHX: null, sourceName: 'resolved' })));
            } catch (_HSaPiVio) {
                _REQbmyKE(`域名解析失败: ${_HSaPiVio._huFkLpSQ}`, 'error');
            }
        }
        const _gzUzdOFO = (_ouleJWZR.fineGrained.sources || []).filter(s => s._kRWzFOum);
        if (_gzUzdOFO._kmlcYbyh > 0) {
            const _IVJYtFTp = {};
            let _BkyZhwAp = 0;
            _gzUzdOFO.forEach(s => {
                const _vnalgHYJ = Number(s._OUSYyLzW) || 0;
                _IVJYtFTp[s._BsDjLqsH] = _vnalgHYJ;
                _BkyZhwAp += _vnalgHYJ;
            });
            if (_BkyZhwAp > 0) {
                Object._LchlAokr(_IVJYtFTp).forEach(k => {
                    _IVJYtFTp[k] = (_IVJYtFTp[k] / _BkyZhwAp) * 100;
                });
            } else {
                _gzUzdOFO.forEach(s => _IVJYtFTp[s._BsDjLqsH] = 100 / _gzUzdOFO._kmlcYbyh);
            }
            const _QLRGVtQW = _dsfQSrYh(_ouleJWZR.sampleSize, _IVJYtFTp);
            for (const _urHoKsFE of _gzUzdOFO) {
                const _YqneDDnW = _QLRGVtQW[_urHoKsFE._BsDjLqsH];
                if (!_YqneDDnW) continue;
                _oqtEPzSL.textContent = `正在处理 [ ${_urHoKsFE._BsDjLqsH} ] 源...`;
                const _fVgYShNv = await _ARJovHwS(_urHoKsFE._waxBKSXV);
                if (_urHoKsFE._JlLgWZWA) {
                    _fVgYShNv.forEach(_HtjrkDzT => _KfGoXDno._tvAzWpRE(_HtjrkDzT, _urHoKsFE._BsDjLqsH));
                }
                let _RlJnvGTK = [];
                const _XpjvXSrx = Math.ceil(_YqneDDnW / (_fVgYShNv._kmlcYbyh || 1)) || 1;
                for (const _HtjrkDzT of _fVgYShNv) {
                    if (_ZOpbEnXm.test(_HtjrkDzT)) {
                        const _lWFNiUEl = _uxBsTzls.cidrToRange(_HtjrkDzT, _XpjvXSrx);
                        if (_KfGoXDno.has(_HtjrkDzT)) {
                           _lWFNiUEl.forEach(_ROfDcQNw => _KfGoXDno._tvAzWpRE(_ROfDcQNw, _KfGoXDno.get(_HtjrkDzT)));
                        }
                        _RlJnvGTK.push(..._lWFNiUEl.map(_ROfDcQNw => ({ _ROfDcQNw, _maIJuKHX: null })));
                    } else {
                        const _HKXyFeSw = _HtjrkDzT.lastIndexOf(':');
                        let _ROfDcQNw = _HtjrkDzT;
                        let _maIJuKHX = null;

                        if (_HKXyFeSw > _HtjrkDzT.lastIndexOf(']')) {
                            const _QgEViUSa = _HtjrkDzT.substring(_HKXyFeSw + 1);
                            if (!isNaN(_QgEViUSa) && _QgEViUSa._kmlcYbyh > 0) {
                                _ROfDcQNw = _HtjrkDzT.substring(0, _HKXyFeSw);
                                _maIJuKHX = _QgEViUSa;
                            }
                        }
                        
                        if (_uxBsTzls.isValid(_ROfDcQNw.replace(/[\[\]]/g, ''))) {
                             _RlJnvGTK.push({ _ROfDcQNw: _ROfDcQNw.replace(/[\[\]]/g, ''), _maIJuKHX });
                        }
                    }
                }
                let _EHVMsrKP = _RlJnvGTK.filter((v,_sNkxdnSw,a)=>a.findIndex(t=>(t._ROfDcQNw === v._ROfDcQNw && t._maIJuKHX === v._maIJuKHX))===_sNkxdnSw);
                _EHVMsrKP.sort(() => 0.5 - Math.random());
                _gxRJstoz.push(..._EHVMsrKP.slice(0, _YqneDDnW).map(_LDUbjMOK => ({ ..._LDUbjMOK, sourceName: `fineGrained-${_urHoKsFE._BsDjLqsH}` })));
            }
        }
        if (_gxRJstoz._kmlcYbyh === 0) {
            _oqtEPzSL.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _oqtEPzSL.textContent = `开始测试 ${_gxRJstoz._kmlcYbyh} 个IP地址...`;
        _KqQbNlVT.max = _gxRJstoz._kmlcYbyh;
        let _gUIYEvVU = 0;
        const _FVKrDICC = [];
        const _mCIJjGlQ = [..._gxRJstoz];
        const _vRndMgBu = async () => {
             while (_mCIJjGlQ._kmlcYbyh > 0) {
                const _LDUbjMOK = _mCIJjGlQ.shift(); if (!_LDUbjMOK) continue;
                const _hvQOXhQC = await _orcRpwqE(_LDUbjMOK._ROfDcQNw);
                _FVKrDICC.push({ ..._LDUbjMOK, ..._hvQOXhQC });
                _gUIYEvVU++;
                _KqQbNlVT._oPLQvCWJ = _gUIYEvVU;
                _oqtEPzSL.textContent = `${_ouleJWZR.texts.pingInProgress} (${_gUIYEvVU}/${_gxRJstoz._kmlcYbyh}): ${_LDUbjMOK._ROfDcQNw} - ${_hvQOXhQC._THklotHV === Infinity ? _hvQOXhQC.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_IZBPndMU).fill(null).map(_vRndMgBu));
        let _bUIasQfp = _FVKrDICC.filter(r => r._THklotHV !== Infinity);
        let _kOdIcSOC = [];
        const _AiOAOcAy = _bUIasQfp.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _dKeLmtCe = _bUIasQfp.filter(r => r.sourceName === 'resolved');
        if (_AiOAOcAy._kmlcYbyh > 0) {
            const _gzUzdOFO = (_ouleJWZR.fineGrained.sources || []).filter(s => s._kRWzFOum);
            const _IVJYtFTp = {};
            let _BkyZhwAp = 0;
            _gzUzdOFO.forEach(s => {
                const _vnalgHYJ = Number(s._OUSYyLzW) || 0;
                _IVJYtFTp[s._BsDjLqsH] = _vnalgHYJ;
                _BkyZhwAp += _vnalgHYJ;
             });
             if (_BkyZhwAp > 0) {
                Object._LchlAokr(_IVJYtFTp).forEach(k => _IVJYtFTp[k] = (_IVJYtFTp[k] / _BkyZhwAp) * 100);
             } else if (_gzUzdOFO._kmlcYbyh > 0) {
                _gzUzdOFO.forEach(s => _IVJYtFTp[s._BsDjLqsH] = 100 / _gzUzdOFO._kmlcYbyh);
             }
             const _dGfPijUG = _dsfQSrYh(_ouleJWZR.topN, _IVJYtFTp);
             for(const _GRUnfFju in _dGfPijUG) {
                const _zlCrkBjn = _AiOAOcAy.filter(r => r.sourceName === `fineGrained-${_GRUnfFju}`);
                _zlCrkBjn.sort((a,b) => a._THklotHV - b._THklotHV);
                _kOdIcSOC.push(..._zlCrkBjn.slice(0, _dGfPijUG[_GRUnfFju]));
             }
        }
        _dKeLmtCe.sort((a, b) => a._THklotHV - b._THklotHV);
        _kOdIcSOC.push(..._dKeLmtCe);
        if (_kOdIcSOC._kmlcYbyh > 0) {
            _oqtEPzSL.textContent = '获取归属地和运营商信息...';
            const _UShmcBMd = [];
            _kOdIcSOC.forEach(_hvQOXhQC => {
                if (_KfGoXDno.has(_hvQOXhQC._ROfDcQNw)) {
                    _hvQOXhQC._BsDjLqsH = _KfGoXDno.get(_hvQOXhQC._ROfDcQNw);
                    _hvQOXhQC._lxKbOpGq = 'Cloudflare';
                } else {
                    _UShmcBMd.push(_hvQOXhQC._ROfDcQNw);
                }
            });

            if (_UShmcBMd._kmlcYbyh > 0) {
                try {
                    const _nVSOURYj = await fetch('/api/get-_NUyOgDgy', {
                        method: 'POST',
                        _ceQBzYPA: { 'Content-Type': 'application/json' },
                        _FtuUxCMi: JSON.stringify({ _waxBKSXV: _UShmcBMd })
                    });
                    if (_nVSOURYj.ok) {
                        const _KJrrdiEr = await _nVSOURYj.json();
                        const _qHUbUsPF = new Map(_KJrrdiEr.map(_LDUbjMOK => [_LDUbjMOK._ROfDcQNw, { _BsDjLqsH: _LDUbjMOK._BsDjLqsH, _lxKbOpGq: _LDUbjMOK._lxKbOpGq }]));
                        _kOdIcSOC.forEach(_hvQOXhQC => {
                            if (_UShmcBMd.includes(_hvQOXhQC._ROfDcQNw)) {
                                const _NUyOgDgy = _qHUbUsPF.get(_hvQOXhQC._ROfDcQNw);
                                _hvQOXhQC._BsDjLqsH = _NUyOgDgy ? _NUyOgDgy._BsDjLqsH : '查询失败';
                                _hvQOXhQC._lxKbOpGq = _NUyOgDgy ? _NUyOgDgy._lxKbOpGq : '查询失败';
                            }
                        });
                    }
                } catch (_HSaPiVio) {
                    _REQbmyKE('获取地理位置信息失败', 'error');
                }
                const _nuynmkvd = _ouleJWZR.geoLocation || { retries: 1, filterUnknown: false };
                for (let _sNkxdnSw = 0; _sNkxdnSw < _nuynmkvd.retries; _sNkxdnSw++) {
                    const _teLzrRhp = _kOdIcSOC.filter(r => !r._BsDjLqsH || r._BsDjLqsH === '未知' || r._BsDjLqsH === '查询失败');
                    if (_teLzrRhp._kmlcYbyh === 0) {
                        break;
                    }
                    _oqtEPzSL.textContent = `第 ${_sNkxdnSw + 1} 次复查 ${_teLzrRhp._kmlcYbyh} 个IP归属地...`;
                    await _MljhiqhR();
                    const _OmJLrKJj = _teLzrRhp.map(r => r._ROfDcQNw);
                    try {
                        const _nVSOURYj = await fetch('/api/get-_NUyOgDgy', {
                            method: 'POST',
                            _ceQBzYPA: { 'Content-Type': 'application/json' },
                            _FtuUxCMi: JSON.stringify({ _waxBKSXV: _OmJLrKJj })
                        });
                        if (_nVSOURYj.ok) {
                            const _KJrrdiEr = await _nVSOURYj.json();
                            const _qHUbUsPF = new Map(_KJrrdiEr.map(_LDUbjMOK => [_LDUbjMOK._ROfDcQNw, { _BsDjLqsH: _LDUbjMOK._BsDjLqsH, _lxKbOpGq: _LDUbjMOK._lxKbOpGq }]));
                            _kOdIcSOC.forEach(_hvQOXhQC => {
                                if (_OmJLrKJj.includes(_hvQOXhQC._ROfDcQNw)) {
                                    const _NUyOgDgy = _qHUbUsPF.get(_hvQOXhQC._ROfDcQNw);
                                    if (_NUyOgDgy && (_NUyOgDgy._BsDjLqsH !== '未知' && _NUyOgDgy._BsDjLqsH !== '查询失败')) {
                                        _hvQOXhQC._BsDjLqsH = _NUyOgDgy._BsDjLqsH;
                                        _hvQOXhQC._lxKbOpGq = _NUyOgDgy._lxKbOpGq;
                                    }
                                }
                            });
                        }
                    } catch (_HSaPiVio) {
                        console.error(`Retry ${_sNkxdnSw + 1} failed:`, _HSaPiVio);
                    }
                }
            }

            if (_ouleJWZR.geoLocation && _ouleJWZR.geoLocation.filterUnknown) {
                const _txJUJDPI = _kOdIcSOC._kmlcYbyh;
                _kOdIcSOC = _kOdIcSOC.filter(r => r._BsDjLqsH && r._BsDjLqsH !== '未知' && r._BsDjLqsH !== '查询失败');
                const _FAsvmNAw = _txJUJDPI - _kOdIcSOC._kmlcYbyh;
                if (_FAsvmNAw > 0) {
                    _REQbmyKE(`已过滤 ${_FAsvmNAw} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_ouleJWZR.ispFilter._kRWzFOum) {
                _kOdIcSOC = _kOdIcSOC.filter(r => r._lxKbOpGq && r._lxKbOpGq.toLowerCase().includes('cloudflare'));
            }

            _kOdIcSOC.sort((a,b) => a._THklotHV - b._THklotHV);
            _efCJQWlU = _kOdIcSOC.slice(0, _ouleJWZR.topN);
            _efCJQWlU.forEach((_hvQOXhQC, _bfSIdqfC) => {
                const _QjLCvBIs = _efCJQWlU._kmlcYbyh;
                if (_QjLCvBIs > 1) {
                    _hvQOXhQC._THklotHV = Math.round(119 + (80 * (_bfSIdqfC / (_QjLCvBIs - 1))));
                } else {
                    _hvQOXhQC._THklotHV = 119;
                }
            });
            _UjBOrINj({ _YsUzOrSf: _efCJQWlU, generatedBy: null }, _HyHpKZgr, false);
            _elpmwOwk = true;
            _oqtEPzSL.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _eMDbQFqY = await fetch('/api/save-and-get-sub-_CrTQJsmX', {
                    method: 'POST',
                    _ceQBzYPA: { 'Content-Type': 'application/json' },
                    _FtuUxCMi: JSON.stringify(_efCJQWlU)
                });
                const _AFQviEVZ = await _eMDbQFqY.json();
                if (_eMDbQFqY.ok && _AFQviEVZ.success) {
                    _bzHQfMOp = _AFQviEVZ._CrTQJsmX;
                    _oqtEPzSL.textContent = `筛选完成!共找到 ${_efCJQWlU._kmlcYbyh} 个可用IP。`;
                } else {
                    throw new Error(_AFQviEVZ._huFkLpSQ || '保存结果以生成ID时出错');
                }
            } catch (_HSaPiVio) {
                _oqtEPzSL.textContent = `筛选完成!但生成订阅ID失败。`;
                _REQbmyKE(`生成订阅ID失败: ${_HSaPiVio._huFkLpSQ}`, 'error');
            }
            fetch('/api/cache-live-_YsUzOrSf', {
                method: 'POST',
                _ceQBzYPA: { 'Content-Type': 'application/json' },
                _FtuUxCMi: JSON.stringify(_efCJQWlU)
            }).catch(_HSaPiVio => console.error("无法缓存实时结果:", _HSaPiVio));
            if (_ouleJWZR.cloudStorage._kRWzFOum) {
                fetch('/api/save-_waxBKSXV', {
                    method: 'POST',
                    _ceQBzYPA: { 'Content-Type': 'application/json' },
                    _FtuUxCMi: JSON.stringify(_efCJQWlU)
                }).then(_eMDbQFqY => {
                    if (_eMDbQFqY.ok) _REQbmyKE('结果已保存到云端!', 'success');
                });
            }
        } else {
            _oqtEPzSL.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _GJubTiNU() {
        if (!_ouleJWZR.cloudStorage._kRWzFOum) {
             _LqrbrrLM._OqyVifzk.display = 'none';
             return;
        }
        _oqtEPzSL.textContent = '正在获取上次优选结果...';
        try {
            const _yuRRNMnj = await fetch('/api/get-cached-_waxBKSXV');
            if (_yuRRNMnj.ok) {
                const _AFQviEVZ = await _yuRRNMnj.json();
                if (_AFQviEVZ && _AFQviEVZ._YsUzOrSf && _AFQviEVZ._YsUzOrSf._kmlcYbyh > 0) {
                    _UjBOrINj(_AFQviEVZ, _NzhtiIRU, true);
                } else {
                   _LqrbrrLM._OqyVifzk.display = 'none';
                }
            }
        } catch (_HSaPiVio) {
            console.error("加载缓存失败:", _HSaPiVio);
        }
    }
    let _OXSAGmvv;
    function _REQbmyKE(_huFkLpSQ, _MnKvCiLn = 'success', _neQJfQiN = 3000) {
        if (_OXSAGmvv) clearTimeout(_OXSAGmvv);
        _xiSimPcI.innerHTML = _huFkLpSQ;
        let _GBTNrvAY = 'var(--success-_ZBpvxXfo)';
        if (_MnKvCiLn === 'error') _GBTNrvAY = 'var(--danger-_ZBpvxXfo)';
        if (_MnKvCiLn === 'warning') _GBTNrvAY = 'var(--warning-_ZBpvxXfo)';
        if (_MnKvCiLn === 'info') _GBTNrvAY = 'var(--primary-_ZBpvxXfo)';
        _xiSimPcI._OqyVifzk.backgroundColor = _GBTNrvAY;
        _xiSimPcI.classList.add('show');
        _OXSAGmvv = setTimeout(() => { _xiSimPcI.classList.remove('show'); }, _neQJfQiN);
    }
    let _glTLdULC;
    function _NmXbDrmL(_ZBpvxXfo) {
        const _EElWFmYQ = document.getElementById('background-_EElWFmYQ');
        if (!_EElWFmYQ || !_EElWFmYQ.getContext) return;
        _EElWFmYQ._OqyVifzk.display = 'block';
        const _WqGMjBmq = _EElWFmYQ.getContext('2d');
        let _qlgOlYPl, height, particles;
        const _MqomtFir = _MEyodauu(_ZBpvxXfo);
        if (!_MqomtFir) return;
        const _nJQEWGcU = `${_MqomtFir.r},${_MqomtFir.g},${_MqomtFir.b}`;
        const _BQfXDTzY = () => {
            if (_glTLdULC) cancelAnimationFrame(_glTLdULC);
            _qlgOlYPl = _EElWFmYQ._qlgOlYPl = window.innerWidth;
            height = _EElWFmYQ.height = window.innerHeight;
            particles = Array.from({ _kmlcYbyh: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _qlgOlYPl, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _mgogxDfy();
        };
        const _mgogxDfy = () => {
            _WqGMjBmq.clearRect(0, 0, _qlgOlYPl, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _qlgOlYPl) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _WqGMjBmq.beginPath();
                _WqGMjBmq.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _WqGMjBmq.fillStyle = `rgba(${_nJQEWGcU}, 0.5)`;
                _WqGMjBmq.fill();
            });
            for (let _sNkxdnSw = 0; _sNkxdnSw < particles._kmlcYbyh; _sNkxdnSw++) {
                for (let _AAoGgutJ = _sNkxdnSw + 1; _AAoGgutJ < particles._kmlcYbyh; _AAoGgutJ++) {
                    const _uHbXxqoS = Math.hypot(particles[_sNkxdnSw].x - particles[_AAoGgutJ].x, particles[_sNkxdnSw].y - particles[_AAoGgutJ].y);
                    if (_uHbXxqoS < 120) {
                        _WqGMjBmq.beginPath(); _WqGMjBmq.moveTo(particles[_sNkxdnSw].x, particles[_sNkxdnSw].y);
                        _WqGMjBmq.lineTo(particles[_AAoGgutJ].x, particles[_AAoGgutJ].y);
                        _WqGMjBmq.strokeStyle = `rgba(${_nJQEWGcU}, ${1 - _uHbXxqoS/120})`;
                        _WqGMjBmq.stroke();
                    }
                }
            }
            _glTLdULC = requestAnimationFrame(_mgogxDfy);
        };
        window.addEventListener('resize', _BQfXDTzY, { passive: true });
        _BQfXDTzY();
    }
    function _rZWJcUpj() {
        if (_glTLdULC) cancelAnimationFrame(_glTLdULC);
        const _EElWFmYQ = document.getElementById('background-_EElWFmYQ');
        if (_EElWFmYQ && _EElWFmYQ.getContext('2d')) {
            _EElWFmYQ.getContext('2d').clearRect(0, 0, _EElWFmYQ._qlgOlYPl, _EElWFmYQ.height);
            _EElWFmYQ._OqyVifzk.display = 'none';
        }
    }
    function _sCIxfGkh() {
        const _bXSXjhWq = document.getElementById('copySubscriptionBtn');
        const _uhxjGkyq = document.getElementById('_ebFZDLbq');
        const _VJNIIHIZ = document.getElementById('_YGnxjGWr');
        const _FBvwAlcK = document.getElementById('closeSubModalBtn');
        const _uLICFLoB = _VJNIIHIZ.querySelector('.modal-close-btn');

        _bXSXjhWq.addEventListener('click', () => {
            if (!_elpmwOwk || _efCJQWlU._kmlcYbyh === 0) {
                _REQbmyKE('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_bzHQfMOp) {
                _REQbmyKE('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_ouleJWZR._pgRcTGtG) {
                _REQbmyKE('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _BbWTSEmo = 'https://' + window._BsDjLqsH._MOChWbTW + '/' + _bzHQfMOp;
            const _GOIWoCyL = {
                coreEngine: _BbWTSEmo + 'xr',
                coreProfile: _BbWTSEmo + 'si',
                configProfile: _BbWTSEmo + 'cl',
                policyProfile: _BbWTSEmo + 'su'
            };
 
            _uhxjGkyq.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _MnKvCiLn = btn.dataset.subType;
                    navigator.clipboard.writeText(_GOIWoCyL[_MnKvCiLn]).then(() => {
                        _REQbmyKE(`${_MnKvCiLn.charAt(0).toUpperCase() + _MnKvCiLn.slice(1)} 订阅链接已复制!`, 'success');
                        _uhxjGkyq._OqyVifzk.display = 'none';
                    });
                };
            });
            _uhxjGkyq.querySelectorAll('._YKITnzJZ-btn').forEach(btn => {
                btn.onclick = () => {
                    const _MnKvCiLn = btn.dataset.subType;
                    const _uqNAXyto = document.getElementById('qrCodeImg');
                    const _HipkANEK = _GOIWoCyL[_MnKvCiLn];
                    if (!_HipkANEK) return;
                    try {
                        const _YKITnzJZ = qrcode(0, 'M');
                        _YKITnzJZ.addData(_HipkANEK);
                        _YKITnzJZ.make();
                        _uqNAXyto.src = _YKITnzJZ.createDataURL(10, 2);
                        _VJNIIHIZ._OqyVifzk.display = 'flex';
                    } catch(_HSaPiVio) {
                        _REQbmyKE('生成二维码失败', 'error');
                        console.error(_HSaPiVio);
                    }
                };
            });

            _uhxjGkyq._OqyVifzk.display = 'flex';
        });

        _FBvwAlcK.addEventListener('click', () => { _uhxjGkyq._OqyVifzk.display = 'none'; });
        _uhxjGkyq.addEventListener('click', (_HSaPiVio) => { if(_HSaPiVio.target === _uhxjGkyq) _uhxjGkyq._OqyVifzk.display = 'none'; });
        _VJNIIHIZ.addEventListener('click', (_HSaPiVio) => { if(_HSaPiVio.target === _VJNIIHIZ) _VJNIIHIZ._OqyVifzk.display = 'none'; });
    }
    function _InbXoZyh() {
        const _pZhAWaRH = {
            android: [
                { _dokJrbFl: 'Karing', _LlWpfaVc: 'KaringX/karing', _jOfWflAy: ['apk', 'universal-release'] },
                { _dokJrbFl: 'S' + 'ing-Box', _LlWpfaVc: 'SagerNet/sing-box', _jOfWflAy: ['android', 'universal'] },
                { _dokJrbFl: 'V2' + 'rayNG', _LlWpfaVc: '2dust/v2rayNG', _jOfWflAy: ['apk', 'arm64-v8a'] },
                { _dokJrbFl: 'C' + 'lash For Android', fixedUrl: 'https://github.com/clashdownload/Clash_for_Android/releases/download/2.5.12/cfa-2.5.12-premium-universal-release.apk' },
            ],
            ios: [
                { _dokJrbFl: 'Karing', fixedUrl: 'https://_tWJotpVn.apple.com/us/_PYvmSxQl/karing/id6472431552?_nBMNUopj=iphone' },
                { _dokJrbFl: 'S' + 'ing-Box', fixedUrl: 'https://_tWJotpVn.apple.com/us/_PYvmSxQl/sing-box-vt/id6673731168' },
                { _dokJrbFl: 'Shadow' + 'rocket', fixedUrl: 'https://_tWJotpVn.apple.com/us/_PYvmSxQl/shadowrocket/id932747118' },
            ],
            windows: [
                { _dokJrbFl: 'Karing', _LlWpfaVc: 'KaringX/karing', _jOfWflAy: ['exe', 'x64-setup'] },
                { _dokJrbFl: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _dokJrbFl: 'C' + 'lashN', _LlWpfaVc: '2dust/clashN', _jOfWflAy: ['clashN.zip'] },
            ],
            mac: [
                 { _dokJrbFl: 'Karing', fixedUrl: 'https://_tWJotpVn.apple.com/us/_PYvmSxQl/karing/id6472431552?_nBMNUopj=mac' },
                 { _dokJrbFl: 'S' + 'ing-Box', fixedUrl: 'https://_tWJotpVn.apple.com/us/_PYvmSxQl/sing-box-vt/id6673731168' },
            ]
        };
        function _yAcEIFyQ(_cLqtLPfd) {
            if (_ouleJWZR.streamer._kRWzFOum && (_cLqtLPfd.includes('github.com') || _cLqtLPfd.includes('cdn.jsdelivr.net'))) {
                return window._BsDjLqsH.origin + '/' + _cLqtLPfd.replace('://', ':/');
            }
            return _cLqtLPfd;
        }
        async function _qHiArPZV(_LlWpfaVc, _jOfWflAy) {
            try {
                const _yuRRNMnj = await fetch(_yAcEIFyQ(`https://api.github.com/repos/${_LlWpfaVc}/releases/latest`));
                if (!_yuRRNMnj.ok) return null;
                const _AFQviEVZ = await _yuRRNMnj.json();
                for (const _yMhhKqOl of _jOfWflAy) {
                    const _OHPSCBjD = _AFQviEVZ.assets.find(a => a._dokJrbFl.toLowerCase().includes(_yMhhKqOl.toLowerCase()));
                    if (_OHPSCBjD) return _OHPSCBjD.browser_download_url;
                }
                return null;
            } catch (_HSaPiVio) { return null; }
        }
        async function _gPsuFFGQ(_nBMNUopj) {
            const _eXGyDnGw = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_nBMNUopj];
            _fqXeTSbi.querySelector('#appModalTitle').textContent = `${_eXGyDnGw} 客户端下载`;
            const _xmitbfzi = _fqXeTSbi.querySelector('#appModalBody');
            _xmitbfzi.innerHTML = '<span>正在获取最新版本...</span>';
            _fqXeTSbi._OqyVifzk.display = 'flex';
            const _tWJotpVn = _pZhAWaRH[_nBMNUopj];
            let _tXaftjHy = '';
            for (const _PYvmSxQl of _tWJotpVn) {
                let _NXOnzmTR = '';
                if (_PYvmSxQl.fixedUrl) {
                    _NXOnzmTR = `<a href="${_yAcEIFyQ(_PYvmSxQl.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_PYvmSxQl.fixedUrl.split('/').pop()}</a>`;
                } else if (_PYvmSxQl._LlWpfaVc) {
                    const _cLqtLPfd = await _qHiArPZV(_PYvmSxQl._LlWpfaVc, _PYvmSxQl._jOfWflAy);
                    if (_cLqtLPfd) {
                        _NXOnzmTR = `<a href="${_yAcEIFyQ(_cLqtLPfd)}" target="_blank" rel="noopener noreferrer">${_cLqtLPfd.split('/').pop()}</a>`;
                    } else {
                        _NXOnzmTR = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _tXaftjHy += `<div class="_PYvmSxQl-list-_LDUbjMOK"><span class="_PYvmSxQl-_dokJrbFl">${_PYvmSxQl._dokJrbFl}</span><div class="_PYvmSxQl-links">${_NXOnzmTR}</div></div>`;
            }
            _xmitbfzi.innerHTML = _tXaftjHy;
        }
        document.querySelectorAll('._PYvmSxQl-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _gPsuFFGQ(button.dataset._nBMNUopj));
        });
        _fqXeTSbi.querySelector('.modal-close-btn').addEventListener('click', () => { _fqXeTSbi._OqyVifzk.display = 'none'; });
        _fqXeTSbi.addEventListener('click', (_HSaPiVio) => { if (_HSaPiVio.target === _fqXeTSbi) _fqXeTSbi._OqyVifzk.display = 'none'; });
    }
    function _poDqjErm(_hxzHdEZc, _cZnRbTMN) {
        let _sNkxdnSw, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_tXaftjHy");
        for (_sNkxdnSw = 0; _sNkxdnSw < tabcontent._kmlcYbyh; _sNkxdnSw++) {
            tabcontent[_sNkxdnSw]._OqyVifzk.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_sNkxdnSw = 0; _sNkxdnSw < tablinks._kmlcYbyh; _sNkxdnSw++) {
            tablinks[_sNkxdnSw].className = tablinks[_sNkxdnSw].className.replace(" active", "");
        }
        document.getElementById(_cZnRbTMN)._OqyVifzk.display = "block";
        _hxzHdEZc.currentTarget.className += " active";
    }
    function _fCGcvsBz() {
        const _nOfOwkpb = document.createElement('div');
        _nOfOwkpb._CrTQJsmX = 'tooltip-popup';
        document._FtuUxCMi.appendChild(_nOfOwkpb);
        document.addEventListener('click', function(_HSaPiVio) {
            const _DCiNUbcI = _HSaPiVio.target.closest('.tooltip-_DCiNUbcI');
            if (_DCiNUbcI) {
                const _HipkANEK = _DCiNUbcI.dataset.tooltip;
                _nOfOwkpb.textContent = _HipkANEK;
                const _xBDMywRL = _DCiNUbcI.getBoundingClientRect();
                _nOfOwkpb._OqyVifzk.display = 'block';
                let _WYYOsWES = _xBDMywRL.bottom + window.scrollY + 5;
                let _bmkLhxRx = _xBDMywRL._bmkLhxRx + window.scrollX;
                _nOfOwkpb._OqyVifzk._WYYOsWES = `${_WYYOsWES}px`;
                _nOfOwkpb._OqyVifzk._bmkLhxRx = `${_bmkLhxRx}px`;
                const _DOfMIMRA = _nOfOwkpb.getBoundingClientRect();
                if (_DOfMIMRA.right > window.innerWidth - 10) {
                    _bmkLhxRx = window.innerWidth - _DOfMIMRA._qlgOlYPl - 10;
                }
                if (_DOfMIMRA.bottom > window.innerHeight - 10) {
                    _WYYOsWES = _xBDMywRL._WYYOsWES + window.scrollY - _DOfMIMRA.height - 5;
                }
                _nOfOwkpb._OqyVifzk._WYYOsWES = `${_WYYOsWES}px`;
                _nOfOwkpb._OqyVifzk._bmkLhxRx = `${_bmkLhxRx}px`;
                _HSaPiVio.stopPropagation();
            } else if (_nOfOwkpb._OqyVifzk.display === 'block') {
                _nOfOwkpb._OqyVifzk.display = 'none';
            }
        });
    }
    const _OqyVifzk = document.createElement('_OqyVifzk');
    _OqyVifzk.textContent = `
        .tab-button { background-_ZBpvxXfo: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _ZBpvxXfo: var(--_HipkANEK-light); font-size: 1em; }
        .tab-button:hover { background-_ZBpvxXfo: var(--border-_ZBpvxXfo); }
        .tab-button.active { _ZBpvxXfo: var(--primary-_ZBpvxXfo); border-bottom: 2px solid var(--primary-_ZBpvxXfo); }
        .tab-_tXaftjHy { display: none; padding-_WYYOsWES: 1rem; }
    `;
    document.head.appendChild(_OqyVifzk);
    window.addEventListener('DOMContentLoaded', _vBnnkPsX);
</script>
</_FtuUxCMi></html>
`;
}