switch520-auto-secret

优化多个游戏下载站:二维码转链接|弹窗浏览|自动填写密码|下载按钮直达下载地址页|去Steam查看游戏。包括switch520、switch618、acgxj、fzgamer、steamzg等

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(У мене вже є менеджер скриптів, дайте мені встановити його!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name switch520-auto-secret
// @description 优化多个游戏下载站:二维码转链接|弹窗浏览|自动填写密码|下载按钮直达下载地址页|去Steam查看游戏。包括switch520、switch618、acgxj、fzgamer、steamzg等
// @version 7.2.6
// @author Kane
// @match *://dl.xxxxx520.cc/*
// @match *://www.xxxxx520.org/*
// @match *://acgxj.com/*
// @match *://acfb.top/*
// @match *://*.steamzg.com/*
// @match *://gamers520.com/*
// @match *://*.gamers520.com/*
// @match *://*.switch618.com/*
// @match *://gamer520.com/*
// @match *://*.gamer520.com/*
// @match *://download.gamer520.com/*
// @match *://download.espartasr.com/*
// @match *://download.freer.blog/*
// @match *://www.freer.blog/*
// @match *://*.xxxxx528.com/*
// @match *://www.efemovies.com/*
// @match *://www.espartasr.com/*
// @match *://www.piclabo.xyz/*
// @match *://like.gamer520.com/*
// @match *://pan.baidu.com/*
// @match *://www.fzgamer.com/*
// @match *://fzgamer.com/*
// @grant GM.registerMenuCommand
// @grant GM.getValue
// @grant GM.setValue
// @icon https://www.switch618.com/wp-content/uploads/2024/05/23154031569.webp
// @license MIT
// @namespace http://tampermonkey.net/
// @require https://unpkg.com/[email protected]/umd/react.production.min.js
// @require https://unpkg.com/[email protected]/umd/react-dom.production.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min.js
// @require https://unpkg.com/[email protected]/dist/mobx.umd.production.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/dayjs/1.11.13/dayjs.min.js
// @require https://cdnjs.cloudflare.com/ajax/libs/antd/5.22.7/antd.min.js
// @require https://unpkg.com/[email protected]/dist/jsQR.js
// @resource antdCSS https://cdnjs.cloudflare.com/ajax/libs/antd/5.22.7/reset.min.css
// ==/UserScript==

/* suppress ResizeObserver loop errors - layer 1: intercept window.addEventListener */
{const __a=window.addEventListener;window.addEventListener=function(t,l,o){if(t==="error"){const w=function(e){if(e instanceof ErrorEvent&&typeof e.message==="string"&&e.message.indexOf("ResizeObserver loop completed")!==-1){return}return l.call(this,e)};return __a.call(this,t,w,o)}return __a.call(this,t,l,o)}}
/* suppress ResizeObserver loop errors - layer 2: hide overlay DOM */
{var __s=document.createElement("style");__s.textContent="#webpack-dev-server-client-overlay{display:none!important}";document.documentElement.appendChild(__s)}

/******/ (() => { // webpackBootstrap
/******/ 	"use strict";
/******/ 	var __webpack_modules__ = ({

/***/ 586:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   clickGenuinePurchaseButton: () => (/* binding */ clickGenuinePurchaseButton),
/* harmony export */   findGenuinePurchaseButton: () => (/* binding */ findGenuinePurchaseButton),
/* harmony export */   getGameName: () => (/* binding */ getGameName),
/* harmony export */   moveElementsToVersionIntro: () => (/* binding */ moveElementsToVersionIntro),
/* harmony export */   removeSidebarContentAboveHotRank: () => (/* binding */ removeSidebarContentAboveHotRank),
/* harmony export */   removeSnakeCanvas: () => (/* binding */ removeSnakeCanvas)
/* harmony export */ });
/* harmony import */ var _core_domain_matcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55);
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
/**
 * fzgamer.com 内容页 DOM 操作
 * 1. 将"温馨提示框"和"游戏视频框"移动到"版本介绍"上方
 * 2. 移除侧栏中"近期游戏热榜"以上的所有内容
 */

/**
 * 移动温馨提示框和游戏视频框到版本介绍上方
 * 最终顺序:游戏视频标题+视频框 → 温馨提示框 → 版本介绍
 */
var moveElementsToVersionIntro = function moveElementsToVersionIntro() {
  // 只在内容页执行(URL 以 .html 结尾)
  if (!(0,_core_domain_matcher__WEBPACK_IMPORTED_MODULE_0__/* .isHtmlPostPage */ .zN)()) {
    return;
  }

  // 等待 DOM 加载完成
  var observer = new MutationObserver(function (mutations, obs) {
    var articleContent = document.querySelector('.article-content');
    if (!articleContent) return;

    // 查找温馨提示框(在 .article-content 直接子级,通过特征样式匹配)
    var warmTipBox = Array.from(articleContent.children).find(function (el) {
      var _el$getAttribute;
      return el.outerHTML.includes('温馨提示') && ((_el$getAttribute = el.getAttribute('style')) === null || _el$getAttribute === void 0 ? void 0 : _el$getAttribute.includes('linear-gradient'));
    });

    // 查找游戏视频标题
    var videoHeading = Array.from(articleContent.querySelectorAll('h3.wp-block-heading')).find(function (el) {
      return el.textContent.includes('游戏视频');
    });

    // 查找游戏视频框(dplayer 播放器)
    var videoBox = articleContent.querySelector('.wp-block-zibllblock-dplayer');

    // 查找版本介绍标题
    var versionIntroHeading = Array.from(articleContent.querySelectorAll('h4.wp-block-heading')).find(function (el) {
      return el.textContent.includes('版本介绍');
    });

    // 如果找到了版本介绍标题,执行移动操作
    if (versionIntroHeading) {
      obs.disconnect(); // 停止观察

      var parent = versionIntroHeading.parentElement;

      // 1. 先移动游戏视频标题到版本介绍上方
      if (videoHeading && videoHeading.parentElement) {
        parent.insertBefore(videoHeading, versionIntroHeading);
        console.log('[fzgamer] 游戏视频标题已移动到版本介绍上方');
      }

      // 2. 再移动游戏视频框到版本介绍上方(在标题之后)
      if (videoBox && videoBox.parentElement) {
        parent.insertBefore(videoBox, versionIntroHeading);
        console.log('[fzgamer] 游戏视频框已移动到版本介绍上方');
      }

      // 3. 最后移动温馨提示框到版本介绍上方(在游戏视频之后)
      if (warmTipBox && warmTipBox.parentElement) {
        parent.insertBefore(warmTipBox, versionIntroHeading);
        console.log('[fzgamer] 温馨提示框已移动到版本介绍上方');
      }
    }
  });

  // 开始观察 DOM 变化
  observer.observe(document.body, {
    childList: true,
    subtree: true
  });

  // 如果 DOM 已经加载完成,立即尝试执行
  setTimeout(function () {
    var articleContent = document.querySelector('.article-content');
    if (articleContent) {
      observer.takeRecords(); // 触发一次检查
    }
  }, 1000);
};

/**
 * 移除侧栏中"近期游戏热榜"以上的所有内容
 * 仅在 .sidebar 容器内部操作,不影响 .content-wrap 主内容区
 */
var removeSidebarContentAboveHotRank = function removeSidebarContentAboveHotRank() {
  // 使用 MutationObserver 等待 DOM 加载完成
  var observer = new MutationObserver(function (mutations, obs) {
    // 查找侧栏容器
    var sidebar = document.querySelector('.sidebar');
    if (!sidebar) return;

    // 在侧栏内查找"近期游戏热榜"标题
    var titleThemeElements = sidebar.querySelectorAll('.title-theme');
    var hotRankTitle = Array.from(titleThemeElements).find(function (el) {
      return el.textContent.includes('近期游戏热榜');
    });
    if (!hotRankTitle) return;
    obs.disconnect(); // 停止观察

    // 找到热榜标题所在的容器(data-affix="true" 的那个 div)
    var hotRankContainer = hotRankTitle.closest('[data-affix="true"]');
    if (!hotRankContainer) return;

    // 收集热榜容器之前的所有 .sidebar 直接子元素
    var elementsToRemove = [];
    var elem = hotRankContainer.previousElementSibling;
    while (elem) {
      elementsToRemove.push(elem);
      elem = elem.previousElementSibling;
    }

    // 移除所有收集到的元素
    elementsToRemove.forEach(function (el) {
      el.remove();
    });
    console.log("[fzgamer] \u2705 \u6210\u529F\u79FB\u9664\u4FA7\u680F\u4E2D\"\u8FD1\u671F\u6E38\u620F\u70ED\u699C\"\u4EE5\u4E0A\u7684 ".concat(elementsToRemove.length, " \u4E2A\u5143\u7D20"));
  });

  // 开始观察 DOM 变化
  observer.observe(document.body, {
    childList: true,
    subtree: true
  });

  // 如果 DOM 已经加载完成,立即尝试执行
  setTimeout(function () {
    var sidebar = document.querySelector('.sidebar');
    if (sidebar) {
      var hotRankTitle = Array.from(sidebar.querySelectorAll('.title-theme')).find(function (el) {
        return el.textContent.includes('近期游戏热榜');
      });
      if (hotRankTitle) {
        observer.takeRecords(); // 触发一次检查
      }
    }
  }, 1500);
};

/**
 * 移除 id 为 snakeCanvas 的 canvas 画布元素
 */
var removeSnakeCanvas = function removeSnakeCanvas() {
  // 使用 MutationObserver 等待 DOM 加载完成
  var observer = new MutationObserver(function (mutations, obs) {
    // 查找 snakeCanvas 元素
    var snakeCanvas = document.getElementById('snakeCanvas');
    if (!snakeCanvas) return;
    obs.disconnect(); // 停止观察

    // 移除 canvas 元素
    snakeCanvas.remove();
    console.log('[fzgamer] ✅ 成功移除 id 为 snakeCanvas 的 canvas 元素');
  });

  // 开始观察 DOM 变化
  observer.observe(document.body, {
    childList: true,
    subtree: true
  });

  // 如果 DOM 已经加载完成,立即尝试执行
  setTimeout(function () {
    var snakeCanvas = document.getElementById('snakeCanvas');
    if (snakeCanvas) {
      observer.takeRecords(); // 触发一次检查
    }
  }, 500);
};

/**
 * 查找资源区「正版购买」按钮(兼容中英文 UI)
 */
function findGenuinePurchaseButton() {
  var roots = [document.querySelector('#posts-pay'), document.querySelector('.but-download'), document.querySelector('.pay-box'), document].filter(Boolean);
  var _iterator = _createForOfIteratorHelper(roots),
    _step;
  try {
    for (_iterator.s(); !(_step = _iterator.n()).done;) {
      var root = _step.value;
      var anchors = root.querySelectorAll('a, button');
      for (var _i = 0, _Array$from = Array.from(anchors); _i < _Array$from.length; _i++) {
        var el = _Array$from[_i];
        var text = (el.textContent || '').replace(/\s+/g, ' ').trim();
        if (!text) continue;
        // 正版购买 / Genuine purchase;排除普通网盘按钮
        if (!/正版|genuine|purchase|购买/i.test(text)) continue;
        if (/网盘|cloud\s*drive|baidu|quark|thunder|迅雷|夸克|百度/i.test(text)) continue;
        return el;
      }
    }
  } catch (err) {
    _iterator.e(err);
  } finally {
    _iterator.f();
  }
  return null;
}

/**
 * 模拟点击「正版购买」;找到并点中返回 true
 */
function clickGenuinePurchaseButton() {
  var btn = findGenuinePurchaseButton();
  if (!btn) return false;
  btn.click();
  return true;
}

/**
 * 从文章标题提取游戏名(优先英文)
 * 结构示例:埃尔巴布/ELbab + .fzg-title-new「最新」
 */
function getGameName() {
  var h1 = document.querySelector('h1.article-title');
  if (h1) {
    var clone = h1.cloneNode(true);
    clone.querySelectorAll('.fzg-title-new').forEach(function (el) {
      return el.remove();
    });
    var fromH1 = pickGameNameFromTitle((clone.textContent || '').trim());
    if (fromH1) return fromH1;
  }
  var fromDocTitle = pickGameNameFromTitle(document.title.split(/[-–|]/)[0].trim());
  return fromDocTitle;
}
function pickGameNameFromTitle(raw) {
  if (!raw) return '';
  var text = raw.replace(/\s*(最新|热门|推荐|Latest)\s*$/i, '').trim();
  if (text.includes('/')) {
    var parts = text.split('/').map(function (s) {
      return s.trim();
    }).filter(Boolean);
    var english = _toConsumableArray(parts).reverse().find(function (p) {
      return /[A-Za-z]/.test(p);
    });
    if (english) return english;
  }
  return text;
}
if (false) {}


/***/ }),

/***/ 95:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   analyzeGameNameInArticle: () => (/* binding */ analyzeGameNameInArticle),
/* harmony export */   analyzeGameNameInTitle: () => (/* binding */ analyzeGameNameInTitle),
/* harmony export */   articleContainer: () => (/* binding */ articleContainer),
/* harmony export */   getGameName: () => (/* binding */ getGameName),
/* harmony export */   nameInArticle: () => (/* binding */ nameInArticle),
/* harmony export */   nameInTitle: () => (/* binding */ nameInTitle),
/* harmony export */   titleElement: () => (/* binding */ titleElement)
/* harmony export */ });
var articleContainer = function articleContainer() {
  return document.querySelector('div.entry-content.u-text-format.u-clearfix');
};
var titleElement = function titleElement() {
  return document.querySelector('h1.entry-title');
};

/**
 * 根据标题解析出中文名和英文名
 */
var analyzeGameNameInTitle = function analyzeGameNameInTitle() {
  var _titleElement;
  var title = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (_titleElement = titleElement()) === null || _titleElement === void 0 ? void 0 : _titleElement.innerText;
  var chineseGameName;
  var englishGameName;
  var _titleText = title.split(/\/|\|/)[0];

  //<Liberated: Enhanced Edition>
  if (/^[a-zA-Z0-9\s:]+/.test(_titleText)) {
    chineseGameName = null;
    englishGameName = _titleText.replaceAll(/[\u4e00-\u9fa5]/g, '').replaceAll(/^:|:$/g, '').trim();
  }

  //<商店模拟器 超市 Shop Simulator Supermarket>
  if (/^\s*[\u4e00-\u9fa5™…?《][\w\W]*[\u4e00-\u9fa5\s™…?》-](?=(\s|$))/.test(_titleText)) {
    var _titleText$match;
    chineseGameName = (_titleText$match = _titleText.match(/^\s*[\u4e00-\u9fa5™…?《-]+[\w\W]*[\u4e00-\u9fa5™…?-]+(?=\s?)/)) === null || _titleText$match === void 0 ? void 0 : _titleText$match[0];
    englishGameName = _titleText.replace(chineseGameName, '').replaceAll(/^:|:$/g, '').trim();
  }

  //<零号奴隶X Slave Zero X>
  if (/^\s*[\u4e00-\u9fa5™…?《]+[a-zA-Z0-9](\s+|\b)/.test(_titleText)) {
    var _titleText$match2;
    chineseGameName = (_titleText$match2 = _titleText.match(/\s*[\u4e00-\u9fa5《]+[a-zA-Z0-9](?=\s*)/)) === null || _titleText$match2 === void 0 ? void 0 : _titleText$match2[0];
    englishGameName = _titleText.replace(chineseGameName, '').replaceAll(/^:|:$/g, '').trim();
  }

  //<我的世界:传奇:minecraft:legends>
  if (_titleText.split(':').length - 1 > 2 && /^[\u4e00-\u9fa5]+[\w\W]*:[\w\W]*$/i.test(_titleText)) {
    var _titleText$match3;
    chineseGameName = (_titleText$match3 = _titleText.match(/^[\u4e00-\u9fa5]+:[\u4e00-\u9fa5]+/g)) === null || _titleText$match3 === void 0 ? void 0 : _titleText$match3[0];
    englishGameName = _titleText.replace(chineseGameName, '').replaceAll(/^:|:$/g, '').trim();
  }
  //<超级竞技场:Hyper Jam>
  if (/^[\u4e00-\u9fa5]+:[a-zA-Z\s]+$/.test(_titleText)) {
    var _titleText$match4;
    chineseGameName = (_titleText$match4 = _titleText.match(/^\s*[\u4e00-\u9fa5]+:?[\u4e00-\u9fa5]*(?=:)/i)) === null || _titleText$match4 === void 0 ? void 0 : _titleText$match4[0];
    englishGameName = _titleText.replace(chineseGameName, '').replaceAll(/^:|:$/g, '').trim();
  }
  var res = {
    chinese: chineseGameName,
    english: englishGameName
  };
  return res;
};

/**
 * 根据文章内容解析出游戏名
 */
var analyzeGameNameInArticle = function analyzeGameNameInArticle(rowText, el) {
  var _el$childNodes$;
  if (/《[\w\W]+》/.test(rowText)) {
    var _rowText$match;
     false && 0;
    return analyzeGameNameInTitle((_rowText$match = rowText.match(/(?<=《)[\w\W]+(?=》)/)) === null || _rowText$match === void 0 ? void 0 : _rowText$match[0]);
  } else if (/^《[\w\W]+》\s*[\u4e00-\u9fa5]+\s*[a-zA-Z]+\s*$/.test(rowText)) {
    var _rowText$match2;
     false && 0;
    return analyzeGameNameInTitle(rowText.replaceAll(/[\u4e00-\u9fa5《》][a-zA-Z0-9]+/g, '').replaceAll(/[\u4e00-\u9fa5《》]/g, ''));
  } else if (el !== null && el !== void 0 && (_el$childNodes$ = el.childNodes[0]) !== null && _el$childNodes$ !== void 0 && _el$childNodes$.textContent.startsWith('名称:')) {
    var _el$childNodes$2, _el$childNodes$3;
     false && 0;
    return analyzeGameNameInTitle((_el$childNodes$3 = el.childNodes[0]) === null || _el$childNodes$3 === void 0 ? void 0 : _el$childNodes$3.textContent.replace('名称:', '').trim());
  } else if ((el === null || el === void 0 ? void 0 : el.tagName.toLowerCase()) === 'p') {
     false && 0;
    return analyzeGameNameInTitle(rowText);
  }
  return analyzeGameNameInTitle(rowText);
};
var nameInTitle = function nameInTitle() {
  var el = titleElement();
  return analyzeGameNameInTitle(el.innerText);
};
var nameInArticle = function nameInArticle() {
  var container = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : articleContainer();
  return Array.from(container.querySelectorAll('*')).reduce(function (accu, el) {
    if (accu) return accu;
    if (el.innerText.includes('解压密码') || el.innerText.includes('去Steam') || !el.innerText.trim()) return null;
    return accu = analyzeGameNameInArticle(el.innerText, el);
  }, null);
};
var getGameName = function getGameName() {
  return titleElement().innerText.split('|')[0];
  var articleName = nameInArticle();
  var titleName = nameInTitle();
  return articleName.english || articleName.chinese || titleName.english || titleName.chinese;
};
if (false) {}

/***/ }),

/***/ 801:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   getGameName: () => (/* binding */ getGameName)
/* harmony export */ });
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(e, r) { return new BabelRegExp(e, void 0, r); }; var e = RegExp.prototype, r = new WeakMap(); function BabelRegExp(e, t, p) { var o = RegExp(e, t); return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); } function buildGroups(e, t) { var p = r.get(t); return Object.keys(p).reduce(function (r, t) { var o = p[t]; if ("number" == typeof o) r[t] = e[o];else { for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; r[t] = e[o[i]]; } return r; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { var t = e.exec.call(this, r); if (t) { t.groups = buildGroups(t, this); var p = t.indices; p && (p.groups = buildGroups(p, this)); } return t; }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { if ("string" == typeof p) { var o = r.get(this); return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) { var t = o[r]; return "$" + (Array.isArray(t) ? t.join("$") : t); })); } if ("function" == typeof p) { var i = this; return e[Symbol.replace].call(this, t, function () { var e = arguments; return "object" != _typeof(e[e.length - 1]) && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); }); } return e[Symbol.replace].call(this, t, p); }, _wrapRegExp.apply(this, arguments); }
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
var getGameName = function getGameName() {
  var _titleText$match;
  var titleText = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.querySelector('.article-title').innerText;
  var _ref = ((_titleText$match = titleText.match(/*#__PURE__*/_wrapRegExp(/\u300A([\s\S]+?)\(([\s\S]+?)\)\u300B[\w\W]*/, {
      chinese: 1,
      english: 2
    }))) === null || _titleText$match === void 0 ? void 0 : _titleText$match.groups) || {},
    chinese = _ref.chinese,
    english = _ref.english;
  if (!chinese && !english) {
    english = titleText.split('|')[0];
  }
  return {
    chinese: chinese,
    english: english
  };
};
if (false) {}

/***/ }),

/***/ 55:
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   cb: () => (/* binding */ GAMER520_INCLUDES),
/* harmony export */   zN: () => (/* binding */ isHtmlPostPage)
/* harmony export */ });
/* unused harmony exports isDomainMatch, getCurrentSiteIdentifier */
/**
 * 域名匹配核心逻辑
 * 封装 useMatchDomain 的条件判断,提供统一的域名检测接口
 */

/**
 * gamer520 / gamers520 必须同时列出:后者多一个 s,
 * `includes('gamer520')` / `includes('gamer520.com')` 都匹配不到 `gamers520.com`
 */
var GAMER520_INCLUDES = ['gamer520.com', 'gamers520.com'];

/**
 * 是否为 .html 内容页(gamer520 文章页 / gamers520 下载页均为此形态)。
 * 必须用 pathname,否则 `?pwd=` 会让 `href.endsWith('.html')` 误判。
 */
function isHtmlPostPage() {
  return location.pathname.endsWith('.html');
}

/**
 * 检查当前页面是否匹配指定的域名规则
 * @param options 域名匹配规则
 * @returns 是否匹配
 */
function isDomainMatch(options) {
  var includes = options.includes,
    hosts = options.hosts,
    regExp = options.regExp;
  var currentHost = location.host;
  var currentHref = location.href;
  if (includes && includes.some(function (keyword) {
    return currentHost.includes(keyword) || currentHref.includes(keyword);
  })) {
    return true;
  }
  if (hosts && hosts.some(function (host) {
    return currentHost === host;
  })) {
    return true;
  }
  if (regExp && regExp.test(currentHref)) {
    return true;
  }
  return false;
}

/**
 * 获取当前站点标识(用于日志和调试)
 */
function getCurrentSiteIdentifier() {
  return location.host;
}

/***/ }),

/***/ 259:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(601);
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports


var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, `.ant-modal .ant-modal-content {
  padding: 10px;
}
`, ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 243:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(601);
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports


var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, `/* 划词搜索样式(如需自定义样式可在此添加) */
`, ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 543:
/***/ ((module, __webpack_exports__, __webpack_require__) => {

/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */   A: () => (__WEBPACK_DEFAULT_EXPORT__)
/* harmony export */ });
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(601);
/* harmony import */ var _node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(314);
/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
// Imports


var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
// Module
___CSS_LOADER_EXPORT___.push([module.id, `.app {
  color: red;
}
header.header {
  z-index: 500!important;
}
/* fzgamer.com 扫码弹窗:缩小二维码 + 直链展示 */
#fzg-qr-mask.show .fzg-qr-wrap {
  padding: 8px !important;
  margin-bottom: 8px !important;
}
#fzg-qr-mask.show .fzg-qr-wrap img,
#fzg-qr-mask.show #fzg-qr-canvas img {
  width: 120px !important;
  height: 120px !important;
}
#fzg-qr-mask.show .fzg-qr-corner {
  width: 14px !important;
  height: 14px !important;
}
#fzg-qr-mask.show .fzg-qr-scanline {
  display: none !important;
}
#fzg-qr-mask.show #fzg-qr-scan-tip {
  opacity: 0.55;
  font-size: 12px !important;
}
#s520-fzg-direct-link {
  display: block;
  margin: 8px 16px 12px;
  padding: 10px 12px;
  background: #f0fff0;
  border: 1px solid #7dcea0;
  border-radius: 8px;
  color: #196f3d;
  font-size: 13px;
  line-height: 1.5;
  word-break: break-all;
  text-decoration: none;
  text-align: left;
}
#s520-fzg-direct-link:hover {
  background: #e8f8e8;
}
`, ""]);
// Exports
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);


/***/ }),

