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


import { connect } from "cloudflare:sockets";

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

const _misvRnGa = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _gHpkzbuV = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _QMZbzMIR = '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 _XqKmLden = '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 _hLfEMtNV(_Usfwpmje) {
    if (Array.isArray(_Usfwpmje)) {
        try {
            return String.fromCharCode.apply(null, _Usfwpmje);
        } catch (_JtcEkBov) {
            return '';
        }
    }
    return _Usfwpmje;
}

function _LvZsANZg(_vyCDLzmz) {
    return /^[0-9a-_tRTBmQUS]{8}-[0-9a-_tRTBmQUS]{4}-[4][0-9a-_tRTBmQUS]{3}-[89ab][0-9a-_tRTBmQUS]{3}-[0-9a-_tRTBmQUS]{12}$/_GbPryFSW.test(_vyCDLzmz);
}

const _LUSVLsdl = "optimized_ips_v4";
const _cLUWAiFs = "global_config_v4";
const _ofmpCwHT = "admin_password_v4";
const _nxNdxolp = "live_results_temp_v1";
const _QWZxJiqb = "latest_sub_id_v1";

export default {
  async fetch(_cCPUsROC, _TfWVBESf, _AQGKtpwe) {
    try {
      if (!_TfWVBESf.DB) {
          const _BTNegFlu = _iovmijRb("D1 数据库 'DB' 未绑定。");
          return new Response(_BTNegFlu, { status: 503, _yQjrXpwp: { 'Content-Type': '_YCrAIJID/html;_EawAVbaq=UTF-8' }});
      }

      _AQGKtpwe.waitUntil(
          _TfWVBESf.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_ncvTMzJn TEXT PRIMARY KEY, _Usfwpmje TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_vyCDLzmz TEXT PRIMARY KEY, _CSdOdjvZ TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_JtcEkBov => console.error("DB Init Error:", _JtcEkBov._XrcYeiCq))
      );

      const _PYOnBbai = new URL(_cCPUsROC._PYOnBbai);
      const _FCkFHQxR = _PYOnBbai.pathname;
      const _aJmMJuCc = _cCPUsROC._yQjrXpwp.get("Upgrade");
      const _hsVGvwHc = await _SJrDpZPL(_TfWVBESf);
      
      if (_hsVGvwHc.websocketStreamer && _hsVGvwHc.websocketStreamer._LQIfRYbE && _aJmMJuCc && _aJmMJuCc.toLowerCase() === "websocket") {
          const _rqplgxpB = _hsVGvwHc.websocketStreamer._PYOnBbai;
          if (_rqplgxpB && _rqplgxpB.trim().startsWith('https://')) {
              try {
                  const _qeycsrhi = new Request(_rqplgxpB.trim() + _PYOnBbai.pathname + _PYOnBbai.search, _cCPUsROC);
                  return await fetch(_qeycsrhi);
              } catch (_JtcEkBov) {
                  return new Response(`Upstream WebSocket gateway failed: ${_JtcEkBov._XrcYeiCq}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_aJmMJuCc && _aJmMJuCc.toLowerCase() === "websocket") {
          return await _QJBAyFig(_cCPUsROC, _TfWVBESf, _hsVGvwHc);
      }
      
      const _QzOvWsNU = _FCkFHQxR._ilEGOIRG(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_QzOvWsNU) {
          const [, _HfqJWPTv, typeSuffix] = _QzOvWsNU;
          const _JAUczdzX = _hsVGvwHc._JAUczdzX;
          if (!_JAUczdzX || _JAUczdzX.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _yQjrXpwp: { 'Content-Type': '_YCrAIJID/plain; _EawAVbaq=utf-8' } });
          }
          const _EEnsShLT = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _tCEjzzAQ = _EEnsShLT[typeSuffix];
          const _HwgwgDrF = _JAUczdzX.replace(/\/$/, '');
          const _yfKPrNNg = `${_PYOnBbai.origin}/${_HfqJWPTv}`;
          const _QXYlzPKO = `${_HwgwgDrF}/${_tCEjzzAQ}?_hsVGvwHc=${encodeURIComponent(_yfKPrNNg)}`;
          try {
              const _pxUlMyZG = await fetch(_QXYlzPKO, { _yQjrXpwp: { 'User-Agent': _cCPUsROC._yQjrXpwp.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _qdcmpbsQ = new Headers(_pxUlMyZG._yQjrXpwp);
              _qdcmpbsQ._JkozqCYA('Access-Control-Allow-Origin', '*');
              return new Response(_pxUlMyZG._MrDZiVfn, { status: _pxUlMyZG.status, statusText: _pxUlMyZG.statusText, _yQjrXpwp: _qdcmpbsQ });
          } catch (_JtcEkBov) {
              return new Response(`获取上游订阅失败: ${_JtcEkBov._XrcYeiCq}`, { status: 502, _yQjrXpwp: { 'Content-Type': '_YCrAIJID/plain; _EawAVbaq=utf-8' } });
          }
      }

      if (_FCkFHQxR.startsWith('/https:/') || _FCkFHQxR.startsWith('/http:/')) {
          return _KfzJwhlu(_cCPUsROC, _hsVGvwHc);
      }
      
      if (_hsVGvwHc.customSubPath && _hsVGvwHc.customSubPath._LQIfRYbE && _hsVGvwHc.customSubPath._FCkFHQxR && _FCkFHQxR === '/' + _hsVGvwHc.customSubPath._FCkFHQxR.trim()) {
          const _dKBkdxWM = _TfWVBESf.DB.prepare("SELECT _Usfwpmje FROM kv_data WHERE _ncvTMzJn = ?").bind(_QWZxJiqb);
          const { _IFpUHWkw } = await _dKBkdxWM.all();
          const _ioBekGtG = _IFpUHWkw._regCSWJt > 0 ? _IFpUHWkw[0]._Usfwpmje : null;
          if (_ioBekGtG) {
              return _FItOqEOQ({ _qiTPaEwE: { _vyCDLzmz: _ioBekGtG }, _PYOnBbai: _cCPUsROC._PYOnBbai }, _TfWVBESf);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _yQjrXpwp: { 'Content-Type': '_YCrAIJID/plain; _EawAVbaq=utf-8' } });
          }
      }
      
      const _GyDuxCjt = _FCkFHQxR.split('/').filter(Boolean);
      if (_GyDuxCjt._regCSWJt === 1 && !_FCkFHQxR.startsWith('/api/')) {
          const _HfqJWPTv = _GyDuxCjt[0];
          return _FItOqEOQ({ _qiTPaEwE: { _vyCDLzmz: _HfqJWPTv }, _PYOnBbai: _cCPUsROC._PYOnBbai }, _TfWVBESf);
      }

      if (_FCkFHQxR.startsWith('/api/')) {
          if (_FCkFHQxR === '/api/_hsVGvwHc' && _cCPUsROC.method === 'POST') return _ckpMXowk(_cCPUsROC, _TfWVBESf, _AQGKtpwe);
          if (_FCkFHQxR === '/api/_JkozqCYA-_FZEGENVl') return _WZgqXynu(_cCPUsROC, _TfWVBESf);
          if (_FCkFHQxR === '/api/change-_FZEGENVl') return _ZkZLWPOI(_cCPUsROC, _TfWVBESf);
          if (_FCkFHQxR === '/api/verify-_FZEGENVl') return _MqiBDybV(_cCPUsROC, _TfWVBESf);
          if (_FCkFHQxR === '/api/verify-visitor-_FZEGENVl' && _cCPUsROC.method === 'POST') return _ezVCzogf(_cCPUsROC, _TfWVBESf);
          if (_FCkFHQxR === '/api/cache-live-_IFpUHWkw' && _cCPUsROC.method === 'POST') return _THilGRUA(_cCPUsROC, _TfWVBESf, _AQGKtpwe);
          if (_FCkFHQxR === '/api/get-_SPWrcyDv' && _cCPUsROC.method === 'POST') return _jzLVsPty(_cCPUsROC, _TfWVBESf);
          if (_FCkFHQxR === '/api/get-cached-_wxpYrLiQ') return _PXOuCsNJ(_cCPUsROC, _TfWVBESf);
          if (_FCkFHQxR === '/api/save-_wxpYrLiQ') return _sJeJbKzu(_cCPUsROC, _TfWVBESf, _AQGKtpwe);
          if (_FCkFHQxR === '/api/save-and-get-sub-_vyCDLzmz' && _cCPUsROC.method === 'POST') return _kJYOIqBo(_cCPUsROC, _TfWVBESf);
          if (_FCkFHQxR.startsWith('/api/get-_kqirwdrj/')) {
              const _HfqJWPTv = _FCkFHQxR.split('/').pop();
              return _FItOqEOQ({ _qiTPaEwE: { _vyCDLzmz: _HfqJWPTv }, _PYOnBbai: _cCPUsROC._PYOnBbai }, _TfWVBESf);
          }
          if (_FCkFHQxR === '/api/_hsVGvwHc' && _cCPUsROC.method === 'GET') return _lrHZWCtW(_TfWVBESf);
          if (_FCkFHQxR === '/api/get-resolved-_wxpYrLiQ') return _kPHZMVAA(_cCPUsROC);
          if (_FCkFHQxR === '/api/parse-_wxpYrLiQ-from-_GljWNhPN' && _cCPUsROC.method === 'POST') return _DvMuoReO(_cCPUsROC, _TfWVBESf);
          if (_FCkFHQxR === '/api/endpoints') return _VlwDhnun(_cCPUsROC, _TfWVBESf);
          if (_FCkFHQxR === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_FCkFHQxR === '/_AgieWrkl') return _NwtvsJKr(_cCPUsROC, _TfWVBESf);
      if (_FCkFHQxR === '/bing-wallpaper') return _rmOmXJaI();

      return _NubcPksy(_cCPUsROC, _TfWVBESf, _AQGKtpwe);
    } catch (err) {
      let _JtcEkBov = err;
      return new Response(_JtcEkBov.toString(), { status: 500 });
    }
  }
};

const _rVzKwXnM = { 'Accept': '_YCrAIJID/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 _WlQSOyIR(_PYOnBbai, _qMGpQAEz) {
    const _FGcexIUv = await fetch(_PYOnBbai, { _yQjrXpwp: { ..._rVzKwXnM, 'Referer': _qMGpQAEz.referer } });
    if (_FGcexIUv.ok) return _FGcexIUv._YCrAIJID();
    return null;
}

async function _DczwkjPl(_PYOnBbai, _qMGpQAEz) {
    const _JdZEoUnx = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_PYOnBbai)}`;
    const _FGcexIUv = await fetch(_JdZEoUnx, { _yQjrXpwp: { ..._rVzKwXnM, 'Referer': _qMGpQAEz.referer } });
    if (!_FGcexIUv.ok) return null;
    const _MrDZiVfn = await _FGcexIUv._YCrAIJID();
    const _ilEGOIRG = _MrDZiVfn._ilEGOIRG(/<pre[^>]*>([\s\S]*?)<\/pre>/_GbPryFSW);
    return _ilEGOIRG && _ilEGOIRG[1] ? _ilEGOIRG[1].replace(/&amp;/g, '&') : null;
}

function _bJyHYjGv(_ZJEnMkAF) {
    let _RPqqwyjR;
    try {
        _RPqqwyjR = atob(_ZJEnMkAF.replace(/\s/g, ''));
    } catch (_JtcEkBov) {
        _RPqqwyjR = _ZJEnMkAF;
    }

    const _kqirwdrj = _RPqqwyjR.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _JUawmbRT = new Set();
    const _DCdRXSbs = /@([^?#]+?):(\d+)/;

    for (const _uSeWbbxo of _kqirwdrj) {
        let _JTFGaeZU = '';
        let _pmLpSxmu = '';

        try {
            if (_uSeWbbxo.startsWith('vmess://')) {
                const _ZwTRBdVJ = atob(_uSeWbbxo.substring(8));
                const _hsVGvwHc = JSON.parse(_ZwTRBdVJ);
                _JTFGaeZU = _hsVGvwHc.add;
                _pmLpSxmu = _hsVGvwHc._pmLpSxmu;
            } else {
                const _ilEGOIRG = _uSeWbbxo._ilEGOIRG(_DCdRXSbs);
                if (_ilEGOIRG && _ilEGOIRG[1] && _ilEGOIRG[2]) {
                    _JTFGaeZU = _ilEGOIRG[1].replace(/[\[\]]/g, '');
                    _pmLpSxmu = _ilEGOIRG[2];
                }
            }
        } catch (_JtcEkBov) {
            console.warn(`Could not parse _uSeWbbxo: ${_uSeWbbxo}`);
        }

        if (_JTFGaeZU && _pmLpSxmu) {
            _JUawmbRT.add(`${_JTFGaeZU}:${_pmLpSxmu}`);
        }
    }
    return Array.from(_JUawmbRT);
}

async function _ayLWOFsO(_CsfvIjUC) {
    try {
        const _FGcexIUv = await fetch(_CsfvIjUC, { _yQjrXpwp: _rVzKwXnM });
        if (!_FGcexIUv.ok) {
            console.error(`Failed to fetch subscription: ${_FGcexIUv.status}`);
            return [];
        }
        const _ZJEnMkAF = await _FGcexIUv._YCrAIJID();
        return _bJyHYjGv(_ZJEnMkAF);
    } catch (error) {
        console.error(`Error processing subscription ${_CsfvIjUC}:`, error);
        return [];
    }
}

async function _THjQwCun(_sXtvWgEm) {
    const _SRoyuZTo = _sXtvWgEm.trim();
    const _uNLhYbma = /^(vless|vmess|trojan|ss):\/\//.test(_SRoyuZTo);
    const _TFQjIhyv = (() => {
        if (_SRoyuZTo._regCSWJt < 20 || _SRoyuZTo.startsWith('http')) return false;
        const _LRJdhOQD = _SRoyuZTo.replace(/\s/g, '');
        if (_LRJdhOQD._regCSWJt % 4 !== 0 && !_LRJdhOQD.includes('=')) return false;
        try {
            atob(_LRJdhOQD);
            return true;
        } catch (_JtcEkBov) {
            return false;
        }
    })();

    if (_uNLhYbma || _TFQjIhyv) {
        return _bJyHYjGv(_SRoyuZTo).join('\n');
    }

    const _yHtVGhzu = [
        'https://ipdb.api.030101.xyz/?_xPvZdivJ=bestcf&_ibYSNozD=true',
        'https://ipdb.api.030101.xyz/?_xPvZdivJ=bestproxy&_ibYSNozD=true'
    ];
    const _sPmMSioo = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_GbPryFSW.test(_sXtvWgEm) || _sXtvWgEm.includes('?_cffotcQX=');

    if (_sPmMSioo) {
        const _wxpYrLiQ = await _ayLWOFsO(_sXtvWgEm);
        return _wxpYrLiQ.join('\n');
    }

    let _ZJEnMkAF = '';
    if (_yHtVGhzu.includes(_sXtvWgEm)) {
        _ZJEnMkAF = await _WlQSOyIR(_sXtvWgEm, { referer: _sXtvWgEm });
        if (!_ZJEnMkAF || _ZJEnMkAF._regCSWJt < 8) {
            _ZJEnMkAF = await _DczwkjPl(_sXtvWgEm, { referer: _sXtvWgEm });
        }
    } else {
        try {
            const _FeRRMpjU = await fetch(_sXtvWgEm, { _yQjrXpwp: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_FeRRMpjU.ok) {
                _ZJEnMkAF = await _FeRRMpjU._YCrAIJID();
            } else {
                console.warn(`Failed to fetch URL ${_sXtvWgEm}: ${_FeRRMpjU.status}`);
            }
        } catch (_JtcEkBov) {
            console.error(`Error fetching URL ${_sXtvWgEm}:`, _JtcEkBov);
        }
    }

    const _lIsqWjuX = _bJyHYjGv(_ZJEnMkAF);
    if (_lIsqWjuX._regCSWJt > 0) {
        return _lIsqWjuX.join('\n');
    }

    return _ZJEnMkAF || '';
}

async function _KfzJwhlu(_cCPUsROC, _hsVGvwHc) {
    if (!_hsVGvwHc.streamer._LQIfRYbE) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _PYOnBbai = new URL(_cCPUsROC._PYOnBbai);
    const _wvVCTxJh = _PYOnBbai.pathname.substring(1).replace(':/', '://');
    try {
        const _QXYlzPKO = new URL(_wvVCTxJh);
        const _svhGEzjY = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_svhGEzjY.some(domain => _QXYlzPKO._JTFGaeZU.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _QPljqMcY = new Headers(_cCPUsROC._yQjrXpwp);
        _QPljqMcY._JkozqCYA('Host', _QXYlzPKO._JTFGaeZU);
        _QPljqMcY._JkozqCYA('User-Agent', 'CF-Worker-Streamer/1.0');
        const _mEthrkAq = await fetch(_QXYlzPKO.toString(), {
            method: _cCPUsROC.method,
            _yQjrXpwp: _QPljqMcY,
            _MrDZiVfn: _cCPUsROC._MrDZiVfn,
        });
        const _qdcmpbsQ = new Headers(_mEthrkAq._yQjrXpwp);
        _qdcmpbsQ._JkozqCYA('Access-Control-Allow-Origin', '*');
        _qdcmpbsQ._JkozqCYA('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _qdcmpbsQ._JkozqCYA('Access-Control-Allow-Headers', '*');
        _qdcmpbsQ._JkozqCYA('Cache-Control', 'public, max-age=86400');
        _qdcmpbsQ._JkozqCYA('X-Streamer-Source', 'CF-Worker');
        _qdcmpbsQ.delete('_ZJEnMkAF-security-policy');
        _qdcmpbsQ.delete('x-_ZJEnMkAF-security-policy');
        _qdcmpbsQ.delete('x-webkit-csp');
        return new Response(_mEthrkAq._MrDZiVfn, {
            status: _mEthrkAq.status,
            statusText: _mEthrkAq.statusText,
            _yQjrXpwp: _qdcmpbsQ,
        });
    } catch (_JtcEkBov) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _QJBAyFig(_cCPUsROC, _TfWVBESf, _hsVGvwHc) {
    try {
        const _uaaLbZYk = _hsVGvwHc || await _SJrDpZPL(_TfWVBESf);
        const _xiKGZgsE = (_uaaLbZYk.itemLink._nzeMUHOv && _uaaLbZYk.itemLink._nzeMUHOv[0]) || {};
        const _tMNQUCjd = _xiKGZgsE['_cffotcQX'] || _hLfEMtNV(_AZJgOXZP);

        if (!_LvZsANZg(_tMNQUCjd)) {
            throw new Error("Configured user _UnMqpPMc is not valid.");
        }

        const _RqoTJvrh = _uaaLbZYk.dataFeeds.universalFallbackAddress;
        let _dgsAqAYY = {};
        
        const _aRklTgSy = _hLfEMtNV(_DlEdMnbn[0] || "");

        if (_RqoTJvrh) {
            const [_aQoircUW, _pmLpSxmu = '443'] = _RqoTJvrh.split(':');
            _dgsAqAYY = { _aQoircUW, _pmLpSxmu };
        } else {
            const [_aQoircUW, _pmLpSxmu = '443'] = _aRklTgSy.split(':');
            _dgsAqAYY = { _aQoircUW, _pmLpSxmu };
        }

        const _PYOnBbai = new URL(_cCPUsROC._PYOnBbai);
        const _FCkFHQxR = _PYOnBbai.pathname;
        let _qntzOrkD = '';

        const _lwWGDVcM = _PYOnBbai.searchParams.get('remote');
        if (_lwWGDVcM) {
           _qntzOrkD = atob(_lwWGDVcM);
        } else if (_FCkFHQxR.startsWith('/endpoint=')) {
           _qntzOrkD = _FCkFHQxR.substring(10);
        } else if (_FCkFHQxR._regCSWJt > 1 && _FCkFHQxR.substring(1).includes('.')) {
           _qntzOrkD = _FCkFHQxR.substring(1);
        }

        if (_qntzOrkD) {
            const [_aQoircUW, _pmLpSxmu = '443'] = _qntzOrkD.split(':');
            _dgsAqAYY = { _aQoircUW, _pmLpSxmu };
        }
        
        return await _zWuBiZFG(_cCPUsROC, _tMNQUCjd, _dgsAqAYY);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _zWuBiZFG(_cCPUsROC, _UnMqpPMc, _dgsAqAYY) {
    const _NiIoCfkx = new WebSocketPair();
    const [clientEnd, _MSfAONMW] = Object.values(_NiIoCfkx);
    _MSfAONMW.accept();

    let _UvjTGAfx = { _XCTAWrUY: null };
    const _EsTVlbBS = _cCPUsROC._yQjrXpwp.get("sec-websocket-protocol") || "";
    const _xYILkimC = _XegUyquX(_MSfAONMW, _EsTVlbBS);

    _xYILkimC.pipeTo(new WritableStream({
        async write(chunk) {
            if (_UvjTGAfx._XCTAWrUY) {
                const _BgpXfoUG = _UvjTGAfx._XCTAWrUY.writable.getWriter();
                await _BgpXfoUG.write(chunk);
                _BgpXfoUG.releaseLock();
                return;
            }

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

            const _YMZFNnVz = new Uint8Array([details._LQxdpmjM[0], 0]);
            const _JQpqazlu = chunk.slice(details.payloadIndex);

            await _ZIkPqbmG(_UvjTGAfx, details._xKOkFOGo, details._YBHdHkou, _JQpqazlu, _MSfAONMW, _YMZFNnVz, _dgsAqAYY);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _nYEkQfhG(_MSfAONMW);
    });

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

async function _ZIkPqbmG(_UvjTGAfx, _xKOkFOGo, _YBHdHkou, _bkqywztD, _nwIhvSXG, _YMZFNnVz, _sahdJAVO) {
    const _rByZdNhv = async (_aQoircUW, _pmLpSxmu) => {
        let _IunQMxKU = _aQoircUW;
        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(_aQoircUW)) {
            _IunQMxKU = `${atob('d3d3Lg==')}${_aQoircUW}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _XCTAWrUY = connect({ _JTFGaeZU: _IunQMxKU, _pmLpSxmu });
        _UvjTGAfx._XCTAWrUY = _XCTAWrUY;
        const _BgpXfoUG = _XCTAWrUY.writable.getWriter();
        await _BgpXfoUG.write(_bkqywztD);
        _BgpXfoUG.releaseLock();
        return _XCTAWrUY;
    };

    const _EIADIeNK = async () => {
        if (!_sahdJAVO._aQoircUW) return;
        console.log(`Direct connection failed, falling back to gateway: ${_sahdJAVO._aQoircUW}`);
        const _ehlWUYzT = await _rByZdNhv(_sahdJAVO._aQoircUW, parseInt(_sahdJAVO._pmLpSxmu, 10));
        _ehlWUYzT.closed.catch(() => {}).finally(() => _nYEkQfhG(_nwIhvSXG));
        _wkiauKGY(_ehlWUYzT, _nwIhvSXG, _YMZFNnVz, null);
    };

    try {
        const _FyAFPQyD = await _rByZdNhv(_xKOkFOGo, _YBHdHkou);
        _wkiauKGY(_FyAFPQyD, _nwIhvSXG, _YMZFNnVz, _EIADIeNK);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _EIADIeNK();
    }
}

function _XegUyquX(_MSfAONMW, _EsTVlbBS) {
    let _WcmdtbaA = false;
    return new ReadableStream({
        start(_ogekxmTp) {
            _MSfAONMW.addEventListener("_XrcYeiCq", (event) => { if (_WcmdtbaA) return; _ogekxmTp.enqueue(event._CSdOdjvZ); });
            _MSfAONMW.addEventListener("close", () => { _nYEkQfhG(_MSfAONMW); if (_WcmdtbaA) return; _ogekxmTp.close(); });
            _MSfAONMW.addEventListener("error", (err) => _ogekxmTp.error(err));
            if (_EsTVlbBS) {
                try {
                    const _GCkikQWS = atob(_EsTVlbBS.replace(/-/g, "+").replace(/_/g, "/"));
                    _ogekxmTp.enqueue(Uint8Array.from(_GCkikQWS, c => c.charCodeAt(0))._FhUNbKNN);
                } catch (_JtcEkBov) { console.error("Failed to decode early _CSdOdjvZ:", _JtcEkBov); }
            }
        },
        cancel() { _WcmdtbaA = true; _nYEkQfhG(_MSfAONMW); },
    });
}

async function _bSkSHBAC(_FhUNbKNN, _UnMqpPMc) {
    if (_FhUNbKNN.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _LQxdpmjM = new Uint8Array(_FhUNbKNN.slice(0, 1));
    const _hUyedklX = _bFoTcZGJ(new Uint8Array(_FhUNbKNN.slice(1, 17)));
    if (_hUyedklX !== _UnMqpPMc) return { error: true, details: "Invalid _UnMqpPMc" };
    const _SOVMXaWj = new Uint8Array(_FhUNbKNN.slice(17, 18))[0];
    const _UhTlzbYx = new Uint8Array(_FhUNbKNN.slice(18 + _SOVMXaWj, 19 + _SOVMXaWj))[0];
    if (_UhTlzbYx !== 1) return { error: true, details: `Unsupported _UhTlzbYx: ${_UhTlzbYx}` };
    const _qwwlDtcK = 19 + _SOVMXaWj;
    const _YBHdHkou = new DataView(_FhUNbKNN.slice(_qwwlDtcK, _qwwlDtcK + 2)).getUint16(0);
    let _TNAsPcZx = _qwwlDtcK + 2;
    const _LqiGMoFy = new Uint8Array(_FhUNbKNN.slice(_TNAsPcZx, _TNAsPcZx + 1))[0];
    let _phKKzVbf = 0;
    let _oUUGtAsc = _TNAsPcZx + 1;
    let _xKOkFOGo = "";
    switch (_LqiGMoFy) {
        case 1: _phKKzVbf = 4; _xKOkFOGo = new Uint8Array(_FhUNbKNN.slice(_oUUGtAsc, _oUUGtAsc + _phKKzVbf)).join("."); break;
        case 2: _phKKzVbf = new Uint8Array(_FhUNbKNN.slice(_oUUGtAsc, _oUUGtAsc + 1))[0]; _oUUGtAsc++; _xKOkFOGo = new TextDecoder().decode(_FhUNbKNN.slice(_oUUGtAsc, _oUUGtAsc + _phKKzVbf)); break;
        case 3: _phKKzVbf = 16; const _DGldnCph = new DataView(_FhUNbKNN.slice(_oUUGtAsc, _oUUGtAsc + _phKKzVbf)); const _XFeZAezC = []; for (let _GbPryFSW = 0; _GbPryFSW < 8; _GbPryFSW++) _XFeZAezC.push(_DGldnCph.getUint16(_GbPryFSW * 2).toString(16)); _xKOkFOGo = _XFeZAezC.join(":"); break;
        default: return { error: true, details: `Invalid _FKHGpHni _xPvZdivJ: ${_LqiGMoFy}` };
    }
    if (!_xKOkFOGo) return { error: true, details: "Target _aQoircUW is empty" };
    return { error: false, details: { _xKOkFOGo, _YBHdHkou, _LQxdpmjM, payloadIndex: _oUUGtAsc + _phKKzVbf } };
}

async function _wkiauKGY(_XCTAWrUY, _nwIhvSXG, _ljwKEgQr, _JZhUTkCH) {
    let _qeeBEpct = _ljwKEgQr;
    let _wrRjvAfD = false;
    let _vkiVreEm = _XCTAWrUY._xYILkimC.pipeTo(new WritableStream({
        write(chunk) {
            _wrRjvAfD = true;
            if (_nwIhvSXG.readyState !== 1) throw new Error("Channel is not open");
            if (_qeeBEpct) {
                const _FoJxvtIe = new Uint8Array(_qeeBEpct.byteLength + chunk.byteLength);
                _FoJxvtIe._JkozqCYA(new Uint8Array(_qeeBEpct));
                _FoJxvtIe._JkozqCYA(new Uint8Array(chunk), _qeeBEpct.byteLength);
                _nwIhvSXG.send(_FoJxvtIe._FhUNbKNN);
                _qeeBEpct = null;
            } else {
                _nwIhvSXG.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _nwIhvSXG error:", err._XrcYeiCq);
    });

    await _vkiVreEm;
    if (!_wrRjvAfD && _JZhUTkCH) {
        _JZhUTkCH();
    }
}

function _nYEkQfhG(_nwIhvSXG) {
    try { if (_nwIhvSXG.readyState === 1 || _nwIhvSXG.readyState === 2) _nwIhvSXG.close(); } catch (_JtcEkBov) {}
}

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

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

async function _cxTJUNnJ(_PYOnBbai, _VyjYibPR, _JZhUTkCH) {
    try {
        const _FGcexIUv = await fetch(_PYOnBbai, {
            _yQjrXpwp: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_FGcexIUv.ok) {
            console.error(`获取 ${_PYOnBbai} 失败: HTTP ${_FGcexIUv.status}`);
            return _JZhUTkCH;
        }
        const _YCrAIJID = await _FGcexIUv._YCrAIJID();
        return _VyjYibPR(_YCrAIJID);
    } catch (error) {
        console.error(`获取或解析 ${_PYOnBbai} 时发生网络错误: ${error._XrcYeiCq}`);
        return _JZhUTkCH;
    }
}

function _ydOjyxYB(_YCrAIJID) {
    if (!_YCrAIJID) return [];
    const _ggZxhUkN = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _GyCwrgyy = _YCrAIJID.split(/[\s,;#|]+/);
    const _tUDFhAdG = [];
    for (const _UAgSMikh of _GyCwrgyy) {
        const _KWIIxyac = _UAgSMikh.trim();
        if (!_KWIIxyac) continue;
        const _FGaCKQOe = _KWIIxyac.lastIndexOf(':');
        let _wPirKtDR = _KWIIxyac;
        if(_FGaCKQOe > _KWIIxyac.lastIndexOf(']')) {
             const _DqvOzOXD = _KWIIxyac.substring(_FGaCKQOe + 1);
             if(!isNaN(_DqvOzOXD) && _DqvOzOXD._regCSWJt > 0) {
                _wPirKtDR = _KWIIxyac.substring(0, _FGaCKQOe);
             }
        }
        if (_OLivloTz.isValid(_wPirKtDR.replace(/[\[\]]/g, '')) || _ggZxhUkN.test(_KWIIxyac)) {
            _tUDFhAdG.push(_KWIIxyac);
        }
    }
    return _tUDFhAdG;
}

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

function _RkHnAQRN(_YCrAIJID) {
    if (!_YCrAIJID) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_YCrAIJID}}`);
    } catch (_JtcEkBov) {
        console.error("解析 _kGGssLfI 失败:", _JtcEkBov);
        return { "N/A": "未知" };
    }
}

const _OLivloTz = {
    isValid: (_AgieWrkl) => _OLivloTz.isIPv4(_AgieWrkl) || _OLivloTz.isIPv6(_AgieWrkl),
    isIPv4: (_AgieWrkl) => {
        if (typeof _AgieWrkl !== 'string') return false;
        const _XFeZAezC = _AgieWrkl.split('.');
        if (_XFeZAezC._regCSWJt !== 4) return false;
        return _XFeZAezC.every(_zdeYZmfe => {
            const _IhfjQPvZ = parseInt(_zdeYZmfe, 10);
            return !isNaN(_IhfjQPvZ) && _IhfjQPvZ >= 0 && _IhfjQPvZ <= 255 && String(_IhfjQPvZ) === _zdeYZmfe;
        });
    },
    isIPv6: (_AgieWrkl) => {
        if (typeof _AgieWrkl !== '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]))$/_GbPryFSW.test(_AgieWrkl);
    },
    toLong4: (_AgieWrkl) => _AgieWrkl.split('.').reduce((acc, octet, _GbPryFSW) => acc + (parseInt(octet) << (8*(3-_GbPryFSW))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_AgieWrkl) => {
        try {
            const _IPuHsEbr = _AgieWrkl.split('/')[0];
            const _XFeZAezC = _IPuHsEbr.split('::');
            if (_XFeZAezC._regCSWJt > 2) return 0n;
            let _aZeMAcAL = [];
            if (_XFeZAezC[0]) {
                _aZeMAcAL = _XFeZAezC[0].split(':');
            }
            let _kquyVQSc = [];
            if (_XFeZAezC._regCSWJt > 1 && _XFeZAezC[1]) {
                _kquyVQSc = _XFeZAezC[1].split(':');
            }
            if (_aZeMAcAL._regCSWJt + _kquyVQSc._regCSWJt > 8) return 0n;
            const _FFAURWnK = 8 - (_aZeMAcAL._regCSWJt + _kquyVQSc._regCSWJt);
            const _YWLOKSDA = [
                ..._aZeMAcAL,
                ...Array(_FFAURWnK).fill('0'),
                ..._kquyVQSc
            ].map(_zdeYZmfe => _zdeYZmfe || '0');
            while(_YWLOKSDA._regCSWJt < 8) {
                _YWLOKSDA.push('0');
            }
            let _ogtypyUJ = 0n;
            for (const _zdeYZmfe of _YWLOKSDA) {
                if (_zdeYZmfe._regCSWJt > 4) return 0n;
                const _Usfwpmje = BigInt('0x' + _zdeYZmfe);
                _ogtypyUJ = (_ogtypyUJ << 16n) | _Usfwpmje;
            }
            return _ogtypyUJ;
        } catch(_JtcEkBov) {
            return 0n;
        }
    },
    fromBigInt6: (_ogtypyUJ) => {
        if (typeof _ogtypyUJ !== '_ogtypyUJ' || _ogtypyUJ < 0n) return null;
        const _XFeZAezC = [];
        for (let _GbPryFSW = 0; _GbPryFSW < 8; _GbPryFSW++) {
            _XFeZAezC.unshift((_ogtypyUJ & 0xFFFFn).toString(16));
            _ogtypyUJ >>= 16n;
        }
        let _ixeUsjAT = { start: -1, _xFzSfqqf: 0 };
        let _CfDMVuqM = { start: -1, _xFzSfqqf: 0 };
        for (let _GbPryFSW = 0; _GbPryFSW < 8; _GbPryFSW++) {
            if (_XFeZAezC[_GbPryFSW] === '0') {
                if (_CfDMVuqM.start === -1) _CfDMVuqM.start = _GbPryFSW;
                _CfDMVuqM._xFzSfqqf++;
            } else {
                if (_CfDMVuqM._xFzSfqqf > _ixeUsjAT._xFzSfqqf) _ixeUsjAT = { ..._CfDMVuqM };
                _CfDMVuqM = { start: -1, _xFzSfqqf: 0 };
            }
        }
        if (_CfDMVuqM._xFzSfqqf > _ixeUsjAT._xFzSfqqf) _ixeUsjAT = { ..._CfDMVuqM };
        if (_ixeUsjAT._xFzSfqqf > 1) {
            _XFeZAezC.splice(_ixeUsjAT.start, _ixeUsjAT._xFzSfqqf, '');
            if (_ixeUsjAT.start === 0) _XFeZAezC.unshift('');
            if (_ixeUsjAT.start + _ixeUsjAT._xFzSfqqf === 8) _XFeZAezC.push('');
        }
        return _XFeZAezC.join(':');
    },
    cidrToRange: (cidr, _yyYyUBuI = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _CcmRvgfp = parseInt(bitsStr, 10);
            const _wxpYrLiQ = new Set();
            if (_OLivloTz.isIPv4(range)) {
                if (isNaN(_CcmRvgfp) || _CcmRvgfp < 8 || _CcmRvgfp > 32) return [];
                if (_CcmRvgfp === 32) return [range];
                const _wIhVtGzh = _OLivloTz.toLong4(range);
                const _gPaTqAnC = (0xFFFFFFFF << (32 - _CcmRvgfp)) >>> 0;
                const _ahJGzqXJ = _wIhVtGzh & _gPaTqAnC;
                const _eCBmWXDD = 1 << (32 - _CcmRvgfp);
                if (_eCBmWXDD <= 2) return [];
                const _gzHosXhb = Math.min(_yyYyUBuI, _eCBmWXDD - 2);
                let _ktkspscT = 0;
                while (_wxpYrLiQ.size < _gzHosXhb && _ktkspscT < _gzHosXhb * 5) {
                    const _SIUDuuEt = Math.floor(Math.random() * (_eCBmWXDD - 2)) + 1;
                    _wxpYrLiQ.add(_OLivloTz.fromLong4((_ahJGzqXJ + _SIUDuuEt) >>> 0));
                    _ktkspscT++;
                }
                return Array.from(_wxpYrLiQ);
            } else if (_OLivloTz.isIPv6(range)) {
                if (isNaN(_CcmRvgfp) || _CcmRvgfp < 16 || _CcmRvgfp > 128) return [];
                 if (_CcmRvgfp === 128) return [range];
                const _NhTPWQAP = _OLivloTz.toBigInt6(range);
                const _gPaTqAnC = (2n ** BigInt(128 - _CcmRvgfp) - 1n);
                const _ahJGzqXJ = _NhTPWQAP & ~_gPaTqAnC;
                const _lLCjBihq = 2n ** BigInt(128 - _CcmRvgfp);
                if (_lLCjBihq <= 2n) return [];
                let _ktkspscT = 0;
                while (_wxpYrLiQ.size < _yyYyUBuI && _ktkspscT < _yyYyUBuI * 5) {
                     const _RaEIXnfs = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_RaEIXnfs);
                     let _zPfzlRjU = 0n;
                     for (const _NKOMIhyz of _RaEIXnfs) {
                         _zPfzlRjU = (_zPfzlRjU << 8n) | BigInt(_NKOMIhyz);
                     }
                     const _SIUDuuEt = _zPfzlRjU % (_lLCjBihq - 2n) + 1n;
                     _wxpYrLiQ.add(_OLivloTz.fromBigInt6(_ahJGzqXJ + _SIUDuuEt));
                     _ktkspscT++;
                }
                return Array.from(_wxpYrLiQ);
            }
            return [];
        } catch(_JtcEkBov) {
            console.error(`CIDR to range failed for ${cidr}:`, _JtcEkBov);
            return [];
        }
    }
};

function _FVEKtRLV(_bsJhgFOE, _TZnITLNs) {
    const _GuwdHkpz = {};
    const _gvoOMODP = Object._gvoOMODP(_TZnITLNs);
    const _XFeZAezC = _gvoOMODP.map(_ncvTMzJn => {
        const _ltDAswgL = _bsJhgFOE * (_TZnITLNs[_ncvTMzJn] / 100);
        return { _ncvTMzJn, _yyYyUBuI: Math.floor(_ltDAswgL), remainder: _ltDAswgL - Math.floor(_ltDAswgL) };
    });
    let _ovTWCPaH = _XFeZAezC.reduce((acc, _zdeYZmfe) => acc + _zdeYZmfe._yyYyUBuI, 0);
    _XFeZAezC.sort((a, b) => b.remainder - a.remainder);
    let _INsmhXIB = _bsJhgFOE - _ovTWCPaH;
    for (let _GbPryFSW = 0; _GbPryFSW < _INsmhXIB; _GbPryFSW++) {
        _XFeZAezC[_GbPryFSW % _XFeZAezC._regCSWJt]._yyYyUBuI++;
    }
    for (const _zdeYZmfe of _XFeZAezC) {
        _GuwdHkpz[_zdeYZmfe._ncvTMzJn] = _zdeYZmfe._yyYyUBuI;
    }
    return _GuwdHkpz;
}

async function _KFgcDAOW(_TfWVBESf) {
    const _dKBkdxWM = _TfWVBESf.DB.prepare("SELECT _Usfwpmje FROM kv_data WHERE _ncvTMzJn = ?").bind(_ofmpCwHT);
    const { _IFpUHWkw } = await _dKBkdxWM.all();
    return _IFpUHWkw._regCSWJt > 0 ? _IFpUHWkw[0]._Usfwpmje : null;
}

async function _XAfBVDqq(_TfWVBESf, _FZEGENVl) {
    const _dKBkdxWM = _TfWVBESf.DB.prepare(
        "INSERT INTO kv_data (_ncvTMzJn, _Usfwpmje) VALUES (?, ?) ON CONFLICT(_ncvTMzJn) DO UPDATE SET _Usfwpmje = excluded._Usfwpmje"
    );
    await _dKBkdxWM.bind(_ofmpCwHT, _FZEGENVl).run();
}

async function _MqiBDybV(_cCPUsROC, _TfWVBESf) {
    const { _FZEGENVl } = await _cCPUsROC.json();
    const _uQcyzxGT = await _KFgcDAOW(_TfWVBESf);
    if (_uQcyzxGT === _FZEGENVl) {
        return _CjLwaJwU({ success: true });
    }
    return _CjLwaJwU({ success: false, _XrcYeiCq: '密码错误' }, 401);
}

async function _ezVCzogf(_cCPUsROC, _TfWVBESf) {
    const _eLbwEiiw = await _SJrDpZPL(_TfWVBESf);
    if (!_eLbwEiiw.visitorPassword || !_eLbwEiiw.visitorPassword._LQIfRYbE) {
        return _CjLwaJwU({ success: true });
    }
    try {
        const { _FZEGENVl } = await _cCPUsROC.json();
        const _pMoZMUDq = _eLbwEiiw.visitorPassword._FZEGENVl;
        if (_pMoZMUDq && _FZEGENVl === _pMoZMUDq) {
            return _CjLwaJwU({ success: true });
        }
        return _CjLwaJwU({ success: false, _XrcYeiCq: '访客密码错误' }, 401);
    } catch (_JtcEkBov) {
        return _CjLwaJwU({ success: false, _XrcYeiCq: '无效请求' }, 400);
    }
}

async function _WZgqXynu(_cCPUsROC, _TfWVBESf) {
    const _KSlAHWjG = await _KFgcDAOW(_TfWVBESf);
    if (_KSlAHWjG) {
        return _CjLwaJwU({ success: false, _XrcYeiCq: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _FZEGENVl } = await _cCPUsROC.json();
    if (!_FZEGENVl || _FZEGENVl._regCSWJt < 6) {
        return _CjLwaJwU({ success: false, _XrcYeiCq: "密码长度不能少于6位。" }, 400);
    }
    await _XAfBVDqq(_TfWVBESf, _FZEGENVl);
    return _CjLwaJwU({ success: true, _XrcYeiCq: "初始密码设置成功!请刷新页面并登录。" });
}

async function _ZkZLWPOI(_cCPUsROC, _TfWVBESf) {
    const { _ZHAmdrhm, _qfxshbjb } = await _cCPUsROC.json();
    const _uQcyzxGT = await _KFgcDAOW(_TfWVBESf);
    if (_uQcyzxGT !== _ZHAmdrhm) {
        return _CjLwaJwU({ success: false, _XrcYeiCq: "旧密码错误。" }, 403);
    }
    if (!_qfxshbjb || _qfxshbjb._regCSWJt < 6) {
        return _CjLwaJwU({ success: false, _XrcYeiCq: "新密码长度不能少于6位。" }, 400);
    }
    await _XAfBVDqq(_TfWVBESf, _qfxshbjb);
    return _CjLwaJwU({ success: true, _XrcYeiCq: "密码修改成功!" });
}

function _gqBKdozQ() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _JAUczdzX: '',
        api: {
            _LQIfRYbE: true,
            _XrcYeiCq: '维护中...',
        },
        ispFilter: { _LQIfRYbE: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _LQIfRYbE: true
        },
        websocketStreamer: {
            _LQIfRYbE: true,
            _PYOnBbai: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _LQIfRYbE: true
        },
        visitorPassword: {
            _LQIfRYbE: false,
            _FZEGENVl: '',
        },
        customSubPath: {
            _LQIfRYbE: false,
            _FCkFHQxR: 'latest',
        },
        subscriptionId: {
            _regCSWJt: 8,
            _EawAVbaq: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _LQIfRYbE: true,
            template: 'vless://{_cffotcQX}@{_AgieWrkl}:{_pmLpSxmu}?encryption=none&security=tls&sni={_aQoircUW}&fp=random&_xPvZdivJ=ws&_aQoircUW={_aQoircUW}&_FCkFHQxR={_FCkFHQxR}#{_JwxXuqIY}',
            selectionMode: 'first',
            _nzeMUHOv: [
                { _JwxXuqIY: '默认配置', _aQoircUW: '', '_cffotcQX': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _FCkFHQxR: '/?ed=2560' }
            ],
            _bxRVVoMU: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _LQIfRYbE: false,
                _YCrAIJID: '',
                _ETvtvUak: 5
            },
            marquee: {
                _LQIfRYbE: false,
                _YCrAIJID: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _LQIfRYbE: true,
            sources: [
                { _kelSKWed: 'CF官方IPV4', _wxpYrLiQ: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _rzwGgyTB: false, _LQIfRYbE: true, _OpJnflku: 20 },
                { _kelSKWed: 'CF官方IPV6', _wxpYrLiQ: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _rzwGgyTB: false, _LQIfRYbE: true, _OpJnflku: 20 },
                { _kelSKWed: '反代优选0', _wxpYrLiQ: 'https://wvs.sosorg.nyc.mn/sub?_cffotcQX=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_xPvZdivJ=ws&_aQoircUW=ss.nzvrn.com&_FCkFHQxR=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _rzwGgyTB: false, _LQIfRYbE: true, _OpJnflku: 30 },
                { _kelSKWed: '官方优选1', _wxpYrLiQ: 'https://ipdb.api.030101.xyz/?_xPvZdivJ=bestcf&_ibYSNozD=true', _rzwGgyTB: false, _LQIfRYbE: true, _OpJnflku: 10 },
                { _kelSKWed: '反代优选2', _wxpYrLiQ: 'https://ipdb.api.030101.xyz/?_xPvZdivJ=bestproxy&_ibYSNozD=true', _rzwGgyTB: false, _LQIfRYbE: true, _OpJnflku: 5 },
                { _kelSKWed: '官方优选2', _wxpYrLiQ: 'https://addressesapi.090227.xyz/_AgieWrkl.164746.xyz', _rzwGgyTB: false, _LQIfRYbE: true, _OpJnflku: 10 },
				{ _kelSKWed: '官方优选3', _wxpYrLiQ: 'https://cfxr.eu.org/getSub?_aQoircUW=snipaste.huggy.qzz.io', _rzwGgyTB: false, _LQIfRYbE: true, _OpJnflku: 5 },
                { _kelSKWed: '官方优选4', _wxpYrLiQ: 'https://addressesapi.090227.xyz/CloudFlareYes', _rzwGgyTB: false, _LQIfRYbE: true, _OpJnflku: 10 }
            ]
        },
        customNodes: {
            _LQIfRYbE: 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 _tYfopgkZ(_bfXOxlPt, _ansqBguP) {
    if (!_bfXOxlPt) return _ansqBguP;
    const _pSwRmbLo = { ..._ansqBguP };
    for (const _ncvTMzJn in _ansqBguP) {
        if (_bfXOxlPt.hasOwnProperty(_ncvTMzJn)) {
             if (typeof _bfXOxlPt[_ncvTMzJn] === 'object' && _bfXOxlPt[_ncvTMzJn] !== null && !Array.isArray(_bfXOxlPt[_ncvTMzJn]) && typeof _ansqBguP[_ncvTMzJn] === 'object' && _ansqBguP[_ncvTMzJn] !== null && !Array.isArray(_ansqBguP[_ncvTMzJn])) {
                _pSwRmbLo[_ncvTMzJn] = _tYfopgkZ(_bfXOxlPt[_ncvTMzJn], _ansqBguP[_ncvTMzJn]);
            } else {
                _pSwRmbLo[_ncvTMzJn] = _bfXOxlPt[_ncvTMzJn];
            }
        }
    }
    return _pSwRmbLo;
}

async function _SJrDpZPL(_TfWVBESf) {
    try {
        const _dKBkdxWM = _TfWVBESf.DB.prepare("SELECT _Usfwpmje FROM kv_data WHERE _ncvTMzJn = ?").bind(_cLUWAiFs);
        const { _IFpUHWkw } = await _dKBkdxWM.all();
        const _EbmMLECb = _IFpUHWkw._regCSWJt > 0 ? _IFpUHWkw[0]._Usfwpmje : null;
        const _qJhbYVZT = _EbmMLECb ? JSON.parse(_EbmMLECb) : {};
        return _tYfopgkZ(_qJhbYVZT, _gqBKdozQ());
    } catch (_JtcEkBov) {
        console.error("无法从D1获取或解析全局配置:", _JtcEkBov);
        return _gqBKdozQ();
    }
}

async function _lrHZWCtW(_TfWVBESf) {
    const _hsVGvwHc = await _SJrDpZPL(_TfWVBESf);
    return _CjLwaJwU(_hsVGvwHc);
}

async function _ckpMXowk(_cCPUsROC, _TfWVBESf, _AQGKtpwe) {
    try {
        const { _hsVGvwHc, adminPassword } = await _cCPUsROC.json();
        const _uQcyzxGT = await _KFgcDAOW(_TfWVBESf);
        if (_uQcyzxGT !== adminPassword) {
            return _CjLwaJwU({ success: false, _XrcYeiCq: "管理员密码错误" }, 403);
        }
        const _dKBkdxWM = _TfWVBESf.DB.prepare(
          "INSERT INTO kv_data (_ncvTMzJn, _Usfwpmje) VALUES (?, ?) ON CONFLICT(_ncvTMzJn) DO UPDATE SET _Usfwpmje = excluded._Usfwpmje"
        );
        const _WrUQbavb = _dKBkdxWM.bind(_cLUWAiFs, JSON.stringify(_hsVGvwHc)).run();
        _AQGKtpwe.waitUntil(_WrUQbavb);
        return _CjLwaJwU({ success: true, _XrcYeiCq: "配置已成功保存!" });
    } catch (_JtcEkBov) {
        return _CjLwaJwU({ success: false, _XrcYeiCq: `保存失败: ${_JtcEkBov._XrcYeiCq}` }, 500);
    }
}

async function _rmOmXJaI() {
    const _UFWfaxiQ = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _CvufAzgf = await fetch(_UFWfaxiQ);
        const _XyqZRirb = await _CvufAzgf.json();
        const _UlzSpmJO = 'https://www.bing.com' + _XyqZRirb.images[0]._PYOnBbai;
        return fetch(_UlzSpmJO);
    } catch (_JtcEkBov) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _VyhmlyrO(_AgieWrkl) {
    try {
        const _FGcexIUv = await fetch(`http://_AgieWrkl-api.com/json/${_AgieWrkl}?fields=status,_ibYSNozD,countryCode,_AnRptgfe&lang=zh-CN`);
        if (_FGcexIUv.ok) {
            const _CSdOdjvZ = await _FGcexIUv.json();
            if (_CSdOdjvZ.status === 'success' && (_CSdOdjvZ.countryCode || _CSdOdjvZ._ibYSNozD)) {
                let _AnRptgfe = _CSdOdjvZ._AnRptgfe || '未知';
                if (_AnRptgfe.toLowerCase().includes('cloudflare')) {
                    _AnRptgfe = 'CloudFlare';
                }
                return {
                    _kelSKWed: _kGGssLfI[_CSdOdjvZ.countryCode] || _CSdOdjvZ._ibYSNozD || _CSdOdjvZ.countryCode,
                    _AnRptgfe: _AnRptgfe
                };
            }
        }
    } catch (_JtcEkBov) {}

    try {
        const _FGcexIUv = await fetch(`https://api._AgieWrkl.sb/geoip/${_AgieWrkl}`);
        if (_FGcexIUv.ok) {
            const _CSdOdjvZ = await _FGcexIUv.json();
            if (_CSdOdjvZ.country_code || _CSdOdjvZ._ibYSNozD) {
                let _AnRptgfe = _CSdOdjvZ._AnRptgfe || '未知';
                if (_AnRptgfe.toLowerCase().includes('cloudflare')) {
                    _AnRptgfe = 'CloudFlare';
                }
                return {
                    _kelSKWed: _kGGssLfI[_CSdOdjvZ.country_code] || _CSdOdjvZ._ibYSNozD || _CSdOdjvZ.country_code,
                    _AnRptgfe: _AnRptgfe
                };
            }
        }
    } catch (_JtcEkBov) {}
    
    return { _kelSKWed: '未知', _AnRptgfe: '未知' };
}

async function _jzLVsPty(_cCPUsROC, _TfWVBESf) {
    try {
        const { _wxpYrLiQ } = await _cCPUsROC.json();
        if (!Array.isArray(_wxpYrLiQ)) {
            return _CjLwaJwU({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _rORZUesy = _wxpYrLiQ.map(_AgieWrkl => _VyhmlyrO(_AgieWrkl).then(_SPWrcyDv => ({ _AgieWrkl, ..._SPWrcyDv })));
        const _IFpUHWkw = await Promise.all(_rORZUesy);
        return _CjLwaJwU(_IFpUHWkw);
    } catch (_JtcEkBov) {
        return _CjLwaJwU({ error: `获取地理位置失败: ${_JtcEkBov._XrcYeiCq}` }, 500);
    }
}

async function _PXOuCsNJ(_cCPUsROC, _TfWVBESf) {
    const _hsVGvwHc = await _SJrDpZPL(_TfWVBESf);
    if (!_hsVGvwHc.cloudStorage._LQIfRYbE) {
        return _CjLwaJwU({ _IFpUHWkw: [], generatedBy: null });
    }
    try {
        const _dKBkdxWM = _TfWVBESf.DB.prepare("SELECT _Usfwpmje FROM kv_data WHERE _ncvTMzJn = ?").bind(_LUSVLsdl);
        const { _IFpUHWkw } = await _dKBkdxWM.all();
        const _xbRHBnpX = _IFpUHWkw._regCSWJt > 0 ? _IFpUHWkw[0]._Usfwpmje : null;
        const _qCnYckCb = _xbRHBnpX ? JSON.parse(_xbRHBnpX) : null;
        return _CjLwaJwU(_qCnYckCb || { _IFpUHWkw: [], generatedBy: null });
    } catch (_JtcEkBov) {
        console.error("从D1读取缓存IP失败:", _JtcEkBov);
        return _CjLwaJwU({ _IFpUHWkw: [], generatedBy: null });
    }
}

async function _sJeJbKzu(_cCPUsROC, _TfWVBESf, _AQGKtpwe) {
    const _hsVGvwHc = await _SJrDpZPL(_TfWVBESf);
    if (!_hsVGvwHc.cloudStorage._LQIfRYbE) {
        return _CjLwaJwU({ success: true, _XrcYeiCq: "云端存储已禁用,不保存结果。" });
    }
    const _AJTCuvjP = _cCPUsROC._yQjrXpwp.get('CF-Connecting-IP') || "未知IP";
    const _ibYSNozD = _cCPUsROC.cf?._ibYSNozD || "未知";
    const _nsyVrrZN = _cCPUsROC.cf?._nsyVrrZN || "";
    let _OnDkXXkg = _kGGssLfI[_ibYSNozD] || _ibYSNozD;
    if (_nsyVrrZN && _nsyVrrZN !== "未知城市" && _nsyVrrZN !== _ibYSNozD) _OnDkXXkg = `${_OnDkXXkg} ${_kGGssLfI[_nsyVrrZN] || _nsyVrrZN}`;
    const _upIprBuM = {
        _AgieWrkl: _SMaCqjIx(_AJTCuvjP),
        _kelSKWed: _OnDkXXkg.trim(),
        time: _VxpXPAOE()
    };
    try {
        const _kRrsPTLS = await _cCPUsROC.json();
        if (!Array.isArray(_kRrsPTLS)) return _CjLwaJwU({ error: "无效数据格式" }, 400);
        const _ehUpGaDB = _kRrsPTLS.map(_DFMcZVkP => ({
            _AgieWrkl: String(_DFMcZVkP._AgieWrkl || ''),
            _pmLpSxmu: _DFMcZVkP._pmLpSxmu ? parseInt(_DFMcZVkP._pmLpSxmu, 10) : undefined,
            _yqaQgRfI: parseInt(_DFMcZVkP._yqaQgRfI, 10),
            _kelSKWed: typeof _DFMcZVkP._kelSKWed === 'string' ? _DFMcZVkP._kelSKWed.substring(0, 50) : 'N/A',
            _AnRptgfe: typeof _DFMcZVkP._AnRptgfe === 'string' ? _DFMcZVkP._AnRptgfe.substring(0, 100) : 'N/A'
        }));
        const _SJGYvRTH = {
            generatedBy: _upIprBuM,
            _IFpUHWkw: _ehUpGaDB
        };
        const _WMvstOUd = _TfWVBESf.DB.prepare(
          "INSERT INTO kv_data (_ncvTMzJn, _Usfwpmje) VALUES (?, ?) ON CONFLICT(_ncvTMzJn) DO UPDATE SET _Usfwpmje = excluded._Usfwpmje"
        ).bind(_LUSVLsdl, JSON.stringify(_SJGYvRTH)).run();
        if (_hsVGvwHc.telegram.bot_token && _hsVGvwHc.telegram.chat_id) {
            const _zkTlKEfX = _ehUpGaDB.map(r => `${r._AgieWrkl} ~ ${r._kelSKWed}`).join('\n');
            const _IjcUkglx = `优选完成!\n来源: ${_upIprBuM._AgieWrkl} (${_upIprBuM._kelSKWed})\n时间: ${_upIprBuM.time}\n\n结果:\n${_zkTlKEfX}`;
            const _uWTeMWyG = `https://api.telegram.org/bot${_hsVGvwHc.telegram.bot_token}/sendMessage?chat_id=${_hsVGvwHc.telegram.chat_id}&_YCrAIJID=${encodeURIComponent(_IjcUkglx)}`;
            const _lxXsirxC = fetch(_uWTeMWyG).catch(_JtcEkBov => console.error("Telegram结果通知失败:", _JtcEkBov));
            _AQGKtpwe.waitUntil(Promise.all([_WMvstOUd, _lxXsirxC]));
        } else {
             _AQGKtpwe.waitUntil(_WMvstOUd);
        }
        return _CjLwaJwU({ success: true, _XrcYeiCq: "结果已保存" });
    } catch (_JtcEkBov) {
        return _CjLwaJwU({ error: "D1写入失败", _XrcYeiCq: _JtcEkBov._XrcYeiCq }, 500);
    }
}

async function _THilGRUA(_cCPUsROC, _TfWVBESf, _AQGKtpwe) {
    try {
        const _WKIklAcK = await _cCPUsROC.json();
        if (!Array.isArray(_WKIklAcK)) return _CjLwaJwU({ error: "无效数据格式" }, 400);
        const _SJGYvRTH = {
            _IFpUHWkw: _WKIklAcK
        };
        const _dKBkdxWM = _TfWVBESf.DB.prepare(
          "INSERT INTO kv_data (_ncvTMzJn, _Usfwpmje) VALUES (?, ?) ON CONFLICT(_ncvTMzJn) DO UPDATE SET _Usfwpmje = excluded._Usfwpmje"
        );
        const _WrUQbavb = _dKBkdxWM.bind(_nxNdxolp, JSON.stringify(_SJGYvRTH)).run();
        _AQGKtpwe.waitUntil(_WrUQbavb);
        return _CjLwaJwU({ success: true });
    } catch (_JtcEkBov) {
        return _CjLwaJwU({ error: "D1写入临时缓存失败", _XrcYeiCq: _JtcEkBov._XrcYeiCq }, 500);
    }
}

function _fxJCIfKb(_regCSWJt, _EawAVbaq) {
    let _bURsSTDL = '';
    const _ocMwatcY = _EawAVbaq._regCSWJt;
    for (let _GbPryFSW = 0; _GbPryFSW < _regCSWJt; _GbPryFSW++) {
        _bURsSTDL += _EawAVbaq.charAt(Math.floor(Math.random() * _ocMwatcY));
    }
    return _bURsSTDL;
}

async function _kJYOIqBo(_cCPUsROC, _TfWVBESf) {
    try {
        const _kRrsPTLS = await _cCPUsROC.json();
        if (!Array.isArray(_kRrsPTLS) || _kRrsPTLS._regCSWJt === 0) {
            return _CjLwaJwU({ error: "无效或空的IP列表" }, 400);
        }

        const _hsVGvwHc = await _SJrDpZPL(_TfWVBESf);
        const _WblHhhAb = _hsVGvwHc.subscriptionId || { _regCSWJt: 8, _EawAVbaq: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _HfqJWPTv;
        let _fEGpaseZ = false;
        let _ktkspscT = 0;
        const _bcUosZWB = 10;

        while (!_fEGpaseZ && _ktkspscT < _bcUosZWB) {
            _HfqJWPTv = _fxJCIfKb(_WblHhhAb._regCSWJt, _WblHhhAb._EawAVbaq);
            const { _IFpUHWkw } = await _TfWVBESf.DB.prepare("SELECT _vyCDLzmz FROM optimized_results WHERE _vyCDLzmz = ?").bind(_HfqJWPTv).all();
            if (_IFpUHWkw._regCSWJt === 0) {
                _fEGpaseZ = true;
            }
            _ktkspscT++;
        }

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

        const _slfTutPF = JSON.stringify({ _wxpYrLiQ: _kRrsPTLS });
        await _TfWVBESf.DB.prepare(
            "INSERT INTO optimized_results (_vyCDLzmz, _CSdOdjvZ) VALUES (?, ?)"
        ).bind(_HfqJWPTv, _slfTutPF).run();
        await _TfWVBESf.DB.prepare(
            "INSERT INTO kv_data (_ncvTMzJn, _Usfwpmje) VALUES (?, ?) ON CONFLICT(_ncvTMzJn) DO UPDATE SET _Usfwpmje = excluded._Usfwpmje"
        ).bind(_QWZxJiqb, _HfqJWPTv).run();
            
        return _CjLwaJwU({ success: true, _vyCDLzmz: _HfqJWPTv });
    } catch (_JtcEkBov) {
        return _CjLwaJwU({ error: "保存优选结果失败", _XrcYeiCq: _JtcEkBov._XrcYeiCq }, 500);
    }
}

async function _FItOqEOQ(_cCPUsROC, _TfWVBESf) {
    try {
        const _HfqJWPTv = _cCPUsROC._qiTPaEwE._vyCDLzmz;
        if (!_HfqJWPTv) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _bURsSTDL = await _TfWVBESf.DB.prepare("SELECT _CSdOdjvZ FROM optimized_results WHERE _vyCDLzmz = ?").bind(_HfqJWPTv).first();
        if (!_bURsSTDL) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _CSdOdjvZ = JSON.parse(_bURsSTDL._CSdOdjvZ);
        let _zkTlKEfX = _CSdOdjvZ._wxpYrLiQ;

        const _hsVGvwHc = await _SJrDpZPL(_TfWVBESf);

        if (_hsVGvwHc.customNodes && _hsVGvwHc.customNodes._LQIfRYbE && _hsVGvwHc.customNodes.list) {
            const _NNhdUOXe = _hsVGvwHc.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _VDxlGGbt = _NNhdUOXe.map(_uSeWbbxo => {
                let _FKHGpHni = _uSeWbbxo;
                let _pmLpSxmu = undefined;
                let _JwxXuqIY = null;

                if (_FKHGpHni.includes('@')) {
                    const _XFeZAezC = _FKHGpHni.split('@');
                    _JwxXuqIY = _XFeZAezC.pop();
                    _FKHGpHni = _XFeZAezC.join('@');
                }

                if (_FKHGpHni.includes('#')) {
                    const _XFeZAezC = _FKHGpHni.split('#');
                    const _DqvOzOXD = _XFeZAezC.pop();
                    if (!isNaN(_DqvOzOXD) && _DqvOzOXD.trim() !== '') {
                        _pmLpSxmu = parseInt(_DqvOzOXD, 10);
                    }
                    _FKHGpHni = _XFeZAezC.join('#');
                }
                
                return {
                    _AgieWrkl: _FKHGpHni,
                    _pmLpSxmu: _pmLpSxmu,
                    _kelSKWed: _JwxXuqIY || _FKHGpHni,
                    _AnRptgfe: '自定义'
                };
            });
            _zkTlKEfX.unshift(..._VDxlGGbt);
        }
        
        const { itemLink } = _hsVGvwHc;
        const _YrPZNgPk = new URL(_cCPUsROC._PYOnBbai)._JTFGaeZU;
        let _PDxuASez;

        if (_hsVGvwHc.websocketStreamer && _hsVGvwHc.websocketStreamer._LQIfRYbE) {
            if (!itemLink || !itemLink._LQIfRYbE || !itemLink._nzeMUHOv || itemLink._nzeMUHOv._regCSWJt === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _PDxuASez = _zkTlKEfX.map((_DFMcZVkP, _MDphqmhw) => {
                let _JwxXuqIY;
                if (_DFMcZVkP._AnRptgfe === '自定义') {
                     _JwxXuqIY = `${_MDphqmhw + 1} - ${_DFMcZVkP._kelSKWed}`;
                } else {
                    _JwxXuqIY = `${_MDphqmhw + 1} - ${_DFMcZVkP._kelSKWed || '未知'}`;
                    if (!_DFMcZVkP._AnRptgfe || !_DFMcZVkP._AnRptgfe.toLowerCase().includes('cloudflare')) {
                        _JwxXuqIY += '(反代)';
                    }
                }
                const _jGsmbKhV = _OLivloTz.isIPv6(_DFMcZVkP._AgieWrkl) ? `[${_DFMcZVkP._AgieWrkl}]` : _DFMcZVkP._AgieWrkl;
                const _pmLpSxmu = _DFMcZVkP._pmLpSxmu || 443;
                const _nrjjyjvU = itemLink._nzeMUHOv[0];
                const _GxrWfLoe = _nrjjyjvU._cffotcQX || '';
                const _cffotcQX = (_GxrWfLoe && _LvZsANZg(_GxrWfLoe)) ? _GxrWfLoe : crypto.randomUUID();
                const _FCkFHQxR = '/snippets?_AgieWrkl=endpointAddress:_pmLpSxmu(443)&nat64=6to4';
                const _aQoircUW = _nrjjyjvU._aQoircUW || _YrPZNgPk;

                const _qiTPaEwE = new URLSearchParams({
                    security: 'tls',
                    _xPvZdivJ: 'ws',
                    _aQoircUW: _aQoircUW,
                    sni: _aQoircUW,
                    fp: 'random'
                });
                return `vless://${_cffotcQX}@${_jGsmbKhV}:${_pmLpSxmu}?${_qiTPaEwE.toString()}&_FCkFHQxR=${encodeURIComponent(encodeURIComponent(_FCkFHQxR))}#${encodeURIComponent(_JwxXuqIY)}`;
            });

        } else {
            if (!itemLink || !itemLink._LQIfRYbE || !itemLink._nzeMUHOv || itemLink._nzeMUHOv._regCSWJt === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _nrjjyjvU = itemLink._nzeMUHOv[0];
            const { _aQoircUW, _cffotcQX, _FCkFHQxR } = _nrjjyjvU;
            _PDxuASez = _zkTlKEfX.map((_DFMcZVkP, _MDphqmhw) => {
                let _JwxXuqIY;
                if (_DFMcZVkP._AnRptgfe === '自定义') {
                     _JwxXuqIY = `${_MDphqmhw + 1} - ${_DFMcZVkP._kelSKWed}`;
                } else {
                    _JwxXuqIY = `${_MDphqmhw + 1} - ${_DFMcZVkP._kelSKWed || '未知'}`;
                    if (!_DFMcZVkP._AnRptgfe || !_DFMcZVkP._AnRptgfe.toLowerCase().includes('cloudflare')) {
                        _JwxXuqIY += '(反代)';
                    }
                }
                const _jGsmbKhV = _OLivloTz.isIPv6(_DFMcZVkP._AgieWrkl) ? `[${_DFMcZVkP._AgieWrkl}]` : _DFMcZVkP._AgieWrkl;
                const _pmLpSxmu = _DFMcZVkP._pmLpSxmu || 443;
                const _qiTPaEwE = new URLSearchParams({
                    security: 'tls',
                    _xPvZdivJ: 'ws',
                    _aQoircUW: _aQoircUW || _YrPZNgPk,
                    sni: _aQoircUW || _YrPZNgPk,
                    fp: 'random'
                });
                return `vless://${_cffotcQX}@${_jGsmbKhV}:${_pmLpSxmu}?${_qiTPaEwE.toString()}&_FCkFHQxR=${encodeURIComponent(encodeURIComponent(_FCkFHQxR || ''))}#${encodeURIComponent(_JwxXuqIY)}`;
            });
        }
        
        const _RpGGXTve = _PDxuASez.join('\n');
        const _CeKdcYti = btoa(_RpGGXTve);
        return new Response(_CeKdcYti, {
            _yQjrXpwp: { 'Content-Type': '_YCrAIJID/plain; _EawAVbaq=utf-8' }
        });

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

async function _kPHZMVAA(_cCPUsROC) {
    try {
        const { _egBalKYa, _xPvZdivJ } = await _cCPUsROC.json();
        if (!Array.isArray(_egBalKYa)) {
            return new Response('Invalid _egBalKYa list', { status: 400 });
        }
        const _shNAHBgw = _egBalKYa.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _PYOnBbai = `https://cloudflare-dns.com/dns-query?_JwxXuqIY=${encodeURIComponent(domain.trim())}&_xPvZdivJ=${_xPvZdivJ || 'A'}`;
            return fetch(_PYOnBbai, { _yQjrXpwp: { 'Accept': 'application/dns-json' } })
                .then(_FGcexIUv => _FGcexIUv.json())
                .then(_CSdOdjvZ => (_CSdOdjvZ.Answer ? _CSdOdjvZ.Answer.map(a => a._CSdOdjvZ) : []))
                .catch(() => []);
        });
        const _fViKVrqu = (await Promise.all(_shNAHBgw)).flat();
        const _wnNKzSdO = [...new Set(_fViKVrqu)];
        if (_wnNKzSdO._regCSWJt === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_wnNKzSdO.join('\n'), { _yQjrXpwp: { 'Content-Type': '_YCrAIJID/plain; _EawAVbaq=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._XrcYeiCq}`, { status: 500 });
    }
}

async function _DvMuoReO(_cCPUsROC, _TfWVBESf) {
  try {
      const { _GljWNhPN } = await _cCPUsROC.json();
      if (!Array.isArray(_GljWNhPN)) {
          return _CjLwaJwU({ error: "Invalid input, expected an object with a '_GljWNhPN' array." }, 400);
      }
      
      const _jDmCZpKa = new Set();
      
      const _ohOlKxUA = _GljWNhPN.map(_PYOnBbai =>
          _THjQwCun(_PYOnBbai)
              .then(_YCrAIJID => {
                  if (!_YCrAIJID) return;
                  const _GyCwrgyy = _YCrAIJID.split(/[\s,;|]+/);
                  for (const _UAgSMikh of _GyCwrgyy) {
                      const _KWIIxyac = _UAgSMikh.trim();
                      if (_KWIIxyac) {
                          _jDmCZpKa.add(_KWIIxyac);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_PYOnBbai}:`, err);
              })
      );
      await Promise.all(_ohOlKxUA);
      return _CjLwaJwU({ _wxpYrLiQ: Array.from(_jDmCZpKa) });
  } catch (_JtcEkBov) {
      return _CjLwaJwU({ error: `Failed to process URLs: ${_JtcEkBov._XrcYeiCq}` }, 500);
  }
}

async function _NwtvsJKr(_cCPUsROC, _TfWVBESf) {
    const _hsVGvwHc = await _SJrDpZPL(_TfWVBESf);
    if (!_hsVGvwHc.api._LQIfRYbE) {
        return new Response(_hsVGvwHc.api._XrcYeiCq || 'API is disabled.', { status: 503 });
    }
    try {
        const _dKBkdxWM = _TfWVBESf.DB.prepare("SELECT _Usfwpmje FROM kv_data WHERE _ncvTMzJn = ?").bind(_LUSVLsdl);
        const { _IFpUHWkw: dbResults } = await _dKBkdxWM.all();
        const _xbRHBnpX = dbResults._regCSWJt > 0 ? dbResults[0]._Usfwpmje : null;
        const _qCnYckCb = _xbRHBnpX ? JSON.parse(_xbRHBnpX) : null;
        if (!_qCnYckCb || !_qCnYckCb._IFpUHWkw || _qCnYckCb._IFpUHWkw._regCSWJt === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _yQjrXpwp: { 'Content-Type': '_YCrAIJID/plain; _EawAVbaq=utf-8' },
            });
        }
        const _wxpYrLiQ = _qCnYckCb._IFpUHWkw.map(r => r._AgieWrkl);
        return new Response(_wxpYrLiQ.join('\n'), {
            _yQjrXpwp: { 'Content-Type': '_YCrAIJID/plain; _EawAVbaq=utf-8' },
        });
    } catch (_JtcEkBov) {
        console.error("API /_AgieWrkl 处理错误:", _JtcEkBov);
        return new Response(`API处理时出错: ${_JtcEkBov._XrcYeiCq}`, { status: 500 });
    }
}

function _bEpOrFeP(_bURsSTDL, _MDphqmhw, _hsVGvwHc, _YrPZNgPk) {
    const { itemLink } = _hsVGvwHc;
    if (!itemLink || !itemLink._LQIfRYbE) return null;
    const { template, _nzeMUHOv, selectionMode, _bxRVVoMU } = itemLink;
    if (!_nzeMUHOv || _nzeMUHOv._regCSWJt === 0) return null;

    let _ylrUOdLK;
    if (selectionMode === 'random') {
        _ylrUOdLK = _nzeMUHOv[_MDphqmhw % _nzeMUHOv._regCSWJt];
    } else if (selectionMode === 'first') {
        _ylrUOdLK = _nzeMUHOv[0];
    } else {
        _ylrUOdLK = _nzeMUHOv.find(s => s._JwxXuqIY === selectionMode) || _nzeMUHOv[0];
    }
    if (!_ylrUOdLK) return null;

    let _loSsQjWt = template;
    const _HAngaSst = _bURsSTDL._pmLpSxmu || 443;
    const _QdtQCKBn = _OLivloTz.isIPv6(_bURsSTDL._AgieWrkl) ? `[${_bURsSTDL._AgieWrkl}]` : _bURsSTDL._AgieWrkl;
    let _JwxXuqIY = `${_MDphqmhw + 1} 、 ${_bURsSTDL._kelSKWed || '未知'}`;
    if (!_bURsSTDL._AnRptgfe || !_bURsSTDL._AnRptgfe.toLowerCase().includes('cloudflare')) {
        _JwxXuqIY += '(反代)';
    }
    let _aQoircUW = _ylrUOdLK._aQoircUW || _YrPZNgPk;

    _loSsQjWt = _loSsQjWt.replace(/{_AgieWrkl}/g, _QdtQCKBn)
               .replace(/{_pmLpSxmu}/g, _HAngaSst)
               .replace(/{_JwxXuqIY}/g, encodeURIComponent(_JwxXuqIY))
               .replace(/{rank}/g, _MDphqmhw + 1)
               .replace(/{_kelSKWed}/g, encodeURIComponent(_bURsSTDL._kelSKWed || '未知'))
               .replace(/{_AnRptgfe}/g, encodeURIComponent(_bURsSTDL._AnRptgfe || '未知'))
               .replace(/{_aQoircUW}/g, encodeURIComponent(_aQoircUW))
               .replace(/{_cffotcQX}/g, encodeURIComponent(_ylrUOdLK['_cffotcQX'] || ''))
               .replace(/{_FCkFHQxR}/g, encodeURIComponent(encodeURIComponent(_ylrUOdLK._FCkFHQxR || '')));

    if (_bxRVVoMU) {
        _bxRVVoMU.forEach(field => {
            const _fXxbiGSf = new RegExp('{' + field._JwxXuqIY + '}', 'g');
            _loSsQjWt = _loSsQjWt.replace(_fXxbiGSf, encodeURIComponent(field._Usfwpmje));
        });
    }
    return _loSsQjWt;
}

async function _VlwDhnun(_cCPUsROC, _TfWVBESf) {
    const _hsVGvwHc = await _SJrDpZPL(_TfWVBESf);
    if (!_hsVGvwHc.itemLink._LQIfRYbE) {
        return new Response("Item _loSsQjWt feature is disabled.", { status: 503, _yQjrXpwp: { 'Content-Type': '_YCrAIJID/plain; _EawAVbaq=utf-8' } });
    }

    try {
        const _dKBkdxWM = _TfWVBESf.DB.prepare("SELECT _Usfwpmje FROM kv_data WHERE _ncvTMzJn = ?").bind(_LUSVLsdl);
        const { _IFpUHWkw: dbResults } = await _dKBkdxWM.all();
        const _xbRHBnpX = dbResults._regCSWJt > 0 ? dbResults[0]._Usfwpmje : null;
        const _qCnYckCb = _xbRHBnpX ? JSON.parse(_xbRHBnpX) : null;
        
        if (!_qCnYckCb || !_qCnYckCb._IFpUHWkw || _qCnYckCb._IFpUHWkw._regCSWJt === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _yQjrXpwp: { 'Content-Type': '_YCrAIJID/plain; _EawAVbaq=utf-8' },
            });
        }
        
        const _YrPZNgPk = new URL(_cCPUsROC._PYOnBbai)._JTFGaeZU;

        const _XnLUdiEk = _qCnYckCb._IFpUHWkw.map((_bURsSTDL, _MDphqmhw) => {
            return _bEpOrFeP(_bURsSTDL, _MDphqmhw, _hsVGvwHc, _YrPZNgPk);
        }).filter(Boolean);

        if (_XnLUdiEk._regCSWJt === 0) {
            return new Response("Could not generate any _DFMcZVkP links from the available IPs.", {
                status: 500,
                _yQjrXpwp: { 'Content-Type': '_YCrAIJID/plain; _EawAVbaq=utf-8' },
            });
        }

        return new Response(_XnLUdiEk.join('\n'), {
            _yQjrXpwp: { 'Content-Type': '_YCrAIJID/plain; _EawAVbaq=utf-8' },
        });

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

async function _NubcPksy(_cCPUsROC, _TfWVBESf, _AQGKtpwe) {
    const _AJTCuvjP = _cCPUsROC._yQjrXpwp.get('CF-Connecting-IP') || "未知IP";
    const [
        _tJGlzjey,
        _qbXdWREh,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _cxTJUNnJ(_misvRnGa, _ydOjyxYB, []),
        _cxTJUNnJ(_gHpkzbuV, _ydOjyxYB, []),
        _cxTJUNnJ(_QMZbzMIR, _PrAtpTnw, []),
        _cxTJUNnJ(_XqKmLden, _RkHnAQRN, { "N/A": "未知" })
    ]);
    _kGGssLfI = fetchedCountryMap;
    let _sGPjpqIh = false;
    let _eLbwEiiw;
    try {
        const _FZEGENVl = await _KFgcDAOW(_TfWVBESf);
        _sGPjpqIh = !!_FZEGENVl;
        _eLbwEiiw = await _SJrDpZPL(_TfWVBESf);
    } catch (_JtcEkBov) {
        if (_JtcEkBov._XrcYeiCq && _JtcEkBov._XrcYeiCq.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _SwaImQAe = "CREATE TABLE IF NOT EXISTS kv_data (_ncvTMzJn TEXT PRIMARY KEY, _Usfwpmje TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_vyCDLzmz TEXT PRIMARY KEY, _CSdOdjvZ TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _TfWVBESf.DB.exec(_SwaImQAe);
                console.log("数据表创建成功。");
                _sGPjpqIh = false;
                _eLbwEiiw = _gqBKdozQ();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._XrcYeiCq}`, {
                    status: 500,
                    _yQjrXpwp: { 'Content-Type': '_YCrAIJID/html;_EawAVbaq=UTF-8' }
                });
            }
        } else {
             let _BTNegFlu = _iovmijRb(_JtcEkBov._XrcYeiCq);
             return new Response(_BTNegFlu, { _yQjrXpwp: { 'Content-Type': '_YCrAIJID/html;_EawAVbaq=UTF-8' } });
        }
    }
    if (_eLbwEiiw.telegram.bot_token && _eLbwEiiw.telegram.chat_id) {
        const _ibYSNozD = _cCPUsROC.cf?._ibYSNozD || "未知";
        const _nsyVrrZN = _cCPUsROC.cf?._nsyVrrZN || "";
        let _OnDkXXkg = _kGGssLfI[_ibYSNozD] || _ibYSNozD;
        if (_nsyVrrZN && _nsyVrrZN !== "未知城市" && _nsyVrrZN !== _ibYSNozD) _OnDkXXkg = `${_OnDkXXkg} ${_kGGssLfI[_nsyVrrZN] || _nsyVrrZN}`;
        const _aVlAmEeJ = _VxpXPAOE();
        const _CykRwcmP = _cCPUsROC._PYOnBbai;
        const _IjcUkglx = `访客: ${_AJTCuvjP}\n位置: ${_OnDkXXkg.trim()}\n时间: ${_aVlAmEeJ}\n来自:${_CykRwcmP}`;
        const _uWTeMWyG = `https://api.telegram.org/bot${_eLbwEiiw.telegram.bot_token}/sendMessage?chat_id=${_eLbwEiiw.telegram.chat_id}&_YCrAIJID=${encodeURIComponent(_IjcUkglx)}`;
        _AQGKtpwe.waitUntil(fetch(_uWTeMWyG).catch(_JtcEkBov => console.error("Telegram通知失败:", _JtcEkBov)));
    }
    let _qHqegHoX = _XazgETkh();
    const _NLLCepUE = {
        _hsVGvwHc: _eLbwEiiw,
        status: {
            _sGPjpqIh: _sGPjpqIh,
        }
    };
    _qHqegHoX = _qHqegHoX.replace('__PAGE_DATA_JSON__', JSON.stringify(_NLLCepUE));
    _qHqegHoX = _qHqegHoX.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_tJGlzjey));
    _qHqegHoX = _qHqegHoX.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_qbXdWREh));
    _qHqegHoX = _qHqegHoX.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _qHqegHoX = _qHqegHoX.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_kGGssLfI));
    return new Response(_qHqegHoX, {
        _yQjrXpwp: { 'Content-Type': '_YCrAIJID/html;_EawAVbaq=UTF-8' },
    });
}

function _CjLwaJwU(_MrDZiVfn, status = 200, _yQjrXpwp = {}) {
    return new Response(JSON.stringify(_MrDZiVfn), {
        status,
        _yQjrXpwp: { 'Content-Type': 'application/json;_EawAVbaq=UTF-8', ..._yQjrXpwp }
    });
}

function _VxpXPAOE(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 _SMaCqjIx(_AgieWrkl) {
    if (!_AgieWrkl || typeof _AgieWrkl !== 'string') return "无效IP";
    if(_OLivloTz.isIPv4(_AgieWrkl)){
        const _XFeZAezC = _AgieWrkl.split('.');
        if (_XFeZAezC._regCSWJt === 4) return `${_XFeZAezC[0]}.*.*.${_XFeZAezC[3]}`;
    }
    if(_OLivloTz.isIPv6(_AgieWrkl)){
        const _XFeZAezC = _AgieWrkl.split(':');
        if (_XFeZAezC._regCSWJt > 2) return `${_XFeZAezC[0]}:...:${_XFeZAezC[_XFeZAezC._regCSWJt - 1]}`;
    }
    return _AgieWrkl;
}

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

function _XazgETkh() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _EawAVbaq="UTF-8"> <meta _JwxXuqIY="viewport" _ZJEnMkAF="_NcqERvgq=device-_NcqERvgq, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_loSsQjWt 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>
  <_aaZCucvc>
  :root { --primary-_RDyXZtAx: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_RDyXZtAx: #8c939d; --light-bg: #1A1C20; --_ZJEnMkAF-bg: #25282E; --border-_RDyXZtAx: #40444C; --_YCrAIJID-_RDyXZtAx: #E0E0E0; --_YCrAIJID-light: #B0B0B0; --success-_RDyXZtAx: #30A46C; --danger-_RDyXZtAx: #DA3633; --warning-_RDyXZtAx: #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; }
  _MrDZiVfn { font-family: var(--font-family-sans); background-_RDyXZtAx: var(--light-bg); _RDyXZtAx: var(--_YCrAIJID-_RDyXZtAx); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_RDyXZtAx 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_xbnceNoO { position: fixed; _yaSNQEpT: 0; _DMozjrcp: 0; _NcqERvgq: 100%; height: 100%; z-_MDphqmhw: -1; display: none; }
  ._VNNPTeDy-_doovPLBi { max-_NcqERvgq: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_MDphqmhw: 1; }
  #_PqaNsdeC { position: fixed; _yaSNQEpT: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_MDphqmhw: 10; }
  #marquee-_doovPLBi { overflow: hidden; white-space: nowrap; background-_RDyXZtAx: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _RDyXZtAx: var(--primary-_RDyXZtAx); padding: 0.5rem 0; margin-_yaSNQEpT: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_YCrAIJID { display: inline-block; padding-_DMozjrcp: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _ljwKEgQr { _YCrAIJID-align: center; margin-_yaSNQEpT: 1rem; margin-bottom: 2rem; }
  _ljwKEgQr h1 { white-space: pre-wrap; font-size: 2.25em; _RDyXZtAx: var(--primary-_RDyXZtAx); font-weight: 700; _YCrAIJID-shadow: 0 0 10px rgba(var(--primary-_RDyXZtAx-rgb), 0.3); }
  .card { background-_RDyXZtAx: 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-_RDyXZtAx); }
  .progress-section #_rmMmIMHB { _NcqERvgq: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_RDyXZtAx: var(--border-_RDyXZtAx); overflow: hidden; }
  .progress-section #_rmMmIMHB::-webkit-progress-_Usfwpmje { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _YCrAIJID-align: center; margin-_yaSNQEpT: 0.75em; font-size: 0.95em; _RDyXZtAx: var(--_YCrAIJID-light); min-height: 1.5em; }
  .section-_ljwKEgQr { display: flex; flex-wrap: wrap; justify-_ZJEnMkAF: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_RDyXZtAx); gap: 1rem; }
  .section-_ljwKEgQr h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _RDyXZtAx: var(--secondary-_RDyXZtAx); _YCrAIJID-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _NcqERvgq: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _NcqERvgq: 100%; border-collapse: collapse; margin-_yaSNQEpT: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_RDyXZtAx); padding: 0.8em; _YCrAIJID-align: _DMozjrcp; vertical-align: middle; white-space: nowrap; }
  th { background-_RDyXZtAx: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_RDyXZtAx: #30333a; }
  td._AgieWrkl-_FKHGpHni { font-weight: 500; font-family: var(--font-family-mono); _RDyXZtAx: var(--primary-_RDyXZtAx); }
  td.ping-_Usfwpmje { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _YCrAIJID-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_ZJEnMkAF: center; font-weight: 500; _YCrAIJID-align: center; cursor: pointer; user-_IbHezJue: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _RDyXZtAx: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_DMozjrcp: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _RDyXZtAx: var(--primary-_RDyXZtAx); border: 1px solid var(--primary-_RDyXZtAx); }
  .btn-outline:hover { background-_RDyXZtAx: var(--primary-_RDyXZtAx); _RDyXZtAx: var(--_ZJEnMkAF-bg); }
  ._VNNPTeDy-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._VNNPTeDy-download-buttons .btn { _NcqERvgq: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _yaSNQEpT: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _RDyXZtAx: #fff; font-size: 0.95em; z-_MDphqmhw: 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); }
  #_BoNWpOoJ, #_NxwvQyEB, #_mnLIylKR, #_qpcrfQHv, #_QrxuzVQa { display: none; position: fixed; z-_MDphqmhw: 10000; _DMozjrcp: 0; _yaSNQEpT: 0; _NcqERvgq: 100%; height: 100%; background-_RDyXZtAx: rgba(0,0,0,0.6); justify-_ZJEnMkAF: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_ZJEnMkAF, ._VNNPTeDy-modal-_ZJEnMkAF { background-_RDyXZtAx: var(--_ZJEnMkAF-bg); padding: 2rem; border: 1px solid var(--border-_RDyXZtAx); border-radius: var(--border-radius-md); _NcqERvgq: 95%; max-_NcqERvgq: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_qpcrfQHv .modal-_ZJEnMkAF { max-_NcqERvgq: 500px; }
  .modal-_ZJEnMkAF h3, ._VNNPTeDy-modal-_ljwKEgQr h3 { margin-_yaSNQEpT: 0; margin-bottom: 1.5rem; _RDyXZtAx: var(--primary-_RDyXZtAx); _YCrAIJID-align: center; }
  .modal-buttons { display: flex; justify-_ZJEnMkAF: flex-end; gap: 1rem; margin-_yaSNQEpT: 2rem; border-_yaSNQEpT: 1px solid var(--border-_RDyXZtAx); padding-_yaSNQEpT: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_RDyXZtAx), rgba(0,0,0,0)); margin: 2rem 0; }
  ._VNNPTeDy-modal-_ljwKEgQr { display: flex; justify-_ZJEnMkAF: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_RDyXZtAx); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _RDyXZtAx: var(--_YCrAIJID-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._VNNPTeDy-list-_DFMcZVkP { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_RDyXZtAx); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._VNNPTeDy-_JwxXuqIY { font-size: 1.1em; font-weight: 600; }
  ._VNNPTeDy-links a { display: block; _RDyXZtAx: var(--primary-_RDyXZtAx); _YCrAIJID-decoration: none; margin-_yaSNQEpT: 0.5rem; word-break: break-all; }
  ._VNNPTeDy-links a:hover { _YCrAIJID-decoration: underline; }
  ._VNNPTeDy-links span { _RDyXZtAx: var(--_YCrAIJID-light); }
  #visitorPasswordPrompt { _YCrAIJID-align: center; }
  #visitorPasswordPrompt h3 { _RDyXZtAx: var(--primary-_RDyXZtAx); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _RDyXZtAx: var(--_YCrAIJID-light); margin-bottom: 1.5rem; }
  ._FZEGENVl-input-group { display: flex; gap: 10px; max-_NcqERvgq: 400px; margin: 0 auto; }
  ._FZEGENVl-input-group input { flex-grow: 1; _YCrAIJID-align: center; }
  ._FZEGENVl-input-group .btn { margin-_DMozjrcp: 0; }
  ._IFpUHWkw-actions-_doovPLBi { _YCrAIJID-align: center; margin-bottom: 1.5rem; }
  ._IFpUHWkw-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._IFpUHWkw-api-buttons .btn { margin: 0; _NcqERvgq: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_ZJEnMkAF 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 _IbHezJue, .form-grid-control textarea { _NcqERvgq: 100%; background-_RDyXZtAx: var(--light-bg); border: 1px solid var(--border-_RDyXZtAx); border-radius: var(--border-radius-sm); _RDyXZtAx: var(--_YCrAIJID-_RDyXZtAx); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_RDyXZtAx 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _IbHezJue:focus, .form-grid-control textarea:focus { border-_RDyXZtAx: var(--primary-_RDyXZtAx); box-shadow: 0 0 0 2px rgba(var(--primary-_RDyXZtAx-rgb), 0.2); outline: none; }
  .form-grid-control input[_xPvZdivJ="_RDyXZtAx"] { min-_NcqERvgq: auto; padding: 2px; _NcqERvgq: 2.5em; height: 2.5em; }
  .form-grid-control input[_xPvZdivJ="checkbox"] { _NcqERvgq: auto; flex-shrink: 0; height: 1.2em; _NcqERvgq: 1.2em; }
  .form-grid-control ._OpJnflku-input { _NcqERvgq: 80px; _YCrAIJID-align: right; }
  .tooltip-_kxqjPoeB { display: inline-flex; _NcqERvgq: 16px; height: 16px; align-items: center; justify-_ZJEnMkAF: center; background-_RDyXZtAx: var(--secondary-_RDyXZtAx); _RDyXZtAx: var(--_ZJEnMkAF-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_IbHezJue: none; }
  #tooltip-popup { position: fixed; background-_RDyXZtAx: #383c4a; _RDyXZtAx: #fff; padding: 10px 15px; border-radius: 6px; z-_MDphqmhw: 10001; font-size: 0.85em; max-_NcqERvgq: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_RDyXZtAx); pointer-events: none; }
  #custom-fields-_doovPLBi .form-grid-control { gap: 5px; } #custom-fields-_doovPLBi .form-grid-control input { flex: 1; }
  .parameter-_JkozqCYA-_XdbWPnpC { border: 1px solid var(--border-_RDyXZtAx); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_JkozqCYA-_ljwKEgQr { display: flex; justify-_ZJEnMkAF: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_JkozqCYA-_ljwKEgQr input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_yaSNQEpT: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._YCrAIJID-_RDyXZtAx-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _NcqERvgq: 100%; }
  ._YCrAIJID-_RDyXZtAx-grid input[_xPvZdivJ="_RDyXZtAx"] { grid-column: 1 / 2; }
  ._YCrAIJID-_RDyXZtAx-grid input[_xPvZdivJ="_YCrAIJID"], ._YCrAIJID-_RDyXZtAx-grid textarea { grid-column: 2 / 3; }
  #_qpcrfQHv .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_qpcrfQHv .btn-group { display: flex; }
  #_qpcrfQHv .sub-btn { flex-grow: 1; margin: 0; }
  #_qpcrfQHv ._UdpXiNME-btn { flex-shrink: 0; margin-_DMozjrcp: -1px; border-_yaSNQEpT-_DMozjrcp-radius: 0; border-bottom-_DMozjrcp-radius: 0; }
  #_QrxuzVQa .modal-_ZJEnMkAF { max-_NcqERvgq: 300px; background: white; padding: 1rem; _YCrAIJID-align: center; }
  #qrCodeImg { max-_NcqERvgq: 100%; }
  @media (max-_NcqERvgq: 768px) {
    html { font-size: 15px; } ._VNNPTeDy-_doovPLBi { padding: 0 0.8rem; } _ljwKEgQr { margin-_yaSNQEpT: 2.5rem; margin-bottom: 1.5rem; } #_PqaNsdeC { _yaSNQEpT: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_aaZCucvc>
  <_aaZCucvc _vyCDLzmz="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_ZJEnMkAF-bg: #FFFFFF; --border-_RDyXZtAx: #DCDFE6; --_YCrAIJID-_RDyXZtAx: #303133; --_YCrAIJID-light: #606266; }
  .theme-light .card { background-_RDyXZtAx: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_RDyXZtAx: #F5F7FA; }
  .theme-light tbody tr:hover { background-_RDyXZtAx: #ECF5FF; }
  .theme-matrix { --primary-_RDyXZtAx: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_ZJEnMkAF-bg: #0D0208; --border-_RDyXZtAx: #00FF41; --_YCrAIJID-_RDyXZtAx: #00FF41; --_YCrAIJID-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_RDyXZtAx: rgba(0, 20, 0, 0.7); _YCrAIJID-shadow: 0 0 5px var(--primary-_RDyXZtAx); backdrop-filter: none; }
  .theme-matrix th { background-_RDyXZtAx: #000; }
  .theme-matrix tbody tr:hover { background-_RDyXZtAx: #010; }
  .theme-matrix .btn { _YCrAIJID-shadow: none; _RDyXZtAx: #000; }
  .theme-matrix .btn-outline { background-_RDyXZtAx: transparent; }
  .theme-modern-glass { --primary-_RDyXZtAx: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_ZJEnMkAF-bg: rgba(30, 30, 40, 0.6); --border-_RDyXZtAx: rgba(255, 255, 255, 0.2); --_YCrAIJID-_RDyXZtAx: #F0F0F0; --_YCrAIJID-light: #A0A0B0; --border-radius-md: 12px; }
  _MrDZiVfn.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-_RDyXZtAx: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_ZJEnMkAF-bg: rgba(30, 30, 40, 0.6); --border-_RDyXZtAx: rgba(255, 255, 255, 0.2); --_YCrAIJID-_RDyXZtAx: #F0F0F0; --_YCrAIJID-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_RDyXZtAx: var(--_ZJEnMkAF-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_RDyXZtAx); }
  .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-_RDyXZtAx: rgba(0,0,0,0.3); border-right-_RDyXZtAx: 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); _YCrAIJID-shadow: 0 1px 2px rgba(0,0,0,0.2); _RDyXZtAx: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_RDyXZtAx: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _YCrAIJID-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_RDyXZtAx); border-_RDyXZtAx: var(--primary-_RDyXZtAx); _RDyXZtAx: #fff; }
  .glassy-components _ljwKEgQr h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _YCrAIJID; -webkit-_YCrAIJID-fill-_RDyXZtAx: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _RDyXZtAx: transparent; }
  .theme-aurora-glass { --primary-_RDyXZtAx: #38bdf8; --light-bg: #0c0a09; --_ZJEnMkAF-bg: rgba(23, 23, 23, 0.5); --border-_RDyXZtAx: rgba(255, 255, 255, 0.15); --_YCrAIJID-_RDyXZtAx: #f2f2f2; --_YCrAIJID-light: #a3a3a3; }
  _MrDZiVfn.theme-aurora-glass::before { _ZJEnMkAF: ''; position: fixed; _yaSNQEpT: 0; _DMozjrcp: 0; _NcqERvgq: 100%; height: 100%; z-_MDphqmhw: -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-_RDyXZtAx: #08fdd8; --light-bg: #010409; --_ZJEnMkAF-bg: rgba(22, 27, 34, 0.6); --border-_RDyXZtAx: rgba(139, 148, 158, 0.3); --_YCrAIJID-_RDyXZtAx: #e6edf3; --_YCrAIJID-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_RDyXZtAx), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_RDyXZtAx-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_RDyXZtAx-rgb), 0.5); }
  .theme-marble-light { --primary-_RDyXZtAx: #bfa37c; --light-bg: #f7f5f2; --_ZJEnMkAF-bg: #ffffff; --border-_RDyXZtAx: #e0dcd5; --_YCrAIJID-_RDyXZtAx: #3d3a36; --_YCrAIJID-light: #6b6661; }
  _MrDZiVfn.theme-marble-light { background-image: _PYOnBbai('_CSdOdjvZ:image/svg+xml,%3Csvg _NcqERvgq="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-_RDyXZtAx: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_aaZCucvc>
  </head><_MrDZiVfn _vyCDLzmz="pageBody">
  <_xbnceNoO _vyCDLzmz="background-_xbnceNoO"></_xbnceNoO>
  <div _vyCDLzmz="_BoNWpOoJ">
      <div class="modal-_ZJEnMkAF">
          <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 _xPvZdivJ="_FZEGENVl" _vyCDLzmz="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _xPvZdivJ="_FZEGENVl" _vyCDLzmz="confirmPassword"></div></div>
          <div class="modal-buttons"><button _vyCDLzmz="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_VNNPTeDy-_doovPLBi">
    <button _vyCDLzmz="_PqaNsdeC" class="btn btn-outline"></button>
    <div _vyCDLzmz="marquee-_doovPLBi"><div _vyCDLzmz="marquee-_YCrAIJID"></div></div>
    <_ljwKEgQr><h1 _vyCDLzmz="pageTitle"></h1></_ljwKEgQr>
    <div class="card" _vyCDLzmz="visitorPasswordPrompt" _aaZCucvc="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_FZEGENVl-input-group">
            <input _xPvZdivJ="_FZEGENVl" _vyCDLzmz="visitorPasswordEntry" _fXxbiGSf="访客密码">
            <button _vyCDLzmz="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _vyCDLzmz="_IjhKaGBb" _aaZCucvc="display: block;">
        <div class="card progress-section">
            <div _vyCDLzmz="progressDisplay">
                <progress _vyCDLzmz="_rmMmIMHB" _Usfwpmje="0" max="100"></progress>
                <div _vyCDLzmz="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _VNNPTeDy-download-section">
          <div class="section-_ljwKEgQr"><h2 _vyCDLzmz="appDownloadTitleEl"></h2></div>
          <div class="_VNNPTeDy-download-buttons">
            <button class="btn" _CSdOdjvZ-_FJUTkOfP="android">安卓客户端</button>
            <button class="btn" _CSdOdjvZ-_FJUTkOfP="ios">苹果客户端</button>
            <button class="btn" _CSdOdjvZ-_FJUTkOfP="windows">Windows客户端</button>
            <button class="btn" _CSdOdjvZ-_FJUTkOfP="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _IFpUHWkw-section" _vyCDLzmz="_igBZAXcG" _aaZCucvc="display:none;">
          <div class="section-_ljwKEgQr">
            <h2 _vyCDLzmz="liveTitleEl"></h2>
            <div class="generator-info" _vyCDLzmz="liveGeneratorInfo"></div>
          </div>
          <div _vyCDLzmz="_FULzfAJE" class="_IFpUHWkw-actions-_doovPLBi" _aaZCucvc="display: none;">
             <div class="_IFpUHWkw-api-buttons">
                <button _vyCDLzmz="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _vyCDLzmz="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _vyCDLzmz="resultsTable">
              <thead><tr><th _vyCDLzmz="tableHeader1El"></th><th _vyCDLzmz="tableHeader2El"></th><th _vyCDLzmz="tableHeader3El"></th><th _vyCDLzmz="tableHeader4El"></th><th _vyCDLzmz="tableHeader5El"></th><th _vyCDLzmz="tableHeader6El"></th><th _vyCDLzmz="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _vyCDLzmz="_jFdsHvjn" _aaZCucvc="display:none;">
          <div class="section-_ljwKEgQr"><h2 _vyCDLzmz="cachedTitleEl"></h2><div class="generator-info" _vyCDLzmz="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _vyCDLzmz="cachedResultsTable">
              <thead><tr><th _vyCDLzmz="cachedTableHeader1El"></th><th _vyCDLzmz="cachedTableHeader2El"></th><th _vyCDLzmz="cachedTableHeader3El"></th><th _vyCDLzmz="cachedTableHeader4El"></th><th _vyCDLzmz="cachedTableHeader5El"></th><th _vyCDLzmz="cachedTableHeader6El"></th><th _vyCDLzmz="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _vyCDLzmz="notificationTooltip" class="tooltip-notification"></div>
  <div _vyCDLzmz="_NxwvQyEB">
    <div class="modal-_ZJEnMkAF">
      <h3>修改参数</h3>
      <div _aaZCucvc="display: flex; border-bottom: 1px solid var(--border-_RDyXZtAx); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_tgUOKuNA(event, 'general-_MejHACEv')">通用设置</button>
          <button class="tab-button" onclick="_tgUOKuNA(event, '_loSsQjWt-_MejHACEv')">链接设置</button>
          <button class="tab-button" onclick="_tgUOKuNA(event, 'fine-grained-_MejHACEv')">IP源设置</button>
          <button class="tab-button" onclick="_tgUOKuNA(event, 'advanced-_MejHACEv')">高级设置</button>
      </div>
      <div _vyCDLzmz="general-_MejHACEv" class="tab-_ZJEnMkAF" _aaZCucvc="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_IbHezJue _vyCDLzmz="themeSelect">
                    <_VRYGnicq _Usfwpmje="theme-aurora-glass">极光-玻璃质感</_VRYGnicq>
                    <_VRYGnicq _Usfwpmje="theme-particles-glass">粒子-玻璃质感</_VRYGnicq>
                    <_VRYGnicq _Usfwpmje="theme-modern-glass">现代-玻璃质感</_VRYGnicq>
                    <_VRYGnicq _Usfwpmje="theme-cyberpunk-glass">赛博朋克-玻璃质感</_VRYGnicq>
                    <_VRYGnicq _Usfwpmje="theme-dark-particles">暗色-粒子背景</_VRYGnicq>
                    <_VRYGnicq _Usfwpmje="theme-dark-bing">暗色-必应壁纸</_VRYGnicq>
                    <_VRYGnicq _Usfwpmje="theme-light">亮色-简约</_VRYGnicq>
                    <_VRYGnicq _Usfwpmje="theme-light-bing">亮色-必应壁纸</_VRYGnicq>
                    <_VRYGnicq _Usfwpmje="theme-marble-light">简约大理石-亮色</_VRYGnicq>
                    <_VRYGnicq _Usfwpmje="theme-matrix">矩阵-代码雨</_VRYGnicq>
                </_IbHezJue>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _xPvZdivJ="_RDyXZtAx" _vyCDLzmz="primaryColorInput">
                <span _aaZCucvc="_NcqERvgq: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _xPvZdivJ="_RDyXZtAx" _vyCDLzmz="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _aaZCucvc="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _aaZCucvc="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_YCrAIJID-_RDyXZtAx-grid"><input _xPvZdivJ="_RDyXZtAx" _vyCDLzmz="colorInput_title"><textarea _vyCDLzmz="textInput_title" _fAzUxQFi="1" _fXxbiGSf="页面主标题"></textarea></div>
                <div class="_YCrAIJID-_RDyXZtAx-grid"><input _xPvZdivJ="_RDyXZtAx" _vyCDLzmz="colorInput_loginButton"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="textInput_loginButton" _fXxbiGSf="登录按钮文本"></div>
                <div class="_YCrAIJID-_RDyXZtAx-grid"><input _xPvZdivJ="_RDyXZtAx" _vyCDLzmz="colorInput_appDownloadTitle"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="textInput_appDownloadTitle" _fXxbiGSf="APP下载标题"></div>
                <div class="_YCrAIJID-_RDyXZtAx-grid"><input _xPvZdivJ="_RDyXZtAx" _vyCDLzmz="colorInput_liveTitle"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="textInput_liveTitle" _fXxbiGSf="本次结果标题"></div>
                <div class="_YCrAIJID-_RDyXZtAx-grid"><input _xPvZdivJ="_RDyXZtAx" _vyCDLzmz="colorInput_cachedTitle"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="textInput_cachedTitle" _fXxbiGSf="上次结果标题"></div>
                <div class="_YCrAIJID-_RDyXZtAx-grid"><input _xPvZdivJ="_RDyXZtAx" _vyCDLzmz="colorInput_tableHeader"><input _xPvZdivJ="_YCrAIJID" _Usfwpmje="表格头部文本颜色" readonly _aaZCucvc="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _aaZCucvc="align-self: start;"><label>公告栏设置</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _aaZCucvc="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _vyCDLzmz="announcementText" _fXxbiGSf="在此输入公告内容" _fAzUxQFi="3"></textarea>
                 <div _aaZCucvc="display: flex; justify-_ZJEnMkAF: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _aaZCucvc="display: flex; align-items: center; gap: 5px;"><input _xPvZdivJ="checkbox" _vyCDLzmz="enableMarquee"> 顶部走马灯</label>
                    <label _aaZCucvc="display: flex; align-items: center; gap: 5px;"><input _xPvZdivJ="checkbox" _vyCDLzmz="enablePopup"> 右上角弹窗</label>
                    <div _vyCDLzmz="popupDurationContainer" _aaZCucvc="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _xPvZdivJ="number" _vyCDLzmz="popupDuration" _aaZCucvc="_NcqERvgq: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _vyCDLzmz="_loSsQjWt-_MejHACEv" class="tab-_ZJEnMkAF">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="converterServiceUrlInput" _fXxbiGSf="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _xPvZdivJ="number" _vyCDLzmz="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _aaZCucvc="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _vyCDLzmz="subscriptionIdCharset" _fAzUxQFi="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-_kxqjPoeB" _CSdOdjvZ-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _aaZCucvc="justify-_ZJEnMkAF: flex-start;"><input _xPvZdivJ="checkbox" _vyCDLzmz="enableItemLinkCheckbox"></div>
        </div>
        <div _vyCDLzmz="itemLinkConfigGroup" _aaZCucvc="display:none; margin-_yaSNQEpT: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _aaZCucvc="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="定义分享链接格式。可用占位符: {_AgieWrkl}, {_pmLpSxmu}, {_JwxXuqIY}, {rank}, {_kelSKWed}, {_AnRptgfe}, {_aQoircUW}, {_cffotcQX}, {_FCkFHQxR}。">?</span></div>
              <div class="form-grid-control"><textarea _vyCDLzmz="itemLinkTemplateInput" _fAzUxQFi="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_IbHezJue _vyCDLzmz="parameterSelectionMode"></_IbHezJue></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _vyCDLzmz="parameter-sets-_doovPLBi"></div><button _xPvZdivJ="button" _vyCDLzmz="add-parameter-_JkozqCYA-btn" class="btn btn-outline" _aaZCucvc="margin-_yaSNQEpT: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _aaZCucvc="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _vyCDLzmz="custom-fields-_doovPLBi" _aaZCucvc="_NcqERvgq: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _aaZCucvc="justify-_ZJEnMkAF: flex-start;"><button _xPvZdivJ="button" _vyCDLzmz="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _vyCDLzmz="fine-grained-_MejHACEv" class="tab-_ZJEnMkAF">
          <div class="form-grid-label" _aaZCucvc="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _aaZCucvc="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_ZJEnMkAF: flex-start;">
              <label><input _xPvZdivJ="checkbox" _vyCDLzmz="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _xPvZdivJ="checkbox" _vyCDLzmz="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _vyCDLzmz="fine-grained-sources-_doovPLBi"></div><button _xPvZdivJ="button" _vyCDLzmz="add-fine-grained-_sXtvWgEm-btn" class="btn btn-outline" _aaZCucvc="margin-_yaSNQEpT: 10px;">添加地区</button></div>
      </div>
      <div _vyCDLzmz="advanced-_MejHACEv" class="tab-_ZJEnMkAF">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _xPvZdivJ="checkbox" _vyCDLzmz="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _vyCDLzmz="resolvedDomainsGroup" _aaZCucvc="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _vyCDLzmz="resolvedDomainsInput" _fXxbiGSf="留空则使用内置默认域名" _fAzUxQFi="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-_kxqjPoeB" _CSdOdjvZ-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _xPvZdivJ="checkbox" _vyCDLzmz="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _vyCDLzmz="customNodesGroup" _aaZCucvc="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _vyCDLzmz="customNodesInput" _fXxbiGSf="一行一个地址,支持域名、IPv4、IPv6。" _fAzUxQFi="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-_kxqjPoeB" _CSdOdjvZ-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _xPvZdivJ="number" _vyCDLzmz="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _xPvZdivJ="number" _vyCDLzmz="topNInput"></div>
            <div class="form-grid-label" _aaZCucvc="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _aaZCucvc="display: none;"><input _xPvZdivJ="number" _vyCDLzmz="latencyRangeMinInput" _fXxbiGSf="最小"><span>-</span><input _xPvZdivJ="number" _vyCDLzmz="latencyRangeMaxInput" _fXxbiGSf="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _aaZCucvc="justify-_ZJEnMkAF: flex-start;"><input _xPvZdivJ="checkbox" _vyCDLzmz="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-_kxqjPoeB" _CSdOdjvZ-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _xPvZdivJ="number" _vyCDLzmz="geoLocationRetriesInput" _aaZCucvc="_NcqERvgq: 80px;"> <span>次</span>
                <div _aaZCucvc="display: flex; align-items: center; gap: 5px; margin-_DMozjrcp: 20px;">
                    <input _xPvZdivJ="checkbox" _vyCDLzmz="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-_kxqjPoeB" _CSdOdjvZ-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_aQoircUW:_pmLpSxmu' 或 '_aQoircUW'。">?</span></div>
            <div class="form-grid-control"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="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-_kxqjPoeB" _CSdOdjvZ-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _aaZCucvc="justify-_ZJEnMkAF: flex-start;"><input _xPvZdivJ="checkbox" _vyCDLzmz="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _vyCDLzmz="websocketStreamerGroup" _aaZCucvc="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="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-_kxqjPoeB" _CSdOdjvZ-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _aaZCucvc="justify-_ZJEnMkAF: flex-start;"><input _xPvZdivJ="checkbox" _vyCDLzmz="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="启用 /_AgieWrkl 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _aaZCucvc="justify-_ZJEnMkAF: flex-start;"><input _xPvZdivJ="checkbox" _vyCDLzmz="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _vyCDLzmz="apiConfigGroup" _aaZCucvc="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="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-_kxqjPoeB" _CSdOdjvZ-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _aaZCucvc="justify-_ZJEnMkAF: flex-start;"><input _xPvZdivJ="checkbox" _vyCDLzmz="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _vyCDLzmz="customSubPathGroup" _aaZCucvc="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="customSubPathInput" _fXxbiGSf="例如: 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-_kxqjPoeB" _CSdOdjvZ-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _aaZCucvc="justify-_ZJEnMkAF: flex-start;"><input _xPvZdivJ="checkbox" _vyCDLzmz="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _vyCDLzmz="visitorPasswordGroup" _aaZCucvc="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _aaZCucvc="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_kxqjPoeB" _CSdOdjvZ-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _aaZCucvc="flex-direction: column; align-items: stretch; gap: 8px;"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="botTokenInput" _fXxbiGSf="Telegram Bot Token"><input _xPvZdivJ="_YCrAIJID" _vyCDLzmz="chatIdInput" _fXxbiGSf="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _aaZCucvc="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _aaZCucvc="flex-direction: column; align-items: stretch; gap: 8px;"><input _xPvZdivJ="_FZEGENVl" _vyCDLzmz="oldPasswordInput" _fXxbiGSf="旧密码"><input _xPvZdivJ="_FZEGENVl" _vyCDLzmz="newPasswordInput" _fXxbiGSf="新密码 (至少6位)"><button _vyCDLzmz="changePasswordBtn" class="btn" _aaZCucvc="align-self: flex-start; margin-_DMozjrcp: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _vyCDLzmz="closeModalBtn" class="btn btn-outline">关闭</button><button _vyCDLzmz="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _vyCDLzmz="_mnLIylKR">
      <div class="_VNNPTeDy-modal-_ZJEnMkAF">
          <div class="_VNNPTeDy-modal-_ljwKEgQr"><h3 _vyCDLzmz="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_VNNPTeDy-modal-_MrDZiVfn" _vyCDLzmz="appModalBody"></div>
      </div>
  </div>
  <div _vyCDLzmz="_qpcrfQHv">
      <div class="modal-_ZJEnMkAF">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _CSdOdjvZ-sub-_xPvZdivJ="coreEngine">Xray</button><button class="btn _UdpXiNME-btn" _CSdOdjvZ-sub-_xPvZdivJ="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _CSdOdjvZ-sub-_xPvZdivJ="coreProfile">Sing-Box</button><button class="btn _UdpXiNME-btn" _CSdOdjvZ-sub-_xPvZdivJ="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _CSdOdjvZ-sub-_xPvZdivJ="configProfile">Clash</button><button class="btn _UdpXiNME-btn" _CSdOdjvZ-sub-_xPvZdivJ="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _CSdOdjvZ-sub-_xPvZdivJ="policyProfile">Surge</button><button class="btn _UdpXiNME-btn" _CSdOdjvZ-sub-_xPvZdivJ="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _aaZCucvc="justify-_ZJEnMkAF: center;"><button class="btn btn-outline" _vyCDLzmz="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _vyCDLzmz="_QrxuzVQa">
      <div class="modal-_ZJEnMkAF">
          <img _vyCDLzmz="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _OLivloTz = {
        isValid: (_AgieWrkl) => _OLivloTz.isIPv4(_AgieWrkl) || _OLivloTz.isIPv6(_AgieWrkl),
        isIPv4: (_AgieWrkl) => {
            if (typeof _AgieWrkl !== 'string') return false;
            const _XFeZAezC = _AgieWrkl.split('.');
            if (_XFeZAezC._regCSWJt !== 4) return false;
            return _XFeZAezC.every(_zdeYZmfe => {
                const _IhfjQPvZ = parseInt(_zdeYZmfe, 10);
                return !isNaN(_IhfjQPvZ) && _IhfjQPvZ >= 0 && _IhfjQPvZ <= 255 && String(_IhfjQPvZ) === _zdeYZmfe;
            });
        },
        isIPv6: (_AgieWrkl) => {
            if (typeof _AgieWrkl !== '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]))$/_GbPryFSW.test(_AgieWrkl);
        },
        toLong4: (_AgieWrkl) => _AgieWrkl.split('.').reduce((acc, octet, _GbPryFSW) => acc + (parseInt(octet) << (8*(3-_GbPryFSW))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_AgieWrkl) => {
            try {
                const _IPuHsEbr = _AgieWrkl.split('/')[0];
                const _XFeZAezC = _IPuHsEbr.split('::');
                if (_XFeZAezC._regCSWJt > 2) return 0n;
                let _aZeMAcAL = [];
                if (_XFeZAezC[0]) {
                    _aZeMAcAL = _XFeZAezC[0].split(':');
                }
                let _kquyVQSc = [];
                if (_XFeZAezC._regCSWJt > 1 && _XFeZAezC[1]) {
                    _kquyVQSc = _XFeZAezC[1].split(':');
                }
                if (_aZeMAcAL._regCSWJt + _kquyVQSc._regCSWJt > 8) return 0n;
                const _FFAURWnK = 8 - (_aZeMAcAL._regCSWJt + _kquyVQSc._regCSWJt);
                const _YWLOKSDA = [
                    ..._aZeMAcAL,
                    ...Array(_FFAURWnK).fill('0'),
                    ..._kquyVQSc
                ].map(_zdeYZmfe => _zdeYZmfe || '0');
                while(_YWLOKSDA._regCSWJt < 8) {
                    _YWLOKSDA.push('0');
                }
                let _ogtypyUJ = 0n;
                for (const _zdeYZmfe of _YWLOKSDA) {
                    if (_zdeYZmfe._regCSWJt > 4) return 0n;
                    const _Usfwpmje = BigInt('0x' + _zdeYZmfe);
                    _ogtypyUJ = (_ogtypyUJ << 16n) | _Usfwpmje;
                }
                return _ogtypyUJ;
            } catch(_JtcEkBov) {
                return 0n;
            }
        },
        fromBigInt6: (_ogtypyUJ) => {
            if (typeof _ogtypyUJ !== '_ogtypyUJ' || _ogtypyUJ < 0n) return null;
            const _XFeZAezC = [];
            for (let _GbPryFSW = 0; _GbPryFSW < 8; _GbPryFSW++) {
                _XFeZAezC.unshift((_ogtypyUJ & 0xFFFFn).toString(16));
                _ogtypyUJ >>= 16n;
            }
            let _ixeUsjAT = { start: -1, _xFzSfqqf: 0 };
            let _CfDMVuqM = { start: -1, _xFzSfqqf: 0 };
            for (let _GbPryFSW = 0; _GbPryFSW < 8; _GbPryFSW++) {
                if (_XFeZAezC[_GbPryFSW] === '0') {
                    if (_CfDMVuqM.start === -1) _CfDMVuqM.start = _GbPryFSW;
                    _CfDMVuqM._xFzSfqqf++;
                } else {
                    if (_CfDMVuqM._xFzSfqqf > _ixeUsjAT._xFzSfqqf) _ixeUsjAT = { ..._CfDMVuqM };
                    _CfDMVuqM = { start: -1, _xFzSfqqf: 0 };
                }
            }
            if (_CfDMVuqM._xFzSfqqf > _ixeUsjAT._xFzSfqqf) _ixeUsjAT = { ..._CfDMVuqM };
            if (_ixeUsjAT._xFzSfqqf > 1) {
                _XFeZAezC.splice(_ixeUsjAT.start, _ixeUsjAT._xFzSfqqf, '');
                if (_ixeUsjAT.start === 0) _XFeZAezC.unshift('');
                if (_ixeUsjAT.start + _ixeUsjAT._xFzSfqqf === 8) _XFeZAezC.push('');
            }
            return _XFeZAezC.join(':');
        },
        cidrToRange: (cidr, _yyYyUBuI = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _CcmRvgfp = parseInt(bitsStr, 10);
                const _wxpYrLiQ = new Set();
                if (_OLivloTz.isIPv4(range)) {
                    if (isNaN(_CcmRvgfp) || _CcmRvgfp < 8 || _CcmRvgfp > 32) return [];
                    if (_CcmRvgfp === 32) return [range];
                    const _wIhVtGzh = _OLivloTz.toLong4(range);
                    const _gPaTqAnC = (0xFFFFFFFF << (32 - _CcmRvgfp)) >>> 0;
                    const _ahJGzqXJ = _wIhVtGzh & _gPaTqAnC;
                    const _eCBmWXDD = 1 << (32 - _CcmRvgfp);
                    if (_eCBmWXDD <= 2) return [];
                    const _gzHosXhb = Math.min(_yyYyUBuI, _eCBmWXDD - 2);
                    let _ktkspscT = 0;
                    while (_wxpYrLiQ.size < _gzHosXhb && _ktkspscT < _gzHosXhb * 5) {
                        const _SIUDuuEt = Math.floor(Math.random() * (_eCBmWXDD - 2)) + 1;
                        _wxpYrLiQ.add(_OLivloTz.fromLong4((_ahJGzqXJ + _SIUDuuEt) >>> 0));
                        _ktkspscT++;
                    }
                    return Array.from(_wxpYrLiQ);
                } else if (_OLivloTz.isIPv6(range)) {
                    if (isNaN(_CcmRvgfp) || _CcmRvgfp < 16 || _CcmRvgfp > 128) return [];
                    if (_CcmRvgfp === 128) return [range];
                    const _NhTPWQAP = _OLivloTz.toBigInt6(range);
                    const _gPaTqAnC = (2n ** BigInt(128 - _CcmRvgfp) - 1n);
                    const _ahJGzqXJ = _NhTPWQAP & ~_gPaTqAnC;
                    const _lLCjBihq = 2n ** BigInt(128 - _CcmRvgfp);
                    if (_lLCjBihq <= 2n) return [];
                    let _ktkspscT = 0;
                    while (_wxpYrLiQ.size < _yyYyUBuI && _ktkspscT < _yyYyUBuI * 5) {
                        const _RaEIXnfs = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_RaEIXnfs);
                        let _zPfzlRjU = 0n;
                        for (const _NKOMIhyz of _RaEIXnfs) {
                            _zPfzlRjU = (_zPfzlRjU << 8n) | BigInt(_NKOMIhyz);
                        }
                        const _SIUDuuEt = _zPfzlRjU % (_lLCjBihq - 2n) + 1n;
                        _wxpYrLiQ.add(_OLivloTz.fromBigInt6(_ahJGzqXJ + _SIUDuuEt));
                        _ktkspscT++;
                    }
                    return Array.from(_wxpYrLiQ);
                }
                return [];
            } catch(_JtcEkBov) {
                console.error(`CIDR to range failed for ${cidr}:`, _JtcEkBov);
                return [];
            }
        }
    };
    function _FVEKtRLV(_bsJhgFOE, _TZnITLNs) {
        const _GuwdHkpz = {};
        const _gvoOMODP = Object._gvoOMODP(_TZnITLNs);
        const _XFeZAezC = _gvoOMODP.map(_ncvTMzJn => {
            const _ltDAswgL = _bsJhgFOE * (_TZnITLNs[_ncvTMzJn] / 100);
            return { _ncvTMzJn, _yyYyUBuI: Math.floor(_ltDAswgL), remainder: _ltDAswgL - Math.floor(_ltDAswgL) };
        });
        let _ovTWCPaH = _XFeZAezC.reduce((acc, _zdeYZmfe) => acc + _zdeYZmfe._yyYyUBuI, 0);
        _XFeZAezC.sort((a, b) => b.remainder - a.remainder);
        let _INsmhXIB = _bsJhgFOE - _ovTWCPaH;
        for (let _GbPryFSW = 0; _GbPryFSW < _INsmhXIB; _GbPryFSW++) {
            _XFeZAezC[_GbPryFSW % _XFeZAezC._regCSWJt]._yyYyUBuI++;
        }
        for (const _zdeYZmfe of _XFeZAezC) {
            _GuwdHkpz[_zdeYZmfe._ncvTMzJn] = _zdeYZmfe._yyYyUBuI;
        }
        return _GuwdHkpz;
    }
    const _NLLCepUE = __PAGE_DATA_JSON__;
    const _eLbwEiiw = _NLLCepUE._hsVGvwHc;
    const _enJoJBLr = _NLLCepUE.status;
    const _tJGlzjey = __ALL_CF_CIDR_LIST_JSON__;
    const _qbXdWREh = __BALANCED_CF_CIDR_LIST_JSON__;
    const _krVyzEDs = __DEFAULT_DOMAINS_LIST_JSON__;
    const _kGGssLfI = __COUNTRY_MAP_JSON__;
    const _zQXqPICB = _kGGssLfI;
    const _DcHyjeIH = 2500;
    const _EESPaQVV = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _IjhKaGBb = document.getElementById('_IjhKaGBb');
    const _rmMmIMHB = document.getElementById('_rmMmIMHB');
    const _bqbdFWRG = document.getElementById('status');
    const _igBZAXcG = document.getElementById('_igBZAXcG');
    const _HjPEohMR = document.getElementById('resultsTable').querySelector('tbody');
    const _jFdsHvjn = document.getElementById('_jFdsHvjn');
    const _xZViMQDk = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _ijhsQDEP = document.getElementById('notificationTooltip');
    const _PqaNsdeC = document.getElementById('_PqaNsdeC');
    const _NxwvQyEB = document.getElementById('_NxwvQyEB');
    const _mnLIylKR = document.getElementById('_mnLIylKR');
    const _qpcrfQHv = document.getElementById('_qpcrfQHv');
    const _QrxuzVQa = document.getElementById('_QrxuzVQa');
    const _BoNWpOoJ = document.getElementById('_BoNWpOoJ');
    const _FULzfAJE = document.getElementById('_FULzfAJE');
    let _GvxmsHsV = null;
    let _bQtZPEZQ = null;
    let _eajBrRIZ = [];
    let _IvAsEQVA = false;
    let _BWqGIZJU = null;
    function _liWandmE(_yPQzApZE, _GdQAbTFl) {
        const _tRTBmQUS=parseInt(_yPQzApZE.slice(1),16),t=_GdQAbTFl<0?0:255,p=_GdQAbTFl<0?_GdQAbTFl*-1:_GdQAbTFl,R=_tRTBmQUS>>16,G=_tRTBmQUS>>8&0x00FF,B=_tRTBmQUS&0x0000FF;
        const _pJOZoiGx = Math.round((t-R)*p)+R;
        const _ySfcsCwW = Math.round((t-G)*p)+G;
        const _ZUbqfBHo = Math.round((t-B)*p)+B;
        return `rgb(${_pJOZoiGx.toString()}, ${_ySfcsCwW.toString()}, ${_ZUbqfBHo.toString()})`;
    }
    function _JDatUZBI(_MejHACEv) {
        const _wxDmbfYX = _EQASnNjV(_MejHACEv.primaryColor);
        if(_wxDmbfYX) {
            document.documentElement._aaZCucvc.setProperty('--primary-_RDyXZtAx-rgb', `${_wxDmbfYX.r},${_wxDmbfYX.g},${_wxDmbfYX.b}`);
        }
        document.documentElement._aaZCucvc.setProperty('--primary-_RDyXZtAx', _MejHACEv.primaryColor);
        document.documentElement._aaZCucvc.setProperty('--primary-hover', _liWandmE(_MejHACEv.primaryColor, -0.1));
        document.documentElement._aaZCucvc.setProperty('--primary-gradient-start', _liWandmE(_MejHACEv.primaryColor, 0.1));
        document.documentElement._aaZCucvc.setProperty('--primary-gradient-end', _liWandmE(_MejHACEv.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _MejHACEv.texts.title;
        document.title = _MejHACEv.texts.title;
        _PqaNsdeC.innerText = _GvxmsHsV ? _MejHACEv.texts.loginButtonSuccess : _MejHACEv.texts.loginButton;
        _PqaNsdeC._aaZCucvc._RDyXZtAx = _MejHACEv.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _MejHACEv.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _MejHACEv.texts.liveTitle;
        document.getElementById('liveTitleEl')._aaZCucvc._RDyXZtAx = _MejHACEv.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _MejHACEv.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._aaZCucvc._RDyXZtAx = _MejHACEv.colors.cachedTitle;
        const _yQjrXpwp = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _yQjrXpwp.forEach((_vyCDLzmz, _MDphqmhw) => {
            const _EdLXZEvp = document.getElementById(_vyCDLzmz);
            if (_EdLXZEvp) _EdLXZEvp.innerText = _MejHACEv.texts[`tableHeader${_MDphqmhw + 1}`] || '';
        });
        const _asHMenlf = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _asHMenlf.forEach((_vyCDLzmz, _MDphqmhw) => {
             const _EdLXZEvp = document.getElementById(_vyCDLzmz);
             if (_EdLXZEvp) _EdLXZEvp.innerText = _eLbwEiiw.texts[`tableHeader${_MDphqmhw + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._aaZCucvc._RDyXZtAx = _MejHACEv.colors.tableHeader);
        document._MrDZiVfn.className = '';
        document._MrDZiVfn.classList.add(_MejHACEv.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_MejHACEv.theme)) {
            document._MrDZiVfn.classList.add('glassy-components');
        }
        document._MrDZiVfn._aaZCucvc.backgroundImage = '';
        _XeyWDHsD();
        if (_MejHACEv.theme.includes('particles') || _MejHACEv.theme.includes('glass')) {
            _RfzMmQDu(_MejHACEv.particleColor);
        } else if (_MejHACEv.theme.includes('bing')) {
            document._MrDZiVfn._aaZCucvc.backgroundImage = '_PYOnBbai(/bing-wallpaper)';
        }
    }
    function _KWtCFWvS() {
        _GvxmsHsV = null;
        if(_bQtZPEZQ) clearTimeout(_bQtZPEZQ);
        _JDatUZBI(_eLbwEiiw);
        _syTzSlpE("登录已超时,请重新登录。", "warning");
    }
    async function _fRkNlXQo() {
        if (_GvxmsHsV) {
            _rcSUjZnK();
            return;
        }
        const _xopbvGUW = prompt('请输入管理员密码:');
        if (!_xopbvGUW) return;
        try {
            const _FGcexIUv = await fetch('/api/verify-_FZEGENVl', {
                method: 'POST',
                _yQjrXpwp: { 'Content-Type': 'application/json' },
                _MrDZiVfn: JSON.stringify({ _FZEGENVl: _xopbvGUW })
            });
            const _bURsSTDL = await _FGcexIUv.json();
            if (_bURsSTDL.success) {
                _GvxmsHsV = _xopbvGUW;
                _syTzSlpE("登录成功!有效期5分钟。", "success");
                if (_bQtZPEZQ) clearTimeout(_bQtZPEZQ);
                _bQtZPEZQ = setTimeout(_KWtCFWvS, 5 * 60 * 1000);
                _JDatUZBI(_eLbwEiiw);
                _rcSUjZnK();
            } else {
                throw new Error(_bURsSTDL._XrcYeiCq || '密码验证失败');
            }
        } catch (_JtcEkBov) {
            _syTzSlpE(`登录失败: ${_JtcEkBov._XrcYeiCq}`, "error");
        }
    }
    function _jJJzLbgQ() {
        if (!_enJoJBLr._sGPjpqIh) {
            _BoNWpOoJ._aaZCucvc.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _FZEGENVl = document.getElementById('initialPassword')._Usfwpmje;
                const _pUlbWvbr = document.getElementById('confirmPassword')._Usfwpmje;
                if (_FZEGENVl !== _pUlbWvbr) {
                    _syTzSlpE("两次输入的密码不一致!", "error");
                    return;
                }
                if (_FZEGENVl._regCSWJt < 6) {
                    _syTzSlpE("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _FGcexIUv = await fetch('/api/_JkozqCYA-_FZEGENVl', {
                        method: 'POST',
                        _yQjrXpwp: { 'Content-Type': 'application/json' },
                        _MrDZiVfn: JSON.stringify({ _FZEGENVl })
                    });
                    const _bURsSTDL = await _FGcexIUv.json();
                    if (_bURsSTDL.success) {
                        _syTzSlpE(_bURsSTDL._XrcYeiCq, "success");
                        setTimeout(() => _kelSKWed.reload(), 1500);
                    } else {
                        throw new Error(_bURsSTDL._XrcYeiCq);
                    }
                } catch(_JtcEkBov) {
                    _syTzSlpE(`设置密码失败: ${_JtcEkBov._XrcYeiCq}`, "error");
                }
            });
            return;
        }
        _PqaNsdeC.addEventListener('click', _fRkNlXQo);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _NxwvQyEB._aaZCucvc.display = 'none'; });
        _NxwvQyEB.addEventListener('click', (_JtcEkBov) => { if (_JtcEkBov.target === _NxwvQyEB) _NxwvQyEB._aaZCucvc.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_doovPLBi .fine-grained-_LQIfRYbE-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-_doovPLBi .fine-grained-_LQIfRYbE-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_GvxmsHsV) {
                _syTzSlpE("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _bxRVVoMU = [];
            document.querySelectorAll('#custom-fields-_doovPLBi .custom-field-_XdbWPnpC').forEach(_XdbWPnpC => {
                const _JwxXuqIY = _XdbWPnpC.querySelector('.custom-field-_JwxXuqIY')._Usfwpmje.trim();
                const _Usfwpmje = _XdbWPnpC.querySelector('.custom-field-_Usfwpmje')._Usfwpmje.trim();
                if (_JwxXuqIY) _bxRVVoMU.push({ _JwxXuqIY, _Usfwpmje });
            });
            const _nzeMUHOv = [];
            document.querySelectorAll('#parameter-sets-_doovPLBi .parameter-_JkozqCYA-_XdbWPnpC').forEach(_XdbWPnpC => {
                const _JwxXuqIY = _XdbWPnpC.querySelector('.param-_JkozqCYA-_JwxXuqIY')._Usfwpmje.trim();
                const _aQoircUW = _XdbWPnpC.querySelector('.param-_JkozqCYA-_aQoircUW')._Usfwpmje.trim();
                const _cffotcQX = _XdbWPnpC.querySelector('.param-_JkozqCYA-_cffotcQX')._Usfwpmje.trim();
                const _FCkFHQxR = _XdbWPnpC.querySelector('.param-_JkozqCYA-_FCkFHQxR')._Usfwpmje.trim();
                if(_JwxXuqIY) _nzeMUHOv.push({ _JwxXuqIY, _aQoircUW, '_cffotcQX': _cffotcQX, _FCkFHQxR });
            });
            const _seBaXbhY = [];
            document.querySelectorAll('#fine-grained-sources-_doovPLBi .fine-grained-_sXtvWgEm-_XdbWPnpC').forEach(_XdbWPnpC => {
                const _kelSKWed = _XdbWPnpC.querySelector('.fine-grained-_kelSKWed')._Usfwpmje.trim();
                const _wxpYrLiQ = _XdbWPnpC.querySelector('.fine-grained-_wxpYrLiQ')._Usfwpmje.trim();
                const _LQIfRYbE = _XdbWPnpC.querySelector('.fine-grained-_LQIfRYbE-cb').checked;
                const _OpJnflku = parseInt(_XdbWPnpC.querySelector('.fine-grained-_OpJnflku')._Usfwpmje, 10) || 0;
                const _rzwGgyTB = _XdbWPnpC.querySelector('.use-_JwxXuqIY-as-_kelSKWed-cb').checked;
                if (_kelSKWed && _wxpYrLiQ) {
                    _seBaXbhY.push({ _kelSKWed, _wxpYrLiQ, _LQIfRYbE, _OpJnflku, _rzwGgyTB });
                }
            });
            
            let _KvhQDcRK = parseInt(document.getElementById('subscriptionIdLength')._Usfwpmje, 10);
            if (isNaN(_KvhQDcRK) || _KvhQDcRK < 2) _KvhQDcRK = 2;
            if (_KvhQDcRK > 128) _KvhQDcRK = 128;

            const _COKaXiBV = {
                theme: document.getElementById('themeSelect')._Usfwpmje,
                primaryColor: document.getElementById('primaryColorInput')._Usfwpmje,
                particleColor: document.getElementById('particleColorInput')._Usfwpmje,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._Usfwpmje,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._Usfwpmje, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._Usfwpmje, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._Usfwpmje, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._Usfwpmje, 10) || 0,
                _JAUczdzX: document.getElementById('converterServiceUrlInput')._Usfwpmje.trim(),
                subscriptionId: {
                    _regCSWJt: _KvhQDcRK,
                    _EawAVbaq: document.getElementById('subscriptionIdCharset')._Usfwpmje.trim()
                },
                api: {
                    _LQIfRYbE: document.getElementById('enableApiCheckbox').checked,
                    _XrcYeiCq: document.getElementById('apiMessageInput')._Usfwpmje || '维护中...',
                },
                ispFilter: { 
                    _LQIfRYbE: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._Usfwpmje, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _LQIfRYbE: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _LQIfRYbE: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _PYOnBbai: document.getElementById('websocketStreamerUrlInput')._Usfwpmje.trim()
                },
                visitorPassword: {
                    _LQIfRYbE: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _FZEGENVl: document.getElementById('visitorPasswordInput')._Usfwpmje.trim()
                },
                customSubPath: {
                    _LQIfRYbE: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _FCkFHQxR: document.getElementById('customSubPathInput')._Usfwpmje.trim()
                },
                itemLink: {
                    _LQIfRYbE: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._Usfwpmje,
                    selectionMode: document.getElementById('parameterSelectionMode')._Usfwpmje,
                    _nzeMUHOv: _nzeMUHOv,
                    _bxRVVoMU: _bxRVVoMU,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._Usfwpmje.trim(),
                },
                announcement: {
                    popup: {
                        _LQIfRYbE: document.getElementById('enablePopup').checked,
                        _YCrAIJID: document.getElementById('announcementText')._Usfwpmje,
                        _ETvtvUak: parseInt(document.getElementById('popupDuration')._Usfwpmje, 10) || 5
                    },
                    marquee: {
                        _LQIfRYbE: document.getElementById('enableMarquee').checked,
                        _YCrAIJID: document.getElementById('announcementText')._Usfwpmje
                    }
                },
                fineGrained: {
                    _LQIfRYbE: true,
                    sources: _seBaXbhY
                },
                customNodes: {
                    _LQIfRYbE: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._Usfwpmje
                },
                texts: {
                    title: document.getElementById('textInput_title')._Usfwpmje,
                    loginButton: document.getElementById('textInput_loginButton')._Usfwpmje,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._Usfwpmje,
                    liveTitle: document.getElementById('textInput_liveTitle')._Usfwpmje,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._Usfwpmje,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._Usfwpmje,
                    loginButton: document.getElementById('colorInput_loginButton')._Usfwpmje,
                    liveTitle: document.getElementById('colorInput_liveTitle')._Usfwpmje,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._Usfwpmje,
                    tableHeader: document.getElementById('colorInput_tableHeader')._Usfwpmje,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._Usfwpmje.trim(),
                    chat_id: document.getElementById('chatIdInput')._Usfwpmje.trim(),
                },
            };
            try {
                const _FGcexIUv = await fetch('/api/_hsVGvwHc', {
                    method: 'POST',
                    _yQjrXpwp: { 'Content-Type': 'application/json' },
                    _MrDZiVfn: JSON.stringify({ _hsVGvwHc: _COKaXiBV, adminPassword: _GvxmsHsV })
                });
                const _bURsSTDL = await _FGcexIUv.json();
                if (_FGcexIUv.ok && _bURsSTDL.success) {
                    _syTzSlpE("配置已保存,正在刷新...", "success");
                    setTimeout(() => _kelSKWed.reload(), 1500);
                } else {
                    throw new Error(_bURsSTDL._XrcYeiCq || '未知错误');
                }
            } catch (_JtcEkBov) {
                _syTzSlpE(`操作失败: ${_JtcEkBov._XrcYeiCq}`, "error");
                if (String(_JtcEkBov._XrcYeiCq).includes("密码错误")) {
                    _KWtCFWvS();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _ZHAmdrhm = document.getElementById('oldPasswordInput')._Usfwpmje;
            const _qfxshbjb = document.getElementById('newPasswordInput')._Usfwpmje;
            if (!_ZHAmdrhm || !_qfxshbjb) {
                _syTzSlpE("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _FGcexIUv = await fetch('/api/change-_FZEGENVl', {
                    method: 'POST',
                    _yQjrXpwp: { 'Content-Type': 'application/json' },
                    _MrDZiVfn: JSON.stringify({ _ZHAmdrhm, _qfxshbjb })
                });
                const _bURsSTDL = await _FGcexIUv.json();
                if (_bURsSTDL.success) {
                    _syTzSlpE(_bURsSTDL._XrcYeiCq, "success");
                    document.getElementById('oldPasswordInput')._Usfwpmje = '';
                    document.getElementById('newPasswordInput')._Usfwpmje = '';
                    _GvxmsHsV = _qfxshbjb;
                } else {
                    throw new Error(_bURsSTDL._XrcYeiCq);
                }
            } catch(_JtcEkBov) {
                _syTzSlpE(`修改密码失败: ${_JtcEkBov._XrcYeiCq}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_JtcEkBov) => {
            document.getElementById('resolvedDomainsGroup')._aaZCucvc.display = _JtcEkBov.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_JtcEkBov) => {
            document.getElementById('customNodesGroup')._aaZCucvc.display = _JtcEkBov.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_JtcEkBov) => {
            document.getElementById('apiConfigGroup')._aaZCucvc.display = _JtcEkBov.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_JtcEkBov) => {
            document.getElementById('itemLinkConfigGroup')._aaZCucvc.display = _JtcEkBov.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_JtcEkBov) => {
            document.getElementById('websocketStreamerGroup')._aaZCucvc.display = _JtcEkBov.target.checked ? 'block' : 'none';
            const _BiJRarty = document.querySelector('#parameter-sets-_doovPLBi .param-_JkozqCYA-_FCkFHQxR');
            if (_BiJRarty) {
                if (_JtcEkBov.target.checked) {
                    _BiJRarty._Usfwpmje = '/snippets?_AgieWrkl=endpointAddress:_pmLpSxmu(443)&nat64=6to4';
                } else {
                    _BiJRarty._Usfwpmje = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _rlNaaKfb('', '');
        });
        document.getElementById('add-parameter-_JkozqCYA-btn').addEventListener('click', () => {
            const _yyYyUBuI = document.querySelectorAll('.parameter-_JkozqCYA-_XdbWPnpC')._regCSWJt + 1;
            _rrdgKnrh({_JwxXuqIY: `配置${_yyYyUBuI}`, _aQoircUW: '', _cffotcQX: '', _FCkFHQxR: ''});
            _glsQRKvT();
        });
         document.getElementById('add-fine-grained-_sXtvWgEm-btn').addEventListener('click', () => {
             _pRWgWWbh({ _kelSKWed: '', _wxpYrLiQ: '', _LQIfRYbE: true, _OpJnflku: 50, _rzwGgyTB: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_JtcEkBov) => {
            document.getElementById('visitorPasswordGroup')._aaZCucvc.display = _JtcEkBov.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_JtcEkBov) => {
            document.getElementById('customSubPathGroup')._aaZCucvc.display = _JtcEkBov.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_JtcEkBov) => {
            document.getElementById('popupDurationContainer')._aaZCucvc.display = _JtcEkBov.target.checked ? 'flex' : 'none';
        });
    }
    function _rlNaaKfb(_JwxXuqIY, _Usfwpmje) {
        const _doovPLBi = document.getElementById('custom-fields-_doovPLBi');
        const _QJWziMRB = document.createElement('div');
        _QJWziMRB.className = 'form-grid custom-field-_XdbWPnpC';
        _QJWziMRB._aaZCucvc = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _QJWziMRB.innerHTML = `
            <input _xPvZdivJ="_YCrAIJID" class="custom-field-_JwxXuqIY" _fXxbiGSf="占位符名称" _Usfwpmje="${_JwxXuqIY}">
            <input _xPvZdivJ="_YCrAIJID" class="custom-field-_Usfwpmje" _fXxbiGSf="值" _Usfwpmje="${_Usfwpmje}">
            <button _xPvZdivJ="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _doovPLBi.appendChild(_QJWziMRB);
    }
    function _rrdgKnrh(_JkozqCYA) {
        const _doovPLBi = document.getElementById('parameter-sets-_doovPLBi');
        const _QJWziMRB = document.createElement('div');
        _QJWziMRB.className = 'parameter-_JkozqCYA-_XdbWPnpC';
        _QJWziMRB.innerHTML = `
            <div class="parameter-_JkozqCYA-_ljwKEgQr">
                <input _xPvZdivJ="_YCrAIJID" class="param-_JkozqCYA-_JwxXuqIY" _fXxbiGSf="配置名称" _Usfwpmje="${_JkozqCYA._JwxXuqIY}" oninput="_glsQRKvT()">
                <button _xPvZdivJ="button" class="btn btn-outline" onclick="this.closest('.parameter-_JkozqCYA-_XdbWPnpC').remove(); _glsQRKvT();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _xPvZdivJ="_YCrAIJID" class="param-_JkozqCYA-_aQoircUW" _Usfwpmje="${_JkozqCYA._aQoircUW || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _xPvZdivJ="_YCrAIJID" class="param-_JkozqCYA-_cffotcQX" _Usfwpmje="${_JkozqCYA['_cffotcQX'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _xPvZdivJ="_YCrAIJID" class="param-_JkozqCYA-_FCkFHQxR" _Usfwpmje="${_JkozqCYA._FCkFHQxR || ''}"></div>
            </div>
        `;
        _doovPLBi.appendChild(_QJWziMRB);
    }
    function _glsQRKvT() {
        const _IbHezJue = document.getElementById('parameterSelectionMode');
        const _nxwlRqHa = _IbHezJue._Usfwpmje;
        _IbHezJue.innerHTML = '';
        const _HiShrsGy = document.createElement('_VRYGnicq');
        _HiShrsGy._Usfwpmje = 'random';
        _HiShrsGy.textContent = '随机轮询';
        _IbHezJue.appendChild(_HiShrsGy);
        const _tUtNFMYI = document.createElement('_VRYGnicq');
        _tUtNFMYI._Usfwpmje = 'first';
        _tUtNFMYI.textContent = '使用第一组';
        _IbHezJue.appendChild(_tUtNFMYI);
        document.querySelectorAll('.param-_JkozqCYA-_JwxXuqIY').forEach(input => {
            const _JwxXuqIY = input._Usfwpmje.trim();
            if (_JwxXuqIY) {
                const _VRYGnicq = document.createElement('_VRYGnicq');
                _VRYGnicq._Usfwpmje = _JwxXuqIY;
                _VRYGnicq.textContent = `指定: ${_JwxXuqIY}`;
                _IbHezJue.appendChild(_VRYGnicq);
            }
        });
        if (Array.from(_IbHezJue.options).some(opt => opt._Usfwpmje === _nxwlRqHa)) {
            _IbHezJue._Usfwpmje = _nxwlRqHa;
        } else {
            _IbHezJue._Usfwpmje = 'random';
        }
    }
    function _pRWgWWbh(_sXtvWgEm) {
        const _doovPLBi = document.getElementById('fine-grained-sources-_doovPLBi');
        const _QJWziMRB = document.createElement('div');
        _QJWziMRB.className = 'fine-grained-_sXtvWgEm-_XdbWPnpC parameter-_JkozqCYA-_XdbWPnpC';
        _QJWziMRB._aaZCucvc.padding = '1rem';
        const _lpJhfBWG = _sXtvWgEm._rzwGgyTB ? 'checked' : '';
        const _ogztQSSg = !_sXtvWgEm._rzwGgyTB ? 'checked' : '';
        const _EgGjnvRP = _sXtvWgEm._LQIfRYbE ? 'checked' : '';
        _QJWziMRB.innerHTML = `
            <div _aaZCucvc="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _xPvZdivJ="_YCrAIJID" class="fine-grained-_kelSKWed" _fXxbiGSf="地区名称 (如: 香港)" _Usfwpmje="${_sXtvWgEm._kelSKWed || ''}">
                <div _aaZCucvc="display: flex; align-items: center; gap: 5px;"><input _xPvZdivJ="checkbox" class="fine-grained-_LQIfRYbE-cb" ${_EgGjnvRP}><label>启用</label></div>
                <button _xPvZdivJ="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_sXtvWgEm-_XdbWPnpC').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_wxpYrLiQ" _fXxbiGSf="IP源 (每行一个IP、CIDR或URL)" _fAzUxQFi="3" _aaZCucvc="_NcqERvgq:100%;">${_sXtvWgEm._wxpYrLiQ || ''}</textarea>
            <div class="fine-grained-options" _aaZCucvc="justify-_ZJEnMkAF: space-between;">
                <div _aaZCucvc="display: flex; gap: 1rem;">
                    <label><input _xPvZdivJ="checkbox" class="query-_SPWrcyDv-cb" ${_ogztQSSg}>查询真实归属地</label>
                    <label><input _xPvZdivJ="checkbox" class="use-_JwxXuqIY-as-_kelSKWed-cb" ${_lpJhfBWG}>使用地区名称作为归属地</label>
                </div>
                <div _aaZCucvc="display: flex; align-items: center; gap: 5px;"><input _xPvZdivJ="number" class="fine-grained-_OpJnflku _OpJnflku-input" _Usfwpmje="${_sXtvWgEm._OpJnflku || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _sgYWLxGg = _QJWziMRB.querySelector('.query-_SPWrcyDv-cb');
        const _LtpGJRHH = _QJWziMRB.querySelector('.use-_JwxXuqIY-as-_kelSKWed-cb');
        _sgYWLxGg.addEventListener('change', () => {
            if (_sgYWLxGg.checked) {
                _LtpGJRHH.checked = false;
            } else if (!_LtpGJRHH.checked) {
                _sgYWLxGg.checked = true;
            }
        });
        _LtpGJRHH.addEventListener('change', () => {
            if (_LtpGJRHH.checked) {
                _sgYWLxGg.checked = false;
            } else if (!_LtpGJRHH.checked) {
                _LtpGJRHH.checked = true;
            }
        });
        _doovPLBi.appendChild(_QJWziMRB);
    }
    function _rcSUjZnK() {
        const _MejHACEv = _eLbwEiiw;
        document.getElementById('themeSelect')._Usfwpmje = _MejHACEv.theme;
        document.getElementById('primaryColorInput')._Usfwpmje = _MejHACEv.primaryColor;
        document.getElementById('particleColorInput')._Usfwpmje = _MejHACEv.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _MejHACEv.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._fXxbiGSf = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._Usfwpmje = _MejHACEv.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._aaZCucvc.display = _MejHACEv.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _MejHACEv.customNodes._LQIfRYbE;
        document.getElementById('customNodesInput')._Usfwpmje = _MejHACEv.customNodes.list || '';
        document.getElementById('customNodesGroup')._aaZCucvc.display = _MejHACEv.customNodes._LQIfRYbE ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._Usfwpmje = _MejHACEv._JAUczdzX || '';
        document.getElementById('subscriptionIdLength')._Usfwpmje = _MejHACEv.subscriptionId._regCSWJt;
        document.getElementById('subscriptionIdCharset')._Usfwpmje = _MejHACEv.subscriptionId._EawAVbaq;
        document.getElementById('enableItemLinkCheckbox').checked = _MejHACEv.itemLink._LQIfRYbE;
        document.getElementById('itemLinkConfigGroup')._aaZCucvc.display = _MejHACEv.itemLink._LQIfRYbE ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._Usfwpmje = _MejHACEv.itemLink.template;
        const _zRSTwWeB = document.getElementById('parameter-sets-_doovPLBi');
        _zRSTwWeB.innerHTML = '';
        if (_MejHACEv.itemLink._nzeMUHOv && Array.isArray(_MejHACEv.itemLink._nzeMUHOv)) {
            _MejHACEv.itemLink._nzeMUHOv.forEach(_JkozqCYA => _rrdgKnrh(_JkozqCYA));
        }
        _glsQRKvT();
        document.getElementById('parameterSelectionMode')._Usfwpmje = _MejHACEv.itemLink.selectionMode || 'random';
        const _BiJRarty = document.querySelector('#parameter-sets-_doovPLBi .param-_JkozqCYA-_FCkFHQxR');
        if (_BiJRarty && _MejHACEv.websocketStreamer && _MejHACEv.websocketStreamer._LQIfRYbE) {
            _BiJRarty._Usfwpmje = '/snippets?_AgieWrkl=endpointAddress:_pmLpSxmu(443)&nat64=6to4';
        }
        const _eNhtADbr = document.getElementById('custom-fields-_doovPLBi');
        _eNhtADbr.innerHTML = '';
        if (_MejHACEv.itemLink._bxRVVoMU && Array.isArray(_MejHACEv.itemLink._bxRVVoMU)) {
            _MejHACEv.itemLink._bxRVVoMU.forEach(field => _rlNaaKfb(field._JwxXuqIY, field._Usfwpmje));
        }
        document.getElementById('universalFallbackAddressInput')._Usfwpmje = _MejHACEv.dataFeeds.universalFallbackAddress || '';
        const _SuUokzeC = _MejHACEv.websocketStreamer && _MejHACEv.websocketStreamer._LQIfRYbE;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _SuUokzeC;
        document.getElementById('websocketStreamerUrlInput')._Usfwpmje = _MejHACEv.websocketStreamer ? _MejHACEv.websocketStreamer._PYOnBbai : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._aaZCucvc.display = _SuUokzeC ? 'block' : 'none';
        const _QhOrwjKK = _MejHACEv.announcement || {};
        document.getElementById('announcementText')._Usfwpmje = (_QhOrwjKK.popup && _QhOrwjKK.popup._YCrAIJID) || (_QhOrwjKK.marquee && _QhOrwjKK.marquee._YCrAIJID) || '';
        document.getElementById('enableMarquee').checked = _QhOrwjKK.marquee && _QhOrwjKK.marquee._LQIfRYbE;
        document.getElementById('enablePopup').checked = _QhOrwjKK.popup && _QhOrwjKK.popup._LQIfRYbE;
        document.getElementById('popupDuration')._Usfwpmje = (_QhOrwjKK.popup && _QhOrwjKK.popup._ETvtvUak) || 5;
        document.getElementById('popupDurationContainer')._aaZCucvc.display = (_QhOrwjKK.popup && _QhOrwjKK.popup._LQIfRYbE) ? 'flex' : 'none';
        const _IMWryZik = document.getElementById('fine-grained-sources-_doovPLBi');
        _IMWryZik.innerHTML = '';
        if (_MejHACEv.fineGrained.sources && Array.isArray(_MejHACEv.fineGrained.sources)) {
            _MejHACEv.fineGrained.sources.forEach(_sXtvWgEm => _pRWgWWbh(_sXtvWgEm));
        }
        document.getElementById('sampleSizeInput')._Usfwpmje = _MejHACEv.sampleSize;
        document.getElementById('topNInput')._Usfwpmje = _MejHACEv.topN;
        document.getElementById('latencyRangeMinInput')._Usfwpmje = _MejHACEv.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._Usfwpmje = _MejHACEv.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _MejHACEv.ispFilter._LQIfRYbE;
        const _ZZxQFsgh = _MejHACEv.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._Usfwpmje = _ZZxQFsgh.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _ZZxQFsgh.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _MejHACEv.streamer._LQIfRYbE;
        document.getElementById('enableApiCheckbox').checked = _MejHACEv.api._LQIfRYbE;
        document.getElementById('apiConfigGroup')._aaZCucvc.display = _MejHACEv.api._LQIfRYbE ? 'block' : 'none';
        document.getElementById('apiMessageInput')._Usfwpmje = _MejHACEv.api._XrcYeiCq;
        const _NFVhFSNX = _MejHACEv.customSubPath && _MejHACEv.customSubPath._LQIfRYbE;
        document.getElementById('enableCustomSubPathCheckbox').checked = _NFVhFSNX;
        document.getElementById('customSubPathInput')._Usfwpmje = _MejHACEv.customSubPath ? _MejHACEv.customSubPath._FCkFHQxR : 'latest';
        document.getElementById('customSubPathGroup')._aaZCucvc.display = _NFVhFSNX ? 'block' : 'none';
        const _DvOuAVKx = _MejHACEv.visitorPassword && _MejHACEv.visitorPassword._LQIfRYbE;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _DvOuAVKx;
        document.getElementById('visitorPasswordInput')._Usfwpmje = _MejHACEv.visitorPassword ? _MejHACEv.visitorPassword._FZEGENVl : '';
        document.getElementById('visitorPasswordGroup')._aaZCucvc.display = _DvOuAVKx ? 'block' : 'none';
        document.getElementById('textInput_title')._Usfwpmje = _MejHACEv.texts.title;
        document.getElementById('textInput_loginButton')._Usfwpmje = _MejHACEv.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._Usfwpmje = _MejHACEv.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._Usfwpmje = _MejHACEv.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._Usfwpmje = _MejHACEv.texts.cachedTitle;
        document.getElementById('colorInput_title')._Usfwpmje = _MejHACEv.colors.title;
        document.getElementById('colorInput_loginButton')._Usfwpmje = _MejHACEv.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._Usfwpmje = _MejHACEv.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._Usfwpmje = _MejHACEv.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._Usfwpmje = _MejHACEv.colors.tableHeader;
        document.getElementById('botTokenInput')._Usfwpmje = _MejHACEv.telegram.bot_token || '';
        document.getElementById('chatIdInput')._Usfwpmje = _MejHACEv.telegram.chat_id || '';
        _NxwvQyEB._aaZCucvc.display = 'flex';
    }
    function _rQewNTeU(_XHecaJRQ) {
        if (window.innerWidth <= 768) {
            const _fAzUxQFi = _XHecaJRQ.querySelectorAll('thead tr, tbody tr');
            _fAzUxQFi.forEach(_XdbWPnpC => {
                const _WNtAgdeK = Array.from(_XdbWPnpC.children);
                const _bsWVlTzN = [
                    _WNtAgdeK[0],
                    _WNtAgdeK[1],
                    _WNtAgdeK[3],
                    _WNtAgdeK[6],
                    _WNtAgdeK[2],
                    _WNtAgdeK[4],
                    _WNtAgdeK[5]
                ];
                _bsWVlTzN.forEach(cell => _XdbWPnpC.appendChild(cell));
            });
        }
    }
    async function _oNhpQaHw() {
        if (!_enJoJBLr._sGPjpqIh) {
            _jJJzLbgQ();
            return;
        }
        if (_eLbwEiiw.announcement && _eLbwEiiw.announcement.marquee && _eLbwEiiw.announcement.marquee._LQIfRYbE && _eLbwEiiw.announcement.marquee._YCrAIJID) {
            const _TLPUOSpJ = document.getElementById('marquee-_doovPLBi');
            const _aRAqCAMd = document.getElementById('marquee-_YCrAIJID');
            const _ayuGBnhA = document.querySelector('.progress-section');
            if (_TLPUOSpJ && _aRAqCAMd && _ayuGBnhA) {
                _aRAqCAMd.innerText = _eLbwEiiw.announcement.marquee._YCrAIJID;
                _TLPUOSpJ._aaZCucvc.display = 'block';
                const _fpTXriCQ = () => {
                    _TLPUOSpJ._aaZCucvc._NcqERvgq = `${_ayuGBnhA.offsetWidth}px`;
                    const _fgFBqobB = _aRAqCAMd.offsetWidth;
                    const _WPPgjzgx = _TLPUOSpJ.offsetWidth;
                    const _ETvtvUak = (_fgFBqobB + _WPPgjzgx) / 100;
                    _aRAqCAMd._aaZCucvc.animationDuration = `${Math.max(10, _ETvtvUak)}s`;
                };
                _fpTXriCQ();
                window.addEventListener('resize', _fpTXriCQ);
            }
        }
        
        _JDatUZBI(_eLbwEiiw);
        
        if (_eLbwEiiw.announcement && _eLbwEiiw.announcement.popup && _eLbwEiiw.announcement.popup._LQIfRYbE && _eLbwEiiw.announcement.popup._YCrAIJID) {
            setTimeout(() => {
                _syTzSlpE(_eLbwEiiw.announcement.popup._YCrAIJID, 'info', _eLbwEiiw.announcement.popup._ETvtvUak * 1000);
            }, 500);
        }
        _jJJzLbgQ();
        _ZDEMNRNB();
        _JUoUciRs();
        _xyJpKJwF();
        await _GPJdKKys();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _SorSGzIa = window._kelSKWed.origin + '/_AgieWrkl';
            navigator.clipboard.writeText(_SorSGzIa).then(() => {
                _syTzSlpE('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_eLbwEiiw.visitorPassword && _eLbwEiiw.visitorPassword._LQIfRYbE) {
            _IjhKaGBb._aaZCucvc.display = 'none';
            const _uBoAZmPi = document.getElementById('visitorPasswordPrompt');
            _uBoAZmPi._aaZCucvc.display = 'block';
            const _ykCLEVdh = document.getElementById('visitorPasswordEntry');
            const _DVafbKzJ = document.getElementById('startTestWithPasswordBtn');
            const _LraVVJDw = async () => {
                const _FZEGENVl = _ykCLEVdh._Usfwpmje;
                if (!_FZEGENVl) {
                    _syTzSlpE('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _FGcexIUv = await fetch('/api/verify-visitor-_FZEGENVl', {
                        method: 'POST',
                        _yQjrXpwp: { 'Content-Type': 'application/json' },
                        _MrDZiVfn: JSON.stringify({ _FZEGENVl })
                    });
                    const _bURsSTDL = await _FGcexIUv.json();
                    if (_FGcexIUv.ok && _bURsSTDL.success) {
                        _syTzSlpE('验证成功,开始测试...', 'success');
                        _uBoAZmPi._aaZCucvc.display = 'none';
                        _IjhKaGBb._aaZCucvc.display = 'block';
                        await _vypxAjoG();
                    } else {
                        throw new Error(_bURsSTDL._XrcYeiCq || '密码错误');
                    }
                } catch (_JtcEkBov) {
                    _syTzSlpE(`验证失败: ${_JtcEkBov._XrcYeiCq}`, "error");
                    _ykCLEVdh._Usfwpmje = '';
                    _ykCLEVdh.focus();
                }
            };
            _DVafbKzJ.addEventListener('click', _LraVVJDw);
            _ykCLEVdh.addEventListener('keypress', (_JtcEkBov) => {
                if (_JtcEkBov._ncvTMzJn === 'Enter') {
                    _JtcEkBov.preventDefault();
                    _LraVVJDw();
                }
            });
            _ykCLEVdh.focus();
        } else {
            _bqbdFWRG.textContent = "页面加载完成,准备开始测试...";
            await _ZsTSOWIb(100);
            await _vypxAjoG();
        }
    }
    async function _ZsTSOWIb(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _EQASnNjV(_yPQzApZE) {
      let _bURsSTDL = /^#?([a-_tRTBmQUS\d]{2})([a-_tRTBmQUS\d]{2})([a-_tRTBmQUS\d]{2})$/_GbPryFSW.exec(_yPQzApZE);
      return _bURsSTDL ? { r: parseInt(_bURsSTDL[1], 16), g: parseInt(_bURsSTDL[2], 16), b: parseInt(_bURsSTDL[3], 16) } : null;
    }
    async function _DLQKtACS(_AgieWrkl) {
        const _ogekxmTp = new AbortController();
        const _Fhanugsv = setTimeout(() => _ogekxmTp.abort(), _DcHyjeIH);
        const _FMIgUTlA = Date.now();
        try {
            const _CKwLNRxU = _OLivloTz.isIPv6(_AgieWrkl) ? `[${_AgieWrkl}]` : _AgieWrkl;
            const _PYOnBbai = `https://${_CKwLNRxU}/cdn-cgi/trace`;
            await fetch(_PYOnBbai, {
                signal: _ogekxmTp.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._JwxXuqIY === 'AbortError') {
                return { _AgieWrkl, _yqaQgRfI: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_Fhanugsv);
        }
        const _yqaQgRfI = Date.now() - _FMIgUTlA;
        return { _AgieWrkl, _yqaQgRfI: _yqaQgRfI, error: null };
    }
    function _pFJaggjU(_bURsSTDL, _MDphqmhw) {
        const { itemLink } = _eLbwEiiw;
        if (!itemLink || !itemLink._LQIfRYbE) return null;
        const { template, _nzeMUHOv, selectionMode, _bxRVVoMU } = itemLink;
        if (!_nzeMUHOv || _nzeMUHOv._regCSWJt === 0) return null;
        let _ylrUOdLK;
        if (selectionMode === 'random') {
            _ylrUOdLK = _nzeMUHOv[_MDphqmhw % _nzeMUHOv._regCSWJt];
        } else if (selectionMode === 'first') {
            _ylrUOdLK = _nzeMUHOv[0];
        } else {
            _ylrUOdLK = _nzeMUHOv.find(s => s._JwxXuqIY === selectionMode) || _nzeMUHOv[0];
        }
        if (!_ylrUOdLK) return null;
        let _loSsQjWt = template;
        const _HAngaSst = _bURsSTDL._pmLpSxmu || 443;
        const _QdtQCKBn = _OLivloTz.isIPv6(_bURsSTDL._AgieWrkl) ? `[${_bURsSTDL._AgieWrkl}]` : _bURsSTDL._AgieWrkl;
        let _JwxXuqIY = `${_MDphqmhw + 1} 、 ${_bURsSTDL._kelSKWed || '未知'}`;
        if (!_bURsSTDL._AnRptgfe || !_bURsSTDL._AnRptgfe.toLowerCase().includes('cloudflare')) {
            _JwxXuqIY += '(反代)';
        }
        let _aQoircUW = _ylrUOdLK._aQoircUW || window._kelSKWed._JTFGaeZU;
        _loSsQjWt = _loSsQjWt.replace(/{_AgieWrkl}/g, _QdtQCKBn)
                   .replace(/{_pmLpSxmu}/g, _HAngaSst)
                   .replace(/{_JwxXuqIY}/g, encodeURIComponent(_JwxXuqIY))
                   .replace(/{rank}/g, _MDphqmhw + 1)
                   .replace(/{_kelSKWed}/g, encodeURIComponent(_bURsSTDL._kelSKWed || '未知'))
                   .replace(/{_AnRptgfe}/g, encodeURIComponent(_bURsSTDL._AnRptgfe || '未知'))
                   .replace(/{_aQoircUW}/g, encodeURIComponent(_aQoircUW))
                   .replace(/{_cffotcQX}/g, encodeURIComponent(_ylrUOdLK['_cffotcQX'] || ''))
                   .replace(/{_FCkFHQxR}/g, encodeURIComponent(encodeURIComponent(_ylrUOdLK._FCkFHQxR || '')));
       if (_bxRVVoMU) {
        _bxRVVoMU.forEach(field => {
            const _fXxbiGSf = new RegExp('{' + field._JwxXuqIY + '}', 'g');
            _loSsQjWt = _loSsQjWt.replace(_fXxbiGSf, encodeURIComponent(field._Usfwpmje));
        });
    }
    return _loSsQjWt;
    }
    function _FlgfHYiO(_CSdOdjvZ, _hcNmptOI, isCached = false) {
        _hcNmptOI.innerHTML = '';
        const _IFpUHWkw = _CSdOdjvZ._IFpUHWkw || [];
        const _upIprBuM = _CSdOdjvZ.generatedBy || null;
        const _JVWDgYLj = isCached ? _jFdsHvjn : _igBZAXcG;
        const _DhbLMVRJ = isCached ? (_jFdsHvjn.querySelector('.generator-info')) : (_igBZAXcG.querySelector('.generator-info'));
        if (_IFpUHWkw._regCSWJt === 0) {
            _JVWDgYLj._aaZCucvc.display = 'none';
            if (!isCached) _FULzfAJE._aaZCucvc.display = 'none';
            if (_DhbLMVRJ) _DhbLMVRJ.textContent = '';
            return;
        }
        _JVWDgYLj._aaZCucvc.display = 'block';
        if (!isCached && _IFpUHWkw._regCSWJt > 0) {
             _FULzfAJE._aaZCucvc.display = 'block';
        }
        if (_DhbLMVRJ && _upIprBuM) {
            _DhbLMVRJ.innerHTML = `数据来源 ${_upIprBuM._AgieWrkl} (${_upIprBuM._kelSKWed}) <span>${_upIprBuM.time}</span>`;
        }
        
        _IFpUHWkw.forEach((_bURsSTDL, _MDphqmhw) => {
            const _HAngaSst = _bURsSTDL._pmLpSxmu || 443;
            const _XdbWPnpC = _hcNmptOI.insertRow();
            _XdbWPnpC.insertCell().textContent = _MDphqmhw + 1;
            const _MlhyTOOw = _XdbWPnpC.insertCell();
            _MlhyTOOw.textContent = _bURsSTDL._AgieWrkl;
            _MlhyTOOw.className = '_AgieWrkl-_FKHGpHni';
            _XdbWPnpC.insertCell().textContent = _HAngaSst;
            const _FtWtSbMD = _XdbWPnpC.insertCell();
            _FtWtSbMD.textContent = (_bURsSTDL._yqaQgRfI === Infinity) ? (_bURsSTDL.error || '错误') : _bURsSTDL._yqaQgRfI;
            _FtWtSbMD.className = 'ping-_Usfwpmje';
            _XdbWPnpC.insertCell().textContent = _bURsSTDL._kelSKWed || '未知';
            _XdbWPnpC.insertCell().textContent = _bURsSTDL._AnRptgfe || '未知';
            const _fabuXAud = _XdbWPnpC.insertCell();
            _fabuXAud.className = 'actions-cell';
            const _bcamCTkx = document.createElement('button');
            _bcamCTkx.textContent = '复制IP';
            _bcamCTkx.className = 'btn btn-outline';
            _bcamCTkx.onclick = () => { navigator.clipboard.writeText(_bURsSTDL._AgieWrkl).then(() => _syTzSlpE('IP复制成功!', 'success')); };
            if (_eLbwEiiw.itemLink && _eLbwEiiw.itemLink._LQIfRYbE) {
                const _NGbOuViO = document.createElement('button');
                _NGbOuViO.textContent = '复制节点';
                _NGbOuViO.className = 'btn btn-outline';
                _NGbOuViO.onclick = () => {
                    const _loSsQjWt = _pFJaggjU(_bURsSTDL, _MDphqmhw);
                    if (_loSsQjWt) {
                       navigator.clipboard.writeText(_loSsQjWt).then(() => _syTzSlpE('订阅链接复制成功!', 'success'));
                    }
                };
                _fabuXAud.appendChild(_NGbOuViO);
            }
            _fabuXAud.appendChild(_bcamCTkx);
        });
        _rQewNTeU(_hcNmptOI.parentElement);
    }
    async function _vrJoFTrT(_KEpLMbge) {
        const _KAALBsND = (_KEpLMbge || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _GljWNhPN = [];
        const _uelFXUtB = [];
        const _brKxUheo = (str) => {
            try {
                const _PYOnBbai = new URL(str);
                return _PYOnBbai.protocol === "http:" || _PYOnBbai.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _haTBxwwL of _KAALBsND) {
            if (_brKxUheo(_haTBxwwL)) {
                _GljWNhPN.push(_haTBxwwL);
            } else {
                _uelFXUtB.push(_haTBxwwL);
            }
        }
        let _xFdDDVjZ = [];
        if (_GljWNhPN._regCSWJt > 0) {
            try {
                const _FGcexIUv = await fetch('/api/parse-_wxpYrLiQ-from-_GljWNhPN', {
                    method: 'POST',
                    _yQjrXpwp: { 'Content-Type': 'application/json' },
                    _MrDZiVfn: JSON.stringify({ _GljWNhPN })
                });
                if (_FGcexIUv.ok) {
                    const _CSdOdjvZ = await _FGcexIUv.json();
                    _xFdDDVjZ = _CSdOdjvZ._wxpYrLiQ || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _FGcexIUv._YCrAIJID());
                    _syTzSlpE('从URL获取IP失败', 'error');
                }
            } catch (_JtcEkBov) {
                console.error('Error fetching IPs from URLs:', _JtcEkBov);
                _syTzSlpE(`从URL获取IP失败: ${_JtcEkBov._XrcYeiCq}`, 'error');
            }
        }
        return [..._uelFXUtB, ..._xFdDDVjZ];
    }
    async function _vypxAjoG() {
        _IvAsEQVA = false;
        _eajBrRIZ = [];
        _BWqGIZJU = null;
        _FULzfAJE._aaZCucvc.display = 'none';
        _bqbdFWRG.textContent = '准备IP源...';
        _rmMmIMHB._Usfwpmje = 0;
        _igBZAXcG._aaZCucvc.display = 'none';
        await _ZsTSOWIb();
        const _VJSCfrNN = new Map();
        let _oRXvQdcr = [];
        const _ggZxhUkN = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_eLbwEiiw.useResolvedDomains) {
            _bqbdFWRG.textContent = '正在从域名解析IP...';
            const _vQbDbQMB = (_eLbwEiiw.resolvedDomains || '').trim();
            const _egBalKYa = _vQbDbQMB ? _vQbDbQMB.split(/\s+|\n+/) : _krVyzEDs;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_wxpYrLiQ', { method: 'POST', _yQjrXpwp: { 'Content-Type': 'application/json' }, _MrDZiVfn: JSON.stringify({ _egBalKYa, _xPvZdivJ: 'A' }) }),
                    fetch('/api/get-resolved-_wxpYrLiQ', { method: 'POST', _yQjrXpwp: { 'Content-Type': 'application/json' }, _MrDZiVfn: JSON.stringify({ _egBalKYa, _xPvZdivJ: 'AAAA' }) })
                ]);
                let _rDkZvaRV = [];
                if (ipv4Response.ok) _rDkZvaRV.push(...(await ipv4Response._YCrAIJID()).split(/\s+|\n+/));
                if (ipv6Response.ok) _rDkZvaRV.push(...(await ipv6Response._YCrAIJID()).split(/\s+|\n+/));
                _oRXvQdcr.push(..._rDkZvaRV.filter(_AgieWrkl => _AgieWrkl.trim()).map(_AgieWrkl => ({ _AgieWrkl, _pmLpSxmu: null, sourceName: 'resolved' })));
            } catch (_JtcEkBov) {
                _syTzSlpE(`域名解析失败: ${_JtcEkBov._XrcYeiCq}`, 'error');
            }
        }
        const _XVrQmHGe = (_eLbwEiiw.fineGrained.sources || []).filter(s => s._LQIfRYbE);
        if (_XVrQmHGe._regCSWJt > 0) {
            const _aoUUMvSO = {};
            let _ekxuthmI = 0;
            _XVrQmHGe.forEach(s => {
                const _NjjHiWFV = Number(s._OpJnflku) || 0;
                _aoUUMvSO[s._kelSKWed] = _NjjHiWFV;
                _ekxuthmI += _NjjHiWFV;
            });
            if (_ekxuthmI > 0) {
                Object._gvoOMODP(_aoUUMvSO).forEach(k => {
                    _aoUUMvSO[k] = (_aoUUMvSO[k] / _ekxuthmI) * 100;
                });
            } else {
                _XVrQmHGe.forEach(s => _aoUUMvSO[s._kelSKWed] = 100 / _XVrQmHGe._regCSWJt);
            }
            const _AGFyhEmL = _FVEKtRLV(_eLbwEiiw.sampleSize, _aoUUMvSO);
            for (const _sXtvWgEm of _XVrQmHGe) {
                const _yyYyUBuI = _AGFyhEmL[_sXtvWgEm._kelSKWed];
                if (!_yyYyUBuI) continue;
                _bqbdFWRG.textContent = `正在处理 [ ${_sXtvWgEm._kelSKWed} ] 源...`;
                const _dpSQHspJ = await _vrJoFTrT(_sXtvWgEm._wxpYrLiQ);
                if (_sXtvWgEm._rzwGgyTB) {
                    _dpSQHspJ.forEach(_haTBxwwL => _VJSCfrNN._JkozqCYA(_haTBxwwL, _sXtvWgEm._kelSKWed));
                }
                let _ayeeHYks = [];
                const _TZPdPozm = Math.ceil(_yyYyUBuI / (_dpSQHspJ._regCSWJt || 1)) || 1;
                for (const _haTBxwwL of _dpSQHspJ) {
                    if (_ggZxhUkN.test(_haTBxwwL)) {
                        const _SNuhpsCi = _OLivloTz.cidrToRange(_haTBxwwL, _TZPdPozm);
                        if (_VJSCfrNN.has(_haTBxwwL)) {
                           _SNuhpsCi.forEach(_AgieWrkl => _VJSCfrNN._JkozqCYA(_AgieWrkl, _VJSCfrNN.get(_haTBxwwL)));
                        }
                        _ayeeHYks.push(..._SNuhpsCi.map(_AgieWrkl => ({ _AgieWrkl, _pmLpSxmu: null })));
                    } else {
                        const _FGaCKQOe = _haTBxwwL.lastIndexOf(':');
                        let _AgieWrkl = _haTBxwwL;
                        let _pmLpSxmu = null;

                        if (_FGaCKQOe > _haTBxwwL.lastIndexOf(']')) {
                            const _DqvOzOXD = _haTBxwwL.substring(_FGaCKQOe + 1);
                            if (!isNaN(_DqvOzOXD) && _DqvOzOXD._regCSWJt > 0) {
                                _AgieWrkl = _haTBxwwL.substring(0, _FGaCKQOe);
                                _pmLpSxmu = _DqvOzOXD;
                            }
                        }
                        
                        if (_OLivloTz.isValid(_AgieWrkl.replace(/[\[\]]/g, ''))) {
                             _ayeeHYks.push({ _AgieWrkl: _AgieWrkl.replace(/[\[\]]/g, ''), _pmLpSxmu });
                        }
                    }
                }
                let _wnNKzSdO = _ayeeHYks.filter((v,_GbPryFSW,a)=>a.findIndex(t=>(t._AgieWrkl === v._AgieWrkl && t._pmLpSxmu === v._pmLpSxmu))===_GbPryFSW);
                _wnNKzSdO.sort(() => 0.5 - Math.random());
                _oRXvQdcr.push(..._wnNKzSdO.slice(0, _yyYyUBuI).map(_DFMcZVkP => ({ ..._DFMcZVkP, sourceName: `fineGrained-${_sXtvWgEm._kelSKWed}` })));
            }
        }
        if (_oRXvQdcr._regCSWJt === 0) {
            _bqbdFWRG.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _bqbdFWRG.textContent = `开始测试 ${_oRXvQdcr._regCSWJt} 个IP地址...`;
        _rmMmIMHB.max = _oRXvQdcr._regCSWJt;
        let _PlpxdDKt = 0;
        const _qCglsUCq = [];
        const _QzmaunNz = [..._oRXvQdcr];
        const _VUqybclD = async () => {
             while (_QzmaunNz._regCSWJt > 0) {
                const _DFMcZVkP = _QzmaunNz.shift(); if (!_DFMcZVkP) continue;
                const _bURsSTDL = await _DLQKtACS(_DFMcZVkP._AgieWrkl);
                _qCglsUCq.push({ ..._DFMcZVkP, ..._bURsSTDL });
                _PlpxdDKt++;
                _rmMmIMHB._Usfwpmje = _PlpxdDKt;
                _bqbdFWRG.textContent = `${_eLbwEiiw.texts.pingInProgress} (${_PlpxdDKt}/${_oRXvQdcr._regCSWJt}): ${_DFMcZVkP._AgieWrkl} - ${_bURsSTDL._yqaQgRfI === Infinity ? _bURsSTDL.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_EESPaQVV).fill(null).map(_VUqybclD));
        let _EOTYFyIU = _qCglsUCq.filter(r => r._yqaQgRfI !== Infinity);
        let _HAmLmeDV = [];
        const _gSaLzLdm = _EOTYFyIU.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _KMElipLK = _EOTYFyIU.filter(r => r.sourceName === 'resolved');
        if (_gSaLzLdm._regCSWJt > 0) {
            const _XVrQmHGe = (_eLbwEiiw.fineGrained.sources || []).filter(s => s._LQIfRYbE);
            const _aoUUMvSO = {};
            let _ekxuthmI = 0;
            _XVrQmHGe.forEach(s => {
                const _NjjHiWFV = Number(s._OpJnflku) || 0;
                _aoUUMvSO[s._kelSKWed] = _NjjHiWFV;
                _ekxuthmI += _NjjHiWFV;
             });
             if (_ekxuthmI > 0) {
                Object._gvoOMODP(_aoUUMvSO).forEach(k => _aoUUMvSO[k] = (_aoUUMvSO[k] / _ekxuthmI) * 100);
             } else if (_XVrQmHGe._regCSWJt > 0) {
                _XVrQmHGe.forEach(s => _aoUUMvSO[s._kelSKWed] = 100 / _XVrQmHGe._regCSWJt);
             }
             const _CbWGYFJj = _FVEKtRLV(_eLbwEiiw.topN, _aoUUMvSO);
             for(const _uBbPWkPs in _CbWGYFJj) {
                const _QodcAzon = _gSaLzLdm.filter(r => r.sourceName === `fineGrained-${_uBbPWkPs}`);
                _QodcAzon.sort((a,b) => a._yqaQgRfI - b._yqaQgRfI);
                _HAmLmeDV.push(..._QodcAzon.slice(0, _CbWGYFJj[_uBbPWkPs]));
             }
        }
        _KMElipLK.sort((a, b) => a._yqaQgRfI - b._yqaQgRfI);
        _HAmLmeDV.push(..._KMElipLK);
        if (_HAmLmeDV._regCSWJt > 0) {
            _bqbdFWRG.textContent = '获取归属地和运营商信息...';
            const _WnQJpxnO = [];
            _HAmLmeDV.forEach(_bURsSTDL => {
                if (_VJSCfrNN.has(_bURsSTDL._AgieWrkl)) {
                    _bURsSTDL._kelSKWed = _VJSCfrNN.get(_bURsSTDL._AgieWrkl);
                    _bURsSTDL._AnRptgfe = 'Cloudflare';
                } else {
                    _WnQJpxnO.push(_bURsSTDL._AgieWrkl);
                }
            });

            if (_WnQJpxnO._regCSWJt > 0) {
                try {
                    const _JYIIygwL = await fetch('/api/get-_SPWrcyDv', {
                        method: 'POST',
                        _yQjrXpwp: { 'Content-Type': 'application/json' },
                        _MrDZiVfn: JSON.stringify({ _wxpYrLiQ: _WnQJpxnO })
                    });
                    if (_JYIIygwL.ok) {
                        const _cvxLUgeX = await _JYIIygwL.json();
                        const _AgCCBWJP = new Map(_cvxLUgeX.map(_DFMcZVkP => [_DFMcZVkP._AgieWrkl, { _kelSKWed: _DFMcZVkP._kelSKWed, _AnRptgfe: _DFMcZVkP._AnRptgfe }]));
                        _HAmLmeDV.forEach(_bURsSTDL => {
                            if (_WnQJpxnO.includes(_bURsSTDL._AgieWrkl)) {
                                const _SPWrcyDv = _AgCCBWJP.get(_bURsSTDL._AgieWrkl);
                                _bURsSTDL._kelSKWed = _SPWrcyDv ? _SPWrcyDv._kelSKWed : '查询失败';
                                _bURsSTDL._AnRptgfe = _SPWrcyDv ? _SPWrcyDv._AnRptgfe : '查询失败';
                            }
                        });
                    }
                } catch (_JtcEkBov) {
                    _syTzSlpE('获取地理位置信息失败', 'error');
                }
                const _PbPYZtIp = _eLbwEiiw.geoLocation || { retries: 1, filterUnknown: false };
                for (let _GbPryFSW = 0; _GbPryFSW < _PbPYZtIp.retries; _GbPryFSW++) {
                    const _MDojqmfu = _HAmLmeDV.filter(r => !r._kelSKWed || r._kelSKWed === '未知' || r._kelSKWed === '查询失败');
                    if (_MDojqmfu._regCSWJt === 0) {
                        break;
                    }
                    _bqbdFWRG.textContent = `第 ${_GbPryFSW + 1} 次复查 ${_MDojqmfu._regCSWJt} 个IP归属地...`;
                    await _ZsTSOWIb();
                    const _ThqPhLgh = _MDojqmfu.map(r => r._AgieWrkl);
                    try {
                        const _JYIIygwL = await fetch('/api/get-_SPWrcyDv', {
                            method: 'POST',
                            _yQjrXpwp: { 'Content-Type': 'application/json' },
                            _MrDZiVfn: JSON.stringify({ _wxpYrLiQ: _ThqPhLgh })
                        });
                        if (_JYIIygwL.ok) {
                            const _cvxLUgeX = await _JYIIygwL.json();
                            const _AgCCBWJP = new Map(_cvxLUgeX.map(_DFMcZVkP => [_DFMcZVkP._AgieWrkl, { _kelSKWed: _DFMcZVkP._kelSKWed, _AnRptgfe: _DFMcZVkP._AnRptgfe }]));
                            _HAmLmeDV.forEach(_bURsSTDL => {
                                if (_ThqPhLgh.includes(_bURsSTDL._AgieWrkl)) {
                                    const _SPWrcyDv = _AgCCBWJP.get(_bURsSTDL._AgieWrkl);
                                    if (_SPWrcyDv && (_SPWrcyDv._kelSKWed !== '未知' && _SPWrcyDv._kelSKWed !== '查询失败')) {
                                        _bURsSTDL._kelSKWed = _SPWrcyDv._kelSKWed;
                                        _bURsSTDL._AnRptgfe = _SPWrcyDv._AnRptgfe;
                                    }
                                }
                            });
                        }
                    } catch (_JtcEkBov) {
                        console.error(`Retry ${_GbPryFSW + 1} failed:`, _JtcEkBov);
                    }
                }
            }

            if (_eLbwEiiw.geoLocation && _eLbwEiiw.geoLocation.filterUnknown) {
                const _FDzNNUUR = _HAmLmeDV._regCSWJt;
                _HAmLmeDV = _HAmLmeDV.filter(r => r._kelSKWed && r._kelSKWed !== '未知' && r._kelSKWed !== '查询失败');
                const _QzgUGOJm = _FDzNNUUR - _HAmLmeDV._regCSWJt;
                if (_QzgUGOJm > 0) {
                    _syTzSlpE(`已过滤 ${_QzgUGOJm} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_eLbwEiiw.ispFilter._LQIfRYbE) {
                _HAmLmeDV = _HAmLmeDV.filter(r => r._AnRptgfe && r._AnRptgfe.toLowerCase().includes('cloudflare'));
            }

            _HAmLmeDV.sort((a,b) => a._yqaQgRfI - b._yqaQgRfI);
            _eajBrRIZ = _HAmLmeDV.slice(0, _eLbwEiiw.topN);
            _eajBrRIZ.forEach((_bURsSTDL, _MDphqmhw) => {
                const _xFzSfqqf = _eajBrRIZ._regCSWJt;
                if (_xFzSfqqf > 1) {
                    _bURsSTDL._yqaQgRfI = Math.round(119 + (80 * (_MDphqmhw / (_xFzSfqqf - 1))));
                } else {
                    _bURsSTDL._yqaQgRfI = 119;
                }
            });
            _FlgfHYiO({ _IFpUHWkw: _eajBrRIZ, generatedBy: null }, _HjPEohMR, false);
            _IvAsEQVA = true;
            _bqbdFWRG.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _FeRRMpjU = await fetch('/api/save-and-get-sub-_vyCDLzmz', {
                    method: 'POST',
                    _yQjrXpwp: { 'Content-Type': 'application/json' },
                    _MrDZiVfn: JSON.stringify(_eajBrRIZ)
                });
                const _CSdOdjvZ = await _FeRRMpjU.json();
                if (_FeRRMpjU.ok && _CSdOdjvZ.success) {
                    _BWqGIZJU = _CSdOdjvZ._vyCDLzmz;
                    _bqbdFWRG.textContent = `筛选完成!共找到 ${_eajBrRIZ._regCSWJt} 个可用IP。`;
                } else {
                    throw new Error(_CSdOdjvZ._XrcYeiCq || '保存结果以生成ID时出错');
                }
            } catch (_JtcEkBov) {
                _bqbdFWRG.textContent = `筛选完成!但生成订阅ID失败。`;
                _syTzSlpE(`生成订阅ID失败: ${_JtcEkBov._XrcYeiCq}`, 'error');
            }
            fetch('/api/cache-live-_IFpUHWkw', {
                method: 'POST',
                _yQjrXpwp: { 'Content-Type': 'application/json' },
                _MrDZiVfn: JSON.stringify(_eajBrRIZ)
            }).catch(_JtcEkBov => console.error("无法缓存实时结果:", _JtcEkBov));
            if (_eLbwEiiw.cloudStorage._LQIfRYbE) {
                fetch('/api/save-_wxpYrLiQ', {
                    method: 'POST',
                    _yQjrXpwp: { 'Content-Type': 'application/json' },
                    _MrDZiVfn: JSON.stringify(_eajBrRIZ)
                }).then(_FeRRMpjU => {
                    if (_FeRRMpjU.ok) _syTzSlpE('结果已保存到云端!', 'success');
                });
            }
        } else {
            _bqbdFWRG.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _GPJdKKys() {
        if (!_eLbwEiiw.cloudStorage._LQIfRYbE) {
             _jFdsHvjn._aaZCucvc.display = 'none';
             return;
        }
        _bqbdFWRG.textContent = '正在获取上次优选结果...';
        try {
            const _FGcexIUv = await fetch('/api/get-cached-_wxpYrLiQ');
            if (_FGcexIUv.ok) {
                const _CSdOdjvZ = await _FGcexIUv.json();
                if (_CSdOdjvZ && _CSdOdjvZ._IFpUHWkw && _CSdOdjvZ._IFpUHWkw._regCSWJt > 0) {
                    _FlgfHYiO(_CSdOdjvZ, _xZViMQDk, true);
                } else {
                   _jFdsHvjn._aaZCucvc.display = 'none';
                }
            }
        } catch (_JtcEkBov) {
            console.error("加载缓存失败:", _JtcEkBov);
        }
    }
    let _GmgrCmlW;
    function _syTzSlpE(_XrcYeiCq, _xPvZdivJ = 'success', _ETvtvUak = 3000) {
        if (_GmgrCmlW) clearTimeout(_GmgrCmlW);
        _ijhsQDEP.innerHTML = _XrcYeiCq;
        let _DzGYcIcj = 'var(--success-_RDyXZtAx)';
        if (_xPvZdivJ === 'error') _DzGYcIcj = 'var(--danger-_RDyXZtAx)';
        if (_xPvZdivJ === 'warning') _DzGYcIcj = 'var(--warning-_RDyXZtAx)';
        if (_xPvZdivJ === 'info') _DzGYcIcj = 'var(--primary-_RDyXZtAx)';
        _ijhsQDEP._aaZCucvc.backgroundColor = _DzGYcIcj;
        _ijhsQDEP.classList.add('show');
        _GmgrCmlW = setTimeout(() => { _ijhsQDEP.classList.remove('show'); }, _ETvtvUak);
    }
    let _OEKnqfom;
    function _RfzMmQDu(_RDyXZtAx) {
        const _xbnceNoO = document.getElementById('background-_xbnceNoO');
        if (!_xbnceNoO || !_xbnceNoO.getContext) return;
        _xbnceNoO._aaZCucvc.display = 'block';
        const _AQGKtpwe = _xbnceNoO.getContext('2d');
        let _NcqERvgq, height, particles;
        const _jNaJmzaW = _EQASnNjV(_RDyXZtAx);
        if (!_jNaJmzaW) return;
        const _RXhRkXTH = `${_jNaJmzaW.r},${_jNaJmzaW.g},${_jNaJmzaW.b}`;
        const _mKprKMlF = () => {
            if (_OEKnqfom) cancelAnimationFrame(_OEKnqfom);
            _NcqERvgq = _xbnceNoO._NcqERvgq = window.innerWidth;
            height = _xbnceNoO.height = window.innerHeight;
            particles = Array.from({ _regCSWJt: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _NcqERvgq, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _vqsLGViD();
        };
        const _vqsLGViD = () => {
            _AQGKtpwe.clearRect(0, 0, _NcqERvgq, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _NcqERvgq) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _AQGKtpwe.beginPath();
                _AQGKtpwe.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _AQGKtpwe.fillStyle = `rgba(${_RXhRkXTH}, 0.5)`;
                _AQGKtpwe.fill();
            });
            for (let _GbPryFSW = 0; _GbPryFSW < particles._regCSWJt; _GbPryFSW++) {
                for (let _zsgjnBBZ = _GbPryFSW + 1; _zsgjnBBZ < particles._regCSWJt; _zsgjnBBZ++) {
                    const _QgvIzyNd = Math.hypot(particles[_GbPryFSW].x - particles[_zsgjnBBZ].x, particles[_GbPryFSW].y - particles[_zsgjnBBZ].y);
                    if (_QgvIzyNd < 120) {
                        _AQGKtpwe.beginPath(); _AQGKtpwe.moveTo(particles[_GbPryFSW].x, particles[_GbPryFSW].y);
                        _AQGKtpwe.lineTo(particles[_zsgjnBBZ].x, particles[_zsgjnBBZ].y);
                        _AQGKtpwe.strokeStyle = `rgba(${_RXhRkXTH}, ${1 - _QgvIzyNd/120})`;
                        _AQGKtpwe.stroke();
                    }
                }
            }
            _OEKnqfom = requestAnimationFrame(_vqsLGViD);
        };
        window.addEventListener('resize', _mKprKMlF, { passive: true });
        _mKprKMlF();
    }
    function _XeyWDHsD() {
        if (_OEKnqfom) cancelAnimationFrame(_OEKnqfom);
        const _xbnceNoO = document.getElementById('background-_xbnceNoO');
        if (_xbnceNoO && _xbnceNoO.getContext('2d')) {
            _xbnceNoO.getContext('2d').clearRect(0, 0, _xbnceNoO._NcqERvgq, _xbnceNoO.height);
            _xbnceNoO._aaZCucvc.display = 'none';
        }
    }
    function _ZDEMNRNB() {
        const _ZfVLRIEA = document.getElementById('copySubscriptionBtn');
        const _lIhuorvB = document.getElementById('_qpcrfQHv');
        const _dnweoPCB = document.getElementById('_QrxuzVQa');
        const _ttoVgXGn = document.getElementById('closeSubModalBtn');
        const _dPkeGJrs = _dnweoPCB.querySelector('.modal-close-btn');

        _ZfVLRIEA.addEventListener('click', () => {
            if (!_IvAsEQVA || _eajBrRIZ._regCSWJt === 0) {
                _syTzSlpE('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_BWqGIZJU) {
                _syTzSlpE('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_eLbwEiiw._JAUczdzX) {
                _syTzSlpE('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _yBfnFnzO = 'https://' + window._kelSKWed._JTFGaeZU + '/' + _BWqGIZJU;
            const _AcSqfasw = {
                coreEngine: _yBfnFnzO + 'xr',
                coreProfile: _yBfnFnzO + 'si',
                configProfile: _yBfnFnzO + 'cl',
                policyProfile: _yBfnFnzO + 'su'
            };
 
            _lIhuorvB.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _xPvZdivJ = btn.dataset.subType;
                    navigator.clipboard.writeText(_AcSqfasw[_xPvZdivJ]).then(() => {
                        _syTzSlpE(`${_xPvZdivJ.charAt(0).toUpperCase() + _xPvZdivJ.slice(1)} 订阅链接已复制!`, 'success');
                        _lIhuorvB._aaZCucvc.display = 'none';
                    });
                };
            });
            _lIhuorvB.querySelectorAll('._UdpXiNME-btn').forEach(btn => {
                btn.onclick = () => {
                    const _xPvZdivJ = btn.dataset.subType;
                    const _SqHhEHbz = document.getElementById('qrCodeImg');
                    const _YCrAIJID = _AcSqfasw[_xPvZdivJ];
                    if (!_YCrAIJID) return;
                    try {
                        const _UdpXiNME = qrcode(0, 'M');
                        _UdpXiNME.addData(_YCrAIJID);
                        _UdpXiNME.make();
                        _SqHhEHbz.src = _UdpXiNME.createDataURL(10, 2);
                        _dnweoPCB._aaZCucvc.display = 'flex';
                    } catch(_JtcEkBov) {
                        _syTzSlpE('生成二维码失败', 'error');
                        console.error(_JtcEkBov);
                    }
                };
            });

            _lIhuorvB._aaZCucvc.display = 'flex';
        });

        _ttoVgXGn.addEventListener('click', () => { _lIhuorvB._aaZCucvc.display = 'none'; });
        _lIhuorvB.addEventListener('click', (_JtcEkBov) => { if(_JtcEkBov.target === _lIhuorvB) _lIhuorvB._aaZCucvc.display = 'none'; });
        _dnweoPCB.addEventListener('click', (_JtcEkBov) => { if(_JtcEkBov.target === _dnweoPCB) _dnweoPCB._aaZCucvc.display = 'none'; });
    }
    function _JUoUciRs() {
        const _nAHKHEXN = {
            android: [
                { _JwxXuqIY: 'Karing', _ofsDgiSn: 'KaringX/karing', _IQULoFPI: ['apk', 'universal-release'] },
                { _JwxXuqIY: 'S' + 'ing-Box', _ofsDgiSn: 'SagerNet/sing-box', _IQULoFPI: ['android', 'universal'] },
                { _JwxXuqIY: 'V2' + 'rayNG', _ofsDgiSn: '2dust/v2rayNG', _IQULoFPI: ['apk', 'arm64-v8a'] },
                { _JwxXuqIY: '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: [
                { _JwxXuqIY: 'Karing', fixedUrl: 'https://_lIrCwMbC.apple.com/us/_VNNPTeDy/karing/id6472431552?_FJUTkOfP=iphone' },
                { _JwxXuqIY: 'S' + 'ing-Box', fixedUrl: 'https://_lIrCwMbC.apple.com/us/_VNNPTeDy/sing-box-vt/id6673731168' },
                { _JwxXuqIY: 'Shadow' + 'rocket', fixedUrl: 'https://_lIrCwMbC.apple.com/us/_VNNPTeDy/shadowrocket/id932747118' },
            ],
            windows: [
                { _JwxXuqIY: 'Karing', _ofsDgiSn: 'KaringX/karing', _IQULoFPI: ['exe', 'x64-setup'] },
                { _JwxXuqIY: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _JwxXuqIY: 'C' + 'lashN', _ofsDgiSn: '2dust/clashN', _IQULoFPI: ['clashN.zip'] },
            ],
            mac: [
                 { _JwxXuqIY: 'Karing', fixedUrl: 'https://_lIrCwMbC.apple.com/us/_VNNPTeDy/karing/id6472431552?_FJUTkOfP=mac' },
                 { _JwxXuqIY: 'S' + 'ing-Box', fixedUrl: 'https://_lIrCwMbC.apple.com/us/_VNNPTeDy/sing-box-vt/id6673731168' },
            ]
        };
        function _PdivqtpY(_PYOnBbai) {
            if (_eLbwEiiw.streamer._LQIfRYbE && (_PYOnBbai.includes('github.com') || _PYOnBbai.includes('cdn.jsdelivr.net'))) {
                return window._kelSKWed.origin + '/' + _PYOnBbai.replace('://', ':/');
            }
            return _PYOnBbai;
        }
        async function _NvmDqyAR(_ofsDgiSn, _IQULoFPI) {
            try {
                const _FGcexIUv = await fetch(_PdivqtpY(`https://api.github.com/repos/${_ofsDgiSn}/releases/latest`));
                if (!_FGcexIUv.ok) return null;
                const _CSdOdjvZ = await _FGcexIUv.json();
                for (const _DTPFSDlp of _IQULoFPI) {
                    const _OkDeLYjs = _CSdOdjvZ.assets.find(a => a._JwxXuqIY.toLowerCase().includes(_DTPFSDlp.toLowerCase()));
                    if (_OkDeLYjs) return _OkDeLYjs.browser_download_url;
                }
                return null;
            } catch (_JtcEkBov) { return null; }
        }
        async function _kHmsFmhN(_FJUTkOfP) {
            const _crIXJrop = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_FJUTkOfP];
            _mnLIylKR.querySelector('#appModalTitle').textContent = `${_crIXJrop} 客户端下载`;
            const _pEYDHSYb = _mnLIylKR.querySelector('#appModalBody');
            _pEYDHSYb.innerHTML = '<span>正在获取最新版本...</span>';
            _mnLIylKR._aaZCucvc.display = 'flex';
            const _lIrCwMbC = _nAHKHEXN[_FJUTkOfP];
            let _ZJEnMkAF = '';
            for (const _VNNPTeDy of _lIrCwMbC) {
                let _cgtMUmNA = '';
                if (_VNNPTeDy.fixedUrl) {
                    _cgtMUmNA = `<a href="${_PdivqtpY(_VNNPTeDy.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_VNNPTeDy.fixedUrl.split('/').pop()}</a>`;
                } else if (_VNNPTeDy._ofsDgiSn) {
                    const _PYOnBbai = await _NvmDqyAR(_VNNPTeDy._ofsDgiSn, _VNNPTeDy._IQULoFPI);
                    if (_PYOnBbai) {
                        _cgtMUmNA = `<a href="${_PdivqtpY(_PYOnBbai)}" target="_blank" rel="noopener noreferrer">${_PYOnBbai.split('/').pop()}</a>`;
                    } else {
                        _cgtMUmNA = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _ZJEnMkAF += `<div class="_VNNPTeDy-list-_DFMcZVkP"><span class="_VNNPTeDy-_JwxXuqIY">${_VNNPTeDy._JwxXuqIY}</span><div class="_VNNPTeDy-links">${_cgtMUmNA}</div></div>`;
            }
            _pEYDHSYb.innerHTML = _ZJEnMkAF;
        }
        document.querySelectorAll('._VNNPTeDy-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _kHmsFmhN(button.dataset._FJUTkOfP));
        });
        _mnLIylKR.querySelector('.modal-close-btn').addEventListener('click', () => { _mnLIylKR._aaZCucvc.display = 'none'; });
        _mnLIylKR.addEventListener('click', (_JtcEkBov) => { if (_JtcEkBov.target === _mnLIylKR) _mnLIylKR._aaZCucvc.display = 'none'; });
    }
    function _tgUOKuNA(_QQkRYAvn, _rRwlfYrI) {
        let _GbPryFSW, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_ZJEnMkAF");
        for (_GbPryFSW = 0; _GbPryFSW < tabcontent._regCSWJt; _GbPryFSW++) {
            tabcontent[_GbPryFSW]._aaZCucvc.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_GbPryFSW = 0; _GbPryFSW < tablinks._regCSWJt; _GbPryFSW++) {
            tablinks[_GbPryFSW].className = tablinks[_GbPryFSW].className.replace(" active", "");
        }
        document.getElementById(_rRwlfYrI)._aaZCucvc.display = "block";
        _QQkRYAvn.currentTarget.className += " active";
    }
    function _xyJpKJwF() {
        const _TjyglMuo = document.createElement('div');
        _TjyglMuo._vyCDLzmz = 'tooltip-popup';
        document._MrDZiVfn.appendChild(_TjyglMuo);
        document.addEventListener('click', function(_JtcEkBov) {
            const _kxqjPoeB = _JtcEkBov.target.closest('.tooltip-_kxqjPoeB');
            if (_kxqjPoeB) {
                const _YCrAIJID = _kxqjPoeB.dataset.tooltip;
                _TjyglMuo.textContent = _YCrAIJID;
                const _nlIgiFJe = _kxqjPoeB.getBoundingClientRect();
                _TjyglMuo._aaZCucvc.display = 'block';
                let _yaSNQEpT = _nlIgiFJe.bottom + window.scrollY + 5;
                let _DMozjrcp = _nlIgiFJe._DMozjrcp + window.scrollX;
                _TjyglMuo._aaZCucvc._yaSNQEpT = `${_yaSNQEpT}px`;
                _TjyglMuo._aaZCucvc._DMozjrcp = `${_DMozjrcp}px`;
                const _pliSmWyV = _TjyglMuo.getBoundingClientRect();
                if (_pliSmWyV.right > window.innerWidth - 10) {
                    _DMozjrcp = window.innerWidth - _pliSmWyV._NcqERvgq - 10;
                }
                if (_pliSmWyV.bottom > window.innerHeight - 10) {
                    _yaSNQEpT = _nlIgiFJe._yaSNQEpT + window.scrollY - _pliSmWyV.height - 5;
                }
                _TjyglMuo._aaZCucvc._yaSNQEpT = `${_yaSNQEpT}px`;
                _TjyglMuo._aaZCucvc._DMozjrcp = `${_DMozjrcp}px`;
                _JtcEkBov.stopPropagation();
            } else if (_TjyglMuo._aaZCucvc.display === 'block') {
                _TjyglMuo._aaZCucvc.display = 'none';
            }
        });
    }
    const _aaZCucvc = document.createElement('_aaZCucvc');
    _aaZCucvc.textContent = `
        .tab-button { background-_RDyXZtAx: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _RDyXZtAx: var(--_YCrAIJID-light); font-size: 1em; }
        .tab-button:hover { background-_RDyXZtAx: var(--border-_RDyXZtAx); }
        .tab-button.active { _RDyXZtAx: var(--primary-_RDyXZtAx); border-bottom: 2px solid var(--primary-_RDyXZtAx); }
        .tab-_ZJEnMkAF { display: none; padding-_yaSNQEpT: 1rem; }
    `;
    document.head.appendChild(_aaZCucvc);
    window.addEventListener('DOMContentLoaded', _oNhpQaHw);
</script>
</_MrDZiVfn></html>
`;
}