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


import { connect } from "cloudflare:sockets";

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

const _XrMhJIHQ = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _hUdCtLjZ = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _YnAiTEhT = '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 _nlVdDGjL = '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 _UPtZJZog(_OSrmevEI) {
    if (Array.isArray(_OSrmevEI)) {
        try {
            return String.fromCharCode.apply(null, _OSrmevEI);
        } catch (_NUwPKiAC) {
            return '';
        }
    }
    return _OSrmevEI;
}

function _GzHdifSE(_qUySIauG) {
    return /^[0-9a-_AbufPxZv]{8}-[0-9a-_AbufPxZv]{4}-[4][0-9a-_AbufPxZv]{3}-[89ab][0-9a-_AbufPxZv]{3}-[0-9a-_AbufPxZv]{12}$/_FxtYvbgs.test(_qUySIauG);
}

const _aWIuXolF = "optimized_ips_v4";
const _NkTOwMeY = "global_config_v4";
const _OFBUJzxq = "admin_password_v4";
const _KAvuJXTh = "live_results_temp_v1";
const _oHzqeNSQ = "latest_sub_id_v1";

export default {
  async fetch(_WBoBvXUQ, _samfUQHZ, _LPhWtaBS) {
    try {
      if (!_samfUQHZ.DB) {
          const _XhQgWhSd = _OkYpXccH("D1 数据库 'DB' 未绑定。");
          return new Response(_XhQgWhSd, { status: 503, _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/html;_NESIoZam=UTF-8' }});
      }

      _LPhWtaBS.waitUntil(
          _samfUQHZ.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_JWejvvPQ TEXT PRIMARY KEY, _OSrmevEI TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_qUySIauG TEXT PRIMARY KEY, _doqJNITP TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_NUwPKiAC => console.error("DB Init Error:", _NUwPKiAC._kzBgbZvP))
      );

      const _hAOyACBH = new URL(_WBoBvXUQ._hAOyACBH);
      const _xkxIMsqp = _hAOyACBH.pathname;
      const _ZkTWEafe = _WBoBvXUQ._kzgWJgEg.get("Upgrade");
      const _mDXCcgug = await _iawREvrc(_samfUQHZ);
      
      if (_mDXCcgug.websocketStreamer && _mDXCcgug.websocketStreamer._EICbdOEb && _ZkTWEafe && _ZkTWEafe.toLowerCase() === "websocket") {
          const _cNugejOa = _mDXCcgug.websocketStreamer._hAOyACBH;
          if (_cNugejOa && _cNugejOa.trim().startsWith('https://')) {
              try {
                  const _POICWsFq = new Request(_cNugejOa.trim() + _hAOyACBH.pathname + _hAOyACBH.search, _WBoBvXUQ);
                  return await fetch(_POICWsFq);
              } catch (_NUwPKiAC) {
                  return new Response(`Upstream WebSocket gateway failed: ${_NUwPKiAC._kzBgbZvP}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_ZkTWEafe && _ZkTWEafe.toLowerCase() === "websocket") {
          return await _HltHiIVd(_WBoBvXUQ, _samfUQHZ, _mDXCcgug);
      }
      
      const _rtcKPjpJ = _xkxIMsqp._sEvpxJUB(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_rtcKPjpJ) {
          const [, _MKeregBx, typeSuffix] = _rtcKPjpJ;
          const _nTMcjsQK = _mDXCcgug._nTMcjsQK;
          if (!_nTMcjsQK || _nTMcjsQK.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/plain; _NESIoZam=utf-8' } });
          }
          const _esZwdwsL = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _JbvecKGm = _esZwdwsL[typeSuffix];
          const _CGeNITVZ = _nTMcjsQK.replace(/\/$/, '');
          const _zcPYiTLy = `${_hAOyACBH.origin}/${_MKeregBx}`;
          const _bsLwycQz = `${_CGeNITVZ}/${_JbvecKGm}?_mDXCcgug=${encodeURIComponent(_zcPYiTLy)}`;
          try {
              const _VyWfDVhv = await fetch(_bsLwycQz, { _kzgWJgEg: { 'User-Agent': _WBoBvXUQ._kzgWJgEg.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _OOhRdqzr = new Headers(_VyWfDVhv._kzgWJgEg);
              _OOhRdqzr._ClyzlPmH('Access-Control-Allow-Origin', '*');
              return new Response(_VyWfDVhv._fAGjBqRJ, { status: _VyWfDVhv.status, statusText: _VyWfDVhv.statusText, _kzgWJgEg: _OOhRdqzr });
          } catch (_NUwPKiAC) {
              return new Response(`获取上游订阅失败: ${_NUwPKiAC._kzBgbZvP}`, { status: 502, _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/plain; _NESIoZam=utf-8' } });
          }
      }

      if (_xkxIMsqp.startsWith('/https:/') || _xkxIMsqp.startsWith('/http:/')) {
          return _bTemVMkh(_WBoBvXUQ, _mDXCcgug);
      }
      
      if (_mDXCcgug.customSubPath && _mDXCcgug.customSubPath._EICbdOEb && _mDXCcgug.customSubPath._xkxIMsqp && _xkxIMsqp === '/' + _mDXCcgug.customSubPath._xkxIMsqp.trim()) {
          const _ACcrvQCN = _samfUQHZ.DB.prepare("SELECT _OSrmevEI FROM kv_data WHERE _JWejvvPQ = ?").bind(_oHzqeNSQ);
          const { _CdUFdqhE } = await _ACcrvQCN.all();
          const _tadqChgp = _CdUFdqhE._xlQSmFSS > 0 ? _CdUFdqhE[0]._OSrmevEI : null;
          if (_tadqChgp) {
              return _fQvVpJzV({ _QzBnPtZy: { _qUySIauG: _tadqChgp }, _hAOyACBH: _WBoBvXUQ._hAOyACBH }, _samfUQHZ);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/plain; _NESIoZam=utf-8' } });
          }
      }
      
      const _KCqXSmUu = _xkxIMsqp.split('/').filter(Boolean);
      if (_KCqXSmUu._xlQSmFSS === 1 && !_xkxIMsqp.startsWith('/api/')) {
          const _MKeregBx = _KCqXSmUu[0];
          return _fQvVpJzV({ _QzBnPtZy: { _qUySIauG: _MKeregBx }, _hAOyACBH: _WBoBvXUQ._hAOyACBH }, _samfUQHZ);
      }

      if (_xkxIMsqp.startsWith('/api/')) {
          if (_xkxIMsqp === '/api/_mDXCcgug' && _WBoBvXUQ.method === 'POST') return _OYMEyuwv(_WBoBvXUQ, _samfUQHZ, _LPhWtaBS);
          if (_xkxIMsqp === '/api/_ClyzlPmH-_yTYaUEYc') return _CzuKeRnY(_WBoBvXUQ, _samfUQHZ);
          if (_xkxIMsqp === '/api/change-_yTYaUEYc') return _RzNriKyQ(_WBoBvXUQ, _samfUQHZ);
          if (_xkxIMsqp === '/api/verify-_yTYaUEYc') return _uSYGDjRL(_WBoBvXUQ, _samfUQHZ);
          if (_xkxIMsqp === '/api/verify-visitor-_yTYaUEYc' && _WBoBvXUQ.method === 'POST') return _ysRauLmI(_WBoBvXUQ, _samfUQHZ);
          if (_xkxIMsqp === '/api/cache-live-_CdUFdqhE' && _WBoBvXUQ.method === 'POST') return _KsPoQARG(_WBoBvXUQ, _samfUQHZ, _LPhWtaBS);
          if (_xkxIMsqp === '/api/get-_ODAlmwVo' && _WBoBvXUQ.method === 'POST') return _EMLlTOCm(_WBoBvXUQ, _samfUQHZ);
          if (_xkxIMsqp === '/api/get-cached-_swsJMlco') return _SNlyrniq(_WBoBvXUQ, _samfUQHZ);
          if (_xkxIMsqp === '/api/save-_swsJMlco') return _hKcRodft(_WBoBvXUQ, _samfUQHZ, _LPhWtaBS);
          if (_xkxIMsqp === '/api/save-and-get-sub-_qUySIauG' && _WBoBvXUQ.method === 'POST') return _NbTHmCAo(_WBoBvXUQ, _samfUQHZ);
          if (_xkxIMsqp.startsWith('/api/get-_SiJCWWxA/')) {
              const _MKeregBx = _xkxIMsqp.split('/').pop();
              return _fQvVpJzV({ _QzBnPtZy: { _qUySIauG: _MKeregBx }, _hAOyACBH: _WBoBvXUQ._hAOyACBH }, _samfUQHZ);
          }
          if (_xkxIMsqp === '/api/_mDXCcgug' && _WBoBvXUQ.method === 'GET') return _hqyRIyit(_samfUQHZ);
          if (_xkxIMsqp === '/api/get-resolved-_swsJMlco') return _lKGkXzuS(_WBoBvXUQ);
          if (_xkxIMsqp === '/api/parse-_swsJMlco-from-_nXkCwhGK' && _WBoBvXUQ.method === 'POST') return _tPrpYFQf(_WBoBvXUQ, _samfUQHZ);
          if (_xkxIMsqp === '/api/endpoints') return _XkwebnqW(_WBoBvXUQ, _samfUQHZ);
          if (_xkxIMsqp === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_xkxIMsqp === '/_CovLyHaq') return _PntJPFat(_WBoBvXUQ, _samfUQHZ);
      if (_xkxIMsqp === '/bing-wallpaper') return _MDkAnBPH();

      return _xCQjnjBy(_WBoBvXUQ, _samfUQHZ, _LPhWtaBS);
    } catch (err) {
      let _NUwPKiAC = err;
      return new Response(_NUwPKiAC.toString(), { status: 500 });
    }
  }
};

const _pYsJMJsP = { 'Accept': '_HJNrlnmJ/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 _mdYxQtln(_hAOyACBH, _EWEkWKYu) {
    const _ouBdLylk = await fetch(_hAOyACBH, { _kzgWJgEg: { ..._pYsJMJsP, 'Referer': _EWEkWKYu.referer } });
    if (_ouBdLylk.ok) return _ouBdLylk._HJNrlnmJ();
    return null;
}

async function _mOtDCFDu(_hAOyACBH, _EWEkWKYu) {
    const _sueFGzVh = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_hAOyACBH)}`;
    const _ouBdLylk = await fetch(_sueFGzVh, { _kzgWJgEg: { ..._pYsJMJsP, 'Referer': _EWEkWKYu.referer } });
    if (!_ouBdLylk.ok) return null;
    const _fAGjBqRJ = await _ouBdLylk._HJNrlnmJ();
    const _sEvpxJUB = _fAGjBqRJ._sEvpxJUB(/<pre[^>]*>([\s\S]*?)<\/pre>/_FxtYvbgs);
    return _sEvpxJUB && _sEvpxJUB[1] ? _sEvpxJUB[1].replace(/&amp;/g, '&') : null;
}

function _UCwfmZON(_BFizQQrx) {
    let _LGUdjSCZ;
    try {
        _LGUdjSCZ = atob(_BFizQQrx.replace(/\s/g, ''));
    } catch (_NUwPKiAC) {
        _LGUdjSCZ = _BFizQQrx;
    }

    const _SiJCWWxA = _LGUdjSCZ.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _bMiawXmJ = new Set();
    const _ubXzzWKx = /@([^?#]+?):(\d+)/;

    for (const _AMbDwuas of _SiJCWWxA) {
        let _nlGCZlTv = '';
        let _pHhyjphg = '';

        try {
            if (_AMbDwuas.startsWith('vmess://')) {
                const _LfSzaTJg = atob(_AMbDwuas.substring(8));
                const _mDXCcgug = JSON.parse(_LfSzaTJg);
                _nlGCZlTv = _mDXCcgug.add;
                _pHhyjphg = _mDXCcgug._pHhyjphg;
            } else {
                const _sEvpxJUB = _AMbDwuas._sEvpxJUB(_ubXzzWKx);
                if (_sEvpxJUB && _sEvpxJUB[1] && _sEvpxJUB[2]) {
                    _nlGCZlTv = _sEvpxJUB[1].replace(/[\[\]]/g, '');
                    _pHhyjphg = _sEvpxJUB[2];
                }
            }
        } catch (_NUwPKiAC) {
            console.warn(`Could not parse _AMbDwuas: ${_AMbDwuas}`);
        }

        if (_nlGCZlTv && _pHhyjphg) {
            _bMiawXmJ.add(`${_nlGCZlTv}:${_pHhyjphg}`);
        }
    }
    return Array.from(_bMiawXmJ);
}

async function _CQRrJnzs(_TqBjZPXp) {
    try {
        const _ouBdLylk = await fetch(_TqBjZPXp, { _kzgWJgEg: _pYsJMJsP });
        if (!_ouBdLylk.ok) {
            console.error(`Failed to fetch subscription: ${_ouBdLylk.status}`);
            return [];
        }
        const _BFizQQrx = await _ouBdLylk._HJNrlnmJ();
        return _UCwfmZON(_BFizQQrx);
    } catch (error) {
        console.error(`Error processing subscription ${_TqBjZPXp}:`, error);
        return [];
    }
}

async function _SYBjyywq(_FtHHGzjT) {
    const _aAioQeXa = _FtHHGzjT.trim();
    const _nccuMRap = /^(vless|vmess|trojan|ss):\/\//.test(_aAioQeXa);
    const _VYdICkJw = (() => {
        if (_aAioQeXa._xlQSmFSS < 20 || _aAioQeXa.startsWith('http')) return false;
        const _tjxpVrxs = _aAioQeXa.replace(/\s/g, '');
        if (_tjxpVrxs._xlQSmFSS % 4 !== 0 && !_tjxpVrxs.includes('=')) return false;
        try {
            atob(_tjxpVrxs);
            return true;
        } catch (_NUwPKiAC) {
            return false;
        }
    })();

    if (_nccuMRap || _VYdICkJw) {
        return _UCwfmZON(_aAioQeXa).join('\n');
    }

    const _JpQZQUKX = [
        'https://ipdb.api.030101.xyz/?_PAwiNaUj=bestcf&_txfunSmO=true',
        'https://ipdb.api.030101.xyz/?_PAwiNaUj=bestproxy&_txfunSmO=true'
    ];
    const _uvlhRUnJ = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_FxtYvbgs.test(_FtHHGzjT) || _FtHHGzjT.includes('?_UuzRiSwA=');

    if (_uvlhRUnJ) {
        const _swsJMlco = await _CQRrJnzs(_FtHHGzjT);
        return _swsJMlco.join('\n');
    }

    let _BFizQQrx = '';
    if (_JpQZQUKX.includes(_FtHHGzjT)) {
        _BFizQQrx = await _mdYxQtln(_FtHHGzjT, { referer: _FtHHGzjT });
        if (!_BFizQQrx || _BFizQQrx._xlQSmFSS < 8) {
            _BFizQQrx = await _mOtDCFDu(_FtHHGzjT, { referer: _FtHHGzjT });
        }
    } else {
        try {
            const _gtzuLSzx = await fetch(_FtHHGzjT, { _kzgWJgEg: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_gtzuLSzx.ok) {
                _BFizQQrx = await _gtzuLSzx._HJNrlnmJ();
            } else {
                console.warn(`Failed to fetch URL ${_FtHHGzjT}: ${_gtzuLSzx.status}`);
            }
        } catch (_NUwPKiAC) {
            console.error(`Error fetching URL ${_FtHHGzjT}:`, _NUwPKiAC);
        }
    }

    const _PPnFgYnS = _UCwfmZON(_BFizQQrx);
    if (_PPnFgYnS._xlQSmFSS > 0) {
        return _PPnFgYnS.join('\n');
    }

    return _BFizQQrx || '';
}

async function _bTemVMkh(_WBoBvXUQ, _mDXCcgug) {
    if (!_mDXCcgug.streamer._EICbdOEb) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _hAOyACBH = new URL(_WBoBvXUQ._hAOyACBH);
    const _GODdAFLq = _hAOyACBH.pathname.substring(1).replace(':/', '://');
    try {
        const _bsLwycQz = new URL(_GODdAFLq);
        const _UBNrqFkr = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_UBNrqFkr.some(domain => _bsLwycQz._nlGCZlTv.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _UbOfbdis = new Headers(_WBoBvXUQ._kzgWJgEg);
        _UbOfbdis._ClyzlPmH('Host', _bsLwycQz._nlGCZlTv);
        _UbOfbdis._ClyzlPmH('User-Agent', 'CF-Worker-Streamer/1.0');
        const _aAdNashz = await fetch(_bsLwycQz.toString(), {
            method: _WBoBvXUQ.method,
            _kzgWJgEg: _UbOfbdis,
            _fAGjBqRJ: _WBoBvXUQ._fAGjBqRJ,
        });
        const _OOhRdqzr = new Headers(_aAdNashz._kzgWJgEg);
        _OOhRdqzr._ClyzlPmH('Access-Control-Allow-Origin', '*');
        _OOhRdqzr._ClyzlPmH('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _OOhRdqzr._ClyzlPmH('Access-Control-Allow-Headers', '*');
        _OOhRdqzr._ClyzlPmH('Cache-Control', 'public, max-age=86400');
        _OOhRdqzr._ClyzlPmH('X-Streamer-Source', 'CF-Worker');
        _OOhRdqzr.delete('_BFizQQrx-security-policy');
        _OOhRdqzr.delete('x-_BFizQQrx-security-policy');
        _OOhRdqzr.delete('x-webkit-csp');
        return new Response(_aAdNashz._fAGjBqRJ, {
            status: _aAdNashz.status,
            statusText: _aAdNashz.statusText,
            _kzgWJgEg: _OOhRdqzr,
        });
    } catch (_NUwPKiAC) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _HltHiIVd(_WBoBvXUQ, _samfUQHZ, _mDXCcgug) {
    try {
        const _VrwOCrte = _mDXCcgug || await _iawREvrc(_samfUQHZ);
        const _SMfcRlGI = (_VrwOCrte.itemLink._umORasTZ && _VrwOCrte.itemLink._umORasTZ[0]) || {};
        const _jkomqGxg = _SMfcRlGI['_UuzRiSwA'] || _UPtZJZog(_asJbATvc);

        if (!_GzHdifSE(_jkomqGxg)) {
            throw new Error("Configured user _DcwjEjzQ is not valid.");
        }

        const _pMOSDRdu = _VrwOCrte.dataFeeds.universalFallbackAddress;
        let _JfvpqGVf = {};
        
        const _PtzVVVGX = _UPtZJZog(_LaBBVVEo[0] || "");

        if (_pMOSDRdu) {
            const [_kNbCYthH, _pHhyjphg = '443'] = _pMOSDRdu.split(':');
            _JfvpqGVf = { _kNbCYthH, _pHhyjphg };
        } else {
            const [_kNbCYthH, _pHhyjphg = '443'] = _PtzVVVGX.split(':');
            _JfvpqGVf = { _kNbCYthH, _pHhyjphg };
        }

        const _hAOyACBH = new URL(_WBoBvXUQ._hAOyACBH);
        const _xkxIMsqp = _hAOyACBH.pathname;
        let _TREGstTw = '';

        const _ZVOKqXEz = _hAOyACBH.searchParams.get('remote');
        if (_ZVOKqXEz) {
           _TREGstTw = atob(_ZVOKqXEz);
        } else if (_xkxIMsqp.startsWith('/endpoint=')) {
           _TREGstTw = _xkxIMsqp.substring(10);
        } else if (_xkxIMsqp._xlQSmFSS > 1 && _xkxIMsqp.substring(1).includes('.')) {
           _TREGstTw = _xkxIMsqp.substring(1);
        }

        if (_TREGstTw) {
            const [_kNbCYthH, _pHhyjphg = '443'] = _TREGstTw.split(':');
            _JfvpqGVf = { _kNbCYthH, _pHhyjphg };
        }
        
        return await _zwQMfAWS(_WBoBvXUQ, _jkomqGxg, _JfvpqGVf);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _zwQMfAWS(_WBoBvXUQ, _DcwjEjzQ, _JfvpqGVf) {
    const _GdbVGEVj = new WebSocketPair();
    const [clientEnd, _DNLmzjcY] = Object.values(_GdbVGEVj);
    _DNLmzjcY.accept();

    let _PonBrGZh = { _LSKaoBVl: null };
    const _RDYIxUaa = _WBoBvXUQ._kzgWJgEg.get("sec-websocket-protocol") || "";
    const _rCsMRTlz = _qUUertCM(_DNLmzjcY, _RDYIxUaa);

    _rCsMRTlz.pipeTo(new WritableStream({
        async write(chunk) {
            if (_PonBrGZh._LSKaoBVl) {
                const _EshSapxW = _PonBrGZh._LSKaoBVl.writable.getWriter();
                await _EshSapxW.write(chunk);
                _EshSapxW.releaseLock();
                return;
            }

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

            const _sbrfaRCv = new Uint8Array([details._sHqMfMKx[0], 0]);
            const _btBKBwGS = chunk.slice(details.payloadIndex);

            await _TouHPzfS(_PonBrGZh, details._cDtoFkSK, details._gDPHdAcq, _btBKBwGS, _DNLmzjcY, _sbrfaRCv, _JfvpqGVf);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _gifwLvyj(_DNLmzjcY);
    });

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

async function _TouHPzfS(_PonBrGZh, _cDtoFkSK, _gDPHdAcq, _JzGlvpvO, _cHOuYnbu, _sbrfaRCv, _HhcYaBjx) {
    const _jRqhJSZI = async (_kNbCYthH, _pHhyjphg) => {
        let _JXshGpdc = _kNbCYthH;
        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(_kNbCYthH)) {
            _JXshGpdc = `${atob('d3d3Lg==')}${_kNbCYthH}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _LSKaoBVl = connect({ _nlGCZlTv: _JXshGpdc, _pHhyjphg });
        _PonBrGZh._LSKaoBVl = _LSKaoBVl;
        const _EshSapxW = _LSKaoBVl.writable.getWriter();
        await _EshSapxW.write(_JzGlvpvO);
        _EshSapxW.releaseLock();
        return _LSKaoBVl;
    };

    const _LpsdxNcS = async () => {
        if (!_HhcYaBjx._kNbCYthH) return;
        console.log(`Direct connection failed, falling back to gateway: ${_HhcYaBjx._kNbCYthH}`);
        const _mgOOwvEn = await _jRqhJSZI(_HhcYaBjx._kNbCYthH, parseInt(_HhcYaBjx._pHhyjphg, 10));
        _mgOOwvEn.closed.catch(() => {}).finally(() => _gifwLvyj(_cHOuYnbu));
        _jQAjtivL(_mgOOwvEn, _cHOuYnbu, _sbrfaRCv, null);
    };

    try {
        const _FMBYLPtG = await _jRqhJSZI(_cDtoFkSK, _gDPHdAcq);
        _jQAjtivL(_FMBYLPtG, _cHOuYnbu, _sbrfaRCv, _LpsdxNcS);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _LpsdxNcS();
    }
}

function _qUUertCM(_DNLmzjcY, _RDYIxUaa) {
    let _DtIkJaYM = false;
    return new ReadableStream({
        start(_MzmEOTSq) {
            _DNLmzjcY.addEventListener("_kzBgbZvP", (event) => { if (_DtIkJaYM) return; _MzmEOTSq.enqueue(event._doqJNITP); });
            _DNLmzjcY.addEventListener("close", () => { _gifwLvyj(_DNLmzjcY); if (_DtIkJaYM) return; _MzmEOTSq.close(); });
            _DNLmzjcY.addEventListener("error", (err) => _MzmEOTSq.error(err));
            if (_RDYIxUaa) {
                try {
                    const _tZhDFKRt = atob(_RDYIxUaa.replace(/-/g, "+").replace(/_/g, "/"));
                    _MzmEOTSq.enqueue(Uint8Array.from(_tZhDFKRt, c => c.charCodeAt(0))._CdaDMKBx);
                } catch (_NUwPKiAC) { console.error("Failed to decode early _doqJNITP:", _NUwPKiAC); }
            }
        },
        cancel() { _DtIkJaYM = true; _gifwLvyj(_DNLmzjcY); },
    });
}

async function _AXlqseLo(_CdaDMKBx, _DcwjEjzQ) {
    if (_CdaDMKBx.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _sHqMfMKx = new Uint8Array(_CdaDMKBx.slice(0, 1));
    const _hXHkwetI = _FFyjZFnq(new Uint8Array(_CdaDMKBx.slice(1, 17)));
    if (_hXHkwetI !== _DcwjEjzQ) return { error: true, details: "Invalid _DcwjEjzQ" };
    const _JSlrPTgv = new Uint8Array(_CdaDMKBx.slice(17, 18))[0];
    const _amVmYzFz = new Uint8Array(_CdaDMKBx.slice(18 + _JSlrPTgv, 19 + _JSlrPTgv))[0];
    if (_amVmYzFz !== 1) return { error: true, details: `Unsupported _amVmYzFz: ${_amVmYzFz}` };
    const _CvCTmlTU = 19 + _JSlrPTgv;
    const _gDPHdAcq = new DataView(_CdaDMKBx.slice(_CvCTmlTU, _CvCTmlTU + 2)).getUint16(0);
    let _oPMSnWZr = _CvCTmlTU + 2;
    const _OJGKdvBZ = new Uint8Array(_CdaDMKBx.slice(_oPMSnWZr, _oPMSnWZr + 1))[0];
    let _mQunsANo = 0;
    let _ysFKySnJ = _oPMSnWZr + 1;
    let _cDtoFkSK = "";
    switch (_OJGKdvBZ) {
        case 1: _mQunsANo = 4; _cDtoFkSK = new Uint8Array(_CdaDMKBx.slice(_ysFKySnJ, _ysFKySnJ + _mQunsANo)).join("."); break;
        case 2: _mQunsANo = new Uint8Array(_CdaDMKBx.slice(_ysFKySnJ, _ysFKySnJ + 1))[0]; _ysFKySnJ++; _cDtoFkSK = new TextDecoder().decode(_CdaDMKBx.slice(_ysFKySnJ, _ysFKySnJ + _mQunsANo)); break;
        case 3: _mQunsANo = 16; const _bnfbvwUP = new DataView(_CdaDMKBx.slice(_ysFKySnJ, _ysFKySnJ + _mQunsANo)); const _BoRVqaMv = []; for (let _FxtYvbgs = 0; _FxtYvbgs < 8; _FxtYvbgs++) _BoRVqaMv.push(_bnfbvwUP.getUint16(_FxtYvbgs * 2).toString(16)); _cDtoFkSK = _BoRVqaMv.join(":"); break;
        default: return { error: true, details: `Invalid _pLZuGTHG _PAwiNaUj: ${_OJGKdvBZ}` };
    }
    if (!_cDtoFkSK) return { error: true, details: "Target _kNbCYthH is empty" };
    return { error: false, details: { _cDtoFkSK, _gDPHdAcq, _sHqMfMKx, payloadIndex: _ysFKySnJ + _mQunsANo } };
}

async function _jQAjtivL(_LSKaoBVl, _cHOuYnbu, _CGabxIdD, _KbwHWDYM) {
    let _RTsSwYGI = _CGabxIdD;
    let _vNubXGQD = false;
    let _AOweWgMI = _LSKaoBVl._rCsMRTlz.pipeTo(new WritableStream({
        write(chunk) {
            _vNubXGQD = true;
            if (_cHOuYnbu.readyState !== 1) throw new Error("Channel is not open");
            if (_RTsSwYGI) {
                const _RHsfvofl = new Uint8Array(_RTsSwYGI.byteLength + chunk.byteLength);
                _RHsfvofl._ClyzlPmH(new Uint8Array(_RTsSwYGI));
                _RHsfvofl._ClyzlPmH(new Uint8Array(chunk), _RTsSwYGI.byteLength);
                _cHOuYnbu.send(_RHsfvofl._CdaDMKBx);
                _RTsSwYGI = null;
            } else {
                _cHOuYnbu.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _cHOuYnbu error:", err._kzBgbZvP);
    });

    await _AOweWgMI;
    if (!_vNubXGQD && _KbwHWDYM) {
        _KbwHWDYM();
    }
}

function _gifwLvyj(_cHOuYnbu) {
    try { if (_cHOuYnbu.readyState === 1 || _cHOuYnbu.readyState === 2) _cHOuYnbu.close(); } catch (_NUwPKiAC) {}
}

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

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

async function _fYeVguRn(_hAOyACBH, _cPjUpchL, _KbwHWDYM) {
    try {
        const _ouBdLylk = await fetch(_hAOyACBH, {
            _kzgWJgEg: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_ouBdLylk.ok) {
            console.error(`获取 ${_hAOyACBH} 失败: HTTP ${_ouBdLylk.status}`);
            return _KbwHWDYM;
        }
        const _HJNrlnmJ = await _ouBdLylk._HJNrlnmJ();
        return _cPjUpchL(_HJNrlnmJ);
    } catch (error) {
        console.error(`获取或解析 ${_hAOyACBH} 时发生网络错误: ${error._kzBgbZvP}`);
        return _KbwHWDYM;
    }
}

function _wANXxapn(_HJNrlnmJ) {
    if (!_HJNrlnmJ) return [];
    const _WvsIynfF = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _xIrhlqvj = _HJNrlnmJ.split(/[\s,;#|]+/);
    const _iJBuWnoY = [];
    for (const _otSPUMVd of _xIrhlqvj) {
        const _OyFKYrZA = _otSPUMVd.trim();
        if (!_OyFKYrZA) continue;
        const _Ctoxjcie = _OyFKYrZA.lastIndexOf(':');
        let _jfgsjpee = _OyFKYrZA;
        if(_Ctoxjcie > _OyFKYrZA.lastIndexOf(']')) {
             const _jwSdRmvx = _OyFKYrZA.substring(_Ctoxjcie + 1);
             if(!isNaN(_jwSdRmvx) && _jwSdRmvx._xlQSmFSS > 0) {
                _jfgsjpee = _OyFKYrZA.substring(0, _Ctoxjcie);
             }
        }
        if (_ipYFRPID.isValid(_jfgsjpee.replace(/[\[\]]/g, '')) || _WvsIynfF.test(_OyFKYrZA)) {
            _iJBuWnoY.push(_OyFKYrZA);
        }
    }
    return _iJBuWnoY;
}

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

function _JAxzpTnT(_HJNrlnmJ) {
    if (!_HJNrlnmJ) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_HJNrlnmJ}}`);
    } catch (_NUwPKiAC) {
        console.error("解析 _CoYOmLgw 失败:", _NUwPKiAC);
        return { "N/A": "未知" };
    }
}

const _ipYFRPID = {
    isValid: (_CovLyHaq) => _ipYFRPID.isIPv4(_CovLyHaq) || _ipYFRPID.isIPv6(_CovLyHaq),
    isIPv4: (_CovLyHaq) => {
        if (typeof _CovLyHaq !== 'string') return false;
        const _BoRVqaMv = _CovLyHaq.split('.');
        if (_BoRVqaMv._xlQSmFSS !== 4) return false;
        return _BoRVqaMv.every(_PqPlNtmC => {
            const _zGGaRlRE = parseInt(_PqPlNtmC, 10);
            return !isNaN(_zGGaRlRE) && _zGGaRlRE >= 0 && _zGGaRlRE <= 255 && String(_zGGaRlRE) === _PqPlNtmC;
        });
    },
    isIPv6: (_CovLyHaq) => {
        if (typeof _CovLyHaq !== '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]))$/_FxtYvbgs.test(_CovLyHaq);
    },
    toLong4: (_CovLyHaq) => _CovLyHaq.split('.').reduce((acc, octet, _FxtYvbgs) => acc + (parseInt(octet) << (8*(3-_FxtYvbgs))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_CovLyHaq) => {
        try {
            const _UMEbrJzl = _CovLyHaq.split('/')[0];
            const _BoRVqaMv = _UMEbrJzl.split('::');
            if (_BoRVqaMv._xlQSmFSS > 2) return 0n;
            let _nythjqPL = [];
            if (_BoRVqaMv[0]) {
                _nythjqPL = _BoRVqaMv[0].split(':');
            }
            let _mpKLMwQs = [];
            if (_BoRVqaMv._xlQSmFSS > 1 && _BoRVqaMv[1]) {
                _mpKLMwQs = _BoRVqaMv[1].split(':');
            }
            if (_nythjqPL._xlQSmFSS + _mpKLMwQs._xlQSmFSS > 8) return 0n;
            const _MwYvFNJt = 8 - (_nythjqPL._xlQSmFSS + _mpKLMwQs._xlQSmFSS);
            const _RyfDAcsX = [
                ..._nythjqPL,
                ...Array(_MwYvFNJt).fill('0'),
                ..._mpKLMwQs
            ].map(_PqPlNtmC => _PqPlNtmC || '0');
            while(_RyfDAcsX._xlQSmFSS < 8) {
                _RyfDAcsX.push('0');
            }
            let _uyuRayET = 0n;
            for (const _PqPlNtmC of _RyfDAcsX) {
                if (_PqPlNtmC._xlQSmFSS > 4) return 0n;
                const _OSrmevEI = BigInt('0x' + _PqPlNtmC);
                _uyuRayET = (_uyuRayET << 16n) | _OSrmevEI;
            }
            return _uyuRayET;
        } catch(_NUwPKiAC) {
            return 0n;
        }
    },
    fromBigInt6: (_uyuRayET) => {
        if (typeof _uyuRayET !== '_uyuRayET' || _uyuRayET < 0n) return null;
        const _BoRVqaMv = [];
        for (let _FxtYvbgs = 0; _FxtYvbgs < 8; _FxtYvbgs++) {
            _BoRVqaMv.unshift((_uyuRayET & 0xFFFFn).toString(16));
            _uyuRayET >>= 16n;
        }
        let _qUeNhEZl = { start: -1, _FPmLrmRw: 0 };
        let _mhVeEUbO = { start: -1, _FPmLrmRw: 0 };
        for (let _FxtYvbgs = 0; _FxtYvbgs < 8; _FxtYvbgs++) {
            if (_BoRVqaMv[_FxtYvbgs] === '0') {
                if (_mhVeEUbO.start === -1) _mhVeEUbO.start = _FxtYvbgs;
                _mhVeEUbO._FPmLrmRw++;
            } else {
                if (_mhVeEUbO._FPmLrmRw > _qUeNhEZl._FPmLrmRw) _qUeNhEZl = { ..._mhVeEUbO };
                _mhVeEUbO = { start: -1, _FPmLrmRw: 0 };
            }
        }
        if (_mhVeEUbO._FPmLrmRw > _qUeNhEZl._FPmLrmRw) _qUeNhEZl = { ..._mhVeEUbO };
        if (_qUeNhEZl._FPmLrmRw > 1) {
            _BoRVqaMv.splice(_qUeNhEZl.start, _qUeNhEZl._FPmLrmRw, '');
            if (_qUeNhEZl.start === 0) _BoRVqaMv.unshift('');
            if (_qUeNhEZl.start + _qUeNhEZl._FPmLrmRw === 8) _BoRVqaMv.push('');
        }
        return _BoRVqaMv.join(':');
    },
    cidrToRange: (cidr, _nGOPEiAM = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _PTikaBAp = parseInt(bitsStr, 10);
            const _swsJMlco = new Set();
            if (_ipYFRPID.isIPv4(range)) {
                if (isNaN(_PTikaBAp) || _PTikaBAp < 8 || _PTikaBAp > 32) return [];
                if (_PTikaBAp === 32) return [range];
                const _FnEeFqUo = _ipYFRPID.toLong4(range);
                const _AMWdUPIk = (0xFFFFFFFF << (32 - _PTikaBAp)) >>> 0;
                const _xqbtvckd = _FnEeFqUo & _AMWdUPIk;
                const _ijGtUtwI = 1 << (32 - _PTikaBAp);
                if (_ijGtUtwI <= 2) return [];
                const _bafQnyXA = Math.min(_nGOPEiAM, _ijGtUtwI - 2);
                let _BttKvHPM = 0;
                while (_swsJMlco.size < _bafQnyXA && _BttKvHPM < _bafQnyXA * 5) {
                    const _TTXrMXuB = Math.floor(Math.random() * (_ijGtUtwI - 2)) + 1;
                    _swsJMlco.add(_ipYFRPID.fromLong4((_xqbtvckd + _TTXrMXuB) >>> 0));
                    _BttKvHPM++;
                }
                return Array.from(_swsJMlco);
            } else if (_ipYFRPID.isIPv6(range)) {
                if (isNaN(_PTikaBAp) || _PTikaBAp < 16 || _PTikaBAp > 128) return [];
                 if (_PTikaBAp === 128) return [range];
                const _aJQolpzU = _ipYFRPID.toBigInt6(range);
                const _AMWdUPIk = (2n ** BigInt(128 - _PTikaBAp) - 1n);
                const _xqbtvckd = _aJQolpzU & ~_AMWdUPIk;
                const _PsZWfPDX = 2n ** BigInt(128 - _PTikaBAp);
                if (_PsZWfPDX <= 2n) return [];
                let _BttKvHPM = 0;
                while (_swsJMlco.size < _nGOPEiAM && _BttKvHPM < _nGOPEiAM * 5) {
                     const _fkUdKDiC = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_fkUdKDiC);
                     let _yPEzyWMg = 0n;
                     for (const _YxQBkLGY of _fkUdKDiC) {
                         _yPEzyWMg = (_yPEzyWMg << 8n) | BigInt(_YxQBkLGY);
                     }
                     const _TTXrMXuB = _yPEzyWMg % (_PsZWfPDX - 2n) + 1n;
                     _swsJMlco.add(_ipYFRPID.fromBigInt6(_xqbtvckd + _TTXrMXuB));
                     _BttKvHPM++;
                }
                return Array.from(_swsJMlco);
            }
            return [];
        } catch(_NUwPKiAC) {
            console.error(`CIDR to range failed for ${cidr}:`, _NUwPKiAC);
            return [];
        }
    }
};

function _GbSpUUzu(_RsokIhog, _gOgLmPDs) {
    const _ygreXBds = {};
    const _QefHAMaK = Object._QefHAMaK(_gOgLmPDs);
    const _BoRVqaMv = _QefHAMaK.map(_JWejvvPQ => {
        const _mMxHHGaK = _RsokIhog * (_gOgLmPDs[_JWejvvPQ] / 100);
        return { _JWejvvPQ, _nGOPEiAM: Math.floor(_mMxHHGaK), remainder: _mMxHHGaK - Math.floor(_mMxHHGaK) };
    });
    let _QfoDNpWJ = _BoRVqaMv.reduce((acc, _PqPlNtmC) => acc + _PqPlNtmC._nGOPEiAM, 0);
    _BoRVqaMv.sort((a, b) => b.remainder - a.remainder);
    let _Edevtkzj = _RsokIhog - _QfoDNpWJ;
    for (let _FxtYvbgs = 0; _FxtYvbgs < _Edevtkzj; _FxtYvbgs++) {
        _BoRVqaMv[_FxtYvbgs % _BoRVqaMv._xlQSmFSS]._nGOPEiAM++;
    }
    for (const _PqPlNtmC of _BoRVqaMv) {
        _ygreXBds[_PqPlNtmC._JWejvvPQ] = _PqPlNtmC._nGOPEiAM;
    }
    return _ygreXBds;
}

async function _EPYUwSjT(_samfUQHZ) {
    const _ACcrvQCN = _samfUQHZ.DB.prepare("SELECT _OSrmevEI FROM kv_data WHERE _JWejvvPQ = ?").bind(_OFBUJzxq);
    const { _CdUFdqhE } = await _ACcrvQCN.all();
    return _CdUFdqhE._xlQSmFSS > 0 ? _CdUFdqhE[0]._OSrmevEI : null;
}

async function _yeIJtQKq(_samfUQHZ, _yTYaUEYc) {
    const _ACcrvQCN = _samfUQHZ.DB.prepare(
        "INSERT INTO kv_data (_JWejvvPQ, _OSrmevEI) VALUES (?, ?) ON CONFLICT(_JWejvvPQ) DO UPDATE SET _OSrmevEI = excluded._OSrmevEI"
    );
    await _ACcrvQCN.bind(_OFBUJzxq, _yTYaUEYc).run();
}

async function _uSYGDjRL(_WBoBvXUQ, _samfUQHZ) {
    const { _yTYaUEYc } = await _WBoBvXUQ.json();
    const _gfXTAmWx = await _EPYUwSjT(_samfUQHZ);
    if (_gfXTAmWx === _yTYaUEYc) {
        return _rKkEtPbf({ success: true });
    }
    return _rKkEtPbf({ success: false, _kzBgbZvP: '密码错误' }, 401);
}

async function _ysRauLmI(_WBoBvXUQ, _samfUQHZ) {
    const _qogoNvTu = await _iawREvrc(_samfUQHZ);
    if (!_qogoNvTu.visitorPassword || !_qogoNvTu.visitorPassword._EICbdOEb) {
        return _rKkEtPbf({ success: true });
    }
    try {
        const { _yTYaUEYc } = await _WBoBvXUQ.json();
        const _pUyThNoi = _qogoNvTu.visitorPassword._yTYaUEYc;
        if (_pUyThNoi && _yTYaUEYc === _pUyThNoi) {
            return _rKkEtPbf({ success: true });
        }
        return _rKkEtPbf({ success: false, _kzBgbZvP: '访客密码错误' }, 401);
    } catch (_NUwPKiAC) {
        return _rKkEtPbf({ success: false, _kzBgbZvP: '无效请求' }, 400);
    }
}

async function _CzuKeRnY(_WBoBvXUQ, _samfUQHZ) {
    const _yVXtRJEK = await _EPYUwSjT(_samfUQHZ);
    if (_yVXtRJEK) {
        return _rKkEtPbf({ success: false, _kzBgbZvP: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _yTYaUEYc } = await _WBoBvXUQ.json();
    if (!_yTYaUEYc || _yTYaUEYc._xlQSmFSS < 6) {
        return _rKkEtPbf({ success: false, _kzBgbZvP: "密码长度不能少于6位。" }, 400);
    }
    await _yeIJtQKq(_samfUQHZ, _yTYaUEYc);
    return _rKkEtPbf({ success: true, _kzBgbZvP: "初始密码设置成功!请刷新页面并登录。" });
}

async function _RzNriKyQ(_WBoBvXUQ, _samfUQHZ) {
    const { _CNwdJWPB, _rIAgyWzN } = await _WBoBvXUQ.json();
    const _gfXTAmWx = await _EPYUwSjT(_samfUQHZ);
    if (_gfXTAmWx !== _CNwdJWPB) {
        return _rKkEtPbf({ success: false, _kzBgbZvP: "旧密码错误。" }, 403);
    }
    if (!_rIAgyWzN || _rIAgyWzN._xlQSmFSS < 6) {
        return _rKkEtPbf({ success: false, _kzBgbZvP: "新密码长度不能少于6位。" }, 400);
    }
    await _yeIJtQKq(_samfUQHZ, _rIAgyWzN);
    return _rKkEtPbf({ success: true, _kzBgbZvP: "密码修改成功!" });
}

function _UIXQTXyG() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _nTMcjsQK: '',
        api: {
            _EICbdOEb: true,
            _kzBgbZvP: '维护中...',
        },
        ispFilter: { _EICbdOEb: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _EICbdOEb: true
        },
        websocketStreamer: {
            _EICbdOEb: true,
            _hAOyACBH: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _EICbdOEb: true
        },
        visitorPassword: {
            _EICbdOEb: false,
            _yTYaUEYc: '',
        },
        customSubPath: {
            _EICbdOEb: false,
            _xkxIMsqp: 'latest',
        },
        subscriptionId: {
            _xlQSmFSS: 8,
            _NESIoZam: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _EICbdOEb: true,
            template: 'vless://{_UuzRiSwA}@{_CovLyHaq}:{_pHhyjphg}?encryption=none&security=tls&sni={_kNbCYthH}&fp=random&_PAwiNaUj=ws&_kNbCYthH={_kNbCYthH}&_xkxIMsqp={_xkxIMsqp}#{_lgMfSDmU}',
            selectionMode: 'first',
            _umORasTZ: [
                { _lgMfSDmU: '默认配置', _kNbCYthH: '', '_UuzRiSwA': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _xkxIMsqp: '/?ed=2560' }
            ],
            _MBIpTBty: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _EICbdOEb: false,
                _HJNrlnmJ: '',
                _SXZWueYv: 5
            },
            marquee: {
                _EICbdOEb: false,
                _HJNrlnmJ: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _EICbdOEb: true,
            sources: [
                { _EGbPlnPp: 'CF官方IPV4', _swsJMlco: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _WvWLmLBQ: false, _EICbdOEb: true, _naLArDCM: 20 },
                { _EGbPlnPp: 'CF官方IPV6', _swsJMlco: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _WvWLmLBQ: false, _EICbdOEb: true, _naLArDCM: 20 },
                { _EGbPlnPp: '反代优选0', _swsJMlco: 'https://wvs.sosorg.nyc.mn/sub?_UuzRiSwA=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_PAwiNaUj=ws&_kNbCYthH=ss.nzvrn.com&_xkxIMsqp=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _WvWLmLBQ: false, _EICbdOEb: true, _naLArDCM: 30 },
                { _EGbPlnPp: '官方优选1', _swsJMlco: 'https://ipdb.api.030101.xyz/?_PAwiNaUj=bestcf&_txfunSmO=true', _WvWLmLBQ: false, _EICbdOEb: true, _naLArDCM: 10 },
                { _EGbPlnPp: '反代优选2', _swsJMlco: 'https://ipdb.api.030101.xyz/?_PAwiNaUj=bestproxy&_txfunSmO=true', _WvWLmLBQ: false, _EICbdOEb: true, _naLArDCM: 5 },
                { _EGbPlnPp: '官方优选2', _swsJMlco: 'https://addressesapi.090227.xyz/_CovLyHaq.164746.xyz', _WvWLmLBQ: false, _EICbdOEb: true, _naLArDCM: 10 },
				{ _EGbPlnPp: '官方优选3', _swsJMlco: 'https://cfxr.eu.org/getSub?_kNbCYthH=snipaste.huggy.qzz.io', _WvWLmLBQ: false, _EICbdOEb: true, _naLArDCM: 5 },
                { _EGbPlnPp: '官方优选4', _swsJMlco: 'https://addressesapi.090227.xyz/CloudFlareYes', _WvWLmLBQ: false, _EICbdOEb: true, _naLArDCM: 10 }
            ]
        },
        customNodes: {
            _EICbdOEb: 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 _vjFWlxIN(_CNyyWymq, _iGzttOHN) {
    if (!_CNyyWymq) return _iGzttOHN;
    const _rHTKduSL = { ..._iGzttOHN };
    for (const _JWejvvPQ in _iGzttOHN) {
        if (_CNyyWymq.hasOwnProperty(_JWejvvPQ)) {
             if (typeof _CNyyWymq[_JWejvvPQ] === 'object' && _CNyyWymq[_JWejvvPQ] !== null && !Array.isArray(_CNyyWymq[_JWejvvPQ]) && typeof _iGzttOHN[_JWejvvPQ] === 'object' && _iGzttOHN[_JWejvvPQ] !== null && !Array.isArray(_iGzttOHN[_JWejvvPQ])) {
                _rHTKduSL[_JWejvvPQ] = _vjFWlxIN(_CNyyWymq[_JWejvvPQ], _iGzttOHN[_JWejvvPQ]);
            } else {
                _rHTKduSL[_JWejvvPQ] = _CNyyWymq[_JWejvvPQ];
            }
        }
    }
    return _rHTKduSL;
}

async function _iawREvrc(_samfUQHZ) {
    try {
        const _ACcrvQCN = _samfUQHZ.DB.prepare("SELECT _OSrmevEI FROM kv_data WHERE _JWejvvPQ = ?").bind(_NkTOwMeY);
        const { _CdUFdqhE } = await _ACcrvQCN.all();
        const _YAnPQCas = _CdUFdqhE._xlQSmFSS > 0 ? _CdUFdqhE[0]._OSrmevEI : null;
        const _rEqWFNZD = _YAnPQCas ? JSON.parse(_YAnPQCas) : {};
        return _vjFWlxIN(_rEqWFNZD, _UIXQTXyG());
    } catch (_NUwPKiAC) {
        console.error("无法从D1获取或解析全局配置:", _NUwPKiAC);
        return _UIXQTXyG();
    }
}

async function _hqyRIyit(_samfUQHZ) {
    const _mDXCcgug = await _iawREvrc(_samfUQHZ);
    return _rKkEtPbf(_mDXCcgug);
}

async function _OYMEyuwv(_WBoBvXUQ, _samfUQHZ, _LPhWtaBS) {
    try {
        const { _mDXCcgug, adminPassword } = await _WBoBvXUQ.json();
        const _gfXTAmWx = await _EPYUwSjT(_samfUQHZ);
        if (_gfXTAmWx !== adminPassword) {
            return _rKkEtPbf({ success: false, _kzBgbZvP: "管理员密码错误" }, 403);
        }
        const _ACcrvQCN = _samfUQHZ.DB.prepare(
          "INSERT INTO kv_data (_JWejvvPQ, _OSrmevEI) VALUES (?, ?) ON CONFLICT(_JWejvvPQ) DO UPDATE SET _OSrmevEI = excluded._OSrmevEI"
        );
        const _ZoaIuATV = _ACcrvQCN.bind(_NkTOwMeY, JSON.stringify(_mDXCcgug)).run();
        _LPhWtaBS.waitUntil(_ZoaIuATV);
        return _rKkEtPbf({ success: true, _kzBgbZvP: "配置已成功保存!" });
    } catch (_NUwPKiAC) {
        return _rKkEtPbf({ success: false, _kzBgbZvP: `保存失败: ${_NUwPKiAC._kzBgbZvP}` }, 500);
    }
}

async function _MDkAnBPH() {
    const _pVgPaPFW = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _jGseoVYJ = await fetch(_pVgPaPFW);
        const _rnWvTkkQ = await _jGseoVYJ.json();
        const _NNDdrLIV = 'https://www.bing.com' + _rnWvTkkQ.images[0]._hAOyACBH;
        return fetch(_NNDdrLIV);
    } catch (_NUwPKiAC) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _HrhYkQdp(_CovLyHaq) {
    try {
        const _ouBdLylk = await fetch(`http://_CovLyHaq-api.com/json/${_CovLyHaq}?fields=status,_txfunSmO,countryCode,_cZJveYok&lang=zh-CN`);
        if (_ouBdLylk.ok) {
            const _doqJNITP = await _ouBdLylk.json();
            if (_doqJNITP.status === 'success' && (_doqJNITP.countryCode || _doqJNITP._txfunSmO)) {
                let _cZJveYok = _doqJNITP._cZJveYok || '未知';
                if (_cZJveYok.toLowerCase().includes('cloudflare')) {
                    _cZJveYok = 'CloudFlare';
                }
                return {
                    _EGbPlnPp: _CoYOmLgw[_doqJNITP.countryCode] || _doqJNITP._txfunSmO || _doqJNITP.countryCode,
                    _cZJveYok: _cZJveYok
                };
            }
        }
    } catch (_NUwPKiAC) {}

    try {
        const _ouBdLylk = await fetch(`https://api._CovLyHaq.sb/geoip/${_CovLyHaq}`);
        if (_ouBdLylk.ok) {
            const _doqJNITP = await _ouBdLylk.json();
            if (_doqJNITP.country_code || _doqJNITP._txfunSmO) {
                let _cZJveYok = _doqJNITP._cZJveYok || '未知';
                if (_cZJveYok.toLowerCase().includes('cloudflare')) {
                    _cZJveYok = 'CloudFlare';
                }
                return {
                    _EGbPlnPp: _CoYOmLgw[_doqJNITP.country_code] || _doqJNITP._txfunSmO || _doqJNITP.country_code,
                    _cZJveYok: _cZJveYok
                };
            }
        }
    } catch (_NUwPKiAC) {}
    
    return { _EGbPlnPp: '未知', _cZJveYok: '未知' };
}

async function _EMLlTOCm(_WBoBvXUQ, _samfUQHZ) {
    try {
        const { _swsJMlco } = await _WBoBvXUQ.json();
        if (!Array.isArray(_swsJMlco)) {
            return _rKkEtPbf({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _QjdmZRmb = _swsJMlco.map(_CovLyHaq => _HrhYkQdp(_CovLyHaq).then(_ODAlmwVo => ({ _CovLyHaq, ..._ODAlmwVo })));
        const _CdUFdqhE = await Promise.all(_QjdmZRmb);
        return _rKkEtPbf(_CdUFdqhE);
    } catch (_NUwPKiAC) {
        return _rKkEtPbf({ error: `获取地理位置失败: ${_NUwPKiAC._kzBgbZvP}` }, 500);
    }
}

async function _SNlyrniq(_WBoBvXUQ, _samfUQHZ) {
    const _mDXCcgug = await _iawREvrc(_samfUQHZ);
    if (!_mDXCcgug.cloudStorage._EICbdOEb) {
        return _rKkEtPbf({ _CdUFdqhE: [], generatedBy: null });
    }
    try {
        const _ACcrvQCN = _samfUQHZ.DB.prepare("SELECT _OSrmevEI FROM kv_data WHERE _JWejvvPQ = ?").bind(_aWIuXolF);
        const { _CdUFdqhE } = await _ACcrvQCN.all();
        const _zuPYXhvb = _CdUFdqhE._xlQSmFSS > 0 ? _CdUFdqhE[0]._OSrmevEI : null;
        const _CwOmWuKd = _zuPYXhvb ? JSON.parse(_zuPYXhvb) : null;
        return _rKkEtPbf(_CwOmWuKd || { _CdUFdqhE: [], generatedBy: null });
    } catch (_NUwPKiAC) {
        console.error("从D1读取缓存IP失败:", _NUwPKiAC);
        return _rKkEtPbf({ _CdUFdqhE: [], generatedBy: null });
    }
}

async function _hKcRodft(_WBoBvXUQ, _samfUQHZ, _LPhWtaBS) {
    const _mDXCcgug = await _iawREvrc(_samfUQHZ);
    if (!_mDXCcgug.cloudStorage._EICbdOEb) {
        return _rKkEtPbf({ success: true, _kzBgbZvP: "云端存储已禁用,不保存结果。" });
    }
    const _GrhWtmlP = _WBoBvXUQ._kzgWJgEg.get('CF-Connecting-IP') || "未知IP";
    const _txfunSmO = _WBoBvXUQ.cf?._txfunSmO || "未知";
    const _rhJAQpyo = _WBoBvXUQ.cf?._rhJAQpyo || "";
    let _ACRqfkjb = _CoYOmLgw[_txfunSmO] || _txfunSmO;
    if (_rhJAQpyo && _rhJAQpyo !== "未知城市" && _rhJAQpyo !== _txfunSmO) _ACRqfkjb = `${_ACRqfkjb} ${_CoYOmLgw[_rhJAQpyo] || _rhJAQpyo}`;
    const _vhdcxxzo = {
        _CovLyHaq: _HbUYpvDe(_GrhWtmlP),
        _EGbPlnPp: _ACRqfkjb.trim(),
        time: _zhyMuIfp()
    };
    try {
        const _KdvSYOzz = await _WBoBvXUQ.json();
        if (!Array.isArray(_KdvSYOzz)) return _rKkEtPbf({ error: "无效数据格式" }, 400);
        const _lmtXFIbK = _KdvSYOzz.map(_FNHtVGZm => ({
            _CovLyHaq: String(_FNHtVGZm._CovLyHaq || ''),
            _pHhyjphg: _FNHtVGZm._pHhyjphg ? parseInt(_FNHtVGZm._pHhyjphg, 10) : undefined,
            _YslWLwYh: parseInt(_FNHtVGZm._YslWLwYh, 10),
            _EGbPlnPp: typeof _FNHtVGZm._EGbPlnPp === 'string' ? _FNHtVGZm._EGbPlnPp.substring(0, 50) : 'N/A',
            _cZJveYok: typeof _FNHtVGZm._cZJveYok === 'string' ? _FNHtVGZm._cZJveYok.substring(0, 100) : 'N/A'
        }));
        const _wpzHCkSO = {
            generatedBy: _vhdcxxzo,
            _CdUFdqhE: _lmtXFIbK
        };
        const _ersLsukQ = _samfUQHZ.DB.prepare(
          "INSERT INTO kv_data (_JWejvvPQ, _OSrmevEI) VALUES (?, ?) ON CONFLICT(_JWejvvPQ) DO UPDATE SET _OSrmevEI = excluded._OSrmevEI"
        ).bind(_aWIuXolF, JSON.stringify(_wpzHCkSO)).run();
        if (_mDXCcgug.telegram.bot_token && _mDXCcgug.telegram.chat_id) {
            const _jVLrUYmL = _lmtXFIbK.map(r => `${r._CovLyHaq} ~ ${r._EGbPlnPp}`).join('\n');
            const _vvzvcafZ = `优选完成!\n来源: ${_vhdcxxzo._CovLyHaq} (${_vhdcxxzo._EGbPlnPp})\n时间: ${_vhdcxxzo.time}\n\n结果:\n${_jVLrUYmL}`;
            const _pimLfODZ = `https://api.telegram.org/bot${_mDXCcgug.telegram.bot_token}/sendMessage?chat_id=${_mDXCcgug.telegram.chat_id}&_HJNrlnmJ=${encodeURIComponent(_vvzvcafZ)}`;
            const _cqGalzxs = fetch(_pimLfODZ).catch(_NUwPKiAC => console.error("Telegram结果通知失败:", _NUwPKiAC));
            _LPhWtaBS.waitUntil(Promise.all([_ersLsukQ, _cqGalzxs]));
        } else {
             _LPhWtaBS.waitUntil(_ersLsukQ);
        }
        return _rKkEtPbf({ success: true, _kzBgbZvP: "结果已保存" });
    } catch (_NUwPKiAC) {
        return _rKkEtPbf({ error: "D1写入失败", _kzBgbZvP: _NUwPKiAC._kzBgbZvP }, 500);
    }
}

async function _KsPoQARG(_WBoBvXUQ, _samfUQHZ, _LPhWtaBS) {
    try {
        const _amhSGmyo = await _WBoBvXUQ.json();
        if (!Array.isArray(_amhSGmyo)) return _rKkEtPbf({ error: "无效数据格式" }, 400);
        const _wpzHCkSO = {
            _CdUFdqhE: _amhSGmyo
        };
        const _ACcrvQCN = _samfUQHZ.DB.prepare(
          "INSERT INTO kv_data (_JWejvvPQ, _OSrmevEI) VALUES (?, ?) ON CONFLICT(_JWejvvPQ) DO UPDATE SET _OSrmevEI = excluded._OSrmevEI"
        );
        const _ZoaIuATV = _ACcrvQCN.bind(_KAvuJXTh, JSON.stringify(_wpzHCkSO)).run();
        _LPhWtaBS.waitUntil(_ZoaIuATV);
        return _rKkEtPbf({ success: true });
    } catch (_NUwPKiAC) {
        return _rKkEtPbf({ error: "D1写入临时缓存失败", _kzBgbZvP: _NUwPKiAC._kzBgbZvP }, 500);
    }
}

function _XhqNvSQQ(_xlQSmFSS, _NESIoZam) {
    let _mgWwbeuN = '';
    const _RStEbhtm = _NESIoZam._xlQSmFSS;
    for (let _FxtYvbgs = 0; _FxtYvbgs < _xlQSmFSS; _FxtYvbgs++) {
        _mgWwbeuN += _NESIoZam.charAt(Math.floor(Math.random() * _RStEbhtm));
    }
    return _mgWwbeuN;
}

async function _NbTHmCAo(_WBoBvXUQ, _samfUQHZ) {
    try {
        const _KdvSYOzz = await _WBoBvXUQ.json();
        if (!Array.isArray(_KdvSYOzz) || _KdvSYOzz._xlQSmFSS === 0) {
            return _rKkEtPbf({ error: "无效或空的IP列表" }, 400);
        }

        const _mDXCcgug = await _iawREvrc(_samfUQHZ);
        const _tUJnReLE = _mDXCcgug.subscriptionId || { _xlQSmFSS: 8, _NESIoZam: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _MKeregBx;
        let _tYGrxVFq = false;
        let _BttKvHPM = 0;
        const _YlBWhGxM = 10;

        while (!_tYGrxVFq && _BttKvHPM < _YlBWhGxM) {
            _MKeregBx = _XhqNvSQQ(_tUJnReLE._xlQSmFSS, _tUJnReLE._NESIoZam);
            const { _CdUFdqhE } = await _samfUQHZ.DB.prepare("SELECT _qUySIauG FROM optimized_results WHERE _qUySIauG = ?").bind(_MKeregBx).all();
            if (_CdUFdqhE._xlQSmFSS === 0) {
                _tYGrxVFq = true;
            }
            _BttKvHPM++;
        }

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

        const _YhxisIQz = JSON.stringify({ _swsJMlco: _KdvSYOzz });
        await _samfUQHZ.DB.prepare(
            "INSERT INTO optimized_results (_qUySIauG, _doqJNITP) VALUES (?, ?)"
        ).bind(_MKeregBx, _YhxisIQz).run();
        await _samfUQHZ.DB.prepare(
            "INSERT INTO kv_data (_JWejvvPQ, _OSrmevEI) VALUES (?, ?) ON CONFLICT(_JWejvvPQ) DO UPDATE SET _OSrmevEI = excluded._OSrmevEI"
        ).bind(_oHzqeNSQ, _MKeregBx).run();
            
        return _rKkEtPbf({ success: true, _qUySIauG: _MKeregBx });
    } catch (_NUwPKiAC) {
        return _rKkEtPbf({ error: "保存优选结果失败", _kzBgbZvP: _NUwPKiAC._kzBgbZvP }, 500);
    }
}

async function _fQvVpJzV(_WBoBvXUQ, _samfUQHZ) {
    try {
        const _MKeregBx = _WBoBvXUQ._QzBnPtZy._qUySIauG;
        if (!_MKeregBx) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _mgWwbeuN = await _samfUQHZ.DB.prepare("SELECT _doqJNITP FROM optimized_results WHERE _qUySIauG = ?").bind(_MKeregBx).first();
        if (!_mgWwbeuN) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _doqJNITP = JSON.parse(_mgWwbeuN._doqJNITP);
        let _jVLrUYmL = _doqJNITP._swsJMlco;

        const _mDXCcgug = await _iawREvrc(_samfUQHZ);

        if (_mDXCcgug.customNodes && _mDXCcgug.customNodes._EICbdOEb && _mDXCcgug.customNodes.list) {
            const _HgWgMrCx = _mDXCcgug.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _AKpfkzLR = _HgWgMrCx.map(_AMbDwuas => {
                let _pLZuGTHG = _AMbDwuas;
                let _pHhyjphg = undefined;
                let _lgMfSDmU = null;

                if (_pLZuGTHG.includes('@')) {
                    const _BoRVqaMv = _pLZuGTHG.split('@');
                    _lgMfSDmU = _BoRVqaMv.pop();
                    _pLZuGTHG = _BoRVqaMv.join('@');
                }

                if (_pLZuGTHG.includes('#')) {
                    const _BoRVqaMv = _pLZuGTHG.split('#');
                    const _jwSdRmvx = _BoRVqaMv.pop();
                    if (!isNaN(_jwSdRmvx) && _jwSdRmvx.trim() !== '') {
                        _pHhyjphg = parseInt(_jwSdRmvx, 10);
                    }
                    _pLZuGTHG = _BoRVqaMv.join('#');
                }
                
                return {
                    _CovLyHaq: _pLZuGTHG,
                    _pHhyjphg: _pHhyjphg,
                    _EGbPlnPp: _lgMfSDmU || _pLZuGTHG,
                    _cZJveYok: '自定义'
                };
            });
            _jVLrUYmL.unshift(..._AKpfkzLR);
        }
        
        const { itemLink } = _mDXCcgug;
        const _tkCMwLeZ = new URL(_WBoBvXUQ._hAOyACBH)._nlGCZlTv;
        let _Kdllscwu;

        if (_mDXCcgug.websocketStreamer && _mDXCcgug.websocketStreamer._EICbdOEb) {
            if (!itemLink || !itemLink._EICbdOEb || !itemLink._umORasTZ || itemLink._umORasTZ._xlQSmFSS === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _Kdllscwu = _jVLrUYmL.map((_FNHtVGZm, _lJjuwRfg) => {
                let _lgMfSDmU;
                if (_FNHtVGZm._cZJveYok === '自定义') {
                     _lgMfSDmU = `${_lJjuwRfg + 1} - ${_FNHtVGZm._EGbPlnPp}`;
                } else {
                    _lgMfSDmU = `${_lJjuwRfg + 1} - ${_FNHtVGZm._EGbPlnPp || '未知'}`;
                    if (!_FNHtVGZm._cZJveYok || !_FNHtVGZm._cZJveYok.toLowerCase().includes('cloudflare')) {
                        _lgMfSDmU += '(反代)';
                    }
                }
                const _YBagzNAE = _ipYFRPID.isIPv6(_FNHtVGZm._CovLyHaq) ? `[${_FNHtVGZm._CovLyHaq}]` : _FNHtVGZm._CovLyHaq;
                const _pHhyjphg = _FNHtVGZm._pHhyjphg || 443;
                const _DLpRAFcg = itemLink._umORasTZ[0];
                const _zLhoRJEH = _DLpRAFcg._UuzRiSwA || '';
                const _UuzRiSwA = (_zLhoRJEH && _GzHdifSE(_zLhoRJEH)) ? _zLhoRJEH : crypto.randomUUID();
                const _xkxIMsqp = '/snippets?_CovLyHaq=endpointAddress:_pHhyjphg(443)&nat64=6to4';
                const _kNbCYthH = _DLpRAFcg._kNbCYthH || _tkCMwLeZ;

                const _QzBnPtZy = new URLSearchParams({
                    security: 'tls',
                    _PAwiNaUj: 'ws',
                    _kNbCYthH: _kNbCYthH,
                    sni: _kNbCYthH,
                    fp: 'random'
                });
                return `vless://${_UuzRiSwA}@${_YBagzNAE}:${_pHhyjphg}?${_QzBnPtZy.toString()}&_xkxIMsqp=${encodeURIComponent(encodeURIComponent(_xkxIMsqp))}#${encodeURIComponent(_lgMfSDmU)}`;
            });

        } else {
            if (!itemLink || !itemLink._EICbdOEb || !itemLink._umORasTZ || itemLink._umORasTZ._xlQSmFSS === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _DLpRAFcg = itemLink._umORasTZ[0];
            const { _kNbCYthH, _UuzRiSwA, _xkxIMsqp } = _DLpRAFcg;
            _Kdllscwu = _jVLrUYmL.map((_FNHtVGZm, _lJjuwRfg) => {
                let _lgMfSDmU;
                if (_FNHtVGZm._cZJveYok === '自定义') {
                     _lgMfSDmU = `${_lJjuwRfg + 1} - ${_FNHtVGZm._EGbPlnPp}`;
                } else {
                    _lgMfSDmU = `${_lJjuwRfg + 1} - ${_FNHtVGZm._EGbPlnPp || '未知'}`;
                    if (!_FNHtVGZm._cZJveYok || !_FNHtVGZm._cZJveYok.toLowerCase().includes('cloudflare')) {
                        _lgMfSDmU += '(反代)';
                    }
                }
                const _YBagzNAE = _ipYFRPID.isIPv6(_FNHtVGZm._CovLyHaq) ? `[${_FNHtVGZm._CovLyHaq}]` : _FNHtVGZm._CovLyHaq;
                const _pHhyjphg = _FNHtVGZm._pHhyjphg || 443;
                const _QzBnPtZy = new URLSearchParams({
                    security: 'tls',
                    _PAwiNaUj: 'ws',
                    _kNbCYthH: _kNbCYthH || _tkCMwLeZ,
                    sni: _kNbCYthH || _tkCMwLeZ,
                    fp: 'random'
                });
                return `vless://${_UuzRiSwA}@${_YBagzNAE}:${_pHhyjphg}?${_QzBnPtZy.toString()}&_xkxIMsqp=${encodeURIComponent(encodeURIComponent(_xkxIMsqp || ''))}#${encodeURIComponent(_lgMfSDmU)}`;
            });
        }
        
        const _NRykPgDu = _Kdllscwu.join('\n');
        const _HsflPrId = btoa(_NRykPgDu);
        return new Response(_HsflPrId, {
            _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/plain; _NESIoZam=utf-8' }
        });

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

async function _lKGkXzuS(_WBoBvXUQ) {
    try {
        const { _QZheLkfQ, _PAwiNaUj } = await _WBoBvXUQ.json();
        if (!Array.isArray(_QZheLkfQ)) {
            return new Response('Invalid _QZheLkfQ list', { status: 400 });
        }
        const _ARCvFsVR = _QZheLkfQ.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _hAOyACBH = `https://cloudflare-dns.com/dns-query?_lgMfSDmU=${encodeURIComponent(domain.trim())}&_PAwiNaUj=${_PAwiNaUj || 'A'}`;
            return fetch(_hAOyACBH, { _kzgWJgEg: { 'Accept': 'application/dns-json' } })
                .then(_ouBdLylk => _ouBdLylk.json())
                .then(_doqJNITP => (_doqJNITP.Answer ? _doqJNITP.Answer.map(a => a._doqJNITP) : []))
                .catch(() => []);
        });
        const _joGZsrAu = (await Promise.all(_ARCvFsVR)).flat();
        const _HyBizlzD = [...new Set(_joGZsrAu)];
        if (_HyBizlzD._xlQSmFSS === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_HyBizlzD.join('\n'), { _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/plain; _NESIoZam=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._kzBgbZvP}`, { status: 500 });
    }
}

async function _tPrpYFQf(_WBoBvXUQ, _samfUQHZ) {
  try {
      const { _nXkCwhGK } = await _WBoBvXUQ.json();
      if (!Array.isArray(_nXkCwhGK)) {
          return _rKkEtPbf({ error: "Invalid input, expected an object with a '_nXkCwhGK' array." }, 400);
      }
      
      const _cFnXsaoO = new Set();
      
      const _vVBzWXMB = _nXkCwhGK.map(_hAOyACBH =>
          _SYBjyywq(_hAOyACBH)
              .then(_HJNrlnmJ => {
                  if (!_HJNrlnmJ) return;
                  const _xIrhlqvj = _HJNrlnmJ.split(/[\s,;|]+/);
                  for (const _otSPUMVd of _xIrhlqvj) {
                      const _OyFKYrZA = _otSPUMVd.trim();
                      if (_OyFKYrZA) {
                          _cFnXsaoO.add(_OyFKYrZA);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_hAOyACBH}:`, err);
              })
      );
      await Promise.all(_vVBzWXMB);
      return _rKkEtPbf({ _swsJMlco: Array.from(_cFnXsaoO) });
  } catch (_NUwPKiAC) {
      return _rKkEtPbf({ error: `Failed to process URLs: ${_NUwPKiAC._kzBgbZvP}` }, 500);
  }
}

async function _PntJPFat(_WBoBvXUQ, _samfUQHZ) {
    const _mDXCcgug = await _iawREvrc(_samfUQHZ);
    if (!_mDXCcgug.api._EICbdOEb) {
        return new Response(_mDXCcgug.api._kzBgbZvP || 'API is disabled.', { status: 503 });
    }
    try {
        const _ACcrvQCN = _samfUQHZ.DB.prepare("SELECT _OSrmevEI FROM kv_data WHERE _JWejvvPQ = ?").bind(_aWIuXolF);
        const { _CdUFdqhE: dbResults } = await _ACcrvQCN.all();
        const _zuPYXhvb = dbResults._xlQSmFSS > 0 ? dbResults[0]._OSrmevEI : null;
        const _CwOmWuKd = _zuPYXhvb ? JSON.parse(_zuPYXhvb) : null;
        if (!_CwOmWuKd || !_CwOmWuKd._CdUFdqhE || _CwOmWuKd._CdUFdqhE._xlQSmFSS === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/plain; _NESIoZam=utf-8' },
            });
        }
        const _swsJMlco = _CwOmWuKd._CdUFdqhE.map(r => r._CovLyHaq);
        return new Response(_swsJMlco.join('\n'), {
            _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/plain; _NESIoZam=utf-8' },
        });
    } catch (_NUwPKiAC) {
        console.error("API /_CovLyHaq 处理错误:", _NUwPKiAC);
        return new Response(`API处理时出错: ${_NUwPKiAC._kzBgbZvP}`, { status: 500 });
    }
}

function _nTYdHIdj(_mgWwbeuN, _lJjuwRfg, _mDXCcgug, _tkCMwLeZ) {
    const { itemLink } = _mDXCcgug;
    if (!itemLink || !itemLink._EICbdOEb) return null;
    const { template, _umORasTZ, selectionMode, _MBIpTBty } = itemLink;
    if (!_umORasTZ || _umORasTZ._xlQSmFSS === 0) return null;

    let _zZusybuP;
    if (selectionMode === 'random') {
        _zZusybuP = _umORasTZ[_lJjuwRfg % _umORasTZ._xlQSmFSS];
    } else if (selectionMode === 'first') {
        _zZusybuP = _umORasTZ[0];
    } else {
        _zZusybuP = _umORasTZ.find(s => s._lgMfSDmU === selectionMode) || _umORasTZ[0];
    }
    if (!_zZusybuP) return null;

    let _sUTZwxUd = template;
    const _amYxgKLr = _mgWwbeuN._pHhyjphg || 443;
    const _PKLQsHCi = _ipYFRPID.isIPv6(_mgWwbeuN._CovLyHaq) ? `[${_mgWwbeuN._CovLyHaq}]` : _mgWwbeuN._CovLyHaq;
    let _lgMfSDmU = `${_lJjuwRfg + 1} 、 ${_mgWwbeuN._EGbPlnPp || '未知'}`;
    if (!_mgWwbeuN._cZJveYok || !_mgWwbeuN._cZJveYok.toLowerCase().includes('cloudflare')) {
        _lgMfSDmU += '(反代)';
    }
    let _kNbCYthH = _zZusybuP._kNbCYthH || _tkCMwLeZ;

    _sUTZwxUd = _sUTZwxUd.replace(/{_CovLyHaq}/g, _PKLQsHCi)
               .replace(/{_pHhyjphg}/g, _amYxgKLr)
               .replace(/{_lgMfSDmU}/g, encodeURIComponent(_lgMfSDmU))
               .replace(/{rank}/g, _lJjuwRfg + 1)
               .replace(/{_EGbPlnPp}/g, encodeURIComponent(_mgWwbeuN._EGbPlnPp || '未知'))
               .replace(/{_cZJveYok}/g, encodeURIComponent(_mgWwbeuN._cZJveYok || '未知'))
               .replace(/{_kNbCYthH}/g, encodeURIComponent(_kNbCYthH))
               .replace(/{_UuzRiSwA}/g, encodeURIComponent(_zZusybuP['_UuzRiSwA'] || ''))
               .replace(/{_xkxIMsqp}/g, encodeURIComponent(encodeURIComponent(_zZusybuP._xkxIMsqp || '')));

    if (_MBIpTBty) {
        _MBIpTBty.forEach(field => {
            const _CFHOHOAU = new RegExp('{' + field._lgMfSDmU + '}', 'g');
            _sUTZwxUd = _sUTZwxUd.replace(_CFHOHOAU, encodeURIComponent(field._OSrmevEI));
        });
    }
    return _sUTZwxUd;
}

async function _XkwebnqW(_WBoBvXUQ, _samfUQHZ) {
    const _mDXCcgug = await _iawREvrc(_samfUQHZ);
    if (!_mDXCcgug.itemLink._EICbdOEb) {
        return new Response("Item _sUTZwxUd feature is disabled.", { status: 503, _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/plain; _NESIoZam=utf-8' } });
    }

    try {
        const _ACcrvQCN = _samfUQHZ.DB.prepare("SELECT _OSrmevEI FROM kv_data WHERE _JWejvvPQ = ?").bind(_aWIuXolF);
        const { _CdUFdqhE: dbResults } = await _ACcrvQCN.all();
        const _zuPYXhvb = dbResults._xlQSmFSS > 0 ? dbResults[0]._OSrmevEI : null;
        const _CwOmWuKd = _zuPYXhvb ? JSON.parse(_zuPYXhvb) : null;
        
        if (!_CwOmWuKd || !_CwOmWuKd._CdUFdqhE || _CwOmWuKd._CdUFdqhE._xlQSmFSS === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/plain; _NESIoZam=utf-8' },
            });
        }
        
        const _tkCMwLeZ = new URL(_WBoBvXUQ._hAOyACBH)._nlGCZlTv;

        const _nIDBUUSq = _CwOmWuKd._CdUFdqhE.map((_mgWwbeuN, _lJjuwRfg) => {
            return _nTYdHIdj(_mgWwbeuN, _lJjuwRfg, _mDXCcgug, _tkCMwLeZ);
        }).filter(Boolean);

        if (_nIDBUUSq._xlQSmFSS === 0) {
            return new Response("Could not generate any _FNHtVGZm links from the available IPs.", {
                status: 500,
                _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/plain; _NESIoZam=utf-8' },
            });
        }

        return new Response(_nIDBUUSq.join('\n'), {
            _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/plain; _NESIoZam=utf-8' },
        });

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

async function _xCQjnjBy(_WBoBvXUQ, _samfUQHZ, _LPhWtaBS) {
    const _GrhWtmlP = _WBoBvXUQ._kzgWJgEg.get('CF-Connecting-IP') || "未知IP";
    const [
        _ZzbzIlCI,
        _xoEVYCcI,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _fYeVguRn(_XrMhJIHQ, _wANXxapn, []),
        _fYeVguRn(_hUdCtLjZ, _wANXxapn, []),
        _fYeVguRn(_YnAiTEhT, _OwEJokXZ, []),
        _fYeVguRn(_nlVdDGjL, _JAxzpTnT, { "N/A": "未知" })
    ]);
    _CoYOmLgw = fetchedCountryMap;
    let _AFokUlvx = false;
    let _qogoNvTu;
    try {
        const _yTYaUEYc = await _EPYUwSjT(_samfUQHZ);
        _AFokUlvx = !!_yTYaUEYc;
        _qogoNvTu = await _iawREvrc(_samfUQHZ);
    } catch (_NUwPKiAC) {
        if (_NUwPKiAC._kzBgbZvP && _NUwPKiAC._kzBgbZvP.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _PSYdijrh = "CREATE TABLE IF NOT EXISTS kv_data (_JWejvvPQ TEXT PRIMARY KEY, _OSrmevEI TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_qUySIauG TEXT PRIMARY KEY, _doqJNITP TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _samfUQHZ.DB.exec(_PSYdijrh);
                console.log("数据表创建成功。");
                _AFokUlvx = false;
                _qogoNvTu = _UIXQTXyG();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._kzBgbZvP}`, {
                    status: 500,
                    _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/html;_NESIoZam=UTF-8' }
                });
            }
        } else {
             let _XhQgWhSd = _OkYpXccH(_NUwPKiAC._kzBgbZvP);
             return new Response(_XhQgWhSd, { _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/html;_NESIoZam=UTF-8' } });
        }
    }
    if (_qogoNvTu.telegram.bot_token && _qogoNvTu.telegram.chat_id) {
        const _txfunSmO = _WBoBvXUQ.cf?._txfunSmO || "未知";
        const _rhJAQpyo = _WBoBvXUQ.cf?._rhJAQpyo || "";
        let _ACRqfkjb = _CoYOmLgw[_txfunSmO] || _txfunSmO;
        if (_rhJAQpyo && _rhJAQpyo !== "未知城市" && _rhJAQpyo !== _txfunSmO) _ACRqfkjb = `${_ACRqfkjb} ${_CoYOmLgw[_rhJAQpyo] || _rhJAQpyo}`;
        const _vEXWsGAl = _zhyMuIfp();
        const _HEjbcYMj = _WBoBvXUQ._hAOyACBH;
        const _vvzvcafZ = `访客: ${_GrhWtmlP}\n位置: ${_ACRqfkjb.trim()}\n时间: ${_vEXWsGAl}\n来自:${_HEjbcYMj}`;
        const _pimLfODZ = `https://api.telegram.org/bot${_qogoNvTu.telegram.bot_token}/sendMessage?chat_id=${_qogoNvTu.telegram.chat_id}&_HJNrlnmJ=${encodeURIComponent(_vvzvcafZ)}`;
        _LPhWtaBS.waitUntil(fetch(_pimLfODZ).catch(_NUwPKiAC => console.error("Telegram通知失败:", _NUwPKiAC)));
    }
    let _CRZfunDb = _ACaocWgp();
    const _jZFYaokZ = {
        _mDXCcgug: _qogoNvTu,
        status: {
            _AFokUlvx: _AFokUlvx,
        }
    };
    _CRZfunDb = _CRZfunDb.replace('__PAGE_DATA_JSON__', JSON.stringify(_jZFYaokZ));
    _CRZfunDb = _CRZfunDb.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_ZzbzIlCI));
    _CRZfunDb = _CRZfunDb.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_xoEVYCcI));
    _CRZfunDb = _CRZfunDb.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _CRZfunDb = _CRZfunDb.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_CoYOmLgw));
    return new Response(_CRZfunDb, {
        _kzgWJgEg: { 'Content-Type': '_HJNrlnmJ/html;_NESIoZam=UTF-8' },
    });
}

function _rKkEtPbf(_fAGjBqRJ, status = 200, _kzgWJgEg = {}) {
    return new Response(JSON.stringify(_fAGjBqRJ), {
        status,
        _kzgWJgEg: { 'Content-Type': 'application/json;_NESIoZam=UTF-8', ..._kzgWJgEg }
    });
}

function _zhyMuIfp(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 _HbUYpvDe(_CovLyHaq) {
    if (!_CovLyHaq || typeof _CovLyHaq !== 'string') return "无效IP";
    if(_ipYFRPID.isIPv4(_CovLyHaq)){
        const _BoRVqaMv = _CovLyHaq.split('.');
        if (_BoRVqaMv._xlQSmFSS === 4) return `${_BoRVqaMv[0]}.*.*.${_BoRVqaMv[3]}`;
    }
    if(_ipYFRPID.isIPv6(_CovLyHaq)){
        const _BoRVqaMv = _CovLyHaq.split(':');
        if (_BoRVqaMv._xlQSmFSS > 2) return `${_BoRVqaMv[0]}:...:${_BoRVqaMv[_BoRVqaMv._xlQSmFSS - 1]}`;
    }
    return _CovLyHaq;
}

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

function _ACaocWgp() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _NESIoZam="UTF-8"> <meta _lgMfSDmU="viewport" _BFizQQrx="_BMIuuYeD=device-_BMIuuYeD, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_sUTZwxUd 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>
  <_mrzbKyEh>
  :root { --primary-_adDtSJTJ: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_adDtSJTJ: #8c939d; --light-bg: #1A1C20; --_BFizQQrx-bg: #25282E; --border-_adDtSJTJ: #40444C; --_HJNrlnmJ-_adDtSJTJ: #E0E0E0; --_HJNrlnmJ-light: #B0B0B0; --success-_adDtSJTJ: #30A46C; --danger-_adDtSJTJ: #DA3633; --warning-_adDtSJTJ: #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; }
  _fAGjBqRJ { font-family: var(--font-family-sans); background-_adDtSJTJ: var(--light-bg); _adDtSJTJ: var(--_HJNrlnmJ-_adDtSJTJ); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_adDtSJTJ 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_NvmRKmUf { position: fixed; _UfJLSRIK: 0; _KhHOxqCY: 0; _BMIuuYeD: 100%; height: 100%; z-_lJjuwRfg: -1; display: none; }
  ._CIghEbXt-_FvmJQUrq { max-_BMIuuYeD: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_lJjuwRfg: 1; }
  #_OOqTXkej { position: fixed; _UfJLSRIK: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_lJjuwRfg: 10; }
  #marquee-_FvmJQUrq { overflow: hidden; white-space: nowrap; background-_adDtSJTJ: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _adDtSJTJ: var(--primary-_adDtSJTJ); padding: 0.5rem 0; margin-_UfJLSRIK: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_HJNrlnmJ { display: inline-block; padding-_KhHOxqCY: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _CGabxIdD { _HJNrlnmJ-align: center; margin-_UfJLSRIK: 1rem; margin-bottom: 2rem; }
  _CGabxIdD h1 { white-space: pre-wrap; font-size: 2.25em; _adDtSJTJ: var(--primary-_adDtSJTJ); font-weight: 700; _HJNrlnmJ-shadow: 0 0 10px rgba(var(--primary-_adDtSJTJ-rgb), 0.3); }
  .card { background-_adDtSJTJ: 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-_adDtSJTJ); }
  .progress-section #_shRHgKXz { _BMIuuYeD: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_adDtSJTJ: var(--border-_adDtSJTJ); overflow: hidden; }
  .progress-section #_shRHgKXz::-webkit-progress-_OSrmevEI { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _HJNrlnmJ-align: center; margin-_UfJLSRIK: 0.75em; font-size: 0.95em; _adDtSJTJ: var(--_HJNrlnmJ-light); min-height: 1.5em; }
  .section-_CGabxIdD { display: flex; flex-wrap: wrap; justify-_BFizQQrx: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_adDtSJTJ); gap: 1rem; }
  .section-_CGabxIdD h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _adDtSJTJ: var(--secondary-_adDtSJTJ); _HJNrlnmJ-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _BMIuuYeD: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _BMIuuYeD: 100%; border-collapse: collapse; margin-_UfJLSRIK: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_adDtSJTJ); padding: 0.8em; _HJNrlnmJ-align: _KhHOxqCY; vertical-align: middle; white-space: nowrap; }
  th { background-_adDtSJTJ: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_adDtSJTJ: #30333a; }
  td._CovLyHaq-_pLZuGTHG { font-weight: 500; font-family: var(--font-family-mono); _adDtSJTJ: var(--primary-_adDtSJTJ); }
  td.ping-_OSrmevEI { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _HJNrlnmJ-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_BFizQQrx: center; font-weight: 500; _HJNrlnmJ-align: center; cursor: pointer; user-_evOiOBev: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _adDtSJTJ: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_KhHOxqCY: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _adDtSJTJ: var(--primary-_adDtSJTJ); border: 1px solid var(--primary-_adDtSJTJ); }
  .btn-outline:hover { background-_adDtSJTJ: var(--primary-_adDtSJTJ); _adDtSJTJ: var(--_BFizQQrx-bg); }
  ._CIghEbXt-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._CIghEbXt-download-buttons .btn { _BMIuuYeD: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _UfJLSRIK: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _adDtSJTJ: #fff; font-size: 0.95em; z-_lJjuwRfg: 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); }
  #_YxxBhctw, #_CKyZKXHQ, #_pPUncdqQ, #_TiEvUjKH, #_HvHvlfVY { display: none; position: fixed; z-_lJjuwRfg: 10000; _KhHOxqCY: 0; _UfJLSRIK: 0; _BMIuuYeD: 100%; height: 100%; background-_adDtSJTJ: rgba(0,0,0,0.6); justify-_BFizQQrx: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_BFizQQrx, ._CIghEbXt-modal-_BFizQQrx { background-_adDtSJTJ: var(--_BFizQQrx-bg); padding: 2rem; border: 1px solid var(--border-_adDtSJTJ); border-radius: var(--border-radius-md); _BMIuuYeD: 95%; max-_BMIuuYeD: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_TiEvUjKH .modal-_BFizQQrx { max-_BMIuuYeD: 500px; }
  .modal-_BFizQQrx h3, ._CIghEbXt-modal-_CGabxIdD h3 { margin-_UfJLSRIK: 0; margin-bottom: 1.5rem; _adDtSJTJ: var(--primary-_adDtSJTJ); _HJNrlnmJ-align: center; }
  .modal-buttons { display: flex; justify-_BFizQQrx: flex-end; gap: 1rem; margin-_UfJLSRIK: 2rem; border-_UfJLSRIK: 1px solid var(--border-_adDtSJTJ); padding-_UfJLSRIK: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_adDtSJTJ), rgba(0,0,0,0)); margin: 2rem 0; }
  ._CIghEbXt-modal-_CGabxIdD { display: flex; justify-_BFizQQrx: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_adDtSJTJ); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _adDtSJTJ: var(--_HJNrlnmJ-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._CIghEbXt-list-_FNHtVGZm { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_adDtSJTJ); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._CIghEbXt-_lgMfSDmU { font-size: 1.1em; font-weight: 600; }
  ._CIghEbXt-links a { display: block; _adDtSJTJ: var(--primary-_adDtSJTJ); _HJNrlnmJ-decoration: none; margin-_UfJLSRIK: 0.5rem; word-break: break-all; }
  ._CIghEbXt-links a:hover { _HJNrlnmJ-decoration: underline; }
  ._CIghEbXt-links span { _adDtSJTJ: var(--_HJNrlnmJ-light); }
  #visitorPasswordPrompt { _HJNrlnmJ-align: center; }
  #visitorPasswordPrompt h3 { _adDtSJTJ: var(--primary-_adDtSJTJ); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _adDtSJTJ: var(--_HJNrlnmJ-light); margin-bottom: 1.5rem; }
  ._yTYaUEYc-input-group { display: flex; gap: 10px; max-_BMIuuYeD: 400px; margin: 0 auto; }
  ._yTYaUEYc-input-group input { flex-grow: 1; _HJNrlnmJ-align: center; }
  ._yTYaUEYc-input-group .btn { margin-_KhHOxqCY: 0; }
  ._CdUFdqhE-actions-_FvmJQUrq { _HJNrlnmJ-align: center; margin-bottom: 1.5rem; }
  ._CdUFdqhE-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._CdUFdqhE-api-buttons .btn { margin: 0; _BMIuuYeD: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_BFizQQrx 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 _evOiOBev, .form-grid-control textarea { _BMIuuYeD: 100%; background-_adDtSJTJ: var(--light-bg); border: 1px solid var(--border-_adDtSJTJ); border-radius: var(--border-radius-sm); _adDtSJTJ: var(--_HJNrlnmJ-_adDtSJTJ); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_adDtSJTJ 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _evOiOBev:focus, .form-grid-control textarea:focus { border-_adDtSJTJ: var(--primary-_adDtSJTJ); box-shadow: 0 0 0 2px rgba(var(--primary-_adDtSJTJ-rgb), 0.2); outline: none; }
  .form-grid-control input[_PAwiNaUj="_adDtSJTJ"] { min-_BMIuuYeD: auto; padding: 2px; _BMIuuYeD: 2.5em; height: 2.5em; }
  .form-grid-control input[_PAwiNaUj="checkbox"] { _BMIuuYeD: auto; flex-shrink: 0; height: 1.2em; _BMIuuYeD: 1.2em; }
  .form-grid-control ._naLArDCM-input { _BMIuuYeD: 80px; _HJNrlnmJ-align: right; }
  .tooltip-_nogoqIJL { display: inline-flex; _BMIuuYeD: 16px; height: 16px; align-items: center; justify-_BFizQQrx: center; background-_adDtSJTJ: var(--secondary-_adDtSJTJ); _adDtSJTJ: var(--_BFizQQrx-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_evOiOBev: none; }
  #tooltip-popup { position: fixed; background-_adDtSJTJ: #383c4a; _adDtSJTJ: #fff; padding: 10px 15px; border-radius: 6px; z-_lJjuwRfg: 10001; font-size: 0.85em; max-_BMIuuYeD: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_adDtSJTJ); pointer-events: none; }
  #custom-fields-_FvmJQUrq .form-grid-control { gap: 5px; } #custom-fields-_FvmJQUrq .form-grid-control input { flex: 1; }
  .parameter-_ClyzlPmH-_LUIRvqrG { border: 1px solid var(--border-_adDtSJTJ); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_ClyzlPmH-_CGabxIdD { display: flex; justify-_BFizQQrx: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_ClyzlPmH-_CGabxIdD input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_UfJLSRIK: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._HJNrlnmJ-_adDtSJTJ-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _BMIuuYeD: 100%; }
  ._HJNrlnmJ-_adDtSJTJ-grid input[_PAwiNaUj="_adDtSJTJ"] { grid-column: 1 / 2; }
  ._HJNrlnmJ-_adDtSJTJ-grid input[_PAwiNaUj="_HJNrlnmJ"], ._HJNrlnmJ-_adDtSJTJ-grid textarea { grid-column: 2 / 3; }
  #_TiEvUjKH .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_TiEvUjKH .btn-group { display: flex; }
  #_TiEvUjKH .sub-btn { flex-grow: 1; margin: 0; }
  #_TiEvUjKH ._lmXZqbGk-btn { flex-shrink: 0; margin-_KhHOxqCY: -1px; border-_UfJLSRIK-_KhHOxqCY-radius: 0; border-bottom-_KhHOxqCY-radius: 0; }
  #_HvHvlfVY .modal-_BFizQQrx { max-_BMIuuYeD: 300px; background: white; padding: 1rem; _HJNrlnmJ-align: center; }
  #qrCodeImg { max-_BMIuuYeD: 100%; }
  @media (max-_BMIuuYeD: 768px) {
    html { font-size: 15px; } ._CIghEbXt-_FvmJQUrq { padding: 0 0.8rem; } _CGabxIdD { margin-_UfJLSRIK: 2.5rem; margin-bottom: 1.5rem; } #_OOqTXkej { _UfJLSRIK: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_mrzbKyEh>
  <_mrzbKyEh _qUySIauG="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_BFizQQrx-bg: #FFFFFF; --border-_adDtSJTJ: #DCDFE6; --_HJNrlnmJ-_adDtSJTJ: #303133; --_HJNrlnmJ-light: #606266; }
  .theme-light .card { background-_adDtSJTJ: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_adDtSJTJ: #F5F7FA; }
  .theme-light tbody tr:hover { background-_adDtSJTJ: #ECF5FF; }
  .theme-matrix { --primary-_adDtSJTJ: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_BFizQQrx-bg: #0D0208; --border-_adDtSJTJ: #00FF41; --_HJNrlnmJ-_adDtSJTJ: #00FF41; --_HJNrlnmJ-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_adDtSJTJ: rgba(0, 20, 0, 0.7); _HJNrlnmJ-shadow: 0 0 5px var(--primary-_adDtSJTJ); backdrop-filter: none; }
  .theme-matrix th { background-_adDtSJTJ: #000; }
  .theme-matrix tbody tr:hover { background-_adDtSJTJ: #010; }
  .theme-matrix .btn { _HJNrlnmJ-shadow: none; _adDtSJTJ: #000; }
  .theme-matrix .btn-outline { background-_adDtSJTJ: transparent; }
  .theme-modern-glass { --primary-_adDtSJTJ: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_BFizQQrx-bg: rgba(30, 30, 40, 0.6); --border-_adDtSJTJ: rgba(255, 255, 255, 0.2); --_HJNrlnmJ-_adDtSJTJ: #F0F0F0; --_HJNrlnmJ-light: #A0A0B0; --border-radius-md: 12px; }
  _fAGjBqRJ.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-_adDtSJTJ: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_BFizQQrx-bg: rgba(30, 30, 40, 0.6); --border-_adDtSJTJ: rgba(255, 255, 255, 0.2); --_HJNrlnmJ-_adDtSJTJ: #F0F0F0; --_HJNrlnmJ-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_adDtSJTJ: var(--_BFizQQrx-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_adDtSJTJ); }
  .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-_adDtSJTJ: rgba(0,0,0,0.3); border-right-_adDtSJTJ: 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); _HJNrlnmJ-shadow: 0 1px 2px rgba(0,0,0,0.2); _adDtSJTJ: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_adDtSJTJ: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _HJNrlnmJ-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_adDtSJTJ); border-_adDtSJTJ: var(--primary-_adDtSJTJ); _adDtSJTJ: #fff; }
  .glassy-components _CGabxIdD h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _HJNrlnmJ; -webkit-_HJNrlnmJ-fill-_adDtSJTJ: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _adDtSJTJ: transparent; }
  .theme-aurora-glass { --primary-_adDtSJTJ: #38bdf8; --light-bg: #0c0a09; --_BFizQQrx-bg: rgba(23, 23, 23, 0.5); --border-_adDtSJTJ: rgba(255, 255, 255, 0.15); --_HJNrlnmJ-_adDtSJTJ: #f2f2f2; --_HJNrlnmJ-light: #a3a3a3; }
  _fAGjBqRJ.theme-aurora-glass::before { _BFizQQrx: ''; position: fixed; _UfJLSRIK: 0; _KhHOxqCY: 0; _BMIuuYeD: 100%; height: 100%; z-_lJjuwRfg: -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-_adDtSJTJ: #08fdd8; --light-bg: #010409; --_BFizQQrx-bg: rgba(22, 27, 34, 0.6); --border-_adDtSJTJ: rgba(139, 148, 158, 0.3); --_HJNrlnmJ-_adDtSJTJ: #e6edf3; --_HJNrlnmJ-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_adDtSJTJ), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_adDtSJTJ-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_adDtSJTJ-rgb), 0.5); }
  .theme-marble-light { --primary-_adDtSJTJ: #bfa37c; --light-bg: #f7f5f2; --_BFizQQrx-bg: #ffffff; --border-_adDtSJTJ: #e0dcd5; --_HJNrlnmJ-_adDtSJTJ: #3d3a36; --_HJNrlnmJ-light: #6b6661; }
  _fAGjBqRJ.theme-marble-light { background-image: _hAOyACBH('_doqJNITP:image/svg+xml,%3Csvg _BMIuuYeD="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-_adDtSJTJ: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_mrzbKyEh>
  </head><_fAGjBqRJ _qUySIauG="pageBody">
  <_NvmRKmUf _qUySIauG="background-_NvmRKmUf"></_NvmRKmUf>
  <div _qUySIauG="_YxxBhctw">
      <div class="modal-_BFizQQrx">
          <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 _PAwiNaUj="_yTYaUEYc" _qUySIauG="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _PAwiNaUj="_yTYaUEYc" _qUySIauG="confirmPassword"></div></div>
          <div class="modal-buttons"><button _qUySIauG="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_CIghEbXt-_FvmJQUrq">
    <button _qUySIauG="_OOqTXkej" class="btn btn-outline"></button>
    <div _qUySIauG="marquee-_FvmJQUrq"><div _qUySIauG="marquee-_HJNrlnmJ"></div></div>
    <_CGabxIdD><h1 _qUySIauG="pageTitle"></h1></_CGabxIdD>
    <div class="card" _qUySIauG="visitorPasswordPrompt" _mrzbKyEh="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_yTYaUEYc-input-group">
            <input _PAwiNaUj="_yTYaUEYc" _qUySIauG="visitorPasswordEntry" _CFHOHOAU="访客密码">
            <button _qUySIauG="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _qUySIauG="_OGrAjWZa" _mrzbKyEh="display: block;">
        <div class="card progress-section">
            <div _qUySIauG="progressDisplay">
                <progress _qUySIauG="_shRHgKXz" _OSrmevEI="0" max="100"></progress>
                <div _qUySIauG="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _CIghEbXt-download-section">
          <div class="section-_CGabxIdD"><h2 _qUySIauG="appDownloadTitleEl"></h2></div>
          <div class="_CIghEbXt-download-buttons">
            <button class="btn" _doqJNITP-_LEOcuEiC="android">安卓客户端</button>
            <button class="btn" _doqJNITP-_LEOcuEiC="ios">苹果客户端</button>
            <button class="btn" _doqJNITP-_LEOcuEiC="windows">Windows客户端</button>
            <button class="btn" _doqJNITP-_LEOcuEiC="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _CdUFdqhE-section" _qUySIauG="_hNVbcKkb" _mrzbKyEh="display:none;">
          <div class="section-_CGabxIdD">
            <h2 _qUySIauG="liveTitleEl"></h2>
            <div class="generator-info" _qUySIauG="liveGeneratorInfo"></div>
          </div>
          <div _qUySIauG="_qdRgrdSp" class="_CdUFdqhE-actions-_FvmJQUrq" _mrzbKyEh="display: none;">
             <div class="_CdUFdqhE-api-buttons">
                <button _qUySIauG="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _qUySIauG="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _qUySIauG="resultsTable">
              <thead><tr><th _qUySIauG="tableHeader1El"></th><th _qUySIauG="tableHeader2El"></th><th _qUySIauG="tableHeader3El"></th><th _qUySIauG="tableHeader4El"></th><th _qUySIauG="tableHeader5El"></th><th _qUySIauG="tableHeader6El"></th><th _qUySIauG="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _qUySIauG="_tsNazcHZ" _mrzbKyEh="display:none;">
          <div class="section-_CGabxIdD"><h2 _qUySIauG="cachedTitleEl"></h2><div class="generator-info" _qUySIauG="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _qUySIauG="cachedResultsTable">
              <thead><tr><th _qUySIauG="cachedTableHeader1El"></th><th _qUySIauG="cachedTableHeader2El"></th><th _qUySIauG="cachedTableHeader3El"></th><th _qUySIauG="cachedTableHeader4El"></th><th _qUySIauG="cachedTableHeader5El"></th><th _qUySIauG="cachedTableHeader6El"></th><th _qUySIauG="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _qUySIauG="notificationTooltip" class="tooltip-notification"></div>
  <div _qUySIauG="_CKyZKXHQ">
    <div class="modal-_BFizQQrx">
      <h3>修改参数</h3>
      <div _mrzbKyEh="display: flex; border-bottom: 1px solid var(--border-_adDtSJTJ); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_zWLZAAyQ(event, 'general-_vJgWNvYu')">通用设置</button>
          <button class="tab-button" onclick="_zWLZAAyQ(event, '_sUTZwxUd-_vJgWNvYu')">链接设置</button>
          <button class="tab-button" onclick="_zWLZAAyQ(event, 'fine-grained-_vJgWNvYu')">IP源设置</button>
          <button class="tab-button" onclick="_zWLZAAyQ(event, 'advanced-_vJgWNvYu')">高级设置</button>
      </div>
      <div _qUySIauG="general-_vJgWNvYu" class="tab-_BFizQQrx" _mrzbKyEh="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_evOiOBev _qUySIauG="themeSelect">
                    <_iiTsKAnV _OSrmevEI="theme-aurora-glass">极光-玻璃质感</_iiTsKAnV>
                    <_iiTsKAnV _OSrmevEI="theme-particles-glass">粒子-玻璃质感</_iiTsKAnV>
                    <_iiTsKAnV _OSrmevEI="theme-modern-glass">现代-玻璃质感</_iiTsKAnV>
                    <_iiTsKAnV _OSrmevEI="theme-cyberpunk-glass">赛博朋克-玻璃质感</_iiTsKAnV>
                    <_iiTsKAnV _OSrmevEI="theme-dark-particles">暗色-粒子背景</_iiTsKAnV>
                    <_iiTsKAnV _OSrmevEI="theme-dark-bing">暗色-必应壁纸</_iiTsKAnV>
                    <_iiTsKAnV _OSrmevEI="theme-light">亮色-简约</_iiTsKAnV>
                    <_iiTsKAnV _OSrmevEI="theme-light-bing">亮色-必应壁纸</_iiTsKAnV>
                    <_iiTsKAnV _OSrmevEI="theme-marble-light">简约大理石-亮色</_iiTsKAnV>
                    <_iiTsKAnV _OSrmevEI="theme-matrix">矩阵-代码雨</_iiTsKAnV>
                </_evOiOBev>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _PAwiNaUj="_adDtSJTJ" _qUySIauG="primaryColorInput">
                <span _mrzbKyEh="_BMIuuYeD: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _PAwiNaUj="_adDtSJTJ" _qUySIauG="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _mrzbKyEh="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _mrzbKyEh="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_HJNrlnmJ-_adDtSJTJ-grid"><input _PAwiNaUj="_adDtSJTJ" _qUySIauG="colorInput_title"><textarea _qUySIauG="textInput_title" _baOPRmvi="1" _CFHOHOAU="页面主标题"></textarea></div>
                <div class="_HJNrlnmJ-_adDtSJTJ-grid"><input _PAwiNaUj="_adDtSJTJ" _qUySIauG="colorInput_loginButton"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="textInput_loginButton" _CFHOHOAU="登录按钮文本"></div>
                <div class="_HJNrlnmJ-_adDtSJTJ-grid"><input _PAwiNaUj="_adDtSJTJ" _qUySIauG="colorInput_appDownloadTitle"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="textInput_appDownloadTitle" _CFHOHOAU="APP下载标题"></div>
                <div class="_HJNrlnmJ-_adDtSJTJ-grid"><input _PAwiNaUj="_adDtSJTJ" _qUySIauG="colorInput_liveTitle"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="textInput_liveTitle" _CFHOHOAU="本次结果标题"></div>
                <div class="_HJNrlnmJ-_adDtSJTJ-grid"><input _PAwiNaUj="_adDtSJTJ" _qUySIauG="colorInput_cachedTitle"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="textInput_cachedTitle" _CFHOHOAU="上次结果标题"></div>
                <div class="_HJNrlnmJ-_adDtSJTJ-grid"><input _PAwiNaUj="_adDtSJTJ" _qUySIauG="colorInput_tableHeader"><input _PAwiNaUj="_HJNrlnmJ" _OSrmevEI="表格头部文本颜色" readonly _mrzbKyEh="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _mrzbKyEh="align-self: start;"><label>公告栏设置</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _mrzbKyEh="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _qUySIauG="announcementText" _CFHOHOAU="在此输入公告内容" _baOPRmvi="3"></textarea>
                 <div _mrzbKyEh="display: flex; justify-_BFizQQrx: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _mrzbKyEh="display: flex; align-items: center; gap: 5px;"><input _PAwiNaUj="checkbox" _qUySIauG="enableMarquee"> 顶部走马灯</label>
                    <label _mrzbKyEh="display: flex; align-items: center; gap: 5px;"><input _PAwiNaUj="checkbox" _qUySIauG="enablePopup"> 右上角弹窗</label>
                    <div _qUySIauG="popupDurationContainer" _mrzbKyEh="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _PAwiNaUj="number" _qUySIauG="popupDuration" _mrzbKyEh="_BMIuuYeD: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _qUySIauG="_sUTZwxUd-_vJgWNvYu" class="tab-_BFizQQrx">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="converterServiceUrlInput" _CFHOHOAU="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _PAwiNaUj="number" _qUySIauG="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _mrzbKyEh="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _qUySIauG="subscriptionIdCharset" _baOPRmvi="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-_nogoqIJL" _doqJNITP-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _mrzbKyEh="justify-_BFizQQrx: flex-start;"><input _PAwiNaUj="checkbox" _qUySIauG="enableItemLinkCheckbox"></div>
        </div>
        <div _qUySIauG="itemLinkConfigGroup" _mrzbKyEh="display:none; margin-_UfJLSRIK: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _mrzbKyEh="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="定义分享链接格式。可用占位符: {_CovLyHaq}, {_pHhyjphg}, {_lgMfSDmU}, {rank}, {_EGbPlnPp}, {_cZJveYok}, {_kNbCYthH}, {_UuzRiSwA}, {_xkxIMsqp}。">?</span></div>
              <div class="form-grid-control"><textarea _qUySIauG="itemLinkTemplateInput" _baOPRmvi="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_evOiOBev _qUySIauG="parameterSelectionMode"></_evOiOBev></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _qUySIauG="parameter-sets-_FvmJQUrq"></div><button _PAwiNaUj="button" _qUySIauG="add-parameter-_ClyzlPmH-btn" class="btn btn-outline" _mrzbKyEh="margin-_UfJLSRIK: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _mrzbKyEh="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _qUySIauG="custom-fields-_FvmJQUrq" _mrzbKyEh="_BMIuuYeD: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _mrzbKyEh="justify-_BFizQQrx: flex-start;"><button _PAwiNaUj="button" _qUySIauG="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _qUySIauG="fine-grained-_vJgWNvYu" class="tab-_BFizQQrx">
          <div class="form-grid-label" _mrzbKyEh="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _mrzbKyEh="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_BFizQQrx: flex-start;">
              <label><input _PAwiNaUj="checkbox" _qUySIauG="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _PAwiNaUj="checkbox" _qUySIauG="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _qUySIauG="fine-grained-sources-_FvmJQUrq"></div><button _PAwiNaUj="button" _qUySIauG="add-fine-grained-_FtHHGzjT-btn" class="btn btn-outline" _mrzbKyEh="margin-_UfJLSRIK: 10px;">添加地区</button></div>
      </div>
      <div _qUySIauG="advanced-_vJgWNvYu" class="tab-_BFizQQrx">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _PAwiNaUj="checkbox" _qUySIauG="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _qUySIauG="resolvedDomainsGroup" _mrzbKyEh="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _qUySIauG="resolvedDomainsInput" _CFHOHOAU="留空则使用内置默认域名" _baOPRmvi="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-_nogoqIJL" _doqJNITP-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _PAwiNaUj="checkbox" _qUySIauG="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _qUySIauG="customNodesGroup" _mrzbKyEh="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _qUySIauG="customNodesInput" _CFHOHOAU="一行一个地址,支持域名、IPv4、IPv6。" _baOPRmvi="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-_nogoqIJL" _doqJNITP-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _PAwiNaUj="number" _qUySIauG="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _PAwiNaUj="number" _qUySIauG="topNInput"></div>
            <div class="form-grid-label" _mrzbKyEh="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _mrzbKyEh="display: none;"><input _PAwiNaUj="number" _qUySIauG="latencyRangeMinInput" _CFHOHOAU="最小"><span>-</span><input _PAwiNaUj="number" _qUySIauG="latencyRangeMaxInput" _CFHOHOAU="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _mrzbKyEh="justify-_BFizQQrx: flex-start;"><input _PAwiNaUj="checkbox" _qUySIauG="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-_nogoqIJL" _doqJNITP-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _PAwiNaUj="number" _qUySIauG="geoLocationRetriesInput" _mrzbKyEh="_BMIuuYeD: 80px;"> <span>次</span>
                <div _mrzbKyEh="display: flex; align-items: center; gap: 5px; margin-_KhHOxqCY: 20px;">
                    <input _PAwiNaUj="checkbox" _qUySIauG="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-_nogoqIJL" _doqJNITP-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_kNbCYthH:_pHhyjphg' 或 '_kNbCYthH'。">?</span></div>
            <div class="form-grid-control"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="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-_nogoqIJL" _doqJNITP-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _mrzbKyEh="justify-_BFizQQrx: flex-start;"><input _PAwiNaUj="checkbox" _qUySIauG="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _qUySIauG="websocketStreamerGroup" _mrzbKyEh="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="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-_nogoqIJL" _doqJNITP-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _mrzbKyEh="justify-_BFizQQrx: flex-start;"><input _PAwiNaUj="checkbox" _qUySIauG="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="启用 /_CovLyHaq 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _mrzbKyEh="justify-_BFizQQrx: flex-start;"><input _PAwiNaUj="checkbox" _qUySIauG="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _qUySIauG="apiConfigGroup" _mrzbKyEh="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="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-_nogoqIJL" _doqJNITP-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _mrzbKyEh="justify-_BFizQQrx: flex-start;"><input _PAwiNaUj="checkbox" _qUySIauG="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _qUySIauG="customSubPathGroup" _mrzbKyEh="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="customSubPathInput" _CFHOHOAU="例如: 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-_nogoqIJL" _doqJNITP-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _mrzbKyEh="justify-_BFizQQrx: flex-start;"><input _PAwiNaUj="checkbox" _qUySIauG="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _qUySIauG="visitorPasswordGroup" _mrzbKyEh="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _mrzbKyEh="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_nogoqIJL" _doqJNITP-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _mrzbKyEh="flex-direction: column; align-items: stretch; gap: 8px;"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="botTokenInput" _CFHOHOAU="Telegram Bot Token"><input _PAwiNaUj="_HJNrlnmJ" _qUySIauG="chatIdInput" _CFHOHOAU="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _mrzbKyEh="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _mrzbKyEh="flex-direction: column; align-items: stretch; gap: 8px;"><input _PAwiNaUj="_yTYaUEYc" _qUySIauG="oldPasswordInput" _CFHOHOAU="旧密码"><input _PAwiNaUj="_yTYaUEYc" _qUySIauG="newPasswordInput" _CFHOHOAU="新密码 (至少6位)"><button _qUySIauG="changePasswordBtn" class="btn" _mrzbKyEh="align-self: flex-start; margin-_KhHOxqCY: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _qUySIauG="closeModalBtn" class="btn btn-outline">关闭</button><button _qUySIauG="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _qUySIauG="_pPUncdqQ">
      <div class="_CIghEbXt-modal-_BFizQQrx">
          <div class="_CIghEbXt-modal-_CGabxIdD"><h3 _qUySIauG="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_CIghEbXt-modal-_fAGjBqRJ" _qUySIauG="appModalBody"></div>
      </div>
  </div>
  <div _qUySIauG="_TiEvUjKH">
      <div class="modal-_BFizQQrx">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _doqJNITP-sub-_PAwiNaUj="coreEngine">Xray</button><button class="btn _lmXZqbGk-btn" _doqJNITP-sub-_PAwiNaUj="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _doqJNITP-sub-_PAwiNaUj="coreProfile">Sing-Box</button><button class="btn _lmXZqbGk-btn" _doqJNITP-sub-_PAwiNaUj="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _doqJNITP-sub-_PAwiNaUj="configProfile">Clash</button><button class="btn _lmXZqbGk-btn" _doqJNITP-sub-_PAwiNaUj="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _doqJNITP-sub-_PAwiNaUj="policyProfile">Surge</button><button class="btn _lmXZqbGk-btn" _doqJNITP-sub-_PAwiNaUj="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _mrzbKyEh="justify-_BFizQQrx: center;"><button class="btn btn-outline" _qUySIauG="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _qUySIauG="_HvHvlfVY">
      <div class="modal-_BFizQQrx">
          <img _qUySIauG="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _ipYFRPID = {
        isValid: (_CovLyHaq) => _ipYFRPID.isIPv4(_CovLyHaq) || _ipYFRPID.isIPv6(_CovLyHaq),
        isIPv4: (_CovLyHaq) => {
            if (typeof _CovLyHaq !== 'string') return false;
            const _BoRVqaMv = _CovLyHaq.split('.');
            if (_BoRVqaMv._xlQSmFSS !== 4) return false;
            return _BoRVqaMv.every(_PqPlNtmC => {
                const _zGGaRlRE = parseInt(_PqPlNtmC, 10);
                return !isNaN(_zGGaRlRE) && _zGGaRlRE >= 0 && _zGGaRlRE <= 255 && String(_zGGaRlRE) === _PqPlNtmC;
            });
        },
        isIPv6: (_CovLyHaq) => {
            if (typeof _CovLyHaq !== '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]))$/_FxtYvbgs.test(_CovLyHaq);
        },
        toLong4: (_CovLyHaq) => _CovLyHaq.split('.').reduce((acc, octet, _FxtYvbgs) => acc + (parseInt(octet) << (8*(3-_FxtYvbgs))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_CovLyHaq) => {
            try {
                const _UMEbrJzl = _CovLyHaq.split('/')[0];
                const _BoRVqaMv = _UMEbrJzl.split('::');
                if (_BoRVqaMv._xlQSmFSS > 2) return 0n;
                let _nythjqPL = [];
                if (_BoRVqaMv[0]) {
                    _nythjqPL = _BoRVqaMv[0].split(':');
                }
                let _mpKLMwQs = [];
                if (_BoRVqaMv._xlQSmFSS > 1 && _BoRVqaMv[1]) {
                    _mpKLMwQs = _BoRVqaMv[1].split(':');
                }
                if (_nythjqPL._xlQSmFSS + _mpKLMwQs._xlQSmFSS > 8) return 0n;
                const _MwYvFNJt = 8 - (_nythjqPL._xlQSmFSS + _mpKLMwQs._xlQSmFSS);
                const _RyfDAcsX = [
                    ..._nythjqPL,
                    ...Array(_MwYvFNJt).fill('0'),
                    ..._mpKLMwQs
                ].map(_PqPlNtmC => _PqPlNtmC || '0');
                while(_RyfDAcsX._xlQSmFSS < 8) {
                    _RyfDAcsX.push('0');
                }
                let _uyuRayET = 0n;
                for (const _PqPlNtmC of _RyfDAcsX) {
                    if (_PqPlNtmC._xlQSmFSS > 4) return 0n;
                    const _OSrmevEI = BigInt('0x' + _PqPlNtmC);
                    _uyuRayET = (_uyuRayET << 16n) | _OSrmevEI;
                }
                return _uyuRayET;
            } catch(_NUwPKiAC) {
                return 0n;
            }
        },
        fromBigInt6: (_uyuRayET) => {
            if (typeof _uyuRayET !== '_uyuRayET' || _uyuRayET < 0n) return null;
            const _BoRVqaMv = [];
            for (let _FxtYvbgs = 0; _FxtYvbgs < 8; _FxtYvbgs++) {
                _BoRVqaMv.unshift((_uyuRayET & 0xFFFFn).toString(16));
                _uyuRayET >>= 16n;
            }
            let _qUeNhEZl = { start: -1, _FPmLrmRw: 0 };
            let _mhVeEUbO = { start: -1, _FPmLrmRw: 0 };
            for (let _FxtYvbgs = 0; _FxtYvbgs < 8; _FxtYvbgs++) {
                if (_BoRVqaMv[_FxtYvbgs] === '0') {
                    if (_mhVeEUbO.start === -1) _mhVeEUbO.start = _FxtYvbgs;
                    _mhVeEUbO._FPmLrmRw++;
                } else {
                    if (_mhVeEUbO._FPmLrmRw > _qUeNhEZl._FPmLrmRw) _qUeNhEZl = { ..._mhVeEUbO };
                    _mhVeEUbO = { start: -1, _FPmLrmRw: 0 };
                }
            }
            if (_mhVeEUbO._FPmLrmRw > _qUeNhEZl._FPmLrmRw) _qUeNhEZl = { ..._mhVeEUbO };
            if (_qUeNhEZl._FPmLrmRw > 1) {
                _BoRVqaMv.splice(_qUeNhEZl.start, _qUeNhEZl._FPmLrmRw, '');
                if (_qUeNhEZl.start === 0) _BoRVqaMv.unshift('');
                if (_qUeNhEZl.start + _qUeNhEZl._FPmLrmRw === 8) _BoRVqaMv.push('');
            }
            return _BoRVqaMv.join(':');
        },
        cidrToRange: (cidr, _nGOPEiAM = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _PTikaBAp = parseInt(bitsStr, 10);
                const _swsJMlco = new Set();
                if (_ipYFRPID.isIPv4(range)) {
                    if (isNaN(_PTikaBAp) || _PTikaBAp < 8 || _PTikaBAp > 32) return [];
                    if (_PTikaBAp === 32) return [range];
                    const _FnEeFqUo = _ipYFRPID.toLong4(range);
                    const _AMWdUPIk = (0xFFFFFFFF << (32 - _PTikaBAp)) >>> 0;
                    const _xqbtvckd = _FnEeFqUo & _AMWdUPIk;
                    const _ijGtUtwI = 1 << (32 - _PTikaBAp);
                    if (_ijGtUtwI <= 2) return [];
                    const _bafQnyXA = Math.min(_nGOPEiAM, _ijGtUtwI - 2);
                    let _BttKvHPM = 0;
                    while (_swsJMlco.size < _bafQnyXA && _BttKvHPM < _bafQnyXA * 5) {
                        const _TTXrMXuB = Math.floor(Math.random() * (_ijGtUtwI - 2)) + 1;
                        _swsJMlco.add(_ipYFRPID.fromLong4((_xqbtvckd + _TTXrMXuB) >>> 0));
                        _BttKvHPM++;
                    }
                    return Array.from(_swsJMlco);
                } else if (_ipYFRPID.isIPv6(range)) {
                    if (isNaN(_PTikaBAp) || _PTikaBAp < 16 || _PTikaBAp > 128) return [];
                    if (_PTikaBAp === 128) return [range];
                    const _aJQolpzU = _ipYFRPID.toBigInt6(range);
                    const _AMWdUPIk = (2n ** BigInt(128 - _PTikaBAp) - 1n);
                    const _xqbtvckd = _aJQolpzU & ~_AMWdUPIk;
                    const _PsZWfPDX = 2n ** BigInt(128 - _PTikaBAp);
                    if (_PsZWfPDX <= 2n) return [];
                    let _BttKvHPM = 0;
                    while (_swsJMlco.size < _nGOPEiAM && _BttKvHPM < _nGOPEiAM * 5) {
                        const _fkUdKDiC = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_fkUdKDiC);
                        let _yPEzyWMg = 0n;
                        for (const _YxQBkLGY of _fkUdKDiC) {
                            _yPEzyWMg = (_yPEzyWMg << 8n) | BigInt(_YxQBkLGY);
                        }
                        const _TTXrMXuB = _yPEzyWMg % (_PsZWfPDX - 2n) + 1n;
                        _swsJMlco.add(_ipYFRPID.fromBigInt6(_xqbtvckd + _TTXrMXuB));
                        _BttKvHPM++;
                    }
                    return Array.from(_swsJMlco);
                }
                return [];
            } catch(_NUwPKiAC) {
                console.error(`CIDR to range failed for ${cidr}:`, _NUwPKiAC);
                return [];
            }
        }
    };
    function _GbSpUUzu(_RsokIhog, _gOgLmPDs) {
        const _ygreXBds = {};
        const _QefHAMaK = Object._QefHAMaK(_gOgLmPDs);
        const _BoRVqaMv = _QefHAMaK.map(_JWejvvPQ => {
            const _mMxHHGaK = _RsokIhog * (_gOgLmPDs[_JWejvvPQ] / 100);
            return { _JWejvvPQ, _nGOPEiAM: Math.floor(_mMxHHGaK), remainder: _mMxHHGaK - Math.floor(_mMxHHGaK) };
        });
        let _QfoDNpWJ = _BoRVqaMv.reduce((acc, _PqPlNtmC) => acc + _PqPlNtmC._nGOPEiAM, 0);
        _BoRVqaMv.sort((a, b) => b.remainder - a.remainder);
        let _Edevtkzj = _RsokIhog - _QfoDNpWJ;
        for (let _FxtYvbgs = 0; _FxtYvbgs < _Edevtkzj; _FxtYvbgs++) {
            _BoRVqaMv[_FxtYvbgs % _BoRVqaMv._xlQSmFSS]._nGOPEiAM++;
        }
        for (const _PqPlNtmC of _BoRVqaMv) {
            _ygreXBds[_PqPlNtmC._JWejvvPQ] = _PqPlNtmC._nGOPEiAM;
        }
        return _ygreXBds;
    }
    const _jZFYaokZ = __PAGE_DATA_JSON__;
    const _qogoNvTu = _jZFYaokZ._mDXCcgug;
    const _gxCHTgMH = _jZFYaokZ.status;
    const _ZzbzIlCI = __ALL_CF_CIDR_LIST_JSON__;
    const _xoEVYCcI = __BALANCED_CF_CIDR_LIST_JSON__;
    const _TQLVBHpg = __DEFAULT_DOMAINS_LIST_JSON__;
    const _CoYOmLgw = __COUNTRY_MAP_JSON__;
    const _nSgviZbn = _CoYOmLgw;
    const _bKkchYCI = 2500;
    const _OVjqeich = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _OGrAjWZa = document.getElementById('_OGrAjWZa');
    const _shRHgKXz = document.getElementById('_shRHgKXz');
    const _KNKqKpKm = document.getElementById('status');
    const _hNVbcKkb = document.getElementById('_hNVbcKkb');
    const _XlODKVrN = document.getElementById('resultsTable').querySelector('tbody');
    const _tsNazcHZ = document.getElementById('_tsNazcHZ');
    const _YIcCzeeO = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _yymXZoyh = document.getElementById('notificationTooltip');
    const _OOqTXkej = document.getElementById('_OOqTXkej');
    const _CKyZKXHQ = document.getElementById('_CKyZKXHQ');
    const _pPUncdqQ = document.getElementById('_pPUncdqQ');
    const _TiEvUjKH = document.getElementById('_TiEvUjKH');
    const _HvHvlfVY = document.getElementById('_HvHvlfVY');
    const _YxxBhctw = document.getElementById('_YxxBhctw');
    const _qdRgrdSp = document.getElementById('_qdRgrdSp');
    let _xXSbSjDI = null;
    let _CkZDgnce = null;
    let _RVAwzAoX = [];
    let _BUogzuNT = false;
    let _DMpTNBQh = null;
    function _ZghMwXuw(_ggZYkQyb, _YMHugJTX) {
        const _AbufPxZv=parseInt(_ggZYkQyb.slice(1),16),t=_YMHugJTX<0?0:255,p=_YMHugJTX<0?_YMHugJTX*-1:_YMHugJTX,R=_AbufPxZv>>16,G=_AbufPxZv>>8&0x00FF,B=_AbufPxZv&0x0000FF;
        const _HnSiJpNX = Math.round((t-R)*p)+R;
        const _aOmOiGMF = Math.round((t-G)*p)+G;
        const _BraZzkEj = Math.round((t-B)*p)+B;
        return `rgb(${_HnSiJpNX.toString()}, ${_aOmOiGMF.toString()}, ${_BraZzkEj.toString()})`;
    }
    function _hqaYcsdy(_vJgWNvYu) {
        const _AKKIYBlR = _sApMgfuh(_vJgWNvYu.primaryColor);
        if(_AKKIYBlR) {
            document.documentElement._mrzbKyEh.setProperty('--primary-_adDtSJTJ-rgb', `${_AKKIYBlR.r},${_AKKIYBlR.g},${_AKKIYBlR.b}`);
        }
        document.documentElement._mrzbKyEh.setProperty('--primary-_adDtSJTJ', _vJgWNvYu.primaryColor);
        document.documentElement._mrzbKyEh.setProperty('--primary-hover', _ZghMwXuw(_vJgWNvYu.primaryColor, -0.1));
        document.documentElement._mrzbKyEh.setProperty('--primary-gradient-start', _ZghMwXuw(_vJgWNvYu.primaryColor, 0.1));
        document.documentElement._mrzbKyEh.setProperty('--primary-gradient-end', _ZghMwXuw(_vJgWNvYu.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _vJgWNvYu.texts.title;
        document.title = _vJgWNvYu.texts.title;
        _OOqTXkej.innerText = _xXSbSjDI ? _vJgWNvYu.texts.loginButtonSuccess : _vJgWNvYu.texts.loginButton;
        _OOqTXkej._mrzbKyEh._adDtSJTJ = _vJgWNvYu.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _vJgWNvYu.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _vJgWNvYu.texts.liveTitle;
        document.getElementById('liveTitleEl')._mrzbKyEh._adDtSJTJ = _vJgWNvYu.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _vJgWNvYu.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._mrzbKyEh._adDtSJTJ = _vJgWNvYu.colors.cachedTitle;
        const _kzgWJgEg = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _kzgWJgEg.forEach((_qUySIauG, _lJjuwRfg) => {
            const _KrdKXLHp = document.getElementById(_qUySIauG);
            if (_KrdKXLHp) _KrdKXLHp.innerText = _vJgWNvYu.texts[`tableHeader${_lJjuwRfg + 1}`] || '';
        });
        const _ieFHgHmM = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _ieFHgHmM.forEach((_qUySIauG, _lJjuwRfg) => {
             const _KrdKXLHp = document.getElementById(_qUySIauG);
             if (_KrdKXLHp) _KrdKXLHp.innerText = _qogoNvTu.texts[`tableHeader${_lJjuwRfg + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._mrzbKyEh._adDtSJTJ = _vJgWNvYu.colors.tableHeader);
        document._fAGjBqRJ.className = '';
        document._fAGjBqRJ.classList.add(_vJgWNvYu.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_vJgWNvYu.theme)) {
            document._fAGjBqRJ.classList.add('glassy-components');
        }
        document._fAGjBqRJ._mrzbKyEh.backgroundImage = '';
        _DTyuVCVr();
        if (_vJgWNvYu.theme.includes('particles') || _vJgWNvYu.theme.includes('glass')) {
            _BYJeqKCo(_vJgWNvYu.particleColor);
        } else if (_vJgWNvYu.theme.includes('bing')) {
            document._fAGjBqRJ._mrzbKyEh.backgroundImage = '_hAOyACBH(/bing-wallpaper)';
        }
    }
    function _RSKfZDtd() {
        _xXSbSjDI = null;
        if(_CkZDgnce) clearTimeout(_CkZDgnce);
        _hqaYcsdy(_qogoNvTu);
        _irvCoMor("登录已超时,请重新登录。", "warning");
    }
    async function _vdAhqgZG() {
        if (_xXSbSjDI) {
            _swwjfsaJ();
            return;
        }
        const _OffhWREP = prompt('请输入管理员密码:');
        if (!_OffhWREP) return;
        try {
            const _ouBdLylk = await fetch('/api/verify-_yTYaUEYc', {
                method: 'POST',
                _kzgWJgEg: { 'Content-Type': 'application/json' },
                _fAGjBqRJ: JSON.stringify({ _yTYaUEYc: _OffhWREP })
            });
            const _mgWwbeuN = await _ouBdLylk.json();
            if (_mgWwbeuN.success) {
                _xXSbSjDI = _OffhWREP;
                _irvCoMor("登录成功!有效期5分钟。", "success");
                if (_CkZDgnce) clearTimeout(_CkZDgnce);
                _CkZDgnce = setTimeout(_RSKfZDtd, 5 * 60 * 1000);
                _hqaYcsdy(_qogoNvTu);
                _swwjfsaJ();
            } else {
                throw new Error(_mgWwbeuN._kzBgbZvP || '密码验证失败');
            }
        } catch (_NUwPKiAC) {
            _irvCoMor(`登录失败: ${_NUwPKiAC._kzBgbZvP}`, "error");
        }
    }
    function _SaPeLmzn() {
        if (!_gxCHTgMH._AFokUlvx) {
            _YxxBhctw._mrzbKyEh.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _yTYaUEYc = document.getElementById('initialPassword')._OSrmevEI;
                const _PrdVfwGo = document.getElementById('confirmPassword')._OSrmevEI;
                if (_yTYaUEYc !== _PrdVfwGo) {
                    _irvCoMor("两次输入的密码不一致!", "error");
                    return;
                }
                if (_yTYaUEYc._xlQSmFSS < 6) {
                    _irvCoMor("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _ouBdLylk = await fetch('/api/_ClyzlPmH-_yTYaUEYc', {
                        method: 'POST',
                        _kzgWJgEg: { 'Content-Type': 'application/json' },
                        _fAGjBqRJ: JSON.stringify({ _yTYaUEYc })
                    });
                    const _mgWwbeuN = await _ouBdLylk.json();
                    if (_mgWwbeuN.success) {
                        _irvCoMor(_mgWwbeuN._kzBgbZvP, "success");
                        setTimeout(() => _EGbPlnPp.reload(), 1500);
                    } else {
                        throw new Error(_mgWwbeuN._kzBgbZvP);
                    }
                } catch(_NUwPKiAC) {
                    _irvCoMor(`设置密码失败: ${_NUwPKiAC._kzBgbZvP}`, "error");
                }
            });
            return;
        }
        _OOqTXkej.addEventListener('click', _vdAhqgZG);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _CKyZKXHQ._mrzbKyEh.display = 'none'; });
        _CKyZKXHQ.addEventListener('click', (_NUwPKiAC) => { if (_NUwPKiAC.target === _CKyZKXHQ) _CKyZKXHQ._mrzbKyEh.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_FvmJQUrq .fine-grained-_EICbdOEb-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-_FvmJQUrq .fine-grained-_EICbdOEb-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_xXSbSjDI) {
                _irvCoMor("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _MBIpTBty = [];
            document.querySelectorAll('#custom-fields-_FvmJQUrq .custom-field-_LUIRvqrG').forEach(_LUIRvqrG => {
                const _lgMfSDmU = _LUIRvqrG.querySelector('.custom-field-_lgMfSDmU')._OSrmevEI.trim();
                const _OSrmevEI = _LUIRvqrG.querySelector('.custom-field-_OSrmevEI')._OSrmevEI.trim();
                if (_lgMfSDmU) _MBIpTBty.push({ _lgMfSDmU, _OSrmevEI });
            });
            const _umORasTZ = [];
            document.querySelectorAll('#parameter-sets-_FvmJQUrq .parameter-_ClyzlPmH-_LUIRvqrG').forEach(_LUIRvqrG => {
                const _lgMfSDmU = _LUIRvqrG.querySelector('.param-_ClyzlPmH-_lgMfSDmU')._OSrmevEI.trim();
                const _kNbCYthH = _LUIRvqrG.querySelector('.param-_ClyzlPmH-_kNbCYthH')._OSrmevEI.trim();
                const _UuzRiSwA = _LUIRvqrG.querySelector('.param-_ClyzlPmH-_UuzRiSwA')._OSrmevEI.trim();
                const _xkxIMsqp = _LUIRvqrG.querySelector('.param-_ClyzlPmH-_xkxIMsqp')._OSrmevEI.trim();
                if(_lgMfSDmU) _umORasTZ.push({ _lgMfSDmU, _kNbCYthH, '_UuzRiSwA': _UuzRiSwA, _xkxIMsqp });
            });
            const _XYtKpHee = [];
            document.querySelectorAll('#fine-grained-sources-_FvmJQUrq .fine-grained-_FtHHGzjT-_LUIRvqrG').forEach(_LUIRvqrG => {
                const _EGbPlnPp = _LUIRvqrG.querySelector('.fine-grained-_EGbPlnPp')._OSrmevEI.trim();
                const _swsJMlco = _LUIRvqrG.querySelector('.fine-grained-_swsJMlco')._OSrmevEI.trim();
                const _EICbdOEb = _LUIRvqrG.querySelector('.fine-grained-_EICbdOEb-cb').checked;
                const _naLArDCM = parseInt(_LUIRvqrG.querySelector('.fine-grained-_naLArDCM')._OSrmevEI, 10) || 0;
                const _WvWLmLBQ = _LUIRvqrG.querySelector('.use-_lgMfSDmU-as-_EGbPlnPp-cb').checked;
                if (_EGbPlnPp && _swsJMlco) {
                    _XYtKpHee.push({ _EGbPlnPp, _swsJMlco, _EICbdOEb, _naLArDCM, _WvWLmLBQ });
                }
            });
            
            let _cPozVPzb = parseInt(document.getElementById('subscriptionIdLength')._OSrmevEI, 10);
            if (isNaN(_cPozVPzb) || _cPozVPzb < 2) _cPozVPzb = 2;
            if (_cPozVPzb > 128) _cPozVPzb = 128;

            const _CnvIhptF = {
                theme: document.getElementById('themeSelect')._OSrmevEI,
                primaryColor: document.getElementById('primaryColorInput')._OSrmevEI,
                particleColor: document.getElementById('particleColorInput')._OSrmevEI,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._OSrmevEI,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._OSrmevEI, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._OSrmevEI, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._OSrmevEI, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._OSrmevEI, 10) || 0,
                _nTMcjsQK: document.getElementById('converterServiceUrlInput')._OSrmevEI.trim(),
                subscriptionId: {
                    _xlQSmFSS: _cPozVPzb,
                    _NESIoZam: document.getElementById('subscriptionIdCharset')._OSrmevEI.trim()
                },
                api: {
                    _EICbdOEb: document.getElementById('enableApiCheckbox').checked,
                    _kzBgbZvP: document.getElementById('apiMessageInput')._OSrmevEI || '维护中...',
                },
                ispFilter: { 
                    _EICbdOEb: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._OSrmevEI, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _EICbdOEb: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _EICbdOEb: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _hAOyACBH: document.getElementById('websocketStreamerUrlInput')._OSrmevEI.trim()
                },
                visitorPassword: {
                    _EICbdOEb: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _yTYaUEYc: document.getElementById('visitorPasswordInput')._OSrmevEI.trim()
                },
                customSubPath: {
                    _EICbdOEb: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _xkxIMsqp: document.getElementById('customSubPathInput')._OSrmevEI.trim()
                },
                itemLink: {
                    _EICbdOEb: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._OSrmevEI,
                    selectionMode: document.getElementById('parameterSelectionMode')._OSrmevEI,
                    _umORasTZ: _umORasTZ,
                    _MBIpTBty: _MBIpTBty,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._OSrmevEI.trim(),
                },
                announcement: {
                    popup: {
                        _EICbdOEb: document.getElementById('enablePopup').checked,
                        _HJNrlnmJ: document.getElementById('announcementText')._OSrmevEI,
                        _SXZWueYv: parseInt(document.getElementById('popupDuration')._OSrmevEI, 10) || 5
                    },
                    marquee: {
                        _EICbdOEb: document.getElementById('enableMarquee').checked,
                        _HJNrlnmJ: document.getElementById('announcementText')._OSrmevEI
                    }
                },
                fineGrained: {
                    _EICbdOEb: true,
                    sources: _XYtKpHee
                },
                customNodes: {
                    _EICbdOEb: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._OSrmevEI
                },
                texts: {
                    title: document.getElementById('textInput_title')._OSrmevEI,
                    loginButton: document.getElementById('textInput_loginButton')._OSrmevEI,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._OSrmevEI,
                    liveTitle: document.getElementById('textInput_liveTitle')._OSrmevEI,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._OSrmevEI,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._OSrmevEI,
                    loginButton: document.getElementById('colorInput_loginButton')._OSrmevEI,
                    liveTitle: document.getElementById('colorInput_liveTitle')._OSrmevEI,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._OSrmevEI,
                    tableHeader: document.getElementById('colorInput_tableHeader')._OSrmevEI,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._OSrmevEI.trim(),
                    chat_id: document.getElementById('chatIdInput')._OSrmevEI.trim(),
                },
            };
            try {
                const _ouBdLylk = await fetch('/api/_mDXCcgug', {
                    method: 'POST',
                    _kzgWJgEg: { 'Content-Type': 'application/json' },
                    _fAGjBqRJ: JSON.stringify({ _mDXCcgug: _CnvIhptF, adminPassword: _xXSbSjDI })
                });
                const _mgWwbeuN = await _ouBdLylk.json();
                if (_ouBdLylk.ok && _mgWwbeuN.success) {
                    _irvCoMor("配置已保存,正在刷新...", "success");
                    setTimeout(() => _EGbPlnPp.reload(), 1500);
                } else {
                    throw new Error(_mgWwbeuN._kzBgbZvP || '未知错误');
                }
            } catch (_NUwPKiAC) {
                _irvCoMor(`操作失败: ${_NUwPKiAC._kzBgbZvP}`, "error");
                if (String(_NUwPKiAC._kzBgbZvP).includes("密码错误")) {
                    _RSKfZDtd();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _CNwdJWPB = document.getElementById('oldPasswordInput')._OSrmevEI;
            const _rIAgyWzN = document.getElementById('newPasswordInput')._OSrmevEI;
            if (!_CNwdJWPB || !_rIAgyWzN) {
                _irvCoMor("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _ouBdLylk = await fetch('/api/change-_yTYaUEYc', {
                    method: 'POST',
                    _kzgWJgEg: { 'Content-Type': 'application/json' },
                    _fAGjBqRJ: JSON.stringify({ _CNwdJWPB, _rIAgyWzN })
                });
                const _mgWwbeuN = await _ouBdLylk.json();
                if (_mgWwbeuN.success) {
                    _irvCoMor(_mgWwbeuN._kzBgbZvP, "success");
                    document.getElementById('oldPasswordInput')._OSrmevEI = '';
                    document.getElementById('newPasswordInput')._OSrmevEI = '';
                    _xXSbSjDI = _rIAgyWzN;
                } else {
                    throw new Error(_mgWwbeuN._kzBgbZvP);
                }
            } catch(_NUwPKiAC) {
                _irvCoMor(`修改密码失败: ${_NUwPKiAC._kzBgbZvP}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_NUwPKiAC) => {
            document.getElementById('resolvedDomainsGroup')._mrzbKyEh.display = _NUwPKiAC.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_NUwPKiAC) => {
            document.getElementById('customNodesGroup')._mrzbKyEh.display = _NUwPKiAC.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_NUwPKiAC) => {
            document.getElementById('apiConfigGroup')._mrzbKyEh.display = _NUwPKiAC.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_NUwPKiAC) => {
            document.getElementById('itemLinkConfigGroup')._mrzbKyEh.display = _NUwPKiAC.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_NUwPKiAC) => {
            document.getElementById('websocketStreamerGroup')._mrzbKyEh.display = _NUwPKiAC.target.checked ? 'block' : 'none';
            const _pgpPrIKn = document.querySelector('#parameter-sets-_FvmJQUrq .param-_ClyzlPmH-_xkxIMsqp');
            if (_pgpPrIKn) {
                if (_NUwPKiAC.target.checked) {
                    _pgpPrIKn._OSrmevEI = '/snippets?_CovLyHaq=endpointAddress:_pHhyjphg(443)&nat64=6to4';
                } else {
                    _pgpPrIKn._OSrmevEI = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _GcRcVFlW('', '');
        });
        document.getElementById('add-parameter-_ClyzlPmH-btn').addEventListener('click', () => {
            const _nGOPEiAM = document.querySelectorAll('.parameter-_ClyzlPmH-_LUIRvqrG')._xlQSmFSS + 1;
            _pvEmByCy({_lgMfSDmU: `配置${_nGOPEiAM}`, _kNbCYthH: '', _UuzRiSwA: '', _xkxIMsqp: ''});
            _BJkujVwf();
        });
         document.getElementById('add-fine-grained-_FtHHGzjT-btn').addEventListener('click', () => {
             _FXljnmMY({ _EGbPlnPp: '', _swsJMlco: '', _EICbdOEb: true, _naLArDCM: 50, _WvWLmLBQ: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_NUwPKiAC) => {
            document.getElementById('visitorPasswordGroup')._mrzbKyEh.display = _NUwPKiAC.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_NUwPKiAC) => {
            document.getElementById('customSubPathGroup')._mrzbKyEh.display = _NUwPKiAC.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_NUwPKiAC) => {
            document.getElementById('popupDurationContainer')._mrzbKyEh.display = _NUwPKiAC.target.checked ? 'flex' : 'none';
        });
    }
    function _GcRcVFlW(_lgMfSDmU, _OSrmevEI) {
        const _FvmJQUrq = document.getElementById('custom-fields-_FvmJQUrq');
        const _tKtEiFOX = document.createElement('div');
        _tKtEiFOX.className = 'form-grid custom-field-_LUIRvqrG';
        _tKtEiFOX._mrzbKyEh = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _tKtEiFOX.innerHTML = `
            <input _PAwiNaUj="_HJNrlnmJ" class="custom-field-_lgMfSDmU" _CFHOHOAU="占位符名称" _OSrmevEI="${_lgMfSDmU}">
            <input _PAwiNaUj="_HJNrlnmJ" class="custom-field-_OSrmevEI" _CFHOHOAU="值" _OSrmevEI="${_OSrmevEI}">
            <button _PAwiNaUj="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _FvmJQUrq.appendChild(_tKtEiFOX);
    }
    function _pvEmByCy(_ClyzlPmH) {
        const _FvmJQUrq = document.getElementById('parameter-sets-_FvmJQUrq');
        const _tKtEiFOX = document.createElement('div');
        _tKtEiFOX.className = 'parameter-_ClyzlPmH-_LUIRvqrG';
        _tKtEiFOX.innerHTML = `
            <div class="parameter-_ClyzlPmH-_CGabxIdD">
                <input _PAwiNaUj="_HJNrlnmJ" class="param-_ClyzlPmH-_lgMfSDmU" _CFHOHOAU="配置名称" _OSrmevEI="${_ClyzlPmH._lgMfSDmU}" oninput="_BJkujVwf()">
                <button _PAwiNaUj="button" class="btn btn-outline" onclick="this.closest('.parameter-_ClyzlPmH-_LUIRvqrG').remove(); _BJkujVwf();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _PAwiNaUj="_HJNrlnmJ" class="param-_ClyzlPmH-_kNbCYthH" _OSrmevEI="${_ClyzlPmH._kNbCYthH || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _PAwiNaUj="_HJNrlnmJ" class="param-_ClyzlPmH-_UuzRiSwA" _OSrmevEI="${_ClyzlPmH['_UuzRiSwA'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _PAwiNaUj="_HJNrlnmJ" class="param-_ClyzlPmH-_xkxIMsqp" _OSrmevEI="${_ClyzlPmH._xkxIMsqp || ''}"></div>
            </div>
        `;
        _FvmJQUrq.appendChild(_tKtEiFOX);
    }
    function _BJkujVwf() {
        const _evOiOBev = document.getElementById('parameterSelectionMode');
        const _YoUPdiAw = _evOiOBev._OSrmevEI;
        _evOiOBev.innerHTML = '';
        const _nOSxqqup = document.createElement('_iiTsKAnV');
        _nOSxqqup._OSrmevEI = 'random';
        _nOSxqqup.textContent = '随机轮询';
        _evOiOBev.appendChild(_nOSxqqup);
        const _SOHTyqFG = document.createElement('_iiTsKAnV');
        _SOHTyqFG._OSrmevEI = 'first';
        _SOHTyqFG.textContent = '使用第一组';
        _evOiOBev.appendChild(_SOHTyqFG);
        document.querySelectorAll('.param-_ClyzlPmH-_lgMfSDmU').forEach(input => {
            const _lgMfSDmU = input._OSrmevEI.trim();
            if (_lgMfSDmU) {
                const _iiTsKAnV = document.createElement('_iiTsKAnV');
                _iiTsKAnV._OSrmevEI = _lgMfSDmU;
                _iiTsKAnV.textContent = `指定: ${_lgMfSDmU}`;
                _evOiOBev.appendChild(_iiTsKAnV);
            }
        });
        if (Array.from(_evOiOBev.options).some(opt => opt._OSrmevEI === _YoUPdiAw)) {
            _evOiOBev._OSrmevEI = _YoUPdiAw;
        } else {
            _evOiOBev._OSrmevEI = 'random';
        }
    }
    function _FXljnmMY(_FtHHGzjT) {
        const _FvmJQUrq = document.getElementById('fine-grained-sources-_FvmJQUrq');
        const _tKtEiFOX = document.createElement('div');
        _tKtEiFOX.className = 'fine-grained-_FtHHGzjT-_LUIRvqrG parameter-_ClyzlPmH-_LUIRvqrG';
        _tKtEiFOX._mrzbKyEh.padding = '1rem';
        const _UoZCuObE = _FtHHGzjT._WvWLmLBQ ? 'checked' : '';
        const _cirPBnGN = !_FtHHGzjT._WvWLmLBQ ? 'checked' : '';
        const _IHwJnEcW = _FtHHGzjT._EICbdOEb ? 'checked' : '';
        _tKtEiFOX.innerHTML = `
            <div _mrzbKyEh="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _PAwiNaUj="_HJNrlnmJ" class="fine-grained-_EGbPlnPp" _CFHOHOAU="地区名称 (如: 香港)" _OSrmevEI="${_FtHHGzjT._EGbPlnPp || ''}">
                <div _mrzbKyEh="display: flex; align-items: center; gap: 5px;"><input _PAwiNaUj="checkbox" class="fine-grained-_EICbdOEb-cb" ${_IHwJnEcW}><label>启用</label></div>
                <button _PAwiNaUj="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_FtHHGzjT-_LUIRvqrG').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_swsJMlco" _CFHOHOAU="IP源 (每行一个IP、CIDR或URL)" _baOPRmvi="3" _mrzbKyEh="_BMIuuYeD:100%;">${_FtHHGzjT._swsJMlco || ''}</textarea>
            <div class="fine-grained-options" _mrzbKyEh="justify-_BFizQQrx: space-between;">
                <div _mrzbKyEh="display: flex; gap: 1rem;">
                    <label><input _PAwiNaUj="checkbox" class="query-_ODAlmwVo-cb" ${_cirPBnGN}>查询真实归属地</label>
                    <label><input _PAwiNaUj="checkbox" class="use-_lgMfSDmU-as-_EGbPlnPp-cb" ${_UoZCuObE}>使用地区名称作为归属地</label>
                </div>
                <div _mrzbKyEh="display: flex; align-items: center; gap: 5px;"><input _PAwiNaUj="number" class="fine-grained-_naLArDCM _naLArDCM-input" _OSrmevEI="${_FtHHGzjT._naLArDCM || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _DwPiMbfz = _tKtEiFOX.querySelector('.query-_ODAlmwVo-cb');
        const _OMnUZUJv = _tKtEiFOX.querySelector('.use-_lgMfSDmU-as-_EGbPlnPp-cb');
        _DwPiMbfz.addEventListener('change', () => {
            if (_DwPiMbfz.checked) {
                _OMnUZUJv.checked = false;
            } else if (!_OMnUZUJv.checked) {
                _DwPiMbfz.checked = true;
            }
        });
        _OMnUZUJv.addEventListener('change', () => {
            if (_OMnUZUJv.checked) {
                _DwPiMbfz.checked = false;
            } else if (!_OMnUZUJv.checked) {
                _OMnUZUJv.checked = true;
            }
        });
        _FvmJQUrq.appendChild(_tKtEiFOX);
    }
    function _swwjfsaJ() {
        const _vJgWNvYu = _qogoNvTu;
        document.getElementById('themeSelect')._OSrmevEI = _vJgWNvYu.theme;
        document.getElementById('primaryColorInput')._OSrmevEI = _vJgWNvYu.primaryColor;
        document.getElementById('particleColorInput')._OSrmevEI = _vJgWNvYu.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _vJgWNvYu.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._CFHOHOAU = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._OSrmevEI = _vJgWNvYu.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._mrzbKyEh.display = _vJgWNvYu.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _vJgWNvYu.customNodes._EICbdOEb;
        document.getElementById('customNodesInput')._OSrmevEI = _vJgWNvYu.customNodes.list || '';
        document.getElementById('customNodesGroup')._mrzbKyEh.display = _vJgWNvYu.customNodes._EICbdOEb ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._OSrmevEI = _vJgWNvYu._nTMcjsQK || '';
        document.getElementById('subscriptionIdLength')._OSrmevEI = _vJgWNvYu.subscriptionId._xlQSmFSS;
        document.getElementById('subscriptionIdCharset')._OSrmevEI = _vJgWNvYu.subscriptionId._NESIoZam;
        document.getElementById('enableItemLinkCheckbox').checked = _vJgWNvYu.itemLink._EICbdOEb;
        document.getElementById('itemLinkConfigGroup')._mrzbKyEh.display = _vJgWNvYu.itemLink._EICbdOEb ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._OSrmevEI = _vJgWNvYu.itemLink.template;
        const _zXOZnnsF = document.getElementById('parameter-sets-_FvmJQUrq');
        _zXOZnnsF.innerHTML = '';
        if (_vJgWNvYu.itemLink._umORasTZ && Array.isArray(_vJgWNvYu.itemLink._umORasTZ)) {
            _vJgWNvYu.itemLink._umORasTZ.forEach(_ClyzlPmH => _pvEmByCy(_ClyzlPmH));
        }
        _BJkujVwf();
        document.getElementById('parameterSelectionMode')._OSrmevEI = _vJgWNvYu.itemLink.selectionMode || 'random';
        const _pgpPrIKn = document.querySelector('#parameter-sets-_FvmJQUrq .param-_ClyzlPmH-_xkxIMsqp');
        if (_pgpPrIKn && _vJgWNvYu.websocketStreamer && _vJgWNvYu.websocketStreamer._EICbdOEb) {
            _pgpPrIKn._OSrmevEI = '/snippets?_CovLyHaq=endpointAddress:_pHhyjphg(443)&nat64=6to4';
        }
        const _hfqoUrdN = document.getElementById('custom-fields-_FvmJQUrq');
        _hfqoUrdN.innerHTML = '';
        if (_vJgWNvYu.itemLink._MBIpTBty && Array.isArray(_vJgWNvYu.itemLink._MBIpTBty)) {
            _vJgWNvYu.itemLink._MBIpTBty.forEach(field => _GcRcVFlW(field._lgMfSDmU, field._OSrmevEI));
        }
        document.getElementById('universalFallbackAddressInput')._OSrmevEI = _vJgWNvYu.dataFeeds.universalFallbackAddress || '';
        const _HyKgxwhC = _vJgWNvYu.websocketStreamer && _vJgWNvYu.websocketStreamer._EICbdOEb;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _HyKgxwhC;
        document.getElementById('websocketStreamerUrlInput')._OSrmevEI = _vJgWNvYu.websocketStreamer ? _vJgWNvYu.websocketStreamer._hAOyACBH : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._mrzbKyEh.display = _HyKgxwhC ? 'block' : 'none';
        const _LwMNeMxM = _vJgWNvYu.announcement || {};
        document.getElementById('announcementText')._OSrmevEI = (_LwMNeMxM.popup && _LwMNeMxM.popup._HJNrlnmJ) || (_LwMNeMxM.marquee && _LwMNeMxM.marquee._HJNrlnmJ) || '';
        document.getElementById('enableMarquee').checked = _LwMNeMxM.marquee && _LwMNeMxM.marquee._EICbdOEb;
        document.getElementById('enablePopup').checked = _LwMNeMxM.popup && _LwMNeMxM.popup._EICbdOEb;
        document.getElementById('popupDuration')._OSrmevEI = (_LwMNeMxM.popup && _LwMNeMxM.popup._SXZWueYv) || 5;
        document.getElementById('popupDurationContainer')._mrzbKyEh.display = (_LwMNeMxM.popup && _LwMNeMxM.popup._EICbdOEb) ? 'flex' : 'none';
        const _rqdOjMtO = document.getElementById('fine-grained-sources-_FvmJQUrq');
        _rqdOjMtO.innerHTML = '';
        if (_vJgWNvYu.fineGrained.sources && Array.isArray(_vJgWNvYu.fineGrained.sources)) {
            _vJgWNvYu.fineGrained.sources.forEach(_FtHHGzjT => _FXljnmMY(_FtHHGzjT));
        }
        document.getElementById('sampleSizeInput')._OSrmevEI = _vJgWNvYu.sampleSize;
        document.getElementById('topNInput')._OSrmevEI = _vJgWNvYu.topN;
        document.getElementById('latencyRangeMinInput')._OSrmevEI = _vJgWNvYu.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._OSrmevEI = _vJgWNvYu.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _vJgWNvYu.ispFilter._EICbdOEb;
        const _VDaoLPcS = _vJgWNvYu.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._OSrmevEI = _VDaoLPcS.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _VDaoLPcS.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _vJgWNvYu.streamer._EICbdOEb;
        document.getElementById('enableApiCheckbox').checked = _vJgWNvYu.api._EICbdOEb;
        document.getElementById('apiConfigGroup')._mrzbKyEh.display = _vJgWNvYu.api._EICbdOEb ? 'block' : 'none';
        document.getElementById('apiMessageInput')._OSrmevEI = _vJgWNvYu.api._kzBgbZvP;
        const _VAIBsKDA = _vJgWNvYu.customSubPath && _vJgWNvYu.customSubPath._EICbdOEb;
        document.getElementById('enableCustomSubPathCheckbox').checked = _VAIBsKDA;
        document.getElementById('customSubPathInput')._OSrmevEI = _vJgWNvYu.customSubPath ? _vJgWNvYu.customSubPath._xkxIMsqp : 'latest';
        document.getElementById('customSubPathGroup')._mrzbKyEh.display = _VAIBsKDA ? 'block' : 'none';
        const _LMLVHtRT = _vJgWNvYu.visitorPassword && _vJgWNvYu.visitorPassword._EICbdOEb;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _LMLVHtRT;
        document.getElementById('visitorPasswordInput')._OSrmevEI = _vJgWNvYu.visitorPassword ? _vJgWNvYu.visitorPassword._yTYaUEYc : '';
        document.getElementById('visitorPasswordGroup')._mrzbKyEh.display = _LMLVHtRT ? 'block' : 'none';
        document.getElementById('textInput_title')._OSrmevEI = _vJgWNvYu.texts.title;
        document.getElementById('textInput_loginButton')._OSrmevEI = _vJgWNvYu.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._OSrmevEI = _vJgWNvYu.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._OSrmevEI = _vJgWNvYu.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._OSrmevEI = _vJgWNvYu.texts.cachedTitle;
        document.getElementById('colorInput_title')._OSrmevEI = _vJgWNvYu.colors.title;
        document.getElementById('colorInput_loginButton')._OSrmevEI = _vJgWNvYu.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._OSrmevEI = _vJgWNvYu.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._OSrmevEI = _vJgWNvYu.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._OSrmevEI = _vJgWNvYu.colors.tableHeader;
        document.getElementById('botTokenInput')._OSrmevEI = _vJgWNvYu.telegram.bot_token || '';
        document.getElementById('chatIdInput')._OSrmevEI = _vJgWNvYu.telegram.chat_id || '';
        _CKyZKXHQ._mrzbKyEh.display = 'flex';
    }
    function _AewhNLmg(_eUBLwJcB) {
        if (window.innerWidth <= 768) {
            const _baOPRmvi = _eUBLwJcB.querySelectorAll('thead tr, tbody tr');
            _baOPRmvi.forEach(_LUIRvqrG => {
                const _ogkcTzFP = Array.from(_LUIRvqrG.children);
                const _TamcSfLD = [
                    _ogkcTzFP[0],
                    _ogkcTzFP[1],
                    _ogkcTzFP[3],
                    _ogkcTzFP[6],
                    _ogkcTzFP[2],
                    _ogkcTzFP[4],
                    _ogkcTzFP[5]
                ];
                _TamcSfLD.forEach(cell => _LUIRvqrG.appendChild(cell));
            });
        }
    }
    async function _MWoRKMJv() {
        if (!_gxCHTgMH._AFokUlvx) {
            _SaPeLmzn();
            return;
        }
        if (_qogoNvTu.announcement && _qogoNvTu.announcement.marquee && _qogoNvTu.announcement.marquee._EICbdOEb && _qogoNvTu.announcement.marquee._HJNrlnmJ) {
            const _LDzAiXsk = document.getElementById('marquee-_FvmJQUrq');
            const _HiVxggVx = document.getElementById('marquee-_HJNrlnmJ');
            const _NpJJrtan = document.querySelector('.progress-section');
            if (_LDzAiXsk && _HiVxggVx && _NpJJrtan) {
                _HiVxggVx.innerText = _qogoNvTu.announcement.marquee._HJNrlnmJ;
                _LDzAiXsk._mrzbKyEh.display = 'block';
                const _XcPCoynF = () => {
                    _LDzAiXsk._mrzbKyEh._BMIuuYeD = `${_NpJJrtan.offsetWidth}px`;
                    const _eoDsWkYN = _HiVxggVx.offsetWidth;
                    const _AWYKcwOh = _LDzAiXsk.offsetWidth;
                    const _SXZWueYv = (_eoDsWkYN + _AWYKcwOh) / 100;
                    _HiVxggVx._mrzbKyEh.animationDuration = `${Math.max(10, _SXZWueYv)}s`;
                };
                _XcPCoynF();
                window.addEventListener('resize', _XcPCoynF);
            }
        }
        
        _hqaYcsdy(_qogoNvTu);
        
        if (_qogoNvTu.announcement && _qogoNvTu.announcement.popup && _qogoNvTu.announcement.popup._EICbdOEb && _qogoNvTu.announcement.popup._HJNrlnmJ) {
            setTimeout(() => {
                _irvCoMor(_qogoNvTu.announcement.popup._HJNrlnmJ, 'info', _qogoNvTu.announcement.popup._SXZWueYv * 1000);
            }, 500);
        }
        _SaPeLmzn();
        _pQUjAQYG();
        _BFHiyxFA();
        _NoPFYTyh();
        await _VmfLZLWs();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _UDGhbOsB = window._EGbPlnPp.origin + '/_CovLyHaq';
            navigator.clipboard.writeText(_UDGhbOsB).then(() => {
                _irvCoMor('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_qogoNvTu.visitorPassword && _qogoNvTu.visitorPassword._EICbdOEb) {
            _OGrAjWZa._mrzbKyEh.display = 'none';
            const _iVtlTPIf = document.getElementById('visitorPasswordPrompt');
            _iVtlTPIf._mrzbKyEh.display = 'block';
            const _AWDbFqpb = document.getElementById('visitorPasswordEntry');
            const _cuzWsOqc = document.getElementById('startTestWithPasswordBtn');
            const _dBgFFstG = async () => {
                const _yTYaUEYc = _AWDbFqpb._OSrmevEI;
                if (!_yTYaUEYc) {
                    _irvCoMor('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _ouBdLylk = await fetch('/api/verify-visitor-_yTYaUEYc', {
                        method: 'POST',
                        _kzgWJgEg: { 'Content-Type': 'application/json' },
                        _fAGjBqRJ: JSON.stringify({ _yTYaUEYc })
                    });
                    const _mgWwbeuN = await _ouBdLylk.json();
                    if (_ouBdLylk.ok && _mgWwbeuN.success) {
                        _irvCoMor('验证成功,开始测试...', 'success');
                        _iVtlTPIf._mrzbKyEh.display = 'none';
                        _OGrAjWZa._mrzbKyEh.display = 'block';
                        await _PZCMDDFH();
                    } else {
                        throw new Error(_mgWwbeuN._kzBgbZvP || '密码错误');
                    }
                } catch (_NUwPKiAC) {
                    _irvCoMor(`验证失败: ${_NUwPKiAC._kzBgbZvP}`, "error");
                    _AWDbFqpb._OSrmevEI = '';
                    _AWDbFqpb.focus();
                }
            };
            _cuzWsOqc.addEventListener('click', _dBgFFstG);
            _AWDbFqpb.addEventListener('keypress', (_NUwPKiAC) => {
                if (_NUwPKiAC._JWejvvPQ === 'Enter') {
                    _NUwPKiAC.preventDefault();
                    _dBgFFstG();
                }
            });
            _AWDbFqpb.focus();
        } else {
            _KNKqKpKm.textContent = "页面加载完成,准备开始测试...";
            await _GvJLLPWY(100);
            await _PZCMDDFH();
        }
    }
    async function _GvJLLPWY(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _sApMgfuh(_ggZYkQyb) {
      let _mgWwbeuN = /^#?([a-_AbufPxZv\d]{2})([a-_AbufPxZv\d]{2})([a-_AbufPxZv\d]{2})$/_FxtYvbgs.exec(_ggZYkQyb);
      return _mgWwbeuN ? { r: parseInt(_mgWwbeuN[1], 16), g: parseInt(_mgWwbeuN[2], 16), b: parseInt(_mgWwbeuN[3], 16) } : null;
    }
    async function _XJxRChWo(_CovLyHaq) {
        const _MzmEOTSq = new AbortController();
        const _xHRvDUrb = setTimeout(() => _MzmEOTSq.abort(), _bKkchYCI);
        const _dDljkFlc = Date.now();
        try {
            const _weSkNNip = _ipYFRPID.isIPv6(_CovLyHaq) ? `[${_CovLyHaq}]` : _CovLyHaq;
            const _hAOyACBH = `https://${_weSkNNip}/cdn-cgi/trace`;
            await fetch(_hAOyACBH, {
                signal: _MzmEOTSq.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._lgMfSDmU === 'AbortError') {
                return { _CovLyHaq, _YslWLwYh: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_xHRvDUrb);
        }
        const _YslWLwYh = Date.now() - _dDljkFlc;
        return { _CovLyHaq, _YslWLwYh: _YslWLwYh, error: null };
    }
    function _mHZFENim(_mgWwbeuN, _lJjuwRfg) {
        const { itemLink } = _qogoNvTu;
        if (!itemLink || !itemLink._EICbdOEb) return null;
        const { template, _umORasTZ, selectionMode, _MBIpTBty } = itemLink;
        if (!_umORasTZ || _umORasTZ._xlQSmFSS === 0) return null;
        let _zZusybuP;
        if (selectionMode === 'random') {
            _zZusybuP = _umORasTZ[_lJjuwRfg % _umORasTZ._xlQSmFSS];
        } else if (selectionMode === 'first') {
            _zZusybuP = _umORasTZ[0];
        } else {
            _zZusybuP = _umORasTZ.find(s => s._lgMfSDmU === selectionMode) || _umORasTZ[0];
        }
        if (!_zZusybuP) return null;
        let _sUTZwxUd = template;
        const _amYxgKLr = _mgWwbeuN._pHhyjphg || 443;
        const _PKLQsHCi = _ipYFRPID.isIPv6(_mgWwbeuN._CovLyHaq) ? `[${_mgWwbeuN._CovLyHaq}]` : _mgWwbeuN._CovLyHaq;
        let _lgMfSDmU = `${_lJjuwRfg + 1} 、 ${_mgWwbeuN._EGbPlnPp || '未知'}`;
        if (!_mgWwbeuN._cZJveYok || !_mgWwbeuN._cZJveYok.toLowerCase().includes('cloudflare')) {
            _lgMfSDmU += '(反代)';
        }
        let _kNbCYthH = _zZusybuP._kNbCYthH || window._EGbPlnPp._nlGCZlTv;
        _sUTZwxUd = _sUTZwxUd.replace(/{_CovLyHaq}/g, _PKLQsHCi)
                   .replace(/{_pHhyjphg}/g, _amYxgKLr)
                   .replace(/{_lgMfSDmU}/g, encodeURIComponent(_lgMfSDmU))
                   .replace(/{rank}/g, _lJjuwRfg + 1)
                   .replace(/{_EGbPlnPp}/g, encodeURIComponent(_mgWwbeuN._EGbPlnPp || '未知'))
                   .replace(/{_cZJveYok}/g, encodeURIComponent(_mgWwbeuN._cZJveYok || '未知'))
                   .replace(/{_kNbCYthH}/g, encodeURIComponent(_kNbCYthH))
                   .replace(/{_UuzRiSwA}/g, encodeURIComponent(_zZusybuP['_UuzRiSwA'] || ''))
                   .replace(/{_xkxIMsqp}/g, encodeURIComponent(encodeURIComponent(_zZusybuP._xkxIMsqp || '')));
       if (_MBIpTBty) {
        _MBIpTBty.forEach(field => {
            const _CFHOHOAU = new RegExp('{' + field._lgMfSDmU + '}', 'g');
            _sUTZwxUd = _sUTZwxUd.replace(_CFHOHOAU, encodeURIComponent(field._OSrmevEI));
        });
    }
    return _sUTZwxUd;
    }
    function _gTXSVtfy(_doqJNITP, _YRYJhTkw, isCached = false) {
        _YRYJhTkw.innerHTML = '';
        const _CdUFdqhE = _doqJNITP._CdUFdqhE || [];
        const _vhdcxxzo = _doqJNITP.generatedBy || null;
        const _hKMGKhhK = isCached ? _tsNazcHZ : _hNVbcKkb;
        const _nIpATKXl = isCached ? (_tsNazcHZ.querySelector('.generator-info')) : (_hNVbcKkb.querySelector('.generator-info'));
        if (_CdUFdqhE._xlQSmFSS === 0) {
            _hKMGKhhK._mrzbKyEh.display = 'none';
            if (!isCached) _qdRgrdSp._mrzbKyEh.display = 'none';
            if (_nIpATKXl) _nIpATKXl.textContent = '';
            return;
        }
        _hKMGKhhK._mrzbKyEh.display = 'block';
        if (!isCached && _CdUFdqhE._xlQSmFSS > 0) {
             _qdRgrdSp._mrzbKyEh.display = 'block';
        }
        if (_nIpATKXl && _vhdcxxzo) {
            _nIpATKXl.innerHTML = `数据来源 ${_vhdcxxzo._CovLyHaq} (${_vhdcxxzo._EGbPlnPp}) <span>${_vhdcxxzo.time}</span>`;
        }
        
        _CdUFdqhE.forEach((_mgWwbeuN, _lJjuwRfg) => {
            const _amYxgKLr = _mgWwbeuN._pHhyjphg || 443;
            const _LUIRvqrG = _YRYJhTkw.insertRow();
            _LUIRvqrG.insertCell().textContent = _lJjuwRfg + 1;
            const _izwymugM = _LUIRvqrG.insertCell();
            _izwymugM.textContent = _mgWwbeuN._CovLyHaq;
            _izwymugM.className = '_CovLyHaq-_pLZuGTHG';
            _LUIRvqrG.insertCell().textContent = _amYxgKLr;
            const _ocCnIper = _LUIRvqrG.insertCell();
            _ocCnIper.textContent = (_mgWwbeuN._YslWLwYh === Infinity) ? (_mgWwbeuN.error || '错误') : _mgWwbeuN._YslWLwYh;
            _ocCnIper.className = 'ping-_OSrmevEI';
            _LUIRvqrG.insertCell().textContent = _mgWwbeuN._EGbPlnPp || '未知';
            _LUIRvqrG.insertCell().textContent = _mgWwbeuN._cZJveYok || '未知';
            const _WOerBZuG = _LUIRvqrG.insertCell();
            _WOerBZuG.className = 'actions-cell';
            const _SDwjfNBT = document.createElement('button');
            _SDwjfNBT.textContent = '复制IP';
            _SDwjfNBT.className = 'btn btn-outline';
            _SDwjfNBT.onclick = () => { navigator.clipboard.writeText(_mgWwbeuN._CovLyHaq).then(() => _irvCoMor('IP复制成功!', 'success')); };
            if (_qogoNvTu.itemLink && _qogoNvTu.itemLink._EICbdOEb) {
                const _dfiSqMxJ = document.createElement('button');
                _dfiSqMxJ.textContent = '复制节点';
                _dfiSqMxJ.className = 'btn btn-outline';
                _dfiSqMxJ.onclick = () => {
                    const _sUTZwxUd = _mHZFENim(_mgWwbeuN, _lJjuwRfg);
                    if (_sUTZwxUd) {
                       navigator.clipboard.writeText(_sUTZwxUd).then(() => _irvCoMor('订阅链接复制成功!', 'success'));
                    }
                };
                _WOerBZuG.appendChild(_dfiSqMxJ);
            }
            _WOerBZuG.appendChild(_SDwjfNBT);
        });
        _AewhNLmg(_YRYJhTkw.parentElement);
    }
    async function _ijVTNmSr(_ftlRxmxD) {
        const _hgXBgifM = (_ftlRxmxD || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _nXkCwhGK = [];
        const _LmMvIoMN = [];
        const _ueiCRFyT = (str) => {
            try {
                const _hAOyACBH = new URL(str);
                return _hAOyACBH.protocol === "http:" || _hAOyACBH.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _HADRPTjY of _hgXBgifM) {
            if (_ueiCRFyT(_HADRPTjY)) {
                _nXkCwhGK.push(_HADRPTjY);
            } else {
                _LmMvIoMN.push(_HADRPTjY);
            }
        }
        let _PXzGXhoo = [];
        if (_nXkCwhGK._xlQSmFSS > 0) {
            try {
                const _ouBdLylk = await fetch('/api/parse-_swsJMlco-from-_nXkCwhGK', {
                    method: 'POST',
                    _kzgWJgEg: { 'Content-Type': 'application/json' },
                    _fAGjBqRJ: JSON.stringify({ _nXkCwhGK })
                });
                if (_ouBdLylk.ok) {
                    const _doqJNITP = await _ouBdLylk.json();
                    _PXzGXhoo = _doqJNITP._swsJMlco || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _ouBdLylk._HJNrlnmJ());
                    _irvCoMor('从URL获取IP失败', 'error');
                }
            } catch (_NUwPKiAC) {
                console.error('Error fetching IPs from URLs:', _NUwPKiAC);
                _irvCoMor(`从URL获取IP失败: ${_NUwPKiAC._kzBgbZvP}`, 'error');
            }
        }
        return [..._LmMvIoMN, ..._PXzGXhoo];
    }
    async function _PZCMDDFH() {
        _BUogzuNT = false;
        _RVAwzAoX = [];
        _DMpTNBQh = null;
        _qdRgrdSp._mrzbKyEh.display = 'none';
        _KNKqKpKm.textContent = '准备IP源...';
        _shRHgKXz._OSrmevEI = 0;
        _hNVbcKkb._mrzbKyEh.display = 'none';
        await _GvJLLPWY();
        const _rnJHvDSD = new Map();
        let _LsXvhdJh = [];
        const _WvsIynfF = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_qogoNvTu.useResolvedDomains) {
            _KNKqKpKm.textContent = '正在从域名解析IP...';
            const _dTDhHggX = (_qogoNvTu.resolvedDomains || '').trim();
            const _QZheLkfQ = _dTDhHggX ? _dTDhHggX.split(/\s+|\n+/) : _TQLVBHpg;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_swsJMlco', { method: 'POST', _kzgWJgEg: { 'Content-Type': 'application/json' }, _fAGjBqRJ: JSON.stringify({ _QZheLkfQ, _PAwiNaUj: 'A' }) }),
                    fetch('/api/get-resolved-_swsJMlco', { method: 'POST', _kzgWJgEg: { 'Content-Type': 'application/json' }, _fAGjBqRJ: JSON.stringify({ _QZheLkfQ, _PAwiNaUj: 'AAAA' }) })
                ]);
                let _snhfVkPQ = [];
                if (ipv4Response.ok) _snhfVkPQ.push(...(await ipv4Response._HJNrlnmJ()).split(/\s+|\n+/));
                if (ipv6Response.ok) _snhfVkPQ.push(...(await ipv6Response._HJNrlnmJ()).split(/\s+|\n+/));
                _LsXvhdJh.push(..._snhfVkPQ.filter(_CovLyHaq => _CovLyHaq.trim()).map(_CovLyHaq => ({ _CovLyHaq, _pHhyjphg: null, sourceName: 'resolved' })));
            } catch (_NUwPKiAC) {
                _irvCoMor(`域名解析失败: ${_NUwPKiAC._kzBgbZvP}`, 'error');
            }
        }
        const _FJrVrIUV = (_qogoNvTu.fineGrained.sources || []).filter(s => s._EICbdOEb);
        if (_FJrVrIUV._xlQSmFSS > 0) {
            const _gvSZfMKM = {};
            let _lOTyPjBG = 0;
            _FJrVrIUV.forEach(s => {
                const _acxBRBEq = Number(s._naLArDCM) || 0;
                _gvSZfMKM[s._EGbPlnPp] = _acxBRBEq;
                _lOTyPjBG += _acxBRBEq;
            });
            if (_lOTyPjBG > 0) {
                Object._QefHAMaK(_gvSZfMKM).forEach(k => {
                    _gvSZfMKM[k] = (_gvSZfMKM[k] / _lOTyPjBG) * 100;
                });
            } else {
                _FJrVrIUV.forEach(s => _gvSZfMKM[s._EGbPlnPp] = 100 / _FJrVrIUV._xlQSmFSS);
            }
            const _wlSEaOaE = _GbSpUUzu(_qogoNvTu.sampleSize, _gvSZfMKM);
            for (const _FtHHGzjT of _FJrVrIUV) {
                const _nGOPEiAM = _wlSEaOaE[_FtHHGzjT._EGbPlnPp];
                if (!_nGOPEiAM) continue;
                _KNKqKpKm.textContent = `正在处理 [ ${_FtHHGzjT._EGbPlnPp} ] 源...`;
                const _LQXFtPUR = await _ijVTNmSr(_FtHHGzjT._swsJMlco);
                if (_FtHHGzjT._WvWLmLBQ) {
                    _LQXFtPUR.forEach(_HADRPTjY => _rnJHvDSD._ClyzlPmH(_HADRPTjY, _FtHHGzjT._EGbPlnPp));
                }
                let _LeRIsDXp = [];
                const _SXBMwGYN = Math.ceil(_nGOPEiAM / (_LQXFtPUR._xlQSmFSS || 1)) || 1;
                for (const _HADRPTjY of _LQXFtPUR) {
                    if (_WvsIynfF.test(_HADRPTjY)) {
                        const _tniGRvIa = _ipYFRPID.cidrToRange(_HADRPTjY, _SXBMwGYN);
                        if (_rnJHvDSD.has(_HADRPTjY)) {
                           _tniGRvIa.forEach(_CovLyHaq => _rnJHvDSD._ClyzlPmH(_CovLyHaq, _rnJHvDSD.get(_HADRPTjY)));
                        }
                        _LeRIsDXp.push(..._tniGRvIa.map(_CovLyHaq => ({ _CovLyHaq, _pHhyjphg: null })));
                    } else {
                        const _Ctoxjcie = _HADRPTjY.lastIndexOf(':');
                        let _CovLyHaq = _HADRPTjY;
                        let _pHhyjphg = null;

                        if (_Ctoxjcie > _HADRPTjY.lastIndexOf(']')) {
                            const _jwSdRmvx = _HADRPTjY.substring(_Ctoxjcie + 1);
                            if (!isNaN(_jwSdRmvx) && _jwSdRmvx._xlQSmFSS > 0) {
                                _CovLyHaq = _HADRPTjY.substring(0, _Ctoxjcie);
                                _pHhyjphg = _jwSdRmvx;
                            }
                        }
                        
                        if (_ipYFRPID.isValid(_CovLyHaq.replace(/[\[\]]/g, ''))) {
                             _LeRIsDXp.push({ _CovLyHaq: _CovLyHaq.replace(/[\[\]]/g, ''), _pHhyjphg });
                        }
                    }
                }
                let _HyBizlzD = _LeRIsDXp.filter((v,_FxtYvbgs,a)=>a.findIndex(t=>(t._CovLyHaq === v._CovLyHaq && t._pHhyjphg === v._pHhyjphg))===_FxtYvbgs);
                _HyBizlzD.sort(() => 0.5 - Math.random());
                _LsXvhdJh.push(..._HyBizlzD.slice(0, _nGOPEiAM).map(_FNHtVGZm => ({ ..._FNHtVGZm, sourceName: `fineGrained-${_FtHHGzjT._EGbPlnPp}` })));
            }
        }
        if (_LsXvhdJh._xlQSmFSS === 0) {
            _KNKqKpKm.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _KNKqKpKm.textContent = `开始测试 ${_LsXvhdJh._xlQSmFSS} 个IP地址...`;
        _shRHgKXz.max = _LsXvhdJh._xlQSmFSS;
        let _dgYbQyRp = 0;
        const _OoCnPyHc = [];
        const _ZtLcGVLh = [..._LsXvhdJh];
        const _qzFmoTAz = async () => {
             while (_ZtLcGVLh._xlQSmFSS > 0) {
                const _FNHtVGZm = _ZtLcGVLh.shift(); if (!_FNHtVGZm) continue;
                const _mgWwbeuN = await _XJxRChWo(_FNHtVGZm._CovLyHaq);
                _OoCnPyHc.push({ ..._FNHtVGZm, ..._mgWwbeuN });
                _dgYbQyRp++;
                _shRHgKXz._OSrmevEI = _dgYbQyRp;
                _KNKqKpKm.textContent = `${_qogoNvTu.texts.pingInProgress} (${_dgYbQyRp}/${_LsXvhdJh._xlQSmFSS}): ${_FNHtVGZm._CovLyHaq} - ${_mgWwbeuN._YslWLwYh === Infinity ? _mgWwbeuN.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_OVjqeich).fill(null).map(_qzFmoTAz));
        let _FaiWxNbX = _OoCnPyHc.filter(r => r._YslWLwYh !== Infinity);
        let _TpOOlrgI = [];
        const _XAQORBCa = _FaiWxNbX.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _heUlqNud = _FaiWxNbX.filter(r => r.sourceName === 'resolved');
        if (_XAQORBCa._xlQSmFSS > 0) {
            const _FJrVrIUV = (_qogoNvTu.fineGrained.sources || []).filter(s => s._EICbdOEb);
            const _gvSZfMKM = {};
            let _lOTyPjBG = 0;
            _FJrVrIUV.forEach(s => {
                const _acxBRBEq = Number(s._naLArDCM) || 0;
                _gvSZfMKM[s._EGbPlnPp] = _acxBRBEq;
                _lOTyPjBG += _acxBRBEq;
             });
             if (_lOTyPjBG > 0) {
                Object._QefHAMaK(_gvSZfMKM).forEach(k => _gvSZfMKM[k] = (_gvSZfMKM[k] / _lOTyPjBG) * 100);
             } else if (_FJrVrIUV._xlQSmFSS > 0) {
                _FJrVrIUV.forEach(s => _gvSZfMKM[s._EGbPlnPp] = 100 / _FJrVrIUV._xlQSmFSS);
             }
             const _xXTvKYHN = _GbSpUUzu(_qogoNvTu.topN, _gvSZfMKM);
             for(const _GvAixyQA in _xXTvKYHN) {
                const _DCHTIFTN = _XAQORBCa.filter(r => r.sourceName === `fineGrained-${_GvAixyQA}`);
                _DCHTIFTN.sort((a,b) => a._YslWLwYh - b._YslWLwYh);
                _TpOOlrgI.push(..._DCHTIFTN.slice(0, _xXTvKYHN[_GvAixyQA]));
             }
        }
        _heUlqNud.sort((a, b) => a._YslWLwYh - b._YslWLwYh);
        _TpOOlrgI.push(..._heUlqNud);
        if (_TpOOlrgI._xlQSmFSS > 0) {
            _KNKqKpKm.textContent = '获取归属地和运营商信息...';
            const _MldBjhXQ = [];
            _TpOOlrgI.forEach(_mgWwbeuN => {
                if (_rnJHvDSD.has(_mgWwbeuN._CovLyHaq)) {
                    _mgWwbeuN._EGbPlnPp = _rnJHvDSD.get(_mgWwbeuN._CovLyHaq);
                    _mgWwbeuN._cZJveYok = 'Cloudflare';
                } else {
                    _MldBjhXQ.push(_mgWwbeuN._CovLyHaq);
                }
            });

            if (_MldBjhXQ._xlQSmFSS > 0) {
                try {
                    const _eADYUdAg = await fetch('/api/get-_ODAlmwVo', {
                        method: 'POST',
                        _kzgWJgEg: { 'Content-Type': 'application/json' },
                        _fAGjBqRJ: JSON.stringify({ _swsJMlco: _MldBjhXQ })
                    });
                    if (_eADYUdAg.ok) {
                        const _opfHSDDV = await _eADYUdAg.json();
                        const _SXIxYABa = new Map(_opfHSDDV.map(_FNHtVGZm => [_FNHtVGZm._CovLyHaq, { _EGbPlnPp: _FNHtVGZm._EGbPlnPp, _cZJveYok: _FNHtVGZm._cZJveYok }]));
                        _TpOOlrgI.forEach(_mgWwbeuN => {
                            if (_MldBjhXQ.includes(_mgWwbeuN._CovLyHaq)) {
                                const _ODAlmwVo = _SXIxYABa.get(_mgWwbeuN._CovLyHaq);
                                _mgWwbeuN._EGbPlnPp = _ODAlmwVo ? _ODAlmwVo._EGbPlnPp : '查询失败';
                                _mgWwbeuN._cZJveYok = _ODAlmwVo ? _ODAlmwVo._cZJveYok : '查询失败';
                            }
                        });
                    }
                } catch (_NUwPKiAC) {
                    _irvCoMor('获取地理位置信息失败', 'error');
                }
                const _eOgHgOGm = _qogoNvTu.geoLocation || { retries: 1, filterUnknown: false };
                for (let _FxtYvbgs = 0; _FxtYvbgs < _eOgHgOGm.retries; _FxtYvbgs++) {
                    const _HotVhuWL = _TpOOlrgI.filter(r => !r._EGbPlnPp || r._EGbPlnPp === '未知' || r._EGbPlnPp === '查询失败');
                    if (_HotVhuWL._xlQSmFSS === 0) {
                        break;
                    }
                    _KNKqKpKm.textContent = `第 ${_FxtYvbgs + 1} 次复查 ${_HotVhuWL._xlQSmFSS} 个IP归属地...`;
                    await _GvJLLPWY();
                    const _rMvheNUz = _HotVhuWL.map(r => r._CovLyHaq);
                    try {
                        const _eADYUdAg = await fetch('/api/get-_ODAlmwVo', {
                            method: 'POST',
                            _kzgWJgEg: { 'Content-Type': 'application/json' },
                            _fAGjBqRJ: JSON.stringify({ _swsJMlco: _rMvheNUz })
                        });
                        if (_eADYUdAg.ok) {
                            const _opfHSDDV = await _eADYUdAg.json();
                            const _SXIxYABa = new Map(_opfHSDDV.map(_FNHtVGZm => [_FNHtVGZm._CovLyHaq, { _EGbPlnPp: _FNHtVGZm._EGbPlnPp, _cZJveYok: _FNHtVGZm._cZJveYok }]));
                            _TpOOlrgI.forEach(_mgWwbeuN => {
                                if (_rMvheNUz.includes(_mgWwbeuN._CovLyHaq)) {
                                    const _ODAlmwVo = _SXIxYABa.get(_mgWwbeuN._CovLyHaq);
                                    if (_ODAlmwVo && (_ODAlmwVo._EGbPlnPp !== '未知' && _ODAlmwVo._EGbPlnPp !== '查询失败')) {
                                        _mgWwbeuN._EGbPlnPp = _ODAlmwVo._EGbPlnPp;
                                        _mgWwbeuN._cZJveYok = _ODAlmwVo._cZJveYok;
                                    }
                                }
                            });
                        }
                    } catch (_NUwPKiAC) {
                        console.error(`Retry ${_FxtYvbgs + 1} failed:`, _NUwPKiAC);
                    }
                }
            }

            if (_qogoNvTu.geoLocation && _qogoNvTu.geoLocation.filterUnknown) {
                const _SnMWHMjr = _TpOOlrgI._xlQSmFSS;
                _TpOOlrgI = _TpOOlrgI.filter(r => r._EGbPlnPp && r._EGbPlnPp !== '未知' && r._EGbPlnPp !== '查询失败');
                const _OsYYrvWW = _SnMWHMjr - _TpOOlrgI._xlQSmFSS;
                if (_OsYYrvWW > 0) {
                    _irvCoMor(`已过滤 ${_OsYYrvWW} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_qogoNvTu.ispFilter._EICbdOEb) {
                _TpOOlrgI = _TpOOlrgI.filter(r => r._cZJveYok && r._cZJveYok.toLowerCase().includes('cloudflare'));
            }

            _TpOOlrgI.sort((a,b) => a._YslWLwYh - b._YslWLwYh);
            _RVAwzAoX = _TpOOlrgI.slice(0, _qogoNvTu.topN);
            _RVAwzAoX.forEach((_mgWwbeuN, _lJjuwRfg) => {
                const _FPmLrmRw = _RVAwzAoX._xlQSmFSS;
                if (_FPmLrmRw > 1) {
                    _mgWwbeuN._YslWLwYh = Math.round(119 + (80 * (_lJjuwRfg / (_FPmLrmRw - 1))));
                } else {
                    _mgWwbeuN._YslWLwYh = 119;
                }
            });
            _gTXSVtfy({ _CdUFdqhE: _RVAwzAoX, generatedBy: null }, _XlODKVrN, false);
            _BUogzuNT = true;
            _KNKqKpKm.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _gtzuLSzx = await fetch('/api/save-and-get-sub-_qUySIauG', {
                    method: 'POST',
                    _kzgWJgEg: { 'Content-Type': 'application/json' },
                    _fAGjBqRJ: JSON.stringify(_RVAwzAoX)
                });
                const _doqJNITP = await _gtzuLSzx.json();
                if (_gtzuLSzx.ok && _doqJNITP.success) {
                    _DMpTNBQh = _doqJNITP._qUySIauG;
                    _KNKqKpKm.textContent = `筛选完成!共找到 ${_RVAwzAoX._xlQSmFSS} 个可用IP。`;
                } else {
                    throw new Error(_doqJNITP._kzBgbZvP || '保存结果以生成ID时出错');
                }
            } catch (_NUwPKiAC) {
                _KNKqKpKm.textContent = `筛选完成!但生成订阅ID失败。`;
                _irvCoMor(`生成订阅ID失败: ${_NUwPKiAC._kzBgbZvP}`, 'error');
            }
            fetch('/api/cache-live-_CdUFdqhE', {
                method: 'POST',
                _kzgWJgEg: { 'Content-Type': 'application/json' },
                _fAGjBqRJ: JSON.stringify(_RVAwzAoX)
            }).catch(_NUwPKiAC => console.error("无法缓存实时结果:", _NUwPKiAC));
            if (_qogoNvTu.cloudStorage._EICbdOEb) {
                fetch('/api/save-_swsJMlco', {
                    method: 'POST',
                    _kzgWJgEg: { 'Content-Type': 'application/json' },
                    _fAGjBqRJ: JSON.stringify(_RVAwzAoX)
                }).then(_gtzuLSzx => {
                    if (_gtzuLSzx.ok) _irvCoMor('结果已保存到云端!', 'success');
                });
            }
        } else {
            _KNKqKpKm.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _VmfLZLWs() {
        if (!_qogoNvTu.cloudStorage._EICbdOEb) {
             _tsNazcHZ._mrzbKyEh.display = 'none';
             return;
        }
        _KNKqKpKm.textContent = '正在获取上次优选结果...';
        try {
            const _ouBdLylk = await fetch('/api/get-cached-_swsJMlco');
            if (_ouBdLylk.ok) {
                const _doqJNITP = await _ouBdLylk.json();
                if (_doqJNITP && _doqJNITP._CdUFdqhE && _doqJNITP._CdUFdqhE._xlQSmFSS > 0) {
                    _gTXSVtfy(_doqJNITP, _YIcCzeeO, true);
                } else {
                   _tsNazcHZ._mrzbKyEh.display = 'none';
                }
            }
        } catch (_NUwPKiAC) {
            console.error("加载缓存失败:", _NUwPKiAC);
        }
    }
    let _UneQPbwi;
    function _irvCoMor(_kzBgbZvP, _PAwiNaUj = 'success', _SXZWueYv = 3000) {
        if (_UneQPbwi) clearTimeout(_UneQPbwi);
        _yymXZoyh.innerHTML = _kzBgbZvP;
        let _lHmYwFCr = 'var(--success-_adDtSJTJ)';
        if (_PAwiNaUj === 'error') _lHmYwFCr = 'var(--danger-_adDtSJTJ)';
        if (_PAwiNaUj === 'warning') _lHmYwFCr = 'var(--warning-_adDtSJTJ)';
        if (_PAwiNaUj === 'info') _lHmYwFCr = 'var(--primary-_adDtSJTJ)';
        _yymXZoyh._mrzbKyEh.backgroundColor = _lHmYwFCr;
        _yymXZoyh.classList.add('show');
        _UneQPbwi = setTimeout(() => { _yymXZoyh.classList.remove('show'); }, _SXZWueYv);
    }
    let _pMgnQeNm;
    function _BYJeqKCo(_adDtSJTJ) {
        const _NvmRKmUf = document.getElementById('background-_NvmRKmUf');
        if (!_NvmRKmUf || !_NvmRKmUf.getContext) return;
        _NvmRKmUf._mrzbKyEh.display = 'block';
        const _LPhWtaBS = _NvmRKmUf.getContext('2d');
        let _BMIuuYeD, height, particles;
        const _BHOSZCbV = _sApMgfuh(_adDtSJTJ);
        if (!_BHOSZCbV) return;
        const _XmpADiAx = `${_BHOSZCbV.r},${_BHOSZCbV.g},${_BHOSZCbV.b}`;
        const _fWOTEraY = () => {
            if (_pMgnQeNm) cancelAnimationFrame(_pMgnQeNm);
            _BMIuuYeD = _NvmRKmUf._BMIuuYeD = window.innerWidth;
            height = _NvmRKmUf.height = window.innerHeight;
            particles = Array.from({ _xlQSmFSS: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _BMIuuYeD, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _WEBicjIT();
        };
        const _WEBicjIT = () => {
            _LPhWtaBS.clearRect(0, 0, _BMIuuYeD, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _BMIuuYeD) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _LPhWtaBS.beginPath();
                _LPhWtaBS.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _LPhWtaBS.fillStyle = `rgba(${_XmpADiAx}, 0.5)`;
                _LPhWtaBS.fill();
            });
            for (let _FxtYvbgs = 0; _FxtYvbgs < particles._xlQSmFSS; _FxtYvbgs++) {
                for (let _hgGbxHbx = _FxtYvbgs + 1; _hgGbxHbx < particles._xlQSmFSS; _hgGbxHbx++) {
                    const _frFUMNkg = Math.hypot(particles[_FxtYvbgs].x - particles[_hgGbxHbx].x, particles[_FxtYvbgs].y - particles[_hgGbxHbx].y);
                    if (_frFUMNkg < 120) {
                        _LPhWtaBS.beginPath(); _LPhWtaBS.moveTo(particles[_FxtYvbgs].x, particles[_FxtYvbgs].y);
                        _LPhWtaBS.lineTo(particles[_hgGbxHbx].x, particles[_hgGbxHbx].y);
                        _LPhWtaBS.strokeStyle = `rgba(${_XmpADiAx}, ${1 - _frFUMNkg/120})`;
                        _LPhWtaBS.stroke();
                    }
                }
            }
            _pMgnQeNm = requestAnimationFrame(_WEBicjIT);
        };
        window.addEventListener('resize', _fWOTEraY, { passive: true });
        _fWOTEraY();
    }
    function _DTyuVCVr() {
        if (_pMgnQeNm) cancelAnimationFrame(_pMgnQeNm);
        const _NvmRKmUf = document.getElementById('background-_NvmRKmUf');
        if (_NvmRKmUf && _NvmRKmUf.getContext('2d')) {
            _NvmRKmUf.getContext('2d').clearRect(0, 0, _NvmRKmUf._BMIuuYeD, _NvmRKmUf.height);
            _NvmRKmUf._mrzbKyEh.display = 'none';
        }
    }
    function _pQUjAQYG() {
        const _XbALnojk = document.getElementById('copySubscriptionBtn');
        const _LvSnypPi = document.getElementById('_TiEvUjKH');
        const _vEVAKNUO = document.getElementById('_HvHvlfVY');
        const _zsxzxdDL = document.getElementById('closeSubModalBtn');
        const _xBFDvQXz = _vEVAKNUO.querySelector('.modal-close-btn');

        _XbALnojk.addEventListener('click', () => {
            if (!_BUogzuNT || _RVAwzAoX._xlQSmFSS === 0) {
                _irvCoMor('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_DMpTNBQh) {
                _irvCoMor('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_qogoNvTu._nTMcjsQK) {
                _irvCoMor('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _XNixIotz = 'https://' + window._EGbPlnPp._nlGCZlTv + '/' + _DMpTNBQh;
            const _sjvXkisR = {
                coreEngine: _XNixIotz + 'xr',
                coreProfile: _XNixIotz + 'si',
                configProfile: _XNixIotz + 'cl',
                policyProfile: _XNixIotz + 'su'
            };
 
            _LvSnypPi.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _PAwiNaUj = btn.dataset.subType;
                    navigator.clipboard.writeText(_sjvXkisR[_PAwiNaUj]).then(() => {
                        _irvCoMor(`${_PAwiNaUj.charAt(0).toUpperCase() + _PAwiNaUj.slice(1)} 订阅链接已复制!`, 'success');
                        _LvSnypPi._mrzbKyEh.display = 'none';
                    });
                };
            });
            _LvSnypPi.querySelectorAll('._lmXZqbGk-btn').forEach(btn => {
                btn.onclick = () => {
                    const _PAwiNaUj = btn.dataset.subType;
                    const _ocWGBRcU = document.getElementById('qrCodeImg');
                    const _HJNrlnmJ = _sjvXkisR[_PAwiNaUj];
                    if (!_HJNrlnmJ) return;
                    try {
                        const _lmXZqbGk = qrcode(0, 'M');
                        _lmXZqbGk.addData(_HJNrlnmJ);
                        _lmXZqbGk.make();
                        _ocWGBRcU.src = _lmXZqbGk.createDataURL(10, 2);
                        _vEVAKNUO._mrzbKyEh.display = 'flex';
                    } catch(_NUwPKiAC) {
                        _irvCoMor('生成二维码失败', 'error');
                        console.error(_NUwPKiAC);
                    }
                };
            });

            _LvSnypPi._mrzbKyEh.display = 'flex';
        });

        _zsxzxdDL.addEventListener('click', () => { _LvSnypPi._mrzbKyEh.display = 'none'; });
        _LvSnypPi.addEventListener('click', (_NUwPKiAC) => { if(_NUwPKiAC.target === _LvSnypPi) _LvSnypPi._mrzbKyEh.display = 'none'; });
        _vEVAKNUO.addEventListener('click', (_NUwPKiAC) => { if(_NUwPKiAC.target === _vEVAKNUO) _vEVAKNUO._mrzbKyEh.display = 'none'; });
    }
    function _BFHiyxFA() {
        const _KgmWErJq = {
            android: [
                { _lgMfSDmU: 'Karing', _XRvhIAfO: 'KaringX/karing', _WbuTNExu: ['apk', 'universal-release'] },
                { _lgMfSDmU: 'S' + 'ing-Box', _XRvhIAfO: 'SagerNet/sing-box', _WbuTNExu: ['android', 'universal'] },
                { _lgMfSDmU: 'V2' + 'rayNG', _XRvhIAfO: '2dust/v2rayNG', _WbuTNExu: ['apk', 'arm64-v8a'] },
                { _lgMfSDmU: '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: [
                { _lgMfSDmU: 'Karing', fixedUrl: 'https://_BUqQkLxp.apple.com/us/_CIghEbXt/karing/id6472431552?_LEOcuEiC=iphone' },
                { _lgMfSDmU: 'S' + 'ing-Box', fixedUrl: 'https://_BUqQkLxp.apple.com/us/_CIghEbXt/sing-box-vt/id6673731168' },
                { _lgMfSDmU: 'Shadow' + 'rocket', fixedUrl: 'https://_BUqQkLxp.apple.com/us/_CIghEbXt/shadowrocket/id932747118' },
            ],
            windows: [
                { _lgMfSDmU: 'Karing', _XRvhIAfO: 'KaringX/karing', _WbuTNExu: ['exe', 'x64-setup'] },
                { _lgMfSDmU: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _lgMfSDmU: 'C' + 'lashN', _XRvhIAfO: '2dust/clashN', _WbuTNExu: ['clashN.zip'] },
            ],
            mac: [
                 { _lgMfSDmU: 'Karing', fixedUrl: 'https://_BUqQkLxp.apple.com/us/_CIghEbXt/karing/id6472431552?_LEOcuEiC=mac' },
                 { _lgMfSDmU: 'S' + 'ing-Box', fixedUrl: 'https://_BUqQkLxp.apple.com/us/_CIghEbXt/sing-box-vt/id6673731168' },
            ]
        };
        function _rnHvttXS(_hAOyACBH) {
            if (_qogoNvTu.streamer._EICbdOEb && (_hAOyACBH.includes('github.com') || _hAOyACBH.includes('cdn.jsdelivr.net'))) {
                return window._EGbPlnPp.origin + '/' + _hAOyACBH.replace('://', ':/');
            }
            return _hAOyACBH;
        }
        async function _vucvIluV(_XRvhIAfO, _WbuTNExu) {
            try {
                const _ouBdLylk = await fetch(_rnHvttXS(`https://api.github.com/repos/${_XRvhIAfO}/releases/latest`));
                if (!_ouBdLylk.ok) return null;
                const _doqJNITP = await _ouBdLylk.json();
                for (const _jkyMxDXV of _WbuTNExu) {
                    const _QQYHOWAZ = _doqJNITP.assets.find(a => a._lgMfSDmU.toLowerCase().includes(_jkyMxDXV.toLowerCase()));
                    if (_QQYHOWAZ) return _QQYHOWAZ.browser_download_url;
                }
                return null;
            } catch (_NUwPKiAC) { return null; }
        }
        async function _oPUahcMn(_LEOcuEiC) {
            const _vMIfRmXj = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_LEOcuEiC];
            _pPUncdqQ.querySelector('#appModalTitle').textContent = `${_vMIfRmXj} 客户端下载`;
            const _xqpQvNZa = _pPUncdqQ.querySelector('#appModalBody');
            _xqpQvNZa.innerHTML = '<span>正在获取最新版本...</span>';
            _pPUncdqQ._mrzbKyEh.display = 'flex';
            const _BUqQkLxp = _KgmWErJq[_LEOcuEiC];
            let _BFizQQrx = '';
            for (const _CIghEbXt of _BUqQkLxp) {
                let _iUZMKgcm = '';
                if (_CIghEbXt.fixedUrl) {
                    _iUZMKgcm = `<a href="${_rnHvttXS(_CIghEbXt.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_CIghEbXt.fixedUrl.split('/').pop()}</a>`;
                } else if (_CIghEbXt._XRvhIAfO) {
                    const _hAOyACBH = await _vucvIluV(_CIghEbXt._XRvhIAfO, _CIghEbXt._WbuTNExu);
                    if (_hAOyACBH) {
                        _iUZMKgcm = `<a href="${_rnHvttXS(_hAOyACBH)}" target="_blank" rel="noopener noreferrer">${_hAOyACBH.split('/').pop()}</a>`;
                    } else {
                        _iUZMKgcm = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _BFizQQrx += `<div class="_CIghEbXt-list-_FNHtVGZm"><span class="_CIghEbXt-_lgMfSDmU">${_CIghEbXt._lgMfSDmU}</span><div class="_CIghEbXt-links">${_iUZMKgcm}</div></div>`;
            }
            _xqpQvNZa.innerHTML = _BFizQQrx;
        }
        document.querySelectorAll('._CIghEbXt-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _oPUahcMn(button.dataset._LEOcuEiC));
        });
        _pPUncdqQ.querySelector('.modal-close-btn').addEventListener('click', () => { _pPUncdqQ._mrzbKyEh.display = 'none'; });
        _pPUncdqQ.addEventListener('click', (_NUwPKiAC) => { if (_NUwPKiAC.target === _pPUncdqQ) _pPUncdqQ._mrzbKyEh.display = 'none'; });
    }
    function _zWLZAAyQ(_nZIhaZZc, _KOlgOZPN) {
        let _FxtYvbgs, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_BFizQQrx");
        for (_FxtYvbgs = 0; _FxtYvbgs < tabcontent._xlQSmFSS; _FxtYvbgs++) {
            tabcontent[_FxtYvbgs]._mrzbKyEh.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_FxtYvbgs = 0; _FxtYvbgs < tablinks._xlQSmFSS; _FxtYvbgs++) {
            tablinks[_FxtYvbgs].className = tablinks[_FxtYvbgs].className.replace(" active", "");
        }
        document.getElementById(_KOlgOZPN)._mrzbKyEh.display = "block";
        _nZIhaZZc.currentTarget.className += " active";
    }
    function _NoPFYTyh() {
        const _LAvpkBfZ = document.createElement('div');
        _LAvpkBfZ._qUySIauG = 'tooltip-popup';
        document._fAGjBqRJ.appendChild(_LAvpkBfZ);
        document.addEventListener('click', function(_NUwPKiAC) {
            const _nogoqIJL = _NUwPKiAC.target.closest('.tooltip-_nogoqIJL');
            if (_nogoqIJL) {
                const _HJNrlnmJ = _nogoqIJL.dataset.tooltip;
                _LAvpkBfZ.textContent = _HJNrlnmJ;
                const _zvEmmtnX = _nogoqIJL.getBoundingClientRect();
                _LAvpkBfZ._mrzbKyEh.display = 'block';
                let _UfJLSRIK = _zvEmmtnX.bottom + window.scrollY + 5;
                let _KhHOxqCY = _zvEmmtnX._KhHOxqCY + window.scrollX;
                _LAvpkBfZ._mrzbKyEh._UfJLSRIK = `${_UfJLSRIK}px`;
                _LAvpkBfZ._mrzbKyEh._KhHOxqCY = `${_KhHOxqCY}px`;
                const _wVbNfYyq = _LAvpkBfZ.getBoundingClientRect();
                if (_wVbNfYyq.right > window.innerWidth - 10) {
                    _KhHOxqCY = window.innerWidth - _wVbNfYyq._BMIuuYeD - 10;
                }
                if (_wVbNfYyq.bottom > window.innerHeight - 10) {
                    _UfJLSRIK = _zvEmmtnX._UfJLSRIK + window.scrollY - _wVbNfYyq.height - 5;
                }
                _LAvpkBfZ._mrzbKyEh._UfJLSRIK = `${_UfJLSRIK}px`;
                _LAvpkBfZ._mrzbKyEh._KhHOxqCY = `${_KhHOxqCY}px`;
                _NUwPKiAC.stopPropagation();
            } else if (_LAvpkBfZ._mrzbKyEh.display === 'block') {
                _LAvpkBfZ._mrzbKyEh.display = 'none';
            }
        });
    }
    const _mrzbKyEh = document.createElement('_mrzbKyEh');
    _mrzbKyEh.textContent = `
        .tab-button { background-_adDtSJTJ: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _adDtSJTJ: var(--_HJNrlnmJ-light); font-size: 1em; }
        .tab-button:hover { background-_adDtSJTJ: var(--border-_adDtSJTJ); }
        .tab-button.active { _adDtSJTJ: var(--primary-_adDtSJTJ); border-bottom: 2px solid var(--primary-_adDtSJTJ); }
        .tab-_BFizQQrx { display: none; padding-_UfJLSRIK: 1rem; }
    `;
    document.head.appendChild(_mrzbKyEh);
    window.addEventListener('DOMContentLoaded', _MWoRKMJv);
</script>
</_fAGjBqRJ></html>
`;
}