/***/ 314:
/***/ ((module) => {



/*
  MIT License http://www.opensource.org/licenses/mit-license.php
  Author Tobias Koppers @sokra
*/
module.exports = function (cssWithMappingToString) {
  var list = [];

  // return the list of modules as css string
  list.toString = function toString() {
    return this.map(function (item) {
      var content = "";
      var needLayer = typeof item[5] !== "undefined";
      if (item[4]) {
        content += "@supports (".concat(item[4], ") {");
      }
      if (item[2]) {
        content += "@media ".concat(item[2], " {");
      }
      if (needLayer) {
        content += "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {");
      }
      content += cssWithMappingToString(item);
      if (needLayer) {
        content += "}";
      }
      if (item[2]) {
        content += "}";
      }
      if (item[4]) {
        content += "}";
      }
      return content;
    }).join("");
  };

  // import a list of modules into the list
  list.i = function i(modules, media, dedupe, supports, layer) {
    if (typeof modules === "string") {
      modules = [[null, modules, undefined]];
    }
    var alreadyImportedModules = {};
    if (dedupe) {
      for (var k = 0; k < this.length; k++) {
        var id = this[k][0];
        if (id != null) {
          alreadyImportedModules[id] = true;
        }
      }
    }
    for (var _k = 0; _k < modules.length; _k++) {
      var item = [].concat(modules[_k]);
      if (dedupe && alreadyImportedModules[item[0]]) {
        continue;
      }
      if (typeof layer !== "undefined") {
        if (typeof item[5] === "undefined") {
          item[5] = layer;
        } else {
          item[1] = "@layer".concat(item[5].length > 0 ? " ".concat(item[5]) : "", " {").concat(item[1], "}");
          item[5] = layer;
        }
      }
      if (media) {
        if (!item[2]) {
          item[2] = media;
        } else {
          item[1] = "@media ".concat(item[2], " {").concat(item[1], "}");
          item[2] = media;
        }
      }
      if (supports) {
        if (!item[4]) {
          item[4] = "".concat(supports);
        } else {
          item[1] = "@supports (".concat(item[4], ") {").concat(item[1], "}");
          item[4] = supports;
        }
      }
      list.push(item);
    }
  };
  return list;
};

/***/ }),

/***/ 601:
/***/ ((module) => {



module.exports = function (i) {
  return i[1];
};

/***/ }),

/***/ 338:
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {

var __webpack_unused_export__;


var m = __webpack_require__(206);
if (true) {
  exports.H = m.createRoot;
  __webpack_unused_export__ = m.hydrateRoot;
} else { var i; }


/***/ }),

/***/ 72:
/***/ ((module) => {



var stylesInDOM = [];
function getIndexByIdentifier(identifier) {
  var result = -1;
  for (var i = 0; i < stylesInDOM.length; i++) {
    if (stylesInDOM[i].identifier === identifier) {
      result = i;
      break;
    }
  }
  return result;
}
function modulesToDom(list, options) {
  var idCountMap = {};
  var identifiers = [];
  for (var i = 0; i < list.length; i++) {
    var item = list[i];
    var id = options.base ? item[0] + options.base : item[0];
    var count = idCountMap[id] || 0;
    var identifier = "".concat(id, " ").concat(count);
    idCountMap[id] = count + 1;
    var indexByIdentifier = getIndexByIdentifier(identifier);
    var obj = {
      css: item[1],
      media: item[2],
      sourceMap: item[3],
      supports: item[4],
      layer: item[5]
    };
    if (indexByIdentifier !== -1) {
      stylesInDOM[indexByIdentifier].references++;
      stylesInDOM[indexByIdentifier].updater(obj);
    } else {
      var updater = addElementStyle(obj, options);
      options.byIndex = i;
      stylesInDOM.splice(i, 0, {
        identifier: identifier,
        updater: updater,
        references: 1
      });
    }
    identifiers.push(identifier);
  }
  return identifiers;
}
function addElementStyle(obj, options) {
  var api = options.domAPI(options);
  api.update(obj);
  var updater = function updater(newObj) {
    if (newObj) {
      if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {
        return;
      }
      api.update(obj = newObj);
    } else {
      api.remove();
    }
  };
  return updater;
}
module.exports = function (list, options) {
  options = options || {};
  list = list || [];
  var lastIdentifiers = modulesToDom(list, options);
  return function update(newList) {
    newList = newList || [];
    for (var i = 0; i < lastIdentifiers.length; i++) {
      var identifier = lastIdentifiers[i];
      var index = getIndexByIdentifier(identifier);
      stylesInDOM[index].references--;
    }
    var newLastIdentifiers = modulesToDom(newList, options);
    for (var _i = 0; _i < lastIdentifiers.length; _i++) {
      var _identifier = lastIdentifiers[_i];
      var _index = getIndexByIdentifier(_identifier);
      if (stylesInDOM[_index].references === 0) {
        stylesInDOM[_index].updater();
        stylesInDOM.splice(_index, 1);
      }
    }
    lastIdentifiers = newLastIdentifiers;
  };
};

/***/ }),

/***/ 659:
/***/ ((module) => {



var memo = {};

/* istanbul ignore next  */
function getTarget(target) {
  if (typeof memo[target] === "undefined") {
    var styleTarget = document.querySelector(target);

    // Special case to return head of iframe instead of iframe itself
    if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {
      try {
        // This will throw an exception if access to iframe is blocked
        // due to cross-origin restrictions
        styleTarget = styleTarget.contentDocument.head;
      } catch (e) {
        // istanbul ignore next
        styleTarget = null;
      }
    }
    memo[target] = styleTarget;
  }
  return memo[target];
}

/* istanbul ignore next  */
function insertBySelector(insert, style) {
  var target = getTarget(insert);
  if (!target) {
    throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");
  }
  target.appendChild(style);
}
module.exports = insertBySelector;

/***/ }),

/***/ 540:
/***/ ((module) => {



/* istanbul ignore next  */
function insertStyleElement(options) {
  var element = document.createElement("style");
  options.setAttributes(element, options.attributes);
  options.insert(element, options.options);
  return element;
}
module.exports = insertStyleElement;

/***/ }),

/***/ 56:
/***/ ((module, __unused_webpack_exports, __webpack_require__) => {



/* istanbul ignore next  */
function setAttributesWithoutAttributes(styleElement) {
  var nonce =  true ? __webpack_require__.nc : 0;
  if (nonce) {
    styleElement.setAttribute("nonce", nonce);
  }
}
module.exports = setAttributesWithoutAttributes;

/***/ }),

/***/ 825:
/***/ ((module) => {



/* istanbul ignore next  */
function apply(styleElement, options, obj) {
  var css = "";
  if (obj.supports) {
    css += "@supports (".concat(obj.supports, ") {");
  }
  if (obj.media) {
    css += "@media ".concat(obj.media, " {");
  }
  var needLayer = typeof obj.layer !== "undefined";
  if (needLayer) {
    css += "@layer".concat(obj.layer.length > 0 ? " ".concat(obj.layer) : "", " {");
  }
  css += obj.css;
  if (needLayer) {
    css += "}";
  }
  if (obj.media) {
    css += "}";
  }
  if (obj.supports) {
    css += "}";
  }
  var sourceMap = obj.sourceMap;
  if (sourceMap && typeof btoa !== "undefined") {
    css += "\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), " */");
  }

  // For old IE
  /* istanbul ignore if  */
  options.styleTagTransform(css, styleElement, options.options);
}
function removeStyleElement(styleElement) {
  // istanbul ignore if
  if (styleElement.parentNode === null) {
    return false;
  }
  styleElement.parentNode.removeChild(styleElement);
}

/* istanbul ignore next  */
function domAPI(options) {
  if (typeof document === "undefined") {
    return {
      update: function update() {},
      remove: function remove() {}
    };
  }
  var styleElement = options.insertStyleElement(options);
  return {
    update: function update(obj) {
      apply(styleElement, options, obj);
    },
    remove: function remove() {
      removeStyleElement(styleElement);
    }
  };
}
module.exports = domAPI;

/***/ }),

/***/ 113:
/***/ ((module) => {



/* istanbul ignore next  */
function styleTagTransform(css, styleElement) {
  if (styleElement.styleSheet) {
    styleElement.styleSheet.cssText = css;
  } else {
    while (styleElement.firstChild) {
      styleElement.removeChild(styleElement.firstChild);
    }
    styleElement.appendChild(document.createTextNode(css));
  }
}
module.exports = styleTagTransform;

/***/ }),

/***/ 594:
/***/ ((module) => {

module.exports = React;

/***/ }),

/***/ 206:
/***/ ((module) => {

module.exports = ReactDOM;

/***/ })

/******/ 	});
/************************************************************************/
/******/ 	// The module cache
/******/ 	var __webpack_module_cache__ = {};
/******/ 	
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/ 		// Check if module is in cache
/******/ 		var cachedModule = __webpack_module_cache__[moduleId];
/******/ 		if (cachedModule !== undefined) {
/******/ 			return cachedModule.exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = __webpack_module_cache__[moduleId] = {
/******/ 			id: moduleId,
/******/ 			// no module.loaded needed
/******/ 			exports: {}
/******/ 		};
/******/ 	
/******/ 		// Execute the module function
/******/ 		__webpack_modules__[moduleId](module, module.exports, __webpack_require__);
/******/ 	
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/ 	
/************************************************************************/
/******/ 	/* webpack/runtime/compat get default export */
/******/ 	(() => {
/******/ 		// getDefaultExport function for compatibility with non-harmony modules
/******/ 		__webpack_require__.n = (module) => {
/******/ 			var getter = module && module.__esModule ?
/******/ 				() => (module['default']) :
/******/ 				() => (module);
/******/ 			__webpack_require__.d(getter, { a: getter });
/******/ 			return getter;
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/define property getters */
/******/ 	(() => {
/******/ 		// define getter functions for harmony exports
/******/ 		__webpack_require__.d = (exports, definition) => {
/******/ 			for(var key in definition) {
/******/ 				if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ 					Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ 				}
/******/ 			}
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/hasOwnProperty shorthand */
/******/ 	(() => {
/******/ 		__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/make namespace object */
/******/ 	(() => {
/******/ 		// define __esModule on exports
/******/ 		__webpack_require__.r = (exports) => {
/******/ 			if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 				Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 			}
/******/ 			Object.defineProperty(exports, '__esModule', { value: true });
/******/ 		};
/******/ 	})();
/******/ 	
/******/ 	/* webpack/runtime/nonce */
/******/ 	(() => {
/******/ 		__webpack_require__.nc = undefined;
/******/ 	})();
/******/ 	
/************************************************************************/
var __webpack_exports__ = {};

;// external "_"
const external_namespaceObject = _;
var external_default = /*#__PURE__*/__webpack_require__.n(external_namespaceObject);
;// ./generic-services/utils/useMatchDomain/index.ts
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
/**
 * 如果匹配到域名则会执行回调
 */

var useMatchDomain = /*#__PURE__*/function () {
  var _ref = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(matcher, callback) {
    var _matcher$regExp, _matcher$hosts, _matcher$includes;
    var matchResult;
    return _regeneratorRuntime().wrap(function _callee$(_context) {
      while (1) switch (_context.prev = _context.next) {
        case 0:
          matchResult = false;
          _context.t0 = true;
          _context.next = _context.t0 === ((_matcher$regExp = matcher.regExp) === null || _matcher$regExp === void 0 ? void 0 : _matcher$regExp.test(location.href)) ? 4 : _context.t0 === ((_matcher$hosts = matcher.hosts) === null || _matcher$hosts === void 0 ? void 0 : _matcher$hosts.some(function (host) {
            return location.host === host;
          })) ? 4 : _context.t0 === ((_matcher$includes = matcher.includes) === null || _matcher$includes === void 0 ? void 0 : _matcher$includes.some(function (kw) {
            if (external_default().isString(kw)) {
              return location.href.includes(kw);
            } else {
              return kw.every(function (txt) {
                return location.href.includes(txt);
              });
            }
          })) ? 4 : 6;
          break;
        case 4:
          matchResult = true;
          return _context.abrupt("break", 6);
        case 6:
          if (!matchResult) {
            _context.next = 10;
            break;
          }
          return _context.abrupt("return", callback());
        case 10:
          return _context.abrupt("return", null);
        case 11:
        case "end":
          return _context.stop();
      }
    }, _callee);
  }));
  return function useMatchDomain(_x, _x2) {
    return _ref.apply(this, arguments);
  };
}();

/**
 * regExp,hosts,includes取并集,protocol为约束性规则,与上述规则结果取交集
 * 需要注意的是includes规则:第一层的所有规则取并集,如果第一层的某个成员是数组,则数组内的规则取交集,href必须包含该内层数组中的所有字符
 * 比如includes:['switch520',['switch','618']]这个规则代表href要么包含'switch520',要么既包含'switch'也同时包含'618'
 */


;// ./projects/switch520-auto-secret/core/password-extractor.ts
function password_extractor_typeof(o) { "@babel/helpers - typeof"; return password_extractor_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, password_extractor_typeof(o); }
function _wrapRegExp() { _wrapRegExp = function _wrapRegExp(e, r) { return new BabelRegExp(e, void 0, r); }; var e = RegExp.prototype, r = new WeakMap(); function BabelRegExp(e, t, p) { var o = RegExp(e, t); return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype); } function buildGroups(e, t) { var p = r.get(t); return Object.keys(p).reduce(function (r, t) { var o = p[t]; if ("number" == typeof o) r[t] = e[o];else { for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++; r[t] = e[o[i]]; } return r; }, Object.create(null)); } return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) { var t = e.exec.call(this, r); if (t) { t.groups = buildGroups(t, this); var p = t.indices; p && (p.groups = buildGroups(p, this)); } return t; }, BabelRegExp.prototype[Symbol.replace] = function (t, p) { if ("string" == typeof p) { var o = r.get(this); return e[Symbol.replace].call(this, t, p.replace(/\$<([^>]+)>/g, function (e, r) { var t = o[r]; return "$" + (Array.isArray(t) ? t.join("$") : t); })); } if ("function" == typeof p) { var i = this; return e[Symbol.replace].call(this, t, function () { var e = arguments; return "object" != password_extractor_typeof(e[e.length - 1]) && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e); }); } return e[Symbol.replace].call(this, t, p); }, _wrapRegExp.apply(this, arguments); }
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
/**
 * 密码提取核心逻辑
 * 从页面文本中提取受保护内容的访问密码,纯函数无副作用
 */

/**
 * 从标题文本中提取密码保护内容的密码
 * 匹配格式: "密码保护:123456"
 * @param text 元素文本内容
 * @returns 提取的密码或 null
 */
function extractPasswordFromTitle(text) {
  if (!(text !== null && text !== void 0 && text.startsWith('密码保护:'))) return null;

  // 排除非密码保护的干扰文本
  if (text.includes('上一篇') || text.includes('牛夫人')) return null;
  if (text.includes('当前位置') || text.includes('此内容受密码保护')) return null;
  if (text.includes('永久防迷路')) return null;
  return text.replace('密码保护:', '');
}

/**
 * 从 span 元素中提取访问密码
 * 匹配格式: "访问密码:123456"(6位数字结尾)
 * @param text 元素文本内容
 * @returns 提取的密码或 null
 */
function extractPasswordFromSpan(text) {
  if (!text.startsWith('访问密码:')) return null;
  if (!/\d{6}$/.test(text)) return null;
  return text.replace('访问密码:', '');
}

/**
 * 从提取码文本中提取4位密码
 * 匹配格式: "提取码:abcd" 或 "提取码: abcd"
 * @param text 包含提取码的文本
 * @returns 4位提取码
 */
function extractBaiduPwd(text) {
  var _match$groups;
  var reg = /*#__PURE__*/_wrapRegExp(/(\u63D0\u53D6\u7801|\u5982\u9047\u5230\u6709\u5E26x\u7684\u63D0\u53D6\u7801\u8BF7\u624B\u6253\u8F93\u5165)[::]\s*([a-zA-Z0-9]{4})/, {
    code: 2
  });
  var match = text.match(reg);
  return (match === null || match === void 0 || (_match$groups = match.groups) === null || _match$groups === void 0 ? void 0 : _match$groups.code) || null;
}

/**
 * 统一提取码提取(用于多网盘场景)
 * 匹配格式: "统一提取码:1234"
 * @param text 文本内容
 * @returns 提取码或 undefined
 */
function extractUnifiedCode(text) {
  var _match$groups2;
  var reg = /*#__PURE__*/_wrapRegExp(/\u7EDF\u4E00\u63D0\u53D6\u7801\uFF1A(\d{4,})/, {
    code: 1
  });
  var match = reg.exec(text);
  return match === null || match === void 0 || (_match$groups2 = match.groups) === null || _match$groups2 === void 0 ? void 0 : _match$groups2.code;
}
;// ./projects/switch520-auto-secret/utils/dom-helper.ts
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
/**
 * DOM 操作工具函数
 * 提供常用的 DOM 查询、创建、插入等操作的封装
 */

/**
 * 安全查询单个 DOM 元素
 * @param selector CSS 选择器
 * @returns 匹配的元素或 null
 */
function querySelector(selector) {
  return document.querySelector(selector);
}

/**
 * 查询所有匹配的 DOM 元素
 * @param selector CSS 选择器
 * @returns 元素数组
 */
function querySelectorAll(selector) {
  return Array.from(document.querySelectorAll(selector));
}

/**
 * 创建 DOM 元素并设置属性
 * @param tag 标签名
 * @param attributes 属性键值对
 * @returns 创建的元素
 */
function createElement(tag, attributes) {
  var element = document.createElement(tag);
  if (attributes) {
    Object.entries(attributes).forEach(function (_ref) {
      var _ref2 = _slicedToArray(_ref, 2),
        key = _ref2[0],
        value = _ref2[1];
      element.setAttribute(key, value);
    });
  }
  return element;
}

/**
 * 在参考节点后插入新节点
 * @param newNode 要插入的节点
 * @param referenceNode 参考节点
 */
function insertAfter(newNode, referenceNode) {
  var _referenceNode$parent;
  (_referenceNode$parent = referenceNode.parentNode) === null || _referenceNode$parent === void 0 || _referenceNode$parent.insertBefore(newNode, referenceNode.nextSibling);
}

/**
 * 查找直接子节点中的文本节点
 * @param container 容器元素
 * @param reg 匹配正则
 * @returns 匹配的文本节点或 null
 */
function findDirectTextNode(container, reg) {
  return Array.from(container.childNodes).find(function (node) {
    return node.nodeType === Node.TEXT_NODE && reg.test(node.textContent || '');
  }) || null;
}

/**
 * 递归查找包含指定关键字的最深层容器
 * @param keyword 关键字(字符串或正则)
 * @param container 起始容器,默认 document.body
 * @param exclude 排除的关键字列表
 * @param tester 自定义测试函数
 * @returns 匹配的容器元素或 null
 */
function recursiveFindContainer(keyword) {
  var _container$innerText;
  var container = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document.body;
  var exclude = arguments.length > 2 ? arguments[2] : undefined;
  var tester = arguments.length > 3 ? arguments[3] : undefined;
  var isExcluded = function isExcluded(text) {
    return (exclude === null || exclude === void 0 ? void 0 : exclude.some(function (ex) {
      return ex instanceof RegExp ? ex.test(text) : text.includes(ex);
    })) || false;
  };
  var isMatch = keyword instanceof RegExp ? keyword.test(container.innerText) : (_container$innerText = container.innerText) === null || _container$innerText === void 0 ? void 0 : _container$innerText.includes(keyword);
  if (isMatch) {
    // 递归查找子元素
    var _iterator = _createForOfIteratorHelper(container.children),
      _step;
    try {
      for (_iterator.s(); !(_step = _iterator.n()).done;) {
        var child = _step.value;
        var result = recursiveFindContainer(keyword, child, exclude, tester);
        if (result) return result;
      }

      // 检查排除条件
    } catch (err) {
      _iterator.e(err);
    } finally {
      _iterator.f();
    }
    if (exclude && exclude.length > 0 && isExcluded(container.innerText)) {
      return null;
    }

    // 自定义测试
    if (tester && !tester(container)) {
      return null;
    }
    return container;
  }
  return null;
}

/**
 * 安全移除元素
 * @param element 要移除的元素
 */
function safeRemove(element) {
  var _element$parentNode;
  element === null || element === void 0 || (_element$parentNode = element.parentNode) === null || _element$parentNode === void 0 || _element$parentNode.removeChild(element);
}
// EXTERNAL MODULE: ./projects/switch520-auto-secret/core/domain-matcher.ts
var domain_matcher = __webpack_require__(55);
;// ./projects/switch520-auto-secret/services/auto-secret.service.ts
function auto_secret_service_typeof(o) { "@babel/helpers - typeof"; return auto_secret_service_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, auto_secret_service_typeof(o); }
function auto_secret_service_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ auto_secret_service_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == auto_secret_service_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(auto_secret_service_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
function auto_secret_service_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = auto_secret_service_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
function auto_secret_service_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function auto_secret_service_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { auto_secret_service_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { auto_secret_service_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || auto_secret_service_unsupportedIterableToArray(r) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function auto_secret_service_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return auto_secret_service_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? auto_secret_service_arrayLikeToArray(r, a) : void 0; } }
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return auto_secret_service_arrayLikeToArray(r); }
function auto_secret_service_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
/**
 * 自动输入密码服务
 * 在访问密码保护的页面时,自动提取密码并提交表单
 *
 * 防死循环保护(仅在 iframe 内启用):
 * - 10s 滑动窗口记录各域名访问次数,>= 3 次触发
 * - 触发后将域名加入 GM_storage 持久化黑名单
 * - 黑名单命中时不自动提交,通过 postMessage + window.open 打开新标签页
 * - 顶层上下文(独立标签页)不受影响,始终正常提交
 */






// ============== GM Storage 键名定义 ==============

/** GM 存储键:各域名访问时间戳映射 */
var VISIT_TS_KEY = 'g520_visit_ts';

/** GM 存储键:持久化黑名单域名列表(auto-secret 自身跳过用) */
var BLACKLIST_KEY = 'g520_blacklist';

/** GM 存储键:已知死循环的 post_id 列表(download-bypass 预检查用) */
var BAD_POST_IDS_KEY = 'g520_bad_post_ids';

/** GM 存储键:当前待确认的 post_id(download-bypass 写入,auto-secret 读取) */
var PENDING_SRC_KEY = 'g520_pending_src';

/** postMessage 来源标识 */
var MSG_SOURCE = 'S520_LOOP_GUARD';

/** 10s 滑动窗口 */
var LOOP_WINDOW_MS = 10000;

/** 窗口内触发阈值 */
var LOOP_THRESHOLD = 3;

/**
 * 初始化自动密码服务
 */
function initAutoSecret() {
  initGamer520AutoSecret();
  initAcgxAutSecret();
}

/**
 * gamer520/gamers520 站点自动密码
 * 从标题 "密码保护:XXX" 中提取密码并自动提交
 * 防死循环保护仅在 iframe 内启用
 */
function initGamer520AutoSecret() {
  useMatchDomain({
    includes: _toConsumableArray(domain_matcher/* GAMER520_INCLUDES */.cb)
  }, /*#__PURE__*/auto_secret_service_asyncToGenerator(/*#__PURE__*/auto_secret_service_regeneratorRuntime().mark(function _callee() {
    var el_input, el_submit, secret, titleSelectors, _i, _titleSelectors, selector, elements, _iterator, _step, el, extracted, domain, url, visitCount, pendingSrcId, _url;
    return auto_secret_service_regeneratorRuntime().wrap(function _callee$(_context) {
      while (1) switch (_context.prev = _context.next) {
        case 0:
          el_input = findPasswordInput();
          el_submit = findSubmitButton();
          if (!(!el_input || !el_submit)) {
            _context.next = 4;
            break;
          }
          return _context.abrupt("return");
        case 4:
          secret = null; // 优化:优先检查常见的标题元素,避免遍历所有节点
          titleSelectors = ['h1', 'h2', 'h3', '.entry-title', '.post-title', 'title'];
          _i = 0, _titleSelectors = titleSelectors;
        case 7:
          if (!(_i < _titleSelectors.length)) {
            _context.next = 34;
            break;
          }
          selector = _titleSelectors[_i];
          elements = document.querySelectorAll(selector);
          _iterator = auto_secret_service_createForOfIteratorHelper(elements);
          _context.prev = 11;
          _iterator.s();
        case 13:
          if ((_step = _iterator.n()).done) {
            _context.next = 21;
            break;
          }
          el = _step.value;
          extracted = extractPasswordFromTitle(el.innerText);
          if (!extracted) {
            _context.next = 19;
            break;
          }
          secret = extracted;
          return _context.abrupt("break", 21);
        case 19:
          _context.next = 13;
          break;
        case 21:
          _context.next = 26;
          break;
        case 23:
          _context.prev = 23;
          _context.t0 = _context["catch"](11);
          _iterator.e(_context.t0);
        case 26:
          _context.prev = 26;
          _iterator.f();
          return _context.finish(26);
        case 29:
          if (!secret) {
            _context.next = 31;
            break;
          }
          return _context.abrupt("break", 34);
        case 31:
          _i++;
          _context.next = 7;
          break;
        case 34:
          // 如果标题中未找到,再遍历所有元素(降级方案)
          if (!secret) {
            document.querySelectorAll('*').forEach(function (node) {
              if (!secret) {
                secret = extractPasswordFromTitle(node.innerText);
              }
            });
          }
          if (!secret) {
            secret = new URL(location.href).searchParams.get('pwd');
          }
          if (secret) {
            _context.next = 38;
            break;
          }
          return _context.abrupt("return");
        case 38:
          if (!(window.parent !== window.self)) {
            _context.next = 68;
            break;
          }
          domain = location.hostname; // 检查当前域名是否已被持久化黑名单
          _context.next = 42;
          return isDomainBlacklisted(domain);
        case 42:
          if (!_context.sent) {
            _context.next = 48;
            break;
          }
          console.log("[auto-secret] ".concat(domain, " \u5DF2\u5728\u9ED1\u540D\u5355\uFF0C\u6539\u7528\u65B0\u6807\u7B7E\u9875\u6253\u5F00"));
          url = new URL(location.href);
          url.searchParams.set('pwd', secret);
          notifyTopOpenTab(url.toString());
          return _context.abrupt("return");
        case 48:
          _context.next = 50;
          return recordAndCountVisits();
        case 50:
          visitCount = _context.sent;
          if (!(visitCount >= LOOP_THRESHOLD)) {
            _context.next = 68;
            break;
          }
          console.log("[auto-secret] ".concat(domain, " 10s\u5185\u8BBF\u95EE").concat(visitCount, "\u6B21\uFF0C\u89E6\u53D1\u6B7B\u5FAA\u73AF\u4FDD\u62A4"));
          _context.next = 55;
          return blacklistDomain(domain);
        case 55:
          _context.next = 57;
          return GM.getValue(PENDING_SRC_KEY, null);
        case 57:
          pendingSrcId = _context.sent;
          if (!pendingSrcId) {
            _context.next = 64;
            break;
          }
          _context.next = 61;
          return markBadPostId(pendingSrcId);
        case 61:
          _context.next = 63;
          return GM.setValue(PENDING_SRC_KEY, null);
        case 63:
          console.log("[auto-secret] post_id=".concat(pendingSrcId, " \u5DF2\u52A0\u5165\u7CBE\u7EC6\u5316\u9ED1\u540D\u5355"));
        case 64:
          _url = new URL(location.href);
          _url.searchParams.set('pwd', secret);
          notifyTopOpenTab(_url.toString());
          return _context.abrupt("return");
        case 68:
          // 正常自动提交
          el_input.value = secret;
          el_submit.click();
        case 70:
        case "end":
          return _context.stop();
      }
    }, _callee, null, [[11, 23, 26, 29]]);
  })));
}

/**
 * acgxj.com 站点自动密码
 * 从 span "访问密码:XXXXXX" 中提取密码并自动提交
 */
function initAcgxAutSecret() {
  useMatchDomain({
    includes: ['acgxj.com']
  }, function () {
    document.querySelectorAll('span').forEach(function (el) {
      var pwd = extractPasswordFromSpan(el.innerText);
      if (!pwd) return;
      var input_pwd = querySelector('input[type=password][name=e_secret_key]');
      if (!input_pwd) return;
      input_pwd.value = pwd;
      var input_confirm = querySelector('input[type=submit][value=确定]');
      input_confirm === null || input_confirm === void 0 || input_confirm.click();
    });
  });
}

/**
 * 查找密码输入框(兼容多种选择器)
 */
function findPasswordInput() {
  return querySelector('input#password') || querySelector('input[type="password"]') || querySelector('input[name="post_password"]');
}

/**
 * 查找提交按钮(兼容多种选择器)
 */
function findSubmitButton() {
  return querySelector('input[type="submit"]') || querySelector('input[name="Submit"]') || querySelector('input[value="提交"]');
}

// ============== 防死循环保护 ==============

/**
 * 记录当前域名访问,返回 10s 窗口内的访问次数
 */
function recordAndCountVisits() {
  return _recordAndCountVisits.apply(this, arguments);
}
/**
 * 检查域名是否在持久化黑名单中
 */
function _recordAndCountVisits() {
  _recordAndCountVisits = auto_secret_service_asyncToGenerator(/*#__PURE__*/auto_secret_service_regeneratorRuntime().mark(function _callee2() {
    var now, raw, map, domain, timestamps;
    return auto_secret_service_regeneratorRuntime().wrap(function _callee2$(_context2) {
      while (1) switch (_context2.prev = _context2.next) {
        case 0:
          now = Date.now();
          _context2.next = 3;
          return GM.getValue(VISIT_TS_KEY, '{}');
        case 3:
          raw = _context2.sent;
          map = JSON.parse(raw);
          domain = location.hostname;
          timestamps = (map[domain] || []).filter(function (ts) {
            return now - ts < LOOP_WINDOW_MS;
          });
          timestamps.push(now);
          map[domain] = timestamps;
          _context2.next = 11;
          return GM.setValue(VISIT_TS_KEY, JSON.stringify(map));
        case 11:
          return _context2.abrupt("return", timestamps.length);
        case 12:
        case "end":
          return _context2.stop();
      }
    }, _callee2);
  }));
  return _recordAndCountVisits.apply(this, arguments);
}
function isDomainBlacklisted(_x) {
  return _isDomainBlacklisted.apply(this, arguments);
}
/**
 * 将域名加入持久化黑名单
 */
function _isDomainBlacklisted() {
  _isDomainBlacklisted = auto_secret_service_asyncToGenerator(/*#__PURE__*/auto_secret_service_regeneratorRuntime().mark(function _callee3(domain) {
    var raw, list;
    return auto_secret_service_regeneratorRuntime().wrap(function _callee3$(_context3) {
      while (1) switch (_context3.prev = _context3.next) {
        case 0:
          _context3.next = 2;
          return GM.getValue(BLACKLIST_KEY, '[]');
        case 2:
          raw = _context3.sent;
          list = JSON.parse(raw);
          return _context3.abrupt("return", list.includes(domain));
        case 5:
        case "end":
          return _context3.stop();
      }
    }, _callee3);
  }));
  return _isDomainBlacklisted.apply(this, arguments);
}
function blacklistDomain(_x2) {
  return _blacklistDomain.apply(this, arguments);
}
/**
 * 将 post_id 加入精细化黑名单(download-bypass 预检查用)
 */
function _blacklistDomain() {
  _blacklistDomain = auto_secret_service_asyncToGenerator(/*#__PURE__*/auto_secret_service_regeneratorRuntime().mark(function _callee4(domain) {
    var raw, list;
    return auto_secret_service_regeneratorRuntime().wrap(function _callee4$(_context4) {
      while (1) switch (_context4.prev = _context4.next) {
        case 0:
          _context4.next = 2;
          return GM.getValue(BLACKLIST_KEY, '[]');
        case 2:
          raw = _context4.sent;
          list = JSON.parse(raw);
          if (list.includes(domain)) {
            _context4.next = 9;
            break;
          }
          list.push(domain);
          _context4.next = 8;
          return GM.setValue(BLACKLIST_KEY, JSON.stringify(list));
        case 8:
          console.log("[auto-secret] ".concat(domain, " \u5DF2\u52A0\u5165\u57DF\u540D\u9ED1\u540D\u5355"));
        case 9:
        case "end":
          return _context4.stop();
      }
    }, _callee4);
  }));
  return _blacklistDomain.apply(this, arguments);
}
function markBadPostId(_x3) {
  return _markBadPostId.apply(this, arguments);
}
/**
 * 通过 postMessage + 直接调用打开新标签页(双保险)
 */
function _markBadPostId() {
  _markBadPostId = auto_secret_service_asyncToGenerator(/*#__PURE__*/auto_secret_service_regeneratorRuntime().mark(function _callee5(postId) {
    var raw, list;
    return auto_secret_service_regeneratorRuntime().wrap(function _callee5$(_context5) {
      while (1) switch (_context5.prev = _context5.next) {
        case 0:
          _context5.next = 2;
          return GM.getValue(BAD_POST_IDS_KEY, '[]');
        case 2:
          raw = _context5.sent;
          list = JSON.parse(raw);
          if (list.includes(postId)) {
            _context5.next = 8;
            break;
          }
          list.push(postId);
          _context5.next = 8;
          return GM.setValue(BAD_POST_IDS_KEY, JSON.stringify(list));
        case 8:
        case "end":
          return _context5.stop();
      }
    }, _callee5);
  }));
  return _markBadPostId.apply(this, arguments);
}
function notifyTopOpenTab(url) {
  if (window.parent !== window.self) {
    window.parent.postMessage({
      source: MSG_SOURCE,
      type: 'OPEN_TAB',
      url: url
    }, '*');
  }
  window.open(url, '_blank');
}
;// ./projects/switch520-auto-secret/utils/url-helper.ts
/**
 * URL 处理工具函数
 * 提供网盘链接和密码参数的处理逻辑
 */

/**
 * 为 URL 添加 pwd 参数
 * 自动判断 URL 是否已有查询参数,选择 ? 或 & 连接符
 * @param url 原始 URL
 * @param pwd 密码值
 * @returns 添加了 pwd 参数的 URL
 */
function appendPwdToUrl(url, pwd) {
  if (!pwd) return url;
  if (url.includes('pwd=')) return url;
  var separator = url.includes('?') ? '&' : '?';
  return "".concat(url).concat(separator, "pwd=").concat(pwd);
}

/**
 * 判断是否为百度网盘链接
 * @param url 待检测的 URL
 * @returns 是否为百度网盘链接
 */
function isBaiduPanUrl(url) {
  return typeof url === 'string' && url.includes('pan.baidu.com');
}

/**
 * 判断是否为阿里云盘链接
 * @param url 待检测的 URL
 * @returns 是否为阿里云盘链接
 */
function isAliyunPanUrl(url) {
  return typeof url === 'string' && url.includes('aliyundrive.com');
}

/**
 * 判断是否为夸克网盘链接
 * @param url 待检测的 URL
 * @returns 是否为夸克网盘链接
 */
function isQuarkPanUrl(url) {
  return typeof url === 'string' && url.includes('quark.cn');
}

/**
 * 判断是否为迅雷云盘链接
 * @param url 待检测的 URL
 * @returns 是否为迅雷云盘链接
 */
function isXunleiPanUrl(url) {
  return typeof url === 'string' && url.includes('pan.xunlei.com');
}

/**
 * 判断是否为 GOFILE 海外盘链接
 * @param url 待检测的 URL
 * @returns 是否为 GOFILE 链接
 */
function isGofileUrl(url) {
  return typeof url === 'string' && url.includes('gofile.io');
}

/**
 * 根据 URL 获取网盘提供商名称
 * @param url 网盘链接
 * @returns 提供商名称或空字符串
 */
function getProviderName(url) {
  if (!url || typeof url !== 'string') return '';
  if (isBaiduPanUrl(url)) return '百度网盘';
  if (isAliyunPanUrl(url)) return '阿里云盘';
  if (isQuarkPanUrl(url)) return '夸克网盘';
  if (isXunleiPanUrl(url)) return '迅雷云盘';
  if (isGofileUrl(url)) return 'GOFILE';
  return '';
}

/**
 * 从文本中提取百度网盘链接
 * @param text 包含链接的文本
 * @returns 提取的链接或 null
 */
function extractBaiduLinkFromText(text) {
  var reg = /https:\/\/pan\.baidu\.com[\x2D-9=\?A-Z_a-z]+/;
  var match = text.match(reg);
  return (match === null || match === void 0 ? void 0 : match[0]) || null;
}
;// ./projects/switch520-auto-secret/services/baidu-link.service.ts
function baidu_link_service_toConsumableArray(r) { return baidu_link_service_arrayWithoutHoles(r) || baidu_link_service_iterableToArray(r) || baidu_link_service_unsupportedIterableToArray(r) || baidu_link_service_nonIterableSpread(); }
function baidu_link_service_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function baidu_link_service_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return baidu_link_service_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? baidu_link_service_arrayLikeToArray(r, a) : void 0; } }
function baidu_link_service_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function baidu_link_service_arrayWithoutHoles(r) { if (Array.isArray(r)) return baidu_link_service_arrayLikeToArray(r); }
function baidu_link_service_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
/**
 * 百度网盘链接处理服务
 * 将百度网盘链接和提取码融合为一个直链按钮,点击后直接跳转并填充密码
 */







