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


import { connect } from "cloudflare:sockets";

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

const _yCrBdEeb = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _ATuYeVnw = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _eGDhfaZb = '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 _RMUOlkay = '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 _TOaKeTBt(_PCGWajUU) {
    if (Array.isArray(_PCGWajUU)) {
        try {
            return String.fromCharCode.apply(null, _PCGWajUU);
        } catch (_TscaIMJa) {
            return '';
        }
    }
    return _PCGWajUU;
}

function _TVllTWfi(_XrqwuwXJ) {
    return /^[0-9a-_GIfJcivR]{8}-[0-9a-_GIfJcivR]{4}-[4][0-9a-_GIfJcivR]{3}-[89ab][0-9a-_GIfJcivR]{3}-[0-9a-_GIfJcivR]{12}$/_cZPBrLPg.test(_XrqwuwXJ);
}

const _OxupAZxp = "optimized_ips_v4";
const _yKCCKoQU = "global_config_v4";
const _GeXZBCNg = "admin_password_v4";
const _TpYpkwiS = "live_results_temp_v1";
const _otEcYfIn = "latest_sub_id_v1";

export default {
  async fetch(_DtUdMsva, _rQGxLgCx, _fPlnmlTf) {
    try {
      if (!_rQGxLgCx.DB) {
          const _NxnXpzLr = _ZkzkrsuR("D1 数据库 'DB' 未绑定。");
          return new Response(_NxnXpzLr, { status: 503, _neCLOKdy: { 'Content-Type': '_rIddpXbz/html;_yVbSoUyS=UTF-8' }});
      }

      _fPlnmlTf.waitUntil(
          _rQGxLgCx.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_MqXeEqfN TEXT PRIMARY KEY, _PCGWajUU TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_XrqwuwXJ TEXT PRIMARY KEY, _bkGfRqAc TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_TscaIMJa => console.error("DB Init Error:", _TscaIMJa._tQsENZEP))
      );

      const _WtFfkLOq = new URL(_DtUdMsva._WtFfkLOq);
      const _LTzuohby = _WtFfkLOq.pathname;
      const _pRzFTqQV = _DtUdMsva._neCLOKdy.get("Upgrade");
      const _EZYiPFxb = await _uFXYXKqg(_rQGxLgCx);
      
      if (_EZYiPFxb.websocketStreamer && _EZYiPFxb.websocketStreamer._owqiIfIi && _pRzFTqQV && _pRzFTqQV.toLowerCase() === "websocket") {
          const _XLUFvkZo = _EZYiPFxb.websocketStreamer._WtFfkLOq;
          if (_XLUFvkZo && _XLUFvkZo.trim().startsWith('https://')) {
              try {
                  const _plTfOxVI = new Request(_XLUFvkZo.trim() + _WtFfkLOq.pathname + _WtFfkLOq.search, _DtUdMsva);
                  return await fetch(_plTfOxVI);
              } catch (_TscaIMJa) {
                  return new Response(`Upstream WebSocket gateway failed: ${_TscaIMJa._tQsENZEP}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_pRzFTqQV && _pRzFTqQV.toLowerCase() === "websocket") {
          return await _ZmGrYZGA(_DtUdMsva, _rQGxLgCx, _EZYiPFxb);
      }
      
      const _RhbwqjCS = _LTzuohby._vKJXNBuj(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_RhbwqjCS) {
          const [, _uYNxQvmH, typeSuffix] = _RhbwqjCS;
          const _UMKWguhA = _EZYiPFxb._UMKWguhA;
          if (!_UMKWguhA || _UMKWguhA.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _neCLOKdy: { 'Content-Type': '_rIddpXbz/plain; _yVbSoUyS=utf-8' } });
          }
          const _LKANusmB = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _hTIDzNJm = _LKANusmB[typeSuffix];
          const _WYFoKIdX = _UMKWguhA.replace(/\/$/, '');
          const _EOzCVVKR = `${_WtFfkLOq.origin}/${_uYNxQvmH}`;
          const _FKgNCJUH = `${_WYFoKIdX}/${_hTIDzNJm}?_EZYiPFxb=${encodeURIComponent(_EOzCVVKR)}`;
          try {
              const _NEbMLvPh = await fetch(_FKgNCJUH, { _neCLOKdy: { 'User-Agent': _DtUdMsva._neCLOKdy.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _pjCujKdU = new Headers(_NEbMLvPh._neCLOKdy);
              _pjCujKdU._aNXrQOrv('Access-Control-Allow-Origin', '*');
              return new Response(_NEbMLvPh._qReiabDc, { status: _NEbMLvPh.status, statusText: _NEbMLvPh.statusText, _neCLOKdy: _pjCujKdU });
          } catch (_TscaIMJa) {
              return new Response(`获取上游订阅失败: ${_TscaIMJa._tQsENZEP}`, { status: 502, _neCLOKdy: { 'Content-Type': '_rIddpXbz/plain; _yVbSoUyS=utf-8' } });
          }
      }

      if (_LTzuohby.startsWith('/https:/') || _LTzuohby.startsWith('/http:/')) {
          return _EImeSOtM(_DtUdMsva, _EZYiPFxb);
      }
      
      if (_EZYiPFxb.customSubPath && _EZYiPFxb.customSubPath._owqiIfIi && _EZYiPFxb.customSubPath._LTzuohby && _LTzuohby === '/' + _EZYiPFxb.customSubPath._LTzuohby.trim()) {
          const _BGiglMof = _rQGxLgCx.DB.prepare("SELECT _PCGWajUU FROM kv_data WHERE _MqXeEqfN = ?").bind(_otEcYfIn);
          const { _YEagTLBQ } = await _BGiglMof.all();
          const _idjXzHJS = _YEagTLBQ._OtvtecFT > 0 ? _YEagTLBQ[0]._PCGWajUU : null;
          if (_idjXzHJS) {
              return _TvKoBjvj({ _MTWDCLNt: { _XrqwuwXJ: _idjXzHJS }, _WtFfkLOq: _DtUdMsva._WtFfkLOq }, _rQGxLgCx);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _neCLOKdy: { 'Content-Type': '_rIddpXbz/plain; _yVbSoUyS=utf-8' } });
          }
      }
      
      const _ZwNHLgAs = _LTzuohby.split('/').filter(Boolean);
      if (_ZwNHLgAs._OtvtecFT === 1 && !_LTzuohby.startsWith('/api/')) {
          const _uYNxQvmH = _ZwNHLgAs[0];
          return _TvKoBjvj({ _MTWDCLNt: { _XrqwuwXJ: _uYNxQvmH }, _WtFfkLOq: _DtUdMsva._WtFfkLOq }, _rQGxLgCx);
      }

      if (_LTzuohby.startsWith('/api/')) {
          if (_LTzuohby === '/api/_EZYiPFxb' && _DtUdMsva.method === 'POST') return _HbFQkXSB(_DtUdMsva, _rQGxLgCx, _fPlnmlTf);
          if (_LTzuohby === '/api/_aNXrQOrv-_fSIljLHH') return _CxxmRuHs(_DtUdMsva, _rQGxLgCx);
          if (_LTzuohby === '/api/change-_fSIljLHH') return _ucmHHPsZ(_DtUdMsva, _rQGxLgCx);
          if (_LTzuohby === '/api/verify-_fSIljLHH') return _lhUvYdiJ(_DtUdMsva, _rQGxLgCx);
          if (_LTzuohby === '/api/verify-visitor-_fSIljLHH' && _DtUdMsva.method === 'POST') return _rpfLrbSO(_DtUdMsva, _rQGxLgCx);
          if (_LTzuohby === '/api/cache-live-_YEagTLBQ' && _DtUdMsva.method === 'POST') return _WQfHkzpX(_DtUdMsva, _rQGxLgCx, _fPlnmlTf);
          if (_LTzuohby === '/api/get-_zvNMdbMM' && _DtUdMsva.method === 'POST') return _PQtgwbBh(_DtUdMsva, _rQGxLgCx);
          if (_LTzuohby === '/api/get-cached-_pNRnulvw') return _TRrgHZdu(_DtUdMsva, _rQGxLgCx);
          if (_LTzuohby === '/api/save-_pNRnulvw') return _EVqeVJgU(_DtUdMsva, _rQGxLgCx, _fPlnmlTf);
          if (_LTzuohby === '/api/save-and-get-sub-_XrqwuwXJ' && _DtUdMsva.method === 'POST') return _RAXANNsi(_DtUdMsva, _rQGxLgCx);
          if (_LTzuohby.startsWith('/api/get-_uJIOpPdT/')) {
              const _uYNxQvmH = _LTzuohby.split('/').pop();
              return _TvKoBjvj({ _MTWDCLNt: { _XrqwuwXJ: _uYNxQvmH }, _WtFfkLOq: _DtUdMsva._WtFfkLOq }, _rQGxLgCx);
          }
          if (_LTzuohby === '/api/_EZYiPFxb' && _DtUdMsva.method === 'GET') return _uhOqsgGW(_rQGxLgCx);
          if (_LTzuohby === '/api/get-resolved-_pNRnulvw') return _EZUzXiHp(_DtUdMsva);
          if (_LTzuohby === '/api/parse-_pNRnulvw-from-_psZNVXBO' && _DtUdMsva.method === 'POST') return _poeFyWXB(_DtUdMsva, _rQGxLgCx);
          if (_LTzuohby === '/api/endpoints') return _kZkCkdNa(_DtUdMsva, _rQGxLgCx);
          if (_LTzuohby === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_LTzuohby === '/_SGAKYnsJ') return _mPXEuSoc(_DtUdMsva, _rQGxLgCx);
      if (_LTzuohby === '/bing-wallpaper') return _ScyeXzRZ();

      return _HtTukWXF(_DtUdMsva, _rQGxLgCx, _fPlnmlTf);
    } catch (err) {
      let _TscaIMJa = err;
      return new Response(_TscaIMJa.toString(), { status: 500 });
    }
  }
};

const _qMvnnGVC = { 'Accept': '_rIddpXbz/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 _BXIdFwEy(_WtFfkLOq, _mIOnfXpN) {
    const _DzegcNvd = await fetch(_WtFfkLOq, { _neCLOKdy: { ..._qMvnnGVC, 'Referer': _mIOnfXpN.referer } });
    if (_DzegcNvd.ok) return _DzegcNvd._rIddpXbz();
    return null;
}

async function _qWoDkeMI(_WtFfkLOq, _mIOnfXpN) {
    const _WLxjkbRc = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_WtFfkLOq)}`;
    const _DzegcNvd = await fetch(_WLxjkbRc, { _neCLOKdy: { ..._qMvnnGVC, 'Referer': _mIOnfXpN.referer } });
    if (!_DzegcNvd.ok) return null;
    const _qReiabDc = await _DzegcNvd._rIddpXbz();
    const _vKJXNBuj = _qReiabDc._vKJXNBuj(/<pre[^>]*>([\s\S]*?)<\/pre>/_cZPBrLPg);
    return _vKJXNBuj && _vKJXNBuj[1] ? _vKJXNBuj[1].replace(/&amp;/g, '&') : null;
}

function _wYCIZMbN(_FdPcXrtE) {
    let _ohHmrObf;
    try {
        _ohHmrObf = atob(_FdPcXrtE.replace(/\s/g, ''));
    } catch (_TscaIMJa) {
        _ohHmrObf = _FdPcXrtE;
    }

    const _uJIOpPdT = _ohHmrObf.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _mxQvdlWt = new Set();
    const _AziMCHZY = /@([^?#]+?):(\d+)/;

    for (const _ovhOAkXU of _uJIOpPdT) {
        let _VNxpMMXc = '';
        let _DcBQImGI = '';

        try {
            if (_ovhOAkXU.startsWith('vmess://')) {
                const _gwrFVUgD = atob(_ovhOAkXU.substring(8));
                const _EZYiPFxb = JSON.parse(_gwrFVUgD);
                _VNxpMMXc = _EZYiPFxb.add;
                _DcBQImGI = _EZYiPFxb._DcBQImGI;
            } else {
                const _vKJXNBuj = _ovhOAkXU._vKJXNBuj(_AziMCHZY);
                if (_vKJXNBuj && _vKJXNBuj[1] && _vKJXNBuj[2]) {
                    _VNxpMMXc = _vKJXNBuj[1].replace(/[\[\]]/g, '');
                    _DcBQImGI = _vKJXNBuj[2];
                }
            }
        } catch (_TscaIMJa) {
            console.warn(`Could not parse _ovhOAkXU: ${_ovhOAkXU}`);
        }

        if (_VNxpMMXc && _DcBQImGI) {
            _mxQvdlWt.add(`${_VNxpMMXc}:${_DcBQImGI}`);
        }
    }
    return Array.from(_mxQvdlWt);
}

async function _RlmwgvKC(_jqPxKiWu) {
    try {
        const _DzegcNvd = await fetch(_jqPxKiWu, { _neCLOKdy: _qMvnnGVC });
        if (!_DzegcNvd.ok) {
            console.error(`Failed to fetch subscription: ${_DzegcNvd.status}`);
            return [];
        }
        const _FdPcXrtE = await _DzegcNvd._rIddpXbz();
        return _wYCIZMbN(_FdPcXrtE);
    } catch (error) {
        console.error(`Error processing subscription ${_jqPxKiWu}:`, error);
        return [];
    }
}

async function _WoJjhvOG(_OPHnoTaN) {
    const _ASiNjWbb = _OPHnoTaN.trim();
    const _GmICGari = /^(vless|vmess|trojan|ss):\/\//.test(_ASiNjWbb);
    const _BLsvpeNZ = (() => {
        if (_ASiNjWbb._OtvtecFT < 20 || _ASiNjWbb.startsWith('http')) return false;
        const _dSsUBmOi = _ASiNjWbb.replace(/\s/g, '');
        if (_dSsUBmOi._OtvtecFT % 4 !== 0 && !_dSsUBmOi.includes('=')) return false;
        try {
            atob(_dSsUBmOi);
            return true;
        } catch (_TscaIMJa) {
            return false;
        }
    })();

    if (_GmICGari || _BLsvpeNZ) {
        return _wYCIZMbN(_ASiNjWbb).join('\n');
    }

    const _GfvetwhQ = [
        'https://ipdb.api.030101.xyz/?_cBwqeSpE=bestcf&_iUIoWTEf=true',
        'https://ipdb.api.030101.xyz/?_cBwqeSpE=bestproxy&_iUIoWTEf=true'
    ];
    const _MXwHlJZZ = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_cZPBrLPg.test(_OPHnoTaN) || _OPHnoTaN.includes('?_VZEtSysG=');

    if (_MXwHlJZZ) {
        const _pNRnulvw = await _RlmwgvKC(_OPHnoTaN);
        return _pNRnulvw.join('\n');
    }

    let _FdPcXrtE = '';
    if (_GfvetwhQ.includes(_OPHnoTaN)) {
        _FdPcXrtE = await _BXIdFwEy(_OPHnoTaN, { referer: _OPHnoTaN });
        if (!_FdPcXrtE || _FdPcXrtE._OtvtecFT < 8) {
            _FdPcXrtE = await _qWoDkeMI(_OPHnoTaN, { referer: _OPHnoTaN });
        }
    } else {
        try {
            const _GcKUMalh = await fetch(_OPHnoTaN, { _neCLOKdy: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_GcKUMalh.ok) {
                _FdPcXrtE = await _GcKUMalh._rIddpXbz();
            } else {
                console.warn(`Failed to fetch URL ${_OPHnoTaN}: ${_GcKUMalh.status}`);
            }
        } catch (_TscaIMJa) {
            console.error(`Error fetching URL ${_OPHnoTaN}:`, _TscaIMJa);
        }
    }

    const _ptTVtYLw = _wYCIZMbN(_FdPcXrtE);
    if (_ptTVtYLw._OtvtecFT > 0) {
        return _ptTVtYLw.join('\n');
    }

    return _FdPcXrtE || '';
}

async function _EImeSOtM(_DtUdMsva, _EZYiPFxb) {
    if (!_EZYiPFxb.streamer._owqiIfIi) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _WtFfkLOq = new URL(_DtUdMsva._WtFfkLOq);
    const _KmTlVMbv = _WtFfkLOq.pathname.substring(1).replace(':/', '://');
    try {
        const _FKgNCJUH = new URL(_KmTlVMbv);
        const _QctkSMUO = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_QctkSMUO.some(domain => _FKgNCJUH._VNxpMMXc.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _QlsxKQmj = new Headers(_DtUdMsva._neCLOKdy);
        _QlsxKQmj._aNXrQOrv('Host', _FKgNCJUH._VNxpMMXc);
        _QlsxKQmj._aNXrQOrv('User-Agent', 'CF-Worker-Streamer/1.0');
        const _wKafjsqd = await fetch(_FKgNCJUH.toString(), {
            method: _DtUdMsva.method,
            _neCLOKdy: _QlsxKQmj,
            _qReiabDc: _DtUdMsva._qReiabDc,
        });
        const _pjCujKdU = new Headers(_wKafjsqd._neCLOKdy);
        _pjCujKdU._aNXrQOrv('Access-Control-Allow-Origin', '*');
        _pjCujKdU._aNXrQOrv('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _pjCujKdU._aNXrQOrv('Access-Control-Allow-Headers', '*');
        _pjCujKdU._aNXrQOrv('Cache-Control', 'public, max-age=86400');
        _pjCujKdU._aNXrQOrv('X-Streamer-Source', 'CF-Worker');
        _pjCujKdU.delete('_FdPcXrtE-security-policy');
        _pjCujKdU.delete('x-_FdPcXrtE-security-policy');
        _pjCujKdU.delete('x-webkit-csp');
        return new Response(_wKafjsqd._qReiabDc, {
            status: _wKafjsqd.status,
            statusText: _wKafjsqd.statusText,
            _neCLOKdy: _pjCujKdU,
        });
    } catch (_TscaIMJa) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _ZmGrYZGA(_DtUdMsva, _rQGxLgCx, _EZYiPFxb) {
    try {
        const _YpZiDrJF = _EZYiPFxb || await _uFXYXKqg(_rQGxLgCx);
        const _jzMByQav = (_YpZiDrJF.itemLink._nOUIoRDP && _YpZiDrJF.itemLink._nOUIoRDP[0]) || {};
        const _SCXUtMmt = _jzMByQav['_VZEtSysG'] || _TOaKeTBt(_qZLtGOhY);

        if (!_TVllTWfi(_SCXUtMmt)) {
            throw new Error("Configured user _PKDnKjGF is not valid.");
        }

        const _tOIkXElg = _YpZiDrJF.dataFeeds.universalFallbackAddress;
        let _cRTCMlnp = {};
        
        const _qmPbZTyU = _TOaKeTBt(_HrlwrRdR[0] || "");

        if (_tOIkXElg) {
            const [_juhpGTjh, _DcBQImGI = '443'] = _tOIkXElg.split(':');
            _cRTCMlnp = { _juhpGTjh, _DcBQImGI };
        } else {
            const [_juhpGTjh, _DcBQImGI = '443'] = _qmPbZTyU.split(':');
            _cRTCMlnp = { _juhpGTjh, _DcBQImGI };
        }

        const _WtFfkLOq = new URL(_DtUdMsva._WtFfkLOq);
        const _LTzuohby = _WtFfkLOq.pathname;
        let _cLlHVLkd = '';

        const _JcUWLZZy = _WtFfkLOq.searchParams.get('remote');
        if (_JcUWLZZy) {
           _cLlHVLkd = atob(_JcUWLZZy);
        } else if (_LTzuohby.startsWith('/endpoint=')) {
           _cLlHVLkd = _LTzuohby.substring(10);
        } else if (_LTzuohby._OtvtecFT > 1 && _LTzuohby.substring(1).includes('.')) {
           _cLlHVLkd = _LTzuohby.substring(1);
        }

        if (_cLlHVLkd) {
            const [_juhpGTjh, _DcBQImGI = '443'] = _cLlHVLkd.split(':');
            _cRTCMlnp = { _juhpGTjh, _DcBQImGI };
        }
        
        return await _dgNOguny(_DtUdMsva, _SCXUtMmt, _cRTCMlnp);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _dgNOguny(_DtUdMsva, _PKDnKjGF, _cRTCMlnp) {
    const _NyODXqqA = new WebSocketPair();
    const [clientEnd, _plEAtTik] = Object.values(_NyODXqqA);
    _plEAtTik.accept();

    let _FmiIKUVd = { _xjqEGFtW: null };
    const _WHXLMKfR = _DtUdMsva._neCLOKdy.get("sec-websocket-protocol") || "";
    const _KXcWLpSL = _uVkiHjld(_plEAtTik, _WHXLMKfR);

    _KXcWLpSL.pipeTo(new WritableStream({
        async write(chunk) {
            if (_FmiIKUVd._xjqEGFtW) {
                const _xkvuNcoy = _FmiIKUVd._xjqEGFtW.writable.getWriter();
                await _xkvuNcoy.write(chunk);
                _xkvuNcoy.releaseLock();
                return;
            }

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

            const _qtQPSiTP = new Uint8Array([details._FiVYpuyu[0], 0]);
            const _UjmyKpVR = chunk.slice(details.payloadIndex);

            await _woJchZHR(_FmiIKUVd, details._CZmuVoUi, details._ZTdrAAPw, _UjmyKpVR, _plEAtTik, _qtQPSiTP, _cRTCMlnp);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _lVHueqfA(_plEAtTik);
    });

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

async function _woJchZHR(_FmiIKUVd, _CZmuVoUi, _ZTdrAAPw, _teGHXAIw, _kNnrbFjQ, _qtQPSiTP, _NJDpxcVf) {
    const _SUcsNfOu = async (_juhpGTjh, _DcBQImGI) => {
        let _PTGCWiwo = _juhpGTjh;
        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(_juhpGTjh)) {
            _PTGCWiwo = `${atob('d3d3Lg==')}${_juhpGTjh}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _xjqEGFtW = connect({ _VNxpMMXc: _PTGCWiwo, _DcBQImGI });
        _FmiIKUVd._xjqEGFtW = _xjqEGFtW;
        const _xkvuNcoy = _xjqEGFtW.writable.getWriter();
        await _xkvuNcoy.write(_teGHXAIw);
        _xkvuNcoy.releaseLock();
        return _xjqEGFtW;
    };

    const _pymnCPed = async () => {
        if (!_NJDpxcVf._juhpGTjh) return;
        console.log(`Direct connection failed, falling back to gateway: ${_NJDpxcVf._juhpGTjh}`);
        const _DCdOotCI = await _SUcsNfOu(_NJDpxcVf._juhpGTjh, parseInt(_NJDpxcVf._DcBQImGI, 10));
        _DCdOotCI.closed.catch(() => {}).finally(() => _lVHueqfA(_kNnrbFjQ));
        _uKmVeqYu(_DCdOotCI, _kNnrbFjQ, _qtQPSiTP, null);
    };

    try {
        const _AitCxnsj = await _SUcsNfOu(_CZmuVoUi, _ZTdrAAPw);
        _uKmVeqYu(_AitCxnsj, _kNnrbFjQ, _qtQPSiTP, _pymnCPed);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _pymnCPed();
    }
}

function _uVkiHjld(_plEAtTik, _WHXLMKfR) {
    let _mdtgmNpo = false;
    return new ReadableStream({
        start(_bPguEcFv) {
            _plEAtTik.addEventListener("_tQsENZEP", (event) => { if (_mdtgmNpo) return; _bPguEcFv.enqueue(event._bkGfRqAc); });
            _plEAtTik.addEventListener("close", () => { _lVHueqfA(_plEAtTik); if (_mdtgmNpo) return; _bPguEcFv.close(); });
            _plEAtTik.addEventListener("error", (err) => _bPguEcFv.error(err));
            if (_WHXLMKfR) {
                try {
                    const _joOMDkTj = atob(_WHXLMKfR.replace(/-/g, "+").replace(/_/g, "/"));
                    _bPguEcFv.enqueue(Uint8Array.from(_joOMDkTj, c => c.charCodeAt(0))._JPaiMWGj);
                } catch (_TscaIMJa) { console.error("Failed to decode early _bkGfRqAc:", _TscaIMJa); }
            }
        },
        cancel() { _mdtgmNpo = true; _lVHueqfA(_plEAtTik); },
    });
}

async function _AsWkZCEy(_JPaiMWGj, _PKDnKjGF) {
    if (_JPaiMWGj.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _FiVYpuyu = new Uint8Array(_JPaiMWGj.slice(0, 1));
    const _NfmpbeXj = _UhgcptEX(new Uint8Array(_JPaiMWGj.slice(1, 17)));
    if (_NfmpbeXj !== _PKDnKjGF) return { error: true, details: "Invalid _PKDnKjGF" };
    const _ZVpRLmsk = new Uint8Array(_JPaiMWGj.slice(17, 18))[0];
    const _YDFevhJM = new Uint8Array(_JPaiMWGj.slice(18 + _ZVpRLmsk, 19 + _ZVpRLmsk))[0];
    if (_YDFevhJM !== 1) return { error: true, details: `Unsupported _YDFevhJM: ${_YDFevhJM}` };
    const _lGMWakjP = 19 + _ZVpRLmsk;
    const _ZTdrAAPw = new DataView(_JPaiMWGj.slice(_lGMWakjP, _lGMWakjP + 2)).getUint16(0);
    let _zOjBSMUR = _lGMWakjP + 2;
    const _ZEVcGxJu = new Uint8Array(_JPaiMWGj.slice(_zOjBSMUR, _zOjBSMUR + 1))[0];
    let _gimCNdye = 0;
    let _KYsaeqFT = _zOjBSMUR + 1;
    let _CZmuVoUi = "";
    switch (_ZEVcGxJu) {
        case 1: _gimCNdye = 4; _CZmuVoUi = new Uint8Array(_JPaiMWGj.slice(_KYsaeqFT, _KYsaeqFT + _gimCNdye)).join("."); break;
        case 2: _gimCNdye = new Uint8Array(_JPaiMWGj.slice(_KYsaeqFT, _KYsaeqFT + 1))[0]; _KYsaeqFT++; _CZmuVoUi = new TextDecoder().decode(_JPaiMWGj.slice(_KYsaeqFT, _KYsaeqFT + _gimCNdye)); break;
        case 3: _gimCNdye = 16; const _AdpHMGhO = new DataView(_JPaiMWGj.slice(_KYsaeqFT, _KYsaeqFT + _gimCNdye)); const _JJAUKWcX = []; for (let _cZPBrLPg = 0; _cZPBrLPg < 8; _cZPBrLPg++) _JJAUKWcX.push(_AdpHMGhO.getUint16(_cZPBrLPg * 2).toString(16)); _CZmuVoUi = _JJAUKWcX.join(":"); break;
        default: return { error: true, details: `Invalid _kycDwlNg _cBwqeSpE: ${_ZEVcGxJu}` };
    }
    if (!_CZmuVoUi) return { error: true, details: "Target _juhpGTjh is empty" };
    return { error: false, details: { _CZmuVoUi, _ZTdrAAPw, _FiVYpuyu, payloadIndex: _KYsaeqFT + _gimCNdye } };
}

async function _uKmVeqYu(_xjqEGFtW, _kNnrbFjQ, _kWsXIwaz, _yEzHoISq) {
    let _PdtZXXxK = _kWsXIwaz;
    let _XQvSxzYp = false;
    let _YPeBJzja = _xjqEGFtW._KXcWLpSL.pipeTo(new WritableStream({
        write(chunk) {
            _XQvSxzYp = true;
            if (_kNnrbFjQ.readyState !== 1) throw new Error("Channel is not open");
            if (_PdtZXXxK) {
                const _PeiCXyRn = new Uint8Array(_PdtZXXxK.byteLength + chunk.byteLength);
                _PeiCXyRn._aNXrQOrv(new Uint8Array(_PdtZXXxK));
                _PeiCXyRn._aNXrQOrv(new Uint8Array(chunk), _PdtZXXxK.byteLength);
                _kNnrbFjQ.send(_PeiCXyRn._JPaiMWGj);
                _PdtZXXxK = null;
            } else {
                _kNnrbFjQ.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _kNnrbFjQ error:", err._tQsENZEP);
    });

    await _YPeBJzja;
    if (!_XQvSxzYp && _yEzHoISq) {
        _yEzHoISq();
    }
}

function _lVHueqfA(_kNnrbFjQ) {
    try { if (_kNnrbFjQ.readyState === 1 || _kNnrbFjQ.readyState === 2) _kNnrbFjQ.close(); } catch (_TscaIMJa) {}
}

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

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

async function _OBsiStEc(_WtFfkLOq, _SiyKATqy, _yEzHoISq) {
    try {
        const _DzegcNvd = await fetch(_WtFfkLOq, {
            _neCLOKdy: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_DzegcNvd.ok) {
            console.error(`获取 ${_WtFfkLOq} 失败: HTTP ${_DzegcNvd.status}`);
            return _yEzHoISq;
        }
        const _rIddpXbz = await _DzegcNvd._rIddpXbz();
        return _SiyKATqy(_rIddpXbz);
    } catch (error) {
        console.error(`获取或解析 ${_WtFfkLOq} 时发生网络错误: ${error._tQsENZEP}`);
        return _yEzHoISq;
    }
}

function _VEVRLcrM(_rIddpXbz) {
    if (!_rIddpXbz) return [];
    const _yAVmWNgz = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _HNOTlPrN = _rIddpXbz.split(/[\s,;#|]+/);
    const _dmLVjbzI = [];
    for (const _MiAtoJaI of _HNOTlPrN) {
        const _auJdFysH = _MiAtoJaI.trim();
        if (!_auJdFysH) continue;
        const _zBKAiqRv = _auJdFysH.lastIndexOf(':');
        let _TrEovXUQ = _auJdFysH;
        if(_zBKAiqRv > _auJdFysH.lastIndexOf(']')) {
             const _pHnAAzOY = _auJdFysH.substring(_zBKAiqRv + 1);
             if(!isNaN(_pHnAAzOY) && _pHnAAzOY._OtvtecFT > 0) {
                _TrEovXUQ = _auJdFysH.substring(0, _zBKAiqRv);
             }
        }
        if (_QuaBtHDL.isValid(_TrEovXUQ.replace(/[\[\]]/g, '')) || _yAVmWNgz.test(_auJdFysH)) {
            _dmLVjbzI.push(_auJdFysH);
        }
    }
    return _dmLVjbzI;
}

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

function _VnpsDHDT(_rIddpXbz) {
    if (!_rIddpXbz) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_rIddpXbz}}`);
    } catch (_TscaIMJa) {
        console.error("解析 _ypbDSXPk 失败:", _TscaIMJa);
        return { "N/A": "未知" };
    }
}

const _QuaBtHDL = {
    isValid: (_SGAKYnsJ) => _QuaBtHDL.isIPv4(_SGAKYnsJ) || _QuaBtHDL.isIPv6(_SGAKYnsJ),
    isIPv4: (_SGAKYnsJ) => {
        if (typeof _SGAKYnsJ !== 'string') return false;
        const _JJAUKWcX = _SGAKYnsJ.split('.');
        if (_JJAUKWcX._OtvtecFT !== 4) return false;
        return _JJAUKWcX.every(_UUbSXEXm => {
            const _RhrhQXTj = parseInt(_UUbSXEXm, 10);
            return !isNaN(_RhrhQXTj) && _RhrhQXTj >= 0 && _RhrhQXTj <= 255 && String(_RhrhQXTj) === _UUbSXEXm;
        });
    },
    isIPv6: (_SGAKYnsJ) => {
        if (typeof _SGAKYnsJ !== '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]))$/_cZPBrLPg.test(_SGAKYnsJ);
    },
    toLong4: (_SGAKYnsJ) => _SGAKYnsJ.split('.').reduce((acc, octet, _cZPBrLPg) => acc + (parseInt(octet) << (8*(3-_cZPBrLPg))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_SGAKYnsJ) => {
        try {
            const _fngVvyVd = _SGAKYnsJ.split('/')[0];
            const _JJAUKWcX = _fngVvyVd.split('::');
            if (_JJAUKWcX._OtvtecFT > 2) return 0n;
            let _XmTPhLLm = [];
            if (_JJAUKWcX[0]) {
                _XmTPhLLm = _JJAUKWcX[0].split(':');
            }
            let _uhuAuZRb = [];
            if (_JJAUKWcX._OtvtecFT > 1 && _JJAUKWcX[1]) {
                _uhuAuZRb = _JJAUKWcX[1].split(':');
            }
            if (_XmTPhLLm._OtvtecFT + _uhuAuZRb._OtvtecFT > 8) return 0n;
            const _nSdMBRcc = 8 - (_XmTPhLLm._OtvtecFT + _uhuAuZRb._OtvtecFT);
            const _PFliNyHa = [
                ..._XmTPhLLm,
                ...Array(_nSdMBRcc).fill('0'),
                ..._uhuAuZRb
            ].map(_UUbSXEXm => _UUbSXEXm || '0');
            while(_PFliNyHa._OtvtecFT < 8) {
                _PFliNyHa.push('0');
            }
            let _xXQTokds = 0n;
            for (const _UUbSXEXm of _PFliNyHa) {
                if (_UUbSXEXm._OtvtecFT > 4) return 0n;
                const _PCGWajUU = BigInt('0x' + _UUbSXEXm);
                _xXQTokds = (_xXQTokds << 16n) | _PCGWajUU;
            }
            return _xXQTokds;
        } catch(_TscaIMJa) {
            return 0n;
        }
    },
    fromBigInt6: (_xXQTokds) => {
        if (typeof _xXQTokds !== '_xXQTokds' || _xXQTokds < 0n) return null;
        const _JJAUKWcX = [];
        for (let _cZPBrLPg = 0; _cZPBrLPg < 8; _cZPBrLPg++) {
            _JJAUKWcX.unshift((_xXQTokds & 0xFFFFn).toString(16));
            _xXQTokds >>= 16n;
        }
        let _rgQzqjNB = { start: -1, _YoAWifpR: 0 };
        let _JbSaejUr = { start: -1, _YoAWifpR: 0 };
        for (let _cZPBrLPg = 0; _cZPBrLPg < 8; _cZPBrLPg++) {
            if (_JJAUKWcX[_cZPBrLPg] === '0') {
                if (_JbSaejUr.start === -1) _JbSaejUr.start = _cZPBrLPg;
                _JbSaejUr._YoAWifpR++;
            } else {
                if (_JbSaejUr._YoAWifpR > _rgQzqjNB._YoAWifpR) _rgQzqjNB = { ..._JbSaejUr };
                _JbSaejUr = { start: -1, _YoAWifpR: 0 };
            }
        }
        if (_JbSaejUr._YoAWifpR > _rgQzqjNB._YoAWifpR) _rgQzqjNB = { ..._JbSaejUr };
        if (_rgQzqjNB._YoAWifpR > 1) {
            _JJAUKWcX.splice(_rgQzqjNB.start, _rgQzqjNB._YoAWifpR, '');
            if (_rgQzqjNB.start === 0) _JJAUKWcX.unshift('');
            if (_rgQzqjNB.start + _rgQzqjNB._YoAWifpR === 8) _JJAUKWcX.push('');
        }
        return _JJAUKWcX.join(':');
    },
    cidrToRange: (cidr, _dpnRBYYS = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _OLepPSgR = parseInt(bitsStr, 10);
            const _pNRnulvw = new Set();
            if (_QuaBtHDL.isIPv4(range)) {
                if (isNaN(_OLepPSgR) || _OLepPSgR < 8 || _OLepPSgR > 32) return [];
                if (_OLepPSgR === 32) return [range];
                const _kCKYOBJN = _QuaBtHDL.toLong4(range);
                const _YgbiGgdt = (0xFFFFFFFF << (32 - _OLepPSgR)) >>> 0;
                const _AYGouvZU = _kCKYOBJN & _YgbiGgdt;
                const _nobSRDmP = 1 << (32 - _OLepPSgR);
                if (_nobSRDmP <= 2) return [];
                const _xUfPhCPN = Math.min(_dpnRBYYS, _nobSRDmP - 2);
                let _QUjOidIK = 0;
                while (_pNRnulvw.size < _xUfPhCPN && _QUjOidIK < _xUfPhCPN * 5) {
                    const _DLmNlhRF = Math.floor(Math.random() * (_nobSRDmP - 2)) + 1;
                    _pNRnulvw.add(_QuaBtHDL.fromLong4((_AYGouvZU + _DLmNlhRF) >>> 0));
                    _QUjOidIK++;
                }
                return Array.from(_pNRnulvw);
            } else if (_QuaBtHDL.isIPv6(range)) {
                if (isNaN(_OLepPSgR) || _OLepPSgR < 16 || _OLepPSgR > 128) return [];
                 if (_OLepPSgR === 128) return [range];
                const _FjqpDONd = _QuaBtHDL.toBigInt6(range);
                const _YgbiGgdt = (2n ** BigInt(128 - _OLepPSgR) - 1n);
                const _AYGouvZU = _FjqpDONd & ~_YgbiGgdt;
                const _tATPldUV = 2n ** BigInt(128 - _OLepPSgR);
                if (_tATPldUV <= 2n) return [];
                let _QUjOidIK = 0;
                while (_pNRnulvw.size < _dpnRBYYS && _QUjOidIK < _dpnRBYYS * 5) {
                     const _ZTSNjDNW = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_ZTSNjDNW);
                     let _VdCcwhJv = 0n;
                     for (const _jBajaYXn of _ZTSNjDNW) {
                         _VdCcwhJv = (_VdCcwhJv << 8n) | BigInt(_jBajaYXn);
                     }
                     const _DLmNlhRF = _VdCcwhJv % (_tATPldUV - 2n) + 1n;
                     _pNRnulvw.add(_QuaBtHDL.fromBigInt6(_AYGouvZU + _DLmNlhRF));
                     _QUjOidIK++;
                }
                return Array.from(_pNRnulvw);
            }
            return [];
        } catch(_TscaIMJa) {
            console.error(`CIDR to range failed for ${cidr}:`, _TscaIMJa);
            return [];
        }
    }
};

function _RLrGQntK(_QycEnZXh, _hwEsPsst) {
    const _EVpxajEC = {};
    const _EoXHdvAx = Object._EoXHdvAx(_hwEsPsst);
    const _JJAUKWcX = _EoXHdvAx.map(_MqXeEqfN => {
        const _hNawIjJY = _QycEnZXh * (_hwEsPsst[_MqXeEqfN] / 100);
        return { _MqXeEqfN, _dpnRBYYS: Math.floor(_hNawIjJY), remainder: _hNawIjJY - Math.floor(_hNawIjJY) };
    });
    let _HFGhJXBW = _JJAUKWcX.reduce((acc, _UUbSXEXm) => acc + _UUbSXEXm._dpnRBYYS, 0);
    _JJAUKWcX.sort((a, b) => b.remainder - a.remainder);
    let _NwUAJJGg = _QycEnZXh - _HFGhJXBW;
    for (let _cZPBrLPg = 0; _cZPBrLPg < _NwUAJJGg; _cZPBrLPg++) {
        _JJAUKWcX[_cZPBrLPg % _JJAUKWcX._OtvtecFT]._dpnRBYYS++;
    }
    for (const _UUbSXEXm of _JJAUKWcX) {
        _EVpxajEC[_UUbSXEXm._MqXeEqfN] = _UUbSXEXm._dpnRBYYS;
    }
    return _EVpxajEC;
}

async function _uCYhZSdt(_rQGxLgCx) {
    const _BGiglMof = _rQGxLgCx.DB.prepare("SELECT _PCGWajUU FROM kv_data WHERE _MqXeEqfN = ?").bind(_GeXZBCNg);
    const { _YEagTLBQ } = await _BGiglMof.all();
    return _YEagTLBQ._OtvtecFT > 0 ? _YEagTLBQ[0]._PCGWajUU : null;
}

async function _mwCpySqV(_rQGxLgCx, _fSIljLHH) {
    const _BGiglMof = _rQGxLgCx.DB.prepare(
        "INSERT INTO kv_data (_MqXeEqfN, _PCGWajUU) VALUES (?, ?) ON CONFLICT(_MqXeEqfN) DO UPDATE SET _PCGWajUU = excluded._PCGWajUU"
    );
    await _BGiglMof.bind(_GeXZBCNg, _fSIljLHH).run();
}

async function _lhUvYdiJ(_DtUdMsva, _rQGxLgCx) {
    const { _fSIljLHH } = await _DtUdMsva.json();
    const _fhbHDCiI = await _uCYhZSdt(_rQGxLgCx);
    if (_fhbHDCiI === _fSIljLHH) {
        return _tvtafKsk({ success: true });
    }
    return _tvtafKsk({ success: false, _tQsENZEP: '密码错误' }, 401);
}

async function _rpfLrbSO(_DtUdMsva, _rQGxLgCx) {
    const _YUrrpOrc = await _uFXYXKqg(_rQGxLgCx);
    if (!_YUrrpOrc.visitorPassword || !_YUrrpOrc.visitorPassword._owqiIfIi) {
        return _tvtafKsk({ success: true });
    }
    try {
        const { _fSIljLHH } = await _DtUdMsva.json();
        const _VIIxCiRd = _YUrrpOrc.visitorPassword._fSIljLHH;
        if (_VIIxCiRd && _fSIljLHH === _VIIxCiRd) {
            return _tvtafKsk({ success: true });
        }
        return _tvtafKsk({ success: false, _tQsENZEP: '访客密码错误' }, 401);
    } catch (_TscaIMJa) {
        return _tvtafKsk({ success: false, _tQsENZEP: '无效请求' }, 400);
    }
}

async function _CxxmRuHs(_DtUdMsva, _rQGxLgCx) {
    const _OBiwnkXP = await _uCYhZSdt(_rQGxLgCx);
    if (_OBiwnkXP) {
        return _tvtafKsk({ success: false, _tQsENZEP: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _fSIljLHH } = await _DtUdMsva.json();
    if (!_fSIljLHH || _fSIljLHH._OtvtecFT < 6) {
        return _tvtafKsk({ success: false, _tQsENZEP: "密码长度不能少于6位。" }, 400);
    }
    await _mwCpySqV(_rQGxLgCx, _fSIljLHH);
    return _tvtafKsk({ success: true, _tQsENZEP: "初始密码设置成功!请刷新页面并登录。" });
}

async function _ucmHHPsZ(_DtUdMsva, _rQGxLgCx) {
    const { _ZkZveXRF, _pnnfhgrz } = await _DtUdMsva.json();
    const _fhbHDCiI = await _uCYhZSdt(_rQGxLgCx);
    if (_fhbHDCiI !== _ZkZveXRF) {
        return _tvtafKsk({ success: false, _tQsENZEP: "旧密码错误。" }, 403);
    }
    if (!_pnnfhgrz || _pnnfhgrz._OtvtecFT < 6) {
        return _tvtafKsk({ success: false, _tQsENZEP: "新密码长度不能少于6位。" }, 400);
    }
    await _mwCpySqV(_rQGxLgCx, _pnnfhgrz);
    return _tvtafKsk({ success: true, _tQsENZEP: "密码修改成功!" });
}

function _diSQXfkj() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _UMKWguhA: '',
        api: {
            _owqiIfIi: true,
            _tQsENZEP: '维护中...',
        },
        ispFilter: { _owqiIfIi: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _owqiIfIi: true
        },
        websocketStreamer: {
            _owqiIfIi: true,
            _WtFfkLOq: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _owqiIfIi: true
        },
        visitorPassword: {
            _owqiIfIi: false,
            _fSIljLHH: '',
        },
        customSubPath: {
            _owqiIfIi: false,
            _LTzuohby: 'latest',
        },
        subscriptionId: {
            _OtvtecFT: 8,
            _yVbSoUyS: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _owqiIfIi: true,
            template: 'vless://{_VZEtSysG}@{_SGAKYnsJ}:{_DcBQImGI}?encryption=none&security=tls&sni={_juhpGTjh}&fp=random&_cBwqeSpE=ws&_juhpGTjh={_juhpGTjh}&_LTzuohby={_LTzuohby}#{_wXEgPWwC}',
            selectionMode: 'first',
            _nOUIoRDP: [
                { _wXEgPWwC: '默认配置', _juhpGTjh: '', '_VZEtSysG': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _LTzuohby: '/?ed=2560' }
            ],
            _ljmXNFqy: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _owqiIfIi: false,
                _rIddpXbz: '',
                _gbexjwtx: 5
            },
            marquee: {
                _owqiIfIi: false,
                _rIddpXbz: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _owqiIfIi: true,
            sources: [
                { _lpFyVTKe: 'CF官方IPV4', _pNRnulvw: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _tSxAFSHJ: false, _owqiIfIi: true, _XbZQAzTE: 20 },
                { _lpFyVTKe: 'CF官方IPV6', _pNRnulvw: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _tSxAFSHJ: false, _owqiIfIi: true, _XbZQAzTE: 20 },
                { _lpFyVTKe: '反代优选0', _pNRnulvw: 'https://wvs.sosorg.nyc.mn/sub?_VZEtSysG=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_cBwqeSpE=ws&_juhpGTjh=ss.nzvrn.com&_LTzuohby=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _tSxAFSHJ: false, _owqiIfIi: true, _XbZQAzTE: 30 },
                { _lpFyVTKe: '官方优选1', _pNRnulvw: 'https://ipdb.api.030101.xyz/?_cBwqeSpE=bestcf&_iUIoWTEf=true', _tSxAFSHJ: false, _owqiIfIi: true, _XbZQAzTE: 10 },
                { _lpFyVTKe: '反代优选2', _pNRnulvw: 'https://ipdb.api.030101.xyz/?_cBwqeSpE=bestproxy&_iUIoWTEf=true', _tSxAFSHJ: false, _owqiIfIi: true, _XbZQAzTE: 5 },
                { _lpFyVTKe: '官方优选2', _pNRnulvw: 'https://addressesapi.090227.xyz/_SGAKYnsJ.164746.xyz', _tSxAFSHJ: false, _owqiIfIi: true, _XbZQAzTE: 10 },
				{ _lpFyVTKe: '官方优选3', _pNRnulvw: 'https://cfxr.eu.org/getSub?_juhpGTjh=snipaste.huggy.qzz.io', _tSxAFSHJ: false, _owqiIfIi: true, _XbZQAzTE: 5 },
                { _lpFyVTKe: '官方优选4', _pNRnulvw: 'https://addressesapi.090227.xyz/CloudFlareYes', _tSxAFSHJ: false, _owqiIfIi: true, _XbZQAzTE: 10 }
            ]
        },
        customNodes: {
            _owqiIfIi: 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 _vsvhmwjK(_mpnziVKx, _zbnVSGlr) {
    if (!_mpnziVKx) return _zbnVSGlr;
    const _fcQgjDuc = { ..._zbnVSGlr };
    for (const _MqXeEqfN in _zbnVSGlr) {
        if (_mpnziVKx.hasOwnProperty(_MqXeEqfN)) {
             if (typeof _mpnziVKx[_MqXeEqfN] === 'object' && _mpnziVKx[_MqXeEqfN] !== null && !Array.isArray(_mpnziVKx[_MqXeEqfN]) && typeof _zbnVSGlr[_MqXeEqfN] === 'object' && _zbnVSGlr[_MqXeEqfN] !== null && !Array.isArray(_zbnVSGlr[_MqXeEqfN])) {
                _fcQgjDuc[_MqXeEqfN] = _vsvhmwjK(_mpnziVKx[_MqXeEqfN], _zbnVSGlr[_MqXeEqfN]);
            } else {
                _fcQgjDuc[_MqXeEqfN] = _mpnziVKx[_MqXeEqfN];
            }
        }
    }
    return _fcQgjDuc;
}

async function _uFXYXKqg(_rQGxLgCx) {
    try {
        const _BGiglMof = _rQGxLgCx.DB.prepare("SELECT _PCGWajUU FROM kv_data WHERE _MqXeEqfN = ?").bind(_yKCCKoQU);
        const { _YEagTLBQ } = await _BGiglMof.all();
        const _JJiCfRNC = _YEagTLBQ._OtvtecFT > 0 ? _YEagTLBQ[0]._PCGWajUU : null;
        const _oShoQEgj = _JJiCfRNC ? JSON.parse(_JJiCfRNC) : {};
        return _vsvhmwjK(_oShoQEgj, _diSQXfkj());
    } catch (_TscaIMJa) {
        console.error("无法从D1获取或解析全局配置:", _TscaIMJa);
        return _diSQXfkj();
    }
}

async function _uhOqsgGW(_rQGxLgCx) {
    const _EZYiPFxb = await _uFXYXKqg(_rQGxLgCx);
    return _tvtafKsk(_EZYiPFxb);
}

async function _HbFQkXSB(_DtUdMsva, _rQGxLgCx, _fPlnmlTf) {
    try {
        const { _EZYiPFxb, adminPassword } = await _DtUdMsva.json();
        const _fhbHDCiI = await _uCYhZSdt(_rQGxLgCx);
        if (_fhbHDCiI !== adminPassword) {
            return _tvtafKsk({ success: false, _tQsENZEP: "管理员密码错误" }, 403);
        }
        const _BGiglMof = _rQGxLgCx.DB.prepare(
          "INSERT INTO kv_data (_MqXeEqfN, _PCGWajUU) VALUES (?, ?) ON CONFLICT(_MqXeEqfN) DO UPDATE SET _PCGWajUU = excluded._PCGWajUU"
        );
        const _UgeesQNG = _BGiglMof.bind(_yKCCKoQU, JSON.stringify(_EZYiPFxb)).run();
        _fPlnmlTf.waitUntil(_UgeesQNG);
        return _tvtafKsk({ success: true, _tQsENZEP: "配置已成功保存!" });
    } catch (_TscaIMJa) {
        return _tvtafKsk({ success: false, _tQsENZEP: `保存失败: ${_TscaIMJa._tQsENZEP}` }, 500);
    }
}

async function _ScyeXzRZ() {
    const _uHFpLyNz = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _McldVfdh = await fetch(_uHFpLyNz);
        const _AlQvidrc = await _McldVfdh.json();
        const _WABQmOJp = 'https://www.bing.com' + _AlQvidrc.images[0]._WtFfkLOq;
        return fetch(_WABQmOJp);
    } catch (_TscaIMJa) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _wkAnEREN(_SGAKYnsJ) {
    try {
        const _DzegcNvd = await fetch(`http://_SGAKYnsJ-api.com/json/${_SGAKYnsJ}?fields=status,_iUIoWTEf,countryCode,_OngLvRep&lang=zh-CN`);
        if (_DzegcNvd.ok) {
            const _bkGfRqAc = await _DzegcNvd.json();
            if (_bkGfRqAc.status === 'success' && (_bkGfRqAc.countryCode || _bkGfRqAc._iUIoWTEf)) {
                let _OngLvRep = _bkGfRqAc._OngLvRep || '未知';
                if (_OngLvRep.toLowerCase().includes('cloudflare')) {
                    _OngLvRep = 'CloudFlare';
                }
                return {
                    _lpFyVTKe: _ypbDSXPk[_bkGfRqAc.countryCode] || _bkGfRqAc._iUIoWTEf || _bkGfRqAc.countryCode,
                    _OngLvRep: _OngLvRep
                };
            }
        }
    } catch (_TscaIMJa) {}

    try {
        const _DzegcNvd = await fetch(`https://api._SGAKYnsJ.sb/geoip/${_SGAKYnsJ}`);
        if (_DzegcNvd.ok) {
            const _bkGfRqAc = await _DzegcNvd.json();
            if (_bkGfRqAc.country_code || _bkGfRqAc._iUIoWTEf) {
                let _OngLvRep = _bkGfRqAc._OngLvRep || '未知';
                if (_OngLvRep.toLowerCase().includes('cloudflare')) {
                    _OngLvRep = 'CloudFlare';
                }
                return {
                    _lpFyVTKe: _ypbDSXPk[_bkGfRqAc.country_code] || _bkGfRqAc._iUIoWTEf || _bkGfRqAc.country_code,
                    _OngLvRep: _OngLvRep
                };
            }
        }
    } catch (_TscaIMJa) {}
    
    return { _lpFyVTKe: '未知', _OngLvRep: '未知' };
}

async function _PQtgwbBh(_DtUdMsva, _rQGxLgCx) {
    try {
        const { _pNRnulvw } = await _DtUdMsva.json();
        if (!Array.isArray(_pNRnulvw)) {
            return _tvtafKsk({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _ghjsHNHu = _pNRnulvw.map(_SGAKYnsJ => _wkAnEREN(_SGAKYnsJ).then(_zvNMdbMM => ({ _SGAKYnsJ, ..._zvNMdbMM })));
        const _YEagTLBQ = await Promise.all(_ghjsHNHu);
        return _tvtafKsk(_YEagTLBQ);
    } catch (_TscaIMJa) {
        return _tvtafKsk({ error: `获取地理位置失败: ${_TscaIMJa._tQsENZEP}` }, 500);
    }
}

async function _TRrgHZdu(_DtUdMsva, _rQGxLgCx) {
    const _EZYiPFxb = await _uFXYXKqg(_rQGxLgCx);
    if (!_EZYiPFxb.cloudStorage._owqiIfIi) {
        return _tvtafKsk({ _YEagTLBQ: [], generatedBy: null });
    }
    try {
        const _BGiglMof = _rQGxLgCx.DB.prepare("SELECT _PCGWajUU FROM kv_data WHERE _MqXeEqfN = ?").bind(_OxupAZxp);
        const { _YEagTLBQ } = await _BGiglMof.all();
        const _hPXVpTiC = _YEagTLBQ._OtvtecFT > 0 ? _YEagTLBQ[0]._PCGWajUU : null;
        const _elmUhVLW = _hPXVpTiC ? JSON.parse(_hPXVpTiC) : null;
        return _tvtafKsk(_elmUhVLW || { _YEagTLBQ: [], generatedBy: null });
    } catch (_TscaIMJa) {
        console.error("从D1读取缓存IP失败:", _TscaIMJa);
        return _tvtafKsk({ _YEagTLBQ: [], generatedBy: null });
    }
}

async function _EVqeVJgU(_DtUdMsva, _rQGxLgCx, _fPlnmlTf) {
    const _EZYiPFxb = await _uFXYXKqg(_rQGxLgCx);
    if (!_EZYiPFxb.cloudStorage._owqiIfIi) {
        return _tvtafKsk({ success: true, _tQsENZEP: "云端存储已禁用,不保存结果。" });
    }
    const _aqwspiUz = _DtUdMsva._neCLOKdy.get('CF-Connecting-IP') || "未知IP";
    const _iUIoWTEf = _DtUdMsva.cf?._iUIoWTEf || "未知";
    const _suBqGJwG = _DtUdMsva.cf?._suBqGJwG || "";
    let _yCDyYIJc = _ypbDSXPk[_iUIoWTEf] || _iUIoWTEf;
    if (_suBqGJwG && _suBqGJwG !== "未知城市" && _suBqGJwG !== _iUIoWTEf) _yCDyYIJc = `${_yCDyYIJc} ${_ypbDSXPk[_suBqGJwG] || _suBqGJwG}`;
    const _DgAYKSIr = {
        _SGAKYnsJ: _aEqAAPhC(_aqwspiUz),
        _lpFyVTKe: _yCDyYIJc.trim(),
        time: _dkksGVeK()
    };
    try {
        const _AJqFkoKi = await _DtUdMsva.json();
        if (!Array.isArray(_AJqFkoKi)) return _tvtafKsk({ error: "无效数据格式" }, 400);
        const _gJugVena = _AJqFkoKi.map(_pONSZcnI => ({
            _SGAKYnsJ: String(_pONSZcnI._SGAKYnsJ || ''),
            _DcBQImGI: _pONSZcnI._DcBQImGI ? parseInt(_pONSZcnI._DcBQImGI, 10) : undefined,
            _sYAFmTVv: parseInt(_pONSZcnI._sYAFmTVv, 10),
            _lpFyVTKe: typeof _pONSZcnI._lpFyVTKe === 'string' ? _pONSZcnI._lpFyVTKe.substring(0, 50) : 'N/A',
            _OngLvRep: typeof _pONSZcnI._OngLvRep === 'string' ? _pONSZcnI._OngLvRep.substring(0, 100) : 'N/A'
        }));
        const _RKDZwjIc = {
            generatedBy: _DgAYKSIr,
            _YEagTLBQ: _gJugVena
        };
        const _BHLstNXh = _rQGxLgCx.DB.prepare(
          "INSERT INTO kv_data (_MqXeEqfN, _PCGWajUU) VALUES (?, ?) ON CONFLICT(_MqXeEqfN) DO UPDATE SET _PCGWajUU = excluded._PCGWajUU"
        ).bind(_OxupAZxp, JSON.stringify(_RKDZwjIc)).run();
        if (_EZYiPFxb.telegram.bot_token && _EZYiPFxb.telegram.chat_id) {
            const _KAKytxxA = _gJugVena.map(r => `${r._SGAKYnsJ} ~ ${r._lpFyVTKe}`).join('\n');
            const _gGJJvQzO = `优选完成!\n来源: ${_DgAYKSIr._SGAKYnsJ} (${_DgAYKSIr._lpFyVTKe})\n时间: ${_DgAYKSIr.time}\n\n结果:\n${_KAKytxxA}`;
            const _ulguDvxv = `https://api.telegram.org/bot${_EZYiPFxb.telegram.bot_token}/sendMessage?chat_id=${_EZYiPFxb.telegram.chat_id}&_rIddpXbz=${encodeURIComponent(_gGJJvQzO)}`;
            const _jAIcmCvi = fetch(_ulguDvxv).catch(_TscaIMJa => console.error("Telegram结果通知失败:", _TscaIMJa));
            _fPlnmlTf.waitUntil(Promise.all([_BHLstNXh, _jAIcmCvi]));
        } else {
             _fPlnmlTf.waitUntil(_BHLstNXh);
        }
        return _tvtafKsk({ success: true, _tQsENZEP: "结果已保存" });
    } catch (_TscaIMJa) {
        return _tvtafKsk({ error: "D1写入失败", _tQsENZEP: _TscaIMJa._tQsENZEP }, 500);
    }
}

async function _WQfHkzpX(_DtUdMsva, _rQGxLgCx, _fPlnmlTf) {
    try {
        const _gBzKXEgF = await _DtUdMsva.json();
        if (!Array.isArray(_gBzKXEgF)) return _tvtafKsk({ error: "无效数据格式" }, 400);
        const _RKDZwjIc = {
            _YEagTLBQ: _gBzKXEgF
        };
        const _BGiglMof = _rQGxLgCx.DB.prepare(
          "INSERT INTO kv_data (_MqXeEqfN, _PCGWajUU) VALUES (?, ?) ON CONFLICT(_MqXeEqfN) DO UPDATE SET _PCGWajUU = excluded._PCGWajUU"
        );
        const _UgeesQNG = _BGiglMof.bind(_TpYpkwiS, JSON.stringify(_RKDZwjIc)).run();
        _fPlnmlTf.waitUntil(_UgeesQNG);
        return _tvtafKsk({ success: true });
    } catch (_TscaIMJa) {
        return _tvtafKsk({ error: "D1写入临时缓存失败", _tQsENZEP: _TscaIMJa._tQsENZEP }, 500);
    }
}

function _gCNPnGmU(_OtvtecFT, _yVbSoUyS) {
    let _qAoqfqtu = '';
    const _rHPVVolx = _yVbSoUyS._OtvtecFT;
    for (let _cZPBrLPg = 0; _cZPBrLPg < _OtvtecFT; _cZPBrLPg++) {
        _qAoqfqtu += _yVbSoUyS.charAt(Math.floor(Math.random() * _rHPVVolx));
    }
    return _qAoqfqtu;
}

async function _RAXANNsi(_DtUdMsva, _rQGxLgCx) {
    try {
        const _AJqFkoKi = await _DtUdMsva.json();
        if (!Array.isArray(_AJqFkoKi) || _AJqFkoKi._OtvtecFT === 0) {
            return _tvtafKsk({ error: "无效或空的IP列表" }, 400);
        }

        const _EZYiPFxb = await _uFXYXKqg(_rQGxLgCx);
        const _WDXxEPnW = _EZYiPFxb.subscriptionId || { _OtvtecFT: 8, _yVbSoUyS: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _uYNxQvmH;
        let _rvVVIXut = false;
        let _QUjOidIK = 0;
        const _BmjaGJHv = 10;

        while (!_rvVVIXut && _QUjOidIK < _BmjaGJHv) {
            _uYNxQvmH = _gCNPnGmU(_WDXxEPnW._OtvtecFT, _WDXxEPnW._yVbSoUyS);
            const { _YEagTLBQ } = await _rQGxLgCx.DB.prepare("SELECT _XrqwuwXJ FROM optimized_results WHERE _XrqwuwXJ = ?").bind(_uYNxQvmH).all();
            if (_YEagTLBQ._OtvtecFT === 0) {
                _rvVVIXut = true;
            }
            _QUjOidIK++;
        }

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

        const _GkMTTbKD = JSON.stringify({ _pNRnulvw: _AJqFkoKi });
        await _rQGxLgCx.DB.prepare(
            "INSERT INTO optimized_results (_XrqwuwXJ, _bkGfRqAc) VALUES (?, ?)"
        ).bind(_uYNxQvmH, _GkMTTbKD).run();
        await _rQGxLgCx.DB.prepare(
            "INSERT INTO kv_data (_MqXeEqfN, _PCGWajUU) VALUES (?, ?) ON CONFLICT(_MqXeEqfN) DO UPDATE SET _PCGWajUU = excluded._PCGWajUU"
        ).bind(_otEcYfIn, _uYNxQvmH).run();
            
        return _tvtafKsk({ success: true, _XrqwuwXJ: _uYNxQvmH });
    } catch (_TscaIMJa) {
        return _tvtafKsk({ error: "保存优选结果失败", _tQsENZEP: _TscaIMJa._tQsENZEP }, 500);
    }
}

async function _TvKoBjvj(_DtUdMsva, _rQGxLgCx) {
    try {
        const _uYNxQvmH = _DtUdMsva._MTWDCLNt._XrqwuwXJ;
        if (!_uYNxQvmH) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _qAoqfqtu = await _rQGxLgCx.DB.prepare("SELECT _bkGfRqAc FROM optimized_results WHERE _XrqwuwXJ = ?").bind(_uYNxQvmH).first();
        if (!_qAoqfqtu) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _bkGfRqAc = JSON.parse(_qAoqfqtu._bkGfRqAc);
        let _KAKytxxA = _bkGfRqAc._pNRnulvw;

        const _EZYiPFxb = await _uFXYXKqg(_rQGxLgCx);

        if (_EZYiPFxb.customNodes && _EZYiPFxb.customNodes._owqiIfIi && _EZYiPFxb.customNodes.list) {
            const _JVgfGebF = _EZYiPFxb.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _ijanvNrP = _JVgfGebF.map(_ovhOAkXU => {
                let _kycDwlNg = _ovhOAkXU;
                let _DcBQImGI = undefined;
                let _wXEgPWwC = null;

                if (_kycDwlNg.includes('@')) {
                    const _JJAUKWcX = _kycDwlNg.split('@');
                    _wXEgPWwC = _JJAUKWcX.pop();
                    _kycDwlNg = _JJAUKWcX.join('@');
                }

                if (_kycDwlNg.includes('#')) {
                    const _JJAUKWcX = _kycDwlNg.split('#');
                    const _pHnAAzOY = _JJAUKWcX.pop();
                    if (!isNaN(_pHnAAzOY) && _pHnAAzOY.trim() !== '') {
                        _DcBQImGI = parseInt(_pHnAAzOY, 10);
                    }
                    _kycDwlNg = _JJAUKWcX.join('#');
                }
                
                return {
                    _SGAKYnsJ: _kycDwlNg,
                    _DcBQImGI: _DcBQImGI,
                    _lpFyVTKe: _wXEgPWwC || _kycDwlNg,
                    _OngLvRep: '自定义'
                };
            });
            _KAKytxxA.unshift(..._ijanvNrP);
        }
        
        const { itemLink } = _EZYiPFxb;
        const _HQIlIPOQ = new URL(_DtUdMsva._WtFfkLOq)._VNxpMMXc;
        let _hrMWuoBk;

        if (_EZYiPFxb.websocketStreamer && _EZYiPFxb.websocketStreamer._owqiIfIi) {
            if (!itemLink || !itemLink._owqiIfIi || !itemLink._nOUIoRDP || itemLink._nOUIoRDP._OtvtecFT === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _hrMWuoBk = _KAKytxxA.map((_pONSZcnI, _QyfJQZqc) => {
                let _wXEgPWwC;
                if (_pONSZcnI._OngLvRep === '自定义') {
                     _wXEgPWwC = `${_QyfJQZqc + 1} - ${_pONSZcnI._lpFyVTKe}`;
                } else {
                    _wXEgPWwC = `${_QyfJQZqc + 1} - ${_pONSZcnI._lpFyVTKe || '未知'}`;
                    if (!_pONSZcnI._OngLvRep || !_pONSZcnI._OngLvRep.toLowerCase().includes('cloudflare')) {
                        _wXEgPWwC += '(反代)';
                    }
                }
                const _IcUIGXmf = _QuaBtHDL.isIPv6(_pONSZcnI._SGAKYnsJ) ? `[${_pONSZcnI._SGAKYnsJ}]` : _pONSZcnI._SGAKYnsJ;
                const _DcBQImGI = _pONSZcnI._DcBQImGI || 443;
                const _NggrUSto = itemLink._nOUIoRDP[0];
                const _TWvlSVCz = _NggrUSto._VZEtSysG || '';
                const _VZEtSysG = (_TWvlSVCz && _TVllTWfi(_TWvlSVCz)) ? _TWvlSVCz : crypto.randomUUID();
                const _LTzuohby = '/snippets?_SGAKYnsJ=endpointAddress:_DcBQImGI(443)&nat64=6to4';
                const _juhpGTjh = _NggrUSto._juhpGTjh || _HQIlIPOQ;

                const _MTWDCLNt = new URLSearchParams({
                    security: 'tls',
                    _cBwqeSpE: 'ws',
                    _juhpGTjh: _juhpGTjh,
                    sni: _juhpGTjh,
                    fp: 'random'
                });
                return `vless://${_VZEtSysG}@${_IcUIGXmf}:${_DcBQImGI}?${_MTWDCLNt.toString()}&_LTzuohby=${encodeURIComponent(encodeURIComponent(_LTzuohby))}#${encodeURIComponent(_wXEgPWwC)}`;
            });

        } else {
            if (!itemLink || !itemLink._owqiIfIi || !itemLink._nOUIoRDP || itemLink._nOUIoRDP._OtvtecFT === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _NggrUSto = itemLink._nOUIoRDP[0];
            const { _juhpGTjh, _VZEtSysG, _LTzuohby } = _NggrUSto;
            _hrMWuoBk = _KAKytxxA.map((_pONSZcnI, _QyfJQZqc) => {
                let _wXEgPWwC;
                if (_pONSZcnI._OngLvRep === '自定义') {
                     _wXEgPWwC = `${_QyfJQZqc + 1} - ${_pONSZcnI._lpFyVTKe}`;
                } else {
                    _wXEgPWwC = `${_QyfJQZqc + 1} - ${_pONSZcnI._lpFyVTKe || '未知'}`;
                    if (!_pONSZcnI._OngLvRep || !_pONSZcnI._OngLvRep.toLowerCase().includes('cloudflare')) {
                        _wXEgPWwC += '(反代)';
                    }
                }
                const _IcUIGXmf = _QuaBtHDL.isIPv6(_pONSZcnI._SGAKYnsJ) ? `[${_pONSZcnI._SGAKYnsJ}]` : _pONSZcnI._SGAKYnsJ;
                const _DcBQImGI = _pONSZcnI._DcBQImGI || 443;
                const _MTWDCLNt = new URLSearchParams({
                    security: 'tls',
                    _cBwqeSpE: 'ws',
                    _juhpGTjh: _juhpGTjh || _HQIlIPOQ,
                    sni: _juhpGTjh || _HQIlIPOQ,
                    fp: 'random'
                });
                return `vless://${_VZEtSysG}@${_IcUIGXmf}:${_DcBQImGI}?${_MTWDCLNt.toString()}&_LTzuohby=${encodeURIComponent(encodeURIComponent(_LTzuohby || ''))}#${encodeURIComponent(_wXEgPWwC)}`;
            });
        }
        
        const _ALWZcGCH = _hrMWuoBk.join('\n');
        const _PVkqbxPA = btoa(_ALWZcGCH);
        return new Response(_PVkqbxPA, {
            _neCLOKdy: { 'Content-Type': '_rIddpXbz/plain; _yVbSoUyS=utf-8' }
        });

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

async function _EZUzXiHp(_DtUdMsva) {
    try {
        const { _TWgmkfqb, _cBwqeSpE } = await _DtUdMsva.json();
        if (!Array.isArray(_TWgmkfqb)) {
            return new Response('Invalid _TWgmkfqb list', { status: 400 });
        }
        const _qMvBJIOi = _TWgmkfqb.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _WtFfkLOq = `https://cloudflare-dns.com/dns-query?_wXEgPWwC=${encodeURIComponent(domain.trim())}&_cBwqeSpE=${_cBwqeSpE || 'A'}`;
            return fetch(_WtFfkLOq, { _neCLOKdy: { 'Accept': 'application/dns-json' } })
                .then(_DzegcNvd => _DzegcNvd.json())
                .then(_bkGfRqAc => (_bkGfRqAc.Answer ? _bkGfRqAc.Answer.map(a => a._bkGfRqAc) : []))
                .catch(() => []);
        });
        const _bgxMIyJt = (await Promise.all(_qMvBJIOi)).flat();
        const _xsvwkpMR = [...new Set(_bgxMIyJt)];
        if (_xsvwkpMR._OtvtecFT === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_xsvwkpMR.join('\n'), { _neCLOKdy: { 'Content-Type': '_rIddpXbz/plain; _yVbSoUyS=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._tQsENZEP}`, { status: 500 });
    }
}

async function _poeFyWXB(_DtUdMsva, _rQGxLgCx) {
  try {
      const { _psZNVXBO } = await _DtUdMsva.json();
      if (!Array.isArray(_psZNVXBO)) {
          return _tvtafKsk({ error: "Invalid input, expected an object with a '_psZNVXBO' array." }, 400);
      }
      
      const _UVVHtviF = new Set();
      
      const _UCrIgbkB = _psZNVXBO.map(_WtFfkLOq =>
          _WoJjhvOG(_WtFfkLOq)
              .then(_rIddpXbz => {
                  if (!_rIddpXbz) return;
                  const _HNOTlPrN = _rIddpXbz.split(/[\s,;|]+/);
                  for (const _MiAtoJaI of _HNOTlPrN) {
                      const _auJdFysH = _MiAtoJaI.trim();
                      if (_auJdFysH) {
                          _UVVHtviF.add(_auJdFysH);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_WtFfkLOq}:`, err);
              })
      );
      await Promise.all(_UCrIgbkB);
      return _tvtafKsk({ _pNRnulvw: Array.from(_UVVHtviF) });
  } catch (_TscaIMJa) {
      return _tvtafKsk({ error: `Failed to process URLs: ${_TscaIMJa._tQsENZEP}` }, 500);
  }
}

async function _mPXEuSoc(_DtUdMsva, _rQGxLgCx) {
    const _EZYiPFxb = await _uFXYXKqg(_rQGxLgCx);
    if (!_EZYiPFxb.api._owqiIfIi) {
        return new Response(_EZYiPFxb.api._tQsENZEP || 'API is disabled.', { status: 503 });
    }
    try {
        const _BGiglMof = _rQGxLgCx.DB.prepare("SELECT _PCGWajUU FROM kv_data WHERE _MqXeEqfN = ?").bind(_OxupAZxp);
        const { _YEagTLBQ: dbResults } = await _BGiglMof.all();
        const _hPXVpTiC = dbResults._OtvtecFT > 0 ? dbResults[0]._PCGWajUU : null;
        const _elmUhVLW = _hPXVpTiC ? JSON.parse(_hPXVpTiC) : null;
        if (!_elmUhVLW || !_elmUhVLW._YEagTLBQ || _elmUhVLW._YEagTLBQ._OtvtecFT === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _neCLOKdy: { 'Content-Type': '_rIddpXbz/plain; _yVbSoUyS=utf-8' },
            });
        }
        const _pNRnulvw = _elmUhVLW._YEagTLBQ.map(r => r._SGAKYnsJ);
        return new Response(_pNRnulvw.join('\n'), {
            _neCLOKdy: { 'Content-Type': '_rIddpXbz/plain; _yVbSoUyS=utf-8' },
        });
    } catch (_TscaIMJa) {
        console.error("API /_SGAKYnsJ 处理错误:", _TscaIMJa);
        return new Response(`API处理时出错: ${_TscaIMJa._tQsENZEP}`, { status: 500 });
    }
}

function _IcChPAGV(_qAoqfqtu, _QyfJQZqc, _EZYiPFxb, _HQIlIPOQ) {
    const { itemLink } = _EZYiPFxb;
    if (!itemLink || !itemLink._owqiIfIi) return null;
    const { template, _nOUIoRDP, selectionMode, _ljmXNFqy } = itemLink;
    if (!_nOUIoRDP || _nOUIoRDP._OtvtecFT === 0) return null;

    let _uNTCIwui;
    if (selectionMode === 'random') {
        _uNTCIwui = _nOUIoRDP[_QyfJQZqc % _nOUIoRDP._OtvtecFT];
    } else if (selectionMode === 'first') {
        _uNTCIwui = _nOUIoRDP[0];
    } else {
        _uNTCIwui = _nOUIoRDP.find(s => s._wXEgPWwC === selectionMode) || _nOUIoRDP[0];
    }
    if (!_uNTCIwui) return null;

    let _ulMbkrQM = template;
    const _bCslRgqk = _qAoqfqtu._DcBQImGI || 443;
    const _qWIhzAKE = _QuaBtHDL.isIPv6(_qAoqfqtu._SGAKYnsJ) ? `[${_qAoqfqtu._SGAKYnsJ}]` : _qAoqfqtu._SGAKYnsJ;
    let _wXEgPWwC = `${_QyfJQZqc + 1} 、 ${_qAoqfqtu._lpFyVTKe || '未知'}`;
    if (!_qAoqfqtu._OngLvRep || !_qAoqfqtu._OngLvRep.toLowerCase().includes('cloudflare')) {
        _wXEgPWwC += '(反代)';
    }
    let _juhpGTjh = _uNTCIwui._juhpGTjh || _HQIlIPOQ;

    _ulMbkrQM = _ulMbkrQM.replace(/{_SGAKYnsJ}/g, _qWIhzAKE)
               .replace(/{_DcBQImGI}/g, _bCslRgqk)
               .replace(/{_wXEgPWwC}/g, encodeURIComponent(_wXEgPWwC))
               .replace(/{rank}/g, _QyfJQZqc + 1)
               .replace(/{_lpFyVTKe}/g, encodeURIComponent(_qAoqfqtu._lpFyVTKe || '未知'))
               .replace(/{_OngLvRep}/g, encodeURIComponent(_qAoqfqtu._OngLvRep || '未知'))
               .replace(/{_juhpGTjh}/g, encodeURIComponent(_juhpGTjh))
               .replace(/{_VZEtSysG}/g, encodeURIComponent(_uNTCIwui['_VZEtSysG'] || ''))
               .replace(/{_LTzuohby}/g, encodeURIComponent(encodeURIComponent(_uNTCIwui._LTzuohby || '')));

    if (_ljmXNFqy) {
        _ljmXNFqy.forEach(field => {
            const _KznSQBCu = new RegExp('{' + field._wXEgPWwC + '}', 'g');
            _ulMbkrQM = _ulMbkrQM.replace(_KznSQBCu, encodeURIComponent(field._PCGWajUU));
        });
    }
    return _ulMbkrQM;
}

async function _kZkCkdNa(_DtUdMsva, _rQGxLgCx) {
    const _EZYiPFxb = await _uFXYXKqg(_rQGxLgCx);
    if (!_EZYiPFxb.itemLink._owqiIfIi) {
        return new Response("Item _ulMbkrQM feature is disabled.", { status: 503, _neCLOKdy: { 'Content-Type': '_rIddpXbz/plain; _yVbSoUyS=utf-8' } });
    }

    try {
        const _BGiglMof = _rQGxLgCx.DB.prepare("SELECT _PCGWajUU FROM kv_data WHERE _MqXeEqfN = ?").bind(_OxupAZxp);
        const { _YEagTLBQ: dbResults } = await _BGiglMof.all();
        const _hPXVpTiC = dbResults._OtvtecFT > 0 ? dbResults[0]._PCGWajUU : null;
        const _elmUhVLW = _hPXVpTiC ? JSON.parse(_hPXVpTiC) : null;
        
        if (!_elmUhVLW || !_elmUhVLW._YEagTLBQ || _elmUhVLW._YEagTLBQ._OtvtecFT === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _neCLOKdy: { 'Content-Type': '_rIddpXbz/plain; _yVbSoUyS=utf-8' },
            });
        }
        
        const _HQIlIPOQ = new URL(_DtUdMsva._WtFfkLOq)._VNxpMMXc;

        const _nnslPiBu = _elmUhVLW._YEagTLBQ.map((_qAoqfqtu, _QyfJQZqc) => {
            return _IcChPAGV(_qAoqfqtu, _QyfJQZqc, _EZYiPFxb, _HQIlIPOQ);
        }).filter(Boolean);

        if (_nnslPiBu._OtvtecFT === 0) {
            return new Response("Could not generate any _pONSZcnI links from the available IPs.", {
                status: 500,
                _neCLOKdy: { 'Content-Type': '_rIddpXbz/plain; _yVbSoUyS=utf-8' },
            });
        }

        return new Response(_nnslPiBu.join('\n'), {
            _neCLOKdy: { 'Content-Type': '_rIddpXbz/plain; _yVbSoUyS=utf-8' },
        });

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

async function _HtTukWXF(_DtUdMsva, _rQGxLgCx, _fPlnmlTf) {
    const _aqwspiUz = _DtUdMsva._neCLOKdy.get('CF-Connecting-IP') || "未知IP";
    const [
        _TcQNQYBn,
        _BdRsFCMW,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _OBsiStEc(_yCrBdEeb, _VEVRLcrM, []),
        _OBsiStEc(_ATuYeVnw, _VEVRLcrM, []),
        _OBsiStEc(_eGDhfaZb, _ZDQxwyuw, []),
        _OBsiStEc(_RMUOlkay, _VnpsDHDT, { "N/A": "未知" })
    ]);
    _ypbDSXPk = fetchedCountryMap;
    let _dieVvGQX = false;
    let _YUrrpOrc;
    try {
        const _fSIljLHH = await _uCYhZSdt(_rQGxLgCx);
        _dieVvGQX = !!_fSIljLHH;
        _YUrrpOrc = await _uFXYXKqg(_rQGxLgCx);
    } catch (_TscaIMJa) {
        if (_TscaIMJa._tQsENZEP && _TscaIMJa._tQsENZEP.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _hVGegMfK = "CREATE TABLE IF NOT EXISTS kv_data (_MqXeEqfN TEXT PRIMARY KEY, _PCGWajUU TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_XrqwuwXJ TEXT PRIMARY KEY, _bkGfRqAc TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _rQGxLgCx.DB.exec(_hVGegMfK);
                console.log("数据表创建成功。");
                _dieVvGQX = false;
                _YUrrpOrc = _diSQXfkj();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._tQsENZEP}`, {
                    status: 500,
                    _neCLOKdy: { 'Content-Type': '_rIddpXbz/html;_yVbSoUyS=UTF-8' }
                });
            }
        } else {
             let _NxnXpzLr = _ZkzkrsuR(_TscaIMJa._tQsENZEP);
             return new Response(_NxnXpzLr, { _neCLOKdy: { 'Content-Type': '_rIddpXbz/html;_yVbSoUyS=UTF-8' } });
        }
    }
    if (_YUrrpOrc.telegram.bot_token && _YUrrpOrc.telegram.chat_id) {
        const _iUIoWTEf = _DtUdMsva.cf?._iUIoWTEf || "未知";
        const _suBqGJwG = _DtUdMsva.cf?._suBqGJwG || "";
        let _yCDyYIJc = _ypbDSXPk[_iUIoWTEf] || _iUIoWTEf;
        if (_suBqGJwG && _suBqGJwG !== "未知城市" && _suBqGJwG !== _iUIoWTEf) _yCDyYIJc = `${_yCDyYIJc} ${_ypbDSXPk[_suBqGJwG] || _suBqGJwG}`;
        const _kRmvlZSY = _dkksGVeK();
        const _LhxAMoDR = _DtUdMsva._WtFfkLOq;
        const _gGJJvQzO = `访客: ${_aqwspiUz}\n位置: ${_yCDyYIJc.trim()}\n时间: ${_kRmvlZSY}\n来自:${_LhxAMoDR}`;
        const _ulguDvxv = `https://api.telegram.org/bot${_YUrrpOrc.telegram.bot_token}/sendMessage?chat_id=${_YUrrpOrc.telegram.chat_id}&_rIddpXbz=${encodeURIComponent(_gGJJvQzO)}`;
        _fPlnmlTf.waitUntil(fetch(_ulguDvxv).catch(_TscaIMJa => console.error("Telegram通知失败:", _TscaIMJa)));
    }
    let _MktohdZg = _ArvRBHBz();
    const _IqiGmThG = {
        _EZYiPFxb: _YUrrpOrc,
        status: {
            _dieVvGQX: _dieVvGQX,
        }
    };
    _MktohdZg = _MktohdZg.replace('__PAGE_DATA_JSON__', JSON.stringify(_IqiGmThG));
    _MktohdZg = _MktohdZg.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_TcQNQYBn));
    _MktohdZg = _MktohdZg.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_BdRsFCMW));
    _MktohdZg = _MktohdZg.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _MktohdZg = _MktohdZg.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_ypbDSXPk));
    return new Response(_MktohdZg, {
        _neCLOKdy: { 'Content-Type': '_rIddpXbz/html;_yVbSoUyS=UTF-8' },
    });
}

function _tvtafKsk(_qReiabDc, status = 200, _neCLOKdy = {}) {
    return new Response(JSON.stringify(_qReiabDc), {
        status,
        _neCLOKdy: { 'Content-Type': 'application/json;_yVbSoUyS=UTF-8', ..._neCLOKdy }
    });
}

function _dkksGVeK(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 _aEqAAPhC(_SGAKYnsJ) {
    if (!_SGAKYnsJ || typeof _SGAKYnsJ !== 'string') return "无效IP";
    if(_QuaBtHDL.isIPv4(_SGAKYnsJ)){
        const _JJAUKWcX = _SGAKYnsJ.split('.');
        if (_JJAUKWcX._OtvtecFT === 4) return `${_JJAUKWcX[0]}.*.*.${_JJAUKWcX[3]}`;
    }
    if(_QuaBtHDL.isIPv6(_SGAKYnsJ)){
        const _JJAUKWcX = _SGAKYnsJ.split(':');
        if (_JJAUKWcX._OtvtecFT > 2) return `${_JJAUKWcX[0]}:...:${_JJAUKWcX[_JJAUKWcX._OtvtecFT - 1]}`;
    }
    return _SGAKYnsJ;
}

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

function _ArvRBHBz() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _yVbSoUyS="UTF-8"> <meta _wXEgPWwC="viewport" _FdPcXrtE="_WjyEpjZd=device-_WjyEpjZd, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_ulMbkrQM 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>
  <_AexwCJYV>
  :root { --primary-_LisCSNVt: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_LisCSNVt: #8c939d; --light-bg: #1A1C20; --_FdPcXrtE-bg: #25282E; --border-_LisCSNVt: #40444C; --_rIddpXbz-_LisCSNVt: #E0E0E0; --_rIddpXbz-light: #B0B0B0; --success-_LisCSNVt: #30A46C; --danger-_LisCSNVt: #DA3633; --warning-_LisCSNVt: #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; }
  _qReiabDc { font-family: var(--font-family-sans); background-_LisCSNVt: var(--light-bg); _LisCSNVt: var(--_rIddpXbz-_LisCSNVt); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_LisCSNVt 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_OikeydVu { position: fixed; _uFWIIVxZ: 0; _pAWiKvmx: 0; _WjyEpjZd: 100%; height: 100%; z-_QyfJQZqc: -1; display: none; }
  ._asyQvdjk-_QjStwAPV { max-_WjyEpjZd: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_QyfJQZqc: 1; }
  #_hkKOhQJD { position: fixed; _uFWIIVxZ: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_QyfJQZqc: 10; }
  #marquee-_QjStwAPV { overflow: hidden; white-space: nowrap; background-_LisCSNVt: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _LisCSNVt: var(--primary-_LisCSNVt); padding: 0.5rem 0; margin-_uFWIIVxZ: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_rIddpXbz { display: inline-block; padding-_pAWiKvmx: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _kWsXIwaz { _rIddpXbz-align: center; margin-_uFWIIVxZ: 1rem; margin-bottom: 2rem; }
  _kWsXIwaz h1 { white-space: pre-wrap; font-size: 2.25em; _LisCSNVt: var(--primary-_LisCSNVt); font-weight: 700; _rIddpXbz-shadow: 0 0 10px rgba(var(--primary-_LisCSNVt-rgb), 0.3); }
  .card { background-_LisCSNVt: 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-_LisCSNVt); }
  .progress-section #_yoNvruaU { _WjyEpjZd: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_LisCSNVt: var(--border-_LisCSNVt); overflow: hidden; }
  .progress-section #_yoNvruaU::-webkit-progress-_PCGWajUU { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _rIddpXbz-align: center; margin-_uFWIIVxZ: 0.75em; font-size: 0.95em; _LisCSNVt: var(--_rIddpXbz-light); min-height: 1.5em; }
  .section-_kWsXIwaz { display: flex; flex-wrap: wrap; justify-_FdPcXrtE: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_LisCSNVt); gap: 1rem; }
  .section-_kWsXIwaz h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _LisCSNVt: var(--secondary-_LisCSNVt); _rIddpXbz-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _WjyEpjZd: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _WjyEpjZd: 100%; border-collapse: collapse; margin-_uFWIIVxZ: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_LisCSNVt); padding: 0.8em; _rIddpXbz-align: _pAWiKvmx; vertical-align: middle; white-space: nowrap; }
  th { background-_LisCSNVt: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_LisCSNVt: #30333a; }
  td._SGAKYnsJ-_kycDwlNg { font-weight: 500; font-family: var(--font-family-mono); _LisCSNVt: var(--primary-_LisCSNVt); }
  td.ping-_PCGWajUU { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _rIddpXbz-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_FdPcXrtE: center; font-weight: 500; _rIddpXbz-align: center; cursor: pointer; user-_WzqJfXBy: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _LisCSNVt: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_pAWiKvmx: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _LisCSNVt: var(--primary-_LisCSNVt); border: 1px solid var(--primary-_LisCSNVt); }
  .btn-outline:hover { background-_LisCSNVt: var(--primary-_LisCSNVt); _LisCSNVt: var(--_FdPcXrtE-bg); }
  ._asyQvdjk-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._asyQvdjk-download-buttons .btn { _WjyEpjZd: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _uFWIIVxZ: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _LisCSNVt: #fff; font-size: 0.95em; z-_QyfJQZqc: 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); }
  #_BSICXixb, #_CaobEgVV, #_jGKHBxbd, #_HOsbGfAb, #_PrYFlBJy { display: none; position: fixed; z-_QyfJQZqc: 10000; _pAWiKvmx: 0; _uFWIIVxZ: 0; _WjyEpjZd: 100%; height: 100%; background-_LisCSNVt: rgba(0,0,0,0.6); justify-_FdPcXrtE: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_FdPcXrtE, ._asyQvdjk-modal-_FdPcXrtE { background-_LisCSNVt: var(--_FdPcXrtE-bg); padding: 2rem; border: 1px solid var(--border-_LisCSNVt); border-radius: var(--border-radius-md); _WjyEpjZd: 95%; max-_WjyEpjZd: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_HOsbGfAb .modal-_FdPcXrtE { max-_WjyEpjZd: 500px; }
  .modal-_FdPcXrtE h3, ._asyQvdjk-modal-_kWsXIwaz h3 { margin-_uFWIIVxZ: 0; margin-bottom: 1.5rem; _LisCSNVt: var(--primary-_LisCSNVt); _rIddpXbz-align: center; }
  .modal-buttons { display: flex; justify-_FdPcXrtE: flex-end; gap: 1rem; margin-_uFWIIVxZ: 2rem; border-_uFWIIVxZ: 1px solid var(--border-_LisCSNVt); padding-_uFWIIVxZ: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_LisCSNVt), rgba(0,0,0,0)); margin: 2rem 0; }
  ._asyQvdjk-modal-_kWsXIwaz { display: flex; justify-_FdPcXrtE: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_LisCSNVt); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _LisCSNVt: var(--_rIddpXbz-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._asyQvdjk-list-_pONSZcnI { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_LisCSNVt); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._asyQvdjk-_wXEgPWwC { font-size: 1.1em; font-weight: 600; }
  ._asyQvdjk-links a { display: block; _LisCSNVt: var(--primary-_LisCSNVt); _rIddpXbz-decoration: none; margin-_uFWIIVxZ: 0.5rem; word-break: break-all; }
  ._asyQvdjk-links a:hover { _rIddpXbz-decoration: underline; }
  ._asyQvdjk-links span { _LisCSNVt: var(--_rIddpXbz-light); }
  #visitorPasswordPrompt { _rIddpXbz-align: center; }
  #visitorPasswordPrompt h3 { _LisCSNVt: var(--primary-_LisCSNVt); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _LisCSNVt: var(--_rIddpXbz-light); margin-bottom: 1.5rem; }
  ._fSIljLHH-input-group { display: flex; gap: 10px; max-_WjyEpjZd: 400px; margin: 0 auto; }
  ._fSIljLHH-input-group input { flex-grow: 1; _rIddpXbz-align: center; }
  ._fSIljLHH-input-group .btn { margin-_pAWiKvmx: 0; }
  ._YEagTLBQ-actions-_QjStwAPV { _rIddpXbz-align: center; margin-bottom: 1.5rem; }
  ._YEagTLBQ-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._YEagTLBQ-api-buttons .btn { margin: 0; _WjyEpjZd: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_FdPcXrtE 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 _WzqJfXBy, .form-grid-control textarea { _WjyEpjZd: 100%; background-_LisCSNVt: var(--light-bg); border: 1px solid var(--border-_LisCSNVt); border-radius: var(--border-radius-sm); _LisCSNVt: var(--_rIddpXbz-_LisCSNVt); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_LisCSNVt 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _WzqJfXBy:focus, .form-grid-control textarea:focus { border-_LisCSNVt: var(--primary-_LisCSNVt); box-shadow: 0 0 0 2px rgba(var(--primary-_LisCSNVt-rgb), 0.2); outline: none; }
  .form-grid-control input[_cBwqeSpE="_LisCSNVt"] { min-_WjyEpjZd: auto; padding: 2px; _WjyEpjZd: 2.5em; height: 2.5em; }
  .form-grid-control input[_cBwqeSpE="checkbox"] { _WjyEpjZd: auto; flex-shrink: 0; height: 1.2em; _WjyEpjZd: 1.2em; }
  .form-grid-control ._XbZQAzTE-input { _WjyEpjZd: 80px; _rIddpXbz-align: right; }
  .tooltip-_ZJXmgvCF { display: inline-flex; _WjyEpjZd: 16px; height: 16px; align-items: center; justify-_FdPcXrtE: center; background-_LisCSNVt: var(--secondary-_LisCSNVt); _LisCSNVt: var(--_FdPcXrtE-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_WzqJfXBy: none; }
  #tooltip-popup { position: fixed; background-_LisCSNVt: #383c4a; _LisCSNVt: #fff; padding: 10px 15px; border-radius: 6px; z-_QyfJQZqc: 10001; font-size: 0.85em; max-_WjyEpjZd: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_LisCSNVt); pointer-events: none; }
  #custom-fields-_QjStwAPV .form-grid-control { gap: 5px; } #custom-fields-_QjStwAPV .form-grid-control input { flex: 1; }
  .parameter-_aNXrQOrv-_TJeWQbHa { border: 1px solid var(--border-_LisCSNVt); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_aNXrQOrv-_kWsXIwaz { display: flex; justify-_FdPcXrtE: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_aNXrQOrv-_kWsXIwaz input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_uFWIIVxZ: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._rIddpXbz-_LisCSNVt-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _WjyEpjZd: 100%; }
  ._rIddpXbz-_LisCSNVt-grid input[_cBwqeSpE="_LisCSNVt"] { grid-column: 1 / 2; }
  ._rIddpXbz-_LisCSNVt-grid input[_cBwqeSpE="_rIddpXbz"], ._rIddpXbz-_LisCSNVt-grid textarea { grid-column: 2 / 3; }
  #_HOsbGfAb .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_HOsbGfAb .btn-group { display: flex; }
  #_HOsbGfAb .sub-btn { flex-grow: 1; margin: 0; }
  #_HOsbGfAb ._spmuiMlo-btn { flex-shrink: 0; margin-_pAWiKvmx: -1px; border-_uFWIIVxZ-_pAWiKvmx-radius: 0; border-bottom-_pAWiKvmx-radius: 0; }
  #_PrYFlBJy .modal-_FdPcXrtE { max-_WjyEpjZd: 300px; background: white; padding: 1rem; _rIddpXbz-align: center; }
  #qrCodeImg { max-_WjyEpjZd: 100%; }
  @media (max-_WjyEpjZd: 768px) {
    html { font-size: 15px; } ._asyQvdjk-_QjStwAPV { padding: 0 0.8rem; } _kWsXIwaz { margin-_uFWIIVxZ: 2.5rem; margin-bottom: 1.5rem; } #_hkKOhQJD { _uFWIIVxZ: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_AexwCJYV>
  <_AexwCJYV _XrqwuwXJ="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_FdPcXrtE-bg: #FFFFFF; --border-_LisCSNVt: #DCDFE6; --_rIddpXbz-_LisCSNVt: #303133; --_rIddpXbz-light: #606266; }
  .theme-light .card { background-_LisCSNVt: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_LisCSNVt: #F5F7FA; }
  .theme-light tbody tr:hover { background-_LisCSNVt: #ECF5FF; }
  .theme-matrix { --primary-_LisCSNVt: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_FdPcXrtE-bg: #0D0208; --border-_LisCSNVt: #00FF41; --_rIddpXbz-_LisCSNVt: #00FF41; --_rIddpXbz-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_LisCSNVt: rgba(0, 20, 0, 0.7); _rIddpXbz-shadow: 0 0 5px var(--primary-_LisCSNVt); backdrop-filter: none; }
  .theme-matrix th { background-_LisCSNVt: #000; }
  .theme-matrix tbody tr:hover { background-_LisCSNVt: #010; }
  .theme-matrix .btn { _rIddpXbz-shadow: none; _LisCSNVt: #000; }
  .theme-matrix .btn-outline { background-_LisCSNVt: transparent; }
  .theme-modern-glass { --primary-_LisCSNVt: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_FdPcXrtE-bg: rgba(30, 30, 40, 0.6); --border-_LisCSNVt: rgba(255, 255, 255, 0.2); --_rIddpXbz-_LisCSNVt: #F0F0F0; --_rIddpXbz-light: #A0A0B0; --border-radius-md: 12px; }
  _qReiabDc.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-_LisCSNVt: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_FdPcXrtE-bg: rgba(30, 30, 40, 0.6); --border-_LisCSNVt: rgba(255, 255, 255, 0.2); --_rIddpXbz-_LisCSNVt: #F0F0F0; --_rIddpXbz-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_LisCSNVt: var(--_FdPcXrtE-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_LisCSNVt); }
  .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-_LisCSNVt: rgba(0,0,0,0.3); border-right-_LisCSNVt: 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); _rIddpXbz-shadow: 0 1px 2px rgba(0,0,0,0.2); _LisCSNVt: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_LisCSNVt: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _rIddpXbz-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_LisCSNVt); border-_LisCSNVt: var(--primary-_LisCSNVt); _LisCSNVt: #fff; }
  .glassy-components _kWsXIwaz h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _rIddpXbz; -webkit-_rIddpXbz-fill-_LisCSNVt: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _LisCSNVt: transparent; }
  .theme-aurora-glass { --primary-_LisCSNVt: #38bdf8; --light-bg: #0c0a09; --_FdPcXrtE-bg: rgba(23, 23, 23, 0.5); --border-_LisCSNVt: rgba(255, 255, 255, 0.15); --_rIddpXbz-_LisCSNVt: #f2f2f2; --_rIddpXbz-light: #a3a3a3; }
  _qReiabDc.theme-aurora-glass::before { _FdPcXrtE: ''; position: fixed; _uFWIIVxZ: 0; _pAWiKvmx: 0; _WjyEpjZd: 100%; height: 100%; z-_QyfJQZqc: -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-_LisCSNVt: #08fdd8; --light-bg: #010409; --_FdPcXrtE-bg: rgba(22, 27, 34, 0.6); --border-_LisCSNVt: rgba(139, 148, 158, 0.3); --_rIddpXbz-_LisCSNVt: #e6edf3; --_rIddpXbz-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_LisCSNVt), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_LisCSNVt-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_LisCSNVt-rgb), 0.5); }
  .theme-marble-light { --primary-_LisCSNVt: #bfa37c; --light-bg: #f7f5f2; --_FdPcXrtE-bg: #ffffff; --border-_LisCSNVt: #e0dcd5; --_rIddpXbz-_LisCSNVt: #3d3a36; --_rIddpXbz-light: #6b6661; }
  _qReiabDc.theme-marble-light { background-image: _WtFfkLOq('_bkGfRqAc:image/svg+xml,%3Csvg _WjyEpjZd="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-_LisCSNVt: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_AexwCJYV>
  </head><_qReiabDc _XrqwuwXJ="pageBody">
  <_OikeydVu _XrqwuwXJ="background-_OikeydVu"></_OikeydVu>
  <div _XrqwuwXJ="_BSICXixb">
      <div class="modal-_FdPcXrtE">
          <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 _cBwqeSpE="_fSIljLHH" _XrqwuwXJ="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _cBwqeSpE="_fSIljLHH" _XrqwuwXJ="confirmPassword"></div></div>
          <div class="modal-buttons"><button _XrqwuwXJ="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_asyQvdjk-_QjStwAPV">
    <button _XrqwuwXJ="_hkKOhQJD" class="btn btn-outline"></button>
    <div _XrqwuwXJ="marquee-_QjStwAPV"><div _XrqwuwXJ="marquee-_rIddpXbz"></div></div>
    <_kWsXIwaz><h1 _XrqwuwXJ="pageTitle"></h1></_kWsXIwaz>
    <div class="card" _XrqwuwXJ="visitorPasswordPrompt" _AexwCJYV="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_fSIljLHH-input-group">
            <input _cBwqeSpE="_fSIljLHH" _XrqwuwXJ="visitorPasswordEntry" _KznSQBCu="访客密码">
            <button _XrqwuwXJ="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _XrqwuwXJ="_MUdwmiCk" _AexwCJYV="display: block;">
        <div class="card progress-section">
            <div _XrqwuwXJ="progressDisplay">
                <progress _XrqwuwXJ="_yoNvruaU" _PCGWajUU="0" max="100"></progress>
                <div _XrqwuwXJ="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _asyQvdjk-download-section">
          <div class="section-_kWsXIwaz"><h2 _XrqwuwXJ="appDownloadTitleEl"></h2></div>
          <div class="_asyQvdjk-download-buttons">
            <button class="btn" _bkGfRqAc-_CweLKzsq="android">安卓客户端</button>
            <button class="btn" _bkGfRqAc-_CweLKzsq="ios">苹果客户端</button>
            <button class="btn" _bkGfRqAc-_CweLKzsq="windows">Windows客户端</button>
            <button class="btn" _bkGfRqAc-_CweLKzsq="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _YEagTLBQ-section" _XrqwuwXJ="_ervrGuOr" _AexwCJYV="display:none;">
          <div class="section-_kWsXIwaz">
            <h2 _XrqwuwXJ="liveTitleEl"></h2>
            <div class="generator-info" _XrqwuwXJ="liveGeneratorInfo"></div>
          </div>
          <div _XrqwuwXJ="_GTLcvGLT" class="_YEagTLBQ-actions-_QjStwAPV" _AexwCJYV="display: none;">
             <div class="_YEagTLBQ-api-buttons">
                <button _XrqwuwXJ="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _XrqwuwXJ="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _XrqwuwXJ="resultsTable">
              <thead><tr><th _XrqwuwXJ="tableHeader1El"></th><th _XrqwuwXJ="tableHeader2El"></th><th _XrqwuwXJ="tableHeader3El"></th><th _XrqwuwXJ="tableHeader4El"></th><th _XrqwuwXJ="tableHeader5El"></th><th _XrqwuwXJ="tableHeader6El"></th><th _XrqwuwXJ="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _XrqwuwXJ="_TudvoPPI" _AexwCJYV="display:none;">
          <div class="section-_kWsXIwaz"><h2 _XrqwuwXJ="cachedTitleEl"></h2><div class="generator-info" _XrqwuwXJ="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _XrqwuwXJ="cachedResultsTable">
              <thead><tr><th _XrqwuwXJ="cachedTableHeader1El"></th><th _XrqwuwXJ="cachedTableHeader2El"></th><th _XrqwuwXJ="cachedTableHeader3El"></th><th _XrqwuwXJ="cachedTableHeader4El"></th><th _XrqwuwXJ="cachedTableHeader5El"></th><th _XrqwuwXJ="cachedTableHeader6El"></th><th _XrqwuwXJ="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _XrqwuwXJ="notificationTooltip" class="tooltip-notification"></div>
  <div _XrqwuwXJ="_CaobEgVV">
    <div class="modal-_FdPcXrtE">
      <h3>修改参数</h3>
      <div _AexwCJYV="display: flex; border-bottom: 1px solid var(--border-_LisCSNVt); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_gYLmpTlS(event, 'general-_PmGDeuEZ')">通用设置</button>
          <button class="tab-button" onclick="_gYLmpTlS(event, '_ulMbkrQM-_PmGDeuEZ')">链接设置</button>
          <button class="tab-button" onclick="_gYLmpTlS(event, 'fine-grained-_PmGDeuEZ')">IP源设置</button>
          <button class="tab-button" onclick="_gYLmpTlS(event, 'advanced-_PmGDeuEZ')">高级设置</button>
      </div>
      <div _XrqwuwXJ="general-_PmGDeuEZ" class="tab-_FdPcXrtE" _AexwCJYV="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_WzqJfXBy _XrqwuwXJ="themeSelect">
                    <_zKIXbfiF _PCGWajUU="theme-aurora-glass">极光-玻璃质感</_zKIXbfiF>
                    <_zKIXbfiF _PCGWajUU="theme-particles-glass">粒子-玻璃质感</_zKIXbfiF>
                    <_zKIXbfiF _PCGWajUU="theme-modern-glass">现代-玻璃质感</_zKIXbfiF>
                    <_zKIXbfiF _PCGWajUU="theme-cyberpunk-glass">赛博朋克-玻璃质感</_zKIXbfiF>
                    <_zKIXbfiF _PCGWajUU="theme-dark-particles">暗色-粒子背景</_zKIXbfiF>
                    <_zKIXbfiF _PCGWajUU="theme-dark-bing">暗色-必应壁纸</_zKIXbfiF>
                    <_zKIXbfiF _PCGWajUU="theme-light">亮色-简约</_zKIXbfiF>
                    <_zKIXbfiF _PCGWajUU="theme-light-bing">亮色-必应壁纸</_zKIXbfiF>
                    <_zKIXbfiF _PCGWajUU="theme-marble-light">简约大理石-亮色</_zKIXbfiF>
                    <_zKIXbfiF _PCGWajUU="theme-matrix">矩阵-代码雨</_zKIXbfiF>
                </_WzqJfXBy>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _cBwqeSpE="_LisCSNVt" _XrqwuwXJ="primaryColorInput">
                <span _AexwCJYV="_WjyEpjZd: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _cBwqeSpE="_LisCSNVt" _XrqwuwXJ="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _AexwCJYV="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _AexwCJYV="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_rIddpXbz-_LisCSNVt-grid"><input _cBwqeSpE="_LisCSNVt" _XrqwuwXJ="colorInput_title"><textarea _XrqwuwXJ="textInput_title" _fedTTYkr="1" _KznSQBCu="页面主标题"></textarea></div>
                <div class="_rIddpXbz-_LisCSNVt-grid"><input _cBwqeSpE="_LisCSNVt" _XrqwuwXJ="colorInput_loginButton"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="textInput_loginButton" _KznSQBCu="登录按钮文本"></div>
                <div class="_rIddpXbz-_LisCSNVt-grid"><input _cBwqeSpE="_LisCSNVt" _XrqwuwXJ="colorInput_appDownloadTitle"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="textInput_appDownloadTitle" _KznSQBCu="APP下载标题"></div>
                <div class="_rIddpXbz-_LisCSNVt-grid"><input _cBwqeSpE="_LisCSNVt" _XrqwuwXJ="colorInput_liveTitle"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="textInput_liveTitle" _KznSQBCu="本次结果标题"></div>
                <div class="_rIddpXbz-_LisCSNVt-grid"><input _cBwqeSpE="_LisCSNVt" _XrqwuwXJ="colorInput_cachedTitle"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="textInput_cachedTitle" _KznSQBCu="上次结果标题"></div>
                <div class="_rIddpXbz-_LisCSNVt-grid"><input _cBwqeSpE="_LisCSNVt" _XrqwuwXJ="colorInput_tableHeader"><input _cBwqeSpE="_rIddpXbz" _PCGWajUU="表格头部文本颜色" readonly _AexwCJYV="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _AexwCJYV="align-self: start;"><label>公告栏设置</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _AexwCJYV="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _XrqwuwXJ="announcementText" _KznSQBCu="在此输入公告内容" _fedTTYkr="3"></textarea>
                 <div _AexwCJYV="display: flex; justify-_FdPcXrtE: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _AexwCJYV="display: flex; align-items: center; gap: 5px;"><input _cBwqeSpE="checkbox" _XrqwuwXJ="enableMarquee"> 顶部走马灯</label>
                    <label _AexwCJYV="display: flex; align-items: center; gap: 5px;"><input _cBwqeSpE="checkbox" _XrqwuwXJ="enablePopup"> 右上角弹窗</label>
                    <div _XrqwuwXJ="popupDurationContainer" _AexwCJYV="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _cBwqeSpE="number" _XrqwuwXJ="popupDuration" _AexwCJYV="_WjyEpjZd: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _XrqwuwXJ="_ulMbkrQM-_PmGDeuEZ" class="tab-_FdPcXrtE">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="converterServiceUrlInput" _KznSQBCu="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _cBwqeSpE="number" _XrqwuwXJ="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _AexwCJYV="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _XrqwuwXJ="subscriptionIdCharset" _fedTTYkr="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-_ZJXmgvCF" _bkGfRqAc-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _AexwCJYV="justify-_FdPcXrtE: flex-start;"><input _cBwqeSpE="checkbox" _XrqwuwXJ="enableItemLinkCheckbox"></div>
        </div>
        <div _XrqwuwXJ="itemLinkConfigGroup" _AexwCJYV="display:none; margin-_uFWIIVxZ: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _AexwCJYV="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="定义分享链接格式。可用占位符: {_SGAKYnsJ}, {_DcBQImGI}, {_wXEgPWwC}, {rank}, {_lpFyVTKe}, {_OngLvRep}, {_juhpGTjh}, {_VZEtSysG}, {_LTzuohby}。">?</span></div>
              <div class="form-grid-control"><textarea _XrqwuwXJ="itemLinkTemplateInput" _fedTTYkr="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_WzqJfXBy _XrqwuwXJ="parameterSelectionMode"></_WzqJfXBy></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _XrqwuwXJ="parameter-sets-_QjStwAPV"></div><button _cBwqeSpE="button" _XrqwuwXJ="add-parameter-_aNXrQOrv-btn" class="btn btn-outline" _AexwCJYV="margin-_uFWIIVxZ: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _AexwCJYV="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _XrqwuwXJ="custom-fields-_QjStwAPV" _AexwCJYV="_WjyEpjZd: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _AexwCJYV="justify-_FdPcXrtE: flex-start;"><button _cBwqeSpE="button" _XrqwuwXJ="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _XrqwuwXJ="fine-grained-_PmGDeuEZ" class="tab-_FdPcXrtE">
          <div class="form-grid-label" _AexwCJYV="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _AexwCJYV="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_FdPcXrtE: flex-start;">
              <label><input _cBwqeSpE="checkbox" _XrqwuwXJ="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _cBwqeSpE="checkbox" _XrqwuwXJ="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _XrqwuwXJ="fine-grained-sources-_QjStwAPV"></div><button _cBwqeSpE="button" _XrqwuwXJ="add-fine-grained-_OPHnoTaN-btn" class="btn btn-outline" _AexwCJYV="margin-_uFWIIVxZ: 10px;">添加地区</button></div>
      </div>
      <div _XrqwuwXJ="advanced-_PmGDeuEZ" class="tab-_FdPcXrtE">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _cBwqeSpE="checkbox" _XrqwuwXJ="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _XrqwuwXJ="resolvedDomainsGroup" _AexwCJYV="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _XrqwuwXJ="resolvedDomainsInput" _KznSQBCu="留空则使用内置默认域名" _fedTTYkr="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-_ZJXmgvCF" _bkGfRqAc-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _cBwqeSpE="checkbox" _XrqwuwXJ="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _XrqwuwXJ="customNodesGroup" _AexwCJYV="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _XrqwuwXJ="customNodesInput" _KznSQBCu="一行一个地址,支持域名、IPv4、IPv6。" _fedTTYkr="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-_ZJXmgvCF" _bkGfRqAc-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _cBwqeSpE="number" _XrqwuwXJ="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _cBwqeSpE="number" _XrqwuwXJ="topNInput"></div>
            <div class="form-grid-label" _AexwCJYV="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _AexwCJYV="display: none;"><input _cBwqeSpE="number" _XrqwuwXJ="latencyRangeMinInput" _KznSQBCu="最小"><span>-</span><input _cBwqeSpE="number" _XrqwuwXJ="latencyRangeMaxInput" _KznSQBCu="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _AexwCJYV="justify-_FdPcXrtE: flex-start;"><input _cBwqeSpE="checkbox" _XrqwuwXJ="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-_ZJXmgvCF" _bkGfRqAc-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _cBwqeSpE="number" _XrqwuwXJ="geoLocationRetriesInput" _AexwCJYV="_WjyEpjZd: 80px;"> <span>次</span>
                <div _AexwCJYV="display: flex; align-items: center; gap: 5px; margin-_pAWiKvmx: 20px;">
                    <input _cBwqeSpE="checkbox" _XrqwuwXJ="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-_ZJXmgvCF" _bkGfRqAc-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_juhpGTjh:_DcBQImGI' 或 '_juhpGTjh'。">?</span></div>
            <div class="form-grid-control"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="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-_ZJXmgvCF" _bkGfRqAc-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _AexwCJYV="justify-_FdPcXrtE: flex-start;"><input _cBwqeSpE="checkbox" _XrqwuwXJ="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _XrqwuwXJ="websocketStreamerGroup" _AexwCJYV="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="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-_ZJXmgvCF" _bkGfRqAc-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _AexwCJYV="justify-_FdPcXrtE: flex-start;"><input _cBwqeSpE="checkbox" _XrqwuwXJ="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="启用 /_SGAKYnsJ 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _AexwCJYV="justify-_FdPcXrtE: flex-start;"><input _cBwqeSpE="checkbox" _XrqwuwXJ="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _XrqwuwXJ="apiConfigGroup" _AexwCJYV="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="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-_ZJXmgvCF" _bkGfRqAc-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _AexwCJYV="justify-_FdPcXrtE: flex-start;"><input _cBwqeSpE="checkbox" _XrqwuwXJ="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _XrqwuwXJ="customSubPathGroup" _AexwCJYV="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="customSubPathInput" _KznSQBCu="例如: 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-_ZJXmgvCF" _bkGfRqAc-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _AexwCJYV="justify-_FdPcXrtE: flex-start;"><input _cBwqeSpE="checkbox" _XrqwuwXJ="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _XrqwuwXJ="visitorPasswordGroup" _AexwCJYV="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _AexwCJYV="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_ZJXmgvCF" _bkGfRqAc-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _AexwCJYV="flex-direction: column; align-items: stretch; gap: 8px;"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="botTokenInput" _KznSQBCu="Telegram Bot Token"><input _cBwqeSpE="_rIddpXbz" _XrqwuwXJ="chatIdInput" _KznSQBCu="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _AexwCJYV="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _AexwCJYV="flex-direction: column; align-items: stretch; gap: 8px;"><input _cBwqeSpE="_fSIljLHH" _XrqwuwXJ="oldPasswordInput" _KznSQBCu="旧密码"><input _cBwqeSpE="_fSIljLHH" _XrqwuwXJ="newPasswordInput" _KznSQBCu="新密码 (至少6位)"><button _XrqwuwXJ="changePasswordBtn" class="btn" _AexwCJYV="align-self: flex-start; margin-_pAWiKvmx: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _XrqwuwXJ="closeModalBtn" class="btn btn-outline">关闭</button><button _XrqwuwXJ="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _XrqwuwXJ="_jGKHBxbd">
      <div class="_asyQvdjk-modal-_FdPcXrtE">
          <div class="_asyQvdjk-modal-_kWsXIwaz"><h3 _XrqwuwXJ="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_asyQvdjk-modal-_qReiabDc" _XrqwuwXJ="appModalBody"></div>
      </div>
  </div>
  <div _XrqwuwXJ="_HOsbGfAb">
      <div class="modal-_FdPcXrtE">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _bkGfRqAc-sub-_cBwqeSpE="coreEngine">Xray</button><button class="btn _spmuiMlo-btn" _bkGfRqAc-sub-_cBwqeSpE="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _bkGfRqAc-sub-_cBwqeSpE="coreProfile">Sing-Box</button><button class="btn _spmuiMlo-btn" _bkGfRqAc-sub-_cBwqeSpE="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _bkGfRqAc-sub-_cBwqeSpE="configProfile">Clash</button><button class="btn _spmuiMlo-btn" _bkGfRqAc-sub-_cBwqeSpE="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _bkGfRqAc-sub-_cBwqeSpE="policyProfile">Surge</button><button class="btn _spmuiMlo-btn" _bkGfRqAc-sub-_cBwqeSpE="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _AexwCJYV="justify-_FdPcXrtE: center;"><button class="btn btn-outline" _XrqwuwXJ="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _XrqwuwXJ="_PrYFlBJy">
      <div class="modal-_FdPcXrtE">
          <img _XrqwuwXJ="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _QuaBtHDL = {
        isValid: (_SGAKYnsJ) => _QuaBtHDL.isIPv4(_SGAKYnsJ) || _QuaBtHDL.isIPv6(_SGAKYnsJ),
        isIPv4: (_SGAKYnsJ) => {
            if (typeof _SGAKYnsJ !== 'string') return false;
            const _JJAUKWcX = _SGAKYnsJ.split('.');
            if (_JJAUKWcX._OtvtecFT !== 4) return false;
            return _JJAUKWcX.every(_UUbSXEXm => {
                const _RhrhQXTj = parseInt(_UUbSXEXm, 10);
                return !isNaN(_RhrhQXTj) && _RhrhQXTj >= 0 && _RhrhQXTj <= 255 && String(_RhrhQXTj) === _UUbSXEXm;
            });
        },
        isIPv6: (_SGAKYnsJ) => {
            if (typeof _SGAKYnsJ !== '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]))$/_cZPBrLPg.test(_SGAKYnsJ);
        },
        toLong4: (_SGAKYnsJ) => _SGAKYnsJ.split('.').reduce((acc, octet, _cZPBrLPg) => acc + (parseInt(octet) << (8*(3-_cZPBrLPg))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_SGAKYnsJ) => {
            try {
                const _fngVvyVd = _SGAKYnsJ.split('/')[0];
                const _JJAUKWcX = _fngVvyVd.split('::');
                if (_JJAUKWcX._OtvtecFT > 2) return 0n;
                let _XmTPhLLm = [];
                if (_JJAUKWcX[0]) {
                    _XmTPhLLm = _JJAUKWcX[0].split(':');
                }
                let _uhuAuZRb = [];
                if (_JJAUKWcX._OtvtecFT > 1 && _JJAUKWcX[1]) {
                    _uhuAuZRb = _JJAUKWcX[1].split(':');
                }
                if (_XmTPhLLm._OtvtecFT + _uhuAuZRb._OtvtecFT > 8) return 0n;
                const _nSdMBRcc = 8 - (_XmTPhLLm._OtvtecFT + _uhuAuZRb._OtvtecFT);
                const _PFliNyHa = [
                    ..._XmTPhLLm,
                    ...Array(_nSdMBRcc).fill('0'),
                    ..._uhuAuZRb
                ].map(_UUbSXEXm => _UUbSXEXm || '0');
                while(_PFliNyHa._OtvtecFT < 8) {
                    _PFliNyHa.push('0');
                }
                let _xXQTokds = 0n;
                for (const _UUbSXEXm of _PFliNyHa) {
                    if (_UUbSXEXm._OtvtecFT > 4) return 0n;
                    const _PCGWajUU = BigInt('0x' + _UUbSXEXm);
                    _xXQTokds = (_xXQTokds << 16n) | _PCGWajUU;
                }
                return _xXQTokds;
            } catch(_TscaIMJa) {
                return 0n;
            }
        },
        fromBigInt6: (_xXQTokds) => {
            if (typeof _xXQTokds !== '_xXQTokds' || _xXQTokds < 0n) return null;
            const _JJAUKWcX = [];
            for (let _cZPBrLPg = 0; _cZPBrLPg < 8; _cZPBrLPg++) {
                _JJAUKWcX.unshift((_xXQTokds & 0xFFFFn).toString(16));
                _xXQTokds >>= 16n;
            }
            let _rgQzqjNB = { start: -1, _YoAWifpR: 0 };
            let _JbSaejUr = { start: -1, _YoAWifpR: 0 };
            for (let _cZPBrLPg = 0; _cZPBrLPg < 8; _cZPBrLPg++) {
                if (_JJAUKWcX[_cZPBrLPg] === '0') {
                    if (_JbSaejUr.start === -1) _JbSaejUr.start = _cZPBrLPg;
                    _JbSaejUr._YoAWifpR++;
                } else {
                    if (_JbSaejUr._YoAWifpR > _rgQzqjNB._YoAWifpR) _rgQzqjNB = { ..._JbSaejUr };
                    _JbSaejUr = { start: -1, _YoAWifpR: 0 };
                }
            }
            if (_JbSaejUr._YoAWifpR > _rgQzqjNB._YoAWifpR) _rgQzqjNB = { ..._JbSaejUr };
            if (_rgQzqjNB._YoAWifpR > 1) {
                _JJAUKWcX.splice(_rgQzqjNB.start, _rgQzqjNB._YoAWifpR, '');
                if (_rgQzqjNB.start === 0) _JJAUKWcX.unshift('');
                if (_rgQzqjNB.start + _rgQzqjNB._YoAWifpR === 8) _JJAUKWcX.push('');
            }
            return _JJAUKWcX.join(':');
        },
        cidrToRange: (cidr, _dpnRBYYS = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _OLepPSgR = parseInt(bitsStr, 10);
                const _pNRnulvw = new Set();
                if (_QuaBtHDL.isIPv4(range)) {
                    if (isNaN(_OLepPSgR) || _OLepPSgR < 8 || _OLepPSgR > 32) return [];
                    if (_OLepPSgR === 32) return [range];
                    const _kCKYOBJN = _QuaBtHDL.toLong4(range);
                    const _YgbiGgdt = (0xFFFFFFFF << (32 - _OLepPSgR)) >>> 0;
                    const _AYGouvZU = _kCKYOBJN & _YgbiGgdt;
                    const _nobSRDmP = 1 << (32 - _OLepPSgR);
                    if (_nobSRDmP <= 2) return [];
                    const _xUfPhCPN = Math.min(_dpnRBYYS, _nobSRDmP - 2);
                    let _QUjOidIK = 0;
                    while (_pNRnulvw.size < _xUfPhCPN && _QUjOidIK < _xUfPhCPN * 5) {
                        const _DLmNlhRF = Math.floor(Math.random() * (_nobSRDmP - 2)) + 1;
                        _pNRnulvw.add(_QuaBtHDL.fromLong4((_AYGouvZU + _DLmNlhRF) >>> 0));
                        _QUjOidIK++;
                    }
                    return Array.from(_pNRnulvw);
                } else if (_QuaBtHDL.isIPv6(range)) {
                    if (isNaN(_OLepPSgR) || _OLepPSgR < 16 || _OLepPSgR > 128) return [];
                    if (_OLepPSgR === 128) return [range];
                    const _FjqpDONd = _QuaBtHDL.toBigInt6(range);
                    const _YgbiGgdt = (2n ** BigInt(128 - _OLepPSgR) - 1n);
                    const _AYGouvZU = _FjqpDONd & ~_YgbiGgdt;
                    const _tATPldUV = 2n ** BigInt(128 - _OLepPSgR);
                    if (_tATPldUV <= 2n) return [];
                    let _QUjOidIK = 0;
                    while (_pNRnulvw.size < _dpnRBYYS && _QUjOidIK < _dpnRBYYS * 5) {
                        const _ZTSNjDNW = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_ZTSNjDNW);
                        let _VdCcwhJv = 0n;
                        for (const _jBajaYXn of _ZTSNjDNW) {
                            _VdCcwhJv = (_VdCcwhJv << 8n) | BigInt(_jBajaYXn);
                        }
                        const _DLmNlhRF = _VdCcwhJv % (_tATPldUV - 2n) + 1n;
                        _pNRnulvw.add(_QuaBtHDL.fromBigInt6(_AYGouvZU + _DLmNlhRF));
                        _QUjOidIK++;
                    }
                    return Array.from(_pNRnulvw);
                }
                return [];
            } catch(_TscaIMJa) {
                console.error(`CIDR to range failed for ${cidr}:`, _TscaIMJa);
                return [];
            }
        }
    };
    function _RLrGQntK(_QycEnZXh, _hwEsPsst) {
        const _EVpxajEC = {};
        const _EoXHdvAx = Object._EoXHdvAx(_hwEsPsst);
        const _JJAUKWcX = _EoXHdvAx.map(_MqXeEqfN => {
            const _hNawIjJY = _QycEnZXh * (_hwEsPsst[_MqXeEqfN] / 100);
            return { _MqXeEqfN, _dpnRBYYS: Math.floor(_hNawIjJY), remainder: _hNawIjJY - Math.floor(_hNawIjJY) };
        });
        let _HFGhJXBW = _JJAUKWcX.reduce((acc, _UUbSXEXm) => acc + _UUbSXEXm._dpnRBYYS, 0);
        _JJAUKWcX.sort((a, b) => b.remainder - a.remainder);
        let _NwUAJJGg = _QycEnZXh - _HFGhJXBW;
        for (let _cZPBrLPg = 0; _cZPBrLPg < _NwUAJJGg; _cZPBrLPg++) {
            _JJAUKWcX[_cZPBrLPg % _JJAUKWcX._OtvtecFT]._dpnRBYYS++;
        }
        for (const _UUbSXEXm of _JJAUKWcX) {
            _EVpxajEC[_UUbSXEXm._MqXeEqfN] = _UUbSXEXm._dpnRBYYS;
        }
        return _EVpxajEC;
    }
    const _IqiGmThG = __PAGE_DATA_JSON__;
    const _YUrrpOrc = _IqiGmThG._EZYiPFxb;
    const _sDfrGUEU = _IqiGmThG.status;
    const _TcQNQYBn = __ALL_CF_CIDR_LIST_JSON__;
    const _BdRsFCMW = __BALANCED_CF_CIDR_LIST_JSON__;
    const _Qccplaym = __DEFAULT_DOMAINS_LIST_JSON__;
    const _ypbDSXPk = __COUNTRY_MAP_JSON__;
    const _hlAjMlpX = _ypbDSXPk;
    const _AqNYOIkF = 2500;
    const _iaXKxmVw = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _MUdwmiCk = document.getElementById('_MUdwmiCk');
    const _yoNvruaU = document.getElementById('_yoNvruaU');
    const _RGaQqVLr = document.getElementById('status');
    const _ervrGuOr = document.getElementById('_ervrGuOr');
    const _LuPJSeDW = document.getElementById('resultsTable').querySelector('tbody');
    const _TudvoPPI = document.getElementById('_TudvoPPI');
    const _kijqfzDN = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _eVaFVVSy = document.getElementById('notificationTooltip');
    const _hkKOhQJD = document.getElementById('_hkKOhQJD');
    const _CaobEgVV = document.getElementById('_CaobEgVV');
    const _jGKHBxbd = document.getElementById('_jGKHBxbd');
    const _HOsbGfAb = document.getElementById('_HOsbGfAb');
    const _PrYFlBJy = document.getElementById('_PrYFlBJy');
    const _BSICXixb = document.getElementById('_BSICXixb');
    const _GTLcvGLT = document.getElementById('_GTLcvGLT');
    let _xxgHnPpD = null;
    let _SOhdMmGO = null;
    let _nKehJOhs = [];
    let _xmGDCyEm = false;
    let _LEhdHLOO = null;
    function _eHIRXxun(_RdihCEjS, _LfsFxjPu) {
        const _GIfJcivR=parseInt(_RdihCEjS.slice(1),16),t=_LfsFxjPu<0?0:255,p=_LfsFxjPu<0?_LfsFxjPu*-1:_LfsFxjPu,R=_GIfJcivR>>16,G=_GIfJcivR>>8&0x00FF,B=_GIfJcivR&0x0000FF;
        const _baOdUIKW = Math.round((t-R)*p)+R;
        const _jzrSlnyg = Math.round((t-G)*p)+G;
        const _dLaUNCIg = Math.round((t-B)*p)+B;
        return `rgb(${_baOdUIKW.toString()}, ${_jzrSlnyg.toString()}, ${_dLaUNCIg.toString()})`;
    }
    function _fitmPWmv(_PmGDeuEZ) {
        const _NcZwKgKt = _VXYBZskn(_PmGDeuEZ.primaryColor);
        if(_NcZwKgKt) {
            document.documentElement._AexwCJYV.setProperty('--primary-_LisCSNVt-rgb', `${_NcZwKgKt.r},${_NcZwKgKt.g},${_NcZwKgKt.b}`);
        }
        document.documentElement._AexwCJYV.setProperty('--primary-_LisCSNVt', _PmGDeuEZ.primaryColor);
        document.documentElement._AexwCJYV.setProperty('--primary-hover', _eHIRXxun(_PmGDeuEZ.primaryColor, -0.1));
        document.documentElement._AexwCJYV.setProperty('--primary-gradient-start', _eHIRXxun(_PmGDeuEZ.primaryColor, 0.1));
        document.documentElement._AexwCJYV.setProperty('--primary-gradient-end', _eHIRXxun(_PmGDeuEZ.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _PmGDeuEZ.texts.title;
        document.title = _PmGDeuEZ.texts.title;
        _hkKOhQJD.innerText = _xxgHnPpD ? _PmGDeuEZ.texts.loginButtonSuccess : _PmGDeuEZ.texts.loginButton;
        _hkKOhQJD._AexwCJYV._LisCSNVt = _PmGDeuEZ.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _PmGDeuEZ.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _PmGDeuEZ.texts.liveTitle;
        document.getElementById('liveTitleEl')._AexwCJYV._LisCSNVt = _PmGDeuEZ.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _PmGDeuEZ.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._AexwCJYV._LisCSNVt = _PmGDeuEZ.colors.cachedTitle;
        const _neCLOKdy = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _neCLOKdy.forEach((_XrqwuwXJ, _QyfJQZqc) => {
            const _TfmEhNve = document.getElementById(_XrqwuwXJ);
            if (_TfmEhNve) _TfmEhNve.innerText = _PmGDeuEZ.texts[`tableHeader${_QyfJQZqc + 1}`] || '';
        });
        const _CtVrIUJr = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _CtVrIUJr.forEach((_XrqwuwXJ, _QyfJQZqc) => {
             const _TfmEhNve = document.getElementById(_XrqwuwXJ);
             if (_TfmEhNve) _TfmEhNve.innerText = _YUrrpOrc.texts[`tableHeader${_QyfJQZqc + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._AexwCJYV._LisCSNVt = _PmGDeuEZ.colors.tableHeader);
        document._qReiabDc.className = '';
        document._qReiabDc.classList.add(_PmGDeuEZ.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_PmGDeuEZ.theme)) {
            document._qReiabDc.classList.add('glassy-components');
        }
        document._qReiabDc._AexwCJYV.backgroundImage = '';
        _SLDeRUwX();
        if (_PmGDeuEZ.theme.includes('particles') || _PmGDeuEZ.theme.includes('glass')) {
            _vdYQwtci(_PmGDeuEZ.particleColor);
        } else if (_PmGDeuEZ.theme.includes('bing')) {
            document._qReiabDc._AexwCJYV.backgroundImage = '_WtFfkLOq(/bing-wallpaper)';
        }
    }
    function _LnoOJMrg() {
        _xxgHnPpD = null;
        if(_SOhdMmGO) clearTimeout(_SOhdMmGO);
        _fitmPWmv(_YUrrpOrc);
        _lTngJubq("登录已超时,请重新登录。", "warning");
    }
    async function _aSvscDul() {
        if (_xxgHnPpD) {
            _sxeUIOlD();
            return;
        }
        const _uqaASyGH = prompt('请输入管理员密码:');
        if (!_uqaASyGH) return;
        try {
            const _DzegcNvd = await fetch('/api/verify-_fSIljLHH', {
                method: 'POST',
                _neCLOKdy: { 'Content-Type': 'application/json' },
                _qReiabDc: JSON.stringify({ _fSIljLHH: _uqaASyGH })
            });
            const _qAoqfqtu = await _DzegcNvd.json();
            if (_qAoqfqtu.success) {
                _xxgHnPpD = _uqaASyGH;
                _lTngJubq("登录成功!有效期5分钟。", "success");
                if (_SOhdMmGO) clearTimeout(_SOhdMmGO);
                _SOhdMmGO = setTimeout(_LnoOJMrg, 5 * 60 * 1000);
                _fitmPWmv(_YUrrpOrc);
                _sxeUIOlD();
            } else {
                throw new Error(_qAoqfqtu._tQsENZEP || '密码验证失败');
            }
        } catch (_TscaIMJa) {
            _lTngJubq(`登录失败: ${_TscaIMJa._tQsENZEP}`, "error");
        }
    }
    function _rNfkhGHr() {
        if (!_sDfrGUEU._dieVvGQX) {
            _BSICXixb._AexwCJYV.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _fSIljLHH = document.getElementById('initialPassword')._PCGWajUU;
                const _FCpqdBMl = document.getElementById('confirmPassword')._PCGWajUU;
                if (_fSIljLHH !== _FCpqdBMl) {
                    _lTngJubq("两次输入的密码不一致!", "error");
                    return;
                }
                if (_fSIljLHH._OtvtecFT < 6) {
                    _lTngJubq("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _DzegcNvd = await fetch('/api/_aNXrQOrv-_fSIljLHH', {
                        method: 'POST',
                        _neCLOKdy: { 'Content-Type': 'application/json' },
                        _qReiabDc: JSON.stringify({ _fSIljLHH })
                    });
                    const _qAoqfqtu = await _DzegcNvd.json();
                    if (_qAoqfqtu.success) {
                        _lTngJubq(_qAoqfqtu._tQsENZEP, "success");
                        setTimeout(() => _lpFyVTKe.reload(), 1500);
                    } else {
                        throw new Error(_qAoqfqtu._tQsENZEP);
                    }
                } catch(_TscaIMJa) {
                    _lTngJubq(`设置密码失败: ${_TscaIMJa._tQsENZEP}`, "error");
                }
            });
            return;
        }
        _hkKOhQJD.addEventListener('click', _aSvscDul);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _CaobEgVV._AexwCJYV.display = 'none'; });
        _CaobEgVV.addEventListener('click', (_TscaIMJa) => { if (_TscaIMJa.target === _CaobEgVV) _CaobEgVV._AexwCJYV.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_QjStwAPV .fine-grained-_owqiIfIi-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-_QjStwAPV .fine-grained-_owqiIfIi-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_xxgHnPpD) {
                _lTngJubq("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _ljmXNFqy = [];
            document.querySelectorAll('#custom-fields-_QjStwAPV .custom-field-_TJeWQbHa').forEach(_TJeWQbHa => {
                const _wXEgPWwC = _TJeWQbHa.querySelector('.custom-field-_wXEgPWwC')._PCGWajUU.trim();
                const _PCGWajUU = _TJeWQbHa.querySelector('.custom-field-_PCGWajUU')._PCGWajUU.trim();
                if (_wXEgPWwC) _ljmXNFqy.push({ _wXEgPWwC, _PCGWajUU });
            });
            const _nOUIoRDP = [];
            document.querySelectorAll('#parameter-sets-_QjStwAPV .parameter-_aNXrQOrv-_TJeWQbHa').forEach(_TJeWQbHa => {
                const _wXEgPWwC = _TJeWQbHa.querySelector('.param-_aNXrQOrv-_wXEgPWwC')._PCGWajUU.trim();
                const _juhpGTjh = _TJeWQbHa.querySelector('.param-_aNXrQOrv-_juhpGTjh')._PCGWajUU.trim();
                const _VZEtSysG = _TJeWQbHa.querySelector('.param-_aNXrQOrv-_VZEtSysG')._PCGWajUU.trim();
                const _LTzuohby = _TJeWQbHa.querySelector('.param-_aNXrQOrv-_LTzuohby')._PCGWajUU.trim();
                if(_wXEgPWwC) _nOUIoRDP.push({ _wXEgPWwC, _juhpGTjh, '_VZEtSysG': _VZEtSysG, _LTzuohby });
            });
            const _mPuhnafF = [];
            document.querySelectorAll('#fine-grained-sources-_QjStwAPV .fine-grained-_OPHnoTaN-_TJeWQbHa').forEach(_TJeWQbHa => {
                const _lpFyVTKe = _TJeWQbHa.querySelector('.fine-grained-_lpFyVTKe')._PCGWajUU.trim();
                const _pNRnulvw = _TJeWQbHa.querySelector('.fine-grained-_pNRnulvw')._PCGWajUU.trim();
                const _owqiIfIi = _TJeWQbHa.querySelector('.fine-grained-_owqiIfIi-cb').checked;
                const _XbZQAzTE = parseInt(_TJeWQbHa.querySelector('.fine-grained-_XbZQAzTE')._PCGWajUU, 10) || 0;
                const _tSxAFSHJ = _TJeWQbHa.querySelector('.use-_wXEgPWwC-as-_lpFyVTKe-cb').checked;
                if (_lpFyVTKe && _pNRnulvw) {
                    _mPuhnafF.push({ _lpFyVTKe, _pNRnulvw, _owqiIfIi, _XbZQAzTE, _tSxAFSHJ });
                }
            });
            
            let _wEZciaHb = parseInt(document.getElementById('subscriptionIdLength')._PCGWajUU, 10);
            if (isNaN(_wEZciaHb) || _wEZciaHb < 2) _wEZciaHb = 2;
            if (_wEZciaHb > 128) _wEZciaHb = 128;

            const _CCvvfnOn = {
                theme: document.getElementById('themeSelect')._PCGWajUU,
                primaryColor: document.getElementById('primaryColorInput')._PCGWajUU,
                particleColor: document.getElementById('particleColorInput')._PCGWajUU,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._PCGWajUU,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._PCGWajUU, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._PCGWajUU, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._PCGWajUU, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._PCGWajUU, 10) || 0,
                _UMKWguhA: document.getElementById('converterServiceUrlInput')._PCGWajUU.trim(),
                subscriptionId: {
                    _OtvtecFT: _wEZciaHb,
                    _yVbSoUyS: document.getElementById('subscriptionIdCharset')._PCGWajUU.trim()
                },
                api: {
                    _owqiIfIi: document.getElementById('enableApiCheckbox').checked,
                    _tQsENZEP: document.getElementById('apiMessageInput')._PCGWajUU || '维护中...',
                },
                ispFilter: { 
                    _owqiIfIi: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._PCGWajUU, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _owqiIfIi: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _owqiIfIi: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _WtFfkLOq: document.getElementById('websocketStreamerUrlInput')._PCGWajUU.trim()
                },
                visitorPassword: {
                    _owqiIfIi: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _fSIljLHH: document.getElementById('visitorPasswordInput')._PCGWajUU.trim()
                },
                customSubPath: {
                    _owqiIfIi: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _LTzuohby: document.getElementById('customSubPathInput')._PCGWajUU.trim()
                },
                itemLink: {
                    _owqiIfIi: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._PCGWajUU,
                    selectionMode: document.getElementById('parameterSelectionMode')._PCGWajUU,
                    _nOUIoRDP: _nOUIoRDP,
                    _ljmXNFqy: _ljmXNFqy,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._PCGWajUU.trim(),
                },
                announcement: {
                    popup: {
                        _owqiIfIi: document.getElementById('enablePopup').checked,
                        _rIddpXbz: document.getElementById('announcementText')._PCGWajUU,
                        _gbexjwtx: parseInt(document.getElementById('popupDuration')._PCGWajUU, 10) || 5
                    },
                    marquee: {
                        _owqiIfIi: document.getElementById('enableMarquee').checked,
                        _rIddpXbz: document.getElementById('announcementText')._PCGWajUU
                    }
                },
                fineGrained: {
                    _owqiIfIi: true,
                    sources: _mPuhnafF
                },
                customNodes: {
                    _owqiIfIi: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._PCGWajUU
                },
                texts: {
                    title: document.getElementById('textInput_title')._PCGWajUU,
                    loginButton: document.getElementById('textInput_loginButton')._PCGWajUU,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._PCGWajUU,
                    liveTitle: document.getElementById('textInput_liveTitle')._PCGWajUU,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._PCGWajUU,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._PCGWajUU,
                    loginButton: document.getElementById('colorInput_loginButton')._PCGWajUU,
                    liveTitle: document.getElementById('colorInput_liveTitle')._PCGWajUU,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._PCGWajUU,
                    tableHeader: document.getElementById('colorInput_tableHeader')._PCGWajUU,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._PCGWajUU.trim(),
                    chat_id: document.getElementById('chatIdInput')._PCGWajUU.trim(),
                },
            };
            try {
                const _DzegcNvd = await fetch('/api/_EZYiPFxb', {
                    method: 'POST',
                    _neCLOKdy: { 'Content-Type': 'application/json' },
                    _qReiabDc: JSON.stringify({ _EZYiPFxb: _CCvvfnOn, adminPassword: _xxgHnPpD })
                });
                const _qAoqfqtu = await _DzegcNvd.json();
                if (_DzegcNvd.ok && _qAoqfqtu.success) {
                    _lTngJubq("配置已保存,正在刷新...", "success");
                    setTimeout(() => _lpFyVTKe.reload(), 1500);
                } else {
                    throw new Error(_qAoqfqtu._tQsENZEP || '未知错误');
                }
            } catch (_TscaIMJa) {
                _lTngJubq(`操作失败: ${_TscaIMJa._tQsENZEP}`, "error");
                if (String(_TscaIMJa._tQsENZEP).includes("密码错误")) {
                    _LnoOJMrg();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _ZkZveXRF = document.getElementById('oldPasswordInput')._PCGWajUU;
            const _pnnfhgrz = document.getElementById('newPasswordInput')._PCGWajUU;
            if (!_ZkZveXRF || !_pnnfhgrz) {
                _lTngJubq("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _DzegcNvd = await fetch('/api/change-_fSIljLHH', {
                    method: 'POST',
                    _neCLOKdy: { 'Content-Type': 'application/json' },
                    _qReiabDc: JSON.stringify({ _ZkZveXRF, _pnnfhgrz })
                });
                const _qAoqfqtu = await _DzegcNvd.json();
                if (_qAoqfqtu.success) {
                    _lTngJubq(_qAoqfqtu._tQsENZEP, "success");
                    document.getElementById('oldPasswordInput')._PCGWajUU = '';
                    document.getElementById('newPasswordInput')._PCGWajUU = '';
                    _xxgHnPpD = _pnnfhgrz;
                } else {
                    throw new Error(_qAoqfqtu._tQsENZEP);
                }
            } catch(_TscaIMJa) {
                _lTngJubq(`修改密码失败: ${_TscaIMJa._tQsENZEP}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_TscaIMJa) => {
            document.getElementById('resolvedDomainsGroup')._AexwCJYV.display = _TscaIMJa.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_TscaIMJa) => {
            document.getElementById('customNodesGroup')._AexwCJYV.display = _TscaIMJa.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_TscaIMJa) => {
            document.getElementById('apiConfigGroup')._AexwCJYV.display = _TscaIMJa.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_TscaIMJa) => {
            document.getElementById('itemLinkConfigGroup')._AexwCJYV.display = _TscaIMJa.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_TscaIMJa) => {
            document.getElementById('websocketStreamerGroup')._AexwCJYV.display = _TscaIMJa.target.checked ? 'block' : 'none';
            const _yTDiqGes = document.querySelector('#parameter-sets-_QjStwAPV .param-_aNXrQOrv-_LTzuohby');
            if (_yTDiqGes) {
                if (_TscaIMJa.target.checked) {
                    _yTDiqGes._PCGWajUU = '/snippets?_SGAKYnsJ=endpointAddress:_DcBQImGI(443)&nat64=6to4';
                } else {
                    _yTDiqGes._PCGWajUU = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _HuRUYpkf('', '');
        });
        document.getElementById('add-parameter-_aNXrQOrv-btn').addEventListener('click', () => {
            const _dpnRBYYS = document.querySelectorAll('.parameter-_aNXrQOrv-_TJeWQbHa')._OtvtecFT + 1;
            _zjaaFnKh({_wXEgPWwC: `配置${_dpnRBYYS}`, _juhpGTjh: '', _VZEtSysG: '', _LTzuohby: ''});
            _vRoqFMEz();
        });
         document.getElementById('add-fine-grained-_OPHnoTaN-btn').addEventListener('click', () => {
             _NXDqEkSD({ _lpFyVTKe: '', _pNRnulvw: '', _owqiIfIi: true, _XbZQAzTE: 50, _tSxAFSHJ: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_TscaIMJa) => {
            document.getElementById('visitorPasswordGroup')._AexwCJYV.display = _TscaIMJa.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_TscaIMJa) => {
            document.getElementById('customSubPathGroup')._AexwCJYV.display = _TscaIMJa.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_TscaIMJa) => {
            document.getElementById('popupDurationContainer')._AexwCJYV.display = _TscaIMJa.target.checked ? 'flex' : 'none';
        });
    }
    function _HuRUYpkf(_wXEgPWwC, _PCGWajUU) {
        const _QjStwAPV = document.getElementById('custom-fields-_QjStwAPV');
        const _AXltGNJL = document.createElement('div');
        _AXltGNJL.className = 'form-grid custom-field-_TJeWQbHa';
        _AXltGNJL._AexwCJYV = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _AXltGNJL.innerHTML = `
            <input _cBwqeSpE="_rIddpXbz" class="custom-field-_wXEgPWwC" _KznSQBCu="占位符名称" _PCGWajUU="${_wXEgPWwC}">
            <input _cBwqeSpE="_rIddpXbz" class="custom-field-_PCGWajUU" _KznSQBCu="值" _PCGWajUU="${_PCGWajUU}">
            <button _cBwqeSpE="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _QjStwAPV.appendChild(_AXltGNJL);
    }
    function _zjaaFnKh(_aNXrQOrv) {
        const _QjStwAPV = document.getElementById('parameter-sets-_QjStwAPV');
        const _AXltGNJL = document.createElement('div');
        _AXltGNJL.className = 'parameter-_aNXrQOrv-_TJeWQbHa';
        _AXltGNJL.innerHTML = `
            <div class="parameter-_aNXrQOrv-_kWsXIwaz">
                <input _cBwqeSpE="_rIddpXbz" class="param-_aNXrQOrv-_wXEgPWwC" _KznSQBCu="配置名称" _PCGWajUU="${_aNXrQOrv._wXEgPWwC}" oninput="_vRoqFMEz()">
                <button _cBwqeSpE="button" class="btn btn-outline" onclick="this.closest('.parameter-_aNXrQOrv-_TJeWQbHa').remove(); _vRoqFMEz();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _cBwqeSpE="_rIddpXbz" class="param-_aNXrQOrv-_juhpGTjh" _PCGWajUU="${_aNXrQOrv._juhpGTjh || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _cBwqeSpE="_rIddpXbz" class="param-_aNXrQOrv-_VZEtSysG" _PCGWajUU="${_aNXrQOrv['_VZEtSysG'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _cBwqeSpE="_rIddpXbz" class="param-_aNXrQOrv-_LTzuohby" _PCGWajUU="${_aNXrQOrv._LTzuohby || ''}"></div>
            </div>
        `;
        _QjStwAPV.appendChild(_AXltGNJL);
    }
    function _vRoqFMEz() {
        const _WzqJfXBy = document.getElementById('parameterSelectionMode');
        const _ovnwBHkr = _WzqJfXBy._PCGWajUU;
        _WzqJfXBy.innerHTML = '';
        const _lnQcUkKq = document.createElement('_zKIXbfiF');
        _lnQcUkKq._PCGWajUU = 'random';
        _lnQcUkKq.textContent = '随机轮询';
        _WzqJfXBy.appendChild(_lnQcUkKq);
        const _DGqpbvlu = document.createElement('_zKIXbfiF');
        _DGqpbvlu._PCGWajUU = 'first';
        _DGqpbvlu.textContent = '使用第一组';
        _WzqJfXBy.appendChild(_DGqpbvlu);
        document.querySelectorAll('.param-_aNXrQOrv-_wXEgPWwC').forEach(input => {
            const _wXEgPWwC = input._PCGWajUU.trim();
            if (_wXEgPWwC) {
                const _zKIXbfiF = document.createElement('_zKIXbfiF');
                _zKIXbfiF._PCGWajUU = _wXEgPWwC;
                _zKIXbfiF.textContent = `指定: ${_wXEgPWwC}`;
                _WzqJfXBy.appendChild(_zKIXbfiF);
            }
        });
        if (Array.from(_WzqJfXBy.options).some(opt => opt._PCGWajUU === _ovnwBHkr)) {
            _WzqJfXBy._PCGWajUU = _ovnwBHkr;
        } else {
            _WzqJfXBy._PCGWajUU = 'random';
        }
    }
    function _NXDqEkSD(_OPHnoTaN) {
        const _QjStwAPV = document.getElementById('fine-grained-sources-_QjStwAPV');
        const _AXltGNJL = document.createElement('div');
        _AXltGNJL.className = 'fine-grained-_OPHnoTaN-_TJeWQbHa parameter-_aNXrQOrv-_TJeWQbHa';
        _AXltGNJL._AexwCJYV.padding = '1rem';
        const _DKFsgfEl = _OPHnoTaN._tSxAFSHJ ? 'checked' : '';
        const _aSircAJW = !_OPHnoTaN._tSxAFSHJ ? 'checked' : '';
        const _OTAlqqHm = _OPHnoTaN._owqiIfIi ? 'checked' : '';
        _AXltGNJL.innerHTML = `
            <div _AexwCJYV="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _cBwqeSpE="_rIddpXbz" class="fine-grained-_lpFyVTKe" _KznSQBCu="地区名称 (如: 香港)" _PCGWajUU="${_OPHnoTaN._lpFyVTKe || ''}">
                <div _AexwCJYV="display: flex; align-items: center; gap: 5px;"><input _cBwqeSpE="checkbox" class="fine-grained-_owqiIfIi-cb" ${_OTAlqqHm}><label>启用</label></div>
                <button _cBwqeSpE="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_OPHnoTaN-_TJeWQbHa').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_pNRnulvw" _KznSQBCu="IP源 (每行一个IP、CIDR或URL)" _fedTTYkr="3" _AexwCJYV="_WjyEpjZd:100%;">${_OPHnoTaN._pNRnulvw || ''}</textarea>
            <div class="fine-grained-options" _AexwCJYV="justify-_FdPcXrtE: space-between;">
                <div _AexwCJYV="display: flex; gap: 1rem;">
                    <label><input _cBwqeSpE="checkbox" class="query-_zvNMdbMM-cb" ${_aSircAJW}>查询真实归属地</label>
                    <label><input _cBwqeSpE="checkbox" class="use-_wXEgPWwC-as-_lpFyVTKe-cb" ${_DKFsgfEl}>使用地区名称作为归属地</label>
                </div>
                <div _AexwCJYV="display: flex; align-items: center; gap: 5px;"><input _cBwqeSpE="number" class="fine-grained-_XbZQAzTE _XbZQAzTE-input" _PCGWajUU="${_OPHnoTaN._XbZQAzTE || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _KgHwoxul = _AXltGNJL.querySelector('.query-_zvNMdbMM-cb');
        const _zcLvfvbG = _AXltGNJL.querySelector('.use-_wXEgPWwC-as-_lpFyVTKe-cb');
        _KgHwoxul.addEventListener('change', () => {
            if (_KgHwoxul.checked) {
                _zcLvfvbG.checked = false;
            } else if (!_zcLvfvbG.checked) {
                _KgHwoxul.checked = true;
            }
        });
        _zcLvfvbG.addEventListener('change', () => {
            if (_zcLvfvbG.checked) {
                _KgHwoxul.checked = false;
            } else if (!_zcLvfvbG.checked) {
                _zcLvfvbG.checked = true;
            }
        });
        _QjStwAPV.appendChild(_AXltGNJL);
    }
    function _sxeUIOlD() {
        const _PmGDeuEZ = _YUrrpOrc;
        document.getElementById('themeSelect')._PCGWajUU = _PmGDeuEZ.theme;
        document.getElementById('primaryColorInput')._PCGWajUU = _PmGDeuEZ.primaryColor;
        document.getElementById('particleColorInput')._PCGWajUU = _PmGDeuEZ.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _PmGDeuEZ.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._KznSQBCu = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._PCGWajUU = _PmGDeuEZ.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._AexwCJYV.display = _PmGDeuEZ.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _PmGDeuEZ.customNodes._owqiIfIi;
        document.getElementById('customNodesInput')._PCGWajUU = _PmGDeuEZ.customNodes.list || '';
        document.getElementById('customNodesGroup')._AexwCJYV.display = _PmGDeuEZ.customNodes._owqiIfIi ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._PCGWajUU = _PmGDeuEZ._UMKWguhA || '';
        document.getElementById('subscriptionIdLength')._PCGWajUU = _PmGDeuEZ.subscriptionId._OtvtecFT;
        document.getElementById('subscriptionIdCharset')._PCGWajUU = _PmGDeuEZ.subscriptionId._yVbSoUyS;
        document.getElementById('enableItemLinkCheckbox').checked = _PmGDeuEZ.itemLink._owqiIfIi;
        document.getElementById('itemLinkConfigGroup')._AexwCJYV.display = _PmGDeuEZ.itemLink._owqiIfIi ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._PCGWajUU = _PmGDeuEZ.itemLink.template;
        const _qVgzpLaq = document.getElementById('parameter-sets-_QjStwAPV');
        _qVgzpLaq.innerHTML = '';
        if (_PmGDeuEZ.itemLink._nOUIoRDP && Array.isArray(_PmGDeuEZ.itemLink._nOUIoRDP)) {
            _PmGDeuEZ.itemLink._nOUIoRDP.forEach(_aNXrQOrv => _zjaaFnKh(_aNXrQOrv));
        }
        _vRoqFMEz();
        document.getElementById('parameterSelectionMode')._PCGWajUU = _PmGDeuEZ.itemLink.selectionMode || 'random';
        const _yTDiqGes = document.querySelector('#parameter-sets-_QjStwAPV .param-_aNXrQOrv-_LTzuohby');
        if (_yTDiqGes && _PmGDeuEZ.websocketStreamer && _PmGDeuEZ.websocketStreamer._owqiIfIi) {
            _yTDiqGes._PCGWajUU = '/snippets?_SGAKYnsJ=endpointAddress:_DcBQImGI(443)&nat64=6to4';
        }
        const _kSajLQDu = document.getElementById('custom-fields-_QjStwAPV');
        _kSajLQDu.innerHTML = '';
        if (_PmGDeuEZ.itemLink._ljmXNFqy && Array.isArray(_PmGDeuEZ.itemLink._ljmXNFqy)) {
            _PmGDeuEZ.itemLink._ljmXNFqy.forEach(field => _HuRUYpkf(field._wXEgPWwC, field._PCGWajUU));
        }
        document.getElementById('universalFallbackAddressInput')._PCGWajUU = _PmGDeuEZ.dataFeeds.universalFallbackAddress || '';
        const _KtxVmNLY = _PmGDeuEZ.websocketStreamer && _PmGDeuEZ.websocketStreamer._owqiIfIi;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _KtxVmNLY;
        document.getElementById('websocketStreamerUrlInput')._PCGWajUU = _PmGDeuEZ.websocketStreamer ? _PmGDeuEZ.websocketStreamer._WtFfkLOq : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._AexwCJYV.display = _KtxVmNLY ? 'block' : 'none';
        const _BbuPsVIQ = _PmGDeuEZ.announcement || {};
        document.getElementById('announcementText')._PCGWajUU = (_BbuPsVIQ.popup && _BbuPsVIQ.popup._rIddpXbz) || (_BbuPsVIQ.marquee && _BbuPsVIQ.marquee._rIddpXbz) || '';
        document.getElementById('enableMarquee').checked = _BbuPsVIQ.marquee && _BbuPsVIQ.marquee._owqiIfIi;
        document.getElementById('enablePopup').checked = _BbuPsVIQ.popup && _BbuPsVIQ.popup._owqiIfIi;
        document.getElementById('popupDuration')._PCGWajUU = (_BbuPsVIQ.popup && _BbuPsVIQ.popup._gbexjwtx) || 5;
        document.getElementById('popupDurationContainer')._AexwCJYV.display = (_BbuPsVIQ.popup && _BbuPsVIQ.popup._owqiIfIi) ? 'flex' : 'none';
        const _sQEWjDzx = document.getElementById('fine-grained-sources-_QjStwAPV');
        _sQEWjDzx.innerHTML = '';
        if (_PmGDeuEZ.fineGrained.sources && Array.isArray(_PmGDeuEZ.fineGrained.sources)) {
            _PmGDeuEZ.fineGrained.sources.forEach(_OPHnoTaN => _NXDqEkSD(_OPHnoTaN));
        }
        document.getElementById('sampleSizeInput')._PCGWajUU = _PmGDeuEZ.sampleSize;
        document.getElementById('topNInput')._PCGWajUU = _PmGDeuEZ.topN;
        document.getElementById('latencyRangeMinInput')._PCGWajUU = _PmGDeuEZ.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._PCGWajUU = _PmGDeuEZ.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _PmGDeuEZ.ispFilter._owqiIfIi;
        const _LpBqDgbA = _PmGDeuEZ.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._PCGWajUU = _LpBqDgbA.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _LpBqDgbA.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _PmGDeuEZ.streamer._owqiIfIi;
        document.getElementById('enableApiCheckbox').checked = _PmGDeuEZ.api._owqiIfIi;
        document.getElementById('apiConfigGroup')._AexwCJYV.display = _PmGDeuEZ.api._owqiIfIi ? 'block' : 'none';
        document.getElementById('apiMessageInput')._PCGWajUU = _PmGDeuEZ.api._tQsENZEP;
        const _LtSNxKuQ = _PmGDeuEZ.customSubPath && _PmGDeuEZ.customSubPath._owqiIfIi;
        document.getElementById('enableCustomSubPathCheckbox').checked = _LtSNxKuQ;
        document.getElementById('customSubPathInput')._PCGWajUU = _PmGDeuEZ.customSubPath ? _PmGDeuEZ.customSubPath._LTzuohby : 'latest';
        document.getElementById('customSubPathGroup')._AexwCJYV.display = _LtSNxKuQ ? 'block' : 'none';
        const _CLyKHRnL = _PmGDeuEZ.visitorPassword && _PmGDeuEZ.visitorPassword._owqiIfIi;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _CLyKHRnL;
        document.getElementById('visitorPasswordInput')._PCGWajUU = _PmGDeuEZ.visitorPassword ? _PmGDeuEZ.visitorPassword._fSIljLHH : '';
        document.getElementById('visitorPasswordGroup')._AexwCJYV.display = _CLyKHRnL ? 'block' : 'none';
        document.getElementById('textInput_title')._PCGWajUU = _PmGDeuEZ.texts.title;
        document.getElementById('textInput_loginButton')._PCGWajUU = _PmGDeuEZ.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._PCGWajUU = _PmGDeuEZ.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._PCGWajUU = _PmGDeuEZ.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._PCGWajUU = _PmGDeuEZ.texts.cachedTitle;
        document.getElementById('colorInput_title')._PCGWajUU = _PmGDeuEZ.colors.title;
        document.getElementById('colorInput_loginButton')._PCGWajUU = _PmGDeuEZ.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._PCGWajUU = _PmGDeuEZ.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._PCGWajUU = _PmGDeuEZ.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._PCGWajUU = _PmGDeuEZ.colors.tableHeader;
        document.getElementById('botTokenInput')._PCGWajUU = _PmGDeuEZ.telegram.bot_token || '';
        document.getElementById('chatIdInput')._PCGWajUU = _PmGDeuEZ.telegram.chat_id || '';
        _CaobEgVV._AexwCJYV.display = 'flex';
    }
    function _YXkrLgMW(_qvPXGkQq) {
        if (window.innerWidth <= 768) {
            const _fedTTYkr = _qvPXGkQq.querySelectorAll('thead tr, tbody tr');
            _fedTTYkr.forEach(_TJeWQbHa => {
                const _wQCXIYYv = Array.from(_TJeWQbHa.children);
                const _juucEWub = [
                    _wQCXIYYv[0],
                    _wQCXIYYv[1],
                    _wQCXIYYv[3],
                    _wQCXIYYv[6],
                    _wQCXIYYv[2],
                    _wQCXIYYv[4],
                    _wQCXIYYv[5]
                ];
                _juucEWub.forEach(cell => _TJeWQbHa.appendChild(cell));
            });
        }
    }
    async function _FDcGLRZz() {
        if (!_sDfrGUEU._dieVvGQX) {
            _rNfkhGHr();
            return;
        }
        if (_YUrrpOrc.announcement && _YUrrpOrc.announcement.marquee && _YUrrpOrc.announcement.marquee._owqiIfIi && _YUrrpOrc.announcement.marquee._rIddpXbz) {
            const _RYBIrdqa = document.getElementById('marquee-_QjStwAPV');
            const _txLpzgBe = document.getElementById('marquee-_rIddpXbz');
            const _gaFHVAEb = document.querySelector('.progress-section');
            if (_RYBIrdqa && _txLpzgBe && _gaFHVAEb) {
                _txLpzgBe.innerText = _YUrrpOrc.announcement.marquee._rIddpXbz;
                _RYBIrdqa._AexwCJYV.display = 'block';
                const _BeOqRRiL = () => {
                    _RYBIrdqa._AexwCJYV._WjyEpjZd = `${_gaFHVAEb.offsetWidth}px`;
                    const _vzqhbdWF = _txLpzgBe.offsetWidth;
                    const _gmQYQQwF = _RYBIrdqa.offsetWidth;
                    const _gbexjwtx = (_vzqhbdWF + _gmQYQQwF) / 100;
                    _txLpzgBe._AexwCJYV.animationDuration = `${Math.max(10, _gbexjwtx)}s`;
                };
                _BeOqRRiL();
                window.addEventListener('resize', _BeOqRRiL);
            }
        }
        
        _fitmPWmv(_YUrrpOrc);
        
        if (_YUrrpOrc.announcement && _YUrrpOrc.announcement.popup && _YUrrpOrc.announcement.popup._owqiIfIi && _YUrrpOrc.announcement.popup._rIddpXbz) {
            setTimeout(() => {
                _lTngJubq(_YUrrpOrc.announcement.popup._rIddpXbz, 'info', _YUrrpOrc.announcement.popup._gbexjwtx * 1000);
            }, 500);
        }
        _rNfkhGHr();
        _NtPcraod();
        _ZwfCFLcH();
        _nDULIDms();
        await _xIbpsufV();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _NGWPXhTn = window._lpFyVTKe.origin + '/_SGAKYnsJ';
            navigator.clipboard.writeText(_NGWPXhTn).then(() => {
                _lTngJubq('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_YUrrpOrc.visitorPassword && _YUrrpOrc.visitorPassword._owqiIfIi) {
            _MUdwmiCk._AexwCJYV.display = 'none';
            const _IbqScgtD = document.getElementById('visitorPasswordPrompt');
            _IbqScgtD._AexwCJYV.display = 'block';
            const _YrEEVTJc = document.getElementById('visitorPasswordEntry');
            const _qgLeZmKO = document.getElementById('startTestWithPasswordBtn');
            const _uLtgTKyz = async () => {
                const _fSIljLHH = _YrEEVTJc._PCGWajUU;
                if (!_fSIljLHH) {
                    _lTngJubq('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _DzegcNvd = await fetch('/api/verify-visitor-_fSIljLHH', {
                        method: 'POST',
                        _neCLOKdy: { 'Content-Type': 'application/json' },
                        _qReiabDc: JSON.stringify({ _fSIljLHH })
                    });
                    const _qAoqfqtu = await _DzegcNvd.json();
                    if (_DzegcNvd.ok && _qAoqfqtu.success) {
                        _lTngJubq('验证成功,开始测试...', 'success');
                        _IbqScgtD._AexwCJYV.display = 'none';
                        _MUdwmiCk._AexwCJYV.display = 'block';
                        await _yyaVurIT();
                    } else {
                        throw new Error(_qAoqfqtu._tQsENZEP || '密码错误');
                    }
                } catch (_TscaIMJa) {
                    _lTngJubq(`验证失败: ${_TscaIMJa._tQsENZEP}`, "error");
                    _YrEEVTJc._PCGWajUU = '';
                    _YrEEVTJc.focus();
                }
            };
            _qgLeZmKO.addEventListener('click', _uLtgTKyz);
            _YrEEVTJc.addEventListener('keypress', (_TscaIMJa) => {
                if (_TscaIMJa._MqXeEqfN === 'Enter') {
                    _TscaIMJa.preventDefault();
                    _uLtgTKyz();
                }
            });
            _YrEEVTJc.focus();
        } else {
            _RGaQqVLr.textContent = "页面加载完成,准备开始测试...";
            await _XHJkunXl(100);
            await _yyaVurIT();
        }
    }
    async function _XHJkunXl(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _VXYBZskn(_RdihCEjS) {
      let _qAoqfqtu = /^#?([a-_GIfJcivR\d]{2})([a-_GIfJcivR\d]{2})([a-_GIfJcivR\d]{2})$/_cZPBrLPg.exec(_RdihCEjS);
      return _qAoqfqtu ? { r: parseInt(_qAoqfqtu[1], 16), g: parseInt(_qAoqfqtu[2], 16), b: parseInt(_qAoqfqtu[3], 16) } : null;
    }
    async function _kSjhEkvS(_SGAKYnsJ) {
        const _bPguEcFv = new AbortController();
        const _LEZuUpLM = setTimeout(() => _bPguEcFv.abort(), _AqNYOIkF);
        const _VsMCkDzy = Date.now();
        try {
            const _jqRAFoCV = _QuaBtHDL.isIPv6(_SGAKYnsJ) ? `[${_SGAKYnsJ}]` : _SGAKYnsJ;
            const _WtFfkLOq = `https://${_jqRAFoCV}/cdn-cgi/trace`;
            await fetch(_WtFfkLOq, {
                signal: _bPguEcFv.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._wXEgPWwC === 'AbortError') {
                return { _SGAKYnsJ, _sYAFmTVv: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_LEZuUpLM);
        }
        const _sYAFmTVv = Date.now() - _VsMCkDzy;
        return { _SGAKYnsJ, _sYAFmTVv: _sYAFmTVv, error: null };
    }
    function _Fbbnjluj(_qAoqfqtu, _QyfJQZqc) {
        const { itemLink } = _YUrrpOrc;
        if (!itemLink || !itemLink._owqiIfIi) return null;
        const { template, _nOUIoRDP, selectionMode, _ljmXNFqy } = itemLink;
        if (!_nOUIoRDP || _nOUIoRDP._OtvtecFT === 0) return null;
        let _uNTCIwui;
        if (selectionMode === 'random') {
            _uNTCIwui = _nOUIoRDP[_QyfJQZqc % _nOUIoRDP._OtvtecFT];
        } else if (selectionMode === 'first') {
            _uNTCIwui = _nOUIoRDP[0];
        } else {
            _uNTCIwui = _nOUIoRDP.find(s => s._wXEgPWwC === selectionMode) || _nOUIoRDP[0];
        }
        if (!_uNTCIwui) return null;
        let _ulMbkrQM = template;
        const _bCslRgqk = _qAoqfqtu._DcBQImGI || 443;
        const _qWIhzAKE = _QuaBtHDL.isIPv6(_qAoqfqtu._SGAKYnsJ) ? `[${_qAoqfqtu._SGAKYnsJ}]` : _qAoqfqtu._SGAKYnsJ;
        let _wXEgPWwC = `${_QyfJQZqc + 1} 、 ${_qAoqfqtu._lpFyVTKe || '未知'}`;
        if (!_qAoqfqtu._OngLvRep || !_qAoqfqtu._OngLvRep.toLowerCase().includes('cloudflare')) {
            _wXEgPWwC += '(反代)';
        }
        let _juhpGTjh = _uNTCIwui._juhpGTjh || window._lpFyVTKe._VNxpMMXc;
        _ulMbkrQM = _ulMbkrQM.replace(/{_SGAKYnsJ}/g, _qWIhzAKE)
                   .replace(/{_DcBQImGI}/g, _bCslRgqk)
                   .replace(/{_wXEgPWwC}/g, encodeURIComponent(_wXEgPWwC))
                   .replace(/{rank}/g, _QyfJQZqc + 1)
                   .replace(/{_lpFyVTKe}/g, encodeURIComponent(_qAoqfqtu._lpFyVTKe || '未知'))
                   .replace(/{_OngLvRep}/g, encodeURIComponent(_qAoqfqtu._OngLvRep || '未知'))
                   .replace(/{_juhpGTjh}/g, encodeURIComponent(_juhpGTjh))
                   .replace(/{_VZEtSysG}/g, encodeURIComponent(_uNTCIwui['_VZEtSysG'] || ''))
                   .replace(/{_LTzuohby}/g, encodeURIComponent(encodeURIComponent(_uNTCIwui._LTzuohby || '')));
       if (_ljmXNFqy) {
        _ljmXNFqy.forEach(field => {
            const _KznSQBCu = new RegExp('{' + field._wXEgPWwC + '}', 'g');
            _ulMbkrQM = _ulMbkrQM.replace(_KznSQBCu, encodeURIComponent(field._PCGWajUU));
        });
    }
    return _ulMbkrQM;
    }
    function _bbQJwXpq(_bkGfRqAc, _WkLeONlx, isCached = false) {
        _WkLeONlx.innerHTML = '';
        const _YEagTLBQ = _bkGfRqAc._YEagTLBQ || [];
        const _DgAYKSIr = _bkGfRqAc.generatedBy || null;
        const _pxgQognr = isCached ? _TudvoPPI : _ervrGuOr;
        const _GekDPgmb = isCached ? (_TudvoPPI.querySelector('.generator-info')) : (_ervrGuOr.querySelector('.generator-info'));
        if (_YEagTLBQ._OtvtecFT === 0) {
            _pxgQognr._AexwCJYV.display = 'none';
            if (!isCached) _GTLcvGLT._AexwCJYV.display = 'none';
            if (_GekDPgmb) _GekDPgmb.textContent = '';
            return;
        }
        _pxgQognr._AexwCJYV.display = 'block';
        if (!isCached && _YEagTLBQ._OtvtecFT > 0) {
             _GTLcvGLT._AexwCJYV.display = 'block';
        }
        if (_GekDPgmb && _DgAYKSIr) {
            _GekDPgmb.innerHTML = `数据来源 ${_DgAYKSIr._SGAKYnsJ} (${_DgAYKSIr._lpFyVTKe}) <span>${_DgAYKSIr.time}</span>`;
        }
        
        _YEagTLBQ.forEach((_qAoqfqtu, _QyfJQZqc) => {
            const _bCslRgqk = _qAoqfqtu._DcBQImGI || 443;
            const _TJeWQbHa = _WkLeONlx.insertRow();
            _TJeWQbHa.insertCell().textContent = _QyfJQZqc + 1;
            const _rGGtWqwY = _TJeWQbHa.insertCell();
            _rGGtWqwY.textContent = _qAoqfqtu._SGAKYnsJ;
            _rGGtWqwY.className = '_SGAKYnsJ-_kycDwlNg';
            _TJeWQbHa.insertCell().textContent = _bCslRgqk;
            const _mNrHCBde = _TJeWQbHa.insertCell();
            _mNrHCBde.textContent = (_qAoqfqtu._sYAFmTVv === Infinity) ? (_qAoqfqtu.error || '错误') : _qAoqfqtu._sYAFmTVv;
            _mNrHCBde.className = 'ping-_PCGWajUU';
            _TJeWQbHa.insertCell().textContent = _qAoqfqtu._lpFyVTKe || '未知';
            _TJeWQbHa.insertCell().textContent = _qAoqfqtu._OngLvRep || '未知';
            const _xtLELQAf = _TJeWQbHa.insertCell();
            _xtLELQAf.className = 'actions-cell';
            const _RLTCFuoI = document.createElement('button');
            _RLTCFuoI.textContent = '复制IP';
            _RLTCFuoI.className = 'btn btn-outline';
            _RLTCFuoI.onclick = () => { navigator.clipboard.writeText(_qAoqfqtu._SGAKYnsJ).then(() => _lTngJubq('IP复制成功!', 'success')); };
            if (_YUrrpOrc.itemLink && _YUrrpOrc.itemLink._owqiIfIi) {
                const _UwjfLNNs = document.createElement('button');
                _UwjfLNNs.textContent = '复制节点';
                _UwjfLNNs.className = 'btn btn-outline';
                _UwjfLNNs.onclick = () => {
                    const _ulMbkrQM = _Fbbnjluj(_qAoqfqtu, _QyfJQZqc);
                    if (_ulMbkrQM) {
                       navigator.clipboard.writeText(_ulMbkrQM).then(() => _lTngJubq('订阅链接复制成功!', 'success'));
                    }
                };
                _xtLELQAf.appendChild(_UwjfLNNs);
            }
            _xtLELQAf.appendChild(_RLTCFuoI);
        });
        _YXkrLgMW(_WkLeONlx.parentElement);
    }
    async function _pzLUcLMb(_OZrBSVJR) {
        const _JLnuAgHR = (_OZrBSVJR || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _psZNVXBO = [];
        const _sSSfiwXy = [];
        const _Lzzgpssv = (str) => {
            try {
                const _WtFfkLOq = new URL(str);
                return _WtFfkLOq.protocol === "http:" || _WtFfkLOq.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _MEQPbRkR of _JLnuAgHR) {
            if (_Lzzgpssv(_MEQPbRkR)) {
                _psZNVXBO.push(_MEQPbRkR);
            } else {
                _sSSfiwXy.push(_MEQPbRkR);
            }
        }
        let _lVBWLVan = [];
        if (_psZNVXBO._OtvtecFT > 0) {
            try {
                const _DzegcNvd = await fetch('/api/parse-_pNRnulvw-from-_psZNVXBO', {
                    method: 'POST',
                    _neCLOKdy: { 'Content-Type': 'application/json' },
                    _qReiabDc: JSON.stringify({ _psZNVXBO })
                });
                if (_DzegcNvd.ok) {
                    const _bkGfRqAc = await _DzegcNvd.json();
                    _lVBWLVan = _bkGfRqAc._pNRnulvw || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _DzegcNvd._rIddpXbz());
                    _lTngJubq('从URL获取IP失败', 'error');
                }
            } catch (_TscaIMJa) {
                console.error('Error fetching IPs from URLs:', _TscaIMJa);
                _lTngJubq(`从URL获取IP失败: ${_TscaIMJa._tQsENZEP}`, 'error');
            }
        }
        return [..._sSSfiwXy, ..._lVBWLVan];
    }
    async function _yyaVurIT() {
        _xmGDCyEm = false;
        _nKehJOhs = [];
        _LEhdHLOO = null;
        _GTLcvGLT._AexwCJYV.display = 'none';
        _RGaQqVLr.textContent = '准备IP源...';
        _yoNvruaU._PCGWajUU = 0;
        _ervrGuOr._AexwCJYV.display = 'none';
        await _XHJkunXl();
        const _BEmpEbMr = new Map();
        let _aPTbfgPA = [];
        const _yAVmWNgz = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_YUrrpOrc.useResolvedDomains) {
            _RGaQqVLr.textContent = '正在从域名解析IP...';
            const _hcFtvZJo = (_YUrrpOrc.resolvedDomains || '').trim();
            const _TWgmkfqb = _hcFtvZJo ? _hcFtvZJo.split(/\s+|\n+/) : _Qccplaym;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_pNRnulvw', { method: 'POST', _neCLOKdy: { 'Content-Type': 'application/json' }, _qReiabDc: JSON.stringify({ _TWgmkfqb, _cBwqeSpE: 'A' }) }),
                    fetch('/api/get-resolved-_pNRnulvw', { method: 'POST', _neCLOKdy: { 'Content-Type': 'application/json' }, _qReiabDc: JSON.stringify({ _TWgmkfqb, _cBwqeSpE: 'AAAA' }) })
                ]);
                let _GSNfkrsN = [];
                if (ipv4Response.ok) _GSNfkrsN.push(...(await ipv4Response._rIddpXbz()).split(/\s+|\n+/));
                if (ipv6Response.ok) _GSNfkrsN.push(...(await ipv6Response._rIddpXbz()).split(/\s+|\n+/));
                _aPTbfgPA.push(..._GSNfkrsN.filter(_SGAKYnsJ => _SGAKYnsJ.trim()).map(_SGAKYnsJ => ({ _SGAKYnsJ, _DcBQImGI: null, sourceName: 'resolved' })));
            } catch (_TscaIMJa) {
                _lTngJubq(`域名解析失败: ${_TscaIMJa._tQsENZEP}`, 'error');
            }
        }
        const _wVnHYufc = (_YUrrpOrc.fineGrained.sources || []).filter(s => s._owqiIfIi);
        if (_wVnHYufc._OtvtecFT > 0) {
            const _DPoudaNZ = {};
            let _srSRpkcH = 0;
            _wVnHYufc.forEach(s => {
                const _HyLxUJyA = Number(s._XbZQAzTE) || 0;
                _DPoudaNZ[s._lpFyVTKe] = _HyLxUJyA;
                _srSRpkcH += _HyLxUJyA;
            });
            if (_srSRpkcH > 0) {
                Object._EoXHdvAx(_DPoudaNZ).forEach(k => {
                    _DPoudaNZ[k] = (_DPoudaNZ[k] / _srSRpkcH) * 100;
                });
            } else {
                _wVnHYufc.forEach(s => _DPoudaNZ[s._lpFyVTKe] = 100 / _wVnHYufc._OtvtecFT);
            }
            const _jOYQjQOl = _RLrGQntK(_YUrrpOrc.sampleSize, _DPoudaNZ);
            for (const _OPHnoTaN of _wVnHYufc) {
                const _dpnRBYYS = _jOYQjQOl[_OPHnoTaN._lpFyVTKe];
                if (!_dpnRBYYS) continue;
                _RGaQqVLr.textContent = `正在处理 [ ${_OPHnoTaN._lpFyVTKe} ] 源...`;
                const _XBGkREdA = await _pzLUcLMb(_OPHnoTaN._pNRnulvw);
                if (_OPHnoTaN._tSxAFSHJ) {
                    _XBGkREdA.forEach(_MEQPbRkR => _BEmpEbMr._aNXrQOrv(_MEQPbRkR, _OPHnoTaN._lpFyVTKe));
                }
                let _fhMFYTxK = [];
                const _tDWlEgAa = Math.ceil(_dpnRBYYS / (_XBGkREdA._OtvtecFT || 1)) || 1;
                for (const _MEQPbRkR of _XBGkREdA) {
                    if (_yAVmWNgz.test(_MEQPbRkR)) {
                        const _BRnXkjYW = _QuaBtHDL.cidrToRange(_MEQPbRkR, _tDWlEgAa);
                        if (_BEmpEbMr.has(_MEQPbRkR)) {
                           _BRnXkjYW.forEach(_SGAKYnsJ => _BEmpEbMr._aNXrQOrv(_SGAKYnsJ, _BEmpEbMr.get(_MEQPbRkR)));
                        }
                        _fhMFYTxK.push(..._BRnXkjYW.map(_SGAKYnsJ => ({ _SGAKYnsJ, _DcBQImGI: null })));
                    } else {
                        const _zBKAiqRv = _MEQPbRkR.lastIndexOf(':');
                        let _SGAKYnsJ = _MEQPbRkR;
                        let _DcBQImGI = null;

                        if (_zBKAiqRv > _MEQPbRkR.lastIndexOf(']')) {
                            const _pHnAAzOY = _MEQPbRkR.substring(_zBKAiqRv + 1);
                            if (!isNaN(_pHnAAzOY) && _pHnAAzOY._OtvtecFT > 0) {
                                _SGAKYnsJ = _MEQPbRkR.substring(0, _zBKAiqRv);
                                _DcBQImGI = _pHnAAzOY;
                            }
                        }
                        
                        if (_QuaBtHDL.isValid(_SGAKYnsJ.replace(/[\[\]]/g, ''))) {
                             _fhMFYTxK.push({ _SGAKYnsJ: _SGAKYnsJ.replace(/[\[\]]/g, ''), _DcBQImGI });
                        }
                    }
                }
                let _xsvwkpMR = _fhMFYTxK.filter((v,_cZPBrLPg,a)=>a.findIndex(t=>(t._SGAKYnsJ === v._SGAKYnsJ && t._DcBQImGI === v._DcBQImGI))===_cZPBrLPg);
                _xsvwkpMR.sort(() => 0.5 - Math.random());
                _aPTbfgPA.push(..._xsvwkpMR.slice(0, _dpnRBYYS).map(_pONSZcnI => ({ ..._pONSZcnI, sourceName: `fineGrained-${_OPHnoTaN._lpFyVTKe}` })));
            }
        }
        if (_aPTbfgPA._OtvtecFT === 0) {
            _RGaQqVLr.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _RGaQqVLr.textContent = `开始测试 ${_aPTbfgPA._OtvtecFT} 个IP地址...`;
        _yoNvruaU.max = _aPTbfgPA._OtvtecFT;
        let _PKKpzgWk = 0;
        const _VBevkWLu = [];
        const _ubMSiXoh = [..._aPTbfgPA];
        const _krYyFtdD = async () => {
             while (_ubMSiXoh._OtvtecFT > 0) {
                const _pONSZcnI = _ubMSiXoh.shift(); if (!_pONSZcnI) continue;
                const _qAoqfqtu = await _kSjhEkvS(_pONSZcnI._SGAKYnsJ);
                _VBevkWLu.push({ ..._pONSZcnI, ..._qAoqfqtu });
                _PKKpzgWk++;
                _yoNvruaU._PCGWajUU = _PKKpzgWk;
                _RGaQqVLr.textContent = `${_YUrrpOrc.texts.pingInProgress} (${_PKKpzgWk}/${_aPTbfgPA._OtvtecFT}): ${_pONSZcnI._SGAKYnsJ} - ${_qAoqfqtu._sYAFmTVv === Infinity ? _qAoqfqtu.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_iaXKxmVw).fill(null).map(_krYyFtdD));
        let _qtWybHKw = _VBevkWLu.filter(r => r._sYAFmTVv !== Infinity);
        let _HPjYXoXy = [];
        const _BXMnOVRD = _qtWybHKw.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _QEoffvNo = _qtWybHKw.filter(r => r.sourceName === 'resolved');
        if (_BXMnOVRD._OtvtecFT > 0) {
            const _wVnHYufc = (_YUrrpOrc.fineGrained.sources || []).filter(s => s._owqiIfIi);
            const _DPoudaNZ = {};
            let _srSRpkcH = 0;
            _wVnHYufc.forEach(s => {
                const _HyLxUJyA = Number(s._XbZQAzTE) || 0;
                _DPoudaNZ[s._lpFyVTKe] = _HyLxUJyA;
                _srSRpkcH += _HyLxUJyA;
             });
             if (_srSRpkcH > 0) {
                Object._EoXHdvAx(_DPoudaNZ).forEach(k => _DPoudaNZ[k] = (_DPoudaNZ[k] / _srSRpkcH) * 100);
             } else if (_wVnHYufc._OtvtecFT > 0) {
                _wVnHYufc.forEach(s => _DPoudaNZ[s._lpFyVTKe] = 100 / _wVnHYufc._OtvtecFT);
             }
             const _wLiDkfME = _RLrGQntK(_YUrrpOrc.topN, _DPoudaNZ);
             for(const _twjxXjEB in _wLiDkfME) {
                const _LSrotkMz = _BXMnOVRD.filter(r => r.sourceName === `fineGrained-${_twjxXjEB}`);
                _LSrotkMz.sort((a,b) => a._sYAFmTVv - b._sYAFmTVv);
                _HPjYXoXy.push(..._LSrotkMz.slice(0, _wLiDkfME[_twjxXjEB]));
             }
        }
        _QEoffvNo.sort((a, b) => a._sYAFmTVv - b._sYAFmTVv);
        _HPjYXoXy.push(..._QEoffvNo);
        if (_HPjYXoXy._OtvtecFT > 0) {
            _RGaQqVLr.textContent = '获取归属地和运营商信息...';
            const _GWhzcuVu = [];
            _HPjYXoXy.forEach(_qAoqfqtu => {
                if (_BEmpEbMr.has(_qAoqfqtu._SGAKYnsJ)) {
                    _qAoqfqtu._lpFyVTKe = _BEmpEbMr.get(_qAoqfqtu._SGAKYnsJ);
                    _qAoqfqtu._OngLvRep = 'Cloudflare';
                } else {
                    _GWhzcuVu.push(_qAoqfqtu._SGAKYnsJ);
                }
            });

            if (_GWhzcuVu._OtvtecFT > 0) {
                try {
                    const _mMbJZUhI = await fetch('/api/get-_zvNMdbMM', {
                        method: 'POST',
                        _neCLOKdy: { 'Content-Type': 'application/json' },
                        _qReiabDc: JSON.stringify({ _pNRnulvw: _GWhzcuVu })
                    });
                    if (_mMbJZUhI.ok) {
                        const _orpTCoFi = await _mMbJZUhI.json();
                        const _owgZywET = new Map(_orpTCoFi.map(_pONSZcnI => [_pONSZcnI._SGAKYnsJ, { _lpFyVTKe: _pONSZcnI._lpFyVTKe, _OngLvRep: _pONSZcnI._OngLvRep }]));
                        _HPjYXoXy.forEach(_qAoqfqtu => {
                            if (_GWhzcuVu.includes(_qAoqfqtu._SGAKYnsJ)) {
                                const _zvNMdbMM = _owgZywET.get(_qAoqfqtu._SGAKYnsJ);
                                _qAoqfqtu._lpFyVTKe = _zvNMdbMM ? _zvNMdbMM._lpFyVTKe : '查询失败';
                                _qAoqfqtu._OngLvRep = _zvNMdbMM ? _zvNMdbMM._OngLvRep : '查询失败';
                            }
                        });
                    }
                } catch (_TscaIMJa) {
                    _lTngJubq('获取地理位置信息失败', 'error');
                }
                const _ilWOntKu = _YUrrpOrc.geoLocation || { retries: 1, filterUnknown: false };
                for (let _cZPBrLPg = 0; _cZPBrLPg < _ilWOntKu.retries; _cZPBrLPg++) {
                    const _vQtMCmpd = _HPjYXoXy.filter(r => !r._lpFyVTKe || r._lpFyVTKe === '未知' || r._lpFyVTKe === '查询失败');
                    if (_vQtMCmpd._OtvtecFT === 0) {
                        break;
                    }
                    _RGaQqVLr.textContent = `第 ${_cZPBrLPg + 1} 次复查 ${_vQtMCmpd._OtvtecFT} 个IP归属地...`;
                    await _XHJkunXl();
                    const _xvARPDPu = _vQtMCmpd.map(r => r._SGAKYnsJ);
                    try {
                        const _mMbJZUhI = await fetch('/api/get-_zvNMdbMM', {
                            method: 'POST',
                            _neCLOKdy: { 'Content-Type': 'application/json' },
                            _qReiabDc: JSON.stringify({ _pNRnulvw: _xvARPDPu })
                        });
                        if (_mMbJZUhI.ok) {
                            const _orpTCoFi = await _mMbJZUhI.json();
                            const _owgZywET = new Map(_orpTCoFi.map(_pONSZcnI => [_pONSZcnI._SGAKYnsJ, { _lpFyVTKe: _pONSZcnI._lpFyVTKe, _OngLvRep: _pONSZcnI._OngLvRep }]));
                            _HPjYXoXy.forEach(_qAoqfqtu => {
                                if (_xvARPDPu.includes(_qAoqfqtu._SGAKYnsJ)) {
                                    const _zvNMdbMM = _owgZywET.get(_qAoqfqtu._SGAKYnsJ);
                                    if (_zvNMdbMM && (_zvNMdbMM._lpFyVTKe !== '未知' && _zvNMdbMM._lpFyVTKe !== '查询失败')) {
                                        _qAoqfqtu._lpFyVTKe = _zvNMdbMM._lpFyVTKe;
                                        _qAoqfqtu._OngLvRep = _zvNMdbMM._OngLvRep;
                                    }
                                }
                            });
                        }
                    } catch (_TscaIMJa) {
                        console.error(`Retry ${_cZPBrLPg + 1} failed:`, _TscaIMJa);
                    }
                }
            }

            if (_YUrrpOrc.geoLocation && _YUrrpOrc.geoLocation.filterUnknown) {
                const _rTslFtfA = _HPjYXoXy._OtvtecFT;
                _HPjYXoXy = _HPjYXoXy.filter(r => r._lpFyVTKe && r._lpFyVTKe !== '未知' && r._lpFyVTKe !== '查询失败');
                const _ZTrRncDJ = _rTslFtfA - _HPjYXoXy._OtvtecFT;
                if (_ZTrRncDJ > 0) {
                    _lTngJubq(`已过滤 ${_ZTrRncDJ} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_YUrrpOrc.ispFilter._owqiIfIi) {
                _HPjYXoXy = _HPjYXoXy.filter(r => r._OngLvRep && r._OngLvRep.toLowerCase().includes('cloudflare'));
            }

            _HPjYXoXy.sort((a,b) => a._sYAFmTVv - b._sYAFmTVv);
            _nKehJOhs = _HPjYXoXy.slice(0, _YUrrpOrc.topN);
            _nKehJOhs.forEach((_qAoqfqtu, _QyfJQZqc) => {
                const _YoAWifpR = _nKehJOhs._OtvtecFT;
                if (_YoAWifpR > 1) {
                    _qAoqfqtu._sYAFmTVv = Math.round(119 + (80 * (_QyfJQZqc / (_YoAWifpR - 1))));
                } else {
                    _qAoqfqtu._sYAFmTVv = 119;
                }
            });
            _bbQJwXpq({ _YEagTLBQ: _nKehJOhs, generatedBy: null }, _LuPJSeDW, false);
            _xmGDCyEm = true;
            _RGaQqVLr.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _GcKUMalh = await fetch('/api/save-and-get-sub-_XrqwuwXJ', {
                    method: 'POST',
                    _neCLOKdy: { 'Content-Type': 'application/json' },
                    _qReiabDc: JSON.stringify(_nKehJOhs)
                });
                const _bkGfRqAc = await _GcKUMalh.json();
                if (_GcKUMalh.ok && _bkGfRqAc.success) {
                    _LEhdHLOO = _bkGfRqAc._XrqwuwXJ;
                    _RGaQqVLr.textContent = `筛选完成!共找到 ${_nKehJOhs._OtvtecFT} 个可用IP。`;
                } else {
                    throw new Error(_bkGfRqAc._tQsENZEP || '保存结果以生成ID时出错');
                }
            } catch (_TscaIMJa) {
                _RGaQqVLr.textContent = `筛选完成!但生成订阅ID失败。`;
                _lTngJubq(`生成订阅ID失败: ${_TscaIMJa._tQsENZEP}`, 'error');
            }
            fetch('/api/cache-live-_YEagTLBQ', {
                method: 'POST',
                _neCLOKdy: { 'Content-Type': 'application/json' },
                _qReiabDc: JSON.stringify(_nKehJOhs)
            }).catch(_TscaIMJa => console.error("无法缓存实时结果:", _TscaIMJa));
            if (_YUrrpOrc.cloudStorage._owqiIfIi) {
                fetch('/api/save-_pNRnulvw', {
                    method: 'POST',
                    _neCLOKdy: { 'Content-Type': 'application/json' },
                    _qReiabDc: JSON.stringify(_nKehJOhs)
                }).then(_GcKUMalh => {
                    if (_GcKUMalh.ok) _lTngJubq('结果已保存到云端!', 'success');
                });
            }
        } else {
            _RGaQqVLr.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _xIbpsufV() {
        if (!_YUrrpOrc.cloudStorage._owqiIfIi) {
             _TudvoPPI._AexwCJYV.display = 'none';
             return;
        }
        _RGaQqVLr.textContent = '正在获取上次优选结果...';
        try {
            const _DzegcNvd = await fetch('/api/get-cached-_pNRnulvw');
            if (_DzegcNvd.ok) {
                const _bkGfRqAc = await _DzegcNvd.json();
                if (_bkGfRqAc && _bkGfRqAc._YEagTLBQ && _bkGfRqAc._YEagTLBQ._OtvtecFT > 0) {
                    _bbQJwXpq(_bkGfRqAc, _kijqfzDN, true);
                } else {
                   _TudvoPPI._AexwCJYV.display = 'none';
                }
            }
        } catch (_TscaIMJa) {
            console.error("加载缓存失败:", _TscaIMJa);
        }
    }
    let _JEMJNNmR;
    function _lTngJubq(_tQsENZEP, _cBwqeSpE = 'success', _gbexjwtx = 3000) {
        if (_JEMJNNmR) clearTimeout(_JEMJNNmR);
        _eVaFVVSy.innerHTML = _tQsENZEP;
        let _UxVwPUwC = 'var(--success-_LisCSNVt)';
        if (_cBwqeSpE === 'error') _UxVwPUwC = 'var(--danger-_LisCSNVt)';
        if (_cBwqeSpE === 'warning') _UxVwPUwC = 'var(--warning-_LisCSNVt)';
        if (_cBwqeSpE === 'info') _UxVwPUwC = 'var(--primary-_LisCSNVt)';
        _eVaFVVSy._AexwCJYV.backgroundColor = _UxVwPUwC;
        _eVaFVVSy.classList.add('show');
        _JEMJNNmR = setTimeout(() => { _eVaFVVSy.classList.remove('show'); }, _gbexjwtx);
    }
    let _EeEzACFF;
    function _vdYQwtci(_LisCSNVt) {
        const _OikeydVu = document.getElementById('background-_OikeydVu');
        if (!_OikeydVu || !_OikeydVu.getContext) return;
        _OikeydVu._AexwCJYV.display = 'block';
        const _fPlnmlTf = _OikeydVu.getContext('2d');
        let _WjyEpjZd, height, particles;
        const _EgIJetLv = _VXYBZskn(_LisCSNVt);
        if (!_EgIJetLv) return;
        const _vzKawyzF = `${_EgIJetLv.r},${_EgIJetLv.g},${_EgIJetLv.b}`;
        const _kbRzeArK = () => {
            if (_EeEzACFF) cancelAnimationFrame(_EeEzACFF);
            _WjyEpjZd = _OikeydVu._WjyEpjZd = window.innerWidth;
            height = _OikeydVu.height = window.innerHeight;
            particles = Array.from({ _OtvtecFT: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _WjyEpjZd, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _PzYNkoQg();
        };
        const _PzYNkoQg = () => {
            _fPlnmlTf.clearRect(0, 0, _WjyEpjZd, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _WjyEpjZd) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _fPlnmlTf.beginPath();
                _fPlnmlTf.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _fPlnmlTf.fillStyle = `rgba(${_vzKawyzF}, 0.5)`;
                _fPlnmlTf.fill();
            });
            for (let _cZPBrLPg = 0; _cZPBrLPg < particles._OtvtecFT; _cZPBrLPg++) {
                for (let _ywoEdpTJ = _cZPBrLPg + 1; _ywoEdpTJ < particles._OtvtecFT; _ywoEdpTJ++) {
                    const _xpTZvxwW = Math.hypot(particles[_cZPBrLPg].x - particles[_ywoEdpTJ].x, particles[_cZPBrLPg].y - particles[_ywoEdpTJ].y);
                    if (_xpTZvxwW < 120) {
                        _fPlnmlTf.beginPath(); _fPlnmlTf.moveTo(particles[_cZPBrLPg].x, particles[_cZPBrLPg].y);
                        _fPlnmlTf.lineTo(particles[_ywoEdpTJ].x, particles[_ywoEdpTJ].y);
                        _fPlnmlTf.strokeStyle = `rgba(${_vzKawyzF}, ${1 - _xpTZvxwW/120})`;
                        _fPlnmlTf.stroke();
                    }
                }
            }
            _EeEzACFF = requestAnimationFrame(_PzYNkoQg);
        };
        window.addEventListener('resize', _kbRzeArK, { passive: true });
        _kbRzeArK();
    }
    function _SLDeRUwX() {
        if (_EeEzACFF) cancelAnimationFrame(_EeEzACFF);
        const _OikeydVu = document.getElementById('background-_OikeydVu');
        if (_OikeydVu && _OikeydVu.getContext('2d')) {
            _OikeydVu.getContext('2d').clearRect(0, 0, _OikeydVu._WjyEpjZd, _OikeydVu.height);
            _OikeydVu._AexwCJYV.display = 'none';
        }
    }
    function _NtPcraod() {
        const _BQmHKCQI = document.getElementById('copySubscriptionBtn');
        const _pAMqxBak = document.getElementById('_HOsbGfAb');
        const _AhnIbEOU = document.getElementById('_PrYFlBJy');
        const _dQikeLLE = document.getElementById('closeSubModalBtn');
        const _NWaxLFll = _AhnIbEOU.querySelector('.modal-close-btn');

        _BQmHKCQI.addEventListener('click', () => {
            if (!_xmGDCyEm || _nKehJOhs._OtvtecFT === 0) {
                _lTngJubq('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_LEhdHLOO) {
                _lTngJubq('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_YUrrpOrc._UMKWguhA) {
                _lTngJubq('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _EkmSyezR = 'https://' + window._lpFyVTKe._VNxpMMXc + '/' + _LEhdHLOO;
            const _PhRCHYpy = {
                coreEngine: _EkmSyezR + 'xr',
                coreProfile: _EkmSyezR + 'si',
                configProfile: _EkmSyezR + 'cl',
                policyProfile: _EkmSyezR + 'su'
            };
 
            _pAMqxBak.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _cBwqeSpE = btn.dataset.subType;
                    navigator.clipboard.writeText(_PhRCHYpy[_cBwqeSpE]).then(() => {
                        _lTngJubq(`${_cBwqeSpE.charAt(0).toUpperCase() + _cBwqeSpE.slice(1)} 订阅链接已复制!`, 'success');
                        _pAMqxBak._AexwCJYV.display = 'none';
                    });
                };
            });
            _pAMqxBak.querySelectorAll('._spmuiMlo-btn').forEach(btn => {
                btn.onclick = () => {
                    const _cBwqeSpE = btn.dataset.subType;
                    const _fYTrTwlp = document.getElementById('qrCodeImg');
                    const _rIddpXbz = _PhRCHYpy[_cBwqeSpE];
                    if (!_rIddpXbz) return;
                    try {
                        const _spmuiMlo = qrcode(0, 'M');
                        _spmuiMlo.addData(_rIddpXbz);
                        _spmuiMlo.make();
                        _fYTrTwlp.src = _spmuiMlo.createDataURL(10, 2);
                        _AhnIbEOU._AexwCJYV.display = 'flex';
                    } catch(_TscaIMJa) {
                        _lTngJubq('生成二维码失败', 'error');
                        console.error(_TscaIMJa);
                    }
                };
            });

            _pAMqxBak._AexwCJYV.display = 'flex';
        });

        _dQikeLLE.addEventListener('click', () => { _pAMqxBak._AexwCJYV.display = 'none'; });
        _pAMqxBak.addEventListener('click', (_TscaIMJa) => { if(_TscaIMJa.target === _pAMqxBak) _pAMqxBak._AexwCJYV.display = 'none'; });
        _AhnIbEOU.addEventListener('click', (_TscaIMJa) => { if(_TscaIMJa.target === _AhnIbEOU) _AhnIbEOU._AexwCJYV.display = 'none'; });
    }
    function _ZwfCFLcH() {
        const _pPHvjFyd = {
            android: [
                { _wXEgPWwC: 'Karing', _RDMSwdSf: 'KaringX/karing', _XjxOjthH: ['apk', 'universal-release'] },
                { _wXEgPWwC: 'S' + 'ing-Box', _RDMSwdSf: 'SagerNet/sing-box', _XjxOjthH: ['android', 'universal'] },
                { _wXEgPWwC: 'V2' + 'rayNG', _RDMSwdSf: '2dust/v2rayNG', _XjxOjthH: ['apk', 'arm64-v8a'] },
                { _wXEgPWwC: '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: [
                { _wXEgPWwC: 'Karing', fixedUrl: 'https://_gQKRsoya.apple.com/us/_asyQvdjk/karing/id6472431552?_CweLKzsq=iphone' },
                { _wXEgPWwC: 'S' + 'ing-Box', fixedUrl: 'https://_gQKRsoya.apple.com/us/_asyQvdjk/sing-box-vt/id6673731168' },
                { _wXEgPWwC: 'Shadow' + 'rocket', fixedUrl: 'https://_gQKRsoya.apple.com/us/_asyQvdjk/shadowrocket/id932747118' },
            ],
            windows: [
                { _wXEgPWwC: 'Karing', _RDMSwdSf: 'KaringX/karing', _XjxOjthH: ['exe', 'x64-setup'] },
                { _wXEgPWwC: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _wXEgPWwC: 'C' + 'lashN', _RDMSwdSf: '2dust/clashN', _XjxOjthH: ['clashN.zip'] },
            ],
            mac: [
                 { _wXEgPWwC: 'Karing', fixedUrl: 'https://_gQKRsoya.apple.com/us/_asyQvdjk/karing/id6472431552?_CweLKzsq=mac' },
                 { _wXEgPWwC: 'S' + 'ing-Box', fixedUrl: 'https://_gQKRsoya.apple.com/us/_asyQvdjk/sing-box-vt/id6673731168' },
            ]
        };
        function _YLINcRLU(_WtFfkLOq) {
            if (_YUrrpOrc.streamer._owqiIfIi && (_WtFfkLOq.includes('github.com') || _WtFfkLOq.includes('cdn.jsdelivr.net'))) {
                return window._lpFyVTKe.origin + '/' + _WtFfkLOq.replace('://', ':/');
            }
            return _WtFfkLOq;
        }
        async function _JmOLblHo(_RDMSwdSf, _XjxOjthH) {
            try {
                const _DzegcNvd = await fetch(_YLINcRLU(`https://api.github.com/repos/${_RDMSwdSf}/releases/latest`));
                if (!_DzegcNvd.ok) return null;
                const _bkGfRqAc = await _DzegcNvd.json();
                for (const _QQJbekjh of _XjxOjthH) {
                    const _XRypeqrU = _bkGfRqAc.assets.find(a => a._wXEgPWwC.toLowerCase().includes(_QQJbekjh.toLowerCase()));
                    if (_XRypeqrU) return _XRypeqrU.browser_download_url;
                }
                return null;
            } catch (_TscaIMJa) { return null; }
        }
        async function _UsRseToZ(_CweLKzsq) {
            const _rtVtPucC = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_CweLKzsq];
            _jGKHBxbd.querySelector('#appModalTitle').textContent = `${_rtVtPucC} 客户端下载`;
            const _VaXbSWIO = _jGKHBxbd.querySelector('#appModalBody');
            _VaXbSWIO.innerHTML = '<span>正在获取最新版本...</span>';
            _jGKHBxbd._AexwCJYV.display = 'flex';
            const _gQKRsoya = _pPHvjFyd[_CweLKzsq];
            let _FdPcXrtE = '';
            for (const _asyQvdjk of _gQKRsoya) {
                let _hBwvoQEY = '';
                if (_asyQvdjk.fixedUrl) {
                    _hBwvoQEY = `<a href="${_YLINcRLU(_asyQvdjk.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_asyQvdjk.fixedUrl.split('/').pop()}</a>`;
                } else if (_asyQvdjk._RDMSwdSf) {
                    const _WtFfkLOq = await _JmOLblHo(_asyQvdjk._RDMSwdSf, _asyQvdjk._XjxOjthH);
                    if (_WtFfkLOq) {
                        _hBwvoQEY = `<a href="${_YLINcRLU(_WtFfkLOq)}" target="_blank" rel="noopener noreferrer">${_WtFfkLOq.split('/').pop()}</a>`;
                    } else {
                        _hBwvoQEY = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _FdPcXrtE += `<div class="_asyQvdjk-list-_pONSZcnI"><span class="_asyQvdjk-_wXEgPWwC">${_asyQvdjk._wXEgPWwC}</span><div class="_asyQvdjk-links">${_hBwvoQEY}</div></div>`;
            }
            _VaXbSWIO.innerHTML = _FdPcXrtE;
        }
        document.querySelectorAll('._asyQvdjk-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _UsRseToZ(button.dataset._CweLKzsq));
        });
        _jGKHBxbd.querySelector('.modal-close-btn').addEventListener('click', () => { _jGKHBxbd._AexwCJYV.display = 'none'; });
        _jGKHBxbd.addEventListener('click', (_TscaIMJa) => { if (_TscaIMJa.target === _jGKHBxbd) _jGKHBxbd._AexwCJYV.display = 'none'; });
    }
    function _gYLmpTlS(_iEWVWSvx, _gppBQjJB) {
        let _cZPBrLPg, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_FdPcXrtE");
        for (_cZPBrLPg = 0; _cZPBrLPg < tabcontent._OtvtecFT; _cZPBrLPg++) {
            tabcontent[_cZPBrLPg]._AexwCJYV.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_cZPBrLPg = 0; _cZPBrLPg < tablinks._OtvtecFT; _cZPBrLPg++) {
            tablinks[_cZPBrLPg].className = tablinks[_cZPBrLPg].className.replace(" active", "");
        }
        document.getElementById(_gppBQjJB)._AexwCJYV.display = "block";
        _iEWVWSvx.currentTarget.className += " active";
    }
    function _nDULIDms() {
        const _MZOXnhEn = document.createElement('div');
        _MZOXnhEn._XrqwuwXJ = 'tooltip-popup';
        document._qReiabDc.appendChild(_MZOXnhEn);
        document.addEventListener('click', function(_TscaIMJa) {
            const _ZJXmgvCF = _TscaIMJa.target.closest('.tooltip-_ZJXmgvCF');
            if (_ZJXmgvCF) {
                const _rIddpXbz = _ZJXmgvCF.dataset.tooltip;
                _MZOXnhEn.textContent = _rIddpXbz;
                const _bYhpJEec = _ZJXmgvCF.getBoundingClientRect();
                _MZOXnhEn._AexwCJYV.display = 'block';
                let _uFWIIVxZ = _bYhpJEec.bottom + window.scrollY + 5;
                let _pAWiKvmx = _bYhpJEec._pAWiKvmx + window.scrollX;
                _MZOXnhEn._AexwCJYV._uFWIIVxZ = `${_uFWIIVxZ}px`;
                _MZOXnhEn._AexwCJYV._pAWiKvmx = `${_pAWiKvmx}px`;
                const _TzKLhNit = _MZOXnhEn.getBoundingClientRect();
                if (_TzKLhNit.right > window.innerWidth - 10) {
                    _pAWiKvmx = window.innerWidth - _TzKLhNit._WjyEpjZd - 10;
                }
                if (_TzKLhNit.bottom > window.innerHeight - 10) {
                    _uFWIIVxZ = _bYhpJEec._uFWIIVxZ + window.scrollY - _TzKLhNit.height - 5;
                }
                _MZOXnhEn._AexwCJYV._uFWIIVxZ = `${_uFWIIVxZ}px`;
                _MZOXnhEn._AexwCJYV._pAWiKvmx = `${_pAWiKvmx}px`;
                _TscaIMJa.stopPropagation();
            } else if (_MZOXnhEn._AexwCJYV.display === 'block') {
                _MZOXnhEn._AexwCJYV.display = 'none';
            }
        });
    }
    const _AexwCJYV = document.createElement('_AexwCJYV');
    _AexwCJYV.textContent = `
        .tab-button { background-_LisCSNVt: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _LisCSNVt: var(--_rIddpXbz-light); font-size: 1em; }
        .tab-button:hover { background-_LisCSNVt: var(--border-_LisCSNVt); }
        .tab-button.active { _LisCSNVt: var(--primary-_LisCSNVt); border-bottom: 2px solid var(--primary-_LisCSNVt); }
        .tab-_FdPcXrtE { display: none; padding-_uFWIIVxZ: 1rem; }
    `;
    document.head.appendChild(_AexwCJYV);
    window.addEventListener('DOMContentLoaded', _FDcGLRZz);
</script>
</_qReiabDc></html>
`;
}