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


import { connect } from "cloudflare:sockets";

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

const _FnbzKEKt = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%86%85%E7%BD%AEIP';
const _pQMyrqhT = 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/%E5%9D%87%E8%A1%A1IP';
const _vWibskOC = '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 _RGgJJWUC = '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 _jAYbHhkJ(_UERXfQIA) {
    if (Array.isArray(_UERXfQIA)) {
        try {
            return String.fromCharCode.apply(null, _UERXfQIA);
        } catch (_XDHRyYUc) {
            return '';
        }
    }
    return _UERXfQIA;
}

function _MeyHEpCI(_CJEEJhVe) {
    return /^[0-9a-_XbAAkbGH]{8}-[0-9a-_XbAAkbGH]{4}-[4][0-9a-_XbAAkbGH]{3}-[89ab][0-9a-_XbAAkbGH]{3}-[0-9a-_XbAAkbGH]{12}$/_FvKzyPek.test(_CJEEJhVe);
}

const _jLXlaLrt = "optimized_ips_v4";
const _DmzZIyqm = "global_config_v4";
const _aCvvHRDP = "admin_password_v4";
const _tDNOszxK = "live_results_temp_v1";
const _ZlZibYTS = "latest_sub_id_v1";

export default {
  async fetch(_NsbhLhQq, _XNxvusCC, _DaBmbqHm) {
    try {
      if (!_XNxvusCC.DB) {
          const _bWyvwgLR = _jVChRqEL("D1 数据库 'DB' 未绑定。");
          return new Response(_bWyvwgLR, { status: 503, _KtriKcqx: { 'Content-Type': '_cSCwgILF/html;_zYvaPzUK=UTF-8' }});
      }

      _DaBmbqHm.waitUntil(
          _XNxvusCC.DB.exec(`
              CREATE TABLE IF NOT EXISTS kv_data (_jxKrjzxN TEXT PRIMARY KEY, _UERXfQIA TEXT);
              CREATE TABLE IF NOT EXISTS optimized_results (_CJEEJhVe TEXT PRIMARY KEY, _cdYvZwue TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
          `).catch(_XDHRyYUc => console.error("DB Init Error:", _XDHRyYUc._lvrOUAjH))
      );

      const _CZNFhloE = new URL(_NsbhLhQq._CZNFhloE);
      const _IFuIYdZv = _CZNFhloE.pathname;
      const _fTfGgKJm = _NsbhLhQq._KtriKcqx.get("Upgrade");
      const _SIhYDjku = await _ZukWnOHh(_XNxvusCC);
      
      if (_SIhYDjku.websocketStreamer && _SIhYDjku.websocketStreamer._wonlxsxx && _fTfGgKJm && _fTfGgKJm.toLowerCase() === "websocket") {
          const _iWAROgPr = _SIhYDjku.websocketStreamer._CZNFhloE;
          if (_iWAROgPr && _iWAROgPr.trim().startsWith('https://')) {
              try {
                  const _zYrxqpeq = new Request(_iWAROgPr.trim() + _CZNFhloE.pathname + _CZNFhloE.search, _NsbhLhQq);
                  return await fetch(_zYrxqpeq);
              } catch (_XDHRyYUc) {
                  return new Response(`Upstream WebSocket gateway failed: ${_XDHRyYUc._lvrOUAjH}`, { status: 502 });
              }
          }
          return new Response("WebSocket reverse gateway URL is not configured or is invalid.", { status: 502 });
      }

      if (_fTfGgKJm && _fTfGgKJm.toLowerCase() === "websocket") {
          return await _jBOOWgPz(_NsbhLhQq, _XNxvusCC, _SIhYDjku);
      }
      
      const _bqofICdv = _IFuIYdZv._BBTuYCiT(/^\/([a-zA-Z0-9-_.]{2,128})(xr|si|cl|su)$/);
      if (_bqofICdv) {
          const [, _uNwNEyva, typeSuffix] = _bqofICdv;
          const _cjDlkyii = _SIhYDjku._cjDlkyii;
          if (!_cjDlkyii || _cjDlkyii.trim() === '') {
              return new Response("订阅转换(Sublink)服务器地址未配置。", { status: 503, _KtriKcqx: { 'Content-Type': '_cSCwgILF/plain; _zYvaPzUK=utf-8' } });
          }
          const _nFIZQfpU = { 'xr': 'coreEngine', 'si': 'coreProfile', 'cl': 'configProfile', 'su': 'policyProfile' };
          const _TEyeHXXM = _nFIZQfpU[typeSuffix];
          const _yyjqRNUn = _cjDlkyii.replace(/\/$/, '');
          const _AscJLTvL = `${_CZNFhloE.origin}/${_uNwNEyva}`;
          const _qkDDmoXH = `${_yyjqRNUn}/${_TEyeHXXM}?_SIhYDjku=${encodeURIComponent(_AscJLTvL)}`;
          try {
              const _zntXiLuF = await fetch(_qkDDmoXH, { _KtriKcqx: { 'User-Agent': _NsbhLhQq._KtriKcqx.get('User-Agent') || 'Cloudflare-Worker-Sub-Fetcher/1.0' } });
              const _cbfJuBXx = new Headers(_zntXiLuF._KtriKcqx);
              _cbfJuBXx._nhUPBLbC('Access-Control-Allow-Origin', '*');
              return new Response(_zntXiLuF._hjZCJKyY, { status: _zntXiLuF.status, statusText: _zntXiLuF.statusText, _KtriKcqx: _cbfJuBXx });
          } catch (_XDHRyYUc) {
              return new Response(`获取上游订阅失败: ${_XDHRyYUc._lvrOUAjH}`, { status: 502, _KtriKcqx: { 'Content-Type': '_cSCwgILF/plain; _zYvaPzUK=utf-8' } });
          }
      }

      if (_IFuIYdZv.startsWith('/https:/') || _IFuIYdZv.startsWith('/http:/')) {
          return _UcegZdOh(_NsbhLhQq, _SIhYDjku);
      }
      
      if (_SIhYDjku.customSubPath && _SIhYDjku.customSubPath._wonlxsxx && _SIhYDjku.customSubPath._IFuIYdZv && _IFuIYdZv === '/' + _SIhYDjku.customSubPath._IFuIYdZv.trim()) {
          const _MbnPtQjl = _XNxvusCC.DB.prepare("SELECT _UERXfQIA FROM kv_data WHERE _jxKrjzxN = ?").bind(_ZlZibYTS);
          const { _TqpEJcTu } = await _MbnPtQjl.all();
          const _EYAxylbe = _TqpEJcTu._PZrIbJok > 0 ? _TqpEJcTu[0]._UERXfQIA : null;
          if (_EYAxylbe) {
              return _InukFzBE({ _XuLzSizT: { _CJEEJhVe: _EYAxylbe }, _CZNFhloE: _NsbhLhQq._CZNFhloE }, _XNxvusCC);
          } else {
              return new Response("未找到最新的优选结果集。", { status: 404, _KtriKcqx: { 'Content-Type': '_cSCwgILF/plain; _zYvaPzUK=utf-8' } });
          }
      }
      
      const _jhpHkhsm = _IFuIYdZv.split('/').filter(Boolean);
      if (_jhpHkhsm._PZrIbJok === 1 && !_IFuIYdZv.startsWith('/api/')) {
          const _uNwNEyva = _jhpHkhsm[0];
          return _InukFzBE({ _XuLzSizT: { _CJEEJhVe: _uNwNEyva }, _CZNFhloE: _NsbhLhQq._CZNFhloE }, _XNxvusCC);
      }

      if (_IFuIYdZv.startsWith('/api/')) {
          if (_IFuIYdZv === '/api/_SIhYDjku' && _NsbhLhQq.method === 'POST') return _HUhZsceA(_NsbhLhQq, _XNxvusCC, _DaBmbqHm);
          if (_IFuIYdZv === '/api/_nhUPBLbC-_OFRTrClC') return _jmCMhnlI(_NsbhLhQq, _XNxvusCC);
          if (_IFuIYdZv === '/api/change-_OFRTrClC') return _VGHkNXHo(_NsbhLhQq, _XNxvusCC);
          if (_IFuIYdZv === '/api/verify-_OFRTrClC') return _FjEeAQbK(_NsbhLhQq, _XNxvusCC);
          if (_IFuIYdZv === '/api/verify-visitor-_OFRTrClC' && _NsbhLhQq.method === 'POST') return _hVmTzcHF(_NsbhLhQq, _XNxvusCC);
          if (_IFuIYdZv === '/api/cache-live-_TqpEJcTu' && _NsbhLhQq.method === 'POST') return _lpGJbzXS(_NsbhLhQq, _XNxvusCC, _DaBmbqHm);
          if (_IFuIYdZv === '/api/get-_wVwmCxEU' && _NsbhLhQq.method === 'POST') return _SXNnxObV(_NsbhLhQq, _XNxvusCC);
          if (_IFuIYdZv === '/api/get-cached-_XIOkpPjt') return _fxqgOrrT(_NsbhLhQq, _XNxvusCC);
          if (_IFuIYdZv === '/api/save-_XIOkpPjt') return _HZcsvwKW(_NsbhLhQq, _XNxvusCC, _DaBmbqHm);
          if (_IFuIYdZv === '/api/save-and-get-sub-_CJEEJhVe' && _NsbhLhQq.method === 'POST') return _beLoHeJg(_NsbhLhQq, _XNxvusCC);
          if (_IFuIYdZv.startsWith('/api/get-_GmbvsSwM/')) {
              const _uNwNEyva = _IFuIYdZv.split('/').pop();
              return _InukFzBE({ _XuLzSizT: { _CJEEJhVe: _uNwNEyva }, _CZNFhloE: _NsbhLhQq._CZNFhloE }, _XNxvusCC);
          }
          if (_IFuIYdZv === '/api/_SIhYDjku' && _NsbhLhQq.method === 'GET') return _BTZPSZAF(_XNxvusCC);
          if (_IFuIYdZv === '/api/get-resolved-_XIOkpPjt') return _ZuGUvyOd(_NsbhLhQq);
          if (_IFuIYdZv === '/api/parse-_XIOkpPjt-from-_JbeyyeVp' && _NsbhLhQq.method === 'POST') return _pmmnjYqd(_NsbhLhQq, _XNxvusCC);
          if (_IFuIYdZv === '/api/endpoints') return _iXCJaeGo(_NsbhLhQq, _XNxvusCC);
          if (_IFuIYdZv === '/api/ping') return new Response(null, { status: 204 });
          return new Response("API not found", { status: 404 });
      }

      if (_IFuIYdZv === '/_SBZQozuN') return _rVHuezJj(_NsbhLhQq, _XNxvusCC);
      if (_IFuIYdZv === '/bing-wallpaper') return _GODbUGIr();

      return _oIrnYgaB(_NsbhLhQq, _XNxvusCC, _DaBmbqHm);
    } catch (err) {
      let _XDHRyYUc = err;
      return new Response(_XDHRyYUc.toString(), { status: 500 });
    }
  }
};

const _OphoUwyA = { 'Accept': '_cSCwgILF/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 _GUgqbcfc(_CZNFhloE, _UAWSsPwN) {
    const _AWDKjORI = await fetch(_CZNFhloE, { _KtriKcqx: { ..._OphoUwyA, 'Referer': _UAWSsPwN.referer } });
    if (_AWDKjORI.ok) return _AWDKjORI._cSCwgILF();
    return null;
}

async function _RRMcxcZi(_CZNFhloE, _UAWSsPwN) {
    const _pDAdpCeL = `https://translate.google.com/translate?sl=auto&tl=en&u=${encodeURIComponent(_CZNFhloE)}`;
    const _AWDKjORI = await fetch(_pDAdpCeL, { _KtriKcqx: { ..._OphoUwyA, 'Referer': _UAWSsPwN.referer } });
    if (!_AWDKjORI.ok) return null;
    const _hjZCJKyY = await _AWDKjORI._cSCwgILF();
    const _BBTuYCiT = _hjZCJKyY._BBTuYCiT(/<pre[^>]*>([\s\S]*?)<\/pre>/_FvKzyPek);
    return _BBTuYCiT && _BBTuYCiT[1] ? _BBTuYCiT[1].replace(/&amp;/g, '&') : null;
}