// 正则表达式:匹配百度网盘链接和提取码文本
var codeReg = /(提取码|如遇到有带x的提取码请手打输入)[::]\s*(?=\S)[\w\W]+/;
var linkReg = /(百度(网盘)?|链接)[::]?\s*(?=[^\s::])[\w\W]+$/;

/**
 * 初始化百度网盘链接服务
 */
function initBaiduLinkService() {
  initGamer520BaiduLink();
  initDlSiteBaiduLink();
  initOtherSitesBaiduLink();
}

/**
 * gamer520/gamers520 站点处理
 */
function initGamer520BaiduLink() {
  useMatchDomain({
    includes: baidu_link_service_toConsumableArray(domain_matcher/* GAMER520_INCLUDES */.cb)
  }, function () {
    if (!(0,domain_matcher/* isHtmlPostPage */.zN)()) return;

    // 新版 .bdp-container 卡片式布局由 qrcode-converter.service 处理,
    // 此处仅处理旧版纯文本链接格式,避免误删提取码 DOM
    if (document.querySelector('.bdp-container')) return;
    var containerEl = recursiveFindContainer(linkReg, document.body, ['友情链接:', '限时特惠']);
    if (!containerEl) return;
    var pwdEl = recursiveFindContainer(codeReg);
    var links = getBaiduLinks(containerEl);
    var pwd = pwdEl ? extractBaiduPwd(pwdEl.innerText) : null;
    links.forEach(function (link) {
      return createDirectLink(link, pwd, containerEl);
    });
    removeLinkElements(containerEl);
    pwdEl && safeRemove(pwdEl);
  });
}

/**
 * dl.xxxxx520.cc 站点处理
 */
function initDlSiteBaiduLink() {
  useMatchDomain({
    includes: ['dl.xxxxx520.cc']
  }, function () {
    var linkEl = recursiveFindContainer(linkReg, document.body, [/下方|下载链接|下载不完整/]);
    if (!linkEl) return;
    var pwdEl = recursiveFindContainer(codeReg, document.body, ['直链+']);
    var links = getBaiduLinks(linkEl);
    var code = pwdEl ? extractBaiduPwd(pwdEl.innerText) : '';
    links.forEach(function (link) {
      createDirectLink(link, code, linkEl);
      removeLinkElements(linkEl);
      pwdEl && safeRemove(pwdEl);
    });
  });
}

/**
 * 其他站点(xxxxx520.org, acgxj 等)处理
 */
function initOtherSitesBaiduLink() {
  useMatchDomain({
    includes: ['xxxxx520.org', 'acgxj']
  }, function () {
    var linkEl = recursiveFindContainer(linkReg, document.body, [/下方|下载链接|下载不完整/, '直链+'], function (el) {
      return [Array.from(el.querySelectorAll('a')).find(function (element) {
        return element.href.includes('pan.baidu.com');
      }), Array.from(el.querySelectorAll('*')).find(function (element) {
        return /https:\/\/pan\.baidu\.com/.test(element.innerText || '');
      })].some(Boolean);
    });
    if (!linkEl) return;
    var pwdEl = recursiveFindContainer(codeReg);
    var links = getBaiduLinks(linkEl);
    var code = pwdEl ? extractBaiduPwd(pwdEl.innerText) : '';
    links.forEach(function (link) {
      createDirectLink(link, code, linkEl);
      removeLinkElements(linkEl);
      pwdEl && safeRemove(pwdEl);
    });
  });
}

/**
 * 从容器中提取所有百度网盘链接
 */
function getBaiduLinks(container) {
  var baiduLinks = [];
  for (var _i = 0, _Array$from = Array.from([].concat(baidu_link_service_toConsumableArray(container.querySelectorAll('*')), [container])); _i < _Array$from.length; _i++) {
    var el = _Array$from[_i];
    if (!(el instanceof HTMLElement)) continue;
    if (el instanceof HTMLAnchorElement) {
      if (el.href.includes('pan.baidu.com') && !baiduLinks.includes(el.href)) {
        baiduLinks.push(el.href);
        continue;
      }
    }
    if (el.innerText.includes('pan.baidu.com')) {
      var _el$innerText$match;
      var match = (_el$innerText$match = el.innerText.match(/https:\/\/pan\.baidu\.com[\x2D-9=\?A-Z_a-z]+/)) === null || _el$innerText$match === void 0 ? void 0 : _el$innerText$match[0];
      if (match && !baiduLinks.includes(match)) {
        baiduLinks.push(match);
      }
    }
  }
  return baiduLinks;
}

/**
 * 创建直链按钮
 */
function createDirectLink(link, pwd, containerEl) {
  var _containerEl$parentEl;
  var baiduLinkEl = document.createElement('span');
  var _link = appendPwdToUrl(link, pwd || '');
  baiduLinkEl.innerHTML = "<a href=\"".concat(_link, "\" target=\"_blank\" style=\"text-decoration: underline\">\u767E\u5EA6\u7F51\u76D8:").concat(_link, "</a><br>");
  baiduLinkEl.setAttribute('target', '_blank');
  (_containerEl$parentEl = containerEl.parentElement) === null || _containerEl$parentEl === void 0 || _containerEl$parentEl.insertBefore(baiduLinkEl, containerEl);
}

/**
 * 移除容器中的链接元素
 */
