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


import { connect } from "cloudflare:sockets";

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

const _RgnbpyZx = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _pQXTowzV = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _LMmxrgMM = '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 _csoZScdh = '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 _LLQXzSLM(_FjzeQSAe) {
    if (Array.isArray(_FjzeQSAe)) {
        try {
            return String.fromCharCode.apply(null, _FjzeQSAe);
        } catch (_SadlHwMG) {
            return '';
        }
    }
    return _FjzeQSAe;
}

function _rrFYLNQl(_xWYJSzae) {
    return /^[0-9a-_gGCFbiGo]{8}-[0-9a-_gGCFbiGo]{4}-[4][0-9a-_gGCFbiGo]{3}-[89ab][0-9a-_gGCFbiGo]{3}-[0-9a-_gGCFbiGo]{12}$/_ccNBJYvV.test(_xWYJSzae);
}

const _sTEsIdky = "optimized_ips_v4";
const _YOaQeEol = "global_config_v4";
const _YkXwaZqS = "admin_password_v4";
const _ZRujubAc = "live_results_temp_v1";
const _WjhmdMXu = "latest_sub_id_v1";

export default {
  async fetch(_unWtLrWv, _XANgtyXx, _QxRifCBi) {
    try {
      if (!_XANgtyXx.DB) {
          const _xFpCLoYg = _tYzmsrfc("D1 数据库 'DB' 未绑定。");
          return new Response(_xFpCLoYg, { status: 503, _DadfZrLA: { 'Content-Type': '_jyjVKQbA/html;_BXalCNft=UTF-8' }});
      }

      _QxRifCBi.waitUntil(
          _XANgtyXx.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_xtbiKbAc TEXT PRIMARY KEY, _FjzeQSAe TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_xWYJSzae TEXT PRIMARY KEY, _gCtLTBwD TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_SadlHwMG => console.error("DB Init Error:", _SadlHwMG._rMNQVEWf))
      );

      const _MzNfaJoq = new URL(_unWtLrWv._MzNfaJoq);
      const _kBOGxKZb = _MzNfaJoq.pathname;
      const _WdCYEsBD = _unWtLrWv._DadfZrLA.get("Upgrade");
      const _rtoMLCWc = await _soKzAEBm(_XANgtyXx);
      
      if (_rtoMLCWc.websocketStreamer && _rtoMLCWc.websocketStreamer._xTaAvhYb && _WdCYEsBD && _WdCYEsBD.toLowerCase() === "websocket") {
          const _dxwWvaWE = _rtoMLCWc.websocketStreamer._MzNfaJoq;
          if (_dxwWvaWE && _dxwWvaWE.trim().startsWith('https://')) {
              try {
                  const _fAyUaQPR = new Request(_dxwWvaWE.trim() + _MzNfaJoq.pathname + _MzNfaJoq.search, _unWtLrWv);
                  return await fetch(_fAyUaQPR);
              } catch (_SadlHwMG) {
                  return new Response(`Upstream WebSocket gateway failed: ${_SadlHwMG._rMNQVEWf}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_WdCYEsBD && _WdCYEsBD.toLowerCase() === "websocket") {
          return await _gDtjWeLQ(_unWtLrWv, _XANgtyXx, _rtoMLCWc);
      }
      
      const _tBewlIeG = _kBOGxKZb._faoTbmeU(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_tBewlIeG) {
          const [, _yOkwdbnF, typeSuffix] = _tBewlIeG;
          const _uPWvIonq = _rtoMLCWc._uPWvIonq;
          if (!_uPWvIonq || _uPWvIonq.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _DadfZrLA: { 'Content-Type': '_jyjVKQbA/plain; _BXalCNft=utf-8' } });
          }
          const _DTugnRZP = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _XUfAkKcO = _DTugnRZP[typeSuffix];
          const _rOsWEEtv = _uPWvIonq.replace(/\/$/, '');
          const _ixLlWQin = `${_MzNfaJoq.origin}/${_yOkwdbnF}`;
          const _UbrwFfXg = `${_rOsWEEtv}/${_XUfAkKcO}?_rtoMLCWc=${encodeURIComponent(_ixLlWQin)}`;
          try {
              const _xKtIpNvr = await fetch(_UbrwFfXg, { _DadfZrLA: { 'User-Agent': _unWtLrWv._DadfZrLA.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _CcNCObvZ = new Headers(_xKtIpNvr._DadfZrLA);
              _CcNCObvZ._HXFvlboj('Access-Control-Allow-Origin', '*');
              return new Response(_xKtIpNvr._SqQMpqgf, { status: _xKtIpNvr.status, statusText: _xKtIpNvr.statusText, _DadfZrLA: _CcNCObvZ });
          } catch (_SadlHwMG) {
              return new Response(`获取上游订阅失败: ${_SadlHwMG._rMNQVEWf}`, { status: 502, _DadfZrLA: { 'Content-Type': '_jyjVKQbA/plain; _BXalCNft=utf-8' } });
          }
      }

      if (_kBOGxKZb.startsWith('/https:/') || _kBOGxKZb.startsWith('/http:/')) {
          return _oFRpkPva(_unWtLrWv, _rtoMLCWc);
      }
      
      if (_rtoMLCWc.customSubPath && _rtoMLCWc.customSubPath._xTaAvhYb && _rtoMLCWc.customSubPath._kBOGxKZb && _kBOGxKZb === '/' + _rtoMLCWc.customSubPath._kBOGxKZb.trim()) {
          const _EZRVkJkh = _XANgtyXx.DB.prepare("SELECT _FjzeQSAe FROM kv_data WHERE _xtbiKbAc = ?").bind(_WjhmdMXu);
          const { _uBqtZcLI } = await _EZRVkJkh.all();
          const _ZibajqJt = _uBqtZcLI._QesPjbkJ > 0 ? _uBqtZcLI[0]._FjzeQSAe : null;
          if (_ZibajqJt) {
              return _IVTddehG({ _CKagJuvR: { _xWYJSzae: _ZibajqJt }, _MzNfaJoq: _unWtLrWv._MzNfaJoq }, _XANgtyXx);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _DadfZrLA: { 'Content-Type': '_jyjVKQbA/plain; _BXalCNft=utf-8' } });
          }
      }
      
      const _MqndYhCG = _kBOGxKZb.split('/').filter(Boolean);
      if (_MqndYhCG._QesPjbkJ === 1 && !_kBOGxKZb.startsWith('/api/')) {
          const _yOkwdbnF = _MqndYhCG[0];
          return _IVTddehG({ _CKagJuvR: { _xWYJSzae: _yOkwdbnF }, _MzNfaJoq: _unWtLrWv._MzNfaJoq }, _XANgtyXx);
      }

      if (_kBOGxKZb.startsWith('/api/')) {
          if (_kBOGxKZb === '/api/_rtoMLCWc' && _unWtLrWv.method === 'POST') return _AXrrVwrD(_unWtLrWv, _XANgtyXx, _QxRifCBi);
          if (_kBOGxKZb === '/api/_HXFvlboj-_nnlVslgS') return _DlsFgCuE(_unWtLrWv, _XANgtyXx);
          if (_kBOGxKZb === '/api/change-_nnlVslgS') return _mvMzTaBf(_unWtLrWv, _XANgtyXx);
          if (_kBOGxKZb === '/api/verify-_nnlVslgS') return _gCdyaFdU(_unWtLrWv, _XANgtyXx);
          if (_kBOGxKZb === '/api/verify-visitor-_nnlVslgS' && _unWtLrWv.method === 'POST') return _vGFsrSyA(_unWtLrWv, _XANgtyXx);
          if (_kBOGxKZb === '/api/cache-live-_uBqtZcLI' && _unWtLrWv.method === 'POST') return _qDsjjrmz(_unWtLrWv, _XANgtyXx, _QxRifCBi);
          if (_kBOGxKZb === '/api/get-_LFHzjGIb' && _unWtLrWv.method === 'POST') return _mZobfEvp(_unWtLrWv, _XANgtyXx);
          if (_kBOGxKZb === '/api/get-cached-_AUGlySic') return _FsGaXnNt(_unWtLrWv, _XANgtyXx);
          if (_kBOGxKZb === '/api/save-_AUGlySic') return _uUJzEIeS(_unWtLrWv, _XANgtyXx, _QxRifCBi);
          if (_kBOGxKZb === '/api/save-and-get-sub-_xWYJSzae' && _unWtLrWv.method === 'POST') return _xjKfkZJl(_unWtLrWv, _XANgtyXx);
          if (_kBOGxKZb.startsWith('/api/get-_gMMqfbiy/')) {
              const _yOkwdbnF = _kBOGxKZb.split('/').pop();
              return _IVTddehG({ _CKagJuvR: { _xWYJSzae: _yOkwdbnF }, _MzNfaJoq: _unWtLrWv._MzNfaJoq }, _XANgtyXx);
          }
          if (_kBOGxKZb === '/api/_rtoMLCWc' && _unWtLrWv.method === 'GET') return _INURypka(_XANgtyXx);
          if (_kBOGxKZb === '/api/get-resolved-_AUGlySic') return _JISlbuOn(_unWtLrWv);
          if (_kBOGxKZb === '/api/parse-_AUGlySic-from-_oKVqZdie' && _unWtLrWv.method === 'POST') return _GdbbCCmj(_unWtLrWv, _XANgtyXx);
          if (_kBOGxKZb === '/api/endpoints') return _ewpdHRdx(_unWtLrWv, _XANgtyXx);
          if (_kBOGxKZb === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_kBOGxKZb === '/_zAuEMLsy') return _jMRsBhXB(_unWtLrWv, _XANgtyXx);
      if (_kBOGxKZb === '/bing-wallpaper') return _ukmKACxO();

      return _xGOrEvhq(_unWtLrWv, _XANgtyXx, _QxRifCBi);
    } catch (err) {
      let _SadlHwMG = err;
      return new Response(_SadlHwMG.toString(), { status: 500 });
    }
  }
};

const _uGLTgOcG = { 'Accept': '_jyjVKQbA/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 _WKTNWare(_MzNfaJoq, _jUXsNpPL) {
    const _CNKyhQXn = await fetch(_MzNfaJoq, { _DadfZrLA: { ..._uGLTgOcG, 'Referer': _jUXsNpPL.referer } });
    if (_CNKyhQXn.ok) return _CNKyhQXn._jyjVKQbA();
    return null;
}

async function _TuWAJGko(_MzNfaJoq, _jUXsNpPL) {
    const _pKQCotHV = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_MzNfaJoq)}`;
    const _CNKyhQXn = await fetch(_pKQCotHV, { _DadfZrLA: { ..._uGLTgOcG, 'Referer': _jUXsNpPL.referer } });
    if (!_CNKyhQXn.ok) return null;
    const _SqQMpqgf = await _CNKyhQXn._jyjVKQbA();
    const _faoTbmeU = _SqQMpqgf._faoTbmeU(/<pre[^>]*>([\s\S]*?)<\/pre>/_ccNBJYvV);
    return _faoTbmeU && _faoTbmeU[1] ? _faoTbmeU[1].replace(/&amp;/g, '&') : null;
}

function _OCGfBZUQ(_TaQXZoLv) {
    let _THdissxm;
    try {
        _THdissxm = atob(_TaQXZoLv.replace(/\s/g, ''));
    } catch (_SadlHwMG) {
        _THdissxm = _TaQXZoLv;
    }

    const _gMMqfbiy = _THdissxm.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _yvGCuDop = new Set();
    const _wuUNPVIX = /@([^?#]+?):(\d+)/;

    for (const _jNUIdcAu of _gMMqfbiy) {
        let _lZjYBycT = '';
        let _AWekBocW = '';

        try {
            if (_jNUIdcAu.startsWith('vmess://')) {
                const _ktZinbob = atob(_jNUIdcAu.substring(8));
                const _rtoMLCWc = JSON.parse(_ktZinbob);
                _lZjYBycT = _rtoMLCWc.add;
                _AWekBocW = _rtoMLCWc._AWekBocW;
            } else {
                const _faoTbmeU = _jNUIdcAu._faoTbmeU(_wuUNPVIX);
                if (_faoTbmeU && _faoTbmeU[1] && _faoTbmeU[2]) {
                    _lZjYBycT = _faoTbmeU[1].replace(/[\[\]]/g, '');
                    _AWekBocW = _faoTbmeU[2];
                }
            }
        } catch (_SadlHwMG) {
            console.warn(`Could not parse _jNUIdcAu: ${_jNUIdcAu}`);
        }

        if (_lZjYBycT && _AWekBocW) {
            _yvGCuDop.add(`${_lZjYBycT}:${_AWekBocW}`);
        }
    }
    return Array.from(_yvGCuDop);
}

async function _BluAeXGP(_tCmqUiSf) {
    try {
        const _CNKyhQXn = await fetch(_tCmqUiSf, { _DadfZrLA: _uGLTgOcG });
        if (!_CNKyhQXn.ok) {
            console.error(`Failed to fetch subscription: ${_CNKyhQXn.status}`);
            return [];
        }
        const _TaQXZoLv = await _CNKyhQXn._jyjVKQbA();
        return _OCGfBZUQ(_TaQXZoLv);
    } catch (error) {
        console.error(`Error processing subscription ${_tCmqUiSf}:`, error);
        return [];
    }
}

async function _ZwtiuoBJ(_MlvCFpRY) {
    const _qBUFvhAY = _MlvCFpRY.trim();
    const _JvXMeqky = /^(vless|vmess|trojan|ss):\/\//.test(_qBUFvhAY);
    const _lxVvfLeo = (() => {
        if (_qBUFvhAY._QesPjbkJ < 20 || _qBUFvhAY.startsWith('http')) return false;
        const _DfBbkTQb = _qBUFvhAY.replace(/\s/g, '');
        if (_DfBbkTQb._QesPjbkJ % 4 !== 0 && !_DfBbkTQb.includes('=')) return false;
        try {
            atob(_DfBbkTQb);
            return true;
        } catch (_SadlHwMG) {
            return false;
        }
    })();

    if (_JvXMeqky || _lxVvfLeo) {
        return _OCGfBZUQ(_qBUFvhAY).join('\n');
    }

    const _wdIxPeYx = [
        'https://ipdb.api.030101.xyz/?_bBhESgzA=bestcf&_UWKjCwhu=true',
        'https://ipdb.api.030101.xyz/?_bBhESgzA=bestproxy&_UWKjCwhu=true'
    ];
    const _QHZevtLx = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_ccNBJYvV.test(_MlvCFpRY) || _MlvCFpRY.includes('?_jzCHUaST=');

    if (_QHZevtLx) {
        const _AUGlySic = await _BluAeXGP(_MlvCFpRY);
        return _AUGlySic.join('\n');
    }

    let _TaQXZoLv = '';
    if (_wdIxPeYx.includes(_MlvCFpRY)) {
        _TaQXZoLv = await _WKTNWare(_MlvCFpRY, { referer: _MlvCFpRY });
        if (!_TaQXZoLv || _TaQXZoLv._QesPjbkJ < 8) {
            _TaQXZoLv = await _TuWAJGko(_MlvCFpRY, { referer: _MlvCFpRY });
        }
    } else {
        try {
            const _QBdUlAdt = await fetch(_MlvCFpRY, { _DadfZrLA: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_QBdUlAdt.ok) {
                _TaQXZoLv = await _QBdUlAdt._jyjVKQbA();
            } else {
                console.warn(`Failed to fetch URL ${_MlvCFpRY}: ${_QBdUlAdt.status}`);
            }
        } catch (_SadlHwMG) {
            console.error(`Error fetching URL ${_MlvCFpRY}:`, _SadlHwMG);
        }
    }

    const _tNEjhuzt = _OCGfBZUQ(_TaQXZoLv);
    if (_tNEjhuzt._QesPjbkJ > 0) {
        return _tNEjhuzt.join('\n');
    }

    return _TaQXZoLv || '';
}

async function _oFRpkPva(_unWtLrWv, _rtoMLCWc) {
    if (!_rtoMLCWc.streamer._xTaAvhYb) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _MzNfaJoq = new URL(_unWtLrWv._MzNfaJoq);
    const _iCtxHYTv = _MzNfaJoq.pathname.substring(1).replace(':/', '://');
    try {
        const _UbrwFfXg = new URL(_iCtxHYTv);
        const _pIbeboiu = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_pIbeboiu.some(domain => _UbrwFfXg._lZjYBycT.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _xuYaCCmA = new Headers(_unWtLrWv._DadfZrLA);
        _xuYaCCmA._HXFvlboj('Host', _UbrwFfXg._lZjYBycT);
        _xuYaCCmA._HXFvlboj('User-Agent', 'CF-Worker-Streamer/1.0');
        const _lbjArAoc = await fetch(_UbrwFfXg.toString(), {
            method: _unWtLrWv.method,
            _DadfZrLA: _xuYaCCmA,
            _SqQMpqgf: _unWtLrWv._SqQMpqgf,
        });
        const _CcNCObvZ = new Headers(_lbjArAoc._DadfZrLA);
        _CcNCObvZ._HXFvlboj('Access-Control-Allow-Origin', '*');
        _CcNCObvZ._HXFvlboj('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _CcNCObvZ._HXFvlboj('Access-Control-Allow-Headers', '*');
        _CcNCObvZ._HXFvlboj('Cache-Control', 'public, max-age=86400');
        _CcNCObvZ._HXFvlboj('X-Streamer-Source', 'CF-Worker');
        _CcNCObvZ.delete('_TaQXZoLv-security-policy');
        _CcNCObvZ.delete('x-_TaQXZoLv-security-policy');
        _CcNCObvZ.delete('x-webkit-csp');
        return new Response(_lbjArAoc._SqQMpqgf, {
            status: _lbjArAoc.status,
            statusText: _lbjArAoc.statusText,
            _DadfZrLA: _CcNCObvZ,
        });
    } catch (_SadlHwMG) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _gDtjWeLQ(_unWtLrWv, _XANgtyXx, _rtoMLCWc) {
    try {
        const _bpzYsxGd = _rtoMLCWc || await _soKzAEBm(_XANgtyXx);
        const _YqoeJKLM = (_bpzYsxGd.itemLink._VRKzpBsE && _bpzYsxGd.itemLink._VRKzpBsE[0]) || {};
        const _ezGEugUT = _YqoeJKLM['_jzCHUaST'] || _LLQXzSLM(_dztbonSj);

        if (!_rrFYLNQl(_ezGEugUT)) {
            throw new Error("Configured user _QVzLxvxL is not valid.");
        }

        const _uqJhtKSN = _bpzYsxGd.dataFeeds.universalFallbackAddress;
        let _buzWpIwB = {};
        
        const _RWdFZeqq = _LLQXzSLM(_FXAiyQBf[0] || "");

        if (_uqJhtKSN) {
            const [_QAfgwnWs, _AWekBocW = '443'] = _uqJhtKSN.split(':');
            _buzWpIwB = { _QAfgwnWs, _AWekBocW };
        } else {
            const [_QAfgwnWs, _AWekBocW = '443'] = _RWdFZeqq.split(':');
            _buzWpIwB = { _QAfgwnWs, _AWekBocW };
        }

        const _MzNfaJoq = new URL(_unWtLrWv._MzNfaJoq);
        const _kBOGxKZb = _MzNfaJoq.pathname;
        let _iaxvRxjK = '';

        const _wwcAiIXn = _MzNfaJoq.searchParams.get('remote');
        if (_wwcAiIXn) {
           _iaxvRxjK = atob(_wwcAiIXn);
        } else if (_kBOGxKZb.startsWith('/endpoint=')) {
           _iaxvRxjK = _kBOGxKZb.substring(10);
        } else if (_kBOGxKZb._QesPjbkJ > 1 && _kBOGxKZb.substring(1).includes('.')) {
           _iaxvRxjK = _kBOGxKZb.substring(1);
        }

        if (_iaxvRxjK) {
            const [_QAfgwnWs, _AWekBocW = '443'] = _iaxvRxjK.split(':');
            _buzWpIwB = { _QAfgwnWs, _AWekBocW };
        }
        
        return await _RVhRsyBS(_unWtLrWv, _ezGEugUT, _buzWpIwB);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _RVhRsyBS(_unWtLrWv, _QVzLxvxL, _buzWpIwB) {
    const _ZXZlClDM = new WebSocketPair();
    const [clientEnd, _IMNfnUdD] = Object.values(_ZXZlClDM);
    _IMNfnUdD.accept();

    let _URYeTCcj = { _VekXEmSp: null };
    const _FDePxmrJ = _unWtLrWv._DadfZrLA.get("sec-websocket-protocol") || "";
    const _xAERPtrp = _BqjggCfS(_IMNfnUdD, _FDePxmrJ);

    _xAERPtrp.pipeTo(new WritableStream({
        async write(chunk) {
            if (_URYeTCcj._VekXEmSp) {
                const _UEgEAwEw = _URYeTCcj._VekXEmSp.writable.getWriter();
                await _UEgEAwEw.write(chunk);
                _UEgEAwEw.releaseLock();
                return;
            }

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

            const _BxhHmdZv = new Uint8Array([details._eBwJYYhn[0], 0]);
            const _cEPakOuZ = chunk.slice(details.payloadIndex);

            await _CFOIuVar(_URYeTCcj, details._OWJtPIvI, details._XksDwEkr, _cEPakOuZ, _IMNfnUdD, _BxhHmdZv, _buzWpIwB);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _uxuzvBQE(_IMNfnUdD);
    });

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

async function _CFOIuVar(_URYeTCcj, _OWJtPIvI, _XksDwEkr, _WMsFmWxI, _hsLDVZWe, _BxhHmdZv, _XwWMBdma) {
    const _TURmJuyg = async (_QAfgwnWs, _AWekBocW) => {
        let _hgCCOttB = _QAfgwnWs;
        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(_QAfgwnWs)) {
            _hgCCOttB = `${atob('d3d3Lg==')}${_QAfgwnWs}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _VekXEmSp = connect({ _lZjYBycT: _hgCCOttB, _AWekBocW });
        _URYeTCcj._VekXEmSp = _VekXEmSp;
        const _UEgEAwEw = _VekXEmSp.writable.getWriter();
        await _UEgEAwEw.write(_WMsFmWxI);
        _UEgEAwEw.releaseLock();
        return _VekXEmSp;
    };

    const _tMjhyYnh = async () => {
        if (!_XwWMBdma._QAfgwnWs) return;
        console.log(`Direct connection failed, falling back to gateway: ${_XwWMBdma._QAfgwnWs}`);
        const _zFsZuyzU = await _TURmJuyg(_XwWMBdma._QAfgwnWs, parseInt(_XwWMBdma._AWekBocW, 10));
        _zFsZuyzU.closed.catch(() => {}).finally(() => _uxuzvBQE(_hsLDVZWe));
        _lAsRxNGk(_zFsZuyzU, _hsLDVZWe, _BxhHmdZv, null);
    };

    try {
        const _bhcEryJB = await _TURmJuyg(_OWJtPIvI, _XksDwEkr);
        _lAsRxNGk(_bhcEryJB, _hsLDVZWe, _BxhHmdZv, _tMjhyYnh);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _tMjhyYnh();
    }
}

function _BqjggCfS(_IMNfnUdD, _FDePxmrJ) {
    let _kCWGMSXe = false;
    return new ReadableStream({
        start(_vQWPYwBn) {
            _IMNfnUdD.addEventListener("_rMNQVEWf", (event) => { if (_kCWGMSXe) return; _vQWPYwBn.enqueue(event._gCtLTBwD); });
            _IMNfnUdD.addEventListener("close", () => { _uxuzvBQE(_IMNfnUdD); if (_kCWGMSXe) return; _vQWPYwBn.close(); });
            _IMNfnUdD.addEventListener("error", (err) => _vQWPYwBn.error(err));
            if (_FDePxmrJ) {
                try {
                    const _wZxbiFJw = atob(_FDePxmrJ.replace(/-/g, "+").replace(/_/g, "/"));
                    _vQWPYwBn.enqueue(Uint8Array.from(_wZxbiFJw, c => c.charCodeAt(0))._mTTOKeeq);
                } catch (_SadlHwMG) { console.error("Failed to decode early _gCtLTBwD:", _SadlHwMG); }
            }
        },
        cancel() { _kCWGMSXe = true; _uxuzvBQE(_IMNfnUdD); },
    });
}

async function _dgkWFQPi(_mTTOKeeq, _QVzLxvxL) {
    if (_mTTOKeeq.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _eBwJYYhn = new Uint8Array(_mTTOKeeq.slice(0, 1));
    const _hkHtVkNi = _KonYCuNC(new Uint8Array(_mTTOKeeq.slice(1, 17)));
    if (_hkHtVkNi !== _QVzLxvxL) return { error: true, details: "Invalid _QVzLxvxL" };
    const _TOzVDUEc = new Uint8Array(_mTTOKeeq.slice(17, 18))[0];
    const _nxjZNoxq = new Uint8Array(_mTTOKeeq.slice(18 + _TOzVDUEc, 19 + _TOzVDUEc))[0];
    if (_nxjZNoxq !== 1) return { error: true, details: `Unsupported _nxjZNoxq: ${_nxjZNoxq}` };
    const _aTlnFrOt = 19 + _TOzVDUEc;
    const _XksDwEkr = new DataView(_mTTOKeeq.slice(_aTlnFrOt, _aTlnFrOt + 2)).getUint16(0);
    let _jsnsBLeN = _aTlnFrOt + 2;
    const _gAVAqIQq = new Uint8Array(_mTTOKeeq.slice(_jsnsBLeN, _jsnsBLeN + 1))[0];
    let _ZxbnzqKz = 0;
    let _gfNzeVQG = _jsnsBLeN + 1;
    let _OWJtPIvI = "";
    switch (_gAVAqIQq) {
        case 1: _ZxbnzqKz = 4; _OWJtPIvI = new Uint8Array(_mTTOKeeq.slice(_gfNzeVQG, _gfNzeVQG + _ZxbnzqKz)).join("."); break;
        case 2: _ZxbnzqKz = new Uint8Array(_mTTOKeeq.slice(_gfNzeVQG, _gfNzeVQG + 1))[0]; _gfNzeVQG++; _OWJtPIvI = new TextDecoder().decode(_mTTOKeeq.slice(_gfNzeVQG, _gfNzeVQG + _ZxbnzqKz)); break;
        case 3: _ZxbnzqKz = 16; const _EzqNVQLF = new DataView(_mTTOKeeq.slice(_gfNzeVQG, _gfNzeVQG + _ZxbnzqKz)); const _ekvMeoGl = []; for (let _ccNBJYvV = 0; _ccNBJYvV < 8; _ccNBJYvV++) _ekvMeoGl.push(_EzqNVQLF.getUint16(_ccNBJYvV * 2).toString(16)); _OWJtPIvI = _ekvMeoGl.join(":"); break;
        default: return { error: true, details: `Invalid _JxAbVIsI _bBhESgzA: ${_gAVAqIQq}` };
    }
    if (!_OWJtPIvI) return { error: true, details: "Target _QAfgwnWs is empty" };
    return { error: false, details: { _OWJtPIvI, _XksDwEkr, _eBwJYYhn, payloadIndex: _gfNzeVQG + _ZxbnzqKz } };
}

async function _lAsRxNGk(_VekXEmSp, _hsLDVZWe, _xjygycxh, _MYPaKzsm) {
    let _LTVPrTBJ = _xjygycxh;
    let _zDUxgCeZ = false;
    let _TzYkOsht = _VekXEmSp._xAERPtrp.pipeTo(new WritableStream({
        write(chunk) {
            _zDUxgCeZ = true;
            if (_hsLDVZWe.readyState !== 1) throw new Error("Channel is not open");
            if (_LTVPrTBJ) {
                const _QbTIhkwC = new Uint8Array(_LTVPrTBJ.byteLength + chunk.byteLength);
                _QbTIhkwC._HXFvlboj(new Uint8Array(_LTVPrTBJ));
                _QbTIhkwC._HXFvlboj(new Uint8Array(chunk), _LTVPrTBJ.byteLength);
                _hsLDVZWe.send(_QbTIhkwC._mTTOKeeq);
                _LTVPrTBJ = null;
            } else {
                _hsLDVZWe.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _hsLDVZWe error:", err._rMNQVEWf);
    });

    await _TzYkOsht;
    if (!_zDUxgCeZ && _MYPaKzsm) {
        _MYPaKzsm();
    }
}

function _uxuzvBQE(_hsLDVZWe) {
    try { if (_hsLDVZWe.readyState === 1 || _hsLDVZWe.readyState === 2) _hsLDVZWe.close(); } catch (_SadlHwMG) {}
}

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

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

async function _PoqmnMPR(_MzNfaJoq, _RbTYUnvR, _MYPaKzsm) {
    try {
        const _CNKyhQXn = await fetch(_MzNfaJoq, {
            _DadfZrLA: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_CNKyhQXn.ok) {
            console.error(`获取 ${_MzNfaJoq} 失败: HTTP ${_CNKyhQXn.status}`);
            return _MYPaKzsm;
        }
        const _jyjVKQbA = await _CNKyhQXn._jyjVKQbA();
        return _RbTYUnvR(_jyjVKQbA);
    } catch (error) {
        console.error(`获取或解析 ${_MzNfaJoq} 时发生网络错误: ${error._rMNQVEWf}`);
        return _MYPaKzsm;
    }
}

function _qDSJwBNT(_jyjVKQbA) {
    if (!_jyjVKQbA) return [];
    const _bqbKQtqu = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _dGuhnilE = _jyjVKQbA.split(/[\s,;#|]+/);
    const _InxEawSc = [];
    for (const _CohuWOzJ of _dGuhnilE) {
        const _pMJgIoEx = _CohuWOzJ.trim();
        if (!_pMJgIoEx) continue;
        const _uyRkyzJw = _pMJgIoEx.lastIndexOf(':');
        let _IIeBdCoN = _pMJgIoEx;
        if(_uyRkyzJw > _pMJgIoEx.lastIndexOf(']')) {
             const _SceRflBN = _pMJgIoEx.substring(_uyRkyzJw + 1);
             if(!isNaN(_SceRflBN) && _SceRflBN._QesPjbkJ > 0) {
                _IIeBdCoN = _pMJgIoEx.substring(0, _uyRkyzJw);
             }
        }
        if (_KGeEehhb.isValid(_IIeBdCoN.replace(/[\[\]]/g, '')) || _bqbKQtqu.test(_pMJgIoEx)) {
            _InxEawSc.push(_pMJgIoEx);
        }
    }
    return _InxEawSc;
}

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

function _ysebiiPW(_jyjVKQbA) {
    if (!_jyjVKQbA) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_jyjVKQbA}}`);
    } catch (_SadlHwMG) {
        console.error("解析 _znBMqhPv 失败:", _SadlHwMG);
        return { "N/A": "未知" };
    }
}

const _KGeEehhb = {
    isValid: (_zAuEMLsy) => _KGeEehhb.isIPv4(_zAuEMLsy) || _KGeEehhb.isIPv6(_zAuEMLsy),
    isIPv4: (_zAuEMLsy) => {
        if (typeof _zAuEMLsy !== 'string') return false;
        const _ekvMeoGl = _zAuEMLsy.split('.');
        if (_ekvMeoGl._QesPjbkJ !== 4) return false;
        return _ekvMeoGl.every(_AdUlisUl => {
            const _NyRuNGpS = parseInt(_AdUlisUl, 10);
            return !isNaN(_NyRuNGpS) && _NyRuNGpS >= 0 && _NyRuNGpS <= 255 && String(_NyRuNGpS) === _AdUlisUl;
        });
    },
    isIPv6: (_zAuEMLsy) => {
        if (typeof _zAuEMLsy !== '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]))$/_ccNBJYvV.test(_zAuEMLsy);
    },
    toLong4: (_zAuEMLsy) => _zAuEMLsy.split('.').reduce((acc, octet, _ccNBJYvV) => acc + (parseInt(octet) << (8*(3-_ccNBJYvV))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_zAuEMLsy) => {
        try {
            const _jrhHrKeO = _zAuEMLsy.split('/')[0];
            const _ekvMeoGl = _jrhHrKeO.split('::');
            if (_ekvMeoGl._QesPjbkJ > 2) return 0n;
            let _snKvmCJT = [];
            if (_ekvMeoGl[0]) {
                _snKvmCJT = _ekvMeoGl[0].split(':');
            }
            let _xuGLEiKV = [];
            if (_ekvMeoGl._QesPjbkJ > 1 && _ekvMeoGl[1]) {
                _xuGLEiKV = _ekvMeoGl[1].split(':');
            }
            if (_snKvmCJT._QesPjbkJ + _xuGLEiKV._QesPjbkJ > 8) return 0n;
            const _KCJtuCiX = 8 - (_snKvmCJT._QesPjbkJ + _xuGLEiKV._QesPjbkJ);
            const _yLKphMwg = [
                ..._snKvmCJT,
                ...Array(_KCJtuCiX).fill('0'),
                ..._xuGLEiKV
            ].map(_AdUlisUl => _AdUlisUl || '0');
            while(_yLKphMwg._QesPjbkJ < 8) {
                _yLKphMwg.push('0');
            }
            let _lEcUvOth = 0n;
            for (const _AdUlisUl of _yLKphMwg) {
                if (_AdUlisUl._QesPjbkJ > 4) return 0n;
                const _FjzeQSAe = BigInt('0x' + _AdUlisUl);
                _lEcUvOth = (_lEcUvOth << 16n) | _FjzeQSAe;
            }
            return _lEcUvOth;
        } catch(_SadlHwMG) {
            return 0n;
        }
    },
    fromBigInt6: (_lEcUvOth) => {
        if (typeof _lEcUvOth !== '_lEcUvOth' || _lEcUvOth < 0n) return null;
        const _ekvMeoGl = [];
        for (let _ccNBJYvV = 0; _ccNBJYvV < 8; _ccNBJYvV++) {
            _ekvMeoGl.unshift((_lEcUvOth & 0xFFFFn).toString(16));
            _lEcUvOth >>= 16n;
        }
        let _oaxPZpVP = { start: -1, _wmgrhNgG: 0 };
        let _wgEjxurj = { start: -1, _wmgrhNgG: 0 };
        for (let _ccNBJYvV = 0; _ccNBJYvV < 8; _ccNBJYvV++) {
            if (_ekvMeoGl[_ccNBJYvV] === '0') {
                if (_wgEjxurj.start === -1) _wgEjxurj.start = _ccNBJYvV;
                _wgEjxurj._wmgrhNgG++;
            } else {
                if (_wgEjxurj._wmgrhNgG > _oaxPZpVP._wmgrhNgG) _oaxPZpVP = { ..._wgEjxurj };
                _wgEjxurj = { start: -1, _wmgrhNgG: 0 };
            }
        }
        if (_wgEjxurj._wmgrhNgG > _oaxPZpVP._wmgrhNgG) _oaxPZpVP = { ..._wgEjxurj };
        if (_oaxPZpVP._wmgrhNgG > 1) {
            _ekvMeoGl.splice(_oaxPZpVP.start, _oaxPZpVP._wmgrhNgG, '');
            if (_oaxPZpVP.start === 0) _ekvMeoGl.unshift('');
            if (_oaxPZpVP.start + _oaxPZpVP._wmgrhNgG === 8) _ekvMeoGl.push('');
        }
        return _ekvMeoGl.join(':');
    },
    cidrToRange: (cidr, _ufeKXIEz = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _uybNQKyo = parseInt(bitsStr, 10);
            const _AUGlySic = new Set();
            if (_KGeEehhb.isIPv4(range)) {
                if (isNaN(_uybNQKyo) || _uybNQKyo < 8 || _uybNQKyo > 32) return [];
                if (_uybNQKyo === 32) return [range];
                const _LVizsWOm = _KGeEehhb.toLong4(range);
                const _ZCfXdIgL = (0xFFFFFFFF << (32 - _uybNQKyo)) >>> 0;
                const _vnFuBauk = _LVizsWOm & _ZCfXdIgL;
                const _tzmpnbdu = 1 << (32 - _uybNQKyo);
                if (_tzmpnbdu <= 2) return [];
                const _vzEMlmdc = Math.min(_ufeKXIEz, _tzmpnbdu - 2);
                let _aQdzfJsp = 0;
                while (_AUGlySic.size < _vzEMlmdc && _aQdzfJsp < _vzEMlmdc * 5) {
                    const _WrTsRxfJ = Math.floor(Math.random() * (_tzmpnbdu - 2)) + 1;
                    _AUGlySic.add(_KGeEehhb.fromLong4((_vnFuBauk + _WrTsRxfJ) >>> 0));
                    _aQdzfJsp++;
                }
                return Array.from(_AUGlySic);
            } else if (_KGeEehhb.isIPv6(range)) {
                if (isNaN(_uybNQKyo) || _uybNQKyo < 16 || _uybNQKyo > 128) return [];
                 if (_uybNQKyo === 128) return [range];
                const _VgAwsrBQ = _KGeEehhb.toBigInt6(range);
                const _ZCfXdIgL = (2n ** BigInt(128 - _uybNQKyo) - 1n);
                const _vnFuBauk = _VgAwsrBQ & ~_ZCfXdIgL;
                const _RwEujrIi = 2n ** BigInt(128 - _uybNQKyo);
                if (_RwEujrIi <= 2n) return [];
                let _aQdzfJsp = 0;
                while (_AUGlySic.size < _ufeKXIEz && _aQdzfJsp < _ufeKXIEz * 5) {
                     const _FRrLVIvr = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_FRrLVIvr);
                     let _VEuGGZEV = 0n;
                     for (const _PCqBJUiV of _FRrLVIvr) {
                         _VEuGGZEV = (_VEuGGZEV << 8n) | BigInt(_PCqBJUiV);
                     }
                     const _WrTsRxfJ = _VEuGGZEV % (_RwEujrIi - 2n) + 1n;
                     _AUGlySic.add(_KGeEehhb.fromBigInt6(_vnFuBauk + _WrTsRxfJ));
                     _aQdzfJsp++;
                }
                return Array.from(_AUGlySic);
            }
            return [];
        } catch(_SadlHwMG) {
            console.error(`CIDR to range failed for ${cidr}:`, _SadlHwMG);
            return [];
        }
    }
};

function _NWBeAmEd(_IOwKgvxO, _jTrVGKtk) {
    const _BctPdBiD = {};
    const _ynNIIAge = Object._ynNIIAge(_jTrVGKtk);
    const _ekvMeoGl = _ynNIIAge.map(_xtbiKbAc => {
        const _PgGgLlFP = _IOwKgvxO * (_jTrVGKtk[_xtbiKbAc] / 100);
        return { _xtbiKbAc, _ufeKXIEz: Math.floor(_PgGgLlFP), remainder: _PgGgLlFP - Math.floor(_PgGgLlFP) };
    });
    let _EMqcpvfh = _ekvMeoGl.reduce((acc, _AdUlisUl) => acc + _AdUlisUl._ufeKXIEz, 0);
    _ekvMeoGl.sort((a, b) => b.remainder - a.remainder);
    let _fdxCvecF = _IOwKgvxO - _EMqcpvfh;
    for (let _ccNBJYvV = 0; _ccNBJYvV < _fdxCvecF; _ccNBJYvV++) {
        _ekvMeoGl[_ccNBJYvV % _ekvMeoGl._QesPjbkJ]._ufeKXIEz++;
    }
    for (const _AdUlisUl of _ekvMeoGl) {
        _BctPdBiD[_AdUlisUl._xtbiKbAc] = _AdUlisUl._ufeKXIEz;
    }
    return _BctPdBiD;
}

async function _eOnknGQi(_XANgtyXx) {
    const _EZRVkJkh = _XANgtyXx.DB.prepare("SELECT _FjzeQSAe FROM kv_data WHERE _xtbiKbAc = ?").bind(_YkXwaZqS);
    const { _uBqtZcLI } = await _EZRVkJkh.all();
    return _uBqtZcLI._QesPjbkJ > 0 ? _uBqtZcLI[0]._FjzeQSAe : null;
}

async function _SkgrVqSb(_XANgtyXx, _nnlVslgS) {
    const _EZRVkJkh = _XANgtyXx.DB.prepare(
        "INSERT INTO kv_data (_xtbiKbAc, _FjzeQSAe) VALUES (?, ?) ON CONFLICT(_xtbiKbAc) DO UPDATE SET _FjzeQSAe = excluded._FjzeQSAe"
    );
    await _EZRVkJkh.bind(_YkXwaZqS, _nnlVslgS).run();
}

async function _gCdyaFdU(_unWtLrWv, _XANgtyXx) {
    const { _nnlVslgS } = await _unWtLrWv.json();
    const _iDYWgmWp = await _eOnknGQi(_XANgtyXx);
    if (_iDYWgmWp === _nnlVslgS) {
        return _XnwahKxF({ success: true });
    }
    return _XnwahKxF({ success: false, _rMNQVEWf: '密码错误' }, 401);
}

async function _vGFsrSyA(_unWtLrWv, _XANgtyXx) {
    const _baVqYQju = await _soKzAEBm(_XANgtyXx);
    if (!_baVqYQju.visitorPassword || !_baVqYQju.visitorPassword._xTaAvhYb) {
        return _XnwahKxF({ success: true });
    }
    try {
        const { _nnlVslgS } = await _unWtLrWv.json();
        const _WHNDjyBF = _baVqYQju.visitorPassword._nnlVslgS;
        if (_WHNDjyBF && _nnlVslgS === _WHNDjyBF) {
            return _XnwahKxF({ success: true });
        }
        return _XnwahKxF({ success: false, _rMNQVEWf: '访客密码错误' }, 401);
    } catch (_SadlHwMG) {
        return _XnwahKxF({ success: false, _rMNQVEWf: '无效请求' }, 400);
    }
}

async function _DlsFgCuE(_unWtLrWv, _XANgtyXx) {
    const _NkPCCknE = await _eOnknGQi(_XANgtyXx);
    if (_NkPCCknE) {
        return _XnwahKxF({ success: false, _rMNQVEWf: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _nnlVslgS } = await _unWtLrWv.json();
    if (!_nnlVslgS || _nnlVslgS._QesPjbkJ < 6) {
        return _XnwahKxF({ success: false, _rMNQVEWf: "密码长度不能少于6位。" }, 400);
    }
    await _SkgrVqSb(_XANgtyXx, _nnlVslgS);
    return _XnwahKxF({ success: true, _rMNQVEWf: "初始密码设置成功!请刷新页面并登录。" });
}

async function _mvMzTaBf(_unWtLrWv, _XANgtyXx) {
    const { _fnzTOSpq, _ZrHEFnvG } = await _unWtLrWv.json();
    const _iDYWgmWp = await _eOnknGQi(_XANgtyXx);
    if (_iDYWgmWp !== _fnzTOSpq) {
        return _XnwahKxF({ success: false, _rMNQVEWf: "旧密码错误。" }, 403);
    }
    if (!_ZrHEFnvG || _ZrHEFnvG._QesPjbkJ < 6) {
        return _XnwahKxF({ success: false, _rMNQVEWf: "新密码长度不能少于6位。" }, 400);
    }
    await _SkgrVqSb(_XANgtyXx, _ZrHEFnvG);
    return _XnwahKxF({ success: true, _rMNQVEWf: "密码修改成功!" });
}

function _pKFxDfHp() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _uPWvIonq: '',
        api: {
            _xTaAvhYb: true,
            _rMNQVEWf: '维护中...',
        },
        ispFilter: { _xTaAvhYb: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _xTaAvhYb: true
        },
        websocketStreamer: {
            _xTaAvhYb: true,
            _MzNfaJoq: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _xTaAvhYb: true
        },
        visitorPassword: {
            _xTaAvhYb: false,
            _nnlVslgS: '',
        },
        customSubPath: {
            _xTaAvhYb: false,
            _kBOGxKZb: 'latest',
        },
        subscriptionId: {
            _QesPjbkJ: 8,
            _BXalCNft: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _xTaAvhYb: true,
            template: 'vless://{_jzCHUaST}@{_zAuEMLsy}:{_AWekBocW}?encryption=none&security=tls&sni={_QAfgwnWs}&fp=random&_bBhESgzA=ws&_QAfgwnWs={_QAfgwnWs}&_kBOGxKZb={_kBOGxKZb}#{_ckFbtgjN}',
            selectionMode: 'first',
            _VRKzpBsE: [
                { _ckFbtgjN: '默认配置', _QAfgwnWs: '', '_jzCHUaST': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _kBOGxKZb: '/?ed=2560' }
            ],
            _bBKGNGpf: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _xTaAvhYb: false,
                _jyjVKQbA: '',
                _FFXiMqTd: 5
            },
            marquee: {
                _xTaAvhYb: false,
                _jyjVKQbA: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _xTaAvhYb: true,
            sources: [
                { _VAZxHmhz: 'CF官方IPV4', _AUGlySic: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _pAkoNRhV: false, _xTaAvhYb: true, _CSAvOhoQ: 20 },
                { _VAZxHmhz: 'CF官方IPV6', _AUGlySic: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _pAkoNRhV: false, _xTaAvhYb: true, _CSAvOhoQ: 20 },
                { _VAZxHmhz: '反代优选0', _AUGlySic: 'https://wvs.sosorg.nyc.mn/sub?_jzCHUaST=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_bBhESgzA=ws&_QAfgwnWs=ss.nzvrn.com&_kBOGxKZb=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _pAkoNRhV: false, _xTaAvhYb: true, _CSAvOhoQ: 30 },
                { _VAZxHmhz: '官方优选1', _AUGlySic: 'https://ipdb.api.030101.xyz/?_bBhESgzA=bestcf&_UWKjCwhu=true', _pAkoNRhV: false, _xTaAvhYb: true, _CSAvOhoQ: 10 },
                { _VAZxHmhz: '反代优选2', _AUGlySic: 'https://ipdb.api.030101.xyz/?_bBhESgzA=bestproxy&_UWKjCwhu=true', _pAkoNRhV: false, _xTaAvhYb: true, _CSAvOhoQ: 5 },
                { _VAZxHmhz: '官方优选2', _AUGlySic: 'https://addressesapi.090227.xyz/_zAuEMLsy.164746.xyz', _pAkoNRhV: false, _xTaAvhYb: true, _CSAvOhoQ: 10 },
				{ _VAZxHmhz: '官方优选3', _AUGlySic: 'https://cfxr.eu.org/getSub?_QAfgwnWs=snipaste.huggy.qzz.io', _pAkoNRhV: false, _xTaAvhYb: true, _CSAvOhoQ: 5 },
                { _VAZxHmhz: '官方优选4', _AUGlySic: 'https://addressesapi.090227.xyz/CloudFlareYes', _pAkoNRhV: false, _xTaAvhYb: true, _CSAvOhoQ: 10 }
            ]
        },
        customNodes: {
            _xTaAvhYb: 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 _kMdJyBBK(_yYoOeyvv, _fWOIrCsl) {
    if (!_yYoOeyvv) return _fWOIrCsl;
    const _HtDhIqVo = { ..._fWOIrCsl };
    for (const _xtbiKbAc in _fWOIrCsl) {
        if (_yYoOeyvv.hasOwnProperty(_xtbiKbAc)) {
             if (typeof _yYoOeyvv[_xtbiKbAc] === 'object' && _yYoOeyvv[_xtbiKbAc] !== null && !Array.isArray(_yYoOeyvv[_xtbiKbAc]) && typeof _fWOIrCsl[_xtbiKbAc] === 'object' && _fWOIrCsl[_xtbiKbAc] !== null && !Array.isArray(_fWOIrCsl[_xtbiKbAc])) {
                _HtDhIqVo[_xtbiKbAc] = _kMdJyBBK(_yYoOeyvv[_xtbiKbAc], _fWOIrCsl[_xtbiKbAc]);
            } else {
                _HtDhIqVo[_xtbiKbAc] = _yYoOeyvv[_xtbiKbAc];
            }
        }
    }
    return _HtDhIqVo;
}

async function _soKzAEBm(_XANgtyXx) {
    try {
        const _EZRVkJkh = _XANgtyXx.DB.prepare("SELECT _FjzeQSAe FROM kv_data WHERE _xtbiKbAc = ?").bind(_YOaQeEol);
        const { _uBqtZcLI } = await _EZRVkJkh.all();
        const _VLPKFJCk = _uBqtZcLI._QesPjbkJ > 0 ? _uBqtZcLI[0]._FjzeQSAe : null;
        const _GsmTHkuP = _VLPKFJCk ? JSON.parse(_VLPKFJCk) : {};
        return _kMdJyBBK(_GsmTHkuP, _pKFxDfHp());
    } catch (_SadlHwMG) {
        console.error("无法从D1获取或解析全局配置:", _SadlHwMG);
        return _pKFxDfHp();
    }
}

async function _INURypka(_XANgtyXx) {
    const _rtoMLCWc = await _soKzAEBm(_XANgtyXx);
    return _XnwahKxF(_rtoMLCWc);
}

async function _AXrrVwrD(_unWtLrWv, _XANgtyXx, _QxRifCBi) {
    try {
        const { _rtoMLCWc, adminPassword } = await _unWtLrWv.json();
        const _iDYWgmWp = await _eOnknGQi(_XANgtyXx);
        if (_iDYWgmWp !== adminPassword) {
            return _XnwahKxF({ success: false, _rMNQVEWf: "管理员密码错误" }, 403);
        }
        const _EZRVkJkh = _XANgtyXx.DB.prepare(
          "INSERT INTO kv_data (_xtbiKbAc, _FjzeQSAe) VALUES (?, ?) ON CONFLICT(_xtbiKbAc) DO UPDATE SET _FjzeQSAe = excluded._FjzeQSAe"
        );
        const _wtGQcgsm = _EZRVkJkh.bind(_YOaQeEol, JSON.stringify(_rtoMLCWc)).run();
        _QxRifCBi.waitUntil(_wtGQcgsm);
        return _XnwahKxF({ success: true, _rMNQVEWf: "配置已成功保存!" });
    } catch (_SadlHwMG) {
        return _XnwahKxF({ success: false, _rMNQVEWf: `保存失败: ${_SadlHwMG._rMNQVEWf}` }, 500);
    }
}

async function _ukmKACxO() {
    const _HzABiDyi = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _tWeFSiFs = await fetch(_HzABiDyi);
        const _rTrtjQcC = await _tWeFSiFs.json();
        const _sRnAHZxJ = 'https://www.bing.com' + _rTrtjQcC.images[0]._MzNfaJoq;
        return fetch(_sRnAHZxJ);
    } catch (_SadlHwMG) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _ifEsSyef(_zAuEMLsy) {
    try {
        const _CNKyhQXn = await fetch(`http://_zAuEMLsy-api.com/json/${_zAuEMLsy}?fields=status,_UWKjCwhu,countryCode,_XrXMgXRI&lang=zh-CN`);
        if (_CNKyhQXn.ok) {
            const _gCtLTBwD = await _CNKyhQXn.json();
            if (_gCtLTBwD.status === 'success' && (_gCtLTBwD.countryCode || _gCtLTBwD._UWKjCwhu)) {
                let _XrXMgXRI = _gCtLTBwD._XrXMgXRI || '未知';
                if (_XrXMgXRI.toLowerCase().includes('cloudflare')) {
                    _XrXMgXRI = 'CloudFlare';
                }
                return {
                    _VAZxHmhz: _znBMqhPv[_gCtLTBwD.countryCode] || _gCtLTBwD._UWKjCwhu || _gCtLTBwD.countryCode,
                    _XrXMgXRI: _XrXMgXRI
                };
            }
        }
    } catch (_SadlHwMG) {}

    try {
        const _CNKyhQXn = await fetch(`https://api._zAuEMLsy.sb/geoip/${_zAuEMLsy}`);
        if (_CNKyhQXn.ok) {
            const _gCtLTBwD = await _CNKyhQXn.json();
            if (_gCtLTBwD.country_code || _gCtLTBwD._UWKjCwhu) {
                let _XrXMgXRI = _gCtLTBwD._XrXMgXRI || '未知';
                if (_XrXMgXRI.toLowerCase().includes('cloudflare')) {
                    _XrXMgXRI = 'CloudFlare';
                }
                return {
                    _VAZxHmhz: _znBMqhPv[_gCtLTBwD.country_code] || _gCtLTBwD._UWKjCwhu || _gCtLTBwD.country_code,
                    _XrXMgXRI: _XrXMgXRI
                };
            }
        }
    } catch (_SadlHwMG) {}
    
    return { _VAZxHmhz: '未知', _XrXMgXRI: '未知' };
}

async function _mZobfEvp(_unWtLrWv, _XANgtyXx) {
    try {
        const { _AUGlySic } = await _unWtLrWv.json();
        if (!Array.isArray(_AUGlySic)) {
            return _XnwahKxF({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _SLBMxpkd = _AUGlySic.map(_zAuEMLsy => _ifEsSyef(_zAuEMLsy).then(_LFHzjGIb => ({ _zAuEMLsy, ..._LFHzjGIb })));
        const _uBqtZcLI = await Promise.all(_SLBMxpkd);
        return _XnwahKxF(_uBqtZcLI);
    } catch (_SadlHwMG) {
        return _XnwahKxF({ error: `获取地理位置失败: ${_SadlHwMG._rMNQVEWf}` }, 500);
    }
}

async function _FsGaXnNt(_unWtLrWv, _XANgtyXx) {
    const _rtoMLCWc = await _soKzAEBm(_XANgtyXx);
    if (!_rtoMLCWc.cloudStorage._xTaAvhYb) {
        return _XnwahKxF({ _uBqtZcLI: [], generatedBy: null });
    }
    try {
        const _EZRVkJkh = _XANgtyXx.DB.prepare("SELECT _FjzeQSAe FROM kv_data WHERE _xtbiKbAc = ?").bind(_sTEsIdky);
        const { _uBqtZcLI } = await _EZRVkJkh.all();
        const _UkkQZHVC = _uBqtZcLI._QesPjbkJ > 0 ? _uBqtZcLI[0]._FjzeQSAe : null;
        const _bQzETLqH = _UkkQZHVC ? JSON.parse(_UkkQZHVC) : null;
        return _XnwahKxF(_bQzETLqH || { _uBqtZcLI: [], generatedBy: null });
    } catch (_SadlHwMG) {
        console.error("从D1读取缓存IP失败:", _SadlHwMG);
        return _XnwahKxF({ _uBqtZcLI: [], generatedBy: null });
    }
}

async function _uUJzEIeS(_unWtLrWv, _XANgtyXx, _QxRifCBi) {
    const _rtoMLCWc = await _soKzAEBm(_XANgtyXx);
    if (!_rtoMLCWc.cloudStorage._xTaAvhYb) {
        return _XnwahKxF({ success: true, _rMNQVEWf: "云端存储已禁用,不保存结果。" });
    }
    const _AXvvhUpm = _unWtLrWv._DadfZrLA.get('CF-Connecting-IP') || "未知IP";
    const _UWKjCwhu = _unWtLrWv.cf?._UWKjCwhu || "未知";
    const _sBAnUVNo = _unWtLrWv.cf?._sBAnUVNo || "";
    let _yBGbbchZ = _znBMqhPv[_UWKjCwhu] || _UWKjCwhu;
    if (_sBAnUVNo && _sBAnUVNo !== "未知城市" && _sBAnUVNo !== _UWKjCwhu) _yBGbbchZ = `${_yBGbbchZ} ${_znBMqhPv[_sBAnUVNo] || _sBAnUVNo}`;
    const _UMWMXAwf = {
        _zAuEMLsy: _nvlzNtjw(_AXvvhUpm),
        _VAZxHmhz: _yBGbbchZ.trim(),
        time: _jYSLbNax()
    };
    try {
        const _gyBZnOMk = await _unWtLrWv.json();
        if (!Array.isArray(_gyBZnOMk)) return _XnwahKxF({ error: "无效数据格式" }, 400);
        const _YTxjJsoD = _gyBZnOMk.map(_ETdGKdNw => ({
            _zAuEMLsy: String(_ETdGKdNw._zAuEMLsy || ''),
            _AWekBocW: _ETdGKdNw._AWekBocW ? parseInt(_ETdGKdNw._AWekBocW, 10) : undefined,
            _UMlobzDs: parseInt(_ETdGKdNw._UMlobzDs, 10),
            _VAZxHmhz: typeof _ETdGKdNw._VAZxHmhz === 'string' ? _ETdGKdNw._VAZxHmhz.substring(0, 50) : 'N/A',
            _XrXMgXRI: typeof _ETdGKdNw._XrXMgXRI === 'string' ? _ETdGKdNw._XrXMgXRI.substring(0, 100) : 'N/A'
        }));
        const _IsUXpHpz = {
            generatedBy: _UMWMXAwf,
            _uBqtZcLI: _YTxjJsoD
        };
        const _jvcttMpN = _XANgtyXx.DB.prepare(
          "INSERT INTO kv_data (_xtbiKbAc, _FjzeQSAe) VALUES (?, ?) ON CONFLICT(_xtbiKbAc) DO UPDATE SET _FjzeQSAe = excluded._FjzeQSAe"
        ).bind(_sTEsIdky, JSON.stringify(_IsUXpHpz)).run();
        if (_rtoMLCWc.telegram.bot_token && _rtoMLCWc.telegram.chat_id) {
            const _qEOivTZi = _YTxjJsoD.map(r => `${r._zAuEMLsy} ~ ${r._VAZxHmhz}`).join('\n');
            const _PmlduwVw = `优选完成!\n来源: ${_UMWMXAwf._zAuEMLsy} (${_UMWMXAwf._VAZxHmhz})\n时间: ${_UMWMXAwf.time}\n\n结果:\n${_qEOivTZi}`;
            const _unDOHtLi = `https://api.telegram.org/bot${_rtoMLCWc.telegram.bot_token}/sendMessage?chat_id=${_rtoMLCWc.telegram.chat_id}&_jyjVKQbA=${encodeURIComponent(_PmlduwVw)}`;
            const _XCJtSpza = fetch(_unDOHtLi).catch(_SadlHwMG => console.error("Telegram结果通知失败:", _SadlHwMG));
            _QxRifCBi.waitUntil(Promise.all([_jvcttMpN, _XCJtSpza]));
        } else {
             _QxRifCBi.waitUntil(_jvcttMpN);
        }
        return _XnwahKxF({ success: true, _rMNQVEWf: "结果已保存" });
    } catch (_SadlHwMG) {
        return _XnwahKxF({ error: "D1写入失败", _rMNQVEWf: _SadlHwMG._rMNQVEWf }, 500);
    }
}

async function _qDsjjrmz(_unWtLrWv, _XANgtyXx, _QxRifCBi) {
    try {
        const _rHkeokwd = await _unWtLrWv.json();
        if (!Array.isArray(_rHkeokwd)) return _XnwahKxF({ error: "无效数据格式" }, 400);
        const _IsUXpHpz = {
            _uBqtZcLI: _rHkeokwd
        };
        const _EZRVkJkh = _XANgtyXx.DB.prepare(
          "INSERT INTO kv_data (_xtbiKbAc, _FjzeQSAe) VALUES (?, ?) ON CONFLICT(_xtbiKbAc) DO UPDATE SET _FjzeQSAe = excluded._FjzeQSAe"
        );
        const _wtGQcgsm = _EZRVkJkh.bind(_ZRujubAc, JSON.stringify(_IsUXpHpz)).run();
        _QxRifCBi.waitUntil(_wtGQcgsm);
        return _XnwahKxF({ success: true });
    } catch (_SadlHwMG) {
        return _XnwahKxF({ error: "D1写入临时缓存失败", _rMNQVEWf: _SadlHwMG._rMNQVEWf }, 500);
    }
}

function _TeNmDUNB(_QesPjbkJ, _BXalCNft) {
    let _KYJgvwFB = '';
    const _lMOpkSGg = _BXalCNft._QesPjbkJ;
    for (let _ccNBJYvV = 0; _ccNBJYvV < _QesPjbkJ; _ccNBJYvV++) {
        _KYJgvwFB += _BXalCNft.charAt(Math.floor(Math.random() * _lMOpkSGg));
    }
    return _KYJgvwFB;
}

async function _xjKfkZJl(_unWtLrWv, _XANgtyXx) {
    try {
        const _gyBZnOMk = await _unWtLrWv.json();
        if (!Array.isArray(_gyBZnOMk) || _gyBZnOMk._QesPjbkJ === 0) {
            return _XnwahKxF({ error: "无效或空的IP列表" }, 400);
        }

        const _rtoMLCWc = await _soKzAEBm(_XANgtyXx);
        const _niEttuVe = _rtoMLCWc.subscriptionId || { _QesPjbkJ: 8, _BXalCNft: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _yOkwdbnF;
        let _ogTCNESR = false;
        let _aQdzfJsp = 0;
        const _ttNjvBAa = 10;

        while (!_ogTCNESR && _aQdzfJsp < _ttNjvBAa) {
            _yOkwdbnF = _TeNmDUNB(_niEttuVe._QesPjbkJ, _niEttuVe._BXalCNft);
            const { _uBqtZcLI } = await _XANgtyXx.DB.prepare("SELECT _xWYJSzae FROM optimized_results WHERE _xWYJSzae = ?").bind(_yOkwdbnF).all();
            if (_uBqtZcLI._QesPjbkJ === 0) {
                _ogTCNESR = true;
            }
            _aQdzfJsp++;
        }

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

        const _NMvxanMf = JSON.stringify({ _AUGlySic: _gyBZnOMk });
        await _XANgtyXx.DB.prepare(
            "INSERT INTO optimized_results (_xWYJSzae, _gCtLTBwD) VALUES (?, ?)"
        ).bind(_yOkwdbnF, _NMvxanMf).run();
        await _XANgtyXx.DB.prepare(
            "INSERT INTO kv_data (_xtbiKbAc, _FjzeQSAe) VALUES (?, ?) ON CONFLICT(_xtbiKbAc) DO UPDATE SET _FjzeQSAe = excluded._FjzeQSAe"
        ).bind(_WjhmdMXu, _yOkwdbnF).run();
            
        return _XnwahKxF({ success: true, _xWYJSzae: _yOkwdbnF });
    } catch (_SadlHwMG) {
        return _XnwahKxF({ error: "保存优选结果失败", _rMNQVEWf: _SadlHwMG._rMNQVEWf }, 500);
    }
}

async function _IVTddehG(_unWtLrWv, _XANgtyXx) {
    try {
        const _yOkwdbnF = _unWtLrWv._CKagJuvR._xWYJSzae;
        if (!_yOkwdbnF) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _KYJgvwFB = await _XANgtyXx.DB.prepare("SELECT _gCtLTBwD FROM optimized_results WHERE _xWYJSzae = ?").bind(_yOkwdbnF).first();
        if (!_KYJgvwFB) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _gCtLTBwD = JSON.parse(_KYJgvwFB._gCtLTBwD);
        let _qEOivTZi = _gCtLTBwD._AUGlySic;

        const _rtoMLCWc = await _soKzAEBm(_XANgtyXx);

        if (_rtoMLCWc.customNodes && _rtoMLCWc.customNodes._xTaAvhYb && _rtoMLCWc.customNodes.list) {
            const _FeAOvpjU = _rtoMLCWc.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _RrzDZPVy = _FeAOvpjU.map(_jNUIdcAu => {
                let _JxAbVIsI = _jNUIdcAu;
                let _AWekBocW = undefined;
                let _ckFbtgjN = null;

                if (_JxAbVIsI.includes('@')) {
                    const _ekvMeoGl = _JxAbVIsI.split('@');
                    _ckFbtgjN = _ekvMeoGl.pop();
                    _JxAbVIsI = _ekvMeoGl.join('@');
                }

                if (_JxAbVIsI.includes('#')) {
                    const _ekvMeoGl = _JxAbVIsI.split('#');
                    const _SceRflBN = _ekvMeoGl.pop();
                    if (!isNaN(_SceRflBN) && _SceRflBN.trim() !== '') {
                        _AWekBocW = parseInt(_SceRflBN, 10);
                    }
                    _JxAbVIsI = _ekvMeoGl.join('#');
                }
                
                return {
                    _zAuEMLsy: _JxAbVIsI,
                    _AWekBocW: _AWekBocW,
                    _VAZxHmhz: _ckFbtgjN || _JxAbVIsI,
                    _XrXMgXRI: '自定义'
                };
            });
            _qEOivTZi.unshift(..._RrzDZPVy);
        }
        
        const { itemLink } = _rtoMLCWc;
        const _kDCmtEMk = new URL(_unWtLrWv._MzNfaJoq)._lZjYBycT;
        let _pLloicgJ;

        if (_rtoMLCWc.websocketStreamer && _rtoMLCWc.websocketStreamer._xTaAvhYb) {
            if (!itemLink || !itemLink._xTaAvhYb || !itemLink._VRKzpBsE || itemLink._VRKzpBsE._QesPjbkJ === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _pLloicgJ = _qEOivTZi.map((_ETdGKdNw, _ufQpLglS) => {
                let _ckFbtgjN;
                if (_ETdGKdNw._XrXMgXRI === '自定义') {
                     _ckFbtgjN = `${_ufQpLglS + 1} - ${_ETdGKdNw._VAZxHmhz}`;
                } else {
                    _ckFbtgjN = `${_ufQpLglS + 1} - ${_ETdGKdNw._VAZxHmhz || '未知'}`;
                    if (!_ETdGKdNw._XrXMgXRI || !_ETdGKdNw._XrXMgXRI.toLowerCase().includes('cloudflare')) {
                        _ckFbtgjN += '(反代)';
                    }
                }
                const _wmwBhkVB = _KGeEehhb.isIPv6(_ETdGKdNw._zAuEMLsy) ? `[${_ETdGKdNw._zAuEMLsy}]` : _ETdGKdNw._zAuEMLsy;
                const _AWekBocW = _ETdGKdNw._AWekBocW || 443;
                const _iOTwuSzy = itemLink._VRKzpBsE[0];
                const _qgFykIjN = _iOTwuSzy._jzCHUaST || '';
                const _jzCHUaST = (_qgFykIjN && _rrFYLNQl(_qgFykIjN)) ? _qgFykIjN : crypto.randomUUID();
                const _kBOGxKZb = '/snippets?_zAuEMLsy=endpointAddress:_AWekBocW(443)&nat64=6to4';
                const _QAfgwnWs = _iOTwuSzy._QAfgwnWs || _kDCmtEMk;

                const _CKagJuvR = new URLSearchParams({
                    security: 'tls',
                    _bBhESgzA: 'ws',
                    _QAfgwnWs: _QAfgwnWs,
                    sni: _QAfgwnWs,
                    fp: 'random'
                });
                return `vless://${_jzCHUaST}@${_wmwBhkVB}:${_AWekBocW}?${_CKagJuvR.toString()}&_kBOGxKZb=${encodeURIComponent(encodeURIComponent(_kBOGxKZb))}#${encodeURIComponent(_ckFbtgjN)}`;
            });

        } else {
            if (!itemLink || !itemLink._xTaAvhYb || !itemLink._VRKzpBsE || itemLink._VRKzpBsE._QesPjbkJ === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _iOTwuSzy = itemLink._VRKzpBsE[0];
            const { _QAfgwnWs, _jzCHUaST, _kBOGxKZb } = _iOTwuSzy;
            _pLloicgJ = _qEOivTZi.map((_ETdGKdNw, _ufQpLglS) => {
                let _ckFbtgjN;
                if (_ETdGKdNw._XrXMgXRI === '自定义') {
                     _ckFbtgjN = `${_ufQpLglS + 1} - ${_ETdGKdNw._VAZxHmhz}`;
                } else {
                    _ckFbtgjN = `${_ufQpLglS + 1} - ${_ETdGKdNw._VAZxHmhz || '未知'}`;
                    if (!_ETdGKdNw._XrXMgXRI || !_ETdGKdNw._XrXMgXRI.toLowerCase().includes('cloudflare')) {
                        _ckFbtgjN += '(反代)';
                    }
                }
                const _wmwBhkVB = _KGeEehhb.isIPv6(_ETdGKdNw._zAuEMLsy) ? `[${_ETdGKdNw._zAuEMLsy}]` : _ETdGKdNw._zAuEMLsy;
                const _AWekBocW = _ETdGKdNw._AWekBocW || 443;
                const _CKagJuvR = new URLSearchParams({
                    security: 'tls',
                    _bBhESgzA: 'ws',
                    _QAfgwnWs: _QAfgwnWs || _kDCmtEMk,
                    sni: _QAfgwnWs || _kDCmtEMk,
                    fp: 'random'
                });
                return `vless://${_jzCHUaST}@${_wmwBhkVB}:${_AWekBocW}?${_CKagJuvR.toString()}&_kBOGxKZb=${encodeURIComponent(encodeURIComponent(_kBOGxKZb || ''))}#${encodeURIComponent(_ckFbtgjN)}`;
            });
        }
        
        const _ZeUMsYVD = _pLloicgJ.join('\n');
        const _hUvOzOoV = btoa(_ZeUMsYVD);
        return new Response(_hUvOzOoV, {
            _DadfZrLA: { 'Content-Type': '_jyjVKQbA/plain; _BXalCNft=utf-8' }
        });

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

async function _JISlbuOn(_unWtLrWv) {
    try {
        const { _UUiBvAcs, _bBhESgzA } = await _unWtLrWv.json();
        if (!Array.isArray(_UUiBvAcs)) {
            return new Response('Invalid _UUiBvAcs list', { status: 400 });
        }
        const _LYWFnjSR = _UUiBvAcs.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _MzNfaJoq = `https://cloudflare-dns.com/dns-query?_ckFbtgjN=${encodeURIComponent(domain.trim())}&_bBhESgzA=${_bBhESgzA || 'A'}`;
            return fetch(_MzNfaJoq, { _DadfZrLA: { 'Accept': 'application/dns-json' } })
                .then(_CNKyhQXn => _CNKyhQXn.json())
                .then(_gCtLTBwD => (_gCtLTBwD.Answer ? _gCtLTBwD.Answer.map(a => a._gCtLTBwD) : []))
                .catch(() => []);
        });
        const _CNgOGgNs = (await Promise.all(_LYWFnjSR)).flat();
        const _yqrvftVI = [...new Set(_CNgOGgNs)];
        if (_yqrvftVI._QesPjbkJ === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_yqrvftVI.join('\n'), { _DadfZrLA: { 'Content-Type': '_jyjVKQbA/plain; _BXalCNft=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._rMNQVEWf}`, { status: 500 });
    }
}

async function _GdbbCCmj(_unWtLrWv, _XANgtyXx) {
  try {
      const { _oKVqZdie } = await _unWtLrWv.json();
      if (!Array.isArray(_oKVqZdie)) {
          return _XnwahKxF({ error: "Invalid input, expected an object with a '_oKVqZdie' array." }, 400);
      }
      
      const _CobABRSe = new Set();
      
      const _lfPMbayB = _oKVqZdie.map(_MzNfaJoq =>
          _ZwtiuoBJ(_MzNfaJoq)
              .then(_jyjVKQbA => {
                  if (!_jyjVKQbA) return;
                  const _dGuhnilE = _jyjVKQbA.split(/[\s,;|]+/);
                  for (const _CohuWOzJ of _dGuhnilE) {
                      const _pMJgIoEx = _CohuWOzJ.trim();
                      if (_pMJgIoEx) {
                          _CobABRSe.add(_pMJgIoEx);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_MzNfaJoq}:`, err);
              })
      );
      await Promise.all(_lfPMbayB);
      return _XnwahKxF({ _AUGlySic: Array.from(_CobABRSe) });
  } catch (_SadlHwMG) {
      return _XnwahKxF({ error: `Failed to process URLs: ${_SadlHwMG._rMNQVEWf}` }, 500);
  }
}

async function _jMRsBhXB(_unWtLrWv, _XANgtyXx) {
    const _rtoMLCWc = await _soKzAEBm(_XANgtyXx);
    if (!_rtoMLCWc.api._xTaAvhYb) {
        return new Response(_rtoMLCWc.api._rMNQVEWf || 'API is disabled.', { status: 503 });
    }
    try {
        const _EZRVkJkh = _XANgtyXx.DB.prepare("SELECT _FjzeQSAe FROM kv_data WHERE _xtbiKbAc = ?").bind(_sTEsIdky);
        const { _uBqtZcLI: dbResults } = await _EZRVkJkh.all();
        const _UkkQZHVC = dbResults._QesPjbkJ > 0 ? dbResults[0]._FjzeQSAe : null;
        const _bQzETLqH = _UkkQZHVC ? JSON.parse(_UkkQZHVC) : null;
        if (!_bQzETLqH || !_bQzETLqH._uBqtZcLI || _bQzETLqH._uBqtZcLI._QesPjbkJ === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _DadfZrLA: { 'Content-Type': '_jyjVKQbA/plain; _BXalCNft=utf-8' },
            });
        }
        const _AUGlySic = _bQzETLqH._uBqtZcLI.map(r => r._zAuEMLsy);
        return new Response(_AUGlySic.join('\n'), {
            _DadfZrLA: { 'Content-Type': '_jyjVKQbA/plain; _BXalCNft=utf-8' },
        });
    } catch (_SadlHwMG) {
        console.error("API /_zAuEMLsy 处理错误:", _SadlHwMG);
        return new Response(`API处理时出错: ${_SadlHwMG._rMNQVEWf}`, { status: 500 });
    }
}

function _yPkesejd(_KYJgvwFB, _ufQpLglS, _rtoMLCWc, _kDCmtEMk) {
    const { itemLink } = _rtoMLCWc;
    if (!itemLink || !itemLink._xTaAvhYb) return null;
    const { template, _VRKzpBsE, selectionMode, _bBKGNGpf } = itemLink;
    if (!_VRKzpBsE || _VRKzpBsE._QesPjbkJ === 0) return null;

    let _LzHuHPzX;
    if (selectionMode === 'random') {
        _LzHuHPzX = _VRKzpBsE[_ufQpLglS % _VRKzpBsE._QesPjbkJ];
    } else if (selectionMode === 'first') {
        _LzHuHPzX = _VRKzpBsE[0];
    } else {
        _LzHuHPzX = _VRKzpBsE.find(s => s._ckFbtgjN === selectionMode) || _VRKzpBsE[0];
    }
    if (!_LzHuHPzX) return null;

    let _xDgbFEUa = template;
    const _mHmEbsVl = _KYJgvwFB._AWekBocW || 443;
    const _MWHucuDn = _KGeEehhb.isIPv6(_KYJgvwFB._zAuEMLsy) ? `[${_KYJgvwFB._zAuEMLsy}]` : _KYJgvwFB._zAuEMLsy;
    let _ckFbtgjN = `${_ufQpLglS + 1} 、 ${_KYJgvwFB._VAZxHmhz || '未知'}`;
    if (!_KYJgvwFB._XrXMgXRI || !_KYJgvwFB._XrXMgXRI.toLowerCase().includes('cloudflare')) {
        _ckFbtgjN += '(反代)';
    }
    let _QAfgwnWs = _LzHuHPzX._QAfgwnWs || _kDCmtEMk;

    _xDgbFEUa = _xDgbFEUa.replace(/{_zAuEMLsy}/g, _MWHucuDn)
               .replace(/{_AWekBocW}/g, _mHmEbsVl)
               .replace(/{_ckFbtgjN}/g, encodeURIComponent(_ckFbtgjN))
               .replace(/{rank}/g, _ufQpLglS + 1)
               .replace(/{_VAZxHmhz}/g, encodeURIComponent(_KYJgvwFB._VAZxHmhz || '未知'))
               .replace(/{_XrXMgXRI}/g, encodeURIComponent(_KYJgvwFB._XrXMgXRI || '未知'))
               .replace(/{_QAfgwnWs}/g, encodeURIComponent(_QAfgwnWs))
               .replace(/{_jzCHUaST}/g, encodeURIComponent(_LzHuHPzX['_jzCHUaST'] || ''))
               .replace(/{_kBOGxKZb}/g, encodeURIComponent(encodeURIComponent(_LzHuHPzX._kBOGxKZb || '')));

    if (_bBKGNGpf) {
        _bBKGNGpf.forEach(field => {
            const _obolMVVG = new RegExp('{' + field._ckFbtgjN + '}', 'g');
            _xDgbFEUa = _xDgbFEUa.replace(_obolMVVG, encodeURIComponent(field._FjzeQSAe));
        });
    }
    return _xDgbFEUa;
}

async function _ewpdHRdx(_unWtLrWv, _XANgtyXx) {
    const _rtoMLCWc = await _soKzAEBm(_XANgtyXx);
    if (!_rtoMLCWc.itemLink._xTaAvhYb) {
        return new Response("Item _xDgbFEUa feature is disabled.", { status: 503, _DadfZrLA: { 'Content-Type': '_jyjVKQbA/plain; _BXalCNft=utf-8' } });
    }

    try {
        const _EZRVkJkh = _XANgtyXx.DB.prepare("SELECT _FjzeQSAe FROM kv_data WHERE _xtbiKbAc = ?").bind(_sTEsIdky);
        const { _uBqtZcLI: dbResults } = await _EZRVkJkh.all();
        const _UkkQZHVC = dbResults._QesPjbkJ > 0 ? dbResults[0]._FjzeQSAe : null;
        const _bQzETLqH = _UkkQZHVC ? JSON.parse(_UkkQZHVC) : null;
        
        if (!_bQzETLqH || !_bQzETLqH._uBqtZcLI || _bQzETLqH._uBqtZcLI._QesPjbkJ === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _DadfZrLA: { 'Content-Type': '_jyjVKQbA/plain; _BXalCNft=utf-8' },
            });
        }
        
        const _kDCmtEMk = new URL(_unWtLrWv._MzNfaJoq)._lZjYBycT;

        const _erxufOjS = _bQzETLqH._uBqtZcLI.map((_KYJgvwFB, _ufQpLglS) => {
            return _yPkesejd(_KYJgvwFB, _ufQpLglS, _rtoMLCWc, _kDCmtEMk);
        }).filter(Boolean);

        if (_erxufOjS._QesPjbkJ === 0) {
            return new Response("Could not generate any _ETdGKdNw links from the available IPs.", {
                status: 500,
                _DadfZrLA: { 'Content-Type': '_jyjVKQbA/plain; _BXalCNft=utf-8' },
            });
        }

        return new Response(_erxufOjS.join('\n'), {
            _DadfZrLA: { 'Content-Type': '_jyjVKQbA/plain; _BXalCNft=utf-8' },
        });

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

async function _xGOrEvhq(_unWtLrWv, _XANgtyXx, _QxRifCBi) {
    const _AXvvhUpm = _unWtLrWv._DadfZrLA.get('CF-Connecting-IP') || "未知IP";
    const [
        _PcntgNKu,
        _cRgrEcpn,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _PoqmnMPR(_RgnbpyZx, _qDSJwBNT, []),
        _PoqmnMPR(_pQXTowzV, _qDSJwBNT, []),
        _PoqmnMPR(_LMmxrgMM, _MugnnPPh, []),
        _PoqmnMPR(_csoZScdh, _ysebiiPW, { "N/A": "未知" })
    ]);
    _znBMqhPv = fetchedCountryMap;
    let _hKdjYWeo = false;
    let _baVqYQju;
    try {
        const _nnlVslgS = await _eOnknGQi(_XANgtyXx);
        _hKdjYWeo = !!_nnlVslgS;
        _baVqYQju = await _soKzAEBm(_XANgtyXx);
    } catch (_SadlHwMG) {
        if (_SadlHwMG._rMNQVEWf && _SadlHwMG._rMNQVEWf.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _CrVJZwIp = "CREATE TABLE IF NOT EXISTS kv_data (_xtbiKbAc TEXT PRIMARY KEY, _FjzeQSAe TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_xWYJSzae TEXT PRIMARY KEY, _gCtLTBwD TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _XANgtyXx.DB.exec(_CrVJZwIp);
                console.log("数据表创建成功。");
                _hKdjYWeo = false;
                _baVqYQju = _pKFxDfHp();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._rMNQVEWf}`, {
                    status: 500,
                    _DadfZrLA: { 'Content-Type': '_jyjVKQbA/html;_BXalCNft=UTF-8' }
                });
            }
        } else {
             let _xFpCLoYg = _tYzmsrfc(_SadlHwMG._rMNQVEWf);
             return new Response(_xFpCLoYg, { _DadfZrLA: { 'Content-Type': '_jyjVKQbA/html;_BXalCNft=UTF-8' } });
        }
    }
    if (_baVqYQju.telegram.bot_token && _baVqYQju.telegram.chat_id) {
        const _UWKjCwhu = _unWtLrWv.cf?._UWKjCwhu || "未知";
        const _sBAnUVNo = _unWtLrWv.cf?._sBAnUVNo || "";
        let _yBGbbchZ = _znBMqhPv[_UWKjCwhu] || _UWKjCwhu;
        if (_sBAnUVNo && _sBAnUVNo !== "未知城市" && _sBAnUVNo !== _UWKjCwhu) _yBGbbchZ = `${_yBGbbchZ} ${_znBMqhPv[_sBAnUVNo] || _sBAnUVNo}`;
        const _xlvXMThc = _jYSLbNax();
        const _HhFxDWql = _unWtLrWv._MzNfaJoq;
        const _PmlduwVw = `访客: ${_AXvvhUpm}\n位置: ${_yBGbbchZ.trim()}\n时间: ${_xlvXMThc}\n来自:${_HhFxDWql}`;
        const _unDOHtLi = `https://api.telegram.org/bot${_baVqYQju.telegram.bot_token}/sendMessage?chat_id=${_baVqYQju.telegram.chat_id}&_jyjVKQbA=${encodeURIComponent(_PmlduwVw)}`;
        _QxRifCBi.waitUntil(fetch(_unDOHtLi).catch(_SadlHwMG => console.error("Telegram通知失败:", _SadlHwMG)));
    }
    let _oCZXoNob = _PLabVHPo();
    const _pyRNsMxr = {
        _rtoMLCWc: _baVqYQju,
        status: {
            _hKdjYWeo: _hKdjYWeo,
        }
    };
    _oCZXoNob = _oCZXoNob.replace('__PAGE_DATA_JSON__', JSON.stringify(_pyRNsMxr));
    _oCZXoNob = _oCZXoNob.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_PcntgNKu));
    _oCZXoNob = _oCZXoNob.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_cRgrEcpn));
    _oCZXoNob = _oCZXoNob.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _oCZXoNob = _oCZXoNob.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_znBMqhPv));
    return new Response(_oCZXoNob, {
        _DadfZrLA: { 'Content-Type': '_jyjVKQbA/html;_BXalCNft=UTF-8' },
    });
}

function _XnwahKxF(_SqQMpqgf, status = 200, _DadfZrLA = {}) {
    return new Response(JSON.stringify(_SqQMpqgf), {
        status,
        _DadfZrLA: { 'Content-Type': 'application/json;_BXalCNft=UTF-8', ..._DadfZrLA }
    });
}

function _jYSLbNax(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 _nvlzNtjw(_zAuEMLsy) {
    if (!_zAuEMLsy || typeof _zAuEMLsy !== 'string') return "无效IP";
    if(_KGeEehhb.isIPv4(_zAuEMLsy)){
        const _ekvMeoGl = _zAuEMLsy.split('.');
        if (_ekvMeoGl._QesPjbkJ === 4) return `${_ekvMeoGl[0]}.*.*.${_ekvMeoGl[3]}`;
    }
    if(_KGeEehhb.isIPv6(_zAuEMLsy)){
        const _ekvMeoGl = _zAuEMLsy.split(':');
        if (_ekvMeoGl._QesPjbkJ > 2) return `${_ekvMeoGl[0]}:...:${_ekvMeoGl[_ekvMeoGl._QesPjbkJ - 1]}`;
    }
    return _zAuEMLsy;
}

function _tYzmsrfc(_kMHbEtyc) {
    return `
    <!DOCTYPE html><html lang="zh-CN"><head><meta _BXalCNft="UTF-8"><title>需要设置</title>
    <_PBInxfwO>
        _SqQMpqgf { font-family: sans-serif; background: #1a1a1a; _JXqLrphm: #e0e0e0; display: flex; justify-_TaQXZoLv: center; align-items: center; height: 100vh; margin: 0; }
        ._QcWGMwDA { max-_IqvxpuUK: 800px; padding: 2rem; background: #25282e; border: 1px solid #4044c; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
        h1 { _JXqLrphm: #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 { _JXqLrphm: #da3633; background: rgba(218, 54, 51, 0.1); padding: 0.5rem; border-radius: 4px; margin-_HBaoejQW: 1rem; }
    </_PBInxfwO>
    </head><_SqQMpqgf>
    <div class="_QcWGMwDA">
        <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>
        ${_kMHbEtyc ? `<div class="error"><strong>当前错误信息:</strong> ${_kMHbEtyc.replace(/</g, "&lt;").replace(/>/g, "&gt;")}</div>` : ''}
    </div>
    </_SqQMpqgf></html>`;
}

function _PLabVHPo() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _BXalCNft="UTF-8"> <meta _ckFbtgjN="viewport" _TaQXZoLv="_IqvxpuUK=device-_IqvxpuUK, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_xDgbFEUa 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>
  <_PBInxfwO>
  :root { --primary-_JXqLrphm: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_JXqLrphm: #8c939d; --light-bg: #1A1C20; --_TaQXZoLv-bg: #25282E; --border-_JXqLrphm: #40444C; --_jyjVKQbA-_JXqLrphm: #E0E0E0; --_jyjVKQbA-light: #B0B0B0; --success-_JXqLrphm: #30A46C; --danger-_JXqLrphm: #DA3633; --warning-_JXqLrphm: #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; }
  _SqQMpqgf { font-family: var(--font-family-sans); background-_JXqLrphm: var(--light-bg); _JXqLrphm: var(--_jyjVKQbA-_JXqLrphm); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_JXqLrphm 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_PpoejlJW { position: fixed; _HBaoejQW: 0; _FfVUbLkg: 0; _IqvxpuUK: 100%; height: 100%; z-_ufQpLglS: -1; display: none; }
  ._wWdhmEjm-_QcWGMwDA { max-_IqvxpuUK: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_ufQpLglS: 1; }
  #_bPywTOnC { position: fixed; _HBaoejQW: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_ufQpLglS: 10; }
  #marquee-_QcWGMwDA { overflow: hidden; white-space: nowrap; background-_JXqLrphm: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _JXqLrphm: var(--primary-_JXqLrphm); padding: 0.5rem 0; margin-_HBaoejQW: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_jyjVKQbA { display: inline-block; padding-_FfVUbLkg: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _xjygycxh { _jyjVKQbA-align: center; margin-_HBaoejQW: 1rem; margin-bottom: 2rem; }
  _xjygycxh h1 { white-space: pre-wrap; font-size: 2.25em; _JXqLrphm: var(--primary-_JXqLrphm); font-weight: 700; _jyjVKQbA-shadow: 0 0 10px rgba(var(--primary-_JXqLrphm-rgb), 0.3); }
  .card { background-_JXqLrphm: 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-_JXqLrphm); }
  .progress-section #_amOyqZXC { _IqvxpuUK: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_JXqLrphm: var(--border-_JXqLrphm); overflow: hidden; }
  .progress-section #_amOyqZXC::-webkit-progress-_FjzeQSAe { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _jyjVKQbA-align: center; margin-_HBaoejQW: 0.75em; font-size: 0.95em; _JXqLrphm: var(--_jyjVKQbA-light); min-height: 1.5em; }
  .section-_xjygycxh { display: flex; flex-wrap: wrap; justify-_TaQXZoLv: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_JXqLrphm); gap: 1rem; }
  .section-_xjygycxh h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _JXqLrphm: var(--secondary-_JXqLrphm); _jyjVKQbA-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _IqvxpuUK: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _IqvxpuUK: 100%; border-collapse: collapse; margin-_HBaoejQW: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_JXqLrphm); padding: 0.8em; _jyjVKQbA-align: _FfVUbLkg; vertical-align: middle; white-space: nowrap; }
  th { background-_JXqLrphm: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_JXqLrphm: #30333a; }
  td._zAuEMLsy-_JxAbVIsI { font-weight: 500; font-family: var(--font-family-mono); _JXqLrphm: var(--primary-_JXqLrphm); }
  td.ping-_FjzeQSAe { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _jyjVKQbA-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_TaQXZoLv: center; font-weight: 500; _jyjVKQbA-align: center; cursor: pointer; user-_OXtyUgYC: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _JXqLrphm: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_FfVUbLkg: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _JXqLrphm: var(--primary-_JXqLrphm); border: 1px solid var(--primary-_JXqLrphm); }
  .btn-outline:hover { background-_JXqLrphm: var(--primary-_JXqLrphm); _JXqLrphm: var(--_TaQXZoLv-bg); }
  ._wWdhmEjm-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._wWdhmEjm-download-buttons .btn { _IqvxpuUK: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _HBaoejQW: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _JXqLrphm: #fff; font-size: 0.95em; z-_ufQpLglS: 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); }
  #_mabVbMiR, #_haUNcfIZ, #_tVWKpfLD, #_OAqoyXcb, #_DOACCHwF { display: none; position: fixed; z-_ufQpLglS: 10000; _FfVUbLkg: 0; _HBaoejQW: 0; _IqvxpuUK: 100%; height: 100%; background-_JXqLrphm: rgba(0,0,0,0.6); justify-_TaQXZoLv: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_TaQXZoLv, ._wWdhmEjm-modal-_TaQXZoLv { background-_JXqLrphm: var(--_TaQXZoLv-bg); padding: 2rem; border: 1px solid var(--border-_JXqLrphm); border-radius: var(--border-radius-md); _IqvxpuUK: 95%; max-_IqvxpuUK: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_OAqoyXcb .modal-_TaQXZoLv { max-_IqvxpuUK: 500px; }
  .modal-_TaQXZoLv h3, ._wWdhmEjm-modal-_xjygycxh h3 { margin-_HBaoejQW: 0; margin-bottom: 1.5rem; _JXqLrphm: var(--primary-_JXqLrphm); _jyjVKQbA-align: center; }
  .modal-buttons { display: flex; justify-_TaQXZoLv: flex-end; gap: 1rem; margin-_HBaoejQW: 2rem; border-_HBaoejQW: 1px solid var(--border-_JXqLrphm); padding-_HBaoejQW: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_JXqLrphm), rgba(0,0,0,0)); margin: 2rem 0; }
  ._wWdhmEjm-modal-_xjygycxh { display: flex; justify-_TaQXZoLv: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_JXqLrphm); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _JXqLrphm: var(--_jyjVKQbA-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._wWdhmEjm-list-_ETdGKdNw { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_JXqLrphm); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._wWdhmEjm-_ckFbtgjN { font-size: 1.1em; font-weight: 600; }
  ._wWdhmEjm-links a { display: block; _JXqLrphm: var(--primary-_JXqLrphm); _jyjVKQbA-decoration: none; margin-_HBaoejQW: 0.5rem; word-break: break-all; }
  ._wWdhmEjm-links a:hover { _jyjVKQbA-decoration: underline; }
  ._wWdhmEjm-links span { _JXqLrphm: var(--_jyjVKQbA-light); }
  #visitorPasswordPrompt { _jyjVKQbA-align: center; }
  #visitorPasswordPrompt h3 { _JXqLrphm: var(--primary-_JXqLrphm); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _JXqLrphm: var(--_jyjVKQbA-light); margin-bottom: 1.5rem; }
  ._nnlVslgS-input-group { display: flex; gap: 10px; max-_IqvxpuUK: 400px; margin: 0 auto; }
  ._nnlVslgS-input-group input { flex-grow: 1; _jyjVKQbA-align: center; }
  ._nnlVslgS-input-group .btn { margin-_FfVUbLkg: 0; }
  ._uBqtZcLI-actions-_QcWGMwDA { _jyjVKQbA-align: center; margin-bottom: 1.5rem; }
  ._uBqtZcLI-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._uBqtZcLI-api-buttons .btn { margin: 0; _IqvxpuUK: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_TaQXZoLv 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 _OXtyUgYC, .form-grid-control textarea { _IqvxpuUK: 100%; background-_JXqLrphm: var(--light-bg); border: 1px solid var(--border-_JXqLrphm); border-radius: var(--border-radius-sm); _JXqLrphm: var(--_jyjVKQbA-_JXqLrphm); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_JXqLrphm 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _OXtyUgYC:focus, .form-grid-control textarea:focus { border-_JXqLrphm: var(--primary-_JXqLrphm); box-shadow: 0 0 0 2px rgba(var(--primary-_JXqLrphm-rgb), 0.2); outline: none; }
  .form-grid-control input[_bBhESgzA="_JXqLrphm"] { min-_IqvxpuUK: auto; padding: 2px; _IqvxpuUK: 2.5em; height: 2.5em; }
  .form-grid-control input[_bBhESgzA="checkbox"] { _IqvxpuUK: auto; flex-shrink: 0; height: 1.2em; _IqvxpuUK: 1.2em; }
  .form-grid-control ._CSAvOhoQ-input { _IqvxpuUK: 80px; _jyjVKQbA-align: right; }
  .tooltip-_bQRkPPFF { display: inline-flex; _IqvxpuUK: 16px; height: 16px; align-items: center; justify-_TaQXZoLv: center; background-_JXqLrphm: var(--secondary-_JXqLrphm); _JXqLrphm: var(--_TaQXZoLv-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_OXtyUgYC: none; }
  #tooltip-popup { position: fixed; background-_JXqLrphm: #383c4a; _JXqLrphm: #fff; padding: 10px 15px; border-radius: 6px; z-_ufQpLglS: 10001; font-size: 0.85em; max-_IqvxpuUK: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_JXqLrphm); pointer-events: none; }
  #custom-fields-_QcWGMwDA .form-grid-control { gap: 5px; } #custom-fields-_QcWGMwDA .form-grid-control input { flex: 1; }
  .parameter-_HXFvlboj-_eaEdPQlc { border: 1px solid var(--border-_JXqLrphm); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_HXFvlboj-_xjygycxh { display: flex; justify-_TaQXZoLv: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_HXFvlboj-_xjygycxh input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_HBaoejQW: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._jyjVKQbA-_JXqLrphm-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _IqvxpuUK: 100%; }
  ._jyjVKQbA-_JXqLrphm-grid input[_bBhESgzA="_JXqLrphm"] { grid-column: 1 / 2; }
  ._jyjVKQbA-_JXqLrphm-grid input[_bBhESgzA="_jyjVKQbA"], ._jyjVKQbA-_JXqLrphm-grid textarea { grid-column: 2 / 3; }
  #_OAqoyXcb .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_OAqoyXcb .btn-group { display: flex; }
  #_OAqoyXcb .sub-btn { flex-grow: 1; margin: 0; }
  #_OAqoyXcb ._MSbCmjWI-btn { flex-shrink: 0; margin-_FfVUbLkg: -1px; border-_HBaoejQW-_FfVUbLkg-radius: 0; border-bottom-_FfVUbLkg-radius: 0; }
  #_DOACCHwF .modal-_TaQXZoLv { max-_IqvxpuUK: 300px; background: white; padding: 1rem; _jyjVKQbA-align: center; }
  #qrCodeImg { max-_IqvxpuUK: 100%; }
  @media (max-_IqvxpuUK: 768px) {
    html { font-size: 15px; } ._wWdhmEjm-_QcWGMwDA { padding: 0 0.8rem; } _xjygycxh { margin-_HBaoejQW: 2.5rem; margin-bottom: 1.5rem; } #_bPywTOnC { _HBaoejQW: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_PBInxfwO>
  <_PBInxfwO _xWYJSzae="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_TaQXZoLv-bg: #FFFFFF; --border-_JXqLrphm: #DCDFE6; --_jyjVKQbA-_JXqLrphm: #303133; --_jyjVKQbA-light: #606266; }
  .theme-light .card { background-_JXqLrphm: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_JXqLrphm: #F5F7FA; }
  .theme-light tbody tr:hover { background-_JXqLrphm: #ECF5FF; }
  .theme-matrix { --primary-_JXqLrphm: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_TaQXZoLv-bg: #0D0208; --border-_JXqLrphm: #00FF41; --_jyjVKQbA-_JXqLrphm: #00FF41; --_jyjVKQbA-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_JXqLrphm: rgba(0, 20, 0, 0.7); _jyjVKQbA-shadow: 0 0 5px var(--primary-_JXqLrphm); backdrop-filter: none; }
  .theme-matrix th { background-_JXqLrphm: #000; }
  .theme-matrix tbody tr:hover { background-_JXqLrphm: #010; }
  .theme-matrix .btn { _jyjVKQbA-shadow: none; _JXqLrphm: #000; }
  .theme-matrix .btn-outline { background-_JXqLrphm: transparent; }
  .theme-modern-glass { --primary-_JXqLrphm: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_TaQXZoLv-bg: rgba(30, 30, 40, 0.6); --border-_JXqLrphm: rgba(255, 255, 255, 0.2); --_jyjVKQbA-_JXqLrphm: #F0F0F0; --_jyjVKQbA-light: #A0A0B0; --border-radius-md: 12px; }
  _SqQMpqgf.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-_JXqLrphm: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_TaQXZoLv-bg: rgba(30, 30, 40, 0.6); --border-_JXqLrphm: rgba(255, 255, 255, 0.2); --_jyjVKQbA-_JXqLrphm: #F0F0F0; --_jyjVKQbA-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_JXqLrphm: var(--_TaQXZoLv-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_JXqLrphm); }
  .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-_JXqLrphm: rgba(0,0,0,0.3); border-right-_JXqLrphm: 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); _jyjVKQbA-shadow: 0 1px 2px rgba(0,0,0,0.2); _JXqLrphm: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_JXqLrphm: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _jyjVKQbA-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_JXqLrphm); border-_JXqLrphm: var(--primary-_JXqLrphm); _JXqLrphm: #fff; }
  .glassy-components _xjygycxh h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _jyjVKQbA; -webkit-_jyjVKQbA-fill-_JXqLrphm: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _JXqLrphm: transparent; }
  .theme-aurora-glass { --primary-_JXqLrphm: #38bdf8; --light-bg: #0c0a09; --_TaQXZoLv-bg: rgba(23, 23, 23, 0.5); --border-_JXqLrphm: rgba(255, 255, 255, 0.15); --_jyjVKQbA-_JXqLrphm: #f2f2f2; --_jyjVKQbA-light: #a3a3a3; }
  _SqQMpqgf.theme-aurora-glass::before { _TaQXZoLv: ''; position: fixed; _HBaoejQW: 0; _FfVUbLkg: 0; _IqvxpuUK: 100%; height: 100%; z-_ufQpLglS: -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-_JXqLrphm: #08fdd8; --light-bg: #010409; --_TaQXZoLv-bg: rgba(22, 27, 34, 0.6); --border-_JXqLrphm: rgba(139, 148, 158, 0.3); --_jyjVKQbA-_JXqLrphm: #e6edf3; --_jyjVKQbA-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_JXqLrphm), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_JXqLrphm-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_JXqLrphm-rgb), 0.5); }
  .theme-marble-light { --primary-_JXqLrphm: #bfa37c; --light-bg: #f7f5f2; --_TaQXZoLv-bg: #ffffff; --border-_JXqLrphm: #e0dcd5; --_jyjVKQbA-_JXqLrphm: #3d3a36; --_jyjVKQbA-light: #6b6661; }
  _SqQMpqgf.theme-marble-light { background-image: _MzNfaJoq('_gCtLTBwD:image/svg+xml,%3Csvg _IqvxpuUK="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-_JXqLrphm: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_PBInxfwO>
  </head><_SqQMpqgf _xWYJSzae="pageBody">
  <_PpoejlJW _xWYJSzae="background-_PpoejlJW"></_PpoejlJW>
  <div _xWYJSzae="_mabVbMiR">
      <div class="modal-_TaQXZoLv">
          <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 _bBhESgzA="_nnlVslgS" _xWYJSzae="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _bBhESgzA="_nnlVslgS" _xWYJSzae="confirmPassword"></div></div>
          <div class="modal-buttons"><button _xWYJSzae="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_wWdhmEjm-_QcWGMwDA">
    <button _xWYJSzae="_bPywTOnC" class="btn btn-outline"></button>
    <div _xWYJSzae="marquee-_QcWGMwDA"><div _xWYJSzae="marquee-_jyjVKQbA"></div></div>
    <_xjygycxh><h1 _xWYJSzae="pageTitle"></h1></_xjygycxh>
    <div class="card" _xWYJSzae="visitorPasswordPrompt" _PBInxfwO="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_nnlVslgS-input-group">
            <input _bBhESgzA="_nnlVslgS" _xWYJSzae="visitorPasswordEntry" _obolMVVG="访客密码">
            <button _xWYJSzae="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _xWYJSzae="_MirUVztO" _PBInxfwO="display: block;">
        <div class="card progress-section">
            <div _xWYJSzae="progressDisplay">
                <progress _xWYJSzae="_amOyqZXC" _FjzeQSAe="0" max="100"></progress>
                <div _xWYJSzae="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _wWdhmEjm-download-section">
          <div class="section-_xjygycxh"><h2 _xWYJSzae="appDownloadTitleEl"></h2></div>
          <div class="_wWdhmEjm-download-buttons">
            <button class="btn" _gCtLTBwD-_mlbYVGLu="android">安卓客户端</button>
            <button class="btn" _gCtLTBwD-_mlbYVGLu="ios">苹果客户端</button>
            <button class="btn" _gCtLTBwD-_mlbYVGLu="windows">Windows客户端</button>
            <button class="btn" _gCtLTBwD-_mlbYVGLu="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _uBqtZcLI-section" _xWYJSzae="_TBlceRpl" _PBInxfwO="display:none;">
          <div class="section-_xjygycxh">
            <h2 _xWYJSzae="liveTitleEl"></h2>
            <div class="generator-info" _xWYJSzae="liveGeneratorInfo"></div>
          </div>
          <div _xWYJSzae="_cjNeEisV" class="_uBqtZcLI-actions-_QcWGMwDA" _PBInxfwO="display: none;">
             <div class="_uBqtZcLI-api-buttons">
                <button _xWYJSzae="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _xWYJSzae="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _xWYJSzae="resultsTable">
              <thead><tr><th _xWYJSzae="tableHeader1El"></th><th _xWYJSzae="tableHeader2El"></th><th _xWYJSzae="tableHeader3El"></th><th _xWYJSzae="tableHeader4El"></th><th _xWYJSzae="tableHeader5El"></th><th _xWYJSzae="tableHeader6El"></th><th _xWYJSzae="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _xWYJSzae="_znRysTmu" _PBInxfwO="display:none;">
          <div class="section-_xjygycxh"><h2 _xWYJSzae="cachedTitleEl"></h2><div class="generator-info" _xWYJSzae="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _xWYJSzae="cachedResultsTable">
              <thead><tr><th _xWYJSzae="cachedTableHeader1El"></th><th _xWYJSzae="cachedTableHeader2El"></th><th _xWYJSzae="cachedTableHeader3El"></th><th _xWYJSzae="cachedTableHeader4El"></th><th _xWYJSzae="cachedTableHeader5El"></th><th _xWYJSzae="cachedTableHeader6El"></th><th _xWYJSzae="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _xWYJSzae="notificationTooltip" class="tooltip-notification"></div>
  <div _xWYJSzae="_haUNcfIZ">
    <div class="modal-_TaQXZoLv">
      <h3>修改参数</h3>
      <div _PBInxfwO="display: flex; border-bottom: 1px solid var(--border-_JXqLrphm); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_behlGELx(event, 'general-_lPgSFjNx')">通用设置</button>
          <button class="tab-button" onclick="_behlGELx(event, '_xDgbFEUa-_lPgSFjNx')">链接设置</button>
          <button class="tab-button" onclick="_behlGELx(event, 'fine-grained-_lPgSFjNx')">IP源设置</button>
          <button class="tab-button" onclick="_behlGELx(event, 'advanced-_lPgSFjNx')">高级设置</button>
      </div>
      <div _xWYJSzae="general-_lPgSFjNx" class="tab-_TaQXZoLv" _PBInxfwO="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_OXtyUgYC _xWYJSzae="themeSelect">
                    <_GllpaWAU _FjzeQSAe="theme-aurora-glass">极光-玻璃质感</_GllpaWAU>
                    <_GllpaWAU _FjzeQSAe="theme-particles-glass">粒子-玻璃质感</_GllpaWAU>
                    <_GllpaWAU _FjzeQSAe="theme-modern-glass">现代-玻璃质感</_GllpaWAU>
                    <_GllpaWAU _FjzeQSAe="theme-cyberpunk-glass">赛博朋克-玻璃质感</_GllpaWAU>
                    <_GllpaWAU _FjzeQSAe="theme-dark-particles">暗色-粒子背景</_GllpaWAU>
                    <_GllpaWAU _FjzeQSAe="theme-dark-bing">暗色-必应壁纸</_GllpaWAU>
                    <_GllpaWAU _FjzeQSAe="theme-light">亮色-简约</_GllpaWAU>
                    <_GllpaWAU _FjzeQSAe="theme-light-bing">亮色-必应壁纸</_GllpaWAU>
                    <_GllpaWAU _FjzeQSAe="theme-marble-light">简约大理石-亮色</_GllpaWAU>
                    <_GllpaWAU _FjzeQSAe="theme-matrix">矩阵-代码雨</_GllpaWAU>
                </_OXtyUgYC>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _bBhESgzA="_JXqLrphm" _xWYJSzae="primaryColorInput">
                <span _PBInxfwO="_IqvxpuUK: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _bBhESgzA="_JXqLrphm" _xWYJSzae="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _PBInxfwO="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _PBInxfwO="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_jyjVKQbA-_JXqLrphm-grid"><input _bBhESgzA="_JXqLrphm" _xWYJSzae="colorInput_title"><textarea _xWYJSzae="textInput_title" _ssjNcqkd="1" _obolMVVG="页面主标题"></textarea></div>
                <div class="_jyjVKQbA-_JXqLrphm-grid"><input _bBhESgzA="_JXqLrphm" _xWYJSzae="colorInput_loginButton"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="textInput_loginButton" _obolMVVG="登录按钮文本"></div>
                <div class="_jyjVKQbA-_JXqLrphm-grid"><input _bBhESgzA="_JXqLrphm" _xWYJSzae="colorInput_appDownloadTitle"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="textInput_appDownloadTitle" _obolMVVG="APP下载标题"></div>
                <div class="_jyjVKQbA-_JXqLrphm-grid"><input _bBhESgzA="_JXqLrphm" _xWYJSzae="colorInput_liveTitle"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="textInput_liveTitle" _obolMVVG="本次结果标题"></div>
                <div class="_jyjVKQbA-_JXqLrphm-grid"><input _bBhESgzA="_JXqLrphm" _xWYJSzae="colorInput_cachedTitle"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="textInput_cachedTitle" _obolMVVG="上次结果标题"></div>
                <div class="_jyjVKQbA-_JXqLrphm-grid"><input _bBhESgzA="_JXqLrphm" _xWYJSzae="colorInput_tableHeader"><input _bBhESgzA="_jyjVKQbA" _FjzeQSAe="表格头部文本颜色" readonly _PBInxfwO="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _PBInxfwO="align-self: start;"><label>公告栏设置</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _PBInxfwO="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _xWYJSzae="announcementText" _obolMVVG="在此输入公告内容" _ssjNcqkd="3"></textarea>
                 <div _PBInxfwO="display: flex; justify-_TaQXZoLv: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _PBInxfwO="display: flex; align-items: center; gap: 5px;"><input _bBhESgzA="checkbox" _xWYJSzae="enableMarquee"> 顶部走马灯</label>
                    <label _PBInxfwO="display: flex; align-items: center; gap: 5px;"><input _bBhESgzA="checkbox" _xWYJSzae="enablePopup"> 右上角弹窗</label>
                    <div _xWYJSzae="popupDurationContainer" _PBInxfwO="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _bBhESgzA="number" _xWYJSzae="popupDuration" _PBInxfwO="_IqvxpuUK: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _xWYJSzae="_xDgbFEUa-_lPgSFjNx" class="tab-_TaQXZoLv">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="converterServiceUrlInput" _obolMVVG="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _bBhESgzA="number" _xWYJSzae="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _PBInxfwO="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _xWYJSzae="subscriptionIdCharset" _ssjNcqkd="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-_bQRkPPFF" _gCtLTBwD-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _PBInxfwO="justify-_TaQXZoLv: flex-start;"><input _bBhESgzA="checkbox" _xWYJSzae="enableItemLinkCheckbox"></div>
        </div>
        <div _xWYJSzae="itemLinkConfigGroup" _PBInxfwO="display:none; margin-_HBaoejQW: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _PBInxfwO="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="定义分享链接格式。可用占位符: {_zAuEMLsy}, {_AWekBocW}, {_ckFbtgjN}, {rank}, {_VAZxHmhz}, {_XrXMgXRI}, {_QAfgwnWs}, {_jzCHUaST}, {_kBOGxKZb}。">?</span></div>
              <div class="form-grid-control"><textarea _xWYJSzae="itemLinkTemplateInput" _ssjNcqkd="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_OXtyUgYC _xWYJSzae="parameterSelectionMode"></_OXtyUgYC></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _xWYJSzae="parameter-sets-_QcWGMwDA"></div><button _bBhESgzA="button" _xWYJSzae="add-parameter-_HXFvlboj-btn" class="btn btn-outline" _PBInxfwO="margin-_HBaoejQW: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _PBInxfwO="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _xWYJSzae="custom-fields-_QcWGMwDA" _PBInxfwO="_IqvxpuUK: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _PBInxfwO="justify-_TaQXZoLv: flex-start;"><button _bBhESgzA="button" _xWYJSzae="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _xWYJSzae="fine-grained-_lPgSFjNx" class="tab-_TaQXZoLv">
          <div class="form-grid-label" _PBInxfwO="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _PBInxfwO="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_TaQXZoLv: flex-start;">
              <label><input _bBhESgzA="checkbox" _xWYJSzae="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _bBhESgzA="checkbox" _xWYJSzae="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _xWYJSzae="fine-grained-sources-_QcWGMwDA"></div><button _bBhESgzA="button" _xWYJSzae="add-fine-grained-_MlvCFpRY-btn" class="btn btn-outline" _PBInxfwO="margin-_HBaoejQW: 10px;">添加地区</button></div>
      </div>
      <div _xWYJSzae="advanced-_lPgSFjNx" class="tab-_TaQXZoLv">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _bBhESgzA="checkbox" _xWYJSzae="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _xWYJSzae="resolvedDomainsGroup" _PBInxfwO="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _xWYJSzae="resolvedDomainsInput" _obolMVVG="留空则使用内置默认域名" _ssjNcqkd="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-_bQRkPPFF" _gCtLTBwD-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _bBhESgzA="checkbox" _xWYJSzae="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _xWYJSzae="customNodesGroup" _PBInxfwO="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _xWYJSzae="customNodesInput" _obolMVVG="一行一个地址,支持域名、IPv4、IPv6。" _ssjNcqkd="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-_bQRkPPFF" _gCtLTBwD-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _bBhESgzA="number" _xWYJSzae="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _bBhESgzA="number" _xWYJSzae="topNInput"></div>
            <div class="form-grid-label" _PBInxfwO="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _PBInxfwO="display: none;"><input _bBhESgzA="number" _xWYJSzae="latencyRangeMinInput" _obolMVVG="最小"><span>-</span><input _bBhESgzA="number" _xWYJSzae="latencyRangeMaxInput" _obolMVVG="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _PBInxfwO="justify-_TaQXZoLv: flex-start;"><input _bBhESgzA="checkbox" _xWYJSzae="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-_bQRkPPFF" _gCtLTBwD-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _bBhESgzA="number" _xWYJSzae="geoLocationRetriesInput" _PBInxfwO="_IqvxpuUK: 80px;"> <span>次</span>
                <div _PBInxfwO="display: flex; align-items: center; gap: 5px; margin-_FfVUbLkg: 20px;">
                    <input _bBhESgzA="checkbox" _xWYJSzae="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-_bQRkPPFF" _gCtLTBwD-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_QAfgwnWs:_AWekBocW' 或 '_QAfgwnWs'。">?</span></div>
            <div class="form-grid-control"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="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-_bQRkPPFF" _gCtLTBwD-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _PBInxfwO="justify-_TaQXZoLv: flex-start;"><input _bBhESgzA="checkbox" _xWYJSzae="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _xWYJSzae="websocketStreamerGroup" _PBInxfwO="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="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-_bQRkPPFF" _gCtLTBwD-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _PBInxfwO="justify-_TaQXZoLv: flex-start;"><input _bBhESgzA="checkbox" _xWYJSzae="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="启用 /_zAuEMLsy 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _PBInxfwO="justify-_TaQXZoLv: flex-start;"><input _bBhESgzA="checkbox" _xWYJSzae="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _xWYJSzae="apiConfigGroup" _PBInxfwO="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="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-_bQRkPPFF" _gCtLTBwD-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _PBInxfwO="justify-_TaQXZoLv: flex-start;"><input _bBhESgzA="checkbox" _xWYJSzae="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _xWYJSzae="customSubPathGroup" _PBInxfwO="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="customSubPathInput" _obolMVVG="例如: 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-_bQRkPPFF" _gCtLTBwD-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _PBInxfwO="justify-_TaQXZoLv: flex-start;"><input _bBhESgzA="checkbox" _xWYJSzae="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _xWYJSzae="visitorPasswordGroup" _PBInxfwO="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _PBInxfwO="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_bQRkPPFF" _gCtLTBwD-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _PBInxfwO="flex-direction: column; align-items: stretch; gap: 8px;"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="botTokenInput" _obolMVVG="Telegram Bot Token"><input _bBhESgzA="_jyjVKQbA" _xWYJSzae="chatIdInput" _obolMVVG="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _PBInxfwO="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _PBInxfwO="flex-direction: column; align-items: stretch; gap: 8px;"><input _bBhESgzA="_nnlVslgS" _xWYJSzae="oldPasswordInput" _obolMVVG="旧密码"><input _bBhESgzA="_nnlVslgS" _xWYJSzae="newPasswordInput" _obolMVVG="新密码 (至少6位)"><button _xWYJSzae="changePasswordBtn" class="btn" _PBInxfwO="align-self: flex-start; margin-_FfVUbLkg: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _xWYJSzae="closeModalBtn" class="btn btn-outline">关闭</button><button _xWYJSzae="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _xWYJSzae="_tVWKpfLD">
      <div class="_wWdhmEjm-modal-_TaQXZoLv">
          <div class="_wWdhmEjm-modal-_xjygycxh"><h3 _xWYJSzae="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_wWdhmEjm-modal-_SqQMpqgf" _xWYJSzae="appModalBody"></div>
      </div>
  </div>
  <div _xWYJSzae="_OAqoyXcb">
      <div class="modal-_TaQXZoLv">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _gCtLTBwD-sub-_bBhESgzA="coreEngine">Xray</button><button class="btn _MSbCmjWI-btn" _gCtLTBwD-sub-_bBhESgzA="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _gCtLTBwD-sub-_bBhESgzA="coreProfile">Sing-Box</button><button class="btn _MSbCmjWI-btn" _gCtLTBwD-sub-_bBhESgzA="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _gCtLTBwD-sub-_bBhESgzA="configProfile">Clash</button><button class="btn _MSbCmjWI-btn" _gCtLTBwD-sub-_bBhESgzA="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _gCtLTBwD-sub-_bBhESgzA="policyProfile">Surge</button><button class="btn _MSbCmjWI-btn" _gCtLTBwD-sub-_bBhESgzA="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _PBInxfwO="justify-_TaQXZoLv: center;"><button class="btn btn-outline" _xWYJSzae="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _xWYJSzae="_DOACCHwF">
      <div class="modal-_TaQXZoLv">
          <img _xWYJSzae="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _KGeEehhb = {
        isValid: (_zAuEMLsy) => _KGeEehhb.isIPv4(_zAuEMLsy) || _KGeEehhb.isIPv6(_zAuEMLsy),
        isIPv4: (_zAuEMLsy) => {
            if (typeof _zAuEMLsy !== 'string') return false;
            const _ekvMeoGl = _zAuEMLsy.split('.');
            if (_ekvMeoGl._QesPjbkJ !== 4) return false;
            return _ekvMeoGl.every(_AdUlisUl => {
                const _NyRuNGpS = parseInt(_AdUlisUl, 10);
                return !isNaN(_NyRuNGpS) && _NyRuNGpS >= 0 && _NyRuNGpS <= 255 && String(_NyRuNGpS) === _AdUlisUl;
            });
        },
        isIPv6: (_zAuEMLsy) => {
            if (typeof _zAuEMLsy !== '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]))$/_ccNBJYvV.test(_zAuEMLsy);
        },
        toLong4: (_zAuEMLsy) => _zAuEMLsy.split('.').reduce((acc, octet, _ccNBJYvV) => acc + (parseInt(octet) << (8*(3-_ccNBJYvV))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_zAuEMLsy) => {
            try {
                const _jrhHrKeO = _zAuEMLsy.split('/')[0];
                const _ekvMeoGl = _jrhHrKeO.split('::');
                if (_ekvMeoGl._QesPjbkJ > 2) return 0n;
                let _snKvmCJT = [];
                if (_ekvMeoGl[0]) {
                    _snKvmCJT = _ekvMeoGl[0].split(':');
                }
                let _xuGLEiKV = [];
                if (_ekvMeoGl._QesPjbkJ > 1 && _ekvMeoGl[1]) {
                    _xuGLEiKV = _ekvMeoGl[1].split(':');
                }
                if (_snKvmCJT._QesPjbkJ + _xuGLEiKV._QesPjbkJ > 8) return 0n;
                const _KCJtuCiX = 8 - (_snKvmCJT._QesPjbkJ + _xuGLEiKV._QesPjbkJ);
                const _yLKphMwg = [
                    ..._snKvmCJT,
                    ...Array(_KCJtuCiX).fill('0'),
                    ..._xuGLEiKV
                ].map(_AdUlisUl => _AdUlisUl || '0');
                while(_yLKphMwg._QesPjbkJ < 8) {
                    _yLKphMwg.push('0');
                }
                let _lEcUvOth = 0n;
                for (const _AdUlisUl of _yLKphMwg) {
                    if (_AdUlisUl._QesPjbkJ > 4) return 0n;
                    const _FjzeQSAe = BigInt('0x' + _AdUlisUl);
                    _lEcUvOth = (_lEcUvOth << 16n) | _FjzeQSAe;
                }
                return _lEcUvOth;
            } catch(_SadlHwMG) {
                return 0n;
            }
        },
        fromBigInt6: (_lEcUvOth) => {
            if (typeof _lEcUvOth !== '_lEcUvOth' || _lEcUvOth < 0n) return null;
            const _ekvMeoGl = [];
            for (let _ccNBJYvV = 0; _ccNBJYvV < 8; _ccNBJYvV++) {
                _ekvMeoGl.unshift((_lEcUvOth & 0xFFFFn).toString(16));
                _lEcUvOth >>= 16n;
            }
            let _oaxPZpVP = { start: -1, _wmgrhNgG: 0 };
            let _wgEjxurj = { start: -1, _wmgrhNgG: 0 };
            for (let _ccNBJYvV = 0; _ccNBJYvV < 8; _ccNBJYvV++) {
                if (_ekvMeoGl[_ccNBJYvV] === '0') {
                    if (_wgEjxurj.start === -1) _wgEjxurj.start = _ccNBJYvV;
                    _wgEjxurj._wmgrhNgG++;
                } else {
                    if (_wgEjxurj._wmgrhNgG > _oaxPZpVP._wmgrhNgG) _oaxPZpVP = { ..._wgEjxurj };
                    _wgEjxurj = { start: -1, _wmgrhNgG: 0 };
                }
            }
            if (_wgEjxurj._wmgrhNgG > _oaxPZpVP._wmgrhNgG) _oaxPZpVP = { ..._wgEjxurj };
            if (_oaxPZpVP._wmgrhNgG > 1) {
                _ekvMeoGl.splice(_oaxPZpVP.start, _oaxPZpVP._wmgrhNgG, '');
                if (_oaxPZpVP.start === 0) _ekvMeoGl.unshift('');
                if (_oaxPZpVP.start + _oaxPZpVP._wmgrhNgG === 8) _ekvMeoGl.push('');
            }
            return _ekvMeoGl.join(':');
        },
        cidrToRange: (cidr, _ufeKXIEz = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _uybNQKyo = parseInt(bitsStr, 10);
                const _AUGlySic = new Set();
                if (_KGeEehhb.isIPv4(range)) {
                    if (isNaN(_uybNQKyo) || _uybNQKyo < 8 || _uybNQKyo > 32) return [];
                    if (_uybNQKyo === 32) return [range];
                    const _LVizsWOm = _KGeEehhb.toLong4(range);
                    const _ZCfXdIgL = (0xFFFFFFFF << (32 - _uybNQKyo)) >>> 0;
                    const _vnFuBauk = _LVizsWOm & _ZCfXdIgL;
                    const _tzmpnbdu = 1 << (32 - _uybNQKyo);
                    if (_tzmpnbdu <= 2) return [];
                    const _vzEMlmdc = Math.min(_ufeKXIEz, _tzmpnbdu - 2);
                    let _aQdzfJsp = 0;
                    while (_AUGlySic.size < _vzEMlmdc && _aQdzfJsp < _vzEMlmdc * 5) {
                        const _WrTsRxfJ = Math.floor(Math.random() * (_tzmpnbdu - 2)) + 1;
                        _AUGlySic.add(_KGeEehhb.fromLong4((_vnFuBauk + _WrTsRxfJ) >>> 0));
                        _aQdzfJsp++;
                    }
                    return Array.from(_AUGlySic);
                } else if (_KGeEehhb.isIPv6(range)) {
                    if (isNaN(_uybNQKyo) || _uybNQKyo < 16 || _uybNQKyo > 128) return [];
                    if (_uybNQKyo === 128) return [range];
                    const _VgAwsrBQ = _KGeEehhb.toBigInt6(range);
                    const _ZCfXdIgL = (2n ** BigInt(128 - _uybNQKyo) - 1n);
                    const _vnFuBauk = _VgAwsrBQ & ~_ZCfXdIgL;
                    const _RwEujrIi = 2n ** BigInt(128 - _uybNQKyo);
                    if (_RwEujrIi <= 2n) return [];
                    let _aQdzfJsp = 0;
                    while (_AUGlySic.size < _ufeKXIEz && _aQdzfJsp < _ufeKXIEz * 5) {
                        const _FRrLVIvr = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_FRrLVIvr);
                        let _VEuGGZEV = 0n;
                        for (const _PCqBJUiV of _FRrLVIvr) {
                            _VEuGGZEV = (_VEuGGZEV << 8n) | BigInt(_PCqBJUiV);
                        }
                        const _WrTsRxfJ = _VEuGGZEV % (_RwEujrIi - 2n) + 1n;
                        _AUGlySic.add(_KGeEehhb.fromBigInt6(_vnFuBauk + _WrTsRxfJ));
                        _aQdzfJsp++;
                    }
                    return Array.from(_AUGlySic);
                }
                return [];
            } catch(_SadlHwMG) {
                console.error(`CIDR to range failed for ${cidr}:`, _SadlHwMG);
                return [];
            }
        }
    };
    function _NWBeAmEd(_IOwKgvxO, _jTrVGKtk) {
        const _BctPdBiD = {};
        const _ynNIIAge = Object._ynNIIAge(_jTrVGKtk);
        const _ekvMeoGl = _ynNIIAge.map(_xtbiKbAc => {
            const _PgGgLlFP = _IOwKgvxO * (_jTrVGKtk[_xtbiKbAc] / 100);
            return { _xtbiKbAc, _ufeKXIEz: Math.floor(_PgGgLlFP), remainder: _PgGgLlFP - Math.floor(_PgGgLlFP) };
        });
        let _EMqcpvfh = _ekvMeoGl.reduce((acc, _AdUlisUl) => acc + _AdUlisUl._ufeKXIEz, 0);
        _ekvMeoGl.sort((a, b) => b.remainder - a.remainder);
        let _fdxCvecF = _IOwKgvxO - _EMqcpvfh;
        for (let _ccNBJYvV = 0; _ccNBJYvV < _fdxCvecF; _ccNBJYvV++) {
            _ekvMeoGl[_ccNBJYvV % _ekvMeoGl._QesPjbkJ]._ufeKXIEz++;
        }
        for (const _AdUlisUl of _ekvMeoGl) {
            _BctPdBiD[_AdUlisUl._xtbiKbAc] = _AdUlisUl._ufeKXIEz;
        }
        return _BctPdBiD;
    }
    const _pyRNsMxr = __PAGE_DATA_JSON__;
    const _baVqYQju = _pyRNsMxr._rtoMLCWc;
    const _ajvhjdJS = _pyRNsMxr.status;
    const _PcntgNKu = __ALL_CF_CIDR_LIST_JSON__;
    const _cRgrEcpn = __BALANCED_CF_CIDR_LIST_JSON__;
    const _lEjRaTMC = __DEFAULT_DOMAINS_LIST_JSON__;
    const _znBMqhPv = __COUNTRY_MAP_JSON__;
    const _oxhswWBp = _znBMqhPv;
    const _pBHllbIc = 2500;
    const _lVhAbTHD = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _MirUVztO = document.getElementById('_MirUVztO');
    const _amOyqZXC = document.getElementById('_amOyqZXC');
    const _wpqGuIWR = document.getElementById('status');
    const _TBlceRpl = document.getElementById('_TBlceRpl');
    const _qcPtfViX = document.getElementById('resultsTable').querySelector('tbody');
    const _znRysTmu = document.getElementById('_znRysTmu');
    const _jqpjBEqV = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _ZSbabsCD = document.getElementById('notificationTooltip');
    const _bPywTOnC = document.getElementById('_bPywTOnC');
    const _haUNcfIZ = document.getElementById('_haUNcfIZ');
    const _tVWKpfLD = document.getElementById('_tVWKpfLD');
    const _OAqoyXcb = document.getElementById('_OAqoyXcb');
    const _DOACCHwF = document.getElementById('_DOACCHwF');
    const _mabVbMiR = document.getElementById('_mabVbMiR');
    const _cjNeEisV = document.getElementById('_cjNeEisV');
    let _uBkSlmjL = null;
    let _TOkcFdEP = null;
    let _HPeENrgx = [];
    let _OkpBynlm = false;
    let _lgtxzTRl = null;
    function _EVvwoISk(_ssCFhRRI, _sFKerWjw) {
        const _gGCFbiGo=parseInt(_ssCFhRRI.slice(1),16),t=_sFKerWjw<0?0:255,p=_sFKerWjw<0?_sFKerWjw*-1:_sFKerWjw,R=_gGCFbiGo>>16,G=_gGCFbiGo>>8&0x00FF,B=_gGCFbiGo&0x0000FF;
        const _ikbvNyEV = Math.round((t-R)*p)+R;
        const _UmFsGIEX = Math.round((t-G)*p)+G;
        const _pqhOvWzb = Math.round((t-B)*p)+B;
        return `rgb(${_ikbvNyEV.toString()}, ${_UmFsGIEX.toString()}, ${_pqhOvWzb.toString()})`;
    }
    function _ZdxsZWYF(_lPgSFjNx) {
        const _xGeeFiKX = _bXnQwjrE(_lPgSFjNx.primaryColor);
        if(_xGeeFiKX) {
            document.documentElement._PBInxfwO.setProperty('--primary-_JXqLrphm-rgb', `${_xGeeFiKX.r},${_xGeeFiKX.g},${_xGeeFiKX.b}`);
        }
        document.documentElement._PBInxfwO.setProperty('--primary-_JXqLrphm', _lPgSFjNx.primaryColor);
        document.documentElement._PBInxfwO.setProperty('--primary-hover', _EVvwoISk(_lPgSFjNx.primaryColor, -0.1));
        document.documentElement._PBInxfwO.setProperty('--primary-gradient-start', _EVvwoISk(_lPgSFjNx.primaryColor, 0.1));
        document.documentElement._PBInxfwO.setProperty('--primary-gradient-end', _EVvwoISk(_lPgSFjNx.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _lPgSFjNx.texts.title;
        document.title = _lPgSFjNx.texts.title;
        _bPywTOnC.innerText = _uBkSlmjL ? _lPgSFjNx.texts.loginButtonSuccess : _lPgSFjNx.texts.loginButton;
        _bPywTOnC._PBInxfwO._JXqLrphm = _lPgSFjNx.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _lPgSFjNx.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _lPgSFjNx.texts.liveTitle;
        document.getElementById('liveTitleEl')._PBInxfwO._JXqLrphm = _lPgSFjNx.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _lPgSFjNx.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._PBInxfwO._JXqLrphm = _lPgSFjNx.colors.cachedTitle;
        const _DadfZrLA = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _DadfZrLA.forEach((_xWYJSzae, _ufQpLglS) => {
            const _mTmFHckf = document.getElementById(_xWYJSzae);
            if (_mTmFHckf) _mTmFHckf.innerText = _lPgSFjNx.texts[`tableHeader${_ufQpLglS + 1}`] || '';
        });
        const _WbwJVouI = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _WbwJVouI.forEach((_xWYJSzae, _ufQpLglS) => {
             const _mTmFHckf = document.getElementById(_xWYJSzae);
             if (_mTmFHckf) _mTmFHckf.innerText = _baVqYQju.texts[`tableHeader${_ufQpLglS + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._PBInxfwO._JXqLrphm = _lPgSFjNx.colors.tableHeader);
        document._SqQMpqgf.className = '';
        document._SqQMpqgf.classList.add(_lPgSFjNx.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_lPgSFjNx.theme)) {
            document._SqQMpqgf.classList.add('glassy-components');
        }
        document._SqQMpqgf._PBInxfwO.backgroundImage = '';
        _TxOILtDY();
        if (_lPgSFjNx.theme.includes('particles') || _lPgSFjNx.theme.includes('glass')) {
            _SoUOYnRr(_lPgSFjNx.particleColor);
        } else if (_lPgSFjNx.theme.includes('bing')) {
            document._SqQMpqgf._PBInxfwO.backgroundImage = '_MzNfaJoq(/bing-wallpaper)';
        }
    }
    function _mpNwERst() {
        _uBkSlmjL = null;
        if(_TOkcFdEP) clearTimeout(_TOkcFdEP);
        _ZdxsZWYF(_baVqYQju);
        _tTJEnYku("登录已超时,请重新登录。", "warning");
    }
    async function _ITkbezjc() {
        if (_uBkSlmjL) {
            _QjJTWenM();
            return;
        }
        const _gEVUwEGz = prompt('请输入管理员密码:');
        if (!_gEVUwEGz) return;
        try {
            const _CNKyhQXn = await fetch('/api/verify-_nnlVslgS', {
                method: 'POST',
                _DadfZrLA: { 'Content-Type': 'application/json' },
                _SqQMpqgf: JSON.stringify({ _nnlVslgS: _gEVUwEGz })
            });
            const _KYJgvwFB = await _CNKyhQXn.json();
            if (_KYJgvwFB.success) {
                _uBkSlmjL = _gEVUwEGz;
                _tTJEnYku("登录成功!有效期5分钟。", "success");
                if (_TOkcFdEP) clearTimeout(_TOkcFdEP);
                _TOkcFdEP = setTimeout(_mpNwERst, 5 * 60 * 1000);
                _ZdxsZWYF(_baVqYQju);
                _QjJTWenM();
            } else {
                throw new Error(_KYJgvwFB._rMNQVEWf || '密码验证失败');
            }
        } catch (_SadlHwMG) {
            _tTJEnYku(`登录失败: ${_SadlHwMG._rMNQVEWf}`, "error");
        }
    }
    function _aWNahXwi() {
        if (!_ajvhjdJS._hKdjYWeo) {
            _mabVbMiR._PBInxfwO.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _nnlVslgS = document.getElementById('initialPassword')._FjzeQSAe;
                const _pWFrhqcB = document.getElementById('confirmPassword')._FjzeQSAe;
                if (_nnlVslgS !== _pWFrhqcB) {
                    _tTJEnYku("两次输入的密码不一致!", "error");
                    return;
                }
                if (_nnlVslgS._QesPjbkJ < 6) {
                    _tTJEnYku("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _CNKyhQXn = await fetch('/api/_HXFvlboj-_nnlVslgS', {
                        method: 'POST',
                        _DadfZrLA: { 'Content-Type': 'application/json' },
                        _SqQMpqgf: JSON.stringify({ _nnlVslgS })
                    });
                    const _KYJgvwFB = await _CNKyhQXn.json();
                    if (_KYJgvwFB.success) {
                        _tTJEnYku(_KYJgvwFB._rMNQVEWf, "success");
                        setTimeout(() => _VAZxHmhz.reload(), 1500);
                    } else {
                        throw new Error(_KYJgvwFB._rMNQVEWf);
                    }
                } catch(_SadlHwMG) {
                    _tTJEnYku(`设置密码失败: ${_SadlHwMG._rMNQVEWf}`, "error");
                }
            });
            return;
        }
        _bPywTOnC.addEventListener('click', _ITkbezjc);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _haUNcfIZ._PBInxfwO.display = 'none'; });
        _haUNcfIZ.addEventListener('click', (_SadlHwMG) => { if (_SadlHwMG.target === _haUNcfIZ) _haUNcfIZ._PBInxfwO.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_QcWGMwDA .fine-grained-_xTaAvhYb-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-_QcWGMwDA .fine-grained-_xTaAvhYb-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_uBkSlmjL) {
                _tTJEnYku("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _bBKGNGpf = [];
            document.querySelectorAll('#custom-fields-_QcWGMwDA .custom-field-_eaEdPQlc').forEach(_eaEdPQlc => {
                const _ckFbtgjN = _eaEdPQlc.querySelector('.custom-field-_ckFbtgjN')._FjzeQSAe.trim();
                const _FjzeQSAe = _eaEdPQlc.querySelector('.custom-field-_FjzeQSAe')._FjzeQSAe.trim();
                if (_ckFbtgjN) _bBKGNGpf.push({ _ckFbtgjN, _FjzeQSAe });
            });
            const _VRKzpBsE = [];
            document.querySelectorAll('#parameter-sets-_QcWGMwDA .parameter-_HXFvlboj-_eaEdPQlc').forEach(_eaEdPQlc => {
                const _ckFbtgjN = _eaEdPQlc.querySelector('.param-_HXFvlboj-_ckFbtgjN')._FjzeQSAe.trim();
                const _QAfgwnWs = _eaEdPQlc.querySelector('.param-_HXFvlboj-_QAfgwnWs')._FjzeQSAe.trim();
                const _jzCHUaST = _eaEdPQlc.querySelector('.param-_HXFvlboj-_jzCHUaST')._FjzeQSAe.trim();
                const _kBOGxKZb = _eaEdPQlc.querySelector('.param-_HXFvlboj-_kBOGxKZb')._FjzeQSAe.trim();
                if(_ckFbtgjN) _VRKzpBsE.push({ _ckFbtgjN, _QAfgwnWs, '_jzCHUaST': _jzCHUaST, _kBOGxKZb });
            });
            const _MpxifLTq = [];
            document.querySelectorAll('#fine-grained-sources-_QcWGMwDA .fine-grained-_MlvCFpRY-_eaEdPQlc').forEach(_eaEdPQlc => {
                const _VAZxHmhz = _eaEdPQlc.querySelector('.fine-grained-_VAZxHmhz')._FjzeQSAe.trim();
                const _AUGlySic = _eaEdPQlc.querySelector('.fine-grained-_AUGlySic')._FjzeQSAe.trim();
                const _xTaAvhYb = _eaEdPQlc.querySelector('.fine-grained-_xTaAvhYb-cb').checked;
                const _CSAvOhoQ = parseInt(_eaEdPQlc.querySelector('.fine-grained-_CSAvOhoQ')._FjzeQSAe, 10) || 0;
                const _pAkoNRhV = _eaEdPQlc.querySelector('.use-_ckFbtgjN-as-_VAZxHmhz-cb').checked;
                if (_VAZxHmhz && _AUGlySic) {
                    _MpxifLTq.push({ _VAZxHmhz, _AUGlySic, _xTaAvhYb, _CSAvOhoQ, _pAkoNRhV });
                }
            });
            
            let _zSzyfRSc = parseInt(document.getElementById('subscriptionIdLength')._FjzeQSAe, 10);
            if (isNaN(_zSzyfRSc) || _zSzyfRSc < 2) _zSzyfRSc = 2;
            if (_zSzyfRSc > 128) _zSzyfRSc = 128;

            const _JAiIKqZD = {
                theme: document.getElementById('themeSelect')._FjzeQSAe,
                primaryColor: document.getElementById('primaryColorInput')._FjzeQSAe,
                particleColor: document.getElementById('particleColorInput')._FjzeQSAe,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._FjzeQSAe,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._FjzeQSAe, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._FjzeQSAe, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._FjzeQSAe, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._FjzeQSAe, 10) || 0,
                _uPWvIonq: document.getElementById('converterServiceUrlInput')._FjzeQSAe.trim(),
                subscriptionId: {
                    _QesPjbkJ: _zSzyfRSc,
                    _BXalCNft: document.getElementById('subscriptionIdCharset')._FjzeQSAe.trim()
                },
                api: {
                    _xTaAvhYb: document.getElementById('enableApiCheckbox').checked,
                    _rMNQVEWf: document.getElementById('apiMessageInput')._FjzeQSAe || '维护中...',
                },
                ispFilter: { 
                    _xTaAvhYb: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._FjzeQSAe, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _xTaAvhYb: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _xTaAvhYb: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _MzNfaJoq: document.getElementById('websocketStreamerUrlInput')._FjzeQSAe.trim()
                },
                visitorPassword: {
                    _xTaAvhYb: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _nnlVslgS: document.getElementById('visitorPasswordInput')._FjzeQSAe.trim()
                },
                customSubPath: {
                    _xTaAvhYb: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _kBOGxKZb: document.getElementById('customSubPathInput')._FjzeQSAe.trim()
                },
                itemLink: {
                    _xTaAvhYb: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._FjzeQSAe,
                    selectionMode: document.getElementById('parameterSelectionMode')._FjzeQSAe,
                    _VRKzpBsE: _VRKzpBsE,
                    _bBKGNGpf: _bBKGNGpf,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._FjzeQSAe.trim(),
                },
                announcement: {
                    popup: {
                        _xTaAvhYb: document.getElementById('enablePopup').checked,
                        _jyjVKQbA: document.getElementById('announcementText')._FjzeQSAe,
                        _FFXiMqTd: parseInt(document.getElementById('popupDuration')._FjzeQSAe, 10) || 5
                    },
                    marquee: {
                        _xTaAvhYb: document.getElementById('enableMarquee').checked,
                        _jyjVKQbA: document.getElementById('announcementText')._FjzeQSAe
                    }
                },
                fineGrained: {
                    _xTaAvhYb: true,
                    sources: _MpxifLTq
                },
                customNodes: {
                    _xTaAvhYb: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._FjzeQSAe
                },
                texts: {
                    title: document.getElementById('textInput_title')._FjzeQSAe,
                    loginButton: document.getElementById('textInput_loginButton')._FjzeQSAe,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._FjzeQSAe,
                    liveTitle: document.getElementById('textInput_liveTitle')._FjzeQSAe,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._FjzeQSAe,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._FjzeQSAe,
                    loginButton: document.getElementById('colorInput_loginButton')._FjzeQSAe,
                    liveTitle: document.getElementById('colorInput_liveTitle')._FjzeQSAe,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._FjzeQSAe,
                    tableHeader: document.getElementById('colorInput_tableHeader')._FjzeQSAe,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._FjzeQSAe.trim(),
                    chat_id: document.getElementById('chatIdInput')._FjzeQSAe.trim(),
                },
            };
            try {
                const _CNKyhQXn = await fetch('/api/_rtoMLCWc', {
                    method: 'POST',
                    _DadfZrLA: { 'Content-Type': 'application/json' },
                    _SqQMpqgf: JSON.stringify({ _rtoMLCWc: _JAiIKqZD, adminPassword: _uBkSlmjL })
                });
                const _KYJgvwFB = await _CNKyhQXn.json();
                if (_CNKyhQXn.ok && _KYJgvwFB.success) {
                    _tTJEnYku("配置已保存,正在刷新...", "success");
                    setTimeout(() => _VAZxHmhz.reload(), 1500);
                } else {
                    throw new Error(_KYJgvwFB._rMNQVEWf || '未知错误');
                }
            } catch (_SadlHwMG) {
                _tTJEnYku(`操作失败: ${_SadlHwMG._rMNQVEWf}`, "error");
                if (String(_SadlHwMG._rMNQVEWf).includes("密码错误")) {
                    _mpNwERst();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _fnzTOSpq = document.getElementById('oldPasswordInput')._FjzeQSAe;
            const _ZrHEFnvG = document.getElementById('newPasswordInput')._FjzeQSAe;
            if (!_fnzTOSpq || !_ZrHEFnvG) {
                _tTJEnYku("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _CNKyhQXn = await fetch('/api/change-_nnlVslgS', {
                    method: 'POST',
                    _DadfZrLA: { 'Content-Type': 'application/json' },
                    _SqQMpqgf: JSON.stringify({ _fnzTOSpq, _ZrHEFnvG })
                });
                const _KYJgvwFB = await _CNKyhQXn.json();
                if (_KYJgvwFB.success) {
                    _tTJEnYku(_KYJgvwFB._rMNQVEWf, "success");
                    document.getElementById('oldPasswordInput')._FjzeQSAe = '';
                    document.getElementById('newPasswordInput')._FjzeQSAe = '';
                    _uBkSlmjL = _ZrHEFnvG;
                } else {
                    throw new Error(_KYJgvwFB._rMNQVEWf);
                }
            } catch(_SadlHwMG) {
                _tTJEnYku(`修改密码失败: ${_SadlHwMG._rMNQVEWf}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_SadlHwMG) => {
            document.getElementById('resolvedDomainsGroup')._PBInxfwO.display = _SadlHwMG.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_SadlHwMG) => {
            document.getElementById('customNodesGroup')._PBInxfwO.display = _SadlHwMG.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_SadlHwMG) => {
            document.getElementById('apiConfigGroup')._PBInxfwO.display = _SadlHwMG.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_SadlHwMG) => {
            document.getElementById('itemLinkConfigGroup')._PBInxfwO.display = _SadlHwMG.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_SadlHwMG) => {
            document.getElementById('websocketStreamerGroup')._PBInxfwO.display = _SadlHwMG.target.checked ? 'block' : 'none';
            const _ohFyXNSu = document.querySelector('#parameter-sets-_QcWGMwDA .param-_HXFvlboj-_kBOGxKZb');
            if (_ohFyXNSu) {
                if (_SadlHwMG.target.checked) {
                    _ohFyXNSu._FjzeQSAe = '/snippets?_zAuEMLsy=endpointAddress:_AWekBocW(443)&nat64=6to4';
                } else {
                    _ohFyXNSu._FjzeQSAe = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _Dmluvmul('', '');
        });
        document.getElementById('add-parameter-_HXFvlboj-btn').addEventListener('click', () => {
            const _ufeKXIEz = document.querySelectorAll('.parameter-_HXFvlboj-_eaEdPQlc')._QesPjbkJ + 1;
            _iXdoWtFN({_ckFbtgjN: `配置${_ufeKXIEz}`, _QAfgwnWs: '', _jzCHUaST: '', _kBOGxKZb: ''});
            _vNdAMuHI();
        });
         document.getElementById('add-fine-grained-_MlvCFpRY-btn').addEventListener('click', () => {
             _EVjtfMca({ _VAZxHmhz: '', _AUGlySic: '', _xTaAvhYb: true, _CSAvOhoQ: 50, _pAkoNRhV: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_SadlHwMG) => {
            document.getElementById('visitorPasswordGroup')._PBInxfwO.display = _SadlHwMG.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_SadlHwMG) => {
            document.getElementById('customSubPathGroup')._PBInxfwO.display = _SadlHwMG.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_SadlHwMG) => {
            document.getElementById('popupDurationContainer')._PBInxfwO.display = _SadlHwMG.target.checked ? 'flex' : 'none';
        });
    }
    function _Dmluvmul(_ckFbtgjN, _FjzeQSAe) {
        const _QcWGMwDA = document.getElementById('custom-fields-_QcWGMwDA');
        const _wIQeIKzP = document.createElement('div');
        _wIQeIKzP.className = 'form-grid custom-field-_eaEdPQlc';
        _wIQeIKzP._PBInxfwO = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _wIQeIKzP.innerHTML = `
            <input _bBhESgzA="_jyjVKQbA" class="custom-field-_ckFbtgjN" _obolMVVG="占位符名称" _FjzeQSAe="${_ckFbtgjN}">
            <input _bBhESgzA="_jyjVKQbA" class="custom-field-_FjzeQSAe" _obolMVVG="值" _FjzeQSAe="${_FjzeQSAe}">
            <button _bBhESgzA="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _QcWGMwDA.appendChild(_wIQeIKzP);
    }
    function _iXdoWtFN(_HXFvlboj) {
        const _QcWGMwDA = document.getElementById('parameter-sets-_QcWGMwDA');
        const _wIQeIKzP = document.createElement('div');
        _wIQeIKzP.className = 'parameter-_HXFvlboj-_eaEdPQlc';
        _wIQeIKzP.innerHTML = `
            <div class="parameter-_HXFvlboj-_xjygycxh">
                <input _bBhESgzA="_jyjVKQbA" class="param-_HXFvlboj-_ckFbtgjN" _obolMVVG="配置名称" _FjzeQSAe="${_HXFvlboj._ckFbtgjN}" oninput="_vNdAMuHI()">
                <button _bBhESgzA="button" class="btn btn-outline" onclick="this.closest('.parameter-_HXFvlboj-_eaEdPQlc').remove(); _vNdAMuHI();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _bBhESgzA="_jyjVKQbA" class="param-_HXFvlboj-_QAfgwnWs" _FjzeQSAe="${_HXFvlboj._QAfgwnWs || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _bBhESgzA="_jyjVKQbA" class="param-_HXFvlboj-_jzCHUaST" _FjzeQSAe="${_HXFvlboj['_jzCHUaST'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _bBhESgzA="_jyjVKQbA" class="param-_HXFvlboj-_kBOGxKZb" _FjzeQSAe="${_HXFvlboj._kBOGxKZb || ''}"></div>
            </div>
        `;
        _QcWGMwDA.appendChild(_wIQeIKzP);
    }
    function _vNdAMuHI() {
        const _OXtyUgYC = document.getElementById('parameterSelectionMode');
        const _muVHpoBh = _OXtyUgYC._FjzeQSAe;
        _OXtyUgYC.innerHTML = '';
        const _OBBTJPKP = document.createElement('_GllpaWAU');
        _OBBTJPKP._FjzeQSAe = 'random';
        _OBBTJPKP.textContent = '随机轮询';
        _OXtyUgYC.appendChild(_OBBTJPKP);
        const _rdXeNlHQ = document.createElement('_GllpaWAU');
        _rdXeNlHQ._FjzeQSAe = 'first';
        _rdXeNlHQ.textContent = '使用第一组';
        _OXtyUgYC.appendChild(_rdXeNlHQ);
        document.querySelectorAll('.param-_HXFvlboj-_ckFbtgjN').forEach(input => {
            const _ckFbtgjN = input._FjzeQSAe.trim();
            if (_ckFbtgjN) {
                const _GllpaWAU = document.createElement('_GllpaWAU');
                _GllpaWAU._FjzeQSAe = _ckFbtgjN;
                _GllpaWAU.textContent = `指定: ${_ckFbtgjN}`;
                _OXtyUgYC.appendChild(_GllpaWAU);
            }
        });
        if (Array.from(_OXtyUgYC.options).some(opt => opt._FjzeQSAe === _muVHpoBh)) {
            _OXtyUgYC._FjzeQSAe = _muVHpoBh;
        } else {
            _OXtyUgYC._FjzeQSAe = 'random';
        }
    }
    function _EVjtfMca(_MlvCFpRY) {
        const _QcWGMwDA = document.getElementById('fine-grained-sources-_QcWGMwDA');
        const _wIQeIKzP = document.createElement('div');
        _wIQeIKzP.className = 'fine-grained-_MlvCFpRY-_eaEdPQlc parameter-_HXFvlboj-_eaEdPQlc';
        _wIQeIKzP._PBInxfwO.padding = '1rem';
        const _HtgQNlHA = _MlvCFpRY._pAkoNRhV ? 'checked' : '';
        const _timrchOT = !_MlvCFpRY._pAkoNRhV ? 'checked' : '';
        const _pcZhPPDq = _MlvCFpRY._xTaAvhYb ? 'checked' : '';
        _wIQeIKzP.innerHTML = `
            <div _PBInxfwO="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _bBhESgzA="_jyjVKQbA" class="fine-grained-_VAZxHmhz" _obolMVVG="地区名称 (如: 香港)" _FjzeQSAe="${_MlvCFpRY._VAZxHmhz || ''}">
                <div _PBInxfwO="display: flex; align-items: center; gap: 5px;"><input _bBhESgzA="checkbox" class="fine-grained-_xTaAvhYb-cb" ${_pcZhPPDq}><label>启用</label></div>
                <button _bBhESgzA="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_MlvCFpRY-_eaEdPQlc').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_AUGlySic" _obolMVVG="IP源 (每行一个IP、CIDR或URL)" _ssjNcqkd="3" _PBInxfwO="_IqvxpuUK:100%;">${_MlvCFpRY._AUGlySic || ''}</textarea>
            <div class="fine-grained-options" _PBInxfwO="justify-_TaQXZoLv: space-between;">
                <div _PBInxfwO="display: flex; gap: 1rem;">
                    <label><input _bBhESgzA="checkbox" class="query-_LFHzjGIb-cb" ${_timrchOT}>查询真实归属地</label>
                    <label><input _bBhESgzA="checkbox" class="use-_ckFbtgjN-as-_VAZxHmhz-cb" ${_HtgQNlHA}>使用地区名称作为归属地</label>
                </div>
                <div _PBInxfwO="display: flex; align-items: center; gap: 5px;"><input _bBhESgzA="number" class="fine-grained-_CSAvOhoQ _CSAvOhoQ-input" _FjzeQSAe="${_MlvCFpRY._CSAvOhoQ || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _WPrOevZu = _wIQeIKzP.querySelector('.query-_LFHzjGIb-cb');
        const _FJpPduuz = _wIQeIKzP.querySelector('.use-_ckFbtgjN-as-_VAZxHmhz-cb');
        _WPrOevZu.addEventListener('change', () => {
            if (_WPrOevZu.checked) {
                _FJpPduuz.checked = false;
            } else if (!_FJpPduuz.checked) {
                _WPrOevZu.checked = true;
            }
        });
        _FJpPduuz.addEventListener('change', () => {
            if (_FJpPduuz.checked) {
                _WPrOevZu.checked = false;
            } else if (!_FJpPduuz.checked) {
                _FJpPduuz.checked = true;
            }
        });
        _QcWGMwDA.appendChild(_wIQeIKzP);
    }
    function _QjJTWenM() {
        const _lPgSFjNx = _baVqYQju;
        document.getElementById('themeSelect')._FjzeQSAe = _lPgSFjNx.theme;
        document.getElementById('primaryColorInput')._FjzeQSAe = _lPgSFjNx.primaryColor;
        document.getElementById('particleColorInput')._FjzeQSAe = _lPgSFjNx.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _lPgSFjNx.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._obolMVVG = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._FjzeQSAe = _lPgSFjNx.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._PBInxfwO.display = _lPgSFjNx.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _lPgSFjNx.customNodes._xTaAvhYb;
        document.getElementById('customNodesInput')._FjzeQSAe = _lPgSFjNx.customNodes.list || '';
        document.getElementById('customNodesGroup')._PBInxfwO.display = _lPgSFjNx.customNodes._xTaAvhYb ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._FjzeQSAe = _lPgSFjNx._uPWvIonq || '';
        document.getElementById('subscriptionIdLength')._FjzeQSAe = _lPgSFjNx.subscriptionId._QesPjbkJ;
        document.getElementById('subscriptionIdCharset')._FjzeQSAe = _lPgSFjNx.subscriptionId._BXalCNft;
        document.getElementById('enableItemLinkCheckbox').checked = _lPgSFjNx.itemLink._xTaAvhYb;
        document.getElementById('itemLinkConfigGroup')._PBInxfwO.display = _lPgSFjNx.itemLink._xTaAvhYb ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._FjzeQSAe = _lPgSFjNx.itemLink.template;
        const _aojFkPni = document.getElementById('parameter-sets-_QcWGMwDA');
        _aojFkPni.innerHTML = '';
        if (_lPgSFjNx.itemLink._VRKzpBsE && Array.isArray(_lPgSFjNx.itemLink._VRKzpBsE)) {
            _lPgSFjNx.itemLink._VRKzpBsE.forEach(_HXFvlboj => _iXdoWtFN(_HXFvlboj));
        }
        _vNdAMuHI();
        document.getElementById('parameterSelectionMode')._FjzeQSAe = _lPgSFjNx.itemLink.selectionMode || 'random';
        const _ohFyXNSu = document.querySelector('#parameter-sets-_QcWGMwDA .param-_HXFvlboj-_kBOGxKZb');
        if (_ohFyXNSu && _lPgSFjNx.websocketStreamer && _lPgSFjNx.websocketStreamer._xTaAvhYb) {
            _ohFyXNSu._FjzeQSAe = '/snippets?_zAuEMLsy=endpointAddress:_AWekBocW(443)&nat64=6to4';
        }
        const _pDUIoBwz = document.getElementById('custom-fields-_QcWGMwDA');
        _pDUIoBwz.innerHTML = '';
        if (_lPgSFjNx.itemLink._bBKGNGpf && Array.isArray(_lPgSFjNx.itemLink._bBKGNGpf)) {
            _lPgSFjNx.itemLink._bBKGNGpf.forEach(field => _Dmluvmul(field._ckFbtgjN, field._FjzeQSAe));
        }
        document.getElementById('universalFallbackAddressInput')._FjzeQSAe = _lPgSFjNx.dataFeeds.universalFallbackAddress || '';
        const _inSbnWDS = _lPgSFjNx.websocketStreamer && _lPgSFjNx.websocketStreamer._xTaAvhYb;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _inSbnWDS;
        document.getElementById('websocketStreamerUrlInput')._FjzeQSAe = _lPgSFjNx.websocketStreamer ? _lPgSFjNx.websocketStreamer._MzNfaJoq : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._PBInxfwO.display = _inSbnWDS ? 'block' : 'none';
        const _uDewyelt = _lPgSFjNx.announcement || {};
        document.getElementById('announcementText')._FjzeQSAe = (_uDewyelt.popup && _uDewyelt.popup._jyjVKQbA) || (_uDewyelt.marquee && _uDewyelt.marquee._jyjVKQbA) || '';
        document.getElementById('enableMarquee').checked = _uDewyelt.marquee && _uDewyelt.marquee._xTaAvhYb;
        document.getElementById('enablePopup').checked = _uDewyelt.popup && _uDewyelt.popup._xTaAvhYb;
        document.getElementById('popupDuration')._FjzeQSAe = (_uDewyelt.popup && _uDewyelt.popup._FFXiMqTd) || 5;
        document.getElementById('popupDurationContainer')._PBInxfwO.display = (_uDewyelt.popup && _uDewyelt.popup._xTaAvhYb) ? 'flex' : 'none';
        const _TFHHpYQa = document.getElementById('fine-grained-sources-_QcWGMwDA');
        _TFHHpYQa.innerHTML = '';
        if (_lPgSFjNx.fineGrained.sources && Array.isArray(_lPgSFjNx.fineGrained.sources)) {
            _lPgSFjNx.fineGrained.sources.forEach(_MlvCFpRY => _EVjtfMca(_MlvCFpRY));
        }
        document.getElementById('sampleSizeInput')._FjzeQSAe = _lPgSFjNx.sampleSize;
        document.getElementById('topNInput')._FjzeQSAe = _lPgSFjNx.topN;
        document.getElementById('latencyRangeMinInput')._FjzeQSAe = _lPgSFjNx.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._FjzeQSAe = _lPgSFjNx.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _lPgSFjNx.ispFilter._xTaAvhYb;
        const _CbpwoNOU = _lPgSFjNx.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._FjzeQSAe = _CbpwoNOU.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _CbpwoNOU.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _lPgSFjNx.streamer._xTaAvhYb;
        document.getElementById('enableApiCheckbox').checked = _lPgSFjNx.api._xTaAvhYb;
        document.getElementById('apiConfigGroup')._PBInxfwO.display = _lPgSFjNx.api._xTaAvhYb ? 'block' : 'none';
        document.getElementById('apiMessageInput')._FjzeQSAe = _lPgSFjNx.api._rMNQVEWf;
        const _JollunIJ = _lPgSFjNx.customSubPath && _lPgSFjNx.customSubPath._xTaAvhYb;
        document.getElementById('enableCustomSubPathCheckbox').checked = _JollunIJ;
        document.getElementById('customSubPathInput')._FjzeQSAe = _lPgSFjNx.customSubPath ? _lPgSFjNx.customSubPath._kBOGxKZb : 'latest';
        document.getElementById('customSubPathGroup')._PBInxfwO.display = _JollunIJ ? 'block' : 'none';
        const _cqAZgusp = _lPgSFjNx.visitorPassword && _lPgSFjNx.visitorPassword._xTaAvhYb;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _cqAZgusp;
        document.getElementById('visitorPasswordInput')._FjzeQSAe = _lPgSFjNx.visitorPassword ? _lPgSFjNx.visitorPassword._nnlVslgS : '';
        document.getElementById('visitorPasswordGroup')._PBInxfwO.display = _cqAZgusp ? 'block' : 'none';
        document.getElementById('textInput_title')._FjzeQSAe = _lPgSFjNx.texts.title;
        document.getElementById('textInput_loginButton')._FjzeQSAe = _lPgSFjNx.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._FjzeQSAe = _lPgSFjNx.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._FjzeQSAe = _lPgSFjNx.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._FjzeQSAe = _lPgSFjNx.texts.cachedTitle;
        document.getElementById('colorInput_title')._FjzeQSAe = _lPgSFjNx.colors.title;
        document.getElementById('colorInput_loginButton')._FjzeQSAe = _lPgSFjNx.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._FjzeQSAe = _lPgSFjNx.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._FjzeQSAe = _lPgSFjNx.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._FjzeQSAe = _lPgSFjNx.colors.tableHeader;
        document.getElementById('botTokenInput')._FjzeQSAe = _lPgSFjNx.telegram.bot_token || '';
        document.getElementById('chatIdInput')._FjzeQSAe = _lPgSFjNx.telegram.chat_id || '';
        _haUNcfIZ._PBInxfwO.display = 'flex';
    }
    function _ICrfhqqf(_UXZDDDaH) {
        if (window.innerWidth <= 768) {
            const _ssjNcqkd = _UXZDDDaH.querySelectorAll('thead tr, tbody tr');
            _ssjNcqkd.forEach(_eaEdPQlc => {
                const _vpCPjgkl = Array.from(_eaEdPQlc.children);
                const _vfPLEAEb = [
                    _vpCPjgkl[0],
                    _vpCPjgkl[1],
                    _vpCPjgkl[3],
                    _vpCPjgkl[6],
                    _vpCPjgkl[2],
                    _vpCPjgkl[4],
                    _vpCPjgkl[5]
                ];
                _vfPLEAEb.forEach(cell => _eaEdPQlc.appendChild(cell));
            });
        }
    }
    async function _qsnuyfbq() {
        if (!_ajvhjdJS._hKdjYWeo) {
            _aWNahXwi();
            return;
        }
        if (_baVqYQju.announcement && _baVqYQju.announcement.marquee && _baVqYQju.announcement.marquee._xTaAvhYb && _baVqYQju.announcement.marquee._jyjVKQbA) {
            const _UKNIupbl = document.getElementById('marquee-_QcWGMwDA');
            const _cvPJMsaO = document.getElementById('marquee-_jyjVKQbA');
            const _XwyIaLmG = document.querySelector('.progress-section');
            if (_UKNIupbl && _cvPJMsaO && _XwyIaLmG) {
                _cvPJMsaO.innerText = _baVqYQju.announcement.marquee._jyjVKQbA;
                _UKNIupbl._PBInxfwO.display = 'block';
                const _yEzfcRHe = () => {
                    _UKNIupbl._PBInxfwO._IqvxpuUK = `${_XwyIaLmG.offsetWidth}px`;
                    const _FtOCVWop = _cvPJMsaO.offsetWidth;
                    const _PWXOtxvn = _UKNIupbl.offsetWidth;
                    const _FFXiMqTd = (_FtOCVWop + _PWXOtxvn) / 100;
                    _cvPJMsaO._PBInxfwO.animationDuration = `${Math.max(10, _FFXiMqTd)}s`;
                };
                _yEzfcRHe();
                window.addEventListener('resize', _yEzfcRHe);
            }
        }
        
        _ZdxsZWYF(_baVqYQju);
        
        if (_baVqYQju.announcement && _baVqYQju.announcement.popup && _baVqYQju.announcement.popup._xTaAvhYb && _baVqYQju.announcement.popup._jyjVKQbA) {
            setTimeout(() => {
                _tTJEnYku(_baVqYQju.announcement.popup._jyjVKQbA, 'info', _baVqYQju.announcement.popup._FFXiMqTd * 1000);
            }, 500);
        }
        _aWNahXwi();
        _iymODnPb();
        _GcUOpKHr();
        _fhPhdRTj();
        await _NRVPBzgK();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _IDJhdCjZ = window._VAZxHmhz.origin + '/_zAuEMLsy';
            navigator.clipboard.writeText(_IDJhdCjZ).then(() => {
                _tTJEnYku('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_baVqYQju.visitorPassword && _baVqYQju.visitorPassword._xTaAvhYb) {
            _MirUVztO._PBInxfwO.display = 'none';
            const _eKszuOCw = document.getElementById('visitorPasswordPrompt');
            _eKszuOCw._PBInxfwO.display = 'block';
            const _onLJvGLp = document.getElementById('visitorPasswordEntry');
            const _KYKzgtmf = document.getElementById('startTestWithPasswordBtn');
            const _GqRLeCOT = async () => {
                const _nnlVslgS = _onLJvGLp._FjzeQSAe;
                if (!_nnlVslgS) {
                    _tTJEnYku('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _CNKyhQXn = await fetch('/api/verify-visitor-_nnlVslgS', {
                        method: 'POST',
                        _DadfZrLA: { 'Content-Type': 'application/json' },
                        _SqQMpqgf: JSON.stringify({ _nnlVslgS })
                    });
                    const _KYJgvwFB = await _CNKyhQXn.json();
                    if (_CNKyhQXn.ok && _KYJgvwFB.success) {
                        _tTJEnYku('验证成功,开始测试...', 'success');
                        _eKszuOCw._PBInxfwO.display = 'none';
                        _MirUVztO._PBInxfwO.display = 'block';
                        await _uzBuFSKL();
                    } else {
                        throw new Error(_KYJgvwFB._rMNQVEWf || '密码错误');
                    }
                } catch (_SadlHwMG) {
                    _tTJEnYku(`验证失败: ${_SadlHwMG._rMNQVEWf}`, "error");
                    _onLJvGLp._FjzeQSAe = '';
                    _onLJvGLp.focus();
                }
            };
            _KYKzgtmf.addEventListener('click', _GqRLeCOT);
            _onLJvGLp.addEventListener('keypress', (_SadlHwMG) => {
                if (_SadlHwMG._xtbiKbAc === 'Enter') {
                    _SadlHwMG.preventDefault();
                    _GqRLeCOT();
                }
            });
            _onLJvGLp.focus();
        } else {
            _wpqGuIWR.textContent = "页面加载完成,准备开始测试...";
            await _yDVfmwey(100);
            await _uzBuFSKL();
        }
    }
    async function _yDVfmwey(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _bXnQwjrE(_ssCFhRRI) {
      let _KYJgvwFB = /^#?([a-_gGCFbiGo\d]{2})([a-_gGCFbiGo\d]{2})([a-_gGCFbiGo\d]{2})$/_ccNBJYvV.exec(_ssCFhRRI);
      return _KYJgvwFB ? { r: parseInt(_KYJgvwFB[1], 16), g: parseInt(_KYJgvwFB[2], 16), b: parseInt(_KYJgvwFB[3], 16) } : null;
    }
    async function _AXypNvYI(_zAuEMLsy) {
        const _vQWPYwBn = new AbortController();
        const _jaGyyfNq = setTimeout(() => _vQWPYwBn.abort(), _pBHllbIc);
        const _dixbXuAG = Date.now();
        try {
            const _eHSosKjf = _KGeEehhb.isIPv6(_zAuEMLsy) ? `[${_zAuEMLsy}]` : _zAuEMLsy;
            const _MzNfaJoq = `https://${_eHSosKjf}/cdn-cgi/trace`;
            await fetch(_MzNfaJoq, {
                signal: _vQWPYwBn.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._ckFbtgjN === 'AbortError') {
                return { _zAuEMLsy, _UMlobzDs: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_jaGyyfNq);
        }
        const _UMlobzDs = Date.now() - _dixbXuAG;
        return { _zAuEMLsy, _UMlobzDs: _UMlobzDs, error: null };
    }
    function _FWaOSwXK(_KYJgvwFB, _ufQpLglS) {
        const { itemLink } = _baVqYQju;
        if (!itemLink || !itemLink._xTaAvhYb) return null;
        const { template, _VRKzpBsE, selectionMode, _bBKGNGpf } = itemLink;
        if (!_VRKzpBsE || _VRKzpBsE._QesPjbkJ === 0) return null;
        let _LzHuHPzX;
        if (selectionMode === 'random') {
            _LzHuHPzX = _VRKzpBsE[_ufQpLglS % _VRKzpBsE._QesPjbkJ];
        } else if (selectionMode === 'first') {
            _LzHuHPzX = _VRKzpBsE[0];
        } else {
            _LzHuHPzX = _VRKzpBsE.find(s => s._ckFbtgjN === selectionMode) || _VRKzpBsE[0];
        }
        if (!_LzHuHPzX) return null;
        let _xDgbFEUa = template;
        const _mHmEbsVl = _KYJgvwFB._AWekBocW || 443;
        const _MWHucuDn = _KGeEehhb.isIPv6(_KYJgvwFB._zAuEMLsy) ? `[${_KYJgvwFB._zAuEMLsy}]` : _KYJgvwFB._zAuEMLsy;
        let _ckFbtgjN = `${_ufQpLglS + 1} 、 ${_KYJgvwFB._VAZxHmhz || '未知'}`;
        if (!_KYJgvwFB._XrXMgXRI || !_KYJgvwFB._XrXMgXRI.toLowerCase().includes('cloudflare')) {
            _ckFbtgjN += '(反代)';
        }
        let _QAfgwnWs = _LzHuHPzX._QAfgwnWs || window._VAZxHmhz._lZjYBycT;
        _xDgbFEUa = _xDgbFEUa.replace(/{_zAuEMLsy}/g, _MWHucuDn)
                   .replace(/{_AWekBocW}/g, _mHmEbsVl)
                   .replace(/{_ckFbtgjN}/g, encodeURIComponent(_ckFbtgjN))
                   .replace(/{rank}/g, _ufQpLglS + 1)
                   .replace(/{_VAZxHmhz}/g, encodeURIComponent(_KYJgvwFB._VAZxHmhz || '未知'))
                   .replace(/{_XrXMgXRI}/g, encodeURIComponent(_KYJgvwFB._XrXMgXRI || '未知'))
                   .replace(/{_QAfgwnWs}/g, encodeURIComponent(_QAfgwnWs))
                   .replace(/{_jzCHUaST}/g, encodeURIComponent(_LzHuHPzX['_jzCHUaST'] || ''))
                   .replace(/{_kBOGxKZb}/g, encodeURIComponent(encodeURIComponent(_LzHuHPzX._kBOGxKZb || '')));
       if (_bBKGNGpf) {
        _bBKGNGpf.forEach(field => {
            const _obolMVVG = new RegExp('{' + field._ckFbtgjN + '}', 'g');
            _xDgbFEUa = _xDgbFEUa.replace(_obolMVVG, encodeURIComponent(field._FjzeQSAe));
        });
    }
    return _xDgbFEUa;
    }
    function _oLuFcdaH(_gCtLTBwD, _JgeCnzJE, isCached = false) {
        _JgeCnzJE.innerHTML = '';
        const _uBqtZcLI = _gCtLTBwD._uBqtZcLI || [];
        const _UMWMXAwf = _gCtLTBwD.generatedBy || null;
        const _RqjOxsas = isCached ? _znRysTmu : _TBlceRpl;
        const _GKhNikuZ = isCached ? (_znRysTmu.querySelector('.generator-info')) : (_TBlceRpl.querySelector('.generator-info'));
        if (_uBqtZcLI._QesPjbkJ === 0) {
            _RqjOxsas._PBInxfwO.display = 'none';
            if (!isCached) _cjNeEisV._PBInxfwO.display = 'none';
            if (_GKhNikuZ) _GKhNikuZ.textContent = '';
            return;
        }
        _RqjOxsas._PBInxfwO.display = 'block';
        if (!isCached && _uBqtZcLI._QesPjbkJ > 0) {
             _cjNeEisV._PBInxfwO.display = 'block';
        }
        if (_GKhNikuZ && _UMWMXAwf) {
            _GKhNikuZ.innerHTML = `数据来源 ${_UMWMXAwf._zAuEMLsy} (${_UMWMXAwf._VAZxHmhz}) <span>${_UMWMXAwf.time}</span>`;
        }
        
        _uBqtZcLI.forEach((_KYJgvwFB, _ufQpLglS) => {
            const _mHmEbsVl = _KYJgvwFB._AWekBocW || 443;
            const _eaEdPQlc = _JgeCnzJE.insertRow();
            _eaEdPQlc.insertCell().textContent = _ufQpLglS + 1;
            const _TFcSibXV = _eaEdPQlc.insertCell();
            _TFcSibXV.textContent = _KYJgvwFB._zAuEMLsy;
            _TFcSibXV.className = '_zAuEMLsy-_JxAbVIsI';
            _eaEdPQlc.insertCell().textContent = _mHmEbsVl;
            const _KvkDoppg = _eaEdPQlc.insertCell();
            _KvkDoppg.textContent = (_KYJgvwFB._UMlobzDs === Infinity) ? (_KYJgvwFB.error || '错误') : _KYJgvwFB._UMlobzDs;
            _KvkDoppg.className = 'ping-_FjzeQSAe';
            _eaEdPQlc.insertCell().textContent = _KYJgvwFB._VAZxHmhz || '未知';
            _eaEdPQlc.insertCell().textContent = _KYJgvwFB._XrXMgXRI || '未知';
            const _VRmgyird = _eaEdPQlc.insertCell();
            _VRmgyird.className = 'actions-cell';
            const _muztaUog = document.createElement('button');
            _muztaUog.textContent = '复制IP';
            _muztaUog.className = 'btn btn-outline';
            _muztaUog.onclick = () => { navigator.clipboard.writeText(_KYJgvwFB._zAuEMLsy).then(() => _tTJEnYku('IP复制成功!', 'success')); };
            if (_baVqYQju.itemLink && _baVqYQju.itemLink._xTaAvhYb) {
                const _cGsZgakG = document.createElement('button');
                _cGsZgakG.textContent = '复制节点';
                _cGsZgakG.className = 'btn btn-outline';
                _cGsZgakG.onclick = () => {
                    const _xDgbFEUa = _FWaOSwXK(_KYJgvwFB, _ufQpLglS);
                    if (_xDgbFEUa) {
                       navigator.clipboard.writeText(_xDgbFEUa).then(() => _tTJEnYku('订阅链接复制成功!', 'success'));
                    }
                };
                _VRmgyird.appendChild(_cGsZgakG);
            }
            _VRmgyird.appendChild(_muztaUog);
        });
        _ICrfhqqf(_JgeCnzJE.parentElement);
    }
    async function _vtVXFiIy(_OpyjhMlt) {
        const _MYkJhMcY = (_OpyjhMlt || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _oKVqZdie = [];
        const _HzGsHOFN = [];
        const _YvQnshNV = (str) => {
            try {
                const _MzNfaJoq = new URL(str);
                return _MzNfaJoq.protocol === "http:" || _MzNfaJoq.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _NXVfllnb of _MYkJhMcY) {
            if (_YvQnshNV(_NXVfllnb)) {
                _oKVqZdie.push(_NXVfllnb);
            } else {
                _HzGsHOFN.push(_NXVfllnb);
            }
        }
        let _IIqbJEek = [];
        if (_oKVqZdie._QesPjbkJ > 0) {
            try {
                const _CNKyhQXn = await fetch('/api/parse-_AUGlySic-from-_oKVqZdie', {
                    method: 'POST',
                    _DadfZrLA: { 'Content-Type': 'application/json' },
                    _SqQMpqgf: JSON.stringify({ _oKVqZdie })
                });
                if (_CNKyhQXn.ok) {
                    const _gCtLTBwD = await _CNKyhQXn.json();
                    _IIqbJEek = _gCtLTBwD._AUGlySic || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _CNKyhQXn._jyjVKQbA());
                    _tTJEnYku('从URL获取IP失败', 'error');
                }
            } catch (_SadlHwMG) {
                console.error('Error fetching IPs from URLs:', _SadlHwMG);
                _tTJEnYku(`从URL获取IP失败: ${_SadlHwMG._rMNQVEWf}`, 'error');
            }
        }
        return [..._HzGsHOFN, ..._IIqbJEek];
    }
    async function _uzBuFSKL() {
        _OkpBynlm = false;
        _HPeENrgx = [];
        _lgtxzTRl = null;
        _cjNeEisV._PBInxfwO.display = 'none';
        _wpqGuIWR.textContent = '准备IP源...';
        _amOyqZXC._FjzeQSAe = 0;
        _TBlceRpl._PBInxfwO.display = 'none';
        await _yDVfmwey();
        const _YTuVpfoT = new Map();
        let _AjPEmZMh = [];
        const _bqbKQtqu = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_baVqYQju.useResolvedDomains) {
            _wpqGuIWR.textContent = '正在从域名解析IP...';
            const _KFZfOrja = (_baVqYQju.resolvedDomains || '').trim();
            const _UUiBvAcs = _KFZfOrja ? _KFZfOrja.split(/\s+|\n+/) : _lEjRaTMC;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_AUGlySic', { method: 'POST', _DadfZrLA: { 'Content-Type': 'application/json' }, _SqQMpqgf: JSON.stringify({ _UUiBvAcs, _bBhESgzA: 'A' }) }),
                    fetch('/api/get-resolved-_AUGlySic', { method: 'POST', _DadfZrLA: { 'Content-Type': 'application/json' }, _SqQMpqgf: JSON.stringify({ _UUiBvAcs, _bBhESgzA: 'AAAA' }) })
                ]);
                let _AkIxdNeo = [];
                if (ipv4Response.ok) _AkIxdNeo.push(...(await ipv4Response._jyjVKQbA()).split(/\s+|\n+/));
                if (ipv6Response.ok) _AkIxdNeo.push(...(await ipv6Response._jyjVKQbA()).split(/\s+|\n+/));
                _AjPEmZMh.push(..._AkIxdNeo.filter(_zAuEMLsy => _zAuEMLsy.trim()).map(_zAuEMLsy => ({ _zAuEMLsy, _AWekBocW: null, sourceName: 'resolved' })));
            } catch (_SadlHwMG) {
                _tTJEnYku(`域名解析失败: ${_SadlHwMG._rMNQVEWf}`, 'error');
            }
        }
        const _qhAkpbOu = (_baVqYQju.fineGrained.sources || []).filter(s => s._xTaAvhYb);
        if (_qhAkpbOu._QesPjbkJ > 0) {
            const _SoXmcEdq = {};
            let _RmCvlfUG = 0;
            _qhAkpbOu.forEach(s => {
                const _qQWUEdeo = Number(s._CSAvOhoQ) || 0;
                _SoXmcEdq[s._VAZxHmhz] = _qQWUEdeo;
                _RmCvlfUG += _qQWUEdeo;
            });
            if (_RmCvlfUG > 0) {
                Object._ynNIIAge(_SoXmcEdq).forEach(k => {
                    _SoXmcEdq[k] = (_SoXmcEdq[k] / _RmCvlfUG) * 100;
                });
            } else {
                _qhAkpbOu.forEach(s => _SoXmcEdq[s._VAZxHmhz] = 100 / _qhAkpbOu._QesPjbkJ);
            }
            const _CegxZfTG = _NWBeAmEd(_baVqYQju.sampleSize, _SoXmcEdq);
            for (const _MlvCFpRY of _qhAkpbOu) {
                const _ufeKXIEz = _CegxZfTG[_MlvCFpRY._VAZxHmhz];
                if (!_ufeKXIEz) continue;
                _wpqGuIWR.textContent = `正在处理 [ ${_MlvCFpRY._VAZxHmhz} ] 源...`;
                const _sicjtAjv = await _vtVXFiIy(_MlvCFpRY._AUGlySic);
                if (_MlvCFpRY._pAkoNRhV) {
                    _sicjtAjv.forEach(_NXVfllnb => _YTuVpfoT._HXFvlboj(_NXVfllnb, _MlvCFpRY._VAZxHmhz));
                }
                let _KlOuAWeF = [];
                const _dQdvZKkH = Math.ceil(_ufeKXIEz / (_sicjtAjv._QesPjbkJ || 1)) || 1;
                for (const _NXVfllnb of _sicjtAjv) {
                    if (_bqbKQtqu.test(_NXVfllnb)) {
                        const _KLXNhZKP = _KGeEehhb.cidrToRange(_NXVfllnb, _dQdvZKkH);
                        if (_YTuVpfoT.has(_NXVfllnb)) {
                           _KLXNhZKP.forEach(_zAuEMLsy => _YTuVpfoT._HXFvlboj(_zAuEMLsy, _YTuVpfoT.get(_NXVfllnb)));
                        }
                        _KlOuAWeF.push(..._KLXNhZKP.map(_zAuEMLsy => ({ _zAuEMLsy, _AWekBocW: null })));
                    } else {
                        const _uyRkyzJw = _NXVfllnb.lastIndexOf(':');
                        let _zAuEMLsy = _NXVfllnb;
                        let _AWekBocW = null;

                        if (_uyRkyzJw > _NXVfllnb.lastIndexOf(']')) {
                            const _SceRflBN = _NXVfllnb.substring(_uyRkyzJw + 1);
                            if (!isNaN(_SceRflBN) && _SceRflBN._QesPjbkJ > 0) {
                                _zAuEMLsy = _NXVfllnb.substring(0, _uyRkyzJw);
                                _AWekBocW = _SceRflBN;
                            }
                        }
                        
                        if (_KGeEehhb.isValid(_zAuEMLsy.replace(/[\[\]]/g, ''))) {
                             _KlOuAWeF.push({ _zAuEMLsy: _zAuEMLsy.replace(/[\[\]]/g, ''), _AWekBocW });
                        }
                    }
                }
                let _yqrvftVI = _KlOuAWeF.filter((v,_ccNBJYvV,a)=>a.findIndex(t=>(t._zAuEMLsy === v._zAuEMLsy && t._AWekBocW === v._AWekBocW))===_ccNBJYvV);
                _yqrvftVI.sort(() => 0.5 - Math.random());
                _AjPEmZMh.push(..._yqrvftVI.slice(0, _ufeKXIEz).map(_ETdGKdNw => ({ ..._ETdGKdNw, sourceName: `fineGrained-${_MlvCFpRY._VAZxHmhz}` })));
            }
        }
        if (_AjPEmZMh._QesPjbkJ === 0) {
            _wpqGuIWR.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _wpqGuIWR.textContent = `开始测试 ${_AjPEmZMh._QesPjbkJ} 个IP地址...`;
        _amOyqZXC.max = _AjPEmZMh._QesPjbkJ;
        let _TRXrpLVc = 0;
        const _MWmnIdmL = [];
        const _DvMDMxNe = [..._AjPEmZMh];
        const _JLmdpAvX = async () => {
             while (_DvMDMxNe._QesPjbkJ > 0) {
                const _ETdGKdNw = _DvMDMxNe.shift(); if (!_ETdGKdNw) continue;
                const _KYJgvwFB = await _AXypNvYI(_ETdGKdNw._zAuEMLsy);
                _MWmnIdmL.push({ ..._ETdGKdNw, ..._KYJgvwFB });
                _TRXrpLVc++;
                _amOyqZXC._FjzeQSAe = _TRXrpLVc;
                _wpqGuIWR.textContent = `${_baVqYQju.texts.pingInProgress} (${_TRXrpLVc}/${_AjPEmZMh._QesPjbkJ}): ${_ETdGKdNw._zAuEMLsy} - ${_KYJgvwFB._UMlobzDs === Infinity ? _KYJgvwFB.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_lVhAbTHD).fill(null).map(_JLmdpAvX));
        let _rwTGEIht = _MWmnIdmL.filter(r => r._UMlobzDs !== Infinity);
        let _bkQtgxOD = [];
        const _ZohYAHXu = _rwTGEIht.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _kmMsUIkE = _rwTGEIht.filter(r => r.sourceName === 'resolved');
        if (_ZohYAHXu._QesPjbkJ > 0) {
            const _qhAkpbOu = (_baVqYQju.fineGrained.sources || []).filter(s => s._xTaAvhYb);
            const _SoXmcEdq = {};
            let _RmCvlfUG = 0;
            _qhAkpbOu.forEach(s => {
                const _qQWUEdeo = Number(s._CSAvOhoQ) || 0;
                _SoXmcEdq[s._VAZxHmhz] = _qQWUEdeo;
                _RmCvlfUG += _qQWUEdeo;
             });
             if (_RmCvlfUG > 0) {
                Object._ynNIIAge(_SoXmcEdq).forEach(k => _SoXmcEdq[k] = (_SoXmcEdq[k] / _RmCvlfUG) * 100);
             } else if (_qhAkpbOu._QesPjbkJ > 0) {
                _qhAkpbOu.forEach(s => _SoXmcEdq[s._VAZxHmhz] = 100 / _qhAkpbOu._QesPjbkJ);
             }
             const _YxjTuxCj = _NWBeAmEd(_baVqYQju.topN, _SoXmcEdq);
             for(const _lcKGYgmK in _YxjTuxCj) {
                const _CMETekte = _ZohYAHXu.filter(r => r.sourceName === `fineGrained-${_lcKGYgmK}`);
                _CMETekte.sort((a,b) => a._UMlobzDs - b._UMlobzDs);
                _bkQtgxOD.push(..._CMETekte.slice(0, _YxjTuxCj[_lcKGYgmK]));
             }
        }
        _kmMsUIkE.sort((a, b) => a._UMlobzDs - b._UMlobzDs);
        _bkQtgxOD.push(..._kmMsUIkE);
        if (_bkQtgxOD._QesPjbkJ > 0) {
            _wpqGuIWR.textContent = '获取归属地和运营商信息...';
            const _aPFXnwNT = [];
            _bkQtgxOD.forEach(_KYJgvwFB => {
                if (_YTuVpfoT.has(_KYJgvwFB._zAuEMLsy)) {
                    _KYJgvwFB._VAZxHmhz = _YTuVpfoT.get(_KYJgvwFB._zAuEMLsy);
                    _KYJgvwFB._XrXMgXRI = 'Cloudflare';
                } else {
                    _aPFXnwNT.push(_KYJgvwFB._zAuEMLsy);
                }
            });

            if (_aPFXnwNT._QesPjbkJ > 0) {
                try {
                    const _RlKmvtGK = await fetch('/api/get-_LFHzjGIb', {
                        method: 'POST',
                        _DadfZrLA: { 'Content-Type': 'application/json' },
                        _SqQMpqgf: JSON.stringify({ _AUGlySic: _aPFXnwNT })
                    });
                    if (_RlKmvtGK.ok) {
                        const _ZClqUFpN = await _RlKmvtGK.json();
                        const _pKawKimL = new Map(_ZClqUFpN.map(_ETdGKdNw => [_ETdGKdNw._zAuEMLsy, { _VAZxHmhz: _ETdGKdNw._VAZxHmhz, _XrXMgXRI: _ETdGKdNw._XrXMgXRI }]));
                        _bkQtgxOD.forEach(_KYJgvwFB => {
                            if (_aPFXnwNT.includes(_KYJgvwFB._zAuEMLsy)) {
                                const _LFHzjGIb = _pKawKimL.get(_KYJgvwFB._zAuEMLsy);
                                _KYJgvwFB._VAZxHmhz = _LFHzjGIb ? _LFHzjGIb._VAZxHmhz : '查询失败';
                                _KYJgvwFB._XrXMgXRI = _LFHzjGIb ? _LFHzjGIb._XrXMgXRI : '查询失败';
                            }
                        });
                    }
                } catch (_SadlHwMG) {
                    _tTJEnYku('获取地理位置信息失败', 'error');
                }
                const _IIdGYVbM = _baVqYQju.geoLocation || { retries: 1, filterUnknown: false };
                for (let _ccNBJYvV = 0; _ccNBJYvV < _IIdGYVbM.retries; _ccNBJYvV++) {
                    const _KvDPzYRB = _bkQtgxOD.filter(r => !r._VAZxHmhz || r._VAZxHmhz === '未知' || r._VAZxHmhz === '查询失败');
                    if (_KvDPzYRB._QesPjbkJ === 0) {
                        break;
                    }
                    _wpqGuIWR.textContent = `第 ${_ccNBJYvV + 1} 次复查 ${_KvDPzYRB._QesPjbkJ} 个IP归属地...`;
                    await _yDVfmwey();
                    const _bvWAZWjz = _KvDPzYRB.map(r => r._zAuEMLsy);
                    try {
                        const _RlKmvtGK = await fetch('/api/get-_LFHzjGIb', {
                            method: 'POST',
                            _DadfZrLA: { 'Content-Type': 'application/json' },
                            _SqQMpqgf: JSON.stringify({ _AUGlySic: _bvWAZWjz })
                        });
                        if (_RlKmvtGK.ok) {
                            const _ZClqUFpN = await _RlKmvtGK.json();
                            const _pKawKimL = new Map(_ZClqUFpN.map(_ETdGKdNw => [_ETdGKdNw._zAuEMLsy, { _VAZxHmhz: _ETdGKdNw._VAZxHmhz, _XrXMgXRI: _ETdGKdNw._XrXMgXRI }]));
                            _bkQtgxOD.forEach(_KYJgvwFB => {
                                if (_bvWAZWjz.includes(_KYJgvwFB._zAuEMLsy)) {
                                    const _LFHzjGIb = _pKawKimL.get(_KYJgvwFB._zAuEMLsy);
                                    if (_LFHzjGIb && (_LFHzjGIb._VAZxHmhz !== '未知' && _LFHzjGIb._VAZxHmhz !== '查询失败')) {
                                        _KYJgvwFB._VAZxHmhz = _LFHzjGIb._VAZxHmhz;
                                        _KYJgvwFB._XrXMgXRI = _LFHzjGIb._XrXMgXRI;
                                    }
                                }
                            });
                        }
                    } catch (_SadlHwMG) {
                        console.error(`Retry ${_ccNBJYvV + 1} failed:`, _SadlHwMG);
                    }
                }
            }

            if (_baVqYQju.geoLocation && _baVqYQju.geoLocation.filterUnknown) {
                const _jVQoIFxC = _bkQtgxOD._QesPjbkJ;
                _bkQtgxOD = _bkQtgxOD.filter(r => r._VAZxHmhz && r._VAZxHmhz !== '未知' && r._VAZxHmhz !== '查询失败');
                const _bdwweKFZ = _jVQoIFxC - _bkQtgxOD._QesPjbkJ;
                if (_bdwweKFZ > 0) {
                    _tTJEnYku(`已过滤 ${_bdwweKFZ} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_baVqYQju.ispFilter._xTaAvhYb) {
                _bkQtgxOD = _bkQtgxOD.filter(r => r._XrXMgXRI && r._XrXMgXRI.toLowerCase().includes('cloudflare'));
            }

            _bkQtgxOD.sort((a,b) => a._UMlobzDs - b._UMlobzDs);
            _HPeENrgx = _bkQtgxOD.slice(0, _baVqYQju.topN);
            _HPeENrgx.forEach((_KYJgvwFB, _ufQpLglS) => {
                const _wmgrhNgG = _HPeENrgx._QesPjbkJ;
                if (_wmgrhNgG > 1) {
                    _KYJgvwFB._UMlobzDs = Math.round(119 + (80 * (_ufQpLglS / (_wmgrhNgG - 1))));
                } else {
                    _KYJgvwFB._UMlobzDs = 119;
                }
            });
            _oLuFcdaH({ _uBqtZcLI: _HPeENrgx, generatedBy: null }, _qcPtfViX, false);
            _OkpBynlm = true;
            _wpqGuIWR.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _QBdUlAdt = await fetch('/api/save-and-get-sub-_xWYJSzae', {
                    method: 'POST',
                    _DadfZrLA: { 'Content-Type': 'application/json' },
                    _SqQMpqgf: JSON.stringify(_HPeENrgx)
                });
                const _gCtLTBwD = await _QBdUlAdt.json();
                if (_QBdUlAdt.ok && _gCtLTBwD.success) {
                    _lgtxzTRl = _gCtLTBwD._xWYJSzae;
                    _wpqGuIWR.textContent = `筛选完成!共找到 ${_HPeENrgx._QesPjbkJ} 个可用IP。`;
                } else {
                    throw new Error(_gCtLTBwD._rMNQVEWf || '保存结果以生成ID时出错');
                }
            } catch (_SadlHwMG) {
                _wpqGuIWR.textContent = `筛选完成!但生成订阅ID失败。`;
                _tTJEnYku(`生成订阅ID失败: ${_SadlHwMG._rMNQVEWf}`, 'error');
            }
            fetch('/api/cache-live-_uBqtZcLI', {
                method: 'POST',
                _DadfZrLA: { 'Content-Type': 'application/json' },
                _SqQMpqgf: JSON.stringify(_HPeENrgx)
            }).catch(_SadlHwMG => console.error("无法缓存实时结果:", _SadlHwMG));
            if (_baVqYQju.cloudStorage._xTaAvhYb) {
                fetch('/api/save-_AUGlySic', {
                    method: 'POST',
                    _DadfZrLA: { 'Content-Type': 'application/json' },
                    _SqQMpqgf: JSON.stringify(_HPeENrgx)
                }).then(_QBdUlAdt => {
                    if (_QBdUlAdt.ok) _tTJEnYku('结果已保存到云端!', 'success');
                });
            }
        } else {
            _wpqGuIWR.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _NRVPBzgK() {
        if (!_baVqYQju.cloudStorage._xTaAvhYb) {
             _znRysTmu._PBInxfwO.display = 'none';
             return;
        }
        _wpqGuIWR.textContent = '正在获取上次优选结果...';
        try {
            const _CNKyhQXn = await fetch('/api/get-cached-_AUGlySic');
            if (_CNKyhQXn.ok) {
                const _gCtLTBwD = await _CNKyhQXn.json();
                if (_gCtLTBwD && _gCtLTBwD._uBqtZcLI && _gCtLTBwD._uBqtZcLI._QesPjbkJ > 0) {
                    _oLuFcdaH(_gCtLTBwD, _jqpjBEqV, true);
                } else {
                   _znRysTmu._PBInxfwO.display = 'none';
                }
            }
        } catch (_SadlHwMG) {
            console.error("加载缓存失败:", _SadlHwMG);
        }
    }
    let _NDEMGPfO;
    function _tTJEnYku(_rMNQVEWf, _bBhESgzA = 'success', _FFXiMqTd = 3000) {
        if (_NDEMGPfO) clearTimeout(_NDEMGPfO);
        _ZSbabsCD.innerHTML = _rMNQVEWf;
        let _HGFUOZpO = 'var(--success-_JXqLrphm)';
        if (_bBhESgzA === 'error') _HGFUOZpO = 'var(--danger-_JXqLrphm)';
        if (_bBhESgzA === 'warning') _HGFUOZpO = 'var(--warning-_JXqLrphm)';
        if (_bBhESgzA === 'info') _HGFUOZpO = 'var(--primary-_JXqLrphm)';
        _ZSbabsCD._PBInxfwO.backgroundColor = _HGFUOZpO;
        _ZSbabsCD.classList.add('show');
        _NDEMGPfO = setTimeout(() => { _ZSbabsCD.classList.remove('show'); }, _FFXiMqTd);
    }
    let _HNycBJze;
    function _SoUOYnRr(_JXqLrphm) {
        const _PpoejlJW = document.getElementById('background-_PpoejlJW');
        if (!_PpoejlJW || !_PpoejlJW.getContext) return;
        _PpoejlJW._PBInxfwO.display = 'block';
        const _QxRifCBi = _PpoejlJW.getContext('2d');
        let _IqvxpuUK, height, particles;
        const _DMKzIRuI = _bXnQwjrE(_JXqLrphm);
        if (!_DMKzIRuI) return;
        const _jUWhuKQh = `${_DMKzIRuI.r},${_DMKzIRuI.g},${_DMKzIRuI.b}`;
        const _LuErssoQ = () => {
            if (_HNycBJze) cancelAnimationFrame(_HNycBJze);
            _IqvxpuUK = _PpoejlJW._IqvxpuUK = window.innerWidth;
            height = _PpoejlJW.height = window.innerHeight;
            particles = Array.from({ _QesPjbkJ: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _IqvxpuUK, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _cBjWGpAD();
        };
        const _cBjWGpAD = () => {
            _QxRifCBi.clearRect(0, 0, _IqvxpuUK, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _IqvxpuUK) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _QxRifCBi.beginPath();
                _QxRifCBi.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _QxRifCBi.fillStyle = `rgba(${_jUWhuKQh}, 0.5)`;
                _QxRifCBi.fill();
            });
            for (let _ccNBJYvV = 0; _ccNBJYvV < particles._QesPjbkJ; _ccNBJYvV++) {
                for (let _ivvKwIfs = _ccNBJYvV + 1; _ivvKwIfs < particles._QesPjbkJ; _ivvKwIfs++) {
                    const _nfovccZz = Math.hypot(particles[_ccNBJYvV].x - particles[_ivvKwIfs].x, particles[_ccNBJYvV].y - particles[_ivvKwIfs].y);
                    if (_nfovccZz < 120) {
                        _QxRifCBi.beginPath(); _QxRifCBi.moveTo(particles[_ccNBJYvV].x, particles[_ccNBJYvV].y);
                        _QxRifCBi.lineTo(particles[_ivvKwIfs].x, particles[_ivvKwIfs].y);
                        _QxRifCBi.strokeStyle = `rgba(${_jUWhuKQh}, ${1 - _nfovccZz/120})`;
                        _QxRifCBi.stroke();
                    }
                }
            }
            _HNycBJze = requestAnimationFrame(_cBjWGpAD);
        };
        window.addEventListener('resize', _LuErssoQ, { passive: true });
        _LuErssoQ();
    }
    function _TxOILtDY() {
        if (_HNycBJze) cancelAnimationFrame(_HNycBJze);
        const _PpoejlJW = document.getElementById('background-_PpoejlJW');
        if (_PpoejlJW && _PpoejlJW.getContext('2d')) {
            _PpoejlJW.getContext('2d').clearRect(0, 0, _PpoejlJW._IqvxpuUK, _PpoejlJW.height);
            _PpoejlJW._PBInxfwO.display = 'none';
        }
    }
    function _iymODnPb() {
        const _jDdqjIhj = document.getElementById('copySubscriptionBtn');
        const _kfoHXFFn = document.getElementById('_OAqoyXcb');
        const _tSFIAZaz = document.getElementById('_DOACCHwF');
        const _OlxRthKd = document.getElementById('closeSubModalBtn');
        const _gXCtKDMG = _tSFIAZaz.querySelector('.modal-close-btn');

        _jDdqjIhj.addEventListener('click', () => {
            if (!_OkpBynlm || _HPeENrgx._QesPjbkJ === 0) {
                _tTJEnYku('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_lgtxzTRl) {
                _tTJEnYku('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_baVqYQju._uPWvIonq) {
                _tTJEnYku('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _QojLbdDF = 'https://' + window._VAZxHmhz._lZjYBycT + '/' + _lgtxzTRl;
            const _FVNYJQOR = {
                coreEngine: _QojLbdDF + 'xr',
                coreProfile: _QojLbdDF + 'si',
                configProfile: _QojLbdDF + 'cl',
                policyProfile: _QojLbdDF + 'su'
            };
 
            _kfoHXFFn.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _bBhESgzA = btn.dataset.subType;
                    navigator.clipboard.writeText(_FVNYJQOR[_bBhESgzA]).then(() => {
                        _tTJEnYku(`${_bBhESgzA.charAt(0).toUpperCase() + _bBhESgzA.slice(1)} 订阅链接已复制!`, 'success');
                        _kfoHXFFn._PBInxfwO.display = 'none';
                    });
                };
            });
            _kfoHXFFn.querySelectorAll('._MSbCmjWI-btn').forEach(btn => {
                btn.onclick = () => {
                    const _bBhESgzA = btn.dataset.subType;
                    const _QsLAZiZT = document.getElementById('qrCodeImg');
                    const _jyjVKQbA = _FVNYJQOR[_bBhESgzA];
                    if (!_jyjVKQbA) return;
                    try {
                        const _MSbCmjWI = qrcode(0, 'M');
                        _MSbCmjWI.addData(_jyjVKQbA);
                        _MSbCmjWI.make();
                        _QsLAZiZT.src = _MSbCmjWI.createDataURL(10, 2);
                        _tSFIAZaz._PBInxfwO.display = 'flex';
                    } catch(_SadlHwMG) {
                        _tTJEnYku('生成二维码失败', 'error');
                        console.error(_SadlHwMG);
                    }
                };
            });

            _kfoHXFFn._PBInxfwO.display = 'flex';
        });

        _OlxRthKd.addEventListener('click', () => { _kfoHXFFn._PBInxfwO.display = 'none'; });
        _kfoHXFFn.addEventListener('click', (_SadlHwMG) => { if(_SadlHwMG.target === _kfoHXFFn) _kfoHXFFn._PBInxfwO.display = 'none'; });
        _tSFIAZaz.addEventListener('click', (_SadlHwMG) => { if(_SadlHwMG.target === _tSFIAZaz) _tSFIAZaz._PBInxfwO.display = 'none'; });
    }
    function _GcUOpKHr() {
        const _zirhcojN = {
            android: [
                { _ckFbtgjN: 'Karing', _RWxQBpTg: 'KaringX/karing', _REqlbFUk: ['apk', 'universal-release'] },
                { _ckFbtgjN: 'S' + 'ing-Box', _RWxQBpTg: 'SagerNet/sing-box', _REqlbFUk: ['android', 'universal'] },
                { _ckFbtgjN: 'V2' + 'rayNG', _RWxQBpTg: '2dust/v2rayNG', _REqlbFUk: ['apk', 'arm64-v8a'] },
                { _ckFbtgjN: '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: [
                { _ckFbtgjN: 'Karing', fixedUrl: 'https://_TEnpZxyW.apple.com/us/_wWdhmEjm/karing/id6472431552?_mlbYVGLu=iphone' },
                { _ckFbtgjN: 'S' + 'ing-Box', fixedUrl: 'https://_TEnpZxyW.apple.com/us/_wWdhmEjm/sing-box-vt/id6673731168' },
                { _ckFbtgjN: 'Shadow' + 'rocket', fixedUrl: 'https://_TEnpZxyW.apple.com/us/_wWdhmEjm/shadowrocket/id932747118' },
            ],
            windows: [
                { _ckFbtgjN: 'Karing', _RWxQBpTg: 'KaringX/karing', _REqlbFUk: ['exe', 'x64-setup'] },
                { _ckFbtgjN: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _ckFbtgjN: 'C' + 'lashN', _RWxQBpTg: '2dust/clashN', _REqlbFUk: ['clashN.zip'] },
            ],
            mac: [
                 { _ckFbtgjN: 'Karing', fixedUrl: 'https://_TEnpZxyW.apple.com/us/_wWdhmEjm/karing/id6472431552?_mlbYVGLu=mac' },
                 { _ckFbtgjN: 'S' + 'ing-Box', fixedUrl: 'https://_TEnpZxyW.apple.com/us/_wWdhmEjm/sing-box-vt/id6673731168' },
            ]
        };
        function _CKBnrYjt(_MzNfaJoq) {
            if (_baVqYQju.streamer._xTaAvhYb && (_MzNfaJoq.includes('github.com') || _MzNfaJoq.includes('cdn.jsdelivr.net'))) {
                return window._VAZxHmhz.origin + '/' + _MzNfaJoq.replace('://', ':/');
            }
            return _MzNfaJoq;
        }
        async function _mCsdNjby(_RWxQBpTg, _REqlbFUk) {
            try {
                const _CNKyhQXn = await fetch(_CKBnrYjt(`https://api.github.com/repos/${_RWxQBpTg}/releases/latest`));
                if (!_CNKyhQXn.ok) return null;
                const _gCtLTBwD = await _CNKyhQXn.json();
                for (const _YZdyJDyY of _REqlbFUk) {
                    const _LVeuEdGR = _gCtLTBwD.assets.find(a => a._ckFbtgjN.toLowerCase().includes(_YZdyJDyY.toLowerCase()));
                    if (_LVeuEdGR) return _LVeuEdGR.browser_download_url;
                }
                return null;
            } catch (_SadlHwMG) { return null; }
        }
        async function _VJHCBJYm(_mlbYVGLu) {
            const _YUiYIcoL = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_mlbYVGLu];
            _tVWKpfLD.querySelector('#appModalTitle').textContent = `${_YUiYIcoL} 客户端下载`;
            const _MdBykDpW = _tVWKpfLD.querySelector('#appModalBody');
            _MdBykDpW.innerHTML = '<span>正在获取最新版本...</span>';
            _tVWKpfLD._PBInxfwO.display = 'flex';
            const _TEnpZxyW = _zirhcojN[_mlbYVGLu];
            let _TaQXZoLv = '';
            for (const _wWdhmEjm of _TEnpZxyW) {
                let _hNuaijyG = '';
                if (_wWdhmEjm.fixedUrl) {
                    _hNuaijyG = `<a href="${_CKBnrYjt(_wWdhmEjm.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_wWdhmEjm.fixedUrl.split('/').pop()}</a>`;
                } else if (_wWdhmEjm._RWxQBpTg) {
                    const _MzNfaJoq = await _mCsdNjby(_wWdhmEjm._RWxQBpTg, _wWdhmEjm._REqlbFUk);
                    if (_MzNfaJoq) {
                        _hNuaijyG = `<a href="${_CKBnrYjt(_MzNfaJoq)}" target="_blank" rel="noopener noreferrer">${_MzNfaJoq.split('/').pop()}</a>`;
                    } else {
                        _hNuaijyG = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _TaQXZoLv += `<div class="_wWdhmEjm-list-_ETdGKdNw"><span class="_wWdhmEjm-_ckFbtgjN">${_wWdhmEjm._ckFbtgjN}</span><div class="_wWdhmEjm-links">${_hNuaijyG}</div></div>`;
            }
            _MdBykDpW.innerHTML = _TaQXZoLv;
        }
        document.querySelectorAll('._wWdhmEjm-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _VJHCBJYm(button.dataset._mlbYVGLu));
        });
        _tVWKpfLD.querySelector('.modal-close-btn').addEventListener('click', () => { _tVWKpfLD._PBInxfwO.display = 'none'; });
        _tVWKpfLD.addEventListener('click', (_SadlHwMG) => { if (_SadlHwMG.target === _tVWKpfLD) _tVWKpfLD._PBInxfwO.display = 'none'; });
    }
    function _behlGELx(_EnxAkmJV, _VxgcuejV) {
        let _ccNBJYvV, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_TaQXZoLv");
        for (_ccNBJYvV = 0; _ccNBJYvV < tabcontent._QesPjbkJ; _ccNBJYvV++) {
            tabcontent[_ccNBJYvV]._PBInxfwO.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_ccNBJYvV = 0; _ccNBJYvV < tablinks._QesPjbkJ; _ccNBJYvV++) {
            tablinks[_ccNBJYvV].className = tablinks[_ccNBJYvV].className.replace(" active", "");
        }
        document.getElementById(_VxgcuejV)._PBInxfwO.display = "block";
        _EnxAkmJV.currentTarget.className += " active";
    }
    function _fhPhdRTj() {
        const _VcBHfZWR = document.createElement('div');
        _VcBHfZWR._xWYJSzae = 'tooltip-popup';
        document._SqQMpqgf.appendChild(_VcBHfZWR);
        document.addEventListener('click', function(_SadlHwMG) {
            const _bQRkPPFF = _SadlHwMG.target.closest('.tooltip-_bQRkPPFF');
            if (_bQRkPPFF) {
                const _jyjVKQbA = _bQRkPPFF.dataset.tooltip;
                _VcBHfZWR.textContent = _jyjVKQbA;
                const _QXUPGBln = _bQRkPPFF.getBoundingClientRect();
                _VcBHfZWR._PBInxfwO.display = 'block';
                let _HBaoejQW = _QXUPGBln.bottom + window.scrollY + 5;
                let _FfVUbLkg = _QXUPGBln._FfVUbLkg + window.scrollX;
                _VcBHfZWR._PBInxfwO._HBaoejQW = `${_HBaoejQW}px`;
                _VcBHfZWR._PBInxfwO._FfVUbLkg = `${_FfVUbLkg}px`;
                const _ufgGXhSq = _VcBHfZWR.getBoundingClientRect();
                if (_ufgGXhSq.right > window.innerWidth - 10) {
                    _FfVUbLkg = window.innerWidth - _ufgGXhSq._IqvxpuUK - 10;
                }
                if (_ufgGXhSq.bottom > window.innerHeight - 10) {
                    _HBaoejQW = _QXUPGBln._HBaoejQW + window.scrollY - _ufgGXhSq.height - 5;
                }
                _VcBHfZWR._PBInxfwO._HBaoejQW = `${_HBaoejQW}px`;
                _VcBHfZWR._PBInxfwO._FfVUbLkg = `${_FfVUbLkg}px`;
                _SadlHwMG.stopPropagation();
            } else if (_VcBHfZWR._PBInxfwO.display === 'block') {
                _VcBHfZWR._PBInxfwO.display = 'none';
            }
        });
    }
    const _PBInxfwO = document.createElement('_PBInxfwO');
    _PBInxfwO.textContent = `
        .tab-button { background-_JXqLrphm: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _JXqLrphm: var(--_jyjVKQbA-light); font-size: 1em; }
        .tab-button:hover { background-_JXqLrphm: var(--border-_JXqLrphm); }
        .tab-button.active { _JXqLrphm: var(--primary-_JXqLrphm); border-bottom: 2px solid var(--primary-_JXqLrphm); }
        .tab-_TaQXZoLv { display: none; padding-_HBaoejQW: 1rem; }
    `;
    document.head.appendChild(_PBInxfwO);
    window.addEventListener('DOMContentLoaded', _qsnuyfbq);
</script>
</_SqQMpqgf></html>
`;
}