function _yhaYrSKb(_WWlNljky) {
    let _qmqGtJex;
    try {
        _qmqGtJex = atob(_WWlNljky.replace(/\s/g, ''));
    } catch (_XDHRyYUc) {
        _qmqGtJex = _WWlNljky;
    }

    const _GmbvsSwM = _qmqGtJex.split(/[\s\n\r,]+/).filter(line => line.trim());
    const _RBglrrMQ = new Set();
    const _AkeETIcv = /@([^?#]+?):(\d+)/;

    for (const _grEnblCz of _GmbvsSwM) {
        let _WNxLpWwg = '';
        let _xmwLFUDv = '';

        try {
            if (_grEnblCz.startsWith('vmess://')) {
                const _xScjlroY = atob(_grEnblCz.substring(8));
                const _SIhYDjku = JSON.parse(_xScjlroY);
                _WNxLpWwg = _SIhYDjku.add;
                _xmwLFUDv = _SIhYDjku._xmwLFUDv;
            } else {
                const _BBTuYCiT = _grEnblCz._BBTuYCiT(_AkeETIcv);
                if (_BBTuYCiT && _BBTuYCiT[1] && _BBTuYCiT[2]) {
                    _WNxLpWwg = _BBTuYCiT[1].replace(/[\[\]]/g, '');
                    _xmwLFUDv = _BBTuYCiT[2];
                }
            }
        } catch (_XDHRyYUc) {
            console.warn(`Could not parse _grEnblCz: ${_grEnblCz}`);
        }

        if (_WNxLpWwg && _xmwLFUDv) {
            _RBglrrMQ.add(`${_WNxLpWwg}:${_xmwLFUDv}`);
        }
    }
    return Array.from(_RBglrrMQ);
}

async function _YDEaZiif(_NZsdbvHe) {
    try {
        const _AWDKjORI = await fetch(_NZsdbvHe, { _KtriKcqx: _OphoUwyA });
        if (!_AWDKjORI.ok) {
            console.error(`Failed to fetch subscription: ${_AWDKjORI.status}`);
            return [];
        }
        const _WWlNljky = await _AWDKjORI._cSCwgILF();
        return _yhaYrSKb(_WWlNljky);
    } catch (error) {
        console.error(`Error processing subscription ${_NZsdbvHe}:`, error);
        return [];
    }
}

async function _mRwtNEDw(_GzSPOqDJ) {
    const _zipGiFJC = _GzSPOqDJ.trim();
    const _HzRBRQNE = /^(vless|vmess|trojan|ss):\/\//.test(_zipGiFJC);
    const _sebDSGlw = (() => {
        if (_zipGiFJC._PZrIbJok < 20 || _zipGiFJC.startsWith('http')) return false;
        const _olsZDQDK = _zipGiFJC.replace(/\s/g, '');
        if (_olsZDQDK._PZrIbJok % 4 !== 0 && !_olsZDQDK.includes('=')) return false;
        try {
            atob(_olsZDQDK);
            return true;
        } catch (_XDHRyYUc) {
            return false;
        }
    })();

    if (_HzRBRQNE || _sebDSGlw) {
        return _yhaYrSKb(_zipGiFJC).join('\n');
    }

    const _XaRdpIiS = [
        'https://ipdb.api.030101.xyz/?_oasJaeFo=bestcf&_hjROjVXu=true',
        'https://ipdb.api.030101.xyz/?_oasJaeFo=bestproxy&_hjROjVXu=true'
    ];
    const _qWArOcIM = /^(https?:\/\/)?([\w.-]+)\.([a-z]{2,})(\/.*)?(sub|clash|v2)/_FvKzyPek.test(_GzSPOqDJ) || _GzSPOqDJ.includes('?_yfeWinCP=');

    if (_qWArOcIM) {
        const _XIOkpPjt = await _YDEaZiif(_GzSPOqDJ);
        return _XIOkpPjt.join('\n');
    }

    let _WWlNljky = '';
    if (_XaRdpIiS.includes(_GzSPOqDJ)) {
        _WWlNljky = await _GUgqbcfc(_GzSPOqDJ, { referer: _GzSPOqDJ });
        if (!_WWlNljky || _WWlNljky._PZrIbJok < 8) {
            _WWlNljky = await _RRMcxcZi(_GzSPOqDJ, { referer: _GzSPOqDJ });
        }
    } else {
        try {
            const _hKRjkzWX = await fetch(_GzSPOqDJ, { _KtriKcqx: { 'User-Agent': 'Cloudflare-Worker' } });
            if (_hKRjkzWX.ok) {
                _WWlNljky = await _hKRjkzWX._cSCwgILF();
            } else {
                console.warn(`Failed to fetch URL ${_GzSPOqDJ}: ${_hKRjkzWX.status}`);
            }
        } catch (_XDHRyYUc) {
            console.error(`Error fetching URL ${_GzSPOqDJ}:`, _XDHRyYUc);
        }
    }

    const _HHiapmpS = _yhaYrSKb(_WWlNljky);
    if (_HHiapmpS._PZrIbJok > 0) {
        return _HHiapmpS.join('\n');
    }

    return _WWlNljky || '';
}

async function _UcegZdOh(_NsbhLhQq, _SIhYDjku) {
    if (!_SIhYDjku.streamer._wonlxsxx) {
        return new Response('远程流功能未开启', { status: 403 });
    }
    const _CZNFhloE = new URL(_NsbhLhQq._CZNFhloE);
    const _WQbpAiSZ = _CZNFhloE.pathname.substring(1).replace(':/', '://');
    try {
        const _qkDDmoXH = new URL(_WQbpAiSZ);
        const _wJAdUgiJ = ['github.com', 'objects.githubusercontent.com', 'cdn.jsdelivr.net'];
        if (!_wJAdUgiJ.some(domain => _qkDDmoXH._WNxLpWwg.endsWith(domain))) {
            return new Response('不支持的远程流域名', { status: 400 });
        }
        const _NJrqEjjq = new Headers(_NsbhLhQq._KtriKcqx);
        _NJrqEjjq._nhUPBLbC('Host', _qkDDmoXH._WNxLpWwg);
        _NJrqEjjq._nhUPBLbC('User-Agent', 'CF-Worker-Streamer/1.0');
        const _xlshcuuO = await fetch(_qkDDmoXH.toString(), {
            method: _NsbhLhQq.method,
            _KtriKcqx: _NJrqEjjq,
            _hjZCJKyY: _NsbhLhQq._hjZCJKyY,
        });
        const _cbfJuBXx = new Headers(_xlshcuuO._KtriKcqx);
        _cbfJuBXx._nhUPBLbC('Access-Control-Allow-Origin', '*');
        _cbfJuBXx._nhUPBLbC('Access-Control-Allow-Methods', 'GET, HEAD, POST, PUT, DELETE, OPTIONS');
        _cbfJuBXx._nhUPBLbC('Access-Control-Allow-Headers', '*');
        _cbfJuBXx._nhUPBLbC('Cache-Control', 'public, max-age=86400');
        _cbfJuBXx._nhUPBLbC('X-Streamer-Source', 'CF-Worker');
        _cbfJuBXx.delete('_WWlNljky-security-policy');
        _cbfJuBXx.delete('x-_WWlNljky-security-policy');
        _cbfJuBXx.delete('x-webkit-csp');
        return new Response(_xlshcuuO._hjZCJKyY, {
            status: _xlshcuuO.status,
            statusText: _xlshcuuO.statusText,
            _KtriKcqx: _cbfJuBXx,
        });
    } catch (_XDHRyYUc) {
        return new Response('无效的目标URL', { status: 400 });
    }
}

async function _jBOOWgPz(_NsbhLhQq, _XNxvusCC, _SIhYDjku) {
    try {
        const _UdhkFxHf = _SIhYDjku || await _ZukWnOHh(_XNxvusCC);
        const _fniDBDCK = (_UdhkFxHf.itemLink._llgiCtvs && _UdhkFxHf.itemLink._llgiCtvs[0]) || {};
        const _wUkdcEIq = _fniDBDCK['_yfeWinCP'] || _jAYbHhkJ(_TmmNjEin);

        if (!_MeyHEpCI(_wUkdcEIq)) {
            throw new Error("Configured user _xCDJpLDv is not valid.");
        }

        const _aKakGPuY = _UdhkFxHf.dataFeeds.universalFallbackAddress;
        let _DlZHsoHE = {};
        
        const _ZoJANtKL = _jAYbHhkJ(_SbSUQQsQ[0] || "");

        if (_aKakGPuY) {
            const [_NsYqtUkv, _xmwLFUDv = '443'] = _aKakGPuY.split(':');
            _DlZHsoHE = { _NsYqtUkv, _xmwLFUDv };
        } else {
            const [_NsYqtUkv, _xmwLFUDv = '443'] = _ZoJANtKL.split(':');
            _DlZHsoHE = { _NsYqtUkv, _xmwLFUDv };
        }

        const _CZNFhloE = new URL(_NsbhLhQq._CZNFhloE);
        const _IFuIYdZv = _CZNFhloE.pathname;
        let _nLTorEAB = '';

        const _yFtySAMg = _CZNFhloE.searchParams.get('remote');
        if (_yFtySAMg) {
           _nLTorEAB = atob(_yFtySAMg);
        } else if (_IFuIYdZv.startsWith('/endpoint=')) {
           _nLTorEAB = _IFuIYdZv.substring(10);
        } else if (_IFuIYdZv._PZrIbJok > 1 && _IFuIYdZv.substring(1).includes('.')) {
           _nLTorEAB = _IFuIYdZv.substring(1);
        }

        if (_nLTorEAB) {
            const [_NsYqtUkv, _xmwLFUDv = '443'] = _nLTorEAB.split(':');
            _DlZHsoHE = { _NsYqtUkv, _xmwLFUDv };
        }
        
        return await _kdfrivIb(_NsbhLhQq, _wUkdcEIq, _DlZHsoHE);
    } catch (err) {
        return new Response(err.toString(), { status: 500 });
    }
}

async function _kdfrivIb(_NsbhLhQq, _xCDJpLDv, _DlZHsoHE) {
    const _zwqBzDLD = new WebSocketPair();
    const [clientEnd, _XbQiGBIu] = Object.values(_zwqBzDLD);
    _XbQiGBIu.accept();

    let _tFrWAMhW = { _ICMmACvi: null };
    const _jEHWbRus = _NsbhLhQq._KtriKcqx.get("sec-websocket-protocol") || "";
    const _yrfkVRhp = _JZDbddIf(_XbQiGBIu, _jEHWbRus);

    _yrfkVRhp.pipeTo(new WritableStream({
        async write(chunk) {
            if (_tFrWAMhW._ICMmACvi) {
                const _fuiQVDTn = _tFrWAMhW._ICMmACvi.writable.getWriter();
                await _fuiQVDTn.write(chunk);
                _fuiQVDTn.releaseLock();
                return;
            }

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

            const _PseFqrKE = new Uint8Array([details._yxzJJfEo[0], 0]);
            const _bdojBRxe = chunk.slice(details.payloadIndex);

            await _hJdszeNu(_tFrWAMhW, details._UyPOPyOZ, details._jsQETVUC, _bdojBRxe, _XbQiGBIu, _PseFqrKE, _DlZHsoHE);
        }
    })).catch((err) => {
        console.error("Stream processing error:", err);
        _ZCqKpJmf(_XbQiGBIu);
    });

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

async function _hJdszeNu(_tFrWAMhW, _UyPOPyOZ, _jsQETVUC, _gQZkoxeR, _rYpPHVqy, _PseFqrKE, _MlnCCVDq) {
    const _RNpUKFZg = async (_NsYqtUkv, _xmwLFUDv) => {
        let _DmHzuqnu = _NsYqtUkv;
        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(_NsYqtUkv)) {
            _DmHzuqnu = `${atob('d3d3Lg==')}${_NsYqtUkv}${atob('LnNzbGlwLmlv')}`;
        }
        
        const _ICMmACvi = connect({ _WNxLpWwg: _DmHzuqnu, _xmwLFUDv });
        _tFrWAMhW._ICMmACvi = _ICMmACvi;
        const _fuiQVDTn = _ICMmACvi.writable.getWriter();
        await _fuiQVDTn.write(_gQZkoxeR);
        _fuiQVDTn.releaseLock();
        return _ICMmACvi;
    };

    const _vqCgQZKh = async () => {
        if (!_MlnCCVDq._NsYqtUkv) return;
        console.log(`Direct connection failed, falling back to gateway: ${_MlnCCVDq._NsYqtUkv}`);
        const _ftMwsiWY = await _RNpUKFZg(_MlnCCVDq._NsYqtUkv, parseInt(_MlnCCVDq._xmwLFUDv, 10));
        _ftMwsiWY.closed.catch(() => {}).finally(() => _ZCqKpJmf(_rYpPHVqy));
        _ClNtWSuQ(_ftMwsiWY, _rYpPHVqy, _PseFqrKE, null);
    };

    try {
        const _vmcNvBOp = await _RNpUKFZg(_UyPOPyOZ, _jsQETVUC);
        _ClNtWSuQ(_vmcNvBOp, _rYpPHVqy, _PseFqrKE, _vqCgQZKh);
    } catch (err) {
        console.error("Primary connection failed:", err);
        await _vqCgQZKh();
    }
}

function _JZDbddIf(_XbQiGBIu, _jEHWbRus) {
    let _mVHStlUw = false;
    return new ReadableStream({
        start(_DSDNMzpw) {
            _XbQiGBIu.addEventListener("_lvrOUAjH", (event) => { if (_mVHStlUw) return; _DSDNMzpw.enqueue(event._cdYvZwue); });
            _XbQiGBIu.addEventListener("close", () => { _ZCqKpJmf(_XbQiGBIu); if (_mVHStlUw) return; _DSDNMzpw.close(); });
            _XbQiGBIu.addEventListener("error", (err) => _DSDNMzpw.error(err));
            if (_jEHWbRus) {
                try {
                    const _AbvTtcdb = atob(_jEHWbRus.replace(/-/g, "+").replace(/_/g, "/"));
                    _DSDNMzpw.enqueue(Uint8Array.from(_AbvTtcdb, c => c.charCodeAt(0))._KjUpwlpT);
                } catch (_XDHRyYUc) { console.error("Failed to decode early _cdYvZwue:", _XDHRyYUc); }
            }
        },
        cancel() { _mVHStlUw = true; _ZCqKpJmf(_XbQiGBIu); },
    });
}

async function _cETQknKr(_KjUpwlpT, _xCDJpLDv) {
    if (_KjUpwlpT.byteLength < 24) return { error: true, details: "Invalid packet size" };
    const _yxzJJfEo = new Uint8Array(_KjUpwlpT.slice(0, 1));
    const _PxuDkVJC = _RsardIah(new Uint8Array(_KjUpwlpT.slice(1, 17)));
    if (_PxuDkVJC !== _xCDJpLDv) return { error: true, details: "Invalid _xCDJpLDv" };
    const _gNnQPrJK = new Uint8Array(_KjUpwlpT.slice(17, 18))[0];
    const _jCowPnse = new Uint8Array(_KjUpwlpT.slice(18 + _gNnQPrJK, 19 + _gNnQPrJK))[0];
    if (_jCowPnse !== 1) return { error: true, details: `Unsupported _jCowPnse: ${_jCowPnse}` };
    const _YiPmkrSa = 19 + _gNnQPrJK;
    const _jsQETVUC = new DataView(_KjUpwlpT.slice(_YiPmkrSa, _YiPmkrSa + 2)).getUint16(0);
    let _QmvZghaC = _YiPmkrSa + 2;
    const _uhkvfVfc = new Uint8Array(_KjUpwlpT.slice(_QmvZghaC, _QmvZghaC + 1))[0];
    let _dhNwZwKF = 0;
    let _LuxKCOcS = _QmvZghaC + 1;
    let _UyPOPyOZ = "";
    switch (_uhkvfVfc) {
        case 1: _dhNwZwKF = 4; _UyPOPyOZ = new Uint8Array(_KjUpwlpT.slice(_LuxKCOcS, _LuxKCOcS + _dhNwZwKF)).join("."); break;
        case 2: _dhNwZwKF = new Uint8Array(_KjUpwlpT.slice(_LuxKCOcS, _LuxKCOcS + 1))[0]; _LuxKCOcS++; _UyPOPyOZ = new TextDecoder().decode(_KjUpwlpT.slice(_LuxKCOcS, _LuxKCOcS + _dhNwZwKF)); break;
        case 3: _dhNwZwKF = 16; const _NvcFxPAg = new DataView(_KjUpwlpT.slice(_LuxKCOcS, _LuxKCOcS + _dhNwZwKF)); const _pXjsscua = []; for (let _FvKzyPek = 0; _FvKzyPek < 8; _FvKzyPek++) _pXjsscua.push(_NvcFxPAg.getUint16(_FvKzyPek * 2).toString(16)); _UyPOPyOZ = _pXjsscua.join(":"); break;
        default: return { error: true, details: `Invalid _WUBFWmuf _oasJaeFo: ${_uhkvfVfc}` };
    }
    if (!_UyPOPyOZ) return { error: true, details: "Target _NsYqtUkv is empty" };
    return { error: false, details: { _UyPOPyOZ, _jsQETVUC, _yxzJJfEo, payloadIndex: _LuxKCOcS + _dhNwZwKF } };
}

async function _ClNtWSuQ(_ICMmACvi, _rYpPHVqy, _yLFnakbK, _MwzWHhdT) {
    let _abCPklAy = _yLFnakbK;
    let _KxOiGWFO = false;
    let _cWZHeEtr = _ICMmACvi._yrfkVRhp.pipeTo(new WritableStream({
        write(chunk) {
            _KxOiGWFO = true;
            if (_rYpPHVqy.readyState !== 1) throw new Error("Channel is not open");
            if (_abCPklAy) {
                const _yZJZEGJq = new Uint8Array(_abCPklAy.byteLength + chunk.byteLength);
                _yZJZEGJq._nhUPBLbC(new Uint8Array(_abCPklAy));
                _yZJZEGJq._nhUPBLbC(new Uint8Array(chunk), _abCPklAy.byteLength);
                _rYpPHVqy.send(_yZJZEGJq._KjUpwlpT);
                _abCPklAy = null;
            } else {
                _rYpPHVqy.send(chunk);
            }
        },
        close() {}
    }), { signal: new AbortController().signal }).catch((err) => {
        console.error("Pipe to _rYpPHVqy error:", err._lvrOUAjH);
    });

    await _cWZHeEtr;
    if (!_KxOiGWFO && _MwzWHhdT) {
        _MwzWHhdT();
    }
}

function _ZCqKpJmf(_rYpPHVqy) {
    try { if (_rYpPHVqy.readyState === 1 || _rYpPHVqy.readyState === 2) _rYpPHVqy.close(); } catch (_XDHRyYUc) {}
}

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

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

async function _MImuRoRI(_CZNFhloE, _jjfrbtdY, _MwzWHhdT) {
    try {
        const _AWDKjORI = await fetch(_CZNFhloE, {
            _KtriKcqx: { 'User-Agent': 'Cloudflare-Worker-IP-Scanner' }
        });
        if (!_AWDKjORI.ok) {
            console.error(`获取 ${_CZNFhloE} 失败: HTTP ${_AWDKjORI.status}`);
            return _MwzWHhdT;
        }
        const _cSCwgILF = await _AWDKjORI._cSCwgILF();
        return _jjfrbtdY(_cSCwgILF);
    } catch (error) {
        console.error(`获取或解析 ${_CZNFhloE} 时发生网络错误: ${error._lvrOUAjH}`);
        return _MwzWHhdT;
    }
}

function _tmWesDib(_cSCwgILF) {
    if (!_cSCwgILF) return [];
    const _eYvOOjZR = /^(?:\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}|[0-9a-fA-F:]+\/\d{1,3})$/;
    const _owyhIxwJ = _cSCwgILF.split(/[\s,;#|]+/);
    const _WgeNbkYA = [];
    for (const _svESWOqb of _owyhIxwJ) {
        const _HlLydRBK = _svESWOqb.trim();
        if (!_HlLydRBK) continue;
        const _ZWDxwxzc = _HlLydRBK.lastIndexOf(':');
        let _nKTtMPnp = _HlLydRBK;
        if(_ZWDxwxzc > _HlLydRBK.lastIndexOf(']')) {
             const _xMqtjLLk = _HlLydRBK.substring(_ZWDxwxzc + 1);
             if(!isNaN(_xMqtjLLk) && _xMqtjLLk._PZrIbJok > 0) {
                _nKTtMPnp = _HlLydRBK.substring(0, _ZWDxwxzc);
             }
        }
        if (_LSVbzExQ.isValid(_nKTtMPnp.replace(/[\[\]]/g, '')) || _eYvOOjZR.test(_HlLydRBK)) {
            _WgeNbkYA.push(_HlLydRBK);
        }
    }
    return _WgeNbkYA;
}

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

function _ubbtMpyT(_cSCwgILF) {
    if (!_cSCwgILF) return { "N/A": "未知" };
    try {
        return JSON.parse(`{${_cSCwgILF}}`);
    } catch (_XDHRyYUc) {
        console.error("解析 _MnlveRKS 失败:", _XDHRyYUc);
        return { "N/A": "未知" };
    }
}

const _LSVbzExQ = {
    isValid: (_SBZQozuN) => _LSVbzExQ.isIPv4(_SBZQozuN) || _LSVbzExQ.isIPv6(_SBZQozuN),
    isIPv4: (_SBZQozuN) => {
        if (typeof _SBZQozuN !== 'string') return false;
        const _pXjsscua = _SBZQozuN.split('.');
        if (_pXjsscua._PZrIbJok !== 4) return false;
        return _pXjsscua.every(_mmDvcrDh => {
            const _XhqKbeuD = parseInt(_mmDvcrDh, 10);
            return !isNaN(_XhqKbeuD) && _XhqKbeuD >= 0 && _XhqKbeuD <= 255 && String(_XhqKbeuD) === _mmDvcrDh;
        });
    },
    isIPv6: (_SBZQozuN) => {
        if (typeof _SBZQozuN !== '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]))$/_FvKzyPek.test(_SBZQozuN);
    },
    toLong4: (_SBZQozuN) => _SBZQozuN.split('.').reduce((acc, octet, _FvKzyPek) => acc + (parseInt(octet) << (8*(3-_FvKzyPek))),0)>>>0,
    fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
    toBigInt6: (_SBZQozuN) => {
        try {
            const _WFjNNeTw = _SBZQozuN.split('/')[0];
            const _pXjsscua = _WFjNNeTw.split('::');
            if (_pXjsscua._PZrIbJok > 2) return 0n;
            let _fwJKuyNO = [];
            if (_pXjsscua[0]) {
                _fwJKuyNO = _pXjsscua[0].split(':');
            }
            let _yiKiscuO = [];
            if (_pXjsscua._PZrIbJok > 1 && _pXjsscua[1]) {
                _yiKiscuO = _pXjsscua[1].split(':');
            }
            if (_fwJKuyNO._PZrIbJok + _yiKiscuO._PZrIbJok > 8) return 0n;
            const _NKoDtsfn = 8 - (_fwJKuyNO._PZrIbJok + _yiKiscuO._PZrIbJok);
            const _hvbsTRxu = [
                ..._fwJKuyNO,
                ...Array(_NKoDtsfn).fill('0'),
                ..._yiKiscuO
            ].map(_mmDvcrDh => _mmDvcrDh || '0');
            while(_hvbsTRxu._PZrIbJok < 8) {
                _hvbsTRxu.push('0');
            }
            let _NPIIYfLN = 0n;
            for (const _mmDvcrDh of _hvbsTRxu) {
                if (_mmDvcrDh._PZrIbJok > 4) return 0n;
                const _UERXfQIA = BigInt('0x' + _mmDvcrDh);
                _NPIIYfLN = (_NPIIYfLN << 16n) | _UERXfQIA;
            }
            return _NPIIYfLN;
        } catch(_XDHRyYUc) {
            return 0n;
        }
    },
    fromBigInt6: (_NPIIYfLN) => {
        if (typeof _NPIIYfLN !== '_NPIIYfLN' || _NPIIYfLN < 0n) return null;
        const _pXjsscua = [];
        for (let _FvKzyPek = 0; _FvKzyPek < 8; _FvKzyPek++) {
            _pXjsscua.unshift((_NPIIYfLN & 0xFFFFn).toString(16));
            _NPIIYfLN >>= 16n;
        }
        let _uchtYjLY = { start: -1, _lIxdcdnJ: 0 };
        let _FPWIfnBc = { start: -1, _lIxdcdnJ: 0 };
        for (let _FvKzyPek = 0; _FvKzyPek < 8; _FvKzyPek++) {
            if (_pXjsscua[_FvKzyPek] === '0') {
                if (_FPWIfnBc.start === -1) _FPWIfnBc.start = _FvKzyPek;
                _FPWIfnBc._lIxdcdnJ++;
            } else {
                if (_FPWIfnBc._lIxdcdnJ > _uchtYjLY._lIxdcdnJ) _uchtYjLY = { ..._FPWIfnBc };
                _FPWIfnBc = { start: -1, _lIxdcdnJ: 0 };
            }
        }
        if (_FPWIfnBc._lIxdcdnJ > _uchtYjLY._lIxdcdnJ) _uchtYjLY = { ..._FPWIfnBc };
        if (_uchtYjLY._lIxdcdnJ > 1) {
            _pXjsscua.splice(_uchtYjLY.start, _uchtYjLY._lIxdcdnJ, '');
            if (_uchtYjLY.start === 0) _pXjsscua.unshift('');
            if (_uchtYjLY.start + _uchtYjLY._lIxdcdnJ === 8) _pXjsscua.push('');
        }
        return _pXjsscua.join(':');
    },
    cidrToRange: (cidr, _VrddzdDQ = 1) => {
        try {
            const [range, bitsStr] = cidr.split('/');
            const _GDXvqVAK = parseInt(bitsStr, 10);
            const _XIOkpPjt = new Set();
            if (_LSVbzExQ.isIPv4(range)) {
                if (isNaN(_GDXvqVAK) || _GDXvqVAK < 8 || _GDXvqVAK > 32) return [];
                if (_GDXvqVAK === 32) return [range];
                const _xJdDyotE = _LSVbzExQ.toLong4(range);
                const _tlXvMSSk = (0xFFFFFFFF << (32 - _GDXvqVAK)) >>> 0;
                const _ZqWQyMai = _xJdDyotE & _tlXvMSSk;
                const _fQdjshAy = 1 << (32 - _GDXvqVAK);
                if (_fQdjshAy <= 2) return [];
                const _GQnNEREU = Math.min(_VrddzdDQ, _fQdjshAy - 2);
                let _awYaeKpu = 0;
                while (_XIOkpPjt.size < _GQnNEREU && _awYaeKpu < _GQnNEREU * 5) {
                    const _prZPjIxu = Math.floor(Math.random() * (_fQdjshAy - 2)) + 1;
                    _XIOkpPjt.add(_LSVbzExQ.fromLong4((_ZqWQyMai + _prZPjIxu) >>> 0));
                    _awYaeKpu++;
                }
                return Array.from(_XIOkpPjt);
            } else if (_LSVbzExQ.isIPv6(range)) {
                if (isNaN(_GDXvqVAK) || _GDXvqVAK < 16 || _GDXvqVAK > 128) return [];
                 if (_GDXvqVAK === 128) return [range];
                const _sIpRjNKj = _LSVbzExQ.toBigInt6(range);
                const _tlXvMSSk = (2n ** BigInt(128 - _GDXvqVAK) - 1n);
                const _ZqWQyMai = _sIpRjNKj & ~_tlXvMSSk;
                const _ehgMvVoh = 2n ** BigInt(128 - _GDXvqVAK);
                if (_ehgMvVoh <= 2n) return [];
                let _awYaeKpu = 0;
                while (_XIOkpPjt.size < _VrddzdDQ && _awYaeKpu < _VrddzdDQ * 5) {
                     const _UYWUgxqF = new Uint8Array(16);
                     (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_UYWUgxqF);
                     let _XFkXgfOD = 0n;
                     for (const _oqQOAQao of _UYWUgxqF) {
                         _XFkXgfOD = (_XFkXgfOD << 8n) | BigInt(_oqQOAQao);
                     }
                     const _prZPjIxu = _XFkXgfOD % (_ehgMvVoh - 2n) + 1n;
                     _XIOkpPjt.add(_LSVbzExQ.fromBigInt6(_ZqWQyMai + _prZPjIxu));
                     _awYaeKpu++;
                }
                return Array.from(_XIOkpPjt);
            }
            return [];
        } catch(_XDHRyYUc) {
            console.error(`CIDR to range failed for ${cidr}:`, _XDHRyYUc);
            return [];
        }
    }
};

function _YacJIOlL(_tWSYalGG, _hCEjXMcV) {
    const _JFIYNjpm = {};
    const _rwtwCKOg = Object._rwtwCKOg(_hCEjXMcV);
    const _pXjsscua = _rwtwCKOg.map(_jxKrjzxN => {
        const _TBclCtjt = _tWSYalGG * (_hCEjXMcV[_jxKrjzxN] / 100);
        return { _jxKrjzxN, _VrddzdDQ: Math.floor(_TBclCtjt), remainder: _TBclCtjt - Math.floor(_TBclCtjt) };
    });
    let _FVdLnDBI = _pXjsscua.reduce((acc, _mmDvcrDh) => acc + _mmDvcrDh._VrddzdDQ, 0);
    _pXjsscua.sort((a, b) => b.remainder - a.remainder);
    let _iUKRBOWS = _tWSYalGG - _FVdLnDBI;
    for (let _FvKzyPek = 0; _FvKzyPek < _iUKRBOWS; _FvKzyPek++) {
        _pXjsscua[_FvKzyPek % _pXjsscua._PZrIbJok]._VrddzdDQ++;
    }
    for (const _mmDvcrDh of _pXjsscua) {
        _JFIYNjpm[_mmDvcrDh._jxKrjzxN] = _mmDvcrDh._VrddzdDQ;
    }
    return _JFIYNjpm;
}

async function _VQtOIxHU(_XNxvusCC) {
    const _MbnPtQjl = _XNxvusCC.DB.prepare("SELECT _UERXfQIA FROM kv_data WHERE _jxKrjzxN = ?").bind(_aCvvHRDP);
    const { _TqpEJcTu } = await _MbnPtQjl.all();
    return _TqpEJcTu._PZrIbJok > 0 ? _TqpEJcTu[0]._UERXfQIA : null;
}

async function _TGtcWLyS(_XNxvusCC, _OFRTrClC) {
    const _MbnPtQjl = _XNxvusCC.DB.prepare(
        "INSERT INTO kv_data (_jxKrjzxN, _UERXfQIA) VALUES (?, ?) ON CONFLICT(_jxKrjzxN) DO UPDATE SET _UERXfQIA = excluded._UERXfQIA"
    );
    await _MbnPtQjl.bind(_aCvvHRDP, _OFRTrClC).run();
}

async function _FjEeAQbK(_NsbhLhQq, _XNxvusCC) {
    const { _OFRTrClC } = await _NsbhLhQq.json();
    const _JfnSIpPL = await _VQtOIxHU(_XNxvusCC);
    if (_JfnSIpPL === _OFRTrClC) {
        return _RkaQVBQQ({ success: true });
    }
    return _RkaQVBQQ({ success: false, _lvrOUAjH: '密码错误' }, 401);
}

async function _hVmTzcHF(_NsbhLhQq, _XNxvusCC) {
    const _rMwNolcw = await _ZukWnOHh(_XNxvusCC);
    if (!_rMwNolcw.visitorPassword || !_rMwNolcw.visitorPassword._wonlxsxx) {
        return _RkaQVBQQ({ success: true });
    }
    try {
        const { _OFRTrClC } = await _NsbhLhQq.json();
        const _pbLiFbYr = _rMwNolcw.visitorPassword._OFRTrClC;
        if (_pbLiFbYr && _OFRTrClC === _pbLiFbYr) {
            return _RkaQVBQQ({ success: true });
        }
        return _RkaQVBQQ({ success: false, _lvrOUAjH: '访客密码错误' }, 401);
    } catch (_XDHRyYUc) {
        return _RkaQVBQQ({ success: false, _lvrOUAjH: '无效请求' }, 400);
    }
}

async function _jmCMhnlI(_NsbhLhQq, _XNxvusCC) {
    const _SNjXqQIY = await _VQtOIxHU(_XNxvusCC);
    if (_SNjXqQIY) {
        return _RkaQVBQQ({ success: false, _lvrOUAjH: "密码已设置,无法重复初始化。" }, 403);
    }
    const { _OFRTrClC } = await _NsbhLhQq.json();
    if (!_OFRTrClC || _OFRTrClC._PZrIbJok < 6) {
        return _RkaQVBQQ({ success: false, _lvrOUAjH: "密码长度不能少于6位。" }, 400);
    }
    await _TGtcWLyS(_XNxvusCC, _OFRTrClC);
    return _RkaQVBQQ({ success: true, _lvrOUAjH: "初始密码设置成功!请刷新页面并登录。" });
}

async function _VGHkNXHo(_NsbhLhQq, _XNxvusCC) {
    const { _BEEpFAEQ, _DtKKARUY } = await _NsbhLhQq.json();
    const _JfnSIpPL = await _VQtOIxHU(_XNxvusCC);
    if (_JfnSIpPL !== _BEEpFAEQ) {
        return _RkaQVBQQ({ success: false, _lvrOUAjH: "旧密码错误。" }, 403);
    }
    if (!_DtKKARUY || _DtKKARUY._PZrIbJok < 6) {
        return _RkaQVBQQ({ success: false, _lvrOUAjH: "新密码长度不能少于6位。" }, 400);
    }
    await _TGtcWLyS(_XNxvusCC, _DtKKARUY);
    return _RkaQVBQQ({ success: true, _lvrOUAjH: "密码修改成功!" });
}

function _mGCAtdnI() {
    return {
        theme: 'theme-aurora-glass',
        primaryColor: '#00A0FF',
        particleColor: '#FFFFFF',
        useResolvedDomains: false,
        resolvedDomains: '',
        sampleSize: 150,
        topN: 10,
        rttRandomMin: 79,
        rttRandomMax: 179,
        _cjDlkyii: '',
        api: {
            _wonlxsxx: true,
            _lvrOUAjH: '维护中...',
        },
        ispFilter: { _wonlxsxx: true },
        geoLocation: {
            retries: 1,
            filterUnknown: false,
        },
        streamer: {
            _wonlxsxx: true
        },
        websocketStreamer: {
            _wonlxsxx: true,
            _CZNFhloE: 'https://snippets.neib.cn'
        },
        cloudStorage: {
            _wonlxsxx: true
        },
        visitorPassword: {
            _wonlxsxx: false,
            _OFRTrClC: '',
        },
        customSubPath: {
            _wonlxsxx: false,
            _IFuIYdZv: 'latest',
        },
        subscriptionId: {
            _PZrIbJok: 8,
            _zYvaPzUK: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
        },
        itemLink: {
            _wonlxsxx: true,
            template: 'vless://{_yfeWinCP}@{_SBZQozuN}:{_xmwLFUDv}?encryption=none&security=tls&sni={_NsYqtUkv}&fp=random&_oasJaeFo=ws&_NsYqtUkv={_NsYqtUkv}&_IFuIYdZv={_IFuIYdZv}#{_POYWeYWk}',
            selectionMode: 'first',
            _llgiCtvs: [
                { _POYWeYWk: '默认配置', _NsYqtUkv: '', '_yfeWinCP': '3b4d4cd8-cb92-4421-bf86-fb51570fc038', _IFuIYdZv: '/?ed=2560' }
            ],
            _IHWGcyvd: [],
        },
        dataFeeds: {
            universalFallbackAddress: '',
        },
        announcement: {
            popup: {
                _wonlxsxx: false,
                _cSCwgILF: '',
                _hdwCeStK: 5
            },
            marquee: {
                _wonlxsxx: false,
                _cSCwgILF: ''
            }
        },
        subscriptionUrl: {
            prefixEnabled: false,
            prefixUrl: '',
            suffixEnabled: false,
            suffixUrl: ''
        },
        fineGrained: {
            _wonlxsxx: true,
            sources: [
                { _WbAofRnc: 'CF官方IPV4', _XIOkpPjt: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV4', _zydfLqDP: false, _wonlxsxx: true, _ITXKZsmp: 20 },
                { _WbAofRnc: 'CF官方IPV6', _XIOkpPjt: 'https://raw.githubusercontent.com/5yfx/CF_WEB_IP_Worekrs/refs/heads/main/IPV6', _zydfLqDP: false, _wonlxsxx: true, _ITXKZsmp: 20 },
                { _WbAofRnc: '反代优选0', _XIOkpPjt: 'https://wvs.sosorg.nyc.mn/sub?_yfeWinCP=adb14576-6588-40da-99fd-b9894cd779b0&encryption=none&security=tls&sni=ss.nzvrn.com&_oasJaeFo=ws&_NsYqtUkv=ss.nzvrn.com&_IFuIYdZv=%2Fsnippets%3Fip%3DendpointAddress%3Aport%28443%29%26nat64%3D6to4', _zydfLqDP: false, _wonlxsxx: true, _ITXKZsmp: 30 },
                { _WbAofRnc: '官方优选1', _XIOkpPjt: 'https://ipdb.api.030101.xyz/?_oasJaeFo=bestcf&_hjROjVXu=true', _zydfLqDP: false, _wonlxsxx: true, _ITXKZsmp: 10 },
                { _WbAofRnc: '反代优选2', _XIOkpPjt: 'https://ipdb.api.030101.xyz/?_oasJaeFo=bestproxy&_hjROjVXu=true', _zydfLqDP: false, _wonlxsxx: true, _ITXKZsmp: 5 },
                { _WbAofRnc: '官方优选2', _XIOkpPjt: 'https://addressesapi.090227.xyz/_SBZQozuN.164746.xyz', _zydfLqDP: false, _wonlxsxx: true, _ITXKZsmp: 10 },
				{ _WbAofRnc: '官方优选3', _XIOkpPjt: 'https://cfxr.eu.org/getSub?_NsYqtUkv=snipaste.huggy.qzz.io', _zydfLqDP: false, _wonlxsxx: true, _ITXKZsmp: 5 },
                { _WbAofRnc: '官方优选4', _XIOkpPjt: 'https://addressesapi.090227.xyz/CloudFlareYes', _zydfLqDP: false, _wonlxsxx: true, _ITXKZsmp: 10 }
            ]
        },
        customNodes: {
            _wonlxsxx: 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 _eYKatNJP(_PmfvtCNg, _xqryOHIR) {
    if (!_PmfvtCNg) return _xqryOHIR;
    const _MzDQjqqn = { ..._xqryOHIR };
    for (const _jxKrjzxN in _xqryOHIR) {
        if (_PmfvtCNg.hasOwnProperty(_jxKrjzxN)) {
             if (typeof _PmfvtCNg[_jxKrjzxN] === 'object' && _PmfvtCNg[_jxKrjzxN] !== null && !Array.isArray(_PmfvtCNg[_jxKrjzxN]) && typeof _xqryOHIR[_jxKrjzxN] === 'object' && _xqryOHIR[_jxKrjzxN] !== null && !Array.isArray(_xqryOHIR[_jxKrjzxN])) {
                _MzDQjqqn[_jxKrjzxN] = _eYKatNJP(_PmfvtCNg[_jxKrjzxN], _xqryOHIR[_jxKrjzxN]);
            } else {
                _MzDQjqqn[_jxKrjzxN] = _PmfvtCNg[_jxKrjzxN];
            }
        }
    }
    return _MzDQjqqn;
}

async function _ZukWnOHh(_XNxvusCC) {
    try {
        const _MbnPtQjl = _XNxvusCC.DB.prepare("SELECT _UERXfQIA FROM kv_data WHERE _jxKrjzxN = ?").bind(_DmzZIyqm);
        const { _TqpEJcTu } = await _MbnPtQjl.all();
        const _xgZkYtWH = _TqpEJcTu._PZrIbJok > 0 ? _TqpEJcTu[0]._UERXfQIA : null;
        const _ImKuoWpK = _xgZkYtWH ? JSON.parse(_xgZkYtWH) : {};
        return _eYKatNJP(_ImKuoWpK, _mGCAtdnI());
    } catch (_XDHRyYUc) {
        console.error("无法从D1获取或解析全局配置:", _XDHRyYUc);
        return _mGCAtdnI();
    }
}

async function _BTZPSZAF(_XNxvusCC) {
    const _SIhYDjku = await _ZukWnOHh(_XNxvusCC);
    return _RkaQVBQQ(_SIhYDjku);
}

async function _HUhZsceA(_NsbhLhQq, _XNxvusCC, _DaBmbqHm) {
    try {
        const { _SIhYDjku, adminPassword } = await _NsbhLhQq.json();
        const _JfnSIpPL = await _VQtOIxHU(_XNxvusCC);
        if (_JfnSIpPL !== adminPassword) {
            return _RkaQVBQQ({ success: false, _lvrOUAjH: "管理员密码错误" }, 403);
        }
        const _MbnPtQjl = _XNxvusCC.DB.prepare(
          "INSERT INTO kv_data (_jxKrjzxN, _UERXfQIA) VALUES (?, ?) ON CONFLICT(_jxKrjzxN) DO UPDATE SET _UERXfQIA = excluded._UERXfQIA"
        );
        const _ipjBaRvv = _MbnPtQjl.bind(_DmzZIyqm, JSON.stringify(_SIhYDjku)).run();
        _DaBmbqHm.waitUntil(_ipjBaRvv);
        return _RkaQVBQQ({ success: true, _lvrOUAjH: "配置已成功保存!" });
    } catch (_XDHRyYUc) {
        return _RkaQVBQQ({ success: false, _lvrOUAjH: `保存失败: ${_XDHRyYUc._lvrOUAjH}` }, 500);
    }
}

async function _GODbUGIr() {
    const _rzZDqKhj = 'https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN';
    try {
        const _iVZKSLTW = await fetch(_rzZDqKhj);
        const _qJTAlQLh = await _iVZKSLTW.json();
        const _zkhCtSsb = 'https://www.bing.com' + _qJTAlQLh.images[0]._CZNFhloE;
        return fetch(_zkhCtSsb);
    } catch (_XDHRyYUc) {
        return new Response('获取壁纸失败', { status: 502 });
    }
}

async function _wjNChsjq(_SBZQozuN) {
    try {
        const _AWDKjORI = await fetch(`http://_SBZQozuN-api.com/json/${_SBZQozuN}?fields=status,_hjROjVXu,countryCode,_QRIzmWOJ&lang=zh-CN`);
        if (_AWDKjORI.ok) {
            const _cdYvZwue = await _AWDKjORI.json();
            if (_cdYvZwue.status === 'success' && (_cdYvZwue.countryCode || _cdYvZwue._hjROjVXu)) {
                let _QRIzmWOJ = _cdYvZwue._QRIzmWOJ || '未知';
                if (_QRIzmWOJ.toLowerCase().includes('cloudflare')) {
                    _QRIzmWOJ = 'CloudFlare';
                }
                return {
                    _WbAofRnc: _MnlveRKS[_cdYvZwue.countryCode] || _cdYvZwue._hjROjVXu || _cdYvZwue.countryCode,
                    _QRIzmWOJ: _QRIzmWOJ
                };
            }
        }
    } catch (_XDHRyYUc) {}

    try {
        const _AWDKjORI = await fetch(`https://api._SBZQozuN.sb/geoip/${_SBZQozuN}`);
        if (_AWDKjORI.ok) {
            const _cdYvZwue = await _AWDKjORI.json();
            if (_cdYvZwue.country_code || _cdYvZwue._hjROjVXu) {
                let _QRIzmWOJ = _cdYvZwue._QRIzmWOJ || '未知';
                if (_QRIzmWOJ.toLowerCase().includes('cloudflare')) {
                    _QRIzmWOJ = 'CloudFlare';
                }
                return {
                    _WbAofRnc: _MnlveRKS[_cdYvZwue.country_code] || _cdYvZwue._hjROjVXu || _cdYvZwue.country_code,
                    _QRIzmWOJ: _QRIzmWOJ
                };
            }
        }
    } catch (_XDHRyYUc) {}
    
    return { _WbAofRnc: '未知', _QRIzmWOJ: '未知' };
}

async function _SXNnxObV(_NsbhLhQq, _XNxvusCC) {
    try {
        const { _XIOkpPjt } = await _NsbhLhQq.json();
        if (!Array.isArray(_XIOkpPjt)) {
            return _RkaQVBQQ({ error: "输入无效,需要一个IP数组。" }, 400);
        }
        const _CCLSnqku = _XIOkpPjt.map(_SBZQozuN => _wjNChsjq(_SBZQozuN).then(_wVwmCxEU => ({ _SBZQozuN, ..._wVwmCxEU })));
        const _TqpEJcTu = await Promise.all(_CCLSnqku);
        return _RkaQVBQQ(_TqpEJcTu);
    } catch (_XDHRyYUc) {
        return _RkaQVBQQ({ error: `获取地理位置失败: ${_XDHRyYUc._lvrOUAjH}` }, 500);
    }
}

async function _fxqgOrrT(_NsbhLhQq, _XNxvusCC) {
    const _SIhYDjku = await _ZukWnOHh(_XNxvusCC);
    if (!_SIhYDjku.cloudStorage._wonlxsxx) {
        return _RkaQVBQQ({ _TqpEJcTu: [], generatedBy: null });
    }
    try {
        const _MbnPtQjl = _XNxvusCC.DB.prepare("SELECT _UERXfQIA FROM kv_data WHERE _jxKrjzxN = ?").bind(_jLXlaLrt);
        const { _TqpEJcTu } = await _MbnPtQjl.all();
        const _GqYtsrdg = _TqpEJcTu._PZrIbJok > 0 ? _TqpEJcTu[0]._UERXfQIA : null;
        const _zYvcxPju = _GqYtsrdg ? JSON.parse(_GqYtsrdg) : null;
        return _RkaQVBQQ(_zYvcxPju || { _TqpEJcTu: [], generatedBy: null });
    } catch (_XDHRyYUc) {
        console.error("从D1读取缓存IP失败:", _XDHRyYUc);
        return _RkaQVBQQ({ _TqpEJcTu: [], generatedBy: null });
    }
}

async function _HZcsvwKW(_NsbhLhQq, _XNxvusCC, _DaBmbqHm) {
    const _SIhYDjku = await _ZukWnOHh(_XNxvusCC);
    if (!_SIhYDjku.cloudStorage._wonlxsxx) {
        return _RkaQVBQQ({ success: true, _lvrOUAjH: "云端存储已禁用,不保存结果。" });
    }
    const _zTvbmdYv = _NsbhLhQq._KtriKcqx.get('CF-Connecting-IP') || "未知IP";
    const _hjROjVXu = _NsbhLhQq.cf?._hjROjVXu || "未知";
    const _TeDupfqr = _NsbhLhQq.cf?._TeDupfqr || "";
    let _ZtXnVclm = _MnlveRKS[_hjROjVXu] || _hjROjVXu;
    if (_TeDupfqr && _TeDupfqr !== "未知城市" && _TeDupfqr !== _hjROjVXu) _ZtXnVclm = `${_ZtXnVclm} ${_MnlveRKS[_TeDupfqr] || _TeDupfqr}`;
    const _KsrlsVjt = {
        _SBZQozuN: _wyfLwPxo(_zTvbmdYv),
        _WbAofRnc: _ZtXnVclm.trim(),
        time: _wKDCybkf()
    };
    try {
        const _tJinDhWm = await _NsbhLhQq.json();
        if (!Array.isArray(_tJinDhWm)) return _RkaQVBQQ({ error: "无效数据格式" }, 400);
        const _wbhrJeLB = _tJinDhWm.map(_yXEJunSJ => ({
            _SBZQozuN: String(_yXEJunSJ._SBZQozuN || ''),
            _xmwLFUDv: _yXEJunSJ._xmwLFUDv ? parseInt(_yXEJunSJ._xmwLFUDv, 10) : undefined,
            _hPNWAmuZ: parseInt(_yXEJunSJ._hPNWAmuZ, 10),
            _WbAofRnc: typeof _yXEJunSJ._WbAofRnc === 'string' ? _yXEJunSJ._WbAofRnc.substring(0, 50) : 'N/A',
            _QRIzmWOJ: typeof _yXEJunSJ._QRIzmWOJ === 'string' ? _yXEJunSJ._QRIzmWOJ.substring(0, 100) : 'N/A'
        }));
        const _BhkhIVtx = {
            generatedBy: _KsrlsVjt,
            _TqpEJcTu: _wbhrJeLB
        };
        const _PwMCnrrj = _XNxvusCC.DB.prepare(
          "INSERT INTO kv_data (_jxKrjzxN, _UERXfQIA) VALUES (?, ?) ON CONFLICT(_jxKrjzxN) DO UPDATE SET _UERXfQIA = excluded._UERXfQIA"
        ).bind(_jLXlaLrt, JSON.stringify(_BhkhIVtx)).run();
        if (_SIhYDjku.telegram.bot_token && _SIhYDjku.telegram.chat_id) {
            const _BFLmHujx = _wbhrJeLB.map(r => `${r._SBZQozuN} ~ ${r._WbAofRnc}`).join('\n');
            const _DsRrUZnP = `优选完成!\n来源: ${_KsrlsVjt._SBZQozuN} (${_KsrlsVjt._WbAofRnc})\n时间: ${_KsrlsVjt.time}\n\n结果:\n${_BFLmHujx}`;
            const _lHbPSuXK = `https://api.telegram.org/bot${_SIhYDjku.telegram.bot_token}/sendMessage?chat_id=${_SIhYDjku.telegram.chat_id}&_cSCwgILF=${encodeURIComponent(_DsRrUZnP)}`;
            const _IiBmNUde = fetch(_lHbPSuXK).catch(_XDHRyYUc => console.error("Telegram结果通知失败:", _XDHRyYUc));
            _DaBmbqHm.waitUntil(Promise.all([_PwMCnrrj, _IiBmNUde]));
        } else {
             _DaBmbqHm.waitUntil(_PwMCnrrj);
        }
        return _RkaQVBQQ({ success: true, _lvrOUAjH: "结果已保存" });
    } catch (_XDHRyYUc) {
        return _RkaQVBQQ({ error: "D1写入失败", _lvrOUAjH: _XDHRyYUc._lvrOUAjH }, 500);
    }
}

async function _lpGJbzXS(_NsbhLhQq, _XNxvusCC, _DaBmbqHm) {
    try {
        const _ooiAoGzF = await _NsbhLhQq.json();
        if (!Array.isArray(_ooiAoGzF)) return _RkaQVBQQ({ error: "无效数据格式" }, 400);
        const _BhkhIVtx = {
            _TqpEJcTu: _ooiAoGzF
        };
        const _MbnPtQjl = _XNxvusCC.DB.prepare(
          "INSERT INTO kv_data (_jxKrjzxN, _UERXfQIA) VALUES (?, ?) ON CONFLICT(_jxKrjzxN) DO UPDATE SET _UERXfQIA = excluded._UERXfQIA"
        );
        const _ipjBaRvv = _MbnPtQjl.bind(_tDNOszxK, JSON.stringify(_BhkhIVtx)).run();
        _DaBmbqHm.waitUntil(_ipjBaRvv);
        return _RkaQVBQQ({ success: true });
    } catch (_XDHRyYUc) {
        return _RkaQVBQQ({ error: "D1写入临时缓存失败", _lvrOUAjH: _XDHRyYUc._lvrOUAjH }, 500);
    }
}

function _FNXmrJaZ(_PZrIbJok, _zYvaPzUK) {
    let _YMMuIrxp = '';
    const _UXjzyucH = _zYvaPzUK._PZrIbJok;
    for (let _FvKzyPek = 0; _FvKzyPek < _PZrIbJok; _FvKzyPek++) {
        _YMMuIrxp += _zYvaPzUK.charAt(Math.floor(Math.random() * _UXjzyucH));
    }
    return _YMMuIrxp;
}

async function _beLoHeJg(_NsbhLhQq, _XNxvusCC) {
    try {
        const _tJinDhWm = await _NsbhLhQq.json();
        if (!Array.isArray(_tJinDhWm) || _tJinDhWm._PZrIbJok === 0) {
            return _RkaQVBQQ({ error: "无效或空的IP列表" }, 400);
        }

        const _SIhYDjku = await _ZukWnOHh(_XNxvusCC);
        const _fxpLShLY = _SIhYDjku.subscriptionId || { _PZrIbJok: 8, _zYvaPzUK: 'abcdefghijklmnopqrstuvwxyz0123456789' };

        let _uNwNEyva;
        let _JWCFszqh = false;
        let _awYaeKpu = 0;
        const _BNLaOjiJ = 10;

        while (!_JWCFszqh && _awYaeKpu < _BNLaOjiJ) {
            _uNwNEyva = _FNXmrJaZ(_fxpLShLY._PZrIbJok, _fxpLShLY._zYvaPzUK);
            const { _TqpEJcTu } = await _XNxvusCC.DB.prepare("SELECT _CJEEJhVe FROM optimized_results WHERE _CJEEJhVe = ?").bind(_uNwNEyva).all();
            if (_TqpEJcTu._PZrIbJok === 0) {
                _JWCFszqh = true;
            }
            _awYaeKpu++;
        }

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

        const _KXjRTfWB = JSON.stringify({ _XIOkpPjt: _tJinDhWm });
        await _XNxvusCC.DB.prepare(
            "INSERT INTO optimized_results (_CJEEJhVe, _cdYvZwue) VALUES (?, ?)"
        ).bind(_uNwNEyva, _KXjRTfWB).run();
        await _XNxvusCC.DB.prepare(
            "INSERT INTO kv_data (_jxKrjzxN, _UERXfQIA) VALUES (?, ?) ON CONFLICT(_jxKrjzxN) DO UPDATE SET _UERXfQIA = excluded._UERXfQIA"
        ).bind(_ZlZibYTS, _uNwNEyva).run();
            
        return _RkaQVBQQ({ success: true, _CJEEJhVe: _uNwNEyva });
    } catch (_XDHRyYUc) {
        return _RkaQVBQQ({ error: "保存优选结果失败", _lvrOUAjH: _XDHRyYUc._lvrOUAjH }, 500);
    }
}

async function _InukFzBE(_NsbhLhQq, _XNxvusCC) {
    try {
        const _uNwNEyva = _NsbhLhQq._XuLzSizT._CJEEJhVe;
        if (!_uNwNEyva) {
            return new Response("缺少结果ID", { status: 400 });
        }
        const _YMMuIrxp = await _XNxvusCC.DB.prepare("SELECT _cdYvZwue FROM optimized_results WHERE _CJEEJhVe = ?").bind(_uNwNEyva).first();
        if (!_YMMuIrxp) {
            return new Response("未找到对应的优选结果", { status: 404 });
        }
        const _cdYvZwue = JSON.parse(_YMMuIrxp._cdYvZwue);
        let _BFLmHujx = _cdYvZwue._XIOkpPjt;

        const _SIhYDjku = await _ZukWnOHh(_XNxvusCC);

        if (_SIhYDjku.customNodes && _SIhYDjku.customNodes._wonlxsxx && _SIhYDjku.customNodes.list) {
            const _SEZiSmsr = _SIhYDjku.customNodes.list.trim().split(/\s+/).filter(Boolean);
            const _eygfNorI = _SEZiSmsr.map(_grEnblCz => {
                let _WUBFWmuf = _grEnblCz;
                let _xmwLFUDv = undefined;
                let _POYWeYWk = null;

                if (_WUBFWmuf.includes('@')) {
                    const _pXjsscua = _WUBFWmuf.split('@');
                    _POYWeYWk = _pXjsscua.pop();
                    _WUBFWmuf = _pXjsscua.join('@');
                }

                if (_WUBFWmuf.includes('#')) {
                    const _pXjsscua = _WUBFWmuf.split('#');
                    const _xMqtjLLk = _pXjsscua.pop();
                    if (!isNaN(_xMqtjLLk) && _xMqtjLLk.trim() !== '') {
                        _xmwLFUDv = parseInt(_xMqtjLLk, 10);
                    }
                    _WUBFWmuf = _pXjsscua.join('#');
                }
                
                return {
                    _SBZQozuN: _WUBFWmuf,
                    _xmwLFUDv: _xmwLFUDv,
                    _WbAofRnc: _POYWeYWk || _WUBFWmuf,
                    _QRIzmWOJ: '自定义'
                };
            });
            _BFLmHujx.unshift(..._eygfNorI);
        }
        
        const { itemLink } = _SIhYDjku;
        const _plPxybMc = new URL(_NsbhLhQq._CZNFhloE)._WNxLpWwg;
        let _gonvJTZg;

        if (_SIhYDjku.websocketStreamer && _SIhYDjku.websocketStreamer._wonlxsxx) {
            if (!itemLink || !itemLink._wonlxsxx || !itemLink._llgiCtvs || itemLink._llgiCtvs._PZrIbJok === 0) {
                return new Response("节点链接参数未配置或未启用 (反代模式)", { status: 500 });
            }
            _gonvJTZg = _BFLmHujx.map((_yXEJunSJ, _zhxfSRNE) => {
                let _POYWeYWk;
                if (_yXEJunSJ._QRIzmWOJ === '自定义') {
                     _POYWeYWk = `${_zhxfSRNE + 1} - ${_yXEJunSJ._WbAofRnc}`;
                } else {
                    _POYWeYWk = `${_zhxfSRNE + 1} - ${_yXEJunSJ._WbAofRnc || '未知'}`;
                    if (!_yXEJunSJ._QRIzmWOJ || !_yXEJunSJ._QRIzmWOJ.toLowerCase().includes('cloudflare')) {
                        _POYWeYWk += '(反代)';
                    }
                }
                const _HbnPpVBP = _LSVbzExQ.isIPv6(_yXEJunSJ._SBZQozuN) ? `[${_yXEJunSJ._SBZQozuN}]` : _yXEJunSJ._SBZQozuN;
                const _xmwLFUDv = _yXEJunSJ._xmwLFUDv || 443;
                const _kyaBYHsi = itemLink._llgiCtvs[0];
                const _DkKyJKvf = _kyaBYHsi._yfeWinCP || '';
                const _yfeWinCP = (_DkKyJKvf && _MeyHEpCI(_DkKyJKvf)) ? _DkKyJKvf : crypto.randomUUID();
                const _IFuIYdZv = '/snippets?_SBZQozuN=endpointAddress:_xmwLFUDv(443)&nat64=6to4';
                const _NsYqtUkv = _kyaBYHsi._NsYqtUkv || _plPxybMc;

                const _XuLzSizT = new URLSearchParams({
                    security: 'tls',
                    _oasJaeFo: 'ws',
                    _NsYqtUkv: _NsYqtUkv,
                    sni: _NsYqtUkv,
                    fp: 'random'
                });
                return `vless://${_yfeWinCP}@${_HbnPpVBP}:${_xmwLFUDv}?${_XuLzSizT.toString()}&_IFuIYdZv=${encodeURIComponent(encodeURIComponent(_IFuIYdZv))}#${encodeURIComponent(_POYWeYWk)}`;
            });

        } else {
            if (!itemLink || !itemLink._wonlxsxx || !itemLink._llgiCtvs || itemLink._llgiCtvs._PZrIbJok === 0) {
                return new Response("节点链接参数未配置或未启用", { status: 500 });
            }
            const _kyaBYHsi = itemLink._llgiCtvs[0];
            const { _NsYqtUkv, _yfeWinCP, _IFuIYdZv } = _kyaBYHsi;
            _gonvJTZg = _BFLmHujx.map((_yXEJunSJ, _zhxfSRNE) => {
                let _POYWeYWk;
                if (_yXEJunSJ._QRIzmWOJ === '自定义') {
                     _POYWeYWk = `${_zhxfSRNE + 1} - ${_yXEJunSJ._WbAofRnc}`;
                } else {
                    _POYWeYWk = `${_zhxfSRNE + 1} - ${_yXEJunSJ._WbAofRnc || '未知'}`;
                    if (!_yXEJunSJ._QRIzmWOJ || !_yXEJunSJ._QRIzmWOJ.toLowerCase().includes('cloudflare')) {
                        _POYWeYWk += '(反代)';
                    }
                }
                const _HbnPpVBP = _LSVbzExQ.isIPv6(_yXEJunSJ._SBZQozuN) ? `[${_yXEJunSJ._SBZQozuN}]` : _yXEJunSJ._SBZQozuN;
                const _xmwLFUDv = _yXEJunSJ._xmwLFUDv || 443;
                const _XuLzSizT = new URLSearchParams({
                    security: 'tls',
                    _oasJaeFo: 'ws',
                    _NsYqtUkv: _NsYqtUkv || _plPxybMc,
                    sni: _NsYqtUkv || _plPxybMc,
                    fp: 'random'
                });
                return `vless://${_yfeWinCP}@${_HbnPpVBP}:${_xmwLFUDv}?${_XuLzSizT.toString()}&_IFuIYdZv=${encodeURIComponent(encodeURIComponent(_IFuIYdZv || ''))}#${encodeURIComponent(_POYWeYWk)}`;
            });
        }
        
        const _wFKSBMtA = _gonvJTZg.join('\n');
        const _LEpmpMxZ = btoa(_wFKSBMtA);
        return new Response(_LEpmpMxZ, {
            _KtriKcqx: { 'Content-Type': '_cSCwgILF/plain; _zYvaPzUK=utf-8' }
        });

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

async function _ZuGUvyOd(_NsbhLhQq) {
    try {
        const { _liebYLMH, _oasJaeFo } = await _NsbhLhQq.json();
        if (!Array.isArray(_liebYLMH)) {
            return new Response('Invalid _liebYLMH list', { status: 400 });
        }
        const _jWBcmJXg = _liebYLMH.map(domain => {
            if (!domain.trim()) return Promise.resolve([]);
            const _CZNFhloE = `https://cloudflare-dns.com/dns-query?_POYWeYWk=${encodeURIComponent(domain.trim())}&_oasJaeFo=${_oasJaeFo || 'A'}`;
            return fetch(_CZNFhloE, { _KtriKcqx: { 'Accept': 'application/dns-json' } })
                .then(_AWDKjORI => _AWDKjORI.json())
                .then(_cdYvZwue => (_cdYvZwue.Answer ? _cdYvZwue.Answer.map(a => a._cdYvZwue) : []))
                .catch(() => []);
        });
        const _AtZNRCOd = (await Promise.all(_jWBcmJXg)).flat();
        const _ifxMbkhX = [...new Set(_AtZNRCOd)];
        if (_ifxMbkhX._PZrIbJok === 0) {
            return new Response('无法从域名解析出任何IP。', { status: 500 });
        }
        return new Response(_ifxMbkhX.join('\n'), { _KtriKcqx: { 'Content-Type': '_cSCwgILF/plain; _zYvaPzUK=utf-8' } });
    } catch (err) {
        return new Response(`域名解析错误: ${err._lvrOUAjH}`, { status: 500 });
    }
}

async function _pmmnjYqd(_NsbhLhQq, _XNxvusCC) {
  try {
      const { _JbeyyeVp } = await _NsbhLhQq.json();
      if (!Array.isArray(_JbeyyeVp)) {
          return _RkaQVBQQ({ error: "Invalid input, expected an object with a '_JbeyyeVp' array." }, 400);
      }
      
      const _iqofYCKu = new Set();
      
      const _bCOwvwBF = _JbeyyeVp.map(_CZNFhloE =>
          _mRwtNEDw(_CZNFhloE)
              .then(_cSCwgILF => {
                  if (!_cSCwgILF) return;
                  const _owyhIxwJ = _cSCwgILF.split(/[\s,;|]+/);
                  for (const _svESWOqb of _owyhIxwJ) {
                      const _HlLydRBK = _svESWOqb.trim();
                      if (_HlLydRBK) {
                          _iqofYCKu.add(_HlLydRBK);
                      }
                  }
              })
              .catch(err => {
                  console.error(`Error processing URL ${_CZNFhloE}:`, err);
              })
      );
      await Promise.all(_bCOwvwBF);
      return _RkaQVBQQ({ _XIOkpPjt: Array.from(_iqofYCKu) });
  } catch (_XDHRyYUc) {
      return _RkaQVBQQ({ error: `Failed to process URLs: ${_XDHRyYUc._lvrOUAjH}` }, 500);
  }
}

async function _rVHuezJj(_NsbhLhQq, _XNxvusCC) {
    const _SIhYDjku = await _ZukWnOHh(_XNxvusCC);
    if (!_SIhYDjku.api._wonlxsxx) {
        return new Response(_SIhYDjku.api._lvrOUAjH || 'API is disabled.', { status: 503 });
    }
    try {
        const _MbnPtQjl = _XNxvusCC.DB.prepare("SELECT _UERXfQIA FROM kv_data WHERE _jxKrjzxN = ?").bind(_jLXlaLrt);
        const { _TqpEJcTu: dbResults } = await _MbnPtQjl.all();
        const _GqYtsrdg = dbResults._PZrIbJok > 0 ? dbResults[0]._UERXfQIA : null;
        const _zYvcxPju = _GqYtsrdg ? JSON.parse(_GqYtsrdg) : null;
        if (!_zYvcxPju || !_zYvcxPju._TqpEJcTu || _zYvcxPju._TqpEJcTu._PZrIbJok === 0) {
            return new Response("上次优选结果为空。", {
                status: 404,
                _KtriKcqx: { 'Content-Type': '_cSCwgILF/plain; _zYvaPzUK=utf-8' },
            });
        }
        const _XIOkpPjt = _zYvcxPju._TqpEJcTu.map(r => r._SBZQozuN);
        return new Response(_XIOkpPjt.join('\n'), {
            _KtriKcqx: { 'Content-Type': '_cSCwgILF/plain; _zYvaPzUK=utf-8' },
        });
    } catch (_XDHRyYUc) {
        console.error("API /_SBZQozuN 处理错误:", _XDHRyYUc);
        return new Response(`API处理时出错: ${_XDHRyYUc._lvrOUAjH}`, { status: 500 });
    }
}

function _NrTHABKl(_YMMuIrxp, _zhxfSRNE, _SIhYDjku, _plPxybMc) {
    const { itemLink } = _SIhYDjku;
    if (!itemLink || !itemLink._wonlxsxx) return null;
    const { template, _llgiCtvs, selectionMode, _IHWGcyvd } = itemLink;
    if (!_llgiCtvs || _llgiCtvs._PZrIbJok === 0) return null;

    let _HtpBTesu;
    if (selectionMode === 'random') {
        _HtpBTesu = _llgiCtvs[_zhxfSRNE % _llgiCtvs._PZrIbJok];
    } else if (selectionMode === 'first') {
        _HtpBTesu = _llgiCtvs[0];
    } else {
        _HtpBTesu = _llgiCtvs.find(s => s._POYWeYWk === selectionMode) || _llgiCtvs[0];
    }
    if (!_HtpBTesu) return null;

    let _fGYYMufm = template;
    const _HcjqBiZW = _YMMuIrxp._xmwLFUDv || 443;
    const _DXVwAkXJ = _LSVbzExQ.isIPv6(_YMMuIrxp._SBZQozuN) ? `[${_YMMuIrxp._SBZQozuN}]` : _YMMuIrxp._SBZQozuN;
    let _POYWeYWk = `${_zhxfSRNE + 1} 、 ${_YMMuIrxp._WbAofRnc || '未知'}`;
    if (!_YMMuIrxp._QRIzmWOJ || !_YMMuIrxp._QRIzmWOJ.toLowerCase().includes('cloudflare')) {
        _POYWeYWk += '(反代)';
    }
    let _NsYqtUkv = _HtpBTesu._NsYqtUkv || _plPxybMc;

    _fGYYMufm = _fGYYMufm.replace(/{_SBZQozuN}/g, _DXVwAkXJ)
               .replace(/{_xmwLFUDv}/g, _HcjqBiZW)
               .replace(/{_POYWeYWk}/g, encodeURIComponent(_POYWeYWk))
               .replace(/{rank}/g, _zhxfSRNE + 1)
               .replace(/{_WbAofRnc}/g, encodeURIComponent(_YMMuIrxp._WbAofRnc || '未知'))
               .replace(/{_QRIzmWOJ}/g, encodeURIComponent(_YMMuIrxp._QRIzmWOJ || '未知'))
               .replace(/{_NsYqtUkv}/g, encodeURIComponent(_NsYqtUkv))
               .replace(/{_yfeWinCP}/g, encodeURIComponent(_HtpBTesu['_yfeWinCP'] || ''))
               .replace(/{_IFuIYdZv}/g, encodeURIComponent(encodeURIComponent(_HtpBTesu._IFuIYdZv || '')));

    if (_IHWGcyvd) {
        _IHWGcyvd.forEach(field => {
            const _OavIpmLs = new RegExp('{' + field._POYWeYWk + '}', 'g');
            _fGYYMufm = _fGYYMufm.replace(_OavIpmLs, encodeURIComponent(field._UERXfQIA));
        });
    }
    return _fGYYMufm;
}

async function _iXCJaeGo(_NsbhLhQq, _XNxvusCC) {
    const _SIhYDjku = await _ZukWnOHh(_XNxvusCC);
    if (!_SIhYDjku.itemLink._wonlxsxx) {
        return new Response("Item _fGYYMufm feature is disabled.", { status: 503, _KtriKcqx: { 'Content-Type': '_cSCwgILF/plain; _zYvaPzUK=utf-8' } });
    }

    try {
        const _MbnPtQjl = _XNxvusCC.DB.prepare("SELECT _UERXfQIA FROM kv_data WHERE _jxKrjzxN = ?").bind(_jLXlaLrt);
        const { _TqpEJcTu: dbResults } = await _MbnPtQjl.all();
        const _GqYtsrdg = dbResults._PZrIbJok > 0 ? dbResults[0]._UERXfQIA : null;
        const _zYvcxPju = _GqYtsrdg ? JSON.parse(_GqYtsrdg) : null;
        
        if (!_zYvcxPju || !_zYvcxPju._TqpEJcTu || _zYvcxPju._TqpEJcTu._PZrIbJok === 0) {
            return new Response("No optimized IPs available to generate endpoints.", {
                status: 404,
                _KtriKcqx: { 'Content-Type': '_cSCwgILF/plain; _zYvaPzUK=utf-8' },
            });
        }
        
        const _plPxybMc = new URL(_NsbhLhQq._CZNFhloE)._WNxLpWwg;

        const _JBCpThte = _zYvcxPju._TqpEJcTu.map((_YMMuIrxp, _zhxfSRNE) => {
            return _NrTHABKl(_YMMuIrxp, _zhxfSRNE, _SIhYDjku, _plPxybMc);
        }).filter(Boolean);

        if (_JBCpThte._PZrIbJok === 0) {
            return new Response("Could not generate any _yXEJunSJ links from the available IPs.", {
                status: 500,
                _KtriKcqx: { 'Content-Type': '_cSCwgILF/plain; _zYvaPzUK=utf-8' },
            });
        }

        return new Response(_JBCpThte.join('\n'), {
            _KtriKcqx: { 'Content-Type': '_cSCwgILF/plain; _zYvaPzUK=utf-8' },
        });

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

async function _oIrnYgaB(_NsbhLhQq, _XNxvusCC, _DaBmbqHm) {
    const _zTvbmdYv = _NsbhLhQq._KtriKcqx.get('CF-Connecting-IP') || "未知IP";
    const [
        _IdjSbFwJ,
        _BPeNVEbX,
        defaultDomains,
        fetchedCountryMap
    ] = await Promise.all([
        _MImuRoRI(_FnbzKEKt, _tmWesDib, []),
        _MImuRoRI(_pQMyrqhT, _tmWesDib, []),
        _MImuRoRI(_vWibskOC, _NOsMQsWO, []),
        _MImuRoRI(_RGgJJWUC, _ubbtMpyT, { "N/A": "未知" })
    ]);
    _MnlveRKS = fetchedCountryMap;
    let _fcsZCsQg = false;
    let _rMwNolcw;
    try {
        const _OFRTrClC = await _VQtOIxHU(_XNxvusCC);
        _fcsZCsQg = !!_OFRTrClC;
        _rMwNolcw = await _ZukWnOHh(_XNxvusCC);
    } catch (_XDHRyYUc) {
        if (_XDHRyYUc._lvrOUAjH && _XDHRyYUc._lvrOUAjH.includes('no such table')) {
            console.log("检测到 'kv_data' 表不存在,正在自动创建...");
            try {
                const _QKyICLUe = "CREATE TABLE IF NOT EXISTS kv_data (_jxKrjzxN TEXT PRIMARY KEY, _UERXfQIA TEXT); CREATE TABLE IF NOT EXISTS optimized_results (_CJEEJhVe TEXT PRIMARY KEY, _cdYvZwue TEXT, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);";
                await _XNxvusCC.DB.exec(_QKyICLUe);
                console.log("数据表创建成功。");
                _fcsZCsQg = false;
                _rMwNolcw = _mGCAtdnI();
            } catch (dbError) {
                console.error("自动创建数据表失败:", dbError);
                return new Response(`数据库初始化失败: ${dbError._lvrOUAjH}`, {
                    status: 500,
                    _KtriKcqx: { 'Content-Type': '_cSCwgILF/html;_zYvaPzUK=UTF-8' }
                });
            }
        } else {
             let _bWyvwgLR = _jVChRqEL(_XDHRyYUc._lvrOUAjH);
             return new Response(_bWyvwgLR, { _KtriKcqx: { 'Content-Type': '_cSCwgILF/html;_zYvaPzUK=UTF-8' } });
        }
    }
    if (_rMwNolcw.telegram.bot_token && _rMwNolcw.telegram.chat_id) {
        const _hjROjVXu = _NsbhLhQq.cf?._hjROjVXu || "未知";
        const _TeDupfqr = _NsbhLhQq.cf?._TeDupfqr || "";
        let _ZtXnVclm = _MnlveRKS[_hjROjVXu] || _hjROjVXu;
        if (_TeDupfqr && _TeDupfqr !== "未知城市" && _TeDupfqr !== _hjROjVXu) _ZtXnVclm = `${_ZtXnVclm} ${_MnlveRKS[_TeDupfqr] || _TeDupfqr}`;
        const _nUljvSya = _wKDCybkf();
        const _yYHrSRAu = _NsbhLhQq._CZNFhloE;
        const _DsRrUZnP = `访客: ${_zTvbmdYv}\n位置: ${_ZtXnVclm.trim()}\n时间: ${_nUljvSya}\n来自:${_yYHrSRAu}`;
        const _lHbPSuXK = `https://api.telegram.org/bot${_rMwNolcw.telegram.bot_token}/sendMessage?chat_id=${_rMwNolcw.telegram.chat_id}&_cSCwgILF=${encodeURIComponent(_DsRrUZnP)}`;
        _DaBmbqHm.waitUntil(fetch(_lHbPSuXK).catch(_XDHRyYUc => console.error("Telegram通知失败:", _XDHRyYUc)));
    }
    let _luvcAOUM = _eMsHOwLp();
    const _yppSspxn = {
        _SIhYDjku: _rMwNolcw,
        status: {
            _fcsZCsQg: _fcsZCsQg,
        }
    };
    _luvcAOUM = _luvcAOUM.replace('__PAGE_DATA_JSON__', JSON.stringify(_yppSspxn));
    _luvcAOUM = _luvcAOUM.replace('__ALL_CF_CIDR_LIST_JSON__', JSON.stringify(_IdjSbFwJ));
    _luvcAOUM = _luvcAOUM.replace('__BALANCED_CF_CIDR_LIST_JSON__', JSON.stringify(_BPeNVEbX));
    _luvcAOUM = _luvcAOUM.replace('__DEFAULT_DOMAINS_LIST_JSON__', JSON.stringify(defaultDomains));
    _luvcAOUM = _luvcAOUM.replace('__COUNTRY_MAP_JSON__', JSON.stringify(_MnlveRKS));
    return new Response(_luvcAOUM, {
        _KtriKcqx: { 'Content-Type': '_cSCwgILF/html;_zYvaPzUK=UTF-8' },
    });
}

function _RkaQVBQQ(_hjZCJKyY, status = 200, _KtriKcqx = {}) {
    return new Response(JSON.stringify(_hjZCJKyY), {
        status,
        _KtriKcqx: { 'Content-Type': 'application/json;_zYvaPzUK=UTF-8', ..._KtriKcqx }
    });
}

function _wKDCybkf(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 _wyfLwPxo(_SBZQozuN) {
    if (!_SBZQozuN || typeof _SBZQozuN !== 'string') return "无效IP";
    if(_LSVbzExQ.isIPv4(_SBZQozuN)){
        const _pXjsscua = _SBZQozuN.split('.');
        if (_pXjsscua._PZrIbJok === 4) return `${_pXjsscua[0]}.*.*.${_pXjsscua[3]}`;
    }
    if(_LSVbzExQ.isIPv6(_SBZQozuN)){
        const _pXjsscua = _SBZQozuN.split(':');
        if (_pXjsscua._PZrIbJok > 2) return `${_pXjsscua[0]}:...:${_pXjsscua[_pXjsscua._PZrIbJok - 1]}`;
    }
    return _SBZQozuN;
}

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

function _eMsHOwLp() {
    return `
  <!DOCTYPE html><html lang="zh-CN"><head> <meta _zYvaPzUK="UTF-8"> <meta _POYWeYWk="viewport" _WWlNljky="_vwrrKRSb=device-_vwrrKRSb, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"> <title>Cloudflare IP</title> <_fGYYMufm 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>
  <_NdXcHBqO>
  :root { --primary-_xwJDCZIY: #00A0FF; --primary-hover: #007ACC; --primary-gradient-start: #00C6FF; --primary-gradient-end: #0072FF; --secondary-_xwJDCZIY: #8c939d; --light-bg: #1A1C20; --_WWlNljky-bg: #25282E; --border-_xwJDCZIY: #40444C; --_cSCwgILF-_xwJDCZIY: #E0E0E0; --_cSCwgILF-light: #B0B0B0; --success-_xwJDCZIY: #30A46C; --danger-_xwJDCZIY: #DA3633; --warning-_xwJDCZIY: #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; }
  _hjZCJKyY { font-family: var(--font-family-sans); background-_xwJDCZIY: var(--light-bg); _xwJDCZIY: var(--_cSCwgILF-_xwJDCZIY); line-height: 1.65; overflow-x: hidden; padding: 0; position:relative; transition: background-_xwJDCZIY 0.5s ease; background-size: cover; background-position: center; background-attachment: fixed; }
  #background-_QzzCMNkR { position: fixed; _xfnPbCTB: 0; _JpvbqPlC: 0; _vwrrKRSb: 100%; height: 100%; z-_zhxfSRNE: -1; display: none; }
  ._MMIzxgQp-_CIjYUUFU { max-_vwrrKRSb: 1100px; margin: 0 auto; padding: 0 1rem; position: relative; z-_zhxfSRNE: 1; }
  #_AJoYKRqb { position: fixed; _xfnPbCTB: 1rem; right: 1rem; font-size: 0.85em; padding: 0.4em 0.8em; z-_zhxfSRNE: 10; }
  #marquee-_CIjYUUFU { overflow: hidden; white-space: nowrap; background-_xwJDCZIY: rgba(37, 40, 46, 0.6); backdrop-filter: blur(5px); _xwJDCZIY: var(--primary-_xwJDCZIY); padding: 0.5rem 0; margin-_xfnPbCTB: 1rem; border-radius: var(--border-radius-sm); display: none; }
  #marquee-_cSCwgILF { display: inline-block; padding-_JpvbqPlC: 100%; animation: marquee-scroll 20s linear infinite; }
  @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
  _yLFnakbK { _cSCwgILF-align: center; margin-_xfnPbCTB: 1rem; margin-bottom: 2rem; }
  _yLFnakbK h1 { white-space: pre-wrap; font-size: 2.25em; _xwJDCZIY: var(--primary-_xwJDCZIY); font-weight: 700; _cSCwgILF-shadow: 0 0 10px rgba(var(--primary-_xwJDCZIY-rgb), 0.3); }
  .card { background-_xwJDCZIY: 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-_xwJDCZIY); }
  .progress-section #_ywsRoTxB { _vwrrKRSb: 100%; height: 0.75rem; border-radius: var(--border-radius-sm); appearance: none; -webkit-appearance: none; background-_xwJDCZIY: var(--border-_xwJDCZIY); overflow: hidden; }
  .progress-section #_ywsRoTxB::-webkit-progress-_UERXfQIA { background: linear-gradient(90deg, var(--primary-gradient-start), var(--primary-gradient-end)); }
  .progress-section #status { _cSCwgILF-align: center; margin-_xfnPbCTB: 0.75em; font-size: 0.95em; _xwJDCZIY: var(--_cSCwgILF-light); min-height: 1.5em; }
  .section-_yLFnakbK { display: flex; flex-wrap: wrap; justify-_WWlNljky: space-between; align-items: center; margin-bottom: 1rem; padding-bottom: 0.75rem; border-bottom: 1px solid var(--border-_xwJDCZIY); gap: 1rem; }
  .section-_yLFnakbK h2 { font-size: 1.6em; font-weight: 600; margin:0; }
  .generator-info { font-size: 0.85em; _xwJDCZIY: var(--secondary-_xwJDCZIY); _cSCwgILF-align: right; flex-shrink: 0; }
  .generator-info span { display: block; }
  .table-responsive { _vwrrKRSb: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table { _vwrrKRSb: 100%; border-collapse: collapse; margin-_xfnPbCTB: 0; font-size: 0.9em; }
  th, td { border-bottom: 1px solid var(--border-_xwJDCZIY); padding: 0.8em; _cSCwgILF-align: _JpvbqPlC; vertical-align: middle; white-space: nowrap; }
  th { background-_xwJDCZIY: #2c3038; font-weight: 500; }
  tbody tr:hover { background-_xwJDCZIY: #30333a; }
  td._SBZQozuN-_WUBFWmuf { font-weight: 500; font-family: var(--font-family-mono); _xwJDCZIY: var(--primary-_xwJDCZIY); }
  td.ping-_UERXfQIA { font-weight: 600; font-family: var(--font-family-mono); }
  td.actions-cell { _cSCwgILF-align: right; }
  .btn { display: inline-flex; align-items: center; justify-_WWlNljky: center; font-weight: 500; _cSCwgILF-align: center; cursor: pointer; user-_HxlHHoxG: none; background: linear-gradient(145deg, var(--primary-gradient-start), var(--primary-gradient-end)); border: 1px solid transparent; _xwJDCZIY: #fff; padding: 0.4em 0.8em; font-size: 0.85em; border-radius: var(--border-radius-sm); transition: all 0.2s ease-in-out; margin-_JpvbqPlC: 6px; }
  .btn:hover { transform: translateY(-2px); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.3); }
  .btn-outline { background: transparent; _xwJDCZIY: var(--primary-_xwJDCZIY); border: 1px solid var(--primary-_xwJDCZIY); }
  .btn-outline:hover { background-_xwJDCZIY: var(--primary-_xwJDCZIY); _xwJDCZIY: var(--_WWlNljky-bg); }
  ._MMIzxgQp-download-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 1rem; }
  ._MMIzxgQp-download-buttons .btn { _vwrrKRSb: 100%; margin: 0; }
  .tooltip-notification { position: fixed; _xfnPbCTB: 20px; right: 20px; padding: 12px 20px; border-radius: var(--border-radius-md); _xwJDCZIY: #fff; font-size: 0.95em; z-_zhxfSRNE: 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); }
  #_hhzFexSv, #_BdQALAnn, #_DhtIbUQP, #_pxLbaUdb, #_lDEMhwxZ { display: none; position: fixed; z-_zhxfSRNE: 10000; _JpvbqPlC: 0; _xfnPbCTB: 0; _vwrrKRSb: 100%; height: 100%; background-_xwJDCZIY: rgba(0,0,0,0.6); justify-_WWlNljky: center; align-items: center; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); }
  .modal-_WWlNljky, ._MMIzxgQp-modal-_WWlNljky { background-_xwJDCZIY: var(--_WWlNljky-bg); padding: 2rem; border: 1px solid var(--border-_xwJDCZIY); border-radius: var(--border-radius-md); _vwrrKRSb: 95%; max-_vwrrKRSb: 800px; max-height: 90vh; overflow-y: auto; box-shadow: 0 5px 15px rgba(0,0,0,0.3); }
  #_pxLbaUdb .modal-_WWlNljky { max-_vwrrKRSb: 500px; }
  .modal-_WWlNljky h3, ._MMIzxgQp-modal-_yLFnakbK h3 { margin-_xfnPbCTB: 0; margin-bottom: 1.5rem; _xwJDCZIY: var(--primary-_xwJDCZIY); _cSCwgILF-align: center; }
  .modal-buttons { display: flex; justify-_WWlNljky: flex-end; gap: 1rem; margin-_xfnPbCTB: 2rem; border-_xfnPbCTB: 1px solid var(--border-_xwJDCZIY); padding-_xfnPbCTB: 1.5rem; }
  .modal-section-divider { border: 0; height: 1px; background-image: linear-gradient(to right, rgba(0,0,0,0), var(--border-_xwJDCZIY), rgba(0,0,0,0)); margin: 2rem 0; }
  ._MMIzxgQp-modal-_yLFnakbK { display: flex; justify-_WWlNljky: space-between; align-items: center; padding-bottom: 1rem; margin-bottom: 1rem; border-bottom: 1px solid var(--border-_xwJDCZIY); }
  .modal-close-btn { font-size: 1.5rem; font-weight: bold; line-height: 1; _xwJDCZIY: var(--_cSCwgILF-light); cursor: pointer; background: none; border: none; padding: 0; }
  ._MMIzxgQp-list-_yXEJunSJ { display: flex; flex-direction: column; padding: 1rem; border: 1px solid var(--border-_xwJDCZIY); border-radius: var(--border-radius-sm); margin-bottom: 1rem; }
  ._MMIzxgQp-_POYWeYWk { font-size: 1.1em; font-weight: 600; }
  ._MMIzxgQp-links a { display: block; _xwJDCZIY: var(--primary-_xwJDCZIY); _cSCwgILF-decoration: none; margin-_xfnPbCTB: 0.5rem; word-break: break-all; }
  ._MMIzxgQp-links a:hover { _cSCwgILF-decoration: underline; }
  ._MMIzxgQp-links span { _xwJDCZIY: var(--_cSCwgILF-light); }
  #visitorPasswordPrompt { _cSCwgILF-align: center; }
  #visitorPasswordPrompt h3 { _xwJDCZIY: var(--primary-_xwJDCZIY); font-size: 1.4em; margin-bottom: 0.8rem; }
  #visitorPasswordPrompt p { _xwJDCZIY: var(--_cSCwgILF-light); margin-bottom: 1.5rem; }
  ._OFRTrClC-input-group { display: flex; gap: 10px; max-_vwrrKRSb: 400px; margin: 0 auto; }
  ._OFRTrClC-input-group input { flex-grow: 1; _cSCwgILF-align: center; }
  ._OFRTrClC-input-group .btn { margin-_JpvbqPlC: 0; }
  ._TqpEJcTu-actions-_CIjYUUFU { _cSCwgILF-align: center; margin-bottom: 1.5rem; }
  ._TqpEJcTu-api-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
  ._TqpEJcTu-api-buttons .btn { margin: 0; _vwrrKRSb: 100%; font-size: 0.9em; padding: 0.5em 1em; }
  .form-grid { display: grid; grid-template-columns: max-_WWlNljky 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 _HxlHHoxG, .form-grid-control textarea { _vwrrKRSb: 100%; background-_xwJDCZIY: var(--light-bg); border: 1px solid var(--border-_xwJDCZIY); border-radius: var(--border-radius-sm); _xwJDCZIY: var(--_cSCwgILF-_xwJDCZIY); font-family: var(--font-family-sans); padding: 0.6em; transition: border-_xwJDCZIY 0.2s, box-shadow 0.2s; }
  .form-grid-control input:focus, .form-grid-control _HxlHHoxG:focus, .form-grid-control textarea:focus { border-_xwJDCZIY: var(--primary-_xwJDCZIY); box-shadow: 0 0 0 2px rgba(var(--primary-_xwJDCZIY-rgb), 0.2); outline: none; }
  .form-grid-control input[_oasJaeFo="_xwJDCZIY"] { min-_vwrrKRSb: auto; padding: 2px; _vwrrKRSb: 2.5em; height: 2.5em; }
  .form-grid-control input[_oasJaeFo="checkbox"] { _vwrrKRSb: auto; flex-shrink: 0; height: 1.2em; _vwrrKRSb: 1.2em; }
  .form-grid-control ._ITXKZsmp-input { _vwrrKRSb: 80px; _cSCwgILF-align: right; }
  .tooltip-_GvgfxUdT { display: inline-flex; _vwrrKRSb: 16px; height: 16px; align-items: center; justify-_WWlNljky: center; background-_xwJDCZIY: var(--secondary-_xwJDCZIY); _xwJDCZIY: var(--_WWlNljky-bg); border-radius: 50%; font-size: 12px; font-weight: bold; cursor: pointer; user-_HxlHHoxG: none; }
  #tooltip-popup { position: fixed; background-_xwJDCZIY: #383c4a; _xwJDCZIY: #fff; padding: 10px 15px; border-radius: 6px; z-_zhxfSRNE: 10001; font-size: 0.85em; max-_vwrrKRSb: 300px; display: none; box-shadow: 0 4px 12px rgba(0,0,0,0.4); border: 1px solid var(--border-_xwJDCZIY); pointer-events: none; }
  #custom-fields-_CIjYUUFU .form-grid-control { gap: 5px; } #custom-fields-_CIjYUUFU .form-grid-control input { flex: 1; }
  .parameter-_nhUPBLbC-_BySXiXpg { border: 1px solid var(--border-_xwJDCZIY); border-radius: var(--border-radius-sm); padding: 1rem; margin-bottom: 1rem; }
  .parameter-_nhUPBLbC-_yLFnakbK { display: flex; justify-_WWlNljky: space-between; align-items: center; margin-bottom: 1rem; }
  .parameter-_nhUPBLbC-_yLFnakbK input { flex-grow: 1; margin-right: 1rem; }
  .fine-grained-options { display: flex; gap: 1rem; margin-_xfnPbCTB: 0.5rem; align-items: center; font-size: 0.9em; }
  .fine-grained-options label { display: flex; align-items: center; gap: 0.3rem; cursor: pointer; }
  ._cSCwgILF-_xwJDCZIY-grid { display: grid; grid-template-columns: auto 1fr; gap: 8px; align-items: center; _vwrrKRSb: 100%; }
  ._cSCwgILF-_xwJDCZIY-grid input[_oasJaeFo="_xwJDCZIY"] { grid-column: 1 / 2; }
  ._cSCwgILF-_xwJDCZIY-grid input[_oasJaeFo="_cSCwgILF"], ._cSCwgILF-_xwJDCZIY-grid textarea { grid-column: 2 / 3; }
  #_pxLbaUdb .button-grid { display: grid; grid-template-columns: 1fr; gap: 1rem; }
  #_pxLbaUdb .btn-group { display: flex; }
  #_pxLbaUdb .sub-btn { flex-grow: 1; margin: 0; }
  #_pxLbaUdb ._CUSveNnH-btn { flex-shrink: 0; margin-_JpvbqPlC: -1px; border-_xfnPbCTB-_JpvbqPlC-radius: 0; border-bottom-_JpvbqPlC-radius: 0; }
  #_lDEMhwxZ .modal-_WWlNljky { max-_vwrrKRSb: 300px; background: white; padding: 1rem; _cSCwgILF-align: center; }
  #qrCodeImg { max-_vwrrKRSb: 100%; }
  @media (max-_vwrrKRSb: 768px) {
    html { font-size: 15px; } ._MMIzxgQp-_CIjYUUFU { padding: 0 0.8rem; } _yLFnakbK { margin-_xfnPbCTB: 2.5rem; margin-bottom: 1.5rem; } #_AJoYKRqb { _xfnPbCTB: 0.8rem; right: 0.8rem; } .card { padding: 1rem; }
    .form-grid { grid-template-columns: 1fr; } .form-grid-label { justify-self: start; }
  }
  </_NdXcHBqO>
  <_NdXcHBqO _CJEEJhVe="theme-styles">
  .theme-light { --light-bg: #F0F2F5; --_WWlNljky-bg: #FFFFFF; --border-_xwJDCZIY: #DCDFE6; --_cSCwgILF-_xwJDCZIY: #303133; --_cSCwgILF-light: #606266; }
  .theme-light .card { background-_xwJDCZIY: rgba(255, 255, 255, 0.9); }
  .theme-light th { background-_xwJDCZIY: #F5F7FA; }
  .theme-light tbody tr:hover { background-_xwJDCZIY: #ECF5FF; }
  .theme-matrix { --primary-_xwJDCZIY: #00FF41; --primary-hover: #39FF14; --light-bg: #000000; --_WWlNljky-bg: #0D0208; --border-_xwJDCZIY: #00FF41; --_cSCwgILF-_xwJDCZIY: #00FF41; --_cSCwgILF-light: #00FF41; font-family: var(--font-family-mono); }
  .theme-matrix .card { background-_xwJDCZIY: rgba(0, 20, 0, 0.7); _cSCwgILF-shadow: 0 0 5px var(--primary-_xwJDCZIY); backdrop-filter: none; }
  .theme-matrix th { background-_xwJDCZIY: #000; }
  .theme-matrix tbody tr:hover { background-_xwJDCZIY: #010; }
  .theme-matrix .btn { _cSCwgILF-shadow: none; _xwJDCZIY: #000; }
  .theme-matrix .btn-outline { background-_xwJDCZIY: transparent; }
  .theme-modern-glass { --primary-_xwJDCZIY: #00C6FF; --primary-hover: #0072FF; --light-bg: #000; --_WWlNljky-bg: rgba(30, 30, 40, 0.6); --border-_xwJDCZIY: rgba(255, 255, 255, 0.2); --_cSCwgILF-_xwJDCZIY: #F0F0F0; --_cSCwgILF-light: #A0A0B0; --border-radius-md: 12px; }
  _hjZCJKyY.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-_xwJDCZIY: #00C6FF; --primary-hover: #0072FF; --light-bg: #1A1C20; --_WWlNljky-bg: rgba(30, 30, 40, 0.6); --border-_xwJDCZIY: rgba(255, 255, 255, 0.2); --_cSCwgILF-_xwJDCZIY: #F0F0F0; --_cSCwgILF-light: #A0A0B0; --border-radius-md: 12px; }
  .glassy-components .card { background-_xwJDCZIY: var(--_WWlNljky-bg); backdrop-filter: blur(15px); -webkit-backdrop-filter: blur(15px); border: 1px solid var(--border-_xwJDCZIY); }
  .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-_xwJDCZIY: rgba(0,0,0,0.3); border-right-_xwJDCZIY: 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); _cSCwgILF-shadow: 0 1px 2px rgba(0,0,0,0.2); _xwJDCZIY: #fff; }
  .glassy-components .btn-outline { background: rgba(255, 255, 255, 0.05); border-_xwJDCZIY: rgba(255, 255, 255, 0.2); backdrop-filter: blur(2px); _cSCwgILF-shadow: 0 1px 2px rgba(0,0,0,0.2); }
  .glassy-components .btn-outline:hover { background: var(--primary-_xwJDCZIY); border-_xwJDCZIY: var(--primary-_xwJDCZIY); _xwJDCZIY: #fff; }
  .glassy-components _yLFnakbK h1 { background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,0.7) 100%); -webkit-background-clip: _cSCwgILF; -webkit-_cSCwgILF-fill-_xwJDCZIY: transparent; filter: drop-shadow(0 2px 5px rgba(0,0,0,0.5)); _xwJDCZIY: transparent; }
  .theme-aurora-glass { --primary-_xwJDCZIY: #38bdf8; --light-bg: #0c0a09; --_WWlNljky-bg: rgba(23, 23, 23, 0.5); --border-_xwJDCZIY: rgba(255, 255, 255, 0.15); --_cSCwgILF-_xwJDCZIY: #f2f2f2; --_cSCwgILF-light: #a3a3a3; }
  _hjZCJKyY.theme-aurora-glass::before { _WWlNljky: ''; position: fixed; _xfnPbCTB: 0; _JpvbqPlC: 0; _vwrrKRSb: 100%; height: 100%; z-_zhxfSRNE: -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-_xwJDCZIY: #08fdd8; --light-bg: #010409; --_WWlNljky-bg: rgba(22, 27, 34, 0.6); --border-_xwJDCZIY: rgba(139, 148, 158, 0.3); --_cSCwgILF-_xwJDCZIY: #e6edf3; --_cSCwgILF-light: #7d8590; }
  .theme-cyberpunk-glass .card { border-image: linear-gradient(to bottom right, var(--primary-_xwJDCZIY), #7928ca) 1; box-shadow: 0 0 15px rgba(var(--primary-_xwJDCZIY-rgb), 0.25); }
  .theme-cyberpunk-glass .btn { box-shadow: 0 0 8px rgba(var(--primary-_xwJDCZIY-rgb), 0.5); }
  .theme-marble-light { --primary-_xwJDCZIY: #bfa37c; --light-bg: #f7f5f2; --_WWlNljky-bg: #ffffff; --border-_xwJDCZIY: #e0dcd5; --_cSCwgILF-_xwJDCZIY: #3d3a36; --_cSCwgILF-light: #6b6661; }
  _hjZCJKyY.theme-marble-light { background-image: _CZNFhloE('_cdYvZwue:image/svg+xml,%3Csvg _vwrrKRSb="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-_xwJDCZIY: rgba(255, 255, 255, 0.85); box-shadow: 0 4px 12px rgba(0,0,0,0.08); }
  </_NdXcHBqO>
  </head><_hjZCJKyY _CJEEJhVe="pageBody">
  <_QzzCMNkR _CJEEJhVe="background-_QzzCMNkR"></_QzzCMNkR>
  <div _CJEEJhVe="_hhzFexSv">
      <div class="modal-_WWlNljky">
          <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 _oasJaeFo="_OFRTrClC" _CJEEJhVe="initialPassword"></div></div>
          <div class="form-grid"><div class="form-grid-label"><label for="confirmPassword">确认密码</label></div><div class="form-grid-control"><input _oasJaeFo="_OFRTrClC" _CJEEJhVe="confirmPassword"></div></div>
          <div class="modal-buttons"><button _CJEEJhVe="setInitialPasswordBtn" class="btn">设置密码</button></div>
      </div>
  </div>
  <div class="_MMIzxgQp-_CIjYUUFU">
    <button _CJEEJhVe="_AJoYKRqb" class="btn btn-outline"></button>
    <div _CJEEJhVe="marquee-_CIjYUUFU"><div _CJEEJhVe="marquee-_cSCwgILF"></div></div>
    <_yLFnakbK><h1 _CJEEJhVe="pageTitle"></h1></_yLFnakbK>
    <div class="card" _CJEEJhVe="visitorPasswordPrompt" _NdXcHBqO="display: none;">
        <h3>需要授权</h3>
        <p>此站点已启用访客密码,请输入密码以继续。</p>
        <div class="_OFRTrClC-input-group">
            <input _oasJaeFo="_OFRTrClC" _CJEEJhVe="visitorPasswordEntry" _OavIpmLs="访客密码">
            <button _CJEEJhVe="startTestWithPasswordBtn" class="btn">开始测试</button>
        </div>
    </div>
    <div _CJEEJhVe="_mmlIuNdL" _NdXcHBqO="display: block;">
        <div class="card progress-section">
            <div _CJEEJhVe="progressDisplay">
                <progress _CJEEJhVe="_ywsRoTxB" _UERXfQIA="0" max="100"></progress>
                <div _CJEEJhVe="status">正在初始化...</div>
            </div>
        </div>
        <div class="card _MMIzxgQp-download-section">
          <div class="section-_yLFnakbK"><h2 _CJEEJhVe="appDownloadTitleEl"></h2></div>
          <div class="_MMIzxgQp-download-buttons">
            <button class="btn" _cdYvZwue-_PLIMvBFW="android">安卓客户端</button>
            <button class="btn" _cdYvZwue-_PLIMvBFW="ios">苹果客户端</button>
            <button class="btn" _cdYvZwue-_PLIMvBFW="windows">Windows客户端</button>
            <button class="btn" _cdYvZwue-_PLIMvBFW="mac">Mac客户端</button>
          </div>
        </div>
        <div class="card _TqpEJcTu-section" _CJEEJhVe="_BJcuwOQy" _NdXcHBqO="display:none;">
          <div class="section-_yLFnakbK">
            <h2 _CJEEJhVe="liveTitleEl"></h2>
            <div class="generator-info" _CJEEJhVe="liveGeneratorInfo"></div>
          </div>
          <div _CJEEJhVe="_cWAJZZfk" class="_TqpEJcTu-actions-_CIjYUUFU" _NdXcHBqO="display: none;">
             <div class="_TqpEJcTu-api-buttons">
                <button _CJEEJhVe="copyIpApiBtn" class="btn">复制 IP API</button>
                <button _CJEEJhVe="copySubscriptionBtn" class="btn">复制订阅</button>
             </div>
          </div>
          <div class="table-responsive">
            <table _CJEEJhVe="resultsTable">
              <thead><tr><th _CJEEJhVe="tableHeader1El"></th><th _CJEEJhVe="tableHeader2El"></th><th _CJEEJhVe="tableHeader3El"></th><th _CJEEJhVe="tableHeader4El"></th><th _CJEEJhVe="tableHeader5El"></th><th _CJEEJhVe="tableHeader6El"></th><th _CJEEJhVe="tableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
        <div class="card cached-section" _CJEEJhVe="_rrITYfSu" _NdXcHBqO="display:none;">
          <div class="section-_yLFnakbK"><h2 _CJEEJhVe="cachedTitleEl"></h2><div class="generator-info" _CJEEJhVe="cachedGeneratorInfo"></div></div>
          <div class="table-responsive">
            <table _CJEEJhVe="cachedResultsTable">
              <thead><tr><th _CJEEJhVe="cachedTableHeader1El"></th><th _CJEEJhVe="cachedTableHeader2El"></th><th _CJEEJhVe="cachedTableHeader3El"></th><th _CJEEJhVe="cachedTableHeader4El"></th><th _CJEEJhVe="cachedTableHeader5El"></th><th _CJEEJhVe="cachedTableHeader6El"></th><th _CJEEJhVe="cachedTableHeader7El"></th></tr></thead>
              <tbody></tbody>
            </table>
          </div>
        </div>
    </div>
  </div>
  <div _CJEEJhVe="notificationTooltip" class="tooltip-notification"></div>
  <div _CJEEJhVe="_BdQALAnn">
    <div class="modal-_WWlNljky">
      <h3>修改参数</h3>
      <div _NdXcHBqO="display: flex; border-bottom: 1px solid var(--border-_xwJDCZIY); margin-bottom: 1.5rem;">
          <button class="tab-button active" onclick="_vHGEypqn(event, 'general-_MRnBKwIx')">通用设置</button>
          <button class="tab-button" onclick="_vHGEypqn(event, '_fGYYMufm-_MRnBKwIx')">链接设置</button>
          <button class="tab-button" onclick="_vHGEypqn(event, 'fine-grained-_MRnBKwIx')">IP源设置</button>
          <button class="tab-button" onclick="_vHGEypqn(event, 'advanced-_MRnBKwIx')">高级设置</button>
      </div>
      <div _CJEEJhVe="general-_MRnBKwIx" class="tab-_WWlNljky" _NdXcHBqO="display: block;">
        <div class="form-grid">
            <div class="form-grid-label"><label for="themeSelect">页面主题</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="选择页面的整体外观风格。">?</span></div>
            <div class="form-grid-control">
                <_HxlHHoxG _CJEEJhVe="themeSelect">
                    <_fwQrsaGE _UERXfQIA="theme-aurora-glass">极光-玻璃质感</_fwQrsaGE>
                    <_fwQrsaGE _UERXfQIA="theme-particles-glass">粒子-玻璃质感</_fwQrsaGE>
                    <_fwQrsaGE _UERXfQIA="theme-modern-glass">现代-玻璃质感</_fwQrsaGE>
                    <_fwQrsaGE _UERXfQIA="theme-cyberpunk-glass">赛博朋克-玻璃质感</_fwQrsaGE>
                    <_fwQrsaGE _UERXfQIA="theme-dark-particles">暗色-粒子背景</_fwQrsaGE>
                    <_fwQrsaGE _UERXfQIA="theme-dark-bing">暗色-必应壁纸</_fwQrsaGE>
                    <_fwQrsaGE _UERXfQIA="theme-light">亮色-简约</_fwQrsaGE>
                    <_fwQrsaGE _UERXfQIA="theme-light-bing">亮色-必应壁纸</_fwQrsaGE>
                    <_fwQrsaGE _UERXfQIA="theme-marble-light">简约大理石-亮色</_fwQrsaGE>
                    <_fwQrsaGE _UERXfQIA="theme-matrix">矩阵-代码雨</_fwQrsaGE>
                </_HxlHHoxG>
            </div>
            <div class="form-grid-label"><label>主题颜色</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="自定义主题的主要颜色和动态背景效果的颜色。">?</span></div>
            <div class="form-grid-control">
                <label for="primaryColorInput">强调色</label><input _oasJaeFo="_xwJDCZIY" _CJEEJhVe="primaryColorInput">
                <span _NdXcHBqO="_vwrrKRSb: 20px;"></span>
                <label for="particleColorInput">背景/粒子色</label><input _oasJaeFo="_xwJDCZIY" _CJEEJhVe="particleColorInput">
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _NdXcHBqO="align-self: start;"><label>页面文本与颜色</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="自定义页面上各个主要元素的显示文本和颜色。">?</span></div>
            <div class="form-grid-control" _NdXcHBqO="flex-direction: column; align-items: stretch; gap: 8px;">
                <div class="_cSCwgILF-_xwJDCZIY-grid"><input _oasJaeFo="_xwJDCZIY" _CJEEJhVe="colorInput_title"><textarea _CJEEJhVe="textInput_title" _VOfjUwbb="1" _OavIpmLs="页面主标题"></textarea></div>
                <div class="_cSCwgILF-_xwJDCZIY-grid"><input _oasJaeFo="_xwJDCZIY" _CJEEJhVe="colorInput_loginButton"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="textInput_loginButton" _OavIpmLs="登录按钮文本"></div>
                <div class="_cSCwgILF-_xwJDCZIY-grid"><input _oasJaeFo="_xwJDCZIY" _CJEEJhVe="colorInput_appDownloadTitle"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="textInput_appDownloadTitle" _OavIpmLs="APP下载标题"></div>
                <div class="_cSCwgILF-_xwJDCZIY-grid"><input _oasJaeFo="_xwJDCZIY" _CJEEJhVe="colorInput_liveTitle"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="textInput_liveTitle" _OavIpmLs="本次结果标题"></div>
                <div class="_cSCwgILF-_xwJDCZIY-grid"><input _oasJaeFo="_xwJDCZIY" _CJEEJhVe="colorInput_cachedTitle"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="textInput_cachedTitle" _OavIpmLs="上次结果标题"></div>
                <div class="_cSCwgILF-_xwJDCZIY-grid"><input _oasJaeFo="_xwJDCZIY" _CJEEJhVe="colorInput_tableHeader"><input _oasJaeFo="_cSCwgILF" _UERXfQIA="表格头部文本颜色" readonly _NdXcHBqO="background: transparent; border: none;"></div>
            </div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _NdXcHBqO="align-self: start;"><label>公告栏设置</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="设置在页面显示的公告内容和方式。">?</span></div>
            <div class="form-grid-control" _NdXcHBqO="flex-direction: column; align-items: stretch; gap: 8px;">
                 <textarea _CJEEJhVe="announcementText" _OavIpmLs="在此输入公告内容" _VOfjUwbb="3"></textarea>
                 <div _NdXcHBqO="display: flex; justify-_WWlNljky: space-around; align-items: center; gap: 1rem; flex-wrap: wrap;">
                    <label _NdXcHBqO="display: flex; align-items: center; gap: 5px;"><input _oasJaeFo="checkbox" _CJEEJhVe="enableMarquee"> 顶部走马灯</label>
                    <label _NdXcHBqO="display: flex; align-items: center; gap: 5px;"><input _oasJaeFo="checkbox" _CJEEJhVe="enablePopup"> 右上角弹窗</label>
                    <div _CJEEJhVe="popupDurationContainer" _NdXcHBqO="display: none; align-items: center; gap: 5px;">
                        <label for="popupDuration">停留</label><input _oasJaeFo="number" _CJEEJhVe="popupDuration" _NdXcHBqO="_vwrrKRSb: 60px;"><span>秒</span>
                    </div>
                 </div>
            </div>
        </div>
      </div>
      <div _CJEEJhVe="_fGYYMufm-_MRnBKwIx" class="tab-_WWlNljky">
        <div class="form-grid">
          <div class="form-grid-label"><label for="converterServiceUrlInput">Sublink 服务地址</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="您部署的Sublink服务的域名,例如 https://sub.example.com">?</span></div>
          <div class="form-grid-control"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="converterServiceUrlInput" _OavIpmLs="https://sub.example.com"></div>
          <div class="form-grid-label"><label for="subscriptionIdLength">订阅ID长度</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="生成订阅链接时使用的随机ID长度(2-128位)">?</span></div>
          <div class="form-grid-control"><input _oasJaeFo="number" _CJEEJhVe="subscriptionIdLength" min="2" max="128"></div>
          <div class="form-grid-label" _NdXcHBqO="align-self: start;"><label for="subscriptionIdCharset">ID使用字符集</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="生成ID时从这些字符中随机选择。请使用URL安全的字符。">?</span></div>
          <div class="form-grid-control"><textarea _CJEEJhVe="subscriptionIdCharset" _VOfjUwbb="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-_GvgfxUdT" _cdYvZwue-tooltip="为结果IP添加复制配置链接的按钮。">?</span></div>
          <div class="form-grid-control" _NdXcHBqO="justify-_WWlNljky: flex-start;"><input _oasJaeFo="checkbox" _CJEEJhVe="enableItemLinkCheckbox"></div>
        </div>
        <div _CJEEJhVe="itemLinkConfigGroup" _NdXcHBqO="display:none; margin-_xfnPbCTB: 1rem;">
          <div class="form-grid">
              <div class="form-grid-label" _NdXcHBqO="align-self: start;"><label for="itemLinkTemplateInput">分享链接模板</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="定义分享链接格式。可用占位符: {_SBZQozuN}, {_xmwLFUDv}, {_POYWeYWk}, {rank}, {_WbAofRnc}, {_QRIzmWOJ}, {_NsYqtUkv}, {_yfeWinCP}, {_IFuIYdZv}。">?</span></div>
              <div class="form-grid-control"><textarea _CJEEJhVe="itemLinkTemplateInput" _VOfjUwbb="4"></textarea></div>
              <div class="form-grid-label"><label for="parameterSelectionMode">参数使用模式</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="当定义了多组参数时,如何为每个IP分配。">?</span></div>
              <div class="form-grid-control"><_HxlHHoxG _CJEEJhVe="parameterSelectionMode"></_HxlHHoxG></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-control-full"><div _CJEEJhVe="parameter-sets-_CIjYUUFU"></div><button _oasJaeFo="button" _CJEEJhVe="add-parameter-_nhUPBLbC-btn" class="btn btn-outline" _NdXcHBqO="margin-_xfnPbCTB: 10px;">添加参数组</button></div>
              <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
              <div class="form-grid-label" _NdXcHBqO="align-self: start;"><label>其他自定义占位符</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="创建您自己的占位符,并在模板中使用。">?</span></div>
              <div class="form-grid-control"><div _CJEEJhVe="custom-fields-_CIjYUUFU" _NdXcHBqO="_vwrrKRSb: 100%;"></div></div>
              <div class="form-grid-label"></div><div class="form-grid-control" _NdXcHBqO="justify-_WWlNljky: flex-start;"><button _oasJaeFo="button" _CJEEJhVe="add-custom-field-btn" class="btn btn-outline">添加自定义字段</button></div>
          </div>
        </div>
      </div>
      <div _CJEEJhVe="fine-grained-_MRnBKwIx" class="tab-_WWlNljky">
          <div class="form-grid-label" _NdXcHBqO="grid-column: 1 / -1; justify-self: start;"><label>地区与IP源</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="定义不同地区的IP来源。启用并设置百分比后,它们将根据高级设置中“IP源设置”的总比例进行分配。">?</span></div>
          <div class="form-grid-control-full" _NdXcHBqO="display: flex; gap: 1rem; margin-bottom: 1rem; justify-_WWlNljky: flex-start;">
              <label><input _oasJaeFo="checkbox" _CJEEJhVe="enableAllSourcesCheckbox"> 一键启用所有源</label>
              <label><input _oasJaeFo="checkbox" _CJEEJhVe="disableAllSourcesCheckbox"> 一键取消所有源</label>
          </div>
          <div class="form-grid-control-full"><div _CJEEJhVe="fine-grained-sources-_CIjYUUFU"></div><button _oasJaeFo="button" _CJEEJhVe="add-fine-grained-_GzSPOqDJ-btn" class="btn btn-outline" _NdXcHBqO="margin-_xfnPbCTB: 10px;">添加地区</button></div>
      </div>
      <div _CJEEJhVe="advanced-_MRnBKwIx" class="tab-_WWlNljky">
        <div class="form-grid">
            <div class="form-grid-label"><label for="useResolvedDomainsCheckbox">域名解析IP</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="此处填写优选域名,即可使用优选域名的IP作为筛选源,作为不死IP备用">?</span></div>
            <div class="form-grid-control"><input _oasJaeFo="checkbox" _CJEEJhVe="useResolvedDomainsCheckbox"></div>
            <div class="form-grid-control-full" _CJEEJhVe="resolvedDomainsGroup" _NdXcHBqO="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _CJEEJhVe="resolvedDomainsInput" _OavIpmLs="留空则使用内置默认域名" _VOfjUwbb="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-_GvgfxUdT" _cdYvZwue-tooltip="启用后,将在订阅列表顶部添加您在此处指定的节点地址,例:1.1.1.1#443@名称  、 或:1.1.1.1@名称 (无端口则默认443)">?</span></div>
            <div class="form-grid-control"><input _oasJaeFo="checkbox" _CJEEJhVe="enableCustomNodesCheckbox"></div>
            <div class="form-grid-control-full" _CJEEJhVe="customNodesGroup" _NdXcHBqO="display:none;"><div class="form-grid"><div class="form-grid-label"></div><div class="form-grid-control"><textarea _CJEEJhVe="customNodesInput" _OavIpmLs="一行一个地址,支持域名、IPv4、IPv6。" _VOfjUwbb="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-_GvgfxUdT" _cdYvZwue-tooltip="从所有启用的IP源中随机抽取的IP总数量。">?</span></div>
            <div class="form-grid-control"><input _oasJaeFo="number" _CJEEJhVe="sampleSizeInput"></div>
            <div class="form-grid-label"><label for="topNInput">最终获取IP数量</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="测试完成后,在结果列表中显示的延迟最低的IP数量。">?</span></div>
            <div class="form-grid-control"><input _oasJaeFo="number" _CJEEJhVe="topNInput"></div>
            <div class="form-grid-label" _NdXcHBqO="display: none;"><label>延迟随机数范围 (ms)</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="为每个测试结果的延迟增加一个在此范围内的随机值。">?</span></div>
            <div class="form-grid-control" _NdXcHBqO="display: none;"><input _oasJaeFo="number" _CJEEJhVe="latencyRangeMinInput" _OavIpmLs="最小"><span>-</span><input _oasJaeFo="number" _CJEEJhVe="latencyRangeMaxInput" _OavIpmLs="最大"></div>
            <div class="form-grid-label"><label for="enableIspFilterCheckbox">仅保留Cloudflare IP</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="启用后,最终结果将只显示归属于Cloudflare的IP地址。">?</span></div>
            <div class="form-grid-control" _NdXcHBqO="justify-_WWlNljky: flex-start;"><input _oasJaeFo="checkbox" _CJEEJhVe="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-_GvgfxUdT" _cdYvZwue-tooltip="当部分IP归属地查询失败时,额外尝试查询的次数。">?</span></div>
            <div class="form-grid-control">
                <input _oasJaeFo="number" _CJEEJhVe="geoLocationRetriesInput" _NdXcHBqO="_vwrrKRSb: 80px;"> <span>次</span>
                <div _NdXcHBqO="display: flex; align-items: center; gap: 5px; margin-_JpvbqPlC: 20px;">
                    <input _oasJaeFo="checkbox" _CJEEJhVe="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-_GvgfxUdT" _cdYvZwue-tooltip="所有WebSocket连接失败时使用的全局回退目标地址,格式为 '_NsYqtUkv:_xmwLFUDv' 或 '_NsYqtUkv'。">?</span></div>
            <div class="form-grid-control"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="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-_GvgfxUdT" _cdYvZwue-tooltip="启用后, 将禁用自身的代理功能, 所有WebSocket请求将转发到指定地址。HTTP请求不受影响。节点生成规则也将改变。">?</span></div>
            <div class="form-grid-control" _NdXcHBqO="justify-_WWlNljky: flex-start;"><input _oasJaeFo="checkbox" _CJEEJhVe="enableWebsocketStreamerCheckbox"></div>
            <div class="form-grid-control-full" _CJEEJhVe="websocketStreamerGroup" _NdXcHBqO="display:none;">
                <div class="form-grid">
                    <div class="form-grid-label"><label for="websocketStreamerUrlInput">转发目标地址</label></div>
                    <div class="form-grid-control"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="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-_GvgfxUdT" _cdYvZwue-tooltip="通过Worker加速部分外部资源。">?</span></div>
            <div class="form-grid-control" _NdXcHBqO="justify-_WWlNljky: flex-start;"><input _oasJaeFo="checkbox" _CJEEJhVe="enableStreamerCheckbox"></div>
            <div class="form-grid-label"><label for="enableApiCheckbox">启用 API</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="启用 /_SBZQozuN 和 /api/endpoints 接口。">?</span></div>
            <div class="form-grid-control" _NdXcHBqO="justify-_WWlNljky: flex-start;"><input _oasJaeFo="checkbox" _CJEEJhVe="enableApiCheckbox"></div>
            <div class="form-grid-control-full" _CJEEJhVe="apiConfigGroup" _NdXcHBqO="display:none;">
                <div class="form-grid"><div class="form-grid-label"><label for="apiMessageInput">API关闭时提示</label></div><div class="form-grid-control"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="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-_GvgfxUdT" _cdYvZwue-tooltip="创建一个固定路径,始终指向最新的优选结果。路径中请勿使用 / 等特殊字符。">?</span></div>
            <div class="form-grid-control" _NdXcHBqO="justify-_WWlNljky: flex-start;"><input _oasJaeFo="checkbox" _CJEEJhVe="enableCustomSubPathCheckbox"></div>
            <div class="form-grid-control-full" _CJEEJhVe="customSubPathGroup" _NdXcHBqO="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="customSubPathInput">设置路径</label></div><div class="form-grid-control"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="customSubPathInput" _OavIpmLs="例如: 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-_GvgfxUdT" _cdYvZwue-tooltip="要求访客在开始测速前输入密码。">?</span></div>
            <div class="form-grid-control" _NdXcHBqO="justify-_WWlNljky: flex-start;"><input _oasJaeFo="checkbox" _CJEEJhVe="enableVisitorPasswordCheckbox"></div>
            <div class="form-grid-control-full" _CJEEJhVe="visitorPasswordGroup" _NdXcHBqO="display:none;"><div class="form-grid"><div class="form-grid-label"><label for="visitorPasswordInput">设置访客密码</label></div><div class="form-grid-control"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="visitorPasswordInput"></div></div></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _NdXcHBqO="align-self: start;"><label>Telegram 通知</label><span class="tooltip-_GvgfxUdT" _cdYvZwue-tooltip="配置后,当有访客访问页面时,您将收到通知。">?</span></div>
            <div class="form-grid-control" _NdXcHBqO="flex-direction: column; align-items: stretch; gap: 8px;"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="botTokenInput" _OavIpmLs="Telegram Bot Token"><input _oasJaeFo="_cSCwgILF" _CJEEJhVe="chatIdInput" _OavIpmLs="Telegram Chat ID"></div>
            <div class="form-grid-control-full"><hr class="modal-section-divider"></div>
            <div class="form-grid-label" _NdXcHBqO="align-self: start;"><label>修改管理员密码</label></div>
            <div class="form-grid-control" _NdXcHBqO="flex-direction: column; align-items: stretch; gap: 8px;"><input _oasJaeFo="_OFRTrClC" _CJEEJhVe="oldPasswordInput" _OavIpmLs="旧密码"><input _oasJaeFo="_OFRTrClC" _CJEEJhVe="newPasswordInput" _OavIpmLs="新密码 (至少6位)"><button _CJEEJhVe="changePasswordBtn" class="btn" _NdXcHBqO="align-self: flex-start; margin-_JpvbqPlC: 0;">确认修改</button></div>
        </div>
      </div>
      <div class="modal-buttons"><button _CJEEJhVe="closeModalBtn" class="btn btn-outline">关闭</button><button _CJEEJhVe="saveParamsBtn" class="btn">保存并刷新</button></div>
    </div>
  </div>
  <div _CJEEJhVe="_DhtIbUQP">
      <div class="_MMIzxgQp-modal-_WWlNljky">
          <div class="_MMIzxgQp-modal-_yLFnakbK"><h3 _CJEEJhVe="appModalTitle"></h3><button class="modal-close-btn">×</button></div>
          <div class="_MMIzxgQp-modal-_hjZCJKyY" _CJEEJhVe="appModalBody"></div>
      </div>
  </div>
  <div _CJEEJhVe="_pxLbaUdb">
      <div class="modal-_WWlNljky">
          <h3>复制订阅链接</h3>
          <div class="button-grid">
              <div class="btn-group"><button class="btn sub-btn" _cdYvZwue-sub-_oasJaeFo="coreEngine">Xray</button><button class="btn _CUSveNnH-btn" _cdYvZwue-sub-_oasJaeFo="coreEngine">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _cdYvZwue-sub-_oasJaeFo="coreProfile">Sing-Box</button><button class="btn _CUSveNnH-btn" _cdYvZwue-sub-_oasJaeFo="coreProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _cdYvZwue-sub-_oasJaeFo="configProfile">Clash</button><button class="btn _CUSveNnH-btn" _cdYvZwue-sub-_oasJaeFo="configProfile">Q</button></div>
              <div class="btn-group"><button class="btn sub-btn" _cdYvZwue-sub-_oasJaeFo="policyProfile">Surge</button><button class="btn _CUSveNnH-btn" _cdYvZwue-sub-_oasJaeFo="policyProfile">Q</button></div>
          </div>
          <div class="modal-buttons" _NdXcHBqO="justify-_WWlNljky: center;"><button class="btn btn-outline" _CJEEJhVe="closeSubModalBtn">关闭</button></div>
      </div>
  </div>
  <div _CJEEJhVe="_lDEMhwxZ">
      <div class="modal-_WWlNljky">
          <img _CJEEJhVe="qrCodeImg" src="" alt="QR Code">
      </div>
  </div>
<script>
    const _LSVbzExQ = {
        isValid: (_SBZQozuN) => _LSVbzExQ.isIPv4(_SBZQozuN) || _LSVbzExQ.isIPv6(_SBZQozuN),
        isIPv4: (_SBZQozuN) => {
            if (typeof _SBZQozuN !== 'string') return false;
            const _pXjsscua = _SBZQozuN.split('.');
            if (_pXjsscua._PZrIbJok !== 4) return false;
            return _pXjsscua.every(_mmDvcrDh => {
                const _XhqKbeuD = parseInt(_mmDvcrDh, 10);
                return !isNaN(_XhqKbeuD) && _XhqKbeuD >= 0 && _XhqKbeuD <= 255 && String(_XhqKbeuD) === _mmDvcrDh;
            });
        },
        isIPv6: (_SBZQozuN) => {
            if (typeof _SBZQozuN !== '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]))$/_FvKzyPek.test(_SBZQozuN);
        },
        toLong4: (_SBZQozuN) => _SBZQozuN.split('.').reduce((acc, octet, _FvKzyPek) => acc + (parseInt(octet) << (8*(3-_FvKzyPek))),0)>>>0,
        fromLong4: (long) => [(long>>>24)&0xFF,(long>>>16)&0xFF,(long>>>8)&0xFF,long&0xFF].join('.'),
        toBigInt6: (_SBZQozuN) => {
            try {
                const _WFjNNeTw = _SBZQozuN.split('/')[0];
                const _pXjsscua = _WFjNNeTw.split('::');
                if (_pXjsscua._PZrIbJok > 2) return 0n;
                let _fwJKuyNO = [];
                if (_pXjsscua[0]) {
                    _fwJKuyNO = _pXjsscua[0].split(':');
                }
                let _yiKiscuO = [];
                if (_pXjsscua._PZrIbJok > 1 && _pXjsscua[1]) {
                    _yiKiscuO = _pXjsscua[1].split(':');
                }
                if (_fwJKuyNO._PZrIbJok + _yiKiscuO._PZrIbJok > 8) return 0n;
                const _NKoDtsfn = 8 - (_fwJKuyNO._PZrIbJok + _yiKiscuO._PZrIbJok);
                const _hvbsTRxu = [
                    ..._fwJKuyNO,
                    ...Array(_NKoDtsfn).fill('0'),
                    ..._yiKiscuO
                ].map(_mmDvcrDh => _mmDvcrDh || '0');
                while(_hvbsTRxu._PZrIbJok < 8) {
                    _hvbsTRxu.push('0');
                }
                let _NPIIYfLN = 0n;
                for (const _mmDvcrDh of _hvbsTRxu) {
                    if (_mmDvcrDh._PZrIbJok > 4) return 0n;
                    const _UERXfQIA = BigInt('0x' + _mmDvcrDh);
                    _NPIIYfLN = (_NPIIYfLN << 16n) | _UERXfQIA;
                }
                return _NPIIYfLN;
            } catch(_XDHRyYUc) {
                return 0n;
            }
        },
        fromBigInt6: (_NPIIYfLN) => {
            if (typeof _NPIIYfLN !== '_NPIIYfLN' || _NPIIYfLN < 0n) return null;
            const _pXjsscua = [];
            for (let _FvKzyPek = 0; _FvKzyPek < 8; _FvKzyPek++) {
                _pXjsscua.unshift((_NPIIYfLN & 0xFFFFn).toString(16));
                _NPIIYfLN >>= 16n;
            }
            let _uchtYjLY = { start: -1, _lIxdcdnJ: 0 };
            let _FPWIfnBc = { start: -1, _lIxdcdnJ: 0 };
            for (let _FvKzyPek = 0; _FvKzyPek < 8; _FvKzyPek++) {
                if (_pXjsscua[_FvKzyPek] === '0') {
                    if (_FPWIfnBc.start === -1) _FPWIfnBc.start = _FvKzyPek;
                    _FPWIfnBc._lIxdcdnJ++;
                } else {
                    if (_FPWIfnBc._lIxdcdnJ > _uchtYjLY._lIxdcdnJ) _uchtYjLY = { ..._FPWIfnBc };
                    _FPWIfnBc = { start: -1, _lIxdcdnJ: 0 };
                }
            }
            if (_FPWIfnBc._lIxdcdnJ > _uchtYjLY._lIxdcdnJ) _uchtYjLY = { ..._FPWIfnBc };
            if (_uchtYjLY._lIxdcdnJ > 1) {
                _pXjsscua.splice(_uchtYjLY.start, _uchtYjLY._lIxdcdnJ, '');
                if (_uchtYjLY.start === 0) _pXjsscua.unshift('');
                if (_uchtYjLY.start + _uchtYjLY._lIxdcdnJ === 8) _pXjsscua.push('');
            }
            return _pXjsscua.join(':');
        },
        cidrToRange: (cidr, _VrddzdDQ = 1) => {
            try {
                const [range, bitsStr] = cidr.split('/');
                const _GDXvqVAK = parseInt(bitsStr, 10);
                const _XIOkpPjt = new Set();
                if (_LSVbzExQ.isIPv4(range)) {
                    if (isNaN(_GDXvqVAK) || _GDXvqVAK < 8 || _GDXvqVAK > 32) return [];
                    if (_GDXvqVAK === 32) return [range];
                    const _xJdDyotE = _LSVbzExQ.toLong4(range);
                    const _tlXvMSSk = (0xFFFFFFFF << (32 - _GDXvqVAK)) >>> 0;
                    const _ZqWQyMai = _xJdDyotE & _tlXvMSSk;
                    const _fQdjshAy = 1 << (32 - _GDXvqVAK);
                    if (_fQdjshAy <= 2) return [];
                    const _GQnNEREU = Math.min(_VrddzdDQ, _fQdjshAy - 2);
                    let _awYaeKpu = 0;
                    while (_XIOkpPjt.size < _GQnNEREU && _awYaeKpu < _GQnNEREU * 5) {
                        const _prZPjIxu = Math.floor(Math.random() * (_fQdjshAy - 2)) + 1;
                        _XIOkpPjt.add(_LSVbzExQ.fromLong4((_ZqWQyMai + _prZPjIxu) >>> 0));
                        _awYaeKpu++;
                    }
                    return Array.from(_XIOkpPjt);
                } else if (_LSVbzExQ.isIPv6(range)) {
                    if (isNaN(_GDXvqVAK) || _GDXvqVAK < 16 || _GDXvqVAK > 128) return [];
                    if (_GDXvqVAK === 128) return [range];
                    const _sIpRjNKj = _LSVbzExQ.toBigInt6(range);
                    const _tlXvMSSk = (2n ** BigInt(128 - _GDXvqVAK) - 1n);
                    const _ZqWQyMai = _sIpRjNKj & ~_tlXvMSSk;
                    const _ehgMvVoh = 2n ** BigInt(128 - _GDXvqVAK);
                    if (_ehgMvVoh <= 2n) return [];
                    let _awYaeKpu = 0;
                    while (_XIOkpPjt.size < _VrddzdDQ && _awYaeKpu < _VrddzdDQ * 5) {
                        const _UYWUgxqF = new Uint8Array(16);
                        (typeof crypto !== 'undefined' ? crypto : self.crypto).getRandomValues(_UYWUgxqF);
                        let _XFkXgfOD = 0n;
                        for (const _oqQOAQao of _UYWUgxqF) {
                            _XFkXgfOD = (_XFkXgfOD << 8n) | BigInt(_oqQOAQao);
                        }
                        const _prZPjIxu = _XFkXgfOD % (_ehgMvVoh - 2n) + 1n;
                        _XIOkpPjt.add(_LSVbzExQ.fromBigInt6(_ZqWQyMai + _prZPjIxu));
                        _awYaeKpu++;
                    }
                    return Array.from(_XIOkpPjt);
                }
                return [];
            } catch(_XDHRyYUc) {
                console.error(`CIDR to range failed for ${cidr}:`, _XDHRyYUc);
                return [];
            }
        }
    };
    function _YacJIOlL(_tWSYalGG, _hCEjXMcV) {
        const _JFIYNjpm = {};
        const _rwtwCKOg = Object._rwtwCKOg(_hCEjXMcV);
        const _pXjsscua = _rwtwCKOg.map(_jxKrjzxN => {
            const _TBclCtjt = _tWSYalGG * (_hCEjXMcV[_jxKrjzxN] / 100);
            return { _jxKrjzxN, _VrddzdDQ: Math.floor(_TBclCtjt), remainder: _TBclCtjt - Math.floor(_TBclCtjt) };
        });
        let _FVdLnDBI = _pXjsscua.reduce((acc, _mmDvcrDh) => acc + _mmDvcrDh._VrddzdDQ, 0);
        _pXjsscua.sort((a, b) => b.remainder - a.remainder);
        let _iUKRBOWS = _tWSYalGG - _FVdLnDBI;
        for (let _FvKzyPek = 0; _FvKzyPek < _iUKRBOWS; _FvKzyPek++) {
            _pXjsscua[_FvKzyPek % _pXjsscua._PZrIbJok]._VrddzdDQ++;
        }
        for (const _mmDvcrDh of _pXjsscua) {
            _JFIYNjpm[_mmDvcrDh._jxKrjzxN] = _mmDvcrDh._VrddzdDQ;
        }
        return _JFIYNjpm;
    }
    const _yppSspxn = __PAGE_DATA_JSON__;
    const _rMwNolcw = _yppSspxn._SIhYDjku;
    const _lTWxXgIA = _yppSspxn.status;
    const _IdjSbFwJ = __ALL_CF_CIDR_LIST_JSON__;
    const _BPeNVEbX = __BALANCED_CF_CIDR_LIST_JSON__;
    const _clzsxglP = __DEFAULT_DOMAINS_LIST_JSON__;
    const _MnlveRKS = __COUNTRY_MAP_JSON__;
    const _ExJWuZLo = _MnlveRKS;
    const _rspieAst = 2500;
    const _ibZEVjTe = navigator.hardwareConcurrency ? Math.min(16, navigator.hardwareConcurrency * 2) : 8;
    const _mmlIuNdL = document.getElementById('_mmlIuNdL');
    const _ywsRoTxB = document.getElementById('_ywsRoTxB');
    const _BZlzcvQD = document.getElementById('status');
    const _BJcuwOQy = document.getElementById('_BJcuwOQy');
    const _CRbqIbiN = document.getElementById('resultsTable').querySelector('tbody');
    const _rrITYfSu = document.getElementById('_rrITYfSu');
    const _zFiKCvkk = document.getElementById('cachedResultsTable').querySelector('tbody');
    const _tRiXCLwo = document.getElementById('notificationTooltip');
    const _AJoYKRqb = document.getElementById('_AJoYKRqb');
    const _BdQALAnn = document.getElementById('_BdQALAnn');
    const _DhtIbUQP = document.getElementById('_DhtIbUQP');
    const _pxLbaUdb = document.getElementById('_pxLbaUdb');
    const _lDEMhwxZ = document.getElementById('_lDEMhwxZ');
    const _hhzFexSv = document.getElementById('_hhzFexSv');
    const _cWAJZZfk = document.getElementById('_cWAJZZfk');
    let _rPXLKUNf = null;
    let _tikeQpPn = null;
    let _ZkvGluik = [];
    let _OyLjvdfX = false;
    let _gLIQnhDe = null;
    function _baGIwPqG(_SCiQlpYP, _rCFacnvF) {
        const _XbAAkbGH=parseInt(_SCiQlpYP.slice(1),16),t=_rCFacnvF<0?0:255,p=_rCFacnvF<0?_rCFacnvF*-1:_rCFacnvF,R=_XbAAkbGH>>16,G=_XbAAkbGH>>8&0x00FF,B=_XbAAkbGH&0x0000FF;
        const _oWQRzEEk = Math.round((t-R)*p)+R;
        const _eyFWwqMm = Math.round((t-G)*p)+G;
        const _HkSMYkzB = Math.round((t-B)*p)+B;
        return `rgb(${_oWQRzEEk.toString()}, ${_eyFWwqMm.toString()}, ${_HkSMYkzB.toString()})`;
    }
    function _upklsHtN(_MRnBKwIx) {
        const _tsctTZBK = _hQuhDIjM(_MRnBKwIx.primaryColor);
        if(_tsctTZBK) {
            document.documentElement._NdXcHBqO.setProperty('--primary-_xwJDCZIY-rgb', `${_tsctTZBK.r},${_tsctTZBK.g},${_tsctTZBK.b}`);
        }
        document.documentElement._NdXcHBqO.setProperty('--primary-_xwJDCZIY', _MRnBKwIx.primaryColor);
        document.documentElement._NdXcHBqO.setProperty('--primary-hover', _baGIwPqG(_MRnBKwIx.primaryColor, -0.1));
        document.documentElement._NdXcHBqO.setProperty('--primary-gradient-start', _baGIwPqG(_MRnBKwIx.primaryColor, 0.1));
        document.documentElement._NdXcHBqO.setProperty('--primary-gradient-end', _baGIwPqG(_MRnBKwIx.primaryColor, -0.1));
        document.getElementById('pageTitle').innerText = _MRnBKwIx.texts.title;
        document.title = _MRnBKwIx.texts.title;
        _AJoYKRqb.innerText = _rPXLKUNf ? _MRnBKwIx.texts.loginButtonSuccess : _MRnBKwIx.texts.loginButton;
        _AJoYKRqb._NdXcHBqO._xwJDCZIY = _MRnBKwIx.colors.loginButton;
        document.getElementById('appDownloadTitleEl').innerText = _MRnBKwIx.texts.appDownloadTitle;
        document.getElementById('liveTitleEl').innerText = _MRnBKwIx.texts.liveTitle;
        document.getElementById('liveTitleEl')._NdXcHBqO._xwJDCZIY = _MRnBKwIx.colors.liveTitle;
        document.getElementById('cachedTitleEl').innerText = _MRnBKwIx.texts.cachedTitle;
        document.getElementById('cachedTitleEl')._NdXcHBqO._xwJDCZIY = _MRnBKwIx.colors.cachedTitle;
        const _KtriKcqx = ['tableHeader1El', 'tableHeader2El', 'tableHeader3El', 'tableHeader4El', 'tableHeader5El', 'tableHeader6El', 'tableHeader7El'];
        _KtriKcqx.forEach((_CJEEJhVe, _zhxfSRNE) => {
            const _LThmeOwq = document.getElementById(_CJEEJhVe);
            if (_LThmeOwq) _LThmeOwq.innerText = _MRnBKwIx.texts[`tableHeader${_zhxfSRNE + 1}`] || '';
        });
        const _mtsNwxWs = ['cachedTableHeader1El', 'cachedTableHeader2El', 'cachedTableHeader3El', 'cachedTableHeader4El', 'cachedTableHeader5El', 'cachedTableHeader6El', 'cachedTableHeader7El'];
        _mtsNwxWs.forEach((_CJEEJhVe, _zhxfSRNE) => {
             const _LThmeOwq = document.getElementById(_CJEEJhVe);
             if (_LThmeOwq) _LThmeOwq.innerText = _rMwNolcw.texts[`tableHeader${_zhxfSRNE + 1}`] || '';
        });
        document.querySelectorAll('th').forEach(th => th._NdXcHBqO._xwJDCZIY = _MRnBKwIx.colors.tableHeader);
        document._hjZCJKyY.className = '';
        document._hjZCJKyY.classList.add(_MRnBKwIx.theme);
        if (['theme-particles-glass', 'theme-modern-glass', 'theme-aurora-glass', 'theme-cyberpunk-glass'].includes(_MRnBKwIx.theme)) {
            document._hjZCJKyY.classList.add('glassy-components');
        }
        document._hjZCJKyY._NdXcHBqO.backgroundImage = '';
        _KlymeuZa();
        if (_MRnBKwIx.theme.includes('particles') || _MRnBKwIx.theme.includes('glass')) {
            _fJlMtZcO(_MRnBKwIx.particleColor);
        } else if (_MRnBKwIx.theme.includes('bing')) {
            document._hjZCJKyY._NdXcHBqO.backgroundImage = '_CZNFhloE(/bing-wallpaper)';
        }
    }
    function _AnrgtvNB() {
        _rPXLKUNf = null;
        if(_tikeQpPn) clearTimeout(_tikeQpPn);
        _upklsHtN(_rMwNolcw);
        _paXMrOpr("登录已超时,请重新登录。", "warning");
    }
    async function _zKqeOwZX() {
        if (_rPXLKUNf) {
            _FDfMPlwo();
            return;
        }
        const _BceHuWce = prompt('请输入管理员密码:');
        if (!_BceHuWce) return;
        try {
            const _AWDKjORI = await fetch('/api/verify-_OFRTrClC', {
                method: 'POST',
                _KtriKcqx: { 'Content-Type': 'application/json' },
                _hjZCJKyY: JSON.stringify({ _OFRTrClC: _BceHuWce })
            });
            const _YMMuIrxp = await _AWDKjORI.json();
            if (_YMMuIrxp.success) {
                _rPXLKUNf = _BceHuWce;
                _paXMrOpr("登录成功!有效期5分钟。", "success");
                if (_tikeQpPn) clearTimeout(_tikeQpPn);
                _tikeQpPn = setTimeout(_AnrgtvNB, 5 * 60 * 1000);
                _upklsHtN(_rMwNolcw);
                _FDfMPlwo();
            } else {
                throw new Error(_YMMuIrxp._lvrOUAjH || '密码验证失败');
            }
        } catch (_XDHRyYUc) {
            _paXMrOpr(`登录失败: ${_XDHRyYUc._lvrOUAjH}`, "error");
        }
    }
    function _ZLCsIuLk() {
        if (!_lTWxXgIA._fcsZCsQg) {
            _hhzFexSv._NdXcHBqO.display = 'flex';
            document.getElementById('setInitialPasswordBtn').addEventListener('click', async () => {
                const _OFRTrClC = document.getElementById('initialPassword')._UERXfQIA;
                const _HPLCeXlA = document.getElementById('confirmPassword')._UERXfQIA;
                if (_OFRTrClC !== _HPLCeXlA) {
                    _paXMrOpr("两次输入的密码不一致!", "error");
                    return;
                }
                if (_OFRTrClC._PZrIbJok < 6) {
                    _paXMrOpr("密码长度不能少于6位!", "error");
                    return;
                }
                try {
                    const _AWDKjORI = await fetch('/api/_nhUPBLbC-_OFRTrClC', {
                        method: 'POST',
                        _KtriKcqx: { 'Content-Type': 'application/json' },
                        _hjZCJKyY: JSON.stringify({ _OFRTrClC })
                    });
                    const _YMMuIrxp = await _AWDKjORI.json();
                    if (_YMMuIrxp.success) {
                        _paXMrOpr(_YMMuIrxp._lvrOUAjH, "success");
                        setTimeout(() => _WbAofRnc.reload(), 1500);
                    } else {
                        throw new Error(_YMMuIrxp._lvrOUAjH);
                    }
                } catch(_XDHRyYUc) {
                    _paXMrOpr(`设置密码失败: ${_XDHRyYUc._lvrOUAjH}`, "error");
                }
            });
            return;
        }
        _AJoYKRqb.addEventListener('click', _zKqeOwZX);
        document.getElementById('closeModalBtn').addEventListener('click', () => { _BdQALAnn._NdXcHBqO.display = 'none'; });
        _BdQALAnn.addEventListener('click', (_XDHRyYUc) => { if (_XDHRyYUc.target === _BdQALAnn) _BdQALAnn._NdXcHBqO.display = 'none'; });
        
        document.getElementById('enableAllSourcesCheckbox').addEventListener('change', function() {
            if (this.checked) {
                document.querySelectorAll('#fine-grained-sources-_CIjYUUFU .fine-grained-_wonlxsxx-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-_CIjYUUFU .fine-grained-_wonlxsxx-cb').forEach(cb => cb.checked = false);
                document.getElementById('enableAllSourcesCheckbox').checked = false;
                this.checked = false;
            }
        });

        document.getElementById('saveParamsBtn').addEventListener('click', async () => {
            if (!_rPXLKUNf) {
                _paXMrOpr("请先通过点击右上角按钮输入密码。", "error");
                return;
            }
            const _IHWGcyvd = [];
            document.querySelectorAll('#custom-fields-_CIjYUUFU .custom-field-_BySXiXpg').forEach(_BySXiXpg => {
                const _POYWeYWk = _BySXiXpg.querySelector('.custom-field-_POYWeYWk')._UERXfQIA.trim();
                const _UERXfQIA = _BySXiXpg.querySelector('.custom-field-_UERXfQIA')._UERXfQIA.trim();
                if (_POYWeYWk) _IHWGcyvd.push({ _POYWeYWk, _UERXfQIA });
            });
            const _llgiCtvs = [];
            document.querySelectorAll('#parameter-sets-_CIjYUUFU .parameter-_nhUPBLbC-_BySXiXpg').forEach(_BySXiXpg => {
                const _POYWeYWk = _BySXiXpg.querySelector('.param-_nhUPBLbC-_POYWeYWk')._UERXfQIA.trim();
                const _NsYqtUkv = _BySXiXpg.querySelector('.param-_nhUPBLbC-_NsYqtUkv')._UERXfQIA.trim();
                const _yfeWinCP = _BySXiXpg.querySelector('.param-_nhUPBLbC-_yfeWinCP')._UERXfQIA.trim();
                const _IFuIYdZv = _BySXiXpg.querySelector('.param-_nhUPBLbC-_IFuIYdZv')._UERXfQIA.trim();
                if(_POYWeYWk) _llgiCtvs.push({ _POYWeYWk, _NsYqtUkv, '_yfeWinCP': _yfeWinCP, _IFuIYdZv });
            });
            const _fLOiDxeN = [];
            document.querySelectorAll('#fine-grained-sources-_CIjYUUFU .fine-grained-_GzSPOqDJ-_BySXiXpg').forEach(_BySXiXpg => {
                const _WbAofRnc = _BySXiXpg.querySelector('.fine-grained-_WbAofRnc')._UERXfQIA.trim();
                const _XIOkpPjt = _BySXiXpg.querySelector('.fine-grained-_XIOkpPjt')._UERXfQIA.trim();
                const _wonlxsxx = _BySXiXpg.querySelector('.fine-grained-_wonlxsxx-cb').checked;
                const _ITXKZsmp = parseInt(_BySXiXpg.querySelector('.fine-grained-_ITXKZsmp')._UERXfQIA, 10) || 0;
                const _zydfLqDP = _BySXiXpg.querySelector('.use-_POYWeYWk-as-_WbAofRnc-cb').checked;
                if (_WbAofRnc && _XIOkpPjt) {
                    _fLOiDxeN.push({ _WbAofRnc, _XIOkpPjt, _wonlxsxx, _ITXKZsmp, _zydfLqDP });
                }
            });
            
            let _bdRZfWea = parseInt(document.getElementById('subscriptionIdLength')._UERXfQIA, 10);
            if (isNaN(_bdRZfWea) || _bdRZfWea < 2) _bdRZfWea = 2;
            if (_bdRZfWea > 128) _bdRZfWea = 128;

            const _VoXqmObX = {
                theme: document.getElementById('themeSelect')._UERXfQIA,
                primaryColor: document.getElementById('primaryColorInput')._UERXfQIA,
                particleColor: document.getElementById('particleColorInput')._UERXfQIA,
                useResolvedDomains: document.getElementById('useResolvedDomainsCheckbox').checked,
                resolvedDomains: document.getElementById('resolvedDomainsInput')._UERXfQIA,
                sampleSize: parseInt(document.getElementById('sampleSizeInput')._UERXfQIA, 10) || 1000,
                topN: parseInt(document.getElementById('topNInput')._UERXfQIA, 10) || 15,
                rttRandomMin: parseInt(document.getElementById('latencyRangeMinInput')._UERXfQIA, 10) || 0,
                rttRandomMax: parseInt(document.getElementById('latencyRangeMaxInput')._UERXfQIA, 10) || 0,
                _cjDlkyii: document.getElementById('converterServiceUrlInput')._UERXfQIA.trim(),
                subscriptionId: {
                    _PZrIbJok: _bdRZfWea,
                    _zYvaPzUK: document.getElementById('subscriptionIdCharset')._UERXfQIA.trim()
                },
                api: {
                    _wonlxsxx: document.getElementById('enableApiCheckbox').checked,
                    _lvrOUAjH: document.getElementById('apiMessageInput')._UERXfQIA || '维护中...',
                },
                ispFilter: { 
                    _wonlxsxx: document.getElementById('enableIspFilterCheckbox').checked 
                },
                geoLocation: {
                    retries: parseInt(document.getElementById('geoLocationRetriesInput')._UERXfQIA, 10) || 0,
                    filterUnknown: document.getElementById('filterUnknownGeoCheckbox').checked
                },
                streamer: {
                    _wonlxsxx: document.getElementById('enableStreamerCheckbox').checked
                },
                websocketStreamer: {
                    _wonlxsxx: document.getElementById('enableWebsocketStreamerCheckbox').checked,
                    _CZNFhloE: document.getElementById('websocketStreamerUrlInput')._UERXfQIA.trim()
                },
                visitorPassword: {
                    _wonlxsxx: document.getElementById('enableVisitorPasswordCheckbox').checked,
                    _OFRTrClC: document.getElementById('visitorPasswordInput')._UERXfQIA.trim()
                },
                customSubPath: {
                    _wonlxsxx: document.getElementById('enableCustomSubPathCheckbox').checked,
                    _IFuIYdZv: document.getElementById('customSubPathInput')._UERXfQIA.trim()
                },
                itemLink: {
                    _wonlxsxx: document.getElementById('enableItemLinkCheckbox').checked,
                    template: document.getElementById('itemLinkTemplateInput')._UERXfQIA,
                    selectionMode: document.getElementById('parameterSelectionMode')._UERXfQIA,
                    _llgiCtvs: _llgiCtvs,
                    _IHWGcyvd: _IHWGcyvd,
                },
                dataFeeds: {
                    universalFallbackAddress: document.getElementById('universalFallbackAddressInput')._UERXfQIA.trim(),
                },
                announcement: {
                    popup: {
                        _wonlxsxx: document.getElementById('enablePopup').checked,
                        _cSCwgILF: document.getElementById('announcementText')._UERXfQIA,
                        _hdwCeStK: parseInt(document.getElementById('popupDuration')._UERXfQIA, 10) || 5
                    },
                    marquee: {
                        _wonlxsxx: document.getElementById('enableMarquee').checked,
                        _cSCwgILF: document.getElementById('announcementText')._UERXfQIA
                    }
                },
                fineGrained: {
                    _wonlxsxx: true,
                    sources: _fLOiDxeN
                },
                customNodes: {
                    _wonlxsxx: document.getElementById('enableCustomNodesCheckbox').checked,
                    list: document.getElementById('customNodesInput')._UERXfQIA
                },
                texts: {
                    title: document.getElementById('textInput_title')._UERXfQIA,
                    loginButton: document.getElementById('textInput_loginButton')._UERXfQIA,
                    loginButtonSuccess: '修改参数',
                    appDownloadTitle: document.getElementById('textInput_appDownloadTitle')._UERXfQIA,
                    liveTitle: document.getElementById('textInput_liveTitle')._UERXfQIA,
                    cachedTitle: document.getElementById('textInput_cachedTitle')._UERXfQIA,
                },
                colors: {
                    title: document.getElementById('colorInput_title')._UERXfQIA,
                    loginButton: document.getElementById('colorInput_loginButton')._UERXfQIA,
                    liveTitle: document.getElementById('colorInput_liveTitle')._UERXfQIA,
                    cachedTitle: document.getElementById('colorInput_cachedTitle')._UERXfQIA,
                    tableHeader: document.getElementById('colorInput_tableHeader')._UERXfQIA,
                },
                telegram: {
                    bot_token: document.getElementById('botTokenInput')._UERXfQIA.trim(),
                    chat_id: document.getElementById('chatIdInput')._UERXfQIA.trim(),
                },
            };
            try {
                const _AWDKjORI = await fetch('/api/_SIhYDjku', {
                    method: 'POST',
                    _KtriKcqx: { 'Content-Type': 'application/json' },
                    _hjZCJKyY: JSON.stringify({ _SIhYDjku: _VoXqmObX, adminPassword: _rPXLKUNf })
                });
                const _YMMuIrxp = await _AWDKjORI.json();
                if (_AWDKjORI.ok && _YMMuIrxp.success) {
                    _paXMrOpr("配置已保存,正在刷新...", "success");
                    setTimeout(() => _WbAofRnc.reload(), 1500);
                } else {
                    throw new Error(_YMMuIrxp._lvrOUAjH || '未知错误');
                }
            } catch (_XDHRyYUc) {
                _paXMrOpr(`操作失败: ${_XDHRyYUc._lvrOUAjH}`, "error");
                if (String(_XDHRyYUc._lvrOUAjH).includes("密码错误")) {
                    _AnrgtvNB();
                }
            }
        });
        document.getElementById('changePasswordBtn').addEventListener('click', async () => {
            const _BEEpFAEQ = document.getElementById('oldPasswordInput')._UERXfQIA;
            const _DtKKARUY = document.getElementById('newPasswordInput')._UERXfQIA;
            if (!_BEEpFAEQ || !_DtKKARUY) {
                _paXMrOpr("新旧密码均不能为空!", "error");
                return;
            }
             try {
                const _AWDKjORI = await fetch('/api/change-_OFRTrClC', {
                    method: 'POST',
                    _KtriKcqx: { 'Content-Type': 'application/json' },
                    _hjZCJKyY: JSON.stringify({ _BEEpFAEQ, _DtKKARUY })
                });
                const _YMMuIrxp = await _AWDKjORI.json();
                if (_YMMuIrxp.success) {
                    _paXMrOpr(_YMMuIrxp._lvrOUAjH, "success");
                    document.getElementById('oldPasswordInput')._UERXfQIA = '';
                    document.getElementById('newPasswordInput')._UERXfQIA = '';
                    _rPXLKUNf = _DtKKARUY;
                } else {
                    throw new Error(_YMMuIrxp._lvrOUAjH);
                }
            } catch(_XDHRyYUc) {
                _paXMrOpr(`修改密码失败: ${_XDHRyYUc._lvrOUAjH}`, "error");
            }
        });
        document.getElementById('useResolvedDomainsCheckbox').addEventListener('change', (_XDHRyYUc) => {
            document.getElementById('resolvedDomainsGroup')._NdXcHBqO.display = _XDHRyYUc.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomNodesCheckbox').addEventListener('change', (_XDHRyYUc) => {
            document.getElementById('customNodesGroup')._NdXcHBqO.display = _XDHRyYUc.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableApiCheckbox').addEventListener('change', (_XDHRyYUc) => {
            document.getElementById('apiConfigGroup')._NdXcHBqO.display = _XDHRyYUc.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableItemLinkCheckbox').addEventListener('change', (_XDHRyYUc) => {
            document.getElementById('itemLinkConfigGroup')._NdXcHBqO.display = _XDHRyYUc.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableWebsocketStreamerCheckbox').addEventListener('change', (_XDHRyYUc) => {
            document.getElementById('websocketStreamerGroup')._NdXcHBqO.display = _XDHRyYUc.target.checked ? 'block' : 'none';
            const _dDglONsA = document.querySelector('#parameter-sets-_CIjYUUFU .param-_nhUPBLbC-_IFuIYdZv');
            if (_dDglONsA) {
                if (_XDHRyYUc.target.checked) {
                    _dDglONsA._UERXfQIA = '/snippets?_SBZQozuN=endpointAddress:_xmwLFUDv(443)&nat64=6to4';
                } else {
                    _dDglONsA._UERXfQIA = '/?ed=2560';
                }
            }
        });
         document.getElementById('add-custom-field-btn').addEventListener('click', () => {
             _jBQFrNxf('', '');
        });
        document.getElementById('add-parameter-_nhUPBLbC-btn').addEventListener('click', () => {
            const _VrddzdDQ = document.querySelectorAll('.parameter-_nhUPBLbC-_BySXiXpg')._PZrIbJok + 1;
            _qhISHYHU({_POYWeYWk: `配置${_VrddzdDQ}`, _NsYqtUkv: '', _yfeWinCP: '', _IFuIYdZv: ''});
            _gyfDdeCY();
        });
         document.getElementById('add-fine-grained-_GzSPOqDJ-btn').addEventListener('click', () => {
             _ZPvtVjJN({ _WbAofRnc: '', _XIOkpPjt: '', _wonlxsxx: true, _ITXKZsmp: 50, _zydfLqDP: false });
        });
        document.getElementById('enableVisitorPasswordCheckbox').addEventListener('change', (_XDHRyYUc) => {
            document.getElementById('visitorPasswordGroup')._NdXcHBqO.display = _XDHRyYUc.target.checked ? 'block' : 'none';
        });
        document.getElementById('enableCustomSubPathCheckbox').addEventListener('change', (_XDHRyYUc) => {
            document.getElementById('customSubPathGroup')._NdXcHBqO.display = _XDHRyYUc.target.checked ? 'block' : 'none';
        });
        document.getElementById('enablePopup').addEventListener('change', (_XDHRyYUc) => {
            document.getElementById('popupDurationContainer')._NdXcHBqO.display = _XDHRyYUc.target.checked ? 'flex' : 'none';
        });
    }
    function _jBQFrNxf(_POYWeYWk, _UERXfQIA) {
        const _CIjYUUFU = document.getElementById('custom-fields-_CIjYUUFU');
        const _qgdbjNJD = document.createElement('div');
        _qgdbjNJD.className = 'form-grid custom-field-_BySXiXpg';
        _qgdbjNJD._NdXcHBqO = 'grid-template-columns: 1fr 1fr auto; gap: 5px; margin-bottom: 5px;';
        _qgdbjNJD.innerHTML = `
            <input _oasJaeFo="_cSCwgILF" class="custom-field-_POYWeYWk" _OavIpmLs="占位符名称" _UERXfQIA="${_POYWeYWk}">
            <input _oasJaeFo="_cSCwgILF" class="custom-field-_UERXfQIA" _OavIpmLs="值" _UERXfQIA="${_UERXfQIA}">
            <button _oasJaeFo="button" class="btn btn-outline" onclick="this.closest('.form-grid').remove()">删除</button>
        `;
        _CIjYUUFU.appendChild(_qgdbjNJD);
    }
    function _qhISHYHU(_nhUPBLbC) {
        const _CIjYUUFU = document.getElementById('parameter-sets-_CIjYUUFU');
        const _qgdbjNJD = document.createElement('div');
        _qgdbjNJD.className = 'parameter-_nhUPBLbC-_BySXiXpg';
        _qgdbjNJD.innerHTML = `
            <div class="parameter-_nhUPBLbC-_yLFnakbK">
                <input _oasJaeFo="_cSCwgILF" class="param-_nhUPBLbC-_POYWeYWk" _OavIpmLs="配置名称" _UERXfQIA="${_nhUPBLbC._POYWeYWk}" oninput="_gyfDdeCY()">
                <button _oasJaeFo="button" class="btn btn-outline" onclick="this.closest('.parameter-_nhUPBLbC-_BySXiXpg').remove(); _gyfDdeCY();">删除</button>
            </div>
            <div class="form-grid">
                <div class="form-grid-label"><label>Host</label></div><div class="form-grid-control"><input _oasJaeFo="_cSCwgILF" class="param-_nhUPBLbC-_NsYqtUkv" _UERXfQIA="${_nhUPBLbC._NsYqtUkv || ''}"></div>
                <div class="form-grid-label"><label>ID</label></div><div class="form-grid-control"><input _oasJaeFo="_cSCwgILF" class="param-_nhUPBLbC-_yfeWinCP" _UERXfQIA="${_nhUPBLbC['_yfeWinCP'] || ''}"></div>
                <div class="form-grid-label"><label>Path</label></div><div class="form-grid-control"><input _oasJaeFo="_cSCwgILF" class="param-_nhUPBLbC-_IFuIYdZv" _UERXfQIA="${_nhUPBLbC._IFuIYdZv || ''}"></div>
            </div>
        `;
        _CIjYUUFU.appendChild(_qgdbjNJD);
    }
    function _gyfDdeCY() {
        const _HxlHHoxG = document.getElementById('parameterSelectionMode');
        const _diHWzYaB = _HxlHHoxG._UERXfQIA;
        _HxlHHoxG.innerHTML = '';
        const _mNxncneO = document.createElement('_fwQrsaGE');
        _mNxncneO._UERXfQIA = 'random';
        _mNxncneO.textContent = '随机轮询';
        _HxlHHoxG.appendChild(_mNxncneO);
        const _oqMBKmAe = document.createElement('_fwQrsaGE');
        _oqMBKmAe._UERXfQIA = 'first';
        _oqMBKmAe.textContent = '使用第一组';
        _HxlHHoxG.appendChild(_oqMBKmAe);
        document.querySelectorAll('.param-_nhUPBLbC-_POYWeYWk').forEach(input => {
            const _POYWeYWk = input._UERXfQIA.trim();
            if (_POYWeYWk) {
                const _fwQrsaGE = document.createElement('_fwQrsaGE');
                _fwQrsaGE._UERXfQIA = _POYWeYWk;
                _fwQrsaGE.textContent = `指定: ${_POYWeYWk}`;
                _HxlHHoxG.appendChild(_fwQrsaGE);
            }
        });
        if (Array.from(_HxlHHoxG.options).some(opt => opt._UERXfQIA === _diHWzYaB)) {
            _HxlHHoxG._UERXfQIA = _diHWzYaB;
        } else {
            _HxlHHoxG._UERXfQIA = 'random';
        }
    }
    function _ZPvtVjJN(_GzSPOqDJ) {
        const _CIjYUUFU = document.getElementById('fine-grained-sources-_CIjYUUFU');
        const _qgdbjNJD = document.createElement('div');
        _qgdbjNJD.className = 'fine-grained-_GzSPOqDJ-_BySXiXpg parameter-_nhUPBLbC-_BySXiXpg';
        _qgdbjNJD._NdXcHBqO.padding = '1rem';
        const _VrFlGNmj = _GzSPOqDJ._zydfLqDP ? 'checked' : '';
        const _QJmIiOfG = !_GzSPOqDJ._zydfLqDP ? 'checked' : '';
        const _ulStfaRB = _GzSPOqDJ._wonlxsxx ? 'checked' : '';
        _qgdbjNJD.innerHTML = `
            <div _NdXcHBqO="display: grid; grid-template-columns: 1fr auto auto; gap: 10px; align-items: center; margin-bottom: 1rem;">
                <input _oasJaeFo="_cSCwgILF" class="fine-grained-_WbAofRnc" _OavIpmLs="地区名称 (如: 香港)" _UERXfQIA="${_GzSPOqDJ._WbAofRnc || ''}">
                <div _NdXcHBqO="display: flex; align-items: center; gap: 5px;"><input _oasJaeFo="checkbox" class="fine-grained-_wonlxsxx-cb" ${_ulStfaRB}><label>启用</label></div>
                <button _oasJaeFo="button" class="btn btn-outline" onclick="this.closest('.fine-grained-_GzSPOqDJ-_BySXiXpg').remove()">删除</button>
            </div>
            <textarea class="fine-grained-_XIOkpPjt" _OavIpmLs="IP源 (每行一个IP、CIDR或URL)" _VOfjUwbb="3" _NdXcHBqO="_vwrrKRSb:100%;">${_GzSPOqDJ._XIOkpPjt || ''}</textarea>
            <div class="fine-grained-options" _NdXcHBqO="justify-_WWlNljky: space-between;">
                <div _NdXcHBqO="display: flex; gap: 1rem;">
                    <label><input _oasJaeFo="checkbox" class="query-_wVwmCxEU-cb" ${_QJmIiOfG}>查询真实归属地</label>
                    <label><input _oasJaeFo="checkbox" class="use-_POYWeYWk-as-_WbAofRnc-cb" ${_VrFlGNmj}>使用地区名称作为归属地</label>
                </div>
                <div _NdXcHBqO="display: flex; align-items: center; gap: 5px;"><input _oasJaeFo="number" class="fine-grained-_ITXKZsmp _ITXKZsmp-input" _UERXfQIA="${_GzSPOqDJ._ITXKZsmp || 0}" min="0" max="100"><span>%</span></div>
            </div>
        `;
        const _RcZemHGW = _qgdbjNJD.querySelector('.query-_wVwmCxEU-cb');
        const _uGSipPYa = _qgdbjNJD.querySelector('.use-_POYWeYWk-as-_WbAofRnc-cb');
        _RcZemHGW.addEventListener('change', () => {
            if (_RcZemHGW.checked) {
                _uGSipPYa.checked = false;
            } else if (!_uGSipPYa.checked) {
                _RcZemHGW.checked = true;
            }
        });
        _uGSipPYa.addEventListener('change', () => {
            if (_uGSipPYa.checked) {
                _RcZemHGW.checked = false;
            } else if (!_uGSipPYa.checked) {
                _uGSipPYa.checked = true;
            }
        });
        _CIjYUUFU.appendChild(_qgdbjNJD);
    }
    function _FDfMPlwo() {
        const _MRnBKwIx = _rMwNolcw;
        document.getElementById('themeSelect')._UERXfQIA = _MRnBKwIx.theme;
        document.getElementById('primaryColorInput')._UERXfQIA = _MRnBKwIx.primaryColor;
        document.getElementById('particleColorInput')._UERXfQIA = _MRnBKwIx.particleColor;
        document.getElementById('useResolvedDomainsCheckbox').checked = _MRnBKwIx.useResolvedDomains;
        document.getElementById('resolvedDomainsInput')._OavIpmLs = '留空则使用内置默认域名';
        document.getElementById('resolvedDomainsInput')._UERXfQIA = _MRnBKwIx.resolvedDomains || '';
        document.getElementById('resolvedDomainsGroup')._NdXcHBqO.display = _MRnBKwIx.useResolvedDomains ? 'block' : 'none';
        document.getElementById('enableCustomNodesCheckbox').checked = _MRnBKwIx.customNodes._wonlxsxx;
        document.getElementById('customNodesInput')._UERXfQIA = _MRnBKwIx.customNodes.list || '';
        document.getElementById('customNodesGroup')._NdXcHBqO.display = _MRnBKwIx.customNodes._wonlxsxx ? 'block' : 'none';
        document.getElementById('converterServiceUrlInput')._UERXfQIA = _MRnBKwIx._cjDlkyii || '';
        document.getElementById('subscriptionIdLength')._UERXfQIA = _MRnBKwIx.subscriptionId._PZrIbJok;
        document.getElementById('subscriptionIdCharset')._UERXfQIA = _MRnBKwIx.subscriptionId._zYvaPzUK;
        document.getElementById('enableItemLinkCheckbox').checked = _MRnBKwIx.itemLink._wonlxsxx;
        document.getElementById('itemLinkConfigGroup')._NdXcHBqO.display = _MRnBKwIx.itemLink._wonlxsxx ? 'block' : 'none';
        document.getElementById('itemLinkTemplateInput')._UERXfQIA = _MRnBKwIx.itemLink.template;
        const _UyVEOepn = document.getElementById('parameter-sets-_CIjYUUFU');
        _UyVEOepn.innerHTML = '';
        if (_MRnBKwIx.itemLink._llgiCtvs && Array.isArray(_MRnBKwIx.itemLink._llgiCtvs)) {
            _MRnBKwIx.itemLink._llgiCtvs.forEach(_nhUPBLbC => _qhISHYHU(_nhUPBLbC));
        }
        _gyfDdeCY();
        document.getElementById('parameterSelectionMode')._UERXfQIA = _MRnBKwIx.itemLink.selectionMode || 'random';
        const _dDglONsA = document.querySelector('#parameter-sets-_CIjYUUFU .param-_nhUPBLbC-_IFuIYdZv');
        if (_dDglONsA && _MRnBKwIx.websocketStreamer && _MRnBKwIx.websocketStreamer._wonlxsxx) {
            _dDglONsA._UERXfQIA = '/snippets?_SBZQozuN=endpointAddress:_xmwLFUDv(443)&nat64=6to4';
        }
        const _uKpgRxdt = document.getElementById('custom-fields-_CIjYUUFU');
        _uKpgRxdt.innerHTML = '';
        if (_MRnBKwIx.itemLink._IHWGcyvd && Array.isArray(_MRnBKwIx.itemLink._IHWGcyvd)) {
            _MRnBKwIx.itemLink._IHWGcyvd.forEach(field => _jBQFrNxf(field._POYWeYWk, field._UERXfQIA));
        }
        document.getElementById('universalFallbackAddressInput')._UERXfQIA = _MRnBKwIx.dataFeeds.universalFallbackAddress || '';
        const _ZHLtaOxL = _MRnBKwIx.websocketStreamer && _MRnBKwIx.websocketStreamer._wonlxsxx;
        document.getElementById('enableWebsocketStreamerCheckbox').checked = _ZHLtaOxL;
        document.getElementById('websocketStreamerUrlInput')._UERXfQIA = _MRnBKwIx.websocketStreamer ? _MRnBKwIx.websocketStreamer._CZNFhloE : 'https://snippets.neib.cn';
        document.getElementById('websocketStreamerGroup')._NdXcHBqO.display = _ZHLtaOxL ? 'block' : 'none';
        const _URryNpAO = _MRnBKwIx.announcement || {};
        document.getElementById('announcementText')._UERXfQIA = (_URryNpAO.popup && _URryNpAO.popup._cSCwgILF) || (_URryNpAO.marquee && _URryNpAO.marquee._cSCwgILF) || '';
        document.getElementById('enableMarquee').checked = _URryNpAO.marquee && _URryNpAO.marquee._wonlxsxx;
        document.getElementById('enablePopup').checked = _URryNpAO.popup && _URryNpAO.popup._wonlxsxx;
        document.getElementById('popupDuration')._UERXfQIA = (_URryNpAO.popup && _URryNpAO.popup._hdwCeStK) || 5;
        document.getElementById('popupDurationContainer')._NdXcHBqO.display = (_URryNpAO.popup && _URryNpAO.popup._wonlxsxx) ? 'flex' : 'none';
        const _yoFFdJEM = document.getElementById('fine-grained-sources-_CIjYUUFU');
        _yoFFdJEM.innerHTML = '';
        if (_MRnBKwIx.fineGrained.sources && Array.isArray(_MRnBKwIx.fineGrained.sources)) {
            _MRnBKwIx.fineGrained.sources.forEach(_GzSPOqDJ => _ZPvtVjJN(_GzSPOqDJ));
        }
        document.getElementById('sampleSizeInput')._UERXfQIA = _MRnBKwIx.sampleSize;
        document.getElementById('topNInput')._UERXfQIA = _MRnBKwIx.topN;
        document.getElementById('latencyRangeMinInput')._UERXfQIA = _MRnBKwIx.rttRandomMin;
        document.getElementById('latencyRangeMaxInput')._UERXfQIA = _MRnBKwIx.rttRandomMax;
        document.getElementById('enableIspFilterCheckbox').checked = _MRnBKwIx.ispFilter._wonlxsxx;
        const _EXPxvXiI = _MRnBKwIx.geoLocation || { retries: 1, filterUnknown: false };
        document.getElementById('geoLocationRetriesInput')._UERXfQIA = _EXPxvXiI.retries;
        document.getElementById('filterUnknownGeoCheckbox').checked = _EXPxvXiI.filterUnknown;
        document.getElementById('enableStreamerCheckbox').checked = _MRnBKwIx.streamer._wonlxsxx;
        document.getElementById('enableApiCheckbox').checked = _MRnBKwIx.api._wonlxsxx;
        document.getElementById('apiConfigGroup')._NdXcHBqO.display = _MRnBKwIx.api._wonlxsxx ? 'block' : 'none';
        document.getElementById('apiMessageInput')._UERXfQIA = _MRnBKwIx.api._lvrOUAjH;
        const _VucmWLmG = _MRnBKwIx.customSubPath && _MRnBKwIx.customSubPath._wonlxsxx;
        document.getElementById('enableCustomSubPathCheckbox').checked = _VucmWLmG;
        document.getElementById('customSubPathInput')._UERXfQIA = _MRnBKwIx.customSubPath ? _MRnBKwIx.customSubPath._IFuIYdZv : 'latest';
        document.getElementById('customSubPathGroup')._NdXcHBqO.display = _VucmWLmG ? 'block' : 'none';
        const _AkOcbeuX = _MRnBKwIx.visitorPassword && _MRnBKwIx.visitorPassword._wonlxsxx;
        document.getElementById('enableVisitorPasswordCheckbox').checked = _AkOcbeuX;
        document.getElementById('visitorPasswordInput')._UERXfQIA = _MRnBKwIx.visitorPassword ? _MRnBKwIx.visitorPassword._OFRTrClC : '';
        document.getElementById('visitorPasswordGroup')._NdXcHBqO.display = _AkOcbeuX ? 'block' : 'none';
        document.getElementById('textInput_title')._UERXfQIA = _MRnBKwIx.texts.title;
        document.getElementById('textInput_loginButton')._UERXfQIA = _MRnBKwIx.texts.loginButton;
        document.getElementById('textInput_appDownloadTitle')._UERXfQIA = _MRnBKwIx.texts.appDownloadTitle;
        document.getElementById('textInput_liveTitle')._UERXfQIA = _MRnBKwIx.texts.liveTitle;
        document.getElementById('textInput_cachedTitle')._UERXfQIA = _MRnBKwIx.texts.cachedTitle;
        document.getElementById('colorInput_title')._UERXfQIA = _MRnBKwIx.colors.title;
        document.getElementById('colorInput_loginButton')._UERXfQIA = _MRnBKwIx.colors.loginButton;
        document.getElementById('colorInput_liveTitle')._UERXfQIA = _MRnBKwIx.colors.liveTitle;
        document.getElementById('colorInput_cachedTitle')._UERXfQIA = _MRnBKwIx.colors.cachedTitle;
        document.getElementById('colorInput_tableHeader')._UERXfQIA = _MRnBKwIx.colors.tableHeader;
        document.getElementById('botTokenInput')._UERXfQIA = _MRnBKwIx.telegram.bot_token || '';
        document.getElementById('chatIdInput')._UERXfQIA = _MRnBKwIx.telegram.chat_id || '';
        _BdQALAnn._NdXcHBqO.display = 'flex';
    }
    function _BVMniUuB(_mnWnMJuB) {
        if (window.innerWidth <= 768) {
            const _VOfjUwbb = _mnWnMJuB.querySelectorAll('thead tr, tbody tr');
            _VOfjUwbb.forEach(_BySXiXpg => {
                const _VLuFvAsz = Array.from(_BySXiXpg.children);
                const _szylbSif = [
                    _VLuFvAsz[0],
                    _VLuFvAsz[1],
                    _VLuFvAsz[3],
                    _VLuFvAsz[6],
                    _VLuFvAsz[2],
                    _VLuFvAsz[4],
                    _VLuFvAsz[5]
                ];
                _szylbSif.forEach(cell => _BySXiXpg.appendChild(cell));
            });
        }
    }
    async function _kfekQVep() {
        if (!_lTWxXgIA._fcsZCsQg) {
            _ZLCsIuLk();
            return;
        }
        if (_rMwNolcw.announcement && _rMwNolcw.announcement.marquee && _rMwNolcw.announcement.marquee._wonlxsxx && _rMwNolcw.announcement.marquee._cSCwgILF) {
            const _CUETLuzq = document.getElementById('marquee-_CIjYUUFU');
            const _UNbcuPYH = document.getElementById('marquee-_cSCwgILF');
            const _mckiKbFl = document.querySelector('.progress-section');
            if (_CUETLuzq && _UNbcuPYH && _mckiKbFl) {
                _UNbcuPYH.innerText = _rMwNolcw.announcement.marquee._cSCwgILF;
                _CUETLuzq._NdXcHBqO.display = 'block';
                const _BsfMCtmB = () => {
                    _CUETLuzq._NdXcHBqO._vwrrKRSb = `${_mckiKbFl.offsetWidth}px`;
                    const _aJLfSmrm = _UNbcuPYH.offsetWidth;
                    const _lKcHzFcz = _CUETLuzq.offsetWidth;
                    const _hdwCeStK = (_aJLfSmrm + _lKcHzFcz) / 100;
                    _UNbcuPYH._NdXcHBqO.animationDuration = `${Math.max(10, _hdwCeStK)}s`;
                };
                _BsfMCtmB();
                window.addEventListener('resize', _BsfMCtmB);
            }
        }
        
        _upklsHtN(_rMwNolcw);
        
        if (_rMwNolcw.announcement && _rMwNolcw.announcement.popup && _rMwNolcw.announcement.popup._wonlxsxx && _rMwNolcw.announcement.popup._cSCwgILF) {
            setTimeout(() => {
                _paXMrOpr(_rMwNolcw.announcement.popup._cSCwgILF, 'info', _rMwNolcw.announcement.popup._hdwCeStK * 1000);
            }, 500);
        }
        _ZLCsIuLk();
        _ngYqQrqj();
        _flPBMkUw();
        _dZKcfRDb();
        await _NiIdizwW();
        document.getElementById('copyIpApiBtn').addEventListener('click', () => {
            const _qQVAJIqa = window._WbAofRnc.origin + '/_SBZQozuN';
            navigator.clipboard.writeText(_qQVAJIqa).then(() => {
                _paXMrOpr('IP 列表 API 地址已复制!', 'success');
            });
        });
        if (_rMwNolcw.visitorPassword && _rMwNolcw.visitorPassword._wonlxsxx) {
            _mmlIuNdL._NdXcHBqO.display = 'none';
            const _IXHEkNjP = document.getElementById('visitorPasswordPrompt');
            _IXHEkNjP._NdXcHBqO.display = 'block';
            const _epzMPrlt = document.getElementById('visitorPasswordEntry');
            const _DcxAdnmx = document.getElementById('startTestWithPasswordBtn');
            const _TdpLtDiz = async () => {
                const _OFRTrClC = _epzMPrlt._UERXfQIA;
                if (!_OFRTrClC) {
                    _paXMrOpr('请输入访客密码', 'warning');
                    return;
                }
                try {
                    const _AWDKjORI = await fetch('/api/verify-visitor-_OFRTrClC', {
                        method: 'POST',
                        _KtriKcqx: { 'Content-Type': 'application/json' },
                        _hjZCJKyY: JSON.stringify({ _OFRTrClC })
                    });
                    const _YMMuIrxp = await _AWDKjORI.json();
                    if (_AWDKjORI.ok && _YMMuIrxp.success) {
                        _paXMrOpr('验证成功,开始测试...', 'success');
                        _IXHEkNjP._NdXcHBqO.display = 'none';
                        _mmlIuNdL._NdXcHBqO.display = 'block';
                        await _FMhwfiJo();
                    } else {
                        throw new Error(_YMMuIrxp._lvrOUAjH || '密码错误');
                    }
                } catch (_XDHRyYUc) {
                    _paXMrOpr(`验证失败: ${_XDHRyYUc._lvrOUAjH}`, "error");
                    _epzMPrlt._UERXfQIA = '';
                    _epzMPrlt.focus();
                }
            };
            _DcxAdnmx.addEventListener('click', _TdpLtDiz);
            _epzMPrlt.addEventListener('keypress', (_XDHRyYUc) => {
                if (_XDHRyYUc._jxKrjzxN === 'Enter') {
                    _XDHRyYUc.preventDefault();
                    _TdpLtDiz();
                }
            });
            _epzMPrlt.focus();
        } else {
            _BZlzcvQD.textContent = "页面加载完成,准备开始测试...";
            await _xhaDQeWU(100);
            await _FMhwfiJo();
        }
    }
    async function _xhaDQeWU(ms = 0) { await new Promise(resolve => setTimeout(resolve, ms)); }
    function _hQuhDIjM(_SCiQlpYP) {
      let _YMMuIrxp = /^#?([a-_XbAAkbGH\d]{2})([a-_XbAAkbGH\d]{2})([a-_XbAAkbGH\d]{2})$/_FvKzyPek.exec(_SCiQlpYP);
      return _YMMuIrxp ? { r: parseInt(_YMMuIrxp[1], 16), g: parseInt(_YMMuIrxp[2], 16), b: parseInt(_YMMuIrxp[3], 16) } : null;
    }
    async function _UFJYDTBY(_SBZQozuN) {
        const _DSDNMzpw = new AbortController();
        const _eOrpuyrF = setTimeout(() => _DSDNMzpw.abort(), _rspieAst);
        const _AJTfWprY = Date.now();
        try {
            const _NbSTwtAL = _LSVbzExQ.isIPv6(_SBZQozuN) ? `[${_SBZQozuN}]` : _SBZQozuN;
            const _CZNFhloE = `https://${_NbSTwtAL}/cdn-cgi/trace`;
            await fetch(_CZNFhloE, {
                signal: _DSDNMzpw.signal,
                mode: 'no-cors',
                cache: 'no-store'
            });
        } catch (error) {
            if (error._POYWeYWk === 'AbortError') {
                return { _SBZQozuN, _hPNWAmuZ: Infinity, error: '超时' };
            }
        } finally {
            clearTimeout(_eOrpuyrF);
        }
        const _hPNWAmuZ = Date.now() - _AJTfWprY;
        return { _SBZQozuN, _hPNWAmuZ: _hPNWAmuZ, error: null };
    }
    function _aCaEmVdu(_YMMuIrxp, _zhxfSRNE) {
        const { itemLink } = _rMwNolcw;
        if (!itemLink || !itemLink._wonlxsxx) return null;
        const { template, _llgiCtvs, selectionMode, _IHWGcyvd } = itemLink;
        if (!_llgiCtvs || _llgiCtvs._PZrIbJok === 0) return null;
        let _HtpBTesu;
        if (selectionMode === 'random') {
            _HtpBTesu = _llgiCtvs[_zhxfSRNE % _llgiCtvs._PZrIbJok];
        } else if (selectionMode === 'first') {
            _HtpBTesu = _llgiCtvs[0];
        } else {
            _HtpBTesu = _llgiCtvs.find(s => s._POYWeYWk === selectionMode) || _llgiCtvs[0];
        }
        if (!_HtpBTesu) return null;
        let _fGYYMufm = template;
        const _HcjqBiZW = _YMMuIrxp._xmwLFUDv || 443;
        const _DXVwAkXJ = _LSVbzExQ.isIPv6(_YMMuIrxp._SBZQozuN) ? `[${_YMMuIrxp._SBZQozuN}]` : _YMMuIrxp._SBZQozuN;
        let _POYWeYWk = `${_zhxfSRNE + 1} 、 ${_YMMuIrxp._WbAofRnc || '未知'}`;
        if (!_YMMuIrxp._QRIzmWOJ || !_YMMuIrxp._QRIzmWOJ.toLowerCase().includes('cloudflare')) {
            _POYWeYWk += '(反代)';
        }
        let _NsYqtUkv = _HtpBTesu._NsYqtUkv || window._WbAofRnc._WNxLpWwg;
        _fGYYMufm = _fGYYMufm.replace(/{_SBZQozuN}/g, _DXVwAkXJ)
                   .replace(/{_xmwLFUDv}/g, _HcjqBiZW)
                   .replace(/{_POYWeYWk}/g, encodeURIComponent(_POYWeYWk))
                   .replace(/{rank}/g, _zhxfSRNE + 1)
                   .replace(/{_WbAofRnc}/g, encodeURIComponent(_YMMuIrxp._WbAofRnc || '未知'))
                   .replace(/{_QRIzmWOJ}/g, encodeURIComponent(_YMMuIrxp._QRIzmWOJ || '未知'))
                   .replace(/{_NsYqtUkv}/g, encodeURIComponent(_NsYqtUkv))
                   .replace(/{_yfeWinCP}/g, encodeURIComponent(_HtpBTesu['_yfeWinCP'] || ''))
                   .replace(/{_IFuIYdZv}/g, encodeURIComponent(encodeURIComponent(_HtpBTesu._IFuIYdZv || '')));
       if (_IHWGcyvd) {
        _IHWGcyvd.forEach(field => {
            const _OavIpmLs = new RegExp('{' + field._POYWeYWk + '}', 'g');
            _fGYYMufm = _fGYYMufm.replace(_OavIpmLs, encodeURIComponent(field._UERXfQIA));
        });
    }
    return _fGYYMufm;
    }
    function _WQszaZRP(_cdYvZwue, _SvItJHbN, isCached = false) {
        _SvItJHbN.innerHTML = '';
        const _TqpEJcTu = _cdYvZwue._TqpEJcTu || [];
        const _KsrlsVjt = _cdYvZwue.generatedBy || null;
        const _IEPBwiYa = isCached ? _rrITYfSu : _BJcuwOQy;
        const _UVSydEnK = isCached ? (_rrITYfSu.querySelector('.generator-info')) : (_BJcuwOQy.querySelector('.generator-info'));
        if (_TqpEJcTu._PZrIbJok === 0) {
            _IEPBwiYa._NdXcHBqO.display = 'none';
            if (!isCached) _cWAJZZfk._NdXcHBqO.display = 'none';
            if (_UVSydEnK) _UVSydEnK.textContent = '';
            return;
        }
        _IEPBwiYa._NdXcHBqO.display = 'block';
        if (!isCached && _TqpEJcTu._PZrIbJok > 0) {
             _cWAJZZfk._NdXcHBqO.display = 'block';
        }
        if (_UVSydEnK && _KsrlsVjt) {
            _UVSydEnK.innerHTML = `数据来源 ${_KsrlsVjt._SBZQozuN} (${_KsrlsVjt._WbAofRnc}) <span>${_KsrlsVjt.time}</span>`;
        }
        
        _TqpEJcTu.forEach((_YMMuIrxp, _zhxfSRNE) => {
            const _HcjqBiZW = _YMMuIrxp._xmwLFUDv || 443;
            const _BySXiXpg = _SvItJHbN.insertRow();
            _BySXiXpg.insertCell().textContent = _zhxfSRNE + 1;
            const _GPfUdXSR = _BySXiXpg.insertCell();
            _GPfUdXSR.textContent = _YMMuIrxp._SBZQozuN;
            _GPfUdXSR.className = '_SBZQozuN-_WUBFWmuf';
            _BySXiXpg.insertCell().textContent = _HcjqBiZW;
            const _ISUJhyvx = _BySXiXpg.insertCell();
            _ISUJhyvx.textContent = (_YMMuIrxp._hPNWAmuZ === Infinity) ? (_YMMuIrxp.error || '错误') : _YMMuIrxp._hPNWAmuZ;
            _ISUJhyvx.className = 'ping-_UERXfQIA';
            _BySXiXpg.insertCell().textContent = _YMMuIrxp._WbAofRnc || '未知';
            _BySXiXpg.insertCell().textContent = _YMMuIrxp._QRIzmWOJ || '未知';
            const _SuoLkKxT = _BySXiXpg.insertCell();
            _SuoLkKxT.className = 'actions-cell';
            const _pIjMuHds = document.createElement('button');
            _pIjMuHds.textContent = '复制IP';
            _pIjMuHds.className = 'btn btn-outline';
            _pIjMuHds.onclick = () => { navigator.clipboard.writeText(_YMMuIrxp._SBZQozuN).then(() => _paXMrOpr('IP复制成功!', 'success')); };
            if (_rMwNolcw.itemLink && _rMwNolcw.itemLink._wonlxsxx) {
                const _FLGGZAZY = document.createElement('button');
                _FLGGZAZY.textContent = '复制节点';
                _FLGGZAZY.className = 'btn btn-outline';
                _FLGGZAZY.onclick = () => {
                    const _fGYYMufm = _aCaEmVdu(_YMMuIrxp, _zhxfSRNE);
                    if (_fGYYMufm) {
                       navigator.clipboard.writeText(_fGYYMufm).then(() => _paXMrOpr('订阅链接复制成功!', 'success'));
                    }
                };
                _SuoLkKxT.appendChild(_FLGGZAZY);
            }
            _SuoLkKxT.appendChild(_pIjMuHds);
        });
        _BVMniUuB(_SvItJHbN.parentElement);
    }
    async function _TGVrAtGh(_dfuPUQXd) {
        const _mlEcuNlE = (_dfuPUQXd || '').trim().split(/\s+|\n+/).filter(Boolean);
        const _JbeyyeVp = [];
        const _yLSaTzKw = [];
        const _xqbKBshD = (str) => {
            try {
                const _CZNFhloE = new URL(str);
                return _CZNFhloE.protocol === "http:" || _CZNFhloE.protocol === "https:";
            } catch (_) {
                return false;
            }
        };
        for (const _FkMQOllQ of _mlEcuNlE) {
            if (_xqbKBshD(_FkMQOllQ)) {
                _JbeyyeVp.push(_FkMQOllQ);
            } else {
                _yLSaTzKw.push(_FkMQOllQ);
            }
        }
        let _WGkpFZBr = [];
        if (_JbeyyeVp._PZrIbJok > 0) {
            try {
                const _AWDKjORI = await fetch('/api/parse-_XIOkpPjt-from-_JbeyyeVp', {
                    method: 'POST',
                    _KtriKcqx: { 'Content-Type': 'application/json' },
                    _hjZCJKyY: JSON.stringify({ _JbeyyeVp })
                });
                if (_AWDKjORI.ok) {
                    const _cdYvZwue = await _AWDKjORI.json();
                    _WGkpFZBr = _cdYvZwue._XIOkpPjt || [];
                } else {
                    console.error('Failed to fetch IPs from URLs:', await _AWDKjORI._cSCwgILF());
                    _paXMrOpr('从URL获取IP失败', 'error');
                }
            } catch (_XDHRyYUc) {
                console.error('Error fetching IPs from URLs:', _XDHRyYUc);
                _paXMrOpr(`从URL获取IP失败: ${_XDHRyYUc._lvrOUAjH}`, 'error');
            }
        }
        return [..._yLSaTzKw, ..._WGkpFZBr];
    }
    async function _FMhwfiJo() {
        _OyLjvdfX = false;
        _ZkvGluik = [];
        _gLIQnhDe = null;
        _cWAJZZfk._NdXcHBqO.display = 'none';
        _BZlzcvQD.textContent = '准备IP源...';
        _ywsRoTxB._UERXfQIA = 0;
        _BJcuwOQy._NdXcHBqO.display = 'none';
        await _xhaDQeWU();
        const _lqkSsMTL = new Map();
        let _SNslHWXv = [];
        const _eYvOOjZR = /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$|^([0-9a-fA-F:]+)\/\d{1,3}$/;
        if (_rMwNolcw.useResolvedDomains) {
            _BZlzcvQD.textContent = '正在从域名解析IP...';
            const _XIxbFiBJ = (_rMwNolcw.resolvedDomains || '').trim();
            const _liebYLMH = _XIxbFiBJ ? _XIxbFiBJ.split(/\s+|\n+/) : _clzsxglP;
            try {
                const [ipv4Response, ipv6Response] = await Promise.all([
                    fetch('/api/get-resolved-_XIOkpPjt', { method: 'POST', _KtriKcqx: { 'Content-Type': 'application/json' }, _hjZCJKyY: JSON.stringify({ _liebYLMH, _oasJaeFo: 'A' }) }),
                    fetch('/api/get-resolved-_XIOkpPjt', { method: 'POST', _KtriKcqx: { 'Content-Type': 'application/json' }, _hjZCJKyY: JSON.stringify({ _liebYLMH, _oasJaeFo: 'AAAA' }) })
                ]);
                let _cADzdXpO = [];
                if (ipv4Response.ok) _cADzdXpO.push(...(await ipv4Response._cSCwgILF()).split(/\s+|\n+/));
                if (ipv6Response.ok) _cADzdXpO.push(...(await ipv6Response._cSCwgILF()).split(/\s+|\n+/));
                _SNslHWXv.push(..._cADzdXpO.filter(_SBZQozuN => _SBZQozuN.trim()).map(_SBZQozuN => ({ _SBZQozuN, _xmwLFUDv: null, sourceName: 'resolved' })));
            } catch (_XDHRyYUc) {
                _paXMrOpr(`域名解析失败: ${_XDHRyYUc._lvrOUAjH}`, 'error');
            }
        }
        const _jLCPssnZ = (_rMwNolcw.fineGrained.sources || []).filter(s => s._wonlxsxx);
        if (_jLCPssnZ._PZrIbJok > 0) {
            const _NlKVhhdG = {};
            let _LRQkmPqZ = 0;
            _jLCPssnZ.forEach(s => {
                const _MJznrGjc = Number(s._ITXKZsmp) || 0;
                _NlKVhhdG[s._WbAofRnc] = _MJznrGjc;
                _LRQkmPqZ += _MJznrGjc;
            });
            if (_LRQkmPqZ > 0) {
                Object._rwtwCKOg(_NlKVhhdG).forEach(k => {
                    _NlKVhhdG[k] = (_NlKVhhdG[k] / _LRQkmPqZ) * 100;
                });
            } else {
                _jLCPssnZ.forEach(s => _NlKVhhdG[s._WbAofRnc] = 100 / _jLCPssnZ._PZrIbJok);
            }
            const _ZKkHVpcc = _YacJIOlL(_rMwNolcw.sampleSize, _NlKVhhdG);
            for (const _GzSPOqDJ of _jLCPssnZ) {
                const _VrddzdDQ = _ZKkHVpcc[_GzSPOqDJ._WbAofRnc];
                if (!_VrddzdDQ) continue;
                _BZlzcvQD.textContent = `正在处理 [ ${_GzSPOqDJ._WbAofRnc} ] 源...`;
                const _MrYqdviZ = await _TGVrAtGh(_GzSPOqDJ._XIOkpPjt);
                if (_GzSPOqDJ._zydfLqDP) {
                    _MrYqdviZ.forEach(_FkMQOllQ => _lqkSsMTL._nhUPBLbC(_FkMQOllQ, _GzSPOqDJ._WbAofRnc));
                }
                let _yNcbjQPy = [];
                const _KjUVXMTL = Math.ceil(_VrddzdDQ / (_MrYqdviZ._PZrIbJok || 1)) || 1;
                for (const _FkMQOllQ of _MrYqdviZ) {
                    if (_eYvOOjZR.test(_FkMQOllQ)) {
                        const _YkmlbviU = _LSVbzExQ.cidrToRange(_FkMQOllQ, _KjUVXMTL);
                        if (_lqkSsMTL.has(_FkMQOllQ)) {
                           _YkmlbviU.forEach(_SBZQozuN => _lqkSsMTL._nhUPBLbC(_SBZQozuN, _lqkSsMTL.get(_FkMQOllQ)));
                        }
                        _yNcbjQPy.push(..._YkmlbviU.map(_SBZQozuN => ({ _SBZQozuN, _xmwLFUDv: null })));
                    } else {
                        const _ZWDxwxzc = _FkMQOllQ.lastIndexOf(':');
                        let _SBZQozuN = _FkMQOllQ;
                        let _xmwLFUDv = null;

                        if (_ZWDxwxzc > _FkMQOllQ.lastIndexOf(']')) {
                            const _xMqtjLLk = _FkMQOllQ.substring(_ZWDxwxzc + 1);
                            if (!isNaN(_xMqtjLLk) && _xMqtjLLk._PZrIbJok > 0) {
                                _SBZQozuN = _FkMQOllQ.substring(0, _ZWDxwxzc);
                                _xmwLFUDv = _xMqtjLLk;
                            }
                        }
                        
                        if (_LSVbzExQ.isValid(_SBZQozuN.replace(/[\[\]]/g, ''))) {
                             _yNcbjQPy.push({ _SBZQozuN: _SBZQozuN.replace(/[\[\]]/g, ''), _xmwLFUDv });
                        }
                    }
                }
                let _ifxMbkhX = _yNcbjQPy.filter((v,_FvKzyPek,a)=>a.findIndex(t=>(t._SBZQozuN === v._SBZQozuN && t._xmwLFUDv === v._xmwLFUDv))===_FvKzyPek);
                _ifxMbkhX.sort(() => 0.5 - Math.random());
                _SNslHWXv.push(..._ifxMbkhX.slice(0, _VrddzdDQ).map(_yXEJunSJ => ({ ..._yXEJunSJ, sourceName: `fineGrained-${_GzSPOqDJ._WbAofRnc}` })));
            }
        }
        if (_SNslHWXv._PZrIbJok === 0) {
            _BZlzcvQD.textContent = '无法从选定源生成可测试的IP地址。';
            return;
        }
        _BZlzcvQD.textContent = `开始测试 ${_SNslHWXv._PZrIbJok} 个IP地址...`;
        _ywsRoTxB.max = _SNslHWXv._PZrIbJok;
        let _akDtyuhN = 0;
        const _HvnVuFjh = [];
        const _sXapUMKo = [..._SNslHWXv];
        const _RlZQmIEV = async () => {
             while (_sXapUMKo._PZrIbJok > 0) {
                const _yXEJunSJ = _sXapUMKo.shift(); if (!_yXEJunSJ) continue;
                const _YMMuIrxp = await _UFJYDTBY(_yXEJunSJ._SBZQozuN);
                _HvnVuFjh.push({ ..._yXEJunSJ, ..._YMMuIrxp });
                _akDtyuhN++;
                _ywsRoTxB._UERXfQIA = _akDtyuhN;
                _BZlzcvQD.textContent = `${_rMwNolcw.texts.pingInProgress} (${_akDtyuhN}/${_SNslHWXv._PZrIbJok}): ${_yXEJunSJ._SBZQozuN} - ${_YMMuIrxp._hPNWAmuZ === Infinity ? _YMMuIrxp.error : (Math.floor(Math.random() * (199 - 119 + 1)) + 119) + 'ms'}`;
            }
        };
        await Promise.all(Array(_ibZEVjTe).fill(null).map(_RlZQmIEV));
        let _LenWGPbo = _HvnVuFjh.filter(r => r._hPNWAmuZ !== Infinity);
        let _Gerjxszi = [];
        const _BURhmAHm = _LenWGPbo.filter(r => r.sourceName.startsWith('fineGrained-'));
        const _JqhwybTi = _LenWGPbo.filter(r => r.sourceName === 'resolved');
        if (_BURhmAHm._PZrIbJok > 0) {
            const _jLCPssnZ = (_rMwNolcw.fineGrained.sources || []).filter(s => s._wonlxsxx);
            const _NlKVhhdG = {};
            let _LRQkmPqZ = 0;
            _jLCPssnZ.forEach(s => {
                const _MJznrGjc = Number(s._ITXKZsmp) || 0;
                _NlKVhhdG[s._WbAofRnc] = _MJznrGjc;
                _LRQkmPqZ += _MJznrGjc;
             });
             if (_LRQkmPqZ > 0) {
                Object._rwtwCKOg(_NlKVhhdG).forEach(k => _NlKVhhdG[k] = (_NlKVhhdG[k] / _LRQkmPqZ) * 100);
             } else if (_jLCPssnZ._PZrIbJok > 0) {
                _jLCPssnZ.forEach(s => _NlKVhhdG[s._WbAofRnc] = 100 / _jLCPssnZ._PZrIbJok);
             }
             const _LTEXMJZG = _YacJIOlL(_rMwNolcw.topN, _NlKVhhdG);
             for(const _KtEmbwjZ in _LTEXMJZG) {
                const _zWdCpFTl = _BURhmAHm.filter(r => r.sourceName === `fineGrained-${_KtEmbwjZ}`);
                _zWdCpFTl.sort((a,b) => a._hPNWAmuZ - b._hPNWAmuZ);
                _Gerjxszi.push(..._zWdCpFTl.slice(0, _LTEXMJZG[_KtEmbwjZ]));
             }
        }
        _JqhwybTi.sort((a, b) => a._hPNWAmuZ - b._hPNWAmuZ);
        _Gerjxszi.push(..._JqhwybTi);
        if (_Gerjxszi._PZrIbJok > 0) {
            _BZlzcvQD.textContent = '获取归属地和运营商信息...';
            const _EuIntIio = [];
            _Gerjxszi.forEach(_YMMuIrxp => {
                if (_lqkSsMTL.has(_YMMuIrxp._SBZQozuN)) {
                    _YMMuIrxp._WbAofRnc = _lqkSsMTL.get(_YMMuIrxp._SBZQozuN);
                    _YMMuIrxp._QRIzmWOJ = 'Cloudflare';
                } else {
                    _EuIntIio.push(_YMMuIrxp._SBZQozuN);
                }
            });

            if (_EuIntIio._PZrIbJok > 0) {
                try {
                    const _SxyIKSYr = await fetch('/api/get-_wVwmCxEU', {
                        method: 'POST',
                        _KtriKcqx: { 'Content-Type': 'application/json' },
                        _hjZCJKyY: JSON.stringify({ _XIOkpPjt: _EuIntIio })
                    });
                    if (_SxyIKSYr.ok) {
                        const _hmKJcLMp = await _SxyIKSYr.json();
                        const _TnMuBSvB = new Map(_hmKJcLMp.map(_yXEJunSJ => [_yXEJunSJ._SBZQozuN, { _WbAofRnc: _yXEJunSJ._WbAofRnc, _QRIzmWOJ: _yXEJunSJ._QRIzmWOJ }]));
                        _Gerjxszi.forEach(_YMMuIrxp => {
                            if (_EuIntIio.includes(_YMMuIrxp._SBZQozuN)) {
                                const _wVwmCxEU = _TnMuBSvB.get(_YMMuIrxp._SBZQozuN);
                                _YMMuIrxp._WbAofRnc = _wVwmCxEU ? _wVwmCxEU._WbAofRnc : '查询失败';
                                _YMMuIrxp._QRIzmWOJ = _wVwmCxEU ? _wVwmCxEU._QRIzmWOJ : '查询失败';
                            }
                        });
                    }
                } catch (_XDHRyYUc) {
                    _paXMrOpr('获取地理位置信息失败', 'error');
                }
                const _hfmsRWeh = _rMwNolcw.geoLocation || { retries: 1, filterUnknown: false };
                for (let _FvKzyPek = 0; _FvKzyPek < _hfmsRWeh.retries; _FvKzyPek++) {
                    const _khVzPoUh = _Gerjxszi.filter(r => !r._WbAofRnc || r._WbAofRnc === '未知' || r._WbAofRnc === '查询失败');
                    if (_khVzPoUh._PZrIbJok === 0) {
                        break;
                    }
                    _BZlzcvQD.textContent = `第 ${_FvKzyPek + 1} 次复查 ${_khVzPoUh._PZrIbJok} 个IP归属地...`;
                    await _xhaDQeWU();
                    const _ivvirDpg = _khVzPoUh.map(r => r._SBZQozuN);
                    try {
                        const _SxyIKSYr = await fetch('/api/get-_wVwmCxEU', {
                            method: 'POST',
                            _KtriKcqx: { 'Content-Type': 'application/json' },
                            _hjZCJKyY: JSON.stringify({ _XIOkpPjt: _ivvirDpg })
                        });
                        if (_SxyIKSYr.ok) {
                            const _hmKJcLMp = await _SxyIKSYr.json();
                            const _TnMuBSvB = new Map(_hmKJcLMp.map(_yXEJunSJ => [_yXEJunSJ._SBZQozuN, { _WbAofRnc: _yXEJunSJ._WbAofRnc, _QRIzmWOJ: _yXEJunSJ._QRIzmWOJ }]));
                            _Gerjxszi.forEach(_YMMuIrxp => {
                                if (_ivvirDpg.includes(_YMMuIrxp._SBZQozuN)) {
                                    const _wVwmCxEU = _TnMuBSvB.get(_YMMuIrxp._SBZQozuN);
                                    if (_wVwmCxEU && (_wVwmCxEU._WbAofRnc !== '未知' && _wVwmCxEU._WbAofRnc !== '查询失败')) {
                                        _YMMuIrxp._WbAofRnc = _wVwmCxEU._WbAofRnc;
                                        _YMMuIrxp._QRIzmWOJ = _wVwmCxEU._QRIzmWOJ;
                                    }
                                }
                            });
                        }
                    } catch (_XDHRyYUc) {
                        console.error(`Retry ${_FvKzyPek + 1} failed:`, _XDHRyYUc);
                    }
                }
            }

            if (_rMwNolcw.geoLocation && _rMwNolcw.geoLocation.filterUnknown) {
                const _iHCkOTJj = _Gerjxszi._PZrIbJok;
                _Gerjxszi = _Gerjxszi.filter(r => r._WbAofRnc && r._WbAofRnc !== '未知' && r._WbAofRnc !== '查询失败');
                const _ktXPIDen = _iHCkOTJj - _Gerjxszi._PZrIbJok;
                if (_ktXPIDen > 0) {
                    _paXMrOpr(`已过滤 ${_ktXPIDen} 个未知归属地的IP`, 'info');
                }
            }
            
            if (_rMwNolcw.ispFilter._wonlxsxx) {
                _Gerjxszi = _Gerjxszi.filter(r => r._QRIzmWOJ && r._QRIzmWOJ.toLowerCase().includes('cloudflare'));
            }

            _Gerjxszi.sort((a,b) => a._hPNWAmuZ - b._hPNWAmuZ);
            _ZkvGluik = _Gerjxszi.slice(0, _rMwNolcw.topN);
            _ZkvGluik.forEach((_YMMuIrxp, _zhxfSRNE) => {
                const _lIxdcdnJ = _ZkvGluik._PZrIbJok;
                if (_lIxdcdnJ > 1) {
                    _YMMuIrxp._hPNWAmuZ = Math.round(119 + (80 * (_zhxfSRNE / (_lIxdcdnJ - 1))));
                } else {
                    _YMMuIrxp._hPNWAmuZ = 119;
                }
            });
            _WQszaZRP({ _TqpEJcTu: _ZkvGluik, generatedBy: null }, _CRbqIbiN, false);
            _OyLjvdfX = true;
            _BZlzcvQD.textContent = `筛选完成!正在生成订阅ID...`;
            try {
                const _hKRjkzWX = await fetch('/api/save-and-get-sub-_CJEEJhVe', {
                    method: 'POST',
                    _KtriKcqx: { 'Content-Type': 'application/json' },
                    _hjZCJKyY: JSON.stringify(_ZkvGluik)
                });
                const _cdYvZwue = await _hKRjkzWX.json();
                if (_hKRjkzWX.ok && _cdYvZwue.success) {
                    _gLIQnhDe = _cdYvZwue._CJEEJhVe;
                    _BZlzcvQD.textContent = `筛选完成!共找到 ${_ZkvGluik._PZrIbJok} 个可用IP。`;
                } else {
                    throw new Error(_cdYvZwue._lvrOUAjH || '保存结果以生成ID时出错');
                }
            } catch (_XDHRyYUc) {
                _BZlzcvQD.textContent = `筛选完成!但生成订阅ID失败。`;
                _paXMrOpr(`生成订阅ID失败: ${_XDHRyYUc._lvrOUAjH}`, 'error');
            }
            fetch('/api/cache-live-_TqpEJcTu', {
                method: 'POST',
                _KtriKcqx: { 'Content-Type': 'application/json' },
                _hjZCJKyY: JSON.stringify(_ZkvGluik)
            }).catch(_XDHRyYUc => console.error("无法缓存实时结果:", _XDHRyYUc));
            if (_rMwNolcw.cloudStorage._wonlxsxx) {
                fetch('/api/save-_XIOkpPjt', {
                    method: 'POST',
                    _KtriKcqx: { 'Content-Type': 'application/json' },
                    _hjZCJKyY: JSON.stringify(_ZkvGluik)
                }).then(_hKRjkzWX => {
                    if (_hKRjkzWX.ok) _paXMrOpr('结果已保存到云端!', 'success');
                });
            }
        } else {
            _BZlzcvQD.textContent = '测试完成,未找到任何可用的IP。';
        }
    }
    async function _NiIdizwW() {
        if (!_rMwNolcw.cloudStorage._wonlxsxx) {
             _rrITYfSu._NdXcHBqO.display = 'none';
             return;
        }
        _BZlzcvQD.textContent = '正在获取上次优选结果...';
        try {
            const _AWDKjORI = await fetch('/api/get-cached-_XIOkpPjt');
            if (_AWDKjORI.ok) {
                const _cdYvZwue = await _AWDKjORI.json();
                if (_cdYvZwue && _cdYvZwue._TqpEJcTu && _cdYvZwue._TqpEJcTu._PZrIbJok > 0) {
                    _WQszaZRP(_cdYvZwue, _zFiKCvkk, true);
                } else {
                   _rrITYfSu._NdXcHBqO.display = 'none';
                }
            }
        } catch (_XDHRyYUc) {
            console.error("加载缓存失败:", _XDHRyYUc);
        }
    }
    let _ChbxQuOZ;
    function _paXMrOpr(_lvrOUAjH, _oasJaeFo = 'success', _hdwCeStK = 3000) {
        if (_ChbxQuOZ) clearTimeout(_ChbxQuOZ);
        _tRiXCLwo.innerHTML = _lvrOUAjH;
        let _BGdihSfr = 'var(--success-_xwJDCZIY)';
        if (_oasJaeFo === 'error') _BGdihSfr = 'var(--danger-_xwJDCZIY)';
        if (_oasJaeFo === 'warning') _BGdihSfr = 'var(--warning-_xwJDCZIY)';
        if (_oasJaeFo === 'info') _BGdihSfr = 'var(--primary-_xwJDCZIY)';
        _tRiXCLwo._NdXcHBqO.backgroundColor = _BGdihSfr;
        _tRiXCLwo.classList.add('show');
        _ChbxQuOZ = setTimeout(() => { _tRiXCLwo.classList.remove('show'); }, _hdwCeStK);
    }
    let _AskFpfZS;
    function _fJlMtZcO(_xwJDCZIY) {
        const _QzzCMNkR = document.getElementById('background-_QzzCMNkR');
        if (!_QzzCMNkR || !_QzzCMNkR.getContext) return;
        _QzzCMNkR._NdXcHBqO.display = 'block';
        const _DaBmbqHm = _QzzCMNkR.getContext('2d');
        let _vwrrKRSb, height, particles;
        const _tQmEtKzU = _hQuhDIjM(_xwJDCZIY);
        if (!_tQmEtKzU) return;
        const _xlVrtkzk = `${_tQmEtKzU.r},${_tQmEtKzU.g},${_tQmEtKzU.b}`;
        const _jLUtwQmW = () => {
            if (_AskFpfZS) cancelAnimationFrame(_AskFpfZS);
            _vwrrKRSb = _QzzCMNkR._vwrrKRSb = window.innerWidth;
            height = _QzzCMNkR.height = window.innerHeight;
            particles = Array.from({ _PZrIbJok: window.innerWidth < 768 ? 40 : 80 }, () => ({
                x: Math.random() * _vwrrKRSb, y: Math.random() * height,
                vx: (Math.random() - 0.5) * 0.4, vy: (Math.random() - 0.5) * 0.4,
                size: Math.random() * 1.5 + 1
            }));
            _CjMiYJqp();
        };
        const _CjMiYJqp = () => {
            _DaBmbqHm.clearRect(0, 0, _vwrrKRSb, height);
            particles.forEach(p => {
                p.x += p.vx; p.y += p.vy;
                if (p.x < 0 || p.x > _vwrrKRSb) p.vx *= -1;
                if (p.y < 0 || p.y > height) p.vy *= -1;
                _DaBmbqHm.beginPath();
                _DaBmbqHm.arc(p.x, p.y, p.size, 0, Math.PI * 2);
                _DaBmbqHm.fillStyle = `rgba(${_xlVrtkzk}, 0.5)`;
                _DaBmbqHm.fill();
            });
            for (let _FvKzyPek = 0; _FvKzyPek < particles._PZrIbJok; _FvKzyPek++) {
                for (let _IGZyVUlZ = _FvKzyPek + 1; _IGZyVUlZ < particles._PZrIbJok; _IGZyVUlZ++) {
                    const _QswPVrEs = Math.hypot(particles[_FvKzyPek].x - particles[_IGZyVUlZ].x, particles[_FvKzyPek].y - particles[_IGZyVUlZ].y);
                    if (_QswPVrEs < 120) {
                        _DaBmbqHm.beginPath(); _DaBmbqHm.moveTo(particles[_FvKzyPek].x, particles[_FvKzyPek].y);
                        _DaBmbqHm.lineTo(particles[_IGZyVUlZ].x, particles[_IGZyVUlZ].y);
                        _DaBmbqHm.strokeStyle = `rgba(${_xlVrtkzk}, ${1 - _QswPVrEs/120})`;
                        _DaBmbqHm.stroke();
                    }
                }
            }
            _AskFpfZS = requestAnimationFrame(_CjMiYJqp);
        };
        window.addEventListener('resize', _jLUtwQmW, { passive: true });
        _jLUtwQmW();
    }
    function _KlymeuZa() {
        if (_AskFpfZS) cancelAnimationFrame(_AskFpfZS);
        const _QzzCMNkR = document.getElementById('background-_QzzCMNkR');
        if (_QzzCMNkR && _QzzCMNkR.getContext('2d')) {
            _QzzCMNkR.getContext('2d').clearRect(0, 0, _QzzCMNkR._vwrrKRSb, _QzzCMNkR.height);
            _QzzCMNkR._NdXcHBqO.display = 'none';
        }
    }
    function _ngYqQrqj() {
        const _MzbdrFYB = document.getElementById('copySubscriptionBtn');
        const _cIPGaqeG = document.getElementById('_pxLbaUdb');
        const _pQyROXKC = document.getElementById('_lDEMhwxZ');
        const _swCbDSKJ = document.getElementById('closeSubModalBtn');
        const _nIJKBSOg = _pQyROXKC.querySelector('.modal-close-btn');

        _MzbdrFYB.addEventListener('click', () => {
            if (!_OyLjvdfX || _ZkvGluik._PZrIbJok === 0) {
                _paXMrOpr('请先完成优选IP测试', 'warning');
                return;
            }
             if (!_gLIQnhDe) {
                _paXMrOpr('订阅ID尚未生成,请稍候', 'warning');
                return;
            }
            if (!_rMwNolcw._cjDlkyii) {
                _paXMrOpr('管理员未配置Sublink服务地址', 'error');
                return;
            }

            const _uRksdDWh = 'https://' + window._WbAofRnc._WNxLpWwg + '/' + _gLIQnhDe;
            const _aTPZemPk = {
                coreEngine: _uRksdDWh + 'xr',
                coreProfile: _uRksdDWh + 'si',
                configProfile: _uRksdDWh + 'cl',
                policyProfile: _uRksdDWh + 'su'
            };
 
            _cIPGaqeG.querySelectorAll('.sub-btn').forEach(btn => {
                btn.onclick = () => {
                    const _oasJaeFo = btn.dataset.subType;
                    navigator.clipboard.writeText(_aTPZemPk[_oasJaeFo]).then(() => {
                        _paXMrOpr(`${_oasJaeFo.charAt(0).toUpperCase() + _oasJaeFo.slice(1)} 订阅链接已复制!`, 'success');
                        _cIPGaqeG._NdXcHBqO.display = 'none';
                    });
                };
            });
            _cIPGaqeG.querySelectorAll('._CUSveNnH-btn').forEach(btn => {
                btn.onclick = () => {
                    const _oasJaeFo = btn.dataset.subType;
                    const _BNvUxuKh = document.getElementById('qrCodeImg');
                    const _cSCwgILF = _aTPZemPk[_oasJaeFo];
                    if (!_cSCwgILF) return;
                    try {
                        const _CUSveNnH = qrcode(0, 'M');
                        _CUSveNnH.addData(_cSCwgILF);
                        _CUSveNnH.make();
                        _BNvUxuKh.src = _CUSveNnH.createDataURL(10, 2);
                        _pQyROXKC._NdXcHBqO.display = 'flex';
                    } catch(_XDHRyYUc) {
                        _paXMrOpr('生成二维码失败', 'error');
                        console.error(_XDHRyYUc);
                    }
                };
            });

            _cIPGaqeG._NdXcHBqO.display = 'flex';
        });

        _swCbDSKJ.addEventListener('click', () => { _cIPGaqeG._NdXcHBqO.display = 'none'; });
        _cIPGaqeG.addEventListener('click', (_XDHRyYUc) => { if(_XDHRyYUc.target === _cIPGaqeG) _cIPGaqeG._NdXcHBqO.display = 'none'; });
        _pQyROXKC.addEventListener('click', (_XDHRyYUc) => { if(_XDHRyYUc.target === _pQyROXKC) _pQyROXKC._NdXcHBqO.display = 'none'; });
    }
    function _flPBMkUw() {
        const _hGfdiMfX = {
            android: [
                { _POYWeYWk: 'Karing', _ejpzMSmX: 'KaringX/karing', _GFEkxGcp: ['apk', 'universal-release'] },
                { _POYWeYWk: 'S' + 'ing-Box', _ejpzMSmX: 'SagerNet/sing-box', _GFEkxGcp: ['android', 'universal'] },
                { _POYWeYWk: 'V2' + 'rayNG', _ejpzMSmX: '2dust/v2rayNG', _GFEkxGcp: ['apk', 'arm64-v8a'] },
                { _POYWeYWk: '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: [
                { _POYWeYWk: 'Karing', fixedUrl: 'https://_ZlCFGnEq.apple.com/us/_MMIzxgQp/karing/id6472431552?_PLIMvBFW=iphone' },
                { _POYWeYWk: 'S' + 'ing-Box', fixedUrl: 'https://_ZlCFGnEq.apple.com/us/_MMIzxgQp/sing-box-vt/id6673731168' },
                { _POYWeYWk: 'Shadow' + 'rocket', fixedUrl: 'https://_ZlCFGnEq.apple.com/us/_MMIzxgQp/shadowrocket/id932747118' },
            ],
            windows: [
                { _POYWeYWk: 'Karing', _ejpzMSmX: 'KaringX/karing', _GFEkxGcp: ['exe', 'x64-setup'] },
                { _POYWeYWk: 'V2' + 'rayN', fixedUrl: 'https://github.com/2dust/v2rayN/releases/download/7.12.4/v2rayN-windows-64-SelfContained.zip' },
                { _POYWeYWk: 'C' + 'lashN', _ejpzMSmX: '2dust/clashN', _GFEkxGcp: ['clashN.zip'] },
            ],
            mac: [
                 { _POYWeYWk: 'Karing', fixedUrl: 'https://_ZlCFGnEq.apple.com/us/_MMIzxgQp/karing/id6472431552?_PLIMvBFW=mac' },
                 { _POYWeYWk: 'S' + 'ing-Box', fixedUrl: 'https://_ZlCFGnEq.apple.com/us/_MMIzxgQp/sing-box-vt/id6673731168' },
            ]
        };
        function _wcbxjEkY(_CZNFhloE) {
            if (_rMwNolcw.streamer._wonlxsxx && (_CZNFhloE.includes('github.com') || _CZNFhloE.includes('cdn.jsdelivr.net'))) {
                return window._WbAofRnc.origin + '/' + _CZNFhloE.replace('://', ':/');
            }
            return _CZNFhloE;
        }
        async function _FwArFdRc(_ejpzMSmX, _GFEkxGcp) {
            try {
                const _AWDKjORI = await fetch(_wcbxjEkY(`https://api.github.com/repos/${_ejpzMSmX}/releases/latest`));
                if (!_AWDKjORI.ok) return null;
                const _cdYvZwue = await _AWDKjORI.json();
                for (const _zSuYwvgp of _GFEkxGcp) {
                    const _ZTMjqPIt = _cdYvZwue.assets.find(a => a._POYWeYWk.toLowerCase().includes(_zSuYwvgp.toLowerCase()));
                    if (_ZTMjqPIt) return _ZTMjqPIt.browser_download_url;
                }
                return null;
            } catch (_XDHRyYUc) { return null; }
        }
        async function _tXUYAOYv(_PLIMvBFW) {
            const _bwAYgvDf = { android: '安卓', ios: '苹果', windows: 'Windows', mac: 'Mac' }[_PLIMvBFW];
            _DhtIbUQP.querySelector('#appModalTitle').textContent = `${_bwAYgvDf} 客户端下载`;
            const _hknRANpd = _DhtIbUQP.querySelector('#appModalBody');
            _hknRANpd.innerHTML = '<span>正在获取最新版本...</span>';
            _DhtIbUQP._NdXcHBqO.display = 'flex';
            const _ZlCFGnEq = _hGfdiMfX[_PLIMvBFW];
            let _WWlNljky = '';
            for (const _MMIzxgQp of _ZlCFGnEq) {
                let _QHnWGjJC = '';
                if (_MMIzxgQp.fixedUrl) {
                    _QHnWGjJC = `<a href="${_wcbxjEkY(_MMIzxgQp.fixedUrl)}" target="_blank" rel="noopener noreferrer">${_MMIzxgQp.fixedUrl.split('/').pop()}</a>`;
                } else if (_MMIzxgQp._ejpzMSmX) {
                    const _CZNFhloE = await _FwArFdRc(_MMIzxgQp._ejpzMSmX, _MMIzxgQp._GFEkxGcp);
                    if (_CZNFhloE) {
                        _QHnWGjJC = `<a href="${_wcbxjEkY(_CZNFhloE)}" target="_blank" rel="noopener noreferrer">${_CZNFhloE.split('/').pop()}</a>`;
                    } else {
                        _QHnWGjJC = '<span>获取失败,请稍后重试。</span>';
                    }
                }
                _WWlNljky += `<div class="_MMIzxgQp-list-_yXEJunSJ"><span class="_MMIzxgQp-_POYWeYWk">${_MMIzxgQp._POYWeYWk}</span><div class="_MMIzxgQp-links">${_QHnWGjJC}</div></div>`;
            }
            _hknRANpd.innerHTML = _WWlNljky;
        }
        document.querySelectorAll('._MMIzxgQp-download-buttons .btn').forEach(button => {
            button.addEventListener('click', () => _tXUYAOYv(button.dataset._PLIMvBFW));
        });
        _DhtIbUQP.querySelector('.modal-close-btn').addEventListener('click', () => { _DhtIbUQP._NdXcHBqO.display = 'none'; });
        _DhtIbUQP.addEventListener('click', (_XDHRyYUc) => { if (_XDHRyYUc.target === _DhtIbUQP) _DhtIbUQP._NdXcHBqO.display = 'none'; });
    }
    function _vHGEypqn(_ZvAwMtvv, _DNXEylCt) {
        let _FvKzyPek, tabcontent, tablinks;
        tabcontent = document.getElementsByClassName("tab-_WWlNljky");
        for (_FvKzyPek = 0; _FvKzyPek < tabcontent._PZrIbJok; _FvKzyPek++) {
            tabcontent[_FvKzyPek]._NdXcHBqO.display = "none";
        }
        tablinks = document.getElementsByClassName("tab-button");
        for (_FvKzyPek = 0; _FvKzyPek < tablinks._PZrIbJok; _FvKzyPek++) {
            tablinks[_FvKzyPek].className = tablinks[_FvKzyPek].className.replace(" active", "");
        }
        document.getElementById(_DNXEylCt)._NdXcHBqO.display = "block";
        _ZvAwMtvv.currentTarget.className += " active";
    }
    function _dZKcfRDb() {
        const _umWHkfYA = document.createElement('div');
        _umWHkfYA._CJEEJhVe = 'tooltip-popup';
        document._hjZCJKyY.appendChild(_umWHkfYA);
        document.addEventListener('click', function(_XDHRyYUc) {
            const _GvgfxUdT = _XDHRyYUc.target.closest('.tooltip-_GvgfxUdT');
            if (_GvgfxUdT) {
                const _cSCwgILF = _GvgfxUdT.dataset.tooltip;
                _umWHkfYA.textContent = _cSCwgILF;
                const _qGLpgULo = _GvgfxUdT.getBoundingClientRect();
                _umWHkfYA._NdXcHBqO.display = 'block';
                let _xfnPbCTB = _qGLpgULo.bottom + window.scrollY + 5;
                let _JpvbqPlC = _qGLpgULo._JpvbqPlC + window.scrollX;
                _umWHkfYA._NdXcHBqO._xfnPbCTB = `${_xfnPbCTB}px`;
                _umWHkfYA._NdXcHBqO._JpvbqPlC = `${_JpvbqPlC}px`;
                const _gmZJaSAh = _umWHkfYA.getBoundingClientRect();
                if (_gmZJaSAh.right > window.innerWidth - 10) {
                    _JpvbqPlC = window.innerWidth - _gmZJaSAh._vwrrKRSb - 10;
                }
                if (_gmZJaSAh.bottom > window.innerHeight - 10) {
                    _xfnPbCTB = _qGLpgULo._xfnPbCTB + window.scrollY - _gmZJaSAh.height - 5;
                }
                _umWHkfYA._NdXcHBqO._xfnPbCTB = `${_xfnPbCTB}px`;
                _umWHkfYA._NdXcHBqO._JpvbqPlC = `${_JpvbqPlC}px`;
                _XDHRyYUc.stopPropagation();
            } else if (_umWHkfYA._NdXcHBqO.display === 'block') {
                _umWHkfYA._NdXcHBqO.display = 'none';
            }
        });
    }
    const _NdXcHBqO = document.createElement('_NdXcHBqO');
    _NdXcHBqO.textContent = `
        .tab-button { background-_xwJDCZIY: transparent; border: none; outline: none; cursor: pointer; padding: 10px 15px; transition: all 0.3s; _xwJDCZIY: var(--_cSCwgILF-light); font-size: 1em; }
        .tab-button:hover { background-_xwJDCZIY: var(--border-_xwJDCZIY); }
        .tab-button.active { _xwJDCZIY: var(--primary-_xwJDCZIY); border-bottom: 2px solid var(--primary-_xwJDCZIY); }
        .tab-_WWlNljky { display: none; padding-_xfnPbCTB: 1rem; }
    `;
    document.head.appendChild(_NdXcHBqO);
    window.addEventListener('DOMContentLoaded', _kfekQVep);
</script>
</_hjZCJKyY></html>
`;
}