function removeLinkElements(parent) {
  var waitForRemove = [];
  var matcher = function matcher(node) {
    var shouldRemove = node.nodeType === Node.TEXT_NODE ? [linkReg, /https:\/\/pan\.baidu\.com/].some(function (reg) {
      return reg.test(node.textContent || '');
    }) : [linkReg, /https:\/\/pan\.baidu\.com/].some(function (reg) {
      return reg.test(node.innerText);
    });
    if (shouldRemove) {
      waitForRemove.push(node.nodeType === Node.TEXT_NODE ? node.parentElement : node);
    }
  };
  parent.childNodes.forEach(matcher);
  matcher(parent);
  waitForRemove.forEach(function (el) {
    return safeRemove(el);
  });
}
;// ./projects/switch520-auto-secret/services/download-bypass.service.ts
function download_bypass_service_typeof(o) { "@babel/helpers - typeof"; return download_bypass_service_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, download_bypass_service_typeof(o); }
function download_bypass_service_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ download_bypass_service_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == download_bypass_service_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(download_bypass_service_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
function download_bypass_service_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function download_bypass_service_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { download_bypass_service_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { download_bypass_service_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
/**
 * 下载跳过服务
 * 跳过游戏下载站的"立即下载"二次点击过程,直接跳转到下载地址页
 *
 * iframe 内预检查:post_id 在精细化黑名单时直接新标签页打开,避免 302 死循环
 */





/**
 * 初始化下载跳过服务
 */
function initDownloadBypassService() {
  initGamer520DownloadBypass();
}

/**
 * gamer520 站点下载按钮直达
 * 拦截下载按钮点击事件,直接跳转到下载页
 * iframe 内若 post_id 在黑名单则新标签页打开,跳过 302 链
 */
function initGamer520DownloadBypass() {
  useMatchDomain({
    includes: ['gamer520.com']
  }, /*#__PURE__*/download_bypass_service_asyncToGenerator(/*#__PURE__*/download_bypass_service_regeneratorRuntime().mark(function _callee2() {
    var downloadBtn, srcId;
    return download_bypass_service_regeneratorRuntime().wrap(function _callee2$(_context2) {
      while (1) switch (_context2.prev = _context2.next) {
        case 0:
          if ((0,domain_matcher/* isHtmlPostPage */.zN)()) {
            _context2.next = 2;
            break;
          }
          return _context2.abrupt("return");
        case 2:
          downloadBtn = document.querySelector('a.go-down');
          if (downloadBtn) {
            _context2.next = 5;
            break;
          }
          return _context2.abrupt("return");
        case 5:
          srcId = downloadBtn.dataset.id;
          downloadBtn === null || downloadBtn === void 0 || downloadBtn.addEventListener('click', /*#__PURE__*/function () {
            var _ref2 = download_bypass_service_asyncToGenerator(/*#__PURE__*/download_bypass_service_regeneratorRuntime().mark(function _callee(e) {
              var url;
              return download_bypass_service_regeneratorRuntime().wrap(function _callee$(_context) {
                while (1) switch (_context.prev = _context.next) {
                  case 0:
                    // useCapture=true 确保先于原页面监听器执行
                    // stopImmediatePropagation 彻底阻断同元素上其他监听器,避免原页面弹窗
                    e.preventDefault();
                    e.stopImmediatePropagation();
                    url = "https://".concat(location.host, "/go?post_id=").concat(srcId); // like.gamer520 子域新窗口打开
                    if (!location.host.includes('like.gamer520')) {
                      _context.next = 6;
                      break;
                    }
                    window.open(url);
                    return _context.abrupt("return");
                  case 6:
                    if (!(window.parent !== window.self)) {
                      _context.next = 13;
                      break;
                    }
                    _context.next = 9;
                    return isPostIdBlacklisted(srcId);
                  case 9:
                    if (!_context.sent) {
                      _context.next = 13;
                      break;
                    }
                    console.log("[download-bypass] post_id=".concat(srcId, " \u5728\u9ED1\u540D\u5355\uFF0C\u65B0\u6807\u7B7E\u9875\u6253\u5F00"));
                    download_bypass_service_notifyTopOpenTab(url);
                    return _context.abrupt("return");
                  case 13:
                    _context.next = 15;
                    return GM.setValue(PENDING_SRC_KEY, srcId);
                  case 15:
                    location.href = url;
                  case 16:
                  case "end":
                    return _context.stop();
                }
              }, _callee);
            }));
            return function (_x) {
              return _ref2.apply(this, arguments);
            };
          }(), true); // useCapture: true — 在捕获阶段拦截,先于原页面冒泡阶段监听器
        case 7:
        case "end":
          return _context2.stop();
      }
    }, _callee2);
  })));
}

/**
 * 检查 post_id 是否在精细化黑名单中
 */
function isPostIdBlacklisted(_x2) {
  return _isPostIdBlacklisted.apply(this, arguments);
}
/**
 * 通过 postMessage + 直接调用打开新标签页(双保险)
 */
function _isPostIdBlacklisted() {
  _isPostIdBlacklisted = download_bypass_service_asyncToGenerator(/*#__PURE__*/download_bypass_service_regeneratorRuntime().mark(function _callee3(postId) {
    var raw, list;
    return download_bypass_service_regeneratorRuntime().wrap(function _callee3$(_context3) {
      while (1) switch (_context3.prev = _context3.next) {
        case 0:
          _context3.next = 2;
          return GM.getValue(BAD_POST_IDS_KEY, '[]');
        case 2:
          raw = _context3.sent;
          list = JSON.parse(raw);
          return _context3.abrupt("return", list.includes(postId));
        case 5:
        case "end":
          return _context3.stop();
      }
    }, _callee3);
  }));
  return _isPostIdBlacklisted.apply(this, arguments);
}
function download_bypass_service_notifyTopOpenTab(url) {
  if (window.parent !== window.self) {
    window.parent.postMessage({
      source: MSG_SOURCE,
      type: 'OPEN_TAB',
      url: url
    }, '*');
  }
  window.open(url, '_blank');
}
;// ./projects/switch520-auto-secret/services/baidupan-auto-submit.service.ts
/**
 * 百度网盘自动提交服务
 * 在百度网盘分享页面自动点击"提取文件"按钮
 */



/**
 * 初始化百度网盘自动提交服务
 */
function initBaiduPanAutoSubmitService() {
  useMatchDomain({
    hosts: ['pan.baidu.com']
  }, function () {
    if (!location.href.startsWith('https://pan.baidu.com')) return;
    if (!location.href.includes('pwd=')) return;
    var submitBtn = document.getElementById('submitBtn');
    if ((submitBtn === null || submitBtn === void 0 ? void 0 : submitBtn.innerText) === '提取文件') {
      submitBtn.click();
    }
  });
}
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js
var injectStylesIntoStyleTag = __webpack_require__(72);
var injectStylesIntoStyleTag_default = /*#__PURE__*/__webpack_require__.n(injectStylesIntoStyleTag);
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleDomAPI.js
var styleDomAPI = __webpack_require__(825);
var styleDomAPI_default = /*#__PURE__*/__webpack_require__.n(styleDomAPI);
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertBySelector.js
var insertBySelector = __webpack_require__(659);
var insertBySelector_default = /*#__PURE__*/__webpack_require__.n(insertBySelector);
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js
var setAttributesWithoutAttributes = __webpack_require__(56);
var setAttributesWithoutAttributes_default = /*#__PURE__*/__webpack_require__.n(setAttributesWithoutAttributes);
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/insertStyleElement.js
var insertStyleElement = __webpack_require__(540);
var insertStyleElement_default = /*#__PURE__*/__webpack_require__.n(insertStyleElement);
// EXTERNAL MODULE: ./node_modules/style-loader/dist/runtime/styleTagTransform.js
var styleTagTransform = __webpack_require__(113);
var styleTagTransform_default = /*#__PURE__*/__webpack_require__.n(styleTagTransform);
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./projects/switch520-auto-secret/Components/OpenInModal/antd.override.less
var antd_override = __webpack_require__(259);
;// ./projects/switch520-auto-secret/Components/OpenInModal/antd.override.less

      
      
      
      
      
      
      
      
      

var options = {};

options.styleTagTransform = (styleTagTransform_default());
options.setAttributes = (setAttributesWithoutAttributes_default());
options.insert = insertBySelector_default().bind(null, "head");
options.domAPI = (styleDomAPI_default());
options.insertStyleElement = (insertStyleElement_default());

var update = injectStylesIntoStyleTag_default()(antd_override/* default */.A, options);




       /* harmony default export */ const OpenInModal_antd_override = (antd_override/* default */.A && antd_override/* default */.A.locals ? antd_override/* default */.A.locals : undefined);

// EXTERNAL MODULE: external "React"
var external_React_ = __webpack_require__(594);
var external_React_default = /*#__PURE__*/__webpack_require__.n(external_React_);
;// external "mobx"
const external_mobx_namespaceObject = mobx;
// EXTERNAL MODULE: external "ReactDOM"
var external_ReactDOM_ = __webpack_require__(206);
;// ./node_modules/reaxes-react/esm/index.js
var n={649:r=>{r.exports=external_React_}},o={};function a(e){var r=o[e];if(void 0!==r)return r.exports;var t=o[e]={exports:{}};return n[e](t,t.exports,a),t.exports}a.d=(e,r)=>{for(var t in r)a.o(r,t)&&!a.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},a.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r);var i={};a.d(i,{W:()=>ze,i:()=>Ce});const u=(e=>{var r={};return a.d(r,e),r})({$mobx:()=>external_mobx_namespaceObject.$mobx,Reaction:()=>external_mobx_namespaceObject.Reaction,_allowStateChanges:()=>external_mobx_namespaceObject._allowStateChanges,_allowStateReadsEnd:()=>external_mobx_namespaceObject._allowStateReadsEnd,_allowStateReadsStart:()=>external_mobx_namespaceObject._allowStateReadsStart,configure:()=>external_mobx_namespaceObject.configure,createAtom:()=>external_mobx_namespaceObject.createAtom,getDependencyTree:()=>external_mobx_namespaceObject.getDependencyTree,isObservableArray:()=>external_mobx_namespaceObject.isObservableArray,isObservableMap:()=>external_mobx_namespaceObject.isObservableMap,isObservableObject:()=>external_mobx_namespaceObject.isObservableObject,makeObservable:()=>external_mobx_namespaceObject.makeObservable,untracked:()=>external_mobx_namespaceObject.untracked});var c=a(649);if(!c.useState)throw new Error("mobx-react-lite requires React with Hooks support");if(!u.makeObservable)throw new Error("mobx-react-lite@3 requires mobx at least version 6 to be available");const f=(e=>{var r={};return a.d(r,e),r})({unstable_batchedUpdates:()=>external_ReactDOM_.unstable_batchedUpdates});function l(e){e()}function s(e){return(0,u.getDependencyTree)(e)}var p="undefined"==typeof FinalizationRegistry?void 0:FinalizationRegistry;function y(e){return{reaction:e,mounted:!1,changedBeforeMount:!1,cleanAt:Date.now()+d}}var d=1e4;function b(e,r){var t="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!t){if(Array.isArray(e)||(t=function(e,r){if(!e)return;if("string"==typeof e)return m(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return m(e,r)}(e))||r&&e&&"number"==typeof e.length){t&&(e=t);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,u=!1;return{s:function(){t=t.call(e)},n:function(){var e=t.next();return i=e.done,e},e:function(e){u=!0,a=e},f:function(){try{i||null==t.return||t.return()}finally{if(u)throw a}}}}function m(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}var v=p?function(e){var r=new Map,t=1,n=new e((function(e){var t=r.get(e);t&&(t.reaction.dispose(),r.delete(e))}));return{addReactionToTrack:function(e,o,a){var i=t++;return n.register(a,i,e),e.current=y(o),e.current.finalizationRegistryCleanupToken=i,r.set(i,e.current),e.current},recordReactionAsCommitted:function(e){n.unregister(e),e.current&&e.current.finalizationRegistryCleanupToken&&r.delete(e.current.finalizationRegistryCleanupToken)},forceCleanupTimerToRunNowForTests:function(){},resetCleanupScheduleForTests:function(){}}}(p):function(){var e,r=new Set;function t(){void 0===e&&(e=setTimeout(n,1e4))}function n(){e=void 0;var n=Date.now();r.forEach((function(e){var t=e.current;t&&n>=t.cleanAt&&(t.reaction.dispose(),e.current=null,r.delete(e))})),r.size>0&&t()}return{addReactionToTrack:function(e,n,o){var a;return e.current=y(n),a=e,r.add(a),t(),e.current},recordReactionAsCommitted:function(e){r.delete(e)},forceCleanupTimerToRunNowForTests:function(){e&&(clearTimeout(e),n())},resetCleanupScheduleForTests:function(){if(r.size>0){var t,n=b(r);try{for(n.s();!(t=n.n()).done;){var o=t.value,a=o.current;a&&(a.reaction.dispose(),o.current=null)}}catch(e){n.e(e)}finally{n.f()}r.clear()}e&&(clearTimeout(e),e=void 0)}}}(),h=v.addReactionToTrack,w=v.recordReactionAsCommitted,g=(v.resetCleanupScheduleForTests,v.forceCleanupTimerToRunNowForTests,!1);function S(){return g}var O=a(649);function j(e){return j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},j(e)}function R(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,a,i,u=[],c=!0,f=!1;try{if(a=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;c=!1}else for(;!(c=(n=a.call(t)).done)&&(u.push(n.value),u.length!==r);c=!0);}catch(e){f=!0,o=e}finally{try{if(!c&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(f)throw o}}return u}}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return T(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return T(e,r)}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function T(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function x(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(o=n.key,a=void 0,a=function(e,r){if("object"!==j(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!==j(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(o,"string"),"symbol"===j(a)?a:String(a)),n)}var o,a}function P(e,r,t){return r&&x(e.prototype,r),t&&x(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function k(e){return"observer".concat(e)}var A=P((function e(){!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e)}));function E(){return new A}function esm_(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"observed";if(S())return e();var t=R(O.useState(E),1)[0],n=R(O.useState(),2)[1],o=function(){return n([])},a=O.useRef(null);if(!a.current)var i=new u.Reaction(k(r),(function(){c.mounted?o():c.changedBeforeMount=!0})),c=h(a,i,t);var f,l,p=a.current.reaction;if(O.useDebugValue(p,s),O.useEffect((function(){return w(a),a.current?(a.current.mounted=!0,a.current.changedBeforeMount&&(a.current.changedBeforeMount=!1,o())):(a.current={reaction:new u.Reaction(k(r),(function(){o()})),mounted:!0,changedBeforeMount:!1,cleanAt:1/0},o()),function(){a.current.reaction.dispose(),a.current=null}}),[]),p.track((function(){try{f=e()}catch(e){l=e}})),l)throw l;return f}var C="function"==typeof Symbol&&Symbol.for,$=C?Symbol.for("react.forward_ref"):"function"==typeof c.forwardRef&&(0,c.forwardRef)((function(e){return null})).$$typeof,M=C?Symbol.for("react.memo"):"function"==typeof c.memo&&(0,c.memo)((function(e){return null})).$$typeof;function U(e,r){var t;if(M&&e.$$typeof===M)throw new Error("[mobx-react-lite] You are trying to use `observer` on a function component wrapped in either another `observer` or `React.memo`. The observer already applies 'React.memo' for you.");if(S())return e;var n=null!==(t=null==r?void 0:r.forwardRef)&&void 0!==t&&t,o=e,a=e.displayName||e.name;if($&&e.$$typeof===$&&(n=!0,"function"!=typeof(o=e.render)))throw new Error("[mobx-react-lite] `render` property of ForwardRef was not a function");var i,u,f=function(e,r){return esm_((function(){return o(e,r)}),a)};return""!==a&&(f.displayName=a),e.contextTypes&&(f.contextTypes=e.contextTypes),n&&(f=(0,c.forwardRef)(f)),i=e,u=f=(0,c.memo)(f),Object.keys(i).forEach((function(e){N[e]||Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(i,e))})),f}var N={$$typeof:!0,render:!0,compare:!0,type:!0,displayName:!0};var I=a(649);function D(e){return D="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},D(e)}function B(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var t=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var n,o,a,i,u=[],c=!0,f=!1;try{if(a=(t=t.call(e)).next,0===r){if(Object(t)!==t)return;c=!1}else for(;!(c=(n=a.call(t)).done)&&(u.push(n.value),u.length!==r);c=!0);}catch(e){f=!0,o=e}finally{try{if(!c&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(f)throw o}}return u}}(e,r)||function(e,r){if(!e)return;if("string"==typeof e)return F(e,r);var t=Object.prototype.toString.call(e).slice(8,-1);"Object"===t&&e.constructor&&(t=e.constructor.name);if("Map"===t||"Set"===t)return Array.from(e);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return F(e,r)}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function F(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=new Array(r);t<r;t++)n[t]=e[t];return n}function z(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,(o=n.key,a=void 0,a=function(e,r){if("object"!==D(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!==D(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(o,"string"),"symbol"===D(a)?a:String(a)),n)}var o,a}function q(e,r,t){return r&&z(e.prototype,r),t&&z(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function W(e){return"observer".concat(e)}var H=q((function e(){!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,e)}));function X(){return new H}function Y(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"observed",t=arguments.length>2?arguments[2]:void 0;if(S())return e();var n=B(I.useState(X),1)[0],o=B(I.useState(),2)[1],a=function(){return t.forceUpdate()},i=I.useRef(null);if(!i.current)var c=new u.Reaction(W(r),(function(){f.mounted?(a(),o([])):f.changedBeforeMount=!0})),f=h(i,c,n);var l,p,y=i.current.reaction;if(I.useDebugValue(y,s),I.useEffect((function(){return w(i),i.current?(i.current.mounted=!0,i.current.changedBeforeMount&&(i.current.changedBeforeMount=!1,a())):(i.current={reaction:new u.Reaction(W(r),(function(){a()})),mounted:!0,changedBeforeMount:!1,cleanAt:1/0},a()),function(){i.current.reaction.dispose(),i.current=null}}),[]),y.track((function(){try{l=e()}catch(e){p=e}})),p)throw p;return l}var L="function"==typeof Symbol&&Symbol.for,V=L?Symbol.for("react.forward_ref"):"function"==typeof c.forwardRef&&(0,c.forwardRef)((function(e){return null})).$$typeof,G=L?Symbol.for("react.memo"):"function"==typeof c.memo&&(0,c.memo)((function(e){return null})).$$typeof;function J(e,r){var t;if(G&&e.$$typeof===G)throw new Error("[mobx-react-lite] You are trying to use `observer` on a function component wrapped in either another `observer` or `React.memo`. The observer already applies 'React.memo' for you.");if(S())return e;var n=null!==(t=null==r?void 0:r.forwardRef)&&void 0!==t&&t,o=e,a=e.displayName||e.name;if(V&&e.$$typeof===V&&(n=!0,"function"!=typeof(o=e.render)))throw new Error("[mobx-react-lite] `render` property of ForwardRef was not a function");var i,u,f=function(e,r){return Y((function(){return o(e,r)}),a,e.instance)};return""!==a&&(f.displayName=a),e.contextTypes&&(f.contextTypes=e.contextTypes),n&&(f=(0,c.forwardRef)(f)),i=e,u=f,Object.keys(i).forEach((function(e){Q[e]||Object.defineProperty(u,e,Object.getOwnPropertyDescriptor(i,e))})),f}var K,Q={$$typeof:!0,render:!0,compare:!0,type:!0,displayName:!0};function Z(e,r,t){return(r=function(e){var r=function(e,r){if("object"!==ee(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!==ee(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"===ee(r)?r:String(r)}(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function ee(e){return ee="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ee(e)}(K=f.unstable_batchedUpdates)||(K=l),(0,u.configure)({reactionScheduler:K});var re=0;var te={};function ne(e){return te[e]||(te[e]=function(e){if("function"==typeof Symbol)return Symbol(e);var r="__$mobx-react ".concat(e," (").concat(re,")");return re++,r}(e)),te[e]}function oe(e,r){if(ae(e,r))return!0;if("object"!==ee(e)||null===e||"object"!==ee(r)||null===r)return!1;var t=Object.keys(e),n=Object.keys(r);if(t.length!==n.length)return!1;for(var o=0;o<t.length;o++)if(!Object.hasOwnProperty.call(r,t[o])||!ae(e[t[o]],r[t[o]]))return!1;return!0}function ae(e,r){return e===r?0!==e||1/e==1/r:e!=e&&r!=r}function ie(e,r,t){Object.hasOwnProperty.call(e,r)?e[r]=t:Object.defineProperty(e,r,{enumerable:!1,configurable:!0,writable:!0,value:t})}var ue=ne("patchMixins"),ce=ne("patchedDefinition");function fe(e,r){for(var t=this,n=arguments.length,o=new Array(n>2?n-2:0),a=2;a<n;a++)o[a-2]=arguments[a];r.locks++;try{var i;return null!=e&&(i=e.apply(this,o)),i}finally{r.locks--,0===r.locks&&r.methods.forEach((function(e){e.apply(t,o)}))}}function le(e,r){return function(){for(var t=arguments.length,n=new Array(t),o=0;o<t;o++)n[o]=arguments[o];fe.call.apply(fe,[this,e,r].concat(n))}}function se(e,r,t){var n=function(e,r){var t=e[ue]=e[ue]||{},n=t[r]=t[r]||{};return n.locks=n.locks||0,n.methods=n.methods||[],n}(e,r);n.methods.indexOf(t)<0&&n.methods.push(t);var o=Object.getOwnPropertyDescriptor(e,r);if(!o||!o[ce]){var a=e[r],i=pe(e,r,o?o.enumerable:void 0,n,a);Object.defineProperty(e,r,i)}}function pe(e,r,t,n,o){var a,i=le(o,n);return Z(a={},ce,!0),Z(a,"get",(function(){return i})),Z(a,"set",(function(o){if(this===e)i=le(o,n);else{var a=pe(this,r,t,n,o);Object.defineProperty(this,r,a)}})),Z(a,"configurable",!0),Z(a,"enumerable",t),a}var ye=u.$mobx||"$mobx",de=ne("isMobXReactObserver"),be=ne("isUnmounted"),me=ne("skipRender"),ve=ne("isForcingUpdate");function he(e){var r=e.prototype;if(e[de]){var t=we(r);console.warn("The provided component class (".concat(t,")\n                has already been declared as an observer component."))}else e[de]=!0;if(r.componentWillReact)throw new Error("The componentWillReact life-cycle event is no longer supported");if(e.__proto__!==c.PureComponent)if(r.shouldComponentUpdate){if(r.shouldComponentUpdate!==Se)throw new Error("It is not allowed to use shouldComponentUpdate in observer based components.")}else r.shouldComponentUpdate=Se;Oe(r,"props"),Oe(r,"state"),e.contextType&&Oe(r,"context");var n=r.render;if("function"!=typeof n){var o=we(r);throw new Error("[mobx-react] class component (".concat(o,") is missing `render` method.")+"\n`observer` requires `render` being a function defined on prototype.\n`render = () => {}` or `render = function() {}` is not supported.")}return r.render=function(){return ge.call(this,n)},se(r,"componentWillUnmount",(function(){var e;if(!0!==S()&&(null===(e=this.render[ye])||void 0===e||e.dispose(),this[be]=!0,!this.render[ye])){var r=we(this);console.warn("The reactive render of an observer class component (".concat(r,")\n                was overriden after MobX attached. This may result in a memory leak if the\n                overriden reactive render was not properly disposed."))}})),e}function we(e){return e.displayName||e.name||e.constructor&&(e.constructor.displayName||e.constructor.name)||"<component>"}function ge(e){var r=this;if(!0===S())return e.call(this);ie(this,me,!1),ie(this,ve,!1);var t=we(this),n=e.bind(this),o=!1,a=new u.Reaction("".concat(t,".render()"),(function(){if(!o&&(o=!0,!0!==r[be])){var e=!0;try{ie(r,ve,!0),r[me]||c.Component.prototype.forceUpdate.call(r),e=!1}finally{ie(r,ve,!1),e&&a.dispose()}}}));function i(){o=!1;var e=void 0,r=void 0;if(a.track((function(){try{r=(0,u._allowStateChanges)(!1,n)}catch(r){e=r}})),e)throw e;return r}return a.reactComponent=this,i[ye]=a,this.render=i,i.call(this)}function Se(e,r){return S()&&console.warn("[mobx-react] It seems that a re-rendering of a React component is triggered while in static (server-side) mode. Please make sure components are rendered only once server-side."),this.state!==r||!oe(this.props,e)}function Oe(e,r){var t=ne("reactProp_".concat(r,"_valueHolder")),n=ne("reactProp_".concat(r,"_atomHolder"));function o(){return this[n]||ie(this,n,(0,u.createAtom)("reactive "+r)),this[n]}Object.defineProperty(e,r,{configurable:!0,enumerable:!0,get:function(){var e=!1;return u._allowStateReadsStart&&u._allowStateReadsEnd&&(e=(0,u._allowStateReadsStart)(!0)),o.call(this).reportObserved(),u._allowStateReadsStart&&u._allowStateReadsEnd&&(0,u._allowStateReadsEnd)(e),this[t]},set:function(e){this[ve]||oe(this[t],e)?ie(this,t,e):(ie(this,t,e),ie(this,me,!0),o.call(this).reportChanged(),ie(this,me,!1))}})}var je=a(649);je.createContext({});ne("disposeOnUnmountProto"),ne("disposeOnUnmountInst");function Re(e){return Re="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Re(e)}function Te(e){function r(r,t,n,o,a,i){for(var c=arguments.length,f=new Array(c>6?c-6:0),l=6;l<c;l++)f[l-6]=arguments[l];return(0,u.untracked)((function(){if(o=o||"<<anonymous>>",i=i||n,null==t[n]){if(r){var u=null===t[n]?"null":"undefined";return new Error("The "+a+" `"+i+"` is marked as required in `"+o+"`, but its value is `"+u+"`.")}return null}return e.apply(void 0,[t,n,o,a,i].concat(f))}))}var t=r.bind(null,!1);return t.isRequired=r.bind(null,!0),t}function xe(e){var r=Re(e);return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,r){return"symbol"===e||"Symbol"===r["@@toStringTag"]||"function"==typeof Symbol&&r instanceof Symbol}(r,e)?"symbol":r}function Pe(e,r){return Te((function(t,n,o,a,i){return(0,u.untracked)((function(){if(e&&xe(t[n])===r.toLowerCase())return null;var a;switch(r){case"Array":a=u.isObservableArray;break;case"Object":a=u.isObservableObject;break;case"Map":a=u.isObservableMap;break;default:throw new Error("Unexpected mobxType: ".concat(r))}var c=t[n];if(!a(c)){var f=function(e){var r=xe(e);if("object"===r){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return r}(c),l=e?" or javascript `"+r.toLowerCase()+"`":"";return new Error("Invalid prop `"+i+"` of type `"+f+"` supplied to `"+o+"`, expected `mobx.Observable"+r+"`"+l+".")}return null}))}))}function ke(e,r){return Te((function(t,n,o,a,i){for(var c=arguments.length,f=new Array(c>5?c-5:0),l=5;l<c;l++)f[l-5]=arguments[l];return(0,u.untracked)((function(){if("function"!=typeof r)return new Error("Property `"+i+"` of component `"+o+"` has invalid PropType notation.");var u=Pe(e,"Array")(t,n,o,a,i);if(u instanceof Error)return u;for(var c=t[n],l=0;l<c.length;l++)if((u=r.apply(void 0,[c,l,o,a,i+"["+l+"]"].concat(f)))instanceof Error)return u;return null}))}))}Pe(!1,"Array"),ke.bind(null,!1),Pe(!1,"Map"),Pe(!1,"Object"),Pe(!0,"Array"),ke.bind(null,!0),Pe(!0,"Object");var Ae=a(649);function Ee(e){var r;if(null===(r=e.prototype)||void 0===r||!r.render)return U(e);if(Object.getOwnPropertySymbols(e).find((function(e){return"isMobXReactObserver"===e.description})))return e;var t=e.prototype.render;function n(e,r){var n=e.instance;return t.call(n)}var o=e.displayName||e.name||"Component";n.displayName=o+"Hooks";var a,i=J(n);return e.prototype.render=function(){return Ae.createElement(i,{instance:this})},!0===(a=e).isMobxInjector&&console.warn("Mobx observer: You are trying to use `observer` on a component that already has `inject`. Please apply `observer` before applying `inject`"),he(a)}var _e=Symbol(""),Ce=function(e){if(e.hasOwnProperty(_e))return e;var r,t=((r=[Ee]).length,1===r.length?r[0]:r.reduce((function(e,r){return function(){return e(r.apply(void 0,arguments))}})))(e);return t[_e]=!0,t};function $e(e){return $e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},$e(e)}function Me(e,r){for(var t=0;t<r.length;t++){var n=r[t];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Fe(n.key),n)}}function Ue(e,r){return Ue=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},Ue(e,r)}function Ne(e){var r=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var t,n=De(e);if(r){var o=De(this).constructor;t=Reflect.construct(n,arguments,o)}else t=n.apply(this,arguments);return function(e,r){if(r&&("object"===$e(r)||"function"==typeof r))return r;if(void 0!==r)throw new TypeError("Derived constructors may only return object or undefined");return Ie(e)}(this,t)}}function Ie(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function De(e){return De=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},De(e)}function Be(e,r,t){return(r=Fe(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function Fe(e){var r=function(e,r){if("object"!==$e(e)||null===e)return e;var t=e[Symbol.toPrimitive];if(void 0!==t){var n=t.call(e,r||"default");if("object"!==$e(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(e)}(e,"string");return"symbol"===$e(r)?r:String(r)}var ze=function(){!function(e,r){if("function"!=typeof r&&null!==r)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(r&&r.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),r&&Ue(e,r)}(o,c.Component);var e,r,t,n=Ne(o);function o(){var e;!function(e,r){if(!(e instanceof r))throw new TypeError("Cannot call a class as a function")}(this,o);for(var r=arguments.length,t=new Array(r),a=0;a<r;a++)t[a]=arguments[a];return Be(Ie(e=n.call.apply(n,[this].concat(t))),"mountedStack",[]),Be(Ie(e),"unmountStack",[]),Be(Ie(e),"updatedStack",[]),Be(Ie(e),"renderedStack",[]),e}return e=o,r&&Me(e.prototype,r),t&&Me(e,t),Object.defineProperty(e,"prototype",{writable:!1}),e}(),qe=i.W,We=i.i;
//# sourceMappingURL=index.js.map
;// ./node_modules/reaxes-utils/esm/index.js
var t={d:(r,e)=>{for(var n in e)t.o(e,n)&&!t.o(r,n)&&Object.defineProperty(r,n,{enumerable:!0,get:e[n]})},o:(t,r)=>Object.prototype.hasOwnProperty.call(t,r)},r={};function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function esm_n(t,r){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);r&&(n=n.filter((function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),e.push.apply(e,n)}return e}function esm_o(t,r,n){return(r=function(t){var r=function(t,r){if("object"!==e(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var o=n.call(t,r||"default");if("object"!==e(o))return o;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"===e(r)?r:String(r)}(r))in t?Object.defineProperty(t,r,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[r]=n,t}t.d(r,{M4:()=>esm_L,vA:()=>esm_F,fK:()=>esm_Y,Yu:()=>esm_R,hl:()=>esm_z,cc:()=>esm_K,De:()=>esm_G,Zp:()=>esm_l,hT:()=>esm_b,mA:()=>esm_Q,G4:()=>esm_U,xP:()=>esm_P,bN:()=>esm_u,IW:()=>esm_i,a6:()=>esm_a});var esm_i=function(t){var r=Object.keys(t),e=r.map((function(r){return t[r]}));return Promise.all(e).then((function(e){for(var i=function(t){for(var r=1;r<arguments.length;r++){var e=null!=arguments[r]?arguments[r]:{};r%2?esm_n(Object(e),!0).forEach((function(r){esm_o(t,r,e[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):esm_n(Object(e)).forEach((function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))}))}return t}({},t),a=0,c=r;a<c.length;a++){var u=c[a];i[u]=e[u]}return i}))},esm_a=function(t){var r,e,n=new Promise((function(n,o){r=n,e=o,"function"==typeof t&&t(n,o)}));return Object.assign(n,{resolve:r,reject:e})};function esm_c(t){return esm_c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},esm_c(t)}function esm_u(t,r,e,n){var o=e?e.call(n,t,r):void 0;if(void 0!==o)return!!o;if(t===r)return!0;if("object"!==esm_c(t)||!t||"object"!==esm_c(r)||!r)return!1;var i=Object.keys(t),a=Object.keys(r);if(i.length!==a.length)return!1;for(var u=Object.prototype.hasOwnProperty.bind(r),l=0;l<i.length;l++){var f=i[l];if(!u(f))return!1;var s=t[f],y=r[f];if(!1===(o=e?e.call(n,s,y,f):void 0)||void 0===o&&s!==y)return!1}return!0}var esm_l=function(t){var r;switch(!0){case"function"==typeof queueMicrotask:r=queueMicrotask;break;case!("function"!=typeof Promise||!Promise.resolve):r=function(t){return Promise.resolve().then(t)};break;default:r=setTimeout}r(t)};function esm_f(t){return function(t){if(Array.isArray(t))return esm_s(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,r){if(!t)return;if("string"==typeof t)return esm_s(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return esm_s(t,r)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function esm_s(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}var esm_y=function(t){return t.replace(/([A-Z])/g,"-$1").toLowerCase()},esm_p=function(t){for(var r=arguments.length,e=new Array(r>1?r-1:0),n=1;n<r;n++)e[n-1]=arguments[n];return e.reduce((function(t,r,e){return t[0]+="string"==typeof r?r:(t.push(r),"%o"),t}),["%c",t])},esm_b=new Proxy((function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return function(){var r,e=Object.keys(t).reduce((function(r,e){return"".concat(r).concat(String(esm_y(e)),":").concat(t[e],";")}),"");e.includes("font-weight")||(e+="font-weight:normal;");for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];(r=console).groupCollapsed.apply(r,esm_f(esm_p.apply(void 0,[e].concat(o)))),console.trace("%c","font-weight:normal;"),console.groupEnd()}}),{get:function(t,r,e){if(["prototype","hasOwnProperty","toString","prototype","length","name","arguments","constructor","isPrototypeOf","apply","call","bind"].includes(r))return t[r];var n=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"trace";return new Proxy((function(){for(var e,n,o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];return"trace"===t?((n=console).groupCollapsed.apply(n,esm_f(esm_p.apply(void 0,["color:".concat(r,";font-weight:normal;")].concat(i)))),console.trace("%c","font-weight:normal;"),void console.groupEnd()):(e=console)[t].apply(e,esm_f(esm_p.apply(void 0,["color:".concat(r)].concat(i))))}),{get:function(e,n,o){return function(){for(var e,o,i=arguments.length,a=new Array(i),c=0;c<i;c++)a[c]=arguments[c];if("trace"===t)return(o=console).groupCollapsed.apply(o,esm_f(esm_p.apply(void 0,["color:".concat(n,";font-weight:normal;")].concat(a)))),console.trace("%c","font-weight:normal;"),void console.groupEnd();if("apply"===n){var u,l,s=a[1];return"trace"===t?((l=console).groupCollapsed.apply(l,esm_f(esm_p.apply(void 0,["color:".concat(r)].concat(esm_f(s))))),console.trace("%c","font-weight:normal;"),void console.groupEnd()):(u=console)[t].apply(u,esm_f(esm_p.apply(void 0,["color:".concat(r)].concat(esm_f(s)))))}return(e=console)[t].apply(e,esm_f(esm_p.apply(void 0,["color:".concat(n.toString())].concat(a))))}}})};return["trace","warn","log","info","error","debug","assert","clear","count","countReset","dir","dirxml","table"].includes(r)?n(r):n("trace")}});function esm_v(t){return function(t){if(Array.isArray(t))return esm_h(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||esm_m(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function esm_m(t,r){if(t){if("string"==typeof t)return esm_h(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);return"Object"===e&&t.constructor&&(e=t.constructor.name),"Map"===e||"Set"===e?Array.from(t):"Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e)?esm_h(t,r):void 0}}function esm_h(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}var esm_d,esm_g,esm_w,esm_S,esm_j,esm_O,esm_A,esm_P=function(t){for(var r=arguments.length,e=new Array(r>1?r-1:0),n=1;n<r;n++)e[n-1]=arguments[n];return[t].concat(esm_v(e.map((function(r){if("function"==typeof r)return r(t)}))))},esm_T=esm_P({a:1,b:2},(function(t){return[t.a,"sdad"]})),esm_k=(esm_g=2,function(t){if(Array.isArray(t))return t}(esm_d=esm_T)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,c=[],u=!0,l=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(c.push(n.value),c.length!==r);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(esm_d,esm_g)||esm_m(esm_d,esm_g)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}());esm_k[0],esm_k[1];function esm_E(t){return esm_E="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},esm_E(t)}function esm_x(t,r){for(var e=0;e<r.length;e++){var n=r[e];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,esm_I(n.key),n)}}function esm_I(t){var r=function(t,r){if("object"!==esm_E(t)||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var n=e.call(t,r||"default");if("object"!==esm_E(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}(t,"string");return"symbol"===esm_E(r)?r:String(r)}function esm_M(t,r,e){!function(t,r){if(r.has(t))throw new TypeError("Cannot initialize the same private elements twice on an object")}(t,r),r.set(t,e)}function esm_C(t,r){return function(t,r){if(r.get)return r.get.call(t);return r.value}(t,esm_D(t,r,"get"))}function esm_W(t,r,e){return function(t,r,e){if(r.set)r.set.call(t,e);else{if(!r.writable)throw new TypeError("attempted to set read only private field");r.value=e}}(t,esm_D(t,r,"set"),e),e}function esm_D(t,r,e){if(!r.has(t))throw new TypeError("attempted to "+e+" private field on non-instance");return r.get(t)}var esm_L=(esm_w=new WeakMap,esm_S=new WeakMap,esm_j=new WeakMap,esm_O=new WeakMap,esm_A=new WeakMap,function(){function t(){var r=this;!function(t,r){if(!(t instanceof r))throw new TypeError("Cannot call a class as a function")}(this,t),esm_M(this,esm_w,{writable:!0,value:[]}),esm_M(this,esm_S,{writable:!0,value:0}),esm_M(this,esm_j,{writable:!0,value:void 0}),esm_M(this,esm_O,{writable:!0,value:void 0}),esm_M(this,esm_A,{writable:!0,value:!1}),function(t,r,e){(r=esm_I(r))in t?Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[r]=e}(this,"start",(function(t){return t<=0?console.error("timer.start值是负数! :>",t):!0!==esm_C(r,esm_A)?(esm_W(r,esm_S,t),esm_C(r,esm_j).call(r),r):void 0}));esm_W(this,esm_j,(function t(){esm_W(r,esm_A,!0),esm_C(r,esm_S)>=1e3?esm_W(r,esm_O,setTimeout((function(){esm_W(r,esm_S,esm_C(r,esm_S)-1e3),t(),esm_C(r,esm_w).forEach((function(t){try{t(esm_C(r,esm_S))}catch(r){console.error(r,"Timer 订阅运行时错误: 当前执行函数名>".concat(t.name))}}))}),1e3)):(esm_W(r,esm_O,setTimeout((function(){esm_W(r,esm_S,0),esm_C(r,esm_w).forEach((function(t){try{t(esm_C(r,esm_S))}catch(r){console.error(r,"Timer 订阅运行时错误: 当前执行函数名>".concat(t.name))}}))}),esm_C(r,esm_S))),esm_W(r,esm_A,!1)),esm_C(r,esm_w).forEach((function(t){try{t(esm_C(r,esm_S))}catch(r){console.error(r,"Timer 订阅运行时错误: 当前执行函数名>".concat(t.name))}}))}))}var r,e,n;return r=t,(e=[{key:"subscribe",value:function(t){return!esm_C(this,esm_w).includes(t)&&esm_C(this,esm_w).push(t),this}},{key:"unsubscribe",value:function(t){return esm_C(this,esm_w).splice(esm_C(this,esm_w).indexOf(t),1),this}},{key:"destroy",value:function(){}},{key:"stop",value:function(){return clearTimeout(esm_C(this,esm_O)),esm_W(this,esm_S,0),esm_W(this,esm_A,!1),this}}])&&esm_x(r.prototype,e),n&&esm_x(r,n),Object.defineProperty(r,"prototype",{writable:!1}),t}());function esm_N(t){return esm_N="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},esm_N(t)}function esm_$(t,r){return function(t){if(Array.isArray(t))return t}(t)||function(t,r){var e=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=e){var n,o,i,a,c=[],u=!0,l=!1;try{if(i=(e=e.call(t)).next,0===r){if(Object(e)!==e)return;u=!1}else for(;!(u=(n=i.call(e)).done)&&(c.push(n.value),c.length!==r);u=!0);}catch(t){l=!0,o=t}finally{try{if(!u&&null!=e.return&&(a=e.return(),Object(a)!==a))return}finally{if(l)throw o}}return c}}(t,r)||function(t,r){if(!t)return;if("string"==typeof t)return esm_q(t,r);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return esm_q(t,r)}(t,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function esm_q(t,r){(null==r||r>t.length)&&(r=t.length);for(var e=0,n=new Array(r);e<r;e++)n[e]=t[e];return n}var esm_Q=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:location.href;try{if(t.includes("?")){var r=esm_$(t.split("?"),2);t=r[1]}if(t.includes("/")){var e=esm_$(t.split("/"),1);t=e[0]}if(!t.includes("="))return{};if(t.includes("&"))return t.split("&").reduce((function(t,r){var e=esm_$(r.split("="),2),n=e[0],o=e[1];return t[n]=o,t}),{});var n={},o=esm_$(t.split("="),2),i=o[0],a=o[1];return n[i]=a,n}catch(r){throw console.error("decodeQueryString -> 转换失败 , 原始字符串为 : ".concat(t)),console.error(r),""}},esm_U=function(t){var r="";for(var e in t){var n=t[e];if("object"===esm_N(n)&&null!==n)throw"暂不支持嵌套对象";if("symbol"===esm_N(e))throw"不支持key为Symbol";r="".concat(r).concat(r&&"&").concat(e,"=").concat(n)}return r},esm_Z=function(t){return"string"==typeof t?'"'.concat(t,'"'):t},esm_F=function(t,r){for(var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=0;n<r.length;n++){var o=r[n];if(o!==t)return e&&esm_b.coral("断言组第 ",n," 个表达式不符合预期为 ",esm_Z(t)," 的结果, expressionList[",n,"]: ",esm_Z(o)),!1}return!0},esm_G=function(t){return esm_F(!0,t,arguments.length>1&&void 0!==arguments[1]&&arguments[1])},esm_K=function(t){return esm_F(!1,t,arguments.length>1&&void 0!==arguments[1]&&arguments[1])},esm_Y=function(t,r){for(var e=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=0;n<r.length;n++){var o=r[n];if(o===t)return e&&esm_b["#81cc00"]("断言组第 ",n," 个表达式符合预期为 ",esm_Z(t)," 的结果, expressionList[",n,"]: ",esm_Z(o)),!0}return e&&esm_b.coral("断言组每个值都不符合预期为 ",esm_Z(t)," 的结果, expressionList: ",esm_Z(r)),!1},esm_z=function(t){return esm_Y(!0,t,arguments.length>1&&void 0!==arguments[1]&&arguments[1])},esm_R=function(t){return esm_Y(!1,t,arguments.length>1&&void 0!==arguments[1]&&arguments[1])},esm_B=r.M4,esm_H=r.vA,esm_J=r.fK,esm_V=r.Yu,esm_X=r.hl,reaxes_utils_esm_=r.cc,tt=r.De,rt=r.Zp,et=r.hT,nt=r.mA,ot=r.G4,it=r.xP,at=r.bN,ct=r.IW,ut=r.a6;
//# sourceMappingURL=index.js.map
;// ./node_modules/reaxes/esm/index.js
var reaxes_esm_n={d:(e,t)=>{for(var r in t)reaxes_esm_n.o(t,r)&&!reaxes_esm_n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},reaxes_esm_o={};reaxes_esm_n.d(reaxes_esm_o,{pt:()=>reaxes_esm_d,Hp:()=>reaxes_esm_i,MM:()=>reaxes_esm_l,uh:()=>reaxes_esm_f,WW:()=>reaxes_esm_c});const reaxes_esm_a=(e=>{var t={};return reaxes_esm_n.d(t,e),t})({action:()=>external_mobx_namespaceObject.action,observable:()=>external_mobx_namespaceObject.observable,reaction:()=>external_mobx_namespaceObject.reaction});const reaxes_esm_u=(e=>{var t={};return reaxes_esm_n.d(t,e),t})({default:()=>(external_default())});var reaxes_esm_i=function(e){var t=(0,reaxes_esm_a.observable)(e),r=(0,reaxes_esm_a.action)((function(e,t){for(var r=0,n=Object.keys(t);r<n.length;r++){var o=n[r];e.hasOwnProperty(o)&&(e[o]=t[o])}return e})),n=(0,reaxes_esm_a.action)((function(e,t){return reaxes_esm_u.default.merge(e,t)}));return{store:t,mutate:function(e){return(0,reaxes_esm_a.action)((function(){return e(t)}))(),t},setState:function(e){return r(t,e)},mergeState:function(e){return n(t,e)}}},reaxes_esm_c=function(e){return e()};const reaxes_esm_s=(e=>{var t={};return reaxes_esm_n.d(t,e),t})({shallowEqual:()=>at,xPromise:()=>ut});function reaxes_esm_f(e,t){var r=reaxes_esm_s.xPromise(),n=function(){return r.then((function(e){return e()}))};return function(e){var t,r,n;t="undefined"!=typeof window?null!==(r=null!==(n=window.queueMicrotask)&&void 0!==n?n:window.Promise&&window.Promise.resolve().then)&&void 0!==r?r:function(e){return window.setTimeout(e,0)}:"undefined"!=typeof process&&process.nextTick?process.nextTick:function(e){return setTimeout(e,0)};t(e)}((function(){var o=t(),u=(0,reaxes_esm_a.reaction)(t,(function(t,r){!reaxes_esm_s.shallowEqual(t,o)&&(e(!1,n),o=t)}));e(!0,n),r.resolve(u)})),n}function reaxes_esm_l(e,t){var r=t();return Object.assign((function(t){var n=t();return function(){if(!reaxes_esm_s.shallowEqual(r,n))return e.apply(void 0,arguments)}}),{resetDeps:function(){r=t()}})}function reaxes_esm_d(e,t){if(!reaxes_esm_u.default.isObject(e))throw"the store argument must be a Mobx observed object";t&&reaxes_esm_u.default.isArray(t)&&t.length?t.forEach((function(t){return e[t]})):Object.getOwnPropertyNames(e).forEach((function(t){return e[t]}))}var reaxes_esm_v=reaxes_esm_o.pt,reaxes_esm_p=reaxes_esm_o.Hp,reaxes_esm_b=reaxes_esm_o.MM,reaxes_esm_m=reaxes_esm_o.uh,reaxes_esm_w=reaxes_esm_o.WW;
//# sourceMappingURL=index.js.map
;// external "antd"
const external_antd_namespaceObject = antd;
;// ./projects/switch520-auto-secret/Components/OpenInModal/reaxel.tsx
/* provided dependency */ var switch520_auto_secret_React = __webpack_require__(594);
function reaxel_typeof(o) { "@babel/helpers - typeof"; return reaxel_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, reaxel_typeof(o); }
function reaxel_toConsumableArray(r) { return reaxel_arrayWithoutHoles(r) || reaxel_iterableToArray(r) || reaxel_unsupportedIterableToArray(r) || reaxel_nonIterableSpread(); }
function reaxel_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function reaxel_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return reaxel_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? reaxel_arrayLikeToArray(r, a) : void 0; } }
function reaxel_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function reaxel_arrayWithoutHoles(r) { if (Array.isArray(r)) return reaxel_arrayLikeToArray(r); }
function reaxel_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function reaxel_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ reaxel_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == reaxel_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(reaxel_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
function reaxel_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function reaxel_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { reaxel_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { reaxel_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
var reaxel_OpenInModal = reaxes_esm_w(function () {
  var _createReaxable = reaxes_esm_p({
      modalOpened: false,
      iframeURL: null
    }),
    store = _createReaxable.store,
    setState = _createReaxable.setState;
  useMatchDomain({
    includes: ['gamer520']
  }, function () {
    var mountContainerListener = /*#__PURE__*/function () {
      var _ref = reaxel_asyncToGenerator(/*#__PURE__*/reaxel_regeneratorRuntime().mark(function _callee2(container) {
        var cardElements;
        return reaxel_regeneratorRuntime().wrap(function _callee2$(_context2) {
          while (1) switch (_context2.prev = _context2.next) {
            case 0:
              cardElements = Array.from(container.children);
              container === null || container === void 0 || container.addEventListener('click', /*#__PURE__*/function () {
                var _ref2 = reaxel_asyncToGenerator(/*#__PURE__*/reaxel_regeneratorRuntime().mark(function _callee(e) {
                  var cardEl, _cardEl$querySelector, href;
                  return reaxel_regeneratorRuntime().wrap(function _callee$(_context) {
                    while (1) switch (_context.prev = _context.next) {
                      case 0:
                        _context.next = 2;
                        return GM.getValue('options::modal-mode', true);
                      case 2:
                        if (_context.sent) {
                          _context.next = 4;
                          break;
                        }
                        return _context.abrupt("return");
                      case 4:
                        e.preventDefault();
                        e.stopPropagation();
                        cardEl = e.composedPath().find(function (p) {
                          return cardElements.includes(p);
                        });
                        if (cardEl) {
                          _cardEl$querySelector = cardEl.querySelector('a'), href = _cardEl$querySelector.href;
                          setState({
                            iframeURL: href,
                            modalOpened: true
                          });
                        }
                      case 8:
                      case "end":
                        return _context.stop();
                    }
                  }, _callee);
                }));
                return function (_x2) {
                  return _ref2.apply(this, arguments);
                };
              }());
            case 2:
            case "end":
              return _context2.stop();
          }
        }, _callee2);
      }));
      return function mountContainerListener(_x) {
        return _ref.apply(this, arguments);
      };
    }();
    if (location.pathname === '/') {
      var containerEl = document.querySelector('div.row.cat-posts-wrapper');
      mountContainerListener(containerEl);
    }
    if (!(0,domain_matcher/* isHtmlPostPage */.zN)()) {
      var _containerEl = document.querySelector('.posts-wrapper');
      mountContainerListener(_containerEl);
    }
  });
  useMatchDomain({
    includes: ['xxxxx520']
  }, function () {
    if (!(0,domain_matcher/* isHtmlPostPage */.zN)()) {
      var containerEl = document.querySelector('.row.posts-wrapper.scroll');
      containerEl === null || containerEl === void 0 || containerEl.addEventListener('click', /*#__PURE__*/function () {
        var _ref3 = reaxel_asyncToGenerator(/*#__PURE__*/reaxel_regeneratorRuntime().mark(function _callee3(e) {
          var cardEl, _cardEl$querySelector2, href;
          return reaxel_regeneratorRuntime().wrap(function _callee3$(_context3) {
            while (1) switch (_context3.prev = _context3.next) {
              case 0:
                _context3.next = 2;
                return GM.getValue('options::modal-mode', true);
              case 2:
                if (_context3.sent) {
                  _context3.next = 4;
                  break;
                }
                return _context3.abrupt("return");
              case 4:
                e.preventDefault();
                e.stopPropagation();
                // console.log('bbbbbbbbbbbbb' , e.composedPath());
                cardEl = e.composedPath().find(function (p) {
                  return reaxel_toConsumableArray(containerEl.children).includes(p);
                });
                if (cardEl) {
                  _cardEl$querySelector2 = cardEl.querySelector('a'), href = _cardEl$querySelector2.href;
                  setState({
                    iframeURL: href,
                    modalOpened: true
                  });
                }
              case 8:
              case "end":
                return _context3.stop();
            }
          }, _callee3);
        }));
        return function (_x3) {
          return _ref3.apply(this, arguments);
        };
      }());
    }
  });
  useMatchDomain({
    includes: ['switch618']
  }, function () {
    if (!(0,domain_matcher/* isHtmlPostPage */.zN)()) {
      var mainEl = document.querySelector('.main');
      mainEl === null || mainEl === void 0 || mainEl.addEventListener('click', /*#__PURE__*/function () {
        var _ref4 = reaxel_asyncToGenerator(/*#__PURE__*/reaxel_regeneratorRuntime().mark(function _callee4(e) {
          var cardEl, id;
          return reaxel_regeneratorRuntime().wrap(function _callee4$(_context4) {
            while (1) switch (_context4.prev = _context4.next) {
              case 0:
                _context4.next = 2;
                return GM.getValue('options::modal-mode', true);
              case 2:
                if (_context4.sent) {
                  _context4.next = 4;
                  break;
                }
                return _context4.abrupt("return");
              case 4:
                cardEl = e.composedPath().find(function (p) {
                  var _p$dataset;
                  return !!((_p$dataset = p.dataset) !== null && _p$dataset !== void 0 && _p$dataset.id) && p.className === 'post grid';
                });
                if (cardEl) {
                  e.preventDefault();
                  e.stopPropagation();
                  id = cardEl.dataset.id;
                  setState({
                    iframeURL: "https://www.switch618.com/".concat(id, ".html"),
                    modalOpened: true
                  });
                }
              case 6:
              case "end":
                return _context4.stop();
            }
          }, _callee4);
        }));
        return function (_x4) {
          return _ref4.apply(this, arguments);
        };
      }());
    } else {
      document.querySelectorAll('a').forEach(function (el) {
        if (el.innerText === ' 立即下载') {
          el.addEventListener('click', function (e) {
            e.preventDefault();
            location.href = el.href;
          });
        }
      });
    }
  });
  useMatchDomain({
    includes: ['fzgamer']
  }, function () {
    console.log('[fzgamer-modal] 初始化 fzgamer 弹窗监听器');

    // 监听 .widget-ajaxpager 和 .ajaxpager 容器(兼容不同页面结构)
    var containerEls = document.querySelectorAll('.widget-ajaxpager, .ajaxpager');
    console.log('[fzgamer-modal] 找到 .widget-ajaxpager/.ajaxpager 容器数量:', containerEls.length);
    containerEls.forEach(function (containerEl, index) {
      console.log("[fzgamer-modal] \u4E3A\u5BB9\u5668[".concat(index, "] \u6DFB\u52A0\u70B9\u51FB\u76D1\u542C\u5668:"), containerEl.className);
      containerEl.addEventListener('click', /*#__PURE__*/function () {
        var _ref5 = reaxel_asyncToGenerator(/*#__PURE__*/reaxel_regeneratorRuntime().mark(function _callee5(e) {
          var modalModeEnabled, path, cardEl, linkEl;
          return reaxel_regeneratorRuntime().wrap(function _callee5$(_context5) {
            while (1) switch (_context5.prev = _context5.next) {
              case 0:
                console.log('[fzgamer-modal] ⚡ 容器被点击!容器类名:', containerEl.className);
                console.log('[fzgamer-modal] 容器元素:', containerEl);
                console.log('[fzgamer-modal] 事件目标:', e.target);
                _context5.next = 5;
                return GM.getValue('options::modal-mode', true);
              case 5:
                modalModeEnabled = _context5.sent;
                console.log('[fzgamer-modal] modal-mode 状态:', modalModeEnabled);
                if (modalModeEnabled) {
                  _context5.next = 10;
                  break;
                }
                console.log('[fzgamer-modal] modal-mode 已关闭,跳过处理');
                return _context5.abrupt("return");
              case 10:
                path = e.composedPath();
                console.log('[fzgamer-modal] 点击路径:', path);
                cardEl = path.find(function (p) {
                  var _p$classList, _p$classList2, _p$classList3;
                  var isPostsItem = p.tagName === 'POSTS' && ((_p$classList = p.classList) === null || _p$classList === void 0 ? void 0 : _p$classList.contains('posts-item'));
                  var isPostsMini = ((_p$classList2 = p.classList) === null || _p$classList2 === void 0 ? void 0 : _p$classList2.contains('posts-mini')) && ((_p$classList3 = p.classList) === null || _p$classList3 === void 0 ? void 0 : _p$classList3.contains('ajax-item'));
                  console.log('[fzgamer-modal] 🔍 检查元素:', p.tagName, p.className, '=> isPostsItem:', isPostsItem, 'isPostsMini:', isPostsMini);
                  return isPostsItem || isPostsMini;
                });
                console.log('[fzgamer-modal] 查找结果 cardEl:', cardEl);
                if (cardEl) {
                  console.log('[fzgamer-modal] 找到卡片元素:', cardEl.tagName, cardEl.className);
                  e.preventDefault();
                  e.stopPropagation();
                  linkEl = cardEl.querySelector('.item-thumbnail a, .item-heading a, a');
                  console.log('[fzgamer-modal] 查找链接元素:', linkEl);
                  if (linkEl && linkEl.href) {
                    console.log('[fzgamer-modal] 找到链接:', linkEl.href);
                    setState({
                      iframeURL: linkEl.href,
                      modalOpened: true
                    });
                  } else {
                    console.log('[fzgamer-modal] 未找到有效链接');
                  }
                } else {
                  console.log('[fzgamer-modal] 未找到匹配的卡片元素');
                }
              case 15:
              case "end":
                return _context5.stop();
            }
          }, _callee5);
        }));
        return function (_x5) {
          return _ref5.apply(this, arguments);
        };
      }());
    });

    // 监听 .zib-widget.hot-posts 容器
    var hotPostsContainers = document.querySelectorAll('.zib-widget.hot-posts');
    console.log('[fzgamer-modal] 找到 .zib-widget.hot-posts 容器数量:', hotPostsContainers.length);
    hotPostsContainers.forEach(function (containerEl, index) {
      console.log("[fzgamer-modal] \u4E3A .zib-widget.hot-posts[".concat(index, "] \u6DFB\u52A0\u70B9\u51FB\u76D1\u542C\u5668"));
      containerEl.addEventListener('click', /*#__PURE__*/function () {
        var _ref6 = reaxel_asyncToGenerator(/*#__PURE__*/reaxel_regeneratorRuntime().mark(function _callee6(e) {
          var modalModeEnabled, path, cardEl, linkEl;
          return reaxel_regeneratorRuntime().wrap(function _callee6$(_context6) {
            while (1) switch (_context6.prev = _context6.next) {
              case 0:
                console.log('[fzgamer-modal] .zib-widget.hot-posts 容器被点击');
                _context6.next = 3;
                return GM.getValue('options::modal-mode', true);
              case 3:
                modalModeEnabled = _context6.sent;
                console.log('[fzgamer-modal] modal-mode 状态:', modalModeEnabled);
                if (modalModeEnabled) {
                  _context6.next = 8;
                  break;
                }
                console.log('[fzgamer-modal] modal-mode 已关闭,跳过处理');
                return _context6.abrupt("return");
              case 8:
                path = e.composedPath();
                console.log('[fzgamer-modal] 点击路径:', path);
                cardEl = path.find(function (p) {
                  var _p$classList4, _p$classList5;
                  var isDirectChild = p.parentElement === containerEl;
                  var isHotPostCard = ((_p$classList4 = p.classList) === null || _p$classList4 === void 0 ? void 0 : _p$classList4.contains('flex')) || ((_p$classList5 = p.classList) === null || _p$classList5 === void 0 ? void 0 : _p$classList5.contains('relative')) && isDirectChild;
                  console.log('[fzgamer-modal] 检查 hot-posts 元素:', p.tagName, p.className, 'isDirectChild:', isDirectChild, 'isHotPostCard:', isHotPostCard);
                  return isHotPostCard;
                });
                if (cardEl) {
                  console.log('[fzgamer-modal] 找到 hot-posts 卡片元素:', cardEl.tagName, cardEl.className);
                  e.preventDefault();
                  e.stopPropagation();
                  linkEl = cardEl.querySelector('a');
                  console.log('[fzgamer-modal] 查找链接元素:', linkEl);
                  if (linkEl && linkEl.href) {
                    console.log('[fzgamer-modal] 找到链接:', linkEl.href);
                    setState({
                      iframeURL: linkEl.href,
                      modalOpened: true
                    });
                  } else {
                    console.log('[fzgamer-modal] 未找到有效链接');
                  }
                } else {
                  console.log('[fzgamer-modal] 未找到匹配的 hot-posts 卡片元素');
                }
              case 12:
              case "end":
                return _context6.stop();
            }
          }, _callee6);
        }));
        return function (_x6) {
          return _ref6.apply(this, arguments);
        };
      }());
    });
  });
  useMatchDomain({
    includes: ['steamzg']
  }, function () {
    if (/\d{5,8}\/?$/.test(location.href)) {
      return;
    }
    var getRemainNotiCounts = function getRemainNotiCounts() {
      return GM_getValue('user_read_steazg_not_support_modal', 3);
    };
    var notice = function notice(href) {
      var remainNotifyCounts = getRemainNotiCounts();
      if (remainNotifyCounts) {
        var _Modal$confirm = external_antd_namespaceObject.Modal.confirm({
            title: '敬告 (来自switch520-auto-secret脚本)',
            content: /*#__PURE__*/switch520_auto_secret_React.createElement(switch520_auto_secret_React.Fragment, null, /*#__PURE__*/switch520_auto_secret_React.createElement("p", null, "\u7531\u4E8E\u7AD9\u957F\u4FEE\u6539\u4E86\u7F51\u7AD9\u914D\u7F6E,switch520-auto-secret\u811A\u672C\u5C06\u65E0\u6CD5\u518D\u4E3A\u672C\u7AD9\u63D0\u4F9B\u5F39\u7A97\u6D4F\u89C8\u529F\u80FD,\u5C06\u4E3A\u60A8\u5F00\u542F\u65B0\u7A97\u53E3\u6D4F\u89C8"), /*#__PURE__*/switch520_auto_secret_React.createElement("p", {
              style: {
                textDecoration: "underline"
              }
            }, /*#__PURE__*/switch520_auto_secret_React.createElement("a", {
              href: "https://greasyfork.org/zh-CN/scripts/475199-switch520-auto-secret/discussions/324611",
              target: "_blank"
            }, "\u5931\u6548\u539F\u56E0")), /*#__PURE__*/switch520_auto_secret_React.createElement("p", null, "(\u6B64\u63D0\u793A\u8FD8\u4F1A\u663E\u793A", remainNotifyCounts - 1, "\u6B21)")),
            onOk: function onOk() {
              destroy();
              setTimeout(function () {
                return window.open(href);
              }, 100);
              GM_setValue('user_read_steazg_not_support_modal', remainNotifyCounts - 1);
            },
            okText: '新窗口打开',
            cancelText: '取消',
            okButtonProps: {
              style: {
                color: 'white'
              }
            }
          }),
          destroy = _Modal$confirm.destroy;
      } else {
        window.open(href);
      }
    };
    var mainEl = document.querySelector('.poi-row.inn-archive__container');
    mainEl === null || mainEl === void 0 || mainEl.addEventListener('click', /*#__PURE__*/function () {
      var _ref7 = reaxel_asyncToGenerator(/*#__PURE__*/reaxel_regeneratorRuntime().mark(function _callee7(e) {
        var cardEl, href;
        return reaxel_regeneratorRuntime().wrap(function _callee7$(_context7) {
          while (1) switch (_context7.prev = _context7.next) {
            case 0:
              _context7.next = 2;
              return GM.getValue('options::modal-mode', true);
            case 2:
              if (_context7.sent) {
                _context7.next = 4;
                break;
              }
              return _context7.abrupt("return");
            case 4:
              cardEl = e.composedPath().find(function (el) {
                return el.tagName === 'ARTICLE';
              });
              if (!cardEl) {
                _context7.next = 12;
                break;
              }
              e.preventDefault();
              e.stopPropagation();
              href = cardEl.querySelector("a[href^='https://steamzg.com/']").href; //临时代码,当站长修复X-Frame-Options之前
              notice(href);
              return _context7.abrupt("return");
            case 12:
            case "end":
              return _context7.stop();
          }
        }, _callee7);
      }));
      return function (_x7) {
        return _ref7.apply(this, arguments);
      };
    }());
  });
  if (!document.body) {
    console.table(location);
  }
  var rtn = {};
  return Object.assign(function () {
    return rtn;
  }, {
    store: store,
    setState: setState
  });
});




;// ./projects/switch520-auto-secret/Components/OpenInModal/index.tsx
/* provided dependency */ var OpenInModal_React = __webpack_require__(594);
function OpenInModal_typeof(o) { "@babel/helpers - typeof"; return OpenInModal_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, OpenInModal_typeof(o); }
function OpenInModal_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ OpenInModal_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == OpenInModal_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(OpenInModal_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
function OpenInModal_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function OpenInModal_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { OpenInModal_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { OpenInModal_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
var OpenInModal = We(function () {
  var _reaxel_OpenInModal$s = reaxel_OpenInModal.store,
    modalOpened = _reaxel_OpenInModal$s.modalOpened,
    iframeURL = _reaxel_OpenInModal$s.iframeURL;
  return /*#__PURE__*/OpenInModal_React.createElement(external_antd_namespaceObject.Modal, {
    open: modalOpened,
    onClose: function onClose() {
      reaxel_OpenInModal.setState({
        modalOpened: false,
        iframeURL: null
      });
    },
    onCancel: function onCancel() {
      reaxel_OpenInModal.setState({
        modalOpened: false,
        iframeURL: null
      });
    },
    bodyStyle: {
      height: '80vh'
    },
    centered: true,
    footer: null,
    width: "85%",
    style: {
      padding: 0
    },
    destroyOnClose: true,
    wrapStyle: {
      display: 'flex',
      justifyContent: 'center',
      alignItems: 'center'
    },
    maskStyle: {
      backgroundColor: 'rgba(0, 0, 0, 0.75)'
    },
    title: /*#__PURE__*/OpenInModal_React.createElement("div", {
      style: {
        display: 'flex',
        alignItems: 'center',
        userSelect: 'none'
      }
    }, /*#__PURE__*/OpenInModal_React.createElement("a", {
      style: {
        color: 'blueviolet',
        marginRight: 8
      },
      onClick: function onClick() {
        return window.open(iframeURL);
      }
    }, iframeURL), /*#__PURE__*/OpenInModal_React.createElement("svg", {
      onClick: /*#__PURE__*/OpenInModal_asyncToGenerator(/*#__PURE__*/OpenInModal_regeneratorRuntime().mark(function _callee() {
        return OpenInModal_regeneratorRuntime().wrap(function _callee$(_context) {
          while (1) switch (_context.prev = _context.next) {
            case 0:
              _context.next = 2;
              return navigator.clipboard.writeText(iframeURL);
            case 2:
              external_antd_namespaceObject.message.success('复制成功');
            case 3:
            case "end":
              return _context.stop();
          }
        }, _callee);
      })),
      style: {
        cursor: 'pointer'
      },
      className: "icon",
      viewBox: "0 0 1024 1024",
      version: "1.1",
      xmlns: "http://www.w3.org/2000/svg",
      "p-id": "9105",
      width: "32",
      height: "32"
    }, /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M589.3 260.9v30H371.4v-30H268.9v513h117.2v-304l109.7-99.1h202.1V260.9z",
      fill: "#E1F0FF",
      "p-id": "9106"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M516.1 371.1l-122.9 99.8v346.8h370.4V371.1z",
      fill: "#E1F0FF",
      "p-id": "9107"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M752.7 370.8h21.8v435.8h-21.8z",
      fill: "#446EB1",
      "p-id": "9108"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M495.8 370.8h277.3v21.8H495.8z",
      fill: "#446EB1",
      "p-id": "9109"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M495.8 370.8h21.8v124.3h-21.8z",
      fill: "#446EB1",
      "p-id": "9110"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M397.7 488.7l-15.4-15.4 113.5-102.5 15.4 15.4z",
      fill: "#446EB1",
      "p-id": "9111"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M382.3 473.3h135.3v21.8H382.3z",
      fill: "#446EB1",
      "p-id": "9112"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M382.3 479.7h21.8v348.6h-21.8zM404.1 806.6h370.4v21.8H404.1z",
      fill: "#446EB1",
      "p-id": "9113"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M447.7 545.1h261.5v21.8H447.7zM447.7 610.5h261.5v21.8H447.7zM447.7 675.8h261.5v21.8H447.7z",
      fill: "#6D9EE8",
      "p-id": "9114"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M251.6 763h130.7v21.8H251.6z",
      fill: "#446EB1",
      "p-id": "9115"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M251.6 240.1h21.8v544.7h-21.8zM687.3 240.1h21.8v130.7h-21.8zM273.4 240.1h108.9v21.8H273.4z",
      fill: "#446EB1",
      "p-id": "9116"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M578.4 240.1h130.7v21.8H578.4zM360.5 196.5h21.8v108.9h-21.8zM382.3 283.7h196.1v21.8H382.3zM534.8 196.5h65.4v21.8h-65.4z",
      fill: "#446EB1",
      "p-id": "9117"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M360.5 196.5h65.4v21.8h-65.4zM404.1 174.7h152.5v21.8H404.1zM578.4 196.5h21.8v108.9h-21.8z",
      fill: "#446EB1",
      "p-id": "9118"
    }))),
    closeIcon: /*#__PURE__*/OpenInModal_React.createElement("span", {
      style: {
        transform: 'scale(1.5)'
      }
    }, /*#__PURE__*/OpenInModal_React.createElement("svg", {
      className: "icon",
      viewBox: "0 0 1024 1024",
      version: "1.1",
      xmlns: "http://www.w3.org/2000/svg",
      "p-id": "16863",
      width: "32",
      height: "32"
    }, /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M38.04 518.35a475.12 487.33 0 1 0 950.24 0 475.12 487.33 0 1 0-950.24 0Z",
      fill: "#07AA74",
      "p-id": "16864"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M513.16 18.75C258.74 18.75 52.5 224.99 52.5 479.41c0 254.42 206.25 460.66 460.66 460.66s460.66-206.25 460.66-460.66c0.01-254.42-206.24-460.66-460.66-460.66z m0 769.72c-170.69 0-309.06-138.37-309.06-309.06s138.37-309.06 309.06-309.06 309.06 138.37 309.06 309.06c0.01 170.69-138.37 309.06-309.06 309.06z",
      fill: "#56D8B0",
      "p-id": "16865"
    }), /*#__PURE__*/OpenInModal_React.createElement("path", {
      d: "M656.21 556.84c18.12 18.12 18.12 47.5 0 65.62-9.06 9.07-20.93 13.59-32.8 13.59-11.88 0-23.75-4.53-32.81-13.59l-77.43-77.43-77.44 77.43c-9.06 9.07-20.93 13.59-32.8 13.59-11.88 0-23.75-4.53-32.81-13.59-18.11-18.11-18.11-47.49 0-65.62l77.44-77.43-77.44-77.44c-18.11-18.11-18.11-47.49 0-65.62 18.12-18.11 47.5-18.11 65.62 0l77.44 77.44 77.43-77.44c18.12-18.11 47.5-18.11 65.62 0 18.12 18.12 18.12 47.5 0 65.62l-77.43 77.44 77.41 77.43z",
      fill: "#FFFFFF",
      "p-id": "16866"
    })))
  }, /*#__PURE__*/OpenInModal_React.createElement("iframe", {
    src: iframeURL,
    width: "100%",
    height: "100%"
  }));
});





// EXTERNAL MODULE: ./node_modules/react-dom/client.js
var client = __webpack_require__(338);
;// ./projects/switch520-auto-secret/services/modal-mode.service.tsx
/* provided dependency */ var modal_mode_service_React = __webpack_require__(594);
function modal_mode_service_typeof(o) { "@babel/helpers - typeof"; return modal_mode_service_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, modal_mode_service_typeof(o); }
function modal_mode_service_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ modal_mode_service_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == modal_mode_service_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(modal_mode_service_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
function modal_mode_service_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function modal_mode_service_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { modal_mode_service_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { modal_mode_service_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
/**
 * 模态框浏览服务
 * 提供窗口模式打开下载页面的功能,通过 Tampermonkey 菜单切换开关
 */




/**
 * 初始化模态框浏览服务
 */
function initModalModeService() {
  if (location.href.includes('wp-content/plugins/erphpdown/download.php')) {
    return;
  }
  registerMenuCommand();
  initModalMode();
}

/**
 * 注册 Tampermonkey 菜单命令
 * 用于切换模态框模式的开启/关闭状态
 */
function registerMenuCommand() {
  return _registerMenuCommand.apply(this, arguments);
}
/**
 * 初始化模态框模式
 * 如果开启,则渲染 OpenInModal 组件
 */
function _registerMenuCommand() {
  _registerMenuCommand = modal_mode_service_asyncToGenerator(/*#__PURE__*/modal_mode_service_regeneratorRuntime().mark(function _callee2() {
    var modalMode;
    return modal_mode_service_regeneratorRuntime().wrap(function _callee2$(_context2) {
      while (1) switch (_context2.prev = _context2.next) {
        case 0:
          _context2.next = 2;
          return GM.getValue('options::modal-mode', true);
        case 2:
          modalMode = _context2.sent;
          GM.registerMenuCommand("\u7A97\u53E3\u6A21\u5F0F\u6253\u5F00\u4E0B\u8F7D\u9875\u9762:".concat(modalMode ? '✅已开启' : '❌已关闭'), /*#__PURE__*/modal_mode_service_asyncToGenerator(/*#__PURE__*/modal_mode_service_regeneratorRuntime().mark(function _callee() {
            return modal_mode_service_regeneratorRuntime().wrap(function _callee$(_context) {
              while (1) switch (_context.prev = _context.next) {
                case 0:
                  _context.t0 = GM;
                  _context.next = 3;
                  return GM.getValue('options::modal-mode');
                case 3:
                  _context.t1 = !_context.sent;
                  _context.next = 6;
                  return _context.t0.setValue.call(_context.t0, 'options::modal-mode', _context.t1);
                case 6:
                  _context.next = 8;
                  return registerMenuCommand();
                case 8:
                  location.reload();
                case 9:
                case "end":
                  return _context.stop();
              }
            }, _callee);
          })));
        case 4:
        case "end":
          return _context2.stop();
      }
    }, _callee2);
  }));
  return _registerMenuCommand.apply(this, arguments);
}
function initModalMode() {
  return _initModalMode.apply(this, arguments);
}
function _initModalMode() {
  _initModalMode = modal_mode_service_asyncToGenerator(/*#__PURE__*/modal_mode_service_regeneratorRuntime().mark(function _callee3() {
    var isEnabled, div, reactRoot;
    return modal_mode_service_regeneratorRuntime().wrap(function _callee3$(_context3) {
      while (1) switch (_context3.prev = _context3.next) {
        case 0:
          _context3.next = 2;
          return GM.getValue('options::modal-mode', true);
        case 2:
          isEnabled = _context3.sent;
          if (isEnabled) {
            _context3.next = 5;
            break;
          }
          return _context3.abrupt("return");
        case 5:
          div = document.createElement('div');
          document.body.appendChild(div);
          reactRoot = (0,client/* createRoot */.H)(div);
          reactRoot.render(/*#__PURE__*/modal_mode_service_React.createElement(OpenInModal, null));
          console.log('[modal-mode] OpenInModal component mounted');
        case 10:
        case "end":
          return _context3.stop();
      }
    }, _callee3);
  }));
  return _initModalMode.apply(this, arguments);
}
;// ./projects/switch520-auto-secret/services/context-menu.service.ts
/**
 * 右键菜单服务
 * 解除特定站点的右键菜单限制
 */



/**
 * 初始化右键菜单服务
 */
function initContextMenuService() {
  initSwitch618ContextMenu();
}

/**
 * switch618.com 站点允许右键菜单
 * 移除 document.oncontextmenu 的限制
 */
function initSwitch618ContextMenu() {
  useMatchDomain({
    includes: ['switch618']
  }, function () {
    document.oncontextmenu = null;
  });
}
;// external "jsQR"
const external_jsQR_namespaceObject = jsQR;
var external_jsQR_default = /*#__PURE__*/__webpack_require__.n(external_jsQR_namespaceObject);
;// ./projects/switch520-auto-secret/QrcodeToLink/index.ts
/**
 * 二维码解析工具
 * 从 canvas 或 image 元素中解码 QR 码内容为文本链接
 */

/**
 * 从 canvas 元素中解码 QR 码
 * @param canvas QR码 canvas 元素
 * @returns 解码后的文本或 null
 */
function decodeQrFromCanvas(canvas) {
  var ctx = canvas.getContext("2d");
  if (!ctx) return null;
  var width = canvas.width,
    height = canvas.height;
  var imageData = ctx.getImageData(0, 0, width, height);
  var result = external_jsQR_default()(imageData.data, width, height);
  return result ? result.data : null;
}

/**
 * 从 image 元素中解码 QR 码
 * @param img QR码图片元素
 * @returns 解码后的文本或 null
 */
function decodeQRFromImageElement(img) {
  var _result$data;
  var canvas = document.createElement('canvas');
  var ctx = canvas.getContext('2d');
  if (!ctx) return null;
  canvas.width = img.naturalWidth;
  canvas.height = img.naturalHeight;
  ctx.drawImage(img, 0, 0);
  var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
  var result = external_jsQR_default()(imageData.data, imageData.width, imageData.height);
  return (_result$data = result === null || result === void 0 ? void 0 : result.data) !== null && _result$data !== void 0 ? _result$data : null;
}

;// ./projects/switch520-auto-secret/services/qrcode-converter.service.ts
function qrcode_converter_service_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = qrcode_converter_service_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
function qrcode_converter_service_slicedToArray(r, e) { return qrcode_converter_service_arrayWithHoles(r) || qrcode_converter_service_iterableToArrayLimit(r, e) || qrcode_converter_service_unsupportedIterableToArray(r, e) || qrcode_converter_service_nonIterableRest(); }
function qrcode_converter_service_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function qrcode_converter_service_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function qrcode_converter_service_arrayWithHoles(r) { if (Array.isArray(r)) return r; }
function qrcode_converter_service_toConsumableArray(r) { return qrcode_converter_service_arrayWithoutHoles(r) || qrcode_converter_service_iterableToArray(r) || qrcode_converter_service_unsupportedIterableToArray(r) || qrcode_converter_service_nonIterableSpread(); }
function qrcode_converter_service_nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function qrcode_converter_service_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return qrcode_converter_service_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? qrcode_converter_service_arrayLikeToArray(r, a) : void 0; } }
function qrcode_converter_service_iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
function qrcode_converter_service_arrayWithoutHoles(r) { if (Array.isArray(r)) return qrcode_converter_service_arrayLikeToArray(r); }
function qrcode_converter_service_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
/**
 * 二维码转链接服务
 * 将页面中二维码 canvas/image 解析为直链,免去扫码步骤
 *
 * 兼容新旧两种 gamer520 下载页 DOM 结构:
 *   新版 .bdp-container 卡片式布局(百度/夸克/迅雷)
 *   旧版 wpkqcg_qrcode 格式
 *
 * fzgamer.com:资源下载按钮弹出 #fzg-qr-mask 扫码弹窗,
 * 直链以 base64 存于 window.__fzg_d / fzgOpenQr 参数中
 */







var FZG_DIRECT_LINK_ID = 's520-fzg-direct-link';
/**
 * 从 URL 中提取 pwd 参数值
 * 回退方案,用于 DOM 中无提取码元素(如迅雷云盘的隐藏提取码)时附加 pwd 到 URL
 */
function extractPwdFromUrl(url) {
  try {
    var pwd = new URL(url).searchParams.get('pwd');
    return pwd || null;
  } catch (_unused) {
    var _url$match;
    return ((_url$match = url.match(/[?&]pwd=([^&#]+)/)) === null || _url$match === void 0 ? void 0 : _url$match[1]) || null;
  }
}

/**
 * 初始化二维码转链接服务
 */
function initQrcodeConverterService() {
  initAcgQrcodeConverter();
  initGamer520QrcodeConverter();
  initFzgamerQrcodeConverter();
}

/**
 * acgxj/acfb/xj.steamzg 站点处理
 * 兼容新旧两种 DOM 结构:
 *   新版 button.su-download-btn[data-qr-url](base64 直链)
 *   旧版 canvas.su-qr-canvas(QR 解码)
 */
function initAcgQrcodeConverter() {
  useMatchDomain({
    includes: ['acgxj.com', 'acfb.top', 'xj.steamzg.com']
  }, function () {
    // 旧版 canvas.su-qr-canvas 逻辑(向后兼容)
    var qrCodeCanvasEls = Array.from(document.querySelectorAll('canvas.su-qr-canvas'));
    var withdrawCode = findUnifiedWithdrawCode();
    qrCodeCanvasEls.forEach(function (canvas) {
      var url = decodeQrFromCanvas(canvas);
      if (!url) return;

      // 附加统一提取码
      if (withdrawCode) {
        url = url.includes('?') ? "".concat(url, "&pwd=").concat(withdrawCode) : "".concat(url, "?pwd=").concat(withdrawCode);
      }
      var link = qrcode_converter_service_createDirectLink(url);
      insertAfter(link, canvas);
    });

    // 新版 su-download 结构(button[data-qr-url] + base64)
    convertSuDownloadToLinks();
  });
}

/**
 * 处理 acgxj/acfb/xj.steamzg 新版 DOM 结构
 * 站长改为 hover .su-download-item 才展示子元素,
 * 直链 URL 以 base64 编码存储在 button.su-download-btn 的 data-qr-url 属性中
 */
function convertSuDownloadToLinks() {
  var btns = document.querySelectorAll('button.su-download-btn[data-qr-url]');
  if (!btns.length) return;
  var unifiedCode = findUnifiedWithdrawCode();
  console.log('[qrcode-converter] 检测到 su-download-btn %d 个', btns.length);
  btns.forEach(function (btn) {
    try {
      var _btn$getAttribute;
      var rawBase64 = btn.getAttribute('data-qr-url');
      if (!rawBase64) {
        console.warn('[qrcode-converter] su-download-btn 缺少 data-qr-url,跳过');
        return;
      }
      var decodedUrl;
      try {
        decodedUrl = atob(rawBase64);
      } catch (decodeErr) {
        console.warn('[qrcode-converter] atob 解码失败:', rawBase64.substring(0, 30) + '...', decodeErr);
        return;
      }
      if (!decodedUrl || !decodedUrl.startsWith('http://') && !decodedUrl.startsWith('https://')) {
        console.warn('[qrcode-converter] 解码结果非有效 URL:', decodedUrl);
        return;
      }

      // 提取独立提取码
      var code = ((_btn$getAttribute = btn.getAttribute('data-code')) === null || _btn$getAttribute === void 0 ? void 0 : _btn$getAttribute.trim()) || '';

      // 回退到统一提取码
      if (!code && unifiedCode) {
        code = unifiedCode;
      }

      // 拼接 pwd 参数(URL 中已含 pwd= 则跳过)
      if (code && !decodedUrl.includes('pwd=')) {
        decodedUrl = decodedUrl.includes('?') ? "".concat(decodedUrl, "&pwd=").concat(code) : "".concat(decodedUrl, "?pwd=").concat(code);
      }
      var provider = getProviderName(decodedUrl) || '网盘';
      console.log('[qrcode-converter] 处理下载项: %s, code=%s', provider, code || '(无)');
      var suDownloadItem = btn.closest('.su-download-item');
      if (!suDownloadItem) {
        console.warn('[qrcode-converter] 找不到父级 .su-download-item,跳过');
        return;
      }
      var link = qrcode_converter_service_createDirectLink(decodedUrl);
      insertAfter(link, suDownloadItem);
    } catch (err) {
      console.warn('[qrcode-converter] su-download 处理失败:', err);
    }
  });
}

/**
 * gamer520/gamers520 站点处理
 * 兼容新旧两种格式:
 *   新版 .bdp-container 卡片式布局(百度/夸克/迅雷)
 *   旧版 img.wpkqcg_qrcode 格式
 */
function initGamer520QrcodeConverter() {
  useMatchDomain({
    includes: qrcode_converter_service_toConsumableArray(domain_matcher/* GAMER520_INCLUDES */.cb)
  }, function () {
    // 新版 .bdp-container 卡片式布局
    convertBdpCardsToLinks();
    // 旧版 wpkqcg_qrcode 格式(兼容留存文章页)
    convertWpkqcgQrcodesToLinks();
  });
}

/**
 * 处理新版 .bdp-container 卡片式下载布局
 * 百度/夸克:从 api.qrserver.com 的 data 参数提取直链 URL
 * 迅雷:直接使用 .bdp-btn 的 href
 * 直链插入到原提取码框 ( .bdp-pwd-box ) 下方,保留原 DOM 不动
 */
function convertBdpCardsToLinks() {
  var cards = document.querySelectorAll('.bdp-container .bdp-grid .bdp-card');
  if (!cards.length) return;
  cards.forEach(function (card) {
    var url = null;
    var code = null;

    // 提取提取码
    var pwdBox = card.querySelector('.bdp-pwd-box');
    if (pwdBox) {
      var strong = pwdBox.querySelector('strong');
      if (strong !== null && strong !== void 0 && strong.textContent) {
        code = strong.textContent.trim();
      }
    }

    // 方式1:从 api.qrserver.com 二维码图片 src 的 data 参数提取 URL
    var qrImg = card.querySelector('.bdp-qrcode-box img');
    if (qrImg) {
      url = extractUrlFromQrserverSrc(qrImg.src);
    }

    // 方式2:从直链按钮提取 URL(迅雷等)
    if (!url) {
      var directBtn = card.querySelector('.bdp-btn[href]');
      if (directBtn) {
        url = directBtn.href;
      }
    }
    if (!url) return;

    // 提取码回退:若 DOM 中未找到,尝试从 URL 参数中提取(迅雷场景)
    if (!code) {
      code = extractPwdFromUrl(url);
    }

    // 附加提取码(仅当 URL 中不含 pwd= 时——百度链接通常已内含)
    if (code && !url.includes('pwd=')) {
      url = url.includes('?') ? "".concat(url, "&pwd=").concat(code) : "".concat(url, "?pwd=").concat(code);
    }
    var link = qrcode_converter_service_createDirectLink(url, {
      marginTop: '12px',
      display: 'block',
      color: 'palegreen',
      width: '100%',
      textAlign: 'center',
      wordBreak: 'break-all'
    });

    // 插入到提取码框下方,保留原提取码 DOM 供扫码者查阅
    var insertTarget = card.querySelector('.bdp-pwd-box') || card.querySelector('.bdp-qrcode-box') || card.querySelector('.bdp-btn');
    if (insertTarget) {
      insertAfter(link, insertTarget);
    }
  });
}

/**
 * 从 api.qrserver.com 图片 URL 中提取目标链接
 * 示例 src = "https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=https%3A%2F%2Fpan.baidu.com%2Fs%2F..."
 * 解析 data 参数即可获得真实下载 URL,无需实际解码 QR 码
 */
function extractUrlFromQrserverSrc(src) {
  if (!src || !src.includes('qrserver')) return null;
  try {
    var urlObj = new URL(src);
    var data = urlObj.searchParams.get('data');
    if (data && (data.startsWith('http://') || data.startsWith('https://'))) {
      return data;
    }
  } catch (_unused2) {
    // URL 构造失败时的降级正则提取
    var match = src.match(/[?&]data=([^&]+)/);
    if (match) {
      var decoded = decodeURIComponent(match[1]);
      if (decoded.startsWith('http://') || decoded.startsWith('https://')) {
        return decoded;
      }
    }
  }
  return null;
}

/**
 * 旧版 wpkqcg_qrcode 处理(兼容留存文章页)
 * 从二维码图片邻近的隐藏 input 中提取 URL
 */
function convertWpkqcgQrcodesToLinks() {
  var qrcodeImages = Array.from(document.querySelectorAll('img.wpkqcg_qrcode'));
  qrcodeImages.forEach(function (el) {
    // 优先从隐藏 input 提取 URL(文章页内嵌完整链接,更可靠)
    var url = extractUrlFromHiddenInput(el) || decodeQRFromImageElement(el);
    if (!url) return;

    // 尝试提取提取码并附加(仅当 URL 不含 pwd 时)
    var code = null;
    if (!url.includes('pwd=')) {
      var codeEl = findExtractionCode(el);
      if (codeEl !== null && codeEl !== void 0 && codeEl.textContent) {
        var match = codeEl.textContent.match(/提取码[::]\s*([a-zA-Z0-9]{4})/);
        code = (match === null || match === void 0 ? void 0 : match[1]) || null;
      }
      if (code) {
        url = url.includes('?') ? "".concat(url, "&pwd=").concat(code) : "".concat(url, "?pwd=").concat(code);
      }
    } else {
      code = extractPwdFromUrl(url);
    }
    var link = qrcode_converter_service_createDirectLink(url, {
      marginTop: '20px',
      display: 'block',
      color: 'palegreen'
    });
    insertAfter(link, el);
  });
}

/**
 * fzgamer.com:资源下载区点击后弹出 #fzg-qr-mask 扫码弹窗
 * 优先 hook window.fzgOpenQr 拿到 base64 直链;失败时再解码弹窗内 QR
 *
 * 注意:
 * - 不可在匹配失败时回退 __fzg_d[0],否则非百度项也会被错指到百度
 * - qrcodejs 会把 URL 写到 #fzg-qr-canvas[title],切换网盘时旧 title 会短暂残留
 */
function initFzgamerQrcodeConverter() {
  useMatchDomain({
    includes: ['fzgamer.com']
  }, function () {
    hookFzgOpenQr();
    observeFzgQrMask();
  });
}
/** 弹窗标题 / panType → __fzg_d.type 别名(兼容中英文 UI) */
var FZG_PAN_TYPE_ALIASES = {
  baidu: ['baidu', '百度'],
  quark: ['quark', '夸克'],
  xunlei: ['xunlei', 'thunder', '迅雷'],
  alipan: ['alipan', 'aliyun', '阿里'],
  lanzou: ['lanzou', '蓝奏'],
  weiyun: ['weiyun', '微云'],
  '123pan': ['123pan', '123'],
  onedrive: ['onedrive'],
  buy: ['buy', 'steam', 'genuine', '正版', '购买', 'purchase']
};

/** hook 最近一次解析出的直链,供 observer 兜底时优先使用,避免读到残留 title */
var lastFzgOpenedUrl = null;

/**
 * Hook 站点的 fzgOpenQr:参数即为 base64 编码的真实下载链接
 */
function hookFzgOpenQr() {
  var tryHook = function tryHook() {
    var win = window;
    if (typeof win.fzgOpenQr !== 'function') return false;
    if (win.fzgOpenQr.__s520Hooked) return true;
    var original = win.fzgOpenQr;
    var hooked = function hooked(encodedUrl, title, hint, scanTip, panType) {
      var _document$getElementB;
      // 清除上一份二维码残留的 title,避免兜底解析读到旧链接
      (_document$getElementB = document.getElementById('fzg-qr-canvas')) === null || _document$getElementB === void 0 || _document$getElementB.removeAttribute('title');
      lastFzgOpenedUrl = decodeFzgBase64Url(encodedUrl);
      original.call(this, encodedUrl, title, hint, scanTip, panType);
      if (lastFzgOpenedUrl) {
        var url = lastFzgOpenedUrl;
        // 站点异步生成二维码,稍后再注入,避免被 innerHTML 清空
        setTimeout(function () {
          return enhanceFzgQrModal(url);
        }, 80);
      }
    };
    hooked.__s520Hooked = true;
    win.fzgOpenQr = hooked;
    if (false) {}
    return true;
  };
  if (tryHook()) return;
  var timer = window.setInterval(function () {
    if (tryHook()) window.clearInterval(timer);
  }, 200);
  window.setTimeout(function () {
    return window.clearInterval(timer);
  }, 15000);
}

/**
 * 监听 #fzg-qr-mask.show,作为 hook 未就绪或遗漏时的兜底
 */
function observeFzgQrMask() {
  var handleMaskShown = function handleMaskShown() {
    var mask = document.getElementById('fzg-qr-mask');
    if (!(mask !== null && mask !== void 0 && mask.classList.contains('show'))) return;

    // 已有直链且与最近一次打开一致则跳过;否则允许覆盖错误链接
    var existingLink = document.getElementById(FZG_DIRECT_LINK_ID);
    if (existingLink && lastFzgOpenedUrl && existingLink.href === lastFzgOpenedUrl) {
      return;
    }
    window.setTimeout(function () {
      var url = lastFzgOpenedUrl || resolveFzgQrUrlFromDom();
      if (url) enhanceFzgQrModal(url);
    }, 150);
  };
  var existing = document.getElementById('fzg-qr-mask');
  if (existing) {
    if (existing.classList.contains('show')) handleMaskShown();
    new MutationObserver(handleMaskShown).observe(existing, {
      attributes: true,
      attributeFilter: ['class']
    });
    return;
  }
  var bodyObserver = new MutationObserver(function (_mutations, obs) {
    var mask = document.getElementById('fzg-qr-mask');
    if (!mask) return;
    obs.disconnect();
    if (mask.classList.contains('show')) handleMaskShown();
    new MutationObserver(handleMaskShown).observe(mask, {
      attributes: true,
      attributeFilter: ['class']
    });
  });
  bodyObserver.observe(document.body, {
    childList: true,
    subtree: true
  });
}

/**
 * 向弹窗插入免扫码直链(二维码缩小由 style.less 负责)
 */
function enhanceFzgQrModal(url) {
  var _document$getElementB2;
  var body = document.querySelector('.fzg-qr-body');
  var wrap = document.querySelector('.fzg-qr-wrap');
  if (!body || !wrap) return;
  (_document$getElementB2 = document.getElementById(FZG_DIRECT_LINK_ID)) === null || _document$getElementB2 === void 0 || _document$getElementB2.remove();
  var link = qrcode_converter_service_createDirectLink(url, {
    // 主样式在 #s520-fzg-direct-link,这里仅兜底
    display: 'block'
  });
  link.id = FZG_DIRECT_LINK_ID;
  insertAfter(link, wrap);
  if (false) {}
}

/**
 * 从弹窗 DOM 解析直链(hook 失败时的兜底)
 * 优先级:解码 canvas/img → 按标题/type 匹配 __fzg_d(绝不回退到 [0])
 */
function resolveFzgQrUrlFromDom() {
  var _canvasBox$getAttribu;
  var canvasBox = document.getElementById('fzg-qr-canvas');
  if (!canvasBox) return null;

  // 1) 优先解码当前二维码(比 title 属性可靠,title 会残留上一次的 URL)
  var canvas = canvasBox.querySelector('canvas');
  if (canvas && canvas.width > 0 && canvas.height > 0) {
    try {
      var fromCanvas = decodeQrFromCanvas(canvas);
      if (fromCanvas && /^https?:\/\//.test(fromCanvas)) return fromCanvas;
    } catch (_unused3) {
      // canvas 可能尚未绘制完成
    }
  }
  var img = canvasBox.querySelector('img');
  if (img) {
    var fromQrserver = extractUrlFromQrserverSrc(img.src);
    if (fromQrserver) return fromQrserver;
    if (img.complete && img.naturalWidth > 0) {
      try {
        var fromImg = decodeQRFromImageElement(img);
        if (fromImg && /^https?:\/\//.test(fromImg)) return fromImg;
      } catch (_unused4) {
        // ignore
      }
    }
  }

  // 2) title 仅在与当前标题网盘类型一致时采用,避免残留旧链接
  var titleUrl = (_canvasBox$getAttribu = canvasBox.getAttribute('title')) === null || _canvasBox$getAttribu === void 0 ? void 0 : _canvasBox$getAttribu.trim();
  if (titleUrl && /^https?:\/\//.test(titleUrl) && isFzgTitleConsistentWithUrl(titleUrl)) {
    return titleUrl;
  }

  // 3) 对照 window.__fzg_d(按 type / 中英文名匹配,失败则返回 null)
  return resolveFzgUrlFromGlobalData();
}

/**
 * title 属性里的 URL 是否与当前弹窗标题的网盘类型一致
 */
function isFzgTitleConsistentWithUrl(url) {
  var _document$getElementB3;
  var titleText = ((_document$getElementB3 = document.getElementById('fzg-qr-title-text')) === null || _document$getElementB3 === void 0 || (_document$getElementB3 = _document$getElementB3.textContent) === null || _document$getElementB3 === void 0 ? void 0 : _document$getElementB3.trim()) || '';
  var type = inferFzgPanTypeFromText(titleText);
  if (!type) return false;
  return fzgUrlMatchesType(url, type);
}

/**
 * 从 window.__fzg_d 按当前弹窗标题 / panType 匹配直链
 * 匹配失败返回 null,禁止回退到 list[0]
 */
function resolveFzgUrlFromGlobalData() {
  var _document$getElementB4;
  var win = window;
  var list = win.__fzg_d;
  if (!Array.isArray(list) || !list.length) return null;
  var titleText = ((_document$getElementB4 = document.getElementById('fzg-qr-title-text')) === null || _document$getElementB4 === void 0 || (_document$getElementB4 = _document$getElementB4.textContent) === null || _document$getElementB4 === void 0 ? void 0 : _document$getElementB4.trim()) || '';
  var inferredType = inferFzgPanTypeFromText(titleText);
  var matched = list.find(function (item) {
    if (inferredType && item.type === inferredType) return true;
    if (item.name && titleText.includes(item.name)) return true;
    if (item.type) {
      var aliases = FZG_PAN_TYPE_ALIASES[item.type] || [];
      var lowerTitle = titleText.toLowerCase();
      return aliases.some(function (alias) {
        return lowerTitle.includes(alias.toLowerCase());
      });
    }
    return false;
  });
  return matched !== null && matched !== void 0 && matched.d ? decodeFzgBase64Url(matched.d) : null;
}

/**
 * 从弹窗标题推断网盘 type(兼容中英文翻译)
 */
function inferFzgPanTypeFromText(text) {
  if (!text) return null;
  var lower = text.toLowerCase();
  for (var _i = 0, _Object$entries = Object.entries(FZG_PAN_TYPE_ALIASES); _i < _Object$entries.length; _i++) {
    var _Object$entries$_i = qrcode_converter_service_slicedToArray(_Object$entries[_i], 2),
      type = _Object$entries$_i[0],
      aliases = _Object$entries$_i[1];
    if (aliases.some(function (alias) {
      return lower.includes(alias.toLowerCase());
    })) {
      return type;
    }
  }
  return null;
}

/**
 * URL 是否属于指定网盘 type
 */
function fzgUrlMatchesType(url, type) {
  var host = function () {
    try {
      return new URL(url).hostname.toLowerCase();
    } catch (_unused5) {
      return url.toLowerCase();
    }
  }();
  switch (type) {
    case 'baidu':
      return host.includes('baidu.com');
    case 'quark':
      return host.includes('quark.cn');
    case 'xunlei':
      return host.includes('xunlei.com');
    case 'alipan':
      return host.includes('alipan.com') || host.includes('aliyundrive.com');
    case 'buy':
      return host.includes('steampowered.com') || host.includes('epicgames.com') || host.includes('gog.com');
    default:
      return true;
  }
}

/**
 * 解码 fzgamer 的 base64 下载链接
 */
function decodeFzgBase64Url(encoded) {
  if (!encoded) return null;
  try {
    var decoded = atob(encoded).trim();
    if (decoded.startsWith('http://') || decoded.startsWith('https://')) {
      return decoded;
    }
  } catch (err) {
    console.warn('[qrcode-converter] fzgamer base64 解码失败:', err);
  }
  return null;
}

/**
 * 从二维码图片邻近的隐藏 input 中提取 URL
 * 文章页结构:wpkqcg_qrcode_wrapper 内含 input[id$="_content"] 直接存储完整链接
 */
function extractUrlFromHiddenInput(img) {
  var wrapper = img.closest('.wpkqcg_qrcode_wrapper');
  if (!wrapper) return null;
  var contentInput = wrapper.querySelector('input[id$="_content"]');
  if (!(contentInput !== null && contentInput !== void 0 && contentInput.value)) return null;

  // 确保值是有效 URL
  var value = contentInput.value.trim();
  if (value.startsWith('http://') || value.startsWith('https://')) {
    return value;
  }
  return null;
}

/**
 * 查找统一提取码
 */
function findUnifiedWithdrawCode() {
  var _iterator = qrcode_converter_service_createForOfIteratorHelper(document.querySelectorAll('*')),
    _step;
  try {
    for (_iterator.s(); !(_step = _iterator.n()).done;) {
      var _el$childNodes;
      var el = _step.value;
      var textNode = (_el$childNodes = el.childNodes) === null || _el$childNodes === void 0 ? void 0 : _el$childNodes[0];
      if (textNode instanceof Text && /统一提取码:/.test(textNode.textContent)) {
        return extractUnifiedCode(textNode.textContent);
      }
    }
  } catch (err) {
    _iterator.e(err);
  } finally {
    _iterator.f();
  }
  return undefined;
}

/**
 * 查找提取码元素(向上遍历兄弟节点)
 * 包含超时保护(100ms)防止死循环
 */
function findExtractionCode(qrElement) {
  var current = qrElement.parentElement;
  var startTime = Date.now();
  var TIMEOUT_MS = 100;
  var MAX_ITERATIONS = 50; // 额外保护:最大迭代次数
  var iterations = 0;
  while (current) {
    var _nextSibling$innerTex;
    // 超时保护
    if (Date.now() - startTime > TIMEOUT_MS) {
      console.warn('[qrcode-converter] 查找提取码超时,终止搜索');
      break;
    }

    // 迭代次数保护
    if (++iterations > MAX_ITERATIONS) {
      console.warn('[qrcode-converter] 查找提取码迭代次数超限,终止搜索');
      break;
    }
    var nextSibling = current.nextElementSibling;
    if (nextSibling !== null && nextSibling !== void 0 && (_nextSibling$innerTex = nextSibling.innerText) !== null && _nextSibling$innerTex !== void 0 && _nextSibling$innerTex.includes('提取码')) {
      return nextSibling;
    }
    current = current.parentElement;
  }
  return null;
}

/**
 * 创建直链 &lt;a&gt; 元素
 * @param url  最终 URL
 * @param extraStyle 额外样式
 */
function qrcode_converter_service_createDirectLink(url) {
  var extraStyle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  var link = document.createElement('a');
  link.href = url;
  link.textContent = "".concat(getProviderName(url), "\uFF1A\u5DF2\u4E3A\u60A8\u8F6C\u6362\u4E3A\u514D\u626B\u7801\u76F4\u94FE: ").concat(url);
  link.setAttribute('target', '_blank');
  link.title = url;
  if (Object.keys(extraStyle).length > 0) {
    Object.assign(link.style, extraStyle);
  }
  return link;
}
;// ./projects/switch520-auto-secret/services/gamer520-popup-blocker.service.ts
function gamer520_popup_blocker_service_createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = gamer520_popup_blocker_service_unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
function gamer520_popup_blocker_service_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return gamer520_popup_blocker_service_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? gamer520_popup_blocker_service_arrayLikeToArray(r, a) : void 0; } }
function gamer520_popup_blocker_service_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function gamer520_popup_blocker_service_typeof(o) { "@babel/helpers - typeof"; return gamer520_popup_blocker_service_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, gamer520_popup_blocker_service_typeof(o); }
/**
 * gamer520.com 下载页面弹窗禁用服务
 * 使用多种策略完全阻止 SweetAlert2 弹窗出现
 */

/**
 * 策略 1: 确保 CSS 已注入(防御性检查)
 */
var injectCSSBlocker = function injectCSSBlocker() {
  // 检查是否已经注入
  if (document.querySelector('style[data-gamer520-blocker]')) {
    console.log('[gamer520-popup-blocker] ✅ CSS 已存在,跳过注入');
    return;
  }

  // 如果还没有,再次注入
  var target = document.head || document.documentElement;
  var style = document.createElement('style');
  style.setAttribute('data-gamer520-blocker', 'true');
  style.textContent = "\n\t\tbody > div.swal2-container,\n\t\tdiv.swal2-container,\n\t\t.swal2-popup,\n\t\t.swal2-modal {\n\t\t\tdisplay: none !important;\n\t\t\tvisibility: hidden !important;\n\t\t\topacity: 0 !important;\n\t\t\tpointer-events: none !important;\n\t\t\twidth: 0 !important;\n\t\t\theight: 0 !important;\n\t\t\toverflow: hidden !important;\n\t\t\tposition: fixed !important;\n\t\t\tleft: -9999px !important;\n\t\t\ttop: -9999px !important;\n\t\t\tz-index: -9999 !important;\n\t\t}\n\t\thtml.swal2-shown,\n\t\thtml.swal2-no-transition {\n\t\t\toverflow: auto !important;\n\t\t\tpadding-right: 0 !important;\n\t\t}\n\t\tbody.swal2-shown,\n\t\tbody.swal2-height-auto,\n\t\tbody.swal2-no-transition {\n\t\t\toverflow: auto !important;\n\t\t\theight: auto !important;\n\t\t\tpadding-right: 0 !important;\n\t\t}\n\t";
  if (target.firstChild) {
    target.insertBefore(style, target.firstChild);
  } else {
    target.appendChild(style);
  }
  console.log('[gamer520-popup-blocker] ✅ CSS 拦截器已注入(函数调用)');
};

/**
 * 策略 2: 拦截 SweetAlert2 全局函数
 */
var interceptSwalFunctions = function interceptSwalFunctions() {
  // 等待 Swal 对象出现并覆盖
  var tryIntercept = function tryIntercept() {
    if (window.Swal) {
      var originalSwal = window.Swal;
      window.Swal = new Proxy(originalSwal, {
        apply: function apply(target, thisArg, args) {
          console.log('[gamer520-popup-blocker] 🚫 拦截 Swal 调用:', args[0]);
          // 检查是否是我们的目标弹窗
          var content = gamer520_popup_blocker_service_typeof(args[0]) === 'object' ? args[0].html : args[0];
          if (content && typeof content === 'string' && content.includes('欢迎来到 GAMER520.COM')) {
            console.log('[gamer520-popup-blocker] ✅ 已阻止目标弹窗');
            return Promise.resolve({
              isConfirmed: false
            });
          }
          return target.apply(thisArg, args);
        }
      });
      console.log('[gamer520-popup-blocker] ✅ Swal 函数已拦截');
      return true;
    }
    return false;
  };
  if (!tryIntercept()) {
    // 定时尝试,直到 Swal 加载
    var interval = setInterval(function () {
      if (tryIntercept()) {
        clearInterval(interval);
      }
    }, 50);
    // 5秒后停止尝试
    setTimeout(function () {
      return clearInterval(interval);
    }, 5000);
  }
};

/**
 * 策略 3: MutationObserver 在节点渲染前删除
 */
var setupMutationObserver = function setupMutationObserver() {
  var observer = new MutationObserver(function (mutations) {
    var _iterator = gamer520_popup_blocker_service_createForOfIteratorHelper(mutations),
      _step;
    try {
      for (_iterator.s(); !(_step = _iterator.n()).done;) {
        var mutation = _step.value;
        if (mutation.type === 'childList') {
          mutation.addedNodes.forEach(function (node) {
            if (node.nodeType === Node.ELEMENT_NODE) {
              var _element$classList;
              var element = node;
              // 立即删除匹配的弹窗(在浏览器渲染前)
              if ((_element$classList = element.classList) !== null && _element$classList !== void 0 && _element$classList.contains('swal2-container')) {
                var content = element.querySelector('.swal2-content');
                if (content && content.innerHTML.includes('欢迎来到 GAMER520.COM')) {
                  console.log('[gamer520-popup-blocker] 🚫 DOM 拦截:删除弹窗');
                  element.remove();
                }
              }
            }
          });
        }
      }
    } catch (err) {
      _iterator.e(err);
    } finally {
      _iterator.f();
    }
  });

  // 观察 body 的子节点变化
  if (document.body) {
    observer.observe(document.body, {
      childList: true,
      subtree: false
    });
    console.log('[gamer520-popup-blocker] ✅ MutationObserver 已启动');
  }

  // 页面卸载时断开观察
  window.addEventListener('beforeunload', function () {
    return observer.disconnect();
  });
};

/**
 * 初始化 gamer520.com 弹窗禁用服务
 */
var initGamer520PopupBlocker = function initGamer520PopupBlocker() {
  console.log('[gamer520-popup-blocker] 服务初始化');
  useMatchDomain({
    includes: ['gamers520.com']
  }, function () {
    if (!(0,domain_matcher/* isHtmlPostPage */.zN)()) {
      return;
    }
    console.log('[gamer520-popup-blocker] 启动多层弹窗拦截');

    // 策略 1: 立即注入 CSS(最快)
    injectCSSBlocker();

    // 策略 2: 拦截 Swal 函数(阻止调用)
    // interceptSwalFunctions();

    // 策略 3: DOM 变化时删除节点(兜底)
    // setupMutationObserver();
  });
};



// 扩展 Window 接口以支持 Swal
;// ./projects/switch520-auto-secret/utils/steam-search.ts
/**
 * Steam 商店搜索 / 商品页 URL 工具
 *
 * 参数依据 Steam 商店搜索页与社区实践:
 * - l:商店界面语言(API language code,如 schinese)
 * - term:搜索关键词
 * - ignore_preferences=1:忽略账号内容偏好,避免结果被过滤变少
 * - supportedlang:按「游戏支持语言」筛选,多语言用逗号分隔
 * - ndl=1:商店搜索页常用参数,配合忽略偏好使用
 *
 * @see https://partner.steamgames.com/doc/store/localization/languages
 * @see https://github.com/Revadike/InternalSteamWebAPI/wiki/Get-Search-Results
 */

/** 默认扩大搜索命中的支持语言:简中 / 繁中 / 英 / 日 / 韩 */
var STEAM_SEARCH_SUPPORTED_LANGS = ['schinese', 'tchinese', 'english', 'japanese', 'koreana'];
var STEAM_APP_URL_RE = /^https?:\/\/store\.steampowered\.com\/(app|bundle|sub)\b/i;

/**
 * 构建 Steam 商店搜索 URL(全站点统一)
 */
function buildSteamSearchUrl(term) {
  var trimmed = term.trim();
  var params = new URLSearchParams();
  params.set('l', 'schinese');
  params.set('term', trimmed);
  params.set('ignore_preferences', '1');
  params.set('supportedlang', STEAM_SEARCH_SUPPORTED_LANGS.join(','));
  params.set('ndl', '1');

  // 与历史行为一致:空格用 + 而非 %20
  return "https://store.steampowered.com/search/?".concat(params.toString().replace(/%20/g, '+'));
}

/**
 * 是否为 Steam 商店链接(app / bundle / search 等)
 */
function isSteamStoreUrl(url) {
  return typeof url === 'string' && /^https?:\/\/store\.steampowered\.com\//i.test(url);
}

/**
 * 是否为可直达的 Steam 商品页(app / bundle / sub)
 */
function isSteamAppOrBundleUrl(url) {
  return typeof url === 'string' && STEAM_APP_URL_RE.test(url);
}

/**
 * 规范化 Steam 商品页 URL,缺省时补上简中界面语言
 */
function normalizeSteamAppUrl(url) {
  try {
    var parsed = new URL(url);
    if (!parsed.searchParams.get('l')) {
      parsed.searchParams.set('l', 'schinese');
    }
    return parsed.toString();
  } catch (_unused) {
    return url;
  }
}

/**
 * 在当前页面查找可见的 Steam 商品直链(a[href])
 * fzgamer 正版购买走「模拟点击按钮」,不在此解析
 */
function findPageSteamStoreUrl() {
  var anchors = document.querySelectorAll('a[href*="store.steampowered.com"]');
  for (var _i = 0, _Array$from = Array.from(anchors); _i < _Array$from.length; _i++) {
    var _a$href;
    var a = _Array$from[_i];
    var href = (_a$href = a.href) === null || _a$href === void 0 ? void 0 : _a$href.trim();
    if (href && isSteamAppOrBundleUrl(href)) {
      return href;
    }
  }
  return null;
}
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./projects/switch520-auto-secret/features/search-on-select/style.module.less
var style_module = __webpack_require__(243);
;// ./projects/switch520-auto-secret/features/search-on-select/style.module.less

      
      
      
      
      
      
      
      
      

var style_module_options = {};

style_module_options.styleTagTransform = (styleTagTransform_default());
style_module_options.setAttributes = (setAttributesWithoutAttributes_default());
style_module_options.insert = insertBySelector_default().bind(null, "head");
style_module_options.domAPI = (styleDomAPI_default());
style_module_options.insertStyleElement = (insertStyleElement_default());

var style_module_update = injectStylesIntoStyleTag_default()(style_module/* default */.A, style_module_options);




       /* harmony default export */ const search_on_select_style_module = (style_module/* default */.A && style_module/* default */.A.locals ? style_module/* default */.A.locals : undefined);

;// ./projects/switch520-auto-secret/features/search-on-select/index.tsx
/* provided dependency */ var search_on_select_React = __webpack_require__(594);
function search_on_select_slicedToArray(r, e) { return search_on_select_arrayWithHoles(r) || search_on_select_iterableToArrayLimit(r, e) || search_on_select_unsupportedIterableToArray(r, e) || search_on_select_nonIterableRest(); }
function search_on_select_nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function search_on_select_unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return search_on_select_arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? search_on_select_arrayLikeToArray(r, a) : void 0; } }
function search_on_select_arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
function search_on_select_iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
function search_on_select_arrayWithHoles(r) { if (Array.isArray(r)) return r; }
/**
 * 划词搜索特性
 * 在游戏网站中选中文字后,弹出 Steam 搜索提示
 * 使用 reaxes 状态管理
 */








var notificationKey = 'search-on-steam';
var getSelection = function getSelection() {
  return window.getSelection().toString();
};
var _createReaxable = reaxes_esm_p({
    open: false,
    selection: ''
  }),
  store = _createReaxable.store,
  setState = _createReaxable.setState,
  mutate = _createReaxable.mutate;
reaxes_esm_m(function (first) {
  if (first) return;
  var selection = store.selection;
  if (selection) {
    setState({
      open: true
    });
  } else {
    setState({
      open: false
    });
  }
}, function () {
  return [store.selection];
});
var App = We(function () {
  var _notification$useNoti = external_antd_namespaceObject.notification.useNotification(),
    _notification$useNoti2 = search_on_select_slicedToArray(_notification$useNoti, 2),
    api = _notification$useNoti2[0],
    contextHolder = _notification$useNoti2[1];
  var open = store.open,
    selection = store.selection;
  if (open) {
    api.open({
      message: /*#__PURE__*/search_on_select_React.createElement("a", {
        style: {
          color: 'black',
          fontSize: '18px',
          display: "inline-block"
        },
        onClick: function onClick(e) {
          e.preventDefault();
          window.open(buildSteamSearchUrl(selection));
        }
      }, "Steam\u641C\u7D22\uFF1A", /*#__PURE__*/search_on_select_React.createElement("div", {
        style: {
          color: '#7f7fff',
          display: 'flex',
          maxHeight: '30px',
          overflow: 'hidden'
        }
      }, selection)),
      placement: 'top',
      key: notificationKey,
      duration: null,
      closable: false,
      onClose: null,
      closeIcon: null
    });
  } else {
    api.destroy(notificationKey);
  }
  return contextHolder;
});

/**
 * 初始化划词搜索功能
 */
function initSearchOnSelect() {
  useMatchDomain({
    includes: ['gamer520', 'switch618', 'steamzg', 'xxxxx520']
  }, function () {
    document.addEventListener('mouseup', function (evt) {
      var _className, _className$includes;
      if ((_className = evt.target.className) !== null && _className !== void 0 && (_className$includes = _className.includes) !== null && _className$includes !== void 0 && _className$includes.call(_className, 'ant-notification')) {
        return;
      }
      var selection = getSelection();
      setState({
        selection: selection
      });
    });
    var container = document.createElement('div');
    document.body.append(container);
    var reactRoot = (0,client/* createRoot */.H)(container);
    reactRoot.render(/*#__PURE__*/search_on_select_React.createElement(App, null));
  });
}
;// ./projects/switch520-auto-secret/Components/SearchInSteamButton/index.tsx
function SearchInSteamButton_typeof(o) { "@babel/helpers - typeof"; return SearchInSteamButton_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, SearchInSteamButton_typeof(o); }
function SearchInSteamButton_regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */ SearchInSteamButton_regeneratorRuntime = function _regeneratorRuntime() { return e; }; var t, e = {}, r = Object.prototype, n = r.hasOwnProperty, o = Object.defineProperty || function (t, e, r) { t[e] = r.value; }, i = "function" == typeof Symbol ? Symbol : {}, a = i.iterator || "@@iterator", c = i.asyncIterator || "@@asyncIterator", u = i.toStringTag || "@@toStringTag"; function define(t, e, r) { return Object.defineProperty(t, e, { value: r, enumerable: !0, configurable: !0, writable: !0 }), t[e]; } try { define({}, ""); } catch (t) { define = function define(t, e, r) { return t[e] = r; }; } function wrap(t, e, r, n) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype), c = new Context(n || []); return o(a, "_invoke", { value: makeInvokeMethod(t, r, c) }), a; } function tryCatch(t, e, r) { try { return { type: "normal", arg: t.call(e, r) }; } catch (t) { return { type: "throw", arg: t }; } } e.wrap = wrap; var h = "suspendedStart", l = "suspendedYield", f = "executing", s = "completed", y = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var p = {}; define(p, a, function () { return this; }); var d = Object.getPrototypeOf, v = d && d(d(values([]))); v && v !== r && n.call(v, a) && (p = v); var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p); function defineIteratorMethods(t) { ["next", "throw", "return"].forEach(function (e) { define(t, e, function (t) { return this._invoke(e, t); }); }); } function AsyncIterator(t, e) { function invoke(r, o, i, a) { var c = tryCatch(t[r], t, o); if ("throw" !== c.type) { var u = c.arg, h = u.value; return h && "object" == SearchInSteamButton_typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { invoke("next", t, i, a); }, function (t) { invoke("throw", t, i, a); }) : e.resolve(h).then(function (t) { u.value = t, i(u); }, function (t) { return invoke("throw", t, i, a); }); } a(c.arg); } var r; o(this, "_invoke", { value: function value(t, n) { function callInvokeWithMethodAndArg() { return new e(function (e, r) { invoke(t, n, e, r); }); } return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); } }); } function makeInvokeMethod(e, r, n) { var o = h; return function (i, a) { if (o === f) throw Error("Generator is already running"); if (o === s) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var c = n.delegate; if (c) { var u = maybeInvokeDelegate(c, n); if (u) { if (u === y) continue; return u; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (o === h) throw o = s, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = f; var p = tryCatch(e, r, n); if ("normal" === p.type) { if (o = n.done ? s : l, p.arg === y) continue; return { value: p.arg, done: n.done }; } "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); } }; } function maybeInvokeDelegate(e, r) { var n = r.method, o = e.iterator[n]; if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; var i = tryCatch(o, e.iterator, r.arg); if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; var a = i.arg; return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); } function pushTryEntry(t) { var e = { tryLoc: t[0] }; 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e); } function resetTryEntry(t) { var e = t.completion || {}; e.type = "normal", delete e.arg, t.completion = e; } function Context(t) { this.tryEntries = [{ tryLoc: "root" }], t.forEach(pushTryEntry, this), this.reset(!0); } function values(e) { if (e || "" === e) { var r = e[a]; if (r) return r.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) { var o = -1, i = function next() { for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; return next.value = t, next.done = !0, next; }; return i.next = i; } } throw new TypeError(SearchInSteamButton_typeof(e) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { value: GeneratorFunctionPrototype, configurable: !0 }), o(GeneratorFunctionPrototype, "constructor", { value: GeneratorFunction, configurable: !0 }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { var e = "function" == typeof t && t.constructor; return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); }, e.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = Object.create(g), t; }, e.awrap = function (t) { return { __await: t }; }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { return this; }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(wrap(t, r, n, o), i); return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { return this; }), define(g, "toString", function () { return "[object Generator]"; }), e.keys = function (t) { var e = Object(t), r = []; for (var n in e) r.push(n); return r.reverse(), function next() { for (; r.length;) { var t = r.pop(); if (t in e) return next.value = t, next.done = !1, next; } return next.done = !0, next; }; }, e.values = values, Context.prototype = { constructor: Context, reset: function reset(e) { if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0].completion; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(e) { if (this.done) throw e; var r = this; function handle(n, o) { return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; } for (var o = this.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i.completion; if ("root" === i.tryLoc) return handle("end"); if (i.tryLoc <= this.prev) { var c = n.call(i, "catchLoc"), u = n.call(i, "finallyLoc"); if (c && u) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } else if (c) { if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); } else { if (!u) throw Error("try statement without catch or finally"); if (this.prev < i.finallyLoc) return handle(i.finallyLoc); } } } }, abrupt: function abrupt(t, e) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var o = this.tryEntries[r]; if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { var i = o; break; } } i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); var a = i ? i.completion : {}; return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); }, complete: function complete(t, e) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; }, finish: function finish(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; } }, "catch": function _catch(t) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var r = this.tryEntries[e]; if (r.tryLoc === t) { var n = r.completion; if ("throw" === n.type) { var o = n.arg; resetTryEntry(r); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(e, r, n) { return this.delegate = { iterator: values(e), resultName: r, nextLoc: n }, "next" === this.method && (this.arg = t), y; } }, e; }
function SearchInSteamButton_asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function SearchInSteamButton_asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { SearchInSteamButton_asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { SearchInSteamButton_asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
var SearchInSteam = We(function () {
  return /*#__PURE__*/external_React_default().createElement("div", null, /*#__PURE__*/external_React_default().createElement("button", {
    style: {
      backgroundColor: '#20a0ff',
      color: '#eee',
      width: '100%',
      padding: '12px 18px',
      borderRadius: '4px',
      border: 'none',
      cursor: 'pointer',
      fontSize: '16px',
      letterSpacing: '2px',
      margin: '0 0 24px 0'
    },
    onClick: /*#__PURE__*/SearchInSteamButton_asyncToGenerator(/*#__PURE__*/SearchInSteamButton_regeneratorRuntime().mark(function _callee5() {
      var clickedBuy, directSteamUrl, searchResult;
      return SearchInSteamButton_regeneratorRuntime().wrap(function _callee5$(_context5) {
        while (1) switch (_context5.prev = _context5.next) {
          case 0:
            // fzgamer:有「正版购买」按钮就直接点,由站点(+二维码转链)处理
            clickedBuy = false;
            _context5.next = 3;
            return useMatchDomain({
              includes: ['fzgamer']
            }, /*#__PURE__*/SearchInSteamButton_asyncToGenerator(/*#__PURE__*/SearchInSteamButton_regeneratorRuntime().mark(function _callee() {
              var _yield$import, clickGenuinePurchaseButton;
              return SearchInSteamButton_regeneratorRuntime().wrap(function _callee$(_context) {
                while (1) switch (_context.prev = _context.next) {
                  case 0:
                    _context.next = 2;
                    return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 586));
                  case 2:
                    _yield$import = _context.sent;
                    clickGenuinePurchaseButton = _yield$import.clickGenuinePurchaseButton;
                    clickedBuy = clickGenuinePurchaseButton();
                  case 5:
                  case "end":
                    return _context.stop();
                }
              }, _callee);
            })));
          case 3:
            if (!clickedBuy) {
              _context5.next = 5;
              break;
            }
            return _context5.abrupt("return");
          case 5:
            // 其他站:页面已有 Steam 商品直链则打开
            directSteamUrl = findPageSteamStoreUrl();
            if (!directSteamUrl) {
              _context5.next = 9;
              break;
            }
            window.open(normalizeSteamAppUrl(directSteamUrl));
            return _context5.abrupt("return");
          case 9:
            // 否则按站点提取游戏名,走商店搜索
            searchResult = null;
            _context5.next = 12;
            return useMatchDomain({
              includes: ['gamer520.com']
            }, /*#__PURE__*/SearchInSteamButton_asyncToGenerator(/*#__PURE__*/SearchInSteamButton_regeneratorRuntime().mark(function _callee2() {
              var _yield$import2, getGameName;
              return SearchInSteamButton_regeneratorRuntime().wrap(function _callee2$(_context2) {
                while (1) switch (_context2.prev = _context2.next) {
                  case 0:
                    _context2.next = 2;
                    return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 95));
                  case 2:
                    _yield$import2 = _context2.sent;
                    getGameName = _yield$import2.getGameName;
                    searchResult = getGameName();
                  case 5:
                  case "end":
                    return _context2.stop();
                }
              }, _callee2);
            })));
          case 12:
            _context5.next = 14;
            return useMatchDomain({
              includes: ['switch618']
            }, /*#__PURE__*/SearchInSteamButton_asyncToGenerator(/*#__PURE__*/SearchInSteamButton_regeneratorRuntime().mark(function _callee3() {
              var _yield$import3, getGameName, _getGameName, english, chinese;
              return SearchInSteamButton_regeneratorRuntime().wrap(function _callee3$(_context3) {
                while (1) switch (_context3.prev = _context3.next) {
                  case 0:
                    _context3.next = 2;
                    return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 801));
                  case 2:
                    _yield$import3 = _context3.sent;
                    getGameName = _yield$import3.getGameName;
                    _getGameName = getGameName(), english = _getGameName.english, chinese = _getGameName.chinese;
                    searchResult = english || chinese || null;
                  case 6:
                  case "end":
                    return _context3.stop();
                }
              }, _callee3);
            })));
          case 14:
            _context5.next = 16;
            return useMatchDomain({
              includes: ['fzgamer']
            }, /*#__PURE__*/SearchInSteamButton_asyncToGenerator(/*#__PURE__*/SearchInSteamButton_regeneratorRuntime().mark(function _callee4() {
              var _yield$import4, getGameName;
              return SearchInSteamButton_regeneratorRuntime().wrap(function _callee4$(_context4) {
                while (1) switch (_context4.prev = _context4.next) {
                  case 0:
                    _context4.next = 2;
                    return Promise.resolve(/* import() eager */).then(__webpack_require__.bind(__webpack_require__, 586));
                  case 2:
                    _yield$import4 = _context4.sent;
                    getGameName = _yield$import4.getGameName;
                    searchResult = getGameName() || null;
                  case 5:
                  case "end":
                    return _context4.stop();
                }
              }, _callee4);
            })));
          case 16:
            if (searchResult) {
              _context5.next = 18;
              break;
            }
            return _context5.abrupt("return");
          case 18:
            window.open(buildSteamSearchUrl(searchResult));
          case 19:
          case "end":
            return _context5.stop();
        }
      }, _callee5);
    }))
  }, "\u53BBSteam\u641C\u7D22\u6B64\u6E38\u620F"));
});




// EXTERNAL MODULE: ./projects/switch520-auto-secret/DOM-finder/switch520.com/index.ts
var switch520_com = __webpack_require__(95);
;// ./projects/switch520-auto-secret/features/search-in-steam/index.tsx
/* provided dependency */ var search_in_steam_React = __webpack_require__(594);
/**
 * Steam 搜索按钮特性
 * 在游戏详情页插入“去Steam搜索”按钮组件
 */




// 静态导入 DOM 查找器(避免代码分割)


/**
 * 初始化 Steam 搜索按钮
 */
function initSearchInSteam() {
  if (location.href.includes('wp-content/plugins/erphpdown/download.php')) {
    return;
  }
  var div = document.createElement('div');
  var reactRoot = (0,client/* createRoot */.H)(div);
  initGamer520SearchButton();
  initSwitch618SearchButton();
  initSteamzgSearchButton();
  initFzgamerSearchButton();

  /**
   * gamer520.com 站点插入搜索按钮
   */
  function initGamer520SearchButton() {
    useMatchDomain({
      includes: ['gamer520.com']
    }, function () {
      var container = (0,switch520_com.articleContainer)();
      if (!document.body.innerText.includes('牛夫人') && location.pathname !== '/' && container) {
        container.prepend(div);
        reactRoot.render(/*#__PURE__*/search_in_steam_React.createElement(SearchInSteam, null));
      }
    });
  }

  /**
   * switch618.com 站点插入搜索按钮
   */
  function initSwitch618SearchButton() {
    useMatchDomain({
      regExp: /switch618\.com\/[\d+]+.html/g
    }, function () {
      var container = document.querySelector(".erphpdown-box");
      if (!container) return;
      container.insertAdjacentElement('afterend', div);
      reactRoot.render(/*#__PURE__*/search_in_steam_React.createElement(SearchInSteam, null));
    });
  }

  /**
   * steamzg.com 站点插入搜索按钮
   */
  function initSteamzgSearchButton() {
    useMatchDomain({
      includes: ['steamzg']
    }, function () {
      if (!/\d{5,8}\/?$/.test(location.pathname)) return;
      if (location.host === 'xj.steamzg.com') return;
      var siblingEl = document.querySelector('.su-row');
      if (!siblingEl) {
        throw new Error('无法找到挂载<SearchInSteam />的节点');
      }
      var parent = siblingEl.parentElement;
      parent === null || parent === void 0 || parent.insertBefore(div, siblingEl);
      reactRoot.render(/*#__PURE__*/search_in_steam_React.createElement(SearchInSteam, null));
    });
  }

  /**
   * fzgamer.com 站点插入搜索按钮
   * 在 .article-header 元素后面插入按钮
   */
  function initFzgamerSearchButton() {
    useMatchDomain({
      includes: ['fzgamer.com']
    }, function () {
      // 在文章页面中,找到 article-header 元素
      var targetEl = document.querySelector('body > main > div.content-wrap > div > article > div.article-header.theme-box.clearfix.relative');
      if (targetEl && location.pathname !== '/') {
        // 在目标元素后面插入按钮
        targetEl.insertAdjacentElement('afterend', div);
        reactRoot.render(/*#__PURE__*/search_in_steam_React.createElement(SearchInSteam, null));
      }
    });
  }
}
// EXTERNAL MODULE: ./projects/switch520-auto-secret/DOM-finder/fzgamer.com/index.ts
var fzgamer_com = __webpack_require__(586);
// EXTERNAL MODULE: ./node_modules/css-loader/dist/cjs.js!./node_modules/less-loader/dist/cjs.js??ruleSet[1].rules[2].use[2]!./projects/switch520-auto-secret/style.less
var style = __webpack_require__(543);
;// ./projects/switch520-auto-secret/style.less

      
      
      
      
      
      
      
      
      

var style_options = {};

style_options.styleTagTransform = (styleTagTransform_default());
style_options.setAttributes = (setAttributesWithoutAttributes_default());
style_options.insert = insertBySelector_default().bind(null, "head");
style_options.domAPI = (styleDomAPI_default());
style_options.insertStyleElement = (insertStyleElement_default());

var style_update = injectStylesIntoStyleTag_default()(style/* default */.A, style_options);




       /* harmony default export */ const switch520_auto_secret_style = (style/* default */.A && style/* default */.A.locals ? style/* default */.A.locals : undefined);

;// ./projects/switch520-auto-secret/index.tsx
/**
 * Switch520 Auto Secret - 油猴脚本入口文件
 * 
 * 功能:优化多个游戏下载站(switch520、switch618、acgxj、steamzg等)
 * - 二维码转链接
 * - 无跳转弹窗浏览
 * - 自动填写密码
 * - 下载按钮直达下载地址页
 * - 去Steam查看游戏
 * 
 * 架构:ESM 模块化,分层设计
 * - core/:核心纯函数逻辑
 * - services/:业务服务层
 * - features/:React 特性层
 * - utils/:通用工具函数
 * - Components/:React 组件
 */



// 抑制 webpack 运行时错误 overlay 误捕浏览器内部 ResizeObserver 循环错误
// 该错误本质无害(Chrome 内部限制),但被 webpack HMR 的 window.addEventListener("error") 捕获后
// 会尝试渲染 DOM overlay,进而触发更多 ResizeObserver 通知,造成级联死循环
// capture-phase 在 at-target phase 之前触发,可通过 stopPropagation 阻止传播
window.addEventListener('error', function (event) {
  var _event$message;
  if ((_event$message = event.message) !== null && _event$message !== void 0 && _event$message.includes('ResizeObserver loop completed with undelivered notifications')) {
    console.log('[switch520-auto-secret] 抑制 ResizeObserver 循环错误');
    event.stopPropagation();
  }
}, true);

// 导入服务层













// 开发环境:条件加载代理检测器
if (false) {}

// 安全检查
if (!document.body) {
  console.warn('[switch520-auto-secret] document.body 不存在,脚本终止');
} else {
  // iframe 中设置所有链接在新窗口打开
  if (window.parent !== window.self) {
    document.querySelectorAll('a').forEach(function (a) {
      return a.target = '_blank';
    });
  }

  // 初始化各服务(添加错误边界,确保单个服务失败不影响其他功能)
  try {
    initAutoSecret();
  } catch (err) {
    console.error('[switch520-auto-secret] initAutoSecret 失败:', err);
  }
  try {
    initBaiduLinkService();
  } catch (err) {
    console.error('[switch520-auto-secret] initBaiduLinkService 失败:', err);
  }
  try {
    initDownloadBypassService();
  } catch (err) {
    console.error('[switch520-auto-secret] initDownloadBypassService 失败:', err);
  }
  try {
    initBaiduPanAutoSubmitService();
  } catch (err) {
    console.error('[switch520-auto-secret] initBaiduPanAutoSubmitService 失败:', err);
  }
  try {
    initModalModeService();
  } catch (err) {
    console.error('[switch520-auto-secret] initModalModeService 失败:', err);
  }
  try {
    initContextMenuService();
  } catch (err) {
    console.error('[switch520-auto-secret] initContextMenuService 失败:', err);
  }
  try {
    initQrcodeConverterService();
  } catch (err) {
    console.error('[switch520-auto-secret] initQrcodeConverterService 失败:', err);
  }
  try {
    initGamer520PopupBlocker();
  } catch (err) {
    console.error('[switch520-auto-secret] initGamer520PopupBlocker 失败:', err);
  }
  try {
    initSearchOnSelect();
  } catch (err) {
    console.error('[switch520-auto-secret] initSearchOnSelect 失败:', err);
  }
  try {
    initSearchInSteam();
  } catch (err) {
    console.error('[switch520-auto-secret] initSearchInSteam 失败:', err);
  }
  try {
    (0,fzgamer_com.moveElementsToVersionIntro)();
  } catch (err) {
    console.error('[switch520-auto-secret] moveElementsToVersionIntro 失败:', err);
  }
  try {
    (0,fzgamer_com.removeSidebarContentAboveHotRank)();
  } catch (err) {
    console.error('[switch520-auto-secret] removeSidebarContentAboveHotRank 失败:', err);
  }
  try {
    (0,fzgamer_com.removeSnakeCanvas)();
  } catch (err) {
    console.error('[switch520-auto-secret] removeSnakeCanvas 失败:', err);
  }

  // 监听来自 iframe 的防死循环 postMessage
  window.addEventListener('message', function (e) {
    var _e$data, _e$data2;
    if (((_e$data = e.data) === null || _e$data === void 0 ? void 0 : _e$data.source) === 'S520_LOOP_GUARD' && ((_e$data2 = e.data) === null || _e$data2 === void 0 ? void 0 : _e$data2.type) === 'OPEN_TAB') {
      console.log('[switch520-auto-secret] postMessage 触发新标签页打开:', e.data.url);
      window.open(e.data.url, '_blank');
    }
  });
}
/******/ })()
;