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


import { connect } from "cloudflare:sockets";

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

const _OrZFUQYR = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _iAuIFADd = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _mQvbbvdG = '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 _xatZLdiJ = '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 _iWeWUebN(_yjraJIiW) {
    if (Array.isArray(_yjraJIiW)) {
        try {
            return String.fromCharCode.apply(null, _yjraJIiW);
        } catch (_IEhrOjLx) {
            return '';
        }
    }
    return _yjraJIiW;
}

function _OiWtPAzg(_IKtrpYVv) {
    return /^[0-9a-_aTqvHowW]{8}-[0-9a-_aTqvHowW]{4}-[4][0-9a-_aTqvHowW]{3}-[89ab][0-9a-_aTqvHowW]{3}-[0-9a-_aTqvHowW]{12}$/_QlxHsXXs.test(_IKtrpYVv);
}

const _HWtRAxvq = "optimized_ips_v4";
const _xEMQgKoA = "global_config_v4";
const _TMlMaVxU = "admin_password_v4";
const _NYhaYnkU = "live_results_temp_v1";
const _NdwDXgKC = "latest_sub_id_v1";

export default {
  async fetch(_JPetdNTd, _iNbETDOJ, _vscvGUTk) {
    try {
      if (!_iNbETDOJ.DB) {
          const _LPfmWDcX = _zpDRcOZY("D1 数据库 'DB' 未绑定。");
          return new Response(_LPfmWDcX, { status: 503, _skdDjFAj: { 'Content-Type': '_SquPJSls/html;_emrySbDR=UTF-8' }});
      }

      _vscvGUTk.waitUntil(
          _iNbETDOJ.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_BfGaXxgR TEXT PRIMARY KEY, _yjraJIiW TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_IKtrpYVv TEXT PRIMARY KEY, _VKuCcQUN TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_IEhrOjLx => console.error("DB Init Error:", _IEhrOjLx._rFZPDjIC))
      );

      const _xnyHYIzb = new URL(_JPetdNTd._xnyHYIzb);
      const _atPIzTsm = _xnyHYIzb.pathname;
      const _MujDjMvU = _JPetdNTd._skdDjFAj.get("Upgrade");
      const _gcynLpiH = await _uQjiTRsw(_iNbETDOJ);
      
      if (_gcynLpiH.websocketStreamer && _gcynLpiH.websocketStreamer._GqxlmxBu && _MujDjMvU && _MujDjMvU.toLowerCase() === "websocket") {
          const _hFqqJrRf = _gcynLpiH.websocketStreamer._xnyHYIzb;
          if (_hFqqJrRf && _hFqqJrRf.trim().startsWith('https://')) {
              try {
                  const _XvVgSxSJ = new Request(_hFqqJrRf.trim() + _xnyHYIzb.pathname + _xnyHYIzb.search, _JPetdNTd);
                  return await fetch(_XvVgSxSJ);
              } catch (_IEhrOjLx) {
                  return new Response(`Upstream WebSocket gateway failed: ${_IEhrOjLx._rFZPDjIC}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_MujDjMvU && _MujDjMvU.toLowerCase() === "websocket") {
          return await _JMNJLKII(_JPetdNTd, _iNbETDOJ, _gcynLpiH);
      }
      
      const _shWitLaE = _atPIzTsm._gSSWPfdD(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_shWitLaE) {
          const [, _qhwfZnKn, typeSuffix] = _shWitLaE;
          const _NECIuZxM = _gcynLpiH._NECIuZxM;
          if (!_NECIuZxM || _NECIuZxM.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _skdDjFAj: { 'Content-Type': '_SquPJSls/plain; _emrySbDR=utf-8' } });
          }
          const _tTOWroDy = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _vPHzaghy = _tTOWroDy[typeSuffix];
          const _medYvyGq = _NECIuZxM.replace(/\/$/, '');
          const _jRzwWwEa = `${_xnyHYIzb.origin}/${_qhwfZnKn}`;
          const _nyGZbXfW = `${_medYvyGq}/${_vPHzaghy}?_gcynLpiH=${encodeURIComponent(_jRzwWwEa)}`;
          try {
              const _tEfBCnnl = await fetch(_nyGZbXfW, { _skdDjFAj: { 'User-Agent': _JPetdNTd._skdDjFAj.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _dHbxBMnY = new Headers(_tEfBCnnl._skdDjFAj);
              _dHbxBMnY._foLoWWQC('Access-Control-Allow-Origin', '*');
              return new Response(_tEfBCnnl._cvKfTXWI, { status: _tEfBCnnl.status, statusText: _tEfBCnnl.statusText, _skdDjFAj: _dHbxBMnY });
          } catch (_IEhrOjLx) {
              return new Response(`获取上游订阅失败: ${_IEhrOjLx._rFZPDjIC}`, { status: 502, _skdDjFAj: { 'Content-Type': '_SquPJSls/plain; _emrySbDR=utf-8' } });
          }
      }

      if (_atPIzTsm.startsWith('/https:/') || _atPIzTsm.startsWith('/http:/')) {
          return _DcuQPSnG(_JPetdNTd, _gcynLpiH);
      }
      
      if (_gcynLpiH.customSubPath && _gcynLpiH.customSubPath._GqxlmxBu && _gcynLpiH.customSubPath._atPIzTsm && _atPIzTsm === '/' + _gcynLpiH.customSubPath._atPIzTsm.trim()) {
          const _LVQheWsN = _iNbETDOJ.DB.prepare("SELECT _yjraJIiW FROM kv_data WHERE _BfGaXxgR = ?").bind(_NdwDXgKC);
          const { _YHtsypkv } = await _LVQheWsN.all();
          const _CqbgzbTn = _YHtsypkv._JoGjJgLm > 0 ? _YHtsypkv[0]._yjraJIiW : null;
          if (_CqbgzbTn) {
              return _eZBTxolj({ _sCFVOlUS: { _IKtrpYVv: _CqbgzbTn }, _xnyHYIzb: _JPetdNTd._xnyHYIzb }, _iNbETDOJ);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _skdDjFAj: { 'Content-Type': '_SquPJSls/plain; _emrySbDR=utf-8' } });
          }
      }
      
      const _PgxGCwcu = _atPIzTsm.split('/').filter(Boolean);
      if (_PgxGCwcu._JoGjJgLm === 1 && !_atPIzTsm.startsWith('/api/')) {
          const _qhwfZnKn = _PgxGCwcu[0];
          return _eZBTxolj({ _sCFVOlUS: { _IKtrpYVv: _qhwfZnKn }, _xnyHYIzb: _JPetdNTd._xnyHYIzb }, _iNbETDOJ);
      }

      if (_atPIzTsm.startsWith('/api/')) {
          if (_atPIzTsm === '/api/_gcynLpiH' && _JPetdNTd.method === 'POST') return _LqnyDjmR(_JPetdNTd, _iNbETDOJ, _vscvGUTk);
          if (_atPIzTsm === '/api/_foLoWWQC-_jCFiQgRE') return _VQTXWIfW(_JPetdNTd, _iNbETDOJ);
          if (_atPIzTsm === '/api/change-_jCFiQgRE') return _cOXKVuAn(_JPetdNTd, _iNbETDOJ);
          if (_atPIzTsm === '/api/verify-_jCFiQgRE') return _IPbKwAWn(_JPetdNTd, _iNbETDOJ);
          if (_atPIzTsm === '/api/verify-visitor-_jCFiQgRE' && _JPetdNTd.method === 'POST') return _WoIVBoHJ(_JPetdNTd, _iNbETDOJ);
          if (_atPIzTsm === '/api/cache-live-_YHtsypkv' && _JPetdNTd.method === 'POST') return _NRfeJyjJ(_JPetdNTd, _iNbETDOJ, _vscvGUTk);
          if (_atPIzTsm === '/api/get-_ypEORTXI' && _JPetdNTd.method === 'POST') return _hDJTvgzU(_JPetdNTd, _iNbETDOJ);
          if (_atPIzTsm === '/api/get-cached-_vvXQGUiR') return _BldIqcmR(_JPetdNTd, _iNbETDOJ);
          if (_atPIzTsm === '/api/save-_vvXQGUiR') return _uQRBizjR(_JPetdNTd, _iNbETDOJ, _vscvGUTk);
          if (_atPIzTsm === '/api/save-and-get-sub-_IKtrpYVv' && _JPetdNTd.method === 'POST') return _nRYwByVG(_JPetdNTd, _iNbETDOJ);
          if (_atPIzTsm.startsWith('/api/get-_QgWWEBEH/')) {
              const _qhwfZnKn = _atPIzTsm.split('/').pop();
              return _eZBTxolj({ _sCFVOlUS: { _IKtrpYVv: _qhwfZnKn }, _xnyHYIzb: _JPetdNTd._xnyHYIzb }, _iNbETDOJ);
          }
          if (_atPIzTsm === '/api/_gcynLpiH' && _JPetdNTd.method === 'GET') return _XbkFKMiw(_iNbETDOJ);
          if (_atPIzTsm === '/api/get-resolved-_vvXQGUiR') return _DgbecDQL(_JPetdNTd);
          if (_atPIzTsm === '/api/parse-_vvXQGUiR-from-_RkxWqceQ' && _JPetdNTd.method === 'POST') return _JkcRaSHn(_JPetdNTd, _iNbETDOJ);
          if (_atPIzTsm === '/api/endpoints') return _nwjMRcEI(_JPetdNTd, _iNbETDOJ);
          if (_atPIzTsm === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_atPIzTsm === '/_jAwlIgeD') return _gYGIGOxF(_JPetdNTd, _iNbETDOJ);
      if (_atPIzTsm === '/bing-wallpaper') return _qMrClpuR();

      return _HLCILLkO(_JPetdNTd, _iNbETDOJ, _vscvGUTk);
    } catch (err) {
      let _IEhrOjLx = err;
      return new Response(_IEhrOjLx.toString(), { status: 500 });
    }
  }
};

const _FnZNxMpL = { 'Accept': '_SquPJSls/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 _ngiFRnjy(_xnyHYIzb, _zpclksUt) {
    const _VHpiYngw = await fetch(_xnyHYIzb, { _skdDjFAj: { ..._FnZNxMpL, 'Referer': _zpclksUt.referer } });
    if (_VHpiYngw.ok) return _VHpiYngw._SquPJSls();
    return null;
}

async function _pyPOKDnz(_xnyHYIzb, _zpclksUt) {
    const _gYIXTIuY = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_xnyHYIzb)}`;
    const _VHpiYngw = await fetch(_gYIXTIuY, { _skdDjFAj: { ..._FnZNxMpL, 'Referer': _zpclksUt.referer } });
    if (!_VHpiYngw.ok) return null;
    const _cvKfTXWI = await _VHpiYngw._SquPJSls();
    const _gSSWPfdD = _cvKfTXWI._gSSWPfdD(/<pre[^>]*>([\s\S]*?)<\/pre>/_QlxHsXXs);
    return _gSSWPfdD && _gSSWPfdD[1] ? _gSSWPfdD[1].replace(/&amp;/g, '&') : null;
}

function _OkxeALsk(_XJLNgCkv) {
    let _KqZJxpdh;
    try {
        _KqZJxpdh = atob(_XJLNgCkv.replace(/\s/g, ''));
    } catch (_IEhrOjLx) {
        _KqZJxpdh = _XJLNgCkv;
    }

    const _QgWWEBEH = _KqZJxpdh.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _biXhBQUp = new Set();
    const _MPBehojR = /@([^?#]+?):(\d+)/;

    for (const _rAtpxMjL of _QgWWEBEH) {
        let _GkRYaraU = '';
        let _SADXxFkD = '';

        try {
            if (_rAtpxMjL.startsWith('vmess://')) {
                const _rcSjeMUS = atob(_rAtpxMjL.substring(8));
                const _gcynLpiH = JSON.parse(_rcSjeMUS);
                _GkRYaraU = _gcynLpiH.add;
                _SADXxFkD = _gcynLpiH._SADXxFkD;
            } else {
                const _gSSWPfdD = _rAtpxMjL._gSSWPfdD(_MPBehojR);
                if (_gSSWPfdD && _gSSWPfdD[1] && _gSSWPfdD[2]) {
                    _GkRYaraU = _gSSWPfdD[1].replace(/[\[\]]/g, '');
                    _SADXxFkD = _gSSWPfdD[2];
                }
            }
        } catch (_IEhrOjLx) {
            console.warn(`Could not parse _rAtpxMjL: ${_rAtpxMjL}`);
        }

        if (_GkRYaraU && _SADXxFkD) {
            _biXhBQUp.add(`${_GkRYaraU}:${_SADXxFkD}`);
        }
    }
    return Array.from(_biXhBQUp);
}

async function _nLNmNPAt(_mHPlUjNZ) {
    try {
        const _VHpiYngw = await fetch(_mHPlUjNZ, { _skdDjFAj: _FnZNxMpL });
        if (!_VHpiYngw.ok) {
            console.error(`Failed to fetch subscription: ${_VHpiYngw.status}`);
            return [];
        }
        const _XJLNgCkv = await _VHpiYngw._SquPJSls();
        return _OkxeALsk(_XJLNgCkv);
    } catch (error) {
        console.error(`Error processing subscription ${_mHPlUjNZ}:`, error);
        return [];
    }
}

async function _JRBfwyoH(_fLDjfvjW) {
    const _euhNoLnq = _fLDjfvjW.trim();
    const _TVDgLubY = /^(vless|vmess|trojan|ss):\/\//.test(_euhNoLnq);
    const _JYGzWNVJ = (() => {
        if (_euhNoLnq._JoGjJgLm < 20 || _euhNoLnq.startsWith('http')) return false;
        const _sLMEZckc = _euhNoLnq.replace(/\s/g, '');
        if (_sLMEZckc._JoGjJgLm % 4 !== 0 && !_sLMEZckc.includes('=')) return false;
        try {
            atob(_sLMEZckc);
            return true;
        } catch (_IEhrOjLx) {
            return false;
        }
    })();

    if (_TVDgLubY || _JYGzWNVJ) {
        return _OkxeALsk(_euhNoLnq).join('\n');
    }

    const _pEgSbcKi = [
        'https://ipdb.api.030101.xyz/?_cYgHVtnz=bestcf&_pJuKLUwl=true',
        'https://ipdb.api.030101.xyz/?_cYgHVtnz=bestproxy&_pJuKLUwl=true'
    ];
    const _qmiHVQxA = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_QlxHsXXs.test(_fLDjfvjW) || _fLDjfvjW.includes('?_lRlYIfgY=');

    if (_qmiHVQxA) {
        const _vvXQGUiR = await _nLNmNPAt(_fLDjfvjW);
        return _vvXQGUiR.join('\n');
    }

    let _XJLNgCkv = '';
    if (_pEgSbcKi.includes(_fLDjfvjW)) {
        _XJLNgCkv = await _ngiFRnjy(_fLDjfvjW, { referer: _fLDjfvjW });
        if (!_XJLNgCkv || _XJLNgCkv._JoGjJgLm < 8) {
            _XJLNgCkv = await _pyPOKDnz(_fLDjfvjW, { referer: _fLDjfvjW });
        }
    } else {
        try {
            const _BpNSfQyJ = await fetch(_fLDjfvjW, { _skdDjFAj: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_BpNSfQyJ.ok) {
                _XJLNgCkv = await _BpNSfQyJ._SquPJSls();
            } else {
                console.warn(`Failed to fetch URL ${_fLDjfvjW}: ${_BpNSfQyJ.status}`);
            }
        } catch (_IEhrOjLx) {
            console.error(`Error fetching URL ${_fLDjfvjW}:`, _IEhrOjLx);
        }
    }

    const _GNZpAxlG = _OkxeALsk(_XJLNgCkv);
    if (_GNZpAxlG._JoGjJgLm > 0) {
        return _GNZpAxlG.join('\n');
    }

    return _XJLNgCkv || '';
}

async function _DcuQPSnG(_JPetdNTd, _gcynLpiH) {
    if (!_gcynLpiH.streamer._GqxlmxBu) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _xnyHYIzb = new URL(_JPetdNTd._xnyHYIzb);
    const _hvpCzCKA = _xnyHYIzb.pathname.substring(1).replace(':/', '://');
    try {
        const _nyGZbXfW = new URL(_hvpCzCKA);
        const _cdYjpbwV = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_cdYjpbwV.some(domain => _nyGZbXfW._GkRYaraU.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _rlVFZDaW = new Headers(_JPetdNTd._skdDjFAj);
        _rlVFZDaW._foLoWWQC('Host', _nyGZbXfW._GkRYaraU);
        _rlVFZDaW._foLoWWQC('User-Agent', 'CF-Worker-Streamer/1.0');
        const _pKGeNccH = await fetch(_nyGZbXfW.toString(), {
            method: _JPetdNTd.method,
            _skdDjFAj: _rlVFZDaW,
            _cvKfTXWI: _JPetdNTd._cvKfTXWI,
        });
        const _dHbxBMnY = new Headers(_pKGeNccH._skdDjFAj);
        _dHbxBMnY._foLoWWQC('Access-Control-Allow-Origin', '*');
        _dHbxBMnY._foLoWWQC('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _dHbxBMnY._foLoWWQC('Access-Control-Allow-Headers', '*');
        _dHbxBMnY._foLoWWQC('Cache-Control', 'public, max-age=86400');
        _dHbxBMnY._foLoWWQC('X-Streamer-Source', 'CF-Worker');
        _dHbxBMnY.delete('_XJLNgCkv-security-policy');
        _dHbxBMnY.delete('x-_XJLNgCkv-security-policy');
        _dHbxBMnY.delete('x-webkit-csp');
        return new Response(_pKGeNccH._cvKfTXWI, {
            status: _pKGeNccH.status,
            statusText: _pKGeNccH.statusText,
            _skdDjFAj: _dHbxBMnY,
        });
    } catch (_IEhrOjLx) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _JMNJLKII(_JPetdNTd, _iNbETDOJ, _gcynLpiH) {
    try {
        const _wqAuScdL = _gcynLpiH || await _uQjiTRsw(_iNbETDOJ);
        const _HpycDnTR = (_wqAuScdL.itemLink._ATlQBTOC && _wqAuScdL.itemLink._ATlQBTOC[0]) || {};
        const _HtBEXgag = _HpycDnTR['_lRlYIfgY'] || _iWeWUebN(_pJUBHBGk);

        if (!_OiWtPAzg(_HtBEXgag)) {
            throw new Error("Configured user _WPgEPttI is not valid.");
        }

        const _DIfJAUnY = _wqAuScdL.dataFeeds.universalFallbackAddress;
        let _IFdJOGmR = {};
        
        const _HMHJNnqS = _iWeWUebN(_KOGTnOWF[0] || "");

        if (_DIfJAUnY) {
            const [_WXrFbaSJ, _SADXxFkD = '443'] = _DIfJAUnY.split(':');
            _IFdJOGmR = { _WXrFbaSJ, _SADXxFkD };
        } else {
            const [_WXrFbaSJ, _SADXxFkD = '443'] = _HMHJNnqS.split(':');
            _IFdJOGmR = { _WXrFbaSJ, _SADXxFkD };
        }

        const _xnyHYIzb = new URL(_JPetdNTd._xnyHYIzb);
        const _atPIzTsm = _xnyHYIzb.pathname;
        let _OFINUBSa = '';

        const _fYJdovbo = _xnyHYIzb.searchParams.get('remote');
        if (_fYJdovbo) {
           _OFINUBSa = atob(_fYJdovbo);
        } else if (_atPIzTsm.startsWith('/endpoint=')) {
           _OFINUBSa = _atPIzTsm.substring(10);
        } else if (_atPIzTsm._JoGjJgLm > 1 && _atPIzTsm.substring(1).includes('.')) {
           _OFINUBSa = _atPIzTsm.substring(1);
        }

        if (_OFINUBSa) {
            const [_WXrFbaSJ, _SADXxFkD = '443'] = _OFINUBSa.split(':');
            _IFdJOGmR = { _WXrFbaSJ, _SADXxFkD };
        }
        
        return await _gVfMMnRR(_JPetdNTd, _HtBEXgag, _IFdJOGmR);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _gVfMMnRR(_JPetdNTd, _WPgEPttI, _IFdJOGmR) {
    const _dFZHRyej = new WebSocketPair();
    const [clientEnd, _KTVzohcC] = Object.values(_dFZHRyej);
    _KTVzohcC.accept();

    let _BuajiPEt = { _YhKmktPT: null };
    const _LBgDdJgc = _JPetdNTd._skdDjFAj.get("sec-websocket-protocol") || "";
    const _skFmwzFF = _LUlAkhsd(_KTVzohcC, _LBgDdJgc);

    _skFmwzFF.pipeTo(new WritableStream({
        async write(chunk) {
            if (_BuajiPEt._YhKmktPT) {
                const _hvjURIDW = _BuajiPEt._YhKmktPT.writable.getWriter();
                await _hvjURIDW.write(chunk);
                _hvjURIDW.releaseLock();
                return;
            }

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

            const _DqnRUjWF = new Uint8Array([details._rTegwfyF[0], 0]);
            const _vMNHvMBR = chunk.slice(details.payloadIndex);

            await _DTtoyOrG(_BuajiPEt, details._yfVauJpZ, details._MMIquAzW, _vMNHvMBR, _KTVzohcC, _DqnRUjWF, _IFdJOGmR);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _SnDeksCu(_KTVzohcC);
    });

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

async function _DTtoyOrG(_BuajiPEt, _yfVauJpZ, _MMIquAzW, _rDpCsaYU, _amTXBRSX, _DqnRUjWF, _YqEFWbIk) {
    const _VSMDYkwD = async (_WXrFbaSJ, _SADXxFkD) => {
        let _qIpvijto = _WXrFbaSJ;
        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(_WXrFbaSJ)) {
            _qIpvijto = `${atob('d3d3Lg==')}${_WXrFbaSJ}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _YhKmktPT = connect({ _GkRYaraU: _qIpvijto, _SADXxFkD });
        _BuajiPEt._YhKmktPT = _YhKmktPT;
        const _hvjURIDW = _YhKmktPT.writable.getWriter();
        await _hvjURIDW.write(_rDpCsaYU);
        _hvjURIDW.releaseLock();
        return _YhKmktPT;
    };

    const _bwFoPrHd = async () => {
        if (!_YqEFWbIk._WXrFbaSJ) return;
        console.log(`Direct connection failed, falling back to gateway: ${_YqEFWbIk._WXrFbaSJ}`);
        const _aiLcJQcU = await _VSMDYkwD(_YqEFWbIk._WXrFbaSJ, parseInt(_YqEFWbIk._SADXxFkD, 10));
        _aiLcJQcU.closed.catch(() => {}).finally(() => _SnDeksCu(_amTXBRSX));
        _czpPcZxI(_aiLcJQcU, _amTXBRSX, _DqnRUjWF, null);
    };

    try {
        const _DQYaSlMJ = await _VSMDYkwD(_yfVauJpZ, _MMIquAzW);
        _czpPcZxI(_DQYaSlMJ, _amTXBRSX, _DqnRUjWF, _bwFoPrHd);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _bwFoPrHd();
    }
}

function _LUlAkhsd(_KTVzohcC, _LBgDdJgc) {
    let _KNuRtsFN = false;
    return new ReadableStream({
        start(_QrdaXFef) {
            _KTVzohcC.addEventListener("_rFZPDjIC", (event) => { if (_KNuRtsFN) return; _QrdaXFef.enqueue(event._VKuCcQUN); });
            _KTVzohcC.addEventListener("close", () => { _SnDeksCu(_KTVzohcC); if (_KNuRtsFN) return; _QrdaXFef.close(); });
            _KTVzohcC.addEventListener("error", (err) => _QrdaXFef.error(err));
            if (_LBgDdJgc) {
                try {
                    const _XzoHXpaj = atob(_LBgDdJgc.replace(/-/g, "+").replace(/_/g, "/"));
                    _QrdaXFef.enqueue(Uint8Array.from(_XzoHXpaj, c => c.charCodeAt(0))._tkXpHQwc);
                } catch (_IEhrOjLx) { console.error("Failed to decode early _VKuCcQUN:", _IEhrOjLx); }
            }
        },
        cancel() { _KNuRtsFN = true; _SnDeksCu(_KTVzohcC); },
    });
}

async function _uYiDJZcY(_tkXpHQwc, _WPgEPttI) {
    if (_tkXpHQwc.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _rTegwfyF = new Uint8Array(_tkXpHQwc.slice(0, 1));
    const _ijfWDmdB = _ilYDcRAY(new Uint8Array(_tkXpHQwc.slice(1, 17)));
    if (_ijfWDmdB !== _WPgEPttI) return { error: true, details: "Invalid _WPgEPttI" };
    const _ulbecAEM = new Uint8Array(_tkXpHQwc.slice(17, 18))[0];
    const _AfgxbNLT = new Uint8Array(_tkXpHQwc.slice(18 + _ulbecAEM, 19 + _ulbecAEM))[0];
    if (_AfgxbNLT !== 1) return { error: true, details: `Unsupported _AfgxbNLT: ${_AfgxbNLT}` };
    const _xFFWfiww = 19 + _ulbecAEM;
    const _MMIquAzW = new DataView(_tkXpHQwc.slice(_xFFWfiww, _xFFWfiww + 2)).getUint16(0);
    let _ZhQpxkQe = _xFFWfiww + 2;
    const _byfbkxXN = new Uint8Array(_tkXpHQwc.slice(_ZhQpxkQe, _ZhQpxkQe + 1))[0];
    let _znROEorX = 0;
    let _RCKlOeHQ = _ZhQpxkQe + 1;
    let _yfVauJpZ = "";
    switch (_byfbkxXN) {
        case 1: _znROEorX = 4; _yfVauJpZ = new Uint8Array(_tkXpHQwc.slice(_RCKlOeHQ, _RCKlOeHQ + _znROEorX)).join("."); break;
        case 2: _znROEorX = new Uint8Array(_tkXpHQwc.slice(_RCKlOeHQ, _RCKlOeHQ + 1))[0]; _RCKlOeHQ++; _yfVauJpZ = new TextDecoder().decode(_tkXpHQwc.slice(_RCKlOeHQ, _RCKlOeHQ + _znROEorX)); break;
        case 3: _znROEorX = 16; const _zbCMbWfH = new DataView(_tkXpHQwc.slice(_RCKlOeHQ, _RCKlOeHQ + _znROEorX)); const _bbXHwUzs = []; for (let _QlxHsXXs = 0; _QlxHsXXs < 8; _QlxHsXXs++) _bbXHwUzs.push(_zbCMbWfH.getUint16(_QlxHsXXs * 2).toString(16)); _yfVauJpZ = _bbXHwUzs.join(":"); break;
        default: return { error: true, details: `Invalid _denBfCcC _cYgHVtnz: ${_byfbkxXN}` };
    }
    if (!_yfVauJpZ) return { error: true, details: "Target _WXrFbaSJ is empty" };
    return { error: false, details: { _yfVauJpZ, _MMIquAzW, _rTegwfyF, payloadIndex: _RCKlOeHQ + _znROEorX } };
}

async function _czpPcZxI(_YhKmktPT, _amTXBRSX, _wSKvbxTj, _VjXnWUJu) {
    let _cONBfGoS = _wSKvbxTj;
    let _FknbvmCF = false;
    let _EdcYXcmz = _YhKmktPT._skFmwzFF.pipeTo(new WritableStream({
        write(chunk) {
            _FknbvmCF = true;
            if (_amTXBRSX.readyState !== 1) throw new Error("Channel is not open");
            if (_cONBfGoS) {
                const _ugZjAzru = new Uint8Array(_cONBfGoS.byteLength + chunk.byteLength);
                _ugZjAzru._foLoWWQC(new Uint8Array(_cONBfGoS));
                _ugZjAzru._foLoWWQC(new Uint8Array(chunk), _cONBfGoS.byteLength);
                _amTXBRSX.send(_ugZjAzru._tkXpHQwc);
                _cONBfGoS = null;
            } else {
                _amTXBRSX.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _amTXBRSX error:", err._rFZPDjIC);
    });

    await _EdcYXcmz;
    if (!_FknbvmCF && _VjXnWUJu) {
        _VjXnWUJu();
    }
}

function _SnDeksCu(_amTXBRSX) {
    try { if (_amTXBRSX.readyState === 1 || _amTXBRSX.readyState === 2) _amTXBRSX.close(); } catch (_IEhrOjLx) {}
}

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

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

async function _obXHshiM(_xnyHYIzb, _OEILSEky, _VjXnWUJu) {
    try {
        const _VHpiYngw = await fetch(_xnyHYIzb, {
            _skdDjFAj: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_VHpiYngw.ok) {
            console.error(`获取 ${_xnyHYIzb} 失败: HTTP ${_VHpiYngw.status}`);
            return _VjXnWUJu;
        }
        const _SquPJSls = await _VHpiYngw._SquPJSls();
        return _OEILSEky(_SquPJSls);
    } catch (error) {
        console.error(`获取或解析 ${_xnyHYIzb} 时发生网络错误: ${error._rFZPDjIC}`);
        return _VjXnWUJu;
    }
}

function _mCjviZeF(_SquPJSls) {
    if (!_SquPJSls) return [];
    const _JwOkqCsp = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _tjOKoHRJ = _SquPJSls.split(/[\s,;#|]+/);
    const _Ndxkypkd = [];
    for (const _ICDKEUiu of _tjOKoHRJ) {
        const _tmmkfxTA = _ICDKEUiu.trim();
        if (!_tmmkfxTA) continue;
        const _hbUbVJiB = _tmmkfxTA.lastIndexOf(':');
        let _NmEyvHpn = _tmmkfxTA;
        if(_hbUbVJiB > _tmmkfxTA.lastIndexOf(']')) {
             const _bQyalwYS = _tmmkfxTA.substring(_hbUbVJiB + 1);
             if(!isNaN(_bQyalwYS) && _bQyalwYS._JoGjJgLm > 0) {
                _NmEyvHpn = _tmmkfxTA.substring(0, _hbUbVJiB);
             }
        }
        if (_nTLReEKV.isValid(_NmEyvHpn.replace(/[\[\]]/g, '')) || _JwOkqCsp.test(_tmmkfxTA)) {
            _Ndxkypkd.push(_tmmkfxTA);
        }
    }
    return _Ndxkypkd;
}

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

function _vkuuwKSL(_SquPJSls) {
    if (!_SquPJSls) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_SquPJSls}}`);
    } catch (_IEhrOjLx) {
        console.error("解析 _zHxvaMjr 失败:", _IEhrOjLx);
        return { "N/A": "未知" };
    }
}

const _nTLReEKV = {
    isValid: (_jAwlIgeD) => _nTLReEKV.isIPv4(_jAwlIgeD) || _nTLReEKV.isIPv6(_jAwlIgeD),
    isIPv4: (_jAwlIgeD) => {
        if (typeof _jAwlIgeD !== 'string') return false;
        const _bbXHwUzs = _jAwlIgeD.split('.');
        if (_bbXHwUzs._JoGjJgLm !== 4) return false;
        return _bbXHwUzs.every(_MjMoIZwf => {
            const _kiYvppJm = parseInt(_MjMoIZwf, 10);
            return !isNaN(_kiYvppJm) && _kiYvppJm >= 0 && _kiYvppJm <= 255 && String(_kiYvppJm) === _MjMoIZwf;
        });
    },
    isIPv6: (_jAwlIgeD) => {
        if (typeof _jAwlIgeD !== '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]))$/_QlxHsXXs.test(_jAwlIgeD);
    },
    toLong4: (_jAwlIgeD) => _jAwlIgeD.split('.').reduce((acc, octet, _QlxHsXXs) => acc + (parseInt(octet) << (8*(3-_QlxHsXXs))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_jAwlIgeD) => {
        try {
            const _lvpgpRNw = _jAwlIgeD.split('/')[0];
            const _bbXHwUzs = _lvpgpRNw.split('::');
            if (_bbXHwUzs._JoGjJgLm > 2) return 0n;
            let _imcjPHiM = [];
            if (_bbXHwUzs[0]) {
                _imcjPHiM = _bbXHwUzs[0].split(':');
            }
            let _nkfRkCBT = [];
            if (_bbXHwUzs._JoGjJgLm > 1 && _bbXHwUzs[1]) {
                _nkfRkCBT = _bbXHwUzs[1].split(':');
            }
            if (_imcjPHiM._JoGjJgLm + _nkfRkCBT._JoGjJgLm > 8) return 0n;
            const _VTMNQBBw = 8 - (_imcjPHiM._JoGjJgLm + _nkfRkCBT._JoGjJgLm);
            const _njztiRTF = [
                ..._imcjPHiM,
                ...Array(_VTMNQBBw).fill('0'),
                ..._nkfRkCBT
            ].map(_MjMoIZwf => _MjMoIZwf || '0');
            while(_njztiRTF._JoGjJgLm < 8) {
                _njztiRTF.push('0');
            }
            let _QmkcZuhd = 0n;
            for (const _MjMoIZwf of _njztiRTF) {
                if (_MjMoIZwf._JoGjJgLm > 4) return 0n;
                const _yjraJIiW = BigInt('0x' + _MjMoIZwf);
                _QmkcZuhd = (_QmkcZuhd << 16n) | _yjraJIiW;
            }
            return _QmkcZuhd;
        } catch(_IEhrOjLx) {
            return 0n;
        }
    },
    fromBigInt6: (_QmkcZuhd) => {
        if (typeof _QmkcZuhd !== '_QmkcZuhd' || _QmkcZuhd < 0n) return null;
        const _bbXHwUzs = [];
        for (let _QlxHsXXs = 0; _QlxHsXXs < 8; _QlxHsXXs++) {
            _bbXHwUzs.unshift((_QmkcZuhd & 0xFFFFn).toString(16));
            _QmkcZuhd >>= 16n;
        }
        let _WRpEHkcn = { start: -1, _peOeVQDG: 0 };
        let _sXYFTwuo = { start: -1, _peOeVQDG: 0 };
        for (let _QlxHsXXs = 0; _QlxHsXXs < 8; _QlxHsXXs++) {
            if (_bbXHwUzs[_QlxHsXXs] === '0') {
                if (_sXYFTwuo.start === -1) _sXYFTwuo.start = _QlxHsXXs;
                _sXYFTwuo._peOeVQDG++;
            } else {
                if (_sXYFTwuo._peOeVQDG > _WRpEHkcn._peOeVQDG) _WRpEHkcn = { ..._sXYFTwuo };
                _sXYFTwuo = { start: -1, _peOeVQDG: 0 };
            }
        }
        if (_sXYFTwuo._peOeVQDG > _WRpEHkcn._peOeVQDG) _WRpEHkcn = { ..._sXYFTwuo };
        if (_WRpEHkcn._peOeVQDG > 1) {
            _bbXHwUzs.splice(_WRpEHkcn.start, _WRpEHkcn._peOeVQDG, '');
            if (_WRpEHkcn.start === 0) _bbXHwUzs.unshift('');
            if (_WRpEHkcn.start + _WRpEHkcn._peOeVQDG === 8) _bbXHwUzs.push('');
        }
        return _bbXHwUzs.join(':');
    },
    cidrToRange: (cidr, _WglccMDf = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _kLyhxwSX = parseInt(bitsStr, 10);
            const _vvXQGUiR = new Set();
            if (_nTLReEKV.isIPv4(range)) {
                if (isNaN(_kLyhxwSX) || _kLyhxwSX < 8 || _kLyhxwSX > 32) return [];
                if (_kLyhxwSX === 32) return [range];
                const _mvFKOCJN = _nTLReEKV.toLong4(range);
                const _vQvGNUNp = (0xFFFFFFFF << (32 - _kLyhxwSX)) >>> 0;
                const _cqLgFWtA = _mvFKOCJN & _vQvGNUNp;
                const _IjXLqLvg = 1 << (32 - _kLyhxwSX);
                if (_IjXLqLvg <= 2) return [];
                const _VNipXLdi = Math.min(_WglccMDf, _IjXLqLvg - 2);
                let _XKCHIncT = 0;
                while (_vvXQGUiR.size < _VNipXLdi && _XKCHIncT < _VNipXLdi * 5) {
                    const _nVmCPnvb = Math.floor(Math.random() * (_IjXLqLvg - 2)) + 1;
                    _vvXQGUiR.add(_nTLReEKV.fromLong4((_cqLgFWtA + _nVmCPnvb) >>> 0));
                    _XKCHIncT++;
                }
                return Array.from(_vvXQGUiR);
            } else if (_nTLReEKV.isIPv6(range)) {
                if (isNaN(_kLyhxwSX) || _kLyhxwSX < 16 || _kLyhxwSX > 128) return [];
                 if (_kLyhxwSX === 128) return [range];
                const _zuXBmWPP = _nTLReEKV.toBigInt6(range);
                const _vQvGNUNp = (2n ** BigInt(128 - _kLyhxwSX) - 1n);
                const _cqLgFWtA = _zuXBmWPP & ~_vQvGNUNp;
                const _ZfVCSKWB = 2n ** BigInt(128 - _kLyhxwSX);
                if (_ZfVCSKWB <= 2n) return [];
                let _XKCHIncT = 0;
                while (_vvXQGUiR.size < _WglccMDf && _XKCHIncT < _WglccMDf * 5) {
                     const _oLyyNHxN = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_oLyyNHxN);
                     let _WKByTleb = 0n;
                     for (const _AFIPAvqC of _oLyyNHxN) {
                         _WKByTleb = (_WKByTleb << 8n) | BigInt(_AFIPAvqC);
                     }
                     const _nVmCPnvb = _WKByTleb % (_ZfVCSKWB - 2n) + 1n;
                     _vvXQGUiR.add(_nTLReEKV.fromBigInt6(_cqLgFWtA + _nVmCPnvb));
                     _XKCHIncT++;
                }
                return Array.from(_vvXQGUiR);
            }
            return [];
        } catch(_IEhrOjLx) {
            console.error(`CIDR to range failed for ${cidr}:`, _IEhrOjLx);
            return [];
        }
    }
};

function _ZzVVnzqy(_VPtzsvlC, _mCtTAren) {
    const _LhYfLtlD = {};
    const _vYerfetY = Object._vYerfetY(_mCtTAren);
    const _bbXHwUzs = _vYerfetY.map(_BfGaXxgR => {
        const _QtuFBQdb = _VPtzsvlC * (_mCtTAren[_BfGaXxgR] / 100);
        return { _BfGaXxgR, _WglccMDf: Math.floor(_QtuFBQdb), remainder: _QtuFBQdb - Math.floor(_QtuFBQdb) };
    });
    let _fPhepvZg = _bbXHwUzs.reduce((acc, _MjMoIZwf) => acc + _MjMoIZwf._WglccMDf, 0);
    _bbXHwUzs.sort((a, b) => b.remainder - a.remainder);
    let _QnDAwjKi = _VPtzsvlC - _fPhepvZg;
    for (let _QlxHsXXs = 0; _QlxHsXXs < _QnDAwjKi; _QlxHsXXs++) {
        _bbXHwUzs[_QlxHsXXs % _bbXHwUzs._JoGjJgLm]._WglccMDf++;
    }
    for (const _MjMoIZwf of _bbXHwUzs) {
        _LhYfLtlD[_MjMoIZwf._BfGaXxgR] = _MjMoIZwf._WglccMDf;
    }
    return _LhYfLtlD;
}

async function _uRGMGDkQ(_iNbETDOJ) {
    const _LVQheWsN = _iNbETDOJ.DB.prepare("SELECT _yjraJIiW FROM kv_data WHERE _BfGaXxgR = ?").bind(_TMlMaVxU);
    const { _YHtsypkv } = await _LVQheWsN.all();
    return _YHtsypkv._JoGjJgLm > 0 ? _YHtsypkv[0]._yjraJIiW : null;
}

async function _ddPZDJsH(_iNbETDOJ, _jCFiQgRE) {
    const _LVQheWsN = _iNbETDOJ.DB.prepare(
        "INSERT INTO kv_data (_BfGaXxgR, _yjraJIiW) VALUES (?, ?) ON CONFLICT(_BfGaXxgR) DO UPDATE SET _yjraJIiW = excluded._yjraJIiW"
    );
    await _LVQheWsN.bind(_TMlMaVxU, _jCFiQgRE).run();
}

async function _IPbKwAWn(_JPetdNTd, _iNbETDOJ) {
    const { _jCFiQgRE } = await _JPetdNTd.json();
    const _nDoqdwyK = await _uRGMGDkQ(_iNbETDOJ);
    if (_nDoqdwyK === _jCFiQgRE) {
        return _ZnxjdSwR({ success: true });
    }
    return _ZnxjdSwR({ success: false, _rFZPDjIC: '密码错误' }, 401);
}

async function _WoIVBoHJ(_JPetdNTd, _iNbETDOJ) {
    const _yvgRNesI = await _uQjiTRsw(_iNbETDOJ);
    if (!_yvgRNesI.visitorPassword || !_yvgRNesI.visitorPassword._GqxlmxBu) {
        return _ZnxjdSwR({ success: true });
    }
    try {
        const { _jCFiQgRE } = await _JPetdNTd.json();
        const _FVEwHmaj = _yvgRNesI.visitorPassword._jCFiQgRE;
        if (_FVEwHmaj && _jCFiQgRE === _FVEwHmaj) {
            return _ZnxjdSwR({ success: true });
        }
        return _ZnxjdSwR({ success: false, _rFZPDjIC: '访客密码错误' }, 401);
    } catch (_IEhrOjLx) {
        return _ZnxjdSwR({ success: false, _rFZPDjIC: '无效请求' }, 400);
    }
}

async function _VQTXWIfW(_JPetdNTd, _iNbETDOJ) {
    const _ZxCrhIGR = await _uRGMGDkQ(_iNbETDOJ);
    if (_ZxCrhIGR) {
        return _ZnxjdSwR({ success: false, _rFZPDjIC: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _jCFiQgRE } = await _JPetdNTd.json();
    if (!_jCFiQgRE || _jCFiQgRE._JoGjJgLm < 6) {
        return _ZnxjdSwR({ success: false, _rFZPDjIC: "密码长度不能少于6位。" }, 400);
    }
    await _ddPZDJsH(_iNbETDOJ, _jCFiQgRE);
    return _ZnxjdSwR({ success: true, _rFZPDjIC: "初始密码设置成功!请刷新页面并登录。" });
}

async function _cOXKVuAn(_JPetdNTd, _iNbETDOJ) {
    const { _AZQpItsp, _WulPlBCB } = await _JPetdNTd.json();
    const _nDoqdwyK = await _uRGMGDkQ(_iNbETDOJ);
    if (_nDoqdwyK !== _AZQpItsp) {
        return _ZnxjdSwR({ success: false, _rFZPDjIC: "旧密码错误。" }, 403);
    }
    if (!_WulPlBCB || _WulPlBCB._JoGjJgLm < 6) {
        return _ZnxjdSwR({ success: false, _rFZPDjIC: "新密码长度不能少于6位。" }, 400);
    }
    await _ddPZDJsH(_iNbETDOJ, _WulPlBCB);
    return _ZnxjdSwR({ success: true, _rFZPDjIC: "密码修改成功!" });
}

function _raevGcwV() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _NECIuZxM: '',
        api: {
            _GqxlmxBu: true,
            _rFZPDjIC: '维护中...',
        },
        ispFilter: { _GqxlmxBu: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _GqxlmxBu: true
        },
        websocketStreamer: {
            _GqxlmxBu: true,
            _xnyHYIzb: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _GqxlmxBu: true
        },
        visitorPassword: {
            _GqxlmxBu: false,
            _jCFiQgRE: '',
        },
        customSubPath: {
            _GqxlmxBu: false,
            _atPIzTsm: 'latest',
        },
        subscriptionId: {
            _JoGjJgLm: 8,
            _emrySbDR: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _GqxlmxBu: true,
            template: 'vless://{_lRlYIfgY}@{_jAwlIgeD}:{_SADXxFkD}?encryption=none&security=tls&sni={_WXrFbaSJ}&fp=random&_cYgHVtnz=ws&_WXrFbaSJ={_WXrFbaSJ}&_atPIzTsm={_atPIzTsm}#{_menmgQPN}',
            selectionMode: 'first',
            _ATlQBTOC: [
                { _menmgQPN: '默认配置', _WXrFbaSJ: '', '_lRlYIfgY': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _atPIzTsm: '/?ed=2560' }
            ],
            _tjalOuBn: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _GqxlmxBu: false,
                _SquPJSls: '',
                _QwQGPdEl: 5
            },
            marquee: {
                _GqxlmxBu: false,
                _SquPJSls: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _GqxlmxBu: true,
            sources: [
                { _mwIaMLpg: 'CF官方IPV4', _vvXQGUiR: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _ZZADJTWq: false, _GqxlmxBu: true, _PSZgwgFJ: 20 },
                { _mwIaMLpg: 'CF官方IPV6', _vvXQGUiR: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _ZZADJTWq: false, _GqxlmxBu: true, _PSZgwgFJ: 20 },
                { _mwIaMLpg: '反代优选0', _vvXQGUiR: 'https://wvs.sosorg.nyc.mn/sub?_lRlYIfgY=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_cYgHVtnz=ws&_WXrFbaSJ=ss.nzvrn.com&_atPIzTsm=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _ZZADJTWq: false, _GqxlmxBu: true, _PSZgwgFJ: 30 },
                { _mwIaMLpg: '官方优选1', _vvXQGUiR: 'https://ipdb.api.030101.xyz/?_cYgHVtnz=bestcf&_pJuKLUwl=true', _ZZADJTWq: false, _GqxlmxBu: true, _PSZgwgFJ: 10 },
                { _mwIaMLpg: '反代优选2', _vvXQGUiR: 'https://ipdb.api.030101.xyz/?_cYgHVtnz=bestproxy&_pJuKLUwl=true', _ZZADJTWq: false, _GqxlmxBu: true, _PSZgwgFJ: 5 },
                { _mwIaMLpg: '官方优选2', _vvXQGUiR: 'https://addressesapi.090227.xyz/_jAwlIgeD.164746.xyz', _ZZADJTWq: false, _GqxlmxBu: true, _PSZgwgFJ: 10 },
				{ _mwIaMLpg: '官方优选3', _vvXQGUiR: 'https://cfxr.eu.org/getSub?_WXrFbaSJ=snipaste.huggy.qzz.io', _ZZADJTWq: false, _GqxlmxBu: true, _PSZgwgFJ: 5 },
                { _mwIaMLpg: '官方优选4', _vvXQGUiR: 'https://addressesapi.090227.xyz/CloudFlareYes', _ZZADJTWq: false, _GqxlmxBu: true, _PSZgwgFJ: 10 }
            ]
        },
        customNodes: {
            _GqxlmxBu: 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 _hubDQYcQ(_ZYLgzmXe, _AbOQPUGp) {
    if (!_ZYLgzmXe) return _AbOQPUGp;
    const _xHeQqaaV = { ..._AbOQPUGp };
    for (const _BfGaXxgR in _AbOQPUGp) {
        if (_ZYLgzmXe.hasOwnProperty(_BfGaXxgR)) {
             if (typeof _ZYLgzmXe[_BfGaXxgR] === 'object' && _ZYLgzmXe[_BfGaXxgR] !== null && !Array.isArray(_ZYLgzmXe[_BfGaXxgR]) && typeof _AbOQPUGp[_BfGaXxgR] === 'object' && _AbOQPUGp[_BfGaXxgR] !== null && !Array.isArray(_AbOQPUGp[_BfGaXxgR])) {
                _xHeQqaaV[_BfGaXxgR] = _hubDQYcQ(_ZYLgzmXe[_BfGaXxgR], _AbOQPUGp[_BfGaXxgR]);
            } else {
                _xHeQqaaV[_BfGaXxgR] = _ZYLgzmXe[_BfGaXxgR];
            }
        }
    }
    return _xHeQqaaV;
}

async function _uQjiTRsw(_iNbETDOJ) {
    try {
        const _LVQheWsN = _iNbETDOJ.DB.prepare("SELECT _yjraJIiW FROM kv_data WHERE _BfGaXxgR = ?").bind(_xEMQgKoA);
        const { _YHtsypkv } = await _LVQheWsN.all();
        const _AnkQLMVe = _YHtsypkv._JoGjJgLm > 0 ? _YHtsypkv[0]._yjraJIiW : null;
        const _DMnyOlpj = _AnkQLMVe ? JSON.parse(_AnkQLMVe) : {};
        return _hubDQYcQ(_DMnyOlpj, _raevGcwV());
    } catch (_IEhrOjLx) {
        console.error("无法从D1获取或解析全局配置:", _IEhrOjLx);
        return _raevGcwV();
    }
}

async function _XbkFKMiw(_iNbETDOJ) {
    const _gcynLpiH = await _uQjiTRsw(_iNbETDOJ);
    return _ZnxjdSwR(_gcynLpiH);
}

async function _LqnyDjmR(_JPetdNTd, _iNbETDOJ, _vscvGUTk) {
    try {
        const { _gcynLpiH, adminPassword } = await _JPetdNTd.json();
        const _nDoqdwyK = await _uRGMGDkQ(_iNbETDOJ);
        if (_nDoqdwyK !== adminPassword) {
            return _ZnxjdSwR({ success: false, _rFZPDjIC: "管理员密码错误" }, 403);
        }
        const _LVQheWsN = _iNbETDOJ.DB.prepare(
          "INSERT INTO kv_data (_BfGaXxgR, _yjraJIiW) VALUES (?, ?) ON CONFLICT(_BfGaXxgR) DO UPDATE SET _yjraJIiW = excluded._yjraJIiW"
        );
        const _ciJFkhNv = _LVQheWsN.bind(_xEMQgKoA, JSON.stringify(_gcynLpiH)).run();
        _vscvGUTk.waitUntil(_ciJFkhNv);
        return _ZnxjdSwR({ success: true, _rFZPDjIC: "配置已成功保存!" });
    } catch (_IEhrOjLx) {
        return _ZnxjdSwR({ success: false, _rFZPDjIC: `保存失败: ${_IEhrOjLx._rFZPDjIC}` }, 500);
    }
}

async function _qMrClpuR() {
    const _dxXOFVOE = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _IQSAHEEm = await fetch(_dxXOFVOE);
        const _nfYWBOuE = await _IQSAHEEm.json();
        const _clCybOLQ = 'https://www.bing.com' + _nfYWBOuE.images[0]._xnyHYIzb;
        return fetch(_clCybOLQ);
    } catch (_IEhrOjLx) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _gRcRrxXH(_jAwlIgeD) {
    try {
        const _VHpiYngw = await fetch(`http://_jAwlIgeD-api.com/json/${_jAwlIgeD}?fields=status,_pJuKLUwl,countryCode,_qEQOndrv&lang=zh-CN`);
        if (_VHpiYngw.ok) {
            const _VKuCcQUN = await _VHpiYngw.json();
            if (_VKuCcQUN.status === 'success' && (_VKuCcQUN.countryCode || _VKuCcQUN._pJuKLUwl)) {
                let _qEQOndrv = _VKuCcQUN._qEQOndrv || '未知';
                if (_qEQOndrv.toLowerCase().includes('cloudflare')) {
                    _qEQOndrv = 'CloudFlare';
                }
                return {
                    _mwIaMLpg: _zHxvaMjr[_VKuCcQUN.countryCode] || _VKuCcQUN._pJuKLUwl || _VKuCcQUN.countryCode,
                    _qEQOndrv: _qEQOndrv
                };
            }
        }
    } catch (_IEhrOjLx) {}

    try {
        const _VHpiYngw = await fetch(`https://api._jAwlIgeD.sb/geoip/${_jAwlIgeD}`);
        if (_VHpiYngw.ok) {
            const _VKuCcQUN = await _VHpiYngw.json();
            if (_VKuCcQUN.country_code || _VKuCcQUN._pJuKLUwl) {
                let _qEQOndrv = _VKuCcQUN._qEQOndrv || '未知';
                if (_qEQOndrv.toLowerCase().includes('cloudflare')) {
                    _qEQOndrv = 'CloudFlare';
                }
                return {
                    _mwIaMLpg: _zHxvaMjr[_VKuCcQUN.country_code] || _VKuCcQUN._pJuKLUwl || _VKuCcQUN.country_code,
                    _qEQOndrv: _qEQOndrv
                };
            }
        }
    } catch (_IEhrOjLx) {}
    
    return { _mwIaMLpg: '未知', _qEQOndrv: '未知' };
}

async function _hDJTvgzU(_JPetdNTd, _iNbETDOJ) {
    try {
        const { _vvXQGUiR } = await _JPetdNTd.json();
        if (!Array.isArray(_vvXQGUiR)) {
            return _ZnxjdSwR({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _uReywtSk = _vvXQGUiR.map(_jAwlIgeD => _gRcRrxXH(_jAwlIgeD).then(_ypEORTXI => ({ _jAwlIgeD, ..._ypEORTXI })));
        const _YHtsypkv = await Promise.all(_uReywtSk);
        return _ZnxjdSwR(_YHtsypkv);
    } catch (_IEhrOjLx) {
        return _ZnxjdSwR({ error: `获取地理位置失败: ${_IEhrOjLx._rFZPDjIC}` }, 500);
    }
}

async function _BldIqcmR(_JPetdNTd, _iNbETDOJ) {
    const _gcynLpiH = await _uQjiTRsw(_iNbETDOJ);
    if (!_gcynLpiH.cloudStorage._GqxlmxBu) {
        return _ZnxjdSwR({ _YHtsypkv: [], generatedBy: null });
    }
    try {
        const _LVQheWsN = _iNbETDOJ.DB.prepare("SELECT _yjraJIiW FROM kv_data WHERE _BfGaXxgR = ?").bind(_HWtRAxvq);
        const { _YHtsypkv } = await _LVQheWsN.all();
        const _dcBKkMNZ = _YHtsypkv._JoGjJgLm > 0 ? _YHtsypkv[0]._yjraJIiW : null;
        const _liAzqtvb = _dcBKkMNZ ? JSON.parse(_dcBKkMNZ) : null;
        return _ZnxjdSwR(_liAzqtvb || { _YHtsypkv: [], generatedBy: null });
    } catch (_IEhrOjLx) {
        console.error("从D1读取缓存IP失败:", _IEhrOjLx);
        return _ZnxjdSwR({ _YHtsypkv: [], generatedBy: null });
    }
}

async function _uQRBizjR(_JPetdNTd, _iNbETDOJ, _vscvGUTk) {
    const _gcynLpiH = await _uQjiTRsw(_iNbETDOJ);
    if (!_gcynLpiH.cloudStorage._GqxlmxBu) {
        return _ZnxjdSwR({ success: true, _rFZPDjIC: "云端存储已禁用,不保存结果。" });
    }
    const _wiOyVIQm = _JPetdNTd._skdDjFAj.get('CF-Connecting-IP') || "未知IP";
    const _pJuKLUwl = _JPetdNTd.cf?._pJuKLUwl || "未知";
    const _SkeZuQBC = _JPetdNTd.cf?._SkeZuQBC || "";
    let _UJGhDaPT = _zHxvaMjr[_pJuKLUwl] || _pJuKLUwl;
    if (_SkeZuQBC && _SkeZuQBC !== "未知城市" && _SkeZuQBC !== _pJuKLUwl) _UJGhDaPT = `${_UJGhDaPT} ${_zHxvaMjr[_SkeZuQBC] || _SkeZuQBC}`;
    const _VaWoyDIc = {
        _jAwlIgeD: _qbbFXgSK(_wiOyVIQm),
        _mwIaMLpg: _UJGhDaPT.trim(),
        time: _LwheviAQ()
    };
    try {
        const _JzqpCAlK = await _JPetdNTd.json();
        if (!Array.isArray(_JzqpCAlK)) return _ZnxjdSwR({ error: "无效数据格式" }, 400);
        const _IQsuPVBc = _JzqpCAlK.map(_jPNCvklF => ({
            _jAwlIgeD: String(_jPNCvklF._jAwlIgeD || ''),
            _SADXxFkD: _jPNCvklF._SADXxFkD ? parseInt(_jPNCvklF._SADXxFkD, 10) : undefined,
            _bMuhWeBp: parseInt(_jPNCvklF._bMuhWeBp, 10),
            _mwIaMLpg: typeof _jPNCvklF._mwIaMLpg === 'string' ? _jPNCvklF._mwIaMLpg.substring(0, 50) : 'N/A',
            _qEQOndrv: typeof _jPNCvklF._qEQOndrv === 'string' ? _jPNCvklF._qEQOndrv.substring(0, 100) : 'N/A'
        }));
        const _IfZzJEQq = {
            generatedBy: _VaWoyDIc,
            _YHtsypkv: _IQsuPVBc
        };
        const _mBMIBxMn = _iNbETDOJ.DB.prepare(
          "INSERT INTO kv_data (_BfGaXxgR, _yjraJIiW) VALUES (?, ?) ON CONFLICT(_BfGaXxgR) DO UPDATE SET _yjraJIiW = excluded._yjraJIiW"
        ).bind(_HWtRAxvq, JSON.stringify(_IfZzJEQq)).run();
        if (_gcynLpiH.telegram.bot_token && _gcynLpiH.telegram.chat_id) {
            const _WHvSLJgC = _IQsuPVBc.map(r => `${r._jAwlIgeD} ~ ${r._mwIaMLpg}`).join('\n');
            const _YYxrmrKH = `优选完成!\n来源: ${_VaWoyDIc._jAwlIgeD} (${_VaWoyDIc._mwIaMLpg})\n时间: ${_VaWoyDIc.time}\n\n结果:\n${_WHvSLJgC}`;
            const _gAmDzuNg = `https://api.telegram.org/bot${_gcynLpiH.telegram.bot_token}/sendMessage?chat_id=${_gcynLpiH.telegram.chat_id}&_SquPJSls=${encodeURIComponent(_YYxrmrKH)}`;
            const _qZAajnRZ = fetch(_gAmDzuNg).catch(_IEhrOjLx => console.error("Telegram结果通知失败:", _IEhrOjLx));
            _vscvGUTk.waitUntil(Promise.all([_mBMIBxMn, _qZAajnRZ]));
        } else {
             _vscvGUTk.waitUntil(_mBMIBxMn);
        }
        return _ZnxjdSwR({ success: true, _rFZPDjIC: "结果已保存" });
    } catch (_IEhrOjLx) {
        return _ZnxjdSwR({ error: "D1写入失败", _rFZPDjIC: _IEhrOjLx._rFZPDjIC }, 500);
    }
}

async function _NRfeJyjJ(_JPetdNTd, _iNbETDOJ, _vscvGUTk) {
    try {
        const _jQhGaAjH = await _JPetdNTd.json();
        if (!Array.isArray(_jQhGaAjH)) return _ZnxjdSwR({ error: "无效数据格式" }, 400);
        const _IfZzJEQq = {
            _YHtsypkv: _jQhGaAjH
        };
        const _LVQheWsN = _iNbETDOJ.DB.prepare(
          "INSERT INTO kv_data (_BfGaXxgR, _yjraJIiW) VALUES (?, ?) ON CONFLICT(_BfGaXxgR) DO UPDATE SET _yjraJIiW = excluded._yjraJIiW"
        );
        const _ciJFkhNv = _LVQheWsN.bind(_NYhaYnkU, JSON.stringify(_IfZzJEQq)).run();
        _vscvGUTk.waitUntil(_ciJFkhNv);
        return _ZnxjdSwR({ success: true });
    } catch (_IEhrOjLx) {
        return _ZnxjdSwR({ error: "D1写入临时缓存失败", _rFZPDjIC: _IEhrOjLx._rFZPDjIC }, 500);
    }
}

function _HclXxIyG(_JoGjJgLm, _emrySbDR) {
    let _FxhFwhmT = '';
    const _dAequMZx = _emrySbDR._JoGjJgLm;
    for (let _QlxHsXXs = 0; _QlxHsXXs < _JoGjJgLm; _QlxHsXXs++) {
        _FxhFwhmT += _emrySbDR.charAt(Math.floor(Math.random() * _dAequMZx));
    }
    return _FxhFwhmT;
}

async function _nRYwByVG(_JPetdNTd, _iNbETDOJ) {
    try {
        const _JzqpCAlK = await _JPetdNTd.json();
        if (!Array.isArray(_JzqpCAlK) || _JzqpCAlK._JoGjJgLm === 0) {
            return _ZnxjdSwR({ error: "无效或空的IP列表" }, 400);
        }

        const _gcynLpiH = await _uQjiTRsw(_iNbETDOJ);
        const _OAuvaDng = _gcynLpiH.subscriptionId || { _JoGjJgLm: 8, _emrySbDR: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _qhwfZnKn;
        let _ufaWSzbb = false;
        let _XKCHIncT = 0;
        const _HdIHiYhl = 10;

        while (!_ufaWSzbb && _XKCHIncT < _HdIHiYhl) {
            _qhwfZnKn = _HclXxIyG(_OAuvaDng._JoGjJgLm, _OAuvaDng._emrySbDR);
            const { _YHtsypkv } = await _iNbETDOJ.DB.prepare("SELECT _IKtrpYVv FROM optimized_results WHERE _IKtrpYVv = ?").bind(_qhwfZnKn).all();
            if (_YHtsypkv._JoGjJgLm === 0) {
                _ufaWSzbb = true;
            }
            _XKCHIncT++;
        }

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

        const _tlJLozuP = JSON.stringify({ _vvXQGUiR: _JzqpCAlK });
        await _iNbETDOJ.DB.prepare(
            "INSERT INTO optimized_results (_IKtrpYVv, _VKuCcQUN) VALUES (?, ?)"
        ).bind(_qhwfZnKn, _tlJLozuP).run();
        await _iNbETDOJ.DB.prepare(
            "INSERT INTO kv_data (_BfGaXxgR, _yjraJIiW) VALUES (?, ?) ON CONFLICT(_BfGaXxgR) DO UPDATE SET _yjraJIiW = excluded._yjraJIiW"
        ).bind(_NdwDXgKC, _qhwfZnKn).run();
            
        return _ZnxjdSwR({ success: true, _IKtrpYVv: _qhwfZnKn });
    } catch (_IEhrOjLx) {
        return _ZnxjdSwR({ error: "保存优选结果失败", _rFZPDjIC: _IEhrOjLx._rFZPDjIC }, 500);
    }
}

async function _eZBTxolj(_JPetdNTd, _iNbETDOJ) {
    try {
        const _qhwfZnKn = _JPetdNTd._sCFVOlUS._IKtrpYVv;
        if (!_qhwfZnKn) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _FxhFwhmT = await _iNbETDOJ.DB.prepare("SELECT _VKuCcQUN FROM optimized_results WHERE _IKtrpYVv = ?").bind(_qhwfZnKn).first();
        if (!_FxhFwhmT) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _VKuCcQUN = JSON.parse(_FxhFwhmT._VKuCcQUN);
        let _WHvSLJgC = _VKuCcQUN._vvXQGUiR;

        const _gcynLpiH = await _uQjiTRsw(_iNbETDOJ);

        if (_gcynLpiH.customNodes && _gcynLpiH.customNodes._GqxlmxBu && _gcynLpiH.customNodes.list) {
            const _saHLZxWC = _gcynLpiH.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _WBtWFudV = _saHLZxWC.map(_rAtpxMjL => {
                let _denBfCcC = _rAtpxMjL;
                let _SADXxFkD = undefined;
                let _menmgQPN = null;

                if (_denBfCcC.includes('@')) {
                    const _bbXHwUzs = _denBfCcC.split('@');
                    _menmgQPN = _bbXHwUzs.pop();
                    _denBfCcC = _bbXHwUzs.join('@');
                }

                if (_denBfCcC.includes('#')) {
                    const _bbXHwUzs = _denBfCcC.split('#');
                    const _bQyalwYS = _bbXHwUzs.pop();
                    if (!isNaN(_bQyalwYS) && _bQyalwYS.trim() !== '') {
                        _SADXxFkD = parseInt(_bQyalwYS, 10);
                    }
                    _denBfCcC = _bbXHwUzs.join('#');
                }
                
                return {
                    _jAwlIgeD: _denBfCcC,
                    _SADXxFkD: _SADXxFkD,
                    _mwIaMLpg: _menmgQPN || _denBfCcC,
                    _qEQOndrv: '自定义'
                };
            });
            _WHvSLJgC.unshift(..._WBtWFudV);
        }
        
        const { itemLink } = _gcynLpiH;
        const _KNnNvpbY = new URL(_JPetdNTd._xnyHYIzb)._GkRYaraU;
        let _YENyWiDo;

        if (_gcynLpiH.websocketStreamer && _gcynLpiH.websocketStreamer._GqxlmxBu) {
            if (!itemLink || !itemLink._GqxlmxBu || !itemLink._ATlQBTOC || itemLink._ATlQBTOC._JoGjJgLm === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _YENyWiDo = _WHvSLJgC.map((_jPNCvklF, _wPIDZJsn) => {
                let _menmgQPN;
                if (_jPNCvklF._qEQOndrv === '自定义') {
                     _menmgQPN = `${_wPIDZJsn + 1} - ${_jPNCvklF._mwIaMLpg}`;
                } else {
                    _menmgQPN = `${_wPIDZJsn + 1} - ${_jPNCvklF._mwIaMLpg || '未知'}`;
                    if (!_jPNCvklF._qEQOndrv || !_jPNCvklF._qEQOndrv.toLowerCase().includes('cloudflare')) {
                        _menmgQPN += '(反代)';
                    }
                }
                const _fLfKRwGq = _nTLReEKV.isIPv6(_jPNCvklF._jAwlIgeD) ? `[${_jPNCvklF._jAwlIgeD}]` : _jPNCvklF._jAwlIgeD;
                const _SADXxFkD = _jPNCvklF._SADXxFkD || 443;
                const _LDMjYtet = itemLink._ATlQBTOC[0];
                const _kNtsLpXl = _LDMjYtet._lRlYIfgY || '';
                const _lRlYIfgY = (_kNtsLpXl && _OiWtPAzg(_kNtsLpXl)) ? _kNtsLpXl : crypto.randomUUID();
                const _atPIzTsm = '/snippets?_jAwlIgeD=endpointAddress:_SADXxFkD(443)&nat64=6to4';
                const _WXrFbaSJ = _LDMjYtet._WXrFbaSJ || _KNnNvpbY;

                const _sCFVOlUS = new URLSearchParams({
                    security: 'tls',
                    _cYgHVtnz: 'ws',
                    _WXrFbaSJ: _WXrFbaSJ,
                    sni: _WXrFbaSJ,
                    fp: 'random'
                });
                return `vless://${_lRlYIfgY}@${_fLfKRwGq}:${_SADXxFkD}?${_sCFVOlUS.toString()}&_atPIzTsm=${encodeURIComponent(encodeURIComponent(_atPIzTsm))}#${encodeURIComponent(_menmgQPN)}`;
            });

        } else {
            if (!itemLink || !itemLink._GqxlmxBu || !itemLink._ATlQBTOC || itemLink._ATlQBTOC._JoGjJgLm === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _LDMjYtet = itemLink._ATlQBTOC[0];
            const { _WXrFbaSJ, _lRlYIfgY, _atPIzTsm } = _LDMjYtet;
            _YENyWiDo = _WHvSLJgC.map((_jPNCvklF, _wPIDZJsn) => {
                let _menmgQPN;
                if (_jPNCvklF._qEQOndrv === '自定义') {
                     _menmgQPN = `${_wPIDZJsn + 1} - ${_jPNCvklF._mwIaMLpg}`;
                } else {
                    _menmgQPN = `${_wPIDZJsn + 1} - ${_jPNCvklF._mwIaMLpg || '未知'}`;
                    if (!_jPNCvklF._qEQOndrv || !_jPNCvklF._qEQOndrv.toLowerCase().includes('cloudflare')) {
                        _menmgQPN += '(反代)';
                    }
                }
                const _fLfKRwGq = _nTLReEKV.isIPv6(_jPNCvklF._jAwlIgeD) ? `[${_jPNCvklF._jAwlIgeD}]` : _jPNCvklF._jAwlIgeD;
                const _SADXxFkD = _jPNCvklF._SADXxFkD || 443;
                const _sCFVOlUS = new URLSearchParams({
                    security: 'tls',
                    _cYgHVtnz: 'ws',
                    _WXrFbaSJ: _WXrFbaSJ || _KNnNvpbY,
                    sni: _WXrFbaSJ || _KNnNvpbY,
                    fp: 'random'
                });
                return `vless://${_lRlYIfgY}@${_fLfKRwGq}:${_SADXxFkD}?${_sCFVOlUS.toString()}&_atPIzTsm=${encodeURIComponent(encodeURIComponent(_atPIzTsm || ''))}#${encodeURIComponent(_menmgQPN)}`;
            });
        }
        
        const _oYjYQbXh = _YENyWiDo.join('\n');
        const _IkgnZRsy = btoa(_oYjYQbXh);
        return new Response(_IkgnZRsy, {
            _skdDjFAj: { 'Content-Type': '_SquPJSls/plain; _emrySbDR=utf-8' }
        });

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

async function _DgbecDQL(_JPetdNTd) {
    try {
        const { _NofITfPK, _cYgHVtnz } = await _JPetdNTd.json();
        if (!Array.isArray(_NofITfPK)) {
            return new Response('Invalid _NofITfPK list', { status: 400 });
        }
        const _amuEDoLr = _NofITfPK.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _xnyHYIzb = `https://cloudflare-dns.com/dns-query?_menmgQPN=${encodeURIComponent(domain.trim())}&_cYgHVtnz=${_cYgHVtnz || 'A'}`;
            return fetch(_xnyHYIzb, { _skdDjFAj: { 'Accept': 'application/dns-json' } })
                .then(_VHpiYngw => _VHpiYngw.json())
                .then(_VKuCcQUN => (_VKuCcQUN.Answer ? _VKuCcQUN.Answer.map(a => a._VKuCcQUN) : []))
                .catch(() => []);
        });
        const _cmERCAkF = (await Promise.all(_amuEDoLr)).flat();
        const _eKeLmEsu = [...new Set(_cmERCAkF)];
        if (_eKeLmEsu._JoGjJgLm === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_eKeLmEsu.join('\n'), { _skdDjFAj: { 'Content-Type': '_SquPJSls/plain; _emrySbDR=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._rFZPDjIC}`, { status: 500 });
    }
}

async function _JkcRaSHn(_JPetdNTd, _iNbETDOJ) {
  try {
      const { _RkxWqceQ } = await _JPetdNTd.json();
      if (!Array.isArray(_RkxWqceQ)) {
          return _ZnxjdSwR({ error: "Invalid input, expected an object with a '_RkxWqceQ' array." }, 400);
      }
      
      const _lsczpTII = new Set();
      
      const _nFBdmHsV = _RkxWqceQ.map(_xnyHYIzb =>
          _JRBfwyoH(_xnyHYIzb)
              .then(_SquPJSls => {
                  if (!_SquPJSls) return;
                  const _tjOKoHRJ = _SquPJSls.split(/[\s,;|]+/);
                  for (const _ICDKEUiu of _tjOKoHRJ) {
                      const _tmmkfxTA = _ICDKEUiu.trim();
                      if (_tmmkfxTA) {
                          _lsczpTII.add(_tmmkfxTA);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_xnyHYIzb}:`, err);
              })
      );
      await Promise.all(_nFBdmHsV);
      return _ZnxjdSwR({ _vvXQGUiR: Array.from(_lsczpTII) });
  } catch (_IEhrOjLx) {
      return _ZnxjdSwR({ error: `Failed to process URLs: ${_IEhrOjLx._rFZPDjIC}` }, 500);
  }
}

async function _gYGIGOxF(_JPetdNTd, _iNbETDOJ) {
    const _gcynLpiH = await _uQjiTRsw(_iNbETDOJ);
    if (!_gcynLpiH.api._GqxlmxBu) {
        return new Response(_gcynLpiH.api._rFZPDjIC || 'API is disabled.', { status: 503 });
    }
    try {
        const _LVQheWsN = _iNbETDOJ.DB.prepare("SELECT _yjraJIiW FROM kv_data WHERE _BfGaXxgR = ?").bind(_HWtRAxvq);
        const { _YHtsypkv: dbResults } = await _LVQheWsN.all();
        const _dcBKkMNZ = dbResults._JoGjJgLm > 0 ? dbResults[0]._yjraJIiW : null;
        const _liAzqtvb = _dcBKkMNZ ? JSON.parse(_dcBKkMNZ) : null;
        if (!_liAzqtvb || !_liAzqtvb._YHtsypkv || _liAzqtvb._YHtsypkv._JoGjJgLm === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _skdDjFAj: { 'Content-Type': '_SquPJSls/plain; _emrySbDR=utf-8' },
            });
        }
        const _vvXQGUiR = _liAzqtvb._YHtsypkv.map(r => r._jAwlIgeD);
        return new Response(_vvXQGUiR.join('\n'), {
            _skdDjFAj: { 'Content-Type': '_SquPJSls/plain; _emrySbDR=utf-8' },
        });
    } catch (_IEhrOjLx) {
        console.error("API /_jAwlIgeD 处理错误:", _IEhrOjLx);
        return new Response(`API处理时出错: ${_IEhrOjLx._rFZPDjIC}`, { status: 500 });
    }
}

function _wgIbuPzi(_FxhFwhmT, _wPIDZJsn, _gcynLpiH, _KNnNvpbY) {
    const { itemLink } = _gcynLpiH;
    if (!itemLink || !itemLink._GqxlmxBu) return null;
    const { template, _ATlQBTOC, selectionMode, _tjalOuBn } = itemLink;
    if (!_ATlQBTOC || _ATlQBTOC._JoGjJgLm === 0) return null;

    let _lVUCfFjM;
    if (selectionMode === 'random') {
        _lVUCfFjM = _ATlQBTOC[_wPIDZJsn % _ATlQBTOC._JoGjJgLm];
    } else if (selectionMode === 'first') {
        _lVUCfFjM = _ATlQBTOC[0];
    } else {
        _lVUCfFjM = _ATlQBTOC.find(s => s._menmgQPN === selectionMode) || _ATlQBTOC[0];
    }
    if (!_lVUCfFjM) return null;

    let _vpEUaRpE = template;
    const _yUkhvOBX = _FxhFwhmT._SADXxFkD || 443;
    const _pvvqGEDC = _nTLReEKV.isIPv6(_FxhFwhmT._jAwlIgeD) ? `[${_FxhFwhmT._jAwlIgeD}]` : _FxhFwhmT._jAwlIgeD;
    let _menmgQPN = `${_wPIDZJsn + 1} 、 ${_FxhFwhmT._mwIaMLpg || '未知'}`;
    if (!_FxhFwhmT._qEQOndrv || !_FxhFwhmT._qEQOndrv.toLowerCase().includes('cloudflare')) {
        _menmgQPN += '(反代)';
    }
    let _WXrFbaSJ = _lVUCfFjM._WXrFbaSJ || _KNnNvpbY;

    _vpEUaRpE = _vpEUaRpE.replace(/{_jAwlIgeD}/g, _pvvqGEDC)
               .replace(/{_SADXxFkD}/g, _yUkhvOBX)
               .replace(/{_menmgQPN}/g, encodeURIComponent(_menmgQPN))
               .replace(/{rank}/g, _wPIDZJsn + 1)
               .replace(/{_mwIaMLpg}/g, encodeURIComponent(_FxhFwhmT._mwIaMLpg || '未知'))
               .replace(/{_qEQOndrv}/g, encodeURIComponent(_FxhFwhmT._qEQOndrv || '未知'))
               .replace(/{_WXrFbaSJ}/g, encodeURIComponent(_WXrFbaSJ))
               .replace(/{_lRlYIfgY}/g, encodeURIComponent(_lVUCfFjM['_lRlYIfgY'] || ''))
               .replace(/{_atPIzTsm}/g, encodeURIComponent(encodeURIComponent(_lVUCfFjM._atPIzTsm || '')));

    if (_tjalOuBn) {
        _tjalOuBn.forEach(field => {
            const _jrOblrzR = new RegExp('{' + field._menmgQPN + '}', 'g');
            _vpEUaRpE = _vpEUaRpE.replace(_jrOblrzR, encodeURIComponent(field._yjraJIiW));
        });
    }
    return _vpEUaRpE;
}

async function _nwjMRcEI(_JPetdNTd, _iNbETDOJ) {
    const _gcynLpiH = await _uQjiTRsw(_iNbETDOJ);
    if (!_gcynLpiH.itemLink._GqxlmxBu) {
        return new Response("Item _vpEUaRpE feature is disabled.", { status: 503, _skdDjFAj: { 'Content-Type': '_SquPJSls/plain; _emrySbDR=utf-8' } });
    }

    try {
        const _LVQheWsN = _iNbETDOJ.DB.prepare("SELECT _yjraJIiW FROM kv_data WHERE _BfGaXxgR = ?").bind(_HWtRAxvq);
        const { _YHtsypkv: dbResults } = await _LVQheWsN.all();
        const _dcBKkMNZ = dbResults._JoGjJgLm > 0 ? dbResults[0]._yjraJIiW : null;
        const _liAzqtvb = _dcBKkMNZ ? JSON.parse(_dcBKkMNZ) : null;
        
        if (!_liAzqtvb || !_liAzqtvb._YHtsypkv || _liAzqtvb._YHtsypkv._JoGjJgLm === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _skdDjFAj: { 'Content-Type': '_SquPJSls/plain; _emrySbDR=utf-8' },
            });
        }
        
        const _KNnNvpbY = new URL(_JPetdNTd._xnyHYIzb)._GkRYaraU;

        const _eCRskcNd = _liAzqtvb._YHtsypkv.map((_FxhFwhmT, _wPIDZJsn) => {
            return _wgIbuPzi(_FxhFwhmT, _wPIDZJsn, _gcynLpiH, _KNnNvpbY);
        }).filter(Boolean);

        if (_eCRskcNd._JoGjJgLm === 0) {
            return new Response("Could not generate any _jPNCvklF links from the available IPs.", {
                status: 500,
                _skdDjFAj: { 'Content-Type': '_SquPJSls/plain; _emrySbDR=utf-8' },
            });
        }

        return new Response(_eCRskcNd.join('\n'), {
            _skdDjFAj: { 'Content-Type': '_SquPJSls/plain; _emrySbDR=utf-8' },
        });

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

async function _HLCILLkO(_JPetdNTd, _iNbETDOJ, _vscvGUTk) {
    const _wiOyVIQm = _JPetdNTd._skdDjFAj.get('CF-Connecting-IP') || "未知IP";
    const [
        _pybihBbs,
        _wdQICujh,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _obXHshiM(_OrZFUQYR, _mCjviZeF, []),
        _obXHshiM(_iAuIFADd, _mCjviZeF, []),
        _obXHshiM(_mQvbbvdG, _UlpwNCCQ, []),
        _obXHshiM(_xatZLdiJ, _vkuuwKSL, { "N/A": "未知" })
    ]);
    _zHxvaMjr = fetchedCountryMap;
    let _FRGpzlOu = false;
    let _yvgRNesI;
    try {
        const _jCFiQgRE = await _uRGMGDkQ(_iNbETDOJ);
        _FRGpzlOu = !!_jCFiQgRE;
        _yvgRNesI = await _uQjiTRsw(_iNbETDOJ);
    } catch (_IEhrOjLx) {
        if (_IEhrOjLx._rFZPDjIC && _IEhrOjLx._rFZPDjIC.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _nwzNkujf = "CREATE TABLE IF NOT EXISTS kv_data (_BfGaXxgR TEXT PRIMARY KEY, _yjraJIiW TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_IKtrpYVv TEXT PRIMARY KEY, _VKuCcQUN TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _iNbETDOJ.DB.exec(_nwzNkujf);
                console.log("数据表创建成功。");
                _FRGpzlOu = false;
                _yvgRNesI = _raevGcwV();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._rFZPDjIC}`, {
                    status: 500,
                    _skdDjFAj: { 'Content-Type': '_SquPJSls/html;_emrySbDR=UTF-8' }
                });
            }
        } else {
             let _LPfmWDcX = _zpDRcOZY(_IEhrOjLx._rFZPDjIC);
             return new Response(_LPfmWDcX, { _skdDjFAj: { 'Content-Type': '_SquPJSls/html;_emrySbDR=UTF-8' } });
        }
    }
    if (_yvgRNesI.telegram.bot_token && _yvgRNesI.telegram.chat_id) {
        const _pJuKLUwl = _JPetdNTd.cf?._pJuKLUwl || "未知";
        const _SkeZuQBC = _JPetdNTd.cf?._SkeZuQBC || "";
        let _UJGhDaPT = _zHxvaMjr[_pJuKLUwl] || _pJuKLUwl;
        if (_SkeZuQBC && _SkeZuQBC !== "未知城市" && _SkeZuQBC !== _pJuKLUwl) _UJGhDaPT = `${_UJGhDaPT} ${_zHxvaMjr[_SkeZuQBC] || _SkeZuQBC}`;
        const _DvOzlqXa = _LwheviAQ();
        const _xvnmnSbG = _JPetdNTd._xnyHYIzb;
        const _YYxrmrKH = `访客: ${_wiOyVIQm}\n位置: ${_UJGhDaPT.trim()}\n时间: ${_DvOzlqXa}\n来自:${_xvnmnSbG}`;
        const _gAmDzuNg = `https://api.telegram.org/bot${_yvgRNesI.telegram.bot_token}/sendMessage?chat_id=${_yvgRNesI.telegram.chat_id}&_SquPJSls=${encodeURIComponent(_YYxrmrKH)}`;
        _vscvGUTk.waitUntil(fetch(_gAmDzuNg).catch(_IEhrOjLx => console.error("Telegram通知失败:", _IEhrOjLx)));
    }
    let _LSkAYfoG = _QXEsxKiR();
    const _EgelbSvj = {
        _gcynLpiH: _yvgRNesI,
        status: {
            _FRGpzlOu: _FRGpzlOu,
        }
    };
    _LSkAYfoG = _LSkAYfoG.replace('__PAGE_DATA_JSON__', JSON.stringify(_EgelbSvj));
    _LSkAYfoG = _LSkAYfoG.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_pybihBbs));
    _LSkAYfoG = _LSkAYfoG.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_wdQICujh));
    _LSkAYfoG = _LSkAYfoG.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _LSkAYfoG = _LSkAYfoG.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_zHxvaMjr));
    return new Response(_LSkAYfoG, {
        _skdDjFAj: { 'Content-Type': '_SquPJSls/html;_emrySbDR=UTF-8' },
    });
}

function _ZnxjdSwR(_cvKfTXWI, status = 200, _skdDjFAj = {}) {
    return new Response(JSON.stringify(_cvKfTXWI), {
        status,
        _skdDjFAj: { 'Content-Type': 'application/json;_emrySbDR=UTF-8', ..._skdDjFAj }
    });
}

function _LwheviAQ(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 _qbbFXgSK(_jAwlIgeD) {
    if (!_jAwlIgeD || typeof _jAwlIgeD !== 'string') return "无效IP";
    if(_nTLReEKV.isIPv4(_jAwlIgeD)){
        const _bbXHwUzs = _jAwlIgeD.split('.');
        if (_bbXHwUzs._JoGjJgLm === 4) return `${_bbXHwUzs[0]}.*.*.${_bbXHwUzs[3]}`;
    }
    if(_nTLReEKV.isIPv6(_jAwlIgeD)){
        const _bbXHwUzs = _jAwlIgeD.split(':');
        if (_bbXHwUzs._JoGjJgLm > 2) return `${_bbXHwUzs[0]}:...:${_bbXHwUzs[_bbXHwUzs._JoGjJgLm - 1]}`;
    }
    return _jAwlIgeD;
}

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

function _QXEsxKiR() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _emrySbDR="UTF-8"> <meta _menmgQPN="viewport" _XJLNgCkv="_GtoLMByl=device-_GtoLMByl, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_vpEUaRpE 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>
  <_IczTwelk>
  :root { --primary-_iklZawQu: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_iklZawQu: #8c939d; --light-bg: #1A1C20; --_XJLNgCkv-bg: #25282E; --border-_iklZawQu: #40444C; --_SquPJSls-_iklZawQu: #E0E0E0; --_SquPJSls-light: #B0B0B0; --success-_iklZawQu: #30A46C; --danger-_iklZawQu: #DA3633; --warning-_iklZawQu: #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; }
  _cvKfTXWI { font-family: var(--font-family-sans); background-_iklZawQu: var(--light-bg); _iklZawQu: var(--_SquPJSls-_iklZawQu); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_iklZawQu 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_qqbhvIkc { position: fixed; _urDTSKva: 0; _hTMjKPsR: 0; _GtoLMByl: 100%; height: 100%; z-_wPIDZJsn: -1; display: none; }
  ._OmcdLZSP-_VSGYmlIA { max-_GtoLMByl: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_wPIDZJsn: 1; }
  #_WWpyFWKM { position: fixed; _urDTSKva: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_wPIDZJsn: 10; }
  #marquee-_VSGYmlIA { overflow: hidden; white-space: nowrap; background-_iklZawQu: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _iklZawQu: var(--primary-_iklZawQu); padding: 0.5rem 0; margin-_urDTSKva: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_SquPJSls { display: inline-block; padding-_hTMjKPsR: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _wSKvbxTj { _SquPJSls-align: center; margin-_urDTSKva: 1rem; margin-bottom: 2rem; }
  _wSKvbxTj h1 { white-space: pre-wrap; font-size: 2.25em; _iklZawQu: var(--primary-_iklZawQu); font-weight: 700; _SquPJSls-shadow: 0 0 10px rgba(var(--primary-_iklZawQu-rgb), 0.3); }
  .card { background-_iklZawQu: 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-_iklZawQu); }
  .progress-section #_xTjMrYlo { _GtoLMByl: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_iklZawQu: var(--border-_iklZawQu); overflow: hidden; }
  .progress-section #_xTjMrYlo::-webkit-progress-_yjraJIiW { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _SquPJSls-align: center; margin-_urDTSKva: 0.75em; font-size: 0.95em; _iklZawQu: var(--_SquPJSls-light); min-height: 1.5em; }
  .section-_wSKvbxTj { display: flex; flex-wrap: wrap; justify-_XJLNgCkv: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_iklZawQu); gap: 1rem; }
  .section-_wSKvbxTj h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _iklZawQu: var(--secondary-_iklZawQu); _SquPJSls-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _GtoLMByl: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _GtoLMByl: 100%; border-collapse: collapse; margin-_urDTSKva: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_iklZawQu); padding: 0.8em; _SquPJSls-align: _hTMjKPsR; vertical-align: middle; white-space: nowrap; }
  th { background-_iklZawQu: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_iklZawQu: #30333a; }
  td._jAwlIgeD-_denBfCcC { font-weight: 500; font-family: var(--font-family-mono); _iklZawQu: var(--primary-_iklZawQu); }
  td.ping-_yjraJIiW { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _SquPJSls-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_XJLNgCkv: center; font-weight: 500; _SquPJSls-align: center; cursor: pointer; user-_TRAdckVZ: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _iklZawQu: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_hTMjKPsR: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _iklZawQu: var(--primary-_iklZawQu); border: 1px solid var(--primary-_iklZawQu); }
  .btn-outline:hover { background-_iklZawQu: var(--primary-_iklZawQu); _iklZawQu: var(--_XJLNgCkv-bg); }
  ._OmcdLZSP-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._OmcdLZSP-download-buttons .btn { _GtoLMByl: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _urDTSKva: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _iklZawQu: #fff; font-size: 0.95em; z-_wPIDZJsn: 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); }
  #_snhhAeOL, #_gteuvdyJ, #_hHyUFwlJ, #_fAgNPaIX, #_iMcFnsme { display: none; position: fixed; z-_wPIDZJsn: 10000; _hTMjKPsR: 0; _urDTSKva: 0; _GtoLMByl: 100%; height: 100%; background-_iklZawQu: rgba(0,0,0,0.6); justify-_XJLNgCkv: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_XJLNgCkv, ._OmcdLZSP-modal-_XJLNgCkv { background-_iklZawQu: var(--_XJLNgCkv-bg); padding: 2rem; border: 1px solid var(--border-_iklZawQu); border-radius: var(--border-radius-md); _GtoLMByl: 95%; max-_GtoLMByl: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_fAgNPaIX .modal-_XJLNgCkv { max-_GtoLMByl: 500px; }
  .modal-_XJLNgCkv h3, ._OmcdLZSP-modal-_wSKvbxTj h3 { margin-_urDTSKva: 0; margin-bottom: 1.5rem; _iklZawQu: var(--primary-_iklZawQu); _SquPJSls-align: center; }
  .modal-buttons { display: flex; justify-_XJLNgCkv: flex-end; gap: 1rem; margin-_urDTSKva: 2rem; border-_urDTSKva: 1px solid var(--border-_iklZawQu); padding-_urDTSKva: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_iklZawQu), rgba(0,0,0,0)); margin: 2rem 0; }
  ._OmcdLZSP-modal-_wSKvbxTj { display: flex; justify-_XJLNgCkv: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_iklZawQu); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _iklZawQu: var(--_SquPJSls-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._OmcdLZSP-list-_jPNCvklF { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_iklZawQu); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._OmcdLZSP-_menmgQPN { font-size: 1.1em; font-weight: 600; }
  ._OmcdLZSP-links a { display: block; _iklZawQu: var(--primary-_iklZawQu); _SquPJSls-decoration: none; margin-_urDTSKva: 0.5rem; word-break: break-all; }
  ._OmcdLZSP-links a:hover { _SquPJSls-decoration: underline; }
  ._OmcdLZSP-links span { _iklZawQu: var(--_SquPJSls-light); }
  #visitorPasswordPrompt { _SquPJSls-align: center; }
  #visitorPasswordPrompt h3 { _iklZawQu: var(--primary-_iklZawQu); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _iklZawQu: var(--_SquPJSls-light); margin-bottom: 1.5rem; }
  ._jCFiQgRE-input-group { display: flex; gap: 10px; max-_GtoLMByl: 400px; margin: 0 auto; }
  ._jCFiQgRE-input-group input { flex-grow: 1; _SquPJSls-align: center; }
  ._jCFiQgRE-input-group .btn { margin-_hTMjKPsR: 0; }
  ._YHtsypkv-actions-_VSGYmlIA { _SquPJSls-align: center; margin-bottom: 1.5rem; }
  ._YHtsypkv-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._YHtsypkv-api-buttons .btn { margin: 0; _GtoLMByl: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_XJLNgCkv 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 _TRAdckVZ, .form-grid-control textarea { _GtoLMByl: 100%; background-_iklZawQu: var(--light-bg); border: 1px solid var(--border-_iklZawQu); border-radius: var(--border-radius-sm); _iklZawQu: var(--_SquPJSls-_iklZawQu); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_iklZawQu 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _TRAdckVZ:focus, .form-grid-control textarea:focus { border-_iklZawQu: var(--primary-_iklZawQu); box-shadow: 0 0 0 2px rgba(var(--primary-_iklZawQu-rgb), 0.2); outline: none; }
  .form-grid-control input[_cYgHVtnz="_iklZawQu"] { min-_GtoLMByl: auto; padding: 2px; _GtoLMByl: 2.5em; height: 2.5em; }
  .form-grid-control input[_cYgHVtnz="checkbox"] { _GtoLMByl: auto; flex-shrink: 0; height: 1.2em; _GtoLMByl: 1.2em; }
  .form-grid-control ._PSZgwgFJ-input { _GtoLMByl: 80px; _SquPJSls-align: right; }
  .tooltip-_aJyffrdB { display: inline-flex; _GtoLMByl: 16px; height: 16px; align-items: center; justify-_XJLNgCkv: center; background-_iklZawQu: var(--secondary-_iklZawQu); _iklZawQu: var(--_XJLNgCkv-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_TRAdckVZ: none; }
  #tooltip-popup { position: fixed; background-_iklZawQu: #383c4a; _iklZawQu: #fff; padding: 10px 15px; border-radius: 6px; z-_wPIDZJsn: 10001; font-size: 0.85em; max-_GtoLMByl: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_iklZawQu); pointer-events: none; }
  #custom-fields-_VSGYmlIA .form-grid-control { gap: 5px; } #custom-fields-_VSGYmlIA .form-grid-control input { flex: 1; }
  .parameter-_foLoWWQC-_uZeHyjNa { border: 1px solid var(--border-_iklZawQu); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_foLoWWQC-_wSKvbxTj { display: flex; justify-_XJLNgCkv: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_foLoWWQC-_wSKvbxTj input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_urDTSKva: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._SquPJSls-_iklZawQu-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _GtoLMByl: 100%; }
  ._SquPJSls-_iklZawQu-grid input[_cYgHVtnz="_iklZawQu"] { grid-column: 1 / 2; }
  ._SquPJSls-_iklZawQu-grid input[_cYgHVtnz="_SquPJSls"], ._SquPJSls-_iklZawQu-grid textarea { grid-column: 2 / 3; }
  #_fAgNPaIX .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_fAgNPaIX .btn-group { display: flex; }
  #_fAgNPaIX .sub-btn { flex-grow: 1; margin: 0; }
  #_fAgNPaIX ._suiQbvsH-btn { flex-shrink: 0; margin-_hTMjKPsR: -1px; border-_urDTSKva-_hTMjKPsR-radius: 0; border-bottom-_hTMjKPsR-radius: 0; }
  #_iMcFnsme .modal-_XJLNgCkv { max-_GtoLMByl: 300px; background: white; padding: 1rem; _SquPJSls-align: center; }
  #qrCodeImg { max-_GtoLMByl: 100%; }
  @media (max-_GtoLMByl: 768px) {
    html { font-size: 15px; } ._OmcdLZSP-_VSGYmlIA { padding: 0 0.8rem; } _wSKvbxTj { margin-_urDTSKva: 2.5rem; margin-bottom: 1.5rem; } #_WWpyFWKM { _urDTSKva: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_IczTwelk>
  <_IczTwelk _IKtrpYVv="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_XJLNgCkv-bg: #FFFFFF; --border-_iklZawQu: #DCDFE6; --_SquPJSls-_iklZawQu: #303133; --_SquPJSls-light: #606266; }
  .theme-light .card { background-_iklZawQu: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_iklZawQu: #F5F7FA; }
  .theme-light tbody tr:hover { background-_iklZawQu: #ECF5FF; }
  .theme-matrix { --primary-_iklZawQu: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_XJLNgCkv-bg: #0D0208; --border-_iklZawQu: #00FF41; --_SquPJSls-_iklZawQu: #00FF41; --_SquPJSls-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_iklZawQu: rgba(0, 20, 0, 0.7); _SquPJSls-shadow: 0 0 5px var(--primary-_iklZawQu); backdrop-filter: none; }
  .theme-matrix th { background-_iklZawQu: #000; }
  .theme-matrix tbody tr:hover { background-_iklZawQu: #010; }
  .theme-matrix .btn { _SquPJSls-shadow: none; _iklZawQu: #000; }
  .theme-matrix .btn-outline { background-_iklZawQu: transparent; }
  .theme-modern-glass { --primary-_iklZawQu: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_XJLNgCkv-bg: rgba(30, 30, 40, 0.6); --border-_iklZawQu: rgba(255, 255, 255, 0.2); --_SquPJSls-_iklZawQu: #F0F0F0; --_SquPJSls-light: #A0A0B0; --border-radius-md: 12px; }
  _cvKfTXWI.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-_iklZawQu: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_XJLNgCkv-bg: rgba(30, 30, 40, 0.6); --border-_iklZawQu: rgba(255, 255, 255, 0.2); --_SquPJSls-_iklZawQu: #F0F0F0; --_SquPJSls-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_iklZawQu: var(--_XJLNgCkv-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_iklZawQu); }
  .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-_iklZawQu: rgba(0,0,0,0.3); border-right-_iklZawQu: 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); _SquPJSls-shadow: 0 1px 2px rgba(0,0,0,0.2); _iklZawQu: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_iklZawQu: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _SquPJSls-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_iklZawQu); border-_iklZawQu: var(--primary-_iklZawQu); _iklZawQu: #fff; }
  .glassy-components _wSKvbxTj h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _SquPJSls; -webkit-_SquPJSls-fill-_iklZawQu: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _iklZawQu: transparent; }
  .theme-aurora-glass { --primary-_iklZawQu: #38bdf8; --light-bg: #0c0a09; --_XJLNgCkv-bg: rgba(23, 23, 23, 0.5); --border-_iklZawQu: rgba(255, 255, 255, 0.15); --_SquPJSls-_iklZawQu: #f2f2f2; --_SquPJSls-light: #a3a3a3; }
  _cvKfTXWI.theme-aurora-glass::before { _XJLNgCkv: ''; position: fixed; _urDTSKva: 0; _hTMjKPsR: 0; _GtoLMByl: 100%; height: 100%; z-_wPIDZJsn: -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-_iklZawQu: #08fdd8; --light-bg: #010409; --_XJLNgCkv-bg: rgba(22, 27, 34, 0.6); --border-_iklZawQu: rgba(139, 148, 158, 0.3); --_SquPJSls-_iklZawQu: #e6edf3; --_SquPJSls-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_iklZawQu), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_iklZawQu-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_iklZawQu-rgb), 0.5); }
  .theme-marble-light { --primary-_iklZawQu: #bfa37c; --light-bg: #f7f5f2; --_XJLNgCkv-bg: #ffffff; --border-_iklZawQu: #e0dcd5; --_SquPJSls-_iklZawQu: #3d3a36; --_SquPJSls-light: #6b6661; }
  _cvKfTXWI.theme-marble-light { background-image: _xnyHYIzb('_VKuCcQUN:image/svg+xml,%3Csvg _GtoLMByl="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-_iklZawQu: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_IczTwelk>
  </head><_cvKfTXWI _IKtrpYVv="pageBody">
  <_qqbhvIkc _IKtrpYVv="background-_qqbhvIkc"></_qqbhvIkc>
  <div _IKtrpYVv="_snhhAeOL">
      <div class="modal-_XJLNgCkv">
          <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 _cYgHVtnz="_jCFiQgRE" _IKtrpYVv="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _cYgHVtnz="_jCFiQgRE" _IKtrpYVv="confirmPassword"></div></div>
          <div class="modal-buttons"><button _IKtrpYVv="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_OmcdLZSP-_VSGYmlIA">
    <button _IKtrpYVv="_WWpyFWKM" class="btn btn-outline"></button>
    <div _IKtrpYVv="marquee-_VSGYmlIA"><div _IKtrpYVv="marquee-_SquPJSls"></div></div>
    <_wSKvbxTj><h1 _IKtrpYVv="pageTitle"></h1></_wSKvbxTj>
    <div class="card" _IKtrpYVv="visitorPasswordPrompt" _IczTwelk="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_jCFiQgRE-input-group">
            <input _cYgHVtnz="_jCFiQgRE" _IKtrpYVv="visitorPasswordEntry" _jrOblrzR="访客密码">
            <button _IKtrpYVv="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _IKtrpYVv="_XMdGiFby" _IczTwelk="display: block;">
        <div class="card progress-section">
            <div _IKtrpYVv="progressDisplay">
                <progress _IKtrpYVv="_xTjMrYlo" _yjraJIiW="0" max="100"></progress>
                <div _IKtrpYVv="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _OmcdLZSP-download-section">
          <div class="section-_wSKvbxTj"><h2 _IKtrpYVv="appDownloadTitleEl"></h2></div>
          <div class="_OmcdLZSP-download-buttons">
            <button class="btn" _VKuCcQUN-_AYCrGrRS="android">安卓客户端</button>
            <button class="btn" _VKuCcQUN-_AYCrGrRS="ios">苹果客户端</button>
            <button class="btn" _VKuCcQUN-_AYCrGrRS="windows">Windows客户端</button>
            <button class="btn" _VKuCcQUN-_AYCrGrRS="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _YHtsypkv-section" _IKtrpYVv="_hKseeFwz" _IczTwelk="display:none;">
          <div class="section-_wSKvbxTj">
            <h2 _IKtrpYVv="liveTitleEl"></h2>
            <div class="generator-info" _IKtrpYVv="liveGeneratorInfo"></div>
          </div>
          <div _IKtrpYVv="_ppMjcRZQ" class="_YHtsypkv-actions-_VSGYmlIA" _IczTwelk="display: none;">
             <div class="_YHtsypkv-api-buttons">
                <button _IKtrpYVv="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _IKtrpYVv="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _IKtrpYVv="resultsTable">
              <thead><tr><th _IKtrpYVv="tableHeader1El"></th><th _IKtrpYVv="tableHeader2El"></th><th _IKtrpYVv="tableHeader3El"></th><th _IKtrpYVv="tableHeader4El"></th><th _IKtrpYVv="tableHeader5El"></th><th _IKtrpYVv="tableHeader6El"></th><th _IKtrpYVv="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _IKtrpYVv="_oQBcyFGX" _IczTwelk="display:none;">
          <div class="section-_wSKvbxTj"><h2 _IKtrpYVv="cachedTitleEl"></h2><div class="generator-info" _IKtrpYVv="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _IKtrpYVv="cachedResultsTable">
              <thead><tr><th _IKtrpYVv="cachedTableHeader1El"></th><th _IKtrpYVv="cachedTableHeader2El"></th><th _IKtrpYVv="cachedTableHeader3El"></th><th _IKtrpYVv="cachedTableHeader4El"></th><th _IKtrpYVv="cachedTableHeader5El"></th><th _IKtrpYVv="cachedTableHeader6El"></th><th _IKtrpYVv="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _IKtrpYVv="notificationTooltip" class="tooltip-notification"></div>
  <div _IKtrpYVv="_gteuvdyJ">
    <div class="modal-_XJLNgCkv">
      <h3>修改参数</h3>
      <div _IczTwelk="display: flex; border-bottom: 1px solid var(--border-_iklZawQu); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_bKWmhFmC(event, 'general-_zDtQnrim')">通用设置</button>
          <button class="tab-button" onclick="_bKWmhFmC(event, '_vpEUaRpE-_zDtQnrim')">链接设置</button>
          <button class="tab-button" onclick="_bKWmhFmC(event, 'fine-grained-_zDtQnrim')">IP源设置</button>
          <button class="tab-button" onclick="_bKWmhFmC(event, 'advanced-_zDtQnrim')">高级设置</button>
      </div>
      <div _IKtrpYVv="general-_zDtQnrim" class="tab-_XJLNgCkv" _IczTwelk="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_TRAdckVZ _IKtrpYVv="themeSelect">
                    <_kzVMuNNt _yjraJIiW="theme-aurora-glass">极光-玻璃质感</_kzVMuNNt>
                    <_kzVMuNNt _yjraJIiW="theme-particles-glass">粒子-玻璃质感</_kzVMuNNt>
                    <_kzVMuNNt _yjraJIiW="theme-modern-glass">现代-玻璃质感</_kzVMuNNt>
                    <_kzVMuNNt _yjraJIiW="theme-cyberpunk-glass">赛博朋克-玻璃质感</_kzVMuNNt>
                    <_kzVMuNNt _yjraJIiW="theme-dark-particles">暗色-粒子背景</_kzVMuNNt>
                    <_kzVMuNNt _yjraJIiW="theme-dark-bing">暗色-必应壁纸</_kzVMuNNt>
                    <_kzVMuNNt _yjraJIiW="theme-light">亮色-简约</_kzVMuNNt>
                    <_kzVMuNNt _yjraJIiW="theme-light-bing">亮色-必应壁纸</_kzVMuNNt>
                    <_kzVMuNNt _yjraJIiW="theme-marble-light">简约大理石-亮色</_kzVMuNNt>
                    <_kzVMuNNt _yjraJIiW="theme-matrix">矩阵-代码雨</_kzVMuNNt>
                </_TRAdckVZ>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _cYgHVtnz="_iklZawQu" _IKtrpYVv="primaryColorInput">
                <span _IczTwelk="_GtoLMByl: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _cYgHVtnz="_iklZawQu" _IKtrpYVv="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _IczTwelk="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _IczTwelk="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_SquPJSls-_iklZawQu-grid"><input _cYgHVtnz="_iklZawQu" _IKtrpYVv="colorInput_title"><textarea _IKtrpYVv="textInput_title" _dPVAtthf="1" _jrOblrzR="页面主标题"></textarea></div>
                <div class="_SquPJSls-_iklZawQu-grid"><input _cYgHVtnz="_iklZawQu" _IKtrpYVv="colorInput_loginButton"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="textInput_loginButton" _jrOblrzR="登录按钮文本"></div>
                <div class="_SquPJSls-_iklZawQu-grid"><input _cYgHVtnz="_iklZawQu" _IKtrpYVv="colorInput_appDownloadTitle"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="textInput_appDownloadTitle" _jrOblrzR="APP下载标题"></div>
                <div class="_SquPJSls-_iklZawQu-grid"><input _cYgHVtnz="_iklZawQu" _IKtrpYVv="colorInput_liveTitle"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="textInput_liveTitle" _jrOblrzR="本次结果标题"></div>
                <div class="_SquPJSls-_iklZawQu-grid"><input _cYgHVtnz="_iklZawQu" _IKtrpYVv="colorInput_cachedTitle"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="textInput_cachedTitle" _jrOblrzR="上次结果标题"></div>
                <div class="_SquPJSls-_iklZawQu-grid"><input _cYgHVtnz="_iklZawQu" _IKtrpYVv="colorInput_tableHeader"><input _cYgHVtnz="_SquPJSls" _yjraJIiW="表格头部文本颜色" readonly _IczTwelk="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _IczTwelk="align-self: start;"><label>公告栏设置</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _IczTwelk="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _IKtrpYVv="announcementText" _jrOblrzR="在此输入公告内容" _dPVAtthf="3"></textarea>
                 <div _IczTwelk="display: flex; justify-_XJLNgCkv: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _IczTwelk="display: flex; align-items: center; gap: 5px;"><input _cYgHVtnz="checkbox" _IKtrpYVv="enableMarquee"> 顶部走马灯</label>
                    <label _IczTwelk="display: flex; align-items: center; gap: 5px;"><input _cYgHVtnz="checkbox" _IKtrpYVv="enablePopup"> 右上角弹窗</label>
                    <div _IKtrpYVv="popupDurationContainer" _IczTwelk="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _cYgHVtnz="number" _IKtrpYVv="popupDuration" _IczTwelk="_GtoLMByl: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _IKtrpYVv="_vpEUaRpE-_zDtQnrim" class="tab-_XJLNgCkv">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="converterServiceUrlInput" _jrOblrzR="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _cYgHVtnz="number" _IKtrpYVv="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _IczTwelk="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _IKtrpYVv="subscriptionIdCharset" _dPVAtthf="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-_aJyffrdB" _VKuCcQUN-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _IczTwelk="justify-_XJLNgCkv: flex-start;"><input _cYgHVtnz="checkbox" _IKtrpYVv="enableItemLinkCheckbox"></div>
        </div>
        <div _IKtrpYVv="itemLinkConfigGroup" _IczTwelk="display:none; margin-_urDTSKva: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _IczTwelk="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="定义分享链接格式。可用占位符: {_jAwlIgeD}, {_SADXxFkD}, {_menmgQPN}, {rank}, {_mwIaMLpg}, {_qEQOndrv}, {_WXrFbaSJ}, {_lRlYIfgY}, {_atPIzTsm}。">?</span></div>
              <div class="form-grid-control"><textarea _IKtrpYVv="itemLinkTemplateInput" _dPVAtthf="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_TRAdckVZ _IKtrpYVv="parameterSelectionMode"></_TRAdckVZ></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _IKtrpYVv="parameter-sets-_VSGYmlIA"></div><button _cYgHVtnz="button" _IKtrpYVv="add-parameter-_foLoWWQC-btn" class="btn btn-outline" _IczTwelk="margin-_urDTSKva: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _IczTwelk="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _IKtrpYVv="custom-fields-_VSGYmlIA" _IczTwelk="_GtoLMByl: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _IczTwelk="justify-_XJLNgCkv: flex-start;"><button _cYgHVtnz="button" _IKtrpYVv="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _IKtrpYVv="fine-grained-_zDtQnrim" class="tab-_XJLNgCkv">
          <div class="form-grid-label" _IczTwelk="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _IczTwelk="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_XJLNgCkv: flex-start;">
              <label><input _cYgHVtnz="checkbox" _IKtrpYVv="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _cYgHVtnz="checkbox" _IKtrpYVv="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _IKtrpYVv="fine-grained-sources-_VSGYmlIA"></div><button _cYgHVtnz="button" _IKtrpYVv="add-fine-grained-_fLDjfvjW-btn" class="btn btn-outline" _IczTwelk="margin-_urDTSKva: 10px;">添加地区</button></div>
      </div>
      <div _IKtrpYVv="advanced-_zDtQnrim" class="tab-_XJLNgCkv">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _cYgHVtnz="checkbox" _IKtrpYVv="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _IKtrpYVv="resolvedDomainsGroup" _IczTwelk="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _IKtrpYVv="resolvedDomainsInput" _jrOblrzR="留空则使用内置默认域名" _dPVAtthf="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-_aJyffrdB" _VKuCcQUN-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _cYgHVtnz="checkbox" _IKtrpYVv="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _IKtrpYVv="customNodesGroup" _IczTwelk="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _IKtrpYVv="customNodesInput" _jrOblrzR="一行一个地址,支持域名、IPv4、IPv6。" _dPVAtthf="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-_aJyffrdB" _VKuCcQUN-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _cYgHVtnz="number" _IKtrpYVv="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _cYgHVtnz="number" _IKtrpYVv="topNInput"></div>
            <div class="form-grid-label" _IczTwelk="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _IczTwelk="display: none;"><input _cYgHVtnz="number" _IKtrpYVv="latencyRangeMinInput" _jrOblrzR="最小"><span>-</span><input _cYgHVtnz="number" _IKtrpYVv="latencyRangeMaxInput" _jrOblrzR="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _IczTwelk="justify-_XJLNgCkv: flex-start;"><input _cYgHVtnz="checkbox" _IKtrpYVv="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-_aJyffrdB" _VKuCcQUN-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _cYgHVtnz="number" _IKtrpYVv="geoLocationRetriesInput" _IczTwelk="_GtoLMByl: 80px;"> <span>次</span>
                <div _IczTwelk="display: flex; align-items: center; gap: 5px; margin-_hTMjKPsR: 20px;">
                    <input _cYgHVtnz="checkbox" _IKtrpYVv="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-_aJyffrdB" _VKuCcQUN-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_WXrFbaSJ:_SADXxFkD' 或 '_WXrFbaSJ'。">?</span></div>
            <div class="form-grid-control"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="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-_aJyffrdB" _VKuCcQUN-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _IczTwelk="justify-_XJLNgCkv: flex-start;"><input _cYgHVtnz="checkbox" _IKtrpYVv="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _IKtrpYVv="websocketStreamerGroup" _IczTwelk="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="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-_aJyffrdB" _VKuCcQUN-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _IczTwelk="justify-_XJLNgCkv: flex-start;"><input _cYgHVtnz="checkbox" _IKtrpYVv="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="启用 /_jAwlIgeD 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _IczTwelk="justify-_XJLNgCkv: flex-start;"><input _cYgHVtnz="checkbox" _IKtrpYVv="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _IKtrpYVv="apiConfigGroup" _IczTwelk="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="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-_aJyffrdB" _VKuCcQUN-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _IczTwelk="justify-_XJLNgCkv: flex-start;"><input _cYgHVtnz="checkbox" _IKtrpYVv="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _IKtrpYVv="customSubPathGroup" _IczTwelk="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="customSubPathInput" _jrOblrzR="例如: 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-_aJyffrdB" _VKuCcQUN-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _IczTwelk="justify-_XJLNgCkv: flex-start;"><input _cYgHVtnz="checkbox" _IKtrpYVv="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _IKtrpYVv="visitorPasswordGroup" _IczTwelk="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _IczTwelk="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_aJyffrdB" _VKuCcQUN-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _IczTwelk="flex-direction: column; align-items: stretch; gap: 8px;"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="botTokenInput" _jrOblrzR="Telegram Bot Token"><input _cYgHVtnz="_SquPJSls" _IKtrpYVv="chatIdInput" _jrOblrzR="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _IczTwelk="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _IczTwelk="flex-direction: column; align-items: stretch; gap: 8px;"><input _cYgHVtnz="_jCFiQgRE" _IKtrpYVv="oldPasswordInput" _jrOblrzR="旧密码"><input _cYgHVtnz="_jCFiQgRE" _IKtrpYVv="newPasswordInput" _jrOblrzR="新密码 (至少6位)"><button _IKtrpYVv="changePasswordBtn" class="btn" _IczTwelk="align-self: flex-start; margin-_hTMjKPsR: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _IKtrpYVv="closeModalBtn" class="btn btn-outline">关闭</button><button _IKtrpYVv="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _IKtrpYVv="_hHyUFwlJ">
      <div class="_OmcdLZSP-modal-_XJLNgCkv">
          <div class="_OmcdLZSP-modal-_wSKvbxTj"><h3 _IKtrpYVv="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_OmcdLZSP-modal-_cvKfTXWI" _IKtrpYVv="appModalBody"></div>
      </div>
  </div>
  <div _IKtrpYVv="_fAgNPaIX">
      <div class="modal-_XJLNgCkv">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _VKuCcQUN-sub-_cYgHVtnz="coreEngine">Xray</button><button class="btn _suiQbvsH-btn" _VKuCcQUN-sub-_cYgHVtnz="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _VKuCcQUN-sub-_cYgHVtnz="coreProfile">Sing-Box</button><button class="btn _suiQbvsH-btn" _VKuCcQUN-sub-_cYgHVtnz="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _VKuCcQUN-sub-_cYgHVtnz="configProfile">Clash</button><button class="btn _suiQbvsH-btn" _VKuCcQUN-sub-_cYgHVtnz="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _VKuCcQUN-sub-_cYgHVtnz="policyProfile">Surge</button><button class="btn _suiQbvsH-btn" _VKuCcQUN-sub-_cYgHVtnz="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _IczTwelk="justify-_XJLNgCkv: center;"><button class="btn btn-outline" _IKtrpYVv="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _IKtrpYVv="_iMcFnsme">
      <div class="modal-_XJLNgCkv">
          <img _IKtrpYVv="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _nTLReEKV = {
        isValid: (_jAwlIgeD) => _nTLReEKV.isIPv4(_jAwlIgeD) || _nTLReEKV.isIPv6(_jAwlIgeD),
        isIPv4: (_jAwlIgeD) => {
            if (typeof _jAwlIgeD !== 'string') return false;
            const _bbXHwUzs = _jAwlIgeD.split('.');
            if (_bbXHwUzs._JoGjJgLm !== 4) return false;
            return _bbXHwUzs.every(_MjMoIZwf => {
                const _kiYvppJm = parseInt(_MjMoIZwf, 10);
                return !isNaN(_kiYvppJm) && _kiYvppJm >= 0 && _kiYvppJm <= 255 && String(_kiYvppJm) === _MjMoIZwf;
            });
        },
        isIPv6: (_jAwlIgeD) => {
            if (typeof _jAwlIgeD !== '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]))$/_QlxHsXXs.test(_jAwlIgeD);
        },
        toLong4: (_jAwlIgeD) => _jAwlIgeD.split('.').reduce((acc, octet, _QlxHsXXs) => acc + (parseInt(octet) << (8*(3-_QlxHsXXs))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_jAwlIgeD) => {
            try {
                const _lvpgpRNw = _jAwlIgeD.split('/')[0];
                const _bbXHwUzs = _lvpgpRNw.split('::');
                if (_bbXHwUzs._JoGjJgLm > 2) return 0n;
                let _imcjPHiM = [];
                if (_bbXHwUzs[0]) {
                    _imcjPHiM = _bbXHwUzs[0].split(':');
                }
                let _nkfRkCBT = [];
                if (_bbXHwUzs._JoGjJgLm > 1 && _bbXHwUzs[1]) {
                    _nkfRkCBT = _bbXHwUzs[1].split(':');
                }
                if (_imcjPHiM._JoGjJgLm + _nkfRkCBT._JoGjJgLm > 8) return 0n;
                const _VTMNQBBw = 8 - (_imcjPHiM._JoGjJgLm + _nkfRkCBT._JoGjJgLm);
                const _njztiRTF = [
                    ..._imcjPHiM,
                    ...Array(_VTMNQBBw).fill('0'),
                    ..._nkfRkCBT
                ].map(_MjMoIZwf => _MjMoIZwf || '0');
                while(_njztiRTF._JoGjJgLm < 8) {
                    _njztiRTF.push('0');
                }
                let _QmkcZuhd = 0n;
                for (const _MjMoIZwf of _njztiRTF) {
                    if (_MjMoIZwf._JoGjJgLm > 4) return 0n;
                    const _yjraJIiW = BigInt('0x' + _MjMoIZwf);
                    _QmkcZuhd = (_QmkcZuhd << 16n) | _yjraJIiW;
                }
                return _QmkcZuhd;
            } catch(_IEhrOjLx) {
                return 0n;
            }
        },
        fromBigInt6: (_QmkcZuhd) => {
            if (typeof _QmkcZuhd !== '_QmkcZuhd' || _QmkcZuhd < 0n) return null;
            const _bbXHwUzs = [];
            for (let _QlxHsXXs = 0; _QlxHsXXs < 8; _QlxHsXXs++) {
                _bbXHwUzs.unshift((_QmkcZuhd & 0xFFFFn).toString(16));
                _QmkcZuhd >>= 16n;
            }
            let _WRpEHkcn = { start: -1, _peOeVQDG: 0 };
            let _sXYFTwuo = { start: -1, _peOeVQDG: 0 };
            for (let _QlxHsXXs = 0; _QlxHsXXs < 8; _QlxHsXXs++) {
                if (_bbXHwUzs[_QlxHsXXs] === '0') {
                    if (_sXYFTwuo.start === -1) _sXYFTwuo.start = _QlxHsXXs;
                    _sXYFTwuo._peOeVQDG++;
                } else {
                    if (_sXYFTwuo._peOeVQDG > _WRpEHkcn._peOeVQDG) _WRpEHkcn = { ..._sXYFTwuo };
                    _sXYFTwuo = { start: -1, _peOeVQDG: 0 };
                }
            }
            if (_sXYFTwuo._peOeVQDG > _WRpEHkcn._peOeVQDG) _WRpEHkcn = { ..._sXYFTwuo };
            if (_WRpEHkcn._peOeVQDG > 1) {
                _bbXHwUzs.splice(_WRpEHkcn.start, _WRpEHkcn._peOeVQDG, '');
                if (_WRpEHkcn.start === 0) _bbXHwUzs.unshift('');
                if (_WRpEHkcn.start + _WRpEHkcn._peOeVQDG === 8) _bbXHwUzs.push('');
            }
            return _bbXHwUzs.join(':');
        },
        cidrToRange: (cidr, _WglccMDf = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _kLyhxwSX = parseInt(bitsStr, 10);
                const _vvXQGUiR = new Set();
                if (_nTLReEKV.isIPv4(range)) {
                    if (isNaN(_kLyhxwSX) || _kLyhxwSX < 8 || _kLyhxwSX > 32) return [];
                    if (_kLyhxwSX === 32) return [range];
                    const _mvFKOCJN = _nTLReEKV.toLong4(range);
                    const _vQvGNUNp = (0xFFFFFFFF << (32 - _kLyhxwSX)) >>> 0;
                    const _cqLgFWtA = _mvFKOCJN & _vQvGNUNp;
                    const _IjXLqLvg = 1 << (32 - _kLyhxwSX);
                    if (_IjXLqLvg <= 2) return [];
                    const _VNipXLdi = Math.min(_WglccMDf, _IjXLqLvg - 2);
                    let _XKCHIncT = 0;
                    while (_vvXQGUiR.size < _VNipXLdi && _XKCHIncT < _VNipXLdi * 5) {
                        const _nVmCPnvb = Math.floor(Math.random() * (_IjXLqLvg - 2)) + 1;
                        _vvXQGUiR.add(_nTLReEKV.fromLong4((_cqLgFWtA + _nVmCPnvb) >>> 0));
                        _XKCHIncT++;
                    }
                    return Array.from(_vvXQGUiR);
                } else if (_nTLReEKV.isIPv6(range)) {
                    if (isNaN(_kLyhxwSX) || _kLyhxwSX < 16 || _kLyhxwSX > 128) return [];
                    if (_kLyhxwSX === 128) return [range];
                    const _zuXBmWPP = _nTLReEKV.toBigInt6(range);
                    const _vQvGNUNp = (2n ** BigInt(128 - _kLyhxwSX) - 1n);
                    const _cqLgFWtA = _zuXBmWPP & ~_vQvGNUNp;
                    const _ZfVCSKWB = 2n ** BigInt(128 - _kLyhxwSX);
                    if (_ZfVCSKWB <= 2n) return [];
                    let _XKCHIncT = 0;
                    while (_vvXQGUiR.size < _WglccMDf && _XKCHIncT < _WglccMDf * 5) {
                        const _oLyyNHxN = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_oLyyNHxN);
                        let _WKByTleb = 0n;
                        for (const _AFIPAvqC of _oLyyNHxN) {
                            _WKByTleb = (_WKByTleb << 8n) | BigInt(_AFIPAvqC);
                        }
                        const _nVmCPnvb = _WKByTleb % (_ZfVCSKWB - 2n) + 1n;
                        _vvXQGUiR.add(_nTLReEKV.fromBigInt6(_cqLgFWtA + _nVmCPnvb));
                        _XKCHIncT++;
                    }
                    return Array.from(_vvXQGUiR);
                }
                return [];
            } catch(_IEhrOjLx) {
                console.error(`CIDR to range failed for ${cidr}:`, _IEhrOjLx);
                return [];
            }
        }
    };
    function _ZzVVnzqy(_VPtzsvlC, _mCtTAren) {
        const _LhYfLtlD = {};
        const _vYerfetY = Object._vYerfetY(_mCtTAren);
        const _bbXHwUzs = _vYerfetY.map(_BfGaXxgR => {
            const _QtuFBQdb = _VPtzsvlC * (_mCtTAren[_BfGaXxgR] / 100);
            return { _BfGaXxgR, _WglccMDf: Math.floor(_QtuFBQdb), remainder: _QtuFBQdb - Math.floor(_QtuFBQdb) };
        });
        let _fPhepvZg = _bbXHwUzs.reduce((acc, _MjMoIZwf) => acc + _MjMoIZwf._WglccMDf, 0);
        _bbXHwUzs.sort((a, b) => b.remainder - a.remainder);
        let _QnDAwjKi = _VPtzsvlC - _fPhepvZg;
        for (let _QlxHsXXs = 0; _QlxHsXXs < _QnDAwjKi; _QlxHsXXs++) {
            _bbXHwUzs[_QlxHsXXs % _bbXHwUzs._JoGjJgLm]._WglccMDf++;
        }
        for (const _MjMoIZwf of _bbXHwUzs) {
            _LhYfLtlD[_MjMoIZwf._BfGaXxgR] = _MjMoIZwf._WglccMDf;
        }
        return _LhYfLtlD;
    }
    const _EgelbSvj = __PAGE_DATA_JSON__;
    const _yvgRNesI = _EgelbSvj._gcynLpiH;
    const _mrRTkWiP = _EgelbSvj.status;
    const _pybihBbs = __ALL_CF_CIDR_LIST_JSON__;
    const _wdQICujh = __BALANCED_CF_CIDR_LIST_JSON__;
    const _alLPTSYk = __DEFAULT_DOMAINS_LIST_JSON__;
    const _zHxvaMjr = __COUNTRY_MAP_JSON__;
    const _aOGAvLaT = _zHxvaMjr;
    const _WZYfZERS = 2500;
    const _ZFnybHhT = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _XMdGiFby = document.getElementById('_XMdGiFby');
    const _xTjMrYlo = document.getElementById('_xTjMrYlo');
    const _JaKeIMFf = document.getElementById('status');
    const _hKseeFwz = document.getElementById('_hKseeFwz');
    const _rGxkwfJQ = document.getElementById('resultsTable').querySelector('tbody');
    const _oQBcyFGX = document.getElementById('_oQBcyFGX');
    const _BwMhQdDB = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _ljCbaEPz = document.getElementById('notificationTooltip');
    const _WWpyFWKM = document.getElementById('_WWpyFWKM');
    const _gteuvdyJ = document.getElementById('_gteuvdyJ');
    const _hHyUFwlJ = document.getElementById('_hHyUFwlJ');
    const _fAgNPaIX = document.getElementById('_fAgNPaIX');
    const _iMcFnsme = document.getElementById('_iMcFnsme');
    const _snhhAeOL = document.getElementById('_snhhAeOL');
    const _ppMjcRZQ = document.getElementById('_ppMjcRZQ');
    let _WqxyMGuZ = null;
    let _XCNUGfHv = null;
    let _FqIdQXsk = [];
    let _JMBujczg = false;
    let _TUkoUicO = null;
    function _HshVAxJi(_GNlaCtJe, _GXycsxGr) {
        const _aTqvHowW=parseInt(_GNlaCtJe.slice(1),16),t=_GXycsxGr<0?0:255,p=_GXycsxGr<0?_GXycsxGr*-1:_GXycsxGr,R=_aTqvHowW>>16,G=_aTqvHowW>>8&0x00FF,B=_aTqvHowW&0x0000FF;
        const _HMbKUpvE = Math.round((t-R)*p)+R;
        const _AWUJWNyi = Math.round((t-G)*p)+G;
        const _sUFTpvQt = Math.round((t-B)*p)+B;
        return `rgb(${_HMbKUpvE.toString()}, ${_AWUJWNyi.toString()}, ${_sUFTpvQt.toString()})`;
    }
    function _VtfSzGFb(_zDtQnrim) {
        const _KnnDPMHD = _EdTZiiqx(_zDtQnrim.primaryColor);
        if(_KnnDPMHD) {
            document.documentElement._IczTwelk.setProperty('--primary-_iklZawQu-rgb', `${_KnnDPMHD.r},${_KnnDPMHD.g},${_KnnDPMHD.b}`);
        }
        document.documentElement._IczTwelk.setProperty('--primary-_iklZawQu', _zDtQnrim.primaryColor);
        document.documentElement._IczTwelk.setProperty('--primary-hover', _HshVAxJi(_zDtQnrim.primaryColor, -0.1));
        document.documentElement._IczTwelk.setProperty('--primary-gradient-start', _HshVAxJi(_zDtQnrim.primaryColor, 0.1));
        document.documentElement._IczTwelk.setProperty('--primary-gradient-end', _HshVAxJi(_zDtQnrim.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _zDtQnrim.texts.title;
        document.title = _zDtQnrim.texts.title;
        _WWpyFWKM.innerText = _WqxyMGuZ ? _zDtQnrim.texts.loginButtonSuccess : _zDtQnrim.texts.loginButton;
        _WWpyFWKM._IczTwelk._iklZawQu = _zDtQnrim.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _zDtQnrim.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _zDtQnrim.texts.liveTitle;
        document.getElementById('liveTitleEl')._IczTwelk._iklZawQu = _zDtQnrim.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _zDtQnrim.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._IczTwelk._iklZawQu = _zDtQnrim.colors.cachedTitle;
        const _skdDjFAj = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _skdDjFAj.forEach((_IKtrpYVv, _wPIDZJsn) => {
            const _HRRrPMLO = document.getElementById(_IKtrpYVv);
            if (_HRRrPMLO) _HRRrPMLO.innerText = _zDtQnrim.texts[`tableHeader${_wPIDZJsn + 1}`] || '';
        });
        const _cDCLPjQV = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _cDCLPjQV.forEach((_IKtrpYVv, _wPIDZJsn) => {
             const _HRRrPMLO = document.getElementById(_IKtrpYVv);
             if (_HRRrPMLO) _HRRrPMLO.innerText = _yvgRNesI.texts[`tableHeader${_wPIDZJsn + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._IczTwelk._iklZawQu = _zDtQnrim.colors.tableHeader);
        document._cvKfTXWI.className = '';
        document._cvKfTXWI.classList.add(_zDtQnrim.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_zDtQnrim.theme)) {
            document._cvKfTXWI.classList.add('glassy-components');
        }
        document._cvKfTXWI._IczTwelk.backgroundImage = '';
        _JHbLfrOk();
        if (_zDtQnrim.theme.includes('particles') || _zDtQnrim.theme.includes('glass')) {
            _nscTKdbh(_zDtQnrim.particleColor);
        } else if (_zDtQnrim.theme.includes('bing')) {
            document._cvKfTXWI._IczTwelk.backgroundImage = '_xnyHYIzb(/bing-wallpaper)';
        }
    }
    function _jbXrbIwl() {
        _WqxyMGuZ = null;
        if(_XCNUGfHv) clearTimeout(_XCNUGfHv);
        _VtfSzGFb(_yvgRNesI);
        _SaeUJvkd("登录已超时,请重新登录。", "warning");
    }
    async function _cxgUoBXp() {
        if (_WqxyMGuZ) {
            _bIyWuwLG();
            return;
        }
        const _QjwjBmtW = prompt('请输入管理员密码:');
        if (!_QjwjBmtW) return;
        try {
            const _VHpiYngw = await fetch('/api/verify-_jCFiQgRE', {
                method: 'POST',
                _skdDjFAj: { 'Content-Type': 'application/json' },
                _cvKfTXWI: JSON.stringify({ _jCFiQgRE: _QjwjBmtW })
            });
            const _FxhFwhmT = await _VHpiYngw.json();
            if (_FxhFwhmT.success) {
                _WqxyMGuZ = _QjwjBmtW;
                _SaeUJvkd("登录成功!有效期5分钟。", "success");
                if (_XCNUGfHv) clearTimeout(_XCNUGfHv);
                _XCNUGfHv = setTimeout(_jbXrbIwl, 5 * 60 * 1000);
                _VtfSzGFb(_yvgRNesI);
                _bIyWuwLG();
            } else {
                throw new Error(_FxhFwhmT._rFZPDjIC || '密码验证失败');
            }
        } catch (_IEhrOjLx) {
            _SaeUJvkd(`登录失败: ${_IEhrOjLx._rFZPDjIC}`, "error");
        }
    }
    function _DLsngofH() {
        if (!_mrRTkWiP._FRGpzlOu) {
            _snhhAeOL._IczTwelk.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _jCFiQgRE = document.getElementById('initialPassword')._yjraJIiW;
                const _KVmhRkXe = document.getElementById('confirmPassword')._yjraJIiW;
                if (_jCFiQgRE !== _KVmhRkXe) {
                    _SaeUJvkd("两次输入的密码不一致!", "error");
                    return;
                }
                if (_jCFiQgRE._JoGjJgLm < 6) {
                    _SaeUJvkd("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _VHpiYngw = await fetch('/api/_foLoWWQC-_jCFiQgRE', {
                        method: 'POST',
                        _skdDjFAj: { 'Content-Type': 'application/json' },
                        _cvKfTXWI: JSON.stringify({ _jCFiQgRE })
                    });
                    const _FxhFwhmT = await _VHpiYngw.json();
                    if (_FxhFwhmT.success) {
                        _SaeUJvkd(_FxhFwhmT._rFZPDjIC, "success");
                        setTimeout(() => _mwIaMLpg.reload(), 1500);
                    } else {
                        throw new Error(_FxhFwhmT._rFZPDjIC);
                    }
                } catch(_IEhrOjLx) {
                    _SaeUJvkd(`设置密码失败: ${_IEhrOjLx._rFZPDjIC}`, "error");
                }
            });
            return;
        }
        _WWpyFWKM.addEventListener('click', _cxgUoBXp);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _gteuvdyJ._IczTwelk.display = 'none'; });
        _gteuvdyJ.addEventListener('click', (_IEhrOjLx) => { if (_IEhrOjLx.target === _gteuvdyJ) _gteuvdyJ._IczTwelk.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_VSGYmlIA .fine-grained-_GqxlmxBu-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-_VSGYmlIA .fine-grained-_GqxlmxBu-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_WqxyMGuZ) {
                _SaeUJvkd("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _tjalOuBn = [];
            document.querySelectorAll('#custom-fields-_VSGYmlIA .custom-field-_uZeHyjNa').forEach(_uZeHyjNa => {
                const _menmgQPN = _uZeHyjNa.querySelector('.custom-field-_menmgQPN')._yjraJIiW.trim();
                const _yjraJIiW = _uZeHyjNa.querySelector('.custom-field-_yjraJIiW')._yjraJIiW.trim();
                if (_menmgQPN) _tjalOuBn.push({ _menmgQPN, _yjraJIiW });
            });
            const _ATlQBTOC = [];
            document.querySelectorAll('#parameter-sets-_VSGYmlIA .parameter-_foLoWWQC-_uZeHyjNa').forEach(_uZeHyjNa => {
                const _menmgQPN = _uZeHyjNa.querySelector('.param-_foLoWWQC-_menmgQPN')._yjraJIiW.trim();
                const _WXrFbaSJ = _uZeHyjNa.querySelector('.param-_foLoWWQC-_WXrFbaSJ')._yjraJIiW.trim();
                const _lRlYIfgY = _uZeHyjNa.querySelector('.param-_foLoWWQC-_lRlYIfgY')._yjraJIiW.trim();
                const _atPIzTsm = _uZeHyjNa.querySelector('.param-_foLoWWQC-_atPIzTsm')._yjraJIiW.trim();
                if(_menmgQPN) _ATlQBTOC.push({ _menmgQPN, _WXrFbaSJ, '_lRlYIfgY': _lRlYIfgY, _atPIzTsm });
            });
            const _amkqjdwE = [];
            document.querySelectorAll('#fine-grained-sources-_VSGYmlIA .fine-grained-_fLDjfvjW-_uZeHyjNa').forEach(_uZeHyjNa => {
                const _mwIaMLpg = _uZeHyjNa.querySelector('.fine-grained-_mwIaMLpg')._yjraJIiW.trim();
                const _vvXQGUiR = _uZeHyjNa.querySelector('.fine-grained-_vvXQGUiR')._yjraJIiW.trim();
                const _GqxlmxBu = _uZeHyjNa.querySelector('.fine-grained-_GqxlmxBu-cb').checked;
                const _PSZgwgFJ = parseInt(_uZeHyjNa.querySelector('.fine-grained-_PSZgwgFJ')._yjraJIiW, 10) || 0;
                const _ZZADJTWq = _uZeHyjNa.querySelector('.use-_menmgQPN-as-_mwIaMLpg-cb').checked;
                if (_mwIaMLpg && _vvXQGUiR) {
                    _amkqjdwE.push({ _mwIaMLpg, _vvXQGUiR, _GqxlmxBu, _PSZgwgFJ, _ZZADJTWq });
                }
            });
            
            let _QDwBIveF = parseInt(document.getElementById('subscriptionIdLength')._yjraJIiW, 10);
            if (isNaN(_QDwBIveF) || _QDwBIveF < 2) _QDwBIveF = 2;
            if (_QDwBIveF > 128) _QDwBIveF = 128;

            const _fZQqZrsN = {
                theme: document.getElementById('themeSelect')._yjraJIiW,
                primaryColor: document.getElementById('primaryColorInput')._yjraJIiW,
                particleColor: document.getElementById('particleColorInput')._yjraJIiW,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._yjraJIiW,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._yjraJIiW, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._yjraJIiW, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._yjraJIiW, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._yjraJIiW, 10) || 0,
                _NECIuZxM: document.getElementById('converterServiceUrlInput')._yjraJIiW.trim(),
                subscriptionId: {
                    _JoGjJgLm: _QDwBIveF,
                    _emrySbDR: document.getElementById('subscriptionIdCharset')._yjraJIiW.trim()
                },
                api: {
                    _GqxlmxBu: document.getElementById('enableApiCheckbox').checked,
                    _rFZPDjIC: document.getElementById('apiMessageInput')._yjraJIiW || '维护中...',
                },
                ispFilter: { 
                    _GqxlmxBu: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._yjraJIiW, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _GqxlmxBu: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _GqxlmxBu: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _xnyHYIzb: document.getElementById('websocketStreamerUrlInput')._yjraJIiW.trim()
                },
                visitorPassword: {
                    _GqxlmxBu: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _jCFiQgRE: document.getElementById('visitorPasswordInput')._yjraJIiW.trim()
                },
                customSubPath: {
                    _GqxlmxBu: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _atPIzTsm: document.getElementById('customSubPathInput')._yjraJIiW.trim()
                },
                itemLink: {
                    _GqxlmxBu: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._yjraJIiW,
                    selectionMode: document.getElementById('parameterSelectionMode')._yjraJIiW,
                    _ATlQBTOC: _ATlQBTOC,
                    _tjalOuBn: _tjalOuBn,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._yjraJIiW.trim(),
                },
                announcement: {
                    popup: {
                        _GqxlmxBu: document.getElementById('enablePopup').checked,
                        _SquPJSls: document.getElementById('announcementText')._yjraJIiW,
                        _QwQGPdEl: parseInt(document.getElementById('popupDuration')._yjraJIiW, 10) || 5
                    },
                    marquee: {
                        _GqxlmxBu: document.getElementById('enableMarquee').checked,
                        _SquPJSls: document.getElementById('announcementText')._yjraJIiW
                    }
                },
                fineGrained: {
                    _GqxlmxBu: true,
                    sources: _amkqjdwE
                },
                customNodes: {
                    _GqxlmxBu: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._yjraJIiW
                },
                texts: {
                    title: document.getElementById('textInput_title')._yjraJIiW,
                    loginButton: document.getElementById('textInput_loginButton')._yjraJIiW,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._yjraJIiW,
                    liveTitle: document.getElementById('textInput_liveTitle')._yjraJIiW,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._yjraJIiW,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._yjraJIiW,
                    loginButton: document.getElementById('colorInput_loginButton')._yjraJIiW,
                    liveTitle: document.getElementById('colorInput_liveTitle')._yjraJIiW,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._yjraJIiW,
                    tableHeader: document.getElementById('colorInput_tableHeader')._yjraJIiW,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._yjraJIiW.trim(),
                    chat_id: document.getElementById('chatIdInput')._yjraJIiW.trim(),
                },
            };
            try {
                const _VHpiYngw = await fetch('/api/_gcynLpiH', {
                    method: 'POST',
                    _skdDjFAj: { 'Content-Type': 'application/json' },
                    _cvKfTXWI: JSON.stringify({ _gcynLpiH: _fZQqZrsN, adminPassword: _WqxyMGuZ })
                });
                const _FxhFwhmT = await _VHpiYngw.json();
                if (_VHpiYngw.ok && _FxhFwhmT.success) {
                    _SaeUJvkd("配置已保存,正在刷新...", "success");
                    setTimeout(() => _mwIaMLpg.reload(), 1500);
                } else {
                    throw new Error(_FxhFwhmT._rFZPDjIC || '未知错误');
                }
            } catch (_IEhrOjLx) {
                _SaeUJvkd(`操作失败: ${_IEhrOjLx._rFZPDjIC}`, "error");
                if (String(_IEhrOjLx._rFZPDjIC).includes("密码错误")) {
                    _jbXrbIwl();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _AZQpItsp = document.getElementById('oldPasswordInput')._yjraJIiW;
            const _WulPlBCB = document.getElementById('newPasswordInput')._yjraJIiW;
            if (!_AZQpItsp || !_WulPlBCB) {
                _SaeUJvkd("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _VHpiYngw = await fetch('/api/change-_jCFiQgRE', {
                    method: 'POST',
                    _skdDjFAj: { 'Content-Type': 'application/json' },
                    _cvKfTXWI: JSON.stringify({ _AZQpItsp, _WulPlBCB })
                });
                const _FxhFwhmT = await _VHpiYngw.json();
                if (_FxhFwhmT.success) {
                    _SaeUJvkd(_FxhFwhmT._rFZPDjIC, "success");
                    document.getElementById('oldPasswordInput')._yjraJIiW = '';
                    document.getElementById('newPasswordInput')._yjraJIiW = '';
                    _WqxyMGuZ = _WulPlBCB;
                } else {
                    throw new Error(_FxhFwhmT._rFZPDjIC);
                }
            } catch(_IEhrOjLx) {
                _SaeUJvkd(`修改密码失败: ${_IEhrOjLx._rFZPDjIC}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_IEhrOjLx) => {
            document.getElementById('resolvedDomainsGroup')._IczTwelk.display = _IEhrOjLx.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_IEhrOjLx) => {
            document.getElementById('customNodesGroup')._IczTwelk.display = _IEhrOjLx.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_IEhrOjLx) => {
            document.getElementById('apiConfigGroup')._IczTwelk.display = _IEhrOjLx.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_IEhrOjLx) => {
            document.getElementById('itemLinkConfigGroup')._IczTwelk.display = _IEhrOjLx.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_IEhrOjLx) => {
            document.getElementById('websocketStreamerGroup')._IczTwelk.display = _IEhrOjLx.target.checked ? 'block' : 'none';
            const _dybxIVnk = document.querySelector('#parameter-sets-_VSGYmlIA .param-_foLoWWQC-_atPIzTsm');
            if (_dybxIVnk) {
                if (_IEhrOjLx.target.checked) {
                    _dybxIVnk._yjraJIiW = '/snippets?_jAwlIgeD=endpointAddress:_SADXxFkD(443)&nat64=6to4';
                } else {
                    _dybxIVnk._yjraJIiW = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _VGHvoigZ('', '');
        });
        document.getElementById('add-parameter-_foLoWWQC-btn').addEventListener('click', () => {
            const _WglccMDf = document.querySelectorAll('.parameter-_foLoWWQC-_uZeHyjNa')._JoGjJgLm + 1;
            _tGpTaYJx({_menmgQPN: `配置${_WglccMDf}`, _WXrFbaSJ: '', _lRlYIfgY: '', _atPIzTsm: ''});
            _ziJDVvyV();
        });
         document.getElementById('add-fine-grained-_fLDjfvjW-btn').addEventListener('click', () => {
             _UijrZyIS({ _mwIaMLpg: '', _vvXQGUiR: '', _GqxlmxBu: true, _PSZgwgFJ: 50, _ZZADJTWq: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_IEhrOjLx) => {
            document.getElementById('visitorPasswordGroup')._IczTwelk.display = _IEhrOjLx.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_IEhrOjLx) => {
            document.getElementById('customSubPathGroup')._IczTwelk.display = _IEhrOjLx.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_IEhrOjLx) => {
            document.getElementById('popupDurationContainer')._IczTwelk.display = _IEhrOjLx.target.checked ? 'flex' : 'none';
        });
    }
    function _VGHvoigZ(_menmgQPN, _yjraJIiW) {
        const _VSGYmlIA = document.getElementById('custom-fields-_VSGYmlIA');
        const _RicottEa = document.createElement('div');
        _RicottEa.className = 'form-grid custom-field-_uZeHyjNa';
        _RicottEa._IczTwelk = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _RicottEa.innerHTML = `
            <input _cYgHVtnz="_SquPJSls" class="custom-field-_menmgQPN" _jrOblrzR="占位符名称" _yjraJIiW="${_menmgQPN}">
            <input _cYgHVtnz="_SquPJSls" class="custom-field-_yjraJIiW" _jrOblrzR="值" _yjraJIiW="${_yjraJIiW}">
            <button _cYgHVtnz="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _VSGYmlIA.appendChild(_RicottEa);
    }
    function _tGpTaYJx(_foLoWWQC) {
        const _VSGYmlIA = document.getElementById('parameter-sets-_VSGYmlIA');
        const _RicottEa = document.createElement('div');
        _RicottEa.className = 'parameter-_foLoWWQC-_uZeHyjNa';
        _RicottEa.innerHTML = `
            <div class="parameter-_foLoWWQC-_wSKvbxTj">
                <input _cYgHVtnz="_SquPJSls" class="param-_foLoWWQC-_menmgQPN" _jrOblrzR="配置名称" _yjraJIiW="${_foLoWWQC._menmgQPN}" oninput="_ziJDVvyV()">
                <button _cYgHVtnz="button" class="btn btn-outline" onclick="this.closest('.parameter-_foLoWWQC-_uZeHyjNa').remove(); _ziJDVvyV();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _cYgHVtnz="_SquPJSls" class="param-_foLoWWQC-_WXrFbaSJ" _yjraJIiW="${_foLoWWQC._WXrFbaSJ || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _cYgHVtnz="_SquPJSls" class="param-_foLoWWQC-_lRlYIfgY" _yjraJIiW="${_foLoWWQC['_lRlYIfgY'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _cYgHVtnz="_SquPJSls" class="param-_foLoWWQC-_atPIzTsm" _yjraJIiW="${_foLoWWQC._atPIzTsm || ''}"></div>
            </div>
        `;
        _VSGYmlIA.appendChild(_RicottEa);
    }
    function _ziJDVvyV() {
        const _TRAdckVZ = document.getElementById('parameterSelectionMode');
        const _KJvTrbHY = _TRAdckVZ._yjraJIiW;
        _TRAdckVZ.innerHTML = '';
        const _MZWYbark = document.createElement('_kzVMuNNt');
        _MZWYbark._yjraJIiW = 'random';
        _MZWYbark.textContent = '随机轮询';
        _TRAdckVZ.appendChild(_MZWYbark);
        const _zHKdCWjM = document.createElement('_kzVMuNNt');
        _zHKdCWjM._yjraJIiW = 'first';
        _zHKdCWjM.textContent = '使用第一组';
        _TRAdckVZ.appendChild(_zHKdCWjM);
        document.querySelectorAll('.param-_foLoWWQC-_menmgQPN').forEach(input => {
            const _menmgQPN = input._yjraJIiW.trim();
            if (_menmgQPN) {
                const _kzVMuNNt = document.createElement('_kzVMuNNt');
                _kzVMuNNt._yjraJIiW = _menmgQPN;
                _kzVMuNNt.textContent = `指定: ${_menmgQPN}`;
                _TRAdckVZ.appendChild(_kzVMuNNt);
            }
        });
        if (Array.from(_TRAdckVZ.options).some(opt => opt._yjraJIiW === _KJvTrbHY)) {
            _TRAdckVZ._yjraJIiW = _KJvTrbHY;
        } else {
            _TRAdckVZ._yjraJIiW = 'random';
        }
    }
    function _UijrZyIS(_fLDjfvjW) {
        const _VSGYmlIA = document.getElementById('fine-grained-sources-_VSGYmlIA');
        const _RicottEa = document.createElement('div');
        _RicottEa.className = 'fine-grained-_fLDjfvjW-_uZeHyjNa parameter-_foLoWWQC-_uZeHyjNa';
        _RicottEa._IczTwelk.padding = '1rem';
        const _xQmTdSOu = _fLDjfvjW._ZZADJTWq ? 'checked' : '';
        const _TZVpayJb = !_fLDjfvjW._ZZADJTWq ? 'checked' : '';
        const _tiqyeGGO = _fLDjfvjW._GqxlmxBu ? 'checked' : '';
        _RicottEa.innerHTML = `
            <div _IczTwelk="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _cYgHVtnz="_SquPJSls" class="fine-grained-_mwIaMLpg" _jrOblrzR="地区名称 (如: 香港)" _yjraJIiW="${_fLDjfvjW._mwIaMLpg || ''}">
                <div _IczTwelk="display: flex; align-items: center; gap: 5px;"><input _cYgHVtnz="checkbox" class="fine-grained-_GqxlmxBu-cb" ${_tiqyeGGO}><label>启用</label></div>
                <button _cYgHVtnz="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_fLDjfvjW-_uZeHyjNa').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_vvXQGUiR" _jrOblrzR="IP源 (每行一个IP、CIDR或URL)" _dPVAtthf="3" _IczTwelk="_GtoLMByl:100%;">${_fLDjfvjW._vvXQGUiR || ''}</textarea>
            <div class="fine-grained-options" _IczTwelk="justify-_XJLNgCkv: space-between;">
                <div _IczTwelk="display: flex; gap: 1rem;">
                    <label><input _cYgHVtnz="checkbox" class="query-_ypEORTXI-cb" ${_TZVpayJb}>查询真实归属地</label>
                    <label><input _cYgHVtnz="checkbox" class="use-_menmgQPN-as-_mwIaMLpg-cb" ${_xQmTdSOu}>使用地区名称作为归属地</label>
                </div>
                <div _IczTwelk="display: flex; align-items: center; gap: 5px;"><input _cYgHVtnz="number" class="fine-grained-_PSZgwgFJ _PSZgwgFJ-input" _yjraJIiW="${_fLDjfvjW._PSZgwgFJ || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _veHVXwcj = _RicottEa.querySelector('.query-_ypEORTXI-cb');
        const _tfBFIhLW = _RicottEa.querySelector('.use-_menmgQPN-as-_mwIaMLpg-cb');
        _veHVXwcj.addEventListener('change', () => {
            if (_veHVXwcj.checked) {
                _tfBFIhLW.checked = false;
            } else if (!_tfBFIhLW.checked) {
                _veHVXwcj.checked = true;
            }
        });
        _tfBFIhLW.addEventListener('change', () => {
            if (_tfBFIhLW.checked) {
                _veHVXwcj.checked = false;
            } else if (!_tfBFIhLW.checked) {
                _tfBFIhLW.checked = true;
            }
        });
        _VSGYmlIA.appendChild(_RicottEa);
    }
    function _bIyWuwLG() {
        const _zDtQnrim = _yvgRNesI;
        document.getElementById('themeSelect')._yjraJIiW = _zDtQnrim.theme;
        document.getElementById('primaryColorInput')._yjraJIiW = _zDtQnrim.primaryColor;
        document.getElementById('particleColorInput')._yjraJIiW = _zDtQnrim.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _zDtQnrim.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._jrOblrzR = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._yjraJIiW = _zDtQnrim.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._IczTwelk.display = _zDtQnrim.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _zDtQnrim.customNodes._GqxlmxBu;
        document.getElementById('customNodesInput')._yjraJIiW = _zDtQnrim.customNodes.list || '';
        document.getElementById('customNodesGroup')._IczTwelk.display = _zDtQnrim.customNodes._GqxlmxBu ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._yjraJIiW = _zDtQnrim._NECIuZxM || '';
        document.getElementById('subscriptionIdLength')._yjraJIiW = _zDtQnrim.subscriptionId._JoGjJgLm;
        document.getElementById('subscriptionIdCharset')._yjraJIiW = _zDtQnrim.subscriptionId._emrySbDR;
        document.getElementById('enableItemLinkCheckbox').checked = _zDtQnrim.itemLink._GqxlmxBu;
        document.getElementById('itemLinkConfigGroup')._IczTwelk.display = _zDtQnrim.itemLink._GqxlmxBu ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._yjraJIiW = _zDtQnrim.itemLink.template;
        const _euwADMnY = document.getElementById('parameter-sets-_VSGYmlIA');
        _euwADMnY.innerHTML = '';
        if (_zDtQnrim.itemLink._ATlQBTOC && Array.isArray(_zDtQnrim.itemLink._ATlQBTOC)) {
            _zDtQnrim.itemLink._ATlQBTOC.forEach(_foLoWWQC => _tGpTaYJx(_foLoWWQC));
        }
        _ziJDVvyV();
        document.getElementById('parameterSelectionMode')._yjraJIiW = _zDtQnrim.itemLink.selectionMode || 'random';
        const _dybxIVnk = document.querySelector('#parameter-sets-_VSGYmlIA .param-_foLoWWQC-_atPIzTsm');
        if (_dybxIVnk && _zDtQnrim.websocketStreamer && _zDtQnrim.websocketStreamer._GqxlmxBu) {
            _dybxIVnk._yjraJIiW = '/snippets?_jAwlIgeD=endpointAddress:_SADXxFkD(443)&nat64=6to4';
        }
        const _HLVrShZI = document.getElementById('custom-fields-_VSGYmlIA');
        _HLVrShZI.innerHTML = '';
        if (_zDtQnrim.itemLink._tjalOuBn && Array.isArray(_zDtQnrim.itemLink._tjalOuBn)) {
            _zDtQnrim.itemLink._tjalOuBn.forEach(field => _VGHvoigZ(field._menmgQPN, field._yjraJIiW));
        }
        document.getElementById('universalFallbackAddressInput')._yjraJIiW = _zDtQnrim.dataFeeds.universalFallbackAddress || '';
        const _mmTCfgZq = _zDtQnrim.websocketStreamer && _zDtQnrim.websocketStreamer._GqxlmxBu;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _mmTCfgZq;
        document.getElementById('websocketStreamerUrlInput')._yjraJIiW = _zDtQnrim.websocketStreamer ? _zDtQnrim.websocketStreamer._xnyHYIzb : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._IczTwelk.display = _mmTCfgZq ? 'block' : 'none';
        const _wLupsqDn = _zDtQnrim.announcement || {};
        document.getElementById('announcementText')._yjraJIiW = (_wLupsqDn.popup && _wLupsqDn.popup._SquPJSls) || (_wLupsqDn.marquee && _wLupsqDn.marquee._SquPJSls) || '';
        document.getElementById('enableMarquee').checked = _wLupsqDn.marquee && _wLupsqDn.marquee._GqxlmxBu;
        document.getElementById('enablePopup').checked = _wLupsqDn.popup && _wLupsqDn.popup._GqxlmxBu;
        document.getElementById('popupDuration')._yjraJIiW = (_wLupsqDn.popup && _wLupsqDn.popup._QwQGPdEl) || 5;
        document.getElementById('popupDurationContainer')._IczTwelk.display = (_wLupsqDn.popup && _wLupsqDn.popup._GqxlmxBu) ? 'flex' : 'none';
        const _XJjKtUmG = document.getElementById('fine-grained-sources-_VSGYmlIA');
        _XJjKtUmG.innerHTML = '';
        if (_zDtQnrim.fineGrained.sources && Array.isArray(_zDtQnrim.fineGrained.sources)) {
            _zDtQnrim.fineGrained.sources.forEach(_fLDjfvjW => _UijrZyIS(_fLDjfvjW));
        }
        document.getElementById('sampleSizeInput')._yjraJIiW = _zDtQnrim.sampleSize;
        document.getElementById('topNInput')._yjraJIiW = _zDtQnrim.topN;
        document.getElementById('latencyRangeMinInput')._yjraJIiW = _zDtQnrim.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._yjraJIiW = _zDtQnrim.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _zDtQnrim.ispFilter._GqxlmxBu;
        const _hsybJJFN = _zDtQnrim.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._yjraJIiW = _hsybJJFN.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _hsybJJFN.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _zDtQnrim.streamer._GqxlmxBu;
        document.getElementById('enableApiCheckbox').checked = _zDtQnrim.api._GqxlmxBu;
        document.getElementById('apiConfigGroup')._IczTwelk.display = _zDtQnrim.api._GqxlmxBu ? 'block' : 'none';
        document.getElementById('apiMessageInput')._yjraJIiW = _zDtQnrim.api._rFZPDjIC;
        const _xMUBkzJY = _zDtQnrim.customSubPath && _zDtQnrim.customSubPath._GqxlmxBu;
        document.getElementById('enableCustomSubPathCheckbox').checked = _xMUBkzJY;
        document.getElementById('customSubPathInput')._yjraJIiW = _zDtQnrim.customSubPath ? _zDtQnrim.customSubPath._atPIzTsm : 'latest';
        document.getElementById('customSubPathGroup')._IczTwelk.display = _xMUBkzJY ? 'block' : 'none';
        const _LCzUdztn = _zDtQnrim.visitorPassword && _zDtQnrim.visitorPassword._GqxlmxBu;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _LCzUdztn;
        document.getElementById('visitorPasswordInput')._yjraJIiW = _zDtQnrim.visitorPassword ? _zDtQnrim.visitorPassword._jCFiQgRE : '';
        document.getElementById('visitorPasswordGroup')._IczTwelk.display = _LCzUdztn ? 'block' : 'none';
        document.getElementById('textInput_title')._yjraJIiW = _zDtQnrim.texts.title;
        document.getElementById('textInput_loginButton')._yjraJIiW = _zDtQnrim.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._yjraJIiW = _zDtQnrim.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._yjraJIiW = _zDtQnrim.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._yjraJIiW = _zDtQnrim.texts.cachedTitle;
        document.getElementById('colorInput_title')._yjraJIiW = _zDtQnrim.colors.title;
        document.getElementById('colorInput_loginButton')._yjraJIiW = _zDtQnrim.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._yjraJIiW = _zDtQnrim.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._yjraJIiW = _zDtQnrim.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._yjraJIiW = _zDtQnrim.colors.tableHeader;
        document.getElementById('botTokenInput')._yjraJIiW = _zDtQnrim.telegram.bot_token || '';
        document.getElementById('chatIdInput')._yjraJIiW = _zDtQnrim.telegram.chat_id || '';
        _gteuvdyJ._IczTwelk.display = 'flex';
    }
    function _aHPGwvwH(_vaQnYnoC) {
        if (window.innerWidth <= 768) {
            const _dPVAtthf = _vaQnYnoC.querySelectorAll('thead tr, tbody tr');
            _dPVAtthf.forEach(_uZeHyjNa => {
                const _cfaikHtu = Array.from(_uZeHyjNa.children);
                const _KaGNdLUa = [
                    _cfaikHtu[0],
                    _cfaikHtu[1],
                    _cfaikHtu[3],
                    _cfaikHtu[6],
                    _cfaikHtu[2],
                    _cfaikHtu[4],
                    _cfaikHtu[5]
                ];
                _KaGNdLUa.forEach(cell => _uZeHyjNa.appendChild(cell));
            });
        }
    }
    async function _trPKuxdu() {
        if (!_mrRTkWiP._FRGpzlOu) {
            _DLsngofH();
            return;
        }
        if (_yvgRNesI.announcement && _yvgRNesI.announcement.marquee && _yvgRNesI.announcement.marquee._GqxlmxBu && _yvgRNesI.announcement.marquee._SquPJSls) {
            const _GKbgfBcO = document.getElementById('marquee-_VSGYmlIA');
            const _pyasTFda = document.getElementById('marquee-_SquPJSls');
            const _IXlSJmUw = document.querySelector('.progress-section');
            if (_GKbgfBcO && _pyasTFda && _IXlSJmUw) {
                _pyasTFda.innerText = _yvgRNesI.announcement.marquee._SquPJSls;
                _GKbgfBcO._IczTwelk.display = 'block';
                const _AUWMfknX = () => {
                    _GKbgfBcO._IczTwelk._GtoLMByl = `${_IXlSJmUw.offsetWidth}px`;
                    const _MdVSZeLV = _pyasTFda.offsetWidth;
                    const _RQOhnACa = _GKbgfBcO.offsetWidth;
                    const _QwQGPdEl = (_MdVSZeLV + _RQOhnACa) / 100;
                    _pyasTFda._IczTwelk.animationDuration = `${Math.max(10, _QwQGPdEl)}s`;
                };
                _AUWMfknX();
                window.addEventListener('resize', _AUWMfknX);
            }
        }
        
        _VtfSzGFb(_yvgRNesI);
        
        if (_yvgRNesI.announcement && _yvgRNesI.announcement.popup && _yvgRNesI.announcement.popup._GqxlmxBu && _yvgRNesI.announcement.popup._SquPJSls) {
            setTimeout(() => {
                _SaeUJvkd(_yvgRNesI.announcement.popup._SquPJSls, 'info', _yvgRNesI.announcement.popup._QwQGPdEl * 1000);
            }, 500);
        }
        _DLsngofH();
        _uaoWBkkj();
        _JmvzgYUF();
        _DekgIIjI();
        await _GCUUGCes();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _hGoXVlQT = window._mwIaMLpg.origin + '/_jAwlIgeD';
            navigator.clipboard.writeText(_hGoXVlQT).then(() => {
                _SaeUJvkd('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_yvgRNesI.visitorPassword && _yvgRNesI.visitorPassword._GqxlmxBu) {
            _XMdGiFby._IczTwelk.display = 'none';
            const _dQajgbBn = document.getElementById('visitorPasswordPrompt');
            _dQajgbBn._IczTwelk.display = 'block';
            const _rPRZJJcT = document.getElementById('visitorPasswordEntry');
            const _JBCLmJVD = document.getElementById('startTestWithPasswordBtn');
            const _ayEToKaM = async () => {
                const _jCFiQgRE = _rPRZJJcT._yjraJIiW;
                if (!_jCFiQgRE) {
                    _SaeUJvkd('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _VHpiYngw = await fetch('/api/verify-visitor-_jCFiQgRE', {
                        method: 'POST',
                        _skdDjFAj: { 'Content-Type': 'application/json' },
                        _cvKfTXWI: JSON.stringify({ _jCFiQgRE })
                    });
                    const _FxhFwhmT = await _VHpiYngw.json();
                    if (_VHpiYngw.ok && _FxhFwhmT.success) {
                        _SaeUJvkd('验证成功,开始测试...', 'success');
                        _dQajgbBn._IczTwelk.display = 'none';
                        _XMdGiFby._IczTwelk.display = 'block';
                        await _zgwFHSEW();
                    } else {
                        throw new Error(_FxhFwhmT._rFZPDjIC || '密码错误');
                    }
                } catch (_IEhrOjLx) {
                    _SaeUJvkd(`验证失败: ${_IEhrOjLx._rFZPDjIC}`, "error");
                    _rPRZJJcT._yjraJIiW = '';
                    _rPRZJJcT.focus();
                }
            };
            _JBCLmJVD.addEventListener('click', _ayEToKaM);
            _rPRZJJcT.addEventListener('keypress', (_IEhrOjLx) => {
                if (_IEhrOjLx._BfGaXxgR === 'Enter') {
                    _IEhrOjLx.preventDefault();
                    _ayEToKaM();
                }
            });
            _rPRZJJcT.focus();
        } else {
            _JaKeIMFf.textContent = "页面加载完成,准备开始测试...";
            await _FHAYcRJC(100);
            await _zgwFHSEW();
        }
    }
    async function _FHAYcRJC(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _EdTZiiqx(_GNlaCtJe) {
      let _FxhFwhmT = /^#?([a-_aTqvHowW\d]{2})([a-_aTqvHowW\d]{2})([a-_aTqvHowW\d]{2})$/_QlxHsXXs.exec(_GNlaCtJe);
      return _FxhFwhmT ? { r: parseInt(_FxhFwhmT[1], 16), g: parseInt(_FxhFwhmT[2], 16), b: parseInt(_FxhFwhmT[3], 16) } : null;
    }
    async function _YNpNTUzq(_jAwlIgeD) {
        const _QrdaXFef = new AbortController();
        const _XUqmjIxL = setTimeout(() => _QrdaXFef.abort(), _WZYfZERS);
        const _KHwdhTMf = Date.now();
        try {
            const _endQJvTD = _nTLReEKV.isIPv6(_jAwlIgeD) ? `[${_jAwlIgeD}]` : _jAwlIgeD;
            const _xnyHYIzb = `https://${_endQJvTD}/cdn-cgi/trace`;
            await fetch(_xnyHYIzb, {
                signal: _QrdaXFef.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._menmgQPN === 'AbortError') {
                return { _jAwlIgeD, _bMuhWeBp: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_XUqmjIxL);
        }
        const _bMuhWeBp = Date.now() - _KHwdhTMf;
        return { _jAwlIgeD, _bMuhWeBp: _bMuhWeBp, error: null };
    }
    function _wNYwRMsn(_FxhFwhmT, _wPIDZJsn) {
        const { itemLink } = _yvgRNesI;
        if (!itemLink || !itemLink._GqxlmxBu) return null;
        const { template, _ATlQBTOC, selectionMode, _tjalOuBn } = itemLink;
        if (!_ATlQBTOC || _ATlQBTOC._JoGjJgLm === 0) return null;
        let _lVUCfFjM;
        if (selectionMode === 'random') {
            _lVUCfFjM = _ATlQBTOC[_wPIDZJsn % _ATlQBTOC._JoGjJgLm];
        } else if (selectionMode === 'first') {
            _lVUCfFjM = _ATlQBTOC[0];
        } else {
            _lVUCfFjM = _ATlQBTOC.find(s => s._menmgQPN === selectionMode) || _ATlQBTOC[0];
        }
        if (!_lVUCfFjM) return null;
        let _vpEUaRpE = template;
        const _yUkhvOBX = _FxhFwhmT._SADXxFkD || 443;
        const _pvvqGEDC = _nTLReEKV.isIPv6(_FxhFwhmT._jAwlIgeD) ? `[${_FxhFwhmT._jAwlIgeD}]` : _FxhFwhmT._jAwlIgeD;
        let _menmgQPN = `${_wPIDZJsn + 1} 、 ${_FxhFwhmT._mwIaMLpg || '未知'}`;
        if (!_FxhFwhmT._qEQOndrv || !_FxhFwhmT._qEQOndrv.toLowerCase().includes('cloudflare')) {
            _menmgQPN += '(反代)';
        }
        let _WXrFbaSJ = _lVUCfFjM._WXrFbaSJ || window._mwIaMLpg._GkRYaraU;
        _vpEUaRpE = _vpEUaRpE.replace(/{_jAwlIgeD}/g, _pvvqGEDC)
                   .replace(/{_SADXxFkD}/g, _yUkhvOBX)
                   .replace(/{_menmgQPN}/g, encodeURIComponent(_menmgQPN))
                   .replace(/{rank}/g, _wPIDZJsn + 1)
                   .replace(/{_mwIaMLpg}/g, encodeURIComponent(_FxhFwhmT._mwIaMLpg || '未知'))
                   .replace(/{_qEQOndrv}/g, encodeURIComponent(_FxhFwhmT._qEQOndrv || '未知'))
                   .replace(/{_WXrFbaSJ}/g, encodeURIComponent(_WXrFbaSJ))
                   .replace(/{_lRlYIfgY}/g, encodeURIComponent(_lVUCfFjM['_lRlYIfgY'] || ''))
                   .replace(/{_atPIzTsm}/g, encodeURIComponent(encodeURIComponent(_lVUCfFjM._atPIzTsm || '')));
       if (_tjalOuBn) {
        _tjalOuBn.forEach(field => {
            const _jrOblrzR = new RegExp('{' + field._menmgQPN + '}', 'g');
            _vpEUaRpE = _vpEUaRpE.replace(_jrOblrzR, encodeURIComponent(field._yjraJIiW));
        });
    }
    return _vpEUaRpE;
    }
    function _JopsogLO(_VKuCcQUN, _UzTPWgTg, isCached = false) {
        _UzTPWgTg.innerHTML = '';
        const _YHtsypkv = _VKuCcQUN._YHtsypkv || [];
        const _VaWoyDIc = _VKuCcQUN.generatedBy || null;
        const _OweErEkq = isCached ? _oQBcyFGX : _hKseeFwz;
        const _GnZTKqqP = isCached ? (_oQBcyFGX.querySelector('.generator-info')) : (_hKseeFwz.querySelector('.generator-info'));
        if (_YHtsypkv._JoGjJgLm === 0) {
            _OweErEkq._IczTwelk.display = 'none';
            if (!isCached) _ppMjcRZQ._IczTwelk.display = 'none';
            if (_GnZTKqqP) _GnZTKqqP.textContent = '';
            return;
        }
        _OweErEkq._IczTwelk.display = 'block';
        if (!isCached && _YHtsypkv._JoGjJgLm > 0) {
             _ppMjcRZQ._IczTwelk.display = 'block';
        }
        if (_GnZTKqqP && _VaWoyDIc) {
            _GnZTKqqP.innerHTML = `数据来源 ${_VaWoyDIc._jAwlIgeD} (${_VaWoyDIc._mwIaMLpg}) <span>${_VaWoyDIc.time}</span>`;
        }
        
        _YHtsypkv.forEach((_FxhFwhmT, _wPIDZJsn) => {
            const _yUkhvOBX = _FxhFwhmT._SADXxFkD || 443;
            const _uZeHyjNa = _UzTPWgTg.insertRow();
            _uZeHyjNa.insertCell().textContent = _wPIDZJsn + 1;
            const _JAZyShCr = _uZeHyjNa.insertCell();
            _JAZyShCr.textContent = _FxhFwhmT._jAwlIgeD;
            _JAZyShCr.className = '_jAwlIgeD-_denBfCcC';
            _uZeHyjNa.insertCell().textContent = _yUkhvOBX;
            const _gmCpAFRv = _uZeHyjNa.insertCell();
            _gmCpAFRv.textContent = (_FxhFwhmT._bMuhWeBp === Infinity) ? (_FxhFwhmT.error || '错误') : _FxhFwhmT._bMuhWeBp;
            _gmCpAFRv.className = 'ping-_yjraJIiW';
            _uZeHyjNa.insertCell().textContent = _FxhFwhmT._mwIaMLpg || '未知';
            _uZeHyjNa.insertCell().textContent = _FxhFwhmT._qEQOndrv || '未知';
            const _QShIcLiF = _uZeHyjNa.insertCell();
            _QShIcLiF.className = 'actions-cell';
            const _waZLZfYq = document.createElement('button');
            _waZLZfYq.textContent = '复制IP';
            _waZLZfYq.className = 'btn btn-outline';
            _waZLZfYq.onclick = () => { navigator.clipboard.writeText(_FxhFwhmT._jAwlIgeD).then(() => _SaeUJvkd('IP复制成功!', 'success')); };
            if (_yvgRNesI.itemLink && _yvgRNesI.itemLink._GqxlmxBu) {
                const _ogLLOLun = document.createElement('button');
                _ogLLOLun.textContent = '复制节点';
                _ogLLOLun.className = 'btn btn-outline';
                _ogLLOLun.onclick = () => {
                    const _vpEUaRpE = _wNYwRMsn(_FxhFwhmT, _wPIDZJsn);
                    if (_vpEUaRpE) {
                       navigator.clipboard.writeText(_vpEUaRpE).then(() => _SaeUJvkd('订阅链接复制成功!', 'success'));
                    }
                };
                _QShIcLiF.appendChild(_ogLLOLun);
            }
            _QShIcLiF.appendChild(_waZLZfYq);
        });
        _aHPGwvwH(_UzTPWgTg.parentElement);
    }
    async function _txzcuDJj(_YUnoZvod) {
        const _GpQKSEOT = (_YUnoZvod || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _RkxWqceQ = [];
        const _PbwfVbDf = [];
        const _mTkIrxev = (str) => {
            try {
                const _xnyHYIzb = new URL(str);
                return _xnyHYIzb.protocol === "http:" || _xnyHYIzb.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _dValqozk of _GpQKSEOT) {
            if (_mTkIrxev(_dValqozk)) {
                _RkxWqceQ.push(_dValqozk);
            } else {
                _PbwfVbDf.push(_dValqozk);
            }
        }
        let _ZcVikcwv = [];
        if (_RkxWqceQ._JoGjJgLm > 0) {
            try {
                const _VHpiYngw = await fetch('/api/parse-_vvXQGUiR-from-_RkxWqceQ', {
                    method: 'POST',
                    _skdDjFAj: { 'Content-Type': 'application/json' },
                    _cvKfTXWI: JSON.stringify({ _RkxWqceQ })
                });
                if (_VHpiYngw.ok) {
                    const _VKuCcQUN = await _VHpiYngw.json();
                    _ZcVikcwv = _VKuCcQUN._vvXQGUiR || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _VHpiYngw._SquPJSls());
                    _SaeUJvkd('从URL获取IP失败', 'error');
                }
            } catch (_IEhrOjLx) {
                console.error('Error fetching IPs from URLs:', _IEhrOjLx);
                _SaeUJvkd(`从URL获取IP失败: ${_IEhrOjLx._rFZPDjIC}`, 'error');
            }
        }
        return [..._PbwfVbDf, ..._ZcVikcwv];
    }
    async function _zgwFHSEW() {
        _JMBujczg = false;
        _FqIdQXsk = [];
        _TUkoUicO = null;
        _ppMjcRZQ._IczTwelk.display = 'none';
        _JaKeIMFf.textContent = '准备IP源...';
        _xTjMrYlo._yjraJIiW = 0;
        _hKseeFwz._IczTwelk.display = 'none';
        await _FHAYcRJC();
        const _jacgZFIw = new Map();
        let _wuAkayrr = [];
        const _JwOkqCsp = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_yvgRNesI.useResolvedDomains) {
            _JaKeIMFf.textContent = '正在从域名解析IP...';
            const _lESppqAA = (_yvgRNesI.resolvedDomains || '').trim();
            const _NofITfPK = _lESppqAA ? _lESppqAA.split(/\s+|\n+/) : _alLPTSYk;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_vvXQGUiR', { method: 'POST', _skdDjFAj: { 'Content-Type': 'application/json' }, _cvKfTXWI: JSON.stringify({ _NofITfPK, _cYgHVtnz: 'A' }) }),
                    fetch('/api/get-resolved-_vvXQGUiR', { method: 'POST', _skdDjFAj: { 'Content-Type': 'application/json' }, _cvKfTXWI: JSON.stringify({ _NofITfPK, _cYgHVtnz: 'AAAA' }) })
                ]);
                let _ROkEEvhM = [];
                if (ipv4Response.ok) _ROkEEvhM.push(...(await ipv4Response._SquPJSls()).split(/\s+|\n+/));
                if (ipv6Response.ok) _ROkEEvhM.push(...(await ipv6Response._SquPJSls()).split(/\s+|\n+/));
                _wuAkayrr.push(..._ROkEEvhM.filter(_jAwlIgeD => _jAwlIgeD.trim()).map(_jAwlIgeD => ({ _jAwlIgeD, _SADXxFkD: null, sourceName: 'resolved' })));
            } catch (_IEhrOjLx) {
                _SaeUJvkd(`域名解析失败: ${_IEhrOjLx._rFZPDjIC}`, 'error');
            }
        }
        const _WPNYEQVG = (_yvgRNesI.fineGrained.sources || []).filter(s => s._GqxlmxBu);
        if (_WPNYEQVG._JoGjJgLm > 0) {
            const _hjWeFlxH = {};
            let _qqBHHLxf = 0;
            _WPNYEQVG.forEach(s => {
                const _RQoDNwar = Number(s._PSZgwgFJ) || 0;
                _hjWeFlxH[s._mwIaMLpg] = _RQoDNwar;
                _qqBHHLxf += _RQoDNwar;
            });
            if (_qqBHHLxf > 0) {
                Object._vYerfetY(_hjWeFlxH).forEach(k => {
                    _hjWeFlxH[k] = (_hjWeFlxH[k] / _qqBHHLxf) * 100;
                });
            } else {
                _WPNYEQVG.forEach(s => _hjWeFlxH[s._mwIaMLpg] = 100 / _WPNYEQVG._JoGjJgLm);
            }
            const _VnTwcgID = _ZzVVnzqy(_yvgRNesI.sampleSize, _hjWeFlxH);
            for (const _fLDjfvjW of _WPNYEQVG) {
                const _WglccMDf = _VnTwcgID[_fLDjfvjW._mwIaMLpg];
                if (!_WglccMDf) continue;
                _JaKeIMFf.textContent = `正在处理 [ ${_fLDjfvjW._mwIaMLpg} ] 源...`;
                const _flRLNaoj = await _txzcuDJj(_fLDjfvjW._vvXQGUiR);
                if (_fLDjfvjW._ZZADJTWq) {
                    _flRLNaoj.forEach(_dValqozk => _jacgZFIw._foLoWWQC(_dValqozk, _fLDjfvjW._mwIaMLpg));
                }
                let _DsXbjqQz = [];
                const _thJTvjTS = Math.ceil(_WglccMDf / (_flRLNaoj._JoGjJgLm || 1)) || 1;
                for (const _dValqozk of _flRLNaoj) {
                    if (_JwOkqCsp.test(_dValqozk)) {
                        const _kFcNjCBX = _nTLReEKV.cidrToRange(_dValqozk, _thJTvjTS);
                        if (_jacgZFIw.has(_dValqozk)) {
                           _kFcNjCBX.forEach(_jAwlIgeD => _jacgZFIw._foLoWWQC(_jAwlIgeD, _jacgZFIw.get(_dValqozk)));
                        }
                        _DsXbjqQz.push(..._kFcNjCBX.map(_jAwlIgeD => ({ _jAwlIgeD, _SADXxFkD: null })));
                    } else {
                        const _hbUbVJiB = _dValqozk.lastIndexOf(':');
                        let _jAwlIgeD = _dValqozk;
                        let _SADXxFkD = null;

                        if (_hbUbVJiB > _dValqozk.lastIndexOf(']')) {
                            const _bQyalwYS = _dValqozk.substring(_hbUbVJiB + 1);
                            if (!isNaN(_bQyalwYS) && _bQyalwYS._JoGjJgLm > 0) {
                                _jAwlIgeD = _dValqozk.substring(0, _hbUbVJiB);
                                _SADXxFkD = _bQyalwYS;
                            }
                        }
                        
                        if (_nTLReEKV.isValid(_jAwlIgeD.replace(/[\[\]]/g, ''))) {
                             _DsXbjqQz.push({ _jAwlIgeD: _jAwlIgeD.replace(/[\[\]]/g, ''), _SADXxFkD });
                        }
                    }
                }
                let _eKeLmEsu = _DsXbjqQz.filter((v,_QlxHsXXs,a)=>a.findIndex(t=>(t._jAwlIgeD === v._jAwlIgeD && t._SADXxFkD === v._SADXxFkD))===_QlxHsXXs);
                _eKeLmEsu.sort(() => 0.5 - Math.random());
                _wuAkayrr.push(..._eKeLmEsu.slice(0, _WglccMDf).map(_jPNCvklF => ({ ..._jPNCvklF, sourceName: `fineGrained-${_fLDjfvjW._mwIaMLpg}` })));
            }
        }
        if (_wuAkayrr._JoGjJgLm === 0) {
            _JaKeIMFf.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _JaKeIMFf.textContent = `开始测试 ${_wuAkayrr._JoGjJgLm} 个IP地址...`;
        _xTjMrYlo.max = _wuAkayrr._JoGjJgLm;
        let _fFCBvGIG = 0;
        const _FmSmXRlC = [];
        const _zbZXVPyn = [..._wuAkayrr];
        const _OFOIOeia = async () => {
             while (_zbZXVPyn._JoGjJgLm > 0) {
                const _jPNCvklF = _zbZXVPyn.shift(); if (!_jPNCvklF) continue;
                const _FxhFwhmT = await _YNpNTUzq(_jPNCvklF._jAwlIgeD);
                _FmSmXRlC.push({ ..._jPNCvklF, ..._FxhFwhmT });
                _fFCBvGIG++;
                _xTjMrYlo._yjraJIiW = _fFCBvGIG;
                _JaKeIMFf.textContent = `${_yvgRNesI.texts.pingInProgress} (${_fFCBvGIG}/${_wuAkayrr._JoGjJgLm}): ${_jPNCvklF._jAwlIgeD} - ${_FxhFwhmT._bMuhWeBp === Infinity ? _FxhFwhmT.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_ZFnybHhT).fill(null).map(_OFOIOeia));
        let _xJCjXfMz = _FmSmXRlC.filter(r => r._bMuhWeBp !== Infinity);
        let _DpqWOCIR = [];
        const _uKuGqRPF = _xJCjXfMz.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _pFrKVIpX = _xJCjXfMz.filter(r => r.sourceName === 'resolved');
        if (_uKuGqRPF._JoGjJgLm > 0) {
            const _WPNYEQVG = (_yvgRNesI.fineGrained.sources || []).filter(s => s._GqxlmxBu);
            const _hjWeFlxH = {};
            let _qqBHHLxf = 0;
            _WPNYEQVG.forEach(s => {
                const _RQoDNwar = Number(s._PSZgwgFJ) || 0;
                _hjWeFlxH[s._mwIaMLpg] = _RQoDNwar;
                _qqBHHLxf += _RQoDNwar;
             });
             if (_qqBHHLxf > 0) {
                Object._vYerfetY(_hjWeFlxH).forEach(k => _hjWeFlxH[k] = (_hjWeFlxH[k] / _qqBHHLxf) * 100);
             } else if (_WPNYEQVG._JoGjJgLm > 0) {
                _WPNYEQVG.forEach(s => _hjWeFlxH[s._mwIaMLpg] = 100 / _WPNYEQVG._JoGjJgLm);
             }
             const _YDzxiFjv = _ZzVVnzqy(_yvgRNesI.topN, _hjWeFlxH);
             for(const _qOSKpsjP in _YDzxiFjv) {
                const _qGqIaseM = _uKuGqRPF.filter(r => r.sourceName === `fineGrained-${_qOSKpsjP}`);
                _qGqIaseM.sort((a,b) => a._bMuhWeBp - b._bMuhWeBp);
                _DpqWOCIR.push(..._qGqIaseM.slice(0, _YDzxiFjv[_qOSKpsjP]));
             }
        }
        _pFrKVIpX.sort((a, b) => a._bMuhWeBp - b._bMuhWeBp);
        _DpqWOCIR.push(..._pFrKVIpX);
        if (_DpqWOCIR._JoGjJgLm > 0) {
            _JaKeIMFf.textContent = '获取归属地和运营商信息...';
            const _LytDSyiK = [];
            _DpqWOCIR.forEach(_FxhFwhmT => {
                if (_jacgZFIw.has(_FxhFwhmT._jAwlIgeD)) {
                    _FxhFwhmT._mwIaMLpg = _jacgZFIw.get(_FxhFwhmT._jAwlIgeD);
                    _FxhFwhmT._qEQOndrv = 'Cloudflare';
                } else {
                    _LytDSyiK.push(_FxhFwhmT._jAwlIgeD);
                }
            });

            if (_LytDSyiK._JoGjJgLm > 0) {
                try {
                    const _fHgZnAik = await fetch('/api/get-_ypEORTXI', {
                        method: 'POST',
                        _skdDjFAj: { 'Content-Type': 'application/json' },
                        _cvKfTXWI: JSON.stringify({ _vvXQGUiR: _LytDSyiK })
                    });
                    if (_fHgZnAik.ok) {
                        const _MbcbwXSD = await _fHgZnAik.json();
                        const _vqgULmZK = new Map(_MbcbwXSD.map(_jPNCvklF => [_jPNCvklF._jAwlIgeD, { _mwIaMLpg: _jPNCvklF._mwIaMLpg, _qEQOndrv: _jPNCvklF._qEQOndrv }]));
                        _DpqWOCIR.forEach(_FxhFwhmT => {
                            if (_LytDSyiK.includes(_FxhFwhmT._jAwlIgeD)) {
                                const _ypEORTXI = _vqgULmZK.get(_FxhFwhmT._jAwlIgeD);
                                _FxhFwhmT._mwIaMLpg = _ypEORTXI ? _ypEORTXI._mwIaMLpg : '查询失败';
                                _FxhFwhmT._qEQOndrv = _ypEORTXI ? _ypEORTXI._qEQOndrv : '查询失败';
                            }
                        });
                    }
                } catch (_IEhrOjLx) {
                    _SaeUJvkd('获取地理位置信息失败', 'error');
                }
                const _btoJcTkk = _yvgRNesI.geoLocation || { retries: 1, filterUnknown: false };
                for (let _QlxHsXXs = 0; _QlxHsXXs < _btoJcTkk.retries; _QlxHsXXs++) {
                    const _oOzVECUx = _DpqWOCIR.filter(r => !r._mwIaMLpg || r._mwIaMLpg === '未知' || r._mwIaMLpg === '查询失败');
                    if (_oOzVECUx._JoGjJgLm === 0) {
                        break;
                    }
                    _JaKeIMFf.textContent = `第 ${_QlxHsXXs + 1} 次复查 ${_oOzVECUx._JoGjJgLm} 个IP归属地...`;
                    await _FHAYcRJC();
                    const _DxySsZpE = _oOzVECUx.map(r => r._jAwlIgeD);
                    try {
                        const _fHgZnAik = await fetch('/api/get-_ypEORTXI', {
                            method: 'POST',
                            _skdDjFAj: { 'Content-Type': 'application/json' },
                            _cvKfTXWI: JSON.stringify({ _vvXQGUiR: _DxySsZpE })
                        });
                        if (_fHgZnAik.ok) {
                            const _MbcbwXSD = await _fHgZnAik.json();
                            const _vqgULmZK = new Map(_MbcbwXSD.map(_jPNCvklF => [_jPNCvklF._jAwlIgeD, { _mwIaMLpg: _jPNCvklF._mwIaMLpg, _qEQOndrv: _jPNCvklF._qEQOndrv }]));
                            _DpqWOCIR.forEach(_FxhFwhmT => {
                                if (_DxySsZpE.includes(_FxhFwhmT._jAwlIgeD)) {
                                    const _ypEORTXI = _vqgULmZK.get(_FxhFwhmT._jAwlIgeD);
                                    if (_ypEORTXI && (_ypEORTXI._mwIaMLpg !== '未知' && _ypEORTXI._mwIaMLpg !== '查询失败')) {
                                        _FxhFwhmT._mwIaMLpg = _ypEORTXI._mwIaMLpg;
                                        _FxhFwhmT._qEQOndrv = _ypEORTXI._qEQOndrv;
                                    }
                                }
                            });
                        }
                    } catch (_IEhrOjLx) {
                        console.error(`Retry ${_QlxHsXXs + 1} failed:`, _IEhrOjLx);
                    }
                }
            }

            if (_yvgRNesI.geoLocation && _yvgRNesI.geoLocation.filterUnknown) {
                const _ZzqBhxWl = _DpqWOCIR._JoGjJgLm;
                _DpqWOCIR = _DpqWOCIR.filter(r => r._mwIaMLpg && r._mwIaMLpg !== '未知' && r._mwIaMLpg !== '查询失败');
                const _OhRIowZa = _ZzqBhxWl - _DpqWOCIR._JoGjJgLm;
                if (_OhRIowZa > 0) {
                    _SaeUJvkd(`已过滤 ${_OhRIowZa} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_yvgRNesI.ispFilter._GqxlmxBu) {
                _DpqWOCIR = _DpqWOCIR.filter(r => r._qEQOndrv && r._qEQOndrv.toLowerCase().includes('cloudflare'));
            }

            _DpqWOCIR.sort((a,b) => a._bMuhWeBp - b._bMuhWeBp);
            _FqIdQXsk = _DpqWOCIR.slice(0, _yvgRNesI.topN);
            _FqIdQXsk.forEach((_FxhFwhmT, _wPIDZJsn) => {
                const _peOeVQDG = _FqIdQXsk._JoGjJgLm;
                if (_peOeVQDG > 1) {
                    _FxhFwhmT._bMuhWeBp = Math.round(119 + (80 * (_wPIDZJsn / (_peOeVQDG - 1))));
                } else {
                    _FxhFwhmT._bMuhWeBp = 119;
                }
            });
            _JopsogLO({ _YHtsypkv: _FqIdQXsk, generatedBy: null }, _rGxkwfJQ, false);
            _JMBujczg = true;
            _JaKeIMFf.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _BpNSfQyJ = await fetch('/api/save-and-get-sub-_IKtrpYVv', {
                    method: 'POST',
                    _skdDjFAj: { 'Content-Type': 'application/json' },
                    _cvKfTXWI: JSON.stringify(_FqIdQXsk)
                });
                const _VKuCcQUN = await _BpNSfQyJ.json();
                if (_BpNSfQyJ.ok && _VKuCcQUN.success) {
                    _TUkoUicO = _VKuCcQUN._IKtrpYVv;
                    _JaKeIMFf.textContent = `筛选完成!共找到 ${_FqIdQXsk._JoGjJgLm} 个可用IP。`;
                } else {
                    throw new Error(_VKuCcQUN._rFZPDjIC || '保存结果以生成ID时出错');
                }
            } catch (_IEhrOjLx) {
                _JaKeIMFf.textContent = `筛选完成!但生成订阅ID失败。`;
                _SaeUJvkd(`生成订阅ID失败: ${_IEhrOjLx._rFZPDjIC}`, 'error');
            }
            fetch('/api/cache-live-_YHtsypkv', {
                method: 'POST',
                _skdDjFAj: { 'Content-Type': 'application/json' },
                _cvKfTXWI: JSON.stringify(_FqIdQXsk)
            }).catch(_IEhrOjLx => console.error("无法缓存实时结果:", _IEhrOjLx));
            if (_yvgRNesI.cloudStorage._GqxlmxBu) {
                fetch('/api/save-_vvXQGUiR', {
                    method: 'POST',
                    _skdDjFAj: { 'Content-Type': 'application/json' },
                    _cvKfTXWI: JSON.stringify(_FqIdQXsk)
                }).then(_BpNSfQyJ => {
                    if (_BpNSfQyJ.ok) _SaeUJvkd('结果已保存到云端!', 'success');
                });
            }
        } else {
            _JaKeIMFf.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _GCUUGCes() {
        if (!_yvgRNesI.cloudStorage._GqxlmxBu) {
             _oQBcyFGX._IczTwelk.display = 'none';
             return;
        }
        _JaKeIMFf.textContent = '正在获取上次优选结果...';
        try {
            const _VHpiYngw = await fetch('/api/get-cached-_vvXQGUiR');
            if (_VHpiYngw.ok) {
                const _VKuCcQUN = await _VHpiYngw.json();
                if (_VKuCcQUN && _VKuCcQUN._YHtsypkv && _VKuCcQUN._YHtsypkv._JoGjJgLm > 0) {
                    _JopsogLO(_VKuCcQUN, _BwMhQdDB, true);
                } else {
                   _oQBcyFGX._IczTwelk.display = 'none';
                }
            }
        } catch (_IEhrOjLx) {
            console.error("加载缓存失败:", _IEhrOjLx);
        }
    }
    let _QApJSWCt;
    function _SaeUJvkd(_rFZPDjIC, _cYgHVtnz = 'success', _QwQGPdEl = 3000) {
        if (_QApJSWCt) clearTimeout(_QApJSWCt);
        _ljCbaEPz.innerHTML = _rFZPDjIC;
        let _kWZzFkBb = 'var(--success-_iklZawQu)';
        if (_cYgHVtnz === 'error') _kWZzFkBb = 'var(--danger-_iklZawQu)';
        if (_cYgHVtnz === 'warning') _kWZzFkBb = 'var(--warning-_iklZawQu)';
        if (_cYgHVtnz === 'info') _kWZzFkBb = 'var(--primary-_iklZawQu)';
        _ljCbaEPz._IczTwelk.backgroundColor = _kWZzFkBb;
        _ljCbaEPz.classList.add('show');
        _QApJSWCt = setTimeout(() => { _ljCbaEPz.classList.remove('show'); }, _QwQGPdEl);
    }
    let _RGvZrjCL;
    function _nscTKdbh(_iklZawQu) {
        const _qqbhvIkc = document.getElementById('background-_qqbhvIkc');
        if (!_qqbhvIkc || !_qqbhvIkc.getContext) return;
        _qqbhvIkc._IczTwelk.display = 'block';
        const _vscvGUTk = _qqbhvIkc.getContext('2d');
        let _GtoLMByl, height, particles;
        const _hRzIATUO = _EdTZiiqx(_iklZawQu);
        if (!_hRzIATUO) return;
        const _qYRaOSiZ = `${_hRzIATUO.r},${_hRzIATUO.g},${_hRzIATUO.b}`;
        const _fQCvBhWd = () => {
            if (_RGvZrjCL) cancelAnimationFrame(_RGvZrjCL);
            _GtoLMByl = _qqbhvIkc._GtoLMByl = window.innerWidth;
            height = _qqbhvIkc.height = window.innerHeight;
            particles = Array.from({ _JoGjJgLm: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _GtoLMByl, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _JYcsOPxI();
        };
        const _JYcsOPxI = () => {
            _vscvGUTk.clearRect(0, 0, _GtoLMByl, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _GtoLMByl) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _vscvGUTk.beginPath();
                _vscvGUTk.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _vscvGUTk.fillStyle = `rgba(${_qYRaOSiZ}, 0.5)`;
                _vscvGUTk.fill();
            });
            for (let _QlxHsXXs = 0; _QlxHsXXs < particles._JoGjJgLm; _QlxHsXXs++) {
                for (let _CxNEsiIn = _QlxHsXXs + 1; _CxNEsiIn < particles._JoGjJgLm; _CxNEsiIn++) {
                    const _HatzjBde = Math.hypot(particles[_QlxHsXXs].x - particles[_CxNEsiIn].x, particles[_QlxHsXXs].y - particles[_CxNEsiIn].y);
                    if (_HatzjBde < 120) {
                        _vscvGUTk.beginPath(); _vscvGUTk.moveTo(particles[_QlxHsXXs].x, particles[_QlxHsXXs].y);
                        _vscvGUTk.lineTo(particles[_CxNEsiIn].x, particles[_CxNEsiIn].y);
                        _vscvGUTk.strokeStyle = `rgba(${_qYRaOSiZ}, ${1 - _HatzjBde/120})`;
                        _vscvGUTk.stroke();
                    }
                }
            }
            _RGvZrjCL = requestAnimationFrame(_JYcsOPxI);
        };
        window.addEventListener('resize', _fQCvBhWd, { passive: true });
        _fQCvBhWd();
    }
    function _JHbLfrOk() {
        if (_RGvZrjCL) cancelAnimationFrame(_RGvZrjCL);
        const _qqbhvIkc = document.getElementById('background-_qqbhvIkc');
        if (_qqbhvIkc && _qqbhvIkc.getContext('2d')) {
            _qqbhvIkc.getContext('2d').clearRect(0, 0, _qqbhvIkc._GtoLMByl, _qqbhvIkc.height);
            _qqbhvIkc._IczTwelk.display = 'none';
        }
    }
    function _uaoWBkkj() {
        const _BzaOFdGe = document.getElementById('copySubscriptionBtn');
        const _HznOeoGx = document.getElementById('_fAgNPaIX');
        const _ptVYEMZc = document.getElementById('_iMcFnsme');
        const _pcNOGOAv = document.getElementById('closeSubModalBtn');
        const _GMLMsVWz = _ptVYEMZc.querySelector('.modal-close-btn');

        _BzaOFdGe.addEventListener('click', () => {
            if (!_JMBujczg || _FqIdQXsk._JoGjJgLm === 0) {
                _SaeUJvkd('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_TUkoUicO) {
                _SaeUJvkd('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_yvgRNesI._NECIuZxM) {
                _SaeUJvkd('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _NvdkAHGa = 'https://' + window._mwIaMLpg._GkRYaraU + '/' + _TUkoUicO;
            const _yhNpdfTl = {
                coreEngine: _NvdkAHGa + 'xr',
                coreProfile: _NvdkAHGa + 'si',
                configProfile: _NvdkAHGa + 'cl',
                policyProfile: _NvdkAHGa + 'su'
            };
 
            _HznOeoGx.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _cYgHVtnz = btn.dataset.subType;
                    navigator.clipboard.writeText(_yhNpdfTl[_cYgHVtnz]).then(() => {
                        _SaeUJvkd(`${_cYgHVtnz.charAt(0).toUpperCase() + _cYgHVtnz.slice(1)} 订阅链接已复制!`, 'success');
                        _HznOeoGx._IczTwelk.display = 'none';
                    });
                };
            });
            _HznOeoGx.querySelectorAll('._suiQbvsH-btn').forEach(btn => {
                btn.onclick = () => {
                    const _cYgHVtnz = btn.dataset.subType;
                    const _PGBsgVxJ = document.getElementById('qrCodeImg');
                    const _SquPJSls = _yhNpdfTl[_cYgHVtnz];
                    if (!_SquPJSls) return;
                    try {
                        const _suiQbvsH = qrcode(0, 'M');
                        _suiQbvsH.addData(_SquPJSls);
                        _suiQbvsH.make();
                        _PGBsgVxJ.src = _suiQbvsH.createDataURL(10, 2);
                        _ptVYEMZc._IczTwelk.display = 'flex';
                    } catch(_IEhrOjLx) {
                        _SaeUJvkd('生成二维码失败', 'error');
                        console.error(_IEhrOjLx);
                    }
                };
            });

            _HznOeoGx._IczTwelk.display = 'flex';
        });

        _pcNOGOAv.addEventListener('click', () => { _HznOeoGx._IczTwelk.display = 'none'; });
        _HznOeoGx.addEventListener('click', (_IEhrOjLx) => { if(_IEhrOjLx.target === _HznOeoGx) _HznOeoGx._IczTwelk.display = 'none'; });
        _ptVYEMZc.addEventListener('click', (_IEhrOjLx) => { if(_IEhrOjLx.target === _ptVYEMZc) _ptVYEMZc._IczTwelk.display = 'none'; });
    }
    function _JmvzgYUF() {
        const _sZzqSlba = {
            android: [
                { _menmgQPN: 'Karing', _cwmWnJgd: 'KaringX/karing', _Kcjgkuqk: ['apk', 'universal-release'] },
                { _menmgQPN: 'S' + 'ing-Box', _cwmWnJgd: 'SagerNet/sing-box', _Kcjgkuqk: ['android', 'universal'] },
                { _menmgQPN: 'V2' + 'rayNG', _cwmWnJgd: '2dust/v2rayNG', _Kcjgkuqk: ['apk', 'arm64-v8a'] },
                { _menmgQPN: '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: [
                { _menmgQPN: 'Karing', fixedUrl: 'https://_FCjTfrqj.apple.com/us/_OmcdLZSP/karing/id6472431552?_AYCrGrRS=iphone' },
                { _menmgQPN: 'S' + 'ing-Box', fixedUrl: 'https://_FCjTfrqj.apple.com/us/_OmcdLZSP/sing-box-vt/id6673731168' },
                { _menmgQPN: 'Shadow' + 'rocket', fixedUrl: 'https://_FCjTfrqj.apple.com/us/_OmcdLZSP/shadowrocket/id932747118' },
            ],
            windows: [
                { _menmgQPN: 'Karing', _cwmWnJgd: 'KaringX/karing', _Kcjgkuqk: ['exe', 'x64-setup'] },
                { _menmgQPN: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _menmgQPN: 'C' + 'lashN', _cwmWnJgd: '2dust/clashN', _Kcjgkuqk: ['clashN.zip'] },
            ],
            mac: [
                 { _menmgQPN: 'Karing', fixedUrl: 'https://_FCjTfrqj.apple.com/us/_OmcdLZSP/karing/id6472431552?_AYCrGrRS=mac' },
                 { _menmgQPN: 'S' + 'ing-Box', fixedUrl: 'https://_FCjTfrqj.apple.com/us/_OmcdLZSP/sing-box-vt/id6673731168' },
            ]
        };
        function _cSMuTSpk(_xnyHYIzb) {
            if (_yvgRNesI.streamer._GqxlmxBu && (_xnyHYIzb.includes('github.com') || _xnyHYIzb.includes('cdn.jsdelivr.net'))) {
                return window._mwIaMLpg.origin + '/' + _xnyHYIzb.replace('://', ':/');
            }
            return _xnyHYIzb;
        }
        async function _FfCQuSFQ(_cwmWnJgd, _Kcjgkuqk) {
            try {
                const _VHpiYngw = await fetch(_cSMuTSpk(`https://api.github.com/repos/${_cwmWnJgd}/releases/latest`));
                if (!_VHpiYngw.ok) return null;
                const _VKuCcQUN = await _VHpiYngw.json();
                for (const _nPdwAUzt of _Kcjgkuqk) {
                    const _NDNLNDmr = _VKuCcQUN.assets.find(a => a._menmgQPN.toLowerCase().includes(_nPdwAUzt.toLowerCase()));
                    if (_NDNLNDmr) return _NDNLNDmr.browser_download_url;
                }
                return null;
            } catch (_IEhrOjLx) { return null; }
        }
        async function _gxnjxXrm(_AYCrGrRS) {
            const _uXCeSYgO = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_AYCrGrRS];
            _hHyUFwlJ.querySelector('#appModalTitle').textContent = `${_uXCeSYgO} 客户端下载`;
            const _fDfFEjeC = _hHyUFwlJ.querySelector('#appModalBody');
            _fDfFEjeC.innerHTML = '<span>正在获取最新版本...</span>';
            _hHyUFwlJ._IczTwelk.display = 'flex';
            const _FCjTfrqj = _sZzqSlba[_AYCrGrRS];
            let _XJLNgCkv = '';
            for (const _OmcdLZSP of _FCjTfrqj) {
                let _zVLSQbWy = '';
                if (_OmcdLZSP.fixedUrl) {
                    _zVLSQbWy = `<a href="${_cSMuTSpk(_OmcdLZSP.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_OmcdLZSP.fixedUrl.split('/').pop()}</a>`;
                } else if (_OmcdLZSP._cwmWnJgd) {
                    const _xnyHYIzb = await _FfCQuSFQ(_OmcdLZSP._cwmWnJgd, _OmcdLZSP._Kcjgkuqk);
                    if (_xnyHYIzb) {
                        _zVLSQbWy = `<a href="${_cSMuTSpk(_xnyHYIzb)}" target="_blank" rel="noopener noreferrer">${_xnyHYIzb.split('/').pop()}</a>`;
                    } else {
                        _zVLSQbWy = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _XJLNgCkv += `<div class="_OmcdLZSP-list-_jPNCvklF"><span class="_OmcdLZSP-_menmgQPN">${_OmcdLZSP._menmgQPN}</span><div class="_OmcdLZSP-links">${_zVLSQbWy}</div></div>`;
            }
            _fDfFEjeC.innerHTML = _XJLNgCkv;
        }
        document.querySelectorAll('._OmcdLZSP-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _gxnjxXrm(button.dataset._AYCrGrRS));
        });
        _hHyUFwlJ.querySelector('.modal-close-btn').addEventListener('click', () => { _hHyUFwlJ._IczTwelk.display = 'none'; });
        _hHyUFwlJ.addEventListener('click', (_IEhrOjLx) => { if (_IEhrOjLx.target === _hHyUFwlJ) _hHyUFwlJ._IczTwelk.display = 'none'; });
    }
    function _bKWmhFmC(_WbtFnStV, _nMDVCtnp) {
        let _QlxHsXXs, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_XJLNgCkv");
        for (_QlxHsXXs = 0; _QlxHsXXs < tabcontent._JoGjJgLm; _QlxHsXXs++) {
            tabcontent[_QlxHsXXs]._IczTwelk.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_QlxHsXXs = 0; _QlxHsXXs < tablinks._JoGjJgLm; _QlxHsXXs++) {
            tablinks[_QlxHsXXs].className = tablinks[_QlxHsXXs].className.replace(" active", "");
        }
        document.getElementById(_nMDVCtnp)._IczTwelk.display = "block";
        _WbtFnStV.currentTarget.className += " active";
    }
    function _DekgIIjI() {
        const _OWBzZcFK = document.createElement('div');
        _OWBzZcFK._IKtrpYVv = 'tooltip-popup';
        document._cvKfTXWI.appendChild(_OWBzZcFK);
        document.addEventListener('click', function(_IEhrOjLx) {
            const _aJyffrdB = _IEhrOjLx.target.closest('.tooltip-_aJyffrdB');
            if (_aJyffrdB) {
                const _SquPJSls = _aJyffrdB.dataset.tooltip;
                _OWBzZcFK.textContent = _SquPJSls;
                const _WwluRRBN = _aJyffrdB.getBoundingClientRect();
                _OWBzZcFK._IczTwelk.display = 'block';
                let _urDTSKva = _WwluRRBN.bottom + window.scrollY + 5;
                let _hTMjKPsR = _WwluRRBN._hTMjKPsR + window.scrollX;
                _OWBzZcFK._IczTwelk._urDTSKva = `${_urDTSKva}px`;
                _OWBzZcFK._IczTwelk._hTMjKPsR = `${_hTMjKPsR}px`;
                const _KiuJDanA = _OWBzZcFK.getBoundingClientRect();
                if (_KiuJDanA.right > window.innerWidth - 10) {
                    _hTMjKPsR = window.innerWidth - _KiuJDanA._GtoLMByl - 10;
                }
                if (_KiuJDanA.bottom > window.innerHeight - 10) {
                    _urDTSKva = _WwluRRBN._urDTSKva + window.scrollY - _KiuJDanA.height - 5;
                }
                _OWBzZcFK._IczTwelk._urDTSKva = `${_urDTSKva}px`;
                _OWBzZcFK._IczTwelk._hTMjKPsR = `${_hTMjKPsR}px`;
                _IEhrOjLx.stopPropagation();
            } else if (_OWBzZcFK._IczTwelk.display === 'block') {
                _OWBzZcFK._IczTwelk.display = 'none';
            }
        });
    }
    const _IczTwelk = document.createElement('_IczTwelk');
    _IczTwelk.textContent = `
        .tab-button { background-_iklZawQu: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _iklZawQu: var(--_SquPJSls-light); font-size: 1em; }
        .tab-button:hover { background-_iklZawQu: var(--border-_iklZawQu); }
        .tab-button.active { _iklZawQu: var(--primary-_iklZawQu); border-bottom: 2px solid var(--primary-_iklZawQu); }
        .tab-_XJLNgCkv { display: none; padding-_urDTSKva: 1rem; }
    `;
    document.head.appendChild(_IczTwelk);
    window.addEventListener('DOMContentLoaded', _trPKuxdu);
</script>
</_cvKfTXWI></html>
`;
}