Greasy Fork

来自缓存

Greasy Fork is available in English.

Ophel Atlas - AI 对话结构化与导航工具, 全能AI助手 (支持 Gemini, ChatGPT, Claude, Grok, AI Studio, 豆包)

将 AI 对话转化为可阅读、可导航、可复用的知识内容。通过实时大纲、会话文件夹与 Prompt 词库,让对话告别无限滚动,成为可组织、可沉淀的工作流,适用于高频使用 AI 的学习与工作场景。 | 功能: 实时大纲导航, 会话管理(文件夹/置顶/导出), 提示词库, 沉浸式宽屏/全屏/滚动锁定, 主题切换, Markdown渲染修复, LaTeX公式/表格复制, WebDAV同步, 隐私模式, 快捷键, 标签页重命名, 阅读历史恢复, Banana去水印 | Turn AI chats into readable, navigable knowledge. Use outlines, folders, and prompts to organize your workflow and stop scrolling. | Features: Real-time Outline, Conversation Manager (Folders/Pin/Export), Prompt Library, Immersion/Widescreen/Scroll Lock, Theme Switcher

当前为 2026-03-05 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name               Ophel Atlas - AI 对话结构化与导航工具, 全能AI助手 (支持 Gemini, ChatGPT, Claude, Grok, AI Studio, 豆包)
// @name:zh-CN         Ophel Atlas - AI 对话结构化与导航工具, 全能AI助手 (支持 Gemini, ChatGPT, Claude, Grok, AI Studio, 豆包)
// @name:zh-TW         Ophel Atlas - AI 對話結構化與導覽工具, 全能AI助手 (支持 Gemini, ChatGPT, Claude, Grok, AI Studio, 豆包)
// @name:en            Ophel Atlas - AI Chat Organizer & Navigator (Support Gemini, ChatGPT, Claude, Grok, AI Studio)
// @name:de            Ophel Atlas - KI-Chat-Organizer & Navigator (Support Gemini, ChatGPT, Claude, Grok, AI Studio)
// @name:es            Ophel Atlas - Organizador de Chats de IA (Support Gemini, ChatGPT, Claude, Grok, AI Studio)
// @name:fr            Ophel Atlas - Organisateur de Chat IA (Support Gemini, ChatGPT, Claude, Grok, AI Studio)
// @name:ja            Ophel Atlas - AI対話の構造化とナビゲーションツール (Support Gemini, ChatGPT, Claude, Grok, AI Studio)
// @name:ko            Ophel Atlas - AI 채팅 정리 및 탐색 도구 (Support Gemini, ChatGPT, Claude, Grok, AI Studio)
// @name:pt-BR         Ophel Atlas - Organizador de Chat de IA (Support Gemini, ChatGPT, Claude, Grok, AI Studio)
// @name:ru            Ophel Atlas - Органайзер AI-чатов (Support Gemini, ChatGPT, Claude, Grok, AI Studio)
// @namespace          https://github.com/urzeye/ophel
// @version            1.0.14
// @author             urzeye
// @description        将 AI 对话转化为可阅读、可导航、可复用的知识内容。通过实时大纲、会话文件夹与 Prompt 词库,让对话告别无限滚动,成为可组织、可沉淀的工作流,适用于高频使用 AI 的学习与工作场景。 | 功能: 实时大纲导航, 会话管理(文件夹/置顶/导出), 提示词库, 沉浸式宽屏/全屏/滚动锁定, 主题切换, Markdown渲染修复, LaTeX公式/表格复制, WebDAV同步, 隐私模式, 快捷键, 标签页重命名, 阅读历史恢复, Banana去水印 | Turn AI chats into readable, navigable knowledge. Use outlines, folders, and prompts to organize your workflow and stop scrolling. | Features: Real-time Outline, Conversation Manager (Folders/Pin/Export), Prompt Library, Immersion/Widescreen/Scroll Lock, Theme Switcher
// @description:zh-CN  将 AI 对话转化为可阅读、可导航、可复用的知识内容。通过实时大纲、会话文件夹与 Prompt 词库,让对话告别无限滚动,成为可组织、可沉淀的工作流,适用于高频使用 AI 的学习与工作场景。 | 功能: 实时大纲导航, 会话管理(文件夹/置顶/导出), 提示词库, 沉浸式宽屏/全屏/滚动锁定, 主题切换, Markdown渲染修复, LaTeX公式/表格复制, WebDAV同步, 隐私模式, 快捷键, 标签页重命名, 阅读历史恢复, Banana去水印
// @description:zh-TW  將 AI 對話轉化為可閱讀、可導覽、可複用的知識內容。透過即時大綱、對話資料夾與 Prompt 詞庫,讓對話告別無限捲動,成為可組織、可沉澱的工作流,適用於高頻使用 AI 的學習與工作場景。 | Features: Real-time Outline, Conversation Manager (Folders/Pin/Export), Prompt Library, Immersion/Widescreen/Scroll Lock, Theme Switcher, Markdown Fix, LaTeX/Table Copy, WebDAV Sync, Privacy, Shortcuts, Tab Renamer, History Restore, Watermark Remover
// @description:en     Turn AI chats into readable, navigable knowledge. Use outlines, folders, and prompts to organize your workflow and stop scrolling. | Features: Real-time Outline, Conversation Manager (Folders/Pin/Export), Prompt Library, Immersion/Widescreen/Scroll Lock, Theme Switcher, Markdown Fix, LaTeX/Table Copy, WebDAV Sync, Privacy, Shortcuts, Tab Renamer, History Restore, Watermark Remover
// @description:de     Machen Sie KI-Chats zu lesbarem Wissen. Nutzen Sie Gliederungen, Ordner und Prompts für einen besseren Workflow ohne Scrollen. | Features: Real-time Outline, Conversation Manager (Folders/Pin/Export), Prompt Library, Immersion/Widescreen/Scroll Lock, Theme Switcher, Markdown Fix, LaTeX/Table Copy, WebDAV Sync, Privacy, Shortcuts, Tab Renamer, History Restore, Watermark Remover
// @description:es     Transforma chats de IA en conocimiento útil. Usa esquemas, carpetas y prompts para organizar tu trabajo y evitar el scroll infinito. | Features: Real-time Outline, Conversation Manager (Folders/Pin/Export), Prompt Library, Immersion/Widescreen/Scroll Lock, Theme Switcher, Markdown Fix, LaTeX/Table Copy, WebDAV Sync, Privacy, Shortcuts, Tab Renamer, History Restore, Watermark Remover
// @description:fr     Convertissez les chats IA en savoir lisible. Plans, dossiers et prompts pour organiser votre travail et éviter le défilement. | Features: Real-time Outline, Conversation Manager (Folders/Pin/Export), Prompt Library, Immersion/Widescreen/Scroll Lock, Theme Switcher, Markdown Fix, LaTeX/Table Copy, WebDAV Sync, Privacy, Shortcuts, Tab Renamer, History Restore, Watermark Remover
// @description:ja     AIチャットを読みやすく、ナビゲート可能な知識へ変換。アウトライン、会話フォルダ、プロンプト集で無限スクロールを解消。整理・蓄積可能なワークフローを実現し、AIを活用する学習や業務に最適です。 | Features: Real-time Outline, Conversation Manager (Folders/Pin/Export), Prompt Library, Immersion/Widescreen/Scroll Lock, Theme Switcher, Markdown Fix, LaTeX/Table Copy, WebDAV Sync, Privacy, Shortcuts, Tab Renamer, History Restore, Watermark Remover
// @description:ko     AI 채팅을 읽기 쉽고 탐색 가능한 지식으로 변환하세요. 개요, 폴더, 프롬프트로 워크플로우를 정리하여 무한 스크롤에서 해방되세요. | Features: Real-time Outline, Conversation Manager (Folders/Pin/Export), Prompt Library, Immersion/Widescreen/Scroll Lock, Theme Switcher, Markdown Fix, LaTeX/Table Copy, WebDAV Sync, Privacy, Shortcuts, Tab Renamer, History Restore, Watermark Remover
// @description:pt-BR  Transforme chats de IA em conhecimento legível. Use esboços, pastas e prompts para organizar seu fluxo e parar de rolar. | Features: Real-time Outline, Conversation Manager (Folders/Pin/Export), Prompt Library, Immersion/Widescreen/Scroll Lock, Theme Switcher, Markdown Fix, LaTeX/Table Copy, WebDAV Sync, Privacy, Shortcuts, Tab Renamer, History Restore, Watermark Remover
// @description:ru     Превратите AI-чаты в знания. Используйте структуру, папки и промпты, чтобы организовать рабочий процесс и прекратить прокрутку. | Features: Real-time Outline, Conversation Manager (Folders/Pin/Export), Prompt Library, Immersion/Widescreen/Scroll Lock, Theme Switcher, Markdown Fix, LaTeX/Table Copy, WebDAV Sync, Privacy, Shortcuts, Tab Renamer, History Restore, Watermark Remover
// @license            GPL-3.0-only
// @icon               https://raw.githubusercontent.com/urzeye/ophel/main/assets/icon.png
// @homepageURL        https://github.com/urzeye/ophel
// @source             https://github.com/urzeye/ophel.git
// @supportURL         https://github.com/urzeye/ophel/issues
// @match              https://gemini.google.com/*
// @match              https://business.gemini.google/*
// @match              https://aistudio.google.com/*
// @match              https://grok.com/*
// @match              https://chat.openai.com/*
// @match              https://chatgpt.com/*
// @match              https://claude.ai/*
// @match              https://www.doubao.com/*
// @require            https://cdn.jsdelivr.net/npm/[email protected]/fuzzysort.min.js
// @require            https://cdn.jsdelivr.net/npm/[email protected]/dist/system.min.js
// @require            https://cdn.jsdelivr.net/npm/[email protected]/dist/extras/named-register.min.js
// @require            data:application/javascript,%3B(typeof%20System!%3D'undefined')%26%26(System%3Dnew%20System.constructor())%3B
// @connect            *
// @grant              GM_addStyle
// @grant              GM_addValueChangeListener
// @grant              GM_cookie
// @grant              GM_deleteValue
// @grant              GM_getValue
// @grant              GM_info
// @grant              GM_notification
// @grant              GM_removeValueChangeListener
// @grant              GM_setValue
// @grant              GM_xmlhttpRequest
// @grant              unsafeWindow
// @grant              window.focus
// @run-at             document-idle
// @noframes
// ==/UserScript==


System.register("./__entry.js", ['./entry-cmhZKcCp-iXZNNucp.js'], (function (exports, module) {
	'use strict';
	return {
		setters: [null],
		execute: (function () {



		})
	};
}));

System.register("./entry-cmhZKcCp-iXZNNucp.js", [], (function (exports, module) {
   'use strict';
   return {
      execute: (function () {

         exports({
            a: ra,
            b: ud,
            c: na,
            e: Fa,
            j: oa,
            l: Ka,
            m: ur,
            n: hr,
            o: pr,
            q: mr,
            s: Yr,
            t: En,
            v: br,
            x: gr
         });

         const d$1=new Set;const e = async e=>{d$1.has(e)||(d$1.add(e),(t=>{typeof GM_addStyle=="function"?GM_addStyle(t):(document.head||document.documentElement).appendChild(document.createElement("style")).append(t);})(e));};

         const t=function(){const e="undefined"!=typeof document&&document.createElement("link").relList;return e&&e.supports&&e.supports("modulepreload")?"modulepreload":"preload"}(),n={},r=exports("_", function(e,r,o){let a=Promise.resolve();if(r&&r.length>0){let e=function(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:"fulfilled",value:e}),e=>({status:"rejected",reason:e}))))};document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=o?.nonce||o?.getAttribute("nonce");a=e(r.map(e=>{if((e=function(e){return "/"+e}(e))in n)return;n[e]=true;const r=e.endsWith(".css"),o=r?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${e}"]${o}`))return;const a=document.createElement("link");return a.rel=r?"stylesheet":t,r||(a.as="script"),a.crossOrigin="",a.href=e,i&&a.setAttribute("nonce",i),document.head.appendChild(a),r?new Promise((t,n)=>{a.addEventListener("load",t),a.addEventListener("error",()=>n(new Error(`Unable to preload CSS for ${e}`)));}):void 0}));}function i(e){const t=new Event("vite:preloadError",{cancelable:true});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return a.then(t=>{for(const e of t||[])"rejected"===e.status&&i(e.reason);return e().catch(i)})});function o(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var a,i,s={exports:{}},l={};function c(){if(a)return l;a=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),s=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),g=Symbol.iterator;var p={isMounted:function(){return  false},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,f={};function b(e,t,n){this.props=e,this.context=t,this.refs=f,this.updater=n||p;}function y(){}function v(e,t,n){this.props=e,this.context=t,this.refs=f,this.updater=n||p;}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState");},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate");},y.prototype=b.prototype;var x=v.prototype=new y;x.constructor=v,m(x,b.prototype),x.isPureReactComponent=true;var S=Array.isArray,w=Object.prototype.hasOwnProperty,k={current:null},C={key:true,ref:true,__self:true,__source:true};function T(t,n,r){var o,a={},i=null,s=null;if(null!=n)for(o in void 0!==n.ref&&(s=n.ref),void 0!==n.key&&(i=""+n.key),n)w.call(n,o)&&!C.hasOwnProperty(o)&&(a[o]=n[o]);var l=arguments.length-2;if(1===l)a.children=r;else if(1<l){for(var c=Array(l),d=0;d<l;d++)c[d]=arguments[d+2];a.children=c;}if(t&&t.defaultProps)for(o in l=t.defaultProps) void 0===a[o]&&(a[o]=l[o]);return {$$typeof:e,type:t,key:i,ref:s,props:a,_owner:k.current}}function D(t){return "object"==typeof t&&null!==t&&t.$$typeof===e}var E=/\/+/g;function A(e,t){return "object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return "$"+e.replace(/[=:]/g,function(e){return t[e]})}(""+e.key):t.toString(36)}function _(n,r,o,a,i){var s=typeof n;"undefined"!==s&&"boolean"!==s||(n=null);var l=false;if(null===n)l=true;else switch(s){case "string":case "number":l=true;break;case "object":switch(n.$$typeof){case e:case t:l=true;}}if(l)return i=i(l=n),n=""===a?"."+A(l,0):a,S(i)?(o="",null!=n&&(o=n.replace(E,"$&/")+"/"),_(i,r,o,"",function(e){return e})):null!=i&&(D(i)&&(i=function(t,n){return {$$typeof:e,type:t.type,key:n,ref:t.ref,props:t.props,_owner:t._owner}}(i,o+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(E,"$&/")+"/")+n)),r.push(i)),1;if(l=0,a=""===a?".":a+":",S(n))for(var c=0;c<n.length;c++){var d=a+A(s=n[c],c);l+=_(s,r,o,d,i);}else if(d=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=g&&e[g]||e["@@iterator"])?e:null}(n),"function"==typeof d)for(n=d.call(n),c=0;!(s=n.next()).done;)l+=_(s=s.value,r,o,d=a+A(s,c++),i);else if("object"===s)throw r=String(n),Error("Objects are not valid as a React child (found: "+("[object Object]"===r?"object with keys {"+Object.keys(n).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.");return l}function L(e,t,n){if(null==e)return e;var r=[],o=0;return _(e,r,"","",function(e){return t.call(n,e,o++)}),r}function P(e){if(-1===e._status){var t=e._result;(t=t()).then(function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t);},function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t);}),-1===e._status&&(e._status=0,e._result=t);}if(1===e._status)return e._result.default;throw e._result}var N={current:null},M={transition:null},I={ReactCurrentDispatcher:N,ReactCurrentBatchConfig:M,ReactCurrentOwner:k};function j(){throw Error("act(...) is not supported in production builds of React.")}return l.Children={map:L,forEach:function(e,t,n){L(e,function(){t.apply(this,arguments);},n);},count:function(e){var t=0;return L(e,function(){t++;}),t},toArray:function(e){return L(e,function(e){return e})||[]},only:function(e){if(!D(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},l.Component=b,l.Fragment=n,l.Profiler=o,l.PureComponent=v,l.StrictMode=r,l.Suspense=d,l.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=I,l.act=j,l.cloneElement=function(t,n,r){if(null==t)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+t+".");var o=m({},t.props),a=t.key,i=t.ref,s=t._owner;if(null!=n){if(void 0!==n.ref&&(i=n.ref,s=k.current),void 0!==n.key&&(a=""+n.key),t.type&&t.type.defaultProps)var l=t.type.defaultProps;for(c in n)w.call(n,c)&&!C.hasOwnProperty(c)&&(o[c]=void 0===n[c]&&void 0!==l?l[c]:n[c]);}var c=arguments.length-2;if(1===c)o.children=r;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];o.children=l;}return {$$typeof:e,type:t.type,key:a,ref:i,props:o,_owner:s}},l.createContext=function(e){return (e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:i,_context:e},e.Consumer=e},l.createElement=T,l.createFactory=function(e){var t=T.bind(null,e);return t.type=e,t},l.createRef=function(){return {current:null}},l.forwardRef=function(e){return {$$typeof:c,render:e}},l.isValidElement=D,l.lazy=function(e){return {$$typeof:h,_payload:{_status:-1,_result:e},_init:P}},l.memo=function(e,t){return {$$typeof:u,type:e,compare:void 0===t?null:t}},l.startTransition=function(e){var t=M.transition;M.transition={};try{e();}finally{M.transition=t;}},l.unstable_act=j,l.useCallback=function(e,t){return N.current.useCallback(e,t)},l.useContext=function(e){return N.current.useContext(e)},l.useDebugValue=function(){},l.useDeferredValue=function(e){return N.current.useDeferredValue(e)},l.useEffect=function(e,t){return N.current.useEffect(e,t)},l.useId=function(){return N.current.useId()},l.useImperativeHandle=function(e,t,n){return N.current.useImperativeHandle(e,t,n)},l.useInsertionEffect=function(e,t){return N.current.useInsertionEffect(e,t)},l.useLayoutEffect=function(e,t){return N.current.useLayoutEffect(e,t)},l.useMemo=function(e,t){return N.current.useMemo(e,t)},l.useReducer=function(e,t,n){return N.current.useReducer(e,t,n)},l.useRef=function(e){return N.current.useRef(e)},l.useState=function(e){return N.current.useState(e)},l.useSyncExternalStore=function(e,t,n){return N.current.useSyncExternalStore(e,t,n)},l.useTransition=function(){return N.current.useTransition()},l.version="18.3.1",l}function d(){return i||(i=1,s.exports=c()),s.exports}var u=d();const h=o(u);var g,p,m,f,b,y={},v={exports:{}},x={},S={exports:{}},w={};function k(){return p||(p=1,S.exports=(g||(g=1,function(e){function t(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r;}}function n(e){return 0===e.length?null:e[0]}function r(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var s=2*(r+1)-1,l=e[s],c=s+1,d=e[c];if(0>o(l,n))c<a&&0>o(d,l)?(e[r]=d,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else {if(!(c<a&&0>o(d,n)))break e;e[r]=d,e[c]=n,r=c;}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var a=performance;e.unstable_now=function(){return a.now()};}else {var i=Date,s=i.now();e.unstable_now=function(){return i.now()-s};}var l=[],c=[],d=1,u=null,h=3,g=false,p=false,m=false,f="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,y="undefined"!=typeof setImmediate?setImmediate:null;function v(e){for(var o=n(c);null!==o;){if(null===o.callback)r(c);else {if(!(o.startTime<=e))break;r(c),o.sortIndex=o.expirationTime,t(l,o);}o=n(c);}}function x(e){if(m=false,v(e),!p)if(null!==n(l))p=true,N(S);else {var t=n(c);null!==t&&M(x,t.startTime-e);}}function S(t,o){p=false,m&&(m=false,b(T),T=-1),g=true;var a=h;try{for(v(o),u=n(l);null!==u&&(!(u.expirationTime>o)||t&&!A());){var i=u.callback;if("function"==typeof i){u.callback=null,h=u.priorityLevel;var s=i(u.expirationTime<=o);o=e.unstable_now(),"function"==typeof s?u.callback=s:u===n(l)&&r(l),v(o);}else r(l);u=n(l);}if(null!==u)var d=!0;else {var f=n(c);null!==f&&M(x,f.startTime-o),d=!1;}return d}finally{u=null,h=a,g=false;}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var w,k=false,C=null,T=-1,D=5,E=-1;function A(){return !(e.unstable_now()-E<D)}function _(){if(null!==C){var t=e.unstable_now();E=t;var n=true;try{n=C(!0,t);}finally{n?w():(k=false,C=null);}}else k=false;}if("function"==typeof y)w=function(){y(_);};else if("undefined"!=typeof MessageChannel){var L=new MessageChannel,P=L.port2;L.port1.onmessage=_,w=function(){P.postMessage(null);};}else w=function(){f(_,0);};function N(e){C=e,k||(k=true,w());}function M(t,n){T=f(function(){t(e.unstable_now());},n);}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null;},e.unstable_continueExecution=function(){p||g||(p=true,N(S));},e.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):D=0<e?Math.floor(1e3/e):5;},e.unstable_getCurrentPriorityLevel=function(){return h},e.unstable_getFirstCallbackNode=function(){return n(l)},e.unstable_next=function(e){switch(h){case 1:case 2:case 3:var t=3;break;default:t=h;}var n=h;h=t;try{return e()}finally{h=n;}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3;}var n=h;h=e;try{return t()}finally{h=n;}},e.unstable_scheduleCallback=function(r,o,a){var i=e.unstable_now();switch(a="object"==typeof a&&null!==a&&"number"==typeof(a=a.delay)&&0<a?i+a:i,r){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3;}return r={id:d++,callback:o,priorityLevel:r,startTime:a,expirationTime:s=a+s,sortIndex:-1},a>i?(r.sortIndex=a,t(c,r),null===n(l)&&r===n(c)&&(m?(b(T),T=-1):m=true,M(x,a-i))):(r.sortIndex=s,t(l,r),p||g||(p=true,N(S))),r},e.unstable_shouldYield=A,e.unstable_wrapCallback=function(e){var t=h;return function(){var n=h;h=t;try{return e.apply(this,arguments)}finally{h=n;}}};}(w)),w)),S.exports}function C(){if(m)return x;m=1;var e=d(),t=k();function n(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return "Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var r=new Set,o={};function a(e,t){i(e,t),i(e+"Capture",t);}function i(e,t){for(o[e]=t,e=0;e<t.length;e++)r.add(t[e]);}var s=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),l=Object.prototype.hasOwnProperty,c=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,u={},h={};function g(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i;}var p={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(e){p[e]=new g(e,0,false,e,null,false,false);}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(e){var t=e[0];p[t]=new g(t,1,false,e[1],null,false,false);}),["contentEditable","draggable","spellCheck","value"].forEach(function(e){p[e]=new g(e,2,false,e.toLowerCase(),null,false,false);}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(e){p[e]=new g(e,2,false,e,null,false,false);}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(e){p[e]=new g(e,3,false,e.toLowerCase(),null,false,false);}),["checked","multiple","muted","selected"].forEach(function(e){p[e]=new g(e,3,true,e,null,false,false);}),["capture","download"].forEach(function(e){p[e]=new g(e,4,false,e,null,false,false);}),["cols","rows","size","span"].forEach(function(e){p[e]=new g(e,6,false,e,null,false,false);}),["rowSpan","start"].forEach(function(e){p[e]=new g(e,5,false,e.toLowerCase(),null,false,false);});var f=/[\-:]([a-z])/g;function b(e){return e[1].toUpperCase()}function y(e,t,n,r){var o=p.hasOwnProperty(t)?p[t]:null;(null!==o?0!==o.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return  false;switch(typeof t){case "function":case "symbol":return  true;case "boolean":return !r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return  false}}(e,t,n,r))return  true;if(r)return  false;if(null!==n)switch(n.type){case 3:return !t;case 4:return  false===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return  false}(t,n,o,r)&&(n=null),r||null===o?function(e){return !!l.call(h,e)||!l.call(u,e)&&(c.test(e)?h[e]=true:(u[e]=true,false))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&true===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))));}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(e){var t=e.replace(f,b);p[t]=new g(t,1,false,e,null,false,false);}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(e){var t=e.replace(f,b);p[t]=new g(t,1,false,e,"http://www.w3.org/1999/xlink",false,false);}),["xml:base","xml:lang","xml:space"].forEach(function(e){var t=e.replace(f,b);p[t]=new g(t,1,false,e,"http://www.w3.org/XML/1998/namespace",false,false);}),["tabIndex","crossOrigin"].forEach(function(e){p[e]=new g(e,1,false,e.toLowerCase(),null,false,false);}),p.xlinkHref=new g("xlinkHref",1,false,"xlink:href","http://www.w3.org/1999/xlink",true,false),["src","href","action","formAction"].forEach(function(e){p[e]=new g(e,1,false,e.toLowerCase(),null,true,true);});var v=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,S=Symbol.for("react.element"),w=Symbol.for("react.portal"),C=Symbol.for("react.fragment"),T=Symbol.for("react.strict_mode"),D=Symbol.for("react.profiler"),E=Symbol.for("react.provider"),A=Symbol.for("react.context"),_=Symbol.for("react.forward_ref"),L=Symbol.for("react.suspense"),P=Symbol.for("react.suspense_list"),N=Symbol.for("react.memo"),M=Symbol.for("react.lazy"),I=Symbol.for("react.offscreen"),j=Symbol.iterator;function R(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=j&&e[j]||e["@@iterator"])?e:null}var F,z=Object.assign;function O(e){if(void 0===F)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);F=t&&t[1]||"";}return "\n"+F+e}var B=false;function q(e,t){if(!e||B)return "";B=true;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[]);}catch(c){var r=c;}Reflect.construct(e,[],t);}else {try{t.call();}catch(c){r=c;}e.call(t.prototype);}else {try{throw Error()}catch(c){r=c;}e();}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var o=c.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,s=a.length-1;1<=i&&0<=s&&o[i]!==a[s];)s--;for(;1<=i&&0<=s;i--,s--)if(o[i]!==a[s]){if(1!==i||1!==s)do{if(i--,0>--s||o[i]!==a[s]){var l="\n"+o[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{B=false,Error.prepareStackTrace=n;}return (e=e?e.displayName||e.name:"")?O(e):""}function U(e){switch(e.tag){case 5:return O(e.type);case 16:return O("Lazy");case 13:return O("Suspense");case 19:return O("SuspenseList");case 0:case 2:case 15:return e=q(e.type,false);case 11:return e=q(e.type.render,false);case 1:return e=q(e.type,true);default:return ""}}function H(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case C:return "Fragment";case w:return "Portal";case D:return "Profiler";case T:return "StrictMode";case L:return "Suspense";case P:return "SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case A:return (e.displayName||"Context")+".Consumer";case E:return (e._context.displayName||"Context")+".Provider";case _:var t=e.render;return (e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case N:return null!==(t=e.displayName||null)?t:H(e.type)||"Memo";case M:t=e._payload,e=e._init;try{return H(e(t))}catch(n){}}return null}function W(e){var t=e.type;switch(e.tag){case 24:return "Cache";case 9:return (t.displayName||"Context")+".Consumer";case 10:return (t._context.displayName||"Context")+".Provider";case 18:return "DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return "Fragment";case 5:return t;case 4:return "Portal";case 3:return "Root";case 6:return "Text";case 16:return H(t);case 8:return t===T?"StrictMode":"Mode";case 22:return "Offscreen";case 12:return "Profiler";case 21:return "Scope";case 13:return "Suspense";case 19:return "SuspenseList";case 25:return "TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function K(e){switch(typeof e){case "boolean":case "number":case "string":case "undefined":case "object":return e;default:return ""}}function V(e){var t=e.type;return (e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function G(e){e._valueTracker||(e._valueTracker=function(e){var t=V(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:true,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e);}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e;},stopTracking:function(){e._valueTracker=null,delete e[t];}}}}(e));}function Q(e){if(!e)return  false;var t=e._valueTracker;if(!t)return  true;var n=t.getValue(),r="";return e&&(r=V(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),true)}function Z(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function J(e,t){var n=t.checked;return z({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function $(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=K(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value};}function X(e,t){null!=(t=t.checked)&&y(e,"checked",t,false);}function Y(e,t){X(e,t);var n=K(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?te(e,t.type,n):t.hasOwnProperty("defaultValue")&&te(e,t.type,K(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked);}function ee(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t;}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n);}function te(e,t,n){"number"===t&&Z(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n));}var ne=Array.isArray;function re(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=true;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=true);}else {for(n=""+K(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=true,void(r&&(e[o].defaultSelected=true));null!==t||e[o].disabled||(t=e[o]);}null!==t&&(t.selected=true);}}function oe(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(n(91));return z({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var r=t.value;if(null==r){if(r=t.children,t=t.defaultValue,null!=r){if(null!=t)throw Error(n(92));if(ne(r)){if(1<r.length)throw Error(n(93));r=r[0];}t=r;}null==t&&(t=""),r=t;}e._wrapperState={initialValue:K(r)};}function ie(e,t){var n=K(t.value),r=K(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r);}function se(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t);}function le(e){switch(e){case "svg":return "http://www.w3.org/2000/svg";case "math":return "http://www.w3.org/1998/Math/MathML";default:return "http://www.w3.org/1999/xhtml"}}function ce(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?le(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var de,ue,he=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else {for((de=de||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=de.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild);}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction(function(){return ue(e,t)});}:ue);function ge(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t;}var pe={animationIterationCount:true,aspectRatio:true,borderImageOutset:true,borderImageSlice:true,borderImageWidth:true,boxFlex:true,boxFlexGroup:true,boxOrdinalGroup:true,columnCount:true,columns:true,flex:true,flexGrow:true,flexPositive:true,flexShrink:true,flexNegative:true,flexOrder:true,gridArea:true,gridRow:true,gridRowEnd:true,gridRowSpan:true,gridRowStart:true,gridColumn:true,gridColumnEnd:true,gridColumnSpan:true,gridColumnStart:true,fontWeight:true,lineClamp:true,lineHeight:true,opacity:true,order:true,orphans:true,tabSize:true,widows:true,zIndex:true,zoom:true,fillOpacity:true,floodOpacity:true,stopOpacity:true,strokeDasharray:true,strokeDashoffset:true,strokeMiterlimit:true,strokeOpacity:true,strokeWidth:true},me=["Webkit","ms","Moz","O"];function fe(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||pe.hasOwnProperty(e)&&pe[e]?(""+t).trim():t+"px"}function be(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=fe(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o;}}Object.keys(pe).forEach(function(e){me.forEach(function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),pe[t]=pe[e];});});var ye=z({menuitem:true},{area:true,base:true,br:true,col:true,embed:true,hr:true,img:true,input:true,keygen:true,link:true,meta:true,param:true,source:true,track:true,wbr:true});function ve(e,t){if(t){if(ye[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(n(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(n(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(n(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(n(62))}}function xe(e,t){if(-1===e.indexOf("-"))return "string"==typeof t.is;switch(e){case "annotation-xml":case "color-profile":case "font-face":case "font-face-src":case "font-face-uri":case "font-face-format":case "font-face-name":case "missing-glyph":return  false;default:return  true}}var Se=null;function we(e){return (e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var ke=null,Ce=null,Te=null;function De(e){if(e=So(e)){if("function"!=typeof ke)throw Error(n(280));var t=e.stateNode;t&&(t=ko(t),ke(e.stateNode,e.type,t));}}function Ee(e){Ce?Te?Te.push(e):Te=[e]:Ce=e;}function Ae(){if(Ce){var e=Ce,t=Te;if(Te=Ce=null,De(e),t)for(e=0;e<t.length;e++)De(t[e]);}}function _e(e,t){return e(t)}function Le(){}var Pe=false;function Ne(e,t,n){if(Pe)return e(t,n);Pe=true;try{return _e(e,t,n)}finally{Pe=false,(null!==Ce||null!==Te)&&(Le(),Ae());}}function Me(e,t){var r=e.stateNode;if(null===r)return null;var o=ko(r);if(null===o)return null;r=o[t];e:switch(t){case "onClick":case "onClickCapture":case "onDoubleClick":case "onDoubleClickCapture":case "onMouseDown":case "onMouseDownCapture":case "onMouseMove":case "onMouseMoveCapture":case "onMouseUp":case "onMouseUpCapture":case "onMouseEnter":(o=!o.disabled)||(o=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!o;break e;default:e=false;}if(e)return null;if(r&&"function"!=typeof r)throw Error(n(231,t,typeof r));return r}var Ie=false;if(s)try{var je={};Object.defineProperty(je,"passive",{get:function(){Ie=!0;}}),window.addEventListener("test",je,je),window.removeEventListener("test",je,je);}catch(ue){Ie=false;}function Re(e,t,n,r,o,a,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c);}catch(d){this.onError(d);}}var Fe=false,ze=null,Oe=false,Be=null,qe={onError:function(e){Fe=true,ze=e;}};function Ue(e,t,n,r,o,a,i,s,l){Fe=false,ze=null,Re.apply(qe,arguments);}function He(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else {e=t;do{!!(4098&(t=e).flags)&&(n=t.return),e=t.return;}while(e)}return 3===t.tag?n:null}function We(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function Ke(e){if(He(e)!==e)throw Error(n(188))}function Ve(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=He(e)))throw Error(n(188));return t!==e?null:e}for(var r=e,o=t;;){var a=r.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(o=a.return)){r=o;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===r)return Ke(a),e;if(i===o)return Ke(a),t;i=i.sibling;}throw Error(n(188))}if(r.return!==o.return)r=a,o=i;else {for(var s=false,l=a.child;l;){if(l===r){s=true,r=a,o=i;break}if(l===o){s=true,o=a,r=i;break}l=l.sibling;}if(!s){for(l=i.child;l;){if(l===r){s=true,r=i,o=a;break}if(l===o){s=true,o=i,r=a;break}l=l.sibling;}if(!s)throw Error(n(189))}}if(r.alternate!==o)throw Error(n(190))}if(3!==r.tag)throw Error(n(188));return r.stateNode.current===r?e:t}(e))?Ge(e):null}function Ge(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ge(e);if(null!==t)return t;e=e.sibling;}return null}var Qe=t.unstable_scheduleCallback,Ze=t.unstable_cancelCallback,Je=t.unstable_shouldYield,$e=t.unstable_requestPaint,Xe=t.unstable_now,Ye=t.unstable_getCurrentPriorityLevel,et=t.unstable_ImmediatePriority,tt=t.unstable_UserBlockingPriority,nt=t.unstable_NormalPriority,rt=t.unstable_LowPriority,ot=t.unstable_IdlePriority,at=null,it=null;var st=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(lt(e)/ct|0)|0},lt=Math.log,ct=Math.LN2;var dt=64,ut=4194304;function ht(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function gt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,i=268435455&n;if(0!==i){var s=i&~o;0!==s?r=ht(s):0!==(a&=i)&&(r=ht(a));}else 0!==(i=n&~o)?r=ht(i):0!==a&&(r=ht(a));if(0===r)return 0;if(0!==t&&t!==r&&0===(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&4194240&a))return t;if(4&r&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-st(t)),r|=e[n],t&=~o;return r}function pt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return  -1}}function mt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ft(){var e=dt;return !(4194240&(dt<<=1))&&(dt=64),e}function bt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function yt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-st(t)]=n;}function vt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-st(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o;}}var xt=0;function St(e){return 1<(e&=-e)?4<e?268435455&e?16:536870912:4:1}var wt,kt,Ct,Tt,Dt,Et=false,At=[],_t=null,Lt=null,Pt=null,Nt=new Map,Mt=new Map,It=[],jt="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Rt(e,t){switch(e){case "focusin":case "focusout":_t=null;break;case "dragenter":case "dragleave":Lt=null;break;case "mouseover":case "mouseout":Pt=null;break;case "pointerover":case "pointerout":Nt.delete(t.pointerId);break;case "gotpointercapture":case "lostpointercapture":Mt.delete(t.pointerId);}}function Ft(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==t&&(null!==(t=So(t))&&kt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function zt(e){var t=xo(e.target);if(null!==t){var n=He(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=We(n)))return e.blockedOn=t,void Dt(e.priority,function(){Ct(n);})}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null;}function Ot(e){if(null!==e.blockedOn)return  false;for(var t=e.targetContainers;0<t.length;){var n=Jt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=So(n))&&kt(t),e.blockedOn=n,false;var r=new(n=e.nativeEvent).constructor(n.type,n);Se=r,n.target.dispatchEvent(r),Se=null,t.shift();}return  true}function Bt(e,t,n){Ot(e)&&n.delete(t);}function qt(){Et=false,null!==_t&&Ot(_t)&&(_t=null),null!==Lt&&Ot(Lt)&&(Lt=null),null!==Pt&&Ot(Pt)&&(Pt=null),Nt.forEach(Bt),Mt.forEach(Bt);}function Ut(e,n){e.blockedOn===n&&(e.blockedOn=null,Et||(Et=true,t.unstable_scheduleCallback(t.unstable_NormalPriority,qt)));}function Ht(e){function t(t){return Ut(t,e)}if(0<At.length){Ut(At[0],e);for(var n=1;n<At.length;n++){var r=At[n];r.blockedOn===e&&(r.blockedOn=null);}}for(null!==_t&&Ut(_t,e),null!==Lt&&Ut(Lt,e),null!==Pt&&Ut(Pt,e),Nt.forEach(t),Mt.forEach(t),n=0;n<It.length;n++)(r=It[n]).blockedOn===e&&(r.blockedOn=null);for(;0<It.length&&null===(n=It[0]).blockedOn;)zt(n),null===n.blockedOn&&It.shift();}var Wt=v.ReactCurrentBatchConfig,Kt=true;function Vt(e,t,n,r){var o=xt,a=Wt.transition;Wt.transition=null;try{xt=1,Qt(e,t,n,r);}finally{xt=o,Wt.transition=a;}}function Gt(e,t,n,r){var o=xt,a=Wt.transition;Wt.transition=null;try{xt=4,Qt(e,t,n,r);}finally{xt=o,Wt.transition=a;}}function Qt(e,t,n,r){if(Kt){var o=Jt(e,t,n,r);if(null===o)Kr(e,t,r,Zt,n),Rt(e,r);else if(function(e,t,n,r,o){switch(t){case "focusin":return _t=Ft(_t,e,t,n,r,o),true;case "dragenter":return Lt=Ft(Lt,e,t,n,r,o),true;case "mouseover":return Pt=Ft(Pt,e,t,n,r,o),true;case "pointerover":var a=o.pointerId;return Nt.set(a,Ft(Nt.get(a)||null,e,t,n,r,o)),true;case "gotpointercapture":return a=o.pointerId,Mt.set(a,Ft(Mt.get(a)||null,e,t,n,r,o)),true}return  false}(o,e,t,n,r))r.stopPropagation();else if(Rt(e,r),4&t&&-1<jt.indexOf(e)){for(;null!==o;){var a=So(o);if(null!==a&&wt(a),null===(a=Jt(e,t,n,r))&&Kr(e,t,r,Zt,n),a===o)break;o=a;}null!==o&&r.stopPropagation();}else Kr(e,t,r,null,n);}}var Zt=null;function Jt(e,t,n,r){if(Zt=null,null!==(e=xo(e=we(r))))if(null===(t=He(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=We(t)))return e;e=null;}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null;}else t!==e&&(e=null);return Zt=e,null}function $t(e){switch(e){case "cancel":case "click":case "close":case "contextmenu":case "copy":case "cut":case "auxclick":case "dblclick":case "dragend":case "dragstart":case "drop":case "focusin":case "focusout":case "input":case "invalid":case "keydown":case "keypress":case "keyup":case "mousedown":case "mouseup":case "paste":case "pause":case "play":case "pointercancel":case "pointerdown":case "pointerup":case "ratechange":case "reset":case "resize":case "seeked":case "submit":case "touchcancel":case "touchend":case "touchstart":case "volumechange":case "change":case "selectionchange":case "textInput":case "compositionstart":case "compositionend":case "compositionupdate":case "beforeblur":case "afterblur":case "beforeinput":case "blur":case "fullscreenchange":case "focus":case "hashchange":case "popstate":case "select":case "selectstart":return 1;case "drag":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "mousemove":case "mouseout":case "mouseover":case "pointermove":case "pointerout":case "pointerover":case "scroll":case "toggle":case "touchmove":case "wheel":case "mouseenter":case "mouseleave":case "pointerenter":case "pointerleave":return 4;case "message":switch(Ye()){case et:return 1;case tt:return 4;case nt:case rt:return 16;case ot:return 536870912;default:return 16}default:return 16}}var Xt=null,Yt=null,en=null;function tn(){if(en)return en;var e,t,n=Yt,r=n.length,o="value"in Xt?Xt.value:Xt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return en=o.slice(e,1<t?1-t:void 0)}function nn(e){var t=e.keyCode;return "charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function rn(){return  true}function on(){return  false}function an(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:false===o.returnValue)?rn:on,this.isPropagationStopped=on,this}return z(t.prototype,{preventDefault:function(){this.defaultPrevented=true;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=false),this.isDefaultPrevented=rn);},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=true),this.isPropagationStopped=rn);},persist:function(){},isPersistent:rn}),t}var sn,ln,cn,dn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=an(dn),hn=z({},dn,{view:0,detail:0}),gn=an(hn),pn=z({},hn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Dn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return "movementX"in e?e.movementX:(e!==cn&&(cn&&"mousemove"===e.type?(sn=e.screenX-cn.screenX,ln=e.screenY-cn.screenY):ln=sn=0,cn=e),sn)},movementY:function(e){return "movementY"in e?e.movementY:ln}}),mn=an(pn),fn=an(z({},pn,{dataTransfer:0})),bn=an(z({},hn,{relatedTarget:0})),yn=an(z({},dn,{animationName:0,elapsedTime:0,pseudoElement:0})),vn=z({},dn,{clipboardData:function(e){return "clipboardData"in e?e.clipboardData:window.clipboardData}}),xn=an(vn),Sn=an(z({},dn,{data:0})),wn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},kn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Cn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Tn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Cn[e])&&!!t[e]}function Dn(){return Tn}var En=z({},hn,{key:function(e){if(e.key){var t=wn[e.key]||e.key;if("Unidentified"!==t)return t}return "keypress"===e.type?13===(e=nn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?kn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Dn,charCode:function(e){return "keypress"===e.type?nn(e):0},keyCode:function(e){return "keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return "keypress"===e.type?nn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),An=an(En),_n=an(z({},pn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Ln=an(z({},hn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Dn})),Pn=an(z({},dn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Nn=z({},pn,{deltaX:function(e){return "deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return "deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Mn=an(Nn),In=[9,13,27,32],jn=s&&"CompositionEvent"in window,Rn=null;s&&"documentMode"in document&&(Rn=document.documentMode);var Fn=s&&"TextEvent"in window&&!Rn,zn=s&&(!jn||Rn&&8<Rn&&11>=Rn),On=String.fromCharCode(32),Bn=false;function qn(e,t){switch(e){case "keyup":return  -1!==In.indexOf(t.keyCode);case "keydown":return 229!==t.keyCode;case "keypress":case "mousedown":case "focusout":return  true;default:return  false}}function Un(e){return "object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Hn=false;var Wn={color:true,date:true,datetime:true,"datetime-local":true,email:true,month:true,number:true,password:true,range:true,search:true,tel:true,text:true,time:true,url:true,week:true};function Kn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return "input"===t?!!Wn[e.type]:"textarea"===t}function Vn(e,t,n,r){Ee(r),0<(t=Gr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}));}var Gn=null,Qn=null;function Zn(e){Or(e,0);}function Jn(e){if(Q(wo(e)))return e}function $n(e,t){if("change"===e)return t}var Xn=false;if(s){var Yn;if(s){var er="oninput"in document;if(!er){var tr=document.createElement("div");tr.setAttribute("oninput","return;"),er="function"==typeof tr.oninput;}Yn=er;}else Yn=false;Xn=Yn&&(!document.documentMode||9<document.documentMode);}function nr(){Gn&&(Gn.detachEvent("onpropertychange",rr),Qn=Gn=null);}function rr(e){if("value"===e.propertyName&&Jn(Qn)){var t=[];Vn(t,Qn,e,we(e)),Ne(Zn,t);}}function or(e,t,n){"focusin"===e?(nr(),Qn=n,(Gn=t).attachEvent("onpropertychange",rr)):"focusout"===e&&nr();}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Jn(Qn)}function ir(e,t){if("click"===e)return Jn(t)}function sr(e,t){if("input"===e||"change"===e)return Jn(t)}var lr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function cr(e,t){if(lr(e,t))return  true;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return  false;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return  false;for(r=0;r<n.length;r++){var o=n[r];if(!l.call(t,o)||!lr(e[o],t[o]))return  false}return  true}function dr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=dr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return {node:r,offset:t-e};e=n;}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode;}r=void 0;}r=dr(r);}}function hr(e,t){return !(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?hr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function gr(){for(var e=window,t=Z();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href;}catch(r){n=false;}if(!n)break;t=Z((e=t.contentWindow).document);}return t}function pr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=gr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&hr(n.ownerDocument.documentElement,n)){if(null!==r&&pr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=ur(n,a);var i=ur(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)));}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top;}}var fr=s&&"documentMode"in document&&11>=document.documentMode,br=null,yr=null,vr=null,xr=false;function Sr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;xr||null==br||br!==Z(r)||("selectionStart"in(r=br)&&pr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},vr&&cr(vr,r)||(vr=r,0<(r=Gr(yr,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=br)));}function wr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var kr={animationend:wr("Animation","AnimationEnd"),animationiteration:wr("Animation","AnimationIteration"),animationstart:wr("Animation","AnimationStart"),transitionend:wr("Transition","TransitionEnd")},Cr={},Tr={};function Dr(e){if(Cr[e])return Cr[e];if(!kr[e])return e;var t,n=kr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Tr)return Cr[e]=n[t];return e}s&&(Tr=document.createElement("div").style,"AnimationEvent"in window||(delete kr.animationend.animation,delete kr.animationiteration.animation,delete kr.animationstart.animation),"TransitionEvent"in window||delete kr.transitionend.transition);var Er=Dr("animationend"),Ar=Dr("animationiteration"),_r=Dr("animationstart"),Lr=Dr("transitionend"),Pr=new Map,Nr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Mr(e,t){Pr.set(e,t),a(t,[e]);}for(var Ir=0;Ir<Nr.length;Ir++){var jr=Nr[Ir];Mr(jr.toLowerCase(),"on"+(jr[0].toUpperCase()+jr.slice(1)));}Mr(Er,"onAnimationEnd"),Mr(Ar,"onAnimationIteration"),Mr(_r,"onAnimationStart"),Mr("dblclick","onDoubleClick"),Mr("focusin","onFocus"),Mr("focusout","onBlur"),Mr(Lr,"onTransitionEnd"),i("onMouseEnter",["mouseout","mouseover"]),i("onMouseLeave",["mouseout","mouseover"]),i("onPointerEnter",["pointerout","pointerover"]),i("onPointerLeave",["pointerout","pointerover"]),a("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),a("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),a("onBeforeInput",["compositionend","keypress","textInput","paste"]),a("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),a("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),a("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Rr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Fr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Rr));function zr(e,t,r){var o=e.type||"unknown-event";e.currentTarget=r,function(e,t,r,o,a,i,s,l,c){if(Ue.apply(this,arguments),Fe){if(!Fe)throw Error(n(198));var d=ze;Fe=false,ze=null,Oe||(Oe=true,Be=d);}}(o,t,void 0,e),e.currentTarget=null;}function Or(e,t){t=!!(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==a&&o.isPropagationStopped())break e;zr(o,s,c),a=l;}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==a&&o.isPropagationStopped())break e;zr(o,s,c),a=l;}}}if(Oe)throw e=Be,Oe=false,Be=null,e}function Br(e,t){var n=t[bo];void 0===n&&(n=t[bo]=new Set);var r=e+"__bubble";n.has(r)||(Wr(t,e,2,false),n.add(r));}function qr(e,t,n){var r=0;t&&(r|=4),Wr(n,e,r,t);}var Ur="_reactListening"+Math.random().toString(36).slice(2);function Hr(e){if(!e[Ur]){e[Ur]=true,r.forEach(function(t){"selectionchange"!==t&&(Fr.has(t)||qr(t,false,e),qr(t,true,e));});var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Ur]||(t[Ur]=true,qr("selectionchange",false,t));}}function Wr(e,t,n,r){switch($t(t)){case 1:var o=Vt;break;case 4:o=Gt;break;default:o=Qt;}n=o.bind(null,t,n,e),o=void 0,!Ie||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=true),r?void 0!==o?e.addEventListener(t,n,{capture:true,passive:o}):e.addEventListener(t,n,true):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,false);}function Kr(e,t,n,r,o){var a=r;if(!(1&t||2&t||null===r))e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===o||8===s.nodeType&&s.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===o||8===l.nodeType&&l.parentNode===o))return;i=i.return;}for(;null!==s;){if(null===(i=xo(s)))return;if(5===(l=i.tag)||6===l){r=a=i;continue e}s=s.parentNode;}}r=r.return;}Ne(function(){var r=a,o=we(n),i=[];e:{var s=Pr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case "keypress":if(0===nn(n))break e;case "keydown":case "keyup":l=An;break;case "focusin":c="focus",l=bn;break;case "focusout":c="blur",l=bn;break;case "beforeblur":case "afterblur":l=bn;break;case "click":if(2===n.button)break e;case "auxclick":case "dblclick":case "mousedown":case "mousemove":case "mouseup":case "mouseout":case "mouseover":case "contextmenu":l=mn;break;case "drag":case "dragend":case "dragenter":case "dragexit":case "dragleave":case "dragover":case "dragstart":case "drop":l=fn;break;case "touchcancel":case "touchend":case "touchmove":case "touchstart":l=Ln;break;case Er:case Ar:case _r:l=yn;break;case Lr:l=Pn;break;case "scroll":l=gn;break;case "wheel":l=Mn;break;case "copy":case "cut":case "paste":l=xn;break;case "gotpointercapture":case "lostpointercapture":case "pointercancel":case "pointerdown":case "pointermove":case "pointerout":case "pointerover":case "pointerup":l=_n;}var d=!!(4&t),u=!d&&"scroll"===e,h=d?null!==s?s+"Capture":null:s;d=[];for(var g,p=r;null!==p;){var m=(g=p).stateNode;if(5===g.tag&&null!==m&&(g=m,null!==h&&(null!=(m=Me(p,h))&&d.push(Vr(p,m,g)))),u)break;p=p.return;}0<d.length&&(s=new l(s,c,null,n,o),i.push({event:s,listeners:d}));}}if(!(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===Se||!(c=n.relatedTarget||n.fromElement)||!xo(c)&&!c[fo])&&(l||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?xo(c):null)&&(c!==(u=He(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(d=mn,m="onMouseLeave",h="onMouseEnter",p="mouse","pointerout"!==e&&"pointerover"!==e||(d=_n,m="onPointerLeave",h="onPointerEnter",p="pointer"),u=null==l?s:wo(l),g=null==c?s:wo(c),(s=new d(m,p+"leave",l,n,o)).target=u,s.relatedTarget=g,m=null,xo(o)===r&&((d=new d(h,p+"enter",c,n,o)).target=g,d.relatedTarget=u,m=d),u=m,l&&c)e:{for(h=c,p=0,g=d=l;g;g=Qr(g))p++;for(g=0,m=h;m;m=Qr(m))g++;for(;0<p-g;)d=Qr(d),p--;for(;0<g-p;)h=Qr(h),g--;for(;p--;){if(d===h||null!==h&&d===h.alternate)break e;d=Qr(d),h=Qr(h);}d=null;}else d=null;null!==l&&Zr(i,s,l,d,false),null!==c&&null!==u&&Zr(i,u,c,d,true);}if("select"===(l=(s=r?wo(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var f=$n;else if(Kn(s))if(Xn)f=sr;else {f=ar;var b=or;}else (l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(f=ir);switch(f&&(f=f(e,r))?Vn(i,f,n,o):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&te(s,"number",s.value)),b=r?wo(r):window,e){case "focusin":(Kn(b)||"true"===b.contentEditable)&&(br=b,yr=r,vr=null);break;case "focusout":vr=yr=br=null;break;case "mousedown":xr=true;break;case "contextmenu":case "mouseup":case "dragend":xr=false,Sr(i,n,o);break;case "selectionchange":if(fr)break;case "keydown":case "keyup":Sr(i,n,o);}var y;if(jn)e:{switch(e){case "compositionstart":var v="onCompositionStart";break e;case "compositionend":v="onCompositionEnd";break e;case "compositionupdate":v="onCompositionUpdate";break e}v=void 0;}else Hn?qn(e,n)&&(v="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(v="onCompositionStart");v&&(zn&&"ko"!==n.locale&&(Hn||"onCompositionStart"!==v?"onCompositionEnd"===v&&Hn&&(y=tn()):(Yt="value"in(Xt=o)?Xt.value:Xt.textContent,Hn=true)),0<(b=Gr(r,v)).length&&(v=new Sn(v,e,null,n,o),i.push({event:v,listeners:b}),y?v.data=y:null!==(y=Un(n))&&(v.data=y))),(y=Fn?function(e,t){switch(e){case "compositionend":return Un(t);case "keypress":return 32!==t.which?null:(Bn=true,On);case "textInput":return (e=t.data)===On&&Bn?null:e;default:return null}}(e,n):function(e,t){if(Hn)return "compositionend"===e||!jn&&qn(e,t)?(e=tn(),en=Yt=Xt=null,Hn=false,e):null;switch(e){case "paste":default:return null;case "keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case "compositionend":return zn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Gr(r,"onBeforeInput")).length&&(o=new Sn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=y));}Or(i,t);});}function Vr(e,t,n){return {instance:e,listener:t,currentTarget:n}}function Gr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Me(e,n))&&r.unshift(Vr(e,a,o)),null!=(a=Me(e,t))&&r.push(Vr(e,a,o))),e=e.return;}return r}function Qr(e){if(null===e)return null;do{e=e.return;}while(e&&5!==e.tag);return e||null}function Zr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,o?null!=(l=Me(n,a))&&i.unshift(Vr(n,l,s)):o||null!=(l=Me(n,a))&&i.push(Vr(n,l,s))),n=n.return;}0!==i.length&&e.push({event:t,listeners:i});}var Jr=/\r\n?/g,$r=/\u0000|\uFFFD/g;function Xr(e){return ("string"==typeof e?e:""+e).replace(Jr,"\n").replace($r,"")}function Yr(e,t,r){if(t=Xr(t),Xr(e)!==t&&r)throw Error(n(425))}function eo(){}var to=null,no=null;function ro(e,t){return "textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var oo="function"==typeof setTimeout?setTimeout:void 0,ao="function"==typeof clearTimeout?clearTimeout:void 0,io="function"==typeof Promise?Promise:void 0,so="function"==typeof queueMicrotask?queueMicrotask:void 0!==io?function(e){return io.resolve(null).then(e).catch(lo)}:oo;function lo(e){setTimeout(function(){throw e});}function co(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0===r)return e.removeChild(o),void Ht(t);r--;}else "$"!==n&&"$?"!==n&&"$!"!==n||r++;n=o;}while(n);Ht(t);}function uo(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ho(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--;}else "/$"===n&&t++;}e=e.previousSibling;}return null}var go=Math.random().toString(36).slice(2),po="__reactFiber$"+go,mo="__reactProps$"+go,fo="__reactContainer$"+go,bo="__reactEvents$"+go,yo="__reactListeners$"+go,vo="__reactHandles$"+go;function xo(e){var t=e[po];if(t)return t;for(var n=e.parentNode;n;){if(t=n[fo]||n[po]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ho(e);null!==e;){if(n=e[po])return n;e=ho(e);}return t}n=(e=n).parentNode;}return null}function So(e){return !(e=e[po]||e[fo])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wo(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(n(33))}function ko(e){return e[mo]||null}var Co=[],To=-1;function Do(e){return {current:e}}function Eo(e){0>To||(e.current=Co[To],Co[To]=null,To--);}function Ao(e,t){To++,Co[To]=e.current,e.current=t;}var _o={},Lo=Do(_o),Po=Do(false),No=_o;function Mo(e,t){var n=e.type.contextTypes;if(!n)return _o;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Io(e){return null!=(e=e.childContextTypes)}function jo(){Eo(Po),Eo(Lo);}function Ro(e,t,r){if(Lo.current!==_o)throw Error(n(168));Ao(Lo,t),Ao(Po,r);}function Fo(e,t,r){var o=e.stateNode;if(t=t.childContextTypes,"function"!=typeof o.getChildContext)return r;for(var a in o=o.getChildContext())if(!(a in t))throw Error(n(108,W(e)||"Unknown",a));return z({},r,o)}function zo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||_o,No=Lo.current,Ao(Lo,e),Ao(Po,Po.current),true}function Oo(e,t,r){var o=e.stateNode;if(!o)throw Error(n(169));r?(e=Fo(e,t,No),o.__reactInternalMemoizedMergedChildContext=e,Eo(Po),Eo(Lo),Ao(Lo,e)):Eo(Po),Ao(Po,r);}var Bo=null,qo=false,Uo=false;function Ho(e){null===Bo?Bo=[e]:Bo.push(e);}function Wo(){if(!Uo&&null!==Bo){Uo=true;var e=0,t=xt;try{var n=Bo;for(xt=1;e<n.length;e++){var r=n[e];do{r=r(!0);}while(null!==r)}Bo=null,qo=!1;}catch(o){throw null!==Bo&&(Bo=Bo.slice(e+1)),Qe(et,Wo),o}finally{xt=t,Uo=false;}}return null}var Ko=[],Vo=0,Go=null,Qo=0,Zo=[],Jo=0,$o=null,Xo=1,Yo="";function ea(e,t){Ko[Vo++]=Qo,Ko[Vo++]=Go,Go=e,Qo=t;}function ta(e,t,n){Zo[Jo++]=Xo,Zo[Jo++]=Yo,Zo[Jo++]=$o,$o=e;var r=Xo;e=Yo;var o=32-st(r)-1;r&=~(1<<o),n+=1;var a=32-st(t)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,Xo=1<<32-st(t)+o|n<<o|r,Yo=a+e;}else Xo=1<<a|n<<o|r,Yo=e;}function na(e){null!==e.return&&(ea(e,1),ta(e,1,0));}function ra(e){for(;e===Go;)Go=Ko[--Vo],Ko[Vo]=null,Qo=Ko[--Vo],Ko[Vo]=null;for(;e===$o;)$o=Zo[--Jo],Zo[Jo]=null,Yo=Zo[--Jo],Zo[Jo]=null,Xo=Zo[--Jo],Zo[Jo]=null;}var oa=null,aa=null,ia=false,sa=null;function la(e,t){var n=Nc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n);}function ca(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,oa=e,aa=uo(t.firstChild),true);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,oa=e,aa=null,true);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==$o?{id:Xo,overflow:Yo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Nc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,oa=e,aa=null,true);default:return  false}}function da(e){return !(!(1&e.mode)||128&e.flags)}function ua(e){if(ia){var t=aa;if(t){var r=t;if(!ca(e,t)){if(da(e))throw Error(n(418));t=uo(r.nextSibling);var o=oa;t&&ca(e,t)?la(o,r):(e.flags=-4097&e.flags|2,ia=false,oa=e);}}else {if(da(e))throw Error(n(418));e.flags=-4097&e.flags|2,ia=false,oa=e;}}}function ha(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;oa=e;}function ga(e){if(e!==oa)return  false;if(!ia)return ha(e),ia=true,false;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!ro(e.type,e.memoizedProps)),t&&(t=aa)){if(da(e))throw pa(),Error(n(418));for(;t;)la(e,t),t=uo(t.nextSibling);}if(ha(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(n(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var r=e.data;if("/$"===r){if(0===t){aa=uo(e.nextSibling);break e}t--;}else "$"!==r&&"$!"!==r&&"$?"!==r||t++;}e=e.nextSibling;}aa=null;}}else aa=oa?uo(e.stateNode.nextSibling):null;return  true}function pa(){for(var e=aa;e;)e=uo(e.nextSibling);}function ma(){aa=oa=null,ia=false;}function fa(e){null===sa?sa=[e]:sa.push(e);}var ba=v.ReactCurrentBatchConfig;function ya(e,t,r){if(null!==(e=r.ref)&&"function"!=typeof e&&"object"!=typeof e){if(r._owner){if(r=r._owner){if(1!==r.tag)throw Error(n(309));var o=r.stateNode;}if(!o)throw Error(n(147,e));var a=o,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:((t=function(e){var t=a.refs;null===e?delete t[i]:t[i]=e;})._stringRef=i,t)}if("string"!=typeof e)throw Error(n(284));if(!r._owner)throw Error(n(290,e))}return e}function va(e,t){throw e=Object.prototype.toString.call(t),Error(n(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function xa(e){return (0, e._init)(e._payload)}function Sa(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n);}}function r(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function o(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return (e=Ic(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=zc(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,r){var o=n.type;return o===C?u(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===M&&xa(o)===t.type)?((r=a(t,n.props)).ref=ya(e,t,n),r.return=e,r):((r=jc(n.type,n.key,n.props,null,e.mode,r)).ref=ya(e,t,n),r.return=e,r)}function d(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Oc(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function u(e,t,n,r,o){return null===t||7!==t.tag?((t=Rc(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function h(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return (t=zc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case S:return (n=jc(t.type,t.key,t.props,null,e.mode,n)).ref=ya(e,null,t),n.return=e,n;case w:return (t=Oc(t,e.mode,n)).return=e,t;case M:return h(e,(0, t._init)(t._payload),n)}if(ne(t)||R(t))return (t=Rc(t,e.mode,n,null)).return=e,t;va(e,t);}return null}function g(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==o?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case S:return n.key===o?c(e,t,n,r):null;case w:return n.key===o?d(e,t,n,r):null;case M:return g(e,t,(o=n._init)(n._payload),r)}if(ne(n)||R(n))return null!==o?null:u(e,t,n,r,null);va(e,n);}return null}function p(e,t,n,r,o){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case S:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case w:return d(t,e=e.get(null===r.key?n:r.key)||null,r,o);case M:return p(e,t,n,(0, r._init)(r._payload),o)}if(ne(r)||R(r))return u(t,e=e.get(n)||null,r,o,null);va(t,r);}return null}return function l(c,d,u,m){if("object"==typeof u&&null!==u&&u.type===C&&null===u.key&&(u=u.props.children),"object"==typeof u&&null!==u){switch(u.$$typeof){case S:e:{for(var f=u.key,b=d;null!==b;){if(b.key===f){if((f=u.type)===C){if(7===b.tag){r(c,b.sibling),(d=a(b,u.props.children)).return=c,c=d;break e}}else if(b.elementType===f||"object"==typeof f&&null!==f&&f.$$typeof===M&&xa(f)===b.type){r(c,b.sibling),(d=a(b,u.props)).ref=ya(c,b,u),d.return=c,c=d;break e}r(c,b);break}t(c,b),b=b.sibling;}u.type===C?((d=Rc(u.props.children,c.mode,m,u.key)).return=c,c=d):((m=jc(u.type,u.key,u.props,null,c.mode,m)).ref=ya(c,d,u),m.return=c,c=m);}return s(c);case w:e:{for(b=u.key;null!==d;){if(d.key===b){if(4===d.tag&&d.stateNode.containerInfo===u.containerInfo&&d.stateNode.implementation===u.implementation){r(c,d.sibling),(d=a(d,u.children||[])).return=c,c=d;break e}r(c,d);break}t(c,d),d=d.sibling;}(d=Oc(u,c.mode,m)).return=c,c=d;}return s(c);case M:return l(c,d,(b=u._init)(u._payload),m)}if(ne(u))return function(n,a,s,l){for(var c=null,d=null,u=a,m=a=0,f=null;null!==u&&m<s.length;m++){u.index>m?(f=u,u=null):f=u.sibling;var b=g(n,u,s[m],l);if(null===b){null===u&&(u=f);break}e&&u&&null===b.alternate&&t(n,u),a=i(b,a,m),null===d?c=b:d.sibling=b,d=b,u=f;}if(m===s.length)return r(n,u),ia&&ea(n,m),c;if(null===u){for(;m<s.length;m++)null!==(u=h(n,s[m],l))&&(a=i(u,a,m),null===d?c=u:d.sibling=u,d=u);return ia&&ea(n,m),c}for(u=o(n,u);m<s.length;m++)null!==(f=p(u,n,m,s[m],l))&&(e&&null!==f.alternate&&u.delete(null===f.key?m:f.key),a=i(f,a,m),null===d?c=f:d.sibling=f,d=f);return e&&u.forEach(function(e){return t(n,e)}),ia&&ea(n,m),c}(c,d,u,m);if(R(u))return function(a,s,l,c){var d=R(l);if("function"!=typeof d)throw Error(n(150));if(null==(l=d.call(l)))throw Error(n(151));for(var u=d=null,m=s,f=s=0,b=null,y=l.next();null!==m&&!y.done;f++,y=l.next()){m.index>f?(b=m,m=null):b=m.sibling;var v=g(a,m,y.value,c);if(null===v){null===m&&(m=b);break}e&&m&&null===v.alternate&&t(a,m),s=i(v,s,f),null===u?d=v:u.sibling=v,u=v,m=b;}if(y.done)return r(a,m),ia&&ea(a,f),d;if(null===m){for(;!y.done;f++,y=l.next())null!==(y=h(a,y.value,c))&&(s=i(y,s,f),null===u?d=y:u.sibling=y,u=y);return ia&&ea(a,f),d}for(m=o(a,m);!y.done;f++,y=l.next())null!==(y=p(m,a,f,y.value,c))&&(e&&null!==y.alternate&&m.delete(null===y.key?f:y.key),s=i(y,s,f),null===u?d=y:u.sibling=y,u=y);return e&&m.forEach(function(e){return t(a,e)}),ia&&ea(a,f),d}(c,d,u,m);va(c,u);}return "string"==typeof u&&""!==u||"number"==typeof u?(u=""+u,null!==d&&6===d.tag?(r(c,d.sibling),(d=a(d,u)).return=c,c=d):(r(c,d),(d=zc(u,c.mode,m)).return=c,c=d),s(c)):r(c,d)}}var wa=Sa(true),ka=Sa(false),Ca=Do(null),Ta=null,Da=null,Ea=null;function Aa(){Ea=Da=Ta=null;}function _a(e){var t=Ca.current;Eo(Ca),e._currentValue=t;}function La(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return;}}function Pa(e,t){Ta=e,Ea=Da=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!==(e.lanes&t)&&(xs=true),e.firstContext=null);}function Na(e){var t=e._currentValue;if(Ea!==e)if(e={context:e,memoizedValue:t,next:null},null===Da){if(null===Ta)throw Error(n(308));Da=e,Ta.dependencies={lanes:0,firstContext:e};}else Da=Da.next=e;return t}var Ma=null;function Ia(e){null===Ma?Ma=[e]:Ma.push(e);}function ja(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,Ia(t)):(n.next=o.next,o.next=n),t.interleaved=n,Ra(e,r)}function Ra(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Fa=false;function za(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null};}function Oa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects});}function Ba(e,t){return {eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function qa(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&_l){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Ra(e,n)}return null===(o=r.interleaved)?(t.next=t,Ia(r)):(t.next=o.next,o.next=t),r.interleaved=t,Ra(e,n)}function Ua(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n);}}function Ha(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next;}while(null!==n);null===a?o=a=t:a=a.next=t;}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t;}function Wa(e,t,n,r){var o=e.updateQueue;Fa=false;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?a=c:i.next=c,i=l;var d=e.alternate;null!==d&&((s=(d=d.updateQueue).lastBaseUpdate)!==i&&(null===s?d.firstBaseUpdate=c:s.next=c,d.lastBaseUpdate=l));}if(null!==a){var u=o.baseState;for(i=0,d=c=l=null,s=a;;){var h=s.lane,g=s.eventTime;if((r&h)===h){null!==d&&(d=d.next={eventTime:g,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var p=e,m=s;switch(h=t,g=n,m.tag){case 1:if("function"==typeof(p=m.payload)){u=p.call(g,u,h);break e}u=p;break e;case 3:p.flags=-65537&p.flags|128;case 0:if(null==(h="function"==typeof(p=m.payload)?p.call(g,u,h):p))break e;u=z({},u,h);break e;case 2:Fa=true;}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(h=o.effects)?o.effects=[s]:h.push(s));}else g={eventTime:g,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===d?(c=d=g,l=u):d=d.next=g,i|=h;if(null===(s=s.next)){if(null===(s=o.shared.pending))break;s=(h=s).next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null;}}if(null===d&&(l=u),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=d,null!==(t=o.shared.interleaved)){o=t;do{i|=o.lane,o=o.next;}while(o!==t)}else null===a&&(o.shared.lanes=0);Fl|=i,e.lanes=i,e.memoizedState=u;}}function Ka(e,t,r){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var o=e[t],a=o.callback;if(null!==a){if(o.callback=null,o=r,"function"!=typeof a)throw Error(n(191,a));a.call(o);}}}var Va={},Ga=Do(Va),Qa=Do(Va),Za=Do(Va);function Ja(e){if(e===Va)throw Error(n(174));return e}function $a(e,t){switch(Ao(Za,t),Ao(Qa,e),Ao(Ga,Va),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:ce(null,"");break;default:t=ce(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName);}Eo(Ga),Ao(Ga,t);}function Xa(){Eo(Ga),Eo(Qa),Eo(Za);}function Ya(e){Ja(Za.current);var t=Ja(Ga.current),n=ce(t,e.type);t!==n&&(Ao(Qa,e),Ao(Ga,n));}function ei(e){Qa.current===e&&(Eo(Ga),Eo(Qa));}var ti=Do(0);function ni(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(128&t.flags)return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return;}t.sibling.return=t.return,t=t.sibling;}return null}var ri=[];function oi(){for(var e=0;e<ri.length;e++)ri[e]._workInProgressVersionPrimary=null;ri.length=0;}var ai=v.ReactCurrentDispatcher,ii=v.ReactCurrentBatchConfig,si=0,li=null,ci=null,di=null,ui=false,hi=false,gi=0,pi=0;function mi(){throw Error(n(321))}function fi(e,t){if(null===t)return  false;for(var n=0;n<t.length&&n<e.length;n++)if(!lr(e[n],t[n]))return  false;return  true}function bi(e,t,r,o,a,i){if(si=i,li=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,ai.current=null===e||null===e.memoizedState?es:ts,e=r(o,a),hi){i=0;do{if(hi=false,gi=0,25<=i)throw Error(n(301));i+=1,di=ci=null,t.updateQueue=null,ai.current=ns,e=r(o,a);}while(hi)}if(ai.current=Yi,t=null!==ci&&null!==ci.next,si=0,di=ci=li=null,ui=false,t)throw Error(n(300));return e}function yi(){var e=0!==gi;return gi=0,e}function vi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===di?li.memoizedState=di=e:di=di.next=e,di}function xi(){if(null===ci){var e=li.alternate;e=null!==e?e.memoizedState:null;}else e=ci.next;var t=null===di?li.memoizedState:di.next;if(null!==t)di=t,ci=e;else {if(null===e)throw Error(n(310));e={memoizedState:(ci=e).memoizedState,baseState:ci.baseState,baseQueue:ci.baseQueue,queue:ci.queue,next:null},null===di?li.memoizedState=di=e:di=di.next=e;}return di}function Si(e,t){return "function"==typeof t?t(e):t}function wi(e){var t=xi(),r=t.queue;if(null===r)throw Error(n(311));r.lastRenderedReducer=e;var o=ci,a=o.baseQueue,i=r.pending;if(null!==i){if(null!==a){var s=a.next;a.next=i.next,i.next=s;}o.baseQueue=a=i,r.pending=null;}if(null!==a){i=a.next,o=o.baseState;var l=s=null,c=null,d=i;do{var u=d.lane;if((si&u)===u)null!==c&&(c=c.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),o=d.hasEagerState?d.eagerState:e(o,d.action);else {var h={lane:u,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};null===c?(l=c=h,s=o):c=c.next=h,li.lanes|=u,Fl|=u;}d=d.next;}while(null!==d&&d!==i);null===c?s=o:c.next=l,lr(o,t.memoizedState)||(xs=true),t.memoizedState=o,t.baseState=s,t.baseQueue=c,r.lastRenderedState=o;}if(null!==(e=r.interleaved)){a=e;do{i=a.lane,li.lanes|=i,Fl|=i,a=a.next;}while(a!==e)}else null===a&&(r.lanes=0);return [t.memoizedState,r.dispatch]}function ki(e){var t=xi(),r=t.queue;if(null===r)throw Error(n(311));r.lastRenderedReducer=e;var o=r.dispatch,a=r.pending,i=t.memoizedState;if(null!==a){r.pending=null;var s=a=a.next;do{i=e(i,s.action),s=s.next;}while(s!==a);lr(i,t.memoizedState)||(xs=true),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),r.lastRenderedState=i;}return [i,o]}function Ci(){}function Ti(e,t){var r=li,o=xi(),a=t(),i=!lr(o.memoizedState,a);if(i&&(o.memoizedState=a,xs=true),o=o.queue,Fi(Ai.bind(null,r,o,e),[e]),o.getSnapshot!==t||i||null!==di&&1&di.memoizedState.tag){if(r.flags|=2048,Ni(9,Ei.bind(null,r,o,a,t),void 0,null),null===Ll)throw Error(n(349));30&si||Di(r,t,a);}return a}function Di(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e);}function Ei(e,t,n,r){t.value=n,t.getSnapshot=r,_i(t)&&Li(e);}function Ai(e,t,n){return n(function(){_i(t)&&Li(e);})}function _i(e){var t=e.getSnapshot;e=e.value;try{var n=t();return !lr(e,n)}catch(r){return  true}}function Li(e){var t=Ra(e,1);null!==t&&rc(t,e,1,-1);}function Pi(e){var t=vi();return "function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Si,lastRenderedState:e},t.queue=e,e=e.dispatch=Zi.bind(null,li,e),[t.memoizedState,e]}function Ni(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=li.updateQueue)?(t={lastEffect:null,stores:null},li.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Mi(){return xi().memoizedState}function Ii(e,t,n,r){var o=vi();li.flags|=e,o.memoizedState=Ni(1|t,n,void 0,void 0===r?null:r);}function ji(e,t,n,r){var o=xi();r=void 0===r?null:r;var a=void 0;if(null!==ci){var i=ci.memoizedState;if(a=i.destroy,null!==r&&fi(r,i.deps))return void(o.memoizedState=Ni(t,n,a,r))}li.flags|=e,o.memoizedState=Ni(1|t,n,a,r);}function Ri(e,t){return Ii(8390656,8,e,t)}function Fi(e,t){return ji(2048,8,e,t)}function zi(e,t){return ji(4,2,e,t)}function Oi(e,t){return ji(4,4,e,t)}function Bi(e,t){return "function"==typeof t?(e=e(),t(e),function(){t(null);}):null!=t?(e=e(),t.current=e,function(){t.current=null;}):void 0}function qi(e,t,n){return n=null!=n?n.concat([e]):null,ji(4,4,Bi.bind(null,t,e),n)}function Ui(){}function Hi(e,t){var n=xi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&fi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Wi(e,t){var n=xi();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&fi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Ki(e,t,n){return 21&si?(lr(n,t)||(n=ft(),li.lanes|=n,Fl|=n,e.baseState=true),t):(e.baseState&&(e.baseState=false,xs=true),e.memoizedState=n)}function Vi(e,t){var n=xt;xt=0!==n&&4>n?n:4,e(true);var r=ii.transition;ii.transition={};try{e(!1),t();}finally{xt=n,ii.transition=r;}}function Gi(){return xi().memoizedState}function Qi(e,t,n){var r=nc(e);if(n={lane:r,action:n,hasEagerState:false,eagerState:null,next:null},Ji(e))$i(t,n);else if(null!==(n=ja(e,t,n,r))){rc(n,e,r,tc()),Xi(n,t,r);}}function Zi(e,t,n){var r=nc(e),o={lane:r,action:n,hasEagerState:false,eagerState:null,next:null};if(Ji(e))$i(t,o);else {var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,s=a(i,n);if(o.hasEagerState=!0,o.eagerState=s,lr(s,i)){var l=t.interleaved;return null===l?(o.next=o,Ia(t)):(o.next=l.next,l.next=o),void(t.interleaved=o)}}catch(c){}null!==(n=ja(e,t,o,r))&&(rc(n,e,r,o=tc()),Xi(n,t,r));}}function Ji(e){var t=e.alternate;return e===li||null!==t&&t===li}function $i(e,t){hi=ui=true;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t;}function Xi(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n);}}var Yi={readContext:Na,useCallback:mi,useContext:mi,useEffect:mi,useImperativeHandle:mi,useInsertionEffect:mi,useLayoutEffect:mi,useMemo:mi,useReducer:mi,useRef:mi,useState:mi,useDebugValue:mi,useDeferredValue:mi,useTransition:mi,useMutableSource:mi,useSyncExternalStore:mi,useId:mi,unstable_isNewReconciler:false},es={readContext:Na,useCallback:function(e,t){return vi().memoizedState=[e,void 0===t?null:t],e},useContext:Na,useEffect:Ri,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ii(4194308,4,Bi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ii(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ii(4,2,e,t)},useMemo:function(e,t){var n=vi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=vi();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=Qi.bind(null,li,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},vi().memoizedState=e},useState:Pi,useDebugValue:Ui,useDeferredValue:function(e){return vi().memoizedState=e},useTransition:function(){var e=Pi(false),t=e[0];return e=Vi.bind(null,e[1]),vi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,r){var o=li,a=vi();if(ia){if(void 0===r)throw Error(n(407));r=r();}else {if(r=t(),null===Ll)throw Error(n(349));30&si||Di(o,t,r);}a.memoizedState=r;var i={value:r,getSnapshot:t};return a.queue=i,Ri(Ai.bind(null,o,i,e),[e]),o.flags|=2048,Ni(9,Ei.bind(null,o,i,r,t),void 0,null),r},useId:function(){var e=vi(),t=Ll.identifierPrefix;if(ia){var n=Yo;t=":"+t+"R"+(n=(Xo&~(1<<32-st(Xo)-1)).toString(32)+n),0<(n=gi++)&&(t+="H"+n.toString(32)),t+=":";}else t=":"+t+"r"+(n=pi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:false},ts={readContext:Na,useCallback:Hi,useContext:Na,useEffect:Fi,useImperativeHandle:qi,useInsertionEffect:zi,useLayoutEffect:Oi,useMemo:Wi,useReducer:wi,useRef:Mi,useState:function(){return wi(Si)},useDebugValue:Ui,useDeferredValue:function(e){return Ki(xi(),ci.memoizedState,e)},useTransition:function(){return [wi(Si)[0],xi().memoizedState]},useMutableSource:Ci,useSyncExternalStore:Ti,useId:Gi,unstable_isNewReconciler:false},ns={readContext:Na,useCallback:Hi,useContext:Na,useEffect:Fi,useImperativeHandle:qi,useInsertionEffect:zi,useLayoutEffect:Oi,useMemo:Wi,useReducer:ki,useRef:Mi,useState:function(){return ki(Si)},useDebugValue:Ui,useDeferredValue:function(e){var t=xi();return null===ci?t.memoizedState=e:Ki(t,ci.memoizedState,e)},useTransition:function(){return [ki(Si)[0],xi().memoizedState]},useMutableSource:Ci,useSyncExternalStore:Ti,useId:Gi,unstable_isNewReconciler:false};function rs(e,t){if(e&&e.defaultProps){for(var n in t=z({},t),e=e.defaultProps) void 0===t[n]&&(t[n]=e[n]);return t}return t}function os(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:z({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n);}var as={isMounted:function(e){return !!(e=e._reactInternals)&&He(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=tc(),o=nc(e),a=Ba(r,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=qa(e,a,o))&&(rc(t,e,o,r),Ua(t,e,o));},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=tc(),o=nc(e),a=Ba(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=qa(e,a,o))&&(rc(t,e,o,r),Ua(t,e,o));},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tc(),r=nc(e),o=Ba(n,r);o.tag=2,null!=t&&(o.callback=t),null!==(t=qa(e,o,r))&&(rc(t,e,r,n),Ua(t,e,r));}};function is(e,t,n,r,o,a,i){return "function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!t.prototype||!t.prototype.isPureReactComponent||(!cr(n,r)||!cr(o,a))}function ss(e,t,n){var r=false,o=_o,a=t.contextType;return "object"==typeof a&&null!==a?a=Na(a):(o=Io(t)?No:Lo.current,a=(r=null!=(r=t.contextTypes))?Mo(e,o):_o),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=as,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ls(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&as.enqueueReplaceState(t,t.state,null);}function cs(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},za(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=Na(a):(a=Io(t)?No:Lo.current,o.context=Mo(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(os(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&as.enqueueReplaceState(o,o.state,null),Wa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308);}function ds(e,t){try{var n="",r=t;do{n+=U(r),r=r.return;}while(r);var o=n;}catch(a){o="\nError generating stack: "+a.message+"\n"+a.stack;}return {value:e,source:t,stack:o,digest:null}}function us(e,t,n){return {value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function hs(e,t){try{console.error(t.value);}catch(n){setTimeout(function(){throw n});}}var gs="function"==typeof WeakMap?WeakMap:Map;function ps(e,t,n){(n=Ba(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Kl||(Kl=true,Vl=r),hs(0,t);},n}function ms(e,t,n){(n=Ba(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){hs(0,t);};}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){hs(0,t),"function"!=typeof r&&(null===Gl?Gl=new Set([this]):Gl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""});}),n}function fs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new gs;var o=new Set;r.set(t,o);}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=Dc.bind(null,e,t,n),t.then(e,e));}function bs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return;}while(null!==e);return null}function ys(e,t,n,r,o){return 1&e.mode?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Ba(-1,1)).tag=2,qa(n,t,1))),n.lanes|=1),e)}var vs=v.ReactCurrentOwner,xs=false;function Ss(e,t,n,r){t.child=null===e?ka(t,null,n,r):wa(t,e.child,n,r);}function ws(e,t,n,r,o){n=n.render;var a=t.ref;return Pa(t,o),r=bi(e,t,n,r,a,o),n=yi(),null===e||xs?(ia&&n&&na(t),t.flags|=1,Ss(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Ks(e,t,o))}function ks(e,t,n,r,o){if(null===e){var a=n.type;return "function"!=typeof a||Mc(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=jc(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Cs(e,t,a,r,o))}if(a=e.child,0===(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:cr)(i,r)&&e.ref===t.ref)return Ks(e,t,o)}return t.flags|=1,(e=Ic(a,r)).ref=t.ref,e.return=t,t.child=e}function Cs(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(cr(a,r)&&e.ref===t.ref){if(xs=false,t.pendingProps=r=a,0===(e.lanes&o))return t.lanes=e.lanes,Ks(e,t,o);131072&e.flags&&(xs=true);}}return Es(e,t,n,r,o)}function Ts(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ao(Il,Ml),Ml|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,Ao(Il,Ml),Ml|=r;}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ao(Il,Ml),Ml|=n;else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,Ao(Il,Ml),Ml|=r;return Ss(e,t,o,n),t.child}function Ds(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152);}function Es(e,t,n,r,o){var a=Io(n)?No:Lo.current;return a=Mo(t,a),Pa(t,o),n=bi(e,t,n,r,a,o),r=yi(),null===e||xs?(ia&&r&&na(t),t.flags|=1,Ss(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Ks(e,t,o))}function As(e,t,n,r,o){if(Io(n)){var a=true;zo(t);}else a=false;if(Pa(t,o),null===t.stateNode)Ws(e,t),ss(t,n,r),cs(t,n,r,o),r=true;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=Na(c):c=Mo(t,c=Io(n)?No:Lo.current);var d=n.getDerivedStateFromProps,u="function"==typeof d||"function"==typeof i.getSnapshotBeforeUpdate;u||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&ls(t,i,r,c),Fa=false;var h=t.memoizedState;i.state=h,Wa(t,r,i,o),l=t.memoizedState,s!==r||h!==l||Po.current||Fa?("function"==typeof d&&(os(t,n,d,r),l=t.memoizedState),(s=Fa||is(t,n,s,r,h,l,c))?(u||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=false);}else {i=t.stateNode,Oa(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:rs(t.type,s),i.props=c,u=t.pendingProps,h=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=Na(l):l=Mo(t,l=Io(n)?No:Lo.current);var g=n.getDerivedStateFromProps;(d="function"==typeof g||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==u||h!==l)&&ls(t,i,r,l),Fa=false,h=t.memoizedState,i.state=h,Wa(t,r,i,o);var p=t.memoizedState;s!==u||h!==p||Po.current||Fa?("function"==typeof g&&(os(t,n,g,r),p=t.memoizedState),(c=Fa||is(t,n,c,r,h,p,l)||false)?(d||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,p,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,p,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),i.props=r,i.state=p,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),r=false);}return _s(e,t,n,r,a,o)}function _s(e,t,n,r,o,a){Ds(e,t);var i=!!(128&t.flags);if(!r&&!i)return o&&Oo(t,n,false),Ks(e,t,a);r=t.stateNode,vs.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=wa(t,e.child,null,a),t.child=wa(t,null,s,a)):Ss(e,t,s,a),t.memoizedState=r.state,o&&Oo(t,n,true),t.child}function Ls(e){var t=e.stateNode;t.pendingContext?Ro(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Ro(0,t.context,false),$a(e,t.containerInfo);}function Ps(e,t,n,r,o){return ma(),fa(o),t.flags|=256,Ss(e,t,n,r),t.child}var Ns,Ms,Is,js,Rs={dehydrated:null,treeContext:null,retryLane:0};function Fs(e){return {baseLanes:e,cachePool:null,transitions:null}}function zs(e,t,r){var o,a=t.pendingProps,i=ti.current,s=false,l=!!(128&t.flags);if((o=l)||(o=(null===e||null!==e.memoizedState)&&!!(2&i)),o?(s=true,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ao(ti,1&i),null===e)return ua(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(l=a.children,e=a.fallback,s?(a=t.mode,s=t.child,l={mode:"hidden",children:l},1&a||null===s?s=Fc(l,a,0,null):(s.childLanes=0,s.pendingProps=l),e=Rc(e,a,r,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Fs(r),t.memoizedState=Rs,e):Os(t,l));if(null!==(i=e.memoizedState)&&null!==(o=i.dehydrated))return function(e,t,r,o,a,i,s){if(r)return 256&t.flags?(t.flags&=-257,Bs(e,t,s,o=us(Error(n(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=o.fallback,a=t.mode,o=Fc({mode:"visible",children:o.children},a,0,null),(i=Rc(i,a,s,null)).flags|=2,o.return=t,i.return=t,o.sibling=i,t.child=o,1&t.mode&&wa(t,e.child,null,s),t.child.memoizedState=Fs(s),t.memoizedState=Rs,i);if(!(1&t.mode))return Bs(e,t,s,null);if("$!"===a.data){if(o=a.nextSibling&&a.nextSibling.dataset)var l=o.dgst;return o=l,Bs(e,t,s,o=us(i=Error(n(419)),o,void 0))}if(l=0!==(s&e.childLanes),xs||l){if(null!==(o=Ll)){switch(s&-s){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0;}0!==(a=0!==(a&(o.suspendedLanes|s))?0:a)&&a!==i.retryLane&&(i.retryLane=a,Ra(e,a),rc(o,e,a,-1));}return fc(),Bs(e,t,s,o=us(Error(n(421))))}return "$?"===a.data?(t.flags|=128,t.child=e.child,t=Ac.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,aa=uo(a.nextSibling),oa=t,ia=true,sa=null,null!==e&&(Zo[Jo++]=Xo,Zo[Jo++]=Yo,Zo[Jo++]=$o,Xo=e.id,Yo=e.overflow,$o=t),t=Os(t,o.children),t.flags|=4096,t)}(e,t,l,a,o,i,r);if(s){s=a.fallback,l=t.mode,o=(i=e.child).sibling;var c={mode:"hidden",children:a.children};return 1&l||t.child===i?(a=Ic(i,c)).subtreeFlags=14680064&i.subtreeFlags:((a=t.child).childLanes=0,a.pendingProps=c,t.deletions=null),null!==o?s=Ic(o,s):(s=Rc(s,l,r,null)).flags|=2,s.return=t,a.return=t,a.sibling=s,t.child=a,a=s,s=t.child,l=null===(l=e.child.memoizedState)?Fs(r):{baseLanes:l.baseLanes|r,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~r,t.memoizedState=Rs,a}return e=(s=e.child).sibling,a=Ic(s,{mode:"visible",children:a.children}),!(1&t.mode)&&(a.lanes=r),a.return=t,a.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=a,t.memoizedState=null,a}function Os(e,t){return (t=Fc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Bs(e,t,n,r){return null!==r&&fa(r),wa(t,e.child,null,n),(e=Os(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function qs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),La(e.return,t,n);}function Us(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o);}function Hs(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(Ss(e,t,r.children,n),2&(r=ti.current))r=1&r|2,t.flags|=128;else {if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&qs(e,n,t);else if(19===e.tag)qs(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return;}e.sibling.return=e.return,e=e.sibling;}r&=1;}if(Ao(ti,r),1&t.mode)switch(o){case "forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ni(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Us(t,false,o,n,a);break;case "backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===ni(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e;}Us(t,true,n,null,a);break;case "together":Us(t,false,null,null,void 0);break;default:t.memoizedState=null;}else t.memoizedState=null;return t.child}function Ws(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2);}function Ks(e,t,r){if(null!==e&&(t.dependencies=e.dependencies),Fl|=t.lanes,0===(r&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(n(153));if(null!==t.child){for(r=Ic(e=t.child,e.pendingProps),t.child=r,r.return=t;null!==e.sibling;)e=e.sibling,(r=r.sibling=Ic(e,e.pendingProps)).return=t;r.sibling=null;}return t.child}function Vs(e,t){if(!ia)switch(e.tailMode){case "hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case "collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null;}}function Gs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Qs(e,t,r){var a=t.pendingProps;switch(ra(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Gs(t),null;case 1:case 17:return Io(t.type)&&jo(),Gs(t),null;case 3:return a=t.stateNode,Xa(),Eo(Po),Eo(Lo),oi(),a.pendingContext&&(a.context=a.pendingContext,a.pendingContext=null),null!==e&&null!==e.child||(ga(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==sa&&(sc(sa),sa=null))),Ms(e,t),Gs(t),null;case 5:ei(t);var i=Ja(Za.current);if(r=t.type,null!==e&&null!=t.stateNode)Is(e,t,r,a,i),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else {if(!a){if(null===t.stateNode)throw Error(n(166));return Gs(t),null}if(e=Ja(Ga.current),ga(t)){a=t.stateNode,r=t.type;var s=t.memoizedProps;switch(a[po]=t,a[mo]=s,e=!!(1&t.mode),r){case "dialog":Br("cancel",a),Br("close",a);break;case "iframe":case "object":case "embed":Br("load",a);break;case "video":case "audio":for(i=0;i<Rr.length;i++)Br(Rr[i],a);break;case "source":Br("error",a);break;case "img":case "image":case "link":Br("error",a),Br("load",a);break;case "details":Br("toggle",a);break;case "input":$(a,s),Br("invalid",a);break;case "select":a._wrapperState={wasMultiple:!!s.multiple},Br("invalid",a);break;case "textarea":ae(a,s),Br("invalid",a);}for(var l in ve(r,s),i=null,s)if(s.hasOwnProperty(l)){var c=s[l];"children"===l?"string"==typeof c?a.textContent!==c&&(true!==s.suppressHydrationWarning&&Yr(a.textContent,c,e),i=["children",c]):"number"==typeof c&&a.textContent!==""+c&&(true!==s.suppressHydrationWarning&&Yr(a.textContent,c,e),i=["children",""+c]):o.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Br("scroll",a);}switch(r){case "input":G(a),ee(a,s,true);break;case "textarea":G(a),se(a);break;case "select":case "option":break;default:"function"==typeof s.onClick&&(a.onclick=eo);}a=i,t.updateQueue=a,null!==a&&(t.flags|=4);}else {l=9===i.nodeType?i:i.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=le(r)),"http://www.w3.org/1999/xhtml"===e?"script"===r?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof a.is?e=l.createElement(r,{is:a.is}):(e=l.createElement(r),"select"===r&&(l=e,a.multiple?l.multiple=true:a.size&&(l.size=a.size))):e=l.createElementNS(e,r),e[po]=t,e[mo]=a,Ns(e,t,false,false),t.stateNode=e;e:{switch(l=xe(r,a),r){case "dialog":Br("cancel",e),Br("close",e),i=a;break;case "iframe":case "object":case "embed":Br("load",e),i=a;break;case "video":case "audio":for(i=0;i<Rr.length;i++)Br(Rr[i],e);i=a;break;case "source":Br("error",e),i=a;break;case "img":case "image":case "link":Br("error",e),Br("load",e),i=a;break;case "details":Br("toggle",e),i=a;break;case "input":$(e,a),i=J(e,a),Br("invalid",e);break;case "option":default:i=a;break;case "select":e._wrapperState={wasMultiple:!!a.multiple},i=z({},a,{value:void 0}),Br("invalid",e);break;case "textarea":ae(e,a),i=oe(e,a),Br("invalid",e);}for(s in ve(r,i),c=i)if(c.hasOwnProperty(s)){var d=c[s];"style"===s?be(e,d):"dangerouslySetInnerHTML"===s?null!=(d=d?d.__html:void 0)&&he(e,d):"children"===s?"string"==typeof d?("textarea"!==r||""!==d)&&ge(e,d):"number"==typeof d&&ge(e,""+d):"suppressContentEditableWarning"!==s&&"suppressHydrationWarning"!==s&&"autoFocus"!==s&&(o.hasOwnProperty(s)?null!=d&&"onScroll"===s&&Br("scroll",e):null!=d&&y(e,s,d,l));}switch(r){case "input":G(e),ee(e,a,false);break;case "textarea":G(e),se(e);break;case "option":null!=a.value&&e.setAttribute("value",""+K(a.value));break;case "select":e.multiple=!!a.multiple,null!=(s=a.value)?re(e,!!a.multiple,s,false):null!=a.defaultValue&&re(e,!!a.multiple,a.defaultValue,true);break;default:"function"==typeof i.onClick&&(e.onclick=eo);}switch(r){case "button":case "input":case "select":case "textarea":a=!!a.autoFocus;break e;case "img":a=true;break e;default:a=false;}}a&&(t.flags|=4);}null!==t.ref&&(t.flags|=512,t.flags|=2097152);}return Gs(t),null;case 6:if(e&&null!=t.stateNode)js(e,t,e.memoizedProps,a);else {if("string"!=typeof a&&null===t.stateNode)throw Error(n(166));if(r=Ja(Za.current),Ja(Ga.current),ga(t)){if(a=t.stateNode,r=t.memoizedProps,a[po]=t,(s=a.nodeValue!==r)&&null!==(e=oa))switch(e.tag){case 3:Yr(a.nodeValue,r,!!(1&e.mode));break;case 5:true!==e.memoizedProps.suppressHydrationWarning&&Yr(a.nodeValue,r,!!(1&e.mode));}s&&(t.flags|=4);}else (a=(9===r.nodeType?r:r.ownerDocument).createTextNode(a))[po]=t,t.stateNode=a;}return Gs(t),null;case 13:if(Eo(ti),a=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ia&&null!==aa&&1&t.mode&&!(128&t.flags))pa(),ma(),t.flags|=98560,s=false;else if(s=ga(t),null!==a&&null!==a.dehydrated){if(null===e){if(!s)throw Error(n(318));if(!(s=null!==(s=t.memoizedState)?s.dehydrated:null))throw Error(n(317));s[po]=t;}else ma(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Gs(t),s=false;}else null!==sa&&(sc(sa),sa=null),s=true;if(!s)return 65536&t.flags?t:null}return 128&t.flags?(t.lanes=r,t):((a=null!==a)!==(null!==e&&null!==e.memoizedState)&&a&&(t.child.flags|=8192,1&t.mode&&(null===e||1&ti.current?0===jl&&(jl=3):fc())),null!==t.updateQueue&&(t.flags|=4),Gs(t),null);case 4:return Xa(),Ms(e,t),null===e&&Hr(t.stateNode.containerInfo),Gs(t),null;case 10:return _a(t.type._context),Gs(t),null;case 19:if(Eo(ti),null===(s=t.memoizedState))return Gs(t),null;if(a=!!(128&t.flags),null===(l=s.rendering))if(a)Vs(s,false);else {if(0!==jl||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(l=ni(e))){for(t.flags|=128,Vs(s,false),null!==(a=l.updateQueue)&&(t.updateQueue=a,t.flags|=4),t.subtreeFlags=0,a=r,r=t.child;null!==r;)e=a,(s=r).flags&=14680066,null===(l=s.alternate)?(s.childLanes=0,s.lanes=e,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=l.childLanes,s.lanes=l.lanes,s.child=l.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=l.memoizedProps,s.memoizedState=l.memoizedState,s.updateQueue=l.updateQueue,s.type=l.type,e=l.dependencies,s.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),r=r.sibling;return Ao(ti,1&ti.current|2),t.child}e=e.sibling;}null!==s.tail&&Xe()>Hl&&(t.flags|=128,a=true,Vs(s,false),t.lanes=4194304);}else {if(!a)if(null!==(e=ni(l))){if(t.flags|=128,a=true,null!==(r=e.updateQueue)&&(t.updateQueue=r,t.flags|=4),Vs(s,true),null===s.tail&&"hidden"===s.tailMode&&!l.alternate&&!ia)return Gs(t),null}else 2*Xe()-s.renderingStartTime>Hl&&1073741824!==r&&(t.flags|=128,a=true,Vs(s,false),t.lanes=4194304);s.isBackwards?(l.sibling=t.child,t.child=l):(null!==(r=s.last)?r.sibling=l:t.child=l,s.last=l);}return null!==s.tail?(t=s.tail,s.rendering=t,s.tail=t.sibling,s.renderingStartTime=Xe(),t.sibling=null,r=ti.current,Ao(ti,a?1&r|2:1&r),t):(Gs(t),null);case 22:case 23:return hc(),a=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==a&&(t.flags|=8192),a&&1&t.mode?!!(1073741824&Ml)&&(Gs(t),6&t.subtreeFlags&&(t.flags|=8192)):Gs(t),null;case 24:case 25:return null}throw Error(n(156,t.tag))}function Zs(e,t){switch(ra(t),t.tag){case 1:return Io(t.type)&&jo(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return Xa(),Eo(Po),Eo(Lo),oi(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return ei(t),null;case 13:if(Eo(ti),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(n(340));ma();}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return Eo(ti),null;case 4:return Xa(),null;case 10:return _a(t.type._context),null;case 22:case 23:return hc(),null;default:return null}}Ns=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return;}n.sibling.return=n.return,n=n.sibling;}},Ms=function(){},Is=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,Ja(Ga.current);var i,s=null;switch(n){case "input":a=J(e,a),r=J(e,r),s=[];break;case "select":a=z({},a,{value:void 0}),r=z({},r,{value:void 0}),s=[];break;case "textarea":a=oe(e,a),r=oe(e,r),s=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=eo);}for(d in ve(n,r),n=null,a)if(!r.hasOwnProperty(d)&&a.hasOwnProperty(d)&&null!=a[d])if("style"===d){var l=a[d];for(i in l)l.hasOwnProperty(i)&&(n||(n={}),n[i]="");}else "dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(o.hasOwnProperty(d)?s||(s=[]):(s=s||[]).push(d,null));for(d in r){var c=r[d];if(l=null!=a?a[d]:void 0,r.hasOwnProperty(d)&&c!==l&&(null!=c||null!=l))if("style"===d)if(l){for(i in l)!l.hasOwnProperty(i)||c&&c.hasOwnProperty(i)||(n||(n={}),n[i]="");for(i in c)c.hasOwnProperty(i)&&l[i]!==c[i]&&(n||(n={}),n[i]=c[i]);}else n||(s||(s=[]),s.push(d,n)),n=c;else "dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(s=s||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(s=s||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(o.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Br("scroll",e),s||l===c||(s=[])):(s=s||[]).push(d,c));}n&&(s=s||[]).push("style",n);var d=s;(t.updateQueue=d)&&(t.flags|=4);}},js=function(e,t,n,r){n!==r&&(t.flags|=4);};var Js=false,$s=false,Xs="function"==typeof WeakSet?WeakSet:Set,Ys=null;function el(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null);}catch(r){Tc(e,t,r);}else n.current=null;}function tl(e,t,n){try{n();}catch(r){Tc(e,t,r);}}var nl=false;function rl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&tl(t,n,a);}o=o.next;}while(o!==r)}}function ol(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r();}n=n.next;}while(n!==t)}}function al(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e;}}function il(e){var t=e.alternate;null!==t&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[po],delete t[mo],delete t[bo],delete t[yo],delete t[vo])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null;}function sl(e){return 5===e.tag||3===e.tag||4===e.tag}function ll(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||sl(e.return))return null;e=e.return;}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child;}if(!(2&e.flags))return e.stateNode}}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=eo));else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling;}function dl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(dl(e,t,n),e=e.sibling;null!==e;)dl(e,t,n),e=e.sibling;}var ul=null,hl=false;function gl(e,t,n){for(n=n.child;null!==n;)pl(e,t,n),n=n.sibling;}function pl(e,t,n){if(it&&"function"==typeof it.onCommitFiberUnmount)try{it.onCommitFiberUnmount(at,n);}catch(s){}switch(n.tag){case 5:$s||el(n,t);case 6:var r=ul,o=hl;ul=null,gl(e,t,n),hl=o,null!==(ul=r)&&(hl?(e=ul,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):ul.removeChild(n.stateNode));break;case 18:null!==ul&&(hl?(e=ul,n=n.stateNode,8===e.nodeType?co(e.parentNode,n):1===e.nodeType&&co(e,n),Ht(e)):co(ul,n.stateNode));break;case 4:r=ul,o=hl,ul=n.stateNode.containerInfo,hl=true,gl(e,t,n),ul=r,hl=o;break;case 0:case 11:case 14:case 15:if(!$s&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){o=r=r.next;do{var a=o,i=a.destroy;a=a.tag,void 0!==i&&(2&a||4&a)&&tl(n,t,i),o=o.next;}while(o!==r)}gl(e,t,n);break;case 1:if(!$s&&(el(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount();}catch(s){Tc(n,t,s);}gl(e,t,n);break;case 21:gl(e,t,n);break;case 22:1&n.mode?($s=(r=$s)||null!==n.memoizedState,gl(e,t,n),$s=r):gl(e,t,n);break;default:gl(e,t,n);}}function ml(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xs),t.forEach(function(t){var r=_c.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r));});}}function fl(e,t){var r=t.deletions;if(null!==r)for(var o=0;o<r.length;o++){var a=r[o];try{var i=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:ul=l.stateNode,hl=!1;break e;case 3:case 4:ul=l.stateNode.containerInfo,hl=!0;break e}l=l.return;}if(null===ul)throw Error(n(160));pl(i,s,a),ul=null,hl=!1;var c=a.alternate;null!==c&&(c.return=null),a.return=null;}catch(d){Tc(a,t,d);}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)bl(t,e),t=t.sibling;}function bl(e,t){var r=e.alternate,o=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(fl(t,e),yl(e),4&o){try{rl(3,e,e.return),ol(3,e);}catch(f){Tc(e,e.return,f);}try{rl(5,e,e.return);}catch(f){Tc(e,e.return,f);}}break;case 1:fl(t,e),yl(e),512&o&&null!==r&&el(r,r.return);break;case 5:if(fl(t,e),yl(e),512&o&&null!==r&&el(r,r.return),32&e.flags){var a=e.stateNode;try{ge(a,"");}catch(f){Tc(e,e.return,f);}}if(4&o&&null!=(a=e.stateNode)){var i=e.memoizedProps,s=null!==r?r.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&X(a,i),xe(l,s);var d=xe(l,i);for(s=0;s<c.length;s+=2){var u=c[s],h=c[s+1];"style"===u?be(a,h):"dangerouslySetInnerHTML"===u?he(a,h):"children"===u?ge(a,h):y(a,u,h,d);}switch(l){case "input":Y(a,i);break;case "textarea":ie(a,i);break;case "select":var g=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var p=i.value;null!=p?re(a,!!i.multiple,p,!1):g!==!!i.multiple&&(null!=i.defaultValue?re(a,!!i.multiple,i.defaultValue,!0):re(a,!!i.multiple,i.multiple?[]:"",!1));}a[mo]=i;}catch(f){Tc(e,e.return,f);}}break;case 6:if(fl(t,e),yl(e),4&o){if(null===e.stateNode)throw Error(n(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i;}catch(f){Tc(e,e.return,f);}}break;case 3:if(fl(t,e),yl(e),4&o&&null!==r&&r.memoizedState.isDehydrated)try{Ht(t.containerInfo);}catch(f){Tc(e,e.return,f);}break;case 4:default:fl(t,e),yl(e);break;case 13:fl(t,e),yl(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||(Ul=Xe())),4&o&&ml(e);break;case 22:if(u=null!==r&&null!==r.memoizedState,1&e.mode?($s=(d=$s)||u,fl(t,e),$s=d):fl(t,e),yl(e),8192&o){if(d=null!==e.memoizedState,(e.stateNode.isHidden=d)&&!u&&1&e.mode)for(Ys=e,u=e.child;null!==u;){for(h=Ys=u;null!==Ys;){switch(p=(g=Ys).child,g.tag){case 0:case 11:case 14:case 15:rl(4,g,g.return);break;case 1:el(g,g.return);var m=g.stateNode;if("function"==typeof m.componentWillUnmount){o=g,r=g.return;try{t=o,m.props=t.memoizedProps,m.state=t.memoizedState,m.componentWillUnmount();}catch(f){Tc(o,r,f);}}break;case 5:el(g,g.return);break;case 22:if(null!==g.memoizedState){wl(h);continue}}null!==p?(p.return=g,Ys=p):wl(h);}u=u.sibling;}e:for(u=null,h=e;;){if(5===h.tag){if(null===u){u=h;try{a=h.stateNode,d?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=h.stateNode,s=null!=(c=h.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=fe("display",s));}catch(f){Tc(e,e.return,f);}}}else if(6===h.tag){if(null===u)try{h.stateNode.nodeValue=d?"":h.memoizedProps;}catch(f){Tc(e,e.return,f);}}else if((22!==h.tag&&23!==h.tag||null===h.memoizedState||h===e)&&null!==h.child){h.child.return=h,h=h.child;continue}if(h===e)break e;for(;null===h.sibling;){if(null===h.return||h.return===e)break e;u===h&&(u=null),h=h.return;}u===h&&(u=null),h.sibling.return=h.return,h=h.sibling;}}break;case 19:fl(t,e),yl(e),4&o&&ml(e);case 21:}}function yl(e){var t=e.flags;if(2&t){try{e:{for(var r=e.return;null!==r;){if(sl(r)){var o=r;break e}r=r.return;}throw Error(n(160))}switch(o.tag){case 5:var a=o.stateNode;32&o.flags&&(ge(a,""),o.flags&=-33),dl(e,ll(e),a);break;case 3:case 4:var i=o.stateNode.containerInfo;cl(e,ll(e),i);break;default:throw Error(n(161))}}catch(s){Tc(e,e.return,s);}e.flags&=-3;}4096&t&&(e.flags&=-4097);}function vl(e,t,n){Ys=e,xl(e);}function xl(e,t,n){for(var r=!!(1&e.mode);null!==Ys;){var o=Ys,a=o.child;if(22===o.tag&&r){var i=null!==o.memoizedState||Js;if(!i){var s=o.alternate,l=null!==s&&null!==s.memoizedState||$s;s=Js;var c=$s;if(Js=i,($s=l)&&!c)for(Ys=o;null!==Ys;)l=(i=Ys).child,22===i.tag&&null!==i.memoizedState?kl(o):null!==l?(l.return=i,Ys=l):kl(o);for(;null!==a;)Ys=a,xl(a),a=a.sibling;Ys=o,Js=s,$s=c;}Sl(e);}else 8772&o.subtreeFlags&&null!==a?(a.return=o,Ys=a):Sl(e);}}function Sl(e){for(;null!==Ys;){var t=Ys;if(8772&t.flags){var r=t.alternate;try{if(8772&t.flags)switch(t.tag){case 0:case 11:case 15:$s||ol(5,t);break;case 1:var o=t.stateNode;if(4&t.flags&&!$s)if(null===r)o.componentDidMount();else {var a=t.elementType===t.type?r.memoizedProps:rs(t.type,r.memoizedProps);o.componentDidUpdate(a,r.memoizedState,o.__reactInternalSnapshotBeforeUpdate);}var i=t.updateQueue;null!==i&&Ka(t,i,o);break;case 3:var s=t.updateQueue;if(null!==s){if(r=null,null!==t.child)switch(t.child.tag){case 5:case 1:r=t.child.stateNode;}Ka(t,s,r);}break;case 5:var l=t.stateNode;if(null===r&&4&t.flags){r=l;var c=t.memoizedProps;switch(t.type){case "button":case "input":case "select":case "textarea":c.autoFocus&&r.focus();break;case "img":c.src&&(r.src=c.src);}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var d=t.alternate;if(null!==d){var u=d.memoizedState;if(null!==u){var h=u.dehydrated;null!==h&&Ht(h);}}}break;default:throw Error(n(163))}$s||512&t.flags&&al(t);}catch(g){Tc(t,t.return,g);}}if(t===e){Ys=null;break}if(null!==(r=t.sibling)){r.return=t.return,Ys=r;break}Ys=t.return;}}function wl(e){for(;null!==Ys;){var t=Ys;if(t===e){Ys=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Ys=n;break}Ys=t.return;}}function kl(e){for(;null!==Ys;){var t=Ys;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{ol(4,t);}catch(l){Tc(t,n,l);}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var o=t.return;try{r.componentDidMount();}catch(l){Tc(t,o,l);}}var a=t.return;try{al(t);}catch(l){Tc(t,a,l);}break;case 5:var i=t.return;try{al(t);}catch(l){Tc(t,i,l);}}}catch(l){Tc(t,t.return,l);}if(t===e){Ys=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Ys=s;break}Ys=t.return;}}var Cl,Tl=Math.ceil,Dl=v.ReactCurrentDispatcher,El=v.ReactCurrentOwner,Al=v.ReactCurrentBatchConfig,_l=0,Ll=null,Pl=null,Nl=0,Ml=0,Il=Do(0),jl=0,Rl=null,Fl=0,zl=0,Ol=0,Bl=null,ql=null,Ul=0,Hl=1/0,Wl=null,Kl=false,Vl=null,Gl=null,Ql=false,Zl=null,Jl=0,$l=0,Xl=null,Yl=-1,ec=0;function tc(){return 6&_l?Xe():-1!==Yl?Yl:Yl=Xe()}function nc(e){return 1&e.mode?2&_l&&0!==Nl?Nl&-Nl:null!==ba.transition?(0===ec&&(ec=ft()),ec):0!==(e=xt)?e:e=void 0===(e=window.event)?16:$t(e.type):1}function rc(e,t,r,o){if(50<$l)throw $l=0,Xl=null,Error(n(185));yt(e,r,o),2&_l&&e===Ll||(e===Ll&&(!(2&_l)&&(zl|=r),4===jl&&lc(e,Nl)),oc(e,o),1===r&&0===_l&&!(1&t.mode)&&(Hl=Xe()+500,qo&&Wo()));}function oc(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes;0<a;){var i=31-st(a),s=1<<i,l=o[i];-1===l?0!==(s&n)&&0===(s&r)||(o[i]=pt(s,t)):l<=t&&(e.expiredLanes|=s),a&=~s;}}(e,t);var r=gt(e,e===Ll?Nl:0);if(0===r)null!==n&&Ze(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ze(n),1===t)0===e.tag?function(e){qo=true,Ho(e);}(cc.bind(null,e)):Ho(cc.bind(null,e)),so(function(){!(6&_l)&&Wo();}),n=null;else {switch(St(r)){case 1:n=et;break;case 4:n=tt;break;case 16:default:n=nt;break;case 536870912:n=ot;}n=Lc(n,ac.bind(null,e));}e.callbackPriority=t,e.callbackNode=n;}}function ac(e,t){if(Yl=-1,ec=0,6&_l)throw Error(n(327));var r=e.callbackNode;if(kc()&&e.callbackNode!==r)return null;var o=gt(e,e===Ll?Nl:0);if(0===o)return null;if(30&o||0!==(o&e.expiredLanes)||t)t=bc(e,o);else {t=o;var a=_l;_l|=2;var i=mc();for(Ll===e&&Nl===t||(Wl=null,Hl=Xe()+500,gc(e,t));;)try{vc();break}catch(l){pc(e,l);}Aa(),Dl.current=i,_l=a,null!==Pl?t=0:(Ll=null,Nl=0,t=jl);}if(0!==t){if(2===t&&(0!==(a=mt(e))&&(o=a,t=ic(e,a))),1===t)throw r=Rl,gc(e,0),lc(e,o),oc(e,Xe()),r;if(6===t)lc(e,o);else {if(a=e.current.alternate,!(30&o||function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var o=n[r],a=o.getSnapshot;o=o.value;try{if(!lr(a(),o))return !1}catch(s){return  false}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else {if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return  true;t=t.return;}t.sibling.return=t.return,t=t.sibling;}}return  true}(a)||(t=bc(e,o),2===t&&(i=mt(e),0!==i&&(o=i,t=ic(e,i))),1!==t)))throw r=Rl,gc(e,0),lc(e,o),oc(e,Xe()),r;switch(e.finishedWork=a,e.finishedLanes=o,t){case 0:case 1:throw Error(n(345));case 2:case 5:wc(e,ql,Wl);break;case 3:if(lc(e,o),(130023424&o)===o&&10<(t=Ul+500-Xe())){if(0!==gt(e,0))break;if(((a=e.suspendedLanes)&o)!==o){tc(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=oo(wc.bind(null,e,ql,Wl),t);break}wc(e,ql,Wl);break;case 4:if(lc(e,o),(4194240&o)===o)break;for(t=e.eventTimes,a=-1;0<o;){var s=31-st(o);i=1<<s,(s=t[s])>a&&(a=s),o&=~i;}if(o=a,10<(o=(120>(o=Xe()-o)?120:480>o?480:1080>o?1080:1920>o?1920:3e3>o?3e3:4320>o?4320:1960*Tl(o/1960))-o)){e.timeoutHandle=oo(wc.bind(null,e,ql,Wl),o);break}wc(e,ql,Wl);break;default:throw Error(n(329))}}}return oc(e,Xe()),e.callbackNode===r?ac.bind(null,e):null}function ic(e,t){var n=Bl;return e.current.memoizedState.isDehydrated&&(gc(e,t).flags|=256),2!==(e=bc(e,t))&&(t=ql,ql=n,null!==t&&sc(t)),e}function sc(e){null===ql?ql=e:ql.push.apply(ql,e);}function lc(e,t){for(t&=~Ol,t&=~zl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-st(t),r=1<<n;e[n]=-1,t&=~r;}}function cc(e){if(6&_l)throw Error(n(327));kc();var t=gt(e,0);if(!(1&t))return oc(e,Xe()),null;var r=bc(e,t);if(0!==e.tag&&2===r){var o=mt(e);0!==o&&(t=o,r=ic(e,o));}if(1===r)throw r=Rl,gc(e,0),lc(e,t),oc(e,Xe()),r;if(6===r)throw Error(n(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,wc(e,ql,Wl),oc(e,Xe()),null}function dc(e,t){var n=_l;_l|=1;try{return e(t)}finally{0===(_l=n)&&(Hl=Xe()+500,qo&&Wo());}}function uc(e){null!==Zl&&0===Zl.tag&&!(6&_l)&&kc();var t=_l;_l|=1;var n=Al.transition,r=xt;try{if(Al.transition=null,xt=1,e)return e()}finally{xt=r,Al.transition=n,!(6&(_l=t))&&Wo();}}function hc(){Ml=Il.current,Eo(Il);}function gc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,ao(n)),null!==Pl)for(n=Pl.return;null!==n;){var r=n;switch(ra(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&jo();break;case 3:Xa(),Eo(Po),Eo(Lo),oi();break;case 5:ei(r);break;case 4:Xa();break;case 13:case 19:Eo(ti);break;case 10:_a(r.type._context);break;case 22:case 23:hc();}n=n.return;}if(Ll=e,Pl=e=Ic(e.current,null),Nl=Ml=t,jl=0,Rl=null,Ol=zl=Fl=0,ql=Bl=null,null!==Ma){for(t=0;t<Ma.length;t++)if(null!==(r=(n=Ma[t]).interleaved)){n.interleaved=null;var o=r.next,a=n.pending;if(null!==a){var i=a.next;a.next=o,r.next=i;}n.pending=r;}Ma=null;}return e}function pc(e,t){for(;;){var r=Pl;try{if(Aa(),ai.current=Yi,ui){for(var o=li.memoizedState;null!==o;){var a=o.queue;null!==a&&(a.pending=null),o=o.next;}ui=!1;}if(si=0,di=ci=li=null,hi=!1,gi=0,El.current=null,null===r||null===r.return){jl=1,Rl=t,Pl=null;break}e:{var i=e,s=r.return,l=r,c=t;if(t=Nl,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var d=c,u=l,h=u.tag;if(!(1&u.mode||0!==h&&11!==h&&15!==h)){var g=u.alternate;g?(u.updateQueue=g.updateQueue,u.memoizedState=g.memoizedState,u.lanes=g.lanes):(u.updateQueue=null,u.memoizedState=null);}var p=bs(s);if(null!==p){p.flags&=-257,ys(p,s,l,0,t),1&p.mode&&fs(i,d,t),c=d;var m=(t=p).updateQueue;if(null===m){var f=new Set;f.add(c),t.updateQueue=f;}else m.add(c);break e}if(!(1&t)){fs(i,d,t),fc();break e}c=Error(n(426));}else if(ia&&1&l.mode){var b=bs(s);if(null!==b){!(65536&b.flags)&&(b.flags|=256),ys(b,s,l,0,t),fa(ds(c,l));break e}}i=c=ds(c,l),4!==jl&&(jl=2),null===Bl?Bl=[i]:Bl.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Ha(i,ps(0,c,t));break e;case 1:l=c;var y=i.type,v=i.stateNode;if(!(128&i.flags||"function"!=typeof y.getDerivedStateFromError&&(null===v||"function"!=typeof v.componentDidCatch||null!==Gl&&Gl.has(v)))){i.flags|=65536,t&=-t,i.lanes|=t,Ha(i,ms(i,l,t));break e}}i=i.return;}while(null!==i)}Sc(r);}catch(x){t=x,Pl===r&&null!==r&&(Pl=r=r.return);continue}break}}function mc(){var e=Dl.current;return Dl.current=Yi,null===e?Yi:e}function fc(){0!==jl&&3!==jl&&2!==jl||(jl=4),null===Ll||!(268435455&Fl)&&!(268435455&zl)||lc(Ll,Nl);}function bc(e,t){var r=_l;_l|=2;var o=mc();for(Ll===e&&Nl===t||(Wl=null,gc(e,t));;)try{yc();break}catch(a){pc(e,a);}if(Aa(),_l=r,Dl.current=o,null!==Pl)throw Error(n(261));return Ll=null,Nl=0,jl}function yc(){for(;null!==Pl;)xc(Pl);}function vc(){for(;null!==Pl&&!Je();)xc(Pl);}function xc(e){var t=Cl(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?Sc(e):Pl=t,El.current=null;}function Sc(e){var t=e;do{var n=t.alternate;if(e=t.return,32768&t.flags){if(null!==(n=Zs(n,t)))return n.flags&=32767,void(Pl=n);if(null===e)return jl=6,void(Pl=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null;}else if(null!==(n=Qs(n,t,Ml)))return void(Pl=n);if(null!==(t=t.sibling))return void(Pl=t);Pl=t=e;}while(null!==t);0===jl&&(jl=5);}function wc(e,t,r){var o=xt,a=Al.transition;try{Al.transition=null,xt=1,function(e,t,r,o){do{kc();}while(null!==Zl);if(6&_l)throw Error(n(327));r=e.finishedWork;var a=e.finishedLanes;if(null===r)return null;if(e.finishedWork=null,e.finishedLanes=0,r===e.current)throw Error(n(177));e.callbackNode=null,e.callbackPriority=0;var i=r.lanes|r.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-st(n),a=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~a;}}(e,i),e===Ll&&(Pl=Ll=null,Nl=0),!(2064&r.subtreeFlags)&&!(2064&r.flags)||Ql||(Ql=!0,Lc(nt,function(){return kc(),null})),i=!!(15990&r.flags),!!(15990&r.subtreeFlags)||i){i=Al.transition,Al.transition=null;var s=xt;xt=1;var l=_l;_l|=4,El.current=null,function(e,t){if(to=Kt,pr(e=gr())){if("selectionStart"in e)var r={start:e.selectionStart,end:e.selectionEnd};else e:{var o=(r=(r=e.ownerDocument)&&r.defaultView||window).getSelection&&r.getSelection();if(o&&0!==o.rangeCount){r=o.anchorNode;var a=o.anchorOffset,i=o.focusNode;o=o.focusOffset;try{r.nodeType,i.nodeType;}catch(S){r=null;break e}var s=0,l=-1,c=-1,d=0,u=0,h=e,g=null;t:for(;;){for(var p;h!==r||0!==a&&3!==h.nodeType||(l=s+a),h!==i||0!==o&&3!==h.nodeType||(c=s+o),3===h.nodeType&&(s+=h.nodeValue.length),null!==(p=h.firstChild);)g=h,h=p;for(;;){if(h===e)break t;if(g===r&&++d===a&&(l=s),g===i&&++u===o&&(c=s),null!==(p=h.nextSibling))break;g=(h=g).parentNode;}h=p;}r=-1===l||-1===c?null:{start:l,end:c};}else r=null;}r=r||{start:0,end:0};}else r=null;for(no={focusedElem:e,selectionRange:r},Kt=!1,Ys=t;null!==Ys;)if(e=(t=Ys).child,1028&t.subtreeFlags&&null!==e)e.return=t,Ys=e;else for(;null!==Ys;){t=Ys;try{var m=t.alternate;if(1024&t.flags)switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==m){var f=m.memoizedProps,b=m.memoizedState,y=t.stateNode,v=y.getSnapshotBeforeUpdate(t.elementType===t.type?f:rs(t.type,f),b);y.__reactInternalSnapshotBeforeUpdate=v;}break;case 3:var x=t.stateNode.containerInfo;1===x.nodeType?x.textContent="":9===x.nodeType&&x.documentElement&&x.removeChild(x.documentElement);break;default:throw Error(n(163))}}catch(S){Tc(t,t.return,S);}if(null!==(e=t.sibling)){e.return=t.return,Ys=e;break}Ys=t.return;}m=nl,nl=!1;}(e,r),bl(r,e),mr(no),Kt=!!to,no=to=null,e.current=r,vl(r),$e(),_l=l,xt=s,Al.transition=i;}else e.current=r;if(Ql&&(Ql=!1,Zl=e,Jl=a),i=e.pendingLanes,0===i&&(Gl=null),function(e){if(it&&"function"==typeof it.onCommitFiberRoot)try{it.onCommitFiberRoot(at,e,void 0,!(128&~e.current.flags));}catch(t){}}(r.stateNode),oc(e,Xe()),null!==t)for(o=e.onRecoverableError,r=0;r<t.length;r++)a=t[r],o(a.value,{componentStack:a.stack,digest:a.digest});if(Kl)throw Kl=!1,e=Vl,Vl=null,e;!!(1&Jl)&&0!==e.tag&&kc(),i=e.pendingLanes,1&i?e===Xl?$l++:($l=0,Xl=e):$l=0,Wo();}(e,t,r,o);}finally{Al.transition=a,xt=o;}return null}function kc(){if(null!==Zl){var e=St(Jl),t=Al.transition,r=xt;try{if(Al.transition=null,xt=16>e?16:e,null===Zl)var o=!1;else {if(e=Zl,Zl=null,Jl=0,6&_l)throw Error(n(331));var a=_l;for(_l|=4,Ys=e.current;null!==Ys;){var i=Ys,s=i.child;if(16&Ys.flags){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var d=l[c];for(Ys=d;null!==Ys;){var u=Ys;switch(u.tag){case 0:case 11:case 15:rl(8,u,i);}var h=u.child;if(null!==h)h.return=u,Ys=h;else for(;null!==Ys;){var g=(u=Ys).sibling,p=u.return;if(il(u),u===d){Ys=null;break}if(null!==g){g.return=p,Ys=g;break}Ys=p;}}}var m=i.alternate;if(null!==m){var f=m.child;if(null!==f){m.child=null;do{var b=f.sibling;f.sibling=null,f=b;}while(null!==f)}}Ys=i;}}if(2064&i.subtreeFlags&&null!==s)s.return=i,Ys=s;else e:for(;null!==Ys;){if(2048&(i=Ys).flags)switch(i.tag){case 0:case 11:case 15:rl(9,i,i.return);}var y=i.sibling;if(null!==y){y.return=i.return,Ys=y;break e}Ys=i.return;}}var v=e.current;for(Ys=v;null!==Ys;){var x=(s=Ys).child;if(2064&s.subtreeFlags&&null!==x)x.return=s,Ys=x;else e:for(s=v;null!==Ys;){if(2048&(l=Ys).flags)try{switch(l.tag){case 0:case 11:case 15:ol(9,l);}}catch(w){Tc(l,l.return,w);}if(l===s){Ys=null;break e}var S=l.sibling;if(null!==S){S.return=l.return,Ys=S;break e}Ys=l.return;}}if(_l=a,Wo(),it&&"function"==typeof it.onPostCommitFiberRoot)try{it.onPostCommitFiberRoot(at,e);}catch(w){}o=!0;}return o}finally{xt=r,Al.transition=t;}}return  false}function Cc(e,t,n){e=qa(e,t=ps(0,t=ds(n,t),1),1),t=tc(),null!==e&&(yt(e,1,t),oc(e,t));}function Tc(e,t,n){if(3===e.tag)Cc(e,e,n);else for(;null!==t;){if(3===t.tag){Cc(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Gl||!Gl.has(r))){t=qa(t,e=ms(t,e=ds(n,e),1),1),e=tc(),null!==t&&(yt(t,1,e),oc(t,e));break}}t=t.return;}}function Dc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=tc(),e.pingedLanes|=e.suspendedLanes&n,Ll===e&&(Nl&n)===n&&(4===jl||3===jl&&(130023424&Nl)===Nl&&500>Xe()-Ul?gc(e,0):Ol|=n),oc(e,t);}function Ec(e,t){0===t&&(1&e.mode?(t=ut,!(130023424&(ut<<=1))&&(ut=4194304)):t=1);var n=tc();null!==(e=Ra(e,t))&&(yt(e,t,n),oc(e,n));}function Ac(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Ec(e,n);}function _c(e,t){var r=0;switch(e.tag){case 13:var o=e.stateNode,a=e.memoizedState;null!==a&&(r=a.retryLane);break;case 19:o=e.stateNode;break;default:throw Error(n(314))}null!==o&&o.delete(t),Ec(e,r);}function Lc(e,t){return Qe(e,t)}function Pc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null;}function Nc(e,t,n,r){return new Pc(e,t,n,r)}function Mc(e){return !(!(e=e.prototype)||!e.isReactComponent)}function Ic(e,t){var n=e.alternate;return null===n?((n=Nc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function jc(e,t,r,o,a,i){var s=2;if(o=e,"function"==typeof e)Mc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case C:return Rc(r.children,a,i,t);case T:s=8,a|=8;break;case D:return (e=Nc(12,r,t,2|a)).elementType=D,e.lanes=i,e;case L:return (e=Nc(13,r,t,a)).elementType=L,e.lanes=i,e;case P:return (e=Nc(19,r,t,a)).elementType=P,e.lanes=i,e;case I:return Fc(r,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case E:s=10;break e;case A:s=9;break e;case _:s=11;break e;case N:s=14;break e;case M:s=16,o=null;break e}throw Error(n(130,null==e?e:typeof e,""))}return (t=Nc(s,r,t,a)).elementType=e,t.type=o,t.lanes=i,t}function Rc(e,t,n,r){return (e=Nc(7,e,r,t)).lanes=n,e}function Fc(e,t,n,r){return (e=Nc(22,e,r,t)).elementType=I,e.lanes=n,e.stateNode={isHidden:false},e}function zc(e,t,n){return (e=Nc(6,e,null,t)).lanes=n,e}function Oc(e,t,n){return (t=Nc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bc(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=bt(0),this.expirationTimes=bt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=bt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null;}function qc(e,t,n,r,o,a,i,s,l){return e=new Bc(e,t,n,s,l),1===t?(t=1,true===a&&(t|=8)):t=0,a=Nc(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},za(a),e}function Uc(e){if(!e)return _o;e:{if(He(e=e._reactInternals)!==e||1!==e.tag)throw Error(n(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Io(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return;}while(null!==t);throw Error(n(171))}if(1===e.tag){var r=e.type;if(Io(r))return Fo(e,r,t)}return t}function Hc(e,t,n,r,o,a,i,s,l){return (e=qc(n,r,true,e,0,a,0,s,l)).context=Uc(null),n=e.current,(a=Ba(r=tc(),o=nc(n))).callback=null!=t?t:null,qa(n,a,o),e.current.lanes=o,yt(e,o,r),oc(e,r),e}function Wc(e,t,n,r){var o=t.current,a=tc(),i=nc(o);return n=Uc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Ba(a,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=qa(o,t,i))&&(rc(e,o,i,a),Ua(e,o,i)),i}function Kc(e){return (e=e.current).child?(e.child.tag,e.child.stateNode):null}function Vc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t;}}function Gc(e,t){Vc(e,t),(e=e.alternate)&&Vc(e,t);}Cl=function(e,t,r){if(null!==e)if(e.memoizedProps!==t.pendingProps||Po.current)xs=true;else {if(0===(e.lanes&r)&&!(128&t.flags))return xs=false,function(e,t,n){switch(t.tag){case 3:Ls(t),ma();break;case 5:Ya(t);break;case 1:Io(t.type)&&zo(t);break;case 4:$a(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;Ao(Ca,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ao(ti,1&ti.current),t.flags|=128,null):0!==(n&t.child.childLanes)?zs(e,t,n):(Ao(ti,1&ti.current),null!==(e=Ks(e,t,n))?e.sibling:null);Ao(ti,1&ti.current);break;case 19:if(r=0!==(n&t.childLanes),128&e.flags){if(r)return Hs(e,t,n);t.flags|=128;}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),Ao(ti,ti.current),r)break;return null;case 22:case 23:return t.lanes=0,Ts(e,t,n)}return Ks(e,t,n)}(e,t,r);xs=!!(131072&e.flags);}else xs=false,ia&&1048576&t.flags&&ta(t,Qo,t.index);switch(t.lanes=0,t.tag){case 2:var o=t.type;Ws(e,t),e=t.pendingProps;var a=Mo(t,Lo.current);Pa(t,r),a=bi(null,t,o,e,a,r);var i=yi();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Io(o)?(i=true,zo(t)):i=false,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,za(t),a.updater=as,t.stateNode=a,a._reactInternals=t,cs(t,o,e,r),t=_s(null,t,o,true,i,r)):(t.tag=0,ia&&i&&na(t),Ss(null,t,a,r),t=t.child),t;case 16:o=t.elementType;e:{switch(Ws(e,t),e=t.pendingProps,o=(a=o._init)(o._payload),t.type=o,a=t.tag=function(e){if("function"==typeof e)return Mc(e)?1:0;if(null!=e){if((e=e.$$typeof)===_)return 11;if(e===N)return 14}return 2}(o),e=rs(o,e),a){case 0:t=Es(null,t,o,e,r);break e;case 1:t=As(null,t,o,e,r);break e;case 11:t=ws(null,t,o,e,r);break e;case 14:t=ks(null,t,o,rs(o.type,e),r);break e}throw Error(n(306,o,""))}return t;case 0:return o=t.type,a=t.pendingProps,Es(e,t,o,a=t.elementType===o?a:rs(o,a),r);case 1:return o=t.type,a=t.pendingProps,As(e,t,o,a=t.elementType===o?a:rs(o,a),r);case 3:e:{if(Ls(t),null===e)throw Error(n(387));o=t.pendingProps,a=(i=t.memoizedState).element,Oa(e,t),Wa(t,o,null,r);var s=t.memoizedState;if(o=s.element,i.isDehydrated){if(i={element:o,isDehydrated:false,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ps(e,t,o,r,a=ds(Error(n(423)),t));break e}if(o!==a){t=Ps(e,t,o,r,a=ds(Error(n(424)),t));break e}for(aa=uo(t.stateNode.containerInfo.firstChild),oa=t,ia=true,sa=null,r=ka(t,null,o,r),t.child=r;r;)r.flags=-3&r.flags|4096,r=r.sibling;}else {if(ma(),o===a){t=Ks(e,t,r);break e}Ss(e,t,o,r);}t=t.child;}return t;case 5:return Ya(t),null===e&&ua(t),o=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,s=a.children,ro(o,a)?s=null:null!==i&&ro(o,i)&&(t.flags|=32),Ds(e,t),Ss(e,t,s,r),t.child;case 6:return null===e&&ua(t),null;case 13:return zs(e,t,r);case 4:return $a(t,t.stateNode.containerInfo),o=t.pendingProps,null===e?t.child=wa(t,null,o,r):Ss(e,t,o,r),t.child;case 11:return o=t.type,a=t.pendingProps,ws(e,t,o,a=t.elementType===o?a:rs(o,a),r);case 7:return Ss(e,t,t.pendingProps,r),t.child;case 8:case 12:return Ss(e,t,t.pendingProps.children,r),t.child;case 10:e:{if(o=t.type._context,a=t.pendingProps,i=t.memoizedProps,s=a.value,Ao(Ca,o._currentValue),o._currentValue=s,null!==i)if(lr(i.value,s)){if(i.children===a.children&&!Po.current){t=Ks(e,t,r);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===o){if(1===i.tag){(c=Ba(-1,r&-r)).tag=2;var d=i.updateQueue;if(null!==d){var u=(d=d.shared).pending;null===u?c.next=c:(c.next=u.next,u.next=c),d.pending=c;}}i.lanes|=r,null!==(c=i.alternate)&&(c.lanes|=r),La(i.return,r,t),l.lanes|=r;break}c=c.next;}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(n(341));s.lanes|=r,null!==(l=s.alternate)&&(l.lanes|=r),La(s,r,t),s=i.sibling;}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return;}i=s;}Ss(e,t,a.children,r),t=t.child;}return t;case 9:return a=t.type,o=t.pendingProps.children,Pa(t,r),o=o(a=Na(a)),t.flags|=1,Ss(e,t,o,r),t.child;case 14:return a=rs(o=t.type,t.pendingProps),ks(e,t,o,a=rs(o.type,a),r);case 15:return Cs(e,t,t.type,t.pendingProps,r);case 17:return o=t.type,a=t.pendingProps,a=t.elementType===o?a:rs(o,a),Ws(e,t),t.tag=1,Io(o)?(e=true,zo(t)):e=false,Pa(t,r),ss(t,o,a),cs(t,o,a,r),_s(null,t,o,true,e,r);case 19:return Hs(e,t,r);case 22:return Ts(e,t,r)}throw Error(n(156,t.tag))};var Qc="function"==typeof reportError?reportError:function(e){console.error(e);};function Zc(e){this._internalRoot=e;}function Jc(e){this._internalRoot=e;}function $c(e){return !(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xc(e){return !(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Yc(){}function ed(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a;if("function"==typeof o){var s=o;o=function(){var e=Kc(i);s.call(e);};}Wc(t,i,e,o);}else i=function(e,t,n,r,o){if(o){if("function"==typeof r){var a=r;r=function(){var e=Kc(i);a.call(e);};}var i=Hc(t,r,e,0,null,false,0,"",Yc);return e._reactRootContainer=i,e[fo]=i.current,Hr(8===e.nodeType?e.parentNode:e),uc(),i}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof r){var s=r;r=function(){var e=Kc(l);s.call(e);};}var l=qc(e,0,false,null,0,false,0,"",Yc);return e._reactRootContainer=l,e[fo]=l.current,Hr(8===e.nodeType?e.parentNode:e),uc(function(){Wc(t,l,n,r);}),l}(n,t,e,o,r);return Kc(i)}Jc.prototype.render=Zc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(n(409));Wc(e,t,null,null);},Jc.prototype.unmount=Zc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;uc(function(){Wc(null,e,null,null);}),t[fo]=null;}},Jc.prototype.unstable_scheduleHydration=function(e){if(e){var t=Tt();e={blockedOn:null,target:e,priority:t};for(var n=0;n<It.length&&0!==t&&t<It[n].priority;n++);It.splice(n,0,e),0===n&&zt(e);}},wt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=ht(t.pendingLanes);0!==n&&(vt(t,1|n),oc(t,Xe()),!(6&_l)&&(Hl=Xe()+500,Wo()));}break;case 13:uc(function(){var t=Ra(e,1);if(null!==t){var n=tc();rc(t,e,1,n);}}),Gc(e,1);}},kt=function(e){if(13===e.tag){var t=Ra(e,134217728);if(null!==t)rc(t,e,134217728,tc());Gc(e,134217728);}},Ct=function(e){if(13===e.tag){var t=nc(e),n=Ra(e,t);if(null!==n)rc(n,e,t,tc());Gc(e,t);}},Tt=function(){return xt},Dt=function(e,t){var n=xt;try{return xt=e,t()}finally{xt=n;}},ke=function(e,t,r){switch(t){case "input":if(Y(e,r),t=r.name,"radio"===r.type&&null!=t){for(r=e;r.parentNode;)r=r.parentNode;for(r=r.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<r.length;t++){var o=r[t];if(o!==e&&o.form===e.form){var a=ko(o);if(!a)throw Error(n(90));Q(o),Y(o,a);}}}break;case "textarea":ie(e,r);break;case "select":null!=(t=r.value)&&re(e,!!r.multiple,t,false);}},_e=dc,Le=uc;var td={usingClientEntryPoint:false,Events:[So,wo,ko,Ee,Ae,dc]},nd={findFiberByHostInstance:xo,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},rd={bundleType:nd.bundleType,version:nd.version,rendererPackageName:nd.rendererPackageName,rendererConfig:nd.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:v.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ve(e))?null:e.stateNode},findFiberByHostInstance:nd.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var od=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!od.isDisabled&&od.supportsFiber)try{at=od.inject(rd),it=od;}catch(ue){}}return x.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=td,x.createPortal=function(e,t){var r=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!$c(t))throw Error(n(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return {$$typeof:w,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,r)},x.createRoot=function(e,t){if(!$c(e))throw Error(n(299));var r=false,o="",a=Qc;return null!=t&&(true===t.unstable_strictMode&&(r=true),void 0!==t.identifierPrefix&&(o=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=qc(e,1,false,null,0,r,0,o,a),e[fo]=t.current,Hr(8===e.nodeType?e.parentNode:e),new Zc(t)},x.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(n(188));throw e=Object.keys(e).join(","),Error(n(268,e))}return e=null===(e=Ve(t))?null:e.stateNode},x.flushSync=function(e){return uc(e)},x.hydrate=function(e,t,r){if(!Xc(t))throw Error(n(200));return ed(null,e,t,true,r)},x.hydrateRoot=function(e,t,r){if(!$c(e))throw Error(n(405));var o=null!=r&&r.hydratedSources||null,a=false,i="",s=Qc;if(null!=r&&(true===r.unstable_strictMode&&(a=true),void 0!==r.identifierPrefix&&(i=r.identifierPrefix),void 0!==r.onRecoverableError&&(s=r.onRecoverableError)),t=Hc(t,null,e,1,null!=r?r:null,a,0,i,s),e[fo]=t.current,Hr(e),o)for(e=0;e<o.length;e++)a=(a=(r=o[e])._getVersion)(r._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[r,a]:t.mutableSourceEagerHydrationData.push(r,a);return new Jc(t)},x.render=function(e,t,r){if(!Xc(t))throw Error(n(200));return ed(null,e,t,false,r)},x.unmountComponentAtNode=function(e){if(!Xc(e))throw Error(n(40));return !!e._reactRootContainer&&(uc(function(){ed(null,null,e,!1,function(){e._reactRootContainer=null,e[fo]=null;});}),true)},x.unstable_batchedUpdates=dc,x.unstable_renderSubtreeIntoContainer=function(e,t,r,o){if(!Xc(r))throw Error(n(200));if(null==e||void 0===e._reactInternals)throw Error(n(38));return ed(e,t,r,false,o)},x.version="18.3.1-next-f1338f8080-20240426",x}function T(){if(f)return v.exports;return f=1,function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e);}catch(t){console.error(t);}}(),v.exports=C(),v.exports}const D=o(function(){if(b)return y;b=1;var e=T();return y.createRoot=e.createRoot,y.hydrateRoot=e.hydrateRoot,y}());var E,A,_={exports:{}},L={};var P=(A||(A=1,_.exports=function(){if(E)return L;E=1;var e=d(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,o=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:true,ref:true,__self:true,__source:true};function i(e,n,i){var s,l={},c=null,d=null;for(s in void 0!==i&&(c=""+i),void 0!==n.key&&(c=""+n.key),void 0!==n.ref&&(d=n.ref),n)r.call(n,s)&&!a.hasOwnProperty(s)&&(l[s]=n[s]);if(e&&e.defaultProps)for(s in n=e.defaultProps) void 0===l[s]&&(l[s]=n[s]);return {$$typeof:t,type:e,key:c,ref:d,props:l,_owner:o.current}}return L.Fragment=n,L.jsx=i,L.jsxs=i,L}()),_.exports);const N=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("circle",{cx:"12",cy:"12",r:"4"}),
         P.jsx("line",{x1:"12",y1:"2",x2:"12",y2:"4"}),
         P.jsx("line",{x1:"12",y1:"20",x2:"12",y2:"22"}),
         P.jsx("line",{x1:"4.93",y1:"4.93",x2:"6.34",y2:"6.34"}),
         P.jsx("line",{x1:"17.66",y1:"17.66",x2:"19.07",y2:"19.07"}),
         P.jsx("line",{x1:"2",y1:"12",x2:"4",y2:"12"}),
         P.jsx("line",{x1:"20",y1:"12",x2:"22",y2:"12"}),
         P.jsx("line",{x1:"4.93",y1:"19.07",x2:"6.34",y2:"17.66"}),
         P.jsx("line",{x1:"17.66",y1:"6.34",x2:"19.07",y2:"4.93"})]}),M=({size:e=18,color:t="currentColor",className:n=""})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:P.jsx("path",{d:"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"})}),I=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),
         P.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]}),j=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("circle",{cx:"12",cy:"5",r:"2.5"}),
         P.jsx("line",{x1:"12",y1:"7.5",x2:"12",y2:"22"}),
         P.jsx("line",{x1:"7",y1:"10",x2:"17",y2:"10"}),
         P.jsx("path",{d:"M4 14C4 19 8 22 12 22C16 22 20 19 20 14"}),
         P.jsx("path",{d:"M1.5 16.5L4 14L6.5 16.5"}),
         P.jsx("path",{d:"M17.5 16.5L20 14L22.5 16.5"})]}),R=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,children:[
         P.jsx("path",{d:"M2 9V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2H2"}),
         P.jsx("path",{d:"M12 10v6"}),
         P.jsx("path",{d:"m9 13 3 3 3-3"})]}),F=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),
         P.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),z=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("circle",{cx:"12",cy:"12",r:"3"}),
         P.jsx("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"})]}),O=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("polyline",{points:"23 4 23 10 17 10"}),
         P.jsx("path",{d:"M20.49 15a9 9 0 1 1-2.12-9.36L23 10"})]}),B=({size:e=18,color:t="currentColor",className:n=""})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:P.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})}),q=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),
         P.jsx("polyline",{points:"14 2 14 8 20 8"}),
         P.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),
         P.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"}),
         P.jsx("line",{x1:"10",y1:"9",x2:"8",y2:"9"})]}),U=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("path",{d:"M15 4V2"}),
         P.jsx("path",{d:"M15 16V14"}),
         P.jsx("path",{d:"M8 9h2"}),
         P.jsx("path",{d:"M20 9h2"}),
         P.jsx("path",{d:"M17.8 11.8 19 13"}),
         P.jsx("path",{d:"M15 9h0"}),
         P.jsx("path",{d:"M17.8 6.2 19 5"}),
         P.jsx("path",{d:"m3 21 9-9"}),
         P.jsx("path",{d:"M12.2 6.2 11 5"})]}),H=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("path",{d:"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"}),
         P.jsx("circle",{cx:"9",cy:"11",r:"1",fill:t,stroke:"none"}),
         P.jsx("circle",{cx:"12",cy:"11",r:"1",fill:t,stroke:"none"}),
         P.jsx("circle",{cx:"15",cy:"11",r:"1",fill:t,stroke:"none"})]}),W=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),
         P.jsx("polyline",{points:"7 10 12 15 17 10"}),
         P.jsx("line",{x1:"12",y1:"15",x2:"12",y2:"3"})]}),K=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),
         P.jsx("polyline",{points:"17 8 12 3 7 8"}),
         P.jsx("line",{x1:"12",y1:"3",x2:"12",y2:"15"})]}),V=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("circle",{cx:"12",cy:"12",r:"10"}),
         P.jsx("line",{x1:"12",y1:"8",x2:"12",y2:"16"}),
         P.jsx("line",{x1:"8",y1:"12",x2:"16",y2:"12"})]}),G=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("circle",{cx:"12",cy:"12",r:"10"}),
         P.jsx("line",{x1:"8",y1:"12",x2:"16",y2:"12"})]}),Q=({size:e=18,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:t,className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M12 8c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm8.94 3A8.994 8.994 0 0 0 13 3.06V1h-2v2.06A8.994 8.994 0 0 0 3.06 11H1v2h2.06A8.994 8.994 0 0 0 11 20.94V23h2v-2.06A8.994 8.994 0 0 0 20.94 13H23v-2h-2.06zM12 19c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z"})}),Z=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),
         P.jsx("polyline",{points:"5 12 12 5 19 12"})]}),J=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),
         P.jsx("polyline",{points:"19 12 12 19 5 12"})]}),$=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73v.18a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.38a2 2 0 0 0-.73-2.73l-.15-.1a2 2 0 0 1-1-1.72v-.51a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z M12 9a3 3 0 1 0 0 6 3 3 0 0 0 0-6z"})}),X=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M13.5 10.5L21 3 M16 3h5v5 M2 21h5 M12 21a9 9 0 0 0 9-9 9 9 0 0 0-9-9 9 9 0 0 0-9 9c0 4.97 4.03 9 9 9z"})}),Y=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z M14 2v6h6 M16 13H8 M16 17H8 M10 9H8"})}),ee=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z M3.27 6.96L12 12.01l8.73-5.05 M12 22.08V12"})}),te=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z M8 11h8 M12 11v4"})}),ne=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10z M12 16v-4 M12 8h.01"})}),re=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"})}),oe=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M12 2a10 10 0 1 0 10 10A10 10 0 0 0 12 2z M2 12h20 M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})}),ae=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M19 14c1.49-1.46 3-3.21 3-5.5A5.5 5.5 0 0 0 16.5 3c-1.76 0-3 .5-4.5 2-1.5-1.5-2.74-2-4.5-2A5.5 5.5 0 0 0 2 8.5c0 2.3 1.5 4.05 3 5.5l7 7Z"})}),ie=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z M9 12l2 2 4-4"})}),se=({size:e=20,color:t="currentColor",className:n="",style:r,filled:o=false})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:o?t:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"})}),le=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z"})}),ce=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M11 18c0 1.1-.9 2-2 2s-2-.9-2-2 .9-2 2-2 2 .9 2 2zm-2-8c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm6 4c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z"})}),de=({size:e=18,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:t,className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"})}),ue=({size:e=18,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:t,className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm-1 8h-3v3h-2v-3h-3v-2h3V9h2v3h3v2z"})}),he=({size:e=18,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:t,className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M6 2v6h.01L6 8.01 10 12l-4 4 .01.01H6V22h12v-5.99h-.01L18 16l-4-4 4-3.99-.01-.01H18V2H6zm10 14.5V20H8v-3.5l4-4 4 4zm-4-5l-4-4V4h8v3.5l-4 4z"})}),ge=({size:e=18,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:t,className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z"})}),pe=({size:e=20,className:t=""})=>P.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[
         P.jsx("path",{d:"M15 3h6v6"}),
         P.jsx("path",{d:"M9 21H3v-6"}),
         P.jsx("path",{d:"M21 3l-7 7"}),
         P.jsx("path",{d:"M3 21l7-7"})]}),me=({size:e=20,className:t=""})=>P.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[
         P.jsx("path",{d:"M4 14h6v6"}),
         P.jsx("path",{d:"M20 10h-6V4"}),
         P.jsx("path",{d:"M14 10l7-7"}),
         P.jsx("path",{d:"M3 21l7-7"})]}),fe=({size:e=20,className:t=""})=>P.jsx("svg",{width:e,height:e,viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",className:t,children:P.jsx("path",{d:"M606.72 304.64V235.52H346.624l51.712-16.384c-7.168-24.576-25.088-62.464-40.448-90.112l-76.288 22.016c13.824 26.624 27.136 59.904 33.792 84.48H62.976v69.12h94.208C189.44 388.608 230.4 460.8 284.16 519.68c-61.952 48.128-139.264 82.432-232.448 105.984 14.336 15.872 35.328 49.152 43.008 66.048 96.256-27.648 176.128-67.072 242.176-120.832 62.464 52.736 139.776 92.16 233.472 117.248 10.752-19.968 31.744-50.688 47.616-66.048-89.088-20.992-164.352-55.808-225.792-103.424 52.224-57.856 92.672-128 122.88-214.016h91.648z m-171.52 0a474.624 474.624 0 0 1-97.28 165.376c-46.08-47.104-81.92-102.4-107.52-165.376h204.8z m237.568 622.08h-90.112l141.824-414.72h104.448l142.848 414.72h-93.184l-31.232-106.496h-143.872l-30.72 106.496z m100.864-351.744c-11.264 45.568-24.576 92.672-37.888 135.68l-12.8 45.568h105.472l-13.312-45.568c-13.824-43.008-28.672-90.624-41.472-135.68z",fill:"currentColor"})}),be=({size:e=20,className:t="",style:n})=>P.jsx("svg",{width:e,height:e,viewBox:"0 0 1024 1024",version:"1.1",xmlns:"http://www.w3.org/2000/svg",fill:"currentColor",className:t,style:n,children:P.jsx("path",{d:"M512 136.83c-206.88 0-375.17 168.31-375.17 375.17S305.12 887.17 512 887.17 887.17 718.86 887.17 512 718.88 136.83 512 136.83z m265.73 202h-85.94c-12.32-44.9-29.26-84.4-49.88-116.19a319.22 319.22 0 0 1 135.82 116.2zM656.3 512a625.41 625.41 0 0 1-10.54 115.44H378.24a637.45 637.45 0 0 1 0-230.88h267.52A625.41 625.41 0 0 1 656.3 512zM512 829.45c-44.2 0-91.56-54.92-119.52-144.29h239C603.56 774.53 556.2 829.45 512 829.45zM392.48 338.84c28-89.37 75.32-144.29 119.52-144.29s91.56 54.92 119.52 144.29z m-10.39-116.19c-20.62 31.79-37.56 71.29-49.88 116.19h-85.94a319.22 319.22 0 0 1 135.82-116.19z m-165.5 173.91h102.85a709.08 709.08 0 0 0 0 230.88H216.59a313.34 313.34 0 0 1 0-230.88z m29.68 288.6h85.94c12.32 44.9 29.26 84.4 49.88 116.19a319.22 319.22 0 0 1-135.82-116.19z m395.64 116.19c20.62-31.79 37.56-71.29 49.88-116.19h85.94a319.22 319.22 0 0 1-135.82 116.19z m165.5-173.91H704.56a709.08 709.08 0 0 0 0-230.88h102.85a313.34 313.34 0 0 1 0 230.88z",fill:"currentColor"})}),ye=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:[
         P.jsx("rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",ry:"2"}),
         P.jsx("line",{x1:"6",y1:"8",x2:"6",y2:"8"}),
         P.jsx("line",{x1:"10",y1:"8",x2:"10",y2:"8"}),
         P.jsx("line",{x1:"14",y1:"8",x2:"14",y2:"8"}),
         P.jsx("line",{x1:"18",y1:"8",x2:"18",y2:"8"}),
         P.jsx("line",{x1:"6",y1:"12",x2:"6",y2:"12"}),
         P.jsx("line",{x1:"10",y1:"12",x2:"10",y2:"12"}),
         P.jsx("line",{x1:"14",y1:"12",x2:"14",y2:"12"}),
         P.jsx("line",{x1:"18",y1:"12",x2:"18",y2:"12"}),
         P.jsx("line",{x1:"7",y1:"16",x2:"17",y2:"16"})]}),ve=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),
         P.jsx("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"})]}),xe=({size:e=16,className:t="",...n})=>P.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round",className:`more-horizontal-icon ${t}`,...n,children:[
         P.jsx("circle",{cx:"12",cy:"12",r:"1",className:"dot dot-2"}),
         P.jsx("circle",{cx:"19",cy:"12",r:"1",className:"dot dot-3"}),
         P.jsx("circle",{cx:"5",cy:"12",r:"1",className:"dot dot-1"}),
         P.jsx("style",{children:"\n        .more-horizontal-icon .dot {\n          transform-box: fill-box;\n          transform-origin: center;\n          animation: dot-jump 3s infinite;\n        }\n        .more-horizontal-icon .dot-1 {\n          animation-delay: 0s;\n        }\n        .more-horizontal-icon .dot-2 {\n          animation-delay: 0.1s;\n        }\n        .more-horizontal-icon .dot-3 {\n          animation-delay: 0.2s;\n        }\n        @keyframes dot-jump {\n          0%, 90%, 100% { transform: translateY(0); }\n          5% { transform: translateY(-3px); }\n          10% { transform: translateY(0); }\n        }\n      "})]}),Se=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M18 15l-6-6-6 6"})}),we=({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"3",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M6 9l6 6 6-6"})}),ke=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,children:[
         P.jsx("path",{d:"m19 21-7-4-7 4V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z"}),
         P.jsx("path",{d:"m14.5 9-5 5"}),
         P.jsx("path",{d:"m9.5 9 5 5"})]}),Ce=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,children:[
         P.jsx("path",{d:"M12 2H2v10l9.29 9.29c.94.94 2.48.94 3.42 0l6.58-6.58c.94-.94.94-2.48 0-3.42L12 2Z"}),
         P.jsx("path",{d:"M7 7h.01"})]}),Te=({size:e=24,className:t,color:n="currentColor"})=>P.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,style:{color:n},children:[
         P.jsx("circle",{cx:"12",cy:"12",r:"10"}),
         P.jsx("circle",{cx:"12",cy:"12",r:"4"}),
         P.jsx("line",{x1:"21.17",x2:"12",y1:"8",y2:"8"}),
         P.jsx("line",{x1:"3.95",x2:"8.54",y1:"6.06",y2:"14"}),
         P.jsx("line",{x1:"10.88",x2:"15.46",y1:"21.94",y2:"14"})]}),De=({size:e=24,className:t,color:n="currentColor"})=>P.jsx("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,style:{color:n},children:P.jsx("path",{d:"M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4"})}),Ee=({size:e=24,className:t,color:n="currentColor"})=>P.jsxs("svg",{width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:n,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,style:{color:n},children:[
         P.jsx("path",{d:"M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"}),
         P.jsx("polyline",{points:"14 2 14 8 20 8"}),
         P.jsx("path",{d:"m9 15 2 2 4-4"})]}),Ae=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),
         P.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]}),_e=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("polyline",{points:"3 6 5 6 21 6"}),
         P.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"}),
         P.jsx("line",{x1:"10",y1:"11",x2:"10",y2:"17"}),
         P.jsx("line",{x1:"14",y1:"11",x2:"14",y2:"17"})]}),Le=({size:e=18,color:t="currentColor",className:n="",filled:r=false,style:o})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:r?t:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...o},children:[
         P.jsx("line",{x1:"12",y1:"17",x2:"12",y2:"22"}),
         P.jsx("path",{d:"M5 17h14v-1.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V6h1a2 2 0 0 0 0-4H8a2 2 0 0 0 0 4h1v4.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V17z"})]}),Pe=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),
         P.jsx("circle",{cx:"12",cy:"12",r:"3"})]}),Ne=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("circle",{cx:"11",cy:"11",r:"8"}),
         P.jsx("line",{x1:"21",y1:"21",x2:"16.65",y2:"16.65"})]}),Me=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),
         P.jsx("polyline",{points:"5 12 12 5 19 12"})]}),Ie=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),
         P.jsx("polyline",{points:"19 12 12 19 5 12"})]}),je=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("circle",{cx:"12",cy:"12",r:"10"}),
         P.jsx("polyline",{points:"12 6 12 12 16 14"})]}),Re=({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("path",{d:"m12 3-1.912 5.813a2 2 0 0 1-1.275 1.275L3 12l5.813 1.912a2 2 0 0 1 1.275 1.275L12 21l1.912-5.813a2 2 0 0 1 1.275-1.275L21 12l-5.813-1.912a2 2 0 0 1-1.275-1.275L12 3Z"}),
         P.jsx("path",{d:"M5 3v4"}),
         P.jsx("path",{d:"M9 5h4"})]}),Fe=({size:e=18,color:t="currentColor",className:n=""})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:P.jsx("polyline",{points:"20 6 9 17 4 12"})}),ze="prompts",Oe="outline",Be="conversations",qe="settings",Ue="general",He="appearance",We="features",Ke="siteSettings",Ve="globalSearch",Ge="shortcuts",Qe="backup",Ze="permissions",Je="about",$e="outline",Xe="conversations",Ye="prompts",et="tab",tt="content",nt="readingHistory",rt="toolbox",ot="presets",at="custom",it="layout",st="modelLock",lt={"appearance-preset-light":{page:He,subTab:ot},"appearance-preset-dark":{page:He,subTab:ot},"appearance-custom-styles":{page:He,subTab:at}},ct=[{prefix:"panel-",route:{page:Ue,subTab:"panel"}},{prefix:"quick-buttons-",route:{page:Ue,subTab:"shortcuts"}},{prefix:"tools-menu-",route:{page:Ue,subTab:"toolsMenu"}},{prefix:"layout-",route:{page:Ke,subTab:it}},{prefix:"model-lock-",route:{page:Ke,subTab:st}},{prefix:"gemini-",route:{page:Ke,subTab:"gemini"}},{prefix:"aistudio-",route:{page:Ke,subTab:"aistudio"}},{prefix:"chatgpt-",route:{page:Ke,subTab:"chatgpt"}},{prefix:"claude-",route:{page:Ke,subTab:"claude"}},{prefix:"global-search-",route:{page:Ve}},{prefix:"tab-",route:{page:We,subTab:et}},{prefix:"outline-",route:{page:We,subTab:$e}},{prefix:"conversation-",route:{page:We,subTab:Xe}},{prefix:"export-",route:{page:We,subTab:Xe}},{prefix:"prompt-",route:{page:We,subTab:Ye}},{prefix:"reading-history-",route:{page:We,subTab:nt}},{prefix:"content-",route:{page:We,subTab:tt}},{prefix:"appearance-preset-",route:{page:He,subTab:ot}},{prefix:"appearance-custom-",route:{page:He,subTab:at}}],dt={"general.panel.defaultOpen":"panel-default-open","general.panel.defaultPosition":"panel-default-position","general.panel.defaultEdgeDistance":"panel-edge-distance","general.panel.width":"panel-width","general.panel.height":"panel-height","general.panel.edgeSnap":"panel-edge-snap","general.panel.edgeSnapThreshold":"panel-edge-snap-threshold","general.panel.autoHide":"panel-auto-hide","general.shortcuts.quickButtonsOpacity":"quick-buttons-opacity","general.toolsMenu":"tools-menu-scrollTop","siteSettings.layout.pageWidth.enabled":"layout-page-width-enabled","siteSettings.layout.pageWidth.value":"layout-page-width-value","siteSettings.layout.userQueryWidth.enabled":"layout-user-query-width-enabled","siteSettings.layout.userQueryWidth.value":"layout-user-query-width-value","siteSettings.layout.zenMode.enabled":"layout-zen-mode-enabled","siteSettings.modelLock":"model-lock-gemini","globalSearch.promptEnterBehavior":"global-search-prompt-enter-behavior","globalSearch.enableFuzzySearch":"global-search-fuzzy-search","features.tab.openInNewTab":"tab-open-new","features.tab.autoRename":"tab-auto-rename","features.outline.autoUpdate":"outline-auto-update","features.outline.inlineBookmarkMode":"outline-inline-bookmark-mode","features.outline.panelBookmarkMode":"outline-panel-bookmark-mode","features.outline.preventAutoScroll":"outline-prevent-auto-scroll","features.prompts.promptQueue":"prompt-queue","features.export.includeThoughts":"export-include-thoughts","features.readingHistory.persistence":"reading-history-persistence","features.content.formulaCopy":"content-formula-copy","panel.preventAutoScroll":"outline-prevent-auto-scroll","content.markdownFix":"gemini-markdown-fix","content.watermarkRemoval":"gemini-watermark-removal","geminiEnterprise.policyRetry.enabled":"gemini-policy-retry","geminiEnterprise.policyRetry.maxRetries":"gemini-policy-max-retries","aistudio.collapseNavbar":"aistudio-collapse-navbar","aistudio.collapseRunSettings":"aistudio-collapse-run-settings","aistudio.collapseTools":"aistudio-collapse-tools","aistudio.collapseAdvanced":"aistudio-collapse-advanced","aistudio.enableSearch":"aistudio-enable-search","aistudio.removeWatermark":"aistudio-remove-watermark","aistudio.markdownFix":"aistudio-markdown-fix","chatgpt.markdownFix":"chatgpt-markdown-fix","claude.sessionKeys":"claude-session-keys","appearance.presets.light":"appearance-preset-light","appearance.presets.dark":"appearance-preset-dark","appearance.custom.styles":"appearance-custom-styles"},ut=e=>{const t=e?.trim();if(t)return dt[t]??t},ht=e=>{const t=ut(e);if(t)return lt[t]?lt[t]:ct.find(e=>t.startsWith(e.prefix))?.route},gt=[{settingId:"panel-default-open",title:"默认显示面板",keywords:["panel","default open","默认打开"]},{settingId:"panel-default-position",title:"默认位置",keywords:["panel","left","right","默认侧边"]},{settingId:"panel-edge-distance",title:"默认边距",keywords:["panel","edge distance","margin"]},{settingId:"panel-width",title:"面板宽度",keywords:["panel width","宽度"]},{settingId:"panel-height",title:"面板高度",keywords:["panel height","高度"]},{settingId:"panel-edge-snap",title:"边缘自动吸附",keywords:["snap","edge","吸附"]},{settingId:"panel-edge-snap-threshold",title:"边缘吸附阈值",keywords:["snap threshold","edge snap","吸附阈值"]},{settingId:"panel-auto-hide",title:"自动隐藏面板",keywords:["auto hide","panel"]},{settingId:"quick-buttons-opacity",title:"快捷按钮透明度",keywords:["quick buttons","opacity","透明度"]},{settingId:"tools-menu-export",title:"工具箱:显示导出按钮",keywords:["tools menu","export","工具箱","导出"]},{settingId:"tools-menu-copyMarkdown",title:"工具箱:显示复制 Markdown",keywords:["tools menu","copy","markdown","工具箱"]},{settingId:"tools-menu-move",title:"工具箱:显示移动按钮",keywords:["tools menu","move","folder","工具箱"]},{settingId:"tools-menu-setTag",title:"工具箱:显示标签按钮",keywords:["tools menu","tag","标签","工具箱"]},{settingId:"tools-menu-scrollLock",title:"工具箱:显示滚动锁定",keywords:["tools menu","scroll lock","锁定滚动","工具箱"]},{settingId:"tools-menu-modelLock",title:"工具箱:显示模型锁定",keywords:["tools menu","model lock","模型锁定","工具箱"]},{settingId:"tools-menu-cleanup",title:"工具箱:显示清理按钮",keywords:["tools menu","cleanup","清理","工具箱"]},{settingId:"tools-menu-settings",title:"工具箱:显示设置按钮",keywords:["tools menu","settings","设置","工具箱"]},{settingId:"tab-open-new",title:"新会话打开方式",keywords:["tab","new conversation","open in new tab","新标签页"]},{settingId:"tab-auto-rename",title:"自动重命名标签页",keywords:["tab","auto rename","自动命名"]},{settingId:"tab-rename-interval",title:"标签页重命名间隔",keywords:["tab","rename interval","重命名间隔"]},{settingId:"tab-title-format",title:"标签页标题格式",keywords:["tab","title format","标题模板"]},{settingId:"tab-show-status",title:"显示状态图标",keywords:["tab","status","状态图标"]},{settingId:"tab-show-notification",title:"启用新消息通知",keywords:["tab","notification","消息提醒"]},{settingId:"tab-notification-sound",title:"通知音效",keywords:["tab","notification sound","声音提醒"]},{settingId:"tab-notification-volume",title:"通知音量",keywords:["tab","notification volume","音量"]},{settingId:"tab-notify-when-focused",title:"标签页聚焦时也提醒",keywords:["tab","focused","notify","聚焦提醒"]},{settingId:"tab-auto-focus",title:"自动聚焦到对话页",keywords:["tab","auto focus","自动聚焦"]},{settingId:"tab-privacy-mode",title:"隐私模式",keywords:["tab","privacy","隐私"]},{settingId:"tab-privacy-title",title:"隐私模式标题",keywords:["tab","privacy title","隐私标题"]},{settingId:"outline-auto-update",title:"自动更新大纲",keywords:["outline","auto update","自动刷新"]},{settingId:"outline-update-interval",title:"大纲更新间隔",keywords:["outline","interval","刷新频率"]},{settingId:"outline-follow-mode",title:"自动跟随浏览位置",keywords:["outline","follow","自动跟随"]},{settingId:"outline-show-word-count",title:"显示字数统计",keywords:["outline","word count","字数"]},{settingId:"outline-inline-bookmark-mode",title:"内联收藏模式",keywords:["outline","bookmark","收藏","inline"]},{settingId:"outline-panel-bookmark-mode",title:"面板收藏模式",keywords:["outline","bookmark","收藏","panel"]},{settingId:"outline-prevent-auto-scroll",title:"阻止自动滚动页面",keywords:["outline","auto scroll","禁止滚动"]},{settingId:"conversation-folder-rainbow",title:"会话文件夹彩虹色",keywords:["conversation","folder","rainbow","文件夹颜色"]},{settingId:"conversation-sync-unpin",title:"同步时自动取消置顶",keywords:["conversation","sync","unpin","置顶"]},{settingId:"export-custom-user-name",title:"导出:自定义用户名称",keywords:["export","user name","导出用户名"]},{settingId:"export-custom-model-name",title:"导出:自定义模型名称",keywords:["export","model name","导出模型名"]},{settingId:"export-filename-timestamp",title:"导出文件名包含时间戳",keywords:["export","filename","timestamp","时间戳"]},{settingId:"export-include-thoughts",title:"导出包含思维链",keywords:["export","thoughts","reasoning","thinking","思维链","思路","推理"]},{settingId:"export-images-base64",title:"导出时将图片转 Base64",keywords:["export","image","base64","图片"]},{settingId:"prompt-double-click-send",title:"提示词双击发送",keywords:["prompt","double click","send","双击发送"]},{settingId:"prompt-queue",title:"提示词队列",keywords:["prompt","queue","提示词队列","连续提问"]},{settingId:"reading-history-persistence",title:"阅读记录持久化",keywords:["reading history","persistence","持久化"]},{settingId:"reading-history-auto-restore",title:"自动恢复阅读位置",keywords:["reading history","restore","恢复位置"]},{settingId:"reading-history-cleanup-days",title:"阅读记录清理天数",keywords:["reading history","cleanup","days","清理周期"]},{settingId:"content-user-query-markdown",title:"用户问题复制为 Markdown",keywords:["content","markdown","user query","用户问题"]},{settingId:"content-formula-copy",title:"公式复制增强",keywords:["content","formula","copy","数学公式"]},{settingId:"content-formula-delimiter",title:"公式分隔符",keywords:["content","formula delimiter","分隔符"]},{settingId:"content-table-copy",title:"表格复制增强",keywords:["content","table copy","复制表格"]},{settingId:"layout-page-width-enabled",title:"页面宽度覆盖",keywords:["layout","page width","页面宽度"]},{settingId:"layout-page-width-value",title:"页面宽度值",keywords:["layout","page width value","页面宽度值"]},{settingId:"layout-user-query-width-enabled",title:"用户问题宽度覆盖",keywords:["layout","user query width","提问宽度"]},{settingId:"layout-user-query-width-value",title:"用户问题宽度值",keywords:["layout","user query width value","提问宽度值"]},{settingId:"layout-zen-mode-enabled",title:"布局:启用禅模式 (Zen Mode)",keywords:["layout","zen mode","禅模式","disclaimer","免责声明","隐藏"]},{settingId:"model-lock-gemini",title:"模型锁定:Gemini",keywords:["model lock","gemini","模型锁定"]},{settingId:"model-lock-gemini-enterprise",title:"模型锁定:Gemini Enterprise",keywords:["model lock","gemini enterprise","模型锁定"]},{settingId:"model-lock-aistudio",title:"模型锁定:AI Studio",keywords:["model lock","aistudio","模型锁定"]},{settingId:"model-lock-chatgpt",title:"模型锁定:ChatGPT",keywords:["model lock","chatgpt","模型锁定"]},{settingId:"model-lock-claude",title:"模型锁定:Claude",keywords:["model lock","claude","模型锁定"]},{settingId:"model-lock-grok",title:"模型锁定:Grok",keywords:["model lock","grok","模型锁定"]},{settingId:"gemini-markdown-fix",title:"Gemini:Markdown 修复",keywords:["gemini","markdown","fix","修复"]},{settingId:"gemini-watermark-removal",title:"Gemini:去水印",keywords:["gemini","watermark","去水印"]},{settingId:"gemini-policy-retry",title:"Gemini:策略重试",keywords:["gemini","policy retry","策略重试"]},{settingId:"gemini-policy-max-retries",title:"Gemini:最大重试次数",keywords:["gemini","max retries","最大重试"]},{settingId:"aistudio-collapse-navbar",title:"AI Studio:折叠左侧导航",keywords:["aistudio","collapse navbar","折叠导航"]},{settingId:"aistudio-collapse-run-settings",title:"AI Studio:折叠 Run settings",keywords:["aistudio","run settings","折叠运行设置"]},{settingId:"aistudio-collapse-tools",title:"AI Studio:折叠 Tools",keywords:["aistudio","tools","折叠工具"]},{settingId:"aistudio-collapse-advanced",title:"AI Studio:折叠 Advanced",keywords:["aistudio","advanced","折叠高级选项"]},{settingId:"aistudio-enable-search",title:"AI Studio:启用搜索",keywords:["aistudio","search","启用搜索"]},{settingId:"aistudio-remove-watermark",title:"AI Studio:去水印",keywords:["aistudio","watermark","去水印"]},{settingId:"aistudio-markdown-fix",title:"AI Studio:Markdown 修复",keywords:["aistudio","markdown","fix","修复"]},{settingId:"chatgpt-markdown-fix",title:"ChatGPT:Markdown 修复",keywords:["chatgpt","markdown","fix","修复"]},{settingId:"claude-session-keys",title:"Claude:Session Keys",keywords:["claude","session key","token","密钥"]},{settingId:"global-search-prompt-enter-behavior",title:"全局搜索:提示词回车行为",keywords:["global search","prompt","enter","全局搜索","提示词","回车"]},{settingId:"global-search-fuzzy-search",title:"Global Search: Enable fuzzy search",keywords:["global search","fuzzy","search everywhere","matching"]},{settingId:"appearance-preset-light",title:"浅色主题预设",keywords:["appearance","theme","light","浅色"]},{settingId:"appearance-preset-dark",title:"深色主题预设",keywords:["appearance","theme","dark","深色"]},{settingId:"appearance-custom-styles",title:"自定义主题样式",keywords:["appearance","custom style","主题样式","css"]}],pt=Object.entries(dt).reduce((e,[t,n])=>(e[n]||(e[n]=[]),e[n].push(t),e),{}),mt=e=>e.trim().toLowerCase(),ft=(e,t)=>{const n=mt(e),r=(e=>mt(e).split(" ").map(e=>e.trim()).filter(e=>e.length>0))(n);return gt.map((e,t)=>{const o=mt(e.title),a=mt((e.keywords||[]).join(" ")),i=mt(e.settingId),s=mt((pt[e.settingId]||[]).join(" ")),l=`${o} ${a} ${i} ${s}`;if(r.some(e=>!l.includes(e)))return null;let c=0;return n?(o===n&&(c+=200),o.startsWith(n)&&(c+=120),o.includes(n)&&(c+=80),a.includes(n)&&(c+=70),i.includes(n)&&(c+=60),s.includes(n)&&(c+=50),r.forEach(e=>{o.startsWith(e)&&(c+=16),o.includes(e)&&(c+=8),a.includes(e)&&(c+=6),i.includes(e)&&(c+=5),s.includes(e)&&(c+=4);}),c+=Math.max(0,24-Math.min(24,o.length))):c=1e3-t,{item:e,score:c,index:t}}).filter(e=>!!e).sort((e,t)=>t.score!==e.score?t.score-e.score:e.index-t.index).map(({item:e})=>e)},bt={[ze]:{label:"tabPrompts",icon:"✏️",IconComponent:U},[Be]:{label:"tabConversations",icon:"💬",IconComponent:H},[Oe]:{label:"tabOutline",icon:"📑",IconComponent:q},[qe]:{label:"tabSettings",icon:"⚙️"}},yt={scrollTop:{icon:"⬆",labelKey:"scrollTop",canToggle:false,isPanelOnly:false,IconComponent:Z},panel:{icon:"✨",labelKey:"panelTitle",canToggle:false,isPanelOnly:true},floatingToolbar:{icon:"🧰",labelKey:"tools",canToggle:true,isPanelOnly:false,IconComponent:({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("ellipse",{cx:"12",cy:"12",rx:"10",ry:"4",stroke:"currentColor",strokeWidth:"1.5",transform:"rotate(0 12 12)"}),
         P.jsx("ellipse",{cx:"12",cy:"12",rx:"10",ry:"4",stroke:"currentColor",strokeWidth:"1.5",transform:"rotate(60 12 12)"}),
         P.jsx("ellipse",{cx:"12",cy:"12",rx:"10",ry:"4",stroke:"currentColor",strokeWidth:"1.5",transform:"rotate(120 12 12)"}),
         P.jsx("circle",{cx:"12",cy:"12",r:"3",fill:"currentColor",stroke:"none"})]})},globalSearch:{icon:"🔎",labelKey:"navGlobalSearch",canToggle:true,isPanelOnly:false,IconComponent:Ne},anchor:{icon:"⚓",canToggle:true,labelKey:"showCollapsedAnchorLabel",isPanelOnly:false,IconComponent:j},theme:{icon:"☀",labelKey:"showCollapsedThemeLabel",canToggle:true,isPanelOnly:false},manualAnchor:{icon:"📍",labelKey:"manualAnchorLabel",canToggle:true,isPanelOnly:false,isGroup:true,IconComponent:({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block"},children:[
         P.jsx("path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0"}),
         P.jsx("line",{x1:"12",y1:"7",x2:"12",y2:"13"}),
         P.jsx("line",{x1:"9",y1:"10",x2:"15",y2:"10"})]})},scrollBottom:{icon:"⬇",labelKey:"scrollBottom",canToggle:false,isPanelOnly:false,IconComponent:J}},vt=["📁","📂","📥","🗂️","📊","📈","📉","📋","💼","📅","📌","📎","📝","✒️","🔍","💡","💻","⌨️","🖥️","🖱️","🐛","🔧","🔨","⚙️","🤖","👾","🧠","⚡","🔥","✨","🎓","📚","🎨","🎭","🎬","🎹","🎵","📷","🖌️","🖍️","🏠","🛒","✈️","🎮","⚽","🍔","☕","❤️","🔴","🟠","🟡","🟢","🔵","🟣","⚫","⚪","⭐","🌟","🎉","🔒","🔑","🚫","✅","❓"],xt=["#FF461F","#FF6B6B","#FA8072","#DC143C","#CD5C5C","#FF4500","#FFA500","#FFB347","#F0E68C","#DAA520","#FFD700","#9ACD32","#32CD32","#3CB371","#20B2AA","#00CED1","#5F9EA0","#4682B4","#6495ED","#4169E1","#0000CD","#8A2BE2","#9370DB","#BA55D3","#DB7093","#C71585","#8B4513","#A0522D","#708090","#2F4F4F"],St=1500,wt=2e3,kt=3e3,Ct="#10b981",Tt="#ef4444",Dt="var(--gh-text-secondary)",Et="scrollTop",At="scrollBottom",_t="goToAnchor",Lt="togglePanel",Pt="toggleTheme",Nt="openSettings",Mt="switchTab1",It="switchTab2",jt="switchTab3",Rt="toggleUserQueries",Ft="onlyUserQueries",zt="toggleBookmarks",Ot="locateOutline",Bt="searchOutline",qt="refreshOutline",Ut="prevHeading",Ht="nextHeading",Wt="toggleOutlineExpand",Kt="expandLevel1",Vt="expandLevel2",Gt="expandLevel3",Qt="expandLevel4",Zt="expandLevel5",Jt="expandLevel6",$t="newConversation",Xt="refreshConversations",Yt="locateConversation",en="prevConversation",tn="nextConversation",nn="exportConversation",rn="copyLatestReply",on="copyLastCodeBlock",an="toggleScrollLock",sn="focusInput",ln="stopGeneration",cn="togglePromptQueue",dn="showShortcuts",un="showModelSelector",hn="openClaudeSettings",gn="switchClaudeKey",pn="openGeminiSettings",mn="openThemeSettings",fn="openModelLockSettings",bn={scrollTop:{labelKey:"shortcutScrollTop",label:"去顶部",category:"navigation"},scrollBottom:{labelKey:"shortcutScrollBottom",label:"去底部",category:"navigation"},goToAnchor:{labelKey:"shortcutGoToAnchor",label:"返回锚点",category:"navigation"},togglePanel:{labelKey:"shortcutTogglePanel",label:"展开/收起面板",category:"panel"},toggleTheme:{labelKey:"shortcutToggleTheme",label:"切换主题",category:"panel"},switchTab1:{labelKey:"shortcutSwitchTab1",label:"切换到第 1 个标签",category:"panel"},switchTab2:{labelKey:"shortcutSwitchTab2",label:"切换到第 2 个标签",category:"panel"},switchTab3:{labelKey:"shortcutSwitchTab3",label:"切换到第 3 个标签",category:"panel"},toggleUserQueries:{labelKey:"shortcutToggleUserQueries",label:"显示用户问题",category:"outline"},onlyUserQueries:{labelKey:"shortcutOnlyUserQueries",label:"只显示用户问题",category:"outline"},toggleBookmarks:{labelKey:"shortcutToggleBookmarks",label:"显示用户收藏",category:"outline"},locateOutline:{labelKey:"shortcutLocateOutline",label:"定位大纲",category:"outline"},searchOutline:{labelKey:"shortcutSearchOutline",label:"搜索大纲",category:"outline"},prevHeading:{labelKey:"shortcutPrevHeading",label:"上一个标题",category:"outline"},nextHeading:{labelKey:"shortcutNextHeading",label:"下一个标题",category:"outline"},refreshOutline:{labelKey:"shortcutRefreshOutline",label:"刷新大纲",category:"outline"},toggleOutlineExpand:{labelKey:"shortcutToggleOutlineExpand",label:"展开/折叠全部",category:"outline"},expandLevel1:{labelKey:"shortcutExpandLevel1",label:"展开到 1 级",category:"outline"},expandLevel2:{labelKey:"shortcutExpandLevel2",label:"展开到 2 级",category:"outline"},expandLevel3:{labelKey:"shortcutExpandLevel3",label:"展开到 3 级",category:"outline"},expandLevel4:{labelKey:"shortcutExpandLevel4",label:"展开到 4 级",category:"outline"},expandLevel5:{labelKey:"shortcutExpandLevel5",label:"展开到 5 级",category:"outline"},expandLevel6:{labelKey:"shortcutExpandLevel6",label:"展开到 6 级",category:"outline"},newConversation:{labelKey:"shortcutNewConversation",label:"新会话",category:"conversation"},refreshConversations:{labelKey:"shortcutRefreshConversations",label:"刷新会话列表",category:"conversation"},locateConversation:{labelKey:"shortcutLocateConversation",label:"定位当前会话",category:"conversation"},prevConversation:{labelKey:"shortcutPrevConversation",label:"上一个会话",category:"conversation"},nextConversation:{labelKey:"shortcutNextConversation",label:"下一个会话",category:"conversation"},exportConversation:{labelKey:"shortcutExportConversation",label:"导出对话",category:"edit"},copyLatestReply:{labelKey:"shortcutCopyLatestReply",label:"复制最新回复",category:"edit"},copyLastCodeBlock:{labelKey:"shortcutCopyLastCodeBlock",label:"复制最后代码块",category:"edit"},toggleScrollLock:{labelKey:"shortcutToggleScrollLock",label:"锁定滚动",category:"edit"},focusInput:{labelKey:"shortcutFocusInput",label:"聚焦输入框",category:"edit"},stopGeneration:{labelKey:"shortcutStopGeneration",label:"停止生成",category:"edit"},togglePromptQueue:{labelKey:"shortcutTogglePromptQueue",label:"显示/隐藏提示词队列",category:"edit"},showModelSelector:{labelKey:"shortcutShowModelSelector",label:"模型选择菜单",category:"edit"},openSettings:{labelKey:"shortcutOpenSettings",label:"打开设置",category:"settings"},showShortcuts:{labelKey:"shortcutShowShortcuts",label:"快捷键一览",category:"settings"},openThemeSettings:{labelKey:"shortcutOpenThemeSettings",label:"打开外观主题",category:"settings"},openModelLockSettings:{labelKey:"shortcutOpenModelLockSettings",label:"打开模型锁定",category:"settings"},openGeminiSettings:{labelKey:"shortcutOpenGeminiSettings",label:"打开 Gemini 专属",category:"settings"},openClaudeSettings:{labelKey:"shortcutOpenClaudeSettings",label:"打开 Claude 专属",category:"settings"},switchClaudeKey:{labelKey:"shortcutSwitchClaudeKey",label:"一键切换可用 Claude Key",category:"settings"}},yn={navigation:{labelKey:"shortcutCategoryNavigation",label:"导航"},panel:{labelKey:"shortcutCategoryPanel",label:"面板"},outline:{labelKey:"shortcutCategoryOutline",label:"大纲"},conversation:{labelKey:"shortcutCategoryConversation",label:"会话"},edit:{labelKey:"shortcutCategoryEdit",label:"交互控制"},settings:{labelKey:"shortcutCategorySettings",label:"设置"}},vn={scrollTop:{key:"t",alt:true},scrollBottom:{key:"b",alt:true},goToAnchor:{key:"z",alt:true},togglePanel:{key:"p",alt:true},toggleTheme:{key:"d",alt:true},switchTab1:{key:"1",alt:true},switchTab2:{key:"2",alt:true},switchTab3:{key:"3",alt:true},refreshOutline:{key:"r",alt:true},toggleOutlineExpand:{key:"e",alt:true},expandLevel1:{key:"1",alt:true,shift:true},expandLevel2:{key:"2",alt:true,shift:true},expandLevel3:{key:"3",alt:true,shift:true},expandLevel4:{key:"4",alt:true,shift:true},expandLevel5:{key:"5",alt:true,shift:true},expandLevel6:{key:"6",alt:true,shift:true},toggleUserQueries:{key:"q",alt:true},toggleBookmarks:{key:"c",alt:true},onlyUserQueries:{key:"q",alt:true,shift:true},prevHeading:{key:"ArrowUp",alt:true},nextHeading:{key:"ArrowDown",alt:true},locateOutline:{key:"l",alt:true},searchOutline:{key:"f",alt:true},newConversation:{key:"o",ctrl:true,shift:true},refreshConversations:{key:"r",alt:true,shift:true},locateConversation:{key:"l",alt:true,shift:true},prevConversation:{key:"[",alt:true},nextConversation:{key:"]",alt:true},exportConversation:{key:"e",ctrl:true,shift:true},copyLatestReply:{key:"c",ctrl:true,shift:true},copyLastCodeBlock:{key:";",alt:true},toggleScrollLock:{key:"s",alt:true},focusInput:{key:"i",alt:true},stopGeneration:{key:"k",alt:true},togglePromptQueue:{key:"j",alt:true},showModelSelector:{key:"/",alt:true},showShortcuts:{key:"\\",alt:true},openSettings:{key:",",alt:true},openClaudeSettings:{key:"c",ctrl:true,alt:true},switchClaudeKey:{key:"s",ctrl:true,alt:true},openGeminiSettings:{key:"g",ctrl:true,alt:true},openThemeSettings:{key:"t",ctrl:true,alt:true},openModelLockSettings:{key:"l",ctrl:true,alt:true}},xn={enabled:true,globalUrl:"https://gemini.google.com",keybindings:vn};function Sn(){return "undefined"!=typeof navigator&&/Mac|iPhone|iPad|iPod/.test(navigator.platform)}const wn={"zh-CN":{panelTitle:"Ophel",welcomeSlogan:"AI 之益,触手可及",disclaimerTitle:"声明",disclaimerText:"本插件为通用辅助工具,无法涵盖特定站点的所有独有功能。插件依赖于第三方站点的页面结构和布局,如果原网站更新导致功能失效,请前往 GitHub 提交 Issue 反馈,我们将尽快修复。",disclaimerWarning:"请勿因第三方站点改版导致的问题在应用商店给出差评,感谢您的理解与支持!",communityMotto:"一个人可以走得很快,但一群人可以走得更远。",welcomeJoin:"欢迎",agreeButton:"我已知晓并同意",tabPrompts:"提示词",tabSettings:"设置",navGeneral:"基本设置",navSiteSettings:"站点配置",navGlobalSearch:"全局搜索",navAppearance:"外观主题",navPageContent:"页面与内容",navFeatures:"功能模块",navPermissions:"权限管理",navBackup:"数据管理",navAbout:"关于",siteSettingsPageDesc:"配置站点相关的页面布局和内容处理",generalPageDesc:"配置扩展的基本行为和界面",appearancePageDesc:"自定义扩展的视觉样式和主题",pageContentPageDesc:"调整页面布局和内容显示样式",featuresPageDesc:"配置扩展的各项功能模块",permissionsPageDesc:"查看和管理扩展的权限。",backupPageDesc:"管理数据备份和云端同步",aboutPageDesc:"AI 之益,触手可及",tsPlasmoDesc:"浏览器扩展框架",tsReactDesc:"用户界面库",tsTypescriptDesc:"强类型 JavaScript",tsZustandDesc:"状态管理",tsViteDesc:"前端构建工具",optionalPermissions:"可选权限",optionalPermissionsDesc:"这些权限可以按需授予或撤销",requiredPermissions:"必需权限",requiredPermissionsDesc:"这些权限是扩展正常运行所必需的,无法关闭",permissionsSyncHint:"权限状态与浏览器同步,如在此页面外修改请点击刷新。",refreshStatus:"刷新状态",refreshing:"刷新中...",permissionsRefreshed:"权限状态已刷新",granted:"已授予",notGranted:"未授予",revoke:"撤销",grant:"授予",allowRecommended:"允许(推荐)",required:"必需",permissionWebdavAccess:"高级功能访问权限",permissionWebdavAccessDesc:"允许连接所有网站。用于 WebDAV 云端备份同步以及移除 AI 图片水印等高级功能。",permissionStorage:"存储",permissionStorageDesc:"存储用户设置和数据",permissionNotifications:"通知",permissionNotificationsDesc:"显示桌面通知",permissionCookies:"Cookie管理",permissionCookiesDesc:"管理Claude站点Cookie,用于快速切换SessionKey",permissionTabs:"标签页",permissionTabsDesc:"可选权限。用于检测当前标签页状态和管理会话。",permissionDNR:"网络请求规则",permissionDNRDesc:"可选权限。用于修改请求头以移除图片水印等功能。",generalTab:"通用",tabSettingsTab:"标签页",generalSettings:"通用设置",panelTab:"面板",tabOrderTab:"界面排版",shortcutsTab:"快捷按钮",panelSettings:"面板设置",themePresetsTab:"主题预置",customStylesTab:"自定义样式",pleaseEnterStyleName:"请输入样式名称",enterStyleName:"输入样式名称",lightMode:"浅色模式",darkMode:"深色模式",code:"代码",create:"创建",unnamedStyle:"未命名样式",layoutTab:"页面布局",contentStyleTab:"内容处理",claudeSettingsTab:"Claude 专属",pageWidthSettings:"页面宽度",moreLanguages:"更多语言",layoutSettingsTitle:"页面宽度控制",tabLayout:"页面布局",tabModelLock:"模型锁定",tabGemini:"Gemini",enablePageWidthDesc:"调整聊天页面的最大宽度",userQueryWidthSettings:"用户问题宽度",scrollSettings:"滚动设置",contentProcessing:"内容处理",contentProcessingDesc:"配置 AI 回复内容的处理方式",interactionEnhance:"交互增强",interactionEnhanceDesc:"增强公式和表格的交互功能",exportSettings:"导出设置",outlineSettingsDesc:"配置大纲生成和跟随行为",outlineUpdateIntervalDesc:"大纲自动更新的时间间隔(秒)",conversationsSettingsDesc:"配置会话同步和显示行为",readingHistoryDesc:"记录和恢复会话阅读位置",day:"天",days:"天",forever:"永久",localBackupTab:"本地备份",webdavTab:"WebDAV 同步",localBackupDesc:"将数据导出为 JSON 文件保存到本地",webdavServerDesc:"配置 WebDAV 服务器用于云端备份",backupManagementDesc:"测试连接、上传备份或从云端恢复",allDataCleared:"所有数据已清除,即将刷新页面...",clearError:"清除失败",webdavBackupList:"WebDAV 备份列表",noBackupsFound:"未找到备份文件",loading:"加载中...",exportData:"导出数据",exportDataDesc:"将数据导出为 JSON 文件进行备份",importData:"导入数据",importDataDesc:"从备份文件恢复数据",fullBackup:"完整备份",fullBackupDesc:"导出所有账号数据和用户设置,推荐用于完整备份",promptsBackup:"仅提示词",promptsBackupDesc:"仅导出提示词库数据(不含标签与文件夹)",settingsBackup:"仅设置",settingsBackupDesc:"仅导出界面设置和偏好配置",selectFile:"选择文件",noFileSelected:"未选择任何文件",dataPreview:"数据预览",pastePlaceholder:"粘贴 JSON 数据或通过上面的文件选择器导入...",importBtn:"导入",webdavConfig:"WebDAV 配置",webdavConfigDesc:"配置 WebDAV 并上传/下载备份文件",webdavAddress:"WebDAV 地址",username:"用户名",password:"密码",saveConfig:"保存配置",saveSuccess:"配置已保存",backupEncryption:"备份加密",backupEncryptionDesc:"使用密码加密上传的备份。恢复时需要同一密码。",encryptionPassword:"加密密码",encryptionPasswordPlaceholder:"用于加密上传与解密下载的备份",restoreTip:"恢复提示",restoreTipContent:"从 WebDAV 恢复时,会导入备份数据,但不会覆盖当前设备的 WebDAV 连接/加密设置,以避免误切换 WebDAV 目标或覆盖鉴权/加密密码导致后续备份与恢复失败。如需恢复 WebDAV 配置,请使用手动导入。",version:"版本",aboutDescription:"{appName} 是一款专为 Gemini、ChatGPT、Claude、AI Studio、Grok 等 AI 平台打造的浏览器增强扩展。它为您提供会话管理与导出、智能大纲导航、提示词指令库等效率工具,同时具备阅读进度恢复、双向锚点定位、水印移除、排版修复、公式复制及模型锁定等实用功能,并支持深度自定义主题与页面美化,让您的 AI 交互体验更加流畅愉悦。",projectLinks:"项目链接",communityAndSupport:"社区与支持",githubDesc:"查看源代码、提交问题或参与项目开发",giveStar:"点个 Star",projectWebsite:"项目官网",websiteDesc:"查看详细文档、使用指南和更多信息",visitWebsite:"访问官网",rateAndReview:"好评鼓励",rateDesc:"如果您喜欢 Ophel,请在应用商店给我们一个五星好评,这是我们更新的最大动力!",chromeStore:"Chrome 商店",firefoxAddons:"Firefox 扩展",greasyFork:"Greasy Fork",reviewBtn:"评分",starBtn:"Star",credits:"版权与致谢",devAndMaintain:"开发与维护",creditsDesc:"感谢所有为开源社区做出贡献的开发者们,本插件的开发得益于这些优秀的开源项目和工具。",privacyTitle:"隐私保护",reportIssue:"报告问题",changelog:"更新日志",techStack:"技术栈",privacyStatement:"隐私声明",privacyText:"本扩展的所有数据均存储在您的浏览器本地,不会上传到任何远程服务器。WebDAV 同步功能由您自行配置的服务器处理,扩展不会收集或存储您的任何个人信息。",license:"开源协议",tabBehaviorTitle:"标签页行为",notificationSettings:"完成后操作",enablePrerequisiteToast:"请先开启「{setting}」",privacyModeTitle:"隐私模式",collapsedButtonsOrderTitle:"快捷按钮组",quickButtonsOpacityLabel:"快捷按钮透明度",quickButtonsOpacityDesc:"调整快捷按钮组整体透明度",searchPlaceholder:"搜索提示词...",addPrompt:"添加提示词",allCategory:"全部",uncategorized:"未分类",manageCategory:"⚙ 管理",currentPrompt:"当前提示词:",scrollTop:"顶部",scrollBottom:"底部",cancel:"取消",confirm:"确定",save:"保存",delete:"删除",edit:"编辑",export:"导出",clear:"清除",error:"错误",operationFailed:"操作失败",deleteSuccess:"删除成功",deleteError:"删除失败",restoreError:"恢复失败",insertFailed:"插入失败",maximize:"最大化",browse:"浏览...",clearAllData:"清除全部数据",clearAllDataDesc:"慎重操作:这将清除本地所有设置、提示词和会话数据",clearAllDataConfirm:"确定要清除所有数据吗?此操作不可逆,所有设置、提示词、会话等数据都将被删除!",clearSuccess:"数据已清除,即将刷新...",defaultDir:"默认目录",dangerZone:"危险区域",dangerZoneDesc:"破坏性操作(不可恢复)",drag:"拖动",refresh:"刷新",collapse:"收起",copy:"复制",addBookmark:"添加收藏",removeBookmark:"移除收藏",bookmarkContentMissing:"收藏内容已被删除或折叠",bookmarkMode:"收藏",outlineNoBookmarks:"暂无收藏",outlineAddBookmarkHint:"点击条目旁的星号添加收藏",bookmarkModeDisabled:"收藏模式下不可用",close:"关闭",add:"添加",anchorPoint:"锚点",updateAnchor:"更新锚点",title:"标题",category:"分类",categoryPlaceholder:"例如:编程、翻译",content:"提示词内容",editPrompt:"编辑提示词",addNewPrompt:"添加新提示词",fillTitleContent:"请填写标题和内容",promptUpdated:"提示词已更新",promptAdded:"提示词已添加",deleted:"已删除",promptPin:"置顶",promptUnpin:"取消置顶",promptVariableTitle:"填写变量",promptVariablePlaceholder:"请输入",promptImport:"导入",promptExport:"导出",promptImportTitle:"导入提示词",promptImportMessage:"选择「确认」将覆盖现有提示词,选择「取消」将合并导入",promptImportSuccess:"导入成功",promptImportFailed:"导入失败",promptExportSuccess:"导出成功",promptRecentUsed:"最近使用",promptMarkdownPreview:"预览",promptImportMessage2:"发现 {count} 个提示词,请选择导入方式:",promptImportOverwriteDesc:"覆盖:清空现有,使用导入的",promptImportMergeDesc:"合并:相同ID更新,新ID追加",promptMerge:"合并",promptOverwrite:"覆盖",promptMergeSuccess:"已合并:更新 {updated} 个,新增 {added} 个",promptSettingsTitle:"提示词设置",promptSettingsDesc:"配置提示词 Tab 的交互行为",promptSubmitShortcutLabel:"发送快捷键",promptSubmitShortcutDesc:"同时作用于手动发送与提示词自动发送。",promptSubmitShortcutEnter:"Enter",promptSubmitShortcutCtrlEnter:"Ctrl + Enter",promptDoubleClickSendLabel:"双击提示词直接发送",promptDoubleClickSendDesc:"开启后,双击提示词会直接发送;含变量的提示词会在变量确认后发送",promptSent:"提示词已发送",promptSendFailed:"发送失败,提示词已保留在输入框中",copied:"已复制到剪贴板",cleared:"已清理",refreshed:"已刷新",orderUpdated:"已更新排序",inserted:"已插入提示词",scrolling:"页面正在滚动,请稍后...",noTextarea:"未找到输入框,请点击输入框后重试",confirmDelete:"确定删除?",settingsTitle:"通用设置",panelSettingsTitle:"面板设置",settingOn:"开",settingOff:"关",modelLockTitle:"模型锁定",modelLockEnabledLabel:"启用模型锁定",modelLockEnabledDesc:"进入页面后自动切换到指定模型",modelLockLabel:"自动锁定模型",modelLockDesc:"进入页面后自动切换到指定模型",modelKeywordLabel:"模型关键字",modelKeywordPlaceholder:"模型关键词",modelKeywordExample:"例如: 3 Pro",modelKeywordDesc:"用于匹配目标模型名称",modelLockFailedNoButton:"模型选择器未找到",modelLockFailedMenuEmpty:"模型菜单加载失败",modelLockFailedNotFound:'未找到模型 "{model}"',modelLockEnabled:"模型锁定已开启",modelLockDisabled:"模型锁定已关闭",modelLockNoKeyword:"请先在设置中配置模型关键词",userQueryWidthDesc:"调整用户问题气泡容器的最大宽度(每个站点独立配置)",categoryManage:"分类管理",categoryEmpty:"暂无分类,添加提示词时会自动创建分类",rename:"重命名",newCategoryName:"请输入新的分类名称:",categoryRenamed:"分类已重命名",confirmDeleteCategory:'确定删除该分类吗?关联的提示词将移至"未分类"',categoryDeleted:"分类已删除",promptCountSuffix:" 个提示词",categoryRenamedTo:"分类已重命名为「{name}」",confirmDeleteCategoryMsg:"确定删除分类「{name}」?关联的提示词将移至「未分类」",categoryDeletedMsg:"分类「{name}」已删除",languageLabel:"界面语言",languageDesc:"设置面板显示语言,即时生效",languageAuto:"跟随系统",languageZhCN:"简体中文",languageZhTW:"繁體中文",languageEn:"English",themeLabel:"主题模式",themeAuto:"跟随系统",themeLight:"浅色",themeSystem:"系统",themeDark:"深色",themeSettings:"主题设置",currentThemeMode:"当前模式",themeSettingsDesc:"选择浅色和深色模式下使用的主题预置",customCSS:"自定义样式",customCSSDesc:"创建自定义 CSS 样式,可在主题选择器中使用",customCSSTemplate:"插入模板",addCustomStyle:"添加",noCustomStyles:"暂无自定义样式,点击上方「添加」按钮创建",editStyle:"编辑",deleteStyle:"删除",confirmDeleteStyle:"确认删除该样式?",styleNameLabel:"样式名称",styleNamePlaceholder:"输入样式名称",styleModeLabel:"适用模式",styleModeLight:"☀️ 浅色模式",styleModeDark:"🌙 深色模式",styleCSSLabel:"CSS 代码",styleCreated:"样式已创建",styleUpdated:"样式已更新",styleDeleted:"样式已删除",styleNameRequired:"请输入样式名称",newStyle:"新建样式",editStyleTitle:"编辑样式",lightModePreset:"浅色模式",lightModePresetDesc:"仅在浅色模式生效",darkModePreset:"深色模式",darkModePresetDesc:"仅在深色模式生效",primaryColor:"主色",secondaryColor:"次色","themePreset_google-gradient":"Google 渐变",themePreset_purple:"紫罗兰",themePreset_ocean:"海洋蓝","themePreset_classic-dark":"经典深黑","themePreset_midnight-blue":"午夜蓝",themePreset_forest:"暗夜森林",themePreset_sakura:"樱花物语",themePreset_mint:"清新薄荷",themePreset_nordic:"北欧霜雪",themePreset_cyberpunk:"赛博霓虹",themePreset_coffee:"醇香咖啡",themePreset_sunset:"幻梦落日","themePreset_lemon-soda":"柠檬苏打","themePreset_ancient-scroll":"羊皮卷","themePreset_mono-pro":"极致黑白",themePreset_dracula:"德古拉","themePreset_deep-abyss":"深海幽蓝","themePreset_crimson-moon":"猩红赤月",themePreset_porcelain:"青花瓷",themePreset_shortbread:"奶油脆饼","themePreset_unicorn-dream":"独角兽","themePreset_retro-terminal":"黑客终端","themePreset_eva-unit-01":"代号:暴走",themePreset_aurora:"极光行者",pageWidthLabel:"页面宽度",pageWidthValueLabel:"宽度值",pageWidthDesc:"调整聊天页面的宽度,即时生效(每个站点独立配置)",enablePageWidth:"启用页面加宽",widthValue:"宽度值",widthUnit:"单位",navContent:"内容交互",unitPx:"像素 (px)",unitPercent:"百分比 (%)",enableUserQueryWidth:"启用用户问题加宽",enableUserQueryWidthDesc:"调整用户问题气泡容器的最大宽度",userQueryWidthValueLabel:"问题宽度",tabSettingsTitle:"标签页设置",openNewTabLabel:"新标签页打开新对话",openNewTabDesc:"在面板顶部添加按钮,点击后在新标签页打开新对话",newTabTooltip:"新标签页开启对话",autoRenameTabLabel:"自动重命名标签页",autoRenameTabDesc:"将浏览器标签页名称改为当前对话名称",renameIntervalLabel:"检测频率",renameIntervalDesc:"检测对话名称变化的间隔时间",secondsSuffix:"秒",showStatusLabel:"显示生成状态",toggleTheme:"切换亮/暗主题",showStatusDesc:"在标签页标题中显示生成状态图标(⏳/✅)",showNotificationLabel:"发送桌面通知",showNotificationDesc:"生成完成时发送系统通知",notificationSoundLabel:"通知声音",notificationSoundDesc:"生成完成时播放提示音",notificationVolumeLabel:"声音音量",notifyWhenFocusedLabel:"前台时也通知",notifyWhenFocusedDesc:"当前页面可见时也发送通知,而不仅在后台时",autoFocusLabel:"自动置顶窗口",autoFocusDesc:"生成完成时自动将窗口带回前台",privacyModeLabel:"隐私模式",privacyModeDesc:"隐藏真实对话标题,显示伪装标题(双击面板标题可快速切换)",privacyTitleLabel:"伪装标题",privacyTitlePlaceholder:"如:Google、工作文档",titleFormatLabel:"标题格式",titleFormatDesc:"自定义标题格式,支持占位符:{status}、{title}、{model}",notificationTitle:"✅ {site} 生成完成",notificationBody:"点击查看结果",tabOutline:"大纲",outlineEmpty:"暂无大纲内容",outlineEmptyDescDefault:"开始对话后将自动生成大纲",outlineEmptyDescUserQueryOnly:"当前仅显示用户提问,发送消息后将出现大纲内容",outlineRefresh:"刷新",outlineSettings:"大纲设置",bookmarkSettings:"收藏设置",bookmarkModeDisableLevel:"收藏模式下无法调整层级",bookmarkSettingsDesc:"收藏相关设置",inlineBookmarkModeLabel:"页内收藏图标",inlineBookmarkModeDesc:"控制页面标题旁的收藏图标显示方式",panelBookmarkModeLabel:"面板收藏图标",panelBookmarkModeDesc:"控制大纲面板中的收藏图标显示方式",inlineBookmarkModeAlways:"固定显示",inlineBookmarkModeHover:"悬浮显示",inlineBookmarkModeHidden:"隐藏",enableOutline:"启用大纲",outlineSettingsTitle:"大纲设置",outlineEnabledLabel:"启用大纲视图",outlineShowUserQueriesLabel:"显示用户提问",outlineMaxLevel:"显示标题级别",outlineLevelAll:"全部 (1-6级)",outlineLevel1:"仅 1 级",outlineLevel2:"至 2 级",outlineLevel3:"至 3 级",jumpToAnchor:"返回跳转前位置",anchorUpdated:"锚点已更新",outlineScrollBottom:"滚动到底部",outlineScrollTop:"滚动到顶部",outlineExpandAll:"展开全部",outlineCollapseAll:"折叠全部",outlineLocateCurrent:"定位到当前位置",outlineSearch:"搜索大纲...",outlineSearchResult:"个结果",outlineLevelHint:"级标题",refreshPrompts:"刷新提示词",refreshOutline:"刷新大纲",refreshConversations:"刷新会话",syncingConversations:"正在同步会话列表...",grokSyncingConversations:"正在同步会话,请勿操作...",refreshSettings:"刷新设置",tabOrderSettings:"界面排版",tabOrderDesc:"调整面板 Tab 的显示顺序",moveUp:"上移",moveDown:"下移",readingNavigationSettings:"阅读导航",readingHistorySettings:"阅读历史",readingHistoryTitle:"阅读历史",readingHistoryPersistenceLabel:"启用阅读历史",readingHistoryPersistenceDesc:"自动记录阅读位置,下次打开时恢复",readingHistoryAutoRestoreLabel:"自动跳转",readingHistoryAutoRestoreDesc:"打开页面时自动跳转到上次位置",readingHistoryCleanup:"历史保留时间",readingHistoryCleanupDesc:"只保留最近几天的阅读进度 (-1 为永久)",daysSuffix:"天",cleanupInfinite:"永久",restoredPosition:"已恢复上次阅读位置",cleanupDone:"已清理过期数据",contentExportSettingsTitle:"内容设置",markdownFixLabel:"Markdown 加粗修复",markdownFixDesc:"修复 Gemini 响应中未正确渲染的 **加粗** 语法",exportImagesToBase64Label:"导出时图片转Base64",exportImagesToBase64Desc:"导出会话时将图片转为Base64嵌入",userQueryMarkdownLabel:"用户提问 Markdown 渲染",userQueryMarkdownDesc:"将用户提问中的 Markdown 语法渲染为格式化文本",watermarkRemovalLabel:"移除图片水印",watermarkRemovalDesc:"自动移除 Gemini AI 生成图像中的 NanoBanana 水印",aistudioRemoveWatermark:"移除图片水印",aistudioRemoveWatermarkDesc:"移除 AI Studio 生成图片的水印(需刷新页面生效)",aistudioMarkdownFixLabel:"Markdown 加粗修复",aistudioMarkdownFixDesc:"修复 AI Studio 响应中未渲染的 **加粗** 文本",aistudioReloadHint:"请刷新页面使更改生效",exportCustomUserName:"自定义用户名称",exportCustomUserNameDesc:"导出时使用的用户显示名称 (默认: User)",exportCustomModelName:"自定义 AI 名称",exportCustomModelNameDesc:"导出时使用的 AI 显示名称 (默认: 站点名称)",exportFilenameTimestamp:"导出文件名包含时间戳",exportFilenameTimestampDesc:"在导出文件名末尾添加时间戳",exportIncludeThoughtsLabel:"导出包含思维链",exportIncludeThoughtsDesc:"导出时包含并自动展开思维链内容(使用引用块区分)",outlineAutoUpdateLabel:"对话期间自动更新大纲",outlineAutoUpdateDesc:"AI 生成内容时自动刷新目录结构",outlineUpdateIntervalLabel:"更新检测间隔 (秒)",outlineShowUserQueries:"展示用户提问",outlineShowUserQueriesTooltip:"展示用户提问",outlineOnlyUserQueries:"提问",globalSearchOutlineReplies:"回复",outlineIntervalUpdated:"间隔已设为 {val} 秒",outlineSyncScrollLabel:"同步滚动",outlineSyncScrollDesc:"页面滚动时自动高亮对应的大纲项",outlineFollowModeLabel:"大纲跟随模式",outlineFollowCurrent:"跟随当前位置",outlineFollowLatest:"跟随最新消息",outlineFollowManual:"手动控制",outlineFollowCurrentDesc:"滚动页面时高亮当前大纲项",outlineFollowLatestDesc:"自动滚动到最新消息",outlineFollowManualDesc:"不自动滚动,用户手动控制",outlineShowWordCountLabel:"悬浮显示字数",outlineShowWordCountDesc:"大纲悬浮提示中显示该章节的字数",words:"字",pageDisplaySettings:"页面显示",otherSettingsTitle:"其他设置",showCollapsedAnchorLabel:"锚点",showCollapsedAnchorDesc:"当面板收起时,在侧边浮动条中显示锚点按钮",showCollapsedThemeLabel:"主题",floatingToolbarLabel:"浮动工具栏",tools:"工具箱",cleanup:"清除无效收藏",floatingToolbarMore:"更多",floatingToolbarClearGhost:"清除无效收藏",floatingToolbarClearGhostConfirm:"是否清除当前会话中 {count} 条无效收藏?",floatingToolbarClearGhostEmpty:"没有需要清理的无效收藏",showCollapsedThemeDesc:"当面板收起时,在侧边浮动条中显示主题切换按钮",collapsedButtonsOrderDesc:"调整折叠面板按钮的显示顺序",preventAutoScrollLabel:"防止自动滚动",preventAutoScrollDesc:"当 AI 生成长内容时,阻止页面自动滚动到底部,方便阅读上文",defaultPanelStateLabel:"默认展开面板",defaultPanelStateDesc:"刷新页面后面板默认保持展开状态",autoHidePanelLabel:"点击外部收起",autoHidePanelDesc:"点击面板外部区域时自动收起为悬浮球",autoHidePanelDescEdgeSnap:"点击面板外部区域时自动缩回边缘",disableOutline:"禁用大纲",togglePrompts:"启用/禁用提示词",toggleConversations:"启用/禁用会话",tabConversations:"会话",conversationsEmpty:"暂无会话数据",conversationsEmptyHint:"点击上方同步按钮从侧边栏导入会话",conversationsSync:"同步会话",conversationsSyncing:"正在同步...",conversationsSynced:"同步完成",conversationsAddFolder:"新建文件夹",conversationsRename:"重命名",conversationsDelete:"删除",conversationsDeleteConfirm:"确定删除此文件夹吗?其中的会话将移到收件箱。",conversationsFolderCreated:"文件夹已创建",conversationsFolderRenamed:"文件夹已重命名",conversationsFolderDeleted:"文件夹已删除",conversationsCannotDeleteDefault:"无法删除默认文件夹",conversationsIcon:"图标",conversationsFolderName:"名称",conversationsFolderNamePlaceholder:"输入文件夹名称",conversationsSyncEmpty:"未找到会话",conversationsSyncNoChange:"无新会话",conversationsLocate:"定位当前对话",conversationsLocateSuccess:"已定位到当前对话",conversationsLocateNotFound:"当前对话未收录,正在同步...",conversationsLocateNewChat:"当前是新对话,尚未保存",conversationsLocateSyncFailed:"同步后仍未找到该对话",justNow:"刚刚",minutesAgo:"分钟前",hoursAgo:"小时前",daysAgo:"天前",conversationsSelectFolder:"选择同步目标文件夹",conversationsMoveTo:"移动会话",conversationsSetTag:"设置标签",conversationsMoved:"已移动到",conversationsSyncDeleteTitle:"同步删除",conversationsSyncDeleteMsg:"检测到 {count} 个会话已在云端删除,是否同步删除本地记录?",conversationsDeleted:"已移除",conversationsSearchFolder:"搜索文件夹...",conversationsSettingsTitle:"会话设置",conversationsSyncUnpinLabel:"同步时更新取消置顶",conversationsSyncUnpinDesc:"同步时,将云端未置顶的会话在本地也取消置顶",folderRainbowLabel:"文件夹彩虹色",folderRainbowDesc:"为每个文件夹分配不同的背景颜色,关闭后使用统一纯色",conversationsSyncDeleteLabel:"删除时同步删除云端",conversationsSyncDeleteDesc:"删除本地会话记录时,同时删除对应站点的云端会话",conversationsSyncRenameLabel:"重命名时同步云端",conversationsSyncRenameDesc:"修改会话标题时,同时在 {site} 侧边栏更新标题",conversationsCustomIcon:"自定义图标",batchSelected:"已选 {n} 个",batchMove:"移动",batchDelete:"删除",batchExit:"退出",batchExport:"导出",exportToMarkdown:"Markdown",exportToJSON:"JSON",exportLoading:"正在加载对话历史...",exportNeedOpenFirst:"请先打开要导出的会话",exportSuccess:"导出成功",exportFailed:"导出失败",exportNoContent:"未找到对话内容",copySuccess:"已复制到剪贴板",copyFailed:"复制失败",exportUserLabel:"用户",exportMetaTitle:"导出信息",exportMetaConvTitle:"会话标题",exportMetaTime:"导出时间",exportMetaSource:"来源",exportNotSupported:"当前站点不支持导出",exportToTXT:"TXT",exportMetaUrl:"链接",exportUntitled:"未命名",exportToClipboard:"复制 Markdown",conversationsRefresh:"刷新会话列表",conversationsSearchPlaceholder:"搜索会话...",conversationsSearchResult:"个结果",conversationsNoSearchResult:"未找到匹配结果",conversationsSetTags:"设置标签",conversationsNewTag:"新建标签",conversationsTagName:"标签名称",conversationsTagColor:"标签颜色",conversationsFilterByTags:"按标签筛选",conversationsClearTags:"清除筛选",conversationsTagCreated:"标签已创建",conversationsTagUpdated:"标签已更新",conversationsTagDeleted:"标签已删除",conversationsTagExists:"标签名称已存在",conversationsSelectTag:"选择标签",conversationsExistingTags:"已有标签",conversationsEditTag:"编辑标签",conversationsCancelEdit:"取消编辑",conversationsSelectColor:"选择颜色",conversationsCollapseColor:"收起颜色",conversationsUpdateTag:"更新标签",conversationsNoTags:"暂无标签",conversationsManageTags:"管理标签",conversationsDeleteTag:"删除标签",conversationsPin:"置顶📌",conversationsUnpin:"取消置顶",conversationsPinned:"已置顶",conversationsUnpinned:"已取消置顶",conversationsFilterPinned:"筛选置顶",conversationsClearAll:"清除所有筛选",conversationsBatchMode:"批量操作",loadingHistory:"正在加载历史记录...",historyLoaded:"历史记录加载完成",stopLoading:"停止加载",loadingHint:"保持页面静止,完成后将自动停留在顶部",edgeSnapHideLabel:"边缘自动吸附",edgeSnapHideDesc:"拖动面板到屏幕边缘时自动吸附,悬停显示",edgeSnapThresholdLabel:"吸附触发距离",edgeSnapThresholdDesc:"拖拽面板到边缘多近时触发吸附",defaultPositionLabel:"默认位置",defaultPositionDesc:"页面刷新后面板显示在哪一侧",defaultPositionLeft:"左侧",defaultPositionRight:"右侧",defaultEdgeDistanceLabel:"默认边距",defaultEdgeDistanceDesc:"面板距离屏幕边缘的初始距离",panelWidthLabel:"面板宽度",panelWidthDesc:"面板的宽度 (px)",panelHeightLabel:"面板高度",panelHeightDesc:"面板占用屏幕高度的百分比",setAnchor:"设置锚点",setAnchorToast:"已设置锚点",backToAnchor:"返回锚点",goToAnchor:"返回锚点",noAnchor:"暂无锚点",clearAnchor:"清除锚点",clearAnchorToast:"已清除锚点",manualAnchorLabel:"手动锚点",manualAnchorDesc:"在快捷工具栏显示手动锚点按钮",watermarkProcessing:"正在处理图片...",watermarkProcessed:"水印已移除",watermarkFailed:"处理失败",formulaCopyLabel:"双击复制公式",formulaCopyDesc:"双击数学公式可复制 LaTeX 源码(部分站点不支持)",formulaCopied:"公式已复制",formulaDelimiterLabel:"复制时添加分隔符",formulaDelimiterDesc:"根据公式类型自动添加 $ 或 $$ 分隔符",tableCopyLabel:"表格复制 Markdown",tableCopyDesc:"在表格右上角添加复制按钮,直接复制 Markdown 格式",tableCopied:"表格已复制",dataManagementTitle:"数据管理",dataManagementDesc:"导出或导入扩展的所有设置和数据",exportDataBtn:"导出全部数据",importDataBtn:"导入数据",exportError:"导出失败:",importConfirm:"确定要导入数据吗?这将覆盖当前所有设置和数据。",importSuccess:"导入成功!页面将刷新以应用新设置。",importError:"导入失败:",invalidBackupFile:"无效的备份文件格式",backupValidationInvalidFormat:"数据格式无效",backupValidationMissingVersion:"缺少 version 字段",backupValidationMissingData:"缺少 data 字段",backupValidationSettingsType:"settings 应为对象类型",backupValidationPromptsType:"prompts 应为数组类型",backupValidationFoldersType:"folders 应为数组类型",backupValidationConversationsType:"conversations 应为对象类型",backupValidationHistoryType:"readingHistory 应为对象类型",backupTime:"备份时间",backupType:"类型",openAiPagesWillRefresh:"已打开的 AI 页面将被刷新。",dataManagementNote:"提示:导出的文件包含所有设置、会话记录等数据。可用于备份或迁移到新设备。",webdavSectionTitle:"WebDAV 云同步",webdavDesc:"将数据同步到 WebDAV 服务器(如坚果云、Nextcloud)",webdavUrlLabel:"服务器地址",webdavUsernameLabel:"用户名",webdavUsernamePlaceholder:"账号邮箱",webdavPasswordLabel:"密码",webdavPasswordPlaceholder:"应用专用密码",webdavRemotePathLabel:"远程文件路径",webdavTestBtn:"测试连接",webdavUploadBtn:"上传",webdavDownloadBtn:"下载",webdavDownloadConfirm:"下载将覆盖当前数据,确定继续?",webdavLastSync:"上次同步",webdavConnectionSuccess:"连接成功",webdavUploadSuccess:"上传成功",webdavDownloadSuccess:"下载成功,即将刷新页面",webdavConfigIncomplete:"请填写完整的 WebDAV 配置",webdavAuthFailed:"认证失败,请检查用户名和密码",webdavConnectionFailed:"连接失败",webdavUploadFailed:"上传失败",webdavDownloadFailed:"下载失败",webdavFileNotFound:"远程文件不存在",webdavInvalidFormat:"无效的备份文件格式",backupAndRestore:"备份与恢复",webdavServerSettings:"WebDAV 服务器设置",webdavRemoteDirLabel:"路径",backupManagement:"备份管理",backupNow:"立即备份",restore:"恢复",localBackup:"本地备份",exportToFile:"导出为文件",importBackupFile:"备份文件导入",permissionRequired:"需要权限",webdavPermissionDesc:"需要访问该域名的权限才能进行 WebDAV 备份。",permAllUrlsTitle:"需要所有网站访问权限",permAllUrlsDesc:"此权限用于 WebDAV 云端备份和同步功能,以及移除 AI 生成图片的水印。",permWebdavTitle:"需要网络访问权限",permWebdavDesc:"WebDAV 同步需要访问您配置的服务器。授权后可进行云端备份和恢复。",permTabsTitle:"需要标签页权限",permTabsDesc:"标签页重命名和隐私模式需要此权限,用于读取和修改标签页标题。",permNotifyTitle:"需要通知权限",permNotifyDesc:"启用桌面通知后,当 AI 生成完成时会收到提醒。",permCookiesTitle:"需要Cookie管理权限",permCookiesDesc:"此权限用于快速切换Claude SessionKey。授权后可以管理claude.ai的Cookie。",permDNRTitle:"需要网络请求规则权限",permDNRDesc:"此权限用于移除 AI 生成图片的水印等功能。",permissionRequestToast:"请在弹出的窗口中授予权限",permissionDialogAllow:"允许并继续",permissionGranted:"授权成功",permissionDenied:"授权已取消",revokeConfirmDefault:"确定要撤销此权限吗?撤销后,依赖该权限的功能将会自动关闭。",revokeConfirmNotifications:"确定要撤销通知权限吗?\n\n撤销后,【桌面通知】功能将自动关闭。如需再次使用,需重新授权。",revokeConfirmWebdav:"确定要撤销高级访问权限吗?\n\n撤销后,【水印移除】和【WebDAV 同步】功能将自动关闭。如需再次使用,需重新授权。",warning:"警告",windowClosing:"窗口即将关闭...",allow:"允许",defaultPromptTranslateTitle:"翻译助手",defaultPromptTranslateCategory:"翻译",defaultPromptTranslateContent:'你是一位拥有 20 年经验的专业翻译家。请遵循我的要求将待翻译文本翻译成 {{target_language}}。\n\n具体要求:\n准确性:忠实于原意,不要遗漏任何信息。\n流畅性:翻译后的语言应符合 {{target_language}} 的表达习惯,避免"翻译腔"。\n风格一致:保持原有的语气(如:专业、幽默、严肃)。\n\n待翻译文本为: {{text}}',defaultPromptCodeOptTitle:"代码优化",defaultPromptCodeOptCategory:"编程",defaultPromptCodeOptContent:"你是 {{language}} 专家。请审阅以下代码,并应用 Clean Code 原则进行重构。\n\n**原始代码**:\n{{code}}\n\n**要求**:\n1. 消除冗余逻辑。\n2. 改进命名,使其符合 {{language}} 的社区规范。\n3. 增加必要的错误处理机制。\n4. 重点关注代码的【可读性】、【健壮性】和【可扩展性】。\n5. 如果可能,使用 {{version}} (如 ES6+/Java 21) 的现代语法特性。\n\n请直接输出优化后的代码块,并在后面附带简短的优化点总结。",navShortcuts:"快捷键位",shortcutsPageDesc:"配置键盘快捷键以快速执行操作",shortcutsInteractionGroup:"独立设置",shortcutsInteractionGroupDesc:"此分组设置始终生效,不受“启用自定义快捷键”开关影响",shortcutsGlobalSettings:"快捷键设置",enableShortcuts:"启用自定义快捷键",enableShortcutsDesc:"启用或禁用所有自定义键盘快捷键",globalShortcutUrl:"全局快捷键打开的 URL",globalShortcutUrlDesc:"按下全局快捷键 Alt+G 时打开的网址",resetShortcuts:"恢复默认快捷键",resetShortcutsConfirm:"确定要恢复所有快捷键为默认值吗?",pressAnyKey:"请按下快捷键...",shortcutConflictWith:"与",shortcutConflict:"冲突",globalShortcutsTitle:"全局快捷键",globalShortcutsDesc:"在浏览器任何页面都可使用,需要在浏览器扩展设置页面配置。",openBrowserShortcuts:"打开浏览器快捷键设置",shortcutNotSet:"未设置",shortcutRemove:"移除",shortcutCategoryNavigation:"导航",shortcutCategoryPanel:"面板",shortcutCategoryOutline:"大纲",shortcutCategoryConversation:"会话",shortcutCategoryEdit:"交互控制",shortcutScrollTop:"去顶部",shortcutScrollBottom:"去底部",shortcutGoToAnchor:"返回锚点",shortcutTogglePanel:"展开/收起面板",shortcutToggleTheme:"切换主题",shortcutOpenSettings:"打开设置",shortcutSwitchTab1:"切换到第 1 个标签",shortcutSwitchTab2:"切换到第 2 个标签",shortcutSwitchTab3:"切换到第 3 个标签",shortcutRefreshOutline:"刷新大纲",shortcutToggleOutlineExpand:"展开/折叠全部",shortcutExpandLevel1:"展开到 1 级",shortcutExpandLevel2:"展开到 2 级",shortcutExpandLevel3:"展开到 3 级",shortcutExpandLevel4:"展开到 4 级",shortcutExpandLevel5:"展开到 5 级",shortcutExpandLevel6:"展开到 6 级",shortcutToggleUserQueries:"显示用户问题",shortcutToggleBookmarks:"显示用户收藏",shortcutOnlyUserQueries:"只显示用户问题",shortcutPrevHeading:"上一个标题",shortcutNextHeading:"下一个标题",shortcutLocateOutline:"定位大纲",shortcutSearchOutline:"搜索大纲",shortcutNewConversation:"新会话",shortcutRefreshConversations:"刷新会话列表",shortcutLocateConversation:"定位当前会话",shortcutPrevConversation:"上一个会话",shortcutNextConversation:"下一个会话",shortcutExportConversation:"导出对话",shortcutCopyLatestReply:"复制最新回复",shortcutCopyLastCodeBlock:"复制最后代码块",shortcutToggleScrollLock:"AI生成时禁止自动滚动到底部",shortcutToggleModelLock:"切换模型锁定",shortcutFocusInput:"聚焦输入框",shortcutStopGeneration:"停止生成",shortcutTogglePromptQueue:"显示/隐藏提示词队列",shortcutShowShortcuts:"快捷键一览",shortcutShowModelSelector:"模型选择菜单",shortcutCategoryHelp:"帮助",shortcutCategorySettings:"设置",shortcutOpenClaudeSettings:"打开 Claude 专属",shortcutSwitchClaudeKey:"一键切换可用 Claude Key",shortcutOpenGeminiSettings:"打开 Gemini 专属",shortcutOpenThemeSettings:"打开外观主题",shortcutOpenModelLockSettings:"打开模型锁定",scrolledToTop:"已滚动到顶部",scrolledToBottom:"已滚动到底部",outlineRefreshed:"大纲已刷新",conversationsRefreshed:"会话列表已刷新",locatingOutline:"正在定位大纲位置...",locatingConversation:"正在定位当前会话...",noConversationToLocate:"当前无会话可定位",outlineDisabled:"大纲功能已禁用",conversationsDisabled:"会话功能已禁用",exportStarted:"开始导出对话...",replyCopied:"已复制最新回复",noReplyToCopy:"无可复制内容",scrollLockToggled:"滚动锁定已切换",browserNotSupported:"当前浏览器不支持自定义扩展快捷键",inputFocused:"已聚焦输入框",generationStopped:"已停止生成",notGenerating:"当前未在生成",noConversations:"暂无会话",untitledConversation:"未命名会话",noCodeBlock:"未找到代码块",codeBlockCopied:"代码块已复制",modelSelectorNotFound:"未找到模型选择器",geminiSettingsTab:"Gemini 专属",claudeSessionKeyTitle:"Session Key 管理",claudeSessionKeyDesc:"管理和切换你的 Claude 多账号",claudeCurrentUsing:"当前使用:",claudeNoKeySelected:"未选择 - 请先添加或导入 Session Key",claudePleaseAddKey:"请先添加 Session Key",claudeAddKey:"添加",claudeImportFromBrowser:"从浏览器导入",claudeImportJSON:"导入JSON",claudeExportJSON:"导出JSON",claudeNoKeys:"暂无 Session Key",claudeNoKeysHint:"点击「添加」或「从浏览器导入」开始管理",claudeKeyValid:"有效",claudeKeyInvalid:"无效",claudeKeyUntested:"未测试",claudeKeyUsing:"使用中",claudeKeyUse:"使用",claudeKeyTest:"测试",claudeKeyDelete:"删除",claudeKeyCopied:"已复制到剪贴板",claudeKeyCopyFailed:"复制失败",claudeKeyDoubleTapCopy:"双击复制完整 Key",claudeCopyKey:"复制 Session Key",claudeCopied:"已复制",claudeAlreadyUsing:"当前已在使用此 Session Key",claudePleaseSelectKey:"请选择一个 Session Key",claudeKeyImported:"已导入并设为当前使用,正在测试...",claudeKeyAdded:"Session Key 已添加",claudeKeySwitched:"Session Key 已切换,页面将刷新",claudeKeyDeleted:"已删除",claudeKeyTesting:"测试中",claudeGenerating:"检测到AI正在生成中,请稍后再测试",claudeAddKeyNameTitle:"添加 Session Key - 输入名称",claudeAddKeyNamePlaceholder:"例如: 主账号、备用账号",claudeAddKeyValueTitle:"添加 Session Key - 输入 Key",claudeAddKeyValuePlaceholder:"sk-ant-sid01-...",claudeImportNameTitle:"从浏览器导入 - 输入名称",claudeImportNamePlaceholder:"为导入的 Session Key 命名",claudeDeleteConfirmTitle:"确认删除",claudeDeleteConfirmMsg:'确定要删除 "{name}" 吗?此操作不可恢复。',claudeNameRequired:"名称不能为空",claudeKeyRequired:"Session Key不能为空",claudeKeyInvalidFormat:"无效的Session Key格式",claudeKeyExists:"该 Session Key 已存在",claudeNoTokensToExport:"暂无 Session Key 可导出",claudeExported:"已导出",claudeInvalidJSON:"无效的JSON格式",claudeNoNewTokens:"没有新 Session Key",claudeImported:"已导入 {count} 个 Session Key",claudeTokenExists:"该 Session Key 已存在: {name}",claudeNoCookieFound:"未找到当前Cookie",claudeRequestPermission:"请在弹出窗口中授权Cookie权限",claudeNotOnSiteWarning:"即时切换和浏览器导入功能仅在 Claude 站点可用",claudeNotOnSiteHint:"请在 Claude 站点使用此功能",claudeShortcutOnlyOnSite:"快捷键仅在 Claude 站点可用",claudeBatchTest:"批量检测",claudeBatchTesting:"检测中... {current}/{total}",claudeBatchTestDone:"批量检测完成。{valid} 个有效,{invalid} 个失效。",claudeBatchTestFailed:"批量检测被中断",claudeOnlyOneKeyTip:"当前只有一个可用 Key,且正在使用中",noClaudeKeys:"未配置任何 Session Key",restoreSuccess:"恢复成功,即将刷新页面...",aistudioSettingsTitle:"AI Studio 设置",aistudioSettingsDesc:"配置 AI Studio 页面加载后的默认行为",aistudioDefaultModel:"默认模型",aistudioDefaultModelNone:"不指定(使用系统默认)",aistudioDefaultModelCustom:"自定义模型 ID...",aistudioDefaultModelPlaceholder:"models/gemini-xxx",aistudioCollapseNavbar:"默认折叠侧边栏",aistudioCollapseNavbarDesc:"打开页面时自动折叠左侧导航栏",aistudioCollapseRunSettings:"默认收起运行设置面板",aistudioCollapseRunSettingsDesc:"打开页面时自动收起右侧的运行设置面板",aistudioCollapseTools:"默认收起工具栏",aistudioCollapseToolsDesc:"打开页面时自动收起运行设置中的工具栏",aistudioCollapseAdvanced:"默认收起高级设置",aistudioCollapseAdvancedDesc:"打开页面时自动收起运行设置中的高级选项",aistudioEnableSearch:"默认启用搜索工具",aistudioEnableSearchDesc:"打开页面时自动启用 Google 实时搜索",aistudioModelsFetched:"模型列表已更新",aistudioNoTabError:"请先打开 AI Studio 页面",aistudioModelsError:"获取模型列表失败",chatgptSettingsTitle:"ChatGPT 设置",chatgptSettingsDesc:"配置 ChatGPT 页面的默认行为",chatgptMarkdownFixLabel:"Markdown 加粗修复",chatgptMarkdownFixDesc:"修复 ChatGPT 响应中未渲染的 **加粗** 文本",popupCurrentSite:"当前站点",popupSupported:"已激活",popupUnsupported:"不支持",popupNewChat:"新对话",popupQuickAccess:"快速访问",popupRecentUsed:"最近使用",popupNoRecentPrompts:"暂无最近使用的提示词",popupCopied:"已复制",popupCopyFailed:"复制失败",popupFeedback:"反馈",popupSettings:"设置",policyRetryLabel:"策略拦截自动重发",policyRetryDesc:"当回复被企业策略拦截时,尝试自动重新发送消息",maxRetriesLabel:"最大重试次数",retryCountSuffix:"次 (同一问题)",policyRetryActive:"策略拦截,自动重试 ({current}/{max})",policyRetryLimitReached:"重试次数已达上限",preventAutoScrollEnabled:"滚动锁定已开启",preventAutoScrollDisabled:"滚动锁定已关闭",toolboxMenu:"工具箱",toolboxMenuTitle:"工具箱菜单",toolboxMenuDesc:"配置工具箱弹出菜单中显示的功能",globalSearchCategoryAll:"全部",globalSearchCategoryOutline:"大纲",globalSearchCategorySettings:"设置",globalSearchCategoryConversations:"会话",globalSearchCategoryFolders:"文件夹",globalSearchCategoryTags:"标签",globalSearchCategoryPrompts:"提示词",globalSearchCategoryCurrentSession:"当前会话",globalSearchSiteGemini:"Gemini",globalSearchSiteGeminiEnterprise:"Gemini 企业版",globalSearchSiteAIStudio:"AI Studio",globalSearchSiteChatGPT:"ChatGPT",globalSearchSiteClaude:"Claude",globalSearchSiteGrok:"Grok",globalSearchPlaceholderAll:"搜索全部",globalSearchPlaceholderOutline:"搜索大纲",globalSearchPlaceholderSettings:"搜索设置项",globalSearchPlaceholderConversations:"搜索当前站点会话",globalSearchPlaceholderFolders:"搜索文件夹",globalSearchPlaceholderTags:"搜索标签",globalSearchPlaceholderPrompts:"搜索提示词",globalSearchPlaceholderCurrentSession:"搜索当前会话问题与大纲",globalSearchEmptyAll:"未找到匹配结果",globalSearchEmptyOutline:"暂无大纲搜索结果",globalSearchEmptySettings:"未找到匹配的设置项",globalSearchEmptyConversations:"暂无会话搜索结果",globalSearchEmptyFolders:"暂无文件夹搜索结果",globalSearchEmptyTags:"暂无标签搜索结果",globalSearchEmptyPrompts:"暂无提示词搜索结果",globalSearchEmptyCurrentSession:"暂无当前会话搜索结果",globalSearchCategoriesLabel:"全局搜索分类",globalSearchPageDesc:"配置 Search Everywhere 的搜索行为与交互细节",globalSearchTriggerHint:"触发方式:双击 Shift 或 Ctrl/Cmd + K",globalSearchMatchingSettingsTitle:"搜索匹配",globalSearchMatchingSettingsDesc:"配置全局搜索如何匹配搜索结果",globalSearchPromptSettingsTitle:"提示词行为",globalSearchPromptSettingsDesc:"配置在全局搜索中选中提示词后按 Enter 的行为",globalSearchPromptEnterBehaviorLabel:"全局搜索提示词回车行为",globalSearchPromptEnterBehaviorDesc:"智能:无变量直接插入,含变量打开填写弹窗;仅定位:切换到提示词列表并定位。",globalSearchPromptEnterBehaviorSmart:"智能(推荐)",globalSearchPromptEnterBehaviorLocate:"仅定位",globalSearchEnableFuzzySearchLabel:"启用模糊搜索",globalSearchEnableFuzzySearchDesc:"开启后,全局搜索会对标题、文件夹、标签、提示词内容和设置标识符进行模糊匹配。",globalSearchFuzzySearchToggle:"模糊",globalSearchFuzzySearchToggleAria:"切换模糊搜索",globalSearchFooterTips:"Enter 跳转 · ↑↓ 选择 · Tab 分类 · Esc 关闭",globalSearchShortcutNudge:"下次可按 {shortcut} 快速打开",doubleShiftToSearch:"双击 Shift 开启全局搜索",doubleShiftToSearchDesc:"快速按下两次 Shift 键以打开全局搜索",globalSearchShortcutNudgeDismiss:"不再提示",globalSearchContextCurrentItem:"第 {current} 项",globalSearchContextShownProgress:"已显示 {shown}/{total}",globalSearchContextTotalItems:"共 {total} 项",globalSearchMatchReasonTitle:"标题命中",globalSearchMatchReasonFolder:"文件夹命中",globalSearchMatchReasonTag:"标签命中",globalSearchMatchReasonType:"类型命中",globalSearchMatchReasonCode:"编号命中",globalSearchMatchReasonCategory:"分类命中",globalSearchMatchReasonContent:"内容命中",globalSearchMatchReasonId:"ID 命中",globalSearchMatchReasonKeyword:"关键词命中",globalSearchMatchReasonAlias:"别名命中",globalSearchMatchReasonFuzzy:"模糊命中",globalSearchSyntaxOperatorType:"类型",globalSearchSyntaxOperatorFolder:"文件夹",globalSearchSyntaxOperatorTag:"标签",globalSearchSyntaxOperatorIs:"状态",globalSearchSyntaxOperatorLevel:"层级",globalSearchSyntaxOperatorDate:"时间",globalSearchSyntaxPinned:"已固定",globalSearchSyntaxSuggestionTypeDesc:"按结果类型筛选",globalSearchSyntaxSuggestionFolderDesc:"按文件夹或分类筛选",globalSearchSyntaxSuggestionTagDesc:"按标签名称筛选",globalSearchSyntaxSuggestionIsDesc:"按状态筛选",globalSearchSyntaxSuggestionPinnedDesc:"仅显示已固定结果",globalSearchSyntaxSuggestionLevelDesc:"按大纲层级筛选(0 为用户提问)",globalSearchSyntaxSuggestionLevelQueryDesc:"仅用户提问",globalSearchSyntaxSuggestionDateDesc:"按最近天数筛选",globalSearchSyntaxDiagnosticUnknownOperator:"未知筛选操作符",globalSearchSyntaxDiagnosticInvalidValue:"筛选值无效",globalSearchSyntaxDiagnosticConflict:"冲突筛选已忽略",globalSearchSyntaxChipRemove:"点击移除筛选",globalSearchSyntaxChipOverflow:"还有 {count} 个",globalSearchSyntaxEmptyGuideTitle:"试试这些筛选语法",globalSearchSyntaxEmptyGuideDesc:"使用语法筛选可以更快缩小结果范围",globalSearchSyntaxHelpTitle:"搜索语法示例",globalSearchSyntaxHelpDesc:"点击可直接插入,关键词仅支持英文",globalSearchSyntaxHelpTriggerAria:"打开搜索语法帮助",queueTitle:"提示词队列",queueQuickAsk:"提示词队列",queueInQueue:"队列中 ({count})",queueEmpty:"队列为空,输入内容后按 Enter 发送或排队",queueClearAll:"清空队列",queueRemove:"移除",queuePlaceholderIdle:"输入提示词,Enter 直接发送...",queuePlaceholderBusy:"AI 生成中,Enter 加入队列...",queueStatusIdle:"AI 空闲",queueStatusBusy:"AI 生成中",queueSettingLabel:"提示词队列",queueSettingDesc:"开启后在输入框上方显示队列浮层,支持AI生成时排队发送提示词",queueDisableHint:"你可以前往设置中关闭此功能",queueEdit:"编辑",queueEditSave:"保存",queueEditCancel:"取消",queueForceSend:"强制发送",zenModeTitle:"禅模式 (Zen Mode)",zenModeLabel:"启用禅模式",zenModeDesc:"隐藏页面中不必要的元素(如底部的模型免责声明等),体验更纯粹的对话界面(每个站点独立配置)"},"zh-TW":{panelTitle:"Ophel",welcomeSlogan:"AI 之益,觸手可及",disclaimerTitle:"聲明",disclaimerText:"本插件為一般輔助工具,無法涵蓋特定站點的所有獨有功能。插件依賴第三方站點的頁面結構和排版,若原網站更新導致功能失效,請前往 GitHub 提交 Issue 回報,我們將儘快修復。",disclaimerWarning:"請勿因第三方站點改版導致的問題在應用商店給予負評,感謝您的理解與支持!",communityMotto:"一個人可以走得很快,但一群人可以走得更遠。",welcomeJoin:"歡迎",agreeButton:"我已知曉並同意",tabPrompts:"提示詞",tabSettings:"設置",navGeneral:"基本設定",navSiteSettings:"站點配置",navGlobalSearch:"全域搜尋",navAppearance:"外觀主題",navPageContent:"頁面與內容",navFeatures:"功能模組",navPermissions:"權限管理",navBackup:"資料管理",navAbout:"關於",siteSettingsPageDesc:"配置站點相關的頁面佈局和內容處理",generalPageDesc:"配置擴充功能的基本行為和介面",appearancePageDesc:"自定義擴充功能的視覺樣式和主題",pageContentPageDesc:"調整頁面排版和內容顯示樣式",featuresPageDesc:"配置擴充功能的各項功能模組",backupPageDesc:"管理資料備份和雲端同步",aboutPageDesc:"AI 之益,觸手可及",tsPlasmoDesc:"瀏覽器擴充功能框架",tsReactDesc:"使用者介面函式庫",tsTypescriptDesc:"強型別 JavaScript",tsZustandDesc:"狀態管理",tsViteDesc:"前端建置工具",exportData:"匯出資料",exportDataDesc:"將資料匯出為 JSON 檔案進行備份",importData:"匯入資料",importDataDesc:"從備份檔案恢復資料",fullBackup:"完整備份",fullBackupDesc:"匯出所有帳號資料和使用者設定,推薦用於完整備份",promptsBackup:"僅提示詞",promptsBackupDesc:"僅匯出提示詞庫資料(不含標籤與資料夾)",settingsBackup:"僅設定",settingsBackupDesc:"僅匯出介面設定和偏好配置",selectFile:"選擇檔案",noFileSelected:"未選擇任何檔案",dataPreview:"資料預覽",pastePlaceholder:"貼上 JSON 資料或透過上方的檔案選擇器匯入...",importBtn:"匯入",webdavConfig:"WebDAV 配置",webdavConfigDesc:"配置 WebDAV 並上傳/下載備份檔案",webdavAddress:"WebDAV 位址",username:"使用者名稱",password:"密碼",saveConfig:"儲存配置",saveSuccess:"配置已儲存",backupEncryption:"備份加密",backupEncryptionDesc:"使用密碼加密上傳的備份。恢復時需要同一密碼。",encryptionPassword:"加密密碼",encryptionPasswordPlaceholder:"用於加密上傳與解密下載的備份",restoreTip:"恢復提示",restoreTipContent:"從 WebDAV 恢復時,會匯入備份資料,但不會覆蓋當前裝置的 WebDAV 連線/加密設定,以避免誤切換 WebDAV 目標或覆蓋鑑權/加密密碼導致後續備份與恢復失敗。如需恢復 WebDAV 配置,請使用手動匯入。",version:"版本",aboutDescription:"{appName} 一款專為 Gemini、ChatGPT、Claude、AI Studio、Grok 等 AI 平台打造的瀏覽器增強擴充功能。它為您提供會話管理與匯出、智慧大綱導航、提示詞指令庫等效率工具,同時具備閱讀進度恢復、雙向錨點定位、浮水印移除、排版修復、公式複製及模型鎖定等實用功能,並支援深度自定義主題與頁面美化,讓您的 AI 互動體驗更加流暢愉悅。",projectLinks:"專案連結",githubDesc:"檢視原始碼、提交問題或參與專案開發",giveStar:"按個 Star",projectWebsite:"專案官網",websiteDesc:"檢視詳細文件、使用指南和更多資訊",visitWebsite:"前往官網",rateAndReview:"好評鼓勵",rateDesc:"如果您喜歡 Ophel,請在應用商店給我們一個五星好評,這是我們更新的最大動力!",communityAndSupport:"社群與支援",chromeStore:"Chrome 商店",firefoxAddons:"Firefox 擴充功能",greasyFork:"Greasy Fork",reviewBtn:"評分",starBtn:"Star",credits:"版權與致謝",devAndMaintain:"開發與維護",creditsDesc:"感謝所有為開源社群做出貢獻的開發者們,本擴充功能的開發得益於這些優秀的開源專案和工具。",privacyTitle:"隱私保護",techStack:"技術棧",privacyStatement:"隱私聲明",privacyText:"本擴充功能所有資料均儲存在本地瀏覽器中,不會主動上傳到任何伺服器。您的帳號資訊和使用資料完全由您自己掌控,確保隱私安全。",reportIssue:"回報問題",changelog:"更新日誌",license:"開源協議",searchPlaceholder:"搜尋提示詞...",addPrompt:"新增提示詞",allCategory:"全部",uncategorized:"未分類",manageCategory:"⚙ 管理",currentPrompt:"當前提示詞:",scrollTop:"頂部",scrollBottom:"底部",cancel:"取消",confirm:"確認",save:"儲存",delete:"刪除",edit:"編輯",export:"匯出 Markdown",clear:"清除",error:"錯誤",operationFailed:"操作失敗",deleteSuccess:"刪除成功",deleteError:"刪除失敗",restoreError:"還原失敗",insertFailed:"插入失敗",maximize:"最大化",browse:"瀏覽...",clearAllData:"清除全部資料",clearAllDataDesc:"慎重操作:這將清除本地所有設定、提示詞和對話資料",clearAllDataConfirm:"確定要清除所有資料嗎?此操作不可逆,所有設定、提示詞、對話等資料都將被刪除!",clearSuccess:"資料已清除,即將重新整理...",defaultDir:"預設目錄",dangerZone:"危險區域",dangerZoneDesc:"破壞性操作(不可恢復)",refresh:"刷新",collapse:"收起",copy:"複製",addBookmark:"加入收藏",removeBookmark:"移除收藏",bookmarkContentMissing:"收藏內容已被刪除或折疊",bookmarkMode:"收藏",outlineNoBookmarks:"暫無收藏",outlineAddBookmarkHint:"點擊條目旁的星號添加收藏",bookmarkModeDisabled:"收藏模式下不可用",drag:"拖動",close:"關閉",add:"新增",anchorPoint:"錨點",updateAnchor:"更新錨點",title:"標題",category:"分類",categoryPlaceholder:"例如:程式設計、翻譯",content:"提示詞內容",editPrompt:"編輯提示詞",addNewPrompt:"新增提示詞",fillTitleContent:"請填寫標題和內容",promptUpdated:"提示詞已更新",promptAdded:"提示詞已新增",deleted:"已刪除",promptPin:"置頂",promptUnpin:"取消置頂",promptVariableTitle:"填寫變數",promptVariablePlaceholder:"請輸入",promptImport:"匯入",promptExport:"匯出",promptImportTitle:"匯入提示詞",promptImportMessage:"選擇「確認」將覆蓋現有提示詞,選擇「取消」將合併匯入",promptImportSuccess:"匯入成功",promptImportFailed:"匯入失敗",promptExportSuccess:"匯出成功",promptRecentUsed:"最近使用",promptMarkdownPreview:"預覽",promptImportMessage2:"發現 {count} 個提示詞,請選擇匯入方式:",promptImportOverwriteDesc:"覆蓋:清空現有,使用匯入的",promptImportMergeDesc:"合併:相同ID更新,新ID追加",promptMerge:"合併",promptOverwrite:"覆蓋",promptMergeSuccess:"已合併:更新 {updated} 個,新增 {added} 個",promptSettingsTitle:"提示詞設定",promptSettingsDesc:"設定提示詞 Tab 的互動行為",promptSubmitShortcutLabel:"發送快捷鍵",promptSubmitShortcutDesc:"同時套用於手動發送與提示詞自動發送。",promptSubmitShortcutEnter:"Enter",promptSubmitShortcutCtrlEnter:"Ctrl + Enter",promptDoubleClickSendLabel:"雙擊提示詞直接發送",promptDoubleClickSendDesc:"開啟後,雙擊提示詞會直接發送;含變數的提示詞會在確認後發送",promptSent:"提示詞已發送",promptSendFailed:"發送失敗,提示詞已保留在輸入框中",copied:"已複製到剪貼簿",cleared:"已清除內容",refreshed:"已刷新",orderUpdated:"已更新排序",inserted:"已插入提示詞",scrolling:"頁面正在捲動,請稍後...",noTextarea:"未找到輸入框,請點擊輸入框後重試",confirmDelete:"確定刪除?",generalTab:"通用",tabSettingsTab:"標籤頁",generalSettings:"通用設定",panelTab:"面板",tabOrderTab:"介面排版",shortcutsTab:"快捷按鈕",panelSettings:"面板設定",settingsTitle:"通用設定",panelSettingsTitle:"面板設定",settingOn:"開",settingOff:"關",modelLockTitle:"模型鎖定",modelLockEnabledLabel:"啟用模型鎖定",modelLockEnabledDesc:"進入頁面後自動切換到指定模型",modelLockLabel:"自動鎖定模型",modelLockDesc:"進入頁面後自動切換到指定模型",modelKeywordLabel:"模型關鍵字",modelKeywordPlaceholder:"模型關鍵詞",modelKeywordExample:"例如: 3 Pro",modelKeywordDesc:"用於匹配目標模型名稱",modelLockFailedNoButton:"模型選擇器未找到",modelLockFailedMenuEmpty:"模型選單載入失敗",modelLockFailedNotFound:'未找到模型 "{model}"',modelLockEnabled:"模型鎖定已開啟",modelLockDisabled:"模型鎖定已關閉",modelLockNoKeyword:"模型鎖定:未設定關鍵字",userQueryWidthDesc:"調整使用者問題氣泡容器的最大寬度(每個站點獨立配置)",categoryManage:"分類管理",categoryEmpty:"暫無分類,新增提示詞時會自動建立分類",rename:"重新命名",newCategoryName:"請輸入新的分類名稱:",categoryRenamed:"分類已重新命名",confirmDeleteCategory:"確定刪除該分類嗎?關聯的提示詞將移至「未分類」",categoryDeleted:"分類已刪除",promptCountSuffix:" 個提示詞",categoryRenamedTo:"分類已重組命名為「{name}」",confirmDeleteCategoryMsg:"確定刪除分類「{name}」?關聯的提示詞將移至「未分類」",categoryDeletedMsg:"分類「{name}」已刪除",languageLabel:"介面語言",languageDesc:"設定面板顯示語言,即時生效",languageAuto:"跟隨系統",languageZhCN:"简体中文",languageZhTW:"繁體中文",languageEn:"English",themeLabel:"主題模式",themeAuto:"跟隨系統",themeLight:"淺色",themeSystem:"系統",themeDark:"深色",themeSettings:"主題設置",currentThemeMode:"當前模式",themeSettingsDesc:"選擇淺色和深色模式下使用的主題預設",themePresetsTab:"主題預設",customStylesTab:"自定義樣式",pleaseEnterStyleName:"請輸入樣式名稱",code:"代碼",unnamedStyle:"未命名樣式",lightMode:"淺色模式",darkMode:"深色模式",enterStyleName:"輸入樣式名稱",create:"建立",customCSS:"自訂樣式",customCSSDesc:"建立自訂 CSS 樣式,可在主題選擇器中使用",customCSSTemplate:"插入範本",addCustomStyle:"新增",noCustomStyles:"暫無自訂樣式,點擊上方「新增」按鈕建立",editStyle:"編輯",deleteStyle:"刪除",confirmDeleteStyle:"確認刪除該樣式?",styleNameLabel:"樣式名稱",styleNamePlaceholder:"輸入樣式名稱",styleModeLabel:"適用模式",styleModeLight:"☀️ 淺色模式",styleModeDark:"🌙 深色模式",styleCSSLabel:"CSS 程式碼",styleCreated:"樣式已建立",styleUpdated:"樣式已更新",styleDeleted:"樣式已刪除",styleNameRequired:"請輸入樣式名稱",newStyle:"新建樣式",editStyleTitle:"編輯樣式",lightModePreset:"淺色模式",lightModePresetDesc:"僅在淺色模式生效",darkModePreset:"深色模式",darkModePresetDesc:"僅在深色模式生效",primaryColor:"主色",secondaryColor:"次色","themePreset_google-gradient":"Google 漸變",themePreset_purple:"紫羅蘭",themePreset_ocean:"海洋藍","themePreset_classic-dark":"經典深黑","themePreset_midnight-blue":"午夜藍",themePreset_forest:"暗夜森林",themePreset_sakura:"櫻花物語",themePreset_mint:"清新薄荷",themePreset_nordic:"北歐霜雪",themePreset_cyberpunk:"賽博霓虹",themePreset_coffee:"醇香咖啡",themePreset_sunset:"幻夢落日","themePreset_lemon-soda":"檸檬蘇打","themePreset_ancient-scroll":"羊皮卷","themePreset_mono-pro":"極致黑白",themePreset_dracula:"德古拉","themePreset_deep-abyss":"深海幽藍","themePreset_crimson-moon":"猩紅赤月",themePreset_porcelain:"青花瓷",themePreset_shortbread:"奶油脆餅","themePreset_unicorn-dream":"獨角獸","themePreset_retro-terminal":"黑客終端","themePreset_eva-unit-01":"代號:暴走",themePreset_aurora:"極光行者",toggleTheme:"切换主题",anchorUpdated:"錨點已更新",jumpToAnchor:"返回之前位置",layoutTab:"頁面排版",contentStyleTab:"內容處理",claudeSettingsTab:"Claude 專屬",pageWidthSettings:"頁面寬度",moreLanguages:"更多語言",layoutSettingsTitle:"頁面寬度控制",tabLayout:"頁面佈局",tabModelLock:"模型鎖定",tabGemini:"Gemini",enablePageWidthDesc:"調整聊天頁面的最大寬度",userQueryWidthSettings:"使用者問題寬度",scrollSettings:"滾動設定",contentProcessing:"內容處理",contentProcessingDesc:"配置 AI 回覆內容的處理方式",interactionEnhance:"互動增強",interactionEnhanceDesc:"增強公式和表格的互動功能",exportSettings:"匯出設定",markdownFixLabel:"Markdown 加粗修復",markdownFixDesc:"修復 Gemini 回應中未正確渲染的 **加粗** 語法",pageWidthLabel:"頁面寬度",pageWidthValueLabel:"寬度值",pageWidthDesc:"調整聊天頁面的寬度,即時生效(每個站點獨立配置)",enablePageWidth:"啟用頁面加寬",widthValue:"寬度值",widthUnit:"單位",navContent:"內容互動",unitPx:"像素 (px)",unitPercent:"百分比 (%)",enableUserQueryWidth:"啟用使用者問題加寬",enableUserQueryWidthDesc:"調整使用者問題氣泡容器的最大寬度",userQueryWidthValueLabel:"問題寬度",tabSettingsTitle:"標籤頁設置",openNewTabLabel:"新分頁開啟新對話",openNewTabDesc:"在面板頂部新增按鈕,點擊後在新分頁開啟新對話",newTabTooltip:"新分頁開啟對話",autoRenameTabLabel:"自動重新命名標籤頁",autoRenameTabDesc:"將瀏覽器標籤頁名稱改為當前對話名稱",renameIntervalLabel:"檢測頻率",renameIntervalDesc:"檢測對話名稱變化的間隔時間",secondsSuffix:"秒",showStatusLabel:"顯示生成狀態",showStatusDesc:"在標籤頁標題中顯示生成狀態圖示(⏳/✅)",showNotificationLabel:"傳送桌面通知",showNotificationDesc:"生成完成時傳送系统通知",notificationSoundLabel:"通知聲音",notificationSoundDesc:"生成完成時播放提示音",notificationVolumeLabel:"聲音音量",notifyWhenFocusedLabel:"前台時也通知",notifyWhenFocusedDesc:"當前頁面可見時也發送通知,而不僅在後台時",autoFocusLabel:"自動置頂視窗",autoFocusDesc:"生成完成時自動將視窗帶回前台",privacyModeLabel:"隱私模式",privacyModeDesc:"隱藏真實對話標題,顯示偽裝標題(雙擊面板標題可快速切換)",privacyTitleLabel:"偽裝標題",privacyTitlePlaceholder:"如:Google、工作文件",titleFormatLabel:"標題格式",titleFormatDesc:"自訂標題格式,支援佔位符:{status}、{title}、{model}",notificationTitle:"✅ {site} 生成完成",notificationBody:"點擊查看結果",tabOutline:"大綱",outlineEmpty:"暫無大綱內容",outlineEmptyDescDefault:"開始對話後將自動生成大綱",outlineEmptyDescUserQueryOnly:"目前僅顯示用戶提問,發送訊息後將出現大綱內容",outlineRefresh:"刷新",outlineSettings:"大綱設置",outlineSettingsTitle:"大綱設置",outlineEnabledLabel:"啟用大綱視圖",outlineShowUserQueriesLabel:"顯示用戶提問",bookmarkSettings:"收藏設置",bookmarkModeDisableLevel:"收藏模式下無法調整層級",bookmarkSettingsDesc:"收藏相關設置",inlineBookmarkModeLabel:"頁內收藏圖示",inlineBookmarkModeDesc:"控制頁面標題旁的收藏圖示顯示方式",panelBookmarkModeLabel:"面板收藏圖示",panelBookmarkModeDesc:"控制大綱面板中的收藏圖示顯示方式",inlineBookmarkModeAlways:"固定顯示",inlineBookmarkModeHover:"懸浮顯示",inlineBookmarkModeHidden:"隱藏",outlineSettingsDesc:"配置大綱生成和跟隨行為",outlineUpdateIntervalDesc:"大綱自動更新的時間間隔(秒)",conversationsSettingsDesc:"配置會話同步和顯示行為",readingHistoryTitle:"閱讀歷史",readingHistoryDesc:"記錄和恢復會話閱讀位置",enableOutline:"啟用大綱",outlineMaxLevel:"顯示標題級別",outlineLevelAll:"全部 (1-6級)",outlineLevel1:"僅 1 級",outlineLevel2:"至 2 級",outlineLevel3:"至 3 級",refreshPrompts:"刷新提示詞",refreshOutline:"刷新大綱",refreshSettings:"刷新設置",outlineScrollBottom:"滾動到底部",outlineScrollTop:"滾動到頂部",outlineExpandAll:"展開全部",outlineCollapseAll:"折叠全部",outlineLocateCurrent:"定位到當前位置",outlineSearch:"搜尋大綱...",outlineSearchResult:"個結果",outlineLevelHint:"級標題",tabOrderSettings:"介面排版",tabOrderDesc:"調整面板 Tab 的顯示順序",moveUp:"上移",moveDown:"下移",readingNavigationSettings:"閱讀導航",readingHistorySettings:"閱讀歷史",readingHistoryPersistenceLabel:"啟用閱讀歷史",readingHistoryPersistenceDesc:"自動記錄閱讀位置,下次打開時恢復",readingHistoryAutoRestoreLabel:"自動跳轉",readingHistoryAutoRestoreDesc:"打開頁面時自動跳轉到上次位置",readingHistoryCleanup:"歷史保留時間",readingHistoryCleanupDesc:"只保留最近幾天的閱讀進度 (-1 為永久)",day:"天",days:"天",forever:"永久",daysSuffix:"天",cleanupInfinite:"永久",restoredPosition:"已恢復上次閱讀位置",cleanupDone:"已清理過期數據",outlineAutoUpdateLabel:"對話期間自動更新大綱",outlineAutoUpdateDesc:"AI 生成內容時自動刷新目錄結構",outlineUpdateIntervalLabel:"更新檢測間隔 (秒)",outlineShowUserQueries:"展示用戶提問",outlineShowUserQueriesTooltip:"展示用戶提問",outlineOnlyUserQueries:"提問",globalSearchOutlineReplies:"回覆",outlineIntervalUpdated:"間隔已設為 {val} 秒",outlineSyncScrollLabel:"同步滾動",outlineSyncScrollDesc:"頁面滾動時自動高亮對應的大綱項",outlineFollowModeLabel:"大綱跟隨模式",outlineFollowCurrent:"跟隨當前位置",outlineFollowLatest:"跟隨最新訊息",outlineFollowManual:"手動控制",outlineFollowCurrentDesc:"滾動頁面時高亮當前大綱項",outlineFollowLatestDesc:"自動滾動到最新訊息",outlineFollowManualDesc:"不自動滾動,用戶手動控制",outlineShowWordCountLabel:"顯示字數",outlineShowWordCountDesc:"在工具提示中顯示每個段落的字數統計",words:"字",pageDisplaySettings:"頁面顯示",otherSettingsTitle:"其他設置",showCollapsedAnchorLabel:"錨點",showCollapsedAnchorDesc:"當面板收起時,在側邊浮動條中顯示錨點按鈕",showCollapsedThemeLabel:"主題",floatingToolbarLabel:"浮動工具列",tools:"工具箱",cleanup:"清除無效收藏",floatingToolbarMore:"更多",floatingToolbarClearGhost:"清除無效收藏",floatingToolbarClearGhostConfirm:"是否清除目前會話中的 {count} 筆無效收藏?",floatingToolbarClearGhostEmpty:"沒有需要清理的無效收藏",showCollapsedThemeDesc:"當面板收起時,在側邊浮動條中顯示主題切換按鈕",collapsedButtonsOrderDesc:"調整折疊面板按鈕的顯示順序",preventAutoScrollLabel:"防止自動滾動",preventAutoScrollDesc:"當 AI 生成長內容時,阻止頁面自動滾動到底部,方便閱讀上文",defaultPanelStateLabel:"預設展開面板",defaultPanelStateDesc:"刷新頁面後面板預設保持展開狀態",autoHidePanelLabel:"點擊外部收起",autoHidePanelDesc:"點擊面板外部區域時自動收起為懸浮球",autoHidePanelDescEdgeSnap:"點擊面板外部區域時自動縮回邊緣",disableOutline:"禁用大綱",togglePrompts:"啟用/禁用提示詞",toggleConversations:"啟用/禁用會話",tabBehaviorTitle:"標籤頁行為",notificationSettings:"完成後操作",enablePrerequisiteToast:"請先開啟「{setting}」",privacyModeTitle:"隱私模式",collapsedButtonsOrderTitle:"快捷按鈕組",quickButtonsOpacityLabel:"快捷按鈕透明度",quickButtonsOpacityDesc:"調整快捷按鈕組整體透明度",tabConversations:"會話",conversationsEmpty:"暫無會話數據",conversationsEmptyHint:"點擊上方同步按鈕從側邊欄匯入會話",conversationsSync:"同步會話",conversationsSyncing:"正在同步...",syncingConversations:"正在同步會話列表...",grokSyncingConversations:"正在同步會話,請勿操作...",conversationsSynced:"同步完成",conversationsAddFolder:"新建資料夾",conversationsRename:"重新命名",conversationsDelete:"刪除",conversationsDeleteConfirm:"確定刪除此資料夾嗎?其中的會話將移到收件箱。",conversationsFolderCreated:"資料夾已建立",conversationsFolderRenamed:"資料夾已重新命名",conversationsFolderDeleted:"資料夾已刪除",conversationsCannotDeleteDefault:"無法刪除默認資料夾",conversationsIcon:"圖示",conversationsFolderName:"名稱",conversationsFolderNamePlaceholder:"輸入資料夾名稱",conversationsSyncEmpty:"未找到會話",conversationsSyncNoChange:"無新會話",conversationsLocate:"定位當前對話",conversationsLocateSuccess:"已定位到當前對話",conversationsLocateNotFound:"當前對話未收錄,正在同步...",conversationsLocateNewChat:"當前是新對話,尚未保存",conversationsLocateSyncFailed:"同步後仍未找到該對話",justNow:"剛剛",minutesAgo:"分鐘前",hoursAgo:"小時前",daysAgo:"天前",conversationsSelectFolder:"選擇同步目標資料夾",conversationsMoveTo:"移動到...",conversationsMoved:"已移動到",conversationsSyncDeleteTitle:"同步刪除",conversationsSyncDeleteMsg:"檢測到 {count} 個會話已在雲端刪除,是否同步刪除本地記錄?",conversationsDeleted:"已移除",conversationsSettingsTitle:"會話設置",conversationsSyncUnpinLabel:"同步時更新取消置頂",conversationsSyncUnpinDesc:"同步時,將雲端未置頂的會話在本地也取消置頂",folderRainbowLabel:"資料夾彩虹色",folderRainbowDesc:"為每個資料夾分配不同的背景顏色,關閉後使用統一純色",conversationsSyncDeleteLabel:"刪除時同步刪除雲端",conversationsSyncDeleteDesc:"刪除本地會話記錄時,同時刪除對應站點的雲端會話",conversationsSyncRenameLabel:"重命名時同步雲端",conversationsSyncRenameDesc:"修改會話標題時,同時在 {site} 側邊欄更新標題",conversationsCustomIcon:"自定義圖示",batchSelected:"已選 {n} 個",batchMove:"移動",batchDelete:"刪除",batchExit:"退出",batchExport:"匯出",exportToMarkdown:"Markdown",exportToJSON:"JSON",exportLoading:"正在載入對話歷史...",exportSuccess:"匯出成功",exportFailed:"匯出失敗",exportNoContent:"未找到對話內容",copySuccess:"已複製到剪貼簿",copyFailed:"複製失敗",exportNeedOpenFirst:"請先打開要匯出的會話",exportUserLabel:"用戶",exportMetaTitle:"匯出資訊",exportMetaConvTitle:"會話標題",exportMetaTime:"匯出時間",exportMetaSource:"來源",exportNotSupported:"目前站點不支援匯出",exportToTXT:"TXT",exportMetaUrl:"連結",exportUntitled:"未命名",exportToClipboard:"複製 Markdown",conversationsRefresh:"刷新會話列表",refreshConversations:"刷新會話",conversationsSearchPlaceholder:"搜尋會話...",conversationsSearchResult:"個結果",conversationsNoSearchResult:"未找到匹配結果",shortcutToggleScrollLock:"AI生成時禁止自動滾動到底部",shortcutToggleModelLock:"切換模型鎖定狀態",conversationsNewTag:"新建標籤",conversationsSetTag:"設置標籤",conversationsSetTags:"批量設置標籤",conversationsTagName:"標籤名稱",conversationsTagColor:"標籤顏色",conversationsFilterByTags:"按標籤篩選",conversationsClearTags:"清除篩選",conversationsTagCreated:"標籤已建立",conversationsTagUpdated:"標籤已更新",conversationsTagDeleted:"標籤已刪除",conversationsTagExists:"標籤名稱已存在",conversationsSelectTag:"選擇標籤",conversationsExistingTags:"已有標籤",conversationsEditTag:"編輯標籤",conversationsCancelEdit:"取消編輯",conversationsSelectColor:"選擇顏色",conversationsCollapseColor:"收起顏色",conversationsSearchFolder:"搜尋資料夾...",conversationsUpdateTag:"更新標籤",conversationsNoTags:"暫無標籤",conversationsManageTags:"管理標籤",conversationsDeleteTag:"刪除標籤",conversationsPin:"置頂📌",conversationsUnpin:"取消置頂",conversationsPinned:"已置頂",conversationsUnpinned:"已取消置頂",conversationsFilterPinned:"篩選置頂",conversationsClearAll:"清除所有篩選",conversationsBatchMode:"批次操作",loadingHistory:"正在載入歷史記錄...",historyLoaded:"歷史記錄載入完成",stopLoading:"停止載入",loadingHint:"保持頁面靜止,完成後將自動停留在頂部",edgeSnapHideLabel:"邊緣自動吸附",edgeSnapHideDesc:"拖動面板到螢幕邊緣時自動吸附,懸停顯示",edgeSnapThresholdLabel:"吸附觸發距離",edgeSnapThresholdDesc:"拖曳面板到邊緣多近時觸發吸附",defaultPositionLabel:"預設位置",defaultPositionDesc:"頁面重新整理後面板顯示在哪一側",defaultPositionLeft:"左側",defaultPositionRight:"右側",defaultEdgeDistanceLabel:"預設邊距",defaultEdgeDistanceDesc:"面板距離螢幕邊緣的初始距離",panelWidthLabel:"面板寬度",panelWidthDesc:"面板的寬度 (px)",panelHeightLabel:"面板高度",panelHeightDesc:"面板佔用螢幕高度的百分比",setAnchor:"設置錨點",setAnchorToast:"已設置錨點",backToAnchor:"返回錨點",goToAnchor:"返回錨點",noAnchor:"暫無錨點",clearAnchor:"清除錨點",clearAnchorToast:"已清除錨點",manualAnchorLabel:"手動錨點",manualAnchorDesc:"在快捷工具欄顯示手動錨點按鈕",watermarkRemovalLabel:"移除圖片浮水印",watermarkRemovalDesc:"自動移除 Gemini AI 生成圖像中的 NanoBanana 浮水印",watermarkProcessing:"正在處理圖片...",watermarkProcessed:"浮水印已移除",watermarkFailed:"處理失敗",contentExportSettingsTitle:"內容設置",exportImagesToBase64Label:"匯出時圖片轉 Base64",exportImagesToBase64Desc:"將對話中的圖片轉換為 Base64 編碼嵌入 Markdown,方便離線查看",userQueryMarkdownLabel:"用戶提問 Markdown 渲染",userQueryMarkdownDesc:"將用戶提問中的 Markdown 語法渲染為格式化文字",formulaCopyLabel:"雙擊複製公式",formulaCopyDesc:"雙擊數學公式可複製 LaTeX 原始碼(部分站點不支持)",formulaCopied:"公式已複製",formulaDelimiterLabel:"複製時添加分隔符",formulaDelimiterDesc:"根據公式類型自動添加 $ 或 $$ 分隔符",tableCopyLabel:"表格複製 Markdown",tableCopyDesc:"在表格右上角添加複製按鈕,直接複製 Markdown 格式",tableCopied:"表格已複製",dataManagementTitle:"資料管理",dataManagementDesc:"匯出或匯入擴充功能的所有設定和資料",exportDataBtn:"匯出全部資料",importDataBtn:"匯入資料",exportError:"匯出失敗:",importConfirm:"確定要匯入資料嗎?這將覆蓋當前所有設定和資料。",importSuccess:"匯入成功!頁面將重新整理以套用新設定。",importError:"匯入失敗:",invalidBackupFile:"無效的備份檔案格式",backupValidationInvalidFormat:"資料格式無效",backupValidationMissingVersion:"缺少 version 欄位",backupValidationMissingData:"缺少 data 欄位",backupValidationSettingsType:"settings 應為物件類型",backupValidationPromptsType:"prompts 應為陣列類型",backupValidationFoldersType:"folders 應為陣列類型",backupValidationConversationsType:"conversations 應為物件類型",backupValidationHistoryType:"readingHistory 應為物件類型",backupTime:"備份時間",backupType:"類型",openAiPagesWillRefresh:"已開啟的 AI 頁面將重新整理。",dataManagementNote:"提示:匯出的檔案包含所有設定、對話記錄等資料。可用於備份或遷移到新裝置。",webdavSectionTitle:"WebDAV 雲同步",webdavDesc:"將資料同步到 WebDAV 伺服器(如堅果雲、Nextcloud)",webdavUrlLabel:"伺服器地址",webdavUsernameLabel:"用戶名",webdavUsernamePlaceholder:"帳號郵箱",webdavPasswordLabel:"密碼",webdavPasswordPlaceholder:"應用專用密碼",webdavRemotePathLabel:"遠端檔案路徑",webdavTestBtn:"測試連接",webdavUploadBtn:"上傳",webdavDownloadBtn:"下載",webdavDownloadConfirm:"下載將覆蓋當前資料,確定繼續?",webdavLastSync:"上次同步",webdavConnectionSuccess:"連接成功",webdavUploadSuccess:"上傳成功",webdavDownloadSuccess:"下載成功,即將重新整理頁面",allDataCleared:"所有資料已清除,頁面即將刷新...",clearError:"清除失敗",webdavBackupList:"WebDAV 備份列表",noBackupsFound:"未找到備份檔案",loading:"載入中...",webdavConfigIncomplete:"請填寫完整的 WebDAV 配置",webdavAuthFailed:"認證失敗,請檢查用戶名和密碼",webdavConnectionFailed:"連接失敗",webdavUploadFailed:"上傳失敗",webdavDownloadFailed:"下載失敗",webdavFileNotFound:"遠端檔案不存在",webdavInvalidFormat:"無效的備份檔案格式",backupAndRestore:"備份與恢復",webdavServerSettings:"WebDAV 伺服器設定",webdavRemoteDirLabel:"路徑",backupManagement:"備份管理",backupNow:"立即備份",restore:"恢復",localBackup:"本地備份",exportToFile:"匯出為檔案",importBackupFile:"備份檔案匯入",localBackupTab:"本地備份",webdavTab:"WebDAV 同步",localBackupDesc:"將資料匯出為 JSON 檔案儲存到本地",webdavServerDesc:"配置 WebDAV 伺服器用於雲端備份",backupManagementDesc:"測試連接、上傳備份或從雲端恢復",permissionsPageDesc:"查看和管理擴充功能的權限。",requiredPermissions:"必需權限",requiredPermissionsDesc:"這些權限是擴充功能正常運行所必需的,無法關閉",optionalPermissions:"可選權限",optionalPermissionsDesc:"這些權限可以按需授予或撤銷",permissionsSyncHint:"權限狀態與瀏覽器同步,如在此頁面外修改請點擊刷新。",refreshStatus:"刷新狀態",refreshing:"刷新中...",permissionsRefreshed:"權限狀態已刷新",granted:"已授予",notGranted:"未授予",revoke:"撤銷",grant:"授予",allowRecommended:"允許(推薦)",required:"必需",permissionWebdavAccess:"進階功能存取權限",permissionWebdavAccessDesc:"允許連接所有網站。用於 WebDAV 雲端備份同步以及移除 AI 圖片浮水印等進階功能。",permissionStorage:"儲存",permissionStorageDesc:"儲存用戶設定和資料",permissionNotifications:"通知",permissionNotificationsDesc:"顯示桌面通知",permissionCookies:"Cookie管理",permissionCookiesDesc:"管理Claude站點Cookie,用於快速切換SessionKey",permissionTabs:"標籤頁",permissionTabsDesc:"可選權限。用於檢測當前標籤頁狀態和管理對話。",permissionDNR:"網路請求規則",permissionDNRDesc:"可選權限。用於修改請求標頭以移除圖片浮水印等功能。",permAllUrlsTitle:"需要所有網站存取權限",permAllUrlsDesc:"此權限用於 WebDAV 雲端備份和同步,以及移除 AI 生成圖片的浮水印。",permWebdavTitle:"需要網路存取權限",permWebdavDesc:"WebDAV 同步需要存取您設定的伺服器。授權後可進行雲端備份和回復。",permTabsTitle:"需要標籤頁權限",permTabsDesc:"標籤頁重新命名和隱私模式需要此權限,用於讀取和修改標籤頁標題。",permNotifyTitle:"需要通知權限",permNotifyDesc:"啟用桌面通知後,當 AI 生成完成時會收到提醒。",permCookiesTitle:"需要Cookie管理權限",permCookiesDesc:"此權限用於快速切換Claude SessionKey。授權後可以管理claude.ai的Cookie。",permDNRTitle:"需要網路請求規則權限",permDNRDesc:"用於移除 AI 生成圖片的浮水印。",permissionRequestToast:"請在彈出的視窗中授予權限",permissionDialogAllow:"允許並繼續",permissionGranted:"授權成功",permissionDenied:"授權已取消",permissionRequired:"需要權限",webdavPermissionDesc:"WebDAV 備份需要伺服器存取權限。",revokeConfirmDefault:"確定要撤銷此權限嗎?撤銷後,依賴該權限的功能將會自動關閉。",revokeConfirmNotifications:"確定要撤銷通知權限嗎?\n\n撤銷後,【桌面通知】功能將自動關閉。如需再次使用,需重新授權。",revokeConfirmWebdav:"確定要撤銷進階存取權限嗎?\n\n撤銷後,【浮水印移除】和【WebDAV 同步】功能將自動關閉。如需再次使用,需重新授權。",warning:"警告",windowClosing:"視窗即將關閉...",allow:"允許",defaultPromptTranslateTitle:"翻譯助手",defaultPromptTranslateCategory:"翻譯",defaultPromptTranslateContent:"你是一位擁有 20 年經驗的專業翻譯家。請遵循我的要求將待翻譯文本翻譯成 {{target_language}}。\n\n具體要求:\n準確性:忠實於原意,不要遺漏任何資訊。\n流暢性:翻譯後的語言應符合 {{target_language}} 的表達習慣,避免「翻譯腔」。\n風格一致:保持原有的語氣(如:專業、幽默、嚴肅)。\n\n待翻譯文本為: {{text}}",defaultPromptCodeOptTitle:"程式碼優化",defaultPromptCodeOptCategory:"程式設計",defaultPromptCodeOptContent:"你是 {{language}} 專家。請審閱以下程式碼,並運用 Clean Code 原則進行重構。\n\n**原始程式碼**:\n{{code}}\n\n**要求**:\n1. 消除冗餘邏輯。\n2. 改進命名,使其符合 {{language}} 的社群規範。\n3. 增加必要的錯誤處理機制。\n4. 重點關注程式碼的【可讀性】、【健壯性】和【可擴展性】。\n5. 如果可能,使用 {{version}} (如 ES6+/Java 21) 的現代語法特性。\n\n請直接輸出優化後的程式碼區塊,並在後面附帶簡短的優化點總結。",navShortcuts:"快捷鍵位",shortcutsPageDesc:"配置鍵盤快捷鍵以快速執行操作",shortcutsInteractionGroup:"獨立設定",shortcutsInteractionGroupDesc:"此分組設定會持續生效,不受「啟用自訂快捷鍵」開關影響",shortcutsGlobalSettings:"快捷鍵設置",enableShortcuts:"啟用自訂快捷鍵",enableShortcutsDesc:"啟用或禁用所有自訂鍵盤快捷鍵",globalShortcutUrl:"全域快捷鍵開啟的 URL",globalShortcutUrlDesc:"按下全域快捷鍵 Alt+G 時開啟的網址",resetShortcuts:"恢復預設快捷鍵",resetShortcutsConfirm:"確定要恢復所有快捷鍵為預設值嗎?",pressAnyKey:"請按下快捷鍵...",shortcutConflictWith:"與",shortcutConflict:"衝突",globalShortcutsTitle:"全域快捷鍵",globalShortcutsDesc:"在瀏覽器任何頁面都可使用,需要在瀏覽器擴充功能設置頁面配置。",openBrowserShortcuts:"開啟瀏覽器快捷鍵設置",shortcutNotSet:"未設置",shortcutRemove:"移除",shortcutCategoryNavigation:"導航",shortcutCategoryPanel:"面板",shortcutCategoryOutline:"大綱",shortcutCategoryConversation:"會話",shortcutCategoryEdit:"互動控制",shortcutScrollTop:"去頂部",shortcutScrollBottom:"去底部",shortcutGoToAnchor:"返回錨點",shortcutTogglePanel:"展開/收起面板",shortcutToggleTheme:"切換主題",shortcutOpenSettings:"開啟設置",shortcutSwitchTab1:"切換到第 1 個標籤",shortcutSwitchTab2:"切換到第 2 個標籤",shortcutSwitchTab3:"切換到第 3 個標籤",shortcutRefreshOutline:"刷新大綱",shortcutToggleOutlineExpand:"展開/折疊全部",shortcutExpandLevel1:"展開到 1 級",shortcutExpandLevel2:"展開到 2 級",shortcutExpandLevel3:"展開到 3 級",shortcutExpandLevel4:"展開到 4 級",shortcutExpandLevel5:"展開到 5 級",shortcutExpandLevel6:"展開到 6 級",shortcutToggleUserQueries:"顯示用戶問題",shortcutToggleBookmarks:"顯示使用者收藏",shortcutOnlyUserQueries:"只顯示使用者問題",shortcutPrevHeading:"上一個標題",shortcutNextHeading:"下一個標題",shortcutLocateOutline:"定位大綱",shortcutSearchOutline:"搜尋大綱",shortcutNewConversation:"新會話",shortcutRefreshConversations:"刷新會話列表",shortcutLocateConversation:"定位當前會話",shortcutPrevConversation:"上一個會話",shortcutNextConversation:"下一個會話",shortcutExportConversation:"匯出對話",shortcutCopyLatestReply:"複製最新回覆",shortcutCopyLastCodeBlock:"複製最後程式碼區塊",shortcutFocusInput:"聚焦輸入框",shortcutStopGeneration:"停止生成",shortcutTogglePromptQueue:"顯示/隱藏提示詞隊列",shortcutShowShortcuts:"快捷鍵一覽",shortcutShowModelSelector:"模型選擇選單",shortcutCategoryHelp:"說明",shortcutCategorySettings:"設置",shortcutOpenClaudeSettings:"開啟 Claude 專屬",shortcutSwitchClaudeKey:"一鍵切換可用 Claude Key",shortcutOpenGeminiSettings:"開啟 Gemini 專屬",shortcutOpenThemeSettings:"開啟外觀主題",shortcutOpenModelLockSettings:"開啟模型鎖定",scrolledToTop:"已滾動到頂部",scrolledToBottom:"已滾動到底部",outlineRefreshed:"大綱已刷新",conversationsRefreshed:"會話列表已刷新",locatingOutline:"正在定位大綱位置...",locatingConversation:"正在定位當前會話...",noConversationToLocate:"當前無會話可定位",outlineDisabled:"大綱功能已禁用",conversationsDisabled:"會話功能已禁用",exportStarted:"開始匯出對話...",replyCopied:"已複製最新回覆",noReplyToCopy:"無可複製內容",scrollLockToggled:"滾動鎖定已切換",browserNotSupported:"當前瀏覽器不支援自訂擴充功能快捷鍵",inputFocused:"已聚焦輸入框",generationStopped:"已停止生成",notGenerating:"當前未在生成",noConversations:"暫無會話",untitledConversation:"未命名會話",noCodeBlock:"未找到程式碼區塊",codeBlockCopied:"程式碼區塊已複製",modelSelectorNotFound:"未找到模型選擇器",geminiSettingsTab:"Gemini 專屬",claudeSessionKeyTitle:"Session Key 管理",claudeSessionKeyDesc:"管理和切換你的 Claude 多帳號",claudeCurrentUsing:"當前使用:",claudeNoKeySelected:"未選擇 - 請先新增或匯入 Session Key",claudePleaseAddKey:"請先新增 Session Key",claudeAddKey:"新增",claudeImportFromBrowser:"從瀏覽器匯入",claudeImportJSON:"匯入JSON",claudeExportJSON:"匯出JSON",claudeNoKeys:"暫無 Session Key",claudeNoKeysHint:"點擊「新增」或「從瀏覽器匯入」開始管理",claudeKeyValid:"有效",claudeKeyInvalid:"無效",claudeKeyUntested:"未測試",claudeKeyUsing:"使用中",claudeKeyUse:"使用",claudeKeyTest:"測試",claudeKeyDelete:"刪除",claudeKeyCopied:"已複製到剪貼簿",claudeKeyCopyFailed:"複製失敗",claudeKeyDoubleTapCopy:"雙擊複製完整 Key",claudeCopyKey:"複製 Session Key",claudeCopied:"已複製",claudeAlreadyUsing:"當前已在使用此 Session Key",claudePleaseSelectKey:"請選擇一個 Session Key",claudeKeyImported:"已匯入並設為當前使用,正在測試...",claudeKeyAdded:"Session Key 已新增",claudeKeySwitched:"Session Key 已切換,頁面將重新整理",claudeKeyDeleted:"已刪除",claudeKeyTesting:"測試中",claudeGenerating:"偵測到AI正在生成中,請稍後再測試",claudeAddKeyNameTitle:"新增 Session Key - 輸入名稱",claudeAddKeyNamePlaceholder:"例如: 主帳號、備用帳號",claudeAddKeyValueTitle:"新增 Session Key - 輸入 Key",claudeAddKeyValuePlaceholder:"sk-ant-sid01-...",claudeImportNameTitle:"從瀏覽器匯入 - 輸入名稱",claudeImportNamePlaceholder:"為匯入的 Session Key 命名",claudeDeleteConfirmTitle:"確認刪除",claudeDeleteConfirmMsg:"確定要刪除「{name}」嗎?此操作不可恢復。",claudeNameRequired:"名稱不能為空",claudeKeyRequired:"Session Key不能為空",claudeKeyInvalidFormat:"無效的Session Key格式",claudeKeyExists:"該 Session Key 已存在",claudeNoTokensToExport:"暫無 Session Key 可匯出",claudeExported:"已匯出",claudeInvalidJSON:"無效的JSON格式",claudeNoNewTokens:"沒有新 Session Key",claudeImported:"已匯入 {count} 個 Session Key",claudeTokenExists:"該 Session Key 已存在: {name}",claudeNoCookieFound:"未找到當前Cookie",claudeRequestPermission:"請在彈出視窗中授權Cookie權限",claudeNotOnSiteWarning:"即時切換和瀏覽器導入功能僅在 Claude 站點可用",claudeNotOnSiteHint:"請在 Claude 站點使用此功能",claudeShortcutOnlyOnSite:"快捷鍵僅在 Claude 站點可用",claudeBatchTest:"批量檢測",claudeBatchTesting:"檢測中... {current}/{total}",claudeBatchTestDone:"批量檢測完成。{valid} 個有效,{invalid} 個失效。",claudeBatchTestFailed:"批量檢測被中斷",claudeOnlyOneKeyTip:"當前只有一個可用 Key,且正在使用中",noClaudeKeys:"未配置任何 Session Key",restoreSuccess:"恢復成功,即將重新整理頁面...",aistudioSettingsTitle:"AI Studio 設定",aistudioSettingsDesc:"配置 AI Studio 頁面載入後的預設行為",aistudioDefaultModel:"預設模型",aistudioDefaultModelNone:"不指定(使用系統預設)",aistudioDefaultModelCustom:"自訂模型 ID...",aistudioDefaultModelPlaceholder:"models/gemini-xxx",aistudioCollapseNavbar:"預設折疊側邊欄",aistudioCollapseNavbarDesc:"開啟頁面時自動折疊左側導航列",aistudioCollapseRunSettings:"預設收起執行設定面板",aistudioCollapseRunSettingsDesc:"開啟頁面時自動收起右側的執行設定面板",aistudioCollapseTools:"預設收起工具欄",aistudioCollapseToolsDesc:"開啟頁面時自動收起執行設定中的工具欄",aistudioCollapseAdvanced:"預設收起進階設定",aistudioCollapseAdvancedDesc:"開啟頁面時自動收起執行設定中的進階選項",aistudioEnableSearch:"預設啟用搜尋工具",aistudioEnableSearchDesc:"開啟頁面時自動啟用 Google 即時搜尋",aistudioModelsFetched:"模型列表已更新",aistudioNoTabError:"請先開啟 AI Studio 頁面",aistudioModelsError:"獲取模型列表失敗",chatgptSettingsTitle:"ChatGPT 設定",chatgptSettingsDesc:"配置 ChatGPT 頁面的預設行為",chatgptMarkdownFixLabel:"Markdown 加粗修復",chatgptMarkdownFixDesc:"修復 ChatGPT 回應中未渲染的 **加粗** 文字",aistudioRemoveWatermark:"移除圖片浮水印",aistudioRemoveWatermarkDesc:"移除 AI Studio 生成圖片的浮水印(需重新整理頁面生效)",aistudioMarkdownFixLabel:"Markdown 加粗修復",aistudioMarkdownFixDesc:"修復 AI Studio 回應中未渲染的 **加粗** 文字",aistudioReloadHint:"請重新整理頁面使變更生效",exportCustomUserName:"自訂使用者名稱",exportCustomUserNameDesc:"匯出時使用的使用者顯示名稱 (預設: User)",exportCustomModelName:"自訂 AI 名稱",exportCustomModelNameDesc:"匯出時使用的 AI 顯示名稱 (預設: 網站名稱)",exportFilenameTimestamp:"導出文件名包含時間戳",exportFilenameTimestampDesc:"在導出文件名末尾添加時間戳",exportIncludeThoughtsLabel:"匯出包含思維鏈",exportIncludeThoughtsDesc:"匯出時包含並自動展開思維鏈內容(使用引用區塊區分)",popupCurrentSite:"目前站點",popupSupported:"已啟用",popupUnsupported:"不支援",popupNewChat:"新對話",popupQuickAccess:"快速存取",popupRecentUsed:"最近使用",popupNoRecentPrompts:"暫無最近使用的提示詞",popupCopied:"已複製",popupCopyFailed:"複製失敗",popupFeedback:"反饋",popupSettings:"設定",policyRetryLabel:"策略攔截自動重發",policyRetryDesc:"當回覆被企業策略攔截時,嘗試自動重新發送訊息",maxRetriesLabel:"最大重試次數",retryCountSuffix:"次 (同一問題)",policyRetryActive:"策略攔截,自動重試 ({current}/{max})",policyRetryLimitReached:"重試次數已達上限",preventAutoScrollEnabled:"滾動鎖定已開啟",preventAutoScrollDisabled:"滾動鎖定已關閉",toolboxMenu:"工具箱",toolboxMenuTitle:"工具箱選單",toolboxMenuDesc:"設定工具箱彈出選單中顯示的功能",globalSearchCategoryAll:"全部",globalSearchCategoryOutline:"大綱",globalSearchCategorySettings:"設定",globalSearchCategoryConversations:"會話",globalSearchCategoryFolders:"資料夾",globalSearchCategoryTags:"標籤",globalSearchCategoryPrompts:"提示詞",globalSearchCategoryCurrentSession:"當前會話",globalSearchSiteGemini:"Gemini",globalSearchSiteGeminiEnterprise:"Gemini 企業版",globalSearchSiteAIStudio:"AI Studio",globalSearchSiteChatGPT:"ChatGPT",globalSearchSiteClaude:"Claude",globalSearchSiteGrok:"Grok",globalSearchPlaceholderAll:"搜尋全部",globalSearchPlaceholderOutline:"搜尋大綱",globalSearchPlaceholderSettings:"搜尋設定項",globalSearchPlaceholderConversations:"搜尋當前站點會話",globalSearchPlaceholderFolders:"搜尋資料夾",globalSearchPlaceholderTags:"搜尋標籤",globalSearchPlaceholderPrompts:"搜尋提示詞",globalSearchPlaceholderCurrentSession:"搜尋當前會話問題與大綱",globalSearchEmptyAll:"未找到匹配結果",globalSearchEmptyOutline:"暫無大綱搜尋結果",globalSearchEmptySettings:"未找到匹配的設定項",globalSearchEmptyConversations:"暫無會話搜尋結果",globalSearchEmptyFolders:"暫無資料夾搜尋結果",globalSearchEmptyTags:"暫無標籤搜尋結果",globalSearchEmptyPrompts:"暫無提示詞搜尋結果",globalSearchEmptyCurrentSession:"暫無當前會話搜尋結果",globalSearchCategoriesLabel:"全域搜尋分類",globalSearchPageDesc:"設定 Search Everywhere 的搜尋行為與互動細節",globalSearchTriggerHint:"觸發方式:雙擊 Shift 或 Ctrl/Cmd + K",globalSearchMatchingSettingsTitle:"搜尋匹配",globalSearchMatchingSettingsDesc:"設定全域搜尋如何匹配搜尋結果",globalSearchPromptSettingsTitle:"提示詞行為",globalSearchPromptSettingsDesc:"設定在全域搜尋中選中提示詞後按 Enter 的行為",globalSearchPromptEnterBehaviorLabel:"全域搜尋提示詞 Enter 行為",globalSearchPromptEnterBehaviorDesc:"智慧:無變數直接插入,含變數開啟填寫彈窗;僅定位:切換到提示詞列表並定位。",globalSearchPromptEnterBehaviorSmart:"智慧(推薦)",globalSearchPromptEnterBehaviorLocate:"僅定位",globalSearchEnableFuzzySearchLabel:"啟用模糊搜尋",globalSearchEnableFuzzySearchDesc:"啟用後,全域搜尋會對標題、資料夾、標籤、提示詞內容與設定識別字進行模糊比對。",globalSearchFuzzySearchToggle:"模糊",globalSearchFuzzySearchToggleAria:"切換模糊搜尋",globalSearchFooterTips:"Enter 跳轉 · ↑↓ 選擇 · Tab 分類 · Esc 關閉",globalSearchShortcutNudge:"下次可按 {shortcut} 快速開啟",doubleShiftToSearch:"連按兩下 Shift 開啟全域搜尋",doubleShiftToSearchDesc:"快速連按兩下 Shift 鍵即可開啟全域搜尋",globalSearchShortcutNudgeDismiss:"不再提醒",globalSearchContextCurrentItem:"第 {current} 項",globalSearchContextShownProgress:"已顯示 {shown}/{total}",globalSearchContextTotalItems:"共 {total} 項",globalSearchMatchReasonTitle:"標題命中",globalSearchMatchReasonFolder:"資料夾命中",globalSearchMatchReasonTag:"標籤命中",globalSearchMatchReasonType:"類型命中",globalSearchMatchReasonCode:"編號命中",globalSearchMatchReasonCategory:"分類命中",globalSearchMatchReasonContent:"內容命中",globalSearchMatchReasonId:"ID 命中",globalSearchMatchReasonKeyword:"關鍵字命中",globalSearchMatchReasonAlias:"別名命中",globalSearchMatchReasonFuzzy:"模糊命中",globalSearchSyntaxOperatorType:"類型",globalSearchSyntaxOperatorFolder:"資料夾",globalSearchSyntaxOperatorTag:"標籤",globalSearchSyntaxOperatorIs:"狀態",globalSearchSyntaxOperatorLevel:"層級",globalSearchSyntaxOperatorDate:"時間",globalSearchSyntaxPinned:"已釘選",globalSearchSyntaxSuggestionTypeDesc:"依結果類型篩選",globalSearchSyntaxSuggestionFolderDesc:"依資料夾或分類篩選",globalSearchSyntaxSuggestionTagDesc:"依標籤名稱篩選",globalSearchSyntaxSuggestionIsDesc:"依狀態篩選",globalSearchSyntaxSuggestionPinnedDesc:"僅顯示已釘選結果",globalSearchSyntaxSuggestionLevelDesc:"依大綱層級篩選(0 為使用者提問)",globalSearchSyntaxSuggestionLevelQueryDesc:"僅使用者提問",globalSearchSyntaxSuggestionDateDesc:"依最近天數篩選",globalSearchSyntaxDiagnosticUnknownOperator:"未知篩選操作符",globalSearchSyntaxDiagnosticInvalidValue:"篩選值無效",globalSearchSyntaxDiagnosticConflict:"衝突篩選已忽略",globalSearchSyntaxChipRemove:"點擊移除篩選",globalSearchSyntaxChipOverflow:"還有 {count} 個",globalSearchSyntaxEmptyGuideTitle:"試試這些篩選語法",globalSearchSyntaxEmptyGuideDesc:"使用語法篩選可更快縮小結果範圍",globalSearchSyntaxHelpTitle:"搜尋語法示例",globalSearchSyntaxHelpDesc:"點擊可直接插入,關鍵詞僅支援英文",globalSearchSyntaxHelpTriggerAria:"開啟搜尋語法說明",queueTitle:"提示詞隊列",queueQuickAsk:"提示詞隊列",queueInQueue:"隊列中 ({count})",queueEmpty:"隊列為空,輸入內容後按 Enter 發送或排隊",queueClearAll:"清空隊列",queueRemove:"移除",queuePlaceholderIdle:"輸入提示詞,Enter 直接發送...",queuePlaceholderBusy:"AI 生成中,Enter 加入隊列...",queueStatusIdle:"AI 空閒",queueStatusBusy:"AI 生成中",queueSettingLabel:"提示詞隊列",queueSettingDesc:"開啟後在輸入框上方顯示隊列浮層,支援 AI 生成時排隊發送提示詞",queueDisableHint:"你可以前往設定中關閉此功能",queueEdit:"編輯",queueEditSave:"儲存",queueEditCancel:"取消",queueForceSend:"強制發送",zenModeTitle:"禪模式 (Zen Mode)",zenModeLabel:"啟用禪模式",zenModeDesc:"隱藏頁面中不必要的元素(如底部的模型免責聲明等),體驗更純粹的對話介面(每個站點獨立配置)"},en:{panelTitle:"Ophel",welcomeSlogan:"AI's Benefit, Within Reach",disclaimerTitle:"Notice",disclaimerText:"This extension is a general-purpose tool and may not support every unique feature of specific sites. It relies on third-party page structures; if updates break functionality, please report via GitHub Issues for a prompt fix.",disclaimerWarning:"Please do not leave negative reviews in the generic store for issues caused by third-party site changes. Thank you for your understanding and support!",communityMotto:"If you want to go fast, go alone. If you want to go far, go together.",welcomeJoin:"Welcome to",agreeButton:"I Understand and Agree",tabPrompts:"Prompts",tabSettings:"Settings",navGeneral:"General",navSiteSettings:"Site Config",navGlobalSearch:"Global Search",navAppearance:"Appearance",navPageContent:"Page & Content",navFeatures:"Features",navPermissions:"Permissions",navBackup:"Data Management",navAbout:"About",siteSettingsPageDesc:"Configure site-specific layout and content processing",generalPageDesc:"Configure extension behavior and interface",appearancePageDesc:"Customize visual styles and themes",pageContentPageDesc:"Adjust page layout and content display",featuresPageDesc:"Configure extension feature modules",permissionsPageDesc:"View and manage extension permissions.",backupPageDesc:"Manage data backup and cloud sync",aboutPageDesc:"AI's Benefit, Within Reach.",tsPlasmoDesc:"Browser Extension Framework",tsReactDesc:"User Interface Library",tsTypescriptDesc:"Typed JavaScript",tsZustandDesc:"State Management",tsViteDesc:"Frontend Tooling",optionalPermissions:"Optional Permissions",optionalPermissionsDesc:"These permissions can be granted or revoked as needed",requiredPermissions:"Required Permissions",requiredPermissionsDesc:"These permissions are required for the extension to function properly",permissionsSyncHint:"Permission status syncs with browser. Click refresh if modified outside this page.",refreshStatus:"Refresh Status",refreshing:"Refreshing...",permissionsRefreshed:"Permission status refreshed",granted:"Granted",notGranted:"Not Granted",revoke:"Revoke",grant:"Grant",allowRecommended:"Allow (Recommended)",required:"Required",permissionWebdavAccess:"Advanced Features Access",permissionWebdavAccessDesc:"Access to all websites. Required for WebDAV sync and AI image watermark removal.",permissionStorage:"Storage",permissionStorageDesc:"Used to save extension settings, prompts, and conversation data.",permissionNotifications:"Notifications",permissionNotificationsDesc:"Optional. Used to send desktop notifications when AI responses are complete.",permissionCookies:"Cookie Management",permissionCookiesDesc:"Manage Claude site cookies for quick SessionKey switching",permissionTabs:"Tabs",permissionTabsDesc:"Optional. Used to detect current tab status and manage sessions.",permissionDNR:"Network Request Rules",permissionDNRDesc:"Optional. Used to modify request headers for features like image watermark removal.",generalTab:"General",tabSettingsTab:"Tab Settings",generalSettings:"General Settings",panelTab:"Panel",tabOrderTab:"Tab Order",shortcutsTab:"Shortcuts",panelSettings:"Panel Settings",themePresetsTab:"Theme Presets",customStylesTab:"Custom Styles",pleaseEnterStyleName:"Please enter style name",enterStyleName:"Enter style name",lightMode:"Light Mode",darkMode:"Dark Mode",code:"Code",create:"Create",unnamedStyle:"Unnamed Style",layoutTab:"Page Layout",contentStyleTab:"Content Processing",claudeSettingsTab:"Claude Settings",pageWidthSettings:"Page Width",moreLanguages:"More Languages",layoutSettingsTitle:"Page Width Control",tabLayout:"Page Layout",tabModelLock:"Model Lock",tabGemini:"Gemini",enablePageWidthDesc:"Adjust the maximum width of the chat page",userQueryWidthSettings:"User Query Width",scrollSettings:"Scroll Settings",contentProcessing:"Content Processing",contentProcessingDesc:"Configure how AI responses are processed",interactionEnhance:"Interaction Enhancements",interactionEnhanceDesc:"Enhance formula and table interactions",exportSettings:"Export Settings",outlineSettingsDesc:"Configure outline generation and follow behavior",outlineUpdateIntervalDesc:"Auto-update interval for outline (seconds)",conversationsSettingsDesc:"Configure conversation sync and display",readingHistoryDesc:"Track and restore conversation reading positions",day:"day",days:"days",forever:"Forever",localBackupTab:"Local Backup",webdavTab:"WebDAV Sync",localBackupDesc:"Export data as JSON file to local",webdavServerDesc:"Configure WebDAV server for cloud backup",backupManagementDesc:"Test connection, upload backup or restore from cloud",allDataCleared:"All data cleared, refreshing page...",clearError:"Clear failed",webdavBackupList:"WebDAV Backup List",noBackupsFound:"No backup files found",loading:"Loading...",version:"Version",aboutDescription:"{appName} is a browser extension designed for AI platforms like Gemini, ChatGPT, Claude, AI Studio, and Grok. It empowers your workflow with conversation management, smart outlines, and a prompt library, while offering utilities like reading history restoration, bidirectional anchors, watermark removal, formatting fixes, and model locking. With comprehensive customization options for themes and UI, {appName} ensures a smoother and more efficient AI interaction experience.",projectLinks:"Project Links",communityAndSupport:"Community & Support",rateAndReview:"Love Ophel?",rateDesc:"If you enjoy using Ophel, please give us a 5-star rating! It helps us a lot.",chromeStore:"Chrome Store",firefoxAddons:"Firefox Add-on",greasyFork:"Greasy Fork",reviewBtn:"Review",starBtn:"Star",githubDesc:"View source code, report issues, or contribute",giveStar:"Star on GitHub",projectWebsite:"Official Website",websiteDesc:"View documentation, guides, and more",visitWebsite:"Visit Website",credits:"Credits",devAndMaintain:"Developer & Maintainer",creditsDesc:"Thanks to all contributors in the open source community. This extension is built upon these excellent open source projects and tools.",privacyTitle:"Privacy Protection",reportIssue:"Report Issue",changelog:"Changelog",techStack:"Tech Stack",privacyStatement:"Privacy Statement",privacyText:"All data in this extension is stored locally in your browser and is not uploaded to any remote server. WebDAV sync is handled by your own configured server.",license:"License",tabBehaviorTitle:"Tab Behavior",notificationSettings:"Post-Completion Actions",enablePrerequisiteToast:'Please enable "{setting}" first',privacyModeTitle:"Privacy Mode",collapsedButtonsOrderTitle:"Quick Buttons",quickButtonsOpacityLabel:"Quick buttons opacity",quickButtonsOpacityDesc:"Adjust overall opacity of the quick buttons",searchPlaceholder:"Search prompts...",addPrompt:"Add New Prompt",allCategory:"All",uncategorized:"Uncategorized",manageCategory:"⚙ Manage",currentPrompt:"Current: ",scrollTop:"Top",scrollBottom:"Bottom",refresh:"Refresh",collapse:"Collapse",edit:"Edit",delete:"Delete",copy:"Copy",addBookmark:"Add to Favorites",removeBookmark:"Remove from Favorites",bookmarkContentMissing:"Favorite content is missing/collapsed",bookmarkMode:"Favorites",outlineNoBookmarks:"No Favorites",outlineAddBookmarkHint:"Click the star next to the item to bookmark",bookmarkModeDisabled:"Not available in Favorites mode",drag:"Drag",save:"Save",cancel:"Cancel",close:"Close",add:"Add",confirm:"Confirm",export:"Export Markdown",clear:"Clear",error:"Error",operationFailed:"Operation failed",deleteSuccess:"Deleted successfully",deleteError:"Delete failed",restoreError:"Restore failed",insertFailed:"Insert failed",maximize:"Maximize",browse:"Browse...",clearAllData:"Clear All Data",clearAllDataDesc:"Caution: This will remove all local settings, prompts and conversations.",clearAllDataConfirm:"Are you sure you want to clear all data? This works is irreversible and all settings, prompts, conversations will be deleted!",clearSuccess:"Data cleared, refreshing...",defaultDir:"Default Directory",dangerZone:"Danger Zone",dangerZoneDesc:"Destructive operations (Irreversible)",anchorPoint:"Anchor",updateAnchor:"Update Anchor",goToAnchor:"Return to Anchor",title:"Title",category:"Category",categoryPlaceholder:"e.g., Coding, Translation",content:"Prompt Content",editPrompt:"Edit Prompt",addNewPrompt:"Add New Prompt",fillTitleContent:"Please fill in title and content",promptUpdated:"Prompt updated",promptAdded:"Prompt added",deleted:"Deleted",promptPin:"Pin",promptUnpin:"Unpin",promptVariableTitle:"Fill Variables",promptVariablePlaceholder:"Enter",promptImport:"Import",promptExport:"Export",promptImportTitle:"Import Prompts",promptImportMessage:"Click 'Confirm' to replace existing prompts, or 'Cancel' to merge",promptImportSuccess:"Import successful",promptImportFailed:"Import failed",promptExportSuccess:"Export successful",promptRecentUsed:"Recent",promptMarkdownPreview:"Preview",promptImportMessage2:"Found {count} prompts. Choose import method:",promptImportOverwriteDesc:"Overwrite: Replace all existing prompts",promptImportMergeDesc:"Merge: Update same IDs, add new ones",promptMerge:"Merge",promptOverwrite:"Overwrite",promptMergeSuccess:"Merged: {updated} updated, {added} added",promptSettingsTitle:"Prompts Settings",promptSettingsDesc:"Configure interactions in the prompts tab",promptSubmitShortcutLabel:"Send shortcut",promptSubmitShortcutDesc:"Applies to both manual send and prompt auto-send.",promptSubmitShortcutEnter:"Enter",promptSubmitShortcutCtrlEnter:"Ctrl + Enter",promptDoubleClickSendLabel:"Double-click to send prompt",promptDoubleClickSendDesc:"When enabled, double-click sends the prompt directly. Prompts with variables are sent after confirmation.",promptSent:"Prompt sent",promptSendFailed:"Send failed, prompt remains in input",copied:"Copied to clipboard",cleared:"Content cleared",refreshed:"Refreshed",orderUpdated:"Order updated",inserted:"Prompt inserted",scrolling:"Page is scrolling, please wait...",noTextarea:"Input not found, please click the input area first",confirmDelete:"Delete this prompt?",settingsTitle:"General Settings",panelSettingsTitle:"Panel Settings",settingOn:"ON",settingOff:"OFF",modelLockTitle:"Model Lock",modelLockEnabledLabel:"Enable Model Lock",modelLockEnabledDesc:"Automatically switch to specified model upon entry",modelLockLabel:"Auto Lock Model",modelLockDesc:"Automatically switch to specified model upon entry",modelKeywordLabel:"Model Keyword",modelKeywordPlaceholder:"Model Keyword",modelKeywordExample:"e.g., 3 Pro",modelKeywordDesc:"Used to match target model name",modelLockFailedNoButton:"Model selector not found",modelLockFailedMenuEmpty:"Model menu failed to load",modelLockFailedNotFound:'Model "{model}" not found',modelLockEnabled:"Model Lock Enabled",modelLockDisabled:"Model Lock Disabled",modelLockNoKeyword:"Please configure model keyword in settings first",userQueryWidthDesc:"Adjust max width of user query bubble container (per site)",categoryManage:"Category Management",categoryEmpty:"No categories yet. Categories are created when you add prompts.",rename:"Rename",newCategoryName:"Enter new category name:",categoryRenamed:"Category renamed",confirmDeleteCategory:'Delete this category? Associated prompts will be moved to "Uncategorized"',categoryDeleted:"Category deleted",promptCountSuffix:" prompt(s)",categoryRenamedTo:"Category renamed to '{name}'",confirmDeleteCategoryMsg:"Delete category '{name}'? Prompts will be moved to 'Uncategorized'",categoryDeletedMsg:"Category '{name}' deleted",languageLabel:"Language",languageDesc:"Set panel display language, takes effect immediately",languageAuto:"Auto",languageZhCN:"简体中文",languageZhTW:"繁體中文",languageEn:"English",themeLabel:"Theme",themeAuto:"Auto",themeSettings:"Theme Settings",currentThemeMode:"Current Mode",themeSettingsDesc:"Choose presets for light and dark mode",themeLight:"Light",themeSystem:"System",customCSS:"Custom Styles",customCSSDesc:"Create custom CSS styles for use in theme selector",customCSSTemplate:"Insert Template",addCustomStyle:"Add",noCustomStyles:"No custom styles yet. Click 'Add' button to create one.",editStyle:"Edit",deleteStyle:"Delete",confirmDeleteStyle:"Delete this style?",styleNameLabel:"Style Name",styleNamePlaceholder:"Enter style name",styleModeLabel:"Mode",styleModeLight:"☀️ Light Mode",styleModeDark:"🌙 Dark Mode",styleCSSLabel:"CSS Code",styleCreated:"Style created",styleUpdated:"Style updated",styleDeleted:"Style deleted",styleNameRequired:"Please enter style name",newStyle:"New Style",editStyleTitle:"Edit Style",lightModePreset:"Light Mode",lightModePresetDesc:"Effective only in Light Mode",darkModePreset:"Dark Mode",darkModePresetDesc:"Effective only in Dark Mode",primaryColor:"Primary",secondaryColor:"Secondary","themePreset_google-gradient":"Google Gradient",themePreset_purple:"Violet",themePreset_ocean:"Ocean Blue","themePreset_classic-dark":"Classic Dark","themePreset_midnight-blue":"Midnight Blue",themePreset_forest:"Dark Forest",themePreset_sakura:"Sakura Season",themePreset_mint:"Fresh Mint",themePreset_nordic:"Nordic Frost",themePreset_cyberpunk:"Cyberpunk",themePreset_coffee:"Coffee House",themePreset_sunset:"Sunset Glow","themePreset_lemon-soda":"Lemon Soda","themePreset_ancient-scroll":"Ancient Scroll","themePreset_mono-pro":"Mono Pro",themePreset_dracula:"Dracula","themePreset_deep-abyss":"Deep Abyss","themePreset_crimson-moon":"Crimson Moon",themePreset_porcelain:"Porcelain",themePreset_shortbread:"Shortbread","themePreset_unicorn-dream":"Unicorn Dream","themePreset_retro-terminal":"Retro Terminal","themePreset_eva-unit-01":"EVA Unit-01",themePreset_aurora:"Aurora",outlineLevel1:"Level 1 Only",outlineLevel2:"Up to Level 2",outlineLevel3:"Up to Level 3",contentExportSettingsTitle:"Content Settings",markdownFixLabel:"Markdown Bold Fix",markdownFixDesc:"Fix unrendered **bold** syntax in Gemini responses",exportImagesToBase64Label:"Export Images to Base64",exportImagesToBase64Desc:"Convert images to Base64 when exporting conversations for offline viewing",aistudioRemoveWatermark:"Remove Image Watermark",aistudioRemoveWatermarkDesc:"Remove watermarks from AI Studio generated images (Requires page refresh)",aistudioMarkdownFixLabel:"Markdown Bold Fix",aistudioMarkdownFixDesc:"Fix unrendered **bold** text in AI Studio responses",aistudioReloadHint:"Please refresh the page for changes to take effect",exportCustomUserName:"Custom User Name",exportCustomUserNameDesc:"Display name for user in exports (Default: User)",exportCustomModelName:"Custom AI Name",exportCustomModelNameDesc:"Display name for AI in exports (Default: Site Name)",exportFilenameTimestamp:"Add Timestamp to Filename",exportFilenameTimestampDesc:"Add a timestamp to the end of the exported filename",exportIncludeThoughtsLabel:"Include Thoughts in Export",exportIncludeThoughtsDesc:"Include and auto-expand thoughts when exporting (rendered as blockquotes)",userQueryMarkdownLabel:"User Query Markdown Render",userQueryMarkdownDesc:"Render Markdown syntax in user queries as formatted text",watermarkRemovalLabel:"Remove Image Watermark",watermarkRemovalDesc:"Automatically remove NanoBanana watermark from AI generated images",refreshPrompts:"Refresh Prompts",themeDark:"Dark",pageWidthLabel:"Page Width",pageWidthValueLabel:"Width Value",pageWidthDesc:"Adjust chat page width (configured per site)",enablePageWidth:"Enable Page Widening",widthValue:"Width Value",widthUnit:"Unit",navContent:"Content",unitPx:"Pixels (px)",unitPercent:"Percentage (%)",enableUserQueryWidth:"Enable User Query Widening",enableUserQueryWidthDesc:"Adjust the max-width of user query bubble containers",userQueryWidthValueLabel:"Query Width",tabSettingsTitle:"Tab Settings",openNewTabLabel:"Open New Chat in New Tab",openNewTabDesc:"Add a button to the panel header to open a new chat in a new tab",newTabTooltip:"New Chat in New Tab",autoRenameTabLabel:"Auto Rename Tab",autoRenameTabDesc:"Change browser tab title to current conversation name",renameIntervalLabel:"Detection Interval",renameIntervalDesc:"Interval for detecting conversation name changes",secondsSuffix:"s",showStatusLabel:"Show Status",toggleTheme:"Toggle Light/Dark Theme",showStatusDesc:"Display generation status icon in tab title (⏳/✅)",showNotificationLabel:"Desktop Notification",showNotificationDesc:"Send system notification when generation completes",notificationSoundLabel:"Notification Sound",notificationSoundDesc:"Play a sound when generation completes",notificationVolumeLabel:"Sound Volume",notifyWhenFocusedLabel:"Notify When Focused",notifyWhenFocusedDesc:"Send notifications even when the current page is visible",autoFocusLabel:"Auto Focus the Window",autoFocusDesc:"Bring window to front when generation completes",privacyModeLabel:"Privacy Mode",privacyModeDesc:"Hide real conversation title, show decoy title (double-click panel header to toggle)",privacyTitleLabel:"Decoy Title",privacyTitlePlaceholder:"e.g., Google, Work Document",titleFormatLabel:"Title Format",titleFormatDesc:"Custom title format, supports placeholders: {status}, {title}, {model}",notificationTitle:"✅ {site} Generation Complete",notificationBody:"Click to view results",tabOutline:"Outline",outlineEmpty:"No outline content",outlineEmptyDescDefault:"Outline items will appear as the conversation grows.",outlineEmptyDescUserQueryOnly:"Only user queries are shown right now. Send a message to generate outline items.",outlineRefresh:"Refresh",outlineSettings:"Outline Settings",outlineSettingsTitle:"Outline Settings",outlineEnabledLabel:"Enable Outline View",outlineShowUserQueriesLabel:"Show User Queries",bookmarkSettings:"Bookmark Settings",bookmarkModeDisableLevel:"Cannot adjust levels in bookmark mode",bookmarkSettingsDesc:"Bookmark related settings",inlineBookmarkModeLabel:"Inline Bookmark Icons",inlineBookmarkModeDesc:"Control visibility of bookmark icons next to page headings",panelBookmarkModeLabel:"Panel Bookmark Icons",panelBookmarkModeDesc:"Control visibility of bookmark icons in outline panel",inlineBookmarkModeAlways:"Always Visible",inlineBookmarkModeHover:"Hover Only",inlineBookmarkModeHidden:"Hidden",enableOutline:"Enable Outline",outlineMaxLevel:"Heading Levels",outlineLevelAll:"All (1-6)",refreshOutline:"Refresh Outline",refreshSettings:"Refresh Settings",jumpToAnchor:"Go back to previous position",anchorUpdated:"Anchor updated",outlineScrollBottom:"Scroll to bottom",outlineScrollTop:"Scroll to top",outlineExpandAll:"Expand all",outlineCollapseAll:"Collapse all",outlineLocateCurrent:"Locate current position",outlineSearch:"Search outline...",outlineSearchResult:"result(s)",outlineLevelHint:"headings",refreshConversations:"Refresh conversations",syncingConversations:"Syncing conversations...",grokSyncingConversations:"Syncing conversations, please wait...",tabOrderSettings:"Interface Layout",tabOrderDesc:"Adjust the display order of panel tabs",moveUp:"Move Up",moveDown:"Move Down",readingNavigationSettings:"Reading Navigation",readingHistorySettings:"Reading History",readingHistoryPersistenceLabel:"Enable Reading History",readingHistoryPersistenceDesc:"Automatically remember reading position",readingHistoryAutoRestoreLabel:"Auto-Resume",readingHistoryAutoRestoreDesc:"Jump to last position on load",readingHistoryCleanup:"Retention Period",readingHistoryCleanupDesc:"Keep reading progress for days (-1 for infinite)",daysSuffix:" Days",cleanupInfinite:"Forever",readingHistoryTitle:"Reading History",restoredPosition:"Resumed last position",cleanupDone:"Expired data cleaned",outlineAutoUpdateLabel:"Auto-update outline during conversation",outlineAutoUpdateDesc:"Automatically refresh outline when AI generates content",outlineUpdateIntervalLabel:"Update interval (seconds)",outlineShowUserQueries:"Show user queries",outlineShowUserQueriesTooltip:"Show user queries",outlineOnlyUserQueries:"Queries",globalSearchOutlineReplies:"Replies",outlineIntervalUpdated:"Interval set to {val} seconds",outlineSyncScrollLabel:"Sync scroll",outlineSyncScrollDesc:"Auto-highlight outline item when page scrolls",outlineFollowModeLabel:"Outline Follow Mode",outlineFollowCurrent:"Follow Current Position",outlineFollowLatest:"Follow Latest Message",outlineFollowManual:"Manual Control",outlineFollowCurrentDesc:"Highlight outline item when scrolling page",outlineFollowLatestDesc:"Auto-scroll to latest message",outlineFollowManualDesc:"No auto-scroll, user controls manually",outlineShowWordCountLabel:"Show Word Count",outlineShowWordCountDesc:"Display word count for each section in outline tooltip",words:"words",pageDisplaySettings:"Page Display",otherSettingsTitle:"Other Settings",showCollapsedAnchorLabel:"Anchor",showCollapsedAnchorDesc:"Display anchor button in sidebar when panel is collapsed",showCollapsedThemeLabel:"Theme",floatingToolbarLabel:"Floating toolbar",tools:"Toolbox",floatingToolbarMore:"More",floatingToolbarClearGhost:"Clear invalid bookmarks",floatingToolbarClearGhostConfirm:"Clear {count} invalid bookmarks in this session?",floatingToolbarClearGhostEmpty:"No invalid bookmarks to clear.",showCollapsedThemeDesc:"Display theme toggle button in sidebar when panel is collapsed",collapsedButtonsOrderDesc:"Adjust the display order of collapsed panel buttons",preventAutoScrollLabel:"Prevent auto-scroll",preventAutoScrollDesc:"Stop page from auto-scrolling to bottom during AI generation",defaultPanelStateLabel:"Default Expand Panel",defaultPanelStateDesc:"Keep panel expanded after page refresh",autoHidePanelLabel:"Collapse on Click Outside",autoHidePanelDesc:"Minimize panel when clicking outside the panel area",autoHidePanelDescEdgeSnap:"Automatically retract to edge when clicking outside panel",edgeSnapHideLabel:"Edge Auto Snap",edgeSnapHideDesc:"Automatically snap to edge when dragged to screen edge, peek on hover",edgeSnapThresholdLabel:"Snap Threshold",edgeSnapThresholdDesc:"How close to edge triggers snap when dragging",defaultPositionLabel:"Default Position",defaultPositionDesc:"Which side the panel appears after page refresh",defaultPositionLeft:"Left",defaultPositionRight:"Right",defaultEdgeDistanceLabel:"Default Margin",defaultEdgeDistanceDesc:"Initial distance from screen edge",panelWidthLabel:"Panel Width",panelWidthDesc:"Width of the panel (px)",panelHeightLabel:"Panel Height",panelHeightDesc:"Percentage of screen height the panel occupies",setAnchor:"Set Anchor",setAnchorToast:"Anchor set",backToAnchor:"Back to Anchor",noAnchor:"No anchor set",clearAnchor:"Clear Anchor",clearAnchorToast:"Anchor cleared",manualAnchorLabel:"Manual Anchor",manualAnchorDesc:"Show manual anchor button in floating toolbar",disableOutline:"Disable Outline",togglePrompts:"Toggle Prompts",toggleConversations:"Toggle Conversations",tabConversations:"Conversations",conversationsEmpty:"No conversations yet",conversationsEmptyHint:"Click sync button above to import from sidebar",conversationsSync:"Sync",conversationsSyncing:"Syncing...",conversationsSynced:"Synced",conversationsAddFolder:"New Folder",conversationsRename:"Rename",conversationsDelete:"Delete",conversationsDeleteConfirm:"Delete this folder? Conversations will be moved to Inbox.",conversationsFolderCreated:"Folder created",conversationsFolderRenamed:"Folder renamed",conversationsFolderDeleted:"Folder deleted",conversationsCannotDeleteDefault:"Cannot delete default folder",conversationsIcon:"Icon",conversationsFolderName:"Name",conversationsFolderNamePlaceholder:"Enter folder name",conversationsSyncEmpty:"No conversations found",conversationsSyncNoChange:"No new conversations",conversationsLocate:"Locate current conversation",conversationsLocateSuccess:"Located current conversation",conversationsLocateNotFound:"Current conversation not tracked, syncing...",conversationsLocateNewChat:"This is a new chat, not yet saved",conversationsLocateSyncFailed:"Conversation not found after sync",justNow:"Just now",minutesAgo:"min ago",hoursAgo:"hr ago",daysAgo:"days ago",conversationsSelectFolder:"Select Sync Folder",conversationsMoveTo:"Move Conversation",conversationsSetTag:"Set Tag",conversationsMoved:"Moved to",conversationsSyncDeleteTitle:"Sync Delete",conversationsSyncDeleteMsg:"Detected {count} conversations deleted in cloud. Sync delete local records?",conversationsDeleted:"Removed",conversationsSettingsTitle:"Conversation Settings",conversationsSyncUnpinLabel:"Sync Unpin Status",conversationsSyncUnpinDesc:"Unpin local conversation if unpinned in cloud during sync",folderRainbowLabel:"Folder Rainbow Colors",folderRainbowDesc:"Assign different background colors to folders",conversationsSyncDeleteLabel:"Sync Delete Cloud",conversationsSyncDeleteDesc:"Delete cloud conversation on the corresponding site when deleting local record",conversationsSyncRenameLabel:"Sync Rename Cloud",conversationsSyncRenameDesc:"Update {site} sidebar title when renaming locally",conversationsCustomIcon:"Custom Icon",batchSelected:"Selected {n}",batchMove:"Move",batchDelete:"Delete",batchExit:"Exit",batchExport:"Export",exportToMarkdown:"Markdown",exportToJSON:"JSON",exportLoading:"Loading history...",exportSuccess:"Export success",exportFailed:"Export failed",exportNoContent:"No content found",copySuccess:"Copied to clipboard",copyFailed:"Copy failed",exportNeedOpenFirst:"Please open the conversation first",exportUserLabel:"User",exportMetaTitle:"Export Info",exportMetaConvTitle:"Title",exportMetaTime:"Time",exportMetaSource:"Source",exportNotSupported:"Export not supported on this site",exportToTXT:"TXT",exportMetaUrl:"URL",exportUntitled:"Untitled",exportToClipboard:"Copy Markdown",conversationsRefresh:"Refresh conversations",conversationsSearchFolder:"Search folder...",conversationsSearchPlaceholder:"Search conversations...",conversationsSearchResult:" result(s)",conversationsNoSearchResult:"No matching results",conversationsSetTags:"Set Tags",conversationsNewTag:"New Tag",conversationsTagName:"Tag Name",conversationsTagColor:"Tag Color",conversationsFilterByTags:"Filter by Tags",conversationsClearTags:"Clear Filter",conversationsTagCreated:"Tag created",conversationsTagUpdated:"Tag updated",conversationsTagDeleted:"Tag deleted",conversationsTagExists:"Tag name exists",conversationsSelectTag:"Select Tag",conversationsExistingTags:"Existing Tags",conversationsEditTag:"Edit Tag",conversationsCancelEdit:"Cancel Edit",conversationsSelectColor:"Select Color",conversationsCollapseColor:"Collapse Color",conversationsUpdateTag:"Update Tag",conversationsNoTags:"No tags",conversationsManageTags:"Manage Tags",conversationsDeleteTag:"Delete Tag",conversationsPin:"Pin 📌",conversationsUnpin:"Unpin",conversationsPinned:"Pinned",conversationsUnpinned:"Unpinned",conversationsFilterPinned:"Filter Pinned",conversationsClearAll:"Clear All Filters",conversationsBatchMode:"Batch Mode",loadingHistory:"Loading history...",historyLoaded:"History loaded",stopLoading:"Stop loading",loadingHint:"Keep page still, auto-scroll to top when done",formulaCopyLabel:"Double-click to copy formula",formulaCopyDesc:"Double-click math formula to copy LaTeX source (Not supported on some sites)",formulaCopied:"Formula copied",formulaDelimiterLabel:"Add delimiter when copying",formulaDelimiterDesc:"Automatically add $ or $$ delimiter based on formula type",tableCopyLabel:"Table Copy Markdown",tableCopyDesc:"Add copy button to table top-right corner to copy Markdown",tableCopied:"Table copied",dataManagementTitle:"Data Management",dataManagementDesc:"Export or import all extension settings and data",exportDataBtn:"Export All Data",importDataBtn:"Import Data",exportError:"Export failed: ",importConfirm:"Are you sure you want to import data? This will overwrite all current settings and data.",importSuccess:"Import successful! The page will refresh to apply new settings.",importError:"Import failed: ",invalidBackupFile:"Invalid backup file format",backupValidationInvalidFormat:"Invalid data format",backupValidationMissingVersion:"Missing version field",backupValidationMissingData:"Missing data field",backupValidationSettingsType:"settings must be an object",backupValidationPromptsType:"prompts must be an array",backupValidationFoldersType:"folders must be an array",backupValidationConversationsType:"conversations must be an object",backupValidationHistoryType:"readingHistory must be an object",backupTime:"Backup time",backupType:"Type",openAiPagesWillRefresh:"Opened AI pages will be refreshed.",dataManagementNote:"Note: The exported file contains all settings, conversation records, etc. Can be used for backup or migration to new devices.",permissionRequired:"Permission Required",webdavPermissionDesc:"Permission to access this domain is required for WebDAV backup.",webdavSectionTitle:"WebDAV Cloud Sync",webdavDesc:"Sync data to WebDAV server (e.g., Nextcloud, Owncloud)",webdavUrlLabel:"Server URL",webdavUsernameLabel:"Username",webdavUsernamePlaceholder:"Email address",webdavPasswordLabel:"Password",webdavPasswordPlaceholder:"App-specific password",webdavRemotePathLabel:"Remote file path",webdavTestBtn:"Test Connection",webdavUploadBtn:"Upload",webdavDownloadBtn:"Download",webdavDownloadConfirm:"Download will overwrite current data. Continue?",webdavLastSync:"Last sync",webdavConnectionSuccess:"Connection successful",webdavUploadSuccess:"Upload successful",webdavDownloadSuccess:"Download successful",webdavConfigIncomplete:"Please complete WebDAV configuration first",webdavAuthFailed:"Authentication failed, please check username and password",webdavConnectionFailed:"Connection failed",webdavUploadFailed:"Upload failed",webdavDownloadFailed:"Download failed",webdavFileNotFound:"Remote file not found",webdavInvalidFormat:"Invalid backup file format",watermarkProcessing:"Processing image...",watermarkProcessed:"Watermark removed",watermarkFailed:"Failed to process",exportData:"Export Data",exportDataDesc:"Export data as JSON file for backup",importData:"Import Data",importDataDesc:"Restore data from backup file",fullBackup:"Full Backup",fullBackupDesc:"Export all account data and settings. Recommended.",promptsBackup:"Prompts Only",promptsBackupDesc:"Export prompts library only (without tags/folders)",settingsBackup:"Settings Only",settingsBackupDesc:"Export UI settings and preferences only",selectFile:"Select File",noFileSelected:"No file selected",dataPreview:"Data Preview",pastePlaceholder:"Paste JSON data or import via file selector above...",importBtn:"Import",webdavConfig:"WebDAV Configuration",webdavConfigDesc:"Configure WebDAV to upload/download backups",webdavAddress:"WebDAV URL",username:"Username",password:"Password",saveConfig:"Save Config",saveSuccess:"Configuration saved",backupEncryption:"Backup Encryption",backupEncryptionDesc:"Encrypt uploads with a password. Require same password to restore.",encryptionPassword:"Encryption Password",encryptionPasswordPlaceholder:"Used for encrypting uploads and decrypting downloads",restoreTip:"Restore Tip",restoreTipContent:"Restoring from WebDAV imports data but DOES NOT overwrite current device's WebDAV connection/encryption settings. This prevents accidental loss of connection or access. To restore WebDAV config, please import manually.",backupAndRestore:"Backup and Restore",webdavServerSettings:"WebDAV Server Settings",webdavRemoteDirLabel:"Path",backupManagement:"Backup Management",backupNow:"Backup Now",restore:"Restore",localBackup:"Local Backup",exportToFile:"Export to File",importBackupFile:"Import Backup File",permAllUrlsTitle:"All Sites Access Required",permAllUrlsDesc:"Required for WebDAV sync and removing AI image watermarks.",permWebdavTitle:"Network Access Required",permWebdavDesc:"WebDAV sync needs access to your server. Backup and restore will be available after authorization.",permTabsTitle:"Tab Permission Required",permTabsDesc:"Required for tab rename and privacy mode features.",permNotifyTitle:"Notification Permission Required",permNotifyDesc:"Enable desktop notifications to receive alerts when AI generation is complete.",permCookiesTitle:"Cookie Management Permission Required",permCookiesDesc:"This permission is used to quickly switch Claude SessionKeys. After authorization, you can manage claude.ai cookies.",permDNRTitle:"Network Request Rules Permission Required",permDNRDesc:"Used to remove watermarks from AI-generated images.",permissionRequestToast:"Please grant permission in the popup window",permissionDialogAllow:"Allow & Continue",permissionGranted:"Permission Granted",permissionDenied:"Permission Denied",revokeConfirmDefault:"Are you sure you want to revoke this permission? Related features will be automatically disabled.",revokeConfirmNotifications:"Revoke notification permission?\n\nThe [Desktop Notification] feature will be automatically disabled. You will need to re-authorize to use it again.",revokeConfirmWebdav:"Revoke advanced access permission?\n\n[Watermark Removal] and [WebDAV Sync] features will be automatically disabled. You will need to re-authorize to use them again.",warning:"Warning",windowClosing:"Window closing...",allow:"Allow",defaultPromptTranslateTitle:"Translation Assistant",defaultPromptTranslateCategory:"Translation",defaultPromptTranslateContent:'You are a professional translator with 20 years of experience. Please translate the following text into {{target_language}} according to my requirements.\n\nRequirements:\nAccuracy: Be faithful to the original meaning without omitting any information.\nFluency: The translation should conform to {{target_language}} expression habits, avoiding "translationese."\nStyle Consistency: Maintain the original tone (e.g., professional, humorous, serious).\n\nText to translate: {{text}}',defaultPromptCodeOptTitle:"Code Optimization",defaultPromptCodeOptCategory:"Programming",defaultPromptCodeOptContent:"You are a {{language}} expert. Please review the following code and refactor it using Clean Code principles.\n\n**Original Code**:\n{{code}}\n\n**Requirements**:\n1. Eliminate redundant logic.\n2. Improve naming to conform to {{language}} community conventions.\n3. Add necessary error handling mechanisms.\n4. Focus on code [readability], [robustness], and [extensibility].\n5. If possible, use modern {{version}} (e.g., ES6+/Java 21) syntax features.\n\nPlease output the optimized code block directly, followed by a brief summary of improvements.",navShortcuts:"Keyboard Shortcuts",shortcutsPageDesc:"Configure keyboard shortcuts for quick actions",shortcutsInteractionGroup:"Independent Settings",shortcutsInteractionGroupDesc:"Settings in this group are always active and are not affected by the Enable Custom Shortcuts toggle",shortcutsGlobalSettings:"Shortcut Settings",enableShortcuts:"Enable Custom Shortcuts",enableShortcutsDesc:"Enable or disable all custom keyboard shortcuts",globalShortcutUrl:"Global Shortcut URL",globalShortcutUrlDesc:"URL to open when pressing global shortcut Alt+G",resetShortcuts:"Reset to Defaults",resetShortcutsConfirm:"Are you sure you want to reset all shortcuts to default values?",pressAnyKey:"Press any key...",shortcutConflictWith:"Conflicts with",shortcutConflict:"",globalShortcutsTitle:"Global Shortcuts",globalShortcutsDesc:"Work on any browser page. Configure them in browser extension settings.",openBrowserShortcuts:"Open Browser Shortcut Settings",shortcutNotSet:"Not set",shortcutRemove:"Remove",shortcutCategoryNavigation:"Navigation",shortcutCategoryPanel:"Panel",shortcutCategoryOutline:"Outline",shortcutCategoryConversation:"Conversation",shortcutCategoryEdit:"Interaction Control",shortcutScrollTop:"Scroll to Top",shortcutScrollBottom:"Scroll to Bottom",shortcutGoToAnchor:"Go to Anchor",shortcutTogglePanel:"Expand/Collapse Panel",shortcutToggleTheme:"Toggle Theme",shortcutOpenSettings:"Open Settings",shortcutSwitchTab1:"Switch to 1st Tab",shortcutSwitchTab2:"Switch to 2nd Tab",shortcutSwitchTab3:"Switch to 3rd Tab",shortcutRefreshOutline:"Refresh Outline",shortcutToggleOutlineExpand:"Expand/Collapse All",shortcutExpandLevel1:"Expand to Level 1",shortcutExpandLevel2:"Expand to Level 2",shortcutExpandLevel3:"Expand to Level 3",shortcutExpandLevel4:"Expand to Level 4",shortcutExpandLevel5:"Expand to Level 5",shortcutExpandLevel6:"Expand to Level 6",shortcutToggleUserQueries:"Show User Queries",shortcutToggleBookmarks:"Show User Favorites",shortcutOnlyUserQueries:"Only User Queries",shortcutPrevHeading:"Previous Heading",shortcutNextHeading:"Next Heading",shortcutLocateOutline:"Locate Outline",shortcutSearchOutline:"Search Outline",shortcutNewConversation:"New Conversation",shortcutRefreshConversations:"Refresh Conversations",shortcutLocateConversation:"Locate Current Conversation",shortcutPrevConversation:"Previous Conversation",shortcutNextConversation:"Next Conversation",shortcutExportConversation:"Export Conversation",shortcutCopyLatestReply:"Copy Latest Reply",shortcutCopyLastCodeBlock:"Copy Last Code Block",shortcutToggleScrollLock:"Prevent auto-scroll to bottom",shortcutToggleModelLock:"Toggle Model Lock",shortcutFocusInput:"Focus Input",shortcutStopGeneration:"Stop Generation",shortcutTogglePromptQueue:"Toggle Prompt Queue",shortcutShowShortcuts:"Show Shortcuts",shortcutShowModelSelector:"Model Selector",shortcutCategoryHelp:"Help",shortcutCategorySettings:"Settings",shortcutOpenClaudeSettings:"Open Claude Settings",shortcutSwitchClaudeKey:"Switch Claude Key",shortcutOpenGeminiSettings:"Open Gemini Settings",shortcutOpenThemeSettings:"Open Theme Settings",shortcutOpenModelLockSettings:"Open Model Lock",scrolledToTop:"Scrolled to top",scrolledToBottom:"Scrolled to bottom",outlineRefreshed:"Outline refreshed",conversationsRefreshed:"Conversations refreshed",locatingOutline:"Locating in outline...",locatingConversation:"Locating current conversation...",noConversationToLocate:"No conversation to locate",outlineDisabled:"Outline feature is disabled",conversationsDisabled:"Conversations feature is disabled",exportStarted:"Starting export...",replyCopied:"Latest reply copied",noReplyToCopy:"No reply to copy",scrollLockToggled:"Scroll lock toggled",browserNotSupported:"This browser does not support custom extension shortcuts",inputFocused:"Input focused",cleanup:"Clear Invalid Bookmarks",generationStopped:"Generation stopped",notGenerating:"Not currently generating",noConversations:"No conversations",untitledConversation:"Untitled conversation",noCodeBlock:"No code block found",codeBlockCopied:"Code block copied",modelSelectorNotFound:"Model selector not found",geminiSettingsTab:"Gemini Exclusive",claudeSessionKeyTitle:"Session Key Management",claudeSessionKeyDesc:"Manage and switch your Claude accounts",claudeCurrentUsing:"Current:",claudeNoKeySelected:"None - Please add or import a Session Key",claudePleaseAddKey:"Please add a Session Key first",claudeAddKey:"Add",claudeImportFromBrowser:"Import from Browser",claudeImportJSON:"Import JSON",claudeExportJSON:"Export JSON",claudeNoKeys:"No Session Keys",claudeNoKeysHint:"Click 'Add' or 'Import from Browser' to get started",claudeKeyValid:"Valid",claudeKeyInvalid:"Invalid",claudeKeyUntested:"Untested",claudeKeyUsing:"In Use",claudeKeyUse:"Use",claudeKeyTest:"Test",claudeKeyDelete:"Delete",claudeKeyCopied:"Copied to clipboard",claudeKeyCopyFailed:"Copy failed",claudeKeyDoubleTapCopy:"Double-click to copy full key",claudeCopyKey:"Copy Session Key",claudeCopied:"Copied",claudeAlreadyUsing:"Already using this session key",claudePleaseSelectKey:"Please select a Session Key",claudeKeyImported:"Imported and set as current, testing...",claudeKeyAdded:"Session Key added",claudeKeySwitched:"Session Key switched, page will refresh",claudeKeyDeleted:"Deleted",claudeKeyTesting:"Testing",claudeGenerating:"AI is generating, please try again later",claudeAddKeyNameTitle:"Add Session Key - Enter Name",claudeAddKeyNamePlaceholder:"e.g., Main Account, Backup",claudeAddKeyValueTitle:"Add Session Key - Enter Key",claudeAddKeyValuePlaceholder:"sk-ant-sid01-...",claudeImportNameTitle:"Import from Browser - Enter Name",claudeImportNamePlaceholder:"Name for the imported session key",claudeDeleteConfirmTitle:"Confirm Delete",claudeDeleteConfirmMsg:'Delete "{name}"? This cannot be undone.',claudeNameRequired:"Name is required",claudeKeyRequired:"Session Key is required",claudeKeyInvalidFormat:"Invalid Session Key format",claudeKeyExists:"Session Key already exists",claudeNoTokensToExport:"No session keys to export",claudeExported:"Exported",claudeInvalidJSON:"Invalid JSON format",claudeNoNewTokens:"No new session keys",claudeImported:"Imported {count} session key(s)",claudeTokenExists:"Session Key already exists: {name}",claudeNoCookieFound:"No cookie found",claudeRequestPermission:"Please grant cookie permission in the popup",claudeNotOnSiteWarning:"Instant switching and browser import are only available on Claude site",claudeNotOnSiteHint:"Please use this feature on Claude site",claudeShortcutOnlyOnSite:"Shortcut only available on Claude site",claudeBatchTest:"Batch Check",claudeBatchTesting:"Checking... {current}/{total}",claudeBatchTestDone:"Batch check completed. {valid} valid, {invalid} invalid.",claudeBatchTestFailed:"Batch check interrupted",claudeOnlyOneKeyTip:"Only one key available and it is currently in use",noClaudeKeys:"No Session Keys configured",restoreSuccess:"Restore successful, page will refresh...",aistudioSettingsTitle:"AI Studio Settings",aistudioSettingsDesc:"Configure default behavior when AI Studio page loads",aistudioDefaultModel:"Default Model",aistudioDefaultModelNone:"Not specified (use system default)",aistudioDefaultModelCustom:"Custom Model ID...",aistudioDefaultModelPlaceholder:"models/gemini-xxx",aistudioCollapseNavbar:"Collapse Sidebar by Default",aistudioCollapseNavbarDesc:"Auto-collapse left navigation bar when opening page",aistudioCollapseRunSettings:"Collapse Run Settings Panel by Default",aistudioCollapseRunSettingsDesc:"Auto-collapse the right run settings panel when opening page",aistudioCollapseTools:"Collapse Tools Section by Default",aistudioCollapseToolsDesc:"Auto-collapse tools section in run settings when opening page",aistudioCollapseAdvanced:"Collapse Advanced Settings by Default",aistudioCollapseAdvancedDesc:"Auto-collapse advanced options in run settings when opening page",aistudioEnableSearch:"Enable Search Tool by Default",aistudioEnableSearchDesc:"Auto-enable Google real-time search when opening page",aistudioModelsFetched:"Model list updated",aistudioNoTabError:"Please open AI Studio page first",aistudioModelsError:"Failed to fetch model list",chatgptSettingsTitle:"ChatGPT Settings",chatgptSettingsDesc:"Configure default behavior for ChatGPT page",chatgptMarkdownFixLabel:"Markdown Bold Fix",chatgptMarkdownFixDesc:"Fix unrendered **bold** text in ChatGPT responses",popupCurrentSite:"Current Site",popupSupported:"Active",popupUnsupported:"Unsupported",popupNewChat:"New Chat",popupQuickAccess:"Quick Access",popupRecentUsed:"Recent",popupNoRecentPrompts:"No recent prompts",popupCopied:"Copied",popupCopyFailed:"Copy failed",popupFeedback:"Feedback",popupSettings:"Settings",policyRetryLabel:"Auto-retry on Policy Block",policyRetryDesc:"Automatically resend message when blocked by enterprise policy",maxRetriesLabel:"Max Retries",retryCountSuffix:"times (same question)",policyRetryActive:"Policy blocked, retrying ({current}/{max})",policyRetryLimitReached:"Retry limit reached",preventAutoScrollEnabled:"Scroll lock enabled",preventAutoScrollDisabled:"Scroll lock disabled",toolboxMenu:"Toolbox",toolboxMenuTitle:"Toolbox Menu",toolboxMenuDesc:"Configure which features appear in the toolbox popup menu",globalSearchCategoryAll:"All",globalSearchCategoryOutline:"Outline",globalSearchCategorySettings:"Settings",globalSearchCategoryConversations:"Conversations",globalSearchCategoryFolders:"Folders",globalSearchCategoryTags:"Tags",globalSearchCategoryPrompts:"Prompts",globalSearchCategoryCurrentSession:"Current Session",globalSearchSiteGemini:"Gemini",globalSearchSiteGeminiEnterprise:"Gemini Enterprise",globalSearchSiteAIStudio:"AI Studio",globalSearchSiteChatGPT:"ChatGPT",globalSearchSiteClaude:"Claude",globalSearchSiteGrok:"Grok",globalSearchPlaceholderAll:"Search all",globalSearchPlaceholderOutline:"Search outline",globalSearchPlaceholderSettings:"Search settings",globalSearchPlaceholderConversations:"Search conversations on current site",globalSearchPlaceholderFolders:"Search folders",globalSearchPlaceholderTags:"Search tags",globalSearchPlaceholderPrompts:"Search prompts",globalSearchPlaceholderCurrentSession:"Search current session questions and outline",globalSearchEmptyAll:"No matching results",globalSearchEmptyOutline:"No outline results",globalSearchEmptySettings:"No matching settings",globalSearchEmptyConversations:"No conversation results",globalSearchEmptyFolders:"No folder results",globalSearchEmptyTags:"No tag results",globalSearchEmptyPrompts:"No prompt results",globalSearchEmptyCurrentSession:"No results in current session",globalSearchCategoriesLabel:"Global search categories",globalSearchPageDesc:"Configure Search Everywhere behavior and interaction details",globalSearchTriggerHint:"Trigger: double-press Shift or Ctrl/Cmd + K",globalSearchMatchingSettingsTitle:"Search Matching",globalSearchMatchingSettingsDesc:"Configure how Search Everywhere matches search results",globalSearchPromptSettingsTitle:"Prompt Behavior",globalSearchPromptSettingsDesc:"Choose what happens when pressing Enter on a prompt result in Search Everywhere",globalSearchPromptEnterBehaviorLabel:"Search Everywhere prompt Enter behavior",globalSearchPromptEnterBehaviorDesc:"Smart: insert directly when no variable, open variable dialog when needed; Locate only: switch to Prompts and locate the item.",globalSearchPromptEnterBehaviorSmart:"Smart (Recommended)",globalSearchPromptEnterBehaviorLocate:"Locate Only",globalSearchEnableFuzzySearchLabel:"Enable fuzzy search",globalSearchEnableFuzzySearchDesc:"When enabled, Search Everywhere uses fuzzy matching for title, folder, tag, prompt content, and setting identifiers.",globalSearchFuzzySearchToggle:"Fuzzy",globalSearchFuzzySearchToggleAria:"Toggle fuzzy search",globalSearchFooterTips:"Enter to jump · ↑↓ to select · Tab category · Esc to close",globalSearchShortcutNudge:"Press {shortcut} to open next time",doubleShiftToSearch:"Double Shift to open Global Search",doubleShiftToSearchDesc:"Press Shift twice quickly to open Global Search",globalSearchShortcutNudgeDismiss:"Don't remind me",globalSearchContextCurrentItem:"Item {current}",globalSearchContextShownProgress:"Shown {shown}/{total}",globalSearchContextTotalItems:"Total {total}",globalSearchMatchReasonTitle:"Title match",globalSearchMatchReasonFolder:"Folder match",globalSearchMatchReasonTag:"Tag match",globalSearchMatchReasonType:"Type match",globalSearchMatchReasonCode:"Code match",globalSearchMatchReasonCategory:"Category match",globalSearchMatchReasonContent:"Content match",globalSearchMatchReasonId:"ID match",globalSearchMatchReasonKeyword:"Keyword match",globalSearchMatchReasonAlias:"Alias match",globalSearchMatchReasonFuzzy:"Fuzzy match",globalSearchSyntaxOperatorType:"Type",globalSearchSyntaxOperatorFolder:"Folder",globalSearchSyntaxOperatorTag:"Tag",globalSearchSyntaxOperatorIs:"State",globalSearchSyntaxOperatorLevel:"Level",globalSearchSyntaxOperatorDate:"Date",globalSearchSyntaxPinned:"Pinned",globalSearchSyntaxSuggestionTypeDesc:"Filter by result type",globalSearchSyntaxSuggestionFolderDesc:"Filter by folder or category",globalSearchSyntaxSuggestionTagDesc:"Filter by tag name",globalSearchSyntaxSuggestionIsDesc:"Filter by status",globalSearchSyntaxSuggestionPinnedDesc:"Only pinned results",globalSearchSyntaxSuggestionLevelDesc:"Filter outline level (0 = user query)",globalSearchSyntaxSuggestionLevelQueryDesc:"Outline user query",globalSearchSyntaxSuggestionDateDesc:"Filter by recent days",globalSearchSyntaxDiagnosticUnknownOperator:"Unknown operator",globalSearchSyntaxDiagnosticInvalidValue:"Invalid filter value",globalSearchSyntaxDiagnosticConflict:"Conflicting filters removed",globalSearchSyntaxChipRemove:"Click to remove filter",globalSearchSyntaxChipOverflow:"+{count} more",globalSearchSyntaxEmptyGuideTitle:"Try search filters",globalSearchSyntaxEmptyGuideDesc:"Use filter syntax to narrow results quickly",globalSearchSyntaxHelpTitle:"Search syntax examples",globalSearchSyntaxHelpDesc:"Click to insert. Keywords are English-only.",globalSearchSyntaxHelpTriggerAria:"Open search syntax help",queueTitle:"Prompt Queue",queueQuickAsk:"Prompt Queue",queueInQueue:"Queued ({count})",queueEmpty:"Queue is empty. Type and press Enter to send or enqueue.",queueClearAll:"Clear Queue",queueRemove:"Remove",queuePlaceholderIdle:"Type a prompt, Enter to send...",queuePlaceholderBusy:"AI is generating, Enter to enqueue...",queueStatusIdle:"AI Idle",queueStatusBusy:"AI Generating",queueSettingLabel:"Prompt Queue",queueSettingDesc:"Show queue overlay above input for queuing prompts while AI generates",queueDisableHint:"You can disable this in settings",queueEdit:"Edit",queueEditSave:"Save",queueEditCancel:"Cancel",queueForceSend:"Force Send",zenModeTitle:"Zen Mode",zenModeLabel:"Enable Zen Mode",zenModeDesc:"Hide unnecessary elements (like model disclaimers at the bottom) for a purer conversation experience (configured independently for each site)"},ja:{panelTitle:"Ophel",welcomeSlogan:"AIの恩恵を、もっと身近に",disclaimerTitle:"免責事項",disclaimerText:"本拡張機能は汎用ツールであり、特定のサイトのすべての独自機能をサポートしているわけではありません。サードパーティのページ構造に依存しているため、アップデートにより機能が制限された場合は、GitHub Issuesから報告してください。速やかに修正対応いたします。",disclaimerWarning:"サードパーティサイトの仕様変更による問題について、ストアでの低評価レビューはご遠慮ください。ご理解とご協力をお願いいたします!",communityMotto:"早く行きたければ、一人で行け。遠くへ行きたければ、みんなで行け。",welcomeJoin:"Ophelへようこそ",agreeButton:"理解し同意する",tabPrompts:"プロンプト",tabSettings:"設定",navGeneral:"基本設定",navSiteSettings:"サイト設定",navGlobalSearch:"グローバル検索",navAppearance:"外観",navPageContent:"ページと内容",navFeatures:"機能",navPermissions:"権限管理",navBackup:"データ管理",navAbout:"Ophelについて",siteSettingsPageDesc:"サイトごとのレイアウトとコンテンツ処理の設定",generalPageDesc:"拡張機能の動作とインターフェースの設定",appearancePageDesc:"視覚スタイルとテーマのカスタマイズ",pageContentPageDesc:"ページレイアウトと表示設定の調整",featuresPageDesc:"機能モジュールの有効化と設定",permissionsPageDesc:"拡張機能の権限を確認・管理します。",backupPageDesc:"データのバックアップとクラウド同期の管理",aboutPageDesc:"AIの恩恵を、もっと身近に。",tsPlasmoDesc:"ブラウザ拡張機能フレームワーク",tsReactDesc:"ユーザーインターフェースライブラリ",tsTypescriptDesc:"型定義付きJavaScript",tsZustandDesc:"状態管理ライブラリ",tsViteDesc:"フロントエンドツールチェーン",optionalPermissions:"オプション権限",optionalPermissionsDesc:"必要に応じて付与または取り消し可能な権限",requiredPermissions:"必須権限",requiredPermissionsDesc:"拡張機能の動作に最低限必要な権限",permissionsSyncHint:"権限の状態はブラウザと同期されます。外部で変更した場合は更新ボタンを押してください。",refreshStatus:"状態を更新",refreshing:"更新中...",permissionsRefreshed:"権限状態を更新しました",granted:"許可済み",notGranted:"未許可",revoke:"取り消す",grant:"許可する",allowRecommended:"許可(推奨)",required:"必須",permissionWebdavAccess:"高度な機能へのアクセス",permissionWebdavAccessDesc:"すべてのウェブサイトへのアクセス。WebDAV同期やAI画像の透かし除去に必要です。",permissionStorage:"ストレージ",permissionStorageDesc:"設定、プロンプト、会話データの保存に使用します。",permissionNotifications:"通知",permissionNotificationsDesc:"オプション。AIの回答完了時にデスクトップ通知を送信するために使用します。",permissionCookies:"クッキー管理",permissionCookiesDesc:"Claudeサイトのクッキーを管理し、SessionKeyの切り替えに使用します。",permissionTabs:"タブ",permissionTabsDesc:"オプション。現在のタブ状態の検出やセッション管理に使用します。",permissionDNR:"ネットワークリクエストルール",permissionDNRDesc:"オプション。画像の透かし除去など、リクエストヘッダーの変更に使用します。",generalTab:"全般",tabSettingsTab:"タブ設定",generalSettings:"全般設定",panelTab:"パネル",tabOrderTab:"タブ順序",shortcutsTab:"ショートカット",panelSettings:"パネル設定",themePresetsTab:"テーマプリセット",customStylesTab:"カスタムスタイル",pleaseEnterStyleName:"スタイル名を入力してください",enterStyleName:"スタイル名を入力",lightMode:"ライトモード",darkMode:"ダークモード",code:"コード",create:"作成",unnamedStyle:"未命名スタイル",layoutTab:"ページレイアウト",contentStyleTab:"コンテンツ処理",claudeSettingsTab:"Claude専用設定",pageWidthSettings:"ページ幅",moreLanguages:"その他の言語",layoutSettingsTitle:"ページ幅制御",tabLayout:"レイアウト",tabModelLock:"モデルロック",tabGemini:"Gemini",enablePageWidthDesc:"チャットページの最大幅を調整します",userQueryWidthSettings:"ユーザー入力幅",scrollSettings:"スクロール設定",contentProcessing:"コンテンツ処理",contentProcessingDesc:"AI回答の処理方法を設定",interactionEnhance:"インタラクション強化",interactionEnhanceDesc:"数式やテーブルの操作性を向上",exportSettings:"出力設定",outlineSettingsDesc:"アウトライン生成と追従動作の設定",outlineUpdateIntervalDesc:"アウトラインの自動更新間隔(秒)",conversationsSettingsDesc:"会話の同期と表示の設定",readingHistoryDesc:"会話の既読位置を記録し、再開時に復元します",day:"日",days:"日",forever:"永久",localBackupTab:"ローカルバックアップ",webdavTab:"WebDAV同期",localBackupDesc:"データをJSONファイルとしてローカルに書き出します",webdavServerDesc:"クラウドバックアップ用のWebDAVサーバーを設定",backupManagementDesc:"接続テスト、アップロード、またはクラウドからの復元",allDataCleared:"すべてのデータを消去しました。ページを再読み込みします...",clearError:"消去に失敗しました",webdavBackupList:"WebDAVバックアップ一覧",noBackupsFound:"バックアップファイルが見つかりません",loading:"読み込み中...",version:"バージョン",aboutDescription:"{appName}は、Gemini、ChatGPT、Claude、AI Studio、GrokなどのAIプラットフォーム向けに設計されたブラウザ拡張機能です。会話管理、スマートアウトライン、プロンプトライブラリなどの機能でワークフローを強化し、既読位置の復元、双方向アンカー、透かし除去、フォーマット修正、モデルロックなどのユーティリティを提供します。テーマやUIの豊富なカスタマイズオプションにより、よりスムーズで効率的なAI体験を実現します。",projectLinks:"プロジェクトリンク",githubDesc:"ソースコードの確認、バグ報告、貢献はこちら",giveStar:"GitHubでスターを送る",projectWebsite:"公式サイト",websiteDesc:"ドキュメントやガイドなどを確認",visitWebsite:"サイトを訪問",rateAndReview:"Ophelを応援",rateDesc:"Ophelを気に入っていただけましたら、ストアで5つ星評価をお願いします!開発の励みになります。",communityAndSupport:"コミュニティとサポート",chromeStore:"Chrome ストア",firefoxAddons:"Firefox アドオン",greasyFork:"Greasy Fork",reviewBtn:"レビュー",starBtn:"スター",credits:"クレジット",devAndMaintain:"開発・メンテナンス",creditsDesc:"オープンソースコミュニティのすべての貢献者に感謝します。本拡張機能は、これら優れたオープンソースプロジェクトとツールの上に構築されています。",privacyTitle:"プライバシー保護",reportIssue:"問題を報告",changelog:"更新履歴",techStack:"技術スタック",privacyStatement:"プライバシーポリシー",privacyText:"本拡張機能のすべてのデータはブラウザ内にローカル保存され、リモートサーバーに送信されることはありません。WebDAV同期はユーザーが構築したサーバーでのみ行われます。",license:"ライセンス",tabBehaviorTitle:"タブの動作",notificationSettings:"完了後の操作",enablePrerequisiteToast:"先に「{setting}」を有効にしてください",privacyModeTitle:"プライバシーモード",collapsedButtonsOrderTitle:"クイックボタン",quickButtonsOpacityLabel:"Quick buttons opacity",quickButtonsOpacityDesc:"Adjust overall opacity of the quick buttons",searchPlaceholder:"プロンプトを検索...",addPrompt:"新規プロンプト",allCategory:"すべて",uncategorized:"未分類",manageCategory:"⚙ カテゴリ管理",currentPrompt:"現在: ",scrollTop:"トップへ",scrollBottom:"ボトムへ",refresh:"更新",collapse:"折りたたむ",edit:"編集",delete:"削除",copy:"コピー",addBookmark:"お気に入りに追加",removeBookmark:"お気に入りから削除",bookmarkContentMissing:"お気に入りの内容が見つかりません",bookmarkMode:"お気に入り",outlineNoBookmarks:"お気に入りはまだありません",outlineAddBookmarkHint:"アイテムの横にある星アイコンをクリックしてブックマーク",bookmarkModeDisabled:"お気に入りモードでは利用できません",drag:"ドラッグ",save:"保存",cancel:"キャンセル",close:"閉じる",add:"追加",confirm:"確定",export:"Markdown出力",clear:"クリア",error:"エラー",operationFailed:"操作に失敗しました",deleteSuccess:"削除しました",deleteError:"削除に失敗しました",restoreError:"復元に失敗しました",insertFailed:"挿入に失敗しました",maximize:"最大化",browse:"参照...",clearAllData:"すべてのデータを消去",clearAllDataDesc:"注意:すべてのローカル設定、プロンプト、会話データが削除されます。",clearAllDataConfirm:"本当にすべてのデータを消去しますか?この操作は取り消せず、すべての設定、プロンプト、会話が削除されます!",clearSuccess:"消去完了。再読み込み中...",defaultDir:"デフォルトディレクトリ",dangerZone:"危険な操作",dangerZoneDesc:"破壊的な操作(取り消し不可)",anchorPoint:"アンカー",updateAnchor:"アンカーを更新",goToAnchor:"アンカーへ戻る",title:"タイトル",category:"カテゴリ",categoryPlaceholder:"例: コーディング、翻訳",content:"プロンプト内容",editPrompt:"プロンプトを編集",addNewPrompt:"プロンプトを追加",fillTitleContent:"タイトルと内容を入力してください",promptUpdated:"更新しました",promptAdded:"追加しました",deleted:"削除しました",promptPin:"ピン留め",promptUnpin:"ピン留め解除",promptVariableTitle:"変数の入力",promptVariablePlaceholder:"入力",promptImport:"インポート",promptExport:"エクスポート",promptImportTitle:"プロンプトの読み込み",promptImportMessage:"「確定」で既存データを上書き、「キャンセル」で統合します",promptImportSuccess:"インポート成功",promptImportFailed:"インポート失敗",promptExportSuccess:"エクスポート成功",promptRecentUsed:"最近",promptMarkdownPreview:"プレビュー",promptImportMessage2:"{count} 個のプロンプトが見つかりました。取り込み方法を選択してください:",promptImportOverwriteDesc:"上書き:既存のすべてのプロンプトを置き換えます",promptImportMergeDesc:"統合:同じIDは更新し、新しいものは追加します",promptMerge:"統合",promptOverwrite:"上書き",promptMergeSuccess:"統合完了:{updated} 更新、{added} 追加",promptSettingsTitle:"プロンプト設定",promptSettingsDesc:"プロンプトタブの操作を設定",promptSubmitShortcutLabel:"送信ショートカット",promptSubmitShortcutDesc:"手動送信とプロンプト自動送信の両方に適用されます。",promptSubmitShortcutEnter:"Enter",promptSubmitShortcutCtrlEnter:"Ctrl + Enter",promptDoubleClickSendLabel:"ダブルクリックでプロンプト送信",promptDoubleClickSendDesc:"有効にすると、ダブルクリックでプロンプトを直接送信します。変数付きプロンプトは確認後に送信されます。",promptSent:"プロンプトを送信しました",promptSendFailed:"送信に失敗しました。プロンプトは入力欄に残りました",copied:"クリップボードにコピーしました",cleared:"内容を消去しました",refreshed:"更新しました",orderUpdated:"順序を更新しました",inserted:"プロンプトを挿入しました",scrolling:"ページスクロール中、お待ちください...",noTextarea:"入力エリアが見つかりません。まず入力欄をクリックしてください",confirmDelete:"このプロンプトを削除しますか?",settingsTitle:"基本設定",panelSettingsTitle:"パネル設定",settingOn:"ON",settingOff:"OFF",modelLockTitle:"モデルロック",modelLockEnabledLabel:"モデルロックを有効化",modelLockEnabledDesc:"ページに入ったとき、自動的に指定されたモデルに切り替えます",modelLockLabel:"自動ロックモデル",modelLockDesc:"切り替え先となるモデルを指定",modelKeywordLabel:"モデルキーワード",modelKeywordPlaceholder:"キーワードを入力",modelKeywordExample:"例: 3 Pro",modelKeywordDesc:"ターゲットモデル名のマッチングに使用",modelLockFailedNoButton:"モデル切り替えボタンが見つかりません",modelLockFailedMenuEmpty:"モデルメニューの読み込みに失敗しました",modelLockFailedNotFound:'モデル "{model}" が見つかりませんでした',modelLockEnabled:"モデルロック有効",modelLockDisabled:"モデルロック無効",modelLockNoKeyword:"モデルロック: キーワード未設定",userQueryWidthDesc:"ユーザーの発言バブルの最大幅を調整(サイトごとに設定)",categoryManage:"カテゴリ管理",categoryEmpty:"カテゴリがありません。プロンプト作成時にカテゴリを指定して作成してください。",rename:"名前変更",newCategoryName:"新しいカテゴリ名を入力:",categoryRenamed:"名前を変更しました",confirmDeleteCategory:"このカテゴリを削除しますか?関連するプロンプトは「未分類」に移動されます",categoryDeleted:"カテゴリを削除しました",promptCountSuffix:" 個のプロンプト",categoryRenamedTo:"カテゴリ名を '{name}' に変更しました",confirmDeleteCategoryMsg:"カテゴリ '{name}' を削除しますか?プロンプトは「未分類」に移動されます",categoryDeletedMsg:"カテゴリ '{name}' を削除しました",languageLabel:"表示言語",languageDesc:"パネルの表示言語を設定します。即座に反映されます。",languageAuto:"自動",languageZhCN:"简体中文",languageZhTW:"繁體中文",languageEn:"English",themeLabel:"テーマ",toggleTheme:"テーマ切り替え",themeAuto:"自動",themeSettings:"テーマ設定",currentThemeMode:"現在のモード",themeSettingsDesc:"ライトモードとダークモードのプリセットを選択",themeLight:"ライト",themeSystem:"システム",customCSS:"カスタムスタイル",customCSSDesc:"独自のCSSスタイルを作成してテーマで使用します",customCSSTemplate:"テンプレート挿入",addCustomStyle:"追加",noCustomStyles:"カスタムスタイルがありません。追加ボタンから作成してください。",editStyle:"編集",deleteStyle:"削除",confirmDeleteStyle:"このスタイルを削除しますか?",styleNameLabel:"スタイル名",styleNamePlaceholder:"名前を入力",styleModeLabel:"モード",styleModeLight:"☀️ ライトモード",styleModeDark:"🌙 ダークモード",styleCSSLabel:"CSSコード",styleCreated:"作成しました",styleUpdated:"更新しました",styleDeleted:"削除しました",styleNameRequired:"スタイル名を入力してください",newStyle:"新規スタイル",editStyleTitle:"スタイルの編集",lightModePreset:"ライトモード設定",lightModePresetDesc:"ライトモード選択時に適用",darkModePreset:"ダークモード設定",darkModePresetDesc:"ダークモード選択時に適用",primaryColor:"メインカラー",secondaryColor:"サブカラー","themePreset_google-gradient":"Google グラデーション",themePreset_purple:"バイオレット",themePreset_ocean:"オーシャンブルー","themePreset_classic-dark":"クラシックダーク","themePreset_midnight-blue":"ミッドナイトブルー",themePreset_forest:"ダークフォレスト",themePreset_sakura:"桜の季節",themePreset_mint:"フレッシュミント",themePreset_nordic:"ノルディックフロスト",themePreset_cyberpunk:"サイバーパンク",themePreset_coffee:"コーヒーハウス",themePreset_sunset:"サンセットグロウ","themePreset_lemon-soda":"レモンソーダ","themePreset_ancient-scroll":"古文書","themePreset_mono-pro":"モノプロ",themePreset_dracula:"ドラキュラ","themePreset_deep-abyss":"深海","themePreset_crimson-moon":"血月",themePreset_porcelain:"磁器",themePreset_shortbread:"ショートブレッド","themePreset_unicorn-dream":"ユニコーンの夢","themePreset_retro-terminal":"レトロターミナル","themePreset_eva-unit-01":"EVA初号機",themePreset_aurora:"オーロラ",outlineLevel1:"レベル1のみ",outlineLevel2:"レベル2まで",outlineLevel3:"レベル3まで",readingHistorySettings:"閲覧履歴",readingHistoryTitle:"閲覧履歴",readingNavigationSettings:"閲覧ナビゲーション",readingHistoryPersistenceLabel:"閲覧履歴を有効化",readingHistoryPersistenceDesc:"読み進めた位置を自動記録し、次回訪問時に案内します",readingHistoryAutoRestoreLabel:"自動復元",readingHistoryAutoRestoreDesc:"ページを開いたときに前回の位置へジャンプ",readingHistoryCleanup:"保存期間",readingHistoryCleanupDesc:"閲覧履歴の保持期間 (-1で無期限)",daysSuffix:" 日間",cleanupInfinite:"永久",contentExportSettingsTitle:"コンテンツ設定",markdownFixLabel:"Markdown 太字修正",markdownFixDesc:"Geminiの回答でレンダリングされない **太字** 文法を修正します",exportImagesToBase64Label:"画像をBase64で出力",exportImagesToBase64Desc:"会話をオフライン用に書き出す際、画像をBase64に変換して埋め込みます",userQueryMarkdownLabel:"ユーザー入力のMarkdown描画",userQueryMarkdownDesc:"ユーザーの発言に対してもMarkdown文法を適用し描画します",watermarkRemovalLabel:"画像の透かし除去",watermarkRemovalDesc:"AI生成画像からNanoBananaの透かしを自動的に除去します",refreshPrompts:"プロンプトを更新",themeDark:"ダーク",pageWidthLabel:"ページ幅",pageWidthValueLabel:"幅の指定",pageWidthDesc:"チャットエリアの最大幅を調整(サイトごとに設定)",enablePageWidth:"ページ幅の拡張を有効化",widthValue:"幅",widthUnit:"単位",navContent:"コンテンツ",unitPx:"ピクセル (px)",unitPercent:"パーセント (%)",enableUserQueryWidth:"ユーザー入力幅の拡張",enableUserQueryWidthDesc:"ユーザーの発言バブルの最大幅を調整します",userQueryWidthValueLabel:"入力幅",tabSettingsTitle:"タブ設定",openNewTabLabel:"新しいタブでチャットを開始",openNewTabDesc:"パネルヘッダーに、新しいタブで新規チャットを開くボタンを追加します",newTabTooltip:"新しいタブで新規チャット",autoRenameTabLabel:"タブ名の自動変更",autoRenameTabDesc:"ブラウザのタブ名を表示中の会話名に追従させます",renameIntervalLabel:"検出間隔",renameIntervalDesc:"会話名の変更をチェックする間隔(秒)",secondsSuffix:"秒",showStatusLabel:"状態を表示",showStatusDesc:"タブ名の先頭に生成状態アイコンを表示 (⏳/✅)",showNotificationLabel:"デスクトップ通知",showNotificationDesc:"AIの回答完了時にシステムの通知を送信します",notificationSoundLabel:"通知音",notificationSoundDesc:"回答完了時に音を鳴らします",notificationVolumeLabel:"音量",notifyWhenFocusedLabel:"フォーカス時も通知",notifyWhenFocusedDesc:"該当ページがアクティブな場合でも通知を送信します",autoFocusLabel:"自動でウィンドウを最前面に",autoFocusDesc:"回答完了時にブラウザのウィンドウをアクティブにします",privacyModeLabel:"プライバシーモード",privacyModeDesc:"実際の会話タイトルを隠し、ダミーを表示します(パネルヘッダーをダブルクリックで切り替え)",privacyTitleLabel:"ダミータイトル",privacyTitlePlaceholder:"例: Google, 作業用ドキュメント",titleFormatLabel:"タイトルフォーマット",titleFormatDesc:"カスタムタイトル形式。使用可能なプレースホルダー: {status}, {title}, {model}",notificationTitle:"✅ {site} 回答完了",notificationBody:"クリックして結果を確認してください",tabOutline:"目次",outlineEmpty:"目次データがありません",outlineEmptyDescDefault:"会話が進むと目次項目が自動で表示されます。",outlineEmptyDescUserQueryOnly:"現在はユーザーの質問のみ表示中です。メッセージ送信後に目次項目が表示されます。",outlineRefresh:"リロード",outlineSettings:"目次設定",outlineSettingsTitle:"アウトライン設定",outlineEnabledLabel:"アウトライン表示を有効化",outlineShowUserQueriesLabel:"ユーザーの質問を表示",bookmarkSettings:"ブックマーク設定",bookmarkModeDisableLevel:"ブックマークモードではレベルを調整できません",bookmarkSettingsDesc:"ブックマーク関連の設定",inlineBookmarkModeLabel:"ブックマークアイコン",inlineBookmarkModeDesc:"見出し横のアイコン表示方法を設定",panelBookmarkModeLabel:"パネルのブックマーク",panelBookmarkModeDesc:"アウトラインパネルでのアイコン表示方法を設定",inlineBookmarkModeAlways:"常に表示",inlineBookmarkModeHover:"ホバー時のみ",inlineBookmarkModeHidden:"非表示",enableOutline:"目次を表示",outlineMaxLevel:"見出しレベル",outlineLevelAll:"すべて (1-6)",refreshOutline:"目次を更新",refreshSettings:"更新設定",jumpToAnchor:"前の位置へ戻る",anchorUpdated:"アンカーを更新しました",outlineScrollBottom:"一番下へ",outlineScrollTop:"一番上へ",outlineExpandAll:"すべて展開",outlineCollapseAll:"すべて折りたたむ",outlineLocateCurrent:"現在の位置を特定",outlineSearch:"目次を検索...",outlineSearchResult:" 個の結果",outlineLevelHint:"見出し",refreshConversations:"会話一覧を更新",syncingConversations:"会話を同期中...",grokSyncingConversations:"会話リストを同期しています。お待ちください...",tabOrderSettings:"表示配置",tabOrderDesc:"パネル内の各タブの並び順を調整します",moveUp:"上へ",moveDown:"下へ",restoredPosition:"前回の位置を復元しました",cleanupDone:"期限切れデータを整理しました",outlineAutoUpdateLabel:"チャット中に目次を自動更新",outlineAutoUpdateDesc:"AIが生成を行っている際に、目次を動的に更新し続けます",outlineUpdateIntervalLabel:"更新間隔 (秒)",outlineShowUserQueries:"ユーザーの発言を含める",outlineShowUserQueriesTooltip:"ユーザーの質問を見出しとして表示",outlineOnlyUserQueries:"質問のみ",globalSearchOutlineReplies:"回答",outlineIntervalUpdated:"間隔を {val} 秒に設定しました",outlineSyncScrollLabel:"スクロール同期",outlineSyncScrollDesc:"ページスクロールに合わせて目次の該当箇所をハイライトします",outlineFollowModeLabel:"追従モード",outlineFollowCurrent:"現在位置を追従",outlineFollowLatest:"最新メッセージを追従",outlineFollowManual:"マニュアル",outlineFollowCurrentDesc:"スクロールに合わせて目次を動かします",outlineFollowLatestDesc:"新しいメッセージが来たら自動スクロールします",outlineFollowManualDesc:"自動スクロールせず、手動で操作します",outlineShowWordCountLabel:"文字数を表示",outlineShowWordCountDesc:"ツールチップで各セクションの文字数を表示します",words:"文字",pageDisplaySettings:"表示設定",otherSettingsTitle:"その他",showCollapsedAnchorLabel:"アンカー",showCollapsedAnchorDesc:"パネルを閉じたとき、サイドバーにアンカーボタンを表示",showCollapsedThemeLabel:"テーマ",floatingToolbarLabel:"フローティングツールバー",tools:"ツールボックス",cleanup:"無効なブックマークを削除",floatingToolbarMore:"その他",floatingToolbarClearGhost:"無効なブックマークを削除",floatingToolbarClearGhostConfirm:"このセッションの無効なブックマーク {count} 件を削除しますか?",floatingToolbarClearGhostEmpty:"削除する無効なブックマークはありません。",showCollapsedThemeDesc:"パネルを閉じたとき、サイドバーにテーマ切り替えを表示",collapsedButtonsOrderDesc:"サイドバーに表示されるボタンの順序を調整",preventAutoScrollLabel:"自動スクロールを防止",preventAutoScrollDesc:"AIの生成中に、ページが勝手に一番下へ移動するのを防ぎます",defaultPanelStateLabel:"デフォルトで展開",defaultPanelStateDesc:"ページ読み込み時にパネルを展開した状態にします",autoHidePanelLabel:"外部クリックで折りたたむ",autoHidePanelDesc:"外部をクリックするとフローティングボールに折りたたみます",autoHidePanelDescEdgeSnap:"外部をクリックすると端に格納します",edgeSnapHideLabel:"エッジ自動スナップ",edgeSnapHideDesc:"画面端にドラッグすると自動吸着し、ホバーで表示します",edgeSnapThresholdLabel:"吸着感度",edgeSnapThresholdDesc:"ドラッグ時にどれくらい端に近づけば吸着するか",defaultPositionLabel:"基準位置",defaultPositionDesc:"ページ読み込み時のパネルの左右位置",defaultPositionLeft:"左側",defaultPositionRight:"右側",defaultEdgeDistanceLabel:"基本マージン",defaultEdgeDistanceDesc:"画面端からの初期距離",panelWidthLabel:"パネルの幅",panelWidthDesc:"パネルの幅 (px)",panelHeightLabel:"パネルの高さ",panelHeightDesc:"画面高に対するパネルの割合",setAnchor:"アンカーを設定",setAnchorToast:"アンカーを設定しました",backToAnchor:"アンカーに戻る",noAnchor:"アンカーがありません",clearAnchor:"アンカーをクリア",clearAnchorToast:"アンカーをクリアしました",manualAnchorLabel:"手動アンカー",manualAnchorDesc:"フローティングツールバーにアンカーボタンを表示",disableOutline:"目次を無効化",togglePrompts:"プロンプトを表示",toggleConversations:"会話を表示",tabConversations:"会話管理",conversationsEmpty:"会話がありません",conversationsEmptyHint:"同期ボタンを押してサイドバーからインポートしてください",conversationsSync:"同期",conversationsSyncing:"同期中...",conversationsSynced:"同期完了",conversationsAddFolder:"新規フォルダ",conversationsRename:"名前変更",conversationsDelete:"削除",conversationsDeleteConfirm:"このフォルダを削除しますか?内の会話は「受信トレイ」に移動されます。",conversationsFolderCreated:"フォルダを作成しました",conversationsFolderRenamed:"名前を変更しました",conversationsFolderDeleted:"フォルダを削除しました",conversationsCannotDeleteDefault:"デフォルトフォルダは削除できません",conversationsIcon:"アイコン",conversationsFolderName:"フォルダ名",conversationsFolderNamePlaceholder:"フォルダ名を入力",conversationsSyncEmpty:"会話が見つかりませんでした",conversationsSyncNoChange:"新しい会話はありません",conversationsLocate:"現在の会話を表示",conversationsLocateSuccess:"会話を特定しました",conversationsLocateNotFound:"会話が記録にありません。同期を試みます...",conversationsLocateNewChat:"これは新しいチャットです。まだ保存されていません",conversationsLocateSyncFailed:"同期後も会話が見つかりませんでした",justNow:"たった今",minutesAgo:"分前",hoursAgo:"時間前",daysAgo:"日前",conversationsSelectFolder:"同期先フォルダを選択",conversationsMoveTo:"会話を移動",shortcutToggleScrollLock:"AI生成時の自動スクロールを防止",shortcutToggleModelLock:"モデルロック切り替え",conversationsMoved:"移動しました: ",conversationsSyncDeleteTitle:"同期削除",conversationsSyncDeleteMsg:"クラウドで {count} 件の削除を検出しました。ローカルからも削除しますか?",conversationsDeleted:"削除完了",conversationsSettingsTitle:"会話設定",conversationsSyncUnpinLabel:"ピン留め解除を同期",conversationsSyncUnpinDesc:"クラウドでピン留めが解除された場合、ローカルも解除します",folderRainbowLabel:"フォルダのレインボー表示",folderRainbowDesc:"フォルダごとに背景色をランダムに設定します",conversationsSyncDeleteLabel:"クラウドと同期して削除",conversationsSyncDeleteDesc:"ローカル履歴を削除した際、対応サイトのクラウド履歴も削除します",conversationsSyncRenameLabel:"クラウドと同期して名前変更",conversationsSyncRenameDesc:"ローカルで名前を変更した際、{site} のサイドバータイトルも更新します",conversationsCustomIcon:"カスタムアイコン",batchSelected:"{n} 件選択中",batchMove:"一括移動",batchDelete:"一括削除",batchExit:"解除",batchExport:"一括出力",exportToMarkdown:"Markdown形式",exportToJSON:"JSON形式",exportLoading:"履歴を読み込み中...",exportSuccess:"出力成功",exportFailed:"出力失敗",exportNoContent:"内容が見つかりません",copySuccess:"コピーしました",copyFailed:"コピー失敗",exportNeedOpenFirst:"まず会話を開いてください",exportUserLabel:"ユーザー",exportMetaTitle:"書き出し情報",exportMetaConvTitle:"タイトル",exportMetaTime:"日時",exportMetaSource:"ソース",exportNotSupported:"このサイトでは出力がサポートされていません",exportToTXT:"TXT形式",exportMetaUrl:"URL",exportUntitled:"無題",exportToClipboard:"Markdownをコピー",conversationsRefresh:"リロード",conversationsSearchFolder:"フォルダを検索...",conversationsSearchPlaceholder:"会話を検索...",conversationsSearchResult:" 件の結果",conversationsNoSearchResult:"一致する会話はありません",conversationsSetTags:"タグを設定",conversationsSetTag:"タグを設定",conversationsNewTag:"新規タグ",conversationsTagName:"タグ名",conversationsTagColor:"タグカラー",conversationsFilterByTags:"タグで絞り込み",conversationsClearTags:"フィルター解除",conversationsTagCreated:"タグを作成しました",conversationsTagUpdated:"タグを更新しました",conversationsTagDeleted:"タグを削除しました",conversationsTagExists:"同名のタグが既に存在します",conversationsSelectTag:"タグを選択",conversationsExistingTags:"既存タグ",conversationsEditTag:"タグ編集",conversationsCancelEdit:"キャンセル",conversationsSelectColor:"色を選択",conversationsCollapseColor:"色を閉じる",conversationsUpdateTag:"タグを更新",conversationsNoTags:"タグなし",conversationsManageTags:"タグ管理",conversationsDeleteTag:"タグ削除",conversationsPin:"ピン留め 📌",conversationsUnpin:"解除",conversationsPinned:"ピン留め済み",conversationsUnpinned:"ピン留め解除",conversationsFilterPinned:"ピン留めのみ表示",conversationsClearAll:"全フィルター解除",conversationsBatchMode:"一括操作モード",loadingHistory:"履歴を読み込んでいます...",historyLoaded:"履歴を読み込みました",stopLoading:"停止",loadingHint:"完了後、自動的にトップへスクロールします",formulaCopyLabel:"ダブルクリックで数式をコピー",formulaCopyDesc:"数式をダブルクリックしてLaTeXソースをコピー(一部サイト不可)",formulaCopied:"数式をコピーしました",formulaDelimiterLabel:"コピー時に区切り文字を付与",formulaDelimiterDesc:"数式の形式に合わせて $ または $$ を自動付与します",tableCopyLabel:"テーブルのMarkdownコピー",tableCopyDesc:"テーブルの右上にコピーボタンを表示します",tableCopied:"テーブルをコピーしました",dataManagementTitle:"データ管理",dataManagementDesc:"拡張機能のすべての設定とデータをエクスポート・インポートします",exportDataBtn:"全データを書き出し",importDataBtn:"データを読み込み",exportError:"書き出し失敗: ",importConfirm:"データをインポートしますか?現在のすべての設定とデータが上書きされます。",importSuccess:"インポート完了!ページを再読み込みして適用します。",importError:"インポート失敗: ",invalidBackupFile:"バックアップファイルの形式が正しくありません",backupValidationInvalidFormat:"データ形式が不正です",backupValidationMissingVersion:"バージョン情報がありません",backupValidationMissingData:"データ本体がありません",backupValidationSettingsType:"settings はオブジェクトである必要があります",backupValidationPromptsType:"prompts は配列である必要があります",backupValidationFoldersType:"folders は配列である必要があります",backupValidationConversationsType:"conversations はオブジェクトである必要があります",backupValidationHistoryType:"readingHistory はオブジェクトである必要があります",backupTime:"バックアップ日時",backupType:"種類",openAiPagesWillRefresh:"開いている AI ページは更新されます。",dataManagementNote:"備考: 書き出されたファイルには、すべての設定、プロンプト、会話、履歴が含まれます。バックアップや新デバイスへの移行に使用してください。",permissionRequired:"権限が必要です",webdavPermissionDesc:"WebDAVバックアップには、サーバーのドメインへのアクセス許可が必要です。",webdavSectionTitle:"WebDAV クラウド同期",webdavDesc:"データをWebDAVサーバー(Nextcloud, Owncloudなど)と同期します",webdavUrlLabel:"サーバーURL",webdavUsernameLabel:"ユーザー名",webdavUsernamePlaceholder:"メールアドレスなど",webdavPasswordLabel:"パスワード",webdavPasswordPlaceholder:"アプリ専用パスワード",webdavRemotePathLabel:"リモートファイルパス",webdavTestBtn:"接続テスト",webdavUploadBtn:"アップロード",webdavDownloadBtn:"ダウンロード",webdavDownloadConfirm:"ダウンロードすると現在のデータは上書きされます。続行しますか?",webdavLastSync:"最終同期",webdavConnectionSuccess:"接続成功",webdavUploadSuccess:"アップロード成功",webdavDownloadSuccess:"ダウンロード成功",webdavConfigIncomplete:"先にWebDAVの設定を完了してください",webdavAuthFailed:"認証に失敗しました。ユーザー名とパスワードを確認してください",webdavConnectionFailed:"接続に失敗しました",webdavUploadFailed:"アップロード失敗",webdavDownloadFailed:"ダウンロード失敗",webdavFileNotFound:"リモートファイルが見つかりません",webdavInvalidFormat:"バックアップファイルの形式が不正です",watermarkProcessing:"画像を処理中...",watermarkProcessed:"透かしを削除しました",watermarkFailed:"処理に失敗しました",exportData:"データのエクスポート",exportDataDesc:"バックアップ用JSONファイルを書き出します",importData:"データのインポート",importDataDesc:"バックアップファイルから復元します",fullBackup:"全データバックアップ",fullBackupDesc:"すべてのアカウントデータと設定を書き出します(推奨)",promptsBackup:"プロンプトのみ",promptsBackupDesc:"プロンプトライブラリのみを書き出します(タグ・フォルダ除く)",settingsBackup:"設定のみ",settingsBackupDesc:"UIの設定と好みの設定のみを書き出します",selectFile:"ファイルを選択",noFileSelected:"ファイルが選択されていません",dataPreview:"データプレビュー",pastePlaceholder:"JSONデータを貼り付けるか、上のファイル選択を使用してください...",importBtn:"インポート",webdavConfig:"WebDAV設定",webdavConfigDesc:"WebDAVサーバーを設定して自動・手動同期を可能にします",webdavAddress:"WebDAV URL",username:"ユーザー名",password:"パスワード",saveConfig:"設定を保存",saveSuccess:"設定を保存しました",backupEncryption:"バックアップの暗号化",backupEncryptionDesc:"パスワードでデータを暗号化します。復元時にも同じパスワードが必要です。",encryptionPassword:"暗号化パスワード",encryptionPasswordPlaceholder:"アップロードの暗号化、ダウンロードの復号に使用",restoreTip:"復元のヒント",restoreTipContent:"WebDAVからの復元はデータのみを読み込みます。現在のデバイスのWebDAV接続設定や暗号化設定は上書きしません。これにより、接続ができなくなる事態を防ぎます。WebDAV設定自体を移したい場合は、手動で入力してください。",backupAndRestore:"バックアップと復元",webdavServerSettings:"WebDAVサーバー設定",webdavRemoteDirLabel:"パス",backupManagement:"バックアップ管理",backupNow:"今すぐバックアップ",restore:"復元",localBackup:"ローカルバックアップ",exportToFile:"ファイルに出力",importBackupFile:"ファイルを読み込む",permAllUrlsTitle:"すべてのサイトへのアクセス権限が必要",permAllUrlsDesc:"WebDAV同期およびAI画像の透かし除去機能に必要です。",permWebdavTitle:"ネットワークアクセス権限が必要",permWebdavDesc:"WebDAV同期にはサーバーへのアクセス許可が必要です。承認後、バックアップ機能が利用可能になります。",permTabsTitle:"タブ管理権限が必要",permTabsDesc:"タブ名の変更およびプライバシーモード機能に必要です。",permNotifyTitle:"通知権限が必要",permNotifyDesc:"回答完了時にアラートを受け取るためにデスクトップ通知を有効にします。",permCookiesTitle:"クッキー管理権限が必要",permCookiesDesc:"ClaudeのSessionKeyを素早く切り替えるために使用します。承認後、claude.aiのクッキーを管理できるようになります。",permDNRTitle:"ネットワークリクエストルール権限が必要",permDNRDesc:"AI生成画像から透かしを除去するために使用します。",permissionRequestToast:"ポップアップウィンドウで権限を許可してください",permissionDialogAllow:"許可して続行",permissionGranted:"権限が許可されました",permissionDenied:"権限が拒否されました",revokeConfirmDefault:"この権限を取り消しますか?関連する機能は自動的に無効化されます。",revokeConfirmNotifications:"通知権限を取り消しますか?\n\n[デスクトップ通知] 機能が自動的に無効になります。再利用には再度承認が必要です。",revokeConfirmWebdav:"高度なアクセス権限を取り消しますか?\n\n[透かし除去] および [WebDAV同期] 機能が自動的に無効になります。再利用には再度承認が必要です。",warning:"警告",windowClosing:"ウィンドウを閉じています...",allow:"許可",defaultPromptTranslateTitle:"翻訳アシスタント",defaultPromptTranslateCategory:"翻訳",defaultPromptTranslateContent:"あなたは20年の経験を持つプロの翻訳家です。以下のテキストを、私の要望に従って {{target_language}} に翻訳してください。\n\n要望:\n正確性: 元の意味に忠実に、情報を漏らさず翻訳すること。\n流暢さ: {{target_language}} の自然な表現を用い、翻訳特有の不自然さを避けること。\nスタイルの維持: 原文のトーン(例:専門的、ユーモラス、真剣など)を維持すること。\n\n翻訳対象: {{text}}",defaultPromptCodeOptTitle:"コード最適化",defaultPromptCodeOptCategory:"プログラミング",defaultPromptCodeOptContent:"あなたは {{language}} のエキスパートです。以下のコードを Clean Code 原則に基づいてリファクタリングしてください。\n\n**元のコード**:\n{{code}}\n\n**要望**:\n1. 冗長なロジックを排除する。\n2. {{language}} コミュニティの慣習に従った命名に改善する。\n3. 必要なエラーハンドリングを追加する。\n4. [可読性]、[堅牢性]、[拡張性] に焦点を当てる。\n5. 可能であればモダンな {{version}} (例: ES6+, Java 21) の構文機能を使用する。\n\n最適化されたコードブロックを直接出力し、その後に改善点の簡潔な要約を添えてください。",navShortcuts:"ショートカット設定",shortcutsPageDesc:"クイック操作のためのキーボードショートカットを設定",shortcutsInteractionGroup:"独立設定",shortcutsInteractionGroupDesc:"このグループの設定は常に有効で、「カスタムショートカットを有効化」トグルの影響を受けません",shortcutsGlobalSettings:"全般ショートカット設定",enableShortcuts:"カスタムショートカットを有効化",enableShortcutsDesc:"すべてのカスタムキーボードショートカットを有効または無効にします",globalShortcutUrl:"グローバルショートカットURL",globalShortcutUrlDesc:"グローバルショートカット Alt+G を押したときに開くURL",resetShortcuts:"デフォルトに戻す",resetShortcutsConfirm:"すべてのショートカットを初期値に戻しますか?",pressAnyKey:"キーを押してください...",shortcutConflictWith:"重複:",shortcutConflict:"",globalShortcutsTitle:"グローバルショートカット",globalShortcutsDesc:"ブラウザのどこでも動作します。拡張機能の管理画面から設定してください。",openBrowserShortcuts:"ブラウザのショートカット設定を開く",shortcutNotSet:"未設定",shortcutRemove:"削除",shortcutCategoryNavigation:"ナビゲーション",shortcutCategoryPanel:"パネル操作",shortcutCategoryOutline:"目次操作",shortcutCategoryConversation:"会話操作",shortcutCategoryEdit:"インタラクション制御",shortcutScrollTop:"一番上へ",shortcutScrollBottom:"一番下へ",shortcutGoToAnchor:"アンカーへ移動",shortcutTogglePanel:"パネルを展開/折りたたむ",shortcutToggleTheme:"テーマ切り替え",shortcutOpenSettings:"設定を開く",shortcutSwitchTab1:"第1タブへ",shortcutSwitchTab2:"第2タブへ",shortcutSwitchTab3:"第3タブへ",shortcutRefreshOutline:"目次を更新",shortcutToggleOutlineExpand:"すべて展開/折り畳み",shortcutExpandLevel1:"レベル1まで展開",shortcutExpandLevel2:"レベル2まで展開",shortcutExpandLevel3:"レベル3まで展開",shortcutExpandLevel4:"レベル4まで展開",shortcutExpandLevel5:"レベル5まで展開",shortcutExpandLevel6:"レベル6まで展開",shortcutToggleUserQueries:"ユーザーの発言を表示",shortcutToggleBookmarks:"お気に入りを表示",shortcutOnlyUserQueries:"ユーザーの発言のみ表示",shortcutPrevHeading:"前の見出しへ",shortcutNextHeading:"次の見出しへ",shortcutLocateOutline:"現在位置を特定",shortcutSearchOutline:"目次を検索",shortcutNewConversation:"新規会話",shortcutRefreshConversations:"会話一覧を更新",shortcutLocateConversation:"現在の会話を特定",shortcutPrevConversation:"前の会話へ",shortcutNextConversation:"次の会話へ",shortcutExportConversation:"会話を出力",shortcutCopyLatestReply:"最新の回答をコピー",shortcutCopyLastCodeBlock:"最後のコードブロックをコピー",shortcutFocusInput:"入力枠にフォーカス",shortcutStopGeneration:"生成を停止する",shortcutTogglePromptQueue:"プロンプトキューを切り替え",shortcutShowShortcuts:"ショートカット一覧を表示",shortcutShowModelSelector:"モデル選択を表示",shortcutCategoryHelp:"ヘルプ",shortcutCategorySettings:"設定",shortcutOpenClaudeSettings:"Claude設定を開く",shortcutSwitchClaudeKey:"Claudeキーを切り替え",shortcutOpenGeminiSettings:"Gemini設定を開く",shortcutOpenThemeSettings:"テーマ設定を開く",shortcutOpenModelLockSettings:"モデルロック設定を開く",scrolledToTop:"トップへ移動しました",scrolledToBottom:"ボトムへ移動しました",outlineRefreshed:"目次を更新しました",conversationsRefreshed:"会話一覧を更新しました",locatingOutline:"目次内の位置を確認中...",locatingConversation:"現在の会話を特定中...",noConversationToLocate:"特定できる会話がありません",outlineDisabled:"目次機能が無効です",conversationsDisabled:"会話管理機能が無効です",exportStarted:"エクスポートを開始します...",replyCopied:"最新の回答をコピーしました",noReplyToCopy:"コピーできる回答がありません",scrollLockToggled:"スクロールロックを切り替えました",browserNotSupported:"このブラウザでは拡張機能のショートカット設定をサポートしていません",inputFocused:"入力欄へフォーカスしました",generationStopped:"生成を停止しました",notGenerating:"現在生成を行っていません",noConversations:"会話がありません",untitledConversation:"無題の会話",noCodeBlock:"コードブロックが見つかりませんでした",codeBlockCopied:"コードブロックをコピーしました",modelSelectorNotFound:"モデル選択ボタンが見つかりませんでした",geminiSettingsTab:"Gemini専用",claudeSessionKeyTitle:"セッションキー管理",claudeSessionKeyDesc:"Claudeアカウントの管理と切り替え",claudeCurrentUsing:"現在:",claudeNoKeySelected:"未選択 - セッションキーを追加またはインポートしてください",claudePleaseAddKey:"まずセッションキーを追加してください",claudeAddKey:"追加",claudeImportFromBrowser:"ブラウザからインポート",claudeImportJSON:"JSONインポート",claudeExportJSON:"JSONエクスポート",claudeNoKeys:"セッションキーがありません",claudeNoKeysHint:"「追加」または「ブラウザからインポート」で開始してください",claudeKeyValid:"有効",claudeKeyInvalid:"無効",claudeKeyUntested:"未テスト",claudeKeyUsing:"使用中",claudeKeyUse:"使用",claudeKeyTest:"テスト",claudeKeyDelete:"削除",claudeKeyCopied:"クリップボードにコピーしました",claudeKeyCopyFailed:"コピー失敗",claudeKeyDoubleTapCopy:"ダブルクリックでフルキーをコピー",claudeCopyKey:"Session Keyをコピー",claudeCopied:"コピー完了",claudeAlreadyUsing:"このセッションキーは既に使用中です",claudePleaseSelectKey:"セッションキーを選択してください",claudeKeyImported:"インポートして現在に設定しました。テスト中...",claudeKeyAdded:"セッションキーを追加しました",claudeKeySwitched:"セッションキーを切り替えました。ページを再読み込みします",claudeKeyDeleted:"削除しました",claudeKeyTesting:"テスト中",claudeGenerating:"AIが生成中のため、完了後に試してください",claudeAddKeyNameTitle:"セッションキー追加 - 名前を入力",claudeAddKeyNamePlaceholder:"例: メインアカウント, サブ",claudeAddKeyValueTitle:"セッションキー追加 - キーを入力",claudeAddKeyValuePlaceholder:"sk-ant-sid01-...",claudeImportNameTitle:"ブラウザからインポート - 名前を入力",claudeImportNamePlaceholder:"インポートするキーの名前",claudeDeleteConfirmTitle:"削除の確認",claudeDeleteConfirmMsg:'"{name}" を削除しますか?この操作は取り消せません。',claudeNameRequired:"名前が必要です",claudeKeyRequired:"セッションキーが必要です",claudeKeyInvalidFormat:"セッションキーの形式が不正です",claudeKeyExists:"このセッションキーは既に存在します",claudeNoTokensToExport:"エクスポートするキーがありません",claudeExported:"エクスポート完了",claudeInvalidJSON:"JSON形式が不正です",claudeNoNewTokens:"新しいセッションキーは見つかりませんでした",claudeImported:"{count} 件のセッションキーをインポートしました",claudeTokenExists:"セッションキーは既に存在します: {name}",claudeNoCookieFound:"クッキーが見つかりませんでした",claudeRequestPermission:"ポップアップでクッキー権限を許可してください",claudeNotOnSiteWarning:"即時切り替えとブラウザインポートは Claude サイトでのみ有効です",claudeNotOnSiteHint:"この機能は Claude サイトで利用してください",claudeShortcutOnlyOnSite:"ショートカットは Claude サイトでのみ有効です",claudeBatchTest:"一括テスト",claudeBatchTesting:"チェック中... {current}/{total}",claudeBatchTestDone:"一括テスト完了。有効: {valid}, 無効: {invalid}",claudeBatchTestFailed:"一括テストが中断されました",claudeOnlyOneKeyTip:"キーが一つしかなく、かつ既に使用中です",noClaudeKeys:"Session Key が設定されていません",restoreSuccess:"復元成功、ページを更新します...",aistudioSettingsTitle:"AI Studio 設定",aistudioSettingsDesc:"AI Studio ページ読み込み時のデフォルト動作を設定",aistudioDefaultModel:"デフォルトモデル",aistudioDefaultModelNone:"指定なし(システムデフォルト)",aistudioDefaultModelCustom:"カスタムモデルID...",aistudioDefaultModelPlaceholder:"models/gemini-xxx",aistudioCollapseNavbar:"サイドバーを折りたたむ",aistudioCollapseNavbarDesc:"ページを開いたときに左ナビゲーションを自動で折りたたみます",aistudioCollapseRunSettings:"実行設定パネルを折りたたむ",aistudioCollapseRunSettingsDesc:"ページを開いたときに右側の実行設定パネルを自動で折りたたみます",aistudioCollapseTools:"ツールセクションを折りたたむ",aistudioCollapseToolsDesc:"ページを開いたときに実行設定内のツールセクションを自動で折りたたみます",aistudioCollapseAdvanced:"詳細設定を折りたたむ",aistudioCollapseAdvancedDesc:"ページを開いたときに詳細オプションを自動で折りたたみます",aistudioEnableSearch:"検索ツールを有効にする",aistudioEnableSearchDesc:"ページを開いたときにGoogleリアルタイム検索を自動で有効にします",aistudioModelsFetched:"モデルリストを更新しました",aistudioNoTabError:"先にAI Studioページを開いてください",aistudioModelsError:"モデルリストの取得に失敗しました",chatgptSettingsTitle:"ChatGPT 設定",chatgptSettingsDesc:"ChatGPT ページのデフォルト動作を構成",chatgptMarkdownFixLabel:"Markdown 太字修正",chatgptMarkdownFixDesc:"ChatGPT の回答でレンダリングされない **太字** テキストを修正します",aistudioRemoveWatermark:"画像の透かしを削除",aistudioRemoveWatermarkDesc:"AI Studioで生成された画像から透かしを削除します(ページの更新が必要です)",aistudioMarkdownFixLabel:"Markdown 太字修正",aistudioMarkdownFixDesc:"AI Studioの回答でレンダリングされない **太字** テキストを修正します",aistudioReloadHint:"変更を適用するにはページを更新してください",exportCustomUserName:"カスタムユーザー名",exportCustomUserNameDesc:"エクスポート時のユーザー表示名(デフォルト: User)",exportCustomModelName:"カスタムAI名",exportCustomModelNameDesc:"エクスポート時のAI表示名(デフォルト: サイト名)",exportFilenameTimestamp:"Add Timestamp to Filename",exportFilenameTimestampDesc:"Add a timestamp to the end of the exported filename",exportIncludeThoughtsLabel:"エクスポートに思考過程を含める",exportIncludeThoughtsDesc:"エクスポート時に思考過程を含めて自動展開します(引用ブロックで区別)",popupCurrentSite:"現在のサイト",popupSupported:"有効",popupUnsupported:"非対応",popupNewChat:"新規チャット",popupQuickAccess:"クイックアクセス",popupRecentUsed:"最近使用",popupNoRecentPrompts:"最近使用したプロンプトはありません",popupCopied:"コピーしました",popupCopyFailed:"コピー失敗",popupFeedback:"フィードバック",popupSettings:"設定",policyRetryLabel:"ポリシー遮断時の自動再試行",policyRetryDesc:"企業のポリシーによりメッセージが遮断された場合、自動的に再送信を試みる",maxRetriesLabel:"最大再試行回数",retryCountSuffix:"回 (同じ質問)",policyRetryActive:"ポリシーによる遮断、再試行中 ({current}/{max})",policyRetryLimitReached:"再試行回数の上限に達しました",preventAutoScrollEnabled:"スクロールロックが有効になりました",preventAutoScrollDisabled:"スクロールロックが無効になりました",toolboxMenu:"ツールボックス",toolboxMenuTitle:"ツールボックスメニュー",toolboxMenuDesc:"ツールボックスのポップアップメニューに表示する機能を設定",globalSearchCategoryAll:"すべて",globalSearchCategoryOutline:"アウトライン",globalSearchCategorySettings:"設定",globalSearchCategoryConversations:"会話",globalSearchCategoryFolders:"フォルダー",globalSearchCategoryTags:"タグ",globalSearchCategoryPrompts:"プロンプト",globalSearchCategoryCurrentSession:"現在のセッション",globalSearchSiteGemini:"Gemini",globalSearchSiteGeminiEnterprise:"Gemini Enterprise",globalSearchSiteAIStudio:"AI Studio",globalSearchSiteChatGPT:"ChatGPT",globalSearchSiteClaude:"Claude",globalSearchSiteGrok:"Grok",globalSearchPlaceholderAll:"すべてを検索",globalSearchPlaceholderOutline:"アウトラインを検索",globalSearchPlaceholderSettings:"設定を検索",globalSearchPlaceholderConversations:"現在のサイトの会話を検索",globalSearchPlaceholderFolders:"フォルダーを検索",globalSearchPlaceholderTags:"タグを検索",globalSearchPlaceholderPrompts:"プロンプトを検索",globalSearchPlaceholderCurrentSession:"現在のセッションの質問とアウトラインを検索",globalSearchEmptyAll:"一致する結果がありません",globalSearchEmptyOutline:"アウトライン結果がありません",globalSearchEmptySettings:"一致する設定がありません",globalSearchEmptyConversations:"会話結果がありません",globalSearchEmptyFolders:"フォルダー結果がありません",globalSearchEmptyTags:"タグ結果がありません",globalSearchEmptyPrompts:"プロンプト結果がありません",globalSearchEmptyCurrentSession:"現在のセッションに結果がありません",globalSearchCategoriesLabel:"グローバル検索カテゴリ",globalSearchPageDesc:"Search Everywhere の検索動作と操作の詳細を設定します",globalSearchTriggerHint:"起動方法:Shift を2回押す、または Ctrl/Cmd + K",globalSearchMatchingSettingsTitle:"検索マッチング",globalSearchMatchingSettingsDesc:"Search Everywhere の結果マッチング方式を設定します",globalSearchPromptSettingsTitle:"プロンプト動作",globalSearchPromptSettingsDesc:"Search Everywhere でプロンプト結果に Enter を押したときの動作を選択します",globalSearchPromptEnterBehaviorLabel:"Search Everywhere のプロンプト Enter 動作",globalSearchPromptEnterBehaviorDesc:"スマート:変数がなければ直接挿入し、必要時は変数ダイアログを開きます。位置のみ:プロンプト一覧へ切り替えて対象を定位します。",globalSearchPromptEnterBehaviorSmart:"スマート(推奨)",globalSearchPromptEnterBehaviorLocate:"位置のみ",globalSearchEnableFuzzySearchLabel:"あいまい検索を有効化",globalSearchEnableFuzzySearchDesc:"有効にすると、Search Everywhere はタイトル、フォルダー、タグ、プロンプト内容、設定IDに対してあいまい一致を使用します。",globalSearchFuzzySearchToggle:"あいまい",globalSearchFuzzySearchToggleAria:"あいまい検索を切り替え",globalSearchFooterTips:"Enter で移動 · ↑↓ で選択 · Tab でカテゴリ切替 · Esc で閉じる",globalSearchShortcutNudge:"次回からは {shortcut} ですばやく開けます",doubleShiftToSearch:"Shift を2回押してグローバル検索を開く",doubleShiftToSearchDesc:"Shift キーを素早く2回押すとグローバル検索を開きます",globalSearchShortcutNudgeDismiss:"今後は表示しない",globalSearchContextCurrentItem:"{current}件目",globalSearchContextShownProgress:"表示済み {shown}/{total}",globalSearchContextTotalItems:"合計 {total}件",globalSearchMatchReasonTitle:"タイトル一致",globalSearchMatchReasonFolder:"フォルダ一致",globalSearchMatchReasonTag:"タグ一致",globalSearchMatchReasonType:"種類一致",globalSearchMatchReasonCode:"コード一致",globalSearchMatchReasonCategory:"カテゴリ一致",globalSearchMatchReasonContent:"内容一致",globalSearchMatchReasonId:"ID一致",globalSearchMatchReasonKeyword:"キーワード一致",globalSearchMatchReasonAlias:"別名一致",globalSearchMatchReasonFuzzy:"あいまい一致",globalSearchSyntaxOperatorType:"種類",globalSearchSyntaxOperatorFolder:"フォルダ",globalSearchSyntaxOperatorTag:"タグ",globalSearchSyntaxOperatorIs:"状態",globalSearchSyntaxOperatorLevel:"レベル",globalSearchSyntaxOperatorDate:"日付",globalSearchSyntaxPinned:"固定済み",globalSearchSyntaxSuggestionTypeDesc:"結果タイプで絞り込む",globalSearchSyntaxSuggestionFolderDesc:"フォルダまたはカテゴリで絞り込む",globalSearchSyntaxSuggestionTagDesc:"タグ名で絞り込む",globalSearchSyntaxSuggestionIsDesc:"状態で絞り込む",globalSearchSyntaxSuggestionPinnedDesc:"固定済みの結果のみ表示",globalSearchSyntaxSuggestionLevelDesc:"アウトラインのレベルで絞り込む(0 = ユーザー質問)",globalSearchSyntaxSuggestionLevelQueryDesc:"ユーザー質問のみ",globalSearchSyntaxSuggestionDateDesc:"直近の日数で絞り込む",globalSearchSyntaxDiagnosticUnknownOperator:"不明な演算子",globalSearchSyntaxDiagnosticInvalidValue:"無効なフィルター値",globalSearchSyntaxDiagnosticConflict:"競合するフィルターは無視されました",globalSearchSyntaxChipRemove:"クリックしてフィルターを削除",globalSearchSyntaxChipOverflow:"他 {count} 件",globalSearchSyntaxEmptyGuideTitle:"検索フィルターを試してください",globalSearchSyntaxEmptyGuideDesc:"フィルター構文で結果をすばやく絞り込めます",globalSearchSyntaxHelpTitle:"検索構文の例",globalSearchSyntaxHelpDesc:"クリックで挿入できます。キーワードは英語のみ対応です。",globalSearchSyntaxHelpTriggerAria:"検索構文ヘルプを開く",queueTitle:"プロンプトキュー",queueQuickAsk:"プロンプトキュー",queueInQueue:"待機中 ({count})",queueEmpty:"キューは空です。入力してEnterで送信または追加",queueClearAll:"すべてクリア",queueRemove:"削除",queuePlaceholderIdle:"プロンプトを入力し、Enterで直接送信...",queuePlaceholderBusy:"AI生成中、Enterでキューに追加...",queueStatusIdle:"AI待機中",queueStatusBusy:"AI生成中",queueSettingLabel:"プロンプトキュー",queueDisableHint:"設定でこの機能をオフにできます",queueSettingDesc:"有効にすると入力欄上部にキューフロートを表示し、生成中のプロンプト追加をサポートします",queueEdit:"編集",queueEditSave:"保存",queueEditCancel:"キャンセル",queueForceSend:"強制送信",zenModeTitle:"禅モード",zenModeLabel:"禅モードを有効にする",zenModeDesc:"不要な要素(下部のモデル免責事項など)を非表示にして、より純粋な会話体験を提供します(各サイトごとに個別に設定)"},ko:{panelTitle:"Ophel",welcomeSlogan:"AI의 혜택을 더 가까이",disclaimerTitle:"면책 공지",disclaimerText:"본 확장 프로그램은 범용 도구이며 특정 사이트의 모든 고유 기능을 지원하지 않을 수 있습니다. 타사 페이지 구조에 의존하므로 업데이트로 인해 기능이 중단될 경우 GitHub Issues를 통해 보고해 주시면 신속히 수정하겠습니다.",disclaimerWarning:"타사 사이트 변경으로 인한 문제에 대해 스토어에 부정적인 리뷰를 남기지 말아주세요. 이해와 지원에 감사드립니다!",communityMotto:"빨리 가려면 혼자 가고, 멀리 가려면 함께 가라.",welcomeJoin:"Ophel에 오신 것을 환영합니다",agreeButton:"이해했으며 동의합니다",tabPrompts:"프롬프트",tabSettings:"설정",navGeneral:"일반 설정",navSiteSettings:"사이트 설정",navGlobalSearch:"전체 검색",navAppearance:"모양",navPageContent:"페이지 및 콘텐츠",navFeatures:"기능",navPermissions:"권한 관리",navBackup:"데이터 관리",navAbout:"Ophel 정보",siteSettingsPageDesc:"사이트별 레이아웃 및 콘텐츠 처리 구성",generalPageDesc:"확장 프로그램 동작 및 인터페이스 구성",appearancePageDesc:"시각적 스타일 및 테마 사용자 정의",pageContentPageDesc:"페이지 레이아웃 및 콘텐츠 표시 조정",featuresPageDesc:"확장 프로그램 기능 모듈 구성",permissionsPageDesc:"확장 프로그램 권한을 확인하고 관리합니다.",backupPageDesc:"데이터 백업 및 클라우드 동기화 관리",aboutPageDesc:"AI의 혜택을 더 가까이.",tsPlasmoDesc:"브라우저 확장 프로그램 프레임워크",tsReactDesc:"사용자 인터페이스 라이브러리",tsTypescriptDesc:"타입이 지정된 JavaScript",tsZustandDesc:"상태 관리 라이브러리",tsViteDesc:"프론트엔드 툴링",optionalPermissions:"선택적 권한",optionalPermissionsDesc:"필요에 따라 부여하거나 취소할 수 있는 권한",requiredPermissions:"필수 권한",requiredPermissionsDesc:"확장 프로그램이 제대로 작동하기 위해 필요한 권한",permissionsSyncHint:"권한 상태는 브라우저와 동기화됩니다. 페이지 외부에서 수정된 경우 새로고침을 클릭하세요.",refreshStatus:"상태 새로고침",refreshing:"새로고침 중...",permissionsRefreshed:"권한 상태가 새로고침되었습니다",granted:"허용됨",notGranted:"허용되지 않음",revoke:"취소",grant:"허용",allowRecommended:"허용(권장)",required:"필수",permissionWebdavAccess:"고급 기능 액세스",permissionWebdavAccessDesc:"모든 웹사이트에 대한 액세스. WebDAV 동기화 및 AI 이미지 워터마크 제거에 필요합니다.",permissionStorage:"저장소",permissionStorageDesc:"확장 프로그램 설정, 프롬프트 및 대화 데이터를 저장하는 데 사용됩니다.",permissionNotifications:"알림",permissionNotificationsDesc:"선택 사항. AI 응답이 완료되면 데스크톱 알림을 보내는 데 사용됩니다.",permissionCookies:"쿠키 관리",permissionCookiesDesc:"빠른 SessionKey 전환을 위해 Claude 사이트 쿠키를 관리합니다.",permissionTabs:"탭",permissionTabsDesc:"선택 사항. 현재 탭 상태를 감지하고 세션을 관리하는 데 사용됩니다.",permissionDNR:"네트워크 요청 규칙",permissionDNRDesc:"선택 사항. 이미지 워터마크 제거와 같은 기능을 위해 요청 헤더를 수정하는 데 사용됩니다.",generalTab:"일반",tabSettingsTab:"탭 설정",generalSettings:"일반 설정",panelTab:"패널",tabOrderTab:"탭 순서",shortcutsTab:"단축키",panelSettings:"패널 설정",themePresetsTab:"테마 프리셋",customStylesTab:"사용자 정의 스타일",pleaseEnterStyleName:"스타일 이름을 입력하세요",enterStyleName:"스타일 이름 입력",lightMode:"라이트 모드",darkMode:"다크 모드",code:"코드",create:"생성",unnamedStyle:"이름 없는 스타일",layoutTab:"페이지 레이아웃",contentStyleTab:"콘텐츠 처리",claudeSettingsTab:"Claude 설정",pageWidthSettings:"페이지 너비",layoutSettingsTitle:"페이지 너비 제어",tabLayout:"레이아웃",tabModelLock:"모델 잠금",tabGemini:"Gemini",enablePageWidthDesc:"채팅 페이지의 최대 너비를 조정합니다",userQueryWidthSettings:"사용자 쿼리 너비",scrollSettings:"스크롤 설정",contentProcessing:"콘텐츠 처리",contentProcessingDesc:"AI 응답 처리 방식 구성",interactionEnhance:"상호작용 강화",interactionEnhanceDesc:"수식 및 표 상호작용 강화",exportSettings:"내보내기 설정",outlineSettingsDesc:"개요 생성 및 따라가기 동작 구성",outlineUpdateIntervalDesc:"개요 자동 업데이트 간격(초)",conversationsSettingsDesc:"대화 동기화 및 표시 구성",readingHistoryDesc:"대화 읽기 위치 추적 및 복원",day:"일",days:"일",forever:"영구히",localBackupTab:"로컬 백업",webdavTab:"WebDAV 동기화",localBackupDesc:"데이터를 로컬에 JSON 파일로 내보냅니다",webdavServerDesc:"클라우드 백업을 위한 WebDAV 서버 구성",backupManagementDesc:"연결 테스트, 백업 업로드 또는 클라우드에서 복원",allDataCleared:"모든 데이터가 삭제되었습니다. 페이지를 새로고침합니다...",clearError:"삭제 실패",webdavBackupList:"WebDAV 백업 목록",noBackupsFound:"백업 파일을 찾을 수 없습니다",loading:"로드 중...",version:"버전",aboutDescription:"{appName}은 Gemini, ChatGPT, Claude, AI Studio, Grok과 같은 AI 플랫폼을 위해 설계된 브라우저 확장 프로그램입니다. 대화 관리, 스마트 개요, 프롬프트 라이브러리로 워크플로우를 강화하며 읽기 기록 복원, 양방향 앵커, 워터마크 제거, 형식 수정, 모델 잠금과 같은 유틸리티를 제공합니다. 테마 및 UI에 대한 포괄적인 사용자 정의 옵션을 통해 {appName}은 더욱 부드럽고 효율적인 AI 상호작용 환경을 보장합니다.",projectLinks:"프로젝트 링크",githubDesc:"소스 코드 확인, 문제 보고 또는 기여",giveStar:"GitHub에서 스타 주기",projectWebsite:"공식 웹사이트",websiteDesc:"문서, 가이드 등 확인",visitWebsite:"웹사이트 방문",rateAndReview:"Ophel 응원하기",rateDesc:"Ophel이 마음에 드신다면 스토어에서 별 5개 평가를 부탁드립니다! 개발에 큰 힘이 됩니다.",chromeStore:"Chrome 스토어",firefoxAddons:"Firefox 애드온",greasyFork:"Greasy Fork",reviewBtn:"평가",starBtn:"스타",credits:"크레딧",devAndMaintain:"개발 및 유지 관리",creditsDesc:"오픈 소스 커뮤니티의 모든 기여자들께 감사드립니다. 이 확장 프로그램은 훌륭한 오픈 소스 프로젝트와 도구들을 기반으로 제작되었습니다.",privacyTitle:"개인정보 보호",reportIssue:"문제 보고",changelog:"변경 사항",techStack:"기술 스택",privacyStatement:"개인정보 보호 정책",privacyText:"이 확장 프로그램의 모든 데이터는 브라우저에 로컬로 저장되며 원격 서버로 업로드되지 않습니다. WebDAV 동기화는 사용자가 직접 구성한 서버에서 처리됩니다.",license:"라이선스",tabBehaviorTitle:"탭 동작",notificationSettings:"완료 후 동작",enablePrerequisiteToast:'먼저 "{setting}"을(를) 켜 주세요',privacyModeTitle:"개인정보 보호 모드",collapsedButtonsOrderTitle:"퀵 버튼",quickButtonsOpacityLabel:"Quick buttons opacity",quickButtonsOpacityDesc:"Adjust overall opacity of the quick buttons",searchPlaceholder:"프롬프트 검색...",addPrompt:"새 프롬프트 추가",allCategory:"전체",uncategorized:"미분류",manageCategory:"⚙ 관리",currentPrompt:"현재: ",scrollTop:"상단",scrollBottom:"하단",refresh:"새로고침",collapse:"접기",edit:"편집",delete:"삭제",copy:"복사",addBookmark:"즐겨찾기 추가",removeBookmark:"즐겨찾기 삭제",bookmarkContentMissing:"즐겨찾기 내용이 없습니다",bookmarkMode:"즐겨찾기",outlineNoBookmarks:"즐겨찾기 없음",outlineAddBookmarkHint:"항목 옆의 별표를 클릭하여 북마크",bookmarkModeDisabled:"즐겨찾기 모드에서는 사용할 수 없습니다",drag:"드래그",save:"저장",cancel:"취소",close:"닫기",add:"추가",confirm:"확인",export:"Markdown 내보내기",clear:"지우기",error:"오류",operationFailed:"작업에 실패했습니다",deleteSuccess:"삭제되었습니다",deleteError:"삭제에 실패했습니다",restoreError:"복원에 실패했습니다",insertFailed:"삽입에 실패했습니다",maximize:"최대화",browse:"찾아보기...",clearAllData:"모든 데이터 지우기",clearAllDataDesc:"주의: 모든 로컬 설정, 프롬프트 및 대화가 삭제됩니다.",clearAllDataConfirm:"모든 데이터를 지우시겠습니까? 이 작업은 되돌릴 수 없으며 모든 설정, 프롬프트, 대화가 삭제됩니다!",clearSuccess:"데이터가 삭제되었습니다. 새로고침 중...",defaultDir:"기본 디렉토리",dangerZone:"위험 구역",dangerZoneDesc:"파괴적인 작업 (되돌릴 수 없음)",anchorPoint:"앵커",updateAnchor:"앵커 업데이트",goToAnchor:"앵커로 돌아가기",title:"제목",category:"카테고리",categoryPlaceholder:"예: 코딩, 번역",content:"프롬프트 내용",editPrompt:"프롬프트 편집",addNewPrompt:"새 프롬프트 추가",fillTitleContent:"제목과 내용을 입력하세요",promptUpdated:"프롬프트가 업데이트되었습니다",promptAdded:"프롬프트가 추가되었습니다",deleted:"삭제됨",promptPin:"고정",promptUnpin:"고정 해제",promptVariableTitle:"변수 채우기",promptVariablePlaceholder:"입력",promptImport:"가져오기",promptExport:"내보내기",promptImportTitle:"프롬프트 가져오기",promptImportMessage:"기존 프롬프트를 교체하려면 '확인'을, 병합하려면 '취소'를 클릭하세요",promptImportSuccess:"가져오기 성공",promptImportFailed:"가져오기 실패",promptExportSuccess:"내보내기 성공",promptRecentUsed:"최근",promptMarkdownPreview:"미리보기",promptImportMessage2:"{count}개의 프롬프트를 찾았습니다. 가져오기 방법을 선택하세요:",promptImportOverwriteDesc:"덮어쓰기: 모든 기존 프롬프트를 교체합니다",promptImportMergeDesc:"병합: 동일한 ID는 업데이트하고 새 항목은 추가합니다",promptMerge:"병합",promptOverwrite:"덮어쓰기",promptMergeSuccess:"병합됨: {updated}개 업데이트, {added}개 추가",promptSettingsTitle:"프롬프트 설정",promptSettingsDesc:"프롬프트 탭의 상호작용을 설정합니다",promptSubmitShortcutLabel:"전송 단축키",promptSubmitShortcutDesc:"수동 전송과 프롬프트 자동 전송 모두에 적용됩니다.",promptSubmitShortcutEnter:"Enter",promptSubmitShortcutCtrlEnter:"Ctrl + Enter",promptDoubleClickSendLabel:"더블클릭으로 프롬프트 전송",promptDoubleClickSendDesc:"활성화하면 프롬프트를 더블클릭해 바로 전송합니다. 변수가 있는 프롬프트는 확인 후 전송됩니다.",promptSent:"프롬프트 전송됨",promptSendFailed:"전송에 실패했습니다. 프롬프트는 입력창에 유지됩니다",copied:"클립보드에 복사됨",cleared:"내용이 지워짐",refreshed:"새로고침됨",orderUpdated:"순서가 업데이트되었습니다",inserted:"프롬프트가 삽입되었습니다",scrolling:"페이지가 스크롤 중입니다. 잠시만 기다려 주세요...",noTextarea:"입력창을 찾을 수 없습니다. 먼저 입력 영역을 클릭하세요",confirmDelete:"이 프롬프트를 삭제하시겠습니까?",settingsTitle:"일반 설정",panelSettingsTitle:"패널 설정",settingOn:"켜짐",settingOff:"꺼짐",modelLockTitle:"모델 잠금",modelLockEnabledLabel:"모델 잠금 활성화",modelLockEnabledDesc:"입입 시 지정된 모델로 자동 전환",modelLockLabel:"모델 자동 잠금",modelLockDesc:"진입 시 지정된 모델로 자동 전환",modelKeywordLabel:"모델 키워드",modelKeywordPlaceholder:"모델 키워드",modelKeywordExample:"예: 3 Pro",modelKeywordDesc:"대상 모델 이름을 일치시키는 데 사용됩니다",modelLockFailedNoButton:"모델 선택기를 찾을 수 없습니다",modelLockFailedMenuEmpty:"모델 메뉴를 로드하지 못했습니다",modelLockFailedNotFound:'"{model}" 모델을 찾을 수 없습니다',userQueryWidthDesc:"사용자 쿼리 버블 컨테이너의 최대 너비 조정 (사이트별)",categoryManage:"카테고리 관리",categoryEmpty:"아직 카테고리가 없습니다. 프롬프트를 추가할 때 카테고리가 생성됩니다.",rename:"이름 바꾸기",newCategoryName:"새 카테고리 이름 입력:",categoryRenamed:"카테고리 이름이 변경되었습니다",confirmDeleteCategory:'이 카테고리를 삭제하시겠습니까? 관련 프롬프트는 "미분류"로 이동됩니다.',categoryDeleted:"카테고리가 삭제되었습니다",promptCountSuffix:"개의 프롬프트",categoryRenamedTo:"카테고리 이름이 '{name}'으로 변경되었습니다",confirmDeleteCategoryMsg:"카테고리 '{name}'을(를) 삭제하시겠습니까? 프롬프트는 '미분류'로 이동됩니다.",categoryDeletedMsg:"카테고리 '{name}'이(가) 삭제되었습니다",languageLabel:"언어",languageDesc:"패널 표시 언어를 설정하며 즉시 적용됩니다",languageAuto:"자동",languageZhCN:"简体中文",languageZhTW:"繁體中文",languageEn:"English",themeLabel:"테마",themeAuto:"자동",themeSettings:"테마 설정",currentThemeMode:"현재 모드",themeSettingsDesc:"라이트 및 다크 모드용 프리셋 선택",themeLight:"라이트",themeSystem:"시스템",customCSS:"사용자 정의 스타일",customCSSDesc:"테마 선택기에서 사용할 사용자 정의 CSS 스타일 생성",customCSSTemplate:"템플릿 삽입",addCustomStyle:"추가",noCustomStyles:"아직 사용자 정의 스타일이 없습니다. '추가' 버튼을 클릭하여 생성하세요.",editStyle:"편집",deleteStyle:"삭제",confirmDeleteStyle:"이 스타일을 삭제하시겠습니까?",styleNameLabel:"스타일 이름",styleNamePlaceholder:"스타일 이름 입력",styleModeLabel:"모드",styleModeLight:"☀️ 라이트 모드",styleModeDark:"🌙 다크 모드",styleCSSLabel:"CSS 코드",styleCreated:"스타일이 생성되었습니다",styleUpdated:"스타일이 업데이트되었습니다",styleDeleted:"스타일이 삭제되었습니다",styleNameRequired:"스타일 이름을 입력하세요",newStyle:"새 스타일",editStyleTitle:"스타일 편집",lightModePreset:"라이트 모드",lightModePresetDesc:"라이트 모드에서만 적용됨",darkModePreset:"다크 모드",darkModePresetDesc:"다크 모드에서만 적용됨",primaryColor:"주요 색상",secondaryColor:"보조 색상","themePreset_google-gradient":"Google 그라데이션",themePreset_purple:"바이올렛",themePreset_ocean:"오션 블루","themePreset_classic-dark":"클래식 다크","themePreset_midnight-blue":"미드나잇 블루",themePreset_forest:"다크 포레스트",themePreset_sakura:"벚꽃 시즌",themePreset_mint:"프레시 민트",themePreset_nordic:"노르딕 프로스트",themePreset_cyberpunk:"사이버펑크",themePreset_coffee:"커피 하우스",themePreset_sunset:"선셋 글로우","themePreset_lemon-soda":"레몬 소다","themePreset_ancient-scroll":"고대 문서","themePreset_mono-pro":"모노 프로",themePreset_dracula:"드라큘라","themePreset_deep-abyss":"심해","themePreset_crimson-moon":"심홍색 달",themePreset_porcelain:"백자",themePreset_shortbread:"쇼트브레드","themePreset_unicorn-dream":"유니콘 드림","themePreset_retro-terminal":"레트로 터미널","themePreset_eva-unit-01":"EVA 초호기",themePreset_aurora:"오로라",outlineLevel1:"레벨 1만",outlineLevel2:"레벨 2까지",outlineLevel3:"레벨 3까지",readingHistorySettings:"읽기 기록",readingHistoryTitle:"읽기 기록",readingHistoryPersistenceLabel:"읽기 기록 활성화",readingHistoryPersistenceDesc:"읽기 위치를 자동으로 기록하고 다음 방문 시 복원",readingHistoryAutoRestoreLabel:"자동 위치 복원",readingHistoryAutoRestoreDesc:"페이지를 열 때 마지막 읽기 위치로 자동으로 점프",readingHistoryCleanup:"보관 기간",readingHistoryCleanupDesc:"진행 상황이 저장되는 기간 (-1은 영구)",daysSuffix:" 일",cleanupInfinite:"영구히",contentExportSettingsTitle:"콘텐츠 설정",markdownFixLabel:"Markdown 굵게 수정",markdownFixDesc:"Gemini 응답에서 렌더링되지 않은 **굵게** 구문을 수정합니다",exportImagesToBase64Label:"이미지를 Base64로 내보내기",exportImagesToBase64Desc:"오프라인 보기를 위해 대화를 내보낼 때 이미지를 Base64로 변환합니다",userQueryMarkdownLabel:"사용자 쿼리 Markdown 렌더링",userQueryMarkdownDesc:"사용자 쿼리의 Markdown 구문을 서식 있는 텍스트로 렌더링",watermarkRemovalLabel:"이미지 워터마크 제거",watermarkRemovalDesc:"AI 생성 이미지에서 NanoBanana 워터마크를 자동으로 제거합니다",refreshPrompts:"프롬프트 새로고침",themeDark:"다크",pageWidthLabel:"페이지 너비",pageWidthValueLabel:"너비 값",pageWidthDesc:"채팅 페이지 너비 조정 (사이트별 구성)",enablePageWidth:"페이지 너비 확장 활성화",widthValue:"너비 값",widthUnit:"단위",navContent:"콘텐츠",unitPx:"픽셀 (px)",unitPercent:"백분율 (%)",enableUserQueryWidth:"사용자 쿼리 너비 확장 활성화",enableUserQueryWidthDesc:"사용자 쿼리 버블 컨테이너의 최대 너비 조정",userQueryWidthValueLabel:"쿼리 너비",tabSettingsTitle:"탭 설정",openNewTabLabel:"새 탭에서 새 채팅 열기",openNewTabDesc:"패널 헤더에 새 탭에서 새 채팅을 여는 버튼 추가",newTabTooltip:"새 탭에서 새 채팅",autoRenameTabLabel:"탭 이름 자동 변경",autoRenameTabDesc:"브라우저 탭 제목을 현재 대화 이름으로 변경",renameIntervalLabel:"감지 간격",renameIntervalDesc:"대화 이름 변경 감지 간격",secondsSuffix:"초",showStatusLabel:"상태 표시",showStatusDesc:"탭 제목에 생성 상태 아이콘 표시 (⏳/✅)",showNotificationLabel:"데스크톱 알림",showNotificationDesc:"생성이 완료되면 시스템 알림 전송",notificationSoundLabel:"알림음",notificationSoundDesc:"생성이 완료되면 소리 재생",notificationVolumeLabel:"소리 크기",notifyWhenFocusedLabel:"포커스 시에도 알림",notifyWhenFocusedDesc:"현재 페이지가 표시 중일 때도 알림 전송",autoFocusLabel:"창 자동 전면 표시",autoFocusDesc:"생성이 완료되면 창을 맨 앞으로 가져옴",privacyModeLabel:"개인정보 보호 모드",privacyModeDesc:"실제 대화 제목을 숨기고 가짜 제목 표시 (패널 헤더를 더블 클릭하여 전환)",privacyTitleLabel:"가짜 제목",privacyTitlePlaceholder:"예: Google, 업무 문서",titleFormatLabel:"제목 형식",titleFormatDesc:"사용자 정의 제목 형식, 자리 표시자 지원: {status}, {title}, {model}",notificationTitle:"✅ {site} 생성 완료",notificationBody:"클릭하여 결과 보기",tabOutline:"개요",outlineEmpty:"개요 내용 없음",outlineEmptyDescDefault:"대화가 진행되면 개요 항목이 자동으로 표시됩니다.",outlineEmptyDescUserQueryOnly:"현재 사용자 질문만 표시 중입니다. 메시지를 보내면 개요 항목이 생성됩니다.",outlineRefresh:"새로고침",outlineSettings:"개요 설정",bookmarkSettings:"북마크 설정",bookmarkModeDisableLevel:"북마크 모드에서는 레벨을 조정할 수 없습니다",bookmarkSettingsDesc:"북마크 관련 설정",inlineBookmarkModeLabel:"북마크 아이콘",inlineBookmarkModeDesc:"제목 옆 아이콘 표시 방식 제어",panelBookmarkModeLabel:"패널 북마크 아이콘",panelBookmarkModeDesc:"개요 패널의 북마크 아이콘 표시 방식 제어",inlineBookmarkModeAlways:"항상 표시",inlineBookmarkModeHover:"마우스 오버 시",inlineBookmarkModeHidden:"숨기기",enableOutline:"개요 활성화",outlineMaxLevel:"제목 수준",outlineLevelAll:"전체 (1-6)",refreshOutline:"개요 새로고침",refreshSettings:"새로고침 설정",jumpToAnchor:"이전 위치로 돌아가기",outlineScrollBottom:"하단으로 스크롤",outlineScrollTop:"상단으로 스크롤",outlineExpandAll:"모두 확장",outlineCollapseAll:"모두 접기",outlineLocateCurrent:"현재 위치 찾기",outlineSearch:"개요 검색...",outlineSearchResult:"개의 결과",outlineLevelHint:"제목",refreshConversations:"대화 새로고침",syncingConversations:"대화 동기화 중...",grokSyncingConversations:"대화 목록을 동기화하는 중입니다. 잠시만 기다려 주세요...",tabOrderSettings:"인터페이스 레이아웃",tabOrderDesc:"패널 탭의 표시 순서 조정",moveUp:"위로 이동",moveDown:"아래로 이동",readingNavigationSettings:"읽기 탐색",restoredPosition:"마지막 위치를 재개했습니다",cleanupDone:"만료된 데이터가 정리되었습니다",outlineAutoUpdateLabel:"대화 중 개요 자동 업데이트",outlineAutoUpdateDesc:"AI가 콘텐츠를 생성할 때 자동으로 개요 새로고침",outlineUpdateIntervalLabel:"업데이트 간격 (초)",outlineShowUserQueries:"사용자 쿼리 표시",outlineShowUserQueriesTooltip:"사용자 쿼리 표시",outlineOnlyUserQueries:"쿼리만",globalSearchOutlineReplies:"응답",outlineIntervalUpdated:"간격이 {val}초로 설정되었습니다",outlineSyncScrollLabel:"스크롤 동기화",outlineSyncScrollDesc:"페이지 스크롤 시 개요 항목 자동 강조 표시",outlineFollowModeLabel:"개요 팔로우 모드",outlineFollowCurrent:"현재 위치 팔로우",outlineFollowLatest:"최신 메시지 팔로우",outlineFollowManual:"수동 제어",outlineFollowCurrentDesc:"페이지 스크롤 시 개요 항목 강조 표시",outlineFollowLatestDesc:"최신 메시지로 자동 스크롤",outlineFollowManualDesc:"자동 스크롤 없음, 사용자가 수동으로 제어",outlineShowWordCountLabel:"단어 수 표시",outlineShowWordCountDesc:"개요 툴팁에 각 섹션의 단어 수를 표시합니다",words:"단어",pageDisplaySettings:"페이지 표시",otherSettingsTitle:"기타 설정",showCollapsedAnchorLabel:"앵커",showCollapsedAnchorDesc:"패널을 접었을 때 사이드바에 앵커 버튼 표시",showCollapsedThemeLabel:"테마",floatingToolbarLabel:"플로팅 도구 모음",tools:"도구 상자",cleanup:"유효하지 않은 북마크 삭제",floatingToolbarMore:"더보기",floatingToolbarClearGhost:"유효하지 않은 북마크 삭제",floatingToolbarClearGhostConfirm:"이 세션의 유효하지 않은 북마크 {count}개를 삭제하시겠습니까?",floatingToolbarClearGhostEmpty:"삭제할 유효하지 않은 북마크가 없습니다.",showCollapsedThemeDesc:"패널을 접었을 때 사이드바에 테마 전환 버튼 표시",collapsedButtonsOrderDesc:"접힌 패널 버튼의 표시 순서 조정",preventAutoScrollLabel:"자동 스크롤 방지",preventAutoScrollDesc:"AI 생성 중에 페이지가 하단으로 자동 스크롤되는 것을 방지",defaultPanelStateLabel:"기본으로 패널 표시",defaultPanelStateDesc:"페이지 새로고침 후 패널 펼침 상태 유지",autoHidePanelLabel:"패널 밖 클릭 시 접기",autoHidePanelDesc:"패널 영역 외부를 클릭하면 플로팅 볼로 최소화",autoHidePanelDescEdgeSnap:"패널 영역 외부를 클릭하면 가장자리로 스냅",edgeSnapHideLabel:"가장자리 자동 스냅",edgeSnapHideDesc:"패널을 화면 가장자리로 드래그하면 자동으로 스냅하고 호버 시 표시",edgeSnapThresholdLabel:"스냅 임계값",edgeSnapThresholdDesc:"드래그 시 가장자리에 얼마나 가까워지면 스냅되는지",defaultPositionLabel:"기본 위치",defaultPositionDesc:"페이지 새로고침 후 패널이 표시되는 쪽",defaultPositionLeft:"왼쪽",defaultPositionRight:"오른쪽",defaultEdgeDistanceLabel:"기본 여백",defaultEdgeDistanceDesc:"화면 가장자리에서의 초기 거리",panelWidthLabel:"패널 너비",panelWidthDesc:"패널의 너비 (px)",panelHeightLabel:"패널 높이",panelHeightDesc:"패널이 차지하는 화면 높이의 백분율",disableOutline:"개요 비활성화",togglePrompts:"프롬프트 전환",toggleConversations:"대화 전환",tabConversations:"대화",conversationsEmpty:"대화가 아직 없습니다",conversationsEmptyHint:"사이드바에서 가져오려면 위 동기화 버튼을 클릭하세요",conversationsSync:"동기화",conversationsSyncing:"동기화 중...",conversationsSynced:"동기화됨",conversationsAddFolder:"새 폴더",conversationsRename:"이름 바꾸기",conversationsDelete:"삭제",conversationsDeleteConfirm:"이 폴더를 삭제하시겠습니까? 대화는 받은 편지함으로 이동됩니다.",conversationsFolderCreated:"폴더가 생성되었습니다",conversationsFolderRenamed:"폴더 이름이 변경되었습니다",conversationsFolderDeleted:"폴더가 삭제되었습니다",conversationsCannotDeleteDefault:"기본 폴더는 삭제할 수 없습니다",conversationsIcon:"아이콘",conversationsFolderName:"이름",conversationsFolderNamePlaceholder:"폴더 이름 입력",conversationsSyncEmpty:"대화를 찾을 수 없습니다",conversationsSyncNoChange:"새로운 대화가 없습니다",conversationsLocate:"현재 대화 찾기",conversationsLocateSuccess:"현재 대화 위치를 찾았습니다",conversationsLocateNotFound:"현재 대화가 추적되지 않았습니다. 동기화 중...",conversationsLocateNewChat:"이것은 아직 저장되지 않은 새 채팅입니다",conversationsLocateSyncFailed:"동기화 후에도 대화를 찾을 수 없습니다",justNow:"방금 전",minutesAgo:"분 전",hoursAgo:"시간 전",daysAgo:"일 전",conversationsSelectFolder:"동기화 폴더 선택",conversationsMoveTo:"대화 이동",conversationsSetTag:"태그 설정",conversationsMoved:"다음으로 이동됨: ",conversationsSyncDeleteTitle:"삭제 동기화",conversationsSyncDeleteMsg:"클라우드에서 {count}개의 대화가 삭제된 것을 감지했습니다. 로컬 기록도 동기화하여 삭제하시겠습니까?",conversationsDeleted:"삭제됨",conversationsSettingsTitle:"대화 설정",conversationsSyncUnpinLabel:"고정 해제 상태 동기화",conversationsSyncUnpinDesc:"동기화 중 클라우드에서 고정 해제된 경우 로컬 대화도 고정 해제",folderRainbowLabel:"폴더 무지개 색상",folderRainbowDesc:"폴더에 서로 다른 배경색 할당",conversationsSyncDeleteLabel:"삭제 동기화 (클라우드)",conversationsSyncDeleteDesc:"로컬 기록 삭제 시 해당 사이트의 클라우드 대화도 함께 삭제",conversationsSyncRenameLabel:"이름 변경 동기화 (클라우드)",conversationsSyncRenameDesc:"로컬에서 이름 변경 시 {site} 사이드바 제목 업데이트",conversationsCustomIcon:"사용자 정의 아이콘",batchSelected:"{n}개 선택됨",batchMove:"이동",batchDelete:"삭제",batchExit:"나가기",batchExport:"내보내기",exportToMarkdown:"Markdown",exportToJSON:"JSON",exportLoading:"기록 로드 중...",exportSuccess:"내보내기 성공",exportFailed:"내보내기 실패",exportNoContent:"내용 없음",copySuccess:"클립보드에 복사되었습니다",copyFailed:"복사 실패",exportNeedOpenFirst:"먼저 대화를 열어주세요",exportUserLabel:"사용자",exportMetaTitle:"내보내기 정보",exportMetaConvTitle:"제목",exportMetaTime:"시간",exportMetaSource:"소스",exportNotSupported:"이 사이트에서는 내보내기를 지원하지 않습니다",exportToTXT:"TXT",exportMetaUrl:"URL",exportUntitled:"제목 없음",exportToClipboard:"Markdown 복사",conversationsRefresh:"대화 새로고침",conversationsSearchFolder:"폴더 검색...",conversationsSearchPlaceholder:"대화 검색...",conversationsSearchResult:"개의 결과",conversationsNoSearchResult:"일치하는 결과 없음",conversationsSetTags:"태그 설정",conversationsNewTag:"새 태그",conversationsTagName:"태그 이름",conversationsTagColor:"태그 색상",conversationsFilterByTags:"태그로 필터링",conversationsClearTags:"필터 지우기",conversationsTagCreated:"태그가 생성되었습니다",conversationsTagUpdated:"태그가 업데이트되었습니다",conversationsTagDeleted:"태그가 삭제되었습니다",conversationsTagExists:"태그 이름이 존재합니다",conversationsSelectTag:"태그 선택",conversationsExistingTags:"기존 태그",conversationsEditTag:"태그 편집",conversationsCancelEdit:"편집 취소",conversationsSelectColor:"색상 선택",conversationsCollapseColor:"색상 접기",conversationsUpdateTag:"태그 업데이트",conversationsNoTags:"태그 없음",conversationsManageTags:"태그 관리",conversationsDeleteTag:"태그 삭제",conversationsPin:"고정 📌",conversationsUnpin:"고정 해제",conversationsPinned:"고정됨",conversationsUnpinned:"고정 해제됨",conversationsFilterPinned:"고정된 항목 필터링",conversationsClearAll:"모든 필터 지우기",conversationsBatchMode:"일괄 처리 모드",formulaCopyLabel:"수식을 더블 클릭하여 복사",formulaCopyDesc:"수식을 더블 클릭하여 LaTeX 소스 복사 (일부 사이트 미지원)",formulaCopied:"수식이 복사되었습니다",formulaDelimiterLabel:"복사 시 구분 기호 추가",formulaDelimiterDesc:"수식 유형에 따라 $ 또는 $$ 구분 기호를 자동으로 추가",tableCopyLabel:"테이블 Markdown 복사",tableCopyDesc:"테이블 오른쪽 상단에 Markdown 복사 버튼 추가",tableCopied:"테이블이 복사되었습니다",dataManagementTitle:"데이터 관리",dataManagementDesc:"모든 확장 프로그램 설정 및 데이터를 내보내거나 가져옵니다",exportDataBtn:"모든 데이터 내보내기",importDataBtn:"데이터 가져오기",exportError:"내보내기 실패: ",importConfirm:"데이터를 가져오시겠습니까? 현재 모든 설정과 데이터가 덮어씌워집니다.",importSuccess:"가져오기 성공! 새 설정을 적용하기 위해 페이지가 새로고침됩니다.",importError:"가져오기 실패: ",invalidBackupFile:"잘못된 백업 파일 형식",backupValidationInvalidFormat:"잘못된 데이터 형식",backupValidationMissingVersion:"버전 필드 누락",backupValidationMissingData:"데이터 필드 누락",backupValidationSettingsType:"settings는 객체여야 합니다",backupValidationPromptsType:"prompts는 배열이어야 합니다",backupValidationFoldersType:"folders는 배열이어야 합니다",backupValidationConversationsType:"conversations는 객체여야 합니다",backupValidationHistoryType:"readingHistory는 객체여야 합니다",backupTime:"백업 시간",backupType:"유형",openAiPagesWillRefresh:"열려 있는 AI 페이지가 새로고침됩니다.",dataManagementNote:"참고: 내보낸 파일에는 모든 설정, 대화 기록 등이 포함됩니다. 백업 또는 새 장치로의 이전에 사용할 수 있습니다.",permissionRequired:"권한 필요",webdavPermissionDesc:"WebDAV 백업을 위해 이 도메인에 대한 액세스 권한이 필요합니다.",webdavSectionTitle:"WebDAV 클라우드 동기화",webdavDesc:"데이터를 WebDAV 서버(예: Nextcloud, Owncloud)와 동기화합니다",webdavUrlLabel:"서버 URL",webdavUsernameLabel:"사용자 이름",webdavUsernamePlaceholder:"이메일 주소",webdavPasswordLabel:"비밀번호",webdavPasswordPlaceholder:"앱 전용 비밀번호",webdavRemotePathLabel:"원격 파일 경로",webdavTestBtn:"연결 테스트",webdavUploadBtn:"업로드",webdavDownloadBtn:"다운로드",webdavDownloadConfirm:"다운로드하면 현재 데이터를 덮어씁니다. 계속하시겠습니까?",webdavLastSync:"최종 동기화",webdavConnectionSuccess:"연결 성공",webdavUploadSuccess:"업로드 성공",webdavDownloadSuccess:"다운로드 성공",webdavConfigIncomplete:"먼저 WebDAV 구성을 완료하세요",webdavAuthFailed:"인증 실패. 사용자 이름과 비밀번호를 확인하세요",webdavConnectionFailed:"연결 실패",webdavUploadFailed:"업로드 실패",webdavDownloadFailed:"다운로드 실패",webdavFileNotFound:"원격 파일을 찾을 수 없습니다",webdavInvalidFormat:"잘못된 백업 파일 형식",exportData:"데이터 내보내기",exportDataDesc:"백업을 위해 데이터를 JSON 파일로 내보내기",importData:"데이터 가져오기",importDataDesc:"백업 파일에서 데이터 복원",fullBackup:"전체 백업",fullBackupDesc:"모든 계정 데이터 및 설정 내보내기 (권장)",promptsBackup:"프롬프트만",promptsBackupDesc:"프롬프트 라이브러리만 내보내기 (태그/폴더 제외)",settingsBackup:"설정만",settingsBackupDesc:"UI 설정 및 기본 설정만 내보내기",selectFile:"파일 선택",noFileSelected:"선택된 파일 없음",dataPreview:"데이터 미리보기",pastePlaceholder:"JSON 데이터를 붙여넣거나 위에서 파일을 선택하여 가져오세요...",importBtn:"가져오기",webdavConfig:"WebDAV 구성",webdavConfigDesc:"백업 업로드/다운로드를 위해 WebDAV 구성",webdavAddress:"WebDAV URL",username:"사용자 이름",password:"비밀번호",saveConfig:"구성 저장",saveSuccess:"구성이 저장되었습니다",backupEncryption:"백업 암호화",backupEncryptionDesc:"비밀번호로 업로드를 암호화합니다. 복원 시 동일한 비밀번호가 필요합니다.",encryptionPassword:"암호화 비밀번호",encryptionPasswordPlaceholder:"업로드 암호화 및 다운로드 복호화에 사용",restoreTip:"복원 팁",restoreTipContent:"WebDAV에서 복원하면 데이터를 가져오지만 현재 장치의 WebDAV 연결/암호화 설정은 덮어쓰지 않습니다. 이는 액세스 권한이 실수로 손실되는 것을 방지하기 위함입니다. WebDAV 구성을 복원하려면 수동으로 가져오세요.",backupAndRestore:"백업 및 복원",webdavServerSettings:"WebDAV 서버 설정",webdavRemoteDirLabel:"경로",backupManagement:"백업 관리",backupNow:"지금 백업",restore:"복원",localBackup:"로컬 백업",exportToFile:"파일로 내보내기",importBackupFile:"백업 파일 가져오기",permAllUrlsTitle:"모든 사이트 액세스 필요",permAllUrlsDesc:"WebDAV 동기화 및 AI 이미지 워터마크 제거에 필요합니다.",permWebdavTitle:"네트워크 액세스 필요",permWebdavDesc:"WebDAV 동기화를 위해 서버 액세스 권한이 필요합니다. 승인 후 백업 및 복원이 가능합니다.",permTabsTitle:"탭 권한 필요",permTabsDesc:"탭 이름 변경 및 개인정보 보호 모드 기능에 필요합니다.",permNotifyTitle:"알림 권한 필요",permNotifyDesc:"AI 생성이 완료되면 알림을 받기 위해 데스크톱 알림을 활성화합니다.",permCookiesTitle:"쿠키 관리 권한 필요",permCookiesDesc:"이 권한은 Claude SessionKey를 빠르게 전환하는 데 사용됩니다. 승인 후 claude.ai 쿠키를 관리할 수 있습니다.",permDNRTitle:"네트워크 요청 규칙 권한 필요",permDNRDesc:"AI 생성 이미지에서 워터마크를 제거하는 데 사용됩니다.",permissionRequestToast:"팝업 창에서 권한을 승인해 주세요",permissionDialogAllow:"허용 및 계속",permissionGranted:"권한 허용됨",permissionDenied:"권한 거부됨",revokeConfirmDefault:"이 권한을 취소하시겠습니까? 관련 기능이 자동으로 비활성화됩니다.",revokeConfirmNotifications:"알림 권한을 취소하시겠습니까?\n\n[데스크톱 알림] 기능이 자동으로 비활성화됩니다. 다시 사용하려면 재승인이 필요합니다.",revokeConfirmWebdav:"고급 액세스 권한을 취소하시겠습니까?\n\n[워터마크 제거] 및 [WebDAV 동기화] 기능이 자동으로 비활성화됩니다. 다시 사용하려면 재승인이 필요합니다.",warning:"경고",windowClosing:"창 닫는 중...",allow:"허용",defaultPromptTranslateTitle:"번역 어시스턴트",defaultPromptTranslateCategory:"번역",defaultPromptTranslateContent:"당신은 20년 경력의 전문 번역가입니다. 제공된 텍스트를 제 요구 사항에 따라 {{target_language}}(으)로 번역해 주세요.\n\n요구 사항:\n정확성: 정보를 빠뜨리지 않고 원문의 의미에 충실할 것.\n유창함: {{target_language}} 표현 습관에 맞춰 '번역체'를 피할 것.\n스타일 일관성: 원문의 어조(예: 전문적, 유머러스, 진지함)를 유지할 것.\n\n번역할 텍스트: {{text}}",defaultPromptCodeOptTitle:"코드 최적화",defaultPromptCodeOptCategory:"프로그래밍",defaultPromptCodeOptContent:"당신은 {{language}} 전문가입니다. 다음 코드를 검토하고 클린 코드 원칙을 사용하여 리팩토링해 주세요.\n\n**원본 코드**:\n{{code}}\n\n**요구 사항**:\n1. 불필요한 로직을 제거할 것.\n2. {{language}} 커뮤니티 관례에 맞게 이름을 개선할 것.\n3. 필요한 에러 처리 메커니즘을 추가할 것.\n4. 코드 [가독성], [견고성], [확장성]에 집중할 것.\n5. 가능하다면 최신 {{version}} (예: ES6+, Java 21) 구문 기능을 사용할 것.\n\n최적화된 코드 블록을 직접 출력하고, 그 뒤에 개선 사항을 간략히 요약해 주세요.",navShortcuts:"키보드 단축키",shortcutsPageDesc:"빠른 작업을 위한 키보드 단축키 구성",shortcutsInteractionGroup:"독립 설정",shortcutsInteractionGroupDesc:'이 그룹의 설정은 항상 적용되며 "사용자 정의 단축키 활성화" 토글의 영향을 받지 않습니다',shortcutsGlobalSettings:"단축키 설정",enableShortcuts:"사용자 정의 단축키 활성화",enableShortcutsDesc:"모든 사용자 정의 키보드 단축키를 활성화 또는 비활성화",globalShortcutUrl:"글로벌 단축키 URL",globalShortcutUrlDesc:"글로벌 단축키 Alt+G를 누를 때 열리는 URL",resetShortcuts:"기본값으로 재설정",resetShortcutsConfirm:"모든 단축키를 기본값으로 재설정하시겠습니까?",pressAnyKey:"키를 누르세요...",shortcutConflictWith:"충돌 위치",shortcutConflict:"",globalShortcutsTitle:"글로벌 단축키",globalShortcutsDesc:"모든 브라우저 페이지에서 작동합니다. 브라우저 확장 프로그램 설정에서 구성하세요.",openBrowserShortcuts:"브라우저 단축키 설정 열기",shortcutNotSet:"미설정",shortcutRemove:"제거",shortcutCategoryNavigation:"탐색",shortcutCategoryPanel:"패널",shortcutCategoryOutline:"개요",shortcutCategoryConversation:"대화",shortcutCategoryEdit:"상호작용 제어",shortcutScrollTop:"맨 위로 스크롤",shortcutScrollBottom:"맨 아래로 스크롤",shortcutGoToAnchor:"앵커로 이동",shortcutTogglePanel:"패널 확장/축소",shortcutToggleTheme:"테마 전환",shortcutOpenSettings:"설정 열기",shortcutSwitchTab1:"첫 번째 탭으로 전환",shortcutSwitchTab2:"두 번째 탭으로 전환",shortcutSwitchTab3:"세 번째 탭으로 전환",shortcutRefreshOutline:"개요 새로고침",shortcutToggleOutlineExpand:"모두 확장/접기",shortcutExpandLevel1:"레벨 1까지 확장",shortcutExpandLevel2:"레벨 2까지 확장",shortcutExpandLevel3:"레벨 3까지 확장",shortcutExpandLevel4:"레벨 4까지 확장",shortcutExpandLevel5:"레벨 5까지 확장",shortcutExpandLevel6:"레벨 6까지 확장",shortcutToggleUserQueries:"사용자 쿼리 표시",shortcutToggleBookmarks:"즐겨찾기 표시",shortcutOnlyUserQueries:"사용자 쿼리만 표시",shortcutPrevHeading:"이전 제목",shortcutNextHeading:"다음 제목",shortcutLocateOutline:"개요 찾기",shortcutSearchOutline:"개요 검색",shortcutNewConversation:"새 대화",shortcutRefreshConversations:"대화 새로고침",shortcutLocateConversation:"현재 대화 찾기",shortcutPrevConversation:"이전 대화",shortcutNextConversation:"다음 대화",shortcutExportConversation:"대화 내보내기",shortcutCopyLatestReply:"최신 응답 복사",shortcutCopyLastCodeBlock:"마지막 코드 블록 복사",shortcutToggleScrollLock:"AI 생성 시 자동 스크롤 방지",shortcutFocusInput:"입력창 포커스",shortcutStopGeneration:"생성 중지",shortcutTogglePromptQueue:"프롬프트 큐 전환",shortcutShowModelSelector:"모델 선택 메뉴 표시",shortcutCategoryHelp:"도움말",shortcutCategorySettings:"설정",shortcutOpenClaudeSettings:"Claude 설정 열기",shortcutSwitchClaudeKey:"Claude 키 전환",shortcutOpenGeminiSettings:"Gemini 설정 열기",shortcutOpenThemeSettings:"테마 설정 열기",shortcutOpenModelLockSettings:"모델 잠금 열기",scrolledToTop:"맨 위로 스크롤되었습니다",scrolledToBottom:"맨 아래로 스크롤되었습니다",outlineRefreshed:"개요가 새로고침되었습니다",conversationsRefreshed:"대화가 새로고침되었습니다",locatingOutline:"개요에서 찾는 중...",locatingConversation:"현재 대화를 찾는 중...",noConversationToLocate:"찾을 수 있는 대화가 없습니다",outlineDisabled:"개요 기능이 비활성화되었습니다",conversationsDisabled:"대화 기능이 비활성화되었습니다",exportStarted:"내보내기 시작 중...",replyCopied:"최신 응답이 복사되었습니다",noReplyToCopy:"복사할 응답이 없습니다",scrollLockToggled:"스크롤 잠금이 전환되었습니다",browserNotSupported:"이 브라우저는 사용자 정의 확장 프로그램 단축키를 지원하지 않습니다",inputFocused:"입력창이 포커스되었습니다",generationStopped:"생성이 중지되었습니다",notGenerating:"현재 생성 중이 아닙니다",noConversations:"대화 없음",untitledConversation:"제목 없는 대화",noCodeBlock:"코드 블록을 찾을 수 없습니다",codeBlockCopied:"코드 블록이 복사되었습니다",modelSelectorNotFound:"모델 선택기를 찾을 수 없습니다",geminiSettingsTab:"Gemini 전용",claudeSessionKeyTitle:"세션 키 관리",claudeSessionKeyDesc:"Claude 계정 관리 및 전환",claudeCurrentUsing:"사용 중:",claudeNoKeySelected:"없음 - 세션 키를 추가하거나 가져오세요",claudePleaseAddKey:"먼저 세션 키를 추가해 주세요",claudeAddKey:"추가",claudeImportFromBrowser:"브라우저에서 가져오기",claudeImportJSON:"JSON 가져오기",claudeExportJSON:"JSON 내보내기",claudeNoKeys:"세션 키 없음",claudeNoKeysHint:"시작하려면 '추가' 또는 '브라우저에서 가져오기'를 클릭하세요",claudeKeyValid:"유효함",claudeKeyInvalid:"유효하지 않음",claudeKeyUntested:"테스트되지 않음",claudeKeyUsing:"사용 중",claudeKeyUse:"사용",claudeKeyTest:"테스트",claudeKeyDelete:"삭제",claudeKeyCopied:"클립보드에 복사되었습니다",claudeKeyCopyFailed:"복사 실패",claudeKeyDoubleTapCopy:"풀 키를 복사하려면 더블 클릭",claudeCopyKey:"Session Key 복사",claudeCopied:"복사됨",claudeAlreadyUsing:"이미 이 세션 키를 사용 중입니다",claudePleaseSelectKey:"세션 키를 선택해 주세요",claudeKeyImported:"가져온 후 현재로 설정되었습니다. 테스트 중...",claudeKeyAdded:"세션 키가 추가되었습니다",claudeKeySwitched:"세션 키가 전환되었습니다. 페이지가 새로고침됩니다.",claudeKeyDeleted:"삭제됨",claudeKeyTesting:"테스트 중",claudeGenerating:"AI가 생성 중입니다. 나중에 다시 시도해 주세요.",claudeAddKeyNameTitle:"세션 키 추가 - 이름 입력",claudeAddKeyNamePlaceholder:"예: 주 계정, 백업",claudeAddKeyValueTitle:"세션 키 추가 - 키 입력",claudeAddKeyValuePlaceholder:"sk-ant-sid01-...",claudeImportNameTitle:"브라우저에서 가져오기 - 이름 입력",claudeImportNamePlaceholder:"가져온 세션 키의 이름",claudeDeleteConfirmTitle:"삭제 확인",claudeDeleteConfirmMsg:'"{name}"을(를) 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.',claudeNameRequired:"이름은 필수입니다",claudeKeyRequired:"세션 키는 필수입니다",claudeKeyInvalidFormat:"유효하지 않은 세션 키 형식",claudeKeyExists:"세션 키가 이미 존재합니다",claudeNoTokensToExport:"내보낼 세션 키가 없습니다",claudeExported:"내보내기 완료",claudeInvalidJSON:"잘못된 JSON 형식",claudeNoNewTokens:"새로운 세션 키가 없습니다",claudeImported:"{count}개의 세션 키를 가져왔습니다",claudeTokenExists:"세션 키가 이미 존재합니다: {name}",claudeNoCookieFound:"쿠키를 찾을 수 없습니다",claudeRequestPermission:"팝업에서 쿠키 권한을 승인해 주세요",claudeNotOnSiteWarning:"즉시 전환 및 브라우저 가져오기는 Claude 사이트에서만 가능합니다",claudeNotOnSiteHint:"이 기능은 Claude 사이트에서 사용해 주세요",claudeShortcutOnlyOnSite:"단축키는 Claude 사이트에서만 작동합니다",claudeBatchTest:"일괄 체크",claudeBatchTesting:"체크 중... {current}/{total}",claudeBatchTestDone:"일괄 체크 완료. 유효: {valid}, 유효하지 않음: {invalid}",claudeBatchTestFailed:"일괄 체크가 중단되었습니다",claudeOnlyOneKeyTip:"제공된 키가 하나뿐이며 이미 사용 중입니다",noClaudeKeys:"구성된 Session Key가 없습니다",restoreSuccess:"복원 성공, 페이지가 새로 고침됩니다...",aistudioSettingsTitle:"AI Studio 설정",aistudioSettingsDesc:"AI Studio 페이지 로드 시 기본 동작 구성",aistudioDefaultModel:"기본 모델",aistudioDefaultModelNone:"지정 안 함 (시스템 기본값 사용)",aistudioDefaultModelCustom:"사용자 정의 모델 ID...",aistudioDefaultModelPlaceholder:"models/gemini-xxx",aistudioCollapseNavbar:"사이드바 접기",aistudioCollapseNavbarDesc:"페이지 열 때 왼쪽 탐색을 자동으로 접습니다",aistudioCollapseRunSettings:"실행 설정 패널 접기",aistudioCollapseRunSettingsDesc:"페이지 열 때 오른쪽 실행 설정 패널을 자동으로 접습니다",aistudioCollapseTools:"도구 섹션 접기",aistudioCollapseToolsDesc:"페이지 열 때 실행 설정 내 도구 섹션을 자동으로 접습니다",aistudioCollapseAdvanced:"고급 설정 접기",aistudioCollapseAdvancedDesc:"페이지 열 때 고급 옵션을 자동으로 접습니다",aistudioEnableSearch:"검색 도구 활성화",aistudioEnableSearchDesc:"페이지 열 때 Google 실시간 검색을 자동으로 활성화합니다",aistudioModelsFetched:"모델 목록이 업데이트되었습니다",aistudioNoTabError:"먼저 AI Studio 페이지를 열어주세요",aistudioModelsError:"모델 목록을 가져오지 못했습니다",chatgptSettingsTitle:"ChatGPT 설정",chatgptSettingsDesc:"ChatGPT 페이지의 기본 동작 구성",chatgptMarkdownFixLabel:"Markdown 굵게 수정",chatgptMarkdownFixDesc:"ChatGPT 응답에서 렌더링되지 않은 **굵게** 텍스트를 수정합니다",aistudioRemoveWatermark:"이미지 워터마크 제거",aistudioRemoveWatermarkDesc:"AI Studio에서 생성된 이미지의 워터마크를 제거합니다 (페이지 새로고침 필요)",aistudioMarkdownFixLabel:"Markdown 굵게 수정",aistudioMarkdownFixDesc:"AI Studio 응답에서 렌더링되지 않은 **굵게** 텍스트를 수정합니다",aistudioReloadHint:"변경 사항을 적용하려면 페이지를 새로 고치세요",exportCustomUserName:"사용자 지정 사용자 이름",exportCustomUserNameDesc:"내보내기 시 표시될 사용자 이름 (기본값: User)",exportCustomModelName:"사용자 지정 AI 이름",exportCustomModelNameDesc:"내보내기 시 표시될 AI 이름 (기본값: 사이트 이름)",exportFilenameTimestamp:"Add Timestamp to Filename",exportFilenameTimestampDesc:"Add a timestamp to the end of the exported filename",exportIncludeThoughtsLabel:"내보내기에 사고 과정 포함",exportIncludeThoughtsDesc:"내보낼 때 사고 과정을 포함하고 자동으로 펼칩니다(인용 블록으로 구분)",popupCurrentSite:"현재 사이트",popupSupported:"활성화됨",popupUnsupported:"미지원",popupNewChat:"새 대화",popupQuickAccess:"빠른 액세스",popupRecentUsed:"최근 사용",popupNoRecentPrompts:"최근 사용한 프롬프트가 없습니다",popupCopied:"복사됨",popupCopyFailed:"복사 실패",popupFeedback:"피드백",popupSettings:"설정",policyRetryLabel:"정책 차단 시 자동 재시도",policyRetryDesc:"기업 정책에 의해 메시지가 차단될 경우 자동으로 메시지를 다시 보냅니다.",maxRetriesLabel:"최대 재시도 횟수",retryCountSuffix:"회 (동일 질문)",policyRetryActive:"정책 차단됨, 재시도 중 ({current}/{max})",policyRetryLimitReached:"재시도 횟수 초과",preventAutoScrollEnabled:"스크롤 잠금이 활성화되었습니다",preventAutoScrollDisabled:"스크롤 잠금이 비활성화되었습니다",toolboxMenu:"도구함",toolboxMenuTitle:"도구함 메뉴",toolboxMenuDesc:"도구함 팝업 메뉴에 표시할 기능 설정",globalSearchCategoryAll:"전체",globalSearchCategoryOutline:"개요",globalSearchCategorySettings:"설정",globalSearchCategoryConversations:"대화",globalSearchCategoryFolders:"폴더",globalSearchCategoryTags:"태그",globalSearchCategoryPrompts:"프롬프트",globalSearchCategoryCurrentSession:"현재 세션",globalSearchSiteGemini:"Gemini",globalSearchSiteGeminiEnterprise:"Gemini Enterprise",globalSearchSiteAIStudio:"AI Studio",globalSearchSiteChatGPT:"ChatGPT",globalSearchSiteClaude:"Claude",globalSearchSiteGrok:"Grok",globalSearchPlaceholderAll:"전체 검색",globalSearchPlaceholderOutline:"개요 검색",globalSearchPlaceholderSettings:"설정 검색",globalSearchPlaceholderConversations:"현재 사이트 대화 검색",globalSearchPlaceholderFolders:"폴더 검색",globalSearchPlaceholderTags:"태그 검색",globalSearchPlaceholderPrompts:"프롬프트 검색",globalSearchPlaceholderCurrentSession:"현재 세션 질문 및 개요 검색",globalSearchEmptyAll:"일치하는 결과가 없습니다",globalSearchEmptyOutline:"개요 결과가 없습니다",globalSearchEmptySettings:"일치하는 설정이 없습니다",globalSearchEmptyConversations:"대화 결과가 없습니다",globalSearchEmptyFolders:"폴더 결과가 없습니다",globalSearchEmptyTags:"태그 결과가 없습니다",globalSearchEmptyPrompts:"프롬프트 결과가 없습니다",globalSearchEmptyCurrentSession:"현재 세션에 결과가 없습니다",globalSearchCategoriesLabel:"전체 검색 카테고리",globalSearchPageDesc:"Search Everywhere의 검색 동작과 인터랙션 세부 항목을 설정합니다",globalSearchTriggerHint:"실행: Shift 두 번 또는 Ctrl/Cmd + K",globalSearchMatchingSettingsTitle:"검색 매칭",globalSearchMatchingSettingsDesc:"Search Everywhere가 검색 결과를 매칭하는 방식을 설정합니다",globalSearchPromptSettingsTitle:"프롬프트 동작",globalSearchPromptSettingsDesc:"Search Everywhere에서 프롬프트 결과에 Enter를 눌렀을 때의 동작을 선택합니다",globalSearchPromptEnterBehaviorLabel:"Search Everywhere 프롬프트 Enter 동작",globalSearchPromptEnterBehaviorDesc:"스마트: 변수가 없으면 바로 삽입하고, 필요하면 변수 입력 창을 엽니다. 위치만: 프롬프트 목록으로 전환해 항목을 위치시킵니다.",globalSearchPromptEnterBehaviorSmart:"스마트(권장)",globalSearchPromptEnterBehaviorLocate:"위치만",globalSearchEnableFuzzySearchLabel:"퍼지 검색 사용",globalSearchEnableFuzzySearchDesc:"활성화하면 Search Everywhere가 제목, 폴더, 태그, 프롬프트 내용, 설정 식별자에 퍼지 매칭을 사용합니다.",globalSearchFuzzySearchToggle:"퍼지",globalSearchFuzzySearchToggleAria:"퍼지 검색 전환",globalSearchFooterTips:"Enter 이동 · ↑↓ 선택 · Tab 카테고리 · Esc 닫기",globalSearchShortcutNudge:"다음부터는 {shortcut}로 빠르게 열 수 있어요",doubleShiftToSearch:"Shift 두 번으로 전역 검색 열기",doubleShiftToSearchDesc:"Shift 키를 빠르게 두 번 눌러 전역 검색을 엽니다",globalSearchShortcutNudgeDismiss:"다시 알리지 않기",globalSearchContextCurrentItem:"{current}번째 항목",globalSearchContextShownProgress:"표시됨 {shown}/{total}",globalSearchContextTotalItems:"총 {total}개",globalSearchMatchReasonTitle:"제목 일치",globalSearchMatchReasonFolder:"폴더 일치",globalSearchMatchReasonTag:"태그 일치",globalSearchMatchReasonType:"유형 일치",globalSearchMatchReasonCode:"코드 일치",globalSearchMatchReasonCategory:"분류 일치",globalSearchMatchReasonContent:"내용 일치",globalSearchMatchReasonId:"ID 일치",globalSearchMatchReasonKeyword:"키워드 일치",globalSearchMatchReasonAlias:"별칭 일치",globalSearchMatchReasonFuzzy:"퍼지 일치",globalSearchSyntaxOperatorType:"유형",globalSearchSyntaxOperatorFolder:"폴더",globalSearchSyntaxOperatorTag:"태그",globalSearchSyntaxOperatorIs:"상태",globalSearchSyntaxOperatorLevel:"레벨",globalSearchSyntaxOperatorDate:"날짜",globalSearchSyntaxPinned:"고정됨",globalSearchSyntaxSuggestionTypeDesc:"결과 유형으로 필터링",globalSearchSyntaxSuggestionFolderDesc:"폴더 또는 분류로 필터링",globalSearchSyntaxSuggestionTagDesc:"태그 이름으로 필터링",globalSearchSyntaxSuggestionIsDesc:"상태로 필터링",globalSearchSyntaxSuggestionPinnedDesc:"고정된 결과만 표시",globalSearchSyntaxSuggestionLevelDesc:"아웃라인 레벨로 필터링 (0 = 사용자 질문)",globalSearchSyntaxSuggestionLevelQueryDesc:"사용자 질문만",globalSearchSyntaxSuggestionDateDesc:"최근 일수로 필터링",globalSearchSyntaxDiagnosticUnknownOperator:"알 수 없는 연산자",globalSearchSyntaxDiagnosticInvalidValue:"잘못된 필터 값",globalSearchSyntaxDiagnosticConflict:"충돌하는 필터가 무시됨",globalSearchSyntaxChipRemove:"클릭하여 필터 제거",globalSearchSyntaxChipOverflow:"추가 {count}개",globalSearchSyntaxEmptyGuideTitle:"검색 필터를 사용해 보세요",globalSearchSyntaxEmptyGuideDesc:"필터 문법으로 결과를 빠르게 좁힐 수 있습니다",globalSearchSyntaxHelpTitle:"검색 문법 예시",globalSearchSyntaxHelpDesc:"클릭하면 바로 삽입됩니다. 키워드는 영어만 지원합니다.",globalSearchSyntaxHelpTriggerAria:"검색 문법 도움말 열기",moreLanguages:"More Languages",communityAndSupport:"Community and Support",modelLockEnabled:"Model Lock Enabled",modelLockDisabled:"Model Lock Disabled",modelLockNoKeyword:"No keyword set for this model",toggleTheme:"Toggle Theme",outlineSettingsTitle:"Outline Settings",outlineEnabledLabel:"Enable Outline",outlineShowUserQueriesLabel:"Show User Queries",anchorUpdated:"Anchor Updated",loadingHistory:"Loading History...",historyLoaded:"History Loaded",stopLoading:"Stop",loadingHint:"Scroll up after completion",setAnchor:"Set Anchor",setAnchorToast:"Anchor Set",backToAnchor:"Back to Anchor",noAnchor:"No Anchor",clearAnchor:"Clear Anchor",clearAnchorToast:"Anchor Cleared",manualAnchorLabel:"Manual Anchor",manualAnchorDesc:"Manually set and manage anchor",watermarkProcessing:"Processing image...",watermarkProcessed:"Watermark removed",watermarkFailed:"Removal failed",shortcutToggleModelLock:"Toggle Model Lock",queueTitle:"프롬프트 대기열",queueQuickAsk:"프롬프트 대기열",queueInQueue:"대기 중 ({count})",queueEmpty:"대기열이 비어 있습니다. 입력 후 Enter를 눌러 보내거나 대기열에 추가하세요",queueClearAll:"모두 지우기",queueRemove:"제거",queuePlaceholderIdle:"프롬프트를 입력하고 Enter를 눌러 전송...",queuePlaceholderBusy:"AI 생성 중, Enter를 눌러 대기열에 추가...",queueStatusIdle:"AI 대기 중",queueStatusBusy:"AI 생성 중",queueSettingLabel:"프롬프트 대기열",queueDisableHint:"설정에서 이 기능을 끌 수 있습니다",queueSettingDesc:"활성화 시 입력창 상단에 대기열이 표시되어 생성 중 프롬프트를 추가할 수 있습니다",queueEdit:"편집",queueEditSave:"저장",queueEditCancel:"취소",queueForceSend:"강제 전송",zenModeTitle:"선(Zen) 모드",zenModeLabel:"선 모드 활성화",zenModeDesc:"더 순수한 대화 경험을 위해 불필요한 요소(하단 모델 면책 조항 등)를 숨깁니다 (각 사이트별 개별 설정)"},fr:{panelTitle:"Ophel",welcomeSlogan:"L'IA à votre portée",disclaimerTitle:"Avis Légal",disclaimerText:"Cette extension est un outil à usage général et peut ne pas prendre en charge toutes les fonctionnalités exclusives de sites spécifiques. Elle dépend des structures de pages de tiers ; si des mises à jour interrompent le fonctionnement, veuillez nous en informer via GitHub Issues pour une correction rapide.",disclaimerWarning:"Veuillez ne pas laisser d'avis négatifs sur le store pour des problèmes causés par des modifications sur des sites tiers. Merci de votre compréhension et de votre soutien !",communityMotto:"Seul on va plus vite, ensemble on va plus loin.",welcomeJoin:"Bienvenue sur Ophel",agreeButton:"Je comprends et j'accepte",tabPrompts:"Prompts",tabSettings:"Réglages",navGeneral:"Général",navSiteSettings:"Sites",navGlobalSearch:"Recherche Globale",navAppearance:"Apparence",navPageContent:"Contenu",navFeatures:"Fonctions",navPermissions:"Permissions",navBackup:"Données",navAbout:"À propos",siteSettingsPageDesc:"Configurer la mise en page et le traitement par site",generalPageDesc:"Configurer le comportement de l'extension",appearancePageDesc:"Personnaliser les styles visuels et les thèmes",pageContentPageDesc:"Ajuster la mise en page et l'affichage du contenu",featuresPageDesc:"Configurer les modules de fonctionnalités",permissionsPageDesc:"Voir et gérer les permissions de l'extension.",backupPageDesc:"Gérer la sauvegarde des données et la synchronisation cloud",aboutPageDesc:"L'IA à votre portée.",tsPlasmoDesc:"Framework d'extensions de navigateur",tsReactDesc:"Bibliothèque d'interface utilisateur",tsTypescriptDesc:"JavaScript avec typage",tsZustandDesc:"Gestion d'état",tsViteDesc:"Outils de frontend",optionalPermissions:"Permissions Optionnelles",optionalPermissionsDesc:"Permissions pouvant être accordées ou révoquées selon les besoins",requiredPermissions:"Permissions Requises",requiredPermissionsDesc:"Permissions nécessaires au bon fonctionnement",permissionsSyncHint:"Le statut est synchronisé avec le navigateur. Actualisez s'il a été modifié ailleurs.",refreshStatus:"Actualiser le Statut",refreshing:"Actualisation...",permissionsRefreshed:"Statut des permissions actualisé",granted:"Accordé",notGranted:"Non Accordé",revoke:"Révoquer",grant:"Accorder",allowRecommended:"Autoriser (Recommandé)",required:"Requis",permissionWebdavAccess:"Accès aux Fonctions Avancées",permissionWebdavAccessDesc:"Accès à tous les sites. Requis pour WebDAV et la suppression des filigranes.",permissionStorage:"Stockage",permissionStorageDesc:"Pour sauvegarder réglages, prompts et conversations.",permissionNotifications:"Notifications",permissionNotificationsDesc:"Optionnel. Pour prévenir quand l'IA a fini de répondre.",permissionCookies:"Gestion des Cookies",permissionCookiesDesc:"Gérer les cookies de Claude pour le changement rapide de SessionKey.",permissionTabs:"Onglets",permissionTabsDesc:"Optionnel. Pour détecter l'état des onglets et gérer les sessions.",permissionDNR:"Règles Réseau",permissionDNRDesc:"Optionnel. Pour modifier les en-têtes (comme supprimer les filigranes).",generalTab:"Général",tabSettingsTab:"Onglets",generalSettings:"Réglages Généraux",panelTab:"Panneau",tabOrderTab:"Ordre",shortcutsTab:"Raccourcis",panelSettings:"Réglages du Panneau",themePresetsTab:"Thèmes",customStylesTab:"Styles Personnels",pleaseEnterStyleName:"Entrez un nom pour le style",enterStyleName:"Nom du style",lightMode:"Mode Clair",darkMode:"Mode Sombre",code:"Code",create:"Créer",unnamedStyle:"Style sans nom",layoutTab:"Mise en page",contentStyleTab:"Traitement",claudeSettingsTab:"Réglages Claude",pageWidthSettings:"Largeur de Page",layoutSettingsTitle:"Contrôle de Largeur",tabLayout:"Mise en page",tabModelLock:"Blocage de Modèle",tabGemini:"Gemini",enablePageWidthDesc:"Ajuster la largeur maximale du chat",userQueryWidthSettings:"Largeur Utilisateur",scrollSettings:"Défilement",contentProcessing:"Traitement du Contenu",contentProcessingDesc:"Configurer le traitement des réponses",interactionEnhance:"Améliorations d'Interaction",interactionEnhanceDesc:"Améliorer les tableaux et les formules",exportSettings:"Exportation",outlineSettingsDesc:"Configurer la génération du sommaire",outlineUpdateIntervalDesc:"Intervalle de mise à jour (secondes)",conversationsSettingsDesc:"Synchronisation et affichage",readingHistoryDesc:"Mémoriser la position de lecture",day:"jour",days:"jours",forever:"Toujours",localBackupTab:"Copie Locale",webdavTab:"Synchro WebDAV",localBackupDesc:"Exporter les données vers un fichier JSON local",webdavServerDesc:"Serveur WebDAV pour le cloud",backupManagementDesc:"Tester, envoyer ou restaurer depuis le cloud",allDataCleared:"Données effacées, rechargement...",clearError:"Erreur lors de l'effacement",webdavBackupList:"Liste WebDAV",noBackupsFound:"Aucune sauvegarde",loading:"Chargement...",version:"Version",aboutDescription:"{appName} est une extension conçue pour Gemini, ChatGPT, Claude, AI Studio et Grok. Elle améliore votre flux de travail avec la gestion des dossiers, des sommaires intelligents et une bibliothèque de prompts, tout en offrant des utilitaires comme l'historique de lecture, les ancres, la suppression de filigranes, les alertes de fin et le verrouillage de modèle. Avec de vastes options de personnalisation, {appName} assure une expérience IA plus fluide.",projectLinks:"Liens du Projet",githubDesc:"Code source, rapports ou contribuer",giveStar:"Donner une étoile sur GitHub",projectWebsite:"Site Officiel",websiteDesc:"Documentation et guides",visitWebsite:"Visiter le Web",rateAndReview:"Vous aimez Ophel ?",rateDesc:"Si vous appréciez Ophel, merci de nous donner 5 étoiles sur le store ! Cela nous aide beaucoup.",chromeStore:"Chrome Store",firefoxAddons:"Extension Firefox",greasyFork:"Greasy Fork",reviewBtn:"Noter",starBtn:"Star",credits:"Crédits",devAndMaintain:"Développement et maintenance",creditsDesc:"Merci à tous les contributeurs. Ophel s'appuie sur d'excellents projets open source.",privacyTitle:"Confidentialité",reportIssue:"Signaler un Problème",changelog:"Changements",techStack:"Technologie",privacyStatement:"Politique de Confidentialité",privacyText:"Vos données sont stockées localement dans le navigateur. La synchronisation WebDAV utilise uniquement votre propre serveur configuré.",license:"Licence",tabBehaviorTitle:"Comportement",notificationSettings:"Actions Après la Fin",enablePrerequisiteToast:'Veuillez d\'abord activer "{setting}"',privacyModeTitle:"Mode Privé",collapsedButtonsOrderTitle:"Boutons Rapides",quickButtonsOpacityLabel:"Quick buttons opacity",quickButtonsOpacityDesc:"Adjust overall opacity of the quick buttons",searchPlaceholder:"Chercher des prompts...",addPrompt:"Nouveau Prompt",allCategory:"Tout",uncategorized:"Sans Catégorie",manageCategory:"⚙ Gérer",currentPrompt:"Actuel : ",scrollTop:"Haut",scrollBottom:"Bas",refresh:"Actualiser",collapse:"Replier",edit:"Modifier",delete:"Supprimer",copy:"Copier",addBookmark:"Ajouter aux favoris",removeBookmark:"Retirer des favoris",bookmarkContentMissing:"Contenu favori manquant",bookmarkMode:"Favoris",outlineNoBookmarks:"Aucun favori",outlineAddBookmarkHint:"Cliquez sur l'étoile à côté de l'élément pour ajouter un favori",bookmarkModeDisabled:"Non disponible en mode favoris",drag:"Glisser",save:"Enregistrer",cancel:"Annuler",close:"Fermer",add:"Ajouter",confirm:"Confirmer",export:"Exporter Markdown",clear:"Effacer",error:"Erreur",operationFailed:"Op?ration ?chou?e",deleteSuccess:"Suppression r?ussie",deleteError:"?chec de la suppression",restoreError:"?chec de la restauration",insertFailed:"?chec de l?insertion",maximize:"Maximiser",browse:"Parcourir...",clearAllData:"Tout Effacer",clearAllDataDesc:"Attention : Tous les réglages et données seront perdus.",clearAllDataConfirm:"Voulez-vous vraiment tout effacer ? Cette action est irréversible.",clearSuccess:"Données effacées, rechargement...",defaultDir:"Dossier par défaut",dangerZone:"Zone de Danger",dangerZoneDesc:"Actions irréversibles",anchorPoint:"Ancre",updateAnchor:"Mettre à jour l'Ancre",goToAnchor:"Revenir à l'ancre",title:"Titre",category:"Catégorie",categoryPlaceholder:"Ex : Code, Traduction",content:"Contenu du Prompt",editPrompt:"Modifier le Prompt",addNewPrompt:"Ajouter un Prompt",fillTitleContent:"Remplissez le titre et le contenu",promptUpdated:"Prompt mis à jour",promptAdded:"Prompt ajouté",deleted:"Supprimé",promptPin:"Épingler",promptUnpin:"Désépingler",promptVariableTitle:"Variables",promptVariablePlaceholder:"Saisir...",promptImport:"Importer",promptExport:"Exporter",promptImportTitle:"Importer des Prompts",promptImportMessage:"Confirmer pour remplacer, Annuler pour fusionner",promptImportSuccess:"Importation réussie",promptImportFailed:"Échec de l'importation",promptExportSuccess:"Exportation réussie",promptRecentUsed:"Récents",promptMarkdownPreview:"Aperçu",promptImportMessage2:"{count} prompts trouvés. Choisissez la méthode :",promptImportOverwriteDesc:"Remplacer : Remplace tout l'actuel",promptImportMergeDesc:"Fusionner : Met à jour les existants et ajoute les nouveaux",promptMerge:"Fusionner",promptOverwrite:"Remplacer",promptMergeSuccess:"Fusionné : {updated} mis à jour, {added} nouveaux",promptSettingsTitle:"Paramètres des prompts",promptSettingsDesc:"Configurer les interactions dans l'onglet des prompts",promptSubmitShortcutLabel:"Raccourci d'envoi",promptSubmitShortcutDesc:"S'applique à l'envoi manuel et à l'envoi automatique des prompts.",promptSubmitShortcutEnter:"Enter",promptSubmitShortcutCtrlEnter:"Ctrl + Enter",promptDoubleClickSendLabel:"Envoyer le prompt en double-cliquant",promptDoubleClickSendDesc:"Une fois activé, un double-clic envoie directement le prompt. Les prompts avec variables sont envoyés après confirmation.",promptSent:"Prompt envoyé",promptSendFailed:"Échec de l'envoi, le prompt reste dans le champ de saisie",copied:"Copié dans le presse-papiers",cleared:"Effacé",refreshed:"Actualisé",orderUpdated:"Ordre mis à jour",inserted:"Prompt inséré",scrolling:"Défilement en cours, attendez...",noTextarea:"Zone de texte non trouvée",confirmDelete:"Supprimer ce prompt ?",settingsTitle:"Réglages",panelSettingsTitle:"Réglages du Panneau",settingOn:"ON",settingOff:"OFF",modelLockTitle:"Blocage de Modèle",modelLockEnabledLabel:"Activer le Blocage",modelLockEnabledDesc:"Changer automatiquement en entrant",modelLockLabel:"Modèle à Bloquer",modelLockDesc:"Changera pour ce modèle au chargement",modelKeywordLabel:"Mot-clé",modelKeywordPlaceholder:"Ex : 3 Pro",modelKeywordExample:"Ex : 3 Pro",modelKeywordDesc:"Pour identifier le modèle",modelLockFailedNoButton:"Sélecteur non trouvé",modelLockFailedMenuEmpty:"Échec de chargement du menu",modelLockFailedNotFound:'Modèle "{model}" non trouvé',userQueryWidthDesc:"Largeur maximale de la bulle utilisateur (par site)",categoryManage:"Catégories",categoryEmpty:"Aucune catégorie pour le moment.",rename:"Renommer",newCategoryName:"Nouveau nom :",categoryRenamed:"Nom modifié",confirmDeleteCategory:"Supprimer la catégorie ? Les prompts passeront en 'Sans Catégorie'.",categoryDeleted:"Catégorie supprimée",promptCountSuffix:" prompt(s)",categoryRenamedTo:"Renommé en '{name}'",confirmDeleteCategoryMsg:"Supprimer '{name}' ?",categoryDeletedMsg:"'{name}' supprimée",languageLabel:"Langue",languageDesc:"Langue du panneau (effet immédiat)",languageAuto:"Auto",languageZhCN:"简体中文",languageZhTW:"繁體中文",languageEn:"English",themeLabel:"Thème",themeAuto:"Auto",themeSettings:"Réglages de Thème",currentThemeMode:"Mode actuel",themeSettingsDesc:"Choisir des styles clair/sombre",themeLight:"Clair",themeSystem:"Système",customCSS:"Styles CSS",customCSSDesc:"Vos propres styles CSS",customCSSTemplate:"Insérer un Modèle",addCustomStyle:"Ajouter",noCustomStyles:"Aucun style personnel pour le moment.",editStyle:"Modifier",deleteStyle:"Supprimer",confirmDeleteStyle:"Supprimer ce style ?",styleNameLabel:"Nom",styleNamePlaceholder:"Nom du style",styleModeLabel:"Mode",styleModeLight:"☀️ Clair",styleModeDark:"🌙 Sombre",styleCSSLabel:"Code CSS",styleCreated:"Style créé",styleUpdated:"Style mis à jour",styleDeleted:"Style supprimé",styleNameRequired:"Nom obligatoire",newStyle:"Nouveau Style",editStyleTitle:"Modifier le Style",lightModePreset:"Thème Clair",lightModePresetDesc:"Uniquement pour le mode clair",darkModePreset:"Thème Sombre",darkModePresetDesc:"Uniquement pour le mode sombre",primaryColor:"Primaire",secondaryColor:"Secondaire","themePreset_google-gradient":"Dégradé Google",themePreset_purple:"Violet",themePreset_ocean:"Bleu Océan","themePreset_classic-dark":"Sombre Classique","themePreset_midnight-blue":"Bleu Minuit",themePreset_forest:"Forêt Sombre",themePreset_sakura:"Sakura",themePreset_mint:"Menthe",themePreset_nordic:"Nordique",themePreset_cyberpunk:"Cyberpunk",themePreset_coffee:"Café",themePreset_sunset:"Coucher de soleil","themePreset_lemon-soda":"Citron","themePreset_ancient-scroll":"Parchemin","themePreset_mono-pro":"Mono Pro",themePreset_dracula:"Dracula","themePreset_deep-abyss":"Abysse","themePreset_crimson-moon":"Lune Rouge",themePreset_porcelain:"Porcelaine",themePreset_shortbread:"Biscuit","themePreset_unicorn-dream":"Licorne","themePreset_retro-terminal":"Terminal Rétro","themePreset_eva-unit-01":"EVA-01",themePreset_aurora:"Aurore",outlineLevel1:"Niveau 1 Seul",outlineLevel2:"Jusqu'au Niveau 2",outlineLevel3:"Jusqu'au Niveau 3",readingHistorySettings:"Historique de Lecture",readingHistoryTitle:"Historique de Lecture",readingHistoryPersistenceLabel:"Activer l'Historique",readingHistoryPersistenceDesc:"Enregistrer la position et y revenir au chargement",readingHistoryAutoRestoreLabel:"Auto Restauration",readingHistoryAutoRestoreDesc:"Sauter à la dernière position à l'ouverture",readingHistoryCleanup:"Rétention",readingHistoryCleanupDesc:"Combien de temps garder la progression (-1 pour toujours)",daysSuffix:" Jours",cleanupInfinite:"Toujours",contentExportSettingsTitle:"Réglages de Contenu",markdownFixLabel:"Correction du Gras",markdownFixDesc:"Corriger la syntaxe du gras sur Gemini",exportImagesToBase64Label:"Images en Base64",exportImagesToBase64Desc:"Convertir les photos en texte pour voir hors ligne",userQueryMarkdownLabel:"Markdown chez l'Utilisateur",userQueryMarkdownDesc:"Formater vos messages également",watermarkRemovalLabel:"Supprimer les Filigranes",watermarkRemovalDesc:"Effacer les marques de NanoBanana automatiquement",refreshPrompts:"Actualiser les Prompts",themeDark:"Sombre",pageWidthLabel:"Largeur de Page",pageWidthValueLabel:"Valeur de Largeur",pageWidthDesc:"Largeur du chat (par site)",enablePageWidth:"Activer l'Élargissement",widthValue:"Largeur",widthUnit:"Unité",navContent:"Contenu",unitPx:"Pixels (px)",unitPercent:"Pourcentage (%)",enableUserQueryWidth:"Élargissement Utilisateur",enableUserQueryWidthDesc:"Bulle utilisateur plus large",userQueryWidthValueLabel:"Largeur",tabSettingsTitle:"Onglets",openNewTabLabel:"Nouveau Chat en Onglet",openNewTabDesc:"Bouton pour ouvrir un nouveau chat à part",newTabTooltip:"Nouveau chat dans un autre onglet",autoRenameTabLabel:"Auto Nom de l'Onglet",autoRenameTabDesc:"Mettre le nom du chat dans le titre de l'onglet",renameIntervalLabel:"Intervalle",renameIntervalDesc:"Fréquence de détection",secondsSuffix:"s",showStatusLabel:"Afficher le Statut",showStatusDesc:"Icône de chargement dans l'onglet (⏳/✅)",showNotificationLabel:"Notification de Bureau",showNotificationDesc:"Prévenir quand l'IA a fini d'écrire",notificationSoundLabel:"Son d'Alerte",notificationSoundDesc:"Jouer un son à la fin",notificationVolumeLabel:"Volume",notifyWhenFocusedLabel:"Alerter Même Avec Focus",notifyWhenFocusedDesc:"Envoyer l'alerte même si vous voyez la page",autoFocusLabel:"Auto Mettre la Fenêtre au Premier Plan",autoFocusDesc:"Ramener au premier plan à la fin",privacyModeLabel:"Mode Privé",privacyModeDesc:"Titre leurre (double-clic en haut)",privacyTitleLabel:"Titre Leurre",privacyTitlePlaceholder:"Ex : Google, Travail",titleFormatLabel:"Format du Titre",titleFormatDesc:"Format libre : {status}, {title}, {model}",notificationTitle:"✅ {site} Terminé",notificationBody:"Cliquez pour voir le résultat",tabOutline:"Sommaire",outlineEmpty:"Aucun contenu",outlineEmptyDescDefault:"Les éléments du sommaire apparaîtront au fil de la conversation.",outlineEmptyDescUserQueryOnly:"Seules les questions utilisateur sont affichées pour le moment. Envoyez un message pour générer le sommaire.",outlineRefresh:"Recharger",outlineSettings:"Réglages de Sommaire",bookmarkSettings:"Paramètres des Favoris",bookmarkModeDisableLevel:"Impossible d'ajuster les niveaux en mode favoris",bookmarkSettingsDesc:"Paramètres liés aux favoris",inlineBookmarkModeLabel:"Icônes de favoris",inlineBookmarkModeDesc:"Contrôler la visibilité à côté des titres",panelBookmarkModeLabel:"Icônes du panneau",panelBookmarkModeDesc:"Contrôler la visibilité des favoris dans le panneau",inlineBookmarkModeAlways:"Toujours visible",inlineBookmarkModeHover:"Au survol uniquement",inlineBookmarkModeHidden:"Masqué",enableOutline:"Activer le Sommaire",outlineMaxLevel:"Niveaux",outlineLevelAll:"Tous (1-6)",refreshOutline:"Actualiser le Sommaire",refreshSettings:"Mise à jour",jumpToAnchor:"Retourner en arrière",outlineScrollBottom:"Aller au bas",outlineScrollTop:"Aller au haut",outlineExpandAll:"Tout étendre",outlineCollapseAll:"Tout replier",outlineLocateCurrent:"Localiser position actuelle",outlineSearch:"Chercher dans le sommaire...",outlineSearchResult:" résultat(s)",outlineLevelHint:"titres",refreshConversations:"Actualiser les chats",syncingConversations:"Synchronisation...",grokSyncingConversations:"Synchronisation des chats, attendez...",tabOrderSettings:"Disposition UI",tabOrderDesc:"Ordre des onglets du panneau",moveUp:"Monter",moveDown:"Descendre",readingNavigationSettings:"Navigation",restoredPosition:"Position récupérée",cleanupDone:"Données expirées nettoyées",outlineAutoUpdateLabel:"Auto Mise à jour Sommaire",outlineAutoUpdateDesc:"Actualiser pendant que l'IA parle",outlineUpdateIntervalLabel:"Secondes",outlineShowUserQueries:"Voir mes questions",outlineShowUserQueriesTooltip:"Voir mes questions",outlineOnlyUserQueries:"Questions",globalSearchOutlineReplies:"Réponses",outlineIntervalUpdated:"Ajusté à {val}s",outlineSyncScrollLabel:"Synchro du Scroll",outlineSyncScrollDesc:"Surligner le sommaire selon le défilement",outlineFollowModeLabel:"Mode de Suivi",outlineFollowCurrent:"Suivre Position",outlineFollowLatest:"Suivre Dernier",outlineFollowManual:"Manuel",outlineFollowCurrentDesc:"Surligner où vous lisez",outlineFollowLatestDesc:"Descendre avec les nouveaux messages",outlineFollowManualDesc:"Sans auto-descente, vous décidez",outlineShowWordCountLabel:"Afficher le nombre de mots",outlineShowWordCountDesc:"Afficher le nombre de mots pour chaque section dans le sommaire",words:"mots",pageDisplaySettings:"Affichage",otherSettingsTitle:"Autres",showCollapsedAnchorLabel:"Ancre",showCollapsedAnchorDesc:"Bouton d'ancre dans la barre latérale",showCollapsedThemeLabel:"Thème",floatingToolbarLabel:"Barre d'outils flottante",tools:"Boîte à outils",cleanup:"Supprimer les favoris invalides",floatingToolbarMore:"Plus",floatingToolbarClearGhost:"Supprimer les favoris invalides",floatingToolbarClearGhostConfirm:"Supprimer {count} favoris invalides dans cette session ?",floatingToolbarClearGhostEmpty:"Aucun favori invalide à supprimer.",showCollapsedThemeDesc:"Changement de thème dans la barre latérale",collapsedButtonsOrderDesc:"Ordre des boutons dans la barre latérale",preventAutoScrollLabel:"Éviter l'Auto-Scroll",preventAutoScrollDesc:"Ne pas descendre seul pendant que l'IA écrit",defaultPanelStateLabel:"Ouvert par Défaut",defaultPanelStateDesc:"Panneau déployé au chargement",autoHidePanelLabel:"Fermer au Clic Extérieur",autoHidePanelDesc:"Réduit en bulle flottante si vous cliquez en dehors",autoHidePanelDescEdgeSnap:"Se rétracte sur le bord si vous cliquez en dehors",edgeSnapHideLabel:"Aimant sur les Bords",edgeSnapHideDesc:"Se colle au bord et sort au survol de la souris",edgeSnapThresholdLabel:"Sensibilité",edgeSnapThresholdDesc:"Distance pour déclencher l'aimant",defaultPositionLabel:"Côté Initial",defaultPositionDesc:"Où apparaît le panneau au chargement",defaultPositionLeft:"Gauche",defaultPositionRight:"Droite",defaultEdgeDistanceLabel:"Marge",defaultEdgeDistanceDesc:"Distance du bord",panelWidthLabel:"Largeur du panneau",panelWidthDesc:"Largeur du panneau (px)",panelHeightLabel:"Hauteur",panelHeightDesc:"% de l'écran",disableOutline:"Sans Sommaire",togglePrompts:"Voir les Prompts",toggleConversations:"Voir les Chats",tabConversations:"Chats",conversationsEmpty:"Aucun chat",conversationsEmptyHint:"Cliquez sur synchroniser en haut",conversationsSync:"Synchro",conversationsSyncing:"Synchronisation...",conversationsSynced:"Prêt",conversationsAddFolder:"Dossier",conversationsRename:"Renommer",conversationsDelete:"Supprimer",conversationsDeleteConfirm:"Supprimer le dossier ? Les chats iront dans 'Entrée'.",conversationsFolderCreated:"Créé",conversationsFolderRenamed:"Renommé",conversationsFolderDeleted:"Supprimé",conversationsCannotDeleteDefault:"Non supprimable",conversationsIcon:"Icône",conversationsFolderName:"Nom",conversationsFolderNamePlaceholder:"Saisir le nom...",conversationsSyncEmpty:"Aucun chat trouvé",conversationsSyncNoChange:"Aucun changement",conversationsLocate:"Localiser actuel",conversationsLocateSuccess:"Trouvé",conversationsLocateNotFound:"Non trouvé, synchronisation...",conversationsLocateNewChat:"Nouveau chat (non enregistré)",conversationsLocateSyncFailed:"Toujours non trouvé",justNow:"À l'instant",minutesAgo:"min",hoursAgo:"h",daysAgo:"j",conversationsSelectFolder:"Destination",conversationsMoveTo:"Déplacer la conversation",conversationsSetTag:"Définir l'étiquette",conversationsMoved:"Déplacé vers : ",conversationsSyncDeleteTitle:"Synchro de Suppression",conversationsSyncDeleteMsg:"{count} suppressions détectées là-haut. Supprimer ici aussi ?",conversationsDeleted:"Retiré",conversationsSettingsTitle:"Réglages de Chats",conversationsSyncUnpinLabel:"Synchro Désépingler",conversationsSyncUnpinDesc:"Désépingler ici si fait sur le cloud",folderRainbowLabel:"Dossiers Arc-en-ciel",folderRainbowDesc:"Couleurs aléatoires pour les dossiers",conversationsSyncDeleteLabel:"Supprimer sur le Cloud",conversationsSyncDeleteDesc:"Lors de la suppression locale, supprimer aussi la conversation cloud du site correspondant",conversationsSyncRenameLabel:"Renommer sur le Cloud",conversationsSyncRenameDesc:"Changer le nom sur {site} aussi",conversationsCustomIcon:"Icône Perso",batchSelected:"{n} sélectionnés",batchMove:"Déplacer",batchDelete:"Supprimer",batchExit:"Quitter",batchExport:"Exporter",exportToMarkdown:"Markdown",exportToJSON:"JSON",exportLoading:"Chargement...",exportSuccess:"Succès",exportFailed:"Échec",exportNoContent:"Vide",copySuccess:"Copié",copyFailed:"Échec copie",exportNeedOpenFirst:"Ouvrez le chat d'abord",exportUserLabel:"Moi",exportMetaTitle:"Fiche",exportMetaConvTitle:"Titre",exportMetaTime:"Date",exportMetaSource:"Origine",exportNotSupported:"Non supporté ici",exportToTXT:"TXT",exportMetaUrl:"URL",exportUntitled:"Sans Titre",exportToClipboard:"Copier Markdown",conversationsRefresh:"Recharger",conversationsSearchFolder:"Chercher dossier...",conversationsSearchPlaceholder:"Chercher chat...",conversationsSearchResult:" résultat(s)",conversationsNoSearchResult:"Aucun résultat",conversationsSetTags:"Étiquettes",conversationsNewTag:"Nouvelle",conversationsTagName:"Nom",conversationsTagColor:"Couleur",conversationsFilterByTags:"Filtrer par Étq.",conversationsClearTags:"Nettoyer",conversationsTagCreated:"Créée",conversationsTagUpdated:"Modifiée",conversationsTagDeleted:"Supprimée",conversationsTagExists:"Existe déjà",conversationsSelectTag:"Choisir",conversationsExistingTags:"Anciennes",conversationsEditTag:"Modifier",conversationsCancelEdit:"Non",conversationsSelectColor:"Couleur",conversationsCollapseColor:"Fermer",conversationsUpdateTag:"Enregistrer",conversationsNoTags:"Rien",conversationsManageTags:"Gérer",conversationsDeleteTag:"Supprimer",conversationsPin:"Épingler 📌",conversationsUnpin:"Figer",conversationsPinned:"C'est fait",conversationsUnpinned:"Retiré",conversationsFilterPinned:"Épinglés",conversationsClearAll:"Tout nettoyer",conversationsBatchMode:"Mode lot",formulaCopyLabel:"Double-clic copie formule",formulaCopyDesc:"Copie la source LaTeX (pas sur tous les sites)",formulaCopied:"Copiée",formulaDelimiterLabel:"Ajouter $ ou $$",formulaDelimiterDesc:"Selon le type de formule automatiquement",tableCopyLabel:"Copier Tableau",tableCopyDesc:"Bouton pour copier un tableau en Markdown",tableCopied:"Tableau copié",dataManagementTitle:"Données",dataManagementDesc:"Tout ce que vous possédez ici",exportDataBtn:"Tout Exporter",importDataBtn:"Importer Données",exportError:"Échec : ",importConfirm:"Sûr ? Tout l'actuel sera écrasé.",importSuccess:"Succès. Rechargement...",importError:"Échec : ",invalidBackupFile:"Format invalide",backupValidationInvalidFormat:"Format invalide",backupValidationMissingVersion:"Version manquante",backupValidationMissingData:"Données manquantes",backupValidationSettingsType:"Réglages erronés",backupValidationPromptsType:"Prompts erronés",backupValidationFoldersType:"Dossiers erronés",backupValidationConversationsType:"Chats erronés",backupValidationHistoryType:"Historique erroné",backupTime:"Heure",backupType:"Type",openAiPagesWillRefresh:"Les pages AI ouvertes seront actualisées.",dataManagementNote:"Pour copies ou déménagement de PC. Inclut tout (réglages, chats, prompts).",permissionRequired:"Permission Manquante",webdavPermissionDesc:"Manque l'accès au domaine WebDAV.",webdavSectionTitle:"Synchro Nuage (WebDAV)",webdavDesc:"Utiliser Nextcloud, Owncloud, etc.",webdavUrlLabel:"URL",webdavUsernameLabel:"Utilisateur",webdavUsernamePlaceholder:"E-mail",webdavPasswordLabel:"Clé",webdavPasswordPlaceholder:"Clé d'API/App",webdavRemotePathLabel:"Chemin distant",webdavTestBtn:"Test",webdavUploadBtn:"Envoyer",webdavDownloadBtn:"Télécharger",webdavDownloadConfirm:"Télécharger écrasera vos données. Continuer ?",webdavLastSync:"Dernière",webdavConnectionSuccess:"OK",webdavUploadSuccess:"Envoyé",webdavDownloadSuccess:"Téléchargé",webdavConfigIncomplete:"Config incomplète",webdavAuthFailed:"Utilisateur/Clé erronés",webdavConnectionFailed:"Échec réseau",webdavUploadFailed:"Échec envoi",webdavDownloadFailed:"Échec téléchargement",webdavFileNotFound:"Fichier introuvable",webdavInvalidFormat:"Fichier invalide",exportData:"Sortir Données",exportDataDesc:"Sauver JSON sur PC",importData:"Entrer Données",importDataDesc:"Importer depuis fichier",fullBackup:"Copie Totale",fullBackupDesc:"Tout de chez tout (Recommandé)",promptsBackup:"Seuls Prompts",promptsBackupDesc:"Sans dossiers ni étiquettes",settingsBackup:"Seuls Réglages",settingsBackupDesc:"Réglages visuels et goûts",selectFile:"Choisir un fichier",noFileSelected:"Aucun",dataPreview:"Aperçu",pastePlaceholder:"Collez le JSON ici ou cherchez plus haut...",importBtn:"Charger",webdavConfig:"Config WebDAV",webdavConfigDesc:"Serveur pour copies",webdavAddress:"URL WebDAV",username:"Utilisateur",password:"Clé",saveConfig:"Sauvegarder",saveSuccess:"Sauvegardé",backupEncryption:"Chiffrement",backupEncryptionDesc:"Clé pour les copies (ne l'oubliez pas)",encryptionPassword:"Clé de Chiffrement",encryptionPasswordPlaceholder:"Pour envoyer/recevoir avec sécurité",restoreTip:"Conseil",restoreTipContent:"Télécharger du nuage n'écrase pas votre connexion WebDAV actuelle pour éviter d'être bloqué si la copie est vieille.",backupAndRestore:"Copie et Restauration",webdavServerSettings:"Serveur WebDAV",webdavRemoteDirLabel:"Chemin",backupManagement:"Gestionnaire",backupNow:"Copier maintenant",restore:"Restaurer",localBackup:"Local",exportToFile:"Fichier",importBackupFile:"Importer fichier",permAllUrlsTitle:"Accès à Tout",permAllUrlsDesc:"Pour WebDAV et supprimer les filigranes.",permWebdavTitle:"Accès Réseau",permWebdavDesc:"La synchro WebDAV doit voir votre serveur. Sauvegardes utilisables après acceptation.",permTabsTitle:"Onglets",permTabsDesc:"Pour renommer les onglets et le mode privé.",permNotifyTitle:"Notifications",permNotifyDesc:"Prévenir quand l'IA a fini.",permCookiesTitle:"Cookies",permCookiesDesc:"Pour changer SessionKeys de Claude rapidement.",permDNRTitle:"Règles Réseau Opc.",permDNRDesc:"Pour enlever les filigranes sur les photos.",permissionRequestToast:"Veuillez accepter dans la fenêtre",permissionDialogAllow:"Accepter",permissionGranted:"Accepté",permissionDenied:"Refusé",revokeConfirmDefault:"Retirer la permission ? Certaines choses s'arrêteront.",revokeConfirmNotifications:"Sans alertes ? Éteindra [Notifications].",revokeConfirmWebdav:"Retirer l'accès avancé ? Échouera [Filigranes] et [WebDAV].",warning:"Attention",windowClosing:"Fermeture...",allow:"Accepter",defaultPromptTranslateTitle:"Traducteur Pro",defaultPromptTranslateCategory:"Traduction",defaultPromptTranslateContent:"Je suis traducteur avec 20 ans d'expérience. Je traduirai vers le {{target_language}} :\n\nObjectifs :\nFidélité totale à l'original.\nFluidité naturelle (sans paraître robotique).\nMême ton (professionnel, humoristique, sérieux).\n\nTexte : {{text}}",defaultPromptCodeOptTitle:"Optimiser Code",defaultPromptCodeOptCategory:"Programmation",defaultPromptCodeOptContent:"Expert en {{language}}. Révisez et appliquez 'Clean Code' :\n\n**Code** :\n{{code}}\n\n**Objectifs** :\n1. Éliminer les redondances.\n2. Meilleurs noms (style {{language}}).\n3. Ajouter la gestion d'erreurs.\n4. Focus sur [lecture], [robustesse] et [futur].\n5. Utiliser la {{version}} actuelle.\n\nDonnez le code puis un résumé des améliorations.",navShortcuts:"Raccourcis Clavier",shortcutsPageDesc:"Raccourcis pour aller plus vite",shortcutsInteractionGroup:"Réglages indépendants",shortcutsInteractionGroupDesc:"Les réglages de ce groupe sont toujours actifs et ne sont pas affectés par l'option Activer les raccourcis personnalisés",shortcutsGlobalSettings:"Réglages Raccourcis",enableShortcuts:"Activer les raccourcis personnalisés",enableShortcutsDesc:"Activer ou désactiver tous les raccourcis clavier personnalisés",globalShortcutUrl:"URL Raccourci Global",globalShortcutUrlDesc:"Quoi ouvrir avec Alt+G",resetShortcuts:"Réglages d'usine",resetShortcutsConfirm:"Remettre tous les raccourcis à zéro ?",pressAnyKey:"Appuyez sur une touche...",shortcutConflictWith:"Conflit avec",shortcutConflict:"",globalShortcutsTitle:"Globaux",globalShortcutsDesc:"Partout sur le web. Configurez-les dans Chrome.",openBrowserShortcuts:"Réglages Chrome",shortcutNotSet:"Non défini",shortcutRemove:"Supprimer",shortcutCategoryNavigation:"Navigation",shortcutCategoryPanel:"Panneau",shortcutCategoryOutline:"Sommaire",shortcutCategoryConversation:"Chats",shortcutCategoryEdit:"Contrôle des interactions",shortcutScrollTop:"Tout en haut",shortcutScrollBottom:"Tout en bas",shortcutGoToAnchor:"Aller à l'ancre",shortcutTogglePanel:"Développer/Réduire le Panneau",shortcutToggleTheme:"Changer Thème",shortcutOpenSettings:"Ouvrir Réglages",shortcutSwitchTab1:"Onglet 1",shortcutSwitchTab2:"Onglet 2",shortcutSwitchTab3:"Onglet 3",shortcutRefreshOutline:"Actualiser Sommaire",shortcutToggleOutlineExpand:"Ouvrir/Fermer tout (Sommaire)",shortcutExpandLevel1:"Sommaire Lvl 1",shortcutExpandLevel2:"Sommaire Lvl 2",shortcutExpandLevel3:"Sommaire Lvl 3",shortcutExpandLevel4:"Sommaire Lvl 4",shortcutExpandLevel5:"Sommaire Lvl 5",shortcutExpandLevel6:"Sommaire Lvl 6",shortcutToggleUserQueries:"Voir mes questions",shortcutToggleBookmarks:"Afficher les favoris",shortcutOnlyUserQueries:"Afficher uniquement mes questions",shortcutPrevHeading:"Titre précédent",shortcutNextHeading:"Titre suivant",shortcutLocateOutline:"Localiser Sommaire",shortcutSearchOutline:"Chercher Sommaire",shortcutNewConversation:"Nouveau Chat",shortcutRefreshConversations:"Actualiser Chats",shortcutLocateConversation:"Localiser Chat",shortcutPrevConversation:"Chat précédent",shortcutNextConversation:"Chat suivant",shortcutExportConversation:"Exporter Chat",shortcutCopyLatestReply:"Copier dernière réponse",shortcutCopyLastCodeBlock:"Copier dernier bloc code",shortcutToggleScrollLock:"Empêcher le défilement automatique vers le bas",shortcutFocusInput:"Aller au champ texte",shortcutStopGeneration:"Arrêter IA",shortcutTogglePromptQueue:"Basculer la file d'attente d'invites",shortcutShowShortcuts:"Voir Raccourcis",shortcutShowModelSelector:"Voir Modèles",shortcutCategoryHelp:"Aide",shortcutCategorySettings:"Réglages",shortcutOpenClaudeSettings:"Réglages Claude",shortcutSwitchClaudeKey:"Changer Clé Claude",shortcutOpenGeminiSettings:"Réglages Gemini",shortcutOpenThemeSettings:"Réglages Thème",shortcutOpenModelLockSettings:"Réglages Blocage Modèle",scrolledToTop:"En haut",scrolledToBottom:"En bas",outlineRefreshed:"Sommaire à jour",conversationsRefreshed:"Chats à jour",locatingOutline:"Recherche...",locatingConversation:"Cherche chat...",noConversationToLocate:"Aucun chat",outlineDisabled:"Sommaire éteint",conversationsDisabled:"Chats éteints",exportStarted:"Exportation...",replyCopied:"Réponse copiée",noReplyToCopy:"Rien à copier",scrollLockToggled:"Scroll changé",browserNotSupported:"Navigateur incompatible",inputFocused:"Saisie prête",generationStopped:"Arrêté",notGenerating:"IA muette",noConversations:"Aucun chat",untitledConversation:"Sans titre",noCodeBlock:"Aucun code",codeBlockCopied:"Code copié",modelSelectorNotFound:"Pas de sélecteur",geminiSettingsTab:"Gemini Seul",claudeSessionKeyTitle:"Gestion des Sessions",claudeSessionKeyDesc:"Comptes Claude",claudeCurrentUsing:"Utilise :",claudeNoKeySelected:"Rien - ajoutez-en une",claudePleaseAddKey:"Ajoutez une session",claudeAddKey:"Ajouter",claudeImportFromBrowser:"Du navigateur",claudeImportJSON:"Importer JSON",claudeExportJSON:"Exporter JSON",claudeNoKeys:"Aucune session",claudeNoKeysHint:"Utilisez 'Ajouter' pour commencer",claudeKeyValid:"OK",claudeKeyInvalid:"Échec",claudeKeyUntested:"Non testé",claudeKeyUsing:"En cours",claudeKeyUse:"Utiliser",claudeKeyTest:"Tester",claudeKeyDelete:"Supprimer",claudeKeyCopied:"Copiée",claudeKeyCopyFailed:"Échec",claudeKeyDoubleTapCopy:"Double-clic copie tout",claudeCopyKey:"Copier la session",claudeCopied:"Fait",claudeAlreadyUsing:"Déjà utilisée",claudePleaseSelectKey:"Choisissez une session",claudeKeyImported:"Ok, test...",claudeKeyAdded:"Session ajoutée",claudeKeySwitched:"Changée. Rechargement...",claudeKeyDeleted:"Supprimée",claudeKeyTesting:"Test...",claudeGenerating:"IA occupée, attendez",claudeAddKeyNameTitle:"Nom",claudeAddKeyNamePlaceholder:"Ex : Principal, Autre",claudeAddKeyValueTitle:"Clé",claudeAddKeyValuePlaceholder:"sk-ant-sid01-...",claudeImportNameTitle:"Nom",claudeImportNamePlaceholder:"Nom pour import",claudeDeleteConfirmTitle:"Effacer session",claudeDeleteConfirmMsg:"Effacer '{name}' ?",claudeNameRequired:"Nom obligatoire",claudeKeyRequired:"Clé obligatoire",claudeKeyInvalidFormat:"Format invalide",claudeKeyExists:"Déjà existante",claudeNoTokensToExport:"Rien à sortir",claudeExported:"Exporté",claudeInvalidJSON:"JSON invalide",claudeNoNewTokens:"Rien de neuf",claudeImported:"{count} sessions importées",claudeTokenExists:"Déjà là : {name}",claudeNoCookieFound:"Pas de cookie",claudeRequestPermission:"Acceptez les cookies dans la fenêtre",claudeNotOnSiteWarning:"Sur claude.ai seulement",claudeNotOnSiteHint:"Allez sur claude.ai d'abord",claudeShortcutOnlyOnSite:"Sur claude.ai seulement",claudeBatchTest:"Test en masse",claudeBatchTesting:"Vérifie... {current}/{total}",claudeBatchTestDone:"Finit. {valid} OK, {invalid} échecs.",claudeBatchTestFailed:"Stoppé",claudeOnlyOneKeyTip:"Sensation de déjà vu ? C'est votre seule clé.",noClaudeKeys:"Aucune Session Key configurée",restoreSuccess:"Restauration réussie, la page va se rafraîchir...",aistudioSettingsTitle:"Paramètres AI Studio",aistudioSettingsDesc:"Configurer le comportement par défaut au chargement d'AI Studio",aistudioDefaultModel:"Modèle par défaut",aistudioDefaultModelNone:"Non spécifié (utiliser le défaut système)",aistudioDefaultModelCustom:"ID de modèle personnalisé...",aistudioDefaultModelPlaceholder:"models/gemini-xxx",aistudioCollapseNavbar:"Réduire la barre latérale",aistudioCollapseNavbarDesc:"Réduire automatiquement la navigation gauche à l'ouverture de la page",aistudioCollapseRunSettings:"Réduire le panneau des paramètres d'exécution",aistudioCollapseRunSettingsDesc:"Réduire automatiquement le panneau droit des paramètres d'exécution à l'ouverture",aistudioCollapseTools:"Réduire la section outils",aistudioCollapseToolsDesc:"Réduire automatiquement la section outils dans les paramètres d'exécution à l'ouverture",aistudioCollapseAdvanced:"Réduire les paramètres avancés",aistudioCollapseAdvancedDesc:"Réduire automatiquement les options avancées à l'ouverture de la page",aistudioEnableSearch:"Activer l'outil de recherche",aistudioEnableSearchDesc:"Activer automatiquement la recherche Google en temps réel à l'ouverture",aistudioModelsFetched:"Liste des modèles mise à jour",aistudioNoTabError:"Veuillez d'abord ouvrir la page AI Studio",aistudioModelsError:"Échec de la récupération de la liste des modèles",chatgptSettingsTitle:"Paramètres ChatGPT",chatgptSettingsDesc:"Configurer le comportement par défaut de la page ChatGPT",chatgptMarkdownFixLabel:"Correction du Gras Markdown",chatgptMarkdownFixDesc:"Corriger le texte **gras** non rendu dans les réponses ChatGPT",aistudioRemoveWatermark:"Supprimer le filigrane",aistudioRemoveWatermarkDesc:"Supprimer le filigrane des images générées par AI Studio (Nécessite une actualisation)",aistudioMarkdownFixLabel:"Correction du Gras Markdown",aistudioMarkdownFixDesc:"Corriger le texte **gras** non rendu dans les réponses AI Studio",aistudioReloadHint:"Veuillez actualiser la page pour appliquer les changements",exportCustomUserName:"Nom d'utilisateur personnalisé",exportCustomUserNameDesc:"Nom d'affichage de l'utilisateur pour les exportations (Défaut : User)",exportCustomModelName:"Nom de l'IA personnalisé",exportCustomModelNameDesc:"Nom d'affichage de l'IA pour les exportations (Défaut : Nom du site)",exportFilenameTimestamp:"Add Timestamp to Filename",exportFilenameTimestampDesc:"Add a timestamp to the end of the exported filename",exportIncludeThoughtsLabel:"Inclure le raisonnement à l'export",exportIncludeThoughtsDesc:"Inclure et déplier automatiquement le raisonnement lors de l'export (en blocs de citation)",popupCurrentSite:"Site Actuel",popupSupported:"Actif",popupUnsupported:"Non supporté",popupNewChat:"Nouvelle Conversation",popupQuickAccess:"Accès Rapide",popupRecentUsed:"Récents",popupNoRecentPrompts:"Aucun prompt récent",popupCopied:"Copié",popupCopyFailed:"Échec copie",popupFeedback:"Feedback",popupSettings:"Réglages",policyRetryLabel:"Réessai auto après blocage politique",policyRetryDesc:"Renvoyer automatiquement le message s'il est bloqué par la politique de l'entreprise",maxRetriesLabel:"Max Réessais",retryCountSuffix:"fois (même question)",policyRetryActive:"Politique bloquée, nouvel essai ({current}/{max})",policyRetryLimitReached:"Limite de réessais atteinte",preventAutoScrollEnabled:"Verrouillage du défilement activé",preventAutoScrollDisabled:"Verrouillage du défilement désactivé",toolboxMenu:"Boîte à outils",toolboxMenuTitle:"Menu Boîte à outils",toolboxMenuDesc:"Configurer les fonctions affichées dans le menu contextuel de la boîte à outils",globalSearchCategoryAll:"Tout",globalSearchCategoryOutline:"Plan",globalSearchCategorySettings:"Paramètres",globalSearchCategoryConversations:"Conversations",globalSearchCategoryFolders:"Dossiers",globalSearchCategoryTags:"Étiquettes",globalSearchCategoryPrompts:"Prompts",globalSearchCategoryCurrentSession:"Session actuelle",globalSearchSiteGemini:"Gemini",globalSearchSiteGeminiEnterprise:"Gemini Enterprise",globalSearchSiteAIStudio:"AI Studio",globalSearchSiteChatGPT:"ChatGPT",globalSearchSiteClaude:"Claude",globalSearchSiteGrok:"Grok",globalSearchPlaceholderAll:"Rechercher partout",globalSearchPlaceholderOutline:"Rechercher dans le plan",globalSearchPlaceholderSettings:"Rechercher dans les paramètres",globalSearchPlaceholderConversations:"Rechercher les conversations du site actuel",globalSearchPlaceholderFolders:"Rechercher des dossiers",globalSearchPlaceholderTags:"Rechercher des étiquettes",globalSearchPlaceholderPrompts:"Rechercher des prompts",globalSearchPlaceholderCurrentSession:"Rechercher les questions et le plan de la session actuelle",globalSearchEmptyAll:"Aucun résultat correspondant",globalSearchEmptyOutline:"Aucun résultat de plan",globalSearchEmptySettings:"Aucun paramètre correspondant",globalSearchEmptyConversations:"Aucun résultat de conversation",globalSearchEmptyFolders:"Aucun résultat de dossier",globalSearchEmptyTags:"Aucun résultat d'étiquette",globalSearchEmptyPrompts:"Aucun résultat de prompt",globalSearchEmptyCurrentSession:"Aucun résultat dans la session actuelle",globalSearchCategoriesLabel:"Catégories de recherche globale",globalSearchPageDesc:"Configurer le comportement et les détails d'interaction de Search Everywhere",globalSearchTriggerHint:"Déclenchement : double appui sur Shift ou Ctrl/Cmd + K",globalSearchMatchingSettingsTitle:"Correspondance de recherche",globalSearchMatchingSettingsDesc:"Configure la façon dont Search Everywhere met en correspondance les résultats.",globalSearchPromptSettingsTitle:"Comportement des prompts",globalSearchPromptSettingsDesc:"Choisissez ce qui se passe lorsque vous appuyez sur Enter sur un résultat de prompt dans Search Everywhere",globalSearchPromptEnterBehaviorLabel:"Comportement de Enter pour les prompts Search Everywhere",globalSearchPromptEnterBehaviorDesc:"Intelligent : insertion directe sans variables et ouverture du dialogue si nécessaire ; Localiser uniquement : bascule vers Prompts et localise l'élément.",globalSearchPromptEnterBehaviorSmart:"Intelligent (Recommandé)",globalSearchPromptEnterBehaviorLocate:"Localiser uniquement",globalSearchEnableFuzzySearchLabel:"Activer la recherche floue",globalSearchEnableFuzzySearchDesc:"Lorsqu'elle est activée, Search Everywhere utilise une correspondance floue pour le titre, le dossier, les tags, le contenu du prompt et les identifiants de réglage.",globalSearchFuzzySearchToggle:"Floue",globalSearchFuzzySearchToggleAria:"Basculer la recherche floue",globalSearchFooterTips:"Entrée pour ouvrir · ↑↓ pour sélectionner · Tab pour les catégories · Esc pour fermer",globalSearchShortcutNudge:"La prochaine fois, utilisez {shortcut} pour ouvrir plus vite",doubleShiftToSearch:"Double Shift pour ouvrir la recherche globale",doubleShiftToSearchDesc:"Appuyez deux fois rapidement sur Shift pour ouvrir la recherche globale",globalSearchShortcutNudgeDismiss:"Ne plus me rappeler",globalSearchContextCurrentItem:"Élément {current}",globalSearchContextShownProgress:"Affichés {shown}/{total}",globalSearchContextTotalItems:"Total {total}",globalSearchMatchReasonTitle:"Correspondance titre",globalSearchMatchReasonFolder:"Correspondance dossier",globalSearchMatchReasonTag:"Correspondance étiquette",globalSearchMatchReasonType:"Correspondance type",globalSearchMatchReasonCode:"Correspondance code",globalSearchMatchReasonCategory:"Correspondance catégorie",globalSearchMatchReasonContent:"Correspondance contenu",globalSearchMatchReasonId:"Correspondance ID",globalSearchMatchReasonKeyword:"Correspondance mot-clé",globalSearchMatchReasonAlias:"Correspondance alias",globalSearchMatchReasonFuzzy:"Correspondance floue",globalSearchSyntaxOperatorType:"Type",globalSearchSyntaxOperatorFolder:"Dossier",globalSearchSyntaxOperatorTag:"Étiquette",globalSearchSyntaxOperatorIs:"État",globalSearchSyntaxOperatorLevel:"Niveau",globalSearchSyntaxOperatorDate:"Date",globalSearchSyntaxPinned:"Épinglé",globalSearchSyntaxSuggestionTypeDesc:"Filtrer par type de résultat",globalSearchSyntaxSuggestionFolderDesc:"Filtrer par dossier ou catégorie",globalSearchSyntaxSuggestionTagDesc:"Filtrer par nom d'étiquette",globalSearchSyntaxSuggestionIsDesc:"Filtrer par état",globalSearchSyntaxSuggestionPinnedDesc:"Afficher uniquement les résultats épinglés",globalSearchSyntaxSuggestionLevelDesc:"Filtrer par niveau de plan (0 = question utilisateur)",globalSearchSyntaxSuggestionLevelQueryDesc:"Questions utilisateur uniquement",globalSearchSyntaxSuggestionDateDesc:"Filtrer par nombre de jours récents",globalSearchSyntaxDiagnosticUnknownOperator:"Opérateur inconnu",globalSearchSyntaxDiagnosticInvalidValue:"Valeur de filtre invalide",globalSearchSyntaxDiagnosticConflict:"Filtres en conflit ignorés",globalSearchSyntaxChipRemove:"Cliquer pour supprimer le filtre",globalSearchSyntaxChipOverflow:"+{count} de plus",globalSearchSyntaxEmptyGuideTitle:"Essayez des filtres de recherche",globalSearchSyntaxEmptyGuideDesc:"Utilisez la syntaxe de filtre pour réduire rapidement les résultats",globalSearchSyntaxHelpTitle:"Exemples de syntaxe de recherche",globalSearchSyntaxHelpDesc:"Cliquez pour insérer. Les mots-clés ne prennent en charge que l'anglais.",globalSearchSyntaxHelpTriggerAria:"Ouvrir l'aide de syntaxe de recherche",moreLanguages:"Plus de langues",communityAndSupport:"Communauté & Support",modelLockEnabled:"Verrouillage du modèle activé",modelLockDisabled:"Verrouillage du modèle désactivé",modelLockNoKeyword:"Aucun mot-clé défini pour ce modèle",toggleTheme:"Changer de thème",outlineSettingsTitle:"Sommaire",outlineEnabledLabel:"Afficher le sommaire",outlineShowUserQueriesLabel:"Afficher mes questions",anchorUpdated:"Ancre mise à jour",loadingHistory:"Chargement de l'historique...",historyLoaded:"Historique chargé",stopLoading:"Arrêter",loadingHint:"Défiler vers le haut une fois terminé",setAnchor:"Définir l'ancre",setAnchorToast:"Ancre définie",backToAnchor:"Retour à l'ancre",noAnchor:"Aucune ancre",clearAnchor:"Effacer l'ancre",clearAnchorToast:"Ancre effacée",manualAnchorLabel:"Ancre manuelle",manualAnchorDesc:"Définir et gérer l'ancre manuellement",watermarkProcessing:"Traitement de l'image...",watermarkProcessed:"Filigrane supprimé",watermarkFailed:"Échec de la suppression",shortcutToggleModelLock:"Basculer le verrouillage du modèle",queueTitle:"File d’attente des Prompts",queueQuickAsk:"File des Prompts",queueInQueue:"En file ({count})",queueEmpty:"La file est vide. Saisissez et appuyez sur Entrée pour envoyer ou ajouter",queueClearAll:"Tout effacer",queueRemove:"Retirer",queuePlaceholderIdle:"Saisissez le prompt, Entrée pour envoyer direct...",queuePlaceholderBusy:"IA génère, Entrée pour ajouter à la file...",queueStatusIdle:"IA libre",queueStatusBusy:"IA génère",queueSettingLabel:"File d’attente des Prompts",queueDisableHint:"Vous pouvez désactiver cette fonctionnalité dans les paramètres",queueSettingDesc:"Afficher une file d'attente au-dessus du champ de saisie pour ajouter des prompts pendant que l'IA génère",queueEdit:"Éditer",queueEditSave:"Enregistrer",queueEditCancel:"Annuler",queueForceSend:"Forcer l'envoi",zenModeTitle:"Mode Zen",zenModeLabel:"Activer le mode Zen",zenModeDesc:"Masquez les éléments inutiles (comme les clauses de non-responsabilité du modèle en bas) pour une expérience de conversation plus épurée (configuré indépendamment pour chaque site)"},de:{panelTitle:"Ophel",welcomeSlogan:"KI-Vorteile, greifbar nah",disclaimerTitle:"Rechtlicher Hinweis",disclaimerText:"Diese Erweiterung ist ein Allzweck-Werkzeug und unterstützt möglicherweise nicht jede exklusive Funktion bestimmter Websites. Sie basiert auf Drittanbieter-Seitenstrukturen; falls Updates die Funktionalität beeinträchtigen, melden Sie dies bitte über GitHub Issues für eine schnelle Lösung.",disclaimerWarning:"Bitte hinterlassen Sie keine negativen Bewertungen im Store wegen Problemen, die durch Änderungen an Drittanbieter-Seiten verursacht wurden. Vielen Dank für Ihr Verständnis und Ihre Unterstützung!",communityMotto:"Wer schnell gehen will, geht allein. Wer weit gehen will, geht gemeinsam.",welcomeJoin:"Willkommen bei Ophel",agreeButton:"Verstanden & Akzeptieren",tabPrompts:"Prompts",tabSettings:"Einstellungen",navGeneral:"Allgemein",navSiteSettings:"Websites",navGlobalSearch:"Globale Suche",navAppearance:"Erscheinungsbild",navPageContent:"Inhalt",navFeatures:"Funktionen",navPermissions:"Berechtigungen",navBackup:"Daten",navAbout:"Über uns",siteSettingsPageDesc:"Layout und Verarbeitung pro Website konfigurieren",generalPageDesc:"Verhalten der Erweiterung konfigurieren",appearancePageDesc:"Visuelle Stile und Themes anpassen",pageContentPageDesc:"Seitenlayout und Inhaltsanzeige anpassen",featuresPageDesc:"Funktionsmodule konfigurieren",permissionsPageDesc:"Berechtigungen der Erweiterung verwalten.",backupPageDesc:"Datensicherung und Cloud-Synchronisierung verwalten",aboutPageDesc:"KI-Vorteile, greifbar nah.",tsPlasmoDesc:"Framework für Browser-Erweiterungen",tsReactDesc:"UI-Bibliothek",tsTypescriptDesc:"Typsicheres JavaScript",tsZustandDesc:"Statusverwaltung",tsViteDesc:"Frontend-Tooling",optionalPermissions:"Optionale Berechtigungen",optionalPermissionsDesc:"Können nach Bedarf gewährt oder entzogen werden",requiredPermissions:"Erforderliche Berechtigungen",requiredPermissionsDesc:"Notwendig für die Grundfunktion",permissionsSyncHint:"Status wird mit dem Browser synchronisiert. Aktualisieren Sie, falls extern geändert.",refreshStatus:"Status aktualisieren",refreshing:"Aktualisierung...",permissionsRefreshed:"Berechtigungsstatus aktualisiert",granted:"Gewährt",notGranted:"Nicht gewährt",revoke:"Entziehen",grant:"Zulassen",allowRecommended:"Zulassen (Empfohlen)",required:"Erforderlich",permissionWebdavAccess:"Zugriff auf erweiterte Funktionen",permissionWebdavAccessDesc:"Zugriff auf alle Websites. Erforderlich für WebDAV und Wasserzeichen-Entfernung.",permissionStorage:"Speicher",permissionStorageDesc:"Zum Speichern von Einstellungen, Prompts und Chats.",permissionNotifications:"Benachrichtigungen",permissionNotificationsDesc:"Optional. Informiert, wenn die KI fertig geantwortet hat.",permissionCookies:"Cookie-Verwaltung",permissionCookiesDesc:"Claude-Cookies für schnellen SessionKey-Wechsel verwalten.",permissionTabs:"Tabs",permissionTabsDesc:"Optional. Erkennt Tab-Status und verwaltet Sessions.",permissionDNR:"Netzwerkregeln",permissionDNRDesc:"Optional. Modifiziert Header (z. B. für Wasserzeichen-Entfernung).",generalTab:"Allgemein",tabSettingsTab:"Tabs",generalSettings:"Allgemeine Einstellungen",panelTab:"Panel",tabOrderTab:"Reihenfolge",shortcutsTab:"Shortcuts",panelSettings:"Panel-Einstellungen",themePresetsTab:"Themes",customStylesTab:"Eigene Stile",pleaseEnterStyleName:"Geben Sie einen Namen für den Stil ein",enterStyleName:"Stilname",lightMode:"Hell",darkMode:"Dunkel",code:"Code",create:"Erstellen",unnamedStyle:"Unbenannter Stil",layoutTab:"Layout",contentStyleTab:"Verarbeitung",claudeSettingsTab:"Claude-Einstellungen",pageWidthSettings:"Seitenbreite",layoutSettingsTitle:"Breitensteuerung",tabLayout:"Layout",tabModelLock:"Modellsperre",tabGemini:"Gemini",enablePageWidthDesc:"Maximale Chatbreite anpassen",userQueryWidthSettings:"Benutzerbreite",scrollSettings:"Scrollen",contentProcessing:"Inhaltsverarbeitung",contentProcessingDesc:"Umgang mit Antworten konfigurieren",interactionEnhance:"Interaktions-Upgrades",interactionEnhanceDesc:"Tabellen und Formeln verbessern",exportSettings:"Export",outlineSettingsDesc:"Inhaltsverzeichnis-Generierung konfigurieren",outlineUpdateIntervalDesc:"Aktualisierungsintervall (Sekunden)",conversationsSettingsDesc:"Synchronisation und Anzeige",readingHistoryDesc:"Leseposition merken",day:"Tag",days:"Tage",forever:"Immer",localBackupTab:"Lokale Kopie",webdavTab:"WebDAV-Synchro",localBackupDesc:"Daten als lokale JSON-Datei exportieren",webdavServerDesc:"WebDAV-Server für die Cloud",backupManagementDesc:"Testen, Hochladen oder aus Cloud wiederherstellen",allDataCleared:"Daten gelöscht, wird neu geladen...",clearError:"Fehler beim Löschen",webdavBackupList:"WebDAV-Liste",noBackupsFound:"Keine Sicherungen",loading:"Lädt...",version:"Version",aboutDescription:"{appName} ist eine Erweiterung für Gemini, ChatGPT, Claude, AI Studio und Grok. Optimieren Sie Ihren Workflow mit Chat-Verwaltung, smarten Inhaltsverzeichnissen und Prompt-Bibliotheken. Features wie Lesehistorie, Wasserzeichen-Entfernung und Modellsperre sowie umfangreiche Theme-Optionen sorgen für eine reibungslose KI-Erfahrung.",projectLinks:"Projekt-Links",githubDesc:"Quellcode, Fehler melden oder beitragen",giveStar:"Github-Stern geben",projectWebsite:"Offizielle Website",websiteDesc:"Dokumentation und Anleitungen",visitWebsite:"Webseite besuchen",rateAndReview:"Gefällt Ihnen Ophel?",rateDesc:"Wenn Ihnen Ophel gefällt, geben Sie uns bitte eine 5-Sterne-Bewertung! Das hilft uns sehr.",chromeStore:"Chrome Store",firefoxAddons:"Firefox Add-on",greasyFork:"Greasy Fork",reviewBtn:"Bewerten",starBtn:"Star",credits:"Credits",devAndMaintain:"Entwicklung und Wartung",creditsDesc:"Danke an alle Mitwirkenden. Ophel basiert auf exzellenten Open-Source-Projekten.",privacyTitle:"Datenschutz",reportIssue:"Problem melden",changelog:"Änderungen",techStack:"Technologie",privacyStatement:"Datenschutzerklärung",privacyText:"Ihre Daten werden lokal im Browser gespeichert. Die WebDAV-Synchronisierung nutzt nur Ihren eigenen konfigurierten Server.",license:"Lizenz",tabBehaviorTitle:"Verhalten",notificationSettings:"Aktionen nach Abschluss",enablePrerequisiteToast:'Bitte zuerst "{setting}" aktivieren',privacyModeTitle:"Privatmodus",collapsedButtonsOrderTitle:"Schnelltasten",quickButtonsOpacityLabel:"Quick buttons opacity",quickButtonsOpacityDesc:"Adjust overall opacity of the quick buttons",searchPlaceholder:"Prompts suchen...",addPrompt:"Neuer Prompt",allCategory:"Alle",uncategorized:"Unkategorisiert",manageCategory:"⚙ Verwalten",currentPrompt:"Aktuell: ",scrollTop:"Oben",scrollBottom:"Unten",refresh:"Aktualisieren",collapse:"Einklappen",edit:"Bearbeiten",delete:"Löschen",copy:"Kopieren",addBookmark:"Zu Favoriten hinzufügen",removeBookmark:"Aus Favoriten entfernen",bookmarkContentMissing:"Favoriteninhalt fehlt",bookmarkMode:"Favoriten",outlineNoBookmarks:"Keine Favoriten",outlineAddBookmarkHint:"Klicken Sie auf den Stern neben dem Element, um es hinzuzufügen",bookmarkModeDisabled:"Im Favoritenmodus nicht verfügbar",drag:"Ziehen",save:"Speichern",cancel:"Abbrechen",close:"Schließen",add:"Hinzufügen",confirm:"Bestätigen",export:"Markdown exportieren",clear:"Leeren",error:"Fehler",operationFailed:"Vorgang fehlgeschlagen",deleteSuccess:"Erfolgreich gel?scht",deleteError:"L?schen fehlgeschlagen",restoreError:"Wiederherstellen fehlgeschlagen",insertFailed:"Einf?gen fehlgeschlagen",maximize:"Maximieren",browse:"Durchsuchen...",clearAllData:"Alles löschen",clearAllDataDesc:"Vorsicht: Alle Einstellungen und Daten gehen verloren.",clearAllDataConfirm:"Wirklich alles löschen? Diese Aktion kann nicht rückgängig gemacht werden.",clearSuccess:"Daten gelöscht, wird neu geladen...",defaultDir:"Standardordner",dangerZone:"Gefahrenzone",dangerZoneDesc:"Irreversible Aktionen",anchorPoint:"Anker",updateAnchor:"Anker aktualisieren",goToAnchor:"Zum Anker zurück",title:"Titel",category:"Kategorie",categoryPlaceholder:"Z. B. Code, Übersetzung",content:"Prompt-Inhalt",editPrompt:"Prompt bearbeiten",addNewPrompt:"Prompt hinzufügen",fillTitleContent:"Titel und Inhalt ausfüllen",promptUpdated:"Prompt aktualisiert",promptAdded:"Prompt hinzugefügt",deleted:"Gelöscht",promptPin:"Anpinnen",promptUnpin:"Lösen",promptVariableTitle:"Variablen",promptVariablePlaceholder:"Eingeben...",promptImport:"Importieren",promptExport:"Exportieren",promptImportTitle:"Prompts importieren",promptImportMessage:"Bestätigen zum Ersetzen, Abbrechen zum Zusammenführen",promptImportSuccess:"Erfolgreich importiert",promptImportFailed:"Import fehlgeschlagen",promptExportSuccess:"Erfolgreich exportiert",promptRecentUsed:"Kürzlich",promptMarkdownPreview:"Vorschau",promptImportMessage2:"{count} Prompts gefunden. Methode wählen:",promptImportOverwriteDesc:"Ersetzen: Bestehendes wird gelöscht",promptImportMergeDesc:"Zusammenführen: Vorhandenes aktualisieren, Neues hinzufügen",promptMerge:"Zusammenführen",promptOverwrite:"Ersetzen",promptMergeSuccess:"Fertig: {updated} aktualisiert, {added} neu",promptSettingsTitle:"Prompt-Einstellungen",promptSettingsDesc:"Interaktionen im Prompt-Tab konfigurieren",promptSubmitShortcutLabel:"Sende-Tastenkürzel",promptSubmitShortcutDesc:"Gilt sowohl für manuelles Senden als auch für automatisches Senden von Prompts.",promptSubmitShortcutEnter:"Enter",promptSubmitShortcutCtrlEnter:"Ctrl + Enter",promptDoubleClickSendLabel:"Prompt per Doppelklick senden",promptDoubleClickSendDesc:"Wenn aktiviert, sendet ein Doppelklick den Prompt direkt. Prompts mit Variablen werden nach dem Bestätigen gesendet.",promptSent:"Prompt gesendet",promptSendFailed:"Senden fehlgeschlagen, Prompt bleibt im Eingabefeld",copied:"In Zwischenablage kopiert",cleared:"Geleert",refreshed:"Aktualisiert",orderUpdated:"Reihenfolge aktualisiert",inserted:"Prompt eingefügt",scrolling:"Scrollt, bitte warten...",noTextarea:"Textfeld nicht gefunden",confirmDelete:"Diesen Prompt löschen?",settingsTitle:"Einstellungen",panelSettingsTitle:"Panel-Einstellungen",settingOn:"AN",settingOff:"AUS",modelLockTitle:"Modellsperre",modelLockEnabledLabel:"Sperre aktivieren",modelLockEnabledDesc:"Beim Aufruf automatisch wechseln",modelLockLabel:"Zielmodell",modelLockDesc:"Wechselt beim Laden zu diesem Modell",modelKeywordLabel:"Schlüsselwort",modelKeywordPlaceholder:"Z. B. 3 Pro",modelKeywordExample:"Z. B. 3 Pro",modelKeywordDesc:"Zur Identifizierung des Modells",modelLockFailedNoButton:"Wähler nicht gefunden",modelLockFailedMenuEmpty:"Menü konnte nicht geladen werden",modelLockFailedNotFound:'Modell "{model}" nicht gefunden',userQueryWidthDesc:"Maximale Breite der Benutzerblase (pro Website)",categoryManage:"Kategorien",categoryEmpty:"Noch keine Kategorien.",rename:"Umbenennen",newCategoryName:"Neuer Name:",categoryRenamed:"Name geändert",confirmDeleteCategory:"Kategorie löschen? Prompts werden unter 'Unkategorisiert' einsortiert.",categoryDeleted:"Kategorie gelöscht",promptCountSuffix:" Prompt(s)",categoryRenamedTo:"Umbenannt in '{name}'",confirmDeleteCategoryMsg:"'{name}' löschen?",categoryDeletedMsg:"'{name}' gelöscht",languageLabel:"Sprache",languageDesc:"Paneelsprache (sofortige Änderung)",languageAuto:"Auto",languageZhCN:"简体中文",languageZhTW:"繁體中文",languageEn:"English",themeLabel:"Theme",themeAuto:"Auto",themeSettings:"Theme-Einstellungen",currentThemeMode:"Modus",themeSettingsDesc:"Designs für Hell/Dunkel wählen",themeLight:"Hell",themeSystem:"System",customCSS:"CSS-Stile",customCSSDesc:"Eigene CSS-Stile",customCSSTemplate:"Vorlage einfügen",addCustomStyle:"Hinzufügen",noCustomStyles:"Noch keine eigenen Stile.",editStyle:"Bearbeiten",deleteStyle:"Löschen",confirmDeleteStyle:"Diesen Stil löschen?",styleNameLabel:"Name",styleNamePlaceholder:"Name des Stils",styleModeLabel:"Modus",styleModeLight:"☀️ Hell",styleModeDark:"🌙 Dunkel",styleCSSLabel:"CSS-Code",styleCreated:"Stil erstellt",styleUpdated:"Stil aktualisiert",styleDeleted:"Stil gelöscht",styleNameRequired:"Name erforderlich",newStyle:"Neuer Stil",editStyleTitle:"Stil bearbeiten",lightModePreset:"Helles Theme",lightModePresetDesc:"Nur für hellen Modus",darkModePreset:"Dunkles Theme",darkModePresetDesc:"Nur für dunklen Modus",primaryColor:"Primär",secondaryColor:"Sekundär","themePreset_google-gradient":"Google Verlauf",themePreset_purple:"Violett",themePreset_ocean:"Ozeanblau","themePreset_classic-dark":"Klassisch Dunkel","themePreset_midnight-blue":"Mitternachtsblau",themePreset_forest:"Dunkler Wald",themePreset_sakura:"Kirschblüte",themePreset_mint:"Minze",themePreset_nordic:"Nordisch",themePreset_cyberpunk:"Cyberpunk",themePreset_coffee:"Kaffeehaus",themePreset_sunset:"Sonnenuntergang","themePreset_lemon-soda":"Zitrone","themePreset_ancient-scroll":"Pergament","themePreset_mono-pro":"Mono Pro",themePreset_dracula:"Dracula","themePreset_deep-abyss":"Abgrund","themePreset_crimson-moon":"Roter Mond",themePreset_porcelain:"Porzellan",themePreset_shortbread:"Keks","themePreset_unicorn-dream":"Einhorn-Traum","themePreset_retro-terminal":"Retro-Terminal","themePreset_eva-unit-01":"EVA-01",themePreset_aurora:"Aurora",outlineLevel1:"Nur Ebene 1",outlineLevel2:"Bis Ebene 2",outlineLevel3:"Bis Ebene 3",readingHistorySettings:"Lesehistorie",readingHistoryTitle:"Lesehistorie",readingHistoryPersistenceLabel:"Historie aktivieren",readingHistoryPersistenceDesc:"Position merken und beim Laden dorthin springen",readingHistoryAutoRestoreLabel:"Auto-Wiederherstellung",readingHistoryAutoRestoreDesc:"Beim Öffnen zur letzten Position springen",readingHistoryCleanup:"Aufbewahrungsdauer",readingHistoryCleanupDesc:"Wie lange der Fortschritt gespeichert bleibt (-1 für immer)",daysSuffix:" Tage",cleanupInfinite:"Immer",contentExportSettingsTitle:"Inhaltseinstellungen",markdownFixLabel:"Fettschrift-Fix",markdownFixDesc:"Fettschrift-Syntax bei Gemini korrigieren",exportImagesToBase64Label:"Bilder als Base64",exportImagesToBase64Desc:"Bilder für Offline-Ansicht in Text wandeln",userQueryMarkdownLabel:"Benutzer-Markdown",userQueryMarkdownDesc:"Auch eigene Nachrichten formatieren",watermarkRemovalLabel:"Wasserzeichen entfernen",watermarkRemovalDesc:"NanoBanana-Wasserzeichen automatisch löschen",refreshPrompts:"Prompts aktualisieren",themeDark:"Dunkel",pageWidthLabel:"Seitenbreite",pageWidthValueLabel:"Breitenwert",pageWidthDesc:"Chatbreite (pro Website)",enablePageWidth:"Verbreiterung aktivieren",widthValue:"Breite",widthUnit:"Einheit",navContent:"Inhalt",unitPx:"Pixel (px)",unitPercent:"Prozent (%)",enableUserQueryWidth:"Benutzer-Verbreiterung",enableUserQueryWidthDesc:"Benutzerblase breiter machen",userQueryWidthValueLabel:"Breite",tabSettingsTitle:"Tabs",openNewTabLabel:"Neuer Chat in Tab",openNewTabDesc:"Button für neuen Chat in separatem Tab",newTabTooltip:"Neuer Chat in anderem Tab",autoRenameTabLabel:"Tab auto-umbenennen",autoRenameTabDesc:"Chatnamen in Tab-Titel übernehmen",renameIntervalLabel:"Intervall",renameIntervalDesc:"Prüfhäufigkeit",secondsSuffix:"s",showStatusLabel:"Status anzeigen",showStatusDesc:"Ladesymbol im Tab (⏳/✅)",showNotificationLabel:"Desktop-Benachrichtigung",showNotificationDesc:"Informieren, wenn die KI fertig ist",notificationSoundLabel:"Hinweiston",notificationSoundDesc:"Ton bei Fertigstellung abspielen",notificationVolumeLabel:"Lautstärke",notifyWhenFocusedLabel:"Auch bei Fokus melden",notifyWhenFocusedDesc:"Meldung senden, auch wenn die Seite offen ist",autoFocusLabel:"Fenster automatisch fokussieren",autoFocusDesc:"Fenster bei Fertigstellung in den Vordergrund holen",privacyModeLabel:"Privatmodus",privacyModeDesc:"Scheintitel (Doppelklick oben)",privacyTitleLabel:"Scheintitel",privacyTitlePlaceholder:"Z. B. Google, Arbeit",titleFormatLabel:"Titelformat",titleFormatDesc:"Freies Format: {status}, {title}, {model}",notificationTitle:"✅ {site} fertig",notificationBody:"Klicken zum Ansehen",tabOutline:"Verzeichnis",outlineEmpty:"Kein Inhalt",outlineEmptyDescDefault:"Verzeichnispunkte erscheinen automatisch, sobald das Gespräch wächst.",outlineEmptyDescUserQueryOnly:"Derzeit werden nur Nutzerfragen angezeigt. Senden Sie eine Nachricht, um Verzeichnispunkte zu erzeugen.",outlineRefresh:"Neu laden",outlineSettings:"Verzeichnis-Optionen",bookmarkSettings:"Lesezeichen-Einstellungen",bookmarkModeDisableLevel:"Ebenen können im Lesezeichen-Modus nicht angepasst werden",bookmarkSettingsDesc:"Einstellungen für Lesezeichen",inlineBookmarkModeLabel:"Lesezeichen-Symbole",inlineBookmarkModeDesc:"Sichtbarkeit der Symbole neben Überschriften steuern",panelBookmarkModeLabel:"Panel-Lesezeichen-Symbole",panelBookmarkModeDesc:"Sichtbarkeit der Lesezeichen-Symbole im Bedienfeld steuern",inlineBookmarkModeAlways:"Immer anzeigen",inlineBookmarkModeHover:"Nur bei Mouseover",inlineBookmarkModeHidden:"Versteckt",enableOutline:"Verzeichnis aktivieren",outlineMaxLevel:"Ebenen",outlineLevelAll:"Alle (1-6)",refreshOutline:"Verzeichnis aktualisieren",refreshSettings:"Aktualisierung",jumpToAnchor:"Zurückspringen",outlineScrollBottom:"Nach unten",outlineScrollTop:"Nach oben",outlineExpandAll:"Alles ausklappen",outlineCollapseAll:"Alles einklappen",outlineLocateCurrent:"Aktuelle Position finden",outlineSearch:"Im Verzeichnis suchen...",outlineSearchResult:" Ergebnis(se)",outlineLevelHint:"Überschriften",refreshConversations:"Chats aktualisieren",syncingConversations:"Synchronisierung...",grokSyncingConversations:"Chats werden geladen, bitte warten...",tabOrderSettings:"UI-Anordnung",tabOrderDesc:"Reihenfolge der Panels",moveUp:"Hoch",moveDown:"Runter",readingNavigationSettings:"Navigation",restoredPosition:"Position wiederhergestellt",cleanupDone:"Veraltete Daten bereinigt",outlineAutoUpdateLabel:"Auto-Update Verzeichnis",outlineAutoUpdateDesc:"Während die KI schreibt aktualisieren",outlineUpdateIntervalLabel:"Sekunden",outlineShowUserQueries:"Eigene Fragen zeigen",outlineShowUserQueriesTooltip:"Eigene Fragen zeigen",outlineOnlyUserQueries:"Nur Fragen",globalSearchOutlineReplies:"Antworten",outlineIntervalUpdated:"Auf {val}s gesetzt",outlineSyncScrollLabel:"Scroll-Synchro",outlineSyncScrollDesc:"Verzeichnis beim Scrollen hervorheben",outlineFollowModeLabel:"Folgemodus",outlineFollowCurrent:"Position folgen",outlineFollowLatest:"Letztem folgen",outlineFollowManual:"Manuell",outlineFollowCurrentDesc:"Hervorheben, wo Sie lesen",outlineFollowLatestDesc:"Nur bei neuen Nachrichten scrollen",outlineFollowManualDesc:"Kein Auto-Scroll, Sie steuern",outlineShowWordCountLabel:"Wortzahl anzeigen",outlineShowWordCountDesc:"Wortzahl für jeden Abschnitt im Verzeichnis-Tooltip anzeigen",words:"Wörter",pageDisplaySettings:"Anzeige",otherSettingsTitle:"Sonstiges",showCollapsedAnchorLabel:"Anker",showCollapsedAnchorDesc:"Anker-Button in Sidebar",showCollapsedThemeLabel:"Theme",floatingToolbarLabel:"Schwebende Werkzeugleiste",tools:"Werkzeugkasten",cleanup:"Ungültige Lesezeichen löschen",floatingToolbarMore:"Mehr",floatingToolbarClearGhost:"Ungültige Lesezeichen löschen",floatingToolbarClearGhostConfirm:"Sollen {count} ungültige Lesezeichen in dieser Sitzung gelöscht werden?",floatingToolbarClearGhostEmpty:"Keine ungültigen Lesezeichen zum Löschen.",showCollapsedThemeDesc:"Theme-Wechsel in Sidebar",collapsedButtonsOrderDesc:"Button-Reihenfolge in Sidebar",preventAutoScrollLabel:"Auto-Scroll verhindern",preventAutoScrollDesc:"Nicht automatisch nach unten springen",defaultPanelStateLabel:"Standardmäßig offen",defaultPanelStateDesc:"Panel beim Laden ausgeklappt",autoHidePanelLabel:"Bei Klick außen schließen",autoHidePanelDesc:"Minimiert zum schwebenden Ball, wenn man daneben klickt",autoHidePanelDescEdgeSnap:"Zieht sich bei Klick außen an den Rand zurück",edgeSnapHideLabel:"Rand-Magnet",edgeSnapHideDesc:"Versteckt sich am Rand, erscheint bei Mouseover",edgeSnapThresholdLabel:"Sensibilität",edgeSnapThresholdDesc:"Abstand für Magnet-Aktivierung",defaultPositionLabel:"Startseite",defaultPositionDesc:"Wo das Panel beim Laden erscheint",defaultPositionLeft:"Links",defaultPositionRight:"Rechts",defaultEdgeDistanceLabel:"Abstand",defaultEdgeDistanceDesc:"Abstand zum Rand",panelWidthLabel:"Panelbreite",panelWidthDesc:"Breite des Panels (px)",panelHeightLabel:"Höhe",panelHeightDesc:"% des Bildschirms",disableOutline:"Ohne Verzeichnis",togglePrompts:"Prompts zeigen",toggleConversations:"Chats zeigen",tabConversations:"Chats",conversationsEmpty:"Keine Chats",conversationsEmptyHint:"Oben auf Synchronisieren klicken",conversationsSync:"Synchro",conversationsSyncing:"Synchronisierung...",conversationsSynced:"Fertig",conversationsAddFolder:"Ordner",conversationsRename:"Umbenennen",conversationsDelete:"Löschen",conversationsDeleteConfirm:"Ordner löschen? Chats verschieben nach 'Eingang'.",conversationsFolderCreated:"Erstellt",conversationsFolderRenamed:"Umbenannt",conversationsFolderDeleted:"Gelöscht",conversationsCannotDeleteDefault:"Nicht löschbar",conversationsIcon:"Icon",conversationsFolderName:"Name",conversationsFolderNamePlaceholder:"Name eingeben...",conversationsSyncEmpty:"Keine Chats gefunden",conversationsSyncNoChange:"Keine Änderungen",conversationsLocate:"Aktuellen finden",conversationsLocateSuccess:"Gefunden",conversationsLocateNotFound:"Nicht gefunden, synchronisiere...",conversationsLocateNewChat:"Neuer Chat (nicht gespeichert)",conversationsLocateSyncFailed:"Immer noch nicht gefunden",justNow:"Gerade eben",minutesAgo:"Min. her",hoursAgo:"Std. her",daysAgo:"Tage her",conversationsSelectFolder:"Ziel",conversationsMoveTo:"Konversation verschieben",conversationsSetTag:"Tag setzen",conversationsMoved:"Verschoben nach: ",conversationsSyncDeleteTitle:"Lösch-Synchro",conversationsSyncDeleteMsg:"{count} Löschungen oben erkannt. Hier auch löschen?",conversationsDeleted:"Entfernt",conversationsSettingsTitle:"Chat-Einstellungen",conversationsSyncUnpinLabel:"Lösen-Synchro",conversationsSyncUnpinDesc:"Lösen, wenn in der Cloud geschehen",folderRainbowLabel:"Regenbogen-Ordner",folderRainbowDesc:"Zufällige Ordnerfarben",conversationsSyncDeleteLabel:"Cloud-Löschung",conversationsSyncDeleteDesc:"Beim lokalen Löschen auch die Cloud-Konversation der jeweiligen Site löschen",conversationsSyncRenameLabel:"Cloud-Umbenennung",conversationsSyncRenameDesc:"Name in {site} auch ändern",conversationsCustomIcon:"Eignes Icon",batchSelected:"{n} ausgewählt",batchMove:"Verschieben",batchDelete:"Löschen",batchExit:"Beenden",batchExport:"Export",exportToMarkdown:"Markdown",exportToJSON:"JSON",exportLoading:"Lädt...",exportSuccess:"Erfolg",exportFailed:"Fehler",exportNoContent:"Leer",copySuccess:"Kopiert",copyFailed:"Kopie fehlgeschlagen",exportNeedOpenFirst:"Zuerst Chat öffnen",exportUserLabel:"Ich",exportMetaTitle:"Details",exportMetaConvTitle:"Titel",exportMetaTime:"Zeit",exportMetaSource:"Quelle",exportNotSupported:"Hier nicht unterstützt",exportToTXT:"TXT",exportMetaUrl:"URL",exportUntitled:"Unbenannt",exportToClipboard:"Markdown kopieren",conversationsRefresh:"Neu laden",conversationsSearchFolder:"Ordner suchen...",conversationsSearchPlaceholder:"Chat suchen...",conversationsSearchResult:" Ergebnis(se)",conversationsNoSearchResult:"Keine Ergebnisse",conversationsSetTags:"Tags",conversationsNewTag:"Neu",conversationsTagName:"Name",conversationsTagColor:"Farbe",conversationsFilterByTags:"Nach Tags filtern",conversationsClearTags:"Leeren",conversationsTagCreated:"Erstellt",conversationsTagUpdated:"Aktualisiert",conversationsTagDeleted:"Gelöscht",conversationsTagExists:"Existiert bereits",conversationsSelectTag:"Wählen",conversationsExistingTags:"Alte",conversationsEditTag:"Bearbeiten",conversationsCancelEdit:"Nein",conversationsSelectColor:"Farbe",conversationsCollapseColor:"Schließen",conversationsUpdateTag:"Speichern",conversationsNoTags:"Nichts",conversationsManageTags:"Verwalten",conversationsDeleteTag:"Löschen",conversationsPin:"Anpinnen 📌",conversationsUnpin:"Lösen",conversationsPinned:"Angepinnt",conversationsUnpinned:"Gelöst",conversationsFilterPinned:"Nur Pings",conversationsClearAll:"Alles leeren",conversationsBatchMode:"Stapelmodus",formulaCopyLabel:"Doppelklick kopiert Formel",formulaCopyDesc:"LaTeX-Quelle kopieren (nicht überall unterstützt)",formulaCopied:"Formel kopiert",formulaDelimiterLabel:"$ oder $$ hinzufügen",formulaDelimiterDesc:"Je nach Formeltyp automatisch",tableCopyLabel:"Tabelle kopieren",tableCopyDesc:"Button zum Kopieren als Markdown",tableCopied:"Tabelle kopiert",dataManagementTitle:"Daten",dataManagementDesc:"Alles, was Sie hier haben",exportDataBtn:"Alles exportieren",importDataBtn:"Daten importieren",exportError:"Fehler: ",importConfirm:"Sicher? Bestehendes wird überschrieben.",importSuccess:"Erfolg. Wird neu geladen...",importError:"Fehler: ",invalidBackupFile:"Ungültiges Format",backupValidationInvalidFormat:"Ungültiges Format",backupValidationMissingVersion:"Version fehlt",backupValidationMissingData:"Daten fehlen",backupValidationSettingsType:"Falsche Einstellungen",backupValidationPromptsType:"Falsche Prompts",backupValidationFoldersType:"Falsche Ordner",backupValidationConversationsType:"Falsche Chats",backupValidationHistoryType:"Falsche Historie",backupTime:"Zeit",backupType:"Typ",openAiPagesWillRefresh:"Geöffnete AI-Seiten werden aktualisiert.",dataManagementNote:"Für Kopien oder PC-Umzug. Enthält alles (Einstellungen, Chats, Prompts).",permissionRequired:"Berechtigung fehlt",webdavPermissionDesc:"Kein Zugriff auf WebDAV-Domain.",webdavSectionTitle:"Cloud-Synchro (WebDAV)",webdavDesc:"Nextcloud, Owncloud etc. nutzen",webdavUrlLabel:"URL",webdavUsernameLabel:"Benutzer",webdavUsernamePlaceholder:"E-Mail",webdavPasswordLabel:"Passwort",webdavPasswordPlaceholder:"API/App-Passwort",webdavRemotePathLabel:"Zielpfad",webdavTestBtn:"Test",webdavUploadBtn:"Hochladen",webdavDownloadBtn:"Herunterladen",webdavDownloadConfirm:"Downloads überschreiben lokale Daten. Fortfahren?",webdavLastSync:"Letzte",webdavConnectionSuccess:"OK",webdavUploadSuccess:"Hochgeladen",webdavDownloadSuccess:"Heruntergeladen",webdavConfigIncomplete:"Konfiguration fehlt",webdavAuthFailed:"Benutzer/Passwort falsch",webdavConnectionFailed:"Netzwerkfehler",webdavUploadFailed:"Upload fehlgeschlagen",webdavDownloadFailed:"Download fehlgeschlagen",webdavFileNotFound:"Datei nicht gefunden",webdavInvalidFormat:"Datei ungültig",exportData:"Daten sichern",exportDataDesc:"Als JSON auf PC speichern",importData:"Daten einspielen",importDataDesc:"Aus Datei wiederherstellen",fullBackup:"Vollständige Kopie",fullBackupDesc:"Absolut alles (Empfohlen)",promptsBackup:"Nur Prompts",promptsBackupDesc:"Ohne Ordner oder Tags",settingsBackup:"Nur Einstellungen",settingsBackupDesc:"Optik und Vorlieben",selectFile:"Datei wählen",noFileSelected:"Keine",dataPreview:"Vorschau",pastePlaceholder:"JSON hier einfügen oder oben auswählen...",importBtn:"Laden",webdavConfig:"WebDAV-Konfig",webdavConfigDesc:"Server für Sicherungen",webdavAddress:"WebDAV-URL",username:"Benutzer",password:"Passwort",saveConfig:"Speichern",saveSuccess:"Gespeichert",backupEncryption:"Verschlüsselung",backupEncryptionDesc:"Sicherheits-Passwort (gut merken)",encryptionPassword:"Verschlüsselungs-Passwort",encryptionPasswordPlaceholder:"Für sicheres Hoch- & Runterladen",restoreTip:"Tipp",restoreTipContent:"Downloads überschreiben nicht Ihre aktuelle WebDAV-Verbindung, damit Sie sich nicht aussperren, falls die Kopie alt ist.",backupAndRestore:"Sicherung & Wiederherstellung",webdavServerSettings:"WebDAV-Server",webdavRemoteDirLabel:"Pfad",backupManagement:"Manager",backupNow:"Jetzt sichern",restore:"Wiederherstellen",localBackup:"Lokal",exportToFile:"Fichero",importBackupFile:"Importar fichero",permAllUrlsTitle:"Vollzugriff",permAllUrlsDesc:"Für WebDAV und Wasserzeichen-Löschung.",permWebdavTitle:"Netzwerkzugriff",permWebdavDesc:"WebDAV braucht Serverzugriff. Danach sind Backups nutzbar.",permTabsTitle:"Tabs",permTabsDesc:"Zum Umbenennen und für den Privatmodus.",permNotifyTitle:"Benachrichtigungen",permNotifyDesc:"Meldung, wenn die KI fertig ist.",permCookiesTitle:"Cookies",permCookiesDesc:"Für schnellen Claude SessionKey-Wechsel.",permDNRTitle:"Optionale Regeln",permDNRDesc:"Für Wasserzeichen-Entfernung in Fotos.",permissionRequestToast:"Bitte im Fenster bestätigen",permissionDialogAllow:"Zulassen",permissionGranted:"Zugelassen",permissionDenied:"Abgelehnt",revokeConfirmDefault:"Zugriff entziehen? Manche Funktionen stoppen.",revokeConfirmNotifications:"Ohne Meldungen? Schaltet [Benachrichtigungen] aus.",revokeConfirmWebdav:"Vollzugriff entziehen? [Wasserzeichen] und [WebDAV] fallen aus.",warning:"Warnung",windowClosing:"Schließt...",allow:"Zulassen",defaultPromptTranslateTitle:"Übersetzer Pro",defaultPromptTranslateCategory:"Übersetzung",defaultPromptTranslateContent:"Ich bin Übersetzer mit 20 Jahren Erfahrung. Ich übersetze nach {{target_language}}:\n\nZiele:\nVollständige Treue zum Original.\nNatürlicher Fluss (kein Roboter-Sound).\nGleicher Tonfall (prof., humorvoll, ernst).\n\nText: {{text}}",defaultPromptCodeOptTitle:"Code optimieren",defaultPromptCodeOptCategory:"Programmierung",defaultPromptCodeOptContent:"Experte für {{language}}. Überarbeite und wende 'Clean Code' an:\n\n**Code**:\n{{code}}\n\n**Ziele**:\n1. Redundanzen entfernen.\n2. Bessere Namen ({{language}}-Konvention).\n3. Fehlerbehandlung ergänzen.\n4. Fokus auf [Lesbarkeit], [Robustheit] und [Zukunft].\n5. Aktuelle {{version}} nutzen.\n\nGib den Code und eine Zusammenfassung der Verbesserungen aus.",navShortcuts:"Tastaturkürzel",shortcutsPageDesc:"Schneller arbeiten mit Shortcuts",shortcutsInteractionGroup:"Unabhängige Einstellungen",shortcutsInteractionGroupDesc:"Die Einstellungen in dieser Gruppe sind immer aktiv und werden nicht vom Schalter „Benutzerdefinierte Shortcuts aktivieren“ beeinflusst",shortcutsGlobalSettings:"Shortcut-Einstellungen",enableShortcuts:"Benutzerdefinierte Shortcuts aktivieren",enableShortcutsDesc:"Alle benutzerdefinierten Tastaturkürzel aktivieren oder deaktivieren",globalShortcutUrl:"Globaler URL-Shortcut",globalShortcutUrlDesc:"Was bei Alt+G geöffnet wird",resetShortcuts:"Werkszustand",resetShortcutsConfirm:"Alle Shortcuts zurücksetzen?",pressAnyKey:"Taste drücken...",shortcutConflictWith:"Konflikt mit",shortcutConflict:"",globalShortcutsTitle:"Global",globalShortcutsDesc:"Funktionieren überall. Konfiguration in Chrome.",openBrowserShortcuts:"Chrome-Einstellungen",shortcutNotSet:"Nicht gesetzt",shortcutRemove:"Entfernen",shortcutCategoryNavigation:"Navigation",shortcutCategoryPanel:"Panel",shortcutCategoryOutline:"Verzeichnis",shortcutCategoryConversation:"Chats",shortcutCategoryEdit:"Interaktionssteuerung",shortcutScrollTop:"Ganz nach oben",shortcutScrollBottom:"Ganz nach unten",shortcutGoToAnchor:"Zum Anker springen",shortcutTogglePanel:"Panel erweitern/minimieren",shortcutToggleTheme:"Theme wechseln",shortcutOpenSettings:"Einstellungen öffnen",shortcutSwitchTab1:"Tab 1",shortcutSwitchTab2:"Tab 2",shortcutSwitchTab3:"Tab 3",shortcutRefreshOutline:"Verzeichnis aktualisieren",shortcutToggleOutlineExpand:"Alle einklappen/ausklappen",shortcutExpandLevel1:"Ebene 1",shortcutExpandLevel2:"Ebene 2",shortcutExpandLevel3:"Ebene 3",shortcutExpandLevel4:"Ebene 4",shortcutExpandLevel5:"Ebene 5",shortcutExpandLevel6:"Ebene 6",shortcutToggleUserQueries:"Eigene Fragen",shortcutToggleBookmarks:"Favoriten anzeigen",shortcutOnlyUserQueries:"Nur meine Fragen anzeigen",shortcutPrevHeading:"Vorherige Überschrift",shortcutNextHeading:"Nächste Überschrift",shortcutLocateOutline:"Im Verzeichnis finden",shortcutSearchOutline:"Im Verzeichnis suchen",shortcutNewConversation:"Neuer Chat",shortcutRefreshConversations:"Chats aktualisieren",shortcutLocateConversation:"Chat finden",shortcutPrevConversation:"Vorheriger Chat",shortcutNextConversation:"Nächster Chat",shortcutExportConversation:"Chat exportieren",shortcutCopyLatestReply:"Letzte Antwort kopieren",shortcutCopyLastCodeBlock:"Letzten Codeblock kopieren",shortcutToggleScrollLock:"Automatisches Scrollen nach unten verhindern",shortcutFocusInput:"Zum Textfeld springen",shortcutStopGeneration:"KI stoppen",shortcutTogglePromptQueue:"Warteschlange umschalten",shortcutShowShortcuts:"Shortcuts zeigen",shortcutShowModelSelector:"Modelle zeigen",shortcutCategoryHelp:"Hilfe",shortcutCategorySettings:"Einstellungen",shortcutOpenClaudeSettings:"Claude-Einstellungen",shortcutSwitchClaudeKey:"Claude-Key wechseln",shortcutOpenGeminiSettings:"Gemini-Einstellungen",shortcutOpenThemeSettings:"Theme-Einstellungen",shortcutOpenModelLockSettings:"Modellsperre-Einstellungen",scrolledToTop:"Ganz oben",scrolledToBottom:"Ganz unten",outlineRefreshed:"Verzeichnis aktuell",conversationsRefreshed:"Chats aktuell",locatingOutline:"Suche...",locatingConversation:"Suche Chat...",noConversationToLocate:"Kein Chat da",outlineDisabled:"Verzeichnis aus",conversationsDisabled:"Chats aus",exportStarted:"Exportiert...",replyCopied:"Antwort kopiert",noReplyToCopy:"Nichts zum Kopieren",scrollLockToggled:"Scroll geändert",browserNotSupported:"Browser inkompatibel",inputFocused:"Bereit zum Tippen",generationStopped:"Gestoppt",notGenerating:"KI schweigt",noConversations:"Keine Chats",untitledConversation:"Unbenannt",noCodeBlock:"Kein Code",codeBlockCopied:"Code kopiert",modelSelectorNotFound:"Kein Wähler",geminiSettingsTab:"Nur Gemini",claudeSessionKeyTitle:"Session-Verwaltung",claudeSessionKeyDesc:"Claude-Konten",claudeCurrentUsing:"Nutzt:",claudeNoKeySelected:"Nichts - hinzufügen",claudePleaseAddKey:"Account hinzufügen",claudeAddKey:"Hinzufügen",claudeImportFromBrowser:"Vom Browser",claudeImportJSON:"JSON einlesen",claudeExportJSON:"JSON ausgeben",claudeNoKeys:"Keine Sessions",claudeNoKeysHint:"Start durch 'Hinzufügen'",claudeKeyValid:"OK",claudeKeyInvalid:"Fehler",claudeKeyUntested:"Untestet",claudeKeyUsing:"Aktiv",claudeKeyUse:"Nutzen",claudeKeyTest:"Testen",claudeKeyDelete:"Löschen",claudeKeyCopied:"Kopiert",claudeKeyCopyFailed:"Fehler",claudeKeyDoubleTapCopy:"Doppelklick kopiert alles",claudeCopyKey:"Session kopieren",claudeCopied:"Fertig",claudeAlreadyUsing:"Schon aktiv",claudePleaseSelectKey:"Session wählen",claudeKeyImported:"Ok, Test läuft...",claudeKeyAdded:"Session zugefügt",claudeKeySwitched:"Gewechselt. Neu laden...",claudeKeyDeleted:"Gelöscht",claudeKeyTesting:"Testet...",claudeGenerating:"KI beschäftigt, warten",claudeAddKeyNameTitle:"Name",claudeAddKeyNamePlaceholder:"Z. B. Haupt, Backup",claudeAddKeyValueTitle:"Key",claudeAddKeyValuePlaceholder:"sk-ant-sid01-...",claudeImportNameTitle:"Name",claudeImportNamePlaceholder:"Import-Name",claudeDeleteConfirmTitle:"Session löschen",claudeDeleteConfirmMsg:"'{name}' löschen?",claudeNameRequired:"Name fehlt",claudeKeyRequired:"Key fehlt",claudeKeyInvalidFormat:"Format falsch",claudeKeyExists:"Gibt's schon",claudeNoTokensToExport:"Nichts da",claudeExported:"Exportiert",claudeInvalidJSON:"JSON kaputt",claudeNoNewTokens:"Nichts Neues",claudeImported:"{count} Sessions importiert",claudeTokenExists:"Bereits da: {name}",claudeNoCookieFound:"Kein Cookie",claudeRequestPermission:"Cookies im Fenster erlauben",claudeNotOnSiteWarning:"Nur auf claude.ai",claudeNotOnSiteHint:"Zuerst auf claude.ai gehen",claudeShortcutOnlyOnSite:"Nur auf claude.ai",claudeBatchTest:"Massentest",claudeBatchTesting:"Prüfe... {current}/{total}",claudeBatchTestDone:"Fertig. {valid} OK, {invalid} Fehler.",claudeBatchTestFailed:"Abgebrochen",claudeOnlyOneKeyTip:"Ihre einzige Option hier.",noClaudeKeys:"Keine Session Keys konfiguriert",restoreSuccess:"Wiederherstellung erfolgreich, Seite wird aktualisiert...",aistudioSettingsTitle:"AI Studio Einstellungen",aistudioSettingsDesc:"Standardverhalten beim Laden der AI Studio-Seite konfigurieren",aistudioDefaultModel:"Standardmodell",aistudioDefaultModelNone:"Nicht angegeben (Systemstandard)",aistudioDefaultModelCustom:"Benutzerdefinierte Modell-ID...",aistudioDefaultModelPlaceholder:"models/gemini-xxx",aistudioCollapseNavbar:"Seitenleiste einklappen",aistudioCollapseNavbarDesc:"Linke Navigation beim Öffnen der Seite automatisch einklappen",aistudioCollapseRunSettings:"Ausführungseinstellungen einklappen",aistudioCollapseRunSettingsDesc:"Rechtes Ausführungseinstellungsfeld beim Öffnen automatisch einklappen",aistudioCollapseTools:"Werkzeugbereich einklappen",aistudioCollapseToolsDesc:"Werkzeugbereich in den Ausführungseinstellungen beim Öffnen automatisch einklappen",aistudioCollapseAdvanced:"Erweiterte Optionen einklappen",aistudioCollapseAdvancedDesc:"Erweiterte Optionen beim Öffnen der Seite automatisch einklappen",aistudioEnableSearch:"Suchwerkzeug aktivieren",aistudioEnableSearchDesc:"Google-Echtzeitsuche beim Öffnen der Seite automatisch aktivieren",aistudioModelsFetched:"Modellliste aktualisiert",aistudioNoTabError:"Bitte öffnen Sie zuerst die AI Studio-Seite",aistudioModelsError:"Fehler beim Abrufen der Modellliste",chatgptSettingsTitle:"ChatGPT Einstellungen",chatgptSettingsDesc:"Standardverhalten für die ChatGPT-Seite konfigurieren",chatgptMarkdownFixLabel:"Markdown Fettschrift-Fix",chatgptMarkdownFixDesc:"Nicht gerenderten **fetten** Text in ChatGPT-Antworten reparieren",aistudioRemoveWatermark:"Wasserzeichen entfernen",aistudioRemoveWatermarkDesc:"Entfernen Sie das Wasserzeichen von in AI Studio generierten Bildern (Seite neu laden)",aistudioMarkdownFixLabel:"Markdown Fettschrift-Fix",aistudioMarkdownFixDesc:"Nicht gerenderten **fetten** Text in AI Studio-Antworten reparieren",aistudioReloadHint:"Bitte aktualisieren Sie die Seite, um Änderungen zu übernehmen",exportCustomUserName:"Benutzerdefinierter Name",exportCustomUserNameDesc:"Anzeigename des Benutzers für den Export (Standard: User)",exportCustomModelName:"Benutzerdefinierter AI-Name",exportCustomModelNameDesc:"Anzeigename der AI für den Export (Standard: Website-Name)",exportFilenameTimestamp:"Add Timestamp to Filename",exportFilenameTimestampDesc:"Add a timestamp to the end of the exported filename",exportIncludeThoughtsLabel:"Gedankengang beim Export einbeziehen",exportIncludeThoughtsDesc:"Gedankengang beim Export einbeziehen und automatisch erweitern (als Zitatblöcke)",popupCurrentSite:"Aktuelle Seite",popupSupported:"Aktiv",popupUnsupported:"Nicht unterstützt",popupNewChat:"Neuer Chat",popupQuickAccess:"Schnellzugriff",popupRecentUsed:"Kürzlich",popupNoRecentPrompts:"Keine kürzlichen Prompts",popupCopied:"Kopiert",popupCopyFailed:"Kopie fehlgeschlagen",popupFeedback:"Feedback",popupSettings:"Einstellungen",policyRetryLabel:"Autom. Wiederholung bei Richtlinienblockierung",policyRetryDesc:"Nachricht automatisch erneut senden, wenn sie durch Unternehmensrichtlinien blockiert wurde",maxRetriesLabel:"Max. Wiederholungen",retryCountSuffix:"Mal (gleiche Frage)",policyRetryActive:"Richtlinienblockierung, erneuter versuch ({current}/{max})",policyRetryLimitReached:"Wiederholungslimit erreicht",preventAutoScrollEnabled:"Scroll-Sperre aktiviert",preventAutoScrollDisabled:"Scroll-Sperre deaktiviert",toolboxMenu:"Werkzeugkasten",toolboxMenuTitle:"Werkzeugkasten-Menü",toolboxMenuDesc:"Konfigurieren Sie, welche Funktionen im Werkzeugkasten-Popup erscheinen",globalSearchCategoryAll:"Alle",globalSearchCategoryOutline:"Gliederung",globalSearchCategorySettings:"Einstellungen",globalSearchCategoryConversations:"Konversationen",globalSearchCategoryFolders:"Ordner",globalSearchCategoryTags:"Tags",globalSearchCategoryPrompts:"Prompts",globalSearchCategoryCurrentSession:"Aktuelle Sitzung",globalSearchSiteGemini:"Gemini",globalSearchSiteGeminiEnterprise:"Gemini Enterprise",globalSearchSiteAIStudio:"AI Studio",globalSearchSiteChatGPT:"ChatGPT",globalSearchSiteClaude:"Claude",globalSearchSiteGrok:"Grok",globalSearchPlaceholderAll:"Alles durchsuchen",globalSearchPlaceholderOutline:"Gliederung durchsuchen",globalSearchPlaceholderSettings:"Einstellungen durchsuchen",globalSearchPlaceholderConversations:"Konversationen der aktuellen Seite durchsuchen",globalSearchPlaceholderFolders:"Ordner durchsuchen",globalSearchPlaceholderTags:"Tags durchsuchen",globalSearchPlaceholderPrompts:"Prompts durchsuchen",globalSearchPlaceholderCurrentSession:"Fragen und Gliederung der aktuellen Sitzung durchsuchen",globalSearchEmptyAll:"Keine passenden Ergebnisse",globalSearchEmptyOutline:"Keine Gliederungsergebnisse",globalSearchEmptySettings:"Keine passenden Einstellungen",globalSearchEmptyConversations:"Keine Konversationsergebnisse",globalSearchEmptyFolders:"Keine Ordnerergebnisse",globalSearchEmptyTags:"Keine Tag-Ergebnisse",globalSearchEmptyPrompts:"Keine Prompt-Ergebnisse",globalSearchEmptyCurrentSession:"Keine Ergebnisse in der aktuellen Sitzung",globalSearchCategoriesLabel:"Kategorien der globalen Suche",globalSearchPageDesc:"Search Everywhere: Suchverhalten und Interaktionsdetails konfigurieren",globalSearchTriggerHint:"Auslösung: Shift zweimal drücken oder Strg/Cmd + K",globalSearchMatchingSettingsTitle:"Suchabgleich",globalSearchMatchingSettingsDesc:"Legt fest, wie Search Everywhere Suchergebnisse abgleicht.",globalSearchPromptSettingsTitle:"Prompt-Verhalten",globalSearchPromptSettingsDesc:"Festlegen, was beim Drücken von Enter auf einem Prompt-Ergebnis in Search Everywhere passiert",globalSearchPromptEnterBehaviorLabel:"Enter-Verhalten für Prompts in Search Everywhere",globalSearchPromptEnterBehaviorDesc:"Smart: direkt einfügen ohne Variablen, Variablendialog öffnen wenn nötig; Nur lokalisieren: zu Prompts wechseln und Eintrag markieren.",globalSearchPromptEnterBehaviorSmart:"Smart (Empfohlen)",globalSearchPromptEnterBehaviorLocate:"Nur lokalisieren",globalSearchEnableFuzzySearchLabel:"Fuzzy-Suche aktivieren",globalSearchEnableFuzzySearchDesc:"Wenn aktiviert, nutzt Search Everywhere unscharfe Treffer für Titel, Ordner, Tags, Prompt-Inhalte und Einstellungskennungen.",globalSearchFuzzySearchToggle:"Fuzzy",globalSearchFuzzySearchToggleAria:"Fuzzy-Suche umschalten",globalSearchFooterTips:"Enter zum Springen · ↑↓ zum Auswählen · Tab für Kategorien · Esc zum Schließen",globalSearchShortcutNudge:"Nächstes Mal kannst du mit {shortcut} schneller öffnen",doubleShiftToSearch:"Double Shift zum Öffnen der globalen Suche",doubleShiftToSearchDesc:"Drücke Shift zweimal schnell, um die globale Suche zu öffnen",globalSearchShortcutNudgeDismiss:"Nicht mehr erinnern",globalSearchContextCurrentItem:"Eintrag {current}",globalSearchContextShownProgress:"Angezeigt {shown}/{total}",globalSearchContextTotalItems:"Insgesamt {total}",globalSearchMatchReasonTitle:"Titeltreffer",globalSearchMatchReasonFolder:"Ordnertreffer",globalSearchMatchReasonTag:"Tag-Treffer",globalSearchMatchReasonType:"Typ-Treffer",globalSearchMatchReasonCode:"Code-Treffer",globalSearchMatchReasonCategory:"Kategorie-Treffer",globalSearchMatchReasonContent:"Inhalts-Treffer",globalSearchMatchReasonId:"ID-Treffer",globalSearchMatchReasonKeyword:"Schlüsselwort-Treffer",globalSearchMatchReasonAlias:"Alias-Treffer",globalSearchMatchReasonFuzzy:"Unscharfer Treffer",globalSearchSyntaxOperatorType:"Typ",globalSearchSyntaxOperatorFolder:"Ordner",globalSearchSyntaxOperatorTag:"Tag",globalSearchSyntaxOperatorIs:"Status",globalSearchSyntaxOperatorLevel:"Ebene",globalSearchSyntaxOperatorDate:"Datum",globalSearchSyntaxPinned:"Angeheftet",globalSearchSyntaxSuggestionTypeDesc:"Nach Ergebnistyp filtern",globalSearchSyntaxSuggestionFolderDesc:"Nach Ordner oder Kategorie filtern",globalSearchSyntaxSuggestionTagDesc:"Nach Tag-Namen filtern",globalSearchSyntaxSuggestionIsDesc:"Nach Status filtern",globalSearchSyntaxSuggestionPinnedDesc:"Nur angeheftete Ergebnisse",globalSearchSyntaxSuggestionLevelDesc:"Nach Gliederungsebene filtern (0 = Nutzerfrage)",globalSearchSyntaxSuggestionLevelQueryDesc:"Nur Nutzerfragen",globalSearchSyntaxSuggestionDateDesc:"Nach letzten Tagen filtern",globalSearchSyntaxDiagnosticUnknownOperator:"Unbekannter Operator",globalSearchSyntaxDiagnosticInvalidValue:"Ungültiger Filterwert",globalSearchSyntaxDiagnosticConflict:"Konfliktfilter wurden ignoriert",globalSearchSyntaxChipRemove:"Klicken, um Filter zu entfernen",globalSearchSyntaxChipOverflow:"+{count} weitere",globalSearchSyntaxEmptyGuideTitle:"Probieren Sie Suchfilter aus",globalSearchSyntaxEmptyGuideDesc:"Verwenden Sie die Filter-Syntax, um Ergebnisse schnell einzugrenzen",globalSearchSyntaxHelpTitle:"Beispiele für Suchsyntax",globalSearchSyntaxHelpDesc:"Klicken zum Einfügen. Schlüsselwörter werden nur auf Englisch unterstützt.",globalSearchSyntaxHelpTriggerAria:"Hilfe zur Suchsyntax öffnen",moreLanguages:"Mehr Sprachen",communityAndSupport:"Community & Support",modelLockEnabled:"Modellsperre aktiviert",modelLockDisabled:"Modellsperre deaktiviert",modelLockNoKeyword:"Kein Schlüsselwort für dieses Modell definiert",toggleTheme:"Theme umschalten",outlineSettingsTitle:"Inhaltsverzeichnis",outlineEnabledLabel:"Verzeichnis anzeigen",outlineShowUserQueriesLabel:"Eigene Fragen im Verzeichnis",anchorUpdated:"Anker aktualisiert",loadingHistory:"Lade Historie...",historyLoaded:"Historie geladen",stopLoading:"Stoppen",loadingHint:"Nach Fertigstellung zum Anfang scrollen",setAnchor:"Anker setzen",setAnchorToast:"Anker gesetzt",backToAnchor:"Zum Anker",noAnchor:"Kein Anker",clearAnchor:"Anker löschen",clearAnchorToast:"Anker gelöscht",manualAnchorLabel:"Manueller Anker",manualAnchorDesc:"Anker manuell setzen und verwalten",watermarkProcessing:"Bild wird verarbeitet...",watermarkProcessed:"Wasserzeichen entfernt",watermarkFailed:"Fehler beim Entfernen",shortcutToggleModelLock:"Modellsperre umschalten",queueTitle:"Prompt-Warteschlange",queueQuickAsk:"Prompt-Warteschlange",queueInQueue:"In Warteschlange ({count})",queueEmpty:"Die Warteschlange ist leer. Tippen und Enter drücken zum Senden oder Hinzufügen",queueClearAll:"Alles löschen",queueRemove:"Entfernen",queuePlaceholderIdle:"Prompt eingeben und Enter drücken zum Senden...",queuePlaceholderBusy:"KI generiert, Enter drücken zum Hinzufügen...",queueStatusIdle:"KI bereit",queueStatusBusy:"KI generiert",queueSettingLabel:"Prompt-Warteschlange",queueDisableHint:"Sie können diese Funktion in den Einstellungen deaktivieren",queueSettingDesc:"Zeigt eine Warteschlange über dem Textfeld, um Prompts hinzuzufügen, während die KI schreibt",queueEdit:"Bearbeiten",queueEditSave:"Speichern",queueEditCancel:"Abbrechen",queueForceSend:"Senden erzwingen",zenModeTitle:"Zen-Modus",zenModeLabel:"Zen-Modus aktivieren",zenModeDesc:"Verbergen Sie unnötige Elemente (z. B. Disclaimer des Modells unten), um eine reinere Gesprächserfahrung zu erhalten (individuell für jede Website konfiguriert)"},ru:{panelTitle:"Ophel",welcomeSlogan:"Преимущества ИИ под рукой",disclaimerTitle:"Правовое уведомление",disclaimerText:"Это расширение является инструментом общего назначения и может не поддерживать все эксклюзивные функции конкретных сайтов. Оно зависит от структуры сторонних страниц; если обновления нарушат работу, сообщите об этом через GitHub Issues для быстрого исправления.",disclaimerWarning:"Пожалуйста, не оставляйте негативные отзывы в магазине из-за проблем, вызванных изменениями на сторонних сайтах. Благодарим за понимание и поддержку!",communityMotto:"Хочешь идти быстро — иди один. Хочешь идти далеко — идите вместе.",welcomeJoin:"Добро пожаловать в Ophel",agreeButton:"Я понимаю и согласен",tabPrompts:"Промпты",tabSettings:"Настройки",navGeneral:"Общие",navSiteSettings:"Сайты",navGlobalSearch:"Глобальный поиск",navAppearance:"Вид",navPageContent:"Контент",navFeatures:"Функции",navPermissions:"Доступа",navBackup:"Данные",navAbout:"О проекте",siteSettingsPageDesc:"Настройка макета и обработки контента для каждого сайта",generalPageDesc:"Настройте поведение расширения и интерфейс",appearancePageDesc:"Персонализация стилей и тем",pageContentPageDesc:"Настройка макета страницы и отображения контента",featuresPageDesc:"Настройка функциональных модулей",permissionsPageDesc:"Просмотр и управление разрешениями расширения.",backupPageDesc:"Управление резервным копированием и облачной синхронизацией",aboutPageDesc:"Преимущества ИИ под рукой.",tsPlasmoDesc:"Фреймворк для браузерных расширений",tsReactDesc:"Библиотека интерфейса",tsTypescriptDesc:"Типизированный JavaScript",tsZustandDesc:"Управление состоянием",tsViteDesc:"Инструментарий фронтенда",optionalPermissions:"Дополнительные разрешения",optionalPermissionsDesc:"Эти разрешения можно включить или выключить по необходимости",requiredPermissions:"Обязательные разрешения",requiredPermissionsDesc:"Необходимы для базовой работы расширения",permissionsSyncHint:"Статус синхронизируется с браузером. Обновите, если статус был изменен в настройках браузера.",refreshStatus:"Обновить статус",refreshing:"Обновление...",permissionsRefreshed:"Статус разрешений обновлен",granted:"Разрешено",notGranted:"Запрещено",revoke:"Отозвать",grant:"Разрешить",allowRecommended:"Разрешить (рекомендуется)",required:"Обязательно",permissionWebdavAccess:"Доступ к расширенным функциям",permissionWebdavAccessDesc:"Доступ ко всем сайтам. Нужно для WebDAV и удаления водяных знаков.",permissionStorage:"Хранилище",permissionStorageDesc:"Для сохранения настроек, промптов и истории чатов.",permissionNotifications:"Уведомления",permissionNotificationsDesc:"Опционально. Для уведомлений о завершении ответа ИИ.",permissionCookies:"Управление Cookie",permissionCookiesDesc:"Для быстрого переключения сессий (SessionKey) в Claude.",permissionTabs:"Вкладки",permissionTabsDesc:"Опционально. Для определения статуса вкладок и управления сессиями.",permissionDNR:"Правила сети",permissionDNRDesc:"Опционально. Изменение заголовков (например, для удаления водяных знаков).",generalTab:"Общие",tabSettingsTab:"Вкладки",generalSettings:"Общие настройки",panelTab:"Панель",tabOrderTab:"Порядок",shortcutsTab:"Клавиши",panelSettings:"Настройки панели",themePresetsTab:"Темы",customStylesTab:"Свои стили",pleaseEnterStyleName:"Введите название стиля",enterStyleName:"Название стиля",lightMode:"Светлая",darkMode:"Темная",code:"Код",create:"Создать",unnamedStyle:"Стиль без названия",layoutTab:"Макет",contentStyleTab:"Обработка",claudeSettingsTab:"Claude",pageWidthSettings:"Ширина страницы",layoutSettingsTitle:"Управление шириной",tabLayout:"Макет",tabModelLock:"Замок модели",tabGemini:"Gemini",enablePageWidthDesc:"Настройте максимальную ширину чата",userQueryWidthSettings:"Ширина запроса",scrollSettings:"Прокрутка",contentProcessing:"Обработка контента",contentProcessingDesc:"Как обрабатывать ответы ИИ",interactionEnhance:"Улучшение интерфейса",interactionEnhanceDesc:"Улучшенные таблицы и формулы",exportSettings:"Экспорт",outlineSettingsDesc:"Настройка генерации содержания",outlineUpdateIntervalDesc:"Интервал обновления (сек.)",conversationsSettingsDesc:"Синхронизация и отображение",readingHistoryDesc:"Запоминать позицию чтения",day:"день",days:"дней",forever:"Всегда",localBackupTab:"Локально",webdavTab:"WebDAV",localBackupDesc:"Экспорт данных в JSON-файл",webdavServerDesc:"Сервер WebDAV для облака",backupManagementDesc:"Тест, отправка или восстановление из облака",allDataCleared:"Данные удалены, перезагрузка...",clearError:"Ошибка при очистке",webdavBackupList:"Список WebDAV",noBackupsFound:"Бэкапов нет",loading:"Загрузка...",version:"Версия",aboutDescription:"{appName} — расширение для Gemini, ChatGPT, Claude, AI Studio и Grok. Оно оптимизирует работу с папками чатов, умным содержанием и библиотекой промптов. Функции вроде истории чтения, удаления водяных знаков и блокировки модели вместе с темами делают работу с ИИ удобнее.",projectLinks:"Ссылки",githubDesc:"Код, ошибки или вклад в проект",giveStar:"Поставить звезду на GitHub",projectWebsite:"Сайт",websiteDesc:"Документация и руководства",visitWebsite:"Перейти на сайт",rateAndReview:"Нравится Ophel?",rateDesc:"Если вам нравится Ophel, пожалуйста, поставьте нам 5 звезд! Это очень помогает нам.",chromeStore:"Интернет-магазин Chrome",firefoxAddons:"Дополнение Firefox",greasyFork:"Greasy Fork",reviewBtn:"Оценить",starBtn:"Star",credits:"Благодарности",devAndMaintain:"Разработка и поддержка",creditsDesc:"Спасибо всем участникам. Ophel использует отличные open-source проекты.",privacyTitle:"Конфиденциальность",reportIssue:"Сообщить об ошибке",changelog:"История изменений",techStack:"Технологии",privacyStatement:"Политика приватности",privacyText:"Ваши данные хранятся локально в браузере. Синхронизация WebDAV использует только ваш сервер.",license:"Лицензия",tabBehaviorTitle:"Поведение",notificationSettings:"Действия после завершения",enablePrerequisiteToast:"Сначала включите «{setting}»",privacyModeTitle:"Приватность",collapsedButtonsOrderTitle:"Кнопки",quickButtonsOpacityLabel:"Quick buttons opacity",quickButtonsOpacityDesc:"Adjust overall opacity of the quick buttons",searchPlaceholder:"Поиск промптов...",addPrompt:"Новый промпт",allCategory:"Все",uncategorized:"Без категории",manageCategory:"⚙ Упр.",currentPrompt:"Тек: ",scrollTop:"Вверх",scrollBottom:"Вниз",refresh:"Обновить",collapse:"Свернуть",edit:"Изм.",delete:"Удалить",copy:"Коп.",addBookmark:"Добавить в избранное",removeBookmark:"Удалить из избранного",bookmarkContentMissing:"Содержимое избранного отсутствует",bookmarkMode:"Избранное",outlineNoBookmarks:"Нет избранного",outlineAddBookmarkHint:"Нажмите на звездочку рядом с элементом, чтобы добавить в закладки",bookmarkModeDisabled:"Недоступно в режиме избранного",drag:"Тянуть",save:"Сохр.",cancel:"Отмена",close:"Закрыть",add:"Добавить",confirm:"ОК",export:"Экспорт Markdown",clear:"Очистить",error:"Ошибка",operationFailed:"Операция не удалась",deleteSuccess:"Удалено успешно",deleteError:"Не удалось удалить",restoreError:"Не удалось восстановить",insertFailed:"Не удалось вставить",maximize:"Развернуть",browse:"Обзор...",clearAllData:"Удалить все",clearAllDataDesc:"Внимание: Все настройки и данные будут стерты.",clearAllDataConfirm:"Удалить все данные? Это действие необратимо.",clearSuccess:"Очищено, перезагрузка...",defaultDir:"Папка по умолчанию",dangerZone:"Опасная зона",dangerZoneDesc:"Необратимые действия",anchorPoint:"Якорь",updateAnchor:"Обновить якорь",goToAnchor:"Вернуться к якорю",title:"Заголовок",category:"Категория",categoryPlaceholder:"Напр.: Код, Перевод",content:"Текст промпта",editPrompt:"Изменить промпт",addNewPrompt:"Добавить промпт",fillTitleContent:"Заполните заголовок и текст",promptUpdated:"Промпт изменен",promptAdded:"Промпт добавлен",deleted:"Удалено",promptPin:"Закрепить",promptUnpin:"Открепить",promptVariableTitle:"Переменные",promptVariablePlaceholder:"Введите...",promptImport:"Импорт",promptExport:"Экспорт",promptImportTitle:"Импорт промптов",promptImportMessage:"ОК для замены, Отмена для слияния",promptImportSuccess:"Импорт успешен",promptImportFailed:"Ошибка импорта",promptExportSuccess:"Экспорт успешен",promptRecentUsed:"Недавние",promptMarkdownPreview:"Предпросмотр",promptImportMessage2:"Найдено {count}. Выберите метод:",promptImportOverwriteDesc:"Замена: Удаляет старые",promptImportMergeDesc:"Слияние: Обновляет совпадения",promptMerge:"Слияние",promptOverwrite:"Замена",promptMergeSuccess:"Готово: {updated} обновлено, {added} новых",promptSettingsTitle:"Настройки промптов",promptSettingsDesc:"Настройка взаимодействия во вкладке промптов",promptSubmitShortcutLabel:"Горячая клавиша отправки",promptSubmitShortcutDesc:"Применяется и к ручной отправке, и к автоотправке промптов.",promptSubmitShortcutEnter:"Enter",promptSubmitShortcutCtrlEnter:"Ctrl + Enter",promptDoubleClickSendLabel:"Отправлять промпт двойным кликом",promptDoubleClickSendDesc:"Если включено, двойной клик сразу отправляет промпт. Промпты с переменными отправляются после подтверждения.",promptSent:"Промпт отправлен",promptSendFailed:"Не удалось отправить, промпт сохранен в поле ввода",copied:"Скопировано",cleared:"Очищено",refreshed:"Обновлено",orderUpdated:"Порядок изменен",inserted:"Вставлено",scrolling:"Скроллим, ждите...",noTextarea:"Поле ввода не найдено",confirmDelete:"Удалить промпт?",settingsTitle:"Настройки",panelSettingsTitle:"Настройки панели",settingOn:"ВКЛ",settingOff:"ВЫКЛ",modelLockTitle:"Замок модели",modelLockEnabledLabel:"Включить замок",modelLockEnabledDesc:"Авто-переключение при входе",modelLockLabel:"Целевая модель",modelLockDesc:"Переключит на эту модель при загрузке",modelKeywordLabel:"Ключевое слово",modelKeywordPlaceholder:"Напр.: 3 Pro",modelKeywordExample:"Напр.: 3 Pro",modelKeywordDesc:"Для поиска модели в списке",modelLockFailedNoButton:"Селектор не найден",modelLockFailedMenuEmpty:"Меню не загрузилось",modelLockFailedNotFound:'Модель "{model}" не найдена',userQueryWidthDesc:"Ширина пузыря сообщения (на сайт)",categoryManage:"Категории",categoryEmpty:"Категорий пока нет.",rename:"Переименовать",newCategoryName:"Новое имя:",categoryRenamed:"Имя изменено",confirmDeleteCategory:"Удалить категорию? Промпты станут 'Без категории'.",categoryDeleted:"Удалено",promptCountSuffix:" промпт(ов)",categoryRenamedTo:"Стало : '{name}'",confirmDeleteCategoryMsg:"Удалить '{name}'?",categoryDeletedMsg:"'{name}' удалена",languageLabel:"Язык",languageDesc:"Язык панели (сразу)",languageAuto:"Авто",languageZhCN:"简体中文",languageZhTW:"繁體中文",languageEn:"English",themeLabel:"Тема",themeAuto:"Авто",themeSettings:"Настройки темы",currentThemeMode:"Режим",themeSettingsDesc:"Темы для светлого/темного режимов",themeLight:"Светлая",themeSystem:"Система",customCSS:"CSS-стили",customCSSDesc:"Ваш CSS",customCSSTemplate:"Вставить шаблон",addCustomStyle:"Добавить",noCustomStyles:"Своих стилей пока нет.",editStyle:"Изм.",deleteStyle:"Удал.",confirmDeleteStyle:"Удалить стиль?",styleNameLabel:"Имя",styleNamePlaceholder:"Имя стиля",styleModeLabel:"Режим",styleModeLight:"☀️ Свелая",styleModeDark:"🌙 Темная",styleCSSLabel:"Код CSS",styleCreated:"Создан",styleUpdated:"Изменен",styleDeleted:"Удален",styleNameRequired:"Имя обязательно",newStyle:"Новый стиль",editStyleTitle:"Правка стиля",lightModePreset:"Светлая тема",lightModePresetDesc:"Только для светлого режима",darkModePreset:"Темная тема",darkModePresetDesc:"Только для темного режима",primaryColor:"Основной",secondaryColor:"Второй","themePreset_google-gradient":"Градиент Google",themePreset_purple:"Фиолетовый",themePreset_ocean:"Океан","themePreset_classic-dark":"Классика темная","themePreset_midnight-blue":"Синяя полночь",themePreset_forest:"Лес",themePreset_sakura:"Сакура",themePreset_mint:"Мята",themePreset_nordic:"Нордик",themePreset_cyberpunk:"Киберпанк",themePreset_coffee:"Кофе",themePreset_sunset:"Закат","themePreset_lemon-soda":"Лимонад","themePreset_ancient-scroll":"Свиток","themePreset_mono-pro":"Моно Про",themePreset_dracula:"Дракула","themePreset_deep-abyss":"Бездна","themePreset_crimson-moon":"Кровавая луна",themePreset_porcelain:"Фарфор",themePreset_shortbread:"Печенье","themePreset_unicorn-dream":"Единорог","themePreset_retro-terminal":"Ретро-терминал","themePreset_eva-unit-01":"EVA-01",themePreset_aurora:"Аврора",outlineLevel1:"Только 1 уровень",outlineLevel2:"До 2 уровня",outlineLevel3:"До 3 уровня",readingHistorySettings:"История чтения",readingHistoryTitle:"История чтения",readingHistoryPersistenceLabel:"Включить историю",readingHistoryPersistenceDesc:"Запомнить место и вернуться при открытии",readingHistoryAutoRestoreLabel:"Авто-возврат",readingHistoryAutoRestoreDesc:"Сразу прыгать к месту при загрузке",readingHistoryCleanup:"Хранение",readingHistoryCleanupDesc:"Сколько хранить прогресс (-1 навсегда)",daysSuffix:" Дн.",cleanupInfinite:"Всегда",contentExportSettingsTitle:"Настройки контента",markdownFixLabel:"Исправить жирный текст",markdownFixDesc:"Фикс разметки жирного текста в Gemini",exportImagesToBase64Label:"Картинки в Base64",exportImagesToBase64Desc:"Перевод фото в текст для офлайн просмотра",userQueryMarkdownLabel:"Markdown у меня",userQueryMarkdownDesc:"Форматировать и мои сообщения",watermarkRemovalLabel:"Удалять вотермарки",watermarkRemovalDesc:"Чистить знаки NanoBanana автоматически",refreshPrompts:"Обновить промпты",themeDark:"Темная",pageWidthLabel:"Ширина страницы",pageWidthValueLabel:"Значение",pageWidthDesc:"Ширина чата (на сайт)",enablePageWidth:"Включить расширение",widthValue:"Ширина",widthUnit:"Единица",navContent:"Контент",unitPx:"Пиксели (px)",unitPercent:"Проценты (%)",enableUserQueryWidth:"Ширина моих сообщений",enableUserQueryWidthDesc:"Расширить пузырь запроса",userQueryWidthValueLabel:"Ширина",tabSettingsTitle:"Вкладки",openNewTabLabel:"Новый чат в доп. вкладке",openNewTabDesc:"Кнопка открытия нового чата отдельно",newTabTooltip:"Новый чат в другой вкладке",autoRenameTabLabel:"Авто-имя вкладки",autoRenameTabDesc:"Ставить имя чата в заголовок окна",renameIntervalLabel:"Частота",renameIntervalDesc:"Интервал проверки имени",secondsSuffix:"с",showStatusLabel:"Статус в иконке",showStatusDesc:"Иконка загрузки вкладки (⏳/✅)",showNotificationLabel:"Уведомление на раб. стол",showNotificationDesc:"Сказать, когда ИИ закончит писать",notificationSoundLabel:"Звук",notificationSoundDesc:"Играть звук в конце",notificationVolumeLabel:"Громкость",notifyWhenFocusedLabel:"Звук даже в фокусе",notifyWhenFocusedDesc:"Пищать, даже если страница открыта",autoFocusLabel:"Авто-вывод окна вперед",autoFocusDesc:"Выводить окно вперед в конце",privacyModeLabel:"Приватный режим",privacyModeDesc:"Фальшивый заголовок (двойной клик сверху)",privacyTitleLabel:"Фальш-имя",privacyTitlePlaceholder:"Напр.: Google, Работа",titleFormatLabel:"Формат имени",titleFormatDesc:"Шаблон: {status}, {title}, {model}",notificationTitle:"✅ {site} готов",notificationBody:"Нажмите, чтобы увидеть",tabOutline:"Содержание",outlineEmpty:"Пусто",outlineEmptyDescDefault:"Пункты содержания появятся автоматически по мере развития диалога.",outlineEmptyDescUserQueryOnly:"Сейчас отображаются только вопросы пользователя. Отправьте сообщение, чтобы появились пункты содержания.",outlineRefresh:"Перезагрузить",outlineSettings:"Настройки содержания",bookmarkSettings:"Настройки закладок",bookmarkModeDisableLevel:"Невозможно настроить уровни в режиме закладок",bookmarkSettingsDesc:"Настройки, связанные с закладками",inlineBookmarkModeLabel:"Значки закладок",inlineBookmarkModeDesc:"Отображение значков рядом с заголовками",panelBookmarkModeLabel:"Значки в панели",panelBookmarkModeDesc:"Отображение значков закладок в панели",inlineBookmarkModeAlways:"Всегда показывать",inlineBookmarkModeHover:"При наведении",inlineBookmarkModeHidden:"Скрыто",enableOutline:"Включить содержание",outlineMaxLevel:"Уровни",outlineLevelAll:"Все (1-6)",refreshOutline:"Обновить содержание",refreshSettings:"Обновление",jumpToAnchor:"Вернуться назад",outlineScrollBottom:"В самый низ",outlineScrollTop:"В самый верх",outlineExpandAll:"Раскрыть всё",outlineCollapseAll:"Свернуть всё",outlineLocateCurrent:"Найти текущее место",outlineSearch:"Поиск в содержании...",outlineSearchResult:" совп.",outlineLevelHint:"заг.",refreshConversations:"Обновить чаты",syncingConversations:"Синхронизация...",grokSyncingConversations:"Грузим историю, подождите...",tabOrderSettings:"Расположение UI",tabOrderDesc:"Порядок вкладок панели",moveUp:"Выше",moveDown:"Ниже",readingNavigationSettings:"Навигация",restoredPosition:"Позиция восстановлена",cleanupDone:"Старые данные очищены",outlineAutoUpdateLabel:"Авто-обнова содержания",outlineAutoUpdateDesc:"Обновлять, пока ИИ пишет",outlineUpdateIntervalLabel:"Секунды",outlineShowUserQueries:"Мои вопросы",outlineShowUserQueriesTooltip:"Видеть мои вопросы",outlineOnlyUserQueries:"Вопросы",globalSearchOutlineReplies:"Ответы",outlineIntervalUpdated:"Сет: {val}с",outlineSyncScrollLabel:"Синхро-скролл",outlineSyncScrollDesc:"Подсветка содержания при прокрутке",outlineFollowModeLabel:"Режим слежения",outlineFollowCurrent:"За позицией",outlineFollowLatest:"За последним",outlineFollowManual:"Ручной",outlineFollowCurrentDesc:"Подсвечивать, где вы читаете",outlineFollowLatestDesc:"Скроллить вниз вместе с ИИ",outlineFollowManualDesc:"Без авто-скролла",outlineShowWordCountLabel:"Показать количество слов",outlineShowWordCountDesc:"Отображать количество слов для каждого раздела в оглавлении",words:"слов",pageDisplaySettings:"Отображение",otherSettingsTitle:"Разное",showCollapsedAnchorLabel:"Якорь",showCollapsedAnchorDesc:"Кнопка якоря в сайдбаре",showCollapsedThemeLabel:"Тема",floatingToolbarLabel:"Плавающая панель инструментов",tools:"Инструменты",cleanup:"Удалить недействительные закладки",floatingToolbarMore:"Ещё",floatingToolbarClearGhost:"Удалить недействительные закладки",floatingToolbarClearGhostConfirm:"Удалить {count} недействительных закладок в этой сессии?",floatingToolbarClearGhostEmpty:"Нет недействительных закладок для удаления.",showCollapsedThemeDesc:"Смена темы в сайдбаре",collapsedButtonsOrderDesc:"Порядок кнопок в сайдбаре",preventAutoScrollLabel:"Блок авто-скролла",preventAutoScrollDesc:"Не скроллить вниз самовольно",defaultPanelStateLabel:"Открыта всегда",defaultPanelStateDesc:"Развернута при загрузке",autoHidePanelLabel:"Скрывать кликом вне",autoHidePanelDesc:"Сворачивать в плавающий шар при клике вне",autoHidePanelDescEdgeSnap:"Сворачивать к краю при клике вне",edgeSnapHideLabel:"Магнит к краям",edgeSnapHideDesc:"Прячется у края, вылезает при наведении",edgeSnapThresholdLabel:"Чувствительность",edgeSnapThresholdDesc:"Дистанция срабатывания",defaultPositionLabel:"Сторона",defaultPositionDesc:"Где панель при загрузке",defaultPositionLeft:"Слева",defaultPositionRight:"Справа",defaultEdgeDistanceLabel:"Отступ",defaultEdgeDistanceDesc:"Расстояние от края",panelWidthLabel:"Ширина панели",panelWidthDesc:"Ширина панели (px)",panelHeightLabel:"Высота",panelHeightDesc:"% экрана",disableOutline:"Без содержания",togglePrompts:"Промпты",toggleConversations:"Чаты",tabConversations:"Чаты",conversationsEmpty:"Чатов нет",conversationsEmptyHint:"Нажмите синхронизацию сверху",conversationsSync:"Синхро",conversationsSyncing:"Процесс...",conversationsSynced:"Готово",conversationsAddFolder:"Папка",conversationsRename:"Имя",conversationsDelete:"Удалить",conversationsDeleteConfirm:"Удалить папку? Чаты уйдут в 'Входящие'.",conversationsFolderCreated:"Создана",conversationsFolderRenamed:"Имя изменено",conversationsFolderDeleted:"Удалена",conversationsCannotDeleteDefault:"Нельзя",conversationsIcon:"Значок",conversationsFolderName:"Имя",conversationsFolderNamePlaceholder:"Введите имя...",conversationsSyncEmpty:"Ничего не найдено",conversationsSyncNoChange:"Без изменений",conversationsLocate:"Найти текущий",conversationsLocateSuccess:"Найдено",conversationsLocateNotFound:"Нет в списке, синхро...",conversationsLocateNewChat:"Новый чат (не сохранен)",conversationsLocateSyncFailed:"Всё равно не найден",justNow:"Только что",minutesAgo:"мин. назад",hoursAgo:"ч. назад",daysAgo:"дн. назад",conversationsSelectFolder:"Куда",conversationsMoveTo:"Переместить разговор",conversationsSetTag:"Установить тег",conversationsMoved:"Ушло в: ",conversationsSyncDeleteTitle:"Синхро удаления",conversationsSyncDeleteMsg:"Удалено {count} чатов в облаке. Удалить и здесь?",conversationsDeleted:"Убрано",conversationsSettingsTitle:"Настройки чатов",conversationsSyncUnpinLabel:"Синхро открепления",conversationsSyncUnpinDesc:"Откреплять здесь, если откреплено в облаке",folderRainbowLabel:"Радужные папки",folderRainbowDesc:"Случайные цвета папок",conversationsSyncDeleteLabel:"Удалять в облаке",conversationsSyncDeleteDesc:"При удалении локальной записи также удалять облачный диалог на соответствующем сайте",conversationsSyncRenameLabel:"Имя в облаке",conversationsSyncRenameDesc:"Менять имя в {site} тоже",conversationsCustomIcon:"Свой значок",batchSelected:"{n} выбрано",batchMove:"Двигать",batchDelete:"Удалить",batchExit:"Выход",batchExport:"Экспорт",exportToMarkdown:"Markdown",exportToJSON:"JSON",exportLoading:"Грузим...",exportSuccess:"Успех",exportFailed:"Ошибка",exportNoContent:"Пусто",copySuccess:"Копировано",copyFailed:"Ошибка коп.",exportNeedOpenFirst:"Сначала откройте чат",exportUserLabel:"Я",exportMetaTitle:"Инфо",exportMetaConvTitle:"Тема",exportMetaTime:"Время",exportMetaSource:"Источник",exportNotSupported:"Не работает здесь",exportToTXT:"TXT",exportMetaUrl:"URL",exportUntitled:"Без темы",exportToClipboard:"Скопировать Markdown",conversationsRefresh:"Обновить",conversationsSearchFolder:"Поиск папки...",conversationsSearchPlaceholder:"Поиск чата...",conversationsSearchResult:" совп.",conversationsNoSearchResult:"Ничего нет",conversationsSetTags:"Теги",conversationsNewTag:"Новый",conversationsTagName:"Имя",conversationsTagColor:"Цвет",conversationsFilterByTags:"Фильтр по тегам",conversationsClearTags:"Сброс",conversationsTagCreated:"Создан",conversationsTagUpdated:"Изменен",conversationsTagDeleted:"Удален",conversationsTagExists:"Уже есть",conversationsSelectTag:"Выбрать",conversationsExistingTags:"Старые",conversationsEditTag:"Изм.",conversationsCancelEdit:"Нет",conversationsSelectColor:"Цвет",conversationsCollapseColor:"Закрыть",conversationsUpdateTag:"Сохр.",conversationsNoTags:"Нет",conversationsManageTags:"Упр.",conversationsDeleteTag:"Удалить",conversationsPin:"Пин 📌",conversationsUnpin:"Убрать",conversationsPinned:"Готово",conversationsUnpinned:"Убрано",conversationsFilterPinned:"Пины",conversationsClearAll:"Сброс всего",conversationsBatchMode:"Правка паком",formulaCopyLabel:"Копи латекса кликом",formulaCopyDesc:"Копирует исходник LaTeX (не везде)",formulaCopied:"Формула в буфере",formulaDelimiterLabel:"Добавить $ или $$",formulaDelimiterDesc:"Автоматически по типу формулы",tableCopyLabel:"Копия таблицы",tableCopyDesc:"Кнопка копии в Markdown",tableCopied:"Таблица в буфере",dataManagementTitle:"Данные",dataManagementDesc:"Всё, что вы здесь накопили",exportDataBtn:"Экспорт всего",importDataBtn:"Импорт",exportError:"Ошибка: ",importConfirm:"Уверены? Всё текущее сотрется.",importSuccess:"Успех. Перезагрузка...",importError:"Ошибка: ",invalidBackupFile:"Не тот формат",backupValidationInvalidFormat:"Формат не тот",backupValidationMissingVersion:"Нет версии",backupValidationMissingData:"Нет данных",backupValidationSettingsType:"Ошибка настроек",backupValidationPromptsType:"Ошибка промптов",backupValidationFoldersType:"Ошибка папок",backupValidationConversationsType:"Ошибка чатов",backupValidationHistoryType:"Ошибка истории",backupTime:"Время",backupType:"Тип",openAiPagesWillRefresh:"Открытые страницы AI будут обновлены.",dataManagementNote:"Для копий или переезда. Включает всё: настройки, чаты, промпты.",permissionRequired:"Нет доступа",webdavPermissionDesc:"Нет прав на домен WebDAV.",webdavSectionTitle:"Облако (WebDAV)",webdavDesc:"Nextcloud, Owncloud и т.д.",webdavUrlLabel:"URL",webdavUsernameLabel:"Имя",webdavUsernamePlaceholder:"E-mail",webdavPasswordLabel:"Пароль",webdavPasswordPlaceholder:"API/App пароль",webdavRemotePathLabel:"Путь в облаке",webdavTestBtn:"Тест",webdavUploadBtn:"Залить",webdavDownloadBtn:"Скачать",webdavDownloadConfirm:"Скачивание сотрет текущие данные. Ок?",webdavLastSync:"Последняя",webdavConnectionSuccess:"ОК",webdavUploadSuccess:"Залито",webdavDownloadSuccess:"Скачано",webdavConfigIncomplete:"Настройка не полная",webdavAuthFailed:"Имя/Пароль не те",webdavConnectionFailed:"Сеть упала",webdavUploadFailed:"Ошибка заливки",webdavDownloadFailed:"Ошибка скачки",webdavFileNotFound:"Файл не найден",webdavInvalidFormat:"Файл битый",exportData:"Выгрузить",exportDataDesc:"Сохранить JSON на комп",importData:"Загрузить",importDataDesc:"Вернуть из файла",fullBackup:"Всё сразу",fullBackupDesc:"Вообще всё (Рекомендуется)",promptsBackup:"Только промпты",promptsBackupDesc:"Без папок и тегов",settingsBackup:"Только настройки",settingsBackupDesc:"Внешний вид и вкусы",selectFile:"Файл",noFileSelected:"Нет",dataPreview:"Превью",pastePlaceholder:"Сюда JSON или выберите выше...",importBtn:"Жми",webdavConfig:"WebDAV",webdavConfigDesc:"Сервер для копий",webdavAddress:"URL сервера",username:"Имя",password:"Ключ",saveConfig:"Сохранить",saveSuccess:"ОК",backupEncryption:"Шифрование",backupEncryptionDesc:"Пароль на бэкап (не забудьте)",encryptionPassword:"Пароль шифрования",encryptionPasswordPlaceholder:"Для защиты заливок",restoreTip:"Совет",restoreTipContent:"Скачка бэкапа не меняет ваши настройки WebDAV, чтобы не потерять доступ, если бэкап старый.",backupAndRestore:"Резерв и возврат",webdavServerSettings:"Сервис WebDAV",webdavRemoteDirLabel:"Путь",backupManagement:"Менеджер",backupNow:"Сделать сейчас",restore:"Вернуть",localBackup:"Файл",exportToFile:"Экспорт",importBackupFile:"Импорт",permAllUrlsTitle:"Доступ ко всему",permAllUrlsDesc:"Нужно для WebDAV и чистки водяных знаков.",permWebdavTitle:"Сеть",permWebdavDesc:"WebDAV требует связи с сервером. Бэкапы заработают после ОК.",permTabsTitle:"Вкладки",permTabsDesc:"Для имен вкладок и приватного режима.",permNotifyTitle:"Уведомления",permNotifyDesc:"Чтобы звать вас, когда ИИ закончит.",permCookiesTitle:"Куки",permCookiesDesc:"Для смены SessionKeys в Claude.",permDNRTitle:"Опц. правила",permDNRDesc:"Для удаления знаков на фото.",permissionRequestToast:"Подтвердите в окне",permissionDialogAllow:"Разрешить",permissionGranted:"ОК",permissionDenied:"Нет",revokeConfirmDefault:"Убрать доступ? Часть функций отвалится.",revokeConfirmNotifications:"Без уведомлений? Отключит [Уведомления].",revokeConfirmWebdav:"Убрать полный доступ? Перестанет работать [Знаки] и [WebDAV].",warning:"Внимание",windowClosing:"Закрываем...",allow:"ОК",defaultPromptTranslateTitle:"Проф переводчик",defaultPromptTranslateCategory:"Перевод",defaultPromptTranslateContent:"Я переводчик с 20-летним стажем. Переведу на {{target_language}} :\n\nЦели:\nПолная точность смысла.\nЕстественность (не как робот).\nТот же тон (проф., юмор, серьезно).\n\nТекст: {{text}}",defaultPromptCodeOptTitle:"Оптимизация кода",defaultPromptCodeOptCategory:"Код",defaultPromptCodeOptContent:"Эксперт по {{language}}. Перепиши по 'Clean Code' :\n\n**Код** :\n{{code}}\n\n**Цели** :\n1. Убрать лишнее.\n2. Имена по гайдам {{language}}.\n3. Добавить обработку ошибок.\n4. Фокус на [читаемость], [надежность] и [рост].\n5. Используй свежую {{version}}.\n\nВыдай код и кратко, что стало лучше.",navShortcuts:"Горячие клавиши",shortcutsPageDesc:"Ускорение работы кнопками",shortcutsInteractionGroup:"Независимые настройки",shortcutsInteractionGroupDesc:"Настройки этой группы всегда активны и не зависят от переключателя «Включить пользовательские сочетания»",shortcutsGlobalSettings:"Настройки клавиш",enableShortcuts:"Включить пользовательские сочетания",enableShortcutsDesc:"Включить или отключить все пользовательские клавиатурные сочетания",globalShortcutUrl:"Глобальная ссылка",globalShortcutUrlDesc:"Что открывать через Alt+G",resetShortcuts:"Сброс в ноль",resetShortcutsConfirm:"Сбросить все клавиши?",pressAnyKey:"Жми на любую...",shortcutConflictWith:"Конфликт с",shortcutConflict:"",globalShortcutsTitle:"Глобальные",globalShortcutsDesc:"Везде в браузере. Настройка в Chrome.",openBrowserShortcuts:"Настройки Chrome",shortcutNotSet:"Не задано",shortcutRemove:"Удалить",shortcutCategoryNavigation:"Навигация",shortcutCategoryPanel:"Панель",shortcutCategoryOutline:"Содержание",shortcutCategoryConversation:"Чаты",shortcutCategoryEdit:"Управление взаимодействием",shortcutScrollTop:"В самый верх",shortcutScrollBottom:"В самый низ",shortcutGoToAnchor:"К якорю",shortcutTogglePanel:"Развернуть/свернуть панель",shortcutToggleTheme:"Смена темы",shortcutOpenSettings:"В настройки",shortcutSwitchTab1:"Таб 1",shortcutSwitchTab2:"Таб 2",shortcutSwitchTab3:"Таб 3",shortcutRefreshOutline:"Обновить содержание",shortcutToggleOutlineExpand:"Раскрыть/Свернуть всё",shortcutExpandLevel1:"Уровень 1",shortcutExpandLevel2:"Уровень 2",shortcutExpandLevel3:"Уровень 3",shortcutExpandLevel4:"Уровень 4",shortcutExpandLevel5:"Уровень 5",shortcutExpandLevel6:"Уровень 6",shortcutToggleUserQueries:"Только мои вопросы",shortcutToggleBookmarks:"Показать избранное",shortcutOnlyUserQueries:"Показывать только мои вопросы",shortcutPrevHeading:"Прошлый заг.",shortcutNextHeading:"След. заг.",shortcutLocateOutline:"Найти в содержании",shortcutSearchOutline:"Поиск в содержании",shortcutNewConversation:"Новый чат",shortcutRefreshConversations:"Обновить чаты",shortcutLocateConversation:"Найти чат",shortcutPrevConversation:"Прошлый чат",shortcutNextConversation:"След. чат",shortcutExportConversation:"Экспорт чата",shortcutCopyLatestReply:"Копир. последний ответ",shortcutCopyLastCodeBlock:"Копир. последний код",shortcutToggleScrollLock:"Предотвратить автопрокрутку вниз",shortcutFocusInput:"В поле ввода",shortcutStopGeneration:"Стоп ИИ",shortcutTogglePromptQueue:"Переключить очередь запросов",shortcutShowShortcuts:"Список кнопок",shortcutShowModelSelector:"Выбор модели",shortcutCategoryHelp:"Помощь",shortcutCategorySettings:"Настройки",shortcutOpenClaudeSettings:"Claude настройки",shortcutSwitchClaudeKey:"Смена ключа Claude",shortcutOpenGeminiSettings:"Gemini настройки",shortcutOpenThemeSettings:"Theme настройки",shortcutOpenModelLockSettings:"Замок модели настройки",scrolledToTop:"Верх",scrolledToBottom:"Низ",outlineRefreshed:"Содержание ок",conversationsRefreshed:"Чаты ок",locatingOutline:"Ищем...",locatingConversation:"Ищем чат...",noConversationToLocate:"Чата нет",outlineDisabled:"Содержание выкл",conversationsDisabled:"Чаты выкл",exportStarted:"Экспорт...",replyCopied:"Ответ скопирован",noReplyToCopy:"Нечего копить",scrollLockToggled:"Скролл изменен",browserNotSupported:"Браузер не потянет",inputFocused:"Пишите сейчас",generationStopped:"Стоп",notGenerating:"ИИ молчит",noConversations:"Нет чатов",untitledConversation:"Без темы",noCodeBlock:"Кода нет",codeBlockCopied:"Код скопирован",modelSelectorNotFound:"Нет селектора",geminiSettingsTab:"Только Gemini",claudeSessionKeyTitle:"Сессии Claude",claudeSessionKeyDesc:"Аккаунты",claudeCurrentUsing:"В деле:",claudeNoKeySelected:"Пусто - добавьте",claudePleaseAddKey:"Нужен аккаунт",claudeAddKey:"Добавить",claudeImportFromBrowser:"Из браузера",claudeImportJSON:"Из JSON",claudeExportJSON:"В JSON",claudeNoKeys:"Пусто",claudeNoKeysHint:"Натимите 'Добавить'",claudeKeyValid:"ОК",claudeKeyInvalid:"Брак",claudeKeyUntested:"Не проверен",claudeKeyUsing:"Тек.",claudeKeyUse:"Вкл",claudeKeyTest:"Тест",claudeKeyDelete:"Удалить",claudeKeyCopied:"Ключ в буфере",claudeKeyCopyFailed:"Ошибка",claudeKeyDoubleTapCopy:"Клик-клик для копии",claudeCopyKey:"Копировать",claudeCopied:"Готово",claudeAlreadyUsing:"Уже включен",claudePleaseSelectKey:"Выберите сессию",claudeKeyImported:"Ок, проверяем...",claudeKeyAdded:"Добавлено",claudeKeySwitched:"ОК. Перезагрузка...",claudeKeyDeleted:"Удалено",claudeKeyTesting:"Тест...",claudeGenerating:"ИИ пишет, ждите",claudeAddKeyNameTitle:"Имя",claudeAddKeyNamePlaceholder:"Напр.: Основа, Доп",claudeAddKeyValueTitle:"Ключ",claudeAddKeyValuePlaceholder:"sk-ant-sid01-...",claudeImportNameTitle:"Имя",claudeImportNamePlaceholder:"Для импорта",claudeDeleteConfirmTitle:"Удалить?",claudeDeleteConfirmMsg:"Удалить '{name}' ?",claudeNameRequired:"Имя!",claudeKeyRequired:"Ключ!",claudeKeyInvalidFormat:"Формат не тот",claudeKeyExists:"Уже есть",claudeNoTokensToExport:"Нечего выгружать",claudeExported:"ОК",claudeInvalidJSON:"JSON битый",claudeNoNewTokens:"Новых нет",claudeImported:"Зашло: {count} шт.",claudeTokenExists:"Есть такой: {name}",claudeNoCookieFound:"Куки не найдены",claudeRequestPermission:"ОК на куки в окне",claudeNotOnSiteWarning:"Только для claude.ai",claudeNotOnSiteHint:"Сначала зайдите на сайт",claudeShortcutOnlyOnSite:"Только на claude.ai",claudeBatchTest:"Чек всех",claudeBatchTesting:"Чек... {current}/{total}",claudeBatchTestDone:"Готово. {valid} Ок, {invalid} Брак.",claudeBatchTestFailed:"Сбой",claudeOnlyOneKeyTip:"Ваш единственный вариант.",noClaudeKeys:"Нет настроенных Session Key",restoreSuccess:"Восстановление успешно, страница обновится...",aistudioSettingsTitle:"Настройки AI Studio",aistudioSettingsDesc:"Настройте поведение по умолчанию при загрузке страницы AI Studio",aistudioDefaultModel:"Модель по умолчанию",aistudioDefaultModelNone:"Не указано (использовать системную)",aistudioDefaultModelCustom:"Пользовательский ID модели...",aistudioDefaultModelPlaceholder:"models/gemini-xxx",aistudioCollapseNavbar:"Свернуть боковую панель",aistudioCollapseNavbarDesc:"Автоматически сворачивать левую навигацию при открытии страницы",aistudioCollapseRunSettings:"Свернуть панель настроек выполнения",aistudioCollapseRunSettingsDesc:"Автоматически сворачивать правую панель настроек выполнения при открытии",aistudioCollapseTools:"Свернуть раздел инструментов",aistudioCollapseToolsDesc:"Автоматически сворачивать раздел инструментов в настройках выполнения при открытии",aistudioCollapseAdvanced:"Свернуть расширенные настройки",aistudioCollapseAdvancedDesc:"Автоматически сворачивать расширенные параметры при открытии страницы",aistudioEnableSearch:"Включить поисковый инструмент",aistudioEnableSearchDesc:"Автоматически включать поиск Google в реальном времени при открытии",aistudioModelsFetched:"Список моделей обновлён",aistudioNoTabError:"Сначала откройте страницу AI Studio",aistudioModelsError:"Ошибка получения списка моделей",chatgptSettingsTitle:"Настройки ChatGPT",chatgptSettingsDesc:"Настроить поведение по умолчанию для страницы ChatGPT",chatgptMarkdownFixLabel:"Исправление жирного Markdown",chatgptMarkdownFixDesc:"Исправить нерендеренный **жирный** текст в ответах ChatGPT",aistudioRemoveWatermark:"Удалить водяной знак",aistudioRemoveWatermarkDesc:"Удалить водяной знак с изображений AI Studio (Требуется обновление)",aistudioMarkdownFixLabel:"Исправление жирного Markdown",aistudioMarkdownFixDesc:"Исправить нерендеренный **жирный** текст в ответах AI Studio",aistudioReloadHint:"Обновите страницу для применения изменений",exportCustomUserName:"Имя пользователя",exportCustomUserNameDesc:"Отображаемое имя при экспорте (По умолчанию: User)",exportCustomModelName:"Имя ИИ",exportCustomModelNameDesc:"Отображаемое имя ИИ при экспорте (По умолчанию: Имя сайта)",popupCurrentSite:"Текущий сайт",popupSupported:"Активен",popupUnsupported:"Не поддерж.",popupNewChat:"Новый чат",popupQuickAccess:"Быстрый доступ",popupRecentUsed:"Недавние",popupNoRecentPrompts:"Нет недавних промптов",popupCopied:"Скопировано",popupCopyFailed:"Ошибка копии",popupFeedback:"Обратная связь",popupSettings:"Настройки",policyRetryLabel:"Автоповтор при блокировке политикой",policyRetryDesc:"Автоматически повторно отправлять сообщение, если оно заблокировано корпоративной политикой",maxRetriesLabel:"Макс. попыток",retryCountSuffix:"раз (тот же вопрос)",policyRetryActive:"Блокировка политикой, повторная попытка ({current}/{max})",policyRetryLimitReached:"Достигнут лимит попыток",preventAutoScrollEnabled:"Блокировка прокрутки включена",preventAutoScrollDisabled:"Блокировка прокрутки выключена",toolboxMenu:"Инструменты",toolboxMenuTitle:"Меню инструментов",toolboxMenuDesc:"Настройка функций, отображаемых во всплывающем меню инструментов",globalSearchCategoryAll:"Все",globalSearchCategoryOutline:"Оглавление",globalSearchCategorySettings:"Настройки",globalSearchCategoryConversations:"Диалоги",globalSearchCategoryFolders:"Папки",globalSearchCategoryTags:"Теги",globalSearchCategoryPrompts:"Промпты",globalSearchCategoryCurrentSession:"Текущая сессия",globalSearchSiteGemini:"Gemini",globalSearchSiteGeminiEnterprise:"Gemini Enterprise",globalSearchSiteAIStudio:"AI Studio",globalSearchSiteChatGPT:"ChatGPT",globalSearchSiteClaude:"Claude",globalSearchSiteGrok:"Grok",globalSearchPlaceholderAll:"Искать везде",globalSearchPlaceholderOutline:"Искать в оглавлении",globalSearchPlaceholderSettings:"Искать в настройках",globalSearchPlaceholderConversations:"Искать диалоги на текущем сайте",globalSearchPlaceholderFolders:"Искать папки",globalSearchPlaceholderTags:"Искать теги",globalSearchPlaceholderPrompts:"Искать промпты",globalSearchPlaceholderCurrentSession:"Искать вопросы и оглавление текущей сессии",globalSearchEmptyAll:"Совпадений не найдено",globalSearchEmptyOutline:"Нет результатов в оглавлении",globalSearchEmptySettings:"Подходящих настроек не найдено",globalSearchEmptyConversations:"Нет результатов по диалогам",globalSearchEmptyFolders:"Нет результатов по папкам",globalSearchEmptyTags:"Нет результатов по тегам",globalSearchEmptyPrompts:"Нет результатов по промптам",globalSearchEmptyCurrentSession:"Нет результатов в текущей сессии",globalSearchCategoriesLabel:"Категории глобального поиска",globalSearchPageDesc:"Настройка поведения и взаимодействия Search Everywhere",globalSearchTriggerHint:"Запуск: двойное нажатие Shift или Ctrl/Cmd + K",globalSearchMatchingSettingsTitle:"Сопоставление поиска",globalSearchMatchingSettingsDesc:"Настройте, как Search Everywhere сопоставляет результаты поиска.",globalSearchPromptSettingsTitle:"Поведение промптов",globalSearchPromptSettingsDesc:"Выберите действие при нажатии Enter на результате промпта в Search Everywhere",globalSearchPromptEnterBehaviorLabel:"Действие Enter для промптов в Search Everywhere",globalSearchPromptEnterBehaviorDesc:"Умный режим: вставляет сразу без переменных, а при необходимости открывает окно переменных; Только перейти: переключает на список промптов и находит элемент.",globalSearchPromptEnterBehaviorSmart:"Умный (рекомендуется)",globalSearchPromptEnterBehaviorLocate:"Только перейти",globalSearchEnableFuzzySearchLabel:"Включить нечеткий поиск",globalSearchEnableFuzzySearchDesc:"При включении Search Everywhere использует нечеткое совпадение по заголовку, папке, тегу, содержимому промпта и идентификатору настройки.",globalSearchFuzzySearchToggle:"Нечетк.",globalSearchFuzzySearchToggleAria:"Переключить нечеткий поиск",globalSearchFooterTips:"Enter — перейти · ↑↓ — выбрать · Tab — категории · Esc — закрыть",globalSearchShortcutNudge:"В следующий раз используйте {shortcut}, чтобы открыть быстрее",doubleShiftToSearch:"Двойной Shift для открытия глобального поиска",doubleShiftToSearchDesc:"Быстро нажмите Shift дважды, чтобы открыть глобальный поиск",globalSearchShortcutNudgeDismiss:"Больше не напоминать",globalSearchContextCurrentItem:"Элемент {current}",globalSearchContextShownProgress:"Показано {shown}/{total}",globalSearchContextTotalItems:"Всего {total}",globalSearchMatchReasonTitle:"Совпадение в названии",globalSearchMatchReasonFolder:"Совпадение в папке",globalSearchMatchReasonTag:"Совпадение в теге",globalSearchMatchReasonType:"Совпадение по типу",globalSearchMatchReasonCode:"Совпадение по коду",globalSearchMatchReasonCategory:"Совпадение по категории",globalSearchMatchReasonContent:"Совпадение по содержимому",globalSearchMatchReasonId:"Совпадение по ID",globalSearchMatchReasonKeyword:"Совпадение по ключевому слову",globalSearchMatchReasonAlias:"Совпадение по алиасу",globalSearchMatchReasonFuzzy:"Нечеткое совпадение",globalSearchSyntaxOperatorType:"Тип",globalSearchSyntaxOperatorFolder:"Папка",globalSearchSyntaxOperatorTag:"Тег",globalSearchSyntaxOperatorIs:"Состояние",globalSearchSyntaxOperatorLevel:"Уровень",globalSearchSyntaxOperatorDate:"Дата",globalSearchSyntaxPinned:"Закреплено",globalSearchSyntaxSuggestionTypeDesc:"Фильтр по типу результата",globalSearchSyntaxSuggestionFolderDesc:"Фильтр по папке или категории",globalSearchSyntaxSuggestionTagDesc:"Фильтр по названию тега",globalSearchSyntaxSuggestionIsDesc:"Фильтр по состоянию",globalSearchSyntaxSuggestionPinnedDesc:"Только закреплённые результаты",globalSearchSyntaxSuggestionLevelDesc:"Фильтр по уровню структуры (0 = вопрос пользователя)",globalSearchSyntaxSuggestionLevelQueryDesc:"Только вопросы пользователя",globalSearchSyntaxSuggestionDateDesc:"Фильтр по последним дням",globalSearchSyntaxDiagnosticUnknownOperator:"Неизвестный оператор",globalSearchSyntaxDiagnosticInvalidValue:"Недопустимое значение фильтра",globalSearchSyntaxDiagnosticConflict:"Конфликтующие фильтры проигнорированы",globalSearchSyntaxChipRemove:"Нажмите, чтобы удалить фильтр",globalSearchSyntaxChipOverflow:"+ещё {count}",globalSearchSyntaxEmptyGuideTitle:"Попробуйте поисковые фильтры",globalSearchSyntaxEmptyGuideDesc:"Используйте синтаксис фильтров, чтобы быстрее сузить результаты",globalSearchSyntaxHelpTitle:"Примеры синтаксиса поиска",globalSearchSyntaxHelpDesc:"Нажмите, чтобы вставить. Ключевые слова поддерживаются только на английском.",globalSearchSyntaxHelpTriggerAria:"Открыть справку по синтаксису поиска",moreLanguages:"Больше языков",communityAndSupport:"Сообщество и поддержка",modelLockEnabled:"Блокировка модели включена",modelLockDisabled:"Блокировка модели отключена",modelLockNoKeyword:"Ключевое слово для этой модели не задано",toggleTheme:"Переключить тему",outlineSettingsTitle:"Оглавление",outlineEnabledLabel:"Показать оглавление",outlineShowUserQueriesLabel:"Показать мои вопросы",anchorUpdated:"Якорь обновлен",loadingHistory:"Загрузка истории...",historyLoaded:"История загружена",stopLoading:"Стоп",loadingHint:"Прокрутить вверх после завершения",setAnchor:"Установить якорь",setAnchorToast:"Якорь установлен",backToAnchor:"К якорю",noAnchor:"Нет якоря",clearAnchor:"Удалить якорь",clearAnchorToast:"Якорь удален",manualAnchorLabel:"Ручной якорь",manualAnchorDesc:"Установка и управление якорем вручную",watermarkProcessing:"Обработка изображения...",watermarkProcessed:"Водяной знак удален",watermarkFailed:"Ошибка удаления",shortcutToggleModelLock:"Переключить блокировку модели",exportFilenameTimestamp:"Add Timestamp to Filename",exportFilenameTimestampDesc:"Add a timestamp to the end of the exported filename",exportIncludeThoughtsLabel:"Включать рассуждения при экспорте",exportIncludeThoughtsDesc:"Включать и автоматически разворачивать рассуждения при экспорте (в виде цитатных блоков)",queueTitle:"Очередь промптов",queueQuickAsk:"Очередь промптов",queueInQueue:"В очереди ({count})",queueEmpty:"Очередь пуста. Введите и нажмите Enter для отправки или добавления",queueClearAll:"Очистить всё",queueRemove:"Удалить",queuePlaceholderIdle:"Введите промпт, Enter для отправки...",queuePlaceholderBusy:"ИИ генерирует, Enter для добавления в очередь...",queueStatusIdle:"ИИ свободен",queueStatusBusy:"ИИ генерирует",queueSettingLabel:"Очередь промптов",queueSettingDesc:"Отображать очередь над полем ввода для добавления промптов, пока ИИ пишет",queueDisableHint:"Вы можете отключить эту функцию в настройках",queueEdit:"Редактировать",queueEditSave:"Сохранить",queueEditCancel:"Отмена",queueForceSend:"Принудительная отправка",zenModeTitle:"Дзен-режим",zenModeLabel:"Включить дзен-режим",zenModeDesc:"Скрыть ненужные элементы (например, отказ от ответственности модели внизу) для более чистого общения (настраивается индивидуально для каждого сайта)"},es:{panelTitle:"Gemini Helper",welcomeSlogan:"La IA a su alcance",disclaimerTitle:"Aviso Legal",disclaimerText:"Esta extensión es una herramienta de uso general y es posible que no admita todas las funciones exclusivas de sitios específicos. Depende de las estructuras de páginas de terceros; si las actualizaciones interrumpen la funcionalidad, por favor infórmenos a través de GitHub Issues para una pronta solución.",disclaimerWarning:"Por favor, no deje reseñas negativas en la tienda por problemas causados por cambios en sitios de terceros. ¡Gracias por su comprensión y apoyo!",communityMotto:"Si quieres ir rápido, ve solo. Si quieres ir lejos, ve acompañado.",welcomeJoin:"Bienvenido a Ophel",agreeButton:"Entiendo y Acepto",tabPrompts:"Prompts",tabSettings:"Ajustes",navGeneral:"General",navSiteSettings:"Sitios",navGlobalSearch:"Búsqueda Global",navAppearance:"Apariencia",navPageContent:"Contenido",navFeatures:"Funciones",navPermissions:"Permisos",navBackup:"Datos",navAbout:"Acerca de",siteSettingsPageDesc:"Configurar diseño y procesamiento por sitio",generalPageDesc:"Configurar el comportamiento de la extensión",appearancePageDesc:"Personalizar estilos visuales y temas",pageContentPageDesc:"Ajustar diseño de página y visualización",featuresPageDesc:"Configurar módulos de funciones",permissionsPageDesc:"Ver y gestionar permisos de la extensión.",backupPageDesc:"Gestionar copias de seguridad y sincronización",aboutPageDesc:"La IA a su alcance.",tsPlasmoDesc:"Framework de extensiones de navegador",tsReactDesc:"Biblioteca de interfaz de usuario",tsTypescriptDesc:"JavaScript con tipado",tsZustandDesc:"Gestión de estado",tsViteDesc:"Herramientas de frontend",optionalPermissions:"Permisos Opcionales",optionalPermissionsDesc:"Permisos que se pueden conceder o revocar según sea necesario",requiredPermissions:"Permisos Requeridos",requiredPermissionsDesc:"Permisos necesarios para el correcto funcionamiento",permissionsSyncHint:"El estado se sincroniza con el navegador. Refresque si lo cambió externamente.",refreshStatus:"Actualizar Estado",refreshing:"Actualizando...",permissionsRefreshed:"Estado de permisos actualizado",granted:"Concedido",notGranted:"No Concedido",revoke:"Revocar",grant:"Conceder",allowRecommended:"Permitir (Recomendado)",required:"Requerido",permissionWebdavAccess:"Acceso a Funciones Avanzadas",permissionWebdavAccessDesc:"Acceso a todos los sitios. Necesario para WebDAV y quitar marcas de agua.",permissionStorage:"Almacenamiento",permissionStorageDesc:"Para guardar ajustes, prompts y datos de conversación.",permissionNotifications:"Notificaciones",permissionNotificationsDesc:"Opcional. Para avisar cuando la IA termine de responder.",permissionCookies:"Gestión de Cookies",permissionCookiesDesc:"Gestionar cookies de Claude para cambio rápido de SessionKey.",permissionTabs:"Pestañas",permissionTabsDesc:"Opcional. Para detectar estado de pestañas y gestionar sesiones.",permissionDNR:"Reglas de Red",permissionDNRDesc:"Opcional. Para modificar cabeceras (como quitar marcas de agua).",generalTab:"General",tabSettingsTab:"Pestañas",generalSettings:"Ajustes Generales",panelTab:"Panel",tabOrderTab:"Orden",shortcutsTab:"Atajos",panelSettings:"Ajustes del Panel",themePresetsTab:"Temas",customStylesTab:"Estilos Propios",pleaseEnterStyleName:"Escriba un nombre para el estilo",enterStyleName:"Nombre del estilo",lightMode:"Modo Claro",darkMode:"Modo Oscuro",code:"Código",create:"Crear",unnamedStyle:"Estilo sin nombre",layoutTab:"Diseño",contentStyleTab:"Procesamiento",claudeSettingsTab:"Ajustes de Claude",pageWidthSettings:"Ancho de Página",layoutSettingsTitle:"Control de Ancho",tabLayout:"Diseño",tabModelLock:"Bloqueo de Modelo",tabGemini:"Gemini",enablePageWidthDesc:"Ajustar el ancho máximo del chat",userQueryWidthSettings:"Ancho de Usuario",scrollSettings:"Desplazamiento",contentProcessing:"Procesamiento de Contenido",contentProcessingDesc:"Configurar cómo se tratan las respuestas",interactionEnhance:"Mejoras de Interacción",interactionEnhanceDesc:"Mejorar tablas y fórmulas",exportSettings:"Exportación",outlineSettingsDesc:"Configurar generación de índice",outlineUpdateIntervalDesc:"Intervalo de actualización (segundos)",conversationsSettingsDesc:"Sincronización y visualización",readingHistoryDesc:"Recordar posición de lectura",day:"día",days:"días",forever:"Siempre",localBackupTab:"Copia Local",webdavTab:"Sincro WebDAV",localBackupDesc:"Exportar datos a un archivo JSON local",webdavServerDesc:"Servidor WebDAV para la nube",backupManagementDesc:"Test, subir o restaurar desde la nube",allDataCleared:"Datos borrados, recargando...",clearError:"Error al borrar",webdavBackupList:"Lista de WebDAV",noBackupsFound:"Sin copias de seguridad",loading:"Cargando...",version:"Versión",aboutDescription:"{appName} es una extensión diseñada para Gemini, ChatGPT, Claude, AI Studio y Grok. Mejora tu flujo de trabajo con gestión de chats, índices inteligentes y biblioteca de prompts, ofreciendo utilidades como historial de lectura, anclajes, eliminación de marcas de agua, avisos de finalización y bloqueo de modelo. Con amplias opciones de personalización, {appName} asegura una experiencia de IA más fluida.",projectLinks:"Enlaces del Proyecto",githubDesc:"Código fuente, reportes o contribuir",giveStar:"Dar Estrella en GitHub",projectWebsite:"Sitio Oficial",websiteDesc:"Documentación y guías",visitWebsite:"Visitar Web",rateAndReview:"¿Te gusta Ophel?",rateDesc:"Si te gusta Ophel, ¡por favor califícanos con 5 estrellas! Nos ayuda mucho.",chromeStore:"Chrome Store",firefoxAddons:"Complemento de Firefox",greasyFork:"Greasy Fork",reviewBtn:"Calificar",starBtn:"Star",credits:"Créditos",devAndMaintain:"Desarrollo y mantenimiento",creditsDesc:"Gracias a todos los contribuyentes. Ophel se basa en excelentes proyectos de código abierto.",privacyTitle:"Privacidad",reportIssue:"Reportar Problema",changelog:"Cambios",techStack:"Tecnología",privacyStatement:"Política de Privacidad",privacyText:"Tus datos se guardan localmente en el navegador. La sincronización WebDAV solo usa tu propio servidor configurado.",license:"Licencia",tabBehaviorTitle:"Comportamiento",notificationSettings:"Acciones al Finalizar",enablePrerequisiteToast:'Activa primero "{setting}"',privacyModeTitle:"Modo Privado",collapsedButtonsOrderTitle:"Botones Rápidos",quickButtonsOpacityLabel:"Quick buttons opacity",quickButtonsOpacityDesc:"Adjust overall opacity of the quick buttons",searchPlaceholder:"Buscar prompts...",addPrompt:"Nuevo Prompt",allCategory:"Todo",uncategorized:"Sin Categoría",manageCategory:"⚙ Gestionar",currentPrompt:"Actual: ",scrollTop:"Arriba",scrollBottom:"Abajo",refresh:"Recargar",collapse:"Contraer",edit:"Editar",delete:"Borrar",copy:"Copiar",addBookmark:"Añadir a favoritos",removeBookmark:"Eliminar de favoritos",bookmarkContentMissing:"Falta contenido favorito",bookmarkMode:"Favoritos",outlineNoBookmarks:"No hay favoritos",outlineAddBookmarkHint:"Haz clic en la estrella junto al elemento para añadir a favoritos",bookmarkModeDisabled:"No disponible en modo favoritos",drag:"Arrastrar",save:"Guardar",cancel:"Cancelar",close:"Cerrar",add:"Añadir",confirm:"Confirmar",export:"Exportar Markdown",clear:"Limpiar",error:"Error",operationFailed:"Operaci?n fallida",deleteSuccess:"Eliminado con ?xito",deleteError:"Error al eliminar",restoreError:"Error al restaurar",insertFailed:"Error al insertar",maximize:"Maximizar",browse:"Buscar...",clearAllData:"Borrar Todo",clearAllDataDesc:"Cuidado: Se perderán todos los datos y ajustes.",clearAllDataConfirm:"¿Seguro que quieres borrar todo? Esta acción no se puede deshacer.",clearSuccess:"Datos borrados, recargando...",defaultDir:"Carpeta por defecto",dangerZone:"Zona Peligrosa",dangerZoneDesc:"Acciones irreversibles",anchorPoint:"Anclaje",updateAnchor:"Actualizar Anclaje",goToAnchor:"Volver al anclaje",title:"Título",category:"Categoría",categoryPlaceholder:"Ej: Código, Traducción",content:"Contenido del Prompt",editPrompt:"Editar Prompt",addNewPrompt:"Añadir Prompt",fillTitleContent:"Rellena título y contenido",promptUpdated:"Prompt actualizado",promptAdded:"Prompt añadido",deleted:"Borrado",promptPin:"Fijar",promptUnpin:"Desfijar",promptVariableTitle:"Variables",promptVariablePlaceholder:"Escribre...",promptImport:"Importar",promptExport:"Exportar",promptImportTitle:"Importar Prompts",promptImportMessage:"Confirmar para reemplazar, Cancelar para combinar",promptImportSuccess:"Importado con éxito",promptImportFailed:"Fallo al importar",promptExportSuccess:"Exportado con éxito",promptRecentUsed:"Recientes",promptMarkdownPreview:"Previsualizar",promptImportMessage2:"Se hallaron {count} prompts. Elige método:",promptImportOverwriteDesc:"Sobrescribir: Reemplaza todo lo actual",promptImportMergeDesc:"Combinar: Actualiza existentes y añade nuevos",promptMerge:"Combinar",promptOverwrite:"Sobrescribir",promptMergeSuccess:"Combinado: {updated} actualizados, {added} nuevos",promptSettingsTitle:"Configuración de prompts",promptSettingsDesc:"Configura las interacciones en la pestaña de prompts",promptSubmitShortcutLabel:"Atajo de envío",promptSubmitShortcutDesc:"Se aplica tanto al envío manual como al envío automático de prompts.",promptSubmitShortcutEnter:"Enter",promptSubmitShortcutCtrlEnter:"Ctrl + Enter",promptDoubleClickSendLabel:"Enviar prompt con doble clic",promptDoubleClickSendDesc:"Si está activado, al hacer doble clic se envía el prompt directamente. Los prompts con variables se envían tras confirmar.",promptSent:"Prompt enviado",promptSendFailed:"No se pudo enviar; el prompt permanece en el cuadro de entrada",copied:"Copiado al portapapeles",cleared:"Limpio",refreshed:"Actualizado",orderUpdated:"Orden actualizado",inserted:"Prompt insertado",scrolling:"Desplazando, espera...",noTextarea:"No se halló el cuadro de texto",confirmDelete:"¿Borrar este prompt?",settingsTitle:"Ajustes",panelSettingsTitle:"Ajustes del Panel",settingOn:"ON",settingOff:"OFF",modelLockTitle:"Bloqueo de Modelo",modelLockEnabledLabel:"Activar Bloqueo",modelLockEnabledDesc:"Cambiar automáticamente al entrar",modelLockLabel:"Modelo a Bloquear",modelLockDesc:"Se cambiará a este modelo al cargar",modelKeywordLabel:"Palabra Clave",modelKeywordPlaceholder:"Ej: 3 Pro",modelKeywordExample:"Ej: 3 Pro",modelKeywordDesc:"Para identificar el modelo",modelLockFailedNoButton:"Selector no hallado",modelLockFailedMenuEmpty:"Error al cargar menú",modelLockFailedNotFound:'Modelo "{model}" no hallado',userQueryWidthDesc:"Ancho máximo del globo de usuario (por sitio)",categoryManage:"Categorías",categoryEmpty:"Sin categorías aún.",rename:"Renombrar",newCategoryName:"Nuevo nombre:",categoryRenamed:"Nombre cambiado",confirmDeleteCategory:"¿Borrar categoría? Los prompts pasarán a 'Sin Categoría'.",categoryDeleted:"Categoría borrada",promptCountSuffix:" prompt(s)",categoryRenamedTo:"Renombrado a '{name}'",confirmDeleteCategoryMsg:"¿Borrar '{name}'?",categoryDeletedMsg:"'{name}' borrada",languageLabel:"Idioma",languageDesc:"Idioma del panel (cambio inmediato)",languageAuto:"Auto",languageZhCN:"简体中文",languageZhTW:"繁體中文",languageEn:"English",themeLabel:"Tema",themeAuto:"Auto",themeSettings:"Ajustes de Tema",currentThemeMode:"Modo actual",themeSettingsDesc:"Elegir estilos claro/oscuro",themeLight:"Claro",themeSystem:"Sistema",customCSS:"Estilos CSS",customCSSDesc:"Tus propios estilos CSS",customCSSTemplate:"Insertar Plantilla",addCustomStyle:"Añadir",noCustomStyles:"Sin estilos propios aún.",editStyle:"Editar",deleteStyle:"Borrar",confirmDeleteStyle:"¿Borrar este estilo?",styleNameLabel:"Nombre",styleNamePlaceholder:"Nombre del estilo",styleModeLabel:"Modo",styleModeLight:"☀️ Claro",styleModeDark:"🌙 Oscuro",styleCSSLabel:"Código CSS",styleCreated:"Estilo creado",styleUpdated:"Estilo actualizado",styleDeleted:"Estilo borrado",styleNameRequired:"Nombre obligatorio",newStyle:"Nuevo Estilo",editStyleTitle:"Editar Estilo",lightModePreset:"Tema Claro",lightModePresetDesc:"Solo para modo claro",darkModePreset:"Tema Oscuro",darkModePresetDesc:"Solo para modo oscuro",primaryColor:"Primario",secondaryColor:"Secundario","themePreset_google-gradient":"Gradiente Google",themePreset_purple:"Violeta",themePreset_ocean:"Azul Océano","themePreset_classic-dark":"Oscuro Clásico","themePreset_midnight-blue":"Azul Medianoche",themePreset_forest:"Bosque Oscuro",themePreset_sakura:"Cerezo",themePreset_mint:"Menta",themePreset_nordic:"Nórdico",themePreset_cyberpunk:"Ciberpunk",themePreset_coffee:"Café",themePreset_sunset:"Atardecer","themePreset_lemon-soda":"Limón","themePreset_ancient-scroll":"Pergamino","themePreset_mono-pro":"Mono Pro",themePreset_dracula:"Drácula","themePreset_deep-abyss":"Abismo","themePreset_crimson-moon":"Luna Roja",themePreset_porcelain:"Porcelana",themePreset_shortbread:"Galleta","themePreset_unicorn-dream":"Unicornio","themePreset_retro-terminal":"Terminal Retro","themePreset_eva-unit-01":"EVA-01",themePreset_aurora:"Aurora",outlineLevel1:"Solo Nivel 1",outlineLevel2:"Hasta Nivel 2",outlineLevel3:"Hasta Nivel 3",readingHistorySettings:"Historial de Lectura",readingHistoryTitle:"Historial de Lectura",readingHistoryPersistenceLabel:"Activar Historial",readingHistoryPersistenceDesc:"Recordar posición y volver al cargar",readingHistoryAutoRestoreLabel:"Auto Restaurar",readingHistoryAutoRestoreDesc:"Saltar a la última posición al abrir",readingHistoryCleanup:"Retención",readingHistoryCleanupDesc:"Cuánto tiempo se guarda el progreso (-1 para siempre)",daysSuffix:" Días",cleanupInfinite:"Siempre",contentExportSettingsTitle:"Ajustes de Contenido",markdownFixLabel:"Arreglo de Negritas",markdownFixDesc:"Corregir sintaxis de negritas en Gemini",exportImagesToBase64Label:"Imágenes a Base64",exportImagesToBase64Desc:"Convertir fotos a texto para ver offline",userQueryMarkdownLabel:"Markdown en Usuario",userQueryMarkdownDesc:"Formatear tus mensajes también",watermarkRemovalLabel:"Quitar Marcas de Agua",watermarkRemovalDesc:"Borrar marcas de NanoBanana automáticamente",refreshPrompts:"Refrescar Prompts",themeDark:"Oscuro",pageWidthLabel:"Ancho de Página",pageWidthValueLabel:"Valor de Ancho",pageWidthDesc:"Ancho del chat (por sitio)",enablePageWidth:"Activar Ampliación",widthValue:"Ancho",widthUnit:"Unidad",navContent:"Contenido",unitPx:"Píxeles (px)",unitPercent:"Porcentaje (%)",enableUserQueryWidth:"Ampliación de Usuario",enableUserQueryWidthDesc:"Globo del usuario más ancho",userQueryWidthValueLabel:"Ancho",tabSettingsTitle:"Pestañas",openNewTabLabel:"Nuevo Chat en Pestaña",openNewTabDesc:"Botón para abrir chat nuevo aparte",newTabTooltip:"Nuevo chat en otra pestaña",autoRenameTabLabel:"Auto Nombre de Pestaña",autoRenameTabDesc:"Poner el nombre del chat en la pestaña",renameIntervalLabel:"Intervalo",renameIntervalDesc:"Frecuencia de chequeo",secondsSuffix:"s",showStatusLabel:"Mostrar Estado",showStatusDesc:"Icono de carga en pestaña (⏳/✅)",showNotificationLabel:"Notificación Escritorio",showNotificationDesc:"Avisar cuando termine de escribir",notificationSoundLabel:"Sonido de Aviso",notificationSoundDesc:"Reproducir sonido al terminar",notificationVolumeLabel:"Volumen",notifyWhenFocusedLabel:"Avisar Aun Con Foco",notifyWhenFocusedDesc:"Enviar aviso aunque estés viendo la página",autoFocusLabel:"Auto Poner la Ventana al Frente",autoFocusDesc:"Traer al frente al terminar",privacyModeLabel:"Modo Privado",privacyModeDesc:"Título falso (doble clic arriba)",privacyTitleLabel:"Título Falso",privacyTitlePlaceholder:"Ej: Google, Trabajo",titleFormatLabel:"Formato del Título",titleFormatDesc:"Formato libre: {status}, {title}, {model}",notificationTitle:"✅ {site} Finalizado",notificationBody:"Clic para ver resultado",tabOutline:"Índice",outlineEmpty:"Sin contenido",outlineEmptyDescDefault:"Los elementos del índice aparecerán automáticamente a medida que avance la conversación.",outlineEmptyDescUserQueryOnly:"Por ahora solo se muestran las preguntas del usuario. Envía un mensaje para generar elementos del índice.",outlineRefresh:"Recargar",outlineSettings:"Ajustes de Índice",bookmarkSettings:"Ajustes de Marcadores",bookmarkModeDisableLevel:"No se pueden ajustar los niveles en el modo marcadores",bookmarkSettingsDesc:"Configuración relacionada con marcadores",inlineBookmarkModeLabel:"Iconos de marcadores",inlineBookmarkModeDesc:"Controlar visibilidad junto a los encabezados",panelBookmarkModeLabel:"Iconos del panel",panelBookmarkModeDesc:"Controlar visibilidad de marcadores en el panel",inlineBookmarkModeAlways:"Siempre visible",inlineBookmarkModeHover:"Al pasar el cursor",inlineBookmarkModeHidden:"Oculto",enableOutline:"Activar Índice",outlineMaxLevel:"Niveles",outlineLevelAll:"Todos (1-6)",refreshOutline:"Refrescar Índice",refreshSettings:"Actualización",jumpToAnchor:"Volver atrás",outlineScrollBottom:"Ir al final",outlineScrollTop:"Ir al inicio",outlineExpandAll:"Expandir todo",outlineCollapseAll:"Contraer todo",outlineLocateCurrent:"Ubicar posición actual",outlineSearch:"Buscar en índice...",outlineSearchResult:" resultado(s)",outlineLevelHint:"títulos",refreshConversations:"Refrescar chats",syncingConversations:"Sincronizando...",grokSyncingConversations:"Sincronizando chats, espera...",tabOrderSettings:"Distribución UI",tabOrderDesc:"Orden de las pestañas del panel",moveUp:"Subir",moveDown:"Bajar",readingNavigationSettings:"Navegación",restoredPosition:"Posición recuperada",cleanupDone:"Datos caducos limpios",outlineAutoUpdateLabel:"Auto Actualizar Índice",outlineAutoUpdateDesc:"Refrescar mientras habla la IA",outlineUpdateIntervalLabel:"Segundos",outlineShowUserQueries:"Ver dudas usuario",outlineShowUserQueriesTooltip:"Ver dudas usuario",outlineOnlyUserQueries:"Solo dudas",globalSearchOutlineReplies:"Respuestas",outlineIntervalUpdated:"Ajustado a {val}s",outlineSyncScrollLabel:"Sincro de Scroll",outlineSyncScrollDesc:"Resaltar índice según bajas por página",outlineFollowModeLabel:"Modo de Seguimiento",outlineFollowCurrent:"Seguir Posición",outlineFollowLatest:"Seguir Último",outlineFollowManual:"Manual",outlineFollowCurrentDesc:"Resaltar donde estás leyendo",outlineFollowLatestDesc:"Bajar solo con mensajes nuevos",outlineFollowManualDesc:"Sin auto-bajada, tú mandas",outlineShowWordCountLabel:"Mostrar recuento",outlineShowWordCountDesc:"Mostrar número de palabras por sección en el tooltip",words:"palabras",pageDisplaySettings:"Visualización",otherSettingsTitle:"Otros",showCollapsedAnchorLabel:"Anclaje",showCollapsedAnchorDesc:"Botón de anclaje en barra lateral",showCollapsedThemeLabel:"Tema",floatingToolbarLabel:"Barra de herramientas flotante",tools:"Caja de herramientas",cleanup:"Borrar marcadores inválidos",floatingToolbarMore:"Más",floatingToolbarClearGhost:"Borrar marcadores inválidos",floatingToolbarClearGhostConfirm:"¿Borrar {count} marcadores inválidos en esta sesión?",floatingToolbarClearGhostEmpty:"No hay marcadores inválidos para borrar.",showCollapsedThemeDesc:"Cambio de tema en barra lateral",collapsedButtonsOrderDesc:"Orden de botones en barra lateral",preventAutoScrollLabel:"Evitar Auto-Scroll",preventAutoScrollDesc:"Que no baje solo mientras escribe la IA",defaultPanelStateLabel:"Abierto por Defecto",defaultPanelStateDesc:"Panel desplegado al cargar",autoHidePanelLabel:"Cerrar al Clic Fuera",autoHidePanelDesc:"Minimizar en bola flotante al hacer clic fuera",autoHidePanelDescEdgeSnap:"Retraer al borde al hacer clic fuera",edgeSnapHideLabel:"Imán en los Bordes",edgeSnapHideDesc:"Se esconde al borde y sale al pasar el ratón",edgeSnapThresholdLabel:"Sensibilidad",edgeSnapThresholdDesc:"Distancia para que salte el imán",defaultPositionLabel:"Lado de Inicio",defaultPositionDesc:"Dónde aparece al cargar",defaultPositionLeft:"Izquierda",defaultPositionRight:"Derecha",defaultEdgeDistanceLabel:"Margen",defaultEdgeDistanceDesc:"Distancia al borde",panelWidthLabel:"Ancho del panel",panelWidthDesc:"Ancho del panel (px)",panelHeightLabel:"Altura",panelHeightDesc:"% de pantalla",disableOutline:"Sin Índice",togglePrompts:"Ver Prompts",toggleConversations:"Ver Chats",tabConversations:"Chats",conversationsEmpty:"Sin chats",conversationsEmptyHint:"Dale a sincronizar arriba",conversationsSync:"Sincro",conversationsSyncing:"Sincronizando...",conversationsSynced:"Listo",conversationsAddFolder:"Carpeta",conversationsRename:"Renombrar",conversationsDelete:"Borrar",conversationsDeleteConfirm:"¿Borrar carpeta? Los chats irán a Entrada.",conversationsFolderCreated:"Creada",conversationsFolderRenamed:"Renombrada",conversationsFolderDeleted:"Borrada",conversationsCannotDeleteDefault:"No borrable",conversationsIcon:"Icono",conversationsFolderName:"Nombre",conversationsFolderNamePlaceholder:"Escribe nombre...",conversationsSyncEmpty:"Sin chats",conversationsSyncNoChange:"Sin cambios",conversationsLocate:"Ubicar actual",conversationsLocateSuccess:"Hallado",conversationsLocateNotFound:"No hallado, sincronizando...",conversationsLocateNewChat:"Chat nuevo (sin guardar)",conversationsLocateSyncFailed:"Sigue sin hallarse",justNow:"Ahora",minutesAgo:"min atrás",hoursAgo:"h atrás",daysAgo:"días atrás",conversationsSelectFolder:"Destino",conversationsMoveTo:"Mover...",conversationsSetTag:"Establecer etiqueta",conversationsMoved:"Movido a: ",conversationsSyncDeleteTitle:"Sincro de Borrado",conversationsSyncDeleteMsg:"Detectados {count} borrados arriba. ¿Borrar aquí también?",conversationsDeleted:"Quitado",conversationsSettingsTitle:"Ajustes de Chats",conversationsSyncUnpinLabel:"Sincro Desfijar",conversationsSyncUnpinDesc:"Desfijar si se hizo en la nube",folderRainbowLabel:"Carpetas Arcoíris",folderRainbowDesc:"Colores aleatorios para carpetas",conversationsSyncDeleteLabel:"Borrar en Nube",conversationsSyncDeleteDesc:"Al borrar el registro local, borrar también la conversación en la nube del sitio correspondiente",conversationsSyncRenameLabel:"Renombrar en Nube",conversationsSyncRenameDesc:"Cambiar nombre en {site} también",conversationsCustomIcon:"Icono Propio",batchSelected:"{n} elegidos",batchMove:"Mover",batchDelete:"Borrar",batchExit:"Salir",batchExport:"Exportar",exportToMarkdown:"Markdown",exportToJSON:"JSON",exportLoading:"Cargando...",exportSuccess:"Éxito",exportFailed:"Fallo",exportNoContent:"Vacío",copySuccess:"Copiado",copyFailed:"Fallo copia",exportNeedOpenFirst:"Abre primero el chat",exportUserLabel:"Yo",exportMetaTitle:"Ficha",exportMetaConvTitle:"Título",exportMetaTime:"Fecha",exportMetaSource:"Origen",exportNotSupported:"No soportado aquí",exportToTXT:"TXT",exportMetaUrl:"URL",exportUntitled:"Sin Título",exportToClipboard:"Copiar Markdown",conversationsRefresh:"Recargar",conversationsSearchFolder:"Buscar carpeta...",conversationsSearchPlaceholder:"Buscar chat...",conversationsSearchResult:" resultado(s)",conversationsNoSearchResult:"Sin resultados",conversationsSetTags:"Etiquetas",conversationsNewTag:"Nueva",conversationsTagName:"Nombre",conversationsTagColor:"Color",conversationsFilterByTags:"Filtrar por Etq.",conversationsClearTags:"Limpiar",conversationsTagCreated:"Creada",conversationsTagUpdated:"Actualizada",conversationsTagDeleted:"Borrada",conversationsTagExists:"Ya existe",conversationsSelectTag:"Elige",conversationsExistingTags:"Viejas",conversationsEditTag:"Editar",conversationsCancelEdit:"No",conversationsSelectColor:"Color",conversationsCollapseColor:"Cerrar",conversationsUpdateTag:"Guardar",conversationsNoTags:"Nada",conversationsManageTags:"Gestionar",conversationsDeleteTag:"Borrar",conversationsPin:"Fijar 📌",conversationsUnpin:"Fijar",conversationsPinned:"Listo",conversationsUnpinned:"Fuera",conversationsFilterPinned:"Solo fijos",conversationsClearAll:"Limpiar todo",conversationsBatchMode:"Modo lote",formulaCopyLabel:"Doble clic copia fórmula",formulaCopyDesc:"Copia fuente LaTeX (no en todos los sitios)",formulaCopied:"Copiada",formulaDelimiterLabel:"Añadir $ o $$",formulaDelimiterDesc:"Según el tipo de fórmula automáticamente",tableCopyLabel:"Copiar Tabla",tableCopyDesc:"Botón para copiar tabla como Markdown",tableCopied:"Tabla copiada",dataManagementTitle:"Datos",dataManagementDesc:"Todo lo que tienes aquí",exportDataBtn:"Exportar Todo",importDataBtn:"Importar Datos",exportError:"Fallo: ",importConfirm:"¿Seguro? Se pisará todo lo actual.",importSuccess:"Éxito. Recargando...",importError:"Fallo: ",invalidBackupFile:"Formato mal",backupValidationInvalidFormat:"Formato mal",backupValidationMissingVersion:"Falta versión",backupValidationMissingData:"Faltan datos",backupValidationSettingsType:"Ajustes mal",backupValidationPromptsType:"Prompts mal",backupValidationFoldersType:"Folders mal",backupValidationConversationsType:"Chats mal",backupValidationHistoryType:"Historial mal",backupTime:"Hora",backupType:"Tipo",openAiPagesWillRefresh:"Las páginas de AI abiertas se actualizarán.",dataManagementNote:"Para copias o mudanza de PC. Incluye todo (ajustes, chats, prompts).",permissionRequired:"Falta Permiso",webdavPermissionDesc:"Falta acceso al dominio WebDAV.",webdavSectionTitle:"Sincro Nube (WebDAV)",webdavDesc:"Usar Nextcloud, Owncloud, etc.",webdavUrlLabel:"URL",webdavUsernameLabel:"Usuario",webdavUsernamePlaceholder:"Email",webdavPasswordLabel:"Clave",webdavPasswordPlaceholder:"Clave de API/App",webdavRemotePathLabel:"Ruta remota",webdavTestBtn:"Test",webdavUploadBtn:"Subir",webdavDownloadBtn:"Bajar",webdavDownloadConfirm:"Bajar pisará lo de ahora. ¿Seguir?",webdavLastSync:"Última",webdavConnectionSuccess:"OK",webdavUploadSuccess:"Subido",webdavDownloadSuccess:"Bajado",webdavConfigIncomplete:"Falta config",webdavAuthFailed:"Usuario/Clave mal",webdavConnectionFailed:"Fallo red",webdavUploadFailed:"Fallo subida",webdavDownloadFailed:"Fallo bajada",webdavFileNotFound:"No hay archivo",webdavInvalidFormat:"Archivo mal",exportData:"Sacar Datos",exportDataDesc:"Guardar JSON en PC",importData:"Meter Datos",importDataDesc:"Traer desde archivo",fullBackup:"Copia Total",fullBackupDesc:"Todo de todo (Recomendado)",promptsBackup:"Solo Prompts",promptsBackupDesc:"Sin carpetas ni etiquetas",settingsBackup:"Solo Ajustes",settingsBackupDesc:"Ajustes visuales y gustos",selectFile:"Elegir archivo",noFileSelected:"Ninguno",dataPreview:"Vistazo",pastePlaceholder:"Copia aquí el JSON o búscalo arriba...",importBtn:"Cargar",webdavConfig:"Config WebDAV",webdavConfigDesc:"Servidor para copias",webdavAddress:"URL WebDAV",username:"Usuario",password:"Clave",saveConfig:"Guardar",saveSuccess:"Guardado",backupEncryption:"Cifrado",backupEncryptionDesc:"Clave para las copias (no la olvides)",encryptionPassword:"Clave de Cifrado",encryptionPasswordPlaceholder:"Para subir y bajar con seguridad",restoreTip:"Consejo",restoreTipContent:"Bajar de la nube no pisa tu conexión WebDAV actual para que no te quedes fuera si la copia es vieja.",backupAndRestore:"Copia y Restauración",webdavServerSettings:"Servidor WebDAV",webdavRemoteDirLabel:"Ruta",backupManagement:"Gestor",backupNow:"Copiar ahora",restore:"Restaurar",localBackup:"Local",exportToFile:"Fichero",importBackupFile:"Traer fichero",permAllUrlsTitle:"Acceso a Todo",permAllUrlsDesc:"Para WebDAV y quitar marcas de agua.",permWebdavTitle:"Acceso Red",permWebdavDesc:"Sincro WebDAV necesita ver tu servidor. Podrás usar backups tras aceptar.",permTabsTitle:"Pestañas",permTabsDesc:"Para renombrar pestañas y modo privado.",permNotifyTitle:"Notificaciones",permNotifyDesc:"Avisar cuando la IA termine.",permCookiesTitle:"Cookies",permCookiesDesc:"Para cambiar SessionKeys de Claude rápido.",permDNRTitle:"Reglas de Red Opc.",permDNRDesc:"Para quitar marcas de agua en fotos.",permissionRequestToast:"Acepta en la ventanita por favor",permissionDialogAllow:"Aceptar",permissionGranted:"Aceptado",permissionDenied:"Denegado",revokeConfirmDefault:"¿Quitar permiso? Dejarán de ir algunas cosas.",revokeConfirmNotifications:"¿Sin avisos? Se apagará [Notificaciones].",revokeConfirmWebdav:"¿Quitar acceso avanzado? Fallarán [Marcas de agua] y [WebDAV].",warning:"Aviso",windowClosing:"Cerrando...",allow:"Aceptar",defaultPromptTranslateTitle:"Traductor Pro",defaultPromptTranslateCategory:"Traducción",defaultPromptTranslateContent:"Soy traductor con 20 años de experiencia. Traduciré al {{target_language}}:\n\nMetas:\nFidelidad plena al original.\nFluidez natural (sin sonar a robot).\nMismo tono (profesional, bromista, serio).\n\nTexto: {{text}}",defaultPromptCodeOptTitle:"Mejorar Código",defaultPromptCodeOptCategory:"Programación",defaultPromptCodeOptContent:"Experto en {{language}}. Revisa y aplica 'Clean Code':\n\n**Código**:\n{{code}}\n\n**Metas**:\n1. Quitar lo que sobra.\n2. Mejores nombres (estilo {{language}}).\n3. Añadir control de fallos.\n4. Foco en [lectura], [fuerza] y [futuro].\n5. Usa {{version}} actual.\n\nDame el código y luego un resumen de mejoras.",navShortcuts:"Atajos de Teclado",shortcutsPageDesc:"Atajos para ir más rápido",shortcutsInteractionGroup:"Ajustes independientes",shortcutsInteractionGroupDesc:"Los ajustes de este grupo están siempre activos y no se ven afectados por la opción Activar atajos personalizados",shortcutsGlobalSettings:"Ajustes de Atajos",enableShortcuts:"Activar atajos personalizados",enableShortcutsDesc:"Activar o desactivar todos los atajos de teclado personalizados",globalShortcutUrl:"URL Atajo Global",globalShortcutUrlDesc:"Qué abrir al pulsar Alt+G",resetShortcuts:"Poner Defecto",resetShortcutsConfirm:"¿Resetear todos a fábrica?",pressAnyKey:"Pulsa una tecla...",shortcutConflictWith:"Choca con",shortcutConflict:"",globalShortcutsTitle:"Globales",globalShortcutsDesc:"Van en cualquier web. Ponlos en la gestión de Chrome.",openBrowserShortcuts:"Config de Chrome",shortcutNotSet:"No configurado",shortcutRemove:"Eliminar",shortcutCategoryNavigation:"Ir a",shortcutCategoryPanel:"Panel",shortcutCategoryOutline:"Índice",shortcutCategoryConversation:"Chats",shortcutCategoryEdit:"Control de interacción",shortcutScrollTop:"Subir del todo",shortcutScrollBottom:"Bajar del todo",shortcutGoToAnchor:"Ir al anclaje",shortcutTogglePanel:"Expandir/Contraer Panel",shortcutToggleTheme:"Cambiar Tema",shortcutOpenSettings:"Abrir Ajustes",shortcutSwitchTab1:"Pestaña 1",shortcutSwitchTab2:"Pestaña 2",shortcutSwitchTab3:"Pestaña 3",shortcutRefreshOutline:"Refrescar Índice",shortcutToggleOutlineExpand:"Abrir/Cerrar todo (Índice)",shortcutExpandLevel1:"Índice Lvl 1",shortcutExpandLevel2:"Índice Lvl 2",shortcutExpandLevel3:"Índice Lvl 3",shortcutExpandLevel4:"Índice Lvl 4",shortcutExpandLevel5:"Índice Lvl 5",shortcutExpandLevel6:"Índice Lvl 6",shortcutToggleUserQueries:"Ver mis dudas",shortcutToggleBookmarks:"Mostrar favoritos",shortcutOnlyUserQueries:"Solo mis preguntas",shortcutPrevHeading:"Título anterior",shortcutNextHeading:"Título siguiente",shortcutLocateOutline:"Ubicar en Índice",shortcutSearchOutline:"Buscar en Índice",shortcutNewConversation:"Nuevo Chat",shortcutRefreshConversations:"Refrescar Chats",shortcutLocateConversation:"Ubicar Chat",shortcutPrevConversation:"Chat anterior",shortcutNextConversation:"Chat siguiente",shortcutExportConversation:"Exportar Chat",shortcutCopyLatestReply:"Copiar última respuesta",shortcutCopyLastCodeBlock:"Copiar último bloque código",shortcutToggleScrollLock:"Evitar desplazamiento automático al fondo",shortcutFocusInput:"Ir al cuadro texto",shortcutStopGeneration:"Parar IA",shortcutTogglePromptQueue:"Alternar cola de comandos",shortcutShowShortcuts:"Ver Atajos",shortcutShowModelSelector:"Ver Modelos",shortcutCategoryHelp:"Ayuda",shortcutCategorySettings:"Ajustes",shortcutOpenClaudeSettings:"Ajustes Claude",shortcutSwitchClaudeKey:"Cambiar Clave Claude",shortcutOpenGeminiSettings:"Ajustes Gemini",shortcutOpenThemeSettings:"Ajustes Tema",shortcutOpenModelLockSettings:"Ajustes Bloqueo Modelo",scrolledToTop:"Arriba",scrolledToBottom:"Abajo",outlineRefreshed:"Índice al día",conversationsRefreshed:"Chats al día",locatingOutline:"Buscando...",locatingConversation:"Buscando chat...",noConversationToLocate:"No hay chat",outlineDisabled:"Índice apagado",conversationsDisabled:"Chats apagado",exportStarted:"Exportando...",replyCopied:"Respuesta copiada",noReplyToCopy:"Nada que copiar",scrollLockToggled:"Scroll cambiado",browserNotSupported:"Navegador no compatible",inputFocused:"Escribiendo ya",generationStopped:"Parado",notGenerating:"No está hablando",noConversations:"Sin chats",untitledConversation:"Sin título",noCodeBlock:"Sin código",codeBlockCopied:"Código copiado",modelSelectorNotFound:"No hay selector",geminiSettingsTab:"Solo Gemini",claudeSessionKeyTitle:"Gestión de Sesiones",claudeSessionKeyDesc:"Cuentas de Claude",claudeCurrentUsing:"Usando:",claudeNoKeySelected:"Nada - añade una",claudePleaseAddKey:"Añade una sesión",claudeAddKey:"Añadir",claudeImportFromBrowser:"Del navegador",claudeImportJSON:"Meter JSON",claudeExportJSON:"Sacar JSON",claudeNoKeys:"Sin sesiones",claudeNoKeysHint:"Usa 'Añadir' para empezar",claudeKeyValid:"Bien",claudeKeyInvalid:"Mal",claudeKeyUntested:"Sin test",claudeKeyUsing:"En uso",claudeKeyUse:"Usar",claudeKeyTest:"Test",claudeKeyDelete:"Borrar",claudeKeyCopied:"Copiada",claudeKeyCopyFailed:"Fallo",claudeKeyDoubleTapCopy:"Doble clic copia toda",claudeCopyKey:"Copiar sesión",claudeCopied:"Hecho",claudeAlreadyUsing:"Ya la usas",claudePleaseSelectKey:"Elige una sesión",claudeKeyImported:"Ok, probando...",claudeKeyAdded:"Sesión añadida",claudeKeySwitched:"Cambiada. Recargando...",claudeKeyDeleted:"Borrada",claudeKeyTesting:"Probando...",claudeGenerating:"IA ocupada, espera",claudeAddKeyNameTitle:"Nombre",claudeAddKeyNamePlaceholder:"Ej: Principal, Backup",claudeAddKeyValueTitle:"Clave",claudeAddKeyValuePlaceholder:"sk-ant-sid01-...",claudeImportNameTitle:"Nombre",claudeImportNamePlaceholder:"Nombre para importar",claudeDeleteConfirmTitle:"Borrar sesión",claudeDeleteConfirmMsg:"¿Borrar '{name}'?",claudeNameRequired:"Falta nombre",claudeKeyRequired:"Falta clave",claudeKeyInvalidFormat:"Formato mal",claudeKeyExists:"Ya la tienes",claudeNoTokensToExport:"Nada que sacar",claudeExported:"Exportado",claudeInvalidJSON:"JSON mal",claudeNoNewTokens:"Nada nuevo",claudeImported:"Metidas {count} sesiones",claudeTokenExists:"Ya existe: {name}",claudeNoCookieFound:"Sin cookie",claudeRequestPermission:"Acepta cookies en la ventanita",claudeNotOnSiteWarning:"Solo en claude.ai",claudeNotOnSiteHint:"Ve a claude.ai primero",claudeShortcutOnlyOnSite:"Solo en claude.ai",claudeBatchTest:"Chequeo masivo",claudeBatchTesting:"Viendo... {current}/{total}",claudeBatchTestDone:"Hecho. {valid} OK, {invalid} mal.",claudeBatchTestFailed:"Parado",claudeOnlyOneKeyTip:"Solo tienes esta y ya la usas",noClaudeKeys:"No hay Session Keys configuradas",restoreSuccess:"Restauración exitosa, la página se actualizará...",aistudioSettingsTitle:"Configuración de AI Studio",aistudioSettingsDesc:"Configura el comportamiento predeterminado al cargar AI Studio",aistudioDefaultModel:"Modelo predeterminado",aistudioDefaultModelNone:"No especificado (usar predeterminado del sistema)",aistudioDefaultModelCustom:"ID de modelo personalizado...",aistudioDefaultModelPlaceholder:"models/gemini-xxx",aistudioCollapseNavbar:"Contraer barra lateral",aistudioCollapseNavbarDesc:"Contraer automáticamente la navegación izquierda al abrir la página",aistudioCollapseRunSettings:"Contraer panel de configuración de ejecución",aistudioCollapseRunSettingsDesc:"Contraer automáticamente el panel derecho de configuración de ejecución al abrir",aistudioCollapseTools:"Contraer sección de herramientas",aistudioCollapseToolsDesc:"Contraer automáticamente la sección de herramientas en configuración de ejecución al abrir",aistudioCollapseAdvanced:"Contraer configuración avanzada",aistudioCollapseAdvancedDesc:"Contraer automáticamente las opciones avanzadas al abrir la página",aistudioEnableSearch:"Habilitar herramienta de búsqueda",aistudioEnableSearchDesc:"Habilitar automáticamente la búsqueda en tiempo real de Google al abrir",aistudioModelsFetched:"Lista de modelos actualizada",aistudioNoTabError:"Por favor, abra primero la página de AI Studio",aistudioModelsError:"Error al obtener la lista de modelos",chatgptSettingsTitle:"Configuración de ChatGPT",chatgptSettingsDesc:"Configurar el comportamiento predeterminado de la página ChatGPT",chatgptMarkdownFixLabel:"Corrección de Markdown Negrita",chatgptMarkdownFixDesc:"Corregir texto **negrita** no renderizado en respuestas de ChatGPT",aistudioRemoveWatermark:"Eliminar marca de agua",aistudioRemoveWatermarkDesc:"Elimina la marca de agua de las imágenes de AI Studio (Requiere actualizar)",aistudioMarkdownFixLabel:"Corrección de Markdown Negrita",aistudioMarkdownFixDesc:"Corregir texto **negrita** no renderizado en respuestas de AI Studio",aistudioReloadHint:"Actualice la página para aplicar cambios",exportCustomUserName:"Nombre de usuario",exportCustomUserNameDesc:"Nombre para mostrar en exportaciones (Predeterminado: User)",exportCustomModelName:"Nombre de IA",exportCustomModelNameDesc:"Nombre para mostrar de IA en exportaciones (Predeterminado: Sitio)",exportFilenameTimestamp:"Add Timestamp to Filename",exportFilenameTimestampDesc:"Add a timestamp to the end of the exported filename",exportIncludeThoughtsLabel:"Incluir razonamiento en la exportación",exportIncludeThoughtsDesc:"Incluir y expandir automáticamente el razonamiento al exportar (como bloques de cita)",popupCurrentSite:"Sitio Actual",popupSupported:"Activo",popupUnsupported:"No soportado",popupNewChat:"Nueva Conversación",popupQuickAccess:"Acceso Rápido",popupRecentUsed:"Recientes",popupNoRecentPrompts:"Sin prompts recientes",popupCopied:"Copiado",popupCopyFailed:"Fallo al copiar",popupFeedback:"Comentarios",popupSettings:"Ajustes",policyRetryLabel:"Reintento automático por política",policyRetryDesc:"Reenviar automáticamente el mensaje cuando sea bloqueado por la política empresarial",maxRetriesLabel:"Máx. Reintentos",retryCountSuffix:"veces (misma pregunta)",policyRetryActive:"Bloqueo de política, reintentando ({current}/{max})",policyRetryLimitReached:"Límite de reintentos alcanzado",preventAutoScrollEnabled:"Bloqueo de desplazamiento activado",preventAutoScrollDisabled:"Bloqueo de desplazamiento desactivado",toolboxMenu:"Caja de herramientas",toolboxMenuTitle:"Menú de Caja de herramientas",toolboxMenuDesc:"Configurar las funciones mostradas en el menú emergente de la caja de herramientas",globalSearchCategoryAll:"Todo",globalSearchCategoryOutline:"Esquema",globalSearchCategorySettings:"Configuración",globalSearchCategoryConversations:"Conversaciones",globalSearchCategoryFolders:"Carpetas",globalSearchCategoryTags:"Etiquetas",globalSearchCategoryPrompts:"Prompts",globalSearchCategoryCurrentSession:"Sesión actual",globalSearchSiteGemini:"Gemini",globalSearchSiteGeminiEnterprise:"Gemini Enterprise",globalSearchSiteAIStudio:"AI Studio",globalSearchSiteChatGPT:"ChatGPT",globalSearchSiteClaude:"Claude",globalSearchSiteGrok:"Grok",globalSearchPlaceholderAll:"Buscar en todo",globalSearchPlaceholderOutline:"Buscar en esquema",globalSearchPlaceholderSettings:"Buscar en configuración",globalSearchPlaceholderConversations:"Buscar conversaciones del sitio actual",globalSearchPlaceholderFolders:"Buscar carpetas",globalSearchPlaceholderTags:"Buscar etiquetas",globalSearchPlaceholderPrompts:"Buscar prompts",globalSearchPlaceholderCurrentSession:"Buscar preguntas y esquema de la sesión actual",globalSearchEmptyAll:"No se encontraron resultados",globalSearchEmptyOutline:"Sin resultados de esquema",globalSearchEmptySettings:"No se encontraron ajustes",globalSearchEmptyConversations:"Sin resultados de conversaciones",globalSearchEmptyFolders:"Sin resultados de carpetas",globalSearchEmptyTags:"Sin resultados de etiquetas",globalSearchEmptyPrompts:"Sin resultados de prompts",globalSearchEmptyCurrentSession:"Sin resultados en la sesión actual",globalSearchCategoriesLabel:"Categorías de búsqueda global",globalSearchPageDesc:"Configura el comportamiento y los detalles de interacción de Search Everywhere",globalSearchTriggerHint:"Activación: doble pulsación de Shift o Ctrl/Cmd + K",globalSearchMatchingSettingsTitle:"Coincidencia de búsqueda",globalSearchMatchingSettingsDesc:"Configura cómo Search Everywhere hace coincidir los resultados de búsqueda.",globalSearchPromptSettingsTitle:"Comportamiento de Prompt",globalSearchPromptSettingsDesc:"Define qué ocurre al pulsar Enter sobre un resultado de prompt en Search Everywhere",globalSearchPromptEnterBehaviorLabel:"Comportamiento de Enter para prompts en Search Everywhere",globalSearchPromptEnterBehaviorDesc:"Inteligente: inserta directo sin variables y abre el diálogo cuando sea necesario; Solo localizar: cambia a Prompts y localiza el elemento.",globalSearchPromptEnterBehaviorSmart:"Inteligente (Recomendado)",globalSearchPromptEnterBehaviorLocate:"Solo localizar",globalSearchEnableFuzzySearchLabel:"Activar búsqueda difusa",globalSearchEnableFuzzySearchDesc:"Cuando está activado, Search Everywhere usa coincidencia difusa para título, carpeta, etiqueta, contenido del prompt e identificadores de ajustes.",globalSearchFuzzySearchToggle:"Difusa",globalSearchFuzzySearchToggleAria:"Alternar búsqueda difusa",globalSearchFooterTips:"Enter para saltar · ↑↓ para seleccionar · Tab para categorías · Esc para cerrar",globalSearchShortcutNudge:"La próxima vez, usa {shortcut} para abrir más rápido",doubleShiftToSearch:"Doble Shift para abrir la búsqueda global",doubleShiftToSearchDesc:"Pulsa Shift dos veces rápidamente para abrir la búsqueda global",globalSearchShortcutNudgeDismiss:"No volver a recordar",globalSearchContextCurrentItem:"Elemento {current}",globalSearchContextShownProgress:"Mostrados {shown}/{total}",globalSearchContextTotalItems:"Total {total}",globalSearchMatchReasonTitle:"Coincidencia en título",globalSearchMatchReasonFolder:"Coincidencia en carpeta",globalSearchMatchReasonTag:"Coincidencia en etiqueta",globalSearchMatchReasonType:"Coincidencia de tipo",globalSearchMatchReasonCode:"Coincidencia de código",globalSearchMatchReasonCategory:"Coincidencia de categoría",globalSearchMatchReasonContent:"Coincidencia de contenido",globalSearchMatchReasonId:"Coincidencia de ID",globalSearchMatchReasonKeyword:"Coincidencia de palabra clave",globalSearchMatchReasonAlias:"Coincidencia de alias",globalSearchMatchReasonFuzzy:"Coincidencia difusa",globalSearchSyntaxOperatorType:"Tipo",globalSearchSyntaxOperatorFolder:"Carpeta",globalSearchSyntaxOperatorTag:"Etiqueta",globalSearchSyntaxOperatorIs:"Estado",globalSearchSyntaxOperatorLevel:"Nivel",globalSearchSyntaxOperatorDate:"Fecha",globalSearchSyntaxPinned:"Fijado",globalSearchSyntaxSuggestionTypeDesc:"Filtrar por tipo de resultado",globalSearchSyntaxSuggestionFolderDesc:"Filtrar por carpeta o categoría",globalSearchSyntaxSuggestionTagDesc:"Filtrar por nombre de etiqueta",globalSearchSyntaxSuggestionIsDesc:"Filtrar por estado",globalSearchSyntaxSuggestionPinnedDesc:"Solo resultados fijados",globalSearchSyntaxSuggestionLevelDesc:"Filtrar por nivel del esquema (0 = pregunta del usuario)",globalSearchSyntaxSuggestionLevelQueryDesc:"Solo preguntas del usuario",globalSearchSyntaxSuggestionDateDesc:"Filtrar por días recientes",globalSearchSyntaxDiagnosticUnknownOperator:"Operador desconocido",globalSearchSyntaxDiagnosticInvalidValue:"Valor de filtro inválido",globalSearchSyntaxDiagnosticConflict:"Se ignoraron filtros en conflicto",globalSearchSyntaxChipRemove:"Haz clic para quitar el filtro",globalSearchSyntaxChipOverflow:"{count} más",globalSearchSyntaxEmptyGuideTitle:"Prueba filtros de búsqueda",globalSearchSyntaxEmptyGuideDesc:"Usa la sintaxis de filtros para acotar resultados rápidamente",globalSearchSyntaxHelpTitle:"Ejemplos de sintaxis de búsqueda",globalSearchSyntaxHelpDesc:"Haz clic para insertar. Las palabras clave solo admiten inglés.",globalSearchSyntaxHelpTriggerAria:"Abrir ayuda de sintaxis de búsqueda",moreLanguages:"More Languages",communityAndSupport:"Community and Support",modelLockEnabled:"Model Lock Enabled",modelLockDisabled:"Model Lock Disabled",modelLockNoKeyword:"No keyword set for this model",toggleTheme:"Toggle Theme",outlineSettingsTitle:"Outline Settings",outlineEnabledLabel:"Enable Outline",outlineShowUserQueriesLabel:"Show User Queries",anchorUpdated:"Anchor Updated",loadingHistory:"Loading History...",historyLoaded:"History Loaded",stopLoading:"Stop",loadingHint:"Scroll up after completion",setAnchor:"Set Anchor",setAnchorToast:"Anchor Set",backToAnchor:"Back to Anchor",noAnchor:"No Anchor",clearAnchor:"Clear Anchor",clearAnchorToast:"Anchor Cleared",manualAnchorLabel:"Manual Anchor",manualAnchorDesc:"Manually set and manage anchor",watermarkProcessing:"Processing image...",watermarkProcessed:"Watermark removed",watermarkFailed:"Removal failed",shortcutToggleModelLock:"Toggle Model Lock",queueTitle:"Cola de Prompts",queueQuickAsk:"Cola de Prompts",queueInQueue:"En cola ({count})",queueEmpty:"La cola está vacía. Escribe y pulsa Enter para enviar o encolar",queueClearAll:"Borrar todo",queueRemove:"Quitar",queuePlaceholderIdle:"Escribe un prompt y pulsa Enter para enviarlo...",queuePlaceholderBusy:"IA generando, pulsa Enter para encolar el prompt...",queueStatusIdle:"IA libre",queueStatusBusy:"IA generando",queueSettingLabel:"Cola de Prompts",queueDisableHint:"Puedes desactivar esta función en la configuración",queueSettingDesc:"Muestra una cola sobre el cuadro de texto para añadir prompts mientras la IA está escribiendo",queueEdit:"Editar",queueEditSave:"Guardar",queueEditCancel:"Cancelar",queueForceSend:"Forzar envío",zenModeTitle:"Modo Zen",zenModeLabel:"Habilitar modo Zen",zenModeDesc:"Oculte elementos innecesarios (como los avisos del modelo en la parte inferior) para una experiencia de conversación más pura (configurado de forma independiente para cada sitio)"},pt:{panelTitle:"Ophel",welcomeSlogan:"A IA ao seu alcance",disclaimerTitle:"Aviso Legal",disclaimerText:"Esta extensão é uma ferramenta de uso geral e pode não suportar todas as funcionalidades exclusivas de sites específicos. Depende de estruturas de páginas de terceiros; se atualizações interromperem a funcionalidade, por favor informe via GitHub Issues para uma correção rápida.",disclaimerWarning:"Por favor, não deixe avaliações negativas na loja por problemas causados por mudanças em sites de terceiros. Obrigado pela sua compreensão e apoio!",communityMotto:"Se quer ir rápido, vá sozinho. Se quer ir longe, vá acompanhado.",welcomeJoin:"Bem-vindo ao Ophel",agreeButton:"Entendo e Aceito",tabPrompts:"Prompts",tabSettings:"Ajustes",navGeneral:"Geral",navSiteSettings:"Sites",navGlobalSearch:"Busca Global",navAppearance:"Aparência",navPageContent:"Conteúdo",navFeatures:"Funções",navPermissions:"Permissões",navBackup:"Dados",navAbout:"Sobre",siteSettingsPageDesc:"Configurar layout e processamento por site",generalPageDesc:"Configurar o comportamento da extensão",appearancePageDesc:"Personalizar estilos visuais e temas",pageContentPageDesc:"Ajustar layout da página e exibição de conteúdo",featuresPageDesc:"Configurar módulos de funcionalidades",permissionsPageDesc:"Ver e gerenciar permissões da extensão.",backupPageDesc:"Gerenciar backup de dados e sincronização em nuvem",aboutPageDesc:"A IA ao seu alcance.",tsPlasmoDesc:"Framework de extensões de navegador",tsReactDesc:"Biblioteca de interface de usuário",tsTypescriptDesc:"JavaScript com tipagem",tsZustandDesc:"Gerenciamento de estado",tsViteDesc:"Ferramentas de frontend",optionalPermissions:"Permissões Opcionais",optionalPermissionsDesc:"Permissões que podem ser concedidas ou revogadas conforme necessário",requiredPermissions:"Permissões Obrigatórias",requiredPermissionsDesc:"Permissões necessárias para o funcionamento correto",permissionsSyncHint:"O status é sincronizado com o navegador. Atualize se mudou externamente.",refreshStatus:"Atualizar Status",refreshing:"Atualizando...",permissionsRefreshed:"Status de permissões atualizado",granted:"Concedido",notGranted:"Não Concedido",revoke:"Revogar",grant:"Conceder",allowRecommended:"Permitir (Recomendado)",required:"Obrigatório",permissionWebdavAccess:"Acesso a Recursos Avançados",permissionWebdavAccessDesc:"Acesso a todos os sites. Necessário para WebDAV e remoção de marcas d'água.",permissionStorage:"Armazenamento",permissionStorageDesc:"Para salvar ajustes, prompts e dados de conversa.",permissionNotifications:"Notificações",permissionNotificationsDesc:"Opcional. Para avisar quando a IA terminar de responder.",permissionCookies:"Gerenciamento de Cookies",permissionCookiesDesc:"Gerenciar cookies do Claude para troca rápida de SessionKey.",permissionTabs:"Abas",permissionTabsDesc:"Opcional. Para detectar status de abas e gerenciar sessões.",permissionDNR:"Regras de Rede",permissionDNRDesc:"Opcional. Para modificar cabeçalhos (como remover marcas d'água).",generalTab:"Geral",tabSettingsTab:"Abas",generalSettings:"Ajustes Gerais",panelTab:"Painel",tabOrderTab:"Ordem",shortcutsTab:"Atalhos",panelSettings:"Ajustes do Painel",themePresetsTab:"Temas",customStylesTab:"Estilos Próprios",pleaseEnterStyleName:"Digite um nome para o estilo",enterStyleName:"Nome do estilo",lightMode:"Modo Claro",darkMode:"Modo Escuro",code:"Código",create:"Criar",unnamedStyle:"Estilo sem nome",layoutTab:"Layout",contentStyleTab:"Processamento",claudeSettingsTab:"Ajustes de Claude",pageWidthSettings:"Largura da Página",layoutSettingsTitle:"Controle de Largura",tabLayout:"Layout",tabModelLock:"Bloqueio de Modelo",tabGemini:"Gemini",enablePageWidthDesc:"Ajustar a largura máxima do chat",userQueryWidthSettings:"Largura do Usuário",scrollSettings:"Rolagem",contentProcessing:"Processamento de Conteúdo",contentProcessingDesc:"Configurar como as respostas são tratadas",interactionEnhance:"Melhorias de Interação",interactionEnhanceDesc:"Melhorar tabelas e fórmulas",exportSettings:"Exportação",outlineSettingsDesc:"Configurar geração de índice",outlineUpdateIntervalDesc:"Intervalo de atualização (segundos)",conversationsSettingsDesc:"Sincronização e visualização",readingHistoryDesc:"Lembrar posição de leitura",day:"dia",days:"dias",forever:"Sempre",localBackupTab:"Cópia Local",webdavTab:"Sincro WebDAV",localBackupDesc:"Exportar dados para um arquivo JSON local",webdavServerDesc:"Servidor WebDAV para a nuvem",backupManagementDesc:"Testar, enviar ou restaurar da nuvem",allDataCleared:"Dados apagados, recarregando...",clearError:"Erro ao apagar",webdavBackupList:"Lista de WebDAV",noBackupsFound:"Sem cópias de segurança",loading:"Carregando...",version:"Versão",aboutDescription:"{appName} é uma extensão projetada para Gemini, ChatGPT, Claude, AI Studio e Grok. Melhora seu fluxo de trabalho com gerenciamento de chats, índices inteligentes e biblioteca de prompts, oferecendo utilitários como histórico de leitura, âncoras, remoção de marcas d'água, avisos de finalización e bloqueio de modelo. Com amplas opções de personalização, {appName} garante uma experiência de IA mais fluida.",projectLinks:"Links do Projeto",githubDesc:"Código fonte, reportar problemas ou contribuir",giveStar:"Dar Estrela no GitHub",projectWebsite:"Site Oficial",websiteDesc:"Documentação e guias",visitWebsite:"Visitar Web",rateAndReview:"Gosta do Ophel?",rateDesc:"Se você gosta do Ophel, por favor nos dê uma avaliação de 5 estrelas! Isso nos ajuda muito.",chromeStore:"Chrome Store",firefoxAddons:"Extensão Firefox",greasyFork:"Greasy Fork",reviewBtn:"Avaliar",starBtn:"Star",credits:"Créditos",devAndMaintain:"Desenvolvimento e manutenção",creditsDesc:"Obrigado a todos os contribuidores. Ophel baseia-se em excelentes projetos de código aberto.",privacyTitle:"Privacidade",reportIssue:"Reportar Problema",changelog:"Alterações",techStack:"Tecnologia",privacyStatement:"Política de Privacidade",privacyText:"Seus dados são salvos localmente no navegador. A sincronização WebDAV usa apenas o seu próprio servidor configurado.",license:"Licença",tabBehaviorTitle:"Comportamento",notificationSettings:"Ações ao Concluir",enablePrerequisiteToast:'Ative primeiro "{setting}"',privacyModeTitle:"Modo Privado",collapsedButtonsOrderTitle:"Botões Rápidos",quickButtonsOpacityLabel:"Quick buttons opacity",quickButtonsOpacityDesc:"Adjust overall opacity of the quick buttons",searchPlaceholder:"Buscar prompts...",addPrompt:"Novo Prompt",allCategory:"Tudo",uncategorized:"Sem Categoria",manageCategory:"⚙ Gerenciar",currentPrompt:"Atual: ",scrollTop:"Topo",scrollBottom:"Fim",refresh:"Recarregar",collapse:"Recolher",edit:"Editar",delete:"Excluir",copy:"Copiar",addBookmark:"Adicionar aos favoritos",removeBookmark:"Remover dos favoritos",bookmarkContentMissing:"Conteúdo favorito ausente",bookmarkMode:"Favoritos",outlineNoBookmarks:"Sem favoritos",outlineAddBookmarkHint:"Clique na estrela ao lado do item para adicionar aos favoritos",bookmarkModeDisabled:"Indisponível no modo favoritos",drag:"Arrastar",save:"Salvar",cancel:"Cancelar",close:"Fechar",add:"Adicionar",confirm:"Confirmar",export:"Exportar Markdown",clear:"Limpar",error:"Erro",operationFailed:"Falha na opera??o",deleteSuccess:"Exclu?do com sucesso",deleteError:"Falha ao excluir",restoreError:"Falha ao restaurar",insertFailed:"Falha ao inserir",maximize:"Maximizar",browse:"Buscar...",clearAllData:"Apagar Tudo",clearAllDataDesc:"Cuidado: Todos os dados e ajustes serão perdidos.",clearAllDataConfirm:"Tem certeza que deseja apagar tudo? Esta ação não pode ser desfeita.",clearSuccess:"Dados apagados, recarregando...",defaultDir:"Pasta padrão",dangerZone:"Zona de Perigo",dangerZoneDesc:"Ações irreversíveis",anchorPoint:"Âncora",updateAnchor:"Atualizar Âncora",goToAnchor:"Voltar à âncora",title:"Título",category:"Categoria",categoryPlaceholder:"Ex: Código, Tradução",content:"Conteúdo do Prompt",editPrompt:"Editar Prompt",addNewPrompt:"Adicionar Prompt",fillTitleContent:"Preencha título e conteúdo",promptUpdated:"Prompt atualizado",promptAdded:"Prompt adicionado",deleted:"Excluído",promptPin:"Fixar",promptUnpin:"Desafixar",promptVariableTitle:"Variáveis",promptVariablePlaceholder:"Digite...",promptImport:"Importar",promptExport:"Exportar",promptImportTitle:"Importar Prompts",promptImportMessage:"Confirmar para substituir, Cancelar para mesclar",promptImportSuccess:"Importado com sucesso",promptImportFailed:"Falha ao importar",promptExportSuccess:"Exportado com sucesso",promptRecentUsed:"Recentes",promptMarkdownPreview:"Prévia",promptImportMessage2:"Encontrados {count} prompts. Escolha o método:",promptImportOverwriteDesc:"Substituir: Substitui tudo o que existe",promptImportMergeDesc:"Mesclar: Atualiza existentes e adiciona novos",promptMerge:"Mesclar",promptOverwrite:"Substituir",promptMergeSuccess:"Mesclado: {updated} atualizados, {added} novos",promptSettingsTitle:"Configurações de prompts",promptSettingsDesc:"Configure as interações na aba de prompts",promptSubmitShortcutLabel:"Atalho de envio",promptSubmitShortcutDesc:"Aplica-se ao envio manual e ao envio automático de prompts.",promptSubmitShortcutEnter:"Enter",promptSubmitShortcutCtrlEnter:"Ctrl + Enter",promptDoubleClickSendLabel:"Enviar prompt com clique duplo",promptDoubleClickSendDesc:"Quando ativado, um clique duplo envia o prompt diretamente. Prompts com variáveis são enviados após a confirmação.",promptSent:"Prompt enviado",promptSendFailed:"Falha ao enviar, o prompt permanece na caixa de entrada",copied:"Copiado para a área de transferência",cleared:"Limpo",refreshed:"Atualizado",orderUpdated:"Ordem atualizada",inserted:"Prompt inserido",scrolling:"Rolando, aguarde...",noTextarea:"Campo de texto não encontrado",confirmDelete:"Excluir este prompt?",settingsTitle:"Ajustes",panelSettingsTitle:"Ajustes do Painel",settingOn:"LIGADO",settingOff:"DESLIGADO",modelLockTitle:"Bloqueio de Modelo",modelLockEnabledLabel:"Ativar Bloqueio",modelLockEnabledDesc:"Mudar automaticamente ao entrar",modelLockLabel:"Modelo para Bloquear",modelLockDesc:"Sera alterado para este modelo ao carregar",modelKeywordLabel:"Palavra-chave",modelKeywordPlaceholder:"Ex: 3 Pro",modelKeywordExample:"Ex: 3 Pro",modelKeywordDesc:"Para identificar o modelo",modelLockFailedNoButton:"Seletor não encontrado",modelLockFailedMenuEmpty:"Erro ao carregar menu",modelLockFailedNotFound:'Modelo "{model}" não encontrado',userQueryWidthDesc:"Largura máxima do balão do usuário (por site)",categoryManage:"Categorias",categoryEmpty:"Sem categorias ainda.",rename:"Renomear",newCategoryName:"Novo nome:",categoryRenamed:"Nome alterado",confirmDeleteCategory:"Excluir categoria? Os prompts passarão para 'Sem Categoria'.",categoryDeleted:"Categoria excluída",promptCountSuffix:" prompt(s)",categoryRenamedTo:"Renomeado para '{name}'",confirmDeleteCategoryMsg:"Excluir '{name}'?",categoryDeletedMsg:"'{name}' excluída",languageLabel:"Idioma",languageDesc:"Idioma do painel (mudança imediata)",languageAuto:"Auto",languageZhCN:"简体中文",languageZhTW:"繁體中文",languageEn:"English",themeLabel:"Tema",themeAuto:"Auto",themeSettings:"Ajustes de Tema",currentThemeMode:"Modo atual",themeSettingsDesc:"Escolher estilos claro/escuro",themeLight:"Claro",themeSystem:"Sistema",customCSS:"Estilos CSS",customCSSDesc:"Seus próprios estilos CSS",customCSSTemplate:"Inserir Modelo",addCustomStyle:"Adicionar",noCustomStyles:"Sem estilos próprios ainda.",editStyle:"Editar",deleteStyle:"Excluir",confirmDeleteStyle:"Excluir este estilo?",styleNameLabel:"Nome",styleNamePlaceholder:"Nome do estilo",styleModeLabel:"Modo",styleModeLight:"☀️ Claro",styleModeDark:"🌙 Escuro",styleCSSLabel:"Código CSS",styleCreated:"Estilo criado",styleUpdated:"Estilo atualizado",styleDeleted:"Estilo excluído",styleNameRequired:"Nome obrigatório",newStyle:"Novo Estilo",editStyleTitle:"Editar Estilo",lightModePreset:"Tema Claro",lightModePresetDesc:"Apenas para modo claro",darkModePreset:"Tema Escuro",darkModePresetDesc:"Apenas para modo escuro",primaryColor:"Primário",secondaryColor:"Secundário","themePreset_google-gradient":"Gradiente Google",themePreset_purple:"Violeta",themePreset_ocean:"Azul Oceano","themePreset_classic-dark":"Escuro Clássico","themePreset_midnight-blue":"Azul Meia-noite",themePreset_forest:"Floresta Escura",themePreset_sakura:"Cerejeira",themePreset_mint:"Menta",themePreset_nordic:"Nórdico",themePreset_cyberpunk:"Cyberpunk",themePreset_coffee:"Café",themePreset_sunset:"Pôr do sol","themePreset_lemon-soda":"Limão","themePreset_ancient-scroll":"Pergaminho","themePreset_mono-pro":"Mono Pro",themePreset_dracula:"Dracula","themePreset_deep-abyss":"Abismo","themePreset_crimson-moon":"Lua Vermelha",themePreset_porcelain:"Porcelana",themePreset_shortbread:"Biscoito","themePreset_unicorn-dream":"Unicórnio","themePreset_retro-terminal":"Terminal Retrô","themePreset_eva-unit-01":"EVA-01",themePreset_aurora:"Aurora",outlineLevel1:"Apenas Nível 1",outlineLevel2:"Até Nível 2",outlineLevel3:"Até Nível 3",readingHistorySettings:"Histórico de Leitura",readingHistoryTitle:"Histórico de Leitura",readingHistoryPersistenceLabel:"Ativar Histórico",readingHistoryPersistenceDesc:"Gravar posição e voltar ao carregar",readingHistoryAutoRestoreLabel:"Auto Restaurar",readingHistoryAutoRestoreDesc:"Pular para a última posição ao abrir",readingHistoryCleanup:"Retenção",readingHistoryCleanupDesc:"Tempo de retenção do progresso (-1 para sempre)",daysSuffix:" Dias",cleanupInfinite:"Sempre",contentExportSettingsTitle:"Ajustes de Conteúdo",markdownFixLabel:"Correção de Negrito",markdownFixDesc:"Corrigir sintaxe de negrito no Gemini",exportImagesToBase64Label:"Imagens em Base64",exportImagesToBase64Desc:"Converter fotos em texto para ver offline",userQueryMarkdownLabel:"Markdown no Usuário",userQueryMarkdownDesc:"Formatar suas mensagens também",watermarkRemovalLabel:"Remover Marcas d'Água",watermarkRemovalDesc:"Remover marcas do NanoBanana automaticamente",refreshPrompts:"Atualizar Prompts",themeDark:"Escuro",pageWidthLabel:"Largura da Página",pageWidthValueLabel:"Valor da Largura",pageWidthDesc:"Largura do chat (por site)",enablePageWidth:"Ativar Alargamento",widthValue:"Largura",widthUnit:"Unidade",navContent:"Conteúdo",unitPx:"Pixels (px)",unitPercent:"Porcentagem (%)",enableUserQueryWidth:"Alargamento do Usuário",enableUserQueryWidthDesc:"Balão do usuário mais largo",userQueryWidthValueLabel:"Largura",tabSettingsTitle:"Abas",openNewTabLabel:"Novo Chat em Aba",openNewTabDesc:"Botão para abrir novo chat em outra aba",newTabTooltip:"Novo chat em outra aba",autoRenameTabLabel:"Auto Nome da Aba",autoRenameTabDesc:"Colocar o nome do chat no título da aba",renameIntervalLabel:"Intervalo",renameIntervalDesc:"Frequência de detecção",secondsSuffix:"s",showStatusLabel:"Mostrar Status",showStatusDesc:"Ícone de carregamento na aba (⏳/✅)",showNotificationLabel:"Notificação de Desktop",showNotificationDesc:"Avisar quando a IA terminar de escrever",notificationSoundLabel:"Som de Aviso",notificationSoundDesc:"Tocar som ao terminar",notificationVolumeLabel:"Volume",notifyWhenFocusedLabel:"Avisar Mesmo Com Foco",notifyWhenFocusedDesc:"Enviar aviso mesmo se você estiver vendo a página",autoFocusLabel:"Auto Trazer a Janela à Frente",autoFocusDesc:"Trazer para frente ao terminar",privacyModeLabel:"Modo Privado",privacyModeDesc:"Título falso (clique duplo no topo)",privacyTitleLabel:"Título Falso",privacyTitlePlaceholder:"Ex: Google, Trabalho",titleFormatLabel:"Formato do Título",titleFormatDesc:"Formato livre: {status}, {title}, {model}",notificationTitle:"✅ {site} Concluído",notificationBody:"Clique para ver o resultado",tabOutline:"Índice",outlineEmpty:"Sem conteúdo",outlineEmptyDescDefault:"Os itens do índice aparecerão automaticamente conforme a conversa avança.",outlineEmptyDescUserQueryOnly:"No momento, apenas as perguntas do usuário são exibidas. Envie uma mensagem para gerar itens no índice.",outlineRefresh:"Recarregar",outlineSettings:"Ajustes de Índice",bookmarkSettings:"Configurações de Favoritos",bookmarkModeDisableLevel:"Não é possível ajustar níveis no modo favoritos",bookmarkSettingsDesc:"Configurações relacionadas a favoritos",inlineBookmarkModeLabel:"Ícones de favoritos",inlineBookmarkModeDesc:"Controlar visibilidade ao lado dos títulos",panelBookmarkModeLabel:"Ícones do painel",panelBookmarkModeDesc:"Controlar visibilidade no painel de índice",inlineBookmarkModeAlways:"Sempre visível",inlineBookmarkModeHover:"Ao passar o mouse",inlineBookmarkModeHidden:"Oculto",enableOutline:"Ativar Índice",outlineMaxLevel:"Níveis",outlineLevelAll:"Todos (1-6)",refreshOutline:"Atualizar Índice",refreshSettings:"Atualização",jumpToAnchor:"Voltar atrás",outlineScrollBottom:"Ir para o fim",outlineScrollTop:"Ir para o início",outlineExpandAll:"Expandir tudo",outlineCollapseAll:"Recolher tudo",outlineLocateCurrent:"Localizar posição atual",outlineSearch:"Buscar no índice...",outlineSearchResult:" resultado(s)",outlineLevelHint:"títulos",refreshConversations:"Atualizar chats",syncingConversations:"Sincronizando...",grokSyncingConversations:"Sincronizando chats, aguarde...",tabOrderSettings:"Layout da UI",tabOrderDesc:"Ordem das abas do painel",moveUp:"Subir",moveDown:"Descer",readingNavigationSettings:"Navegação",restoredPosition:"Posição recuperada",cleanupDone:"Dados expirados limpos",outlineAutoUpdateLabel:"Auto Atualizar Índice",outlineAutoUpdateDesc:"Atualizar enquanto a IA fala",outlineUpdateIntervalLabel:"Segundos",outlineShowUserQueries:"Ver dúvidas do usuário",outlineShowUserQueriesTooltip:"Ver dúvidas do usuário",outlineOnlyUserQueries:"Dúvidas",globalSearchOutlineReplies:"Respostas",outlineIntervalUpdated:"Ajustado para {val}s",outlineSyncScrollLabel:"Sincronização de Scroll",outlineSyncScrollDesc:"Realçar índice conforme rola a página",outlineFollowModeLabel:"Modo de Seguimento",outlineFollowCurrent:"Seguir Posição",outlineFollowLatest:"Seguir Último",outlineFollowManual:"Manual",outlineFollowCurrentDesc:"Realçar onde você está lendo",outlineFollowLatestDesc:"Rolar apenas com mensagens novas",outlineFollowManualDesc:"Sem auto-rolagem, você decide",outlineShowWordCountLabel:"Mostrar Contagem de Palavras",outlineShowWordCountDesc:"Exibir contagem de palavras para cada seção no esboço",words:"palavras",pageDisplaySettings:"Exibição",otherSettingsTitle:"Outros",showCollapsedAnchorLabel:"Âncora",showCollapsedAnchorDesc:"Botão de âncora na barra lateral",showCollapsedThemeLabel:"Tema",floatingToolbarLabel:"Barra de ferramentas flutuante",tools:"Caixa de ferramentas",cleanup:"Limpar favoritos inválidos",floatingToolbarMore:"Mais",floatingToolbarClearGhost:"Limpar favoritos inválidos",floatingToolbarClearGhostConfirm:"Limpar {count} favoritos inválidos nesta sessão?",floatingToolbarClearGhostEmpty:"Não há favoritos inválidos para limpar.",showCollapsedThemeDesc:"Troca de tema na barra lateral",collapsedButtonsOrderDesc:"Ordem dos botões na barra lateral",preventAutoScrollLabel:"Evitar Auto-Scroll",preventAutoScrollDesc:"Não rolar sozinho enquanto a IA escreve",defaultPanelStateLabel:"Aberto por Padrão",defaultPanelStateDesc:"Painel expandido ao carregar",autoHidePanelLabel:"Minimizar ao Clicar Fora",autoHidePanelDesc:"Minimizar para botão flutuante ao clicar fora",autoHidePanelDescEdgeSnap:"Recolher para a borda ao clicar fora",edgeSnapHideLabel:"Ímã nas Bordas",edgeSnapHideDesc:"Esconde na borda e aparece ao passar o mouse",edgeSnapThresholdLabel:"Sensibilidade",edgeSnapThresholdDesc:"Distância para ativar o ímã",defaultPositionLabel:"Lado Inicial",defaultPositionDesc:"Onde aparece ao carregar",defaultPositionLeft:"Esquerda",defaultPositionRight:"Direita",defaultEdgeDistanceLabel:"Margem",defaultEdgeDistanceDesc:"Distância da borda",panelWidthLabel:"Largura do painel",panelWidthDesc:"Largura do painel (px)",panelHeightLabel:"Altura",panelHeightDesc:"% da tela",disableOutline:"Sem Índice",togglePrompts:"Ver Prompts",toggleConversations:"Ver Chats",tabConversations:"Chats",conversationsEmpty:"Sem chats",conversationsEmptyHint:"Clique em sincronizar acima",conversationsSync:"Sincro",conversationsSyncing:"Sincronizando...",conversationsSynced:"Pronto",conversationsAddFolder:"Pasta",conversationsRename:"Renomear",conversationsDelete:"Excluir",conversationsDeleteConfirm:"Excluir pasta? Os chats irão para Entrada.",conversationsFolderCreated:"Criada",conversationsFolderRenamed:"Renomeada",conversationsFolderDeleted:"Excluída",conversationsCannotDeleteDefault:"Não pode ser excluída",conversationsIcon:"Ícone",conversationsFolderName:"Nome",conversationsFolderNamePlaceholder:"Digite o nome...",conversationsSyncEmpty:"Sem chats encontrados",conversationsSyncNoChange:"Sem mudanças",conversationsLocate:"Localizar atual",conversationsLocateSuccess:"Encontrado",conversationsLocateNotFound:"Não encontrado, sincronizando...",conversationsLocateNewChat:"Chat novo (não salvo)",conversationsLocateSyncFailed:"Ainda não encontrado",justNow:"Agora",minutesAgo:"min atrás",hoursAgo:"h atrás",daysAgo:"dias atrás",conversationsSelectFolder:"Destino",conversationsMoveTo:"Mover conversa",conversationsSetTag:"Definir etiqueta",conversationsMoved:"Movido para: ",conversationsSyncDeleteTitle:"Sincro de Exclusão",conversationsSyncDeleteMsg:"Detectados {count} excluídos na nuvem. Excluir localmente também?",conversationsDeleted:"Removido",conversationsSettingsTitle:"Ajustes de Chats",conversationsSyncUnpinLabel:"Sincronizar Desafixar",conversationsSyncUnpinDesc:"Desafixar local se foi feito na nuvem",folderRainbowLabel:"Pastas Arco-íris",folderRainbowDesc:"Cores aleatórias para as pastas",conversationsSyncDeleteLabel:"Excluir na Nuvem",conversationsSyncDeleteDesc:"Ao excluir localmente, excluir também a conversa na nuvem do site correspondente",conversationsSyncRenameLabel:"Renomear na Nuvem",conversationsSyncRenameDesc:"Mudar nome em {site} também",conversationsCustomIcon:"Ícone Próprio",batchSelected:"{n} selecionados",batchMove:"Mover",batchDelete:"Excluir",batchExit:"Sair",batchExport:"Exportar",exportToMarkdown:"Markdown",exportToJSON:"JSON",exportLoading:"Carregando...",exportSuccess:"Sucesso",exportFailed:"Falha",exportNoContent:"Vazio",copySuccess:"Copiado",copyFailed:"Falha ao copiar",exportNeedOpenFirst:"Abra o chat primeiro",exportUserLabel:"Eu",exportMetaTitle:"Ficha",exportMetaConvTitle:"Título",exportMetaTime:"Data",exportMetaSource:"Origem",exportNotSupported:"Não suportado aqui",exportToTXT:"TXT",exportMetaUrl:"URL",exportUntitled:"Sem Título",exportToClipboard:"Copiar Markdown",conversationsRefresh:"Recarregar",conversationsSearchFolder:"Buscar pasta...",conversationsSearchPlaceholder:"Buscar chat...",conversationsSearchResult:" resultado(s)",conversationsNoSearchResult:"Sem resultados",conversationsSetTags:"Etiquetas",conversationsNewTag:"Nova",conversationsTagName:"Nome",conversationsTagColor:"Cor",conversationsFilterByTags:"Filtrar por Etq.",conversationsClearTags:"Limpar",conversationsTagCreated:"Criada",conversationsTagUpdated:"Atualizada",conversationsTagDeleted:"Excluída",conversationsTagExists:"Já existe",conversationsSelectTag:"Escolha",conversationsExistingTags:"Antigas",conversationsEditTag:"Editar",conversationsCancelEdit:"Não",conversationsSelectColor:"Cor",conversationsCollapseColor:"Fechar",conversationsUpdateTag:"Salvar",conversationsNoTags:"Nada",conversationsManageTags:"Gerenciar",conversationsDeleteTag:"Excluir",conversationsPin:"Fixar 📌",conversationsUnpin:"Fixar",conversationsPinned:"Pronto",conversationsUnpinned:"Fora",conversationsFilterPinned:"Só fixos",conversationsClearAll:"Limpar tudo",conversationsBatchMode:"Modo lote",formulaCopyLabel:"Dobre clique copia fórmula",formulaCopyDesc:"Copia fonte LaTeX (não em todos os sites)",formulaCopied:"Copiada",formulaDelimiterLabel:"Add $ ou $$",formulaDelimiterDesc:"Conforme o tipo de fórmula automaticamente",tableCopyLabel:"Copiar Tabela",tableCopyDesc:"Botão para copiar tabela como Markdown",tableCopied:"Tabela copiada",dataManagementTitle:"Dados",dataManagementDesc:"Tudo o que você tem aqui",exportDataBtn:"Exportar Tudo",importDataBtn:"Importar Dados",exportError:"Falha: ",importConfirm:"Tem certeza? Tudo o que existe será substituído.",importSuccess:"Sucesso. Recarregando...",importError:"Falha: ",invalidBackupFile:"Formato inválido",backupValidationInvalidFormat:"Formato inválido",backupValidationMissingVersion:"Versão ausente",backupValidationMissingData:"Dados ausentes",backupValidationSettingsType:"Ajustes incorretos",backupValidationPromptsType:"Prompts incorretos",backupValidationFoldersType:"Pastas incorretas",backupValidationConversationsType:"Chats incorretos",backupValidationHistoryType:"Histórico incorreto",backupTime:"Hora",backupType:"Tipo",openAiPagesWillRefresh:"As páginas de IA abertas serão atualizadas.",dataManagementNote:"Para cópias ou mudança de PC. Inclui tudo (ajustes, chats, prompts).",permissionRequired:"Falta Permissão",webdavPermissionDesc:"Falta acesso ao domínio WebDAV.",webdavSectionTitle:"Sincro Nuvem (WebDAV)",webdavDesc:"Usar Nextcloud, Owncloud, etc.",webdavUrlLabel:"URL",webdavUsernameLabel:"Usuário",webdavUsernamePlaceholder:"E-mail",webdavPasswordLabel:"Senha",webdavPasswordPlaceholder:"Senha de API/App",webdavRemotePathLabel:"Caminho remoto",webdavTestBtn:"Teste",webdavUploadBtn:"Enviar",webdavDownloadBtn:"Baixar",webdavDownloadConfirm:"Baixar substituirá os dados atuais. Continuar?",webdavLastSync:"Última",webdavConnectionSuccess:"OK",webdavUploadSuccess:"Enviado",webdavDownloadSuccess:"Baixado",webdavConfigIncomplete:"Falta configuração",webdavAuthFailed:"Usuário/Senha incorretos",webdavConnectionFailed:"Falha de rede",webdavUploadFailed:"Falha no envio",webdavDownloadFailed:"Falha no download",webdavFileNotFound:"Arquivo não encontrado",webdavInvalidFormat:"Arquivo inválido",exportData:"Extrair Dados",exportDataDesc:"Salvar JSON no PC",importData:"Inserir Dados",importDataDesc:"Trazer de arquivo",fullBackup:"Cópia Total",fullBackupDesc:"Tudo mesmo (Recomendado)",promptsBackup:"Só Prompts",promptsBackupDesc:"Sem pastas ou etiquetas",settingsBackup:"Só Ajustes",settingsBackupDesc:"Ajustes visuais e preferências",selectFile:"Escolher arquivo",noFileSelected:"Nenhum",dataPreview:"Vistoria",pastePlaceholder:"Cole o JSON aqui ou busque acima...",importBtn:"Carregar",webdavConfig:"Config WebDAV",webdavConfigDesc:"Servidor para cópias",webdavAddress:"URL WebDAV",username:"Usuário",password:"Senha",saveConfig:"Salvar",saveSuccess:"Salvo",backupEncryption:"Criptografia",backupEncryptionDesc:"Senha para as cópias (não perca)",encryptionPassword:"Senha de Criptografia",encryptionPasswordPlaceholder:"Para enviar/baixar com segurança",restoreTip:"Dica",restoreTipContent:"Baixar da nuvem não substitui sua conexão WebDAV atual para evitar que você fique de fora se a cópia for antiga.",backupAndRestore:"Cópia e Restauração",webdavServerSettings:"Servidor WebDAV",webdavRemoteDirLabel:"Caminho",backupManagement:"Gerenciador",backupNow:"Copiar agora",restore:"Restaurar",localBackup:"Local",exportToFile:"Ficheiro",importBackupFile:"Traer ficheiro",permAllUrlsTitle:"Acesso a Tudo",permAllUrlsDesc:"Para WebDAV e remover marcas d'água.",permWebdavTitle:"Acesso à Rede",permWebdavDesc:"Sincro WebDAV precisa ver seu servidor. Você poderá usar backups após aceitar.",permTabsTitle:"Abas",permTabsDesc:"Para renomear abas e modo privado.",permNotifyTitle:"Notificações",permNotifyDesc:"Avisar quando a IA terminar.",permCookiesTitle:"Cookies",permCookiesDesc:"Para trocar SessionKeys do Claude rápido.",permDNRTitle:"Regras de Rede Opc.",permDNRDesc:"Para remover marcas d'água em fotos.",permissionRequestToast:"Aceite na janelinha, por favor",permissionDialogAllow:"Aceitar",permissionGranted:"Aceito",permissionDenied:"Negado",revokeConfirmDefault:"Remover permissão? Algumas coisas vão parar de funcionar.",revokeConfirmNotifications:"Sem avisos? Desligará [Notificações].",revokeConfirmWebdav:"Remover acesso avançado? Falharão [Marcas d'água] e [WebDAV].",warning:"Aviso",windowClosing:"Fechando...",allow:"Aceitar",defaultPromptTranslateTitle:"Tradutor Pro",defaultPromptTranslateCategory:"Tradução",defaultPromptTranslateContent:"Sou tradutor com 20 anos de experiência. Traduzirei para o {{target_language}}:\n\nMetas:\nFidelidade total ao original.\nFluidez natural (sem parecer robô).\nMesmo tom (profissional, engraçado, sério).\n\nTexto: {{text}}",defaultPromptCodeOptTitle:"Melhorar Código",defaultPromptCodeOptCategory:"Programação",defaultPromptCodeOptContent:"Especialista em {{language}}. Revise e aplique 'Clean Code':\n\n**Código**:\n{{code}}\n\n**Metas**:\n1. Remover redundâncias.\n2. Melhores nomes (estilo {{language}}).\n3. Adicionar tratamento de erros.\n4. Foco em [leitura], [robustez] e [futuro].\n5. Use {{version}} atual.\n\nDê o código e depois um resumo de melhorias.",navShortcuts:"Atalhos de Teclado",shortcutsPageDesc:"Atalhos para ir mais rápido",shortcutsInteractionGroup:"Configurações independentes",shortcutsInteractionGroupDesc:"As configurações deste grupo estão sempre ativas e não são afetadas pela opção Ativar atalhos personalizados",shortcutsGlobalSettings:"Ajustes de Atalhos",enableShortcuts:"Ativar atalhos personalizados",enableShortcutsDesc:"Ativar ou desativar todos os atalhos de teclado personalizados",globalShortcutUrl:"URL Atalho Global",globalShortcutUrlDesc:"O que abrir ao apertar Alt+G",resetShortcuts:"Pôr Padrão",resetShortcutsConfirm:"Resetar todos para fábrica?",pressAnyKey:"Aperte uma tecla...",shortcutConflictWith:"Conflita com",shortcutConflict:"",globalSearchCategoryAll:"Todos",globalSearchCategoryOutline:"Estrutura",globalSearchCategorySettings:"Configurações",globalSearchCategoryConversations:"Conversas",globalSearchCategoryFolders:"Pastas",globalSearchCategoryTags:"Tags",globalSearchCategoryPrompts:"Prompts",globalSearchCategoryCurrentSession:"Sessão atual",globalSearchSiteGemini:"Gemini",globalSearchSiteGeminiEnterprise:"Gemini Enterprise",globalSearchSiteAIStudio:"AI Studio",globalSearchSiteChatGPT:"ChatGPT",globalSearchSiteClaude:"Claude",globalSearchSiteGrok:"Grok",globalSearchPlaceholderAll:"Buscar em tudo",globalSearchPlaceholderOutline:"Buscar na estrutura",globalSearchPlaceholderSettings:"Buscar nas configurações",globalSearchPlaceholderConversations:"Buscar conversas do site atual",globalSearchPlaceholderFolders:"Buscar pastas",globalSearchPlaceholderTags:"Buscar tags",globalSearchPlaceholderPrompts:"Buscar prompts",globalSearchPlaceholderCurrentSession:"Buscar perguntas e estrutura da sessão atual",globalSearchEmptyAll:"Nenhum resultado encontrado",globalSearchEmptyOutline:"Sem resultados de estrutura",globalSearchEmptySettings:"Nenhuma configuração correspondente",globalSearchEmptyConversations:"Sem resultados de conversas",globalSearchEmptyFolders:"Sem resultados de pastas",globalSearchEmptyTags:"Sem resultados de tags",globalSearchEmptyPrompts:"Sem resultados de prompts",globalSearchEmptyCurrentSession:"Sem resultados na sessão atual",globalSearchCategoriesLabel:"Categorias da busca global",globalSearchPageDesc:"Configure o comportamento e os detalhes de interação do Search Everywhere",globalSearchTriggerHint:"Atalho: pressione Shift duas vezes ou Ctrl/Cmd + K",globalSearchMatchingSettingsTitle:"Correspondência de busca",globalSearchMatchingSettingsDesc:"Configure como o Search Everywhere corresponde os resultados de busca.",globalSearchPromptSettingsTitle:"Comportamento de Prompt",globalSearchPromptSettingsDesc:"Escolha o que acontece ao pressionar Enter em um resultado de prompt no Search Everywhere",globalSearchPromptEnterBehaviorLabel:"Comportamento do Enter para prompts no Search Everywhere",globalSearchPromptEnterBehaviorDesc:"Inteligente: insere direto sem variáveis e abre o diálogo quando necessário; Somente localizar: muda para Prompts e localiza o item.",globalSearchPromptEnterBehaviorSmart:"Inteligente (Recomendado)",globalSearchPromptEnterBehaviorLocate:"Somente localizar",globalSearchEnableFuzzySearchLabel:"Ativar busca difusa",globalSearchEnableFuzzySearchDesc:"Quando ativado, o Search Everywhere usa correspondência difusa para título, pasta, tag, conteúdo do prompt e identificadores de configuração.",globalSearchFuzzySearchToggle:"Difusa",globalSearchFuzzySearchToggleAria:"Alternar busca difusa",globalSearchFooterTips:"Enter para abrir · ↑↓ para selecionar · Tab para categorias · Esc para fechar",globalSearchShortcutNudge:"Na próxima vez, use {shortcut} para abrir mais rápido",doubleShiftToSearch:"Duplo Shift para abrir a busca global",doubleShiftToSearchDesc:"Pressione Shift duas vezes rapidamente para abrir a busca global",globalSearchShortcutNudgeDismiss:"Não lembrar novamente",globalSearchContextCurrentItem:"Item {current}",globalSearchContextShownProgress:"Exibidos {shown}/{total}",globalSearchContextTotalItems:"Total {total}",globalSearchMatchReasonTitle:"Correspondência no título",globalSearchMatchReasonFolder:"Correspondência na pasta",globalSearchMatchReasonTag:"Correspondência na tag",globalSearchMatchReasonType:"Correspondência de tipo",globalSearchMatchReasonCode:"Correspondência de código",globalSearchMatchReasonCategory:"Correspondência de categoria",globalSearchMatchReasonContent:"Correspondência de conteúdo",globalSearchMatchReasonId:"Correspondência de ID",globalSearchMatchReasonKeyword:"Correspondência de palavra-chave",globalSearchMatchReasonAlias:"Correspondência de alias",globalSearchMatchReasonFuzzy:"Correspondência difusa",globalSearchSyntaxOperatorType:"Tipo",globalSearchSyntaxOperatorFolder:"Pasta",globalSearchSyntaxOperatorTag:"Tag",globalSearchSyntaxOperatorIs:"Estado",globalSearchSyntaxOperatorLevel:"Nível",globalSearchSyntaxOperatorDate:"Data",globalSearchSyntaxPinned:"Fixado",globalSearchSyntaxSuggestionTypeDesc:"Filtrar por tipo de resultado",globalSearchSyntaxSuggestionFolderDesc:"Filtrar por pasta ou categoria",globalSearchSyntaxSuggestionTagDesc:"Filtrar por nome da tag",globalSearchSyntaxSuggestionIsDesc:"Filtrar por estado",globalSearchSyntaxSuggestionPinnedDesc:"Mostrar apenas resultados fixados",globalSearchSyntaxSuggestionLevelDesc:"Filtrar por nível do esquema (0 = pergunta do usuário)",globalSearchSyntaxSuggestionLevelQueryDesc:"Apenas perguntas do usuário",globalSearchSyntaxSuggestionDateDesc:"Filtrar por dias recentes",globalSearchSyntaxDiagnosticUnknownOperator:"Operador desconhecido",globalSearchSyntaxDiagnosticInvalidValue:"Valor de filtro inválido",globalSearchSyntaxDiagnosticConflict:"Filtros conflitantes foram ignorados",globalSearchSyntaxChipRemove:"Clique para remover o filtro",globalSearchSyntaxChipOverflow:"+{count} a mais",globalSearchSyntaxEmptyGuideTitle:"Experimente filtros de busca",globalSearchSyntaxEmptyGuideDesc:"Use sintaxe de filtros para reduzir resultados rapidamente",globalSearchSyntaxHelpTitle:"Exemplos de sintaxe de busca",globalSearchSyntaxHelpDesc:"Clique para inserir. As palavras-chave suportam apenas inglês.",globalSearchSyntaxHelpTriggerAria:"Abrir ajuda de sintaxe de busca",moreLanguages:"Mais idiomas",communityAndSupport:"Comunidade e Suporte",modelLockEnabled:"Bloqueio de modelo ativado",modelLockDisabled:"Bloqueio de modelo desativado",modelLockNoKeyword:"Nenhuma palavra-chave definida para este modelo",toggleTheme:"Alternar tema",outlineSettingsTitle:"Índice",outlineEnabledLabel:"Exibir índice",outlineShowUserQueriesLabel:"Exibir minhas perguntas",anchorUpdated:"Âncora atualizada",loadingHistory:"Carregando histórico...",historyLoaded:"Histórico carregado",stopLoading:"Parar",loadingHint:"Rolar para o topo ao terminar",setAnchor:"Definir âncora",setAnchorToast:"Âncora definida",backToAnchor:"Voltar à âncora",noAnchor:"Nenhuma âncora",clearAnchor:"Limpar âncora",clearAnchorToast:"Âncora limpa",manualAnchorLabel:"Âncora manual",manualAnchorDesc:"Definir e gerenciar âncora manualmente",watermarkProcessing:"Processando imagem...",watermarkProcessed:"Marca d'água removida",watermarkFailed:"Falha ao remover",shortcutToggleModelLock:"Alternar bloqueio de modelo",globalShortcutsTitle:"Atalhos Globais",globalShortcutsDesc:"Funcionam em qualquer site. Configure na gestão do Chrome.",openBrowserShortcuts:"Config do Chrome",shortcutNotSet:"Não definido",shortcutRemove:"Remover",shortcutCategoryNavigation:"Navegação",shortcutCategoryPanel:"Painel",shortcutCategoryOutline:"Índice",shortcutCategoryConversation:"Chats",shortcutCategoryEdit:"Controle de interação",shortcutScrollTop:"Subir tudo",shortcutScrollBottom:"Descer tudo",shortcutGoToAnchor:"Ir para âncora",shortcutTogglePanel:"Expandir/Recolher Painel",shortcutToggleTheme:"Trocar Tema",shortcutOpenSettings:"Abrir Ajustes",shortcutSwitchTab1:"Aba 1",shortcutSwitchTab2:"Aba 2",shortcutSwitchTab3:"Aba 3",shortcutRefreshOutline:"Atualizar Índice",shortcutToggleOutlineExpand:"Abrir/Fechar tudo (Índice)",shortcutExpandLevel1:"Índice Lvl 1",shortcutExpandLevel2:"Índice Lvl 2",shortcutExpandLevel3:"Índice Lvl 3",shortcutExpandLevel4:"Índice Lvl 4",shortcutExpandLevel5:"Índice Lvl 5",shortcutExpandLevel6:"Índice Lvl 6",shortcutToggleUserQueries:"Ver minhas dúvidas",shortcutToggleBookmarks:"Mostrar favoritos",shortcutOnlyUserQueries:"Somente minhas perguntas",shortcutPrevHeading:"Título anterior",shortcutNextHeading:"Próximo título",shortcutLocateOutline:"Localizar no Índice",shortcutSearchOutline:"Buscar no Índice",shortcutNewConversation:"Novo Chat",shortcutRefreshConversations:"Atualizar Chats",shortcutLocateConversation:"Localizar Chat",shortcutPrevConversation:"Chat anterior",shortcutNextConversation:"Próximo chat",shortcutExportConversation:"Exportar Chat",shortcutCopyLatestReply:"Copiar última resposta",shortcutCopyLastCodeBlock:"Copiar último bloco código",shortcutToggleScrollLock:"Bloqueio Scroll",shortcutFocusInput:"Ir para campo texto",shortcutStopGeneration:"Parar IA",shortcutTogglePromptQueue:"Alternar Fila de Prompts",shortcutShowShortcuts:"Ver Atalhos",shortcutShowModelSelector:"Ver Modelos",shortcutCategoryHelp:"Ajuda",shortcutCategorySettings:"Ajustes",shortcutOpenClaudeSettings:"Ajustes Claude",shortcutSwitchClaudeKey:"Trocar Chave Claude",shortcutOpenGeminiSettings:"Ajustes Gemini",shortcutOpenThemeSettings:"Ajustes Tema",shortcutOpenModelLockSettings:"Ajustes Bloqueio Modelo",scrolledToTop:"No Topo",scrolledToBottom:"No Fim",outlineRefreshed:"Índice atualizado",conversationsRefreshed:"Chats atualizados",locatingOutline:"Buscando...",locatingConversation:"Buscando chat...",noConversationToLocate:"Não há chat",outlineDisabled:"Índice desligado",conversationsDisabled:"Chats desligado",exportStarted:"Exportando...",replyCopied:"Resposta copiada",noReplyToCopy:"Nada para copiar",scrollLockToggled:"Scroll alterado",browserNotSupported:"Navegador incompatível",inputFocused:"Já pode escrever",generationStopped:"Parado",notGenerating:"Não está falando",noConversations:"Sem chats",untitledConversation:"Sem título",noCodeBlock:"Sem código",codeBlockCopied:"Código copiado",modelSelectorNotFound:"Sem seletor",geminiSettingsTab:"Só Gemini",claudeSessionKeyTitle:"Gestão de Sessões",claudeSessionKeyDesc:"Contas do Claude",claudeCurrentUsing:"Usando:",claudeNoKeySelected:"Nada - adicione uma",claudePleaseAddKey:"Adicione uma sessão",claudeAddKey:"Adicionar",claudeImportFromBrowser:"Do navegador",claudeImportJSON:"Inserir JSON",claudeExportJSON:"Extrair JSON",claudeNoKeys:"Sem sessões",claudeNoKeysHint:"Use 'Adicionar' para começar",claudeKeyValid:"OK",claudeKeyInvalid:"Falhou",claudeKeyUntested:"Sem teste",claudeKeyUsing:"Em uso",claudeKeyUse:"Usar",claudeKeyTest:"Testar",claudeKeyDelete:"Excluir",claudeKeyCopied:"Copiada",claudeKeyCopyFailed:"Falha",claudeKeyDoubleTapCopy:"Dobre clique copia tudo",claudeCopyKey:"Copiar sessão",claudeCopied:"Feito",claudeAlreadyUsing:"Já está em uso",claudePleaseSelectKey:"Escolha uma sessão",claudeKeyImported:"Ok, testando...",claudeKeyAdded:"Sessão adicionada",claudeKeySwitched:"Alterada. Recarregando...",claudeKeyDeleted:"Excluída",claudeKeyTesting:"Testando...",claudeGenerating:"IA ocupada, aguarde",claudeAddKeyNameTitle:"Nome",claudeAddKeyNamePlaceholder:"Ex: Principal, Reserva",claudeAddKeyValueTitle:"Chave",claudeAddKeyValuePlaceholder:"sk-ant-sid01-...",claudeImportNameTitle:"Nome",claudeImportNamePlaceholder:"Nome para importar",claudeDeleteConfirmTitle:"Excluir sessão",claudeDeleteConfirmMsg:"Excluir '{name}'?",claudeNameRequired:"Nome obrigatório",claudeKeyRequired:"Chave obrigatória",claudeKeyInvalidFormat:"Formato inválido",claudeKeyExists:"Já existe",claudeNoTokensToExport:"Nada para extrair",claudeExported:"Exportado",claudeInvalidJSON:"JSON inválido",claudeNoNewTokens:"Nada novo",claudeImported:"Importadas {count} sessões",claudeTokenExists:"Já existe: {name}",claudeNoCookieFound:"Sem cookie",claudeRequestPermission:"Aceite cookies na janelinha",claudeNotOnSiteWarning:"Apenas em claude.ai",claudeNotOnSiteHint:"Vá para claude.ai primeiro",claudeShortcutOnlyOnSite:"Apenas em claude.ai",claudeBatchTest:"Teste em lote",claudeBatchTesting:"Checando... {current}/{total}",claudeBatchTestDone:"Pronto. {valid} OK, {invalid} falhas.",claudeBatchTestFailed:"Parado",claudeOnlyOneKeyTip:"Você só tem esta e já está usando",noClaudeKeys:"Nenhuma Session Key configurada",restoreSuccess:"Restauração bem-sucedida, a página será atualizada...",aistudioSettingsTitle:"Configurações do AI Studio",aistudioSettingsDesc:"Configurar comportamento padrão ao carregar a página do AI Studio",aistudioDefaultModel:"Modelo padrão",aistudioDefaultModelNone:"Não especificado (usar padrão do sistema)",aistudioDefaultModelCustom:"ID de modelo personalizado...",aistudioDefaultModelPlaceholder:"models/gemini-xxx",aistudioCollapseNavbar:"Recolher barra lateral",aistudioCollapseNavbarDesc:"Recolher automaticamente a navegação esquerda ao abrir a página",aistudioCollapseRunSettings:"Recolher painel de configurações de execução",aistudioCollapseRunSettingsDesc:"Recolher automaticamente o painel direito de configurações de execução ao abrir",aistudioCollapseTools:"Recolher seção de ferramentas",aistudioCollapseToolsDesc:"Recolher automaticamente a seção de ferramentas nas configurações de execução ao abrir",aistudioCollapseAdvanced:"Recolher configurações avançadas",aistudioCollapseAdvancedDesc:"Recolher automaticamente as opções avançadas ao abrir a página",aistudioEnableSearch:"Ativar ferramenta de pesquisa",aistudioEnableSearchDesc:"Ativar automaticamente a pesquisa em tempo real do Google ao abrir",aistudioModelsFetched:"Lista de modelos atualizada",aistudioNoTabError:"Abra a página do AI Studio primeiro",aistudioModelsError:"Falha ao obter a lista de modelos",chatgptSettingsTitle:"Configurações do ChatGPT",chatgptSettingsDesc:"Configurar comportamento padrão da página ChatGPT",chatgptMarkdownFixLabel:"Correção de Negrito Markdown",chatgptMarkdownFixDesc:"Corrigir texto **negrito** não renderizado nas respostas do ChatGPT",aistudioRemoveWatermark:"Remover marca d'água",aistudioRemoveWatermarkDesc:"Remover a marca d'água de imagens do AI Studio (Requer atualização)",aistudioMarkdownFixLabel:"Correção de Negrito Markdown",aistudioMarkdownFixDesc:"Corrigir texto **negrito** não renderizado nas respostas do AI Studio",aistudioReloadHint:"Atualize a página para aplicar as alterações",exportCustomUserName:"Nome de usuário",exportCustomUserNameDesc:"Nome de exibição do usuário para exportações (Padrão: User)",exportCustomModelName:"Nome da IA",exportCustomModelNameDesc:"Nome de exibição da IA para exportações (Padrão: Nome do site)",exportFilenameTimestamp:"Add Timestamp to Filename",exportFilenameTimestampDesc:"Add a timestamp to the end of the exported filename",exportIncludeThoughtsLabel:"Incluir raciocínio na exportação",exportIncludeThoughtsDesc:"Incluir e expandir automaticamente o raciocínio ao exportar (em blocos de citação)",popupCurrentSite:"Site Atual",popupSupported:"Ativo",popupUnsupported:"Não suportado",popupNewChat:"Nova Conversa",popupQuickAccess:"Acesso Rápido",popupRecentUsed:"Recentes",popupNoRecentPrompts:"Sem prompts recentes",popupCopied:"Copiado",popupCopyFailed:"Falha ao copiar",popupFeedback:"Feedback",popupSettings:"Ajustes",policyRetryLabel:"Auto-repetição por Política",policyRetryDesc:"Reenviar mensagem automaticamente quando bloqueada pela política empresarial",maxRetriesLabel:"Máx. Tentativas",retryCountSuffix:"vezes (mesma pergunta)",policyRetryActive:"Bloqueio de política, tentando novamente ({current}/{max})",policyRetryLimitReached:"Limite de tentativas alcançado",preventAutoScrollEnabled:"Bloqueio de rolagem ativado",preventAutoScrollDisabled:"Bloqueio de rolagem desativado",toolboxMenu:"Caixa de ferramentas",toolboxMenuTitle:"Menu da Caixa de ferramentas",toolboxMenuDesc:"Configurar as funções exibidas no menu pop-up da caixa de ferramentas",queueTitle:"Fila de Prompts",queueQuickAsk:"Fila de Prompts",queueInQueue:"Na fila ({count})",queueEmpty:"A fila está vazia. Digite e pressione Enter para enviar ou adicionar",queueClearAll:"Limpar tudo",queueRemove:"Remover",queuePlaceholderIdle:"Digite o prompt e pressione Enter para enviar...",queuePlaceholderBusy:"IA gerando, pressione Enter para adicionar à fila...",queueStatusIdle:"IA ociosa",queueStatusBusy:"IA gerando",queueSettingLabel:"Fila de Prompts",queueDisableHint:"Você pode desativar este recurso nas configurações",queueSettingDesc:"Mostra uma fila acima do campo de texto para adicionar prompts enquanto a IA está gerando",queueEdit:"Editar",queueEditSave:"Salvar",queueEditCancel:"Cancelar",queueForceSend:"Forçar envio",zenModeTitle:"Modo Zen",zenModeLabel:"Ativar Modo Zen",zenModeDesc:"Oculte elementos desnecessários (como os avisos do modelo na parte inferior) para uma experiência de conversa mais pura (configurado de forma independente para cada site)"}},kn=()=>{if("undefined"==typeof navigator)return "en";const e=navigator.language;return e.startsWith("zh-TW")||e.startsWith("zh-HK")?"zh-TW":e.startsWith("zh")?"zh-CN":e.startsWith("ja")?"ja":e.startsWith("ko")?"ko":e.startsWith("fr")?"fr":e.startsWith("de")?"de":e.startsWith("ru")?"ru":e.startsWith("es")?"es":e.startsWith("pt")?"pt":"en"};let Cn=kn();function Tn(e){Cn="auto"===e?kn():e;}function Dn(e){return "auto"===e?kn():e}function En(e,t){let n=(wn[Cn]||wn.en)[e]||e;return t&&Object.keys(t).forEach(e=>{n=n.replace(new RegExp(`{${e}}`,"g"),t[e]);}),n}function An(){return Cn}const _n=Object.freeze(Object.defineProperty({__proto__:null,getCurrentLang:An,getEffectiveLanguage:Dn,setLanguage:Tn,t:En},Symbol.toStringTag,{value:"Module"})),Ln=["settings","prompts","folders","tags","conversations","readingHistory"],Pn=["conversations","readingHistory"],Nn=()=>[{id:"default_1",title:En("defaultPromptCodeOptTitle")||"代码优化",content:En("defaultPromptCodeOptContent")||"请帮我优化以下代码,提高性能和可读性:\n\n",category:En("defaultPromptCodeOptCategory")||"编程"},{id:"default_2",title:En("defaultPromptTranslateTitle")||"翻译助手",content:En("defaultPromptTranslateContent")||"请将以下内容翻译成中文,保持专业术语的准确性:\n\n",category:En("defaultPromptTranslateCategory")||"翻译"}],Mn=[{id:"inbox",name:"收件箱",icon:"📥",isDefault:true}],In={DEFAULT_PX:"1280",DEFAULT_PERCENT:"81",MIN_PERCENT:40,MAX_PERCENT:100,MIN_PX:1200},jn={DEFAULT_PX:"600",DEFAULT_PERCENT:"81",MIN_PERCENT:40,MAX_PERCENT:100,MIN_PX:600},Rn={CLAUDE_KEY:/^sk-ant-sid\d{2}-/},Fn=500,zn=exports("S", {CLAUDE:"claude",GEMINI:"gemini",CHATGPT:"chatgpt",GEMINI_ENTERPRISE:"gemini-enterprise",GROK:"grok",AISTUDIO:"aistudio",DOUBAO:"doubao"}),On="__all__",Bn="__recent__",qn="export",Un="copyMarkdown",Hn="move",Wn="setTag",Kn="scrollLock",Vn="modelLock",Gn="cleanup",Qn="settings",Zn=[{id:qn,labelKey:"export",defaultLabel:"Export",IconComponent:K,defaultVisible:true},{id:Un,labelKey:"exportToClipboard",defaultLabel:"Copy Markdown",IconComponent:ve,defaultVisible:true},{id:Hn,labelKey:"conversationsMoveTo",defaultLabel:"Move",IconComponent:R,defaultVisible:true},{id:Wn,labelKey:"conversationsSetTag",defaultLabel:"Set Tag",IconComponent:Ce,defaultVisible:true},{id:Kn,labelKey:"shortcutToggleScrollLock",defaultLabel:"Scroll Lock",IconComponent:({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,children:[
         P.jsx("path",{d:"M12 3v12"}),
         P.jsx("path",{d:"m8 11 4 4 4-4"}),
         P.jsx("path",{d:"M19 19H5"}),
         P.jsx("circle",{cx:"12",cy:"11",r:"9",strokeOpacity:"0.3"}),
         P.jsx("path",{d:"m4.9 4.9 14.2 14.2"})]}),isToggle:true,defaultVisible:true},{id:Vn,labelKey:"modelLockTitle",defaultLabel:"Model Lock",IconComponent:({size:e=18,color:t="currentColor",className:n=""})=>P.jsxs("svg",{xmlns:"http://www.w3.org/2000/svg",width:e,height:e,viewBox:"0 0 24 24",fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,children:[
         P.jsx("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"}),
         P.jsx("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),
         P.jsx("circle",{cx:"9",cy:"15",r:"1.5",fill:t,stroke:"none"}),
         P.jsx("circle",{cx:"15",cy:"15",r:"1.5",fill:t,stroke:"none"}),
         P.jsx("path",{d:"M9 19h6"})]}),isToggle:true,defaultVisible:true},{id:Gn,labelKey:"cleanup",defaultLabel:"Cleanup",IconComponent:ke,isDanger:true,defaultVisible:true},{id:Qn,labelKey:"tabSettings",defaultLabel:"Settings",IconComponent:z,isSystem:true,defaultVisible:true}],Jn=e=>{let t;const n=new Set,r=(e,r)=>{const o="function"==typeof e?e(t):e;if(!Object.is(o,t)){const e=t;t=(null!=r?r:"object"!=typeof o||null===o)?o:Object.assign({},t,o),n.forEach(n=>n(t,e));}},o=()=>t,a={setState:r,getState:o,getInitialState:()=>i,subscribe:e=>(n.add(e),()=>n.delete(e))},i=t=e(r,o,a);return a},$n=e=>e;const Xn=e=>{const t=(e=>e?Jn(e):Jn)(e),n=e=>function(e,t=$n){const n=h.useSyncExternalStore(e.subscribe,h.useCallback(()=>t(e.getState()),[e,t]),h.useCallback(()=>t(e.getInitialState()),[e,t]));return h.useDebugValue(n),n}(t,e);return Object.assign(n,t),n},Yn=e=>Xn;function er(e,t){let n;try{n=e();}catch(r){return}return {getItem:e=>{var t;const r=e=>null===e?null:JSON.parse(e,void 0),o=null!=(t=n.getItem(e))?t:null;return o instanceof Promise?o.then(r):r(o)},setItem:(e,t)=>n.setItem(e,JSON.stringify(t,void 0)),removeItem:e=>n.removeItem(e)}}const tr=e=>t=>{try{const n=e(t);return n instanceof Promise?n:{then:e=>tr(e)(n),catch(e){return this}}}catch(n){return {then(e){return this},catch:e=>tr(e)(n)}}},nr=(e,t)=>(n,r,o)=>{let a={storage:er(()=>localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},i=false,s=0;const l=new Set,c=new Set;let d=a.storage;if(!d)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e);},r,o);const u=()=>{const e=a.partialize({...r()});return d.setItem(a.name,{state:e,version:a.version})},h=o.setState;o.setState=(e,t)=>(h(e,t),u());const g=e((...e)=>(n(...e),u()),r,o);let p;o.getInitialState=()=>g;const m=()=>{var e,t;if(!d)return;const o=++s;i=false,l.forEach(e=>{var t;return e(null!=(t=r())?t:g)});const h=(null==(t=a.onRehydrateStorage)?void 0:t.call(a,null!=(e=r())?e:g))||void 0;return tr(d.getItem.bind(d))(a.name).then(e=>{if(e){if("number"!=typeof e.version||e.version===a.version)return [false,e.state];if(a.migrate){const t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[true,e]):[true,t]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided");}return [false,void 0]}).then(e=>{var t;if(o!==s)return;const[i,l]=e;return p=a.merge(l,null!=(t=r())?t:g),n(p,true),i?u():void 0}).then(()=>{o===s&&(null==h||h(p,void 0),p=r(),i=true,c.forEach(e=>e(p)));}).catch(e=>{o===s&&(null==h||h(void 0,e));})};return o.persist={setOptions:e=>{a={...a,...e},e.storage&&(d=e.storage);},clearStorage:()=>{null==d||d.removeItem(a.name);},getOptions:()=>a,rehydrate:()=>m(),hasHydrated:()=>i,onHydrate:e=>(l.add(e),()=>{l.delete(e);}),onFinishHydration:e=>(c.add(e),()=>{c.delete(e);})},a.skipHydration||m(),p||g};const rr=true;new class{area;constructor(e){this.area=e?.area||"local";}async get(e){const t=GM_getValue(e);if(null!=t)return t}async set(e,t){GM_setValue(e,t);}async remove(e){GM_deleteValue(e);}async getAll(){return console.warn("[Storage Polyfill] getAll() is not supported in userscript"),{}}async setMany(e){for(const[t,n]of Object.entries(e))GM_setValue(t,n);}watch(e){if("string"==typeof e){const t=GM_addValueChangeListener(e,(e,t,n,r)=>{});return ()=>GM_removeValueChangeListener(t)}{const t=[];for(const[n,r]of Object.entries(e)){const e=GM_addValueChangeListener(n,(e,t,n,o)=>{r({newValue:n,oldValue:t});});t.push(e);}return ()=>t.forEach(e=>GM_removeValueChangeListener(e))}}}({area:"local"});const or="ophel:clearAllFlag",ar=exports("C", 5e3),ir={mode:"light",lightStyleId:"google-gradient",darkStyleId:"classic-dark"},sr={enabled:false,value:"1280",unit:"px"},lr={enabled:false,value:"600",unit:"px"},cr={enabled:false},dr={language:"auto",hasAgreedToTerms:false,panel:{defaultOpen:true,autoHide:false,edgeSnap:true,preventAutoScroll:false,defaultPosition:"right",defaultEdgeDistance:25,edgeSnapThreshold:18,height:85,width:320},geminiEnterprise:{policyRetry:{enabled:false,maxRetries:3}},content:{markdownFix:true,
         // 油猴脚本环境默认开启(GM_xmlhttpRequest 已通过 @grant 声明)
         watermarkRemoval:rr,formulaCopy:true,formulaDelimiter:true,tableCopy:true,exportImagesToBase64:false,userQueryMarkdown:false},export:{customUserName:"",customModelName:"",exportFilenameTimestamp:false,includeThoughts:true},theme:{sites:{gemini:{...ir},"gemini-enterprise":{...ir},doubao:{...ir},_default:{...ir}},customStyles:[]},layout:{pageWidth:{gemini:{...sr},"gemini-enterprise":{...sr},aistudio:{...sr},doubao:{...sr},_default:{...sr}},userQueryWidth:{gemini:{...lr},"gemini-enterprise":{...lr},aistudio:{...lr},doubao:{...lr},_default:{...lr}},zenMode:{gemini:{...cr},"gemini-enterprise":{...cr},aistudio:{...cr},doubao:{...cr},_default:{...cr}}},modelLock:{gemini:{enabled:false,keyword:""},"gemini-enterprise":{enabled:false,keyword:""}},globalSearch:{promptEnterBehavior:"smart",enableFuzzySearch:false,doubleShift:false},features:{order:["outline","conversations","prompts"],prompts:{enabled:true,doubleClickToSend:false,submitShortcut:"enter",promptQueue:false},conversations:{enabled:true,syncUnpin:false,syncDelete:true,folderRainbow:true},outline:{enabled:true,maxLevel:6,autoUpdate:true,updateInterval:2,showUserQueries:true,followMode:"current",expandLevel:6,inlineBookmarkMode:"always",panelBookmarkMode:"always",showWordCount:false}},tab:{openInNewTab:true,autoRename:true,renameInterval:3,showStatus:true,titleFormat:"{status}{title}->{model}",
         // 油猴脚本环境默认开启(GM_notification 已通过 @grant 声明)
         showNotification:rr,notificationSound:true,notificationVolume:.6,notifyWhenFocused:false,autoFocus:false,privacyMode:false,privacyTitle:"Google",customIcon:"default"},readingHistory:{persistence:true,autoRestore:true,cleanupDays:30},collapsedButtons:[{id:"panel",enabled:true},{id:"floatingToolbar",enabled:true},{id:"globalSearch",enabled:true},{id:"theme",enabled:true},{id:"scrollTop",enabled:true},{id:"manualAnchor",enabled:false},{id:"anchor",enabled:true},{id:"scrollBottom",enabled:true}],quickButtonsOpacity:1,floatingToolbar:{open:true},claude:{currentKeyId:""},webdav:{enabled:false,url:"",username:"",password:"",syncMode:"manual",syncInterval:30,remoteDir:"ophel",dataSources:["settings","conversations","prompts","claudeSessionKeys"]},shortcuts:xn,aistudio:{collapseNavbar:false,collapseTools:false,collapseAdvanced:false,enableSearch:true,defaultModel:"",markdownFix:rr,removeWatermark:rr},chatgpt:{markdownFix:true}};function ur(e,t){const n=e.theme?.sites;return n&&t in n?n[t]:n?._default??ir}function hr(e,t){const n=e.layout?.pageWidth;return n&&t in n?n[t]:n?._default??sr}function gr(e,t){return e.modelLock?.[t]??{enabled:false,keyword:""}}function pr(e,t){const n=e.layout?.userQueryWidth;return n&&t in n?n[t]:n?._default??lr}function mr(e,t){const n=e.layout?.zenMode;return n&&t in n?n[t]:n?._default??cr}let fr=null;function br(){return fr||(fr=new Promise(e=>{"undefined"!=typeof chrome&&chrome.storage?.local?chrome.storage.local.get(or,t=>{const n=t?.[or];if(!(void 0!==n))return void e(false);const r="number"==typeof n?n:Number(n);if(!Number.isFinite(r))return void e(true);Date.now()-r<=5e3?e(true):chrome.storage.local.remove(or,()=>e(false));}):e(false);}),fr)}const yr="ophel:restoreFlag";let vr=null;const xr={getItem:e=>{const t=GM_getValue(e);return null==t?null:"string"==typeof t?t:JSON.stringify(t)},setItem:(e,t)=>{GM_setValue(e,t);},removeItem:e=>{GM_deleteValue(e);}},Sr={...xr,setItem:async(e,t)=>xr.setItem(e,t)},wr=Yn()(nr((e,t)=>({settings:dr,_hasHydrated:false,_syncVersion:0,setSettings:t=>e(e=>({settings:{...e.settings,...t}})),updateNestedSetting:(t,n,r)=>e(e=>({settings:{...e.settings,[t]:{...e.settings[t],[n]:r}}})),updateDeepSetting:(t,n,r,o)=>e(e=>{const a=e.settings[t],i=a?.[n]||{};return {settings:{...e.settings,[t]:{...a,[n]:{...i,[r]:o}}}}}),replaceSettings:t=>e({settings:{...dr,...t}}),resetSettings:()=>e({settings:dr}),setHasHydrated:t=>e({_hasHydrated:t})}),{name:"settings",storage:er(()=>Sr),partialize:e=>({settings:e.settings}),onRehydrateStorage:()=>e=>{e?.setHasHydrated(true);}})),kr=()=>wr(e=>e._hasHydrated),Cr=()=>wr.getState().settings,Tr=e=>wr.subscribe(t=>e(t.settings)),Dr=Object.freeze(Object.defineProperty({__proto__:null,getSettingsState:Cr,subscribeSettings:Tr,useSettingsHydrated:kr,useSettingsStore:wr},Symbol.toStringTag,{value:"Module"})),Er={MAX_DEPTH:15,DEFAULT_TIMEOUT:5e3,POLL_INTERVAL:50,CACHE_TTL:3e5},Ar={ELEMENT:1,DOCUMENT:9,FRAGMENT:11},_r={isValidContext:e=>null!==e&&Object.values(Ar).includes(e.nodeType),isVisible:e=>e&&null!==e.offsetParent,isConnected:e=>e&&e.isConnected,createCleanupManager(){const e=new Set;return {add:t=>(e.add(t),()=>e.delete(t)),execute(){e.forEach(e=>{try{e();}catch(t){console.error("[DOMToolkit] Cleanup error:",t);}}),e.clear();},get size(){return e.size}}}}; exports({ w: Cr, k: Tr });class Lr{enabled=true;ttl;store=new WeakMap;timestamps=new WeakMap;constructor(e=Er.CACHE_TTL){this.ttl=e;}setEnabled(e){this.enabled=e;}get(e,t){if(!this.enabled)return null;const n=this.store.get(e),r=this.timestamps.get(e);if(!n||!r)return null;const o=n.get(t);if(!o)return null;const a=r.get(t);return a&&Date.now()-a>this.ttl?(n.delete(t),r.delete(t),null):_r.isConnected(o)?o:(n.delete(t),r.delete(t),null)}set(e,t,n){if(!this.enabled||!n)return;let r=this.store.get(e),o=this.timestamps.get(e);r||(r=new Map,this.store.set(e,r)),o||(o=new Map,this.timestamps.set(e,o)),r.set(t,n),o.set(t,Date.now());}clear(){this.store=new WeakMap,this.timestamps=new WeakMap;}}class Pr{observers=new Map;getSharedObserver(e){if(!this.observers.has(e)){const t=new Set,n=new MutationObserver(e=>{for(const n of e)for(const e of n.addedNodes)e.nodeType===Ar.ELEMENT&&t.forEach(t=>{try{t(e,n);}catch(r){console.error("[DOMToolkit] Observer callback error:",r);}});});n.observe(e,{childList:true,subtree:true}),this.observers.set(e,{observer:n,callbacks:t,refCount:0});}const t=this.observers.get(e);return t.refCount++,{addCallback:e=>t.callbacks.add(e),removeCallback:n=>{t.callbacks.delete(n),t.refCount--,0===t.refCount&&(t.observer.disconnect(),this.observers.delete(e));}}}destroy(){this.observers.forEach(({observer:e})=>e.disconnect()),this.observers.clear();}}const Nr=exports("D", new class{cache;observerManager;doc;constructor(){this.doc=document,this.cache=new Lr,this.observerManager=new Pr;}configCache(e={}){"boolean"==typeof e.enabled&&this.cache.setEnabled(e.enabled);}clearCache(){this.cache.clear();}query(e,t={}){const{parent:n=this.doc,all:r=false,shadow:o=true,maxDepth:a=Er.MAX_DEPTH,useCache:i=true,filter:s=null}=t,l=Array.isArray(e)?e:[e],c=i&&!s;if(!r&&c&&1===l.length){const e=this.cache.get(n,l[0]);if(e)return e}for(const d of l)try{if(r){const e=Array.from(n.querySelectorAll(d)),t=s?e.filter(s):[...e];if(o&&this.collectInShadow(n,d,t,0,a,s),t.length>0)return t}else {const e=n.querySelectorAll(d);for(const t of e)if(!s||s(t))return c&&this.cache.set(n,d,t),t}}catch{}if(o&&!r){const e=this.findInShadow(n,l,0,a,s);return e&&c&&1===l.length&&this.cache.set(n,l[0],e),e}return r?[]:null}findInShadow(e,t,n,r,o){if(n>r)return null;if(e!==this.doc&&e.querySelectorAll)for(const i of t)try{const t=e.querySelectorAll(i);for(const e of t)if(!o||o(e))return e}catch{}const a=e.querySelectorAll?e.querySelectorAll("*"):[];for(const i of a)if(i.shadowRoot){const e=this.findInShadow(i.shadowRoot,t,n+1,r,o);if(e)return e}return null}collectInShadow(e,t,n,r,o,a){if(r>o)return;if(e!==this.doc&&e.querySelectorAll)try{const r=e.querySelectorAll(t);for(const e of r)n.includes(e)||a&&!a(e)||n.push(e);}catch{}const i=e.querySelectorAll?e.querySelectorAll("*"):[];for(const s of i)s.shadowRoot&&this.collectInShadow(s.shadowRoot,t,n,r+1,o,a);}async get(e,t={}){const{parent:n=this.doc,timeout:r=Er.DEFAULT_TIMEOUT,shadow:o=true,filter:a=null}=t,i=this.query(e,{parent:n,shadow:o,filter:a});return i&&!Array.isArray(i)?i:new Promise(t=>{const i=_r.createCleanupManager(),s=Date.now();let l;r>0&&(l=setTimeout(()=>{i.execute(),t(null);},r),i.add(()=>clearTimeout(l)));const c=()=>{if(r>0&&Date.now()-s>=r)return;const l=this.query(e,{parent:n,shadow:o,filter:a});if(l&&!Array.isArray(l))return i.execute(),void t(l);const d=setTimeout(c,Er.POLL_INTERVAL);i.add(()=>clearTimeout(d));},d=Array.isArray(e)?e:[e],u=this.observerManager.getSharedObserver(n),h=e=>{for(const n of d)try{if(e.matches?.(n)&&(!a||a(e)))return i.execute(),void t(e);if(e.querySelectorAll){const r=e.querySelectorAll(n);for(const e of r)if(!a||a(e))return i.execute(),void t(e)}}catch{}};u.addCallback(h),i.add(()=>u.removeCallback(h)),c();})}each(e,t,n={}){const{parent:r=this.doc,shadow:o=true}=n;if("function"!=typeof t)return console.error("[DOMToolkit] each: callback must be a function"),()=>{};const a=new WeakSet;let i=true;const s=(e,n)=>{if(i&&!a.has(e)){a.add(e);try{!1===t(e,n)&&d();}catch(r){console.error("[DOMToolkit] each callback error:",r),d();}}};this.query(e,{parent:r,all:true,shadow:o}).forEach(e=>s(e,false));const l=this.observerManager.getSharedObserver(r),c=t=>{if(i)try{t.matches?.(e)&&s(t,!0),t.querySelectorAll&&t.querySelectorAll(e).forEach(e=>s(e,!0));}catch{}};l.addCallback(c);const d=()=>{i&&(i=false,l.removeCallback(c));};return d}watch(e,t,n={}){const{debounce:r=0,childList:o=true,attributes:a=true,characterData:i=false,subtree:s=false,attributeFilter:l}=n;if(!_r.isValidContext(e))return console.error("[DOMToolkit] watch: invalid element"),()=>{};let c=null;const d=new MutationObserver((e,n)=>{if(r>0)c&&clearTimeout(c),c=setTimeout(()=>{try{t(e,n);}catch(r){console.error("[DOMToolkit] watch callback error:",r);}},r);else try{t(e,n);}catch(o){console.error("[DOMToolkit] watch callback error:",o);}});return d.observe(e,{childList:o,attributes:a,characterData:i,subtree:s,attributeFilter:l}),()=>{c&&clearTimeout(c),d.disconnect();}}watchMultiple(e,t={}){const{debounce:n=0,characterData:r=true,childList:o=true,attributes:a=false}=t;if(!_r.isValidContext(e))return console.error("[DOMToolkit] watchMultiple: invalid container"),{add:()=>{},remove:()=>{},stop:()=>{}};const i=new Map;let s=null;const l=new Set,c=()=>{l.forEach(e=>{const t=i.get(e);if(t)try{t(e);}catch(n){console.error("[DOMToolkit] watchMultiple callback error:",n);}}),l.clear();},d=new MutationObserver(t=>{for(const n of t){let t=n.target;for(;t&&t!==e;){if(i.has(t)){l.add(t);break}t=t.parentNode;}}0!==l.size&&(n>0?(s&&clearTimeout(s),s=setTimeout(c,n)):c());});return d.observe(e,{characterData:r,childList:o,attributes:a,subtree:true}),{add:(e,t)=>i.set(e,t),remove:e=>i.delete(e),stop:()=>{s&&clearTimeout(s),d.disconnect(),i.clear();}}}on(e,t,n,r={}){const{parent:o=this.doc,capture:a=false}=r,i=e=>{const r=e.composedPath?e.composedPath():[e.target];for(const a of r){if(a===o||a===window)break;try{if(a.matches?.(t))return void n(e,a)}catch{}}try{const r=e.target.closest?.(t);r&&o.contains(r)&&n(e,r);}catch{}};return o.addEventListener(e,i,a),()=>o.removeEventListener(e,i,a)}create(e,t={},n=""){const r=this.doc.createElement(e);for(const[o,a]of Object.entries(t))"className"===o?r.className=a:"style"===o&&"object"==typeof a?Object.assign(r.style,a):"style"===o?r.setAttribute("style",a):"dataset"===o&&"object"==typeof a?Object.assign(r.dataset,a):o.startsWith("on")&&"function"==typeof a?r.addEventListener(o.slice(2).toLowerCase(),a):r.setAttribute(o,a);return n&&(r.textContent=n),r}createFromHTML(e,t={}){const{parent:n=null,mapIds:r=false}=t,o=this.doc.createElement("template");o.innerHTML=e.trim();const a=o.content.firstElementChild;if(!a)return null;if(n instanceof Element&&n.appendChild(a),r){const e={root:a};return a.id&&(e[a.id]=a),a.querySelectorAll("[id]").forEach(t=>{t.id&&(e[t.id]=t);}),e}return a}clear(e){for(;e.firstChild;)e.removeChild(e.firstChild);}css(e,t=null){if(t){const n=this.doc.getElementById(t);if(n)return n.textContent!==e&&(n.textContent=e),n}const n=this.doc.createElement("style");return t&&(n.id=t),n.textContent=e,this.doc.head.appendChild(n),n}cssToShadow(e,t,n=null){if(!e)return null;try{if(n){const r=e.getElementById(n);if(r)return r.textContent!==t&&(r.textContent=t),r}const r=this.doc.createElement("style");return n&&(r.id=n),r.textContent=t,e.appendChild(r),r}catch{return null}}cssToAllShadows(e,t,n={}){const{root:r=this.doc.body,filter:o=null}=n;if(!r)return 0;let a=0;const i=n=>{if(n.shadowRoot){if(o&&!o(n));else try{this.cssToShadow(n.shadowRoot,e,t),a++;}catch{}try{i(n.shadowRoot);}catch{}}const r=n.childNodes;for(let e=0;e<r.length;e++)r[e].nodeType===Ar.ELEMENT&&i(r[e]);};return i(r),a}walkShadowRoots(e,t={}){const{root:n=this.doc.body,maxDepth:r=Er.MAX_DEPTH}=t;if(!n)return;const o=(t,n)=>{if(n>r)return;if(t.shadowRoot){try{e(t.shadowRoot,t);}catch(i){console.error("[DOMToolkit] walkShadowRoots callback error:",i);}try{o(t.shadowRoot,n+1);}catch{}}const a=t.childNodes;for(let e=0;e<a.length;e++)a[e].nodeType===Ar.ELEMENT&&o(a[e],n);};o(n,0);}findScrollContainer(e={}){const{root:t=this.doc,selectors:n=[],minOverflow:r=100}=e;for(const i of n){const e=this.doc.querySelector(i);if(e&&e.scrollHeight>e.clientHeight)return e}const o=(e,t)=>{if(t>Er.MAX_DEPTH)return null;const n=e.querySelectorAll?e.querySelectorAll("*"):[];for(const a of n){if(a.scrollHeight>a.clientHeight+r){const e=window.getComputedStyle(a);if("auto"===e.overflowY||"scroll"===e.overflowY||"auto"===e.overflow||"scroll"===e.overflow)return a}if(a.shadowRoot){const e=o(a.shadowRoot,t+1);if(e)return e}}return null},a=o(t,0);return a||(this.doc.documentElement.scrollHeight>this.doc.documentElement.clientHeight?this.doc.documentElement:this.doc.body)}destroy(){this.observerManager.destroy(),this.cache.clear();}});class Mr{textarea=null;_cachedFlutterScrollContainer=null;getSessionId(){const e=window.location.href.split("?")[0].split("/").filter(e=>e);return e.length>0?e[e.length-1]:"default"}supportsNewTab(){return  true}getNewTabUrl(){return window.location.origin}supportsTabRename(){return  true}getSessionName(){const e=document.title;if(e){const t=e.split(" - ");return t.length>1?t.slice(0,-1).join(" - ").trim():e.trim()}return null}isNewConversation(){return  false}isSharePage(){return window.location.pathname.startsWith("/share/")}
         /**
            * 获取当前团队 ID(用于会话隔离)
            * 仅在支持多团队的站点(如 Gemini Enterprise)中实现
            * @returns 团队 ID 或 null(无团队/默认团队)
            */getCurrentCid(){return null}getConversationList(){return []}getSidebarScrollContainer(){return null}getConversationObserverConfig(){return null}
         /**
            * 导航到指定会话(SPA 导航,不刷新页面)
            * 各站点适配器应覆盖此方法实现站点特定的导航逻辑
            * @param id 会话 ID
            * @param url 会话 URL(用于降级硬刷新)
            * @returns 是否成功导航
            */navigateToConversation(e,t){return !!t&&(window.location.href=t,true)}async deleteConversationOnSite(e){return {id:e.id,success:false,method:"none",reason:"not_supported"}}async deleteConversationsOnSite(e){const t=[];for(const n of e)t.push(await this.deleteConversationOnSite(n));return t}async loadAllConversations(){const e=this.getSidebarScrollContainer();if(!e)return;let t=0,n=0;for(;n<3;){e.scrollTop=e.scrollHeight,await new Promise(e=>setTimeout(e,500));const r=(Nr.query(".conversation",{all:true,shadow:true})||[]).length;r===t?n++:(t=r,n=0);}}isGenerating(){return  false}getModelName(){return null}getNetworkMonitorConfig(){return null}
         /**
            * 切换站点主题(子类可覆盖以实现站点特定的主题切换逻辑)
            * @param targetMode 目标主题模式
            * @returns 是否成功切换
            */async toggleTheme(e){return  false}getWidthSelectors(){return []}getUserQueryWidthSelectors(){return []}getZenModeSelectors(){return []}getMarkdownFixerConfig(){return null}getSubmitButtonSelectors(){return []}
         /**
            * 获取发送消息的快捷键配置
            * 子类可覆盖以适配不同平台的发送键设置
            * @returns 发送键配置:key 为 "Enter" 或 "Ctrl+Enter"
            */getSubmitKeyConfig(){return {key:"Enter"}}findTextarea(){for(const e of this.getTextareaSelectors()){const t=document.querySelectorAll(e);for(const e of Array.from(t))if(this.isValidTextarea(e))return this.textarea=e,e}return null}isValidTextarea(e){return !e.closest(".gh-main-panel")&&!e.closest(".gh-queue-panel")&&(!Array.from(e.classList).some(e=>e.startsWith("gh-queue-")||e.startsWith("gh-"))&&null!==e.offsetParent)}clearTextarea(){this.textarea&&(this.textarea instanceof HTMLInputElement||this.textarea instanceof HTMLTextAreaElement?this.textarea.value="":this.textarea.textContent="",this.textarea.dispatchEvent(new Event("input",{bubbles:true})));}getTextareaElement(){return this.textarea&&this.textarea.isConnected?this.textarea:this.findTextarea()}getScrollContainer(){const e=["infinite-scroller.chat-history",".chat-mode-scroller","main",'[role="main"]',".conversation-container",".chat-container","div.content-container"];for(const n of e){const e=document.querySelector(n);if(e&&e.scrollHeight>e.clientHeight)return this._cachedFlutterScrollContainer=null,e}if(this._cachedFlutterScrollContainer&&this._cachedFlutterScrollContainer.isConnected)return this._cachedFlutterScrollContainer;if(this.getSiteId()===zn.GEMINI){const e=document.querySelectorAll('iframe[sandbox*="allow-same-origin"]');for(const n of Array.from(e))try{const e=n.contentDocument||n.contentWindow?.document;if(e){const t=e.querySelector('flt-semantics[style*="overflow-y: scroll"]:not([style*="overflow-x: scroll"])');if(t&&t.scrollHeight>t.clientHeight)return this._cachedFlutterScrollContainer=t,t}}catch(t){console.warn("[Ophel] Failed to access iframe:",t.message);}}return null}getVisibleAnchorElement(){const e=this.getScrollContainer();if(!e)return null;const t=e.scrollTop,n=this.getChatContentSelectors();if(!n.length)return null;const r=Array.from(e.querySelectorAll(n.join(", ")));if(!r.length)return null;let o=null;for(let a=0;a<r.length;a++){const e=r[a];if(!(e.offsetTop<=t+100))break;o=e;}if(!o&&r.length>0&&(o=r[0]),o){const e=t-o.offsetTop,n=o.getAttribute("data-message-id")||o.id;if(n){let t=`[data-message-id="${n}"]`;return o.matches(t)||(t=`#${n}`),{type:"selector",selector:t,offset:e}}{const t=r.indexOf(o);if(-1!==t){return {type:"index",index:t,offset:e,textSignature:(o.textContent||"").trim().substring(0,50)}}}}return null}restoreScroll(e){const t=this.getScrollContainer();if(!t||!e)return  false;let n=null;if("selector"===e.type&&e.selector)n=t.querySelector(e.selector);else if("index"===e.type&&"number"==typeof e.index){const r=this.getChatContentSelectors(),o=Array.from(t.querySelectorAll(r.join(", ")));if(o[e.index]){if(n=o[e.index],e.textSignature){if((n.textContent||"").trim().substring(0,50)!==e.textSignature){const t=o.find(t=>(t.textContent||"").trim().substring(0,50)===e.textSignature);t&&(n=t);}}}else if(e.textSignature){const t=o.find(t=>(t.textContent||"").trim().substring(0,50)===e.textSignature);t&&(n=t);}}if(n){const r=n.offsetTop+(e.offset||0);return t.scrollTo({top:r,behavior:"instant"}),true}return  false}getResponseContainerSelector(){return ""}getChatContentSelectors(){return []}getUserQuerySelector(){return null}extractTextWithLineBreaks(e){const t=[],n=new Set(["div","p","li","h1","h2","h3","h4","h5","h6","pre","blockquote","tr","section","article"]),r=e=>{if(e.nodeType===Node.TEXT_NODE){const n=e.textContent||"";t.push(n);}else if(e.nodeType===Node.ELEMENT_NODE){const o=e,a=o.tagName.toLowerCase();if("br"===a)return void t.push("\n");for(const e of o.childNodes)r(e);if(n.has(a)&&t.length>0){t[t.length-1].endsWith("\n")||t.push("\n");}}};return r(e),t.join("").replace(/\n{3,}/g,"\n\n").trim()}
         /**
            * 使用 Range API 计算两个 DOM 节点之间的文本长度
            * 通用于 Heading 类型的 OutlineItem 字数统计
            * @param startEl 起始元素(不包含其内容,从其之后开始)
            * @param endEl 结束元素(不包含,在其之前结束);若为 null 则使用 fallbackContainer
            * @param fallbackContainer 当 endEl 为 null 时使用的容器末尾
            * @returns 文本字符数
            */calculateRangeWordCount(e,t,n){if(!e)return 0;try{const r=document.createRange();if(r.setStartAfter(e),t)r.setEndBefore(t);else {if(!n?.lastChild)return 0;r.setEndAfter(n.lastChild);}return r.toString().trim().length}catch{return 0}}extractUserQueryText(e){return this.extractTextWithLineBreaks(e)}extractUserQueryMarkdown(e){return this.extractUserQueryText(e)}
         /**
            * 将渲染后的 HTML 替换到用户提问元素中
            * 子类可重写以处理特殊的 DOM 结构
            * @returns 是否成功替换
            */replaceUserQueryContent(e,t){return  false}extractAssistantResponseText(e){return this.extractTextWithLineBreaks(e)}isInRenderedMarkdownContainer(e){return null!==e.closest(".gh-user-query-markdown")}usesShadowDOM(){return  false}extractOutline(e=6,t=false,n=false){return []}
         /**
            * 根据标题级别和文本查找元素(支持 Shadow DOM 穿透)
            * 用于大纲跳转时元素失效后的重新查找
            * @param level 标题级别 (1-6)
            * @param text 标题文本内容
            * @returns 匹配的元素,未找到返回 null
            */findElementByHeading(e,t){const n=document.querySelectorAll(`h${e}`);for(const r of Array.from(n))if(r.textContent?.trim()===t)return r;return null}
         /**
            * 根据 queryIndex 和文本查找用户提问元素
            * 用于大纲跳转时元素失效后的重新查找
            * @param queryIndex 用户提问的序号(从 1 开始)
            * @param text 用户提问文本(用于验证和回退搜索)
            * @returns 匹配的元素,未找到返回 null
            */findUserQueryElement(e,t){const n=this.getUserQuerySelector();if(!n)return null;const r=Nr.query(n,{all:true,shadow:true});if(!r||0===r.length)return null;if(r.length>=e){const n=r[e-1],o=this.extractUserQueryText(n);if(o===t||o.startsWith(t)||t.startsWith(o))return n}for(const o of r){const e=this.extractUserQueryText(o);if(e===t||e.startsWith(t)||t.startsWith(e))return o}return null}supportsScrollLock(){return  false}getExportConfig(){return null}async prepareConversationExport(e){return null}async restoreConversationAfterExport(e,t){}getLatestReplyText(){return null}getNewChatButtonSelectors(){return []}bindNewChatListeners(e){document.addEventListener("keydown",t=>{t.ctrlKey&&t.shiftKey&&("o"===t.key||"O"===t.key)&&setTimeout(e,500);}),document.addEventListener("click",t=>{const n=this.getNewChatButtonSelectors();if(0===n.length)return;const r=t.composedPath();for(const o of r){if(o===document||o===window)break;for(const t of n)if(o.matches&&o.matches(t))return void setTimeout(e,500)}},true);}getDefaultLockSettings(){return {enabled:false,keyword:""}}getModelSwitcherConfig(e){return null}simulateClick(e){e.click();}
         /**
            * 点击模型选择器按钮(公开方法,供外部调用)
            * 使用 simulateClick 确保在 Radix UI 等框架中也能正常工作
            * 使用 findElementBySelectors 支持 Shadow DOM 穿透(与 lockModel 一致)
            * @returns 是否成功点击
            */clickModelSelector(){const e=this.getModelSwitcherConfig("");if(!e||!e.selectorButtonSelectors)return  false;const t=this.findElementBySelectors(e.selectorButtonSelectors);return !(!t||null===t.offsetParent)&&(this.simulateClick(t),true)}lockModel(e,t){const n=this.getModelSwitcherConfig(e);if(!n)return;const{targetModelKeyword:r,selectorButtonSelectors:o,menuItemSelector:a,checkInterval:i=1e3,maxAttempts:s=10,menuRenderDelay:l=500,subMenuTriggers:c=[],subMenuSelector:d}=n,u=e=>(e||"").toLowerCase().trim(),h=u(r);let g=0;const p=s,m=setInterval(()=>{g++;const e=this.findElementBySelectors(o);if(e){clearInterval(m);if(u(e.textContent||e.innerText||"").includes(h))return void(t&&t());this.performMenuSearch(e,h,a,l,c,d,t,s);}else g>=p&&(clearInterval(m),console.warn(`Ophel: Model selector button not found after ${p} attempts.`),this.showModelLockFailure(r,"button_not_found"));},i);}performMenuSearch(e,t,n,r,o,a,i,s=10){this.simulateClick(e);const l=Math.max(3,s);let c=0;const d=()=>{c++;const s=this.getVisibleMenuItems(n,e);if(!(s.length>0))return c>=l?(document.body.click(),console.warn("Ophel: Menu items not found."),void this.showModelLockFailure(t,"menu_empty")):void setTimeout(d,r);this.searchAndSelectModel(s,t,n,r,o,a,i);};setTimeout(d,r);}searchAndSelectModel(e,t,n,r,o,a,i){const s=e=>(e||"").toLowerCase().trim(),l=this.findBestMatchingItem(e,t);if(l)return this.simulateClick(l),void setTimeout(()=>{document.body.click(),i&&i();},100);let c;if(a&&(c=e.find(e=>e.matches(a))),!c&&o.length>0&&(c=e.find(e=>{const t=s(e.textContent||"");return o.some(e=>t.includes(s(e)))})),c)return this.simulateClick(c),void setTimeout(()=>{const e=this.getVisibleMenuItems(n,c),r=this.findBestMatchingItem(e,t);if(r)return this.simulateClick(r),void setTimeout(()=>{document.body.click(),i&&i();},100);document.body.click(),console.warn(`Ophel: Model "${t}" not found in sub-menu.`),this.showModelLockFailure(t,"not_found");},r);document.body.click(),console.warn(`Ophel: Model "${t}" not found in menu.`),this.showModelLockFailure(t,"not_found");}getVisibleMenuItems(e,t){const n=this.getVisibleElementsBySelector(e);if(!t||0===n.length)return n;const r=this.getMenuContainerByAria(t);if(r){const e=n.filter(e=>r.contains(e));if(e.length>0)return e}const o=this.getMenuContainerSelector(),a=new Map;for(const i of n){const e=i.closest(o);if(!e||!this.isElementVisible(e))continue;const t=a.get(e);t?t.push(i):a.set(e,[i]);}if(a.size>0){const e=this.pickBestMenuContainer(t,a);if(e)return a.get(e)||n}return n}getVisibleElementsBySelector(e){return Nr.query(e,{all:true,shadow:true,filter:e=>this.isElementVisible(e)})||[]}getMenuContainerByAria(e){const t=e.getAttribute("aria-controls")||e.getAttribute("aria-owns");if(!t)return null;const n=`#${this.escapeSelector(t)}`,r=Nr.query(n,{shadow:true});return r&&this.isElementVisible(r)?r:null}getMenuContainerSelector(){return ['[role="menu"]','[role="listbox"]',"md-menu-surface",".mdc-menu-surface",".mat-menu-panel",".menu[popover]","[data-radix-popper-content-wrapper]",".cdk-overlay-pane"].join(", ")}pickBestMenuContainer(e,t){const n=e.getBoundingClientRect();let r=null;return t.forEach((e,t)=>{if(0===e.length)return;const o=t.getBoundingClientRect(),a=this.getRectDistance(n,o);(!r||a<r.distance-1||Math.abs(a-r.distance)<=1&&e.length>r.count)&&(r={container:t,distance:a,count:e.length});}),r?r.container:null}getRectDistance(e,t){const n=Math.max(e.left-t.right,t.left-e.right,0),r=Math.max(e.top-t.bottom,t.top-e.bottom,0);return Math.sqrt(n*n+r*r)}isElementVisible(e){if(!e)return  false;const t=e;if(!t.isConnected)return  false;const n=window.getComputedStyle(t);if("none"===n.display||"hidden"===n.visibility||0===parseFloat(n.opacity))return  false;const r=t.getBoundingClientRect();return r.width>0&&r.height>0}escapeSelector(e){return "undefined"!=typeof CSS&&"function"==typeof CSS.escape?CSS.escape(e):e.replace(/[^a-zA-Z0-9_-]/g,"\\$&")}findBestMatchingItem(e,t){const n=e=>(e||"").toLowerCase().trim();for(const r of e){const e=n(r.textContent||r.innerText||"");if(e.split("\n")[0].trim()===t||e===t)return r}for(const r of e){if(n(r.textContent||r.innerText||"").split("\n")[0].trim().endsWith(t))return r}for(const r of e){if(n(r.textContent||r.innerText||"").includes(t))return r}}async showModelLockFailure(e,t){try{const{showToast:n}=await r(async()=>{const{showToast:e}=await Promise.resolve().then(()=>to);return {showToast:e}},void 0),{t:o}=await r(async()=>{const{t:e}=await Promise.resolve().then(()=>_n);return {t:e}},void 0);let a;switch(t){case "button_not_found":a=o("modelLockFailedNoButton")||"模型选择器未找到";break;case "menu_empty":a=o("modelLockFailedMenuEmpty")||"模型菜单加载失败";break;default:a=(o("modelLockFailedNotFound")||'未找到模型 "{model}"').replace("{model}",e);}n(a,3e3);}catch(n){console.error("Ophel: Failed to show toast:",n);}}findElementBySelectors(e){return Nr.query(e,{shadow:true})}findAllElementsBySelector(e){return Nr.query(e,{all:true,shadow:true})||[]}afterPropertiesSet(e={}){const{modelLockConfig:t}=e;t&&t.enabled&&this.lockModel(t.keyword);}shouldInjectIntoShadow(e){return  true}}const Ir="Google AI Studio",jr="delete_ui_failed",Rr="delete_batch_aborted_after_ui_failure",Fr="delete_api_disabled_unstable",zr="delete_api_auth_missing",Or="delete_api_key_missing",Br="delete_api_request_failed",qr="delete_api_not_found_but_visible",Ur=["delete","remove","删除","刪除","削除","삭제","supprimer","eliminar","löschen","excluir","hapus","удалить"],Hr=["cancel","取消","キャンセル","취소","annuler","abbrechen","annulla","batal","cancelar","отмена"],Wr="/$rpc/google.internal.alkali.applications.makersuite.v1.MakerSuiteService";const Kr="ChatGPT",Vr=["delete","remove","删除","刪除","supprimer","eliminar","löschen","削除","삭제","удалить","excluir"],Gr="delete_ui_failed",Qr="delete_batch_aborted_after_ui_failure",Zr="delete_api_token_missing",Jr="delete_api_request_failed",$r="delete_api_not_found_but_visible";const Xr=new Map;function Yr(e,t=2e3,n={}){const r=document.getElementById("gh-toast");if(r&&r.remove(),!document.getElementById("gh-toast-style")){const e=document.createElement("style");e.id="gh-toast-style",e.textContent="\n      .gh-toast {\n        position: fixed !important;\n        top: 32px !important;\n        left: 50% !important;\n        transform: translateX(-50%) !important;\n        background: var(--gh-brand-gradient);\n        color: white;\n        border: none;\n        padding: 10px 24px;\n        border-radius: 9999px;\n        font-size: 14px;\n        font-weight: 500;\n        box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n        z-index: 2147483647;\n        pointer-events: none;\n        opacity: 0;\n        transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n        font-family: 'Google Sans', Roboto, sans-serif;\n      }\n      .gh-toast.show {\n        opacity: 1;\n      }\n      .gh-toast--outline-nav {\n        white-space: nowrap;\n        overflow: hidden;\n        text-overflow: ellipsis;\n        max-width: 360px;\n      }\n    ",document.head.appendChild(e);}const o=document.createElement("div");o.id="gh-toast",o.className="gh-toast",n.className&&o.classList.add(n.className),n.maxWidth&&Number.isFinite(n.maxWidth)&&(o.style.maxWidth=`${n.maxWidth}px`),o.textContent=e,document.body.appendChild(o),requestAnimationFrame(()=>{o.classList.add("show");}),setTimeout(()=>{o.classList.remove("show"),setTimeout(()=>{o.parentNode&&o.parentNode.removeChild(o);},300);},t);}function eo(e,t=2e3,n={},r=1500,o=e){const a=Date.now();a-(Xr.get(o)||0)<r||(Xr.set(o,a),Yr(e,t,n));}const to=exports("y", Object.freeze(Object.defineProperty({__proto__:null,showToast:Yr,showToastThrottled:eo},Symbol.toStringTag,{value:"Module"}))),no=String.fromCodePoint(128228),ro=String.fromCodePoint(128587),oo=String.fromCodePoint(129302);function ao(e){if(!e)return "";const t=e=>{try{if(!e)return "";if(e.nodeType===Node.TEXT_NODE)return e.textContent||"";if(e.nodeType!==Node.ELEMENT_NODE)return "";const n=e;if(n.classList?.contains("math-block")){const e=n.getAttribute("data-math");if(e)return `\n$$${e}$$\n`}if(n.classList?.contains("math-inline")){const e=n.getAttribute("data-math");if(e)return `$${e}$`}const r=n.tagName?.toLowerCase()||"";if(!r)return "";if("img"===r){const e=n.alt||n.getAttribute("alt")||"图片";return `![${e}](${n.src||n.getAttribute("src")||""})`}if("code-block"===r){const e=n.querySelector(".code-block-decoration"),t=e?.querySelector("span")?.textContent?.trim().toLowerCase()||"",r=n.querySelector("pre code");return `\n\`\`\`${t}\n${r?.textContent||n.querySelector("pre")?.textContent||""}\n\`\`\`\n`}if("pre"===r){const e=n.querySelector("code"),t=e?.className.match(/language-(\w+)/)?.[1]||"";return `\n\`\`\`${t}\n${e?.textContent||n.textContent}\n\`\`\`\n`}if("code"===r)return "pre"===n.parentElement?.tagName.toLowerCase()?"":`\`${n.textContent}\``;if("table"===r){const e=[],t=n.querySelector("thead"),r=n.querySelector("tbody"),o=e=>e.textContent?.trim()||"";if(t){const n=t.querySelector("tr");if(n){const t=Array.from(n.querySelectorAll("td, th")).map(o);t.some(e=>e)&&(e.push("| "+t.join(" | ")+" |"),e.push("| "+t.map(()=>"---").join(" | ")+" |"));}}if(r){r.querySelectorAll("tr").forEach(t=>{const n=Array.from(t.querySelectorAll("td, th")).map(o);n.some(e=>e)&&e.push("| "+n.join(" | ")+" |");});}if(!t&&!r){const t=n.querySelectorAll("tr");let r=!0;t.forEach(t=>{const n=Array.from(t.querySelectorAll("td, th")).map(o);n.some(e=>e)&&(e.push("| "+n.join(" | ")+" |"),r&&(e.push("| "+n.map(()=>"---").join(" | ")+" |"),r=!1));});}return e.length>0?"\n"+e.join("\n")+"\n":""}if("table-block"===r||"ucs-markdown-table"===r){const e=n.querySelector("table");if(e)return t(e)}const o=Array.from(n.childNodes).map(t).join("");switch(r){case "h1":return `\n# ${o}\n`;case "h2":return `\n## ${o}\n`;case "h3":return `\n### ${o}\n`;case "h4":return `\n#### ${o}\n`;case "h5":return `\n##### ${o}\n`;case "h6":return `\n###### ${o}\n`;case "strong":case "b":return `**${o}**`;case "em":case "i":return `*${o}*`;case "a":return `[${o}](${n.href||""})`;case "li":return `- ${o}\n`;case "p":return `${o}\n\n`;case "br":return "\n";case "ul":case "ol":return `\n${o}`;default:return n.shadowRoot?Array.from(n.shadowRoot.childNodes).map(t).join(""):o}}catch(n){return console.error("Error processing node in htmlToMarkdown:",n),e.textContent||""}};return t(e).trim()}function io(e,t){const n=[];return n.push(`# ${e.title}`),n.push(""),n.push("---"),n.push(`## ${no} ${En("exportMetaTitle")}`),n.push(`- **${En("exportMetaConvTitle")}**: ${e.title}`),n.push(`- **${En("exportMetaTime")}**: ${e.exportTime}`),n.push(`- **${En("exportMetaSource")}**: ${e.source}`),n.push(`- **${En("exportMetaUrl")}**: ${e.url}`),n.push("---"),n.push(""),t.forEach(t=>{if("user"===t.role){const r=e.customUserName||En("exportUserLabel");n.push(`## ${ro} ${r}`),n.push(""),n.push(t.content),n.push(""),n.push("---"),n.push("");}else {const r=e.customModelName||e.source;n.push(`## ${oo} ${r}`),n.push(""),n.push(t.content),n.push(""),n.push("---"),n.push("");}}),n.join("\n")}const so="delete_ui_failed",lo="delete_batch_aborted_after_ui_failure",co="delete_api_org_missing",uo="delete_api_request_failed",ho="delete_api_not_found_but_visible",go=["delete","remove","删除","刪除","削除","삭제","supprimer","eliminar","elimina","löschen","excluir","hapus","हट","मिट"],po=["cancel","取消","annuler","abbrechen","annulla","キャンセル","취소","batal","cancelar"],mo=/^[a-f0-9-]{36}$/i;const fo=/^(?:\/code)?\/chat\/([^/?#]+)/,bo='[data-testid="send_message"], [data-testid="message_content"].justify-end',yo='[data-testid="message_text_content"]';const vo="delete_ui_failed",xo="delete_ui_exception",So="delete_batch_aborted_after_ui_failure",wo=["delete","remove","删除","删掉","supprimer","eliminar","löschen","삭제","削除","移除","excluir","hapus","удал"],ko=["cancel","取消","annuler","abbrechen","취소","キャンセル","batal","отмен"],Co="data-ophel-export-thought-id",To=/([A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,})/i,Do=/(google|account|账号|帳號|conta|compte|cuenta|konto|アカウント|계정|учет)/i;const Eo="delete_ui_failed",Ao="delete_batch_aborted_after_ui_failure",_o=["delete","remove","删除","删掉","移除","supprimer","eliminar","löschen","삭제","削除","hapus","удал"],Lo=["cancel","取消","annuler","abbrechen","취소","キャンセル","batal","отмен"];const Po="Grok",No="delete_ui_failed",Mo="delete_batch_aborted_after_ui_failure",Io="delete_api_request_failed",jo="delete_api_not_found_but_visible",Ro=["delete","remove","删除","刪除","supprimer","eliminar","löschen","削除","삭제","удал","excluir"],Fo=["confirm","ok","yes","确定","確認","确认","確定","check"];const zo=[new class extends Mr{clearOnInit=false;match(){return window.location.hostname.includes("business.gemini.google")}getSiteId(){return zn.GEMINI_ENTERPRISE}getName(){return "Gemini Enterprise"}getThemeColors(){return {primary:"#4285f4",secondary:"#34a853"}}getNewTabUrl(){return "https://business.gemini.google"}isNewConversation(){return !window.location.pathname.includes("/session/")}isSharePage(){return window.location.pathname.includes("/r/share/")}supportsTabRename(){return  true}getCurrentCid(){const e=window.location.pathname.match(/\/home\/cid\/([^/]+)/);return e?e[1]:""}getSessionName(){const e=Nr.query(".conversation",{all:true,shadow:true});for(const t of e){const e=t.querySelector("button.list-item")||t.querySelector("button");if(!e)continue;if(e.classList.contains("selected")||e.classList.contains("active")||"true"===e.getAttribute("aria-selected")){const t=e.querySelector(".conversation-title");if(t){const e=t.textContent?.trim();if(e)return e}}}return super.getSessionName()}getConversationTitle(){const e=Nr.query(".conversation",{all:true,shadow:true});for(const t of e){const e=t.querySelector("button.list-item")||t.querySelector("button");if(e&&(e.classList.contains("selected")||e.classList.contains("active")))return e.querySelector(".conversation-title")?.textContent?.trim()||null}return null}getConversationList(){const e=Nr.query(".conversation",{all:true,shadow:true}),t=this.getCurrentCid();return Array.from(e).map(e=>{const n=e.querySelector("button.list-item")||e.querySelector("button");if(!n)return null;const r=n.querySelector(".conversation-action-menu-button");let o="";if(r&&r.id&&r.id.startsWith("menu-")&&(o=r.id.replace("menu-","")),!o||!/^\d+$/.test(o))return null;const a=n.querySelector(".conversation-title"),i=a&&a.textContent?.trim()||"",s=n.classList.contains("selected")||n.classList.contains("active")||"true"===n.getAttribute("aria-selected");let l=`https://business.gemini.google/session/${o}`;return t&&(l=`https://business.gemini.google/home/cid/${t}/r/session/${o}`),{id:o,cid:t,title:i,url:l,isActive:s}}).filter(e=>null!==e)}getLatestReplyText(){const e=Nr.query("ucs-conversation",{shadow:true});if(!e||!e.shadowRoot)return null;const t=e.shadowRoot.querySelector(".main");if(!t)return null;const n=t.querySelectorAll(".turn");if(0===n.length)return null;const r=n[n.length-1].querySelector("ucs-summary");if(!r)return null;const o=this.extractSummaryContent(r);return o?this.extractTextWithLineBreaks(o):this.extractTextWithLineBreaks(r)}getSidebarScrollContainer(){return Nr.query(".conversation-list",{shadow:true})||Nr.query("mat-sidenav",{shadow:true})}getConversationObserverConfig(){return {selector:".conversation",shadow:true,extractInfo:e=>{const t=e.querySelector("button.list-item")||e.querySelector("button");if(!t)return null;const n=t.querySelector(".conversation-action-menu-button");if(!n||!n.id?.startsWith("menu-"))return null;const r=n.id.replace("menu-","");if(!/^\d+$/.test(r))return null;const o=t.querySelector(".conversation-title"),a=o?.textContent?.trim()||"",i=this.getCurrentCid();return {id:r,cid:i,title:a,url:`https://business.gemini.google/home/cid/${i}/r/session/${r}`}},getTitleElement:e=>{const t=e.querySelector("button.list-item")||e.querySelector("button");return t?.querySelector(".conversation-title")||e}}}navigateToConversation(e,t){const n=Nr.query(".conversation",{all:true,shadow:true});if(n)for(const r of Array.from(n)){if(r.querySelector(`#menu-${e}`)||r.querySelector(`.conversation-action-menu-button[id="menu-${e}"]`)){const e=r.querySelector("button.list-item")||r.querySelector("button");return e?e.click():r.click(),true}}return super.navigateToConversation(e,t)}async deleteConversationOnSite(e){const t=await this.deleteConversationOnSiteInternal(e);return t.success&&this.scheduleFullReloadAfterDelete([e.id]),t}async deleteConversationsOnSite(e){const t=[],n=[];for(let r=0;r<e.length;r++){const o=await this.deleteConversationOnSiteInternal(e[r]);if(t.push(o),o.success&&n.push(e[r].id),!o.success&&o.reason===Eo){for(let n=r+1;n<e.length;n++)t.push({id:e[n].id,success:false,method:"none",reason:Ao});break}}return n.length>0&&this.scheduleFullReloadAfterDelete(n),t}async deleteConversationOnSiteInternal(e){const t=await this.deleteConversationViaUi(e.id);return {id:e.id,success:t,method:t?"ui":"none",reason:t?void 0:Eo}}async deleteConversationViaUi(e){const t=await this.findConversationRowWithRetry(e);if(!t)return  false;t.scrollIntoView({block:"center",behavior:"auto"}),this.revealConversationActions(t);const n=await this.findConversationMenuButton(t);if(!n)return  false;const r=await this.openConversationMenu(t,n);if(!r)return  false;const o=await this.waitForDeleteMenuItem(n,2500,r);if(!o)return document.body.click(),false;this.simulateClick(o),this.removeConversationRowElement(t,e);const a=await this.waitForConversationRemoved(e,5200),i=await this.waitForMenuClosed(1200),s=a||i;return s&&this.syncConversationListAfterDelete(e),s}async openConversationMenu(e,t){let n=t;for(let r=0;r<4;r++){if(document.body.click(),await this.sleep(60),this.revealConversationActions(e),n&&n.isConnected||(n=await this.findConversationMenuButton(e)),!n)return null;this.simulateClick(n);const t=await this.waitForMenuOpen(n,900);if(t)return t}return null}async waitForMenuOpen(e,t=900){const n=Date.now();for(;Date.now()-n<t;){const t=this.getMenuContainerFromTrigger(e);if(t&&this.isVisible(t))return t;const n=this.findVisibleMenuContainer();if(n)return n;await this.sleep(80);}return null}async findConversationRowWithRetry(e){const t=this.findConversationRow(e);return t||(await this.loadAllConversations(),await this.sleep(250),this.findConversationRow(e))}findConversationRow(e){const t=e.trim(),n=this.findAllElementsBySelector(".conversation");for(const o of n){const e=this.extractConversationIdFromElement(o);if(e&&e===t)return o}const r=[`a[href*="/session/${t}"]`,`a[href$="/session/${t}"]`,`a[href*="/r/session/${t}"]`,`a[href$="/r/session/${t}"]`];for(const o of r){const e=Nr.query(o,{shadow:true});if(!e)continue;const t=e.closest(".conversation")||e.closest("li")||e.parentElement;if(t)return t}return null}extractConversationIdFromElement(e){if(!e)return "";const t=e.querySelector('.conversation-action-menu-button[id^="menu-"], button[id^="menu-"]');if(!t?.id?.startsWith("menu-"))return "";const n=t.id.replace("menu-","");return /^\d+$/.test(n)?n:""}async findConversationMenuButton(e){const t=[".conversation-action-menu-button",'button[id^="menu-"]','button[aria-haspopup="menu"]','button[aria-label*="More"]','button[aria-label*="more"]','button[aria-label*="更多"]','button[title*="More"]','button[title*="more"]',"button"].join(", "),n=this.extractConversationIdFromElement(e);for(let r=0;r<10;r++){const r=this.getMenuSearchScopes(e);r.forEach(e=>this.revealConversationActions(e));const o=r.flatMap(e=>Array.from(e.querySelectorAll(t))).filter(e=>!(e instanceof HTMLButtonElement&&e.disabled));if(o.length>0){if(n){const e=o.find(e=>e.id===`menu-${n}`);if(e)return e}const e=o.find(e=>null!==e.querySelector('mat-icon[fonticon="more_vert"], mat-icon[fonticon="more_horiz"], md-icon'));if(e)return e;const t=o.filter(e=>this.isVisible(e)).sort((e,t)=>t.getBoundingClientRect().right-e.getBoundingClientRect().right)[0];if(t)return t}await this.sleep(90);}return null}getMenuSearchScopes(e){const t=[e,e.parentElement,e.parentElement?.parentElement,e.closest("li")].filter(e=>e instanceof HTMLElement),n=new Set,r=[];for(const o of t)n.has(o)||(n.add(o),r.push(o));return r}revealConversationActions(e){const t=["mouseenter","mouseover","mousemove"];for(const n of t)e.dispatchEvent(new MouseEvent(n,{bubbles:true,cancelable:true,view:window}));}async waitForDeleteMenuItem(e,t=2500,n){const r=Date.now();let o=[];for(;Date.now()-r<t;){const t=this.getMenuActionCandidates(e,n||null);for(const e of t){if(!this.isVisible(e))continue;const t=this.getSignalText(e);if(this.hasKeyword(t,_o)&&!this.hasKeyword(t,Lo))return e}const r=t.filter(e=>this.isVisible(e));r.length>0&&(o=r),await this.sleep(80);}if(o.length>0){const e=o[o.length-1],t=this.getSignalText(e);if(!this.hasKeyword(t,Lo))return e}return null}getMenuActionCandidates(e,t){const n='md-menu-item, [role="menuitem"], [role="menu"] button, .mat-mdc-menu-panel button',r=[];t&&r.push(...Array.from(t.querySelectorAll(n)));const o=this.getMenuContainerFromTrigger(e);o&&r.push(...Array.from(o.querySelectorAll(n)));const a=this.findVisibleMenuContainer();a&&r.push(...Array.from(a.querySelectorAll(n))),r.push(...this.findAllElementsBySelector(n));const i=new Set,s=[];for(const l of r)i.has(l)||(i.add(l),s.push(l));return s}getMenuContainerFromTrigger(e){const t=e.getAttribute("aria-controls")||e.getAttribute("aria-owns");if(!t)return null;const n="undefined"!=typeof CSS&&"function"==typeof CSS.escape?CSS.escape(t):t;return Nr.query(`#${n}`,{shadow:true})||null}findVisibleMenuContainer(){const e=this.findAllElementsBySelector('md-menu-surface, .menu[popover], .mat-mdc-menu-panel, [role="menu"]').filter(e=>this.isVisible(e));return 0===e.length?null:e[e.length-1]}async waitForMenuClosed(e=1200){const t=Date.now();for(;Date.now()-t<e;){if(!this.findVisibleMenuContainer())return  true;await this.sleep(80);}return  false}removeConversationRowElement(e,t){const n=[e,e.closest("li"),this.findConversationRow(t)].filter(e=>e instanceof HTMLElement),r=new Set;for(const o of n)r.has(o)||(r.add(o),o.isConnected&&o.remove());}async waitForConversationRemoved(e,t=5200){const n=Date.now();for(;Date.now()-n<t;){if(!this.findConversationRow(e))return  true;await this.sleep(90);}return  false}syncConversationListAfterDelete(e){const t=this.findConversationRow(e);t&&t.remove();}scheduleFullReloadAfterDelete(e){if(0===e.length)return;const t=this.getCurrentConversationIdFromPath();if(t&&e.includes(t)){const e=this.getCurrentCid(),t=e?`/home/cid/${e}/r`:"/";try{window.history.replaceState(window.history.state,"",t);}catch{}}}getCurrentConversationIdFromPath(){const e=window.location.pathname.match(/\/session\/([^/?#]+)/);return e?.[1]||null}getSignalText(e){return [e.textContent||"",e.getAttribute("aria-label")||"",e.getAttribute("title")||"",e.getAttribute("data-test-id")||"",e.getAttribute("data-testid")||"",e.className||""].join(" ").toLowerCase()}hasKeyword(e,t){const n=e.toLowerCase();return t.some(e=>n.includes(e.toLowerCase()))}isVisible(e){if(!(e instanceof HTMLElement))return  false;if(!e.isConnected)return  false;const t=window.getComputedStyle(e);if("none"===t.display||"hidden"===t.visibility||0===Number(t.opacity))return  false;const n=e.getBoundingClientRect();return n.width>0&&n.height>0}async sleep(e){await new Promise(t=>setTimeout(t,e));}getNewChatButtonSelectors(){return [".chat-button.list-item",'button[aria-label="New chat"]','button[aria-label="新对话"]']}getWidthSelectors(){const e=(e,t,n,r=false)=>({selector:e,globalSelector:`mat-sidenav-content ${e}`,property:"max-width",value:t,extraCss:n,noCenter:r});return [e("mat-sidenav-content","100%",void 0,true),e(".main.chat-mode","100%",void 0,true),e("ucs-summary"),e("ucs-conversation"),e("ucs-search-bar"),e(".summary-container.expanded"),e(".conversation-container"),e(".input-area-container",void 0,"left: 0 !important; right: 0 !important;",true)]}getUserQueryWidthSelectors(){return [{selector:".question-block .question-wrapper",property:"max-width",noCenter:true}]}getZenModeSelectors(){return [{selector:".disclaimer",action:"hide"}]}getTextareaSelectors(){return ["div.ProseMirror",".ProseMirror",'[contenteditable="true"]:not([type="search"])','[role="textbox"]','textarea:not([type="search"])']}getSubmitButtonSelectors(){return ['button[aria-label*="Submit"]','button[aria-label*="提交"]','button[aria-label*="发送"]','button[aria-label*="Send"]',".send-button",'[data-testid*="send"]']}isValidTextarea(e){if("search"===e.type)return  false;if(e.classList.contains("main-input"))return  false;if(e.getAttribute("aria-label")?.includes("搜索"))return  false;if(e.placeholder?.includes("搜索"))return  false;if(e.classList.contains("prompt-search-input"))return  false;if("prompt-search"===e.id)return  false;if(e.closest(".gh-main-panel"))return  false;if(e.closest(".gh-queue-panel"))return  false;if(Array.from(e.classList).some(e=>e.startsWith("gh-queue-")||e.startsWith("gh-")))return  false;const t=null!==e.offsetParent,n="true"===e.getAttribute("contenteditable"),r=e.classList.contains("ProseMirror");return t&&(n||r||"TEXTAREA"===e.tagName)}findTextarea(){const e=Nr.query(this.getTextareaSelectors(),{shadow:true,filter:e=>this.isValidTextarea(e)});return e?(this.textarea=e,e):super.findTextarea()}clearTextarea(){this.textarea&&(this.textarea.isConnected?(this.textarea.focus(),document.execCommand("selectAll",false,void 0),document.execCommand("insertText",false,"​")):this.textarea=null);}clearTextareaNormal(){this.textarea&&(this.textarea.isConnected?(this.textarea.focus(),document.execCommand("selectAll",false,void 0),document.execCommand("delete",false,void 0)):this.textarea=null);}insertPrompt(e){const t=this.textarea||this.findTextarea();if(!t)return console.warn("[GeminiEnterpriseAdapter] Editor not found during insert."),false;if(!t.isConnected)return this.textarea=null,false;this.textarea=t,t.click(),t.focus();const n=()=>(t.textContent?.replace(/[\u200B\u200C\u200D\uFEFF]/g,"")||"").includes(e);try{const r=new DataTransfer;r.setData("text/plain",e);const o=new ClipboardEvent("paste",{bubbles:!0,cancelable:!0,clipboardData:r});if(t.dispatchEvent(o),n())return t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0})),t.dispatchEvent(new KeyboardEvent("keydown",{bubbles:!0,key:" ",code:"Space"})),t.dispatchEvent(new KeyboardEvent("keyup",{bubbles:!0,key:" ",code:"Space"})),!0}catch{}try{document.execCommand("selectAll",!1,void 0);if(document.execCommand("insertText",!1,e)&&n())return t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0})),!0}catch{}try{t.focus();const r=t.ownerDocument.getSelection();r&&(r.selectAllChildren(t),r.collapseToEnd());const o=new InputEvent("beforeinput",{bubbles:!0,cancelable:!0,inputType:"insertText",data:e});t.dispatchEvent(o);const a=new InputEvent("input",{bubbles:!0,cancelable:!0,inputType:"insertText",data:e});if(t.dispatchEvent(a),n())return !0}catch{}try{let r=t.querySelector("p"),o=!1;if(r||(r=document.createElement("p"),t.appendChild(r),o=!0),r.textContent=e,(o||e)&&(t.dispatchEvent(new Event("input",{bubbles:!0})),t.dispatchEvent(new Event("change",{bubbles:!0}))),t.dispatchEvent(new InputEvent("input",{bubbles:!0,cancelable:!0,inputType:"insertText",data:e})),t.dispatchEvent(new KeyboardEvent("keydown",{bubbles:!0,key:" ",code:"Space"})),t.dispatchEvent(new KeyboardEvent("keyup",{bubbles:!0,key:" ",code:"Space"})),t.dispatchEvent(new Event("change",{bubbles:!0})),n())return !0}catch{}return console.warn("[GeminiEnterpriseAdapter] All insert strategies failed for content insertion."),false}getScrollContainer(){const e=Nr.query(".chat-mode-scroller",{shadow:true});return e&&e.scrollHeight>e.clientHeight?e:super.getScrollContainer()}getResponseContainerSelector(){return ".conversation-container"}getChatContentSelectors(){return [".model-response-container",".message-content","[data-message-id]","ucs-conversation-message",".conversation-message"]}getUserQuerySelector(){return ".question-block"}extractUserQueryText(e){const t=e.querySelector("ucs-fast-markdown");if(!t||!t.shadowRoot)return this.extractTextWithLineBreaks(e);const n=t.shadowRoot.querySelector(".markdown-document");return n?this.extractTextWithLineBreaks(n):this.extractTextWithLineBreaks(e)}extractUserQueryMarkdown(e){const t=e.querySelector("ucs-fast-markdown");if(!t||!t.shadowRoot)return e.textContent?.trimEnd()||"";const n=t.shadowRoot.querySelector(".markdown-document");if(!n)return e.textContent?.trimEnd()||"";const r=n.querySelectorAll("p");if(0===r.length)return n.textContent?.trimEnd()||"";return Array.from(r).map(e=>e.textContent||"").join("\n").trimEnd()}replaceUserQueryContent(e,t){const n=e.querySelector("ucs-fast-markdown");if(!n||!n.shadowRoot)return  false;const r=n.shadowRoot.querySelector(".markdown-document");if(!r)return  false;if(r.nextElementSibling?.classList.contains("gh-user-query-markdown"))return  false;r.style.display="none";const o=document.createElement("div");return o.className="gh-user-query-markdown gh-markdown-preview",o.innerHTML=t,r.after(o),true}usesShadowDOM(){return  true}extractSummaryContent(e){const t=(e,n=0)=>{if(n>10||!e)return null;const r=e.shadowRoot||(11===e.nodeType?e:null)||e;if("querySelector"in r){const e=r.querySelector(".markdown-document");if(e)return e}const o="querySelectorAll"in r?r.querySelectorAll("*"):[];for(const a of Array.from(o))if(a.shadowRoot){const e=t(a.shadowRoot,n+1);if(e)return e}return null};return t(e)}findHeadingsInShadowDOM(e,t,n,r,o,a={}){if(!(r>15))if("shadowRoot"in e&&e.shadowRoot)this.findHeadingsInShadowDOM(e.shadowRoot,t,n,r+1,o,a);else {if(e!==document&&"querySelectorAll"in e){const r=Array.from({length:n},(e,t)=>`h${t+1}`).join(", ");try{e.querySelectorAll(r).forEach(e=>{if(this.isInRenderedMarkdownContainer(e))return;const n=e.querySelectorAll("span[data-markdown-start-index]");if(n.length>0){const r=parseInt(e.tagName[1],10),i=Array.from(n).map(e=>e.textContent?.trim()).join("");if(i){const n={level:r,text:i,element:e};if(o){const t=`${e.tagName.toLowerCase()}-${i}`,r=a[t]||0;a[t]=r+1,n.id=`${o}::${t}::${r}`;}t.push(n);}}});}catch{}}if("querySelectorAll"in e){const i=e.querySelectorAll("*");for(const e of Array.from(i))e.shadowRoot&&this.findHeadingsInShadowDOM(e.shadowRoot,t,n,r+1,o,a);}}}extractOutline(e=6,t=false,n=false){const r=[],o=e=>{const t=this.extractSummaryContent(e);return t?t.textContent?.trim().length||0:e.textContent?.trim().length||0};if(!t)return this.findHeadingsInShadowDOM(document,r,e,0),n&&r.forEach((e,t)=>{if(!e.element)return;const n=e.element.closest(".markdown-document");if(n){let o=null;for(let n=t+1;n<r.length;n++)if(r[n].level<=e.level){o=r[n].element||null;break}e.wordCount=this.calculateRangeWordCount(e.element,o,n);}}),r;const a=Nr.query("ucs-conversation",{shadow:true});if(!a||!a.shadowRoot)return this.findHeadingsInShadowDOM(document,r,e,0),r;const i=a.shadowRoot.querySelector(".main");if(!i)return this.findHeadingsInShadowDOM(document,r,e,0),r;return i.querySelectorAll(".turn").forEach(t=>{const a=(t.getAttribute("jslog")||"").match(/(\d+_\d+)/),i=a?a[1]:void 0,s=t.querySelector(".question-block"),l=t.querySelector("ucs-summary");if(s){let e=this.extractUserQueryText(s),t=false;e.length>200&&(e=e.substring(0,200),t=true);const a={level:0,text:e,element:s,isUserQuery:true,isTruncated:t,id:i};n&&l&&(a.wordCount=o(l)),r.push(a);}if(l){const t=[];if(this.findHeadingsInShadowDOM(l,t,e,0,i),n){const e=this.extractSummaryContent(l);t.forEach((n,r)=>{if(!n.element)return;let o=null;for(let e=r+1;e<t.length;e++)if(t[e].level<=n.level){o=t[e].element||null;break}n.wordCount=this.calculateRangeWordCount(n.element,o,e||l);});}t.forEach(e=>r.push(e));}}),r}findElementByHeading(e,t){const n=Nr.query(`h${e}`,{all:true,shadow:true});for(const r of n)if(r.textContent?.trim()===t)return r;return null}getExportConfig(){return {userQuerySelector:".question-block",assistantResponseSelector:"ucs-summary",turnSelector:".turn",useShadowDOM:true}}isGenerating(){const e=(t,n=0)=>{if(n>10)return  false;const r=t.querySelector('button[aria-label*="Stop"], button[aria-label*="停止"], [data-test-id="stop-button"], .stop-button, md-icon-button[aria-label*="Stop"]');if(r&&null!==r.offsetParent)return  true;const o=t.querySelector('mat-spinner, md-spinner, .loading-spinner, [role="progressbar"], .generating-indicator, .response-loading');if(o&&null!==o.offsetParent)return  true;const a=t.querySelectorAll("*");for(const i of Array.from(a))if(i.shadowRoot&&e(i.shadowRoot,n+1))return  true;return  false};return e(document)}getModelName(){const e=(t,n=0)=>{if(n>10)return null;const r=["#model-selector-menu-anchor",".action-model-selector",".model-selector",'[data-test-id="model-selector"]',".current-model"];for(const e of r){const n=t.querySelector(e);if(n&&n.textContent){const e=n.textContent.trim(),t=e.match(/(\d+\.?\d*\s*)?(Pro|Flash|Ultra|Nano|Gemini|auto|自动)/i);if(t)return t[0].trim();if(e.length<=20&&e.length>0)return e}}const o=t.querySelectorAll("*");for(const a of Array.from(o))if(a.shadowRoot){const t=e(a.shadowRoot,n+1);if(t)return t}return null};return e(document)}getNetworkMonitorConfig(){return {urlPatterns:["widgetStreamAssist"],silenceThreshold:3e3}}afterPropertiesSet(e={}){this.clearOnInit=e.clearOnInit||false,super.afterPropertiesSet(e),this.clearOnInit&&this.clearTextarea();}lockModel(e,t=null){super.lockModel(e,t??void 0);}shouldInjectIntoShadow(e){return !(e.closest("mat-sidenav")||e.closest("mat-drawer")||e.closest('[class*="bg-sidebar"]'))}async loadAllConversations(){for(let e=0;e<20;e++){const e=(Nr.query("button.show-more",{all:true,shadow:true})||[]).filter(e=>{const t=e.querySelector(".show-more-icon");return t&&!t.classList.contains("more-visible")});if(0===e.length)break;for(const t of e)t.click();await new Promise(e=>setTimeout(e,300));}}getDefaultLockSettings(){return {enabled:true,keyword:"3 Pro"}}getModelSwitcherConfig(e){return {targetModelKeyword:e||"3 Pro",selectorButtonSelectors:["#model-selector-menu-anchor",".action-model-selector"],menuItemSelector:"md-menu-item",checkInterval:1500,maxAttempts:20,menuRenderDelay:500}}
         /**
            * 模拟点击原生设置切换主题 (针对 Gemini Enterprise)
            * @param targetMode 目标主题模式
            */
         async toggleTheme(e){let t=false;const n=()=>{if(!t){try{Nr.query('.menu[popover], md-menu-surface, .mat-menu-panel, [role="menu"]',{all:!0,shadow:!0}).forEach(e=>{const t=e;"0"!==t.style.opacity&&(t.style.setProperty("opacity","0","important"),t.style.setProperty("visibility","hidden","important"),t.style.setProperty("pointer-events","none","important"));});}catch{}requestAnimationFrame(n);}};n(),document.body.classList.add("gh-stealth-mode");try{let t=Nr.query(".settings-button",{shadow:!0});if(!t)return console.error("[GeminiEnterpriseAdapter] Settings button not found (.settings-button)"),!1;"function"==typeof t.click?t.click():t.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window}));let n=0;const r=()=>{const t="system"===e?"computer":"dark"===e?"dark_mode":"light_mode",n=Nr.query("md-primary-tab",{all:!0,shadow:!0});for(const e of n){const n=e.querySelector("md-icon")||Nr.query("md-icon",{parent:e,shadow:!0});if(n&&n.textContent?.trim()===t)return e.click(),!0}return !1};return await new Promise(e=>{const o=setInterval(()=>{n++,r()?(clearInterval(o),e(!0)):n>20&&(clearInterval(o),console.error("[GeminiEnterpriseAdapter] Target theme option not found"),e(!1),t&&"function"==typeof t.click&&t.click());},100);})}finally{t=true,setTimeout(()=>{document.body.classList.remove("gh-stealth-mode");},200);}}},new class extends Mr{exportIncludeThoughtsOverride=null;cachedAccountEmail=null;accountEmailLastDetectAt=0;getUserPathPrefix(){const e=window.location.pathname.match(/^\/u\/(\d+)(?:\/|$)/);if(!e)return "";return `/u/${e[1]}`}getCurrentCid(){const e=this.getCurrentAccountEmail();if(e)return e;const t=window.location.pathname.match(/^\/u\/(\d+)(?:\/|$)/);return t?t[1]:"0"}getCurrentAccountEmail(){const e=Date.now();if(e-this.accountEmailLastDetectAt<2e3)return this.cachedAccountEmail;this.accountEmailLastDetectAt=e;const t=["aria-label","title","data-email","data-identifier"],n=new Set;["[data-email]",'[data-identifier*="@"]','[aria-label*="@"]','[title*="@"]'].forEach(e=>{document.querySelectorAll(e).forEach(e=>n.add(e));});for(const r of n)for(const e of t){const t=r.getAttribute(e),n=this.extractEmailFromAttr(e,t);if(n)return this.cachedAccountEmail=n,n}return this.cachedAccountEmail}extractEmailFromAttr(e,t){return t&&("data-email"===e||"data-identifier"===e||Do.test(t))?this.extractEmail(t):null}extractEmail(e){if(!e)return null;const t=e.match(To);return t?t[1].toLowerCase():null}match(){return window.location.hostname.includes("gemini.google")&&!window.location.hostname.includes("business.gemini.google")}getSiteId(){return zn.GEMINI}getName(){return "Gemini"}getThemeColors(){return {primary:"#4285f4",secondary:"#34a853"}}getNewTabUrl(){return `https://gemini.google.com${this.getUserPathPrefix()}/app`}isNewConversation(){const e=window.location.pathname.replace(/^\/u\/\d+/,"");if("/app"===e||"/app/"===e)return  true;if("/gems/create"===e||"/gems/create/"===e)return  true;if(e.startsWith("/gems/edit/"))return  true;if(e.startsWith("/gem/")){return e.split("/").filter(Boolean).length<=2}return  false}getConversationList(){const e=Nr.query(".conversation",{all:true})||[],t=this.getCurrentCid(),n=this.getUserPathPrefix();return Array.from(e).map(e=>{const r=(e.getAttribute("jslog")||"").match(/\["c_([^"]+)"/),o=r?r[1]:"",a=e.querySelector(".conversation-title")?.textContent?.trim()||"",i=!!e.querySelector('mat-icon[fonticon="push_pin"]');return {id:o,cid:t,title:a,url:o?`https://gemini.google.com${n}/app/${o}`:"",isActive:e.classList.contains("selected"),isPinned:i}}).filter(e=>e.id)}getSidebarScrollContainer(){return Nr.query('infinite-scroller[scrollable="true"]')||Nr.query("infinite-scroller")}getConversationObserverConfig(){return {selector:".conversation",shadow:false,extractInfo:e=>{const t=(e.getAttribute("jslog")||"").match(/\["c_([^"]+)"/),n=t?t[1]:"";if(!n)return null;const r=e.querySelector(".conversation-title")?.textContent?.trim()||"",o=!!e.querySelector('mat-icon[fonticon="push_pin"]');return {id:n,cid:this.getCurrentCid(),title:r,url:`https://gemini.google.com${this.getUserPathPrefix()}/app/${n}`,isPinned:o}},getTitleElement:e=>e.querySelector(".conversation-title")||e}}navigateToConversation(e,t){const n=document.querySelector(`.conversation[jslog*="${e}"]`);if(n){const e=n.querySelector("button.list-item")||n.querySelector("button");return e?e.click():n.click(),true}return super.navigateToConversation(e,t)}async deleteConversationOnSite(e){const t=await this.deleteConversationOnSiteInternal(e);return t.success&&this.scheduleFullReloadAfterDelete([e.id]),t}async deleteConversationsOnSite(e){const t=[],n=[];for(let r=0;r<e.length;r++){const o=await this.deleteConversationOnSiteInternal(e[r]);if(t.push(o),o.success&&n.push(e[r].id),!o.success&&o.reason===vo){for(let n=r+1;n<e.length;n++)t.push({id:e[n].id,success:false,method:"none",reason:So});break}}return n.length>0&&this.scheduleFullReloadAfterDelete(n),t}async deleteConversationOnSiteInternal(e){try{const t=await this.deleteConversationViaUi(e.id);return {id:e.id,success:t,method:t?"ui":"none",reason:t?void 0:vo}}catch(t){return console.error(`[GeminiAdapter] deleteConversationOnSiteInternal error for "${e.id}":`,t),{id:e.id,success:false,method:"none",reason:xo}}}async deleteConversationViaUi(e){const t=await this.findConversationRowWithRetry(e);if(!t)return  false;t.scrollIntoView({block:"center",behavior:"auto"}),this.revealConversationActions(t);let n=await this.findConversationMenuButton(t);if(!n)return  false;const r=await this.openConversationMenu(t,n);if(!r)return  false;const o=await this.waitForDeleteMenuItem(n,2500,r);if(!o)return document.body.click(),false;this.simulateClick(o);if(!(await this.waitForDialogOpen(2200)))return  false;const a=await this.waitForDeleteConfirmButton(2800);if(!a)return  false;this.simulateClick(a);const i=await this.waitForConversationRemoved(e,4500),s=await this.waitForDialogClosed(1200),l=i||s;return l&&this.syncConversationListAfterDelete(e),l}async openConversationMenu(e,t){let n=t;for(let r=0;r<4;r++){if(document.body.click(),await this.sleep(60),this.revealConversationActions(e),n&&n.isConnected||(n=await this.findConversationMenuButton(e)),!n)return null;this.simulateClick(n);const t=await this.waitForMenuOpen(n,900);if(t)return t}return null}async waitForMenuOpen(e,t=900){const n=Date.now();for(;Date.now()-n<t;){const t=this.getMenuContainerFromTrigger(e);if(t&&this.isVisible(t))return t;const n=this.findVisibleMenuContainer();if(n)return n;await this.sleep(80);}return null}async findConversationRowWithRetry(e){const t=this.findConversationRow(e);return t||(await this.loadAllConversations(),await this.sleep(250),this.findConversationRow(e))}findConversationRow(e){const t=this.normalizeConversationId(e),n=this.findAllElementsBySelector(".conversation");for(const o of n){const e=this.normalizeConversationId(this.extractConversationIdFromElement(o));if(e&&e===t)return o}const r=[`a[href*="/app/${t}"]`,`a[href*="/app/c_${t}"]`,`a[href$="/${t}"]`,`a[href$="/c_${t}"]`];for(const o of r){const e=document.querySelector(o);if(!e)continue;const t=e.closest(".conversation")||e.closest("li")||e.parentElement;if(t)return t}return null}extractConversationIdFromElement(e){if(!e)return "";const t=(e.getAttribute("jslog")||"").match(/\["c_([^"]+)"/);return t?t[1]:""}normalizeConversationId(e){return e?e.startsWith("c_")?e.slice(2):e:""}revealConversationActions(e){const t=["mouseenter","mouseover","mousemove"];for(const n of t)e.dispatchEvent(new MouseEvent(n,{bubbles:true,cancelable:true}));}async findConversationMenuButton(e){const t=['button[aria-haspopup="menu"]','button[aria-label*="More"]','button[aria-label*="more"]','button[aria-label*="更多"]','button[aria-label*="选项"]','button[title*="More"]','button[title*="more"]','button[data-test-id*="menu"]','button[data-testid*="menu"]',"button"].join(", ");for(let n=0;n<12;n++){const r=this.getMenuSearchScopes(e);r.forEach(e=>this.revealConversationActions(e));const o=r.flatMap(e=>Array.from(e.querySelectorAll(t))).filter(e=>!e.classList.contains("list-item")&&!(e instanceof HTMLButtonElement&&e.disabled));if(o.length>0){const t=o.find(e=>null!==e.querySelector('mat-icon[fonticon="more_vert"], mat-icon[fonticon="more_horiz"]'));if(t)return t;const r=o.find(t=>this.isLikelyMenuButton(t,e));if(r)return r;const a=o.filter(e=>this.isVisible(e)).sort((e,t)=>t.getBoundingClientRect().right-e.getBoundingClientRect().right)[0];if(a)return a;if(n>=8){const e=o[o.length-1];if(e)return e}}await this.sleep(100);}return null}getMenuSearchScopes(e){const t=[e,e.parentElement,e.parentElement?.parentElement,e.closest("li")].filter(e=>e instanceof HTMLElement),n=new Set,r=[];for(const o of t)n.has(o)||(n.add(o),r.push(o));return r}isLikelyMenuButton(e,t){if(!t.contains(e))return  false;if(e.classList.contains("list-item"))return  false;if("menu"===e.getAttribute("aria-haspopup"))return  true;const n=this.getSignalText(e);return n.includes("more")||n.includes("更多")||n.includes("选项")||n.includes("menu")||n.includes("菜单")}async waitForDeleteMenuItem(e,t=2500,n){const r=Date.now();let o=[];for(;Date.now()-r<t;){const t=this.getMenuActionCandidates(e,n||null);for(const e of t){if(!this.isVisible(e))continue;if(e.querySelector('mat-icon[fonticon="delete"], mat-icon[data-mat-icon-name="delete"]'))return e;const t=this.getSignalText(e);if(this.hasKeyword(t,wo)&&!this.hasKeyword(t,ko))return e}const r=t.filter(e=>this.isVisible(e));r.length>0&&(o=r),await this.sleep(80);}if(o.length>0){const e=o[o.length-1],t=this.getSignalText(e);if(!this.hasKeyword(t,ko))return e}return null}getMenuActionCandidates(e,t){const n='[role="menuitem"], [role="menu"] button, .mat-mdc-menu-panel button',r=[];t&&r.push(...Array.from(t.querySelectorAll(n)));const o=e.getAttribute("aria-controls")||e.getAttribute("aria-owns");if(o){const e=document.getElementById(o);e&&r.push(...Array.from(e.querySelectorAll(n)));}const a=this.findVisibleMenuContainer();a&&r.push(...Array.from(a.querySelectorAll(n))),r.push(...this.findAllElementsBySelector(n));const i=new Set,s=[];for(const l of r)i.has(l)||(i.add(l),s.push(l));return s}getMenuContainerFromTrigger(e){const t=e.getAttribute("aria-controls")||e.getAttribute("aria-owns");if(!t)return null;const n=document.getElementById(t);return n instanceof HTMLElement?n:null}findVisibleMenuContainer(){const e=Array.from(document.querySelectorAll('[role="menu"], .mat-mdc-menu-panel, .mat-menu-panel')).filter(e=>this.isVisible(e));return 0===e.length?null:e[e.length-1]}async waitForDialogOpen(e=2200){const t=Date.now();for(;Date.now()-t<e;){if(this.findVisibleDialog())return  true;await this.sleep(80);}return  false}async waitForDeleteConfirmButton(e=2800){const t=Date.now();for(;Date.now()-t<e;){const e=this.findVisibleDialog(),t=e?.querySelector('button[data-test-id="confirm-button"], button[data-testid="confirm-button"]');if(t&&this.isVisible(t))return t;const n=(e?Array.from(e.querySelectorAll("button")):Array.from(document.querySelectorAll("button"))).filter(e=>this.isVisible(e));for(const o of n){const e=this.getSignalText(o);if(this.hasKeyword(e,wo)&&!this.hasKeyword(e,ko))return o}const r=n.filter(e=>!this.hasKeyword(this.getSignalText(e),ko)).sort((e,t)=>t.getBoundingClientRect().right-e.getBoundingClientRect().right)[0];if(r)return r;await this.sleep(80);}return null}async waitForDialogClosed(e=1200){const t=Date.now();for(;Date.now()-t<e;){if(!this.findVisibleDialog())return  true;await this.sleep(80);}return  false}findVisibleDialog(){return Array.from(document.querySelectorAll('[role="dialog"], mat-dialog-container, .mat-mdc-dialog-container')).find(e=>this.isVisible(e))||null}async waitForConversationRemoved(e,t=4500){const n=Date.now();for(;Date.now()-n<t;){if(!this.findConversationRow(e))return  true;await this.sleep(90);}return  false}syncConversationListAfterDelete(e){const t=this.findConversationRow(e);t&&t.remove();}scheduleFullReloadAfterDelete(e){if(0===e.length)return;const t=this.getCurrentConversationIdFromPath();if(t&&e.includes(t)){const e=`${this.getUserPathPrefix()}/app`||"/app";try{window.history.replaceState(window.history.state,"",e);}catch{}}}getCurrentConversationIdFromPath(){const e=window.location.pathname.match(/\/app\/([^/?#]+)/);if(e?.[1]){const t=e[1];return "app"===t||"new_chat"===t?null:t.startsWith("c_")?t.slice(2):t}return null}getSignalText(e){return [e.textContent||"",e.getAttribute("aria-label")||"",e.getAttribute("title")||"",e.getAttribute("data-test-id")||"",e.getAttribute("data-testid")||"",e.getAttribute("mattooltip")||"",e.getAttribute("ng-reflect-message")||"",e.className||""].join(" ").toLowerCase()}hasKeyword(e,t){const n=e.toLowerCase();return t.some(e=>n.includes(e.toLowerCase()))}isVisible(e){if(!(e instanceof HTMLElement))return  false;if(!e.isConnected)return  false;const t=window.getComputedStyle(e);if("none"===t.display||"hidden"===t.visibility||0===Number(t.opacity))return  false;const n=e.getBoundingClientRect();return n.width>0&&n.height>0}async sleep(e){await new Promise(t=>setTimeout(t,e));}simulateClick(e){const t=["pointerdown","mousedown","pointerup","mouseup","click"];let n=false;for(const r of t)try{"function"==typeof PointerEvent?e.dispatchEvent(new PointerEvent(r,{bubbles:!0,cancelable:!0,pointerId:1})):e.dispatchEvent(new MouseEvent(r,{bubbles:!0,cancelable:!0})),n=!0;}catch{try{e.dispatchEvent(new MouseEvent(r,{bubbles:!0,cancelable:!0})),n=!0;}catch{}}n||e.click();}getSessionName(){const e=document.querySelector(".conversation-title");if(e){const t=e.textContent?.trim();if(t)return t}return super.getSessionName()}getConversationTitle(){const e=document.querySelector(".conversation.selected .conversation-title");return e&&e.textContent?.trim()||null}getNewChatButtonSelectors(){return [".new-chat-button",".chat-history-new-chat-button",'[aria-label="New chat"]','[aria-label="新对话"]','[aria-label="发起新对话"]','[data-testid="new-chat-button"]','[data-test-id="new-chat-button"]','[data-test-id="expanded-button"]','[data-test-id="temp-chat-button"]','button[aria-label="临时对话"]']}getLatestReplyText(){const e=document.querySelector(this.getResponseContainerSelector());if(!e)return null;const t=e.querySelectorAll("model-response");if(0===t.length)return null;const n=t[t.length-1],r=n.querySelector(".model-response-text")||n;return this.extractTextWithLineBreaks(r)}getWidthSelectors(){return [{selector:".conversation-container",property:"max-width"},{selector:".input-area-container",property:"max-width"},{selector:"user-query",property:"max-width",value:"100%",noCenter:true,extraCss:"display: flex !important; justify-content: flex-end !important;"},{selector:".user-query-container",property:"max-width",value:"100%",noCenter:true,extraCss:"justify-content: flex-end !important;"}]}getUserQueryWidthSelectors(){return [{selector:".user-query-bubble-with-background:not(.edit-mode)",property:"max-width",noCenter:true}]}getZenModeSelectors(){return [{selector:"hallucination-disclaimer",action:"hide"}]}getMarkdownFixerConfig(){return {selector:"message-content p",fixSpanContent:false}}getTextareaSelectors(){return ['div[contenteditable="true"].ql-editor','div[contenteditable="true"]','[role="textbox"]','[aria-label*="Enter a prompt"]']}getSubmitButtonSelectors(){return ['button[aria-label*="Send"]','button[aria-label*="发送"]',".send-button",'[data-testid*="send"]']}isValidTextarea(e){if(null===e.offsetParent)return  false;const t="true"===e.getAttribute("contenteditable"),n="textbox"===e.getAttribute("role");return !e.closest(".gh-main-panel")&&(t||n||e.classList.contains("ql-editor"))}insertPrompt(e){const t=this.textarea;if(!t)return  false;if(!t.isConnected)return this.textarea=null,false;if(t.focus(),document.activeElement!==t&&!t.contains(document.activeElement))return console.warn("[Ophel] insertPrompt: focus failed"),false;try{document.execCommand("selectAll",!1,void 0);if(!document.execCommand("insertText",!1,e))throw new Error("execCommand returned false")}catch{t.textContent=e,t.dispatchEvent(new Event("input",{bubbles:true})),t.dispatchEvent(new Event("change",{bubbles:true}));}return  true}clearTextarea(){this.textarea&&(this.textarea.isConnected?(this.textarea.focus(),(document.activeElement===this.textarea||this.textarea.contains(document.activeElement))&&(document.execCommand("selectAll",false,void 0),document.execCommand("delete",false,void 0))):this.textarea=null);}getScrollContainer(){return this.isSharePage()?document.querySelector("div.content-container"):document.querySelector("infinite-scroller.chat-history")}getResponseContainerSelector(){return this.isSharePage()?"div.content-container":"infinite-scroller.chat-history"}getChatContentSelectors(){return [".model-response-container","model-response",".response-container","[data-message-id]","message-content"]}getUserQuerySelector(){return "user-query"}sanitizeUserQueryElement(e){const t=e.cloneNode(true);return t.querySelectorAll(".cdk-visually-hidden").forEach(e=>e.remove()),t}extractUserQueryText(e){const t=this.sanitizeUserQueryElement(e),n=t.querySelector(".query-text")||t;return this.extractTextWithLineBreaks(n)}extractUserQueryMarkdown(e){const t=this.sanitizeUserQueryElement(e),n=t.querySelectorAll(".query-text-line");if(0===n.length)return this.extractUserQueryText(t);return Array.from(n).map(e=>e.querySelector("br")&&""===e.textContent?.trim()?"":e.textContent?.trim()||"").join("\n")}async prepareConversationExport(e){if(this.exportIncludeThoughtsOverride=e.includeThoughts,!e.includeThoughts)return this.clearThoughtExportMarkers(),{toggledThoughtIds:[]};const t=new Set;this.clearThoughtExportMarkers();let n=0,r=-1;for(let o=0;o<10&&n<2;o++){const e=this.getThoughtNodesForExport();e.length===r?n++:(n=0,r=e.length);for(const n of e){if(this.isThoughtExpanded(n))continue;const e=this.getThoughtHeaderButton(n);if(!e)continue;let r=n.getAttribute(Co);r||(r=`${Date.now()}-${Math.random().toString(36).slice(2,10)}`,n.setAttribute(Co,r));try{e.scrollIntoView({block:"center",behavior:"auto"});}catch{}this.simulateClick(e);await this.waitForThoughtState(n,true,2200)&&t.add(r),await this.sleep(60);}await this.sleep(120);}return this.getThoughtNodesForExport().forEach(e=>{const n=e.getAttribute(Co);n&&!t.has(n)&&e.removeAttribute(Co);}),{toggledThoughtIds:Array.from(t)}}async restoreConversationAfterExport(e,t){const n=this.parseExportLifecycleState(t);if(!n)return this.exportIncludeThoughtsOverride=null,void this.clearThoughtExportMarkers();try{for(let e=n.toggledThoughtIds.length-1;e>=0;e--){const t=n.toggledThoughtIds[e],r=this.findThoughtNodeByMarker(t);if(!r)continue;const o=this.getThoughtHeaderButton(r);if(o){if(this.isThoughtExpanded(r)){try{o.scrollIntoView({block:"center",behavior:"auto"});}catch{}this.simulateClick(o),await this.waitForThoughtState(r,!1,1800);}r.removeAttribute(Co),await this.sleep(40);}else r.removeAttribute(Co);}}finally{this.exportIncludeThoughtsOverride=null,this.clearThoughtExportMarkers();}}parseExportLifecycleState(e){if(!e||"object"!=typeof e)return null;const t=e;if(!Array.isArray(t.toggledThoughtIds))return null;return {toggledThoughtIds:t.toggledThoughtIds.filter(e=>"string"==typeof e&&e.length>0)}}getThoughtNodesForExport(){return Array.from(document.querySelectorAll('model-thoughts[data-test-id="model-thoughts"], model-thoughts'))}getThoughtHeaderButton(e){return e.querySelector('button[data-test-id="thoughts-header-button"]')}isThoughtExpanded(e){const t=e.querySelector("button[data-test-id='thoughts-header-button'] mat-icon"),n=t?.getAttribute("data-mat-icon-name")||t?.getAttribute("fonticon")||"";if(n.includes("expand_less"))return  true;if(n.includes("expand_more"))return  false;return !!e.querySelector('[data-test-id="thoughts-content"]')||null!==e.querySelector(".thoughts-content-expanded")}isThoughtContentReady(e){const t=e.querySelector('[data-test-id="thoughts-content"]');return !!t&&(t.textContent?.trim().length||0)>0}async waitForThoughtState(e,t,n=2200){const r=Date.now();for(;Date.now()-r<n;){const n=this.isThoughtExpanded(e);if(t){if(n&&this.isThoughtContentReady(e))return  true}else if(!n)return  true;await this.sleep(80);}const o=this.isThoughtExpanded(e);return t?o:!o}findThoughtNodeByMarker(e){const t=this.getThoughtNodesForExport();for(const n of t)if(n.getAttribute(Co)===e)return n;return null}clearThoughtExportMarkers(){this.getThoughtNodesForExport().forEach(e=>{e.hasAttribute(Co)&&e.removeAttribute(Co);});}shouldIncludeThoughtsInExport(){return "boolean"!=typeof this.exportIncludeThoughtsOverride||this.exportIncludeThoughtsOverride}formatAsThoughtBlockquote(e){return ["> [Thoughts]",...e.replace(/\r\n/g,"\n").split("\n").map(e=>e.trim().length>0?`> ${e}`:">")].join("\n")}extractThoughtBlockquotesFromElement(e){const t=Array.from(e.querySelectorAll("model-thoughts")),n=[];for(const r of t){const e=r.querySelector('[data-test-id="thoughts-content"]')||r.querySelector(".thoughts-content");if(!e)continue;const t=(ao(e)||this.extractTextWithLineBreaks(e)).trim();t&&n.push(this.formatAsThoughtBlockquote(t));}return n}sanitizeAssistantExportElement(e){const t=e.cloneNode(true);return t.querySelectorAll(".cdk-visually-hidden").forEach(e=>e.remove()),t.querySelectorAll(`model-thoughts[${Co}]`).forEach(e=>{e.removeAttribute(Co);}),t}shouldSkipOutlineHeading(e){return !!this.isInRenderedMarkdownContainer(e)||!!e.classList.contains("cdk-visually-hidden")}extractAssistantResponseText(e){const t=this.sanitizeAssistantExportElement(e),n=this.shouldIncludeThoughtsInExport();let r=[];n&&(r=this.extractThoughtBlockquotesFromElement(t)),t.querySelectorAll("model-thoughts").forEach(e=>e.remove());const o=(ao(t)||this.extractTextWithLineBreaks(t)).trim();if(n&&r.length>0){const e=r.join("\n\n");return o?`${e}\n\n${o}`:e}return o}replaceUserQueryContent(e,t){const n=e.querySelector(".query-text");if(!n)return  false;if(n.nextElementSibling?.classList.contains("gh-user-query-markdown"))return  false;n.style.display="none";const r=document.createElement("div");return r.className="gh-user-query-markdown gh-markdown-preview",r.innerHTML=t,n.after(r),true}getExportConfig(){return {userQuerySelector:"user-query",assistantResponseSelector:"model-response, .model-response-container .markdown",turnSelector:".conversation-turn",useShadowDOM:false}}extractOutline(e=6,t=false,n=false){const r=[],o=document.querySelector(this.getResponseContainerSelector());if(!o)return r;const a=e=>{const t=e.closest("message-content");if(t&&t.id){const e=t.id.match(/(r_[a-f0-9]+)/);if(e)return e[1]}return null},i={},s=(e,t,n)=>{i[e]||(i[e]={});const r=`${t}-${n}`,o=i[e][r]||0;return i[e][r]=o+1,`${e}::${r}::${o}`},l=this.getUserQuerySelector(),c=(e,t,n)=>{if(!e)return 0;try{if(n){let t=e.nextElementSibling,n=0;for(;t;){const e=t.tagName.toLowerCase();if("user-query"===e)break;if("model-response"===e){const e=t.querySelector(".model-response-text, message-content");if(e){const r=t.querySelector("model-thoughts"),o=r?.textContent?.trim().length||0,a=e.textContent?.trim().length||0;n+=Math.max(0,a-o);}}t=t.nextElementSibling;}return n}const r=e.closest("message-content");return this.calculateRangeWordCount(e,t,r||o)}catch{return 0}};if(!t){const t=[];for(let n=1;n<=e;n++)t.push(`h${n}`);const i=Array.from(o.querySelectorAll(t.join(", ")));return i.forEach((t,o)=>{if(this.shouldSkipOutlineHeading(t))return;const l=parseInt(t.tagName.charAt(1),10);if(l<=e){const e={level:l,text:t.textContent?.trim()||"",element:t},d=a(t);if(d){const n=t.tagName.toLowerCase();e.id=s(d,n,e.text);}if(n){let n=null;for(let e=o+1;e<i.length;e++){const t=i[e];if(parseInt(t.tagName.charAt(1),10)<=l){n=t;break}}e.wordCount=c(t,n,false);}r.push(e);}}),r}const d=[];for(let g=1;g<=e;g++)d.push(`h${g}`);const u=`${l}, ${d.join(", ")}`,h=Array.from(o.querySelectorAll(u));return h.forEach((t,o)=>{const i=t.tagName.toLowerCase();if("user-query"===i){let e=this.extractUserQueryText(t),o=false;e.length>200&&(e=e.substring(0,200),o=true);const a={level:0,text:e,element:t,isUserQuery:true,isTruncated:o},i=(e=>{const t=e.querySelector('button[jslog*="BardVeMetadataKey"]');if(t){const e=(t.getAttribute("jslog")||"").match(/BardVeMetadataKey.*?["'](r_[a-f0-9]+)["']/);if(e)return e[1]}return null})(t);i&&(a.id=i),n&&(a.wordCount=c(t,null,true)),r.push(a);}else if(/^h[1-6]$/.test(i)){if(this.shouldSkipOutlineHeading(t))return;const l=parseInt(i.charAt(1),10);if(l<=e){const e={level:l,text:t.textContent?.trim()||"",element:t},i=a(t);if(i){const n=t.tagName.toLowerCase();e.id=s(i,n,e.text);}if(n){let n=null;for(let t=o+1;t<h.length;t++){const r=h[t],o=r.tagName.toLowerCase();if("user-query"===o){n=r;break}if(/^h[1-6]$/.test(o)){if(parseInt(o.charAt(1),10)<=e.level){n=r;break}}}e.wordCount=c(t,n,false);}r.push(e);}}}),r}isGenerating(){const e=document.querySelector('mat-icon[fonticon="stop"]');return null!==e&&null!==e.offsetParent}getModelName(){const e=document.querySelector(".input-area-switch-label");if(e){const t=e.querySelector("span");if(t?.textContent){const e=t.textContent.trim();if(e.length>0&&e.length<=20)return e}}return null}getNetworkMonitorConfig(){return {urlPatterns:["BardFrontendService","StreamGenerate"],silenceThreshold:3e3}}getDefaultLockSettings(){return {enabled:false,keyword:""}}getModelSwitcherConfig(e){return {targetModelKeyword:e,selectorButtonSelectors:[".input-area-switch-label",".model-selector",'[data-test-id="model-selector"]','[aria-label*="model"]','button[aria-haspopup="menu"]'],menuItemSelector:'.mode-title, [role="menuitem"], [role="option"]',checkInterval:1e3,maxAttempts:15,menuRenderDelay:300}}
         /**
            * 切换 Gemini 主题
            * 直接修改 localStorage + body.className 实现即时无感切换
            * @param targetMode 目标主题模式
            */
         async toggleTheme(e){try{const t="dark"===e?"Bard-Dark-Theme":"Bard-Light-Theme";return localStorage.setItem("Bard-Color-Theme",t),"dark"===e?(document.body.classList.add("dark-theme"),document.body.classList.remove("light-theme")):(document.body.classList.remove("dark-theme"),document.body.classList.add("light-theme")),document.body.style.colorScheme=e,window.dispatchEvent(new StorageEvent("storage",{key:"Bard-Color-Theme",newValue:t,storageArea:localStorage})),!0}catch(t){return console.error("[GeminiAdapter] toggleTheme error:",t),false}}},new class extends Mr{sessionAccessToken=null;sessionAccessTokenExpiresAt=0;match(){return window.location.hostname.includes("chatgpt.com")}getSiteId(){return zn.CHATGPT}getName(){return "ChatGPT"}getThemeColors(){return {primary:"#10a37f",secondary:"#1a7f64"}}getNewTabUrl(){return "https://chatgpt.com"}isNewConversation(){const e=window.location.pathname;return "/"===e||""===e}getCurrentCid(){try{const e=localStorage.getItem("_account");if(e)return JSON.parse(e)}catch{}return null}getConversationList(){const e=document.querySelectorAll('#history a[data-sidebar-item="true"]')||[],t=this.getCurrentCid()||void 0;return Array.from(e).map(e=>{const n=(e.getAttribute("href")||"").match(/\/c\/([a-f0-9-]+)/),r=n?n[1]:"",o=e.querySelector("span"),a=o?.textContent?.trim()||"",i=e.hasAttribute("data-active"),s=e.querySelector(".trailing-pair"),l=(s?.querySelectorAll(".trailing svg")||[]).length>1;return {id:r,cid:t,title:a,url:r?`https://chatgpt.com/c/${r}`:"",isActive:i,isPinned:l}}).filter(e=>e.id)}getSidebarScrollContainer(){const e=document.querySelector("#history");if(e){const t=e.closest("nav");if(t)return t}return null}getConversationObserverConfig(){return {selector:'#history a[data-sidebar-item="true"]',shadow:false,extractInfo:e=>{const t=(e.getAttribute("href")||"").match(/\/c\/([a-f0-9-]+)/),n=t?t[1]:"";if(!n)return null;const r=e.querySelector("span"),o=r?.textContent?.trim()||"",a=e.hasAttribute("data-active"),i=this.getCurrentCid()||void 0,s=e.querySelector(".trailing-pair");return {id:n,cid:i,title:o,url:`https://chatgpt.com/c/${n}`,isActive:a,isPinned:(s?.querySelectorAll(".trailing svg")||[]).length>1}},getTitleElement:e=>e.querySelector("span")||e}}navigateToConversation(e,t){const n=document.querySelector(`#history a[href="/c/${e}"], a[data-sidebar-item][href="/c/${e}"]`);return n?(n.click(),true):super.navigateToConversation(e,t)}async deleteConversationOnSite(e){return this.deleteConversationOnSiteInternal(e)}async deleteConversationsOnSite(e){const t=[];for(let n=0;n<e.length;n++){const r=e[n],o=await this.deleteConversationOnSiteInternal(r);if(t.push(o),!o.success&&o.reason===Gr){for(let r=n+1;r<e.length;r++)t.push({id:e[r].id,success:false,method:"none",reason:Qr});break}}return t}async deleteConversationOnSiteInternal(e){const t=await this.tryDeleteViaNativeApi(e.id);if(t.success)return t;const n=await this.deleteConversationViaUi(e.id);return {id:e.id,success:n,method:n?"ui":"none",reason:n?void 0:t.reason||Gr}}clearSessionAccessToken(){this.sessionAccessToken=null,this.sessionAccessTokenExpiresAt=0;}async getSessionAccessToken(e=false){const t=Date.now();if(!e&&this.sessionAccessToken&&this.sessionAccessTokenExpiresAt>t+5e3)return this.sessionAccessToken;try{const e=await fetch("/api/auth/session",{method:"GET",credentials:"include"});if(!e.ok)return this.clearSessionAccessToken(),null;const n=await e.json(),r=[n?.accessToken,n?.access_token,n?.token,n?.user?.accessToken].find(e=>"string"==typeof e&&e.length>0)||null;return "string"==typeof r&&r.length>0?(this.sessionAccessToken=r,this.sessionAccessTokenExpiresAt=t+3e5,r):(this.clearSessionAccessToken(),null)}catch{return this.clearSessionAccessToken(),null}}getCookieValue(e){const t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),n=document.cookie.match(new RegExp(`(?:^|; )${t}=([^;]*)`));if(!n)return null;try{return decodeURIComponent(n[1])}catch{return n[1]}}getChatgptAccountId(){try{const e=localStorage.getItem("_account");if(!e)return null;const t=JSON.parse(e);return "string"==typeof t&&t&&"personal"!==t?t:null}catch{return null}}buildNativeDeleteHeaders(e,t){const n={accept:"*/*",authorization:`Bearer ${e}`};"PATCH"===t&&(n["content-type"]="application/json");const r=this.getChatgptAccountId();r&&(n["chatgpt-account-id"]=r);const o=this.getCookieValue("oai-did");o&&(n["oai-device-id"]=o);const a=document.documentElement.lang||navigator.language;return a&&(n["oai-language"]=a),n}async performNativeDeleteRequest(e,t,n="PATCH"){const r=this.buildNativeDeleteHeaders(t,n);return fetch(e,{method:n,headers:r,body:"PATCH"===n?JSON.stringify({is_visible:false}):void 0,credentials:"include"})}async isConversationAlreadyGone(e){return !(await this.findConversationRowWithRetry(e))}syncSidebarAfterRemoteDelete(e){const t=this.findConversationRow(e);if(!t)return;(t.closest("li")||t).remove();}toDeleteApiHttpReason(e){switch(e){case 401:case 403:return "delete_api_unauthorized";case 404:return "delete_api_not_found";case 429:return "delete_api_rate_limited";default:return `delete_api_http_${e}`}}async tryDeleteViaNativeApi(e){let t=await this.getSessionAccessToken();if(!t)return {id:e,success:false,method:"none",reason:Zr};const n=async(e,n="PATCH")=>{let r=await this.performNativeDeleteRequest(e,t,n);if(401===r.status||403===r.status){if(t=await this.getSessionAccessToken(true),!t)return this.clearSessionAccessToken(),r;r=await this.performNativeDeleteRequest(e,t,n);}return r},r=encodeURIComponent(e),o=[`/backend-api/conversation/${r}`,`/backend-api/conversations/${r}`];try{let t=null;for(const r of o){let o=await n(r,"PATCH");if(t=o.status,o.ok)return this.syncSidebarAfterRemoteDelete(e),{id:e,success:!0,method:"api"};if(405===o.status&&(o=await n(r,"DELETE"),t=o.status,o.ok))return this.syncSidebarAfterRemoteDelete(e),{id:e,success:!0,method:"api"};if(404!==o.status)return 401!==o.status&&403!==o.status||this.clearSessionAccessToken(),{id:e,success:!1,method:"api",reason:this.toDeleteApiHttpReason(o.status)}}return 404===t&&await this.isConversationAlreadyGone(e)?(this.syncSidebarAfterRemoteDelete(e),{id:e,success:!0,method:"api"}):{id:e,success:!1,method:"api",reason:404===t?$r:this.toDeleteApiHttpReason(t??0)}}catch(a){return a instanceof Error&&"AbortError"===a.name?{id:e,success:false,method:"api",reason:"delete_api_timeout"}:{id:e,success:false,method:"api",reason:Jr}}}async deleteConversationViaUi(e){const t=await this.findConversationRowWithRetry(e);if(!t)return  false;const n=await this.findConversationMenuButton(t,e);if(!n)return  false;document.body.click(),await this.sleep(50),this.simulateClick(n);const r=await this.waitForDeleteMenuItem(n);if(!r)return  false;this.simulateClick(r);const o=await this.waitForDeleteConfirmButton();return o&&this.simulateClick(o),this.waitForConversationRemoved(e,4e3)}async findConversationRowWithRetry(e){const t=this.findConversationRow(e);return t||(await this.loadAllConversations(),await this.sleep(200),this.findConversationRow(e))}findConversationRow(e){return document.querySelector(`#history a[data-sidebar-item="true"][href="/c/${e}"]`)}async findConversationMenuButton(e,t){const n=['button[aria-haspopup="menu"]','button[aria-label*="More"]','button[aria-label*="more"]','button[aria-label*="更多"]','button[data-testid*="menu"]',".trailing button"].join(", "),r=this.findConversationItemContainer(e,t),o=[r,e.closest("li"),e.parentElement,e].filter((e,t,n)=>!!e&&n.indexOf(e)===t);for(let a=0;a<8;a++){o.forEach(e=>{e.dispatchEvent(new MouseEvent("mouseenter",{bubbles:true})),e.dispatchEvent(new MouseEvent("mousemove",{bubbles:true}));});for(const e of o){const o=this.findFirstInScope(e,n,n=>this.isMenuButtonForConversation(n,t,r||e));if(o)return o}await this.sleep(100);}return null}findConversationItemContainer(e,t){const n=`/c/${t}`;let r=e,o=null;for(let a=0;a<8&&r;a++){const e=Array.from(r.querySelectorAll('a[data-sidebar-item="true"][href^="/c/"]'));if(e.some(e=>e.getAttribute("href")===n)){o||1!==e.length||(o=r);const t=!!r.querySelector('button[aria-haspopup="menu"], .trailing button');if(1===e.length&&t)return r}if("history"===r.id)break;r=r.parentElement;}return o||e.closest("li")||e.parentElement||e}findFirstInScope(e,t,n){const r=Array.from(e.querySelectorAll(t));for(const o of r)if(this.isVisible(o)&&(!n||n(o)))return o;return null}isMenuButtonForConversation(e,t,n){if(!n.contains(e))return  false;const r=`/c/${t}`,o=e.closest("li");if(o){const e=Array.from(o.querySelectorAll('a[data-sidebar-item="true"][href^="/c/"]'));if(1===e.length&&e[0].getAttribute("href")===r&&o.contains(n.querySelector(`a[data-sidebar-item="true"][href="${r}"]`)))return  true}const a=Array.from(n.querySelectorAll('a[data-sidebar-item="true"][href^="/c/"]'));return 1===a.length&&a[0].getAttribute("href")===r}getMenuContainerFromTrigger(e){const t=e.getAttribute("aria-controls")||e.getAttribute("aria-owns");if(t){const e=document.getElementById(t);if(e)return e}const n=Array.from(document.querySelectorAll('[role="menu"]'));let r=null,o=Number.POSITIVE_INFINITY;const a=e.getBoundingClientRect(),i=a.left+a.width/2,s=a.top+a.height/2;for(const l of n){if(!this.isVisible(l))continue;const e=l.getBoundingClientRect(),t=e.left+e.width/2,n=e.top+e.height/2,a=Math.hypot(t-i,n-s);a<o&&(o=a,r=l);}return r}async waitForDeleteMenuItem(e,t=2500){const n=Date.now();for(;Date.now()-n<t;){const t=this.getMenuContainerFromTrigger(e),n=t?Array.from(t.querySelectorAll('[role="menuitem"], [data-radix-collection-item][role="menuitem"]')):[],r=Array.from(document.querySelectorAll('[role="menuitem"], [data-radix-collection-item][role="menuitem"]')),o=n.length>0?n:r;for(const e of o){if(!this.isVisible(e))continue;const t=(e.textContent||"").trim().toLowerCase();if(Vr.some(e=>t.includes(e.toLowerCase())))return e}await this.sleep(80);}return null}async waitForDeleteConfirmButton(e=2500){const t=Date.now();for(;Date.now()-t<e;){const e=Array.from(document.querySelectorAll("button"));for(const t of e){if(!this.isVisible(t))continue;const e=(t.textContent||"").trim().toLowerCase();if(Vr.some(t=>e.includes(t.toLowerCase())))return t}await this.sleep(80);}return null}async waitForConversationRemoved(e,t=3e3){const n=Date.now();for(;Date.now()-n<t;){if(!this.findConversationRow(e))return  true;await this.sleep(80);}return  false}isVisible(e){if(!(e instanceof HTMLElement))return  false;if(!e.isConnected)return  false;const t=window.getComputedStyle(e);if("none"===t.display||"hidden"===t.visibility||0===Number(t.opacity))return  false;const n=e.getBoundingClientRect();return n.width>0&&n.height>0}async sleep(e){await new Promise(t=>setTimeout(t,e));}getSessionName(){const e=document.title;return e&&e!==Kr?e.replace(` | ${Kr}`,"").replace(` - ${Kr}`,"").trim():super.getSessionName()}getConversationTitle(){const e=document.querySelector("#history a[data-active] span");return e&&e.textContent?.trim()||null}getNewChatButtonSelectors(){return ['[data-testid="create-new-chat-button"]','a[href="/"]','button[aria-label="New chat"]','button[aria-label="新对话"]']}getLatestReplyText(){const e=document.querySelector(this.getResponseContainerSelector());if(!e)return null;const t=e.querySelectorAll('[data-message-author-role="assistant"]');if(0===t.length)return null;const n=t[t.length-1];return this.extractTextWithLineBreaks(n)}getWidthSelectors(){return [{selector:'[class*="thread-content-max-width"]',property:"max-width"},{selector:'[style*="--thread-content-max-width"]',property:"max-width"}]}getUserQueryWidthSelectors(){return [{selector:":root",property:"--user-chat-width",noCenter:true}]}getZenModeSelectors(){return [{selector:"div.select-none:has(> .pointer-events-auto)",action:"hide"}]}getMarkdownFixerConfig(){return {selector:'[data-message-author-role="assistant"] p',fixSpanContent:false,shouldSkip:e=>{if(!this.isGenerating())return  false;const t=e.closest('[data-message-author-role="assistant"]');if(!t)return  false;const n=document.querySelectorAll(this.getChatContentSelectors().find(e=>e.includes("assistant"))||'[data-message-author-role="assistant"]');return t===n[n.length-1]}}}getTextareaSelectors(){return ["#prompt-textarea",'textarea[data-id="root"]','[contenteditable="true"]']}getSubmitButtonSelectors(){return ['[data-testid="send-button"]','button[aria-label="Send prompt"]','button[aria-label="发送"]']}isValidTextarea(e){return null!==e.offsetParent&&(!e.closest(".gh-main-panel")&&("prompt-textarea"===e.id||"true"===e.getAttribute("contenteditable")))}insertPrompt(e){const t=this.textarea;if(!t)return  false;if(!t.isConnected)return this.textarea=null,false;if(t.focus(),document.activeElement!==t&&!t.contains(document.activeElement))return console.warn("[Ophel] insertPrompt: focus failed"),false;try{document.execCommand("selectAll",!1,void 0);if(!document.execCommand("insertText",!1,e))throw new Error("execCommand returned false")}catch{"TEXTAREA"===t.tagName?t.value=e:t.textContent=e,t.dispatchEvent(new Event("input",{bubbles:true}));}return  true}clearTextarea(){this.textarea&&(this.textarea.isConnected?(this.textarea.focus(),"TEXTAREA"===this.textarea.tagName?this.textarea.value="":(document.execCommand("selectAll",false,void 0),document.execCommand("delete",false,void 0)),this.textarea.dispatchEvent(new Event("input",{bubbles:true}))):this.textarea=null);}getScrollContainer(){const e=document.querySelector('[class*="scrollbar-gutter"], [class*="@container/main"] > div');if(e&&e.scrollHeight>e.clientHeight)return e;const t=document.querySelectorAll("div");let n=null,r=0;for(const o of Array.from(t)){const e=getComputedStyle(o);("auto"===e.overflowY||"scroll"===e.overflowY)&&o.scrollHeight>o.clientHeight&&o.scrollHeight>r&&(o.closest("nav")||(r=o.scrollHeight,n=o));}return n}getResponseContainerSelector(){return "#thread, main#main"}getChatContentSelectors(){return ['[data-message-author-role="assistant"]','[data-message-author-role="user"]',".markdown"]}getUserQuerySelector(){return '[data-message-author-role="user"]'}extractUserQueryText(e){return this.extractTextWithLineBreaks(e)}extractUserQueryMarkdown(e){return e.textContent?.trim()||""}shouldSkipElement(e){return e.classList.contains("sr-only")}extractTextWithLineBreaks(e){const t=[],n=new Set(["div","p","li","h1","h2","h3","h4","h5","h6","pre","blockquote","tr","section","article"]),r=e=>{if(e.nodeType===Node.TEXT_NODE){const n=e.textContent||"";t.push(n);}else if(e.nodeType===Node.ELEMENT_NODE){const o=e,a=o.tagName.toLowerCase();if(this.shouldSkipElement(o))return;if("br"===a)return void t.push("\n");for(const e of o.childNodes)r(e);if(n.has(a)&&t.length>0){t[t.length-1].endsWith("\n")||t.push("\n");}}};return r(e),t.join("").replace(/\n{3,}/g,"\n\n").trim()}replaceUserQueryContent(e,t){const n=e.querySelector(".whitespace-pre-wrap");if(!n)return  false;if(n.nextElementSibling?.classList.contains("gh-user-query-markdown"))return  false;n.style.display="none";const r=document.createElement("div");return r.className="gh-user-query-markdown gh-markdown-preview",r.innerHTML=t,n.after(r),true}getExportConfig(){return {userQuerySelector:'[data-message-author-role="user"]',assistantResponseSelector:'[data-message-author-role="assistant"]',turnSelector:'[data-testid^="conversation-turn"]',useShadowDOM:false}}extractOutline(e=6,t=false,n=false){const r=[],o=document.querySelector(this.getResponseContainerSelector());if(!o)return r;const a={},i=(e,t,n)=>{if(!e)return 0;try{if(n){const n=o.querySelectorAll('[data-message-author-role="assistant"]');let r="";for(const o of Array.from(n)){const n=e.compareDocumentPosition(o);if(!(n&Node.DOCUMENT_POSITION_FOLLOWING))continue;if(t){const e=t.compareDocumentPosition(o);if(!(e&Node.DOCUMENT_POSITION_PRECEDING))continue}const a=o.querySelector(".markdown, .prose, [class*='prose']");if(a)r+=a.textContent||"";else {const e=o.cloneNode(!0);e.querySelectorAll(".sr-only, [class*='sr-only']").forEach(e=>e.remove()),r+=e.textContent||"";}}return r.trim().length}if(t)return this.calculateRangeWordCount(e,t,o);const r=o.querySelectorAll(s);let a=!1,i=null;for(const t of Array.from(r)){if(a){i=t;break}(t===e||t.contains(e)||e.contains(t))&&(a=!0);}if(i)return this.calculateRangeWordCount(e,i,o);const l=o.querySelectorAll('[data-message-author-role="assistant"]');if(l.length>0){const t=l[l.length-1];return this.calculateRangeWordCount(e,null,t)}return this.calculateRangeWordCount(e,null,o)}catch{return 0}},s=this.getUserQuerySelector(),l=[];for(let u=1;u<=e;u++)l.push(`h${u}`);const c=`${s}, ${l.join(", ")}`,d=Array.from(o.querySelectorAll(c));return d.forEach((o,l)=>{const c=o.tagName.toLowerCase(),u=o.matches(s),h=/^h[1-6]$/.test(c);let g=false;if(t&&u&&(g=true),h&&!this.shouldSkipElement(o)&&!this.isInRenderedMarkdownContainer(o)){parseInt(c.charAt(1),10)<=e&&(g=true);}if(g){let e;if(u){let t=this.extractUserQueryText(o),n=false;t.length>200&&(t=t.substring(0,200),n=true),e={level:0,text:t,element:o,isUserQuery:true,isTruncated:n};}else {e={level:parseInt(c.charAt(1),10),text:o.textContent?.trim()||"",element:o,isUserQuery:false};}const t=(e=>{const t=e.closest("[data-message-id]");return t?t.getAttribute("data-message-id"):null})(o);if(t&&(e.id=u?t:((e,t,n)=>{a[e]||(a[e]={});const r=`${t}-${n}`,o=a[e][r]||0;return a[e][r]=o+1,`${e}::${r}::${o}`})(t,c,e.text)),n){let t=null;for(let n=l+1;n<d.length;n++){const r=d[n];if(r.matches(s)){t=r;break}const o=r.tagName.toLowerCase();if(/^h[1-6]$/.test(o)){if(parseInt(o.charAt(1),10)<=e.level){t=r;break}}}e.wordCount=i(o,t,u);}r.push(e);}}),r}isGenerating(){const e=document.querySelector('[data-testid="stop-button"]');return null!==e&&null!==e.offsetParent}getModelName(){const e=document.querySelector('[data-testid="model-switcher-dropdown-button"]');if(e){const t=e.getAttribute("aria-label");if(t){const e=t.match(/(?:模型为|model is)\s*(.+)/i);if(e)return e[1].trim()}const n=e.querySelector(".text-token-text-tertiary");return n?n.textContent?.trim()||null:e.textContent?.trim()||null}const t=document.querySelector("[data-message-model-slug]");return t?t.getAttribute("data-message-model-slug"):null}getNetworkMonitorConfig(){return {urlPatterns:["conversation","backend-api"],silenceThreshold:3e3}}getDefaultLockSettings(){return {enabled:false,keyword:""}}getModelSwitcherConfig(e){return {targetModelKeyword:e,selectorButtonSelectors:['[data-testid="model-switcher-dropdown-button"]','[aria-haspopup="menu"][aria-label*="模型"]','[aria-haspopup="menu"][aria-label*="model"]'],menuItemSelector:'[data-radix-collection-item][role="menuitem"], [role="menuitem"], [role="option"]',checkInterval:1e3,maxAttempts:15,menuRenderDelay:500,subMenuSelector:'[aria-haspopup="menu"]',subMenuTriggers:["传统","legacy","more"]}}simulateClick(e){const t=["pointerdown","mousedown","pointerup","mouseup","click"];for(const n of t)e.dispatchEvent(new PointerEvent(n,{bubbles:true,cancelable:true,view:window,pointerId:1}));}
         /**
            * 切换 ChatGPT 主题
            * 直接修改 localStorage.theme + html.className 实现即时无感切换
            * @param targetMode 目标主题模式
            */
         async toggleTheme(e){try{return localStorage.setItem("theme",e),document.documentElement.className=e,window.dispatchEvent(new StorageEvent("storage",{key:"theme",newValue:e,storageArea:localStorage})),!0}catch(t){return console.error("[ChatGPTAdapter] toggleTheme error:",t),false}}},new class extends Mr{match(){const e=window.location.hostname;return "grok.com"===e||e.endsWith(".grok.com")}getSiteId(){return zn.GROK}getName(){return "Grok"}getThemeColors(){return {primary:"#f39c12",secondary:"#1e1f22"}}getNewTabUrl(){return "https://grok.com/"}isNewConversation(){const e=window.location.pathname;return "/"===e||""===e}cachedDialogConversations=null;reloadScheduled=false;async loadAllConversations(){const e=document.querySelector('[data-sidebar="content"]');if(!e)return;const t=e.querySelector("button.w-full.justify-start.text-xs.text-secondary.font-semibold");if(t){const{showToast:e}=await r(async()=>{const{showToast:e}=await Promise.resolve().then(()=>to);return {showToast:e}},void 0),{t:n}=await r(async()=>{const{t:e}=await Promise.resolve().then(()=>_n);return {t:e}},void 0);e(n("grokSyncingConversations")||"正在同步会话,请稍候..."),t.click();let o=null;for(let t=0;t<30&&(await new Promise(e=>setTimeout(e,100)),o=document.querySelector('[cmdk-list-sizer=""], [cmdk-list]'),!o);t++);if(o){let e=0,t=0;const n=15;for(let r=0;r<n;r++){o.scrollTop=o.scrollHeight,await new Promise(e=>setTimeout(e,400));const n=o.scrollHeight;if(n===e){if(t++,t>=3)break}else t=0,e=n;}}return this.cacheDialogConversations(),this.dispatchEscapeKey(),void setTimeout(()=>{this.cachedDialogConversations=null;},5e3)}}cacheDialogConversations(){const e=new Map;document.querySelectorAll('a[href^="/c/"]').forEach(t=>{const n=t.getAttribute("href");if(!n)return;const r=this.extractConversationIdFromHref(n);if(!r)return;if(e.has(r))return;let o="New Chat",a=false;const i=t.closest("[cmdk-item]");if(i){const e=i.querySelector("span.truncate");o=e?.textContent?.trim()||o,a=null!==i.querySelector('[class*="border-border-l2"]');}else o=t.textContent?.trim()||o;e.set(r,{id:r,title:o,url:n,isPinned:false,isActive:a});}),this.cachedDialogConversations=e;}getConversationList(){const e=new Map,t=document.querySelector('[data-sidebar="content"]');if(t){t.querySelectorAll('[data-sidebar="group"]').forEach(t=>{const n=t.querySelectorAll('a[href^="/c/"]');if(0===n.length)return;const r=!(null!==t.querySelector(".sticky"));n.forEach(t=>{const n=t.getAttribute("href");if(!n)return;const o=this.extractConversationIdFromHref(n);if(!o)return;const a=t.querySelector("span.flex-1, span.truncate, span"),i=a?.textContent?.trim()||t.textContent?.trim()||"New Chat",s=t.classList.contains("bg-button-ghost-hover");e.set(o,{id:o,title:i,url:n,isPinned:r,isActive:s});});});}return document.querySelectorAll('a[href^="/c/"]').forEach(t=>{const n=t.getAttribute("href");if(!n)return;const r=this.extractConversationIdFromHref(n);if(!r)return;if(e.has(r))return;let o="New Chat",a=false;const i=t.closest("[cmdk-item]");if(i){const e=i.querySelector("span.truncate");o=e?.textContent?.trim()||o,a=null!==i.querySelector('[class*="border-border-l2"]');}else o=t.textContent?.trim()||o;e.set(r,{id:r,title:o,url:n,isPinned:false,isActive:a});}),this.cachedDialogConversations&&this.cachedDialogConversations.forEach((t,n)=>{e.has(n)||e.set(n,t);}),Array.from(e.values())}getSidebarScrollContainer(){return document.querySelector('[data-sidebar="content"]')}getConversationObserverConfig(){return {selector:'[data-sidebar="content"] a[href^="/c/"], [cmdk-item][data-value^="conversation:"] a[href^="/c/"]',shadow:false,extractInfo:e=>{const t=e.getAttribute("href");if(!t)return null;const n=this.extractConversationIdFromHref(t);if(!n)return null;const r=!!e.closest('[data-sidebar="content"]'),o=!!e.closest("[cmdk-item]");let a="",i=false;if(r){const t=e.querySelector("span.flex-1, span.truncate, span");a=t?.textContent?.trim()||e.textContent?.trim()||"";const n=e.closest('[data-sidebar="group"]');i=!(null!==n?.querySelector(".sticky"));}else if(o){const t=e.closest("[cmdk-item]"),n=t?.querySelector("span.truncate");a=n?.textContent?.trim()||"",i=false;}return {id:n,title:a,url:t,isPinned:i}},getTitleElement:e=>{const t=e.closest("[cmdk-item]");return t?t.querySelector("span.truncate")||e:e.querySelector("span.flex-1, span.truncate, span")||e}}}navigateToConversation(e,t){return t?(window.location.href=t,true):(window.location.href=`/c/${e}`,true)}async deleteConversationOnSite(e){const t=await this.deleteConversationOnSiteInternal(e);return t.success&&this.scheduleFullReloadAfterDelete([e.id]),t}async deleteConversationsOnSite(e){const t=[],n=[];for(let r=0;r<e.length;r++){const o=await this.deleteConversationOnSiteInternal(e[r]);if(t.push(o),o.success&&n.push(e[r].id),!o.success&&o.reason===No){for(let n=r+1;n<e.length;n++)t.push({id:e[n].id,success:false,method:"none",reason:Mo});break}}return n.length>0&&this.scheduleFullReloadAfterDelete(n),t}async deleteConversationOnSiteInternal(e){const t=await this.tryDeleteViaNativeApi(e.id);if(t.success)return t;return await this.deleteConversationViaUi(e.id)?{id:e.id,success:true,method:"ui"}:{id:e.id,success:false,method:"none",reason:t.reason||No}}async tryDeleteViaNativeApi(e){const t=`/rest/app-chat/conversations/soft/${encodeURIComponent(e)}`;try{const n=await fetch(t,{method:"DELETE",headers:this.buildNativeDeleteHeaders(),credentials:"include"});return n.ok?(this.syncConversationListAfterDelete(e),{id:e,success:!0,method:"api"}):404===n.status?this.isConversationVisible(e)?{id:e,success:!1,method:"api",reason:jo}:(this.syncConversationListAfterDelete(e),{id:e,success:!0,method:"api"}):{id:e,success:!1,method:"api",reason:this.toDeleteApiHttpReason(n.status)}}catch{return {id:e,success:false,method:"api",reason:Io}}}buildNativeDeleteHeaders(){const e={accept:"*/*","x-xai-request-id":this.generateRequestId()},t=this.getStatsigId();return t&&(e["x-statsig-id"]=t),e}getStatsigId(){const e=["x-statsig-id","statsig.stableID","statsig.stable_id","statsigStableId"];for(const t of e){const e=localStorage.getItem(t);if("string"==typeof e&&e.length>0)return e}try{for(let e=0;e<localStorage.length;e++){const t=localStorage.key(e);if(!t||!t.toLowerCase().includes("statsig"))continue;const n=localStorage.getItem(t);if(n){if(n.startsWith("{"))try{const e=JSON.parse(n),t=e?.stableID||e?.stableId||e?.id;if("string"==typeof t&&t.length>0)return t}catch{}if(n.length>0)return n}}}catch{}return null}generateRequestId(){return "undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(16).slice(2)}`}toDeleteApiHttpReason(e){switch(e){case 401:case 403:return "delete_api_unauthorized";case 429:return "delete_api_rate_limited";default:return `delete_api_http_${e}`}}syncConversationListAfterDelete(e){this.cachedDialogConversations?.delete(e);const t=this.findConversationAnchors(e);for(const n of t){this.getConversationItemContainer(n).remove();}}scheduleFullReloadAfterDelete(e){if(this.reloadScheduled||0===e.length)return;const t=this.extractConversationIdFromHref(window.location.pathname);if(t&&e.includes(t))try{window.history.replaceState(window.history.state,"","/");}catch{}this.reloadScheduled=true,window.setTimeout(()=>{window.location.reload();},120);}async deleteConversationViaUi(e){let t=false;try{let n=await this.findConversationAnchorWithRetry(e,400);if(n||(t=await this.openConversationDialogIfNeeded(),this.getCmdkListElement()&&await this.scrollCmdkListToLoadAll(),n=await this.findConversationAnchorWithRetry(e,1200)),!n)return !1;const r=this.getConversationItemContainer(n);this.revealConversationActions(r,n);const o=await this.waitForDeleteButton(r,2e3);if(!o)return !1;this.simulateClick(o);const a=await this.waitForConfirmButton(r,2200);if(!a)return !1;this.simulateClick(a);const i=await this.waitForConversationRemoved(e,4e3);return i&&this.syncConversationListAfterDelete(e),i}finally{t&&this.closeConversationDialog();}}async openConversationDialogIfNeeded(){if(this.getCmdkListElement())return  false;const e=this.getViewAllButton();if(!e)return  false;this.simulateClick(e);const t=Date.now();for(;Date.now()-t<2500;){if(this.getCmdkListElement())return  true;await this.sleep(80);}return  false}getViewAllButton(){const e=document.querySelector('[data-sidebar="content"]');return e?e.querySelector("button.w-full.justify-start.text-xs.text-secondary.font-semibold"):null}getCmdkListElement(){return document.querySelector('[cmdk-list-sizer=""], [cmdk-list]')}closeConversationDialog(){this.dispatchEscapeKey();}dispatchEscapeKey(){const e=document.activeElement||document.body||document.documentElement;if(e)try{const t=new KeyboardEvent("keydown",{key:"Escape",code:"Escape",keyCode:27,which:27,bubbles:!0,cancelable:!0});e.dispatchEvent(t);}catch{e.dispatchEvent(new Event("keydown",{bubbles:true,cancelable:true}));}}async scrollCmdkListToLoadAll(){const e=this.getCmdkListElement();if(!e)return;let t=-1,n=0;for(let r=0;r<16;r++){e.scrollTop=e.scrollHeight,await this.sleep(300);const r=e.scrollHeight;if(r===t){if(n++,n>=3)break}else t=r,n=0;}}async findConversationAnchorWithRetry(e,t){const n=this.findConversationAnchors(e)[0];if(n)return n;const r=Date.now();for(;Date.now()-r<t;){await this.sleep(80);const t=this.findConversationAnchors(e)[0];if(t)return t}return null}findConversationAnchors(e){const t=[`a[href="/c/${e}"]`,`a[href$="/c/${e}"]`,`a[href*="/c/${e}?"]`].join(", ");return Array.from(document.querySelectorAll(t)).filter(t=>this.extractConversationIdFromHref(t.getAttribute("href"))===e)}getConversationItemContainer(e){const t=[e.closest("[cmdk-item]"),e.closest('[data-sidebar="menu-button"]'),e.closest('[data-sidebar="menu-item"]'),e.closest("li"),e.parentElement,e];for(const n of t)if(n instanceof HTMLElement)return n;return e}revealConversationActions(e,t){try{e.scrollIntoView({block:"center",inline:"nearest",behavior:"instant"});}catch{}e.dispatchEvent(new MouseEvent("mouseenter",{bubbles:true})),e.dispatchEvent(new MouseEvent("mousemove",{bubbles:true})),e.dispatchEvent(new MouseEvent("mouseover",{bubbles:true})),t&&(t.focus(),t.dispatchEvent(new FocusEvent("focus",{bubbles:true})));}async waitForDeleteButton(e,t){const n=Date.now();for(;Date.now()-n<t;){this.revealConversationActions(e);const t=this.findButtonsInScopes([e]);let n=this.pickDeleteButton(t,{allowIconOnlyFallback:true});if(!n){const t=this.findButtonsInScopes(this.getScopedActionContainers(e));n=this.pickDeleteButton(t,{allowIconOnlyFallback:false});}if(n)return n;await this.sleep(80);}return null}async waitForConfirmButton(e,t){const n=Date.now();for(;Date.now()-n<t;){const t=this.findButtonsInScopes([e]);let n=this.pickConfirmButton(t,{allowIconOnlyFallback:true});if(!n){const t=this.findButtonsInScopes(this.getScopedActionContainers(e));n=this.pickConfirmButton(t,{allowIconOnlyFallback:false});}if(n)return n;await this.sleep(80);}return null}getScopedActionContainers(e){const t=[e],n=[e.parentElement,e.closest("[cmdk-item]"),e.closest('[role="dialog"]'),e.closest("[cmdk-root]"),this.getCmdkListElement()];for(const r of n)r&&(t.includes(r)||t.push(r));return t}pickDeleteButton(e,t){for(const n of e)if(this.hasKeyword(this.getElementSignal(n),Ro))return n;for(const n of e)if(this.hasKeyword(this.getIconSignal(n),Ro))return n;if(false!==t?.allowIconOnlyFallback){const t=e.filter(e=>e.querySelector("svg")&&!(e.textContent||"").trim()),n=this.pickRightMostButton(t);if(n)return n}return null}pickConfirmButton(e,t){for(const n of e)if(this.hasKeyword(this.getElementSignal(n),Fo))return n;for(const n of e)if(this.hasKeyword(this.getIconSignal(n),Fo))return n;for(const n of e)if(this.hasKeyword(this.getElementSignal(n),Ro))return n;if(false!==t?.allowIconOnlyFallback){const t=e.filter(e=>e.querySelector("svg")&&!(e.textContent||"").trim()),n=this.pickRightMostButton(t);if(n)return n}return null}pickRightMostButton(e){if(0===e.length)return null;return [...e].sort((e,t)=>t.getBoundingClientRect().right-e.getBoundingClientRect().right)[0]||null}findButtonsInScopes(e){const t=new Set,n=[];for(const r of e){const e=Array.from(r.querySelectorAll("button"));for(const r of e)t.has(r)||this.isVisible(r)&&(t.add(r),n.push(r));}return n}getElementSignal(e){return [e.textContent||"",e.getAttribute("aria-label")||"",e.getAttribute("title")||"",e.getAttribute("data-testid")||"",e.className||""].join(" ").toLowerCase()}getIconSignal(e){return Array.from(e.querySelectorAll("svg, path, use, [data-icon], [class*='icon'], [aria-label]")).map(e=>[e.getAttribute("aria-label")||"",e.getAttribute("data-icon")||"",e.getAttribute("name")||"",e.className||""].join(" ")).join(" ").toLowerCase()}hasKeyword(e,t){const n=e.toLowerCase();return t.some(e=>n.includes(e.toLowerCase()))}async waitForConversationRemoved(e,t){const n=Date.now();for(;Date.now()-n<t;){if(!this.isConversationVisible(e))return  true;await this.sleep(80);}return  false}isConversationVisible(e){return this.findConversationAnchors(e).some(e=>e.isConnected&&this.isVisible(e))}extractConversationIdFromHref(e){if(!e)return null;const t=e.match(/\/c\/([a-zA-Z0-9-]+)/);return t?t[1]:null}isVisible(e){if(!(e instanceof HTMLElement))return  false;if(!e.isConnected)return  false;const t=window.getComputedStyle(e);if("none"===t.display||"hidden"===t.visibility||0===Number(t.opacity))return  false;const n=e.getBoundingClientRect();return n.width>0&&n.height>0}async sleep(e){await new Promise(t=>setTimeout(t,e));}getSessionName(){const e=document.title;return e&&e!==Po?e.replace(` - ${Po}`,"").trim():super.getSessionName()}getConversationTitle(){const e=document.title;return e&&e!==Po?e.replace(` - ${Po}`,"").trim():null}getNewChatButtonSelectors(){return ['a[href="/"]','[data-sidebar="header"] a','button[aria-label*="新"]','button[aria-label*="New"]']}getLatestReplyText(){const e=document.querySelectorAll(".message-bubble:not(.rounded-br-lg)");if(0===e.length)return null;const t=e[e.length-1],n=t.querySelector(".response-content-markdown");return n?this.extractTextWithLineBreaks(n):this.extractTextWithLineBreaks(t)}getWidthSelectors(){return [{selector:'[class*="--content-max-width"]',property:"--content-max-width"}]}getUserQueryWidthSelectors(){return [{selector:".message-bubble.rounded-br-lg",property:"max-width"}]}getTextareaSelectors(){return [".tiptap.ProseMirror[contenteditable='true']",'[contenteditable="true"].ProseMirror',".query-bar [contenteditable='true']","form [contenteditable='true']"]}getSubmitButtonSelectors(){return ['button[type="submit"]','form button[type="submit"]','.query-bar button[type="submit"]']}isValidTextarea(e){return null!==e.offsetParent&&(!e.closest(".gh-main-panel")&&"true"===e.getAttribute("contenteditable"))}insertPrompt(e){const t=this.textarea;if(!t)return  false;if(!t.isConnected)return this.textarea=null,false;if(t.focus(),"true"===t.getAttribute("contenteditable")){t.innerHTML=`<p>${e}</p>`,t.dispatchEvent(new Event("input",{bubbles:true}));const n=window.getSelection();if(n){const e=document.createRange();e.selectNodeContents(t),e.collapse(false),n.removeAllRanges(),n.addRange(e);}return  true}return  false}clearTextarea(){this.textarea&&(this.textarea.isConnected?(this.textarea.focus(),"true"===this.textarea.getAttribute("contenteditable")&&(this.textarea.innerHTML='<p class="is-empty is-editor-empty"><br class="ProseMirror-trailingBreak"></p>',this.textarea.dispatchEvent(new Event("input",{bubbles:true})))):this.textarea=null);}getScrollContainer(){const e=document.querySelector("main");if(e){const t=e.querySelector('[class*="overflow-auto"]');if(t&&t.scrollHeight>t.clientHeight)return t;if(e.scrollHeight>e.clientHeight)return e}const t=document.querySelectorAll('[class*="overflow-y-auto"], [class*="overflow-auto"]');for(const n of Array.from(t)){const e=n;if(e.scrollHeight>e.clientHeight+100)return e}return null}getResponseContainerSelector(){return "main"}getChatContentSelectors(){return ['[class*="prose"]','[dir="ltr"]']}getUserQuerySelector(){return ".message-bubble.rounded-br-lg"}extractUserQueryText(e){return this.extractTextWithLineBreaks(e)}extractUserQueryMarkdown(e){const t=e.querySelector(".response-content-markdown");if(t){const e=t.querySelectorAll("p");if(e.length>0)return Array.from(e).map(e=>e.textContent?.trim()||"").filter(e=>e.length>0).join("\n\n")}return e.textContent?.trim()||""}replaceUserQueryContent(e,t){const n=e.querySelector(".response-content-markdown");if(!n)return  false;if(n.querySelector(".gh-user-query-markdown"))return  false;const r=Array.from(n.children),o=document.createElement("div");o.className="gh-user-query-original",o.style.display="none",r.forEach(e=>{o.appendChild(e);}),n.appendChild(o);const a=document.createElement("div");return a.className="gh-user-query-markdown gh-markdown-preview",a.innerHTML=t,n.insertBefore(a,o),true}getExportConfig(){return {userQuerySelector:this.getUserQuerySelector(),assistantResponseSelector:".message-bubble:not(.rounded-br-lg) .response-content-markdown",turnSelector:"",useShadowDOM:false}}extractOutline(e=6,t=false,n=false){const r=[],o=document.querySelector(this.getResponseContainerSelector());if(!o)return r;const a=e=>{const t=e.closest('[id^="response-"]');return t?t.id:null},i={},s=(e,t,n)=>{i[e]||(i[e]={});const r=`${t}-${n}`,o=i[e][r]||0;return i[e][r]=o+1,`${e}::${r}::${o}`},l=this.getUserQuerySelector();if(!t){const t=[];for(let n=1;n<=e;n++)t.push(`h${n}`);const i=Array.from(o.querySelectorAll(t.join(", ")));return i.forEach((t,l)=>{if(this.isInRenderedMarkdownContainer(t))return;const c=parseInt(t.tagName.charAt(1),10);if(c<=e){const e={level:c,text:t.textContent?.trim()||"",element:t},d=a(t);if(d){const n=t.tagName.toLowerCase();e.id=s(d,n,e.text);}if(n){let n=null;for(let e=l+1;e<i.length;e++){const t=i[e];if(parseInt(t.tagName.charAt(1),10)<=c){n=t;break}}const r=t.closest('[id^="response-"]');e.wordCount=this.calculateRangeWordCount(t,n,r||o);}r.push(e);}}),r}const c=[];for(let h=1;h<=e;h++)c.push(`h${h}`);const d=`${l}, ${c.join(", ")}`,u=Array.from(o.querySelectorAll(d));return u.forEach((t,i)=>{const c=t.tagName.toLowerCase();if(t.matches(l)){let e=this.extractUserQueryText(t),i=false;e.length>200&&(e=e.substring(0,200),i=true);const s={level:0,text:e,element:t,isUserQuery:true,isTruncated:i},c=a(t);c&&(s.id=c),n&&(s.wordCount=(e=>{const t=e.closest('[id^="response-"]');if(!t)return 0;let n=t.nextElementSibling,r=0;for(;n&&!n.querySelector(l);){const e=n.querySelector(".message-bubble:not(.rounded-br-lg)");if(e){const t=e.querySelector(".response-content-markdown");t&&(r+=t.textContent?.trim().length||0);}n=n.nextElementSibling;}if(0===r){const t=o.querySelectorAll(".message-bubble:not(.rounded-br-lg)");for(const n of Array.from(t)){if(!(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING))continue;const t=e.parentElement?.nextElementSibling?.querySelector(l);if(t&&!(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING))continue;const o=n.querySelector(".response-content-markdown");o&&(r+=o.textContent?.trim().length||0);}}return r})(t)),r.push(s);}else if(/^h[1-6]$/.test(c)){if(this.isInRenderedMarkdownContainer(t))return;const d=parseInt(c.charAt(1),10);if(d<=e){const e={level:d,text:t.textContent?.trim()||"",element:t},h=a(t);if(h&&(e.id=s(h,c,e.text)),n){let n=null;for(let t=i+1;t<u.length;t++){const r=u[t],o=r.tagName.toLowerCase();if(r.matches(l)){n=r;break}if(/^h[1-6]$/.test(o)){if(parseInt(o.charAt(1),10)<=e.level){n=r;break}}}const r=t.closest('[id^="response-"]');e.wordCount=this.calculateRangeWordCount(t,n,r||o);}r.push(e);}}}),r}isGenerating(){const e=document.querySelector('button[aria-label*="停止"], button[aria-label*="Stop"]');if(e&&null!==e.offsetParent)return  true;const t=document.querySelector('[class*="loading"], [class*="animate-pulse"]');return !(!t||null===t.offsetParent)}getModelName(){const e=document.querySelector("#model-select-trigger");if(e){const t=e.querySelector(".font-semibold");return t?t.textContent?.trim()||null:e.textContent?.trim()||null}return null}getNetworkMonitorConfig(){return {urlPatterns:["rest/app-chat/conversations"],silenceThreshold:500}}getDefaultLockSettings(){return {enabled:false,keyword:""}}getModelSwitcherConfig(e){return {targetModelKeyword:e,selectorButtonSelectors:["#model-select-trigger"],menuItemSelector:'[role="menuitem"], [role="option"]',checkInterval:1e3,maxAttempts:15,menuRenderDelay:500}}simulateClick(e){const t=["pointerdown","mousedown","pointerup","mouseup","click"];let n=false;for(const r of t)try{"function"==typeof PointerEvent?e.dispatchEvent(new PointerEvent(r,{bubbles:!0,cancelable:!0,pointerId:1})):e.dispatchEvent(new MouseEvent(r,{bubbles:!0,cancelable:!0})),n=!0;}catch{try{e.dispatchEvent(new MouseEvent(r,{bubbles:!0,cancelable:!0})),n=!0;}catch{}}n||e.click();}
         /**
            * 切换 Grok 主题
            * Grok 使用 localStorage("theme") 和 document.documentElement.classList 控制主题
            * @param targetMode 目标主题模式
            */
         async toggleTheme(e){try{return localStorage.setItem("theme",e),document.documentElement.classList.remove("light","dark"),document.documentElement.classList.add(e),document.documentElement.style.colorScheme=e,window.dispatchEvent(new StorageEvent("storage",{key:"theme",newValue:e,storageArea:localStorage})),!0}catch(t){return console.error("[GrokAdapter] toggleTheme error:",t),false}}},new class extends Mr{cachedLibraryConversations=null;cachedApiKey=null;cachedRpcOrigin=null;match(){return "aistudio.google.com"===window.location.hostname}getSiteId(){return zn.AISTUDIO}getName(){return "AI Studio"}getThemeColors(){return {primary:"#4285f4",secondary:"#1a73e8"}}getNewTabUrl(){return "https://aistudio.google.com/prompts/new_chat"}isNewConversation(){return !this.getSessionId()}getSessionId(){const e=window.location.pathname.match(/\/prompts\/([^/?#]+)/);if(e&&e[1]){const t=e[1];if("new_chat"!==t)return t}return ""}getTextFromScrollbar(e){const t=`ms-prompt-scrollbar button[aria-controls="${e}"]`,n=document.querySelector(t);if(n){const e=n.getAttribute("aria-label");if(e)return e.trim()}return null}getSessionName(){const e=document.title;return e&&!e.includes(Ir)?e.replace(` | ${Ir}`,"").trim():super.getSessionName()}getConversationTitle(){const e=document.title;return e&&!e.includes(Ir)?e.replace(` | ${Ir}`,"").trim():null}getTextareaSelectors(){return ["textarea.textarea","textarea.cdk-textarea-autosize",'textarea[placeholder*="prompt"]','textarea[placeholder*="Start typing"]']}getSubmitButtonSelectors(){return ['ms-run-button button[type="submit"]','ms-run-button.supports-add-instead-of-run button[type="submit"]','button[ms-button][type="submit"]','button.ms-button-primary[type="submit"]']}getSubmitKeyConfig(){try{const e=localStorage.getItem("aiStudioUserPreference");if(!e)return {key:"Enter"};return 2===JSON.parse(e).enterKeyBehavior?{key:"Ctrl+Enter"}:{key:"Enter"}}catch{return {key:"Enter"}}}isValidTextarea(e){return null!==e.offsetParent&&(!e.closest(".gh-main-panel")&&"textarea"===e.tagName.toLowerCase())}insertPrompt(e){const t=this.textarea;return !!t&&(t.isConnected?(t.focus(),"textarea"===t.tagName.toLowerCase()&&(t.value=e,t.dispatchEvent(new Event("input",{bubbles:true})),t.dispatchEvent(new Event("change",{bubbles:true})),t.selectionStart=t.selectionEnd=e.length,true)):(this.textarea=null,false))}clearTextarea(){const e=this.textarea;e&&(e.isConnected?(e.focus(),"textarea"===e.tagName.toLowerCase()&&(e.value="",e.dispatchEvent(new Event("input",{bubbles:true})),e.dispatchEvent(new Event("change",{bubbles:true})))):this.textarea=null);}getScrollContainer(){const e=[".chat-container",".virtual-scroll-container",'[class*="scroll"]','main [style*="overflow"]'];for(const n of e){const e=document.querySelector(n);if(e&&e.scrollHeight>e.clientHeight)return e}const t=document.querySelector("main");if(t){const e=t.querySelector('[class*="overflow"]');if(e&&e.scrollHeight>e.clientHeight)return e}return null}getResponseContainerSelector(){return ".chat-container, main"}getChatContentSelectors(){return [".chat-turn-container",'[class*="message"]','[class*="response"]']}getWidthSelectors(){return [{selector:".chat-session-content",property:"max-width"},{selector:".chat-turn-container",property:"max-width"}]}getZenModeSelectors(){return [{selector:"ms-hallucinations-disclaimer",action:"hide"}]}getMarkdownFixerConfig(){return {selector:"ms-cmark-node span.ng-star-inserted",fixSpanContent:true}}lockModel(e,t){if(!e)return;let n=0;const r=setInterval(async()=>{n++;const o=document.querySelector("button.model-selector-card");if(o){clearInterval(r),o.click();if(!(await this.waitForModelSidebar()))return console.warn("[AIStudioAdapter] 模型侧边栏加载超时"),void this.closeModelSidebar();const n=`model-carousel-row-models/${e}`,i=document.getElementById(n);if(i){const n=i.querySelector("div > div > div > span:first-child"),r=n?.textContent?.trim()||e,o=this.getSessionId();o&&localStorage.setItem(`ophel:aistudio:model:${o}`,r),i.click(),t&&t();try{const e=wr.getState().settings;e.aistudio?.collapseRunSettings&&setTimeout(()=>{const e=document.querySelector('button[aria-label="Close run settings panel"]');e&&e.click();},500);}catch(a){console.error("[AIStudioAdapter] Auto-collapse run settings failed:",a);}}else console.warn(`[AIStudioAdapter] 未找到目标模型: ${e}`),this.closeModelSidebar();}else {const e=document.querySelector('button[aria-label="Toggle run settings panel"]');e?(e.click(),n=Math.max(0,n-2)):n>=10&&(clearInterval(r),console.warn("[AIStudioAdapter] 未找到模型选择按钮"));}},1e3);}async getModelList(){let e=false,t=document.querySelector("button.model-selector-card");if(!t){const n=document.querySelector('button[aria-label="Toggle run settings panel"]');if(n){e=true,n.click();for(let e=0;e<20&&(await new Promise(e=>setTimeout(e,200)),t=document.querySelector("button.model-selector-card"),!t);e++);}}if(!t)return console.warn("[AIStudioAdapter] 模型选择器按钮未找到"),[];t.click();const n=await this.waitForModelSidebar();if(!n){if(console.warn("[AIStudioAdapter] 模型侧边栏加载超时"),e){const e=document.querySelector('button[aria-label="Close run settings panel"]');e&&e.click();}return []}const r=this.extractModelsFromSidebar(n);return this.closeModelSidebar(),e&&setTimeout(()=>{const e=document.querySelector('button[aria-label="Close run settings panel"]');e&&e.click();},500),r}async waitForModelSidebar(){const e=Date.now();for(;Date.now()-e<5e3;){const e=document.querySelector(".ms-sliding-right-panel-dialog, mat-dialog-container.mat-mdc-dialog-container");if(e)return await new Promise(e=>setTimeout(e,300)),e;await new Promise(e=>setTimeout(e,100));}return null}extractModelsFromSidebar(e){const t=[];return e.querySelectorAll(".model-options-container button.content-button").forEach(e=>{const n=(e.id||"").replace("model-carousel-row-","").replace("models/",""),r=e.querySelector("div > div > div > span:first-child"),o=r?.textContent?.trim()||n;n&&o&&t.push({id:n,name:o});}),t}closeModelSidebar(){const e=document.querySelector("button[data-test-close-button]");e?e.click():document.dispatchEvent(new KeyboardEvent("keydown",{key:"Escape",bubbles:true}));}async loadAllConversations(){const e="/library"===window.location.pathname;if(!e){const e=document.querySelector('a.view-all-history-link[href="/library"]');if(!e)return void(window.location.href="/library");e.click(),await this.waitForLibraryTable();}const t=this.extractLibraryConversations();t.length>0&&(this.cachedLibraryConversations=t),e||window.history.back(),setTimeout(()=>{this.cachedLibraryConversations=null;},1e4);}async waitForLibraryTable(){for(let e=0;e<50;e++){await new Promise(e=>setTimeout(e,100));if(document.querySelector("ms-library-table table tbody tr"))return await new Promise(e=>setTimeout(e,200)),true}return  false}extractLibraryConversations(){const e=[];return document.querySelectorAll("ms-library-table table tbody tr").forEach(t=>{const n=t.querySelector('a[href*="/prompts/"]');if(!n)return;const r=n.getAttribute("href")||"",o=r.match(/\/prompts\/([^/]+)/);if(!o)return;const a=o[1],i=n.textContent?.trim()||"Untitled";e.push({id:a,title:i,url:r,isActive:window.location.pathname.includes(a),isPinned:false});}),e}extractSidebarConversations(){const e=new Map;return document.querySelectorAll('a[href*="/prompts/"]').forEach(t=>{const n=t.getAttribute("href");if(!n||n.includes("new_chat"))return;const r=n.match(/\/prompts\/([^/]+)/);if(!r)return;const o=r[1];if(e.has(o))return;const a=t.textContent?.trim()||"Untitled",i=window.location.pathname.includes(o);e.set(o,{id:o,title:a,url:n,isActive:i,isPinned:false});}),Array.from(e.values())}getConversationList(){return "/library"===window.location.pathname?this.extractLibraryConversations():this.cachedLibraryConversations&&this.cachedLibraryConversations.length>0?this.cachedLibraryConversations:this.extractSidebarConversations()}getSidebarScrollContainer(){const e=document.querySelector("aside");return e||null}getConversationObserverConfig(){return {selector:'a.prompt-link[href*="/prompts/"]:not([href*="new_chat"])',shadow:true,extractInfo:e=>{const t=e.getAttribute("href");if(!t)return null;const n=t.match(/\/prompts\/([^/]+)/);if(!n)return null;return {id:n[1],title:e.textContent?.trim()||"Untitled",url:t,isPinned:false}},getTitleElement:e=>e}}navigateToConversation(e,t){const n=document.querySelector(`a.prompt-link[href*="/prompts/${e}"], a.name-btn[href*="/prompts/${e}"]`);return n?(n.click(),true):(window.location.href=t||`/prompts/${e}`,true)}async deleteConversationOnSite(e){return (await this.deleteConversationsOnSite([e]))[0]||{id:e.id,success:false,method:"none",reason:jr}}async deleteConversationsOnSite(e){const t=await this.enterLibraryPageForDelete(),n=[],r=[];let o=false;try{for(let t=0;t<e.length;t++){const o=await this.deleteConversationOnSiteInternal(e[t]);if(n.push(o),o.success&&r.push(e[t].id),!o.success&&o.reason===jr){for(let r=t+1;r<e.length;r++)n.push({id:e[r].id,success:!1,method:"none",reason:Rr});break}}return t.enteredLibrary&&(await this.restoreFromLibraryPage(t.originalPath),o=!0),r.length>0&&this.scheduleFullReloadAfterDelete(r),n}finally{t.enteredLibrary&&!o&&await this.restoreFromLibraryPage(t.originalPath);}}async deleteConversationOnSiteInternal(e){const t=this.shouldUseNativeDeleteApi()?await this.tryDeleteViaGrpcApi(e.id):{id:e.id,success:false,method:"none",reason:Fr};if(t.success)return t;const n=await this.deleteConversationViaUi(e.id);return {id:e.id,success:n,method:n?"ui":"none",reason:n?void 0:t.reason||jr}}shouldUseNativeDeleteApi(){return  false}async tryDeleteViaGrpcApi(e){const t=await this.buildGoogleAuthorizationHeader(window.location.origin);if(!t)return {id:e,success:false,method:"none",reason:zr};const n=this.resolveGoogleApiKey();if(!n)return {id:e,success:false,method:"none",reason:Or};const r=this.normalizePromptName(e),o=this.getDeletePromptEndpoints();let a=0;try{for(const i of o){const o=await fetch(i,{method:"POST",credentials:"include",headers:{accept:"*/*",authorization:t,"content-type":"application/json+protobuf","x-goog-api-key":n,"x-goog-authuser":this.resolveGoogAuthUser(),"x-user-agent":"grpc-web-javascript/0.1"},body:JSON.stringify([r])});if(a=o.status,o.ok)return this.cachedRpcOrigin=this.normalizeRpcOriginFromEndpoint(i),this.syncConversationListAfterDelete(e),{id:e,success:!0,method:"api"};if(404!==o.status){if(!(400===o.status||o.status>=500))return {id:e,success:!1,method:"api",reason:this.toDeleteApiHttpReason(o.status)}}else if(!this.isConversationVisible(e))return this.cachedRpcOrigin=this.normalizeRpcOriginFromEndpoint(i),this.syncConversationListAfterDelete(e),{id:e,success:!0,method:"api"}}return 404===a?{id:e,success:!1,method:"api",reason:qr}:{id:e,success:!1,method:"api",reason:this.toDeleteApiHttpReason(a||0)}}catch{return {id:e,success:false,method:"api",reason:Br}}}toDeleteApiHttpReason(e){switch(e){case 401:case 403:return "delete_api_unauthorized";case 429:return "delete_api_rate_limited";default:return `delete_api_http_${e}`}}normalizePromptName(e){return e?e.startsWith("prompts/")?e:`prompts/${e}`:""}getDeletePromptEndpoints(){const e=[];this.cachedRpcOrigin&&e.push(this.cachedRpcOrigin),e.push(...this.resolveRpcOriginsFromPerformance()),e.push("https://alkalimakersuite-pa.clients6.google.com");return Array.from(new Set(e.filter(Boolean))).map(e=>`${e}${Wr}/DeletePrompt`)}resolveRpcOriginsFromPerformance(){const e=performance.getEntriesByType("resource");if(!e||0===e.length)return [];const t=[];for(let n=e.length-1;n>=0;n--){const r=e[n]?.name;if(!r||!r.includes(Wr))continue;const o=this.normalizeRpcOriginFromEndpoint(r);o&&t.push(o);}return Array.from(new Set(t))}normalizeRpcOriginFromEndpoint(e){try{const t=new URL(e);return this.isLikelyRpcHost(t.hostname)?`${t.protocol}//${t.host}`:null}catch{return null}}isLikelyRpcHost(e){return /(?:^|\.)alkalimakersuite-[a-z0-9-]+\.clients\d+\.google\.com$/i.test(e)}async buildGoogleAuthorizationHeader(e){const t=Math.floor(Date.now()/1e3),n=this.getCookieValue("SAPISID"),r=this.getCookieValue("__Secure-1PAPISID"),o=this.getCookieValue("__Secure-3PAPISID"),a=[],i=n||r||o;if(i){const n=await this.buildSapisidHashToken(i,e,t);n&&a.push(`SAPISIDHASH ${n}`);}if(r){const n=await this.buildSapisidHashToken(r,e,t);n&&a.push(`SAPISID1PHASH ${n}`);}if(o){const n=await this.buildSapisidHashToken(o,e,t);n&&a.push(`SAPISID3PHASH ${n}`);}return 0===a.length?null:a.join(" ")}async buildSapisidHashToken(e,t,n){try{const r=`${n} ${e} ${t}`,o=await crypto.subtle.digest("SHA-1",(new TextEncoder).encode(r));return `${n}_${Array.from(new Uint8Array(o)).map(e=>e.toString(16).padStart(2,"0")).join("")}`}catch{return null}}resolveGoogleApiKey(){if(this.cachedApiKey&&this.isValidGoogleApiKey(this.cachedApiKey))return this.cachedApiKey;const e=window.WIZ_global_data,t=e?.SNlM0e;if(this.isValidGoogleApiKey(t))return this.cachedApiKey=t,t;for(let r=0;r<localStorage.length;r++){const e=localStorage.key(r);if(!e)continue;const t=localStorage.getItem(e);if(!t)continue;const n=t.match(/AIza[0-9A-Za-z_-]{20,}/);if(n)return this.cachedApiKey=n[0],n[0]}const n=Array.from(document.querySelectorAll("script"));for(const r of n){const e=r.textContent;if(!e)continue;const t=e.match(/AIza[0-9A-Za-z_-]{20,}/);if(t)return this.cachedApiKey=t[0],t[0]}return null}isValidGoogleApiKey(e){return "string"==typeof e&&/^AIza[0-9A-Za-z_-]{20,}$/.test(e)}resolveGoogAuthUser(){const e=new URLSearchParams(window.location.search).get("authuser");return e&&/^\d+$/.test(e)?e:"0"}getCookieValue(e){const t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),n=document.cookie.match(new RegExp(`(?:^|; )${t}=([^;]*)`));if(!n)return null;try{return decodeURIComponent(n[1])}catch{return n[1]}}syncConversationListAfterDelete(e){this.cachedLibraryConversations&&(this.cachedLibraryConversations=this.cachedLibraryConversations.filter(t=>t.id!==e));[`a.prompt-link[href*="/prompts/${e}"]`,`a.name-btn[href*="/prompts/${e}"]`,`a[href*="/prompts/${e}"]`].forEach(e=>{Array.from(document.querySelectorAll(e)).forEach(e=>{(e.closest("tr")||e.closest("li")||e.closest("mat-row")||e).remove();});});}isConversationVisible(e){return Boolean(document.querySelector(`a.prompt-link[href*="/prompts/${e}"], a.name-btn[href*="/prompts/${e}"], a[href*="/prompts/${e}"]`))}scheduleFullReloadAfterDelete(e){if(0===e.length)return;const t=this.getSessionId();if(t&&e.includes(t))try{window.history.replaceState(window.history.state,"","/prompts/new_chat");}catch{}}async deleteConversationViaUi(e){const t=await this.findLibraryRowByPromptId(e,1500);if(!t)return  false;const n=this.findLibraryRowMenuButton(t);if(!n)return  false;this.simulateClick(n);const r=await this.waitForDeleteMenuItem(2500);if(!r)return  false;this.simulateClick(r);const o=await this.waitForDeleteConfirmButton(2500);if(!o)return  false;this.simulateClick(o);const a=await this.waitForConversationRemoved(e,5e3);return a&&this.syncConversationListAfterDelete(e),a}async enterLibraryPageForDelete(){const e=`${window.location.pathname}${window.location.search}${window.location.hash}`;if("/library"===window.location.pathname)return {enteredLibrary:false,originalPath:e};const t=document.querySelector('a.view-all-history-link[href="/library"]');if(!t)return {enteredLibrary:false,originalPath:e};t.click();return await this.waitForLibraryTable()&&"/library"===window.location.pathname?{enteredLibrary:true,originalPath:e}:{enteredLibrary:false,originalPath:e}}async restoreFromLibraryPage(e){if(!e||"/library"!==window.location.pathname)return;window.history.back();const t=Date.now();for(;Date.now()-t<3e3;){if("/library"!==window.location.pathname)return;await this.sleep(80);}}async findLibraryRowByPromptId(e,t=1200){const n=Date.now();for(;Date.now()-n<t;){const t=document.querySelector(`ms-library-table a[href*="/prompts/${e}"], a.name-btn[href*="/prompts/${e}"]`);if(t){const e=t.closest("tr")||t.closest("mat-row")||t;if(e&&this.isVisible(e))return e}await this.sleep(80);}return null}findLibraryRowMenuButton(e){const t=['button[aria-haspopup="menu"]','button[aria-label*="More"]','button[aria-label*="more"]','button[aria-label*="更多"]','button[aria-label*="更多选项"]','button[aria-label*="选项"]','button[title*="More"]','button[title*="more"]'].join(", "),n=Array.from(e.querySelectorAll(t)).filter(e=>this.isVisible(e));if(n.length>0)return n.sort((e,t)=>t.getBoundingClientRect().right-e.getBoundingClientRect().right)[0];const r=Array.from(e.querySelectorAll("button")).filter(e=>this.isVisible(e));return 0===r.length?null:r.sort((e,t)=>t.getBoundingClientRect().right-e.getBoundingClientRect().right)[0]}async waitForDeleteMenuItem(e=2500){const t=Date.now();for(;Date.now()-t<e;){const e=Array.from(document.querySelectorAll('[role="menuitem"], [role="menu"] button, .mat-mdc-menu-panel button'));for(const t of e){if(!this.isVisible(t))continue;const e=this.getSignalText(t);if(this.hasKeyword(e,Ur)&&!this.hasKeyword(e,Hr))return t}await this.sleep(80);}return null}async waitForDeleteConfirmButton(e=2500){const t=Date.now();for(;Date.now()-t<e;){const e=this.findVisibleDialog(),t=e?Array.from(e.querySelectorAll("button")):Array.from(document.querySelectorAll("button"));for(const n of t){if(!this.isVisible(n))continue;const e=this.getSignalText(n);if(this.hasKeyword(e,Ur)&&!this.hasKeyword(e,Hr))return n}await this.sleep(80);}return null}findVisibleDialog(){return Array.from(document.querySelectorAll('[role="dialog"], mat-dialog-container, .mat-mdc-dialog-container')).find(e=>this.isVisible(e))||null}async waitForConversationRemoved(e,t=3500){const n=Date.now();for(;Date.now()-n<t;){if(!this.isConversationVisible(e))return  true;await this.sleep(80);}return  false}getSignalText(e){return [e.textContent||"",e.getAttribute("aria-label")||"",e.getAttribute("title")||"",e.className||""].join(" ").toLowerCase()}hasKeyword(e,t){const n=e.toLowerCase();return t.some(e=>n.includes(e.toLowerCase()))}isVisible(e){if(!(e instanceof HTMLElement))return  false;if(!e.isConnected)return  false;const t=window.getComputedStyle(e);if("none"===t.display||"hidden"===t.visibility||0===Number(t.opacity))return  false;const n=e.getBoundingClientRect();return n.width>0&&n.height>0}async sleep(e){await new Promise(t=>setTimeout(t,e));}getUserQuerySelector(){return ".chat-turn-container.user"}textCache=new Map;wordCountCache=new Map;lastSessionIdForCache=null;extractUserQueryText(e){const t=this.getSessionId();this.lastSessionIdForCache!==t&&(this.textCache.clear(),this.wordCountCache.clear(),this.lastSessionIdForCache=t);const n=e.closest("ms-chat-turn")?.id;let r="";const o=e.querySelector("ms-prompt-chunk.text-chunk, ms-prompt-chunk");if(o)r=o.textContent?.trim()||"";else {const t=e.querySelector(".turn-content");if(t){if(t.querySelector(".author-label")){const e=t.cloneNode(true),n=e.querySelector(".author-label");n?.remove(),r=e.textContent?.trim()||"";}else r=t.textContent?.trim()||"";}else r=this.extractTextWithLineBreaks(e);}if(!r&&n){const e=this.getTextFromScrollbar(n);e&&(r=e);}return r?(n&&this.textCache.set(n,r),r):n&&this.textCache.has(n)?this.textCache.get(n):""}getExportConfig(){return {userQuerySelector:this.getUserQuerySelector(),assistantResponseSelector:".chat-turn-container.model",turnSelector:".chat-turn-container",useShadowDOM:false}}extractOutline(e=6,t=false,n=false){const r=[],o=document.querySelector(".chat-container")||document.querySelector("main");if(!o)return r;const a={},i=this.getUserQuerySelector(),s=e=>{const t=e.closest("ms-chat-turn");if(!t)return 0;const n=t.id;let r=t.nextElementSibling,o=0,a=false;for(;r;){if(r.querySelector(i))break;const e=r.querySelector(".chat-turn-container.model, .chat-turn-container:not(.user)");if(e){const t=e.querySelectorAll("ms-cmark-node");for(const e of Array.from(t)){if(e.closest("ms-thought-chunk"))continue;const t=e.textContent?.trim().length||0;t>0&&(a=true,o+=t);}}r=r.nextElementSibling;}return a&&n&&this.wordCountCache.set(n,o),0===o&&n&&this.wordCountCache.has(n)?this.wordCountCache.get(n):o};if(!t){const t=[];for(let n=1;n<=e;n++)t.push(`h${n}`);const i=Array.from(o.querySelectorAll(t.join(", ")));return i.forEach((t,s)=>{if(t.closest("textarea")||t.closest(".user-prompt-container"))return;if(this.isInRenderedMarkdownContainer(t))return;const l=parseInt(t.tagName.charAt(1),10);if(l<=e){const e={level:l,text:t.textContent?.trim()||"",element:t},c=(e=>{const t=e.closest("ms-chat-turn");return t&&t.id?t.id.replace(/^turn-/,""):null})(t);if(c){const n=t.tagName.toLowerCase();e.id=((e,t,n)=>{a[e]||(a[e]={});const r=`${t}-${n}`,o=a[e][r]||0;return a[e][r]=o+1,`${e}::${r}::${o}`})(c,n,e.text);}if(n){let n=null;for(let e=s+1;e<i.length;e++){const t=i[e];if(parseInt(t.tagName.charAt(1),10)<=l){n=t;break}}const r=t.closest("ms-chat-turn");e.wordCount=this.calculateRangeWordCount(t,n,r||o);}r.push(e);}}),r}const l=[];for(let u=1;u<=e;u++)l.push(`h${u}`);const c=`${i}, ${l.join(", ")}`,d=Array.from(o.querySelectorAll(c));return d.forEach((t,a)=>{const i=t.tagName.toLowerCase();if(t.classList.contains("user")&&t.classList.contains("chat-turn-container")){let e=this.extractUserQueryText(t),o=false;e.length>200&&(e=e.substring(0,200),o=true);const a={level:0,text:e,element:t,isUserQuery:true,isTruncated:o},i=t.closest("ms-chat-turn"),l=i?.nextElementSibling;if(l&&"ms-chat-turn"===l.tagName.toLowerCase()){const e=this.extractTextWithLineBreaks(l).trim().substring(0,50);e&&(a.context=e);}n&&(a.wordCount=s(t)),r.push(a);}else if(/^h[1-6]$/.test(i)){if(t.closest(".user-prompt-container")||t.closest("textarea"))return;if(this.isInRenderedMarkdownContainer(t))return;const s=parseInt(i.charAt(1),10);if(s<=e){const e={level:s,text:t.textContent?.trim()||"",element:t};if(n){let n=null;for(let t=a+1;t<d.length;t++){const r=d[t],o=r.tagName.toLowerCase();if(r.classList.contains("user")&&r.classList.contains("chat-turn-container")){n=r;break}if(/^h[1-6]$/.test(o)){if(parseInt(o.charAt(1),10)<=e.level){n=r;break}}}const r=t.closest("ms-chat-turn");e.wordCount=this.calculateRangeWordCount(t,n,r||o);}r.push(e);}}}),r}isGenerating(){const e=document.querySelector("ms-run-button");if(e&&null!==e.offsetParent)return  false;const t=["ms-stop-button",'button mat-icon[fonticon="stop"]','button .material-symbols-outlined:not([class*="keyboard"])',".mat-progress-spinner",".mat-progress-bar"];for(const n of t){const e=document.querySelector(n);if(e&&null!==e.offsetParent){if(!n.includes("material-symbols-outlined"))return  true;{const t=e.textContent?.trim();if("stop"===t||"stop_circle"===t)return  true}}}return  false}getModelName(){const e=document.querySelector("button.model-selector-card");if(e){const t=e.querySelector("span.title")||e.querySelector("span"),n=t?.textContent?.trim();if(n){const e=this.getSessionId();return e&&localStorage.setItem(`ophel:aistudio:model:${e}`,n),n}}const t=this.getSessionId();if(t){const e=localStorage.getItem(`ophel:aistudio:model:${t}`);if(e)return e}try{const e=localStorage.getItem("aiStudioUserPreference");if(e){const t=JSON.parse(e),n=t._promptModelOverride||t.promptModel;if(n)return n.replace(/^models\//,"")}}catch{}const n=new URLSearchParams(window.location.search).get("model");return n||"Gemini 1.5 Flash"}getLatestReplyText(){const e=document.querySelectorAll(".chat-turn-container.model, .model-prompt-container");if(0===e.length)return null;const t=e[e.length-1];return this.extractTextWithLineBreaks(t)}getNewChatButtonSelectors(){return ['button[iconname="add"]','button[data-test-clear="outside"]','button .material-symbols-outlined[aria-hidden="true"]']}
         /**
            * 切换 AI Studio 主题
            * AI Studio 使用 localStorage.aiStudioUserPreference.theme 存储主题
            * 值域:light / dark / system
            * @param targetMode 目标主题模式
            */
         async toggleTheme(e){try{const t=localStorage.getItem("aiStudioUserPreference")||"{}",n=JSON.parse(t);n.theme=e,localStorage.setItem("aiStudioUserPreference",JSON.stringify(n));const r=document.body;"dark"===e?(r.classList.add("dark-theme"),r.classList.remove("light-theme")):(r.classList.remove("dark-theme"),r.classList.add("light-theme")),r.style.colorScheme=e,window.dispatchEvent(new StorageEvent("storage",{key:"aiStudioUserPreference",newValue:JSON.stringify(n),storageArea:localStorage}));const o=document.querySelector("app-root, ms-app, body");return o&&o.dispatchEvent(new CustomEvent("themechange",{detail:{theme:e}})),!0}catch(t){return console.error("[AIStudioAdapter] toggleTheme error:",t),false}}
         /**
            * 将 Ophel 扩展配置应用到 AI Studio 的 localStorage
            * 在页面加载时调用,用于设置默认界面状态和模型
            * @param settings Ophel 的 AI Studio 设置
            */
         applySettings(e){try{const t=localStorage.getItem("aiStudioUserPreference")||"{}",n=JSON.parse(t);let r=!1;if(void 0!==e.collapseNavbar){const t=!e.collapseNavbar;n.isNavbarExpanded!==t&&(n.isNavbarExpanded=t,r=!0);}if(void 0!==e.collapseTools){const t=!e.collapseTools;n.areToolsOpen!==t&&(n.areToolsOpen=t,r=!0);}if(void 0!==e.collapseAdvanced){const t=!e.collapseAdvanced;n.isAdvancedOpen!==t&&(n.isAdvancedOpen=t,r=!0);}if(void 0!==e.enableSearch&&n.enableSearchAsATool!==e.enableSearch&&(n.enableSearchAsATool=e.enableSearch,r=!0),e.defaultModel&&""!==e.defaultModel.trim()){const t=e.defaultModel.trim();n.promptModel!==t&&(n.promptModel=t,n._promptModelOverride=t,r=!0);}r&&(localStorage.setItem("aiStudioUserPreference",JSON.stringify(n)),window.dispatchEvent(new StorageEvent("storage",{key:"aiStudioUserPreference",newValue:JSON.stringify(n),storageArea:localStorage})));}catch(t){console.error("[AIStudioAdapter] applySettings error:",t);}}},new class extends Mr{activeOrganizationId=null;activeOrganizationIdExpiresAt=0;match(){return window.location.hostname.includes("claude.ai")||window.location.hostname.includes("claude.com")}getSiteId(){return zn.CLAUDE}getName(){return "Claude"}getThemeColors(){return {primary:"#d97757",secondary:"#c66045"}}getNewTabUrl(){return "https://claude.ai/new"}isNewConversation(){return "/new"===window.location.pathname||"/"===window.location.pathname}isSharePage(){return window.location.pathname.startsWith("/public/")}getConversationList(){const e=document.querySelectorAll('a[data-dd-action-name="sidebar-chat-item"]');return Array.from(e).map(e=>{const t=e.getAttribute("href")||"",n=t.match(/\/chat\/([a-f0-9-]+)/),r=n?n[1]:"",o=e.querySelector("span.truncate"),a=o?.textContent?.trim()||"",i=window.location.href.includes(r);let s=false;const l=e.closest("div.flex.flex-col");if(l){const e=l.querySelector("h3"),t=e&&!e.hasAttribute("role"),n=l.querySelector("ul"),r=n?.classList.contains("-mx-1.5");s=t||r;}return {id:r,title:a,url:t.startsWith("http")?t:`https://claude.ai${t}`,isActive:i,isPinned:s}}).filter(e=>e.id)}getSidebarScrollContainer(){const e=document.querySelector("nav");if(e){return e.querySelector("div.overflow-y-auto")||e}return null}async deleteConversationOnSite(e){return this.deleteConversationOnSiteInternal(e)}async deleteConversationsOnSite(e){const t=[];for(let n=0;n<e.length;n++){const r=await this.deleteConversationOnSiteInternal(e[n]);if(t.push(r),!r.success&&r.reason===so){for(let r=n+1;r<e.length;r++)t.push({id:e[r].id,success:false,method:"none",reason:lo});break}}return t}async deleteConversationOnSiteInternal(e){const t=await this.tryDeleteViaNativeApi(e);if(t.success)return t;const n=await this.deleteConversationViaUi(e.id);return {id:e.id,success:n,method:n?"ui":"none",reason:n?void 0:t.reason||so}}async tryDeleteViaNativeApi(e){const t=await this.getActiveOrganizationId();if(!t)return {id:e.id,success:false,method:"none",reason:co};const n=`/api/organizations/${encodeURIComponent(t)}/chat_conversations/${encodeURIComponent(e.id)}`,r=[void 0,JSON.stringify({uuid:e.id,name:e.title||""})];try{let t=0;for(const o of r){const r=await fetch(n,{method:"DELETE",headers:this.buildNativeDeleteHeaders(Boolean(o)),body:o,credentials:"include"});if(t=r.status,r.ok)return this.syncSidebarAfterRemoteDelete(e.id),{id:e.id,success:!0,method:"api"};if(404!==r.status){if(400!==r.status||o)return {id:e.id,success:!1,method:"api",reason:this.toDeleteApiHttpReason(r.status)}}else if(!(await this.isConversationStillVisible(e.id)))return this.syncSidebarAfterRemoteDelete(e.id),{id:e.id,success:!0,method:"api"}}return {id:e.id,success:!1,method:"api",reason:404===t?ho:this.toDeleteApiHttpReason(t||0)}}catch{return {id:e.id,success:false,method:"api",reason:uo}}}buildNativeDeleteHeaders(e){const t={accept:"*/*","anthropic-client-platform":"web_claude_ai","anthropic-client-version":"1.0.0"};e&&(t["content-type"]="application/json");const n=this.readAnthropicAnonymousId();n&&(t["anthropic-anonymous-id"]=n);const r=this.readAnthropicDeviceId();r&&(t["anthropic-device-id"]=r);const o=this.readAnthropicClientSha();return o&&(t["anthropic-client-sha"]=o),t}toDeleteApiHttpReason(e){switch(e){case 401:case 403:return "delete_api_unauthorized";case 429:return "delete_api_rate_limited";default:return `delete_api_http_${e}`}}async getActiveOrganizationId(e=false){const t=Date.now();if(!e&&this.activeOrganizationId&&this.activeOrganizationIdExpiresAt>t+5e3)return this.activeOrganizationId;if(this.isUserscriptRuntime()){const e=await this.fetchOrganizationIdFromApi();if(e)return this.activeOrganizationId=e,this.activeOrganizationIdExpiresAt=t+6e5,e;const n=this.getOrganizationIdFromStorage();if(n)return this.activeOrganizationId=n,this.activeOrganizationIdExpiresAt=t+6e5,n;const r=this.getCookieValue("lastActiveOrg");return this.isValidOrganizationId(r)?(this.activeOrganizationId=r,this.activeOrganizationIdExpiresAt=t+6e5,r):null}const n=this.getCookieValue("lastActiveOrg");if(this.isValidOrganizationId(n))return this.activeOrganizationId=n,this.activeOrganizationIdExpiresAt=t+6e5,n;const r=this.getOrganizationIdFromStorage();if(r)return this.activeOrganizationId=r,this.activeOrganizationIdExpiresAt=t+6e5,r;const o=await this.fetchOrganizationIdFromApi();return o?(this.activeOrganizationId=o,this.activeOrganizationIdExpiresAt=t+6e5,o):null}isUserscriptRuntime(){return  true}async fetchOrganizationIdFromApi(){try{const e=await fetch("/api/organizations",{method:"GET",headers:{accept:"application/json, text/plain, */*"},credentials:"include"});if(!e.ok)return null;const t=await e.json();return this.extractOrganizationId(t)}catch{return null}}getOrganizationIdFromStorage(){const e=["lastActiveOrg","activeOrg","organizationId","lastActiveOrganization","LSS-lastActiveOrg"];for(const t of e){const e=localStorage.getItem(t),n=this.extractOrganizationId(e);if(n)return n}for(let t=0;t<localStorage.length;t++){const e=localStorage.key(t);if(!e||!e.toLowerCase().includes("org"))continue;const n=localStorage.getItem(e),r=this.extractOrganizationId(n);if(r)return r}return null}extractOrganizationId(e){if(!e)return null;if("string"==typeof e){const t=e.trim().replace(/^"(.*)"$/,"$1");if(this.isValidOrganizationId(t))return t;if(t.startsWith("{")||t.startsWith("["))try{return this.extractOrganizationId(JSON.parse(t))}catch{return null}const n=t.match(/[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}/i);return n?n[0]:null}if(Array.isArray(e)){for(const t of e){const e=this.extractOrganizationId(t);if(e)return e}return null}if("object"==typeof e){const t=e,n=["uuid","id","organization_uuid","organization_id","organizationId","org_uuid"];for(const e of n){const n=t[e];if("string"==typeof n&&this.isValidOrganizationId(n))return n}for(const e of ["organizations","organization","activeOrganization","currentOrganization"]){const n=t[e],r=this.extractOrganizationId(n);if(r)return r}}return null}isValidOrganizationId(e){return "string"==typeof e&&mo.test(e)}readAnthropicDeviceId(){return this.getCookieValue("anthropic-device-id")}readAnthropicAnonymousId(){return this.getCookieValue("anthropic-anonymous-id")||localStorage.getItem("anthropic-anonymous-id")||localStorage.getItem("anthropicAnonymousId")}readAnthropicClientSha(){const e=document.querySelector('meta[name="sentry-release"], meta[name="anthropic-client-sha"]')?.getAttribute("content");if(e)return e;const t=window.__SENTRY_RELEASE__;return "string"==typeof t&&t.length>0?t:null}getCookieValue(e){const t=e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),n=document.cookie.match(new RegExp(`(?:^|; )${t}=([^;]*)`));if(!n)return null;try{return decodeURIComponent(n[1])}catch{return n[1]}}syncSidebarAfterRemoteDelete(e){const t=this.findConversationRow(e);if(!t)return;(t.closest("li")||t).remove();}async deleteConversationViaUi(e){const t=await this.findConversationRowWithRetry(e);if(!t)return  false;const n=await this.findConversationMenuButton(t,e);if(!n)return  false;this.simulateClick(n);const r=await this.waitForDeleteMenuItem(n);if(!r)return  false;if(this.simulateClick(r),await this.waitForConversationRemoved(e,1e3))return  true;const o=await this.waitForDeleteConfirmButton();return o&&this.simulateClick(o),this.waitForConversationRemoved(e,5e3)}async isConversationStillVisible(e){return !!(await this.findConversationRowWithRetry(e))}async findConversationRowWithRetry(e){const t=this.findConversationRow(e);return t||(await this.loadAllConversations(),await this.sleep(200),this.findConversationRow(e))}findConversationRow(e){return document.querySelector(`a[data-dd-action-name="sidebar-chat-item"][href="/chat/${e}"], a[data-dd-action-name="sidebar-chat-item"][href$="/chat/${e}"], a[data-dd-action-name="sidebar-chat-item"][href*="/chat/${e}?"]`)}async findConversationMenuButton(e,t){const n=e.closest("li")||e.parentElement||e,r=['button[aria-haspopup="menu"]','button[data-testid*="menu"]','button[aria-label*="more"]','button[aria-label*="More"]','button[aria-label*="options"]','button[aria-label*="Options"]','button[aria-label*="更多"]','button[aria-label*="选项"]','button[aria-label*="選項"]'].join(", ");for(let o=0;o<10;o++){n.dispatchEvent(new MouseEvent("mouseenter",{bubbles:true})),n.dispatchEvent(new MouseEvent("mousemove",{bubbles:true})),e.dispatchEvent(new MouseEvent("mouseenter",{bubbles:true})),e.dispatchEvent(new MouseEvent("mousemove",{bubbles:true}));const t=Array.from(n.querySelectorAll(r)).filter(e=>this.isVisible(e));if(t.length>0){const e=this.pickRightMostElement(t);if(e)return e}const o=Array.from(n.querySelectorAll("button")).filter(e=>this.isVisible(e));if(o.length>0){const e=this.pickRightMostElement(o);if(e)return e}await this.sleep(80);}return null}getMenuScopeFromTrigger(e){const t=e.getAttribute("aria-controls")||e.getAttribute("aria-owns");if(t){const e=document.getElementById(t);if(e)return e}const n=Array.from(document.querySelectorAll('[role="menu"], [data-radix-menu-content], [data-state="open"]')).filter(e=>this.isVisible(e));return 0===n.length?null:this.pickNearestElement(e,n)}async waitForDeleteMenuItem(e,t=2500){const n=Date.now();for(;Date.now()-n<t;){const t=this.getMenuScopeFromTrigger(e),n=t?Array.from(t.querySelectorAll('[role="menuitem"], button')):Array.from(document.querySelectorAll('[role="menuitem"], [role="menu"] button'));for(const e of n){if(!this.isVisible(e))continue;const t=this.getSignalText(e);if(this.hasKeyword(t,go)&&!this.hasKeyword(t,po))return e}await this.sleep(80);}return null}async waitForDeleteConfirmButton(e=2500){const t=Date.now();for(;Date.now()-t<e;){const e=this.findVisibleDialog(),t=e?Array.from(e.querySelectorAll("button")):Array.from(document.querySelectorAll("button"));for(const n of t){if(!this.isVisible(n))continue;const e=this.getSignalText(n);if(this.hasKeyword(e,go)&&!this.hasKeyword(e,po))return n}await this.sleep(80);}return null}findVisibleDialog(){return Array.from(document.querySelectorAll('[role="dialog"], [aria-modal="true"], [data-state="open"]')).find(e=>this.isVisible(e))||null}async waitForConversationRemoved(e,t=3500){const n=Date.now();for(;Date.now()-n<t;){if(!this.findConversationRow(e))return  true;await this.sleep(80);}return  false}pickRightMostElement(e){return 0===e.length?null:[...e].sort((e,t)=>t.getBoundingClientRect().right-e.getBoundingClientRect().right)[0]}pickNearestElement(e,t){if(0===t.length)return null;const n=e.getBoundingClientRect(),r=n.left+n.width/2,o=n.top+n.height/2;let a=null,i=Number.POSITIVE_INFINITY;for(const s of t){const e=s.getBoundingClientRect(),t=e.left+e.width/2,n=e.top+e.height/2,l=Math.hypot(t-r,n-o);l<i&&(i=l,a=s);}return a}getSignalText(e){return [e.textContent||"",e.getAttribute("aria-label")||"",e.getAttribute("title")||"",e.className||""].join(" ").toLowerCase()}hasKeyword(e,t){const n=e.toLowerCase();return t.some(e=>n.includes(e.toLowerCase()))}isVisible(e){if(!(e instanceof HTMLElement))return  false;if(!e.isConnected)return  false;const t=window.getComputedStyle(e);if("none"===t.display||"hidden"===t.visibility||0===Number(t.opacity))return  false;const n=e.getBoundingClientRect();return n.width>0&&n.height>0}async sleep(e){await new Promise(t=>setTimeout(t,e));}getTextareaSelectors(){return ['[contenteditable="true"]',".ProseMirror",'div[role="textbox"]']}getSubmitButtonSelectors(){return ['button[aria-label="Send Message"]','button[data-testid="send-button"]','button[aria-label="Send"]']}isValidTextarea(e){if(null===e.offsetParent)return  false;if(e.closest(".gh-main-panel"))return  false;const t="true"===e.getAttribute("contenteditable"),n=e.classList.contains("ProseMirror"),r="textbox"===e.getAttribute("role");return t||n||r}insertPrompt(e){const t=this.getTextareaElement();if(!t)return  false;t.focus();try{if(document.execCommand("selectAll",!1,void 0),!document.execCommand("insertText",!1,e))throw new Error("execCommand failed")}catch{t.textContent=e,t.dispatchEvent(new Event("input",{bubbles:true}));}return  true}clearTextarea(){const e=this.getTextareaElement();if(e){e.focus();try{document.execCommand("selectAll",!1,void 0),document.execCommand("delete",!1,void 0);}catch{e.textContent="";}e.dispatchEvent(new Event("input",{bubbles:true}));}}getConversationTitle(){const e=this.getSessionId();if(e&&"default"!==e){const t=document.querySelector(`a[href*="${e}"]`);if(t)return t.querySelector("span.truncate")?.textContent?.trim()||null}return null}getScrollContainer(){const e=document.getElementById("main-content");if(e){const t=e.querySelector(".overflow-y-scroll");if(t)return t}return super.getScrollContainer()}getChatContentSelectors(){return ['div[data-testid="user-message"]',"div.font-claude-response"]}getModelName(){const e=document.querySelector('button[data-testid="model-selector-dropdown"]');return e&&e.textContent?e.textContent.trim():null}getModelSwitcherConfig(e){return {targetModelKeyword:e,selectorButtonSelectors:['button[data-testid="model-selector-dropdown"]'],menuItemSelector:'div[role="menuitem"]',checkInterval:1e3,maxAttempts:20,subMenuSelector:'[aria-haspopup="menu"]',subMenuTriggers:["more models","更多模型"]}}simulateClick(e){const t=["pointerdown","mousedown","pointerup","mouseup","click"];for(const n of t)e.dispatchEvent(new PointerEvent(n,{bubbles:true,cancelable:true,view:window,pointerId:1}));}getNewChatButtonSelectors(){return ['a[data-dd-action-name="sidebar-new-item"]','a[href="/new"]']}getDefaultLockSettings(){return {enabled:false,keyword:"sonnet"}}extractOutline(e=6,t=false,n=false){const r=[],o=this.getScrollContainer();if(!o)return r;const a=e=>e.replace(/<thinking>[\s\S]*?<\/thinking>/gi,"").trim(),i=this.getUserQuerySelector(),s=Array.from(o.querySelectorAll("h1, h2, h3, h4, h5, h6"));if(s.forEach((t,o)=>{const a=parseInt(t.tagName[1]);if(a>e)return;if(t.classList.contains("pointer-events-none"))return;const i=t.textContent?.trim()||"";if(!i)return;const l={level:a,text:i.length>200?i.slice(0,200):i,element:t,isUserQuery:false,isTruncated:i.length>80};if(n){let e=null;for(let t=o+1;t<s.length;t++){const n=s[t];if(parseInt(n.tagName[1])<=a){e=n;break}}const n=t.closest(".font-claude-response");if(n){const r=this.calculateRangeWordCount(t,e,n);l.wordCount=r;}}r.push(l);}),t){o.querySelectorAll('[data-testid="user-message"]').forEach(e=>{const t=e.textContent?.trim()||"";if(!t)return;const s={level:0,text:t.length>200?t.slice(0,200):t,element:e,isUserQuery:true,isTruncated:t.length>60};n&&(s.wordCount=(e=>{const t=Array.from(o.querySelectorAll(i)),n=Array.from(o.querySelectorAll(".font-claude-response")),r=t.indexOf(e);if(-1===r)return 0;const s=t[r+1];let l=0;for(const o of n){if(!(e.compareDocumentPosition(o)&Node.DOCUMENT_POSITION_FOLLOWING))continue;if(s&&s.compareDocumentPosition(o)&Node.DOCUMENT_POSITION_FOLLOWING)continue;const t=o.querySelector(".standard-markdown, .progressive-markdown");if(t){const e=t.textContent?.trim()||"";l+=a(e).length;}}return l})(e)),r.push(s);}),r.sort((e,t)=>{if(!e.element||!t.element)return 0;return e.element.compareDocumentPosition(t.element)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1});}return r}isGenerating(){if(document.querySelector('button[aria-label="Stop response"]'))return  true;return !!document.querySelector('[class*="streaming"], [class*="typing"]')}getNetworkMonitorConfig(){return {urlPatterns:["/api/","/completion"],silenceThreshold:500}}getExportConfig(){return {userQuerySelector:'[data-testid="user-message"]',assistantResponseSelector:".font-claude-response",turnSelector:null,useShadowDOM:false}}getLatestReplyText(){const e=document.querySelectorAll(".font-claude-response");if(0===e.length)return null;const t=e[e.length-1],n=t.querySelector(".standard-markdown, .progressive-markdown");return n?n.textContent?.trim()||null:t.textContent?.trim()||null}getResponseContainerSelector(){return ".font-claude-response"}getUserQuerySelector(){return '[data-testid="user-message"]'}extractUserQueryText(e){return e.textContent?.trim()||""}extractUserQueryMarkdown(e){const t=e.querySelectorAll("p.whitespace-pre-wrap");if(0===t.length)return "";const n=[];return t.forEach(e=>{const t=e.textContent||"";(/^#{1,6}\s/m.test(t)||/\*\*[^*]+\*\*/.test(t)||/\*[^*]+\*/.test(t))&&n.push(t);}),0===n.length?"":"# CLAUDE_INCREMENTAL\nplaceholder"}replaceUserQueryContent(e,t){if(e.querySelector(".gh-claude-enhanced"))return  false;const n=e.querySelectorAll("p.whitespace-pre-wrap");if(0===n.length)return  false;let r=false;return n.forEach(e=>{const t=e.textContent||"",n=/^#{1,6}\s/m.test(t),o=/\*\*[^*]+\*\*/.test(t),a=new RegExp("(?<!\\*)\\*(?!\\*)[^*]+\\*(?!\\*)").test(t);if(!n&&!o&&!a)return;let i=t;i=i.replace(/^(#{1,6})\s+(.+)$/gm,(e,t,n)=>{const r=t.length;return `<h${r} class="text-text-100 mt-2 -mb-1 ${1===r?"text-[1.375rem]":2===r?"text-[1.125rem]":"text-base"} font-bold">${n}</h${r}>`}),i=i.replace(/\*\*([^*]+)\*\*/g,"<strong>$1</strong>"),i=i.replace(new RegExp("(?<!\\*)\\*(?!\\*)([^*]+)\\*(?!\\*)","g"),"<em>$1</em>"),i=i.split("\n").map(e=>(e.startsWith("<h")||e.trim(),e)).join("<br>");const s=document.createElement("div");s.className="gh-claude-enhanced whitespace-pre-wrap break-words",s.innerHTML=i,e.replaceWith(s),r=true;}),r}extractAssistantResponseText(e){let t="";const n=e.querySelectorAll(".artifact-block-cell");n.length>0&&n.forEach(n=>{const r=n.querySelector(".line-clamp-1"),o=r?.textContent?.trim()||"Untitled",a=n.querySelector(".text-text-400"),i=a?.textContent?.trim(),s=e.querySelector('a[download][href^="blob:"]'),l=s?.getAttribute("href");t+=l?`\n[Artifact: ${o}${i?` - ${i}`:""} | Download: ${l}]\n\n`:`\n[Artifact: ${o}${i?` - ${i}`:""}]\n\n`;});const r=e.querySelector(".standard-markdown, .progressive-markdown");if(r){const e=ao(r);t+=e||r.textContent?.trim()||"";}return t.trim()}getConversationObserverConfig(){return {selector:'a[data-dd-action-name="sidebar-chat-item"]',shadow:false,extractInfo:e=>{const t=e.getAttribute("href")||"",n=t.match(/\/chat\/([a-f0-9-]+)/),r=n?n[1]:"";if(!r)return null;const o=e.querySelector("span.truncate"),a=o?.textContent?.trim()||"";let i=false;const s=e.closest("div.flex.flex-col");if(s){const e=s.querySelector("h3"),t=e&&!e.hasAttribute("role"),n=s.querySelector("ul"),r=n?.classList.contains("-mx-1.5");i=t||r;}return {id:r,title:a,url:`https://claude.ai${t}`,isActive:window.location.href.includes(r),isPinned:i}},getTitleElement:e=>e.querySelector("span.truncate")}}navigateToConversation(e,t){const n=t||`https://claude.ai/chat/${e}`,r=document.querySelector(`a[href*="${e}"]`);return r?(r.click(),true):(window.location.href=n,true)}getSessionName(){return this.getConversationTitle()}getWidthSelectors(){return [{selector:"#main-content .max-w-3xl",property:"max-width"},{selector:"#main-content .max-w-4xl",property:"max-width"}]}getZenModeSelectors(){return [{selector:'[data-disclaimer="true"]',action:"hide"}]}getUserQueryWidthSelectors(){return [{selector:'[data-testid="user-message"]',property:"max-width"}]}async toggleTheme(e){try{const t={value:e,tabId:crypto.randomUUID(),timestamp:Date.now()};return localStorage.setItem("LSS-userThemeMode",JSON.stringify(t)),window.dispatchEvent(new StorageEvent("storage",{key:"LSS-userThemeMode",newValue:JSON.stringify(t)})),await new Promise(e=>setTimeout(e,300)),!0}catch(t){return console.error("[ClaudeAdapter] toggleTheme error:",t),false}}},new class extends Mr{lastScrollHeight=0;lastScrollTop=0;match(){return "www.doubao.com"===window.location.hostname}getSiteId(){return zn.DOUBAO}getName(){return "豆包"}getThemeColors(){return {primary:"#315efb",secondary:"#0f6eff"}}getTextareaSelectors(){return ['[data-slate-editor="true"]','textarea[data-testid="chat_input_input"]',"textarea.semi-input-textarea"]}insertPrompt(e){const t=this.getTextareaElement();if(!t||!t.isConnected)return  false;if(t.focus(),t instanceof HTMLTextAreaElement){const n=Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value")?.set;n?n.call(t,e):t.value=e,t.dispatchEvent(new InputEvent("input",{bubbles:true,composed:true,data:e})),t.dispatchEvent(new Event("change",{bubbles:true})),t.setSelectionRange(e.length,e.length);}else if(t.isContentEditable){const n=window.getSelection();if(n){t.focus(),n.selectAllChildren(t),n.collapseToEnd();const e=t.querySelector('[data-slate-node="element"]');if(e&&n.rangeCount>0){const t=document.createRange();t.selectNodeContents(e),t.collapse(false),n.removeAllRanges(),n.addRange(t);}}const r=new DataTransfer;r.setData("text/plain",e),t.dispatchEvent(new ClipboardEvent("paste",{clipboardData:r,bubbles:true,cancelable:true,composed:true}));}return  true}clearTextarea(){const e=this.getTextareaElement();if(e&&e.isConnected)if(e instanceof HTMLTextAreaElement||e instanceof HTMLInputElement){const t=Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value")?.set;t?t.call(e,""):e.value="",e.dispatchEvent(new InputEvent("input",{bubbles:true,composed:true,data:""})),e.dispatchEvent(new Event("change",{bubbles:true}));}else e.isContentEditable&&(e.focus(),document.execCommand("selectAll",false),e.dispatchEvent(new KeyboardEvent("keydown",{key:"Backspace",code:"Backspace",keyCode:8,bubbles:true,composed:true})),document.execCommand("delete",false),e.dispatchEvent(new InputEvent("input",{inputType:"deleteContentBackward",bubbles:true,composed:true})),e.dispatchEvent(new KeyboardEvent("keyup",{key:"Backspace",code:"Backspace",keyCode:8,bubbles:true,composed:true})));}getConversationTitle(){const e=document.querySelector('a[data-testid="chat_list_thread_item"][class*="active-"]');if(!e)return null;const t=e instanceof HTMLAnchorElement?e:e.closest("a");if(!t)return null;const n=t.querySelector('[data-testid="chat_list_item_title"], [class^="section-item-title-"], [class*="section-item-title-"]');return n?.textContent?.trim()||null}getSessionId(){const e=window.location.pathname.match(fo);return e&&"new"!==e[1]?e[1]:""}isNewConversation(){return /^(?:\/code)?\/chat\/(new\/?)?$/.test(window.location.pathname)}getNewTabUrl(){return `https://www.doubao.com${window.location.pathname.startsWith("/code/")?"/code":""}/chat/`}supportsNewTab(){return  true}getConversationList(){const e=document.querySelectorAll('a[data-testid="chat_list_thread_item"]');if(!e.length)return [];const t=new Map;return e.forEach(e=>{const n=e,r=(n.getAttribute("href")||"").match(fo),o=r?.[1];if(!o||"new"===o)return;const a=n.querySelector('[data-testid="chat_list_item_title"], [class^="section-item-title-"], [class*="section-item-title-"]')?.textContent?.trim()||"",i=n.className.includes("active-"),s=!!n.querySelector('[id="chat_list_item_pin_icon"], [class^="pin-"], [class*="pin-"]');t.set(o,{id:o,title:a,url:`https://www.doubao.com/chat/${o}`,isActive:i,isPinned:s});}),Array.from(t.values())}navigateToConversation(e,t){const n=document.querySelector(`a[data-testid="chat_list_thread_item"][href*="/chat/${e}"]`);return n?(n.click(),true):(window.location.href=t||`https://www.doubao.com/chat/${e}`,true)}async loadAllConversations(){const e=this.getSidebarScrollContainer();if(!e)return;let t=0,n=0;for(;n<3;){e.scrollTop=e.scrollHeight,await new Promise(e=>setTimeout(e,500));const r=e.querySelectorAll('a[data-testid="chat_list_thread_item"]').length;r===t?n++:(t=r,n=0);}}getSidebarScrollContainer(){return document.querySelector('[data-testid="chat_list_wrapper"]')}getConversationObserverConfig(){return {selector:'a[data-testid="chat_list_thread_item"]',shadow:false,extractInfo:e=>{const t=e,n=(t.getAttribute("href")||"").match(fo),r=n?.[1];if(!r||"new"===r)return null;return {id:r,title:t.querySelector('[data-testid="chat_list_item_title"], [class^="section-item-title-"], [class*="section-item-title-"]')?.textContent?.trim()||"",url:`https://www.doubao.com/chat/${r}`,isActive:t.className.includes("active-"),isPinned:!!t.querySelector('[id="chat_list_item_pin_icon"], [class^="pin-"], [class*="pin-"]')}},getTitleElement:e=>e.querySelector('[data-testid="chat_list_item_title"], [class^="section-item-title-"], [class*="section-item-title-"]')}}getScrollContainer(){const e=document.querySelector('[data-testid="message-list"]');if(e){let t=e.parentElement;for(;t&&t!==document.body;){const e=window.getComputedStyle(t);if(("scroll"===e.overflowY||"auto"===e.overflowY)&&t.scrollHeight>t.clientHeight)return t;t=t.parentElement;}}const t=document.querySelectorAll('[class^="scrollable-"]');for(const n of t){if("column-reverse"===window.getComputedStyle(n).flexDirection&&n.scrollHeight>n.clientHeight)return n}return document.querySelector('[data-testid="scroll_view"]')}getResponseContainerSelector(){return '[data-testid="message-list"]'}getUserQuerySelector(){return bo}getChatContentSelectors(){return ['[data-testid="receive_message"] .flow-markdown-body',yo]}getUserMessageTextContainer(e){return e.matches(yo)?e:e.querySelector(yo)}extractUserQueryMarkdown(e){const t=this.getUserMessageTextContainer(e);return t?.textContent?.trim()||""}replaceUserQueryContent(e,t){const n=this.getUserMessageTextContainer(e);if(!n)return  false;if(n.nextElementSibling?.classList.contains("gh-user-query-markdown"))return  false;const r=document.createElement("div");r.className=`${n.className} gh-user-query-markdown gh-markdown-preview`.trim(),r.innerHTML=t;const o=n.getAttribute("style");return o&&r.setAttribute("style",o),n.style.display="none",n.after(r),true}findModelSelectorButton(){const e=document.querySelectorAll('button[data-slot="dropdown-menu-trigger"][aria-haspopup="menu"]');for(const t of e){const e=t;if(null!==e.offsetParent){const t=e.querySelector(".truncate");if(t&&t.textContent?.trim())return e}}return null}getModelSwitcherConfig(e){return {targetModelKeyword:e,selectorButtonSelectors:['button[data-slot="dropdown-menu-trigger"][aria-haspopup="menu"]'],menuItemSelector:'div[role="menuitem"][data-slot="dropdown-menu-item"]',menuRenderDelay:100}}getModelName(){const e=this.findModelSelectorButton();if(!e)return null;const t=e.innerText?.trim();return t?t.split("\n")[0].trim():null}clickModelSelector(){const e=this.findModelSelectorButton();return !!e&&(this.simulateClick(e),true)}simulateClick(e){const t=["pointerdown","mousedown","pointerup","mouseup","click"];for(const n of t)e.dispatchEvent(new PointerEvent(n,{bubbles:true,cancelable:true,view:window,pointerId:1}));}extractOutline(e=6,t=false,n=false){const r=[],o=document.querySelector('[data-testid="message-list"]');if(!o)return r;const a=(t,a)=>{const i=Array.from(t.querySelectorAll("h1, h2, h3, h4, h5, h6"));i.forEach((t,s)=>{const l=parseInt(t.tagName[1],10);if(l>e)return;const c=t.textContent?.trim()||"";if(!c)return;let d;if(n){let e=null;for(let t=s+1;t<i.length;t++){const n=i[t];if(parseInt(n.tagName[1],10)<=l){e=n;break}}d=this.calculateRangeWordCount(t,e,a||o);}r.push({level:l,text:c,element:t,wordCount:d});});},i=o.querySelectorAll('[data-testid="union_message"]');if(0===i.length){if(t){o.querySelectorAll(bo).forEach(e=>{const t=this.extractUserQueryMarkdown(e);if(!t)return;let o;if(n){let t=e.nextElementSibling;for(;t&&!t.querySelector('[data-testid="receive_message"]');)t=t.nextElementSibling;if(t){const e=t.querySelector(".flow-markdown-body");o=e?.textContent?.length||0;}}r.push({level:0,text:t.length>80?t.slice(0,80)+"...":t,element:e,isUserQuery:true,isTruncated:t.length>80,wordCount:o});});}return o.querySelectorAll('[data-testid="receive_message"] .flow-markdown-body').forEach(e=>a(e)),r}return i.forEach(e=>{let o=0;const i=e.querySelector('[data-testid="receive_message"]'),s=i?.querySelector(".flow-markdown-body");if(s&&n&&(o=s.textContent?.length||0),t){const t=e.querySelector(bo);if(t){const e=this.extractUserQueryMarkdown(t);e&&r.push({level:0,text:e.length>80?e.slice(0,80)+"...":e,element:t,isUserQuery:true,isTruncated:e.length>80,wordCount:n?o:void 0});}}s&&a(s,s);}),r}getExportConfig(){return {userQuerySelector:bo,assistantResponseSelector:'[data-testid="receive_message"]',turnSelector:null,useShadowDOM:false}}toggleTheme(){return Promise.resolve(false)}isGenerating(){const e=document.querySelector('[data-testid="chat_input_local_break_button"]');return null!==e&&null!==e.offsetParent}getNewChatButtonSelectors(){return ["#create_conversation_button"]}getSubmitButtonSelectors(){return ["[data-testid='chat_input_send_button']","#flow-end-msg-send",".send-btn-wrapper button"]}getWidthSelectors(){return [{selector:'[data-container-name="main"]',property:"max-width"},{selector:'[data-testid="message-block-container"]',property:"--message-block-container-inline-width"},{selector:".max-w-\\(--content-max-width\\)",property:"max-width"},{selector:".chrome70-container",property:"--center-content-max-width"}]}getUserQueryWidthSelectors(){return [{selector:'[data-testid="send_message"] .w-fit[class*="max-w-"]',property:"max-width"},{selector:'[data-testid="message_content"].justify-end [data-testid="message_text_content"].w-fit[class*="max-w-"]',property:"max-width"}]}getVisibleAnchorElement(){const e=this.getScrollContainer();if(!e)return null;const t=this.getChatContentSelectors();if(!t.length)return null;const n=Array.from(e.querySelectorAll(t.join(", ")));if(!n.length)return null;const r=e.getBoundingClientRect();let o=null;for(let a=0;a<n.length;a++){const e=n[a],t=e.getBoundingClientRect();if(t.top>=r.top-50&&t.bottom<=r.bottom+50){o=e;break}if(t.top<=r.top&&t.bottom>=r.top){o=e;break}}if(!o)for(let a=0;a<n.length;a++){const e=n[a],t=e.getBoundingClientRect();if(t.top<r.top&&t.bottom>r.bottom){o=e;break}}if(o){const e=n.indexOf(o);if(-1!==e){return {type:"index",index:e,offset:0,textSignature:(o.textContent||"").trim().substring(0,50)}}}return null}restoreScroll(e){const t=this.getScrollContainer();if(!t||!e)return  false;let n=null;if("index"===e.type&&"number"==typeof e.index){const r=this.getChatContentSelectors(),o=Array.from(t.querySelectorAll(r.join(", ")));if(o[e.index]){if(n=o[e.index],e.textSignature){if((n.textContent||"").trim().substring(0,50)!==e.textSignature){const t=o.find(t=>(t.textContent||"").trim().substring(0,50)===e.textSignature);t&&(n=t);}}}else if(e.textSignature){const t=o.find(t=>(t.textContent||"").trim().substring(0,50)===e.textSignature);t&&(n=t);}}return !!n&&(n.scrollIntoView({block:"start",behavior:"instant"}),setTimeout(()=>{this.lastScrollHeight=t.scrollHeight,this.lastScrollTop=t.scrollTop;},50),true)}}];function Oo(){for(const e of zo)if(e.match())return e;return null}const Bo=Yn()(nr((e,t)=>({conversations:{},lastUsedFolderId:"inbox",_hasHydrated:false,addConversation:t=>e(e=>({conversations:{...e.conversations,[t.id]:t}})),updateConversation:(t,n)=>e(e=>e.conversations[t]?{conversations:{...e.conversations,[t]:{...e.conversations[t],...n,updatedAt:Date.now()}}}:e),deleteConversation:t=>e(e=>{const{[t]:n,...r}=e.conversations;return {conversations:r}}),moveToFolder:(t,n)=>e(e=>e.conversations[t]?{conversations:{...e.conversations,[t]:{...e.conversations[t],folderId:n,updatedAt:Date.now()}}}:e),togglePin:n=>{const r=t();if(!r.conversations[n])return  false;const o=!r.conversations[n].pinned;return e(e=>({conversations:{...e.conversations,[n]:{...e.conversations[n],pinned:o,updatedAt:Date.now()}}})),o},setConversationTags:(t,n)=>e(e=>{if(!e.conversations[t])return e;const r={...e.conversations[t]};return n.length>0?r.tagIds=n:delete r.tagIds,{conversations:{...e.conversations,[t]:r}}}),removeTagFromAll:t=>e(e=>{const n={};let r=false;for(const[o,a]of Object.entries(e.conversations))if(a.tagIds?.includes(t)){const e=a.tagIds.filter(e=>e!==t);n[o]={...a,tagIds:e.length>0?e:void 0},r=true;}else n[o]=a;return r?{conversations:n}:e}),moveConversationsToInbox:t=>e(e=>{const n={};let r=false;for(const[o,a]of Object.entries(e.conversations))a.folderId===t?(n[o]={...a,folderId:"inbox"},r=true):n[o]=a;return r?{conversations:n}:e}),setLastUsedFolderId:t=>e({lastUsedFolderId:t}),setHasHydrated:t=>e({_hasHydrated:t})}),{name:"conversations",storage:er(()=>xr),partialize:e=>({conversations:e.conversations,lastUsedFolderId:e.lastUsedFolderId}),onRehydrateStorage:()=>e=>{e?.setHasHydrated(true);}})),qo=()=>Bo.getState(),Uo=Object.freeze(Object.defineProperty({__proto__:null,getConversationsStore:qo,useConversationsStore:Bo},Symbol.toStringTag,{value:"Module"})),Ho=(e,t)=>{const n=(e||"").trim(),r=(t||"").trim();return r&&n.startsWith(r)?n.slice(r.length).trim():n},Wo=e=>({...e,name:Ho(e.name,e.icon)}),Ko=Yn()(nr((e,t)=>({folders:Mn,_hasHydrated:false,addFolder:(t,n)=>{const r={id:"folder_"+Date.now(),name:Ho(t,n),icon:n};return e(e=>({folders:[...e.folders,r]})),r},updateFolder:(t,n)=>e(e=>({folders:e.folders.map(e=>{if(e.id!==t)return e;const r={...e,...n};return {...r,name:Ho(r.name,r.icon)}})})),deleteFolder:t=>{"inbox"!==t&&e(e=>({folders:e.folders.filter(e=>e.id!==t)}));},moveFolder:(t,n)=>e(e=>{const r=e.folders.findIndex(e=>e.id===t);if(-1===r||0===r)return e;const o="up"===n?r-1:r+1;if(o<=0||o>=e.folders.length)return e;const a=[...e.folders];return [a[r],a[o]]=[a[o],a[r]],{folders:a}}),setHasHydrated:t=>e({_hasHydrated:t})}),{name:"folders",storage:er(()=>xr),partialize:e=>({folders:e.folders}),merge:(e,t)=>{const n=e;return n?.folders?{...t,...n,folders:(r=n.folders,r.map(Wo))}:t;var r;},onRehydrateStorage:()=>e=>{e?.setHasHydrated(true);}})),Vo=()=>Ko.getState(),Go=Object.freeze(Object.defineProperty({__proto__:null,getFoldersStore:Vo,useFoldersStore:Ko},Symbol.toStringTag,{value:"Module"})),Qo=Yn()(nr((e,t)=>({tags:[],_hasHydrated:false,addTag:(n,r)=>{if(t().tags.some(e=>e.name.toLowerCase()===n.toLowerCase()))return null;const o={id:"tag_"+Date.now()+"_"+Math.random().toString(36).substr(2,5),name:n,color:r};return e(e=>({tags:[...e.tags,o]})),o},updateTag:(n,r,o)=>{if(t().tags.some(e=>e.id!==n&&e.name.toLowerCase()===r.toLowerCase()))return null;let a=null;return e(e=>({tags:e.tags.map(e=>e.id===n?(a={...e,name:r,color:o},a):e)})),a},deleteTag:t=>e(e=>({tags:e.tags.filter(e=>e.id!==t)})),setHasHydrated:t=>e({_hasHydrated:t})}),{name:"tags",storage:er(()=>xr),partialize:e=>({tags:e.tags}),onRehydrateStorage:()=>e=>{e?.setHasHydrated(true);}})),Zo=()=>Qo.getState(),Jo=Object.freeze(Object.defineProperty({__proto__:null,getTagsStore:Zo,useTagsStore:Qo},Symbol.toStringTag,{value:"Module"}));class $o{siteAdapter;observerConfig=null;sidebarObserverStop=null;observerContainer=null;titleWatcher=null;pollInterval=null;geminiMigrationTimer=null;geminiMigrationRetryCount=0;syncUnpin=false;syncDelete=true;onChangeCallbacks=[];constructor(e){this.siteAdapter=e;}get folders(){return Vo().folders}get conversations(){return qo().conversations}get lastUsedFolderId(){return qo().lastUsedFolderId}get tags(){return Zo().tags}
         /**
            * 订阅数据变更事件
            * @returns 取消订阅函数
            */onDataChange(e){return this.onChangeCallbacks.push(e),()=>{this.onChangeCallbacks=this.onChangeCallbacks.filter(t=>t!==e);}}notifyDataChange(){this.onChangeCallbacks.forEach(e=>e());}async init(){await this.waitForHydration();"pending_email"===this.tryMigrateGeminiLegacyCidToEmail()&&this.startGeminiMigrationRetry();const e=await(vr||(vr=new Promise(e=>{"undefined"!=typeof chrome&&chrome.storage?.local?chrome.storage.local.get(yr,t=>{const n=t?.[yr];if(void 0===n)return void e(false);const r="number"==typeof n?n:Number(n);Number.isFinite(r)?Date.now()-r<=1e4?e(true):chrome.storage.local.remove(yr,()=>e(false)):e(true);}):e(false);}),vr));if(0===Object.keys(this.getAllConversations()).length&&this.siteAdapter.loadAllConversations&&!e)try{await this.waitForSidebarReady()&&await this.autoFullSync();}catch{}this.startSidebarObserver();}tryMigrateGeminiLegacyCidToEmail(){if(this.siteAdapter.getSiteId()!==zn.GEMINI)return "noop";const e=this.conversations,t=Object.entries(e).filter(([e,t])=>this.isGeminiConversation(t));if(0===t.length)return "noop";const n=t.filter(([e,t])=>this.isLegacyGeminiCid(t.cid));if(0===n.length)return "noop";const r=this.siteAdapter.getCurrentCid?.();if(!this.isEmailCid(r))return "pending_email";const o=this.getGeminiUserIndexFromPath(),a=n.some(([e,t])=>(t.cid||"0")===o),i=t.some(([e,t])=>t.cid===r),s=new Set(n.map(([e,t])=>t.cid||"0"));let l=null;if(a?l=o:i||1!==s.size||(l=Array.from(s)[0]),!l)return "noop";const c=n.filter(([e,t])=>(t.cid||"0")===l);if(0===c.length)return "noop";const d={...e},u=this.getGeminiUserPathPrefix();return c.forEach(([e,t])=>{d[e]={...t,cid:r,url:this.buildGeminiConversationUrl(e,u)};}),Bo.setState({conversations:d}),this.notifyDataChange(),console.warn(`[ConversationManager] Gemini legacy cid migrated: ${l} -> ${r}, updated ${c.length} conversations.`),"migrated"}startGeminiMigrationRetry(){if(this.siteAdapter.getSiteId()!==zn.GEMINI)return;if(this.geminiMigrationTimer)return;this.geminiMigrationRetryCount=0,this.geminiMigrationTimer=setInterval(()=>{const e=this.tryMigrateGeminiLegacyCidToEmail();this.geminiMigrationRetryCount+=1,("pending_email"!==e||this.geminiMigrationRetryCount>=120)&&this.stopGeminiMigrationRetry();},1500);}stopGeminiMigrationRetry(){this.geminiMigrationTimer&&(clearInterval(this.geminiMigrationTimer),this.geminiMigrationTimer=null),this.geminiMigrationRetryCount=0;}isEmailCid(e){return "string"==typeof e&&e.includes("@")}isLegacyGeminiCid(e){return !e||/^\d+$/.test(e)}getGeminiUserIndexFromPath(){const e=window.location.pathname.match(/^\/u\/(\d+)(?:\/|$)/);return e?e[1]:"0"}getGeminiUserPathPrefix(){const e=window.location.pathname.match(/^\/u\/(\d+)(?:\/|$)/);return e?`/u/${e[1]}`:""}isGeminiConversation(e){return e.siteId===zn.GEMINI||(!e.siteId||e.siteId===zn.GEMINI)&&("string"==typeof e.url&&e.url.includes("gemini.google.com"))}buildGeminiConversationUrl(e,t){return `https://gemini.google.com${t}/app/${e}`}async waitForHydration(){const e=[Ko,Qo,Bo];await Promise.all(e.map(e=>new Promise(t=>{if(e.getState()._hasHydrated)return void t();const n=e.subscribe(e=>{e._hasHydrated&&(n(),t());});})));}async waitForSidebarReady(e=1e4){const t=Date.now();for(;Date.now()-t<e;){if(this.siteAdapter.getSidebarScrollContainer())return  true;await new Promise(e=>setTimeout(e,250));}return  false}async autoFullSync(){await this.siteAdapter.loadAllConversations(),await new Promise(e=>setTimeout(e,400));let e=0,t=this.siteAdapter.getConversationList().length;for(let n=0;n<10;n++){if(n>0){const e=this.siteAdapter.getSidebarScrollContainer();if(!e)break;const t=e;t.scrollTop=t.scrollHeight,await new Promise(e=>setTimeout(e,400));}const{newCount:r,updatedCount:o}=this.syncConversations(null,true);(r>0||o>0)&&this.notifyDataChange(),await new Promise(e=>setTimeout(e,300));const a=this.siteAdapter.getConversationList().length;if(r>0||a>t?(t=Math.max(t,a),e=0):e++,e>=2)break}}destroy(){this.stopGeminiMigrationRetry(),this.stopSidebarObserver();}updateSettings(e){this.syncUnpin=e.syncUnpin,"boolean"==typeof e.syncDelete&&(this.syncDelete=e.syncDelete);}startSidebarObserver(){if(this.sidebarObserverStop)return;const e=this.siteAdapter.getConversationObserverConfig();if(!e)return;this.observerConfig=e;const t=(n=0)=>{const r=this.siteAdapter.getSidebarScrollContainer()||document;if(e.shadow&&n<5){if(!this.siteAdapter.getSidebarScrollContainer())return void setTimeout(()=>t(n+1),1e3)}this.observerContainer=r,this.sidebarObserverStop=Nr.each(e.selector,(t,n)=>{this.handleObservedElement(t,n,e);},{parent:r,shadow:e.shadow});};t(),e.shadow&&this.startPolling();}stopSidebarObserver(){this.sidebarObserverStop&&(this.sidebarObserverStop(),this.sidebarObserverStop=null),this.observerContainer=null,this.titleWatcher&&("function"==typeof this.titleWatcher.stop&&this.titleWatcher.stop(),this.titleWatcher=null),this.stopPolling();}handleObservedElement(e,t,n){const r=(o=5)=>{const a=n.extractInfo(e);a?.id?(this.updateConversationFromObservation(a,t),this.monitorConversationTitle(e,a.id)):o>0&&setTimeout(()=>r(o-1),500);};r();}updateConversationFromObservation(e,t){const n=this.conversations[e.id];t&&!n?(qo().addConversation({id:e.id,siteId:this.siteAdapter.getSiteId(),cid:e.cid,title:e.title,url:e.url,folderId:this.lastUsedFolderId,pinned:e.isPinned||false,createdAt:Date.now(),updatedAt:Date.now()}),this.notifyDataChange()):n&&void 0!==e.isPinned&&e.isPinned!==n.pinned&&(e.isPinned?(qo().updateConversation(e.id,{pinned:true}),this.notifyDataChange()):!e.isPinned&&this.syncUnpin&&(qo().updateConversation(e.id,{pinned:false}),this.notifyDataChange()));}startPolling(){this.pollInterval||(this.pollInterval=setInterval(()=>{if(!this.observerConfig)return;const e=this.observerConfig,t=Nr.query(e.selector,{all:true,shadow:e.shadow});Array.isArray(t)&&t.forEach(t=>{const n=e.extractInfo(t);if(!n?.id)return;const r=this.conversations[n.id];r?n.title&&n.title!==r.title&&(qo().updateConversation(n.id,{title:n.title}),this.notifyDataChange()):(this.updateConversationFromObservation(n,true),this.monitorConversationTitle(t,n.id));});},3e3));}stopPolling(){this.pollInterval&&(clearInterval(this.pollInterval),this.pollInterval=null);}monitorConversationTitle(e,t){if(!e.dataset.ghTitleObserver){if(e.dataset.ghTitleObserver="true",!this.titleWatcher){const e=this.siteAdapter.getSidebarScrollContainer()||document.body;this.titleWatcher=Nr.watchMultiple(e,{debounce:500});}this.titleWatcher.add(e,()=>{const n=this.observerConfig;if(!n)return;const r=n.extractInfo(e),o=r?.id;if(!o||o!==t)return;const a=this.conversations[t];if(!a)return;let i=false;const s={};r.title&&r.title!==a.title&&(s.title=r.title,i=true),void 0!==r.isPinned&&r.isPinned!==a.pinned&&(r.isPinned?(s.pinned=true,i=true):!r.isPinned&&this.syncUnpin&&(s.pinned=false,i=true)),i&&(qo().updateConversation(t,s),this.notifyDataChange());});}}getFolders(){return this.folders}getConversations(e){const t=this.siteAdapter.getCurrentCid?.()||null;let n=Object.values(this.conversations).filter(e=>this.matchesCid(e,t));return e&&(n=n.filter(t=>t.folderId===e)),n}createFolder(e,t){return Vo().addFolder(e,t)}updateFolder(e,t){Vo().updateFolder(e,t);}deleteFolder(e){"inbox"!==e&&(qo().moveConversationsToInbox(e),Vo().deleteFolder(e));}moveFolder(e,t){Vo().moveFolder(e,t);}async deleteConversation(e){const t=await this.deleteConversations([e]);return t.results.length>0?t.results[0]:{id:e,localDeleted:false,remoteEnabled:this.syncDelete,remoteAttempted:false,remoteSuccess:false,remoteMethod:"none",reason:"not_found"}}async deleteConversations(e){const t=Array.from(new Set(e.filter(Boolean)));if(0===t.length)return {total:0,localDeletedCount:0,remoteAttemptedCount:0,remoteSuccessCount:0,remoteFailedCount:0,failedIds:[],results:[]};const n=t.map(e=>{const t=this.conversations[e];return t?t.siteId&&t.siteId!==this.siteAdapter.getSiteId()?null:{id:t.id,title:t.title,url:t.url}:null}).filter(e=>Boolean(e)),r=new Map;if(this.syncDelete&&n.length>0)try{(await this.siteAdapter.deleteConversationsOnSite(n)).forEach(e=>{r.set(e.id,e);});}catch(c){console.error(`[ConversationManager] deleteConversationsOnSite failed on ${this.siteAdapter.getName()}:`,c);const e=c instanceof Error&&c.message||"remote_delete_failed";n.forEach(t=>{r.set(t.id,{id:t.id,success:false,method:"api",reason:e});});}let o=0,a=0,i=0,s=0;const l=[];return t.forEach(e=>{const t=Boolean(this.conversations[e]),n=this.syncDelete,c=r.get(e),d=c?.method||"none",u=n&&r.has(e)&&"none"!==d,h=u&&(c?.success||false);u&&(a++,h?i++:s++),t&&(qo().deleteConversation(e),o++),l.push({id:e,localDeleted:t,remoteEnabled:n,remoteAttempted:u,remoteSuccess:h,remoteMethod:d,reason:c?.reason||(t?void 0:"not_found")});}),o>0&&this.notifyDataChange(),{total:t.length,localDeletedCount:o,remoteAttemptedCount:a,remoteSuccessCount:i,remoteFailedCount:s,failedIds:l.filter(e=>!e.localDeleted).map(e=>e.id),results:l}}moveConversation(e,t){qo().moveToFolder(e,t);}setLastUsedFolder(e){qo().setLastUsedFolderId(e);}getTags(){return this.tags}createTag(e,t){return Zo().addTag(e,t)}updateTag(e,t,n){return Zo().updateTag(e,t,n)}deleteTag(e){Zo().deleteTag(e),qo().removeTagFromAll(e);}setConversationTags(e,t){qo().setConversationTags(e,t);}togglePin(e){return qo().togglePin(e)}renameConversation(e,t){t&&qo().updateConversation(e,{title:t});}updateConversation(e,t){qo().updateConversation(e,t);}getConversation(e){return this.conversations[e]}getLastUsedFolderId(){return this.lastUsedFolderId}getAllConversations(){const e=this.siteAdapter.getCurrentCid?.()||null,t={};for(const[n,r]of Object.entries(this.conversations))this.matchesCid(r,e)&&(t[n]=r);return t}syncConversations(e=null,t=false){const n=this.siteAdapter.getConversationList();if(!n||0===n.length)return {newCount:0,updatedCount:0};const r=this.conversations;let o=0,a=0;const i=Date.now(),s=e||this.lastUsedFolderId||"inbox",l=qo();return n.forEach(e=>{const t=e.id,n=r[t];if(n){const r={};let o=false;n.title!==e.title&&(r.title=e.title,o=true,a++),e.isPinned&&!n.pinned?(r.pinned=true,o=true,a++):!e.isPinned&&n.pinned&&this.syncUnpin&&(r.pinned=false,o=true,a++),n.siteId||(r.siteId=this.siteAdapter.getSiteId()),e.cid&&!n.cid&&(r.cid=e.cid),o&&l.updateConversation(t,r);}else l.addConversation({id:e.id,siteId:this.siteAdapter.getSiteId(),cid:e.cid,title:e.title,url:e.url,folderId:s,pinned:e.isPinned||false,createdAt:i,updatedAt:i}),o++;}),e&&l.setLastUsedFolderId(e),{newCount:o,updatedCount:a}}matchesCid(e,t){const n=this.siteAdapter.getSiteId();return (!e.siteId||e.siteId===n)&&(t?!e.cid||e.cid===t:!e.cid)}getSidebarConversationOrder(){const e=this.siteAdapter.getConversationObserverConfig?.();if(!e)return [];const t=Nr.query(e.selector,{all:true,shadow:e.shadow});return Array.from(t||[]).map(t=>e.extractInfo?.(t)?.id).filter(e=>Boolean(e))}formatTime(e){if(!e)return "";const t=new Date(e),n=(new Date).getTime()-t.getTime();return n<6e4?En("justNow"):n<36e5?Math.floor(n/6e4)+En("minutesAgo"):n<864e5?Math.floor(n/36e5)+En("hoursAgo"):n<6048e5?Math.floor(n/864e5)+En("daysAgo"):t.toLocaleDateString()}async exportConversation(e,t){const n=this.conversations[e];if(!n)return console.error("[ConversationManager] Conversation not found:",e),false;if(this.siteAdapter.getSessionId()!==e)return Yr(En("exportNeedOpenFirst")),false;const r=this.siteAdapter.getScrollContainer?.()||null,o=r?.scrollTop??null,a=window.scrollY,i=wr.getState().settings,s={conversationId:e,format:t,includeThoughts:i.export?.includeThoughts??true};let l=false,c=null;try{if(r){let e=0,t=0;const n=50;for(;t<n;){r.scrollTop=0,await new Promise(e=>setTimeout(e,500));const n=r.scrollHeight;if(n===e){if(t++,t>=3)break}else t=0,e=n;}}l=!0,c=await this.siteAdapter.prepareConversationExport(s);const e=this.extractConversationMessages();if(0===e.length)return console.error("[ConversationManager] No messages found"),!1;const o=(n.title||"conversation").replace(/[<>:"/\\|?*]/g,"_").substring(0,50),a=(d=n.title||"未命名",u=this.siteAdapter.getName(),h=n.id,g={customUserName:i.export?.customUserName,customModelName:i.export?.customModelName},{title:d,id:h,url:window.location.href,exportTime:(new Date).toLocaleString(),source:u,customUserName:g?.customUserName,customModelName:g?.customModelName});let p,m,f,b="";if(i.export?.exportFilenameTimestamp){const e=new Date,t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0"),o=String(e.getHours()).padStart(2,"0"),a=String(e.getMinutes()).padStart(2,"0");b=`_${t}-${n}-${r}_${o}-${a}-${String(e.getSeconds()).padStart(2,"0")}`;}const y=this.siteAdapter.getName(),v=`${y.replace(/[<>:"/\\|?*]/g,"_")} - `;return "clipboard"===t?(p=io(a,e),await navigator.clipboard.writeText(p),Yr(En("copySuccess")),!0):("markdown"===t?(p=function(e){return e?e.startsWith("\ufeff")?e:`\ufeff${e}`:"\ufeff"}(io(a,e)),m=`${v}${o}${b}.md`,f="text/markdown;charset=utf-8"):"json"===t?(p=function(e,t){const n={metadata:{title:e.title,id:e.id,url:e.url,exportTime:e.exportTime,source:e.source},messages:t.map(e=>({role:e.role,content:e.content}))};return JSON.stringify(n,null,2)}(a,e),m=`${v}${o}${b}.json`,f="application/json;charset=utf-8"):(p=function(e,t){const n=[];return n.push(`${En("exportMetaConvTitle")}: ${e.title}`),n.push(`${En("exportMetaTime")}: ${e.exportTime}`),n.push(`${En("exportMetaSource")}: ${e.source}`),n.push(`${En("exportMetaUrl")}: ${e.url}`),n.push(""),n.push("=".repeat(50)),n.push(""),t.forEach(t=>{if("user"===t.role){const t=e.customUserName||En("exportUserLabel");n.push(`[${t}]`);}else {const t=e.customModelName||e.source;n.push(`[${t}]`);}n.push(t.content),n.push(""),n.push("-".repeat(50)),n.push("");}),n.join("\n")}(a,e),m=`${v}${o}${b}.txt`,f="text/plain;charset=utf-8"),await async function(e,t,n="text/plain;charset=utf-8"){try{const r=new Blob([e],{type:n}),o=URL.createObjectURL(r),a=document.createElement("a");return a.href=o,a.download=t,a.click(),URL.revokeObjectURL(o),!0}catch(r){return console.error("[Exporter] Download failed:",r),Yr("下载失败: "+(r instanceof Error?r.message:String(r))),!1}}(p,m,f),Yr(En("exportSuccess")),!0)}catch(p){return console.error("[ConversationManager] Export failed:",p),false}finally{if(l)try{await this.siteAdapter.restoreConversationAfterExport(s,c);}catch(m){console.warn("[ConversationManager] Export state restore failed:",m);}r&&null!==o?r.scrollTop=o:window.scrollTo({top:a,behavior:"auto"});}var d,u,h,g;}extractConversationMessages(){const e=[],t=this.siteAdapter.getExportConfig?.();if(!t)return console.warn("[ConversationManager] Export config not available"),e;const{userQuerySelector:n,assistantResponseSelector:r,useShadowDOM:o}=t,a=Nr.query(n,{all:true,shadow:o})||[],i=Nr.query(r,{all:true,shadow:o})||[],s=Math.max(a.length,i.length);for(let l=0;l<s;l++){if(a[l]){const t=this.siteAdapter.extractUserQueryText(a[l]);e.push({role:"user",content:t});}if(i[l]){const t=this.siteAdapter.extractAssistantResponseText,n=Mr.prototype.extractAssistantResponseText;let r="";t&&t!==n&&(r=t.call(this.siteAdapter,i[l])),r||(r=ao(i[l])||i[l].textContent?.trim()||""),e.push({role:"assistant",content:r});}}return e}}const Xo={getItem:async e=>{const t=await xr.getItem("bookmarks");return t?JSON.stringify({state:{bookmarks:JSON.parse(t)},version:0}):null},setItem:async(e,t)=>{const n=JSON.parse(t),r=n.state?.bookmarks||[];await xr.setItem("bookmarks",JSON.stringify(r));},removeItem:async e=>{await xr.removeItem("bookmarks");}},Yo=Yn()(nr((e,t)=>({bookmarks:[],addBookmark:(t,n,r,o,a,i)=>{const s={id:crypto.randomUUID(),sessionId:t,siteId:n,cid:r,title:o.text,level:o.level,signature:a,scrollTop:i,timestamp:Date.now()};e(e=>({bookmarks:[...e.bookmarks,s]}));},removeBookmark:t=>{e(e=>({bookmarks:e.bookmarks.filter(e=>e.id!==t)}));},updateBookmark:(t,n)=>{e(e=>({bookmarks:e.bookmarks.map(e=>e.id===t?{...e,...n}:e)}));},toggleBookmark:(e,n,r,o,a,i)=>{const s=t(),l=s.getBookmarkId(e,a);l?s.removeBookmark(l):s.addBookmark(e,n,r,o,a,i);},getBookmarksBySession:e=>t().bookmarks.filter(t=>t.sessionId===e),getBookmarkId:(e,n)=>{const r=t().bookmarks.find(t=>t.sessionId===e&&t.signature===n);return r?r.id:null},clearSessionBookmarks:t=>{e(e=>({bookmarks:e.bookmarks.filter(e=>e.sessionId!==t)}));},clearAllBookmarks:()=>{e({bookmarks:[]});}}),{name:"bookmarks",storage:er(()=>Xo)})),ea="http://www.w3.org/2000/svg";function ta(e,t={}){const n=document.createElementNS(ea,e);for(const[r,o]of Object.entries(t))n.setAttribute(r,o);return n}function na(e={}){const{size:t=16,color:n="currentColor",className:r=""}=e,o=ta("svg",{xmlns:ea,width:t.toString(),height:t.toString(),viewBox:"0 0 24 24",fill:"none",stroke:n,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",...r?{class:r}:{}}),a=ta("rect",{x:"9",y:"9",width:"13",height:"13",rx:"2",ry:"2"}),i=ta("path",{d:"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"});return o.appendChild(a),o.appendChild(i),o}function ra(e,t={}){for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(function(e={}){const{size:t=16,color:n="currentColor",className:r=""}=e,o=ta("svg",{xmlns:ea,width:t.toString(),height:t.toString(),viewBox:"0 0 24 24",fill:"none",stroke:n,"stroke-width":"2.5","stroke-linecap":"round","stroke-linejoin":"round",...r?{class:r}:{}}),a=ta("polyline",{points:"20 6 9 17 4 12"});return o.appendChild(a),o}({...t,color:"#22c55e"})),setTimeout(()=>{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(na(t));},1500);}function oa(e,t={}){e.querySelectorAll(".gh-code-copy-btn, .gh-table-copy-btn").forEach(e=>{if(!e.querySelector("svg")){for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(na(t));}});}const aa="gh-inline-bookmark",ia="gh-inline-bookmark--bookmarked",sa="gh-inline-bookmark-global-styles",la="gh-inline-bookmark-scoped-styles";class ca{outlineManager;adapter;displayMode="always";unsubscribe=null;unsubscribeBookmarks=null;injectedElements=new WeakSet;injectedRoots=new WeakSet;constructor(e,t,n="always"){this.outlineManager=e,this.adapter=t,this.displayMode=n,this.injectGlobalStyles(),this.unsubscribe=e.subscribe(()=>{this.injectBookmarkIcons();}),this.unsubscribeBookmarks=Yo.subscribe(()=>{this.updateAllIconStates();}),this.injectBookmarkIcons(),this.setDisplayMode(n);}injectGlobalStyles(){if(document.getElementById(sa))return;const e=document.createElement("style");e.id=sa,e.textContent="\n      :root {\n        --gh-icon-display: flex;\n        --gh-icon-opacity-default: 0.3;\n        --gh-icon-opacity-parent-hover: 0.5;\n      }\n\n      body.gh-inline-bookmark-mode-always {\n        --gh-icon-display: flex;\n        --gh-icon-opacity-default: 0.3;\n        --gh-icon-opacity-parent-hover: 0.3;\n      }\n\n      body.gh-inline-bookmark-mode-hover {\n        --gh-icon-display: flex;\n        --gh-icon-opacity-default: 0; /* 默认隐藏 */\n        --gh-icon-opacity-parent-hover: 0.5; /* 父元素悬停时显示 */\n      }\n\n      body.gh-inline-bookmark-mode-hidden {\n        --gh-icon-display: none;\n        --gh-icon-opacity-default: 0;\n      }\n    ",document.head.appendChild(e);}injectScopedStyles(e){if(this.injectedRoots.has(e))return;if(e instanceof Document){if(document.getElementById(la))return void this.injectedRoots.add(e)}else if(e.querySelector(`#${la}`))return void this.injectedRoots.add(e);const t=document.createElement("style");t.id=la,t.textContent=`\n      .${aa} {\n        position: absolute;\n        left: var(--gh-icon-left, -24px); /* 支持通过 CSS 变量调整位置 */\n        top: 50%;\n        transform: translateY(-50%);\n        cursor: pointer;\n        transition: opacity 0.2s, transform 0.2s;\n        align-items: center;\n        justify-content: center;\n        width: 20px;\n        height: 20px;\n        z-index: 10;\n        color: var(--gh-primary, #f59e0b);\n\n        /* 使用 CSS 变量控制显示 */\n        display: var(--gh-icon-display, flex);\n        opacity: var(--gh-icon-opacity-default, 0.3);\n      }\n\n      /* Hover Effects depend on local structure, so must be in scoped css */\n      .${aa}:hover {\n        opacity: 1 !important;\n        transform: translateY(-50%) scale(1.1);\n      }\n\n      .${aa}.${ia} {\n        opacity: 1 !important;\n      }\n\n      /* Parent Hover Effect */\n      .gh-has-inline-bookmark:hover .${aa}:not(.${ia}) {\n        opacity: var(--gh-icon-opacity-parent-hover, 0.5);\n      }\n\n      /* Ensure parent relative positioning */\n      .gh-has-inline-bookmark {\n        position: relative !important;\n      }\n    `,e instanceof Document?document.head.appendChild(t):e.appendChild(t),this.injectedRoots.add(e);}setDisplayMode(e){this.displayMode=e,document.body.classList.remove("gh-inline-bookmark-mode-always","gh-inline-bookmark-mode-hover","gh-inline-bookmark-mode-hidden"),document.body.classList.add(`gh-inline-bookmark-mode-${e}`);}injectBookmarkIcons(){const e=this.outlineManager.getFlatItems(),t=this.adapter.getSessionId(),n=Yo.getState();for(let r=0;r<e.length;r++){const o=e[r];if(!o.element||!o.element.isConnected)continue;const a=o.element,i=a.getRootNode();if(i&&this.injectScopedStyles(i),this.injectedElements.has(a))continue;if(a.querySelector(`.${aa}`)){this.injectedElements.add(a);continue}a.classList.add("gh-has-inline-bookmark");const s=document.createElement("span");s.className=aa;const l=this.outlineManager.getSignature(o),c=null!==n.getBookmarkId(t,l);c&&s.classList.add(ia),s.replaceChildren(this.createStarSvgElement(c)),s.dataset.signature=l,s.dataset.level=String(o.level),s.dataset.text=o.text,s.addEventListener("click",e=>{e.stopPropagation(),e.preventDefault(),this.handleBookmarkClick(o,l,s);}),a.insertBefore(s,a.firstChild),this.injectedElements.add(a);}}createStarSvgElement(e){const t=ta("svg",{viewBox:"0 0 24 24",width:"16",height:"16",fill:e?"#f59e0b":"none",stroke:e?"#f59e0b":"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"}),n=ta("polygon",{points:"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2"});return t.appendChild(n),t}handleBookmarkClick(e,t,n){const r=Yo.getState(),o=this.adapter.getSessionId(),a=this.adapter.getSiteId(),i=this.adapter.getCurrentCid()||"",s=this.outlineManager.getScrollContainer(),l=e.element.offsetTop+(s?.scrollTop||0);r.toggleBookmark(o,a,i,e,t,l);}updateAllIconStates(){const e=Yo.getState(),t=this.adapter.getSessionId();Nr.query(`.${aa}`,{all:true,shadow:true}).forEach(n=>{const r=n,o=r.dataset.signature;if(!o)return;const a=null!==e.getBookmarkId(t,o);a!==r.classList.contains(ia)&&(a?(r.classList.add(ia),r.replaceChildren(this.createStarSvgElement(true))):(r.classList.remove(ia),r.replaceChildren(this.createStarSvgElement(false))));});}cleanup(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null),this.unsubscribeBookmarks&&(this.unsubscribeBookmarks(),this.unsubscribeBookmarks=null),document.getElementById(sa)?.remove(),document.getElementById(la)?.remove();Nr.query(`#${la}`,{all:true,shadow:true}).forEach(e=>e.remove());Nr.query(`.${aa}`,{all:true,shadow:true}).forEach(e=>e.remove());Nr.query(".gh-has-inline-bookmark",{all:true,shadow:true}).forEach(e=>{e.classList.remove("gh-has-inline-bookmark");}),document.body.classList.remove("gh-inline-bookmark-mode-always","gh-inline-bookmark-mode-hover","gh-inline-bookmark-mode-hidden"),this.injectedElements=new WeakSet,this.injectedRoots=new WeakSet;}}class da{siteAdapter;settings;tree=[];flatItems=[];flatNodes=[];scrollNodes=[];scrollPositions=[];scrollHeights=[];scrollPositionsStale=true;minLevel=1;treeKey="";listeners=[];updateIntervalId=null;isAutoUpdating=false;expandLevel=6;levelCounts={};isAllExpanded=false;searchQuery="";preSearchState=null;preSearchExpandLevel=null;searchLevelManual=false;matchCount=0;bookmarkMode=false;preBookmarkModeState=null;ghostBookmarkIds=new Set;wasGenerating=false;postGenerationScheduled=false;lastTreeChangeTime=0;fallbackRefreshTimer=null;static FALLBACK_DELAY=3e3;isActive=false;isRefreshing=false;unsubscribeBookmarks=null;onExpandLevelChange;onShowUserQueriesChange;constructor(e,t,n,r){this.siteAdapter=e,this.settings=t,this.onExpandLevelChange=n,this.onShowUserQueriesChange=r,this.expandLevel=t.expandLevel??6,window.addEventListener("message",this.handleMessage.bind(this)),this.unsubscribeBookmarks=Yo.subscribe(()=>{this.isActive&&this.refresh();});}setActive(e){this.isActive=e,this.updateAutoUpdateState();}updateAutoUpdateState(){const e=this.settings.enabled&&this.settings.autoUpdate&&this.isActive;e&&!this.isAutoUpdating?this.startAutoUpdate():!e&&this.isAutoUpdating&&this.stopAutoUpdate();}updateSettings(e){this.settings=e,void 0!==e.expandLevel&&(this.expandLevel=e.expandLevel),this.refresh(),this.updateAutoUpdateState();}observer=null;updateDebounceTimer=null;handleMessage(e){if(e.source!==window)return;const{type:t}=e.data||{};"GH_MONITOR_START"===t?this.settings.autoUpdate&&this.startAutoUpdate():"GH_MONITOR_COMPLETE"===t&&(this.stopAutoUpdate(),this.refresh());}startAutoUpdate(){this.observer||(this.isAutoUpdating=true,this.observer=new MutationObserver(()=>{this.triggerAutoUpdate();}),this.observer.observe(document.body,{childList:true,subtree:true,characterData:true}));}stopAutoUpdate(){this.observer&&(this.observer.disconnect(),this.observer=null),this.updateDebounceTimer&&(clearTimeout(this.updateDebounceTimer),this.updateDebounceTimer=null),this.isAutoUpdating=false;}triggerAutoUpdate(){const e=1e3*(this.settings.updateInterval||2);this.updateDebounceTimer||(this.updateDebounceTimer=setTimeout(()=>{this.executeAutoUpdate();},e));}executeAutoUpdate(){this.updateDebounceTimer&&(clearTimeout(this.updateDebounceTimer),this.updateDebounceTimer=null);const e=this.siteAdapter.isGenerating();!this.wasGenerating||e||this.postGenerationScheduled||(this.postGenerationScheduled=true,setTimeout(()=>{this.postGenerationScheduled=false,this.treeKey="",this.refresh();},500)),this.wasGenerating=e;const t=this.treeKey;this.refresh(),this.treeKey!==t&&(this.lastTreeChangeTime=Date.now(),this.fallbackRefreshTimer&&clearTimeout(this.fallbackRefreshTimer),this.fallbackRefreshTimer=setTimeout(()=>{this.fallbackRefreshTimer=null,Date.now()-this.lastTreeChangeTime>=da.FALLBACK_DELAY-100&&(this.treeKey="",this.refresh());},da.FALLBACK_DELAY));}subscribe(e){return this.listeners.push(e),()=>{this.listeners=this.listeners.filter(t=>t!==e);}}notify(){this.listeners.forEach(e=>e());}getTree(){return this.tree}getFlatItems(){return this.flatItems}getSignature(e){return this.generateSignature(e)}getSearchQuery(){return this.searchQuery}getScrollContainer(){return this.siteAdapter.getScrollContainer()}markScrollPositionsStale(){this.scrollPositionsStale=true;}setBookmarkMode(e){e&&!this.bookmarkMode?(this.preBookmarkModeState=this.saveTreeCollapsedState(this.tree),this.collapseAllExpandedState(this.tree),this.expandBookmarkPaths(this.tree)):!e&&this.bookmarkMode&&this.preBookmarkModeState&&(this.restoreTreeCollapsedState(this.tree,this.preBookmarkModeState),this.preBookmarkModeState=null),this.bookmarkMode=e,this.searchQuery&&this.performSearch(this.searchQuery),this.notify();}toggleBookmarkMode(){this.setBookmarkMode(!this.bookmarkMode);}getBookmarkMode(){return this.bookmarkMode}saveTreeCollapsedState(e){const t={},n=(e,r)=>{const o=`${r}/${e.level}-${e.text}`;t[o]=e.collapsed,e.children.forEach((e,t)=>n(e,`${o}/${t}`));};return e.forEach((e,t)=>n(e,`root/${t}`)),t}restoreTreeCollapsedState(e,t){const n=(e,r)=>{const o=`${r}/${e.level}-${e.text}`;o in t&&(e.collapsed=t[o]),e.children.forEach((e,t)=>n(e,`${o}/${t}`));};e.forEach((e,t)=>n(e,`root/${t}`));}collapseAllExpandedState(e){e.forEach(e=>{e.collapsed=true,e.children.length>0&&this.collapseAllExpandedState(e.children);});}expandBookmarkPaths(e){let t=false;return e.forEach(e=>{let n=false;e.children.length>0&&(n=this.expandBookmarkPaths(e.children)),n&&(e.collapsed=false),(e.isBookmarked||n)&&(t=true);}),t}extractUserQueryText(e){return this.siteAdapter.extractUserQueryText(e)}findElementByHeading(e,t){return this.siteAdapter.findElementByHeading(e,t)}
         /**
            * 根据 queryIndex 和文本查找用户提问元素
            * 用于大纲跳转时元素失效后的重新查找
            * @param queryIndex 用户提问的序号(从 1 开始)
            * @param text 用户提问文本(用于验证和回退搜索)
            */findUserQueryElement(e,t){return this.siteAdapter.findUserQueryElement(e,t)}getState(){const e=this.settings.showUserQueries?0:1;let t;t=this.searchQuery&&!this.searchLevelManual?100:this.expandLevel??6;const n=this.settings.showUserQueries?0:1;return t<n&&(t=n),{tree:this.tree,expandLevel:this.expandLevel,levelCounts:this.levelCounts,isAllExpanded:this.isAllExpanded,includeUserQueries:this.settings.showUserQueries,minRelativeLevel:e,displayLevel:t,searchLevelManual:this.searchLevelManual,matchCount:this.matchCount,bookmarkMode:this.bookmarkMode}}getGhostBookmarkIds(){return Array.from(this.ghostBookmarkIds)}clearGhostBookmarks(){const e=this.getGhostBookmarkIds();if(0===e.length)return 0;const t=Yo.getState();return e.forEach(e=>t.removeBookmark(e)),this.ghostBookmarkIds.clear(),this.refresh(),e.length}generateSignature(e){if(e.id)return e.id;let t="";if(e.context)t=e.context;else try{e.element?.nextElementSibling&&(t=(e.element.nextElementSibling.textContent||"").trim().substring(0,50));}catch{}return `${e.text}::${t}`}toggleBookmark(e){const t=this.siteAdapter.getSessionId(),n=this.siteAdapter.getSiteId(),r=this.siteAdapter.getCurrentCid()||"",o=this.generateSignature(e);let a=0;e.element instanceof HTMLElement?a=e.element.offsetTop:void 0!==e.scrollTop&&(a=e.scrollTop);const i=Yo.getState(),s=i.getBookmarkId(t,o);s?(i.removeBookmark(s),e.isBookmarked=false,e.bookmarkId=void 0):(i.addBookmark(t,n,r,e,o,a),e.isBookmarked=true,e.bookmarkId=i.getBookmarkId(t,o)||void 0),this.notify();}refresh(e){if(this.settings.enabled&&!this.isRefreshing){this.isRefreshing=true;try{this._doRefresh(e);}finally{this.isRefreshing=false;}}}_doRefresh(e){const t=wr.getState().settings,n=t?.features?.outline?.showWordCount??false;let r=this.siteAdapter.extractOutline(this.settings.maxLevel,this.settings.showUserQueries,n);const o=this.siteAdapter.getSessionId(),a=Yo.getState().getBookmarksBySession(o);if(this.ghostBookmarkIds=new Set,a.length>0){const e=new Set(a.map(e=>e.id));r.forEach(t=>{const n=this.generateSignature(t),r=a.find(e=>e.signature===n&&e.title===t.text);r&&(t.isBookmarked=true,t.bookmarkId=r.id,e.delete(r.id));});const t={},n={};e.forEach(e=>{const n=a.find(t=>t.id===e);n&&(t[n.title]||(t[n.title]=[]),t[n.title].push(n.id));}),r.forEach(e=>{e.isBookmarked||(n[e.text]||(n[e.text]=[]),n[e.text].push(e));});const o=Yo.getState();Object.keys(t).forEach(r=>{const a=t[r],i=n[r];if(a&&i&&1===a.length&&1===i.length){const t=a[0],n=i[0],r=this.generateSignature(n);o.updateBookmark(t,{signature:r}),n.isBookmarked=true,n.bookmarkId=t,e.delete(t);}}),this.ghostBookmarkIds=new Set(e);const i=[];if(e.forEach(e=>{const t=a.find(t=>t.id===e);if(t){if(0===t.level&&!this.settings.showUserQueries)return;i.push({level:t.level,text:t.title,element:null,isUserQuery:0===t.level,isBookmarked:true,isGhost:true,bookmarkId:t.id,scrollTop:t.scrollTop});}}),i.length>0){const e=e=>e.isGhost?e.scrollTop:e.element instanceof HTMLElement?e.element.offsetTop:0;r=[...r,...i].sort((t,n)=>e(t)-e(n));}}if(0===r.length)return void(this.tree.length>0&&(this.tree=[],this.flatNodes=[],this.scrollNodes=[],this.scrollPositions=[],this.scrollHeights=[],this.scrollPositionsStale=true,this.notify()));this.levelCounts={},r.forEach(e=>{this.levelCounts[e.level]=(this.levelCounts[e.level]||0)+1;});const i=r.filter(e=>!e.isUserQuery).map(e=>e.level);this.minLevel=i.length>0?Math.min(...i):1;const s=n?"wc:1":"wc:0",l=this.siteAdapter.getSessionId()||"no-session",c="undefined"!=typeof window?window.location.pathname:"",d=`${this.siteAdapter.getSiteId()}:${l}:${c}`+"|"+s+"|"+r.map(e=>`${e.text}:${e.isBookmarked}`).join("|"),u={};if(this.tree.length>0&&this.captureTreeState(this.tree,u),this.treeKey===d&&0!==this.tree.length&&void 0===e)return void(this.scrollPositionsStale=true);this.tree=this.buildTree(r,this.minLevel),this.treeKey=d,this.flatItems=r,this.flatNodes=this.flattenTree(this.tree),this.updateScrollPositions();const h=void 0!==e?e:this.expandLevel??6;this.expandLevel=h;const g=this.settings.showUserQueries?0:1,p=h<g?g:h;this.initializeCollapsedState(this.tree,p),void 0===e&&Object.keys(u).length>0&&this.restoreTreeState(this.tree,u),this.searchQuery&&this.performSearch(this.searchQuery),this.bookmarkMode&&this.expandBookmarkPaths(this.tree);const m=Math.max(...Object.keys(this.levelCounts).map(Number),1);this.isAllExpanded=this.expandLevel>=m,this.notify();}buildTree(e,t){const n=[],r=[];let o=0;return e.forEach((e,a)=>{const i=e.isUserQuery?0:e.level-t+1;let s;e.isUserQuery&&(o++,s=o);const l={...e,relativeLevel:i,index:a,queryIndex:s,children:[],collapsed:false},c=e;for(c.isBookmarked&&(l.isBookmarked=true),c.isGhost&&(l.isGhost=true),c.bookmarkId&&(l.bookmarkId=c.bookmarkId);r.length>0&&r[r.length-1].relativeLevel>=i;)r.pop();0===r.length?n.push(l):r[r.length-1].children.push(l),r.push(l);}),n}flattenTree(e){const t=[],n=e=>{e.forEach(e=>{t.push(e),e.children.length>0&&n(e.children);});};return n(e),t}updateScrollPositions(){this.scrollNodes=[],this.scrollPositions=[],this.scrollHeights=[];const e=this.getScrollContainer();if(!e||0===this.flatNodes.length)return;const t=e.getBoundingClientRect().top,n=e.scrollTop,r=[];let o=0;if(this.flatNodes.forEach(e=>{if(e.isGhost)return;let a=e.element;if(a&&a.isConnected||(a=e.isUserQuery&&0===e.level&&void 0!==e.queryIndex?this.findUserQueryElement(e.queryIndex,e.text):this.findElementByHeading(e.level,e.text),a&&(e.element=a)),!a||!a.isConnected)return;const i=a.getClientRects();if(0===i.length)return;const s=a.getBoundingClientRect(),l=s.top-t+n,c=s.height||i[0]?.height||0;e.scrollTop=l,e.scrollHeight=c,r.push({node:e,top:l,height:c,order:o}),o+=1;}),0===r.length)return void(this.scrollPositionsStale=false);let a=true;for(let i=1;i<r.length;i+=1)if(r[i].top<r[i-1].top){a=false;break}a||r.sort((e,t)=>e.top===t.top?e.order-t.order:e.top-t.top),r.forEach(e=>{this.scrollNodes.push(e.node),this.scrollPositions.push(e.top),this.scrollHeights.push(e.height);}),this.scrollPositionsStale=false;}captureTreeState(e,t){e.forEach(e=>{const n=`${e.level}_${e.text}`,r=e.children&&e.children.length>0;t[n]={collapsed:e.collapsed,forceExpanded:e.forceExpanded,hadChildren:r},r&&this.captureTreeState(e.children,t);});}restoreTreeState(e,t){e.forEach(e=>{const n=`${e.level}_${e.text}`,r=t[n];if(r){const t=e.children&&e.children.length>0;!r.hadChildren&&t||(e.collapsed=r.collapsed),void 0!==r.forceExpanded&&(e.forceExpanded=r.forceExpanded);}e.children.length>0&&this.restoreTreeState(e.children,t);});}initializeCollapsedState(e,t){e.forEach(e=>{if(e.children&&e.children.length>0){const n=e.children.every(e=>e.level>t);e.collapsed=n,this.initializeCollapsedState(e.children,t);}else e.collapsed=false;});}clearForceExpandedState(e,t){e.forEach(e=>{if(e.forceExpanded=false,e.children&&e.children.length>0){const n=e.children.every(e=>e.level>t);e.collapsed=n,this.clearForceExpandedState(e.children,t);}else e.collapsed=false;});}toggleNode(e){e.collapsed=!e.collapsed,e.collapsed||(e.forceExpanded=true),this.notify();}collapseAll(){const e=this.settings.showUserQueries?0:this.minLevel||1;this.setLevel(e);}expandAll(){const e=Math.max(...Object.keys(this.levelCounts).map(Number),1);this.setLevel(e);}setLevel(e){if(this.bookmarkMode)return void Yr(En("bookmarkModeDisableLevel"));this.expandLevel=e,this.tree.length>0&&this.clearForceExpandedState(this.tree,e);const t=Math.max(...Object.keys(this.levelCounts).map(Number),1);this.isAllExpanded=e>=t,this.searchQuery&&(this.searchLevelManual=true),this.onExpandLevelChange&&this.onExpandLevelChange(e),this.notify();}setShowUserQueries(e){this.settings.showUserQueries=e,this.refresh(),this.notify(),this.onShowUserQueriesChange&&this.onShowUserQueriesChange(e);}toggleGroupMode(){this.setShowUserQueries(!this.settings.showUserQueries);}revealNode(e){const t=e=>{e.forEach(e=>{e.forceVisible=false,e.children&&e.children.length>0&&t(e.children);});};t(this.tree);const n=(e,t,r=[])=>{for(const o of e){if(o.index===t)return r.forEach(e=>{e.collapsed=false,e.forceExpanded=true,e.forceVisible=true;}),o.forceVisible=true,true;if(o.children&&o.children.length>0&&n(o.children,t,[...r,o]))return  true}return  false};n(this.tree,e)&&this.notify();}clearForceVisible(){const e=t=>{t.forEach(t=>{if(t.forceVisible&&(t.forceVisible=false,t.forceExpanded=false,t.children&&t.children.length>0)){const e=t.children.every(e=>e.relativeLevel>this.expandLevel);t.collapsed=e;}t.children&&t.children.length>0&&e(t.children);});};e(this.tree),this.notify();}setSearchQuery(e){if(e)!this.searchQuery&&this.tree.length>0&&(this.preSearchState={},this.captureTreeState(this.tree,this.preSearchState),this.preSearchExpandLevel=this.expandLevel),this.tree.length>0&&this.clearForceExpandedState(this.tree,0),this.searchQuery=e,this.searchLevelManual=false,this.performSearch(e);else if(this.searchQuery="",this.searchLevelManual=false,this.tree.length>0){null!==this.preSearchExpandLevel&&(this.expandLevel=this.preSearchExpandLevel,this.preSearchExpandLevel=null);const e=this.expandLevel??6;this.clearForceExpandedState(this.tree,e),this.preSearchState&&(this.restoreTreeState(this.tree,this.preSearchState),this.preSearchState=null);}this.notify();}performSearch(e){const t=e=>e.toLowerCase(),n=t(e);let r=0;const o=e=>{let a=false;return e.forEach(e=>{const i=t(e.text).includes(n);if(e.isMatch=i,i)if(this.bookmarkMode){const t=e=>!!e.isBookmarked||(e.children?.some(t)||false);(e.isBookmarked||t(e))&&r++;}else r++;if(e.children.length>0){let t=true;if(this.bookmarkMode){const n=e=>!!e.isBookmarked||(e.children?.some(n)||false);e.isBookmarked&&!e.children.some(n)&&(t=false);}e.hasMatchedDescendant=!!t&&o(e.children);}else e.hasMatchedDescendant=false;e.hasMatchedDescendant&&(e.collapsed=false),(i||e.hasMatchedDescendant)&&(a=true);}),a};o(this.tree),this.matchCount=r;}findVisibleItemIndex(e,t){if("current"!==this.settings.followMode)return null;this.scrollPositionsStale&&this.updateScrollPositions();const n=this.scrollNodes.length;if(0===n)return null;const r=e,o=e+t;let a=0,i=n-1,s=-1;for(;a<=i;){const e=a+i>>1;this.scrollPositions[e]<=r?(s=e,a=e+1):i=e-1;}if(s>=0){const e=this.scrollPositions[s],t=this.scrollHeights[s]||0;return e<o&&(0===t||e+t>r)?this.scrollNodes[s].index:s+1<n&&this.scrollPositions[s+1]<o?this.scrollNodes[s+1].index:null}return this.scrollPositions[0]<o?this.scrollNodes[0].index:null}}const ua=Yn()(nr((e,t)=>({prompts:Nn(),_hasHydrated:false,addPrompt:t=>{const n={id:"custom_"+Date.now(),...t};return e(e=>({prompts:[...e.prompts,n]})),n},updatePrompt:(t,n)=>e(e=>({prompts:e.prompts.map(e=>e.id===t?{...e,...n}:e)})),deletePrompt:t=>e(e=>({prompts:e.prompts.filter(e=>e.id!==t)})),renameCategory:(t,n)=>e(e=>({prompts:e.prompts.map(e=>e.category===t?{...e,category:n}:e)})),deleteCategory:(t,n="未分类")=>e(e=>({prompts:e.prompts.map(e=>e.category===t?{...e,category:n}:e)})),updateOrder:t=>e(e=>{const n=[];return t.forEach(t=>{const r=e.prompts.find(e=>e.id===t);r&&n.push(r);}),e.prompts.forEach(e=>{n.find(t=>t.id===e.id)||n.push(e);}),{prompts:n}}),setHasHydrated:t=>e({_hasHydrated:t}),togglePin:t=>e(e=>({prompts:e.prompts.map(e=>e.id===t?{...e,pinned:!e.pinned}:e)})),updateLastUsed:t=>e(e=>({prompts:e.prompts.map(e=>e.id===t?{...e,lastUsedAt:Date.now()}:e)})),setPrompts:t=>e({prompts:t})}),{name:"prompts",storage:er(()=>xr),partialize:e=>({prompts:e.prompts}),onRehydrateStorage:()=>e=>{e?.setHasHydrated(true);}})),ha=()=>ua.getState().prompts,ga=()=>ua.getState(),pa=()=>{const e=ha(),t=new Set;return e.forEach(e=>{e.category&&t.add(e.category);}),Array.from(t)},ma=(e="",t=On)=>{let n=ha();if(t!==On&&t!==Bn&&(n=n.filter(e=>e.category===t)),e){const t=e.toLowerCase();n=n.filter(e=>e.title.toLowerCase().includes(t)||e.content.toLowerCase().includes(t));}return n},fa=Object.freeze(Object.defineProperty({__proto__:null,filterPrompts:ma,getCategories:pa,getPromptsState:ha,getPromptsStore:ga,usePromptsStore:ua},Symbol.toStringTag,{value:"Module"})),ba="ophel:aistudio-submit-shortcut-synced";class ya{adapter;constructor(e){this.adapter=e;}async init(){ua.getState()._hasHydrated||await new Promise(e=>{const t=ua.subscribe(n=>{n._hasHydrated&&(t(),e());});});}getPrompts(){return ga().prompts}addPrompt(e){return ga().addPrompt(e)}updatePrompt(e,t){ga().updatePrompt(e,t);}deletePrompt(e){ga().deletePrompt(e);}getCategories(){return pa()}renameCategory(e,t){ga().renameCategory(e,t);}deleteCategory(e,t="未分类"){ga().deleteCategory(e,t);}updateOrder(e){ga().updateOrder(e);}filterPrompts(e="",t=On){return ma(e,t)}togglePin(e){ga().togglePin(e);}updateLastUsed(e){ga().updateLastUsed(e);}setPrompts(e){ga().setPrompts(e);}async insertPrompt(e){const t=[0,80,120,180,240];for(let n=0;n<t.length;n++){n>0&&await new Promise(e=>setTimeout(e,t[n])),this.adapter.findTextarea();if(this.adapter.insertPrompt(e))return  true}return  false}getEditorContent(e){return e?e instanceof HTMLTextAreaElement||e instanceof HTMLInputElement?e.value||"":e.textContent||"":""}isElementDisabled(e){if(!e)return  true;if(e instanceof HTMLButtonElement&&e.disabled)return  true;if(e.hasAttribute("disabled"))return  true;return "true"===e.getAttribute("aria-disabled")||"true"===e.getAttribute("data-disabled")}isElementVisible(e){if(!e||!e.isConnected)return  false;if(e.closest(".gh-main-panel"))return  false;const t=window.getComputedStyle(e);if("none"===t.display||"hidden"===t.visibility||0===parseFloat(t.opacity||"1"))return  false;const n=e.getBoundingClientRect();return n.width>0&&n.height>0}collectSubmitButtons(e){const t=[],n=new Set;for(const r of e){const e=Nr.query(r,{all:true,shadow:true});if(e&&Array.isArray(e))for(const r of e)r instanceof HTMLElement&&!n.has(r)&&(n.add(r),t.push(r));}return t}getRectDistance(e,t){const n=Math.max(e.left-t.right,t.left-e.right,0),r=Math.max(e.top-t.bottom,t.top-e.bottom,0);return Math.sqrt(n*n+r*r)}findBestSubmitButton(e,t){const n=this.collectSubmitButtons(e).filter(e=>this.isElementVisible(e));if(0===n.length)return null;if(!t||!t.isConnected)return n[0];const r=t.closest("form");if(r){const e=n.filter(e=>e.closest("form")===r);if(e.length>0){return e.find(e=>!this.isElementDisabled(e))||e[0]}}const o=t.getBoundingClientRect();let a=n[0],i=Number.POSITIVE_INFINITY;for(const s of n){const e=this.getRectDistance(o,s.getBoundingClientRect());e<i&&(i=e,a=s);}return a}async waitForEnabledSubmitButton(e,t,n=500){const r=Date.now()+n;for(;Date.now()<r;){const n=this.findBestSubmitButton(e,t);if(n&&!this.isElementDisabled(n))return n;await new Promise(e=>setTimeout(e,50));}return null}syncAiStudioSubmitShortcut(e="enter"){if(this.adapter.getSiteId()!==zn.AISTUDIO)return  false;const t="ctrlEnter"===e?2:1;let n={};const r=localStorage.getItem("aiStudioUserPreference");if(r)try{const e=JSON.parse(r);e&&"object"==typeof e&&(n=e);}catch{}if(n.enterKeyBehavior===t)return  false;try{localStorage.setItem("aiStudioUserPreference",JSON.stringify({...n,enterKeyBehavior:t}));}catch{return  false}return window.dispatchEvent(new CustomEvent(ba,{detail:{submitShortcut:2===t?"ctrlEnter":"enter"}})),true}async waitForSubmitConfirmation(e,t,n){const r=Date.now()+1500,o=e.trim().length>0;for(;Date.now()<r;){const r=this.adapter.getTextareaElement()||this.adapter.findTextarea(),a=this.getEditorContent(r);if(o&&0===a.trim().length)return  true;if(o&&!a.includes(e.trim()))return  true;if(n.clicked&&t.length>0){const e=this.findBestSubmitButton(t,r);if(!e&&n.button&&!n.button.isConnected)return  true;if(e&&!n.wasDisabled&&this.isElementDisabled(e))return  true}await new Promise(e=>setTimeout(e,60));}return  false}async submitPrompt(e){this.syncAiStudioSubmitShortcut(e??"enter");const t=this.adapter.getSubmitButtonSelectors(),n=this.adapter.getTextareaElement()||this.adapter.findTextarea(),r=this.getEditorContent(n);if(!r.replace(/[\u200B\u200C\u200D\uFEFF]/g,"").trim())return  false;let o=false,a=null,i=null,s=true;if(t.length>0){i=this.findBestSubmitButton(t,n),s=this.isElementDisabled(i);let e=i;if(s){const r=null===i?2e3:500,o=await this.waitForEnabledSubmitButton(t,n,r);o&&(e=o,i=o,s=false);}e&&!this.isElementDisabled(e)&&(e.click(),a=e,o=true);}if(!o){const t=n||this.adapter.getTextareaElement()||this.adapter.findTextarea();if(!t)return  false;t.focus();const r="Ctrl+Enter"===("ctrlEnter"===e?{key:"Ctrl+Enter"}:"enter"===e?{key:"Enter"}:this.adapter.getSubmitKeyConfig()).key,a=/Mac|iPhone|iPad|iPod/.test(navigator.platform),i={key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:true,cancelable:true,composed:true,ctrlKey:r&&!a,metaKey:r&&a,shiftKey:false};t.dispatchEvent(new KeyboardEvent("keydown",i)),t.dispatchEvent(new KeyboardEvent("keypress",i)),t.dispatchEvent(new KeyboardEvent("keyup",i)),o=true;}return !!o&&this.waitForSubmitConfirmation(r,t,{button:a||i,clicked:!!a,wasDisabled:s})}}const va=Yn()((e,t)=>({items:[],isProcessing:false,isPaused:false,enqueue:t=>{const n={id:`q_${Date.now()}_${Math.random().toString(36).slice(2,8)}`,content:t,createdAt:Date.now(),status:"pending",type:"prompt"};return e(e=>({items:[...e.items,n]})),n},dequeue:()=>{const{items:n}=t(),r=n.find(e=>"pending"===e.status);return r?(e(e=>({items:e.items.map(e=>e.id===r.id?{...e,status:"sending"}:e),isProcessing:true})),r):null},remove:t=>e(e=>({items:e.items.filter(e=>e.id!==t)})),updateContent:(t,n)=>e(e=>({items:e.items.map(e=>e.id===t?{...e,content:n}:e)})),updateStatus:(t,n)=>e(e=>{const r=e.items.map(e=>e.id===t?{...e,status:n}:e),o=r.some(e=>"pending"===e.status||"sending"===e.status);return {items:r,isProcessing:o}}),clear:()=>e({items:[],isProcessing:false}),pause:()=>e({isPaused:true}),resume:()=>e({isPaused:false})}));class xa{adapter;promptManager;intervalId=null;idleCount=0;IDLE_THRESHOLD=2;POLL_INTERVAL=1e3;constructor(e,t){this.adapter=e,this.promptManager=t;}start(){this.intervalId||(this.idleCount=0,this.intervalId=setInterval(()=>this.tick(),this.POLL_INTERVAL));}stop(){this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null),this.idleCount=0;}isRunning(){return null!==this.intervalId}async tick(){const e=va.getState();if(0===e.items.filter(e=>"pending"===e.status).length||e.isPaused)return void(this.idleCount=0);if(e.items.filter(e=>"sending"===e.status).length>0)return void(this.idleCount=0);this.adapter.isGenerating()?this.idleCount=0:(this.idleCount++,this.idleCount>=this.IDLE_THRESHOLD&&(this.idleCount=0,await this.dispatchNext()));}async dispatchNext(){const e=va.getState(),t=e.dequeue();if(t)try{if(!(await this.promptManager.insertPrompt(t.content)))return void e.updateStatus(t.id,"failed");const n=wr.getState().settings.features?.prompts?.submitShortcut??"enter";if(!(await this.promptManager.submitPrompt(n)))return void e.updateStatus(t.id,"failed");e.updateStatus(t.id,"sent");}catch(n){console.error("[QueueDispatcher] 发送失败:",n),e.updateStatus(t.id,"failed");}}async sendImmediately(e,t){try{if(!(await this.promptManager.insertPrompt(e)))return !1;return await this.promptManager.submitPrompt(t)}catch(n){return console.error("[QueueDispatcher] 立即发送失败:",n),false}}}const Sa=[{id:"google-gradient",name:"Google 渐变",description:"默认主题,蓝绿渐变 Header",variables:{"--gh-bg":"#ffffff","--gh-bg-secondary":"#f9fafb","--gh-bg-tertiary":"#f3f4f6","--gh-text":"#1f2937","--gh-text-secondary":"#6b7280","--gh-text-tertiary":"#9ca3af","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#e5e7eb","--gh-border-active":"#4285f4","--gh-hover":"#f3f4f6","--gh-active-bg":"#e5e7eb","--gh-input-bg":"#ffffff","--gh-input-border":"#d1d5db","--gh-input-focus-border":"#4285f4","--gh-input-focus-shadow":"0 0 0 2px rgba(66, 133, 244, 0.1)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.15)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.1)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.3)","--gh-shadow-brand":"0 4px 12px rgba(66, 133, 244, 0.3)","--gh-primary":"#4285f4","--gh-secondary":"#34a853","--gh-danger":"#ef4444","--gh-header-bg":"linear-gradient(135deg, #4285f4 0%, #34a853 100%)","--gh-tag-active-bg":"#4285f4","--gh-checkbox-bg":"#4f46e5","--gh-badge-text":"#4b5563","--gh-badge-bg":"#ffffff","--gh-badge-border":"#e5e7eb","--gh-badge-shadow":"#ffffff","--gh-selected-gradient":"linear-gradient(135deg, rgba(66, 133, 244, 0.1) 0%, rgba(52, 211, 153, 0.1) 100%)","--gh-folder-bg-default":"#e0f2fe","--gh-folder-bg-expanded":"#c7d2fe","--gh-folder-bg-0":"#fef9e7","--gh-folder-bg-1":"#fdf2f8","--gh-folder-bg-2":"#eff6ff","--gh-folder-bg-3":"#ecfdf5","--gh-folder-bg-4":"#faf5ff","--gh-folder-bg-5":"#fefce8","--gh-folder-bg-6":"#ecfeff","--gh-folder-bg-7":"#fdf4ff","--gh-outline-locate-bg":"rgba(16, 185, 129, 0.25)","--gh-outline-locate-border":"#10b981","--gh-outline-locate-shadow":"rgba(16, 185, 129, 0.5)","--gh-outline-sync-bg":"rgba(52, 211, 153, 0.1)","--gh-outline-sync-border":"#34d399","--gh-user-query-bg":"rgba(66, 133, 244, 0.08)","--gh-user-query-hover-bg":"rgba(66, 133, 244, 0.15)","--gh-bg-danger":"#fef2f2","--gh-text-danger":"#ef4444","--gh-bg-danger-hover":"#fee2e2","--gh-brand-gradient":"linear-gradient(135deg, #4285f4 0%, #34a853 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.2)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.3)","--gh-glass-text":"#ffffff","--gh-card-bg":"#ffffff","--gh-card-border":"#e5e7eb","--gh-overlay-bg":"rgba(0, 0, 0, 0.5)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.15)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.2)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.5)","--gh-emoji-selected-bg":"#dbeafe","--gh-highlight-pulse":"rgba(59, 130, 246, 0.3)","--gh-slider-dot-bg":"#d1d5db","--gh-code-bg":"rgba(0, 0, 0, 0.05)"}},{id:"purple",name:"紫罗兰",description:"优雅紫色主题",variables:{"--gh-bg":"#ffffff","--gh-bg-secondary":"#faf5ff","--gh-bg-tertiary":"#f3e8ff","--gh-text":"#1f2937","--gh-text-secondary":"#6b7280","--gh-text-tertiary":"#9ca3af","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#e9d5ff","--gh-border-active":"#8b5cf6","--gh-hover":"#f3e8ff","--gh-active-bg":"#e9d5ff","--gh-input-bg":"#ffffff","--gh-input-border":"#d8b4fe","--gh-input-focus-border":"#8b5cf6","--gh-input-focus-shadow":"0 0 0 2px rgba(139, 92, 246, 0.1)","--gh-shadow":"0 10px 40px rgba(139, 92, 246, 0.15)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.1)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.3)","--gh-shadow-brand":"0 4px 12px rgba(139, 92, 246, 0.3)","--gh-primary":"#8b5cf6","--gh-secondary":"#a855f7","--gh-danger":"#ef4444","--gh-header-bg":"linear-gradient(135deg, #8b5cf6 0%, #a855f7 100%)","--gh-tag-active-bg":"#8b5cf6","--gh-checkbox-bg":"#8b5cf6","--gh-badge-text":"#4b5563","--gh-badge-bg":"#ffffff","--gh-badge-border":"#e9d5ff","--gh-badge-shadow":"#ffffff","--gh-selected-gradient":"linear-gradient(135deg, rgba(139, 92, 246, 0.1) 0%, rgba(168, 85, 247, 0.1) 100%)","--gh-folder-bg-default":"#f3e8ff","--gh-folder-bg-expanded":"#e9d5ff","--gh-folder-bg-0":"#fef9e7","--gh-folder-bg-1":"#fdf2f8","--gh-folder-bg-2":"#eff6ff","--gh-folder-bg-3":"#ecfdf5","--gh-folder-bg-4":"#faf5ff","--gh-folder-bg-5":"#fefce8","--gh-folder-bg-6":"#ecfeff","--gh-folder-bg-7":"#fdf4ff","--gh-outline-locate-bg":"rgba(139, 92, 246, 0.25)","--gh-outline-locate-border":"#10b981","--gh-outline-locate-shadow":"rgba(16, 185, 129, 0.5)","--gh-outline-sync-bg":"rgba(16, 185, 129, 0.1)","--gh-outline-sync-border":"#34d399","--gh-user-query-bg":"rgba(139, 92, 246, 0.08)","--gh-user-query-hover-bg":"rgba(139, 92, 246, 0.15)","--gh-bg-danger":"#fef2f2","--gh-text-danger":"#ef4444","--gh-bg-danger-hover":"#fee2e2","--gh-brand-gradient":"linear-gradient(135deg, #8b5cf6 0%, #a855f7 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.2)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.3)","--gh-glass-text":"#ffffff","--gh-card-bg":"#ffffff","--gh-card-border":"#e9d5ff","--gh-overlay-bg":"rgba(0, 0, 0, 0.5)","--gh-btn-shadow":"0 2px 6px rgba(139, 92, 246, 0.15)","--gh-btn-shadow-hover":"0 4px 12px rgba(139, 92, 246, 0.2)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.5)","--gh-emoji-selected-bg":"#f3e8ff","--gh-highlight-pulse":"rgba(139, 92, 246, 0.3)","--gh-slider-dot-bg":"#d8b4fe","--gh-code-bg":"rgba(139, 92, 246, 0.08)"}},{id:"ocean",name:"海洋蓝",description:"清新海洋主题",variables:{"--gh-bg":"#ffffff","--gh-bg-secondary":"#f0f9ff","--gh-bg-tertiary":"#e0f2fe","--gh-text":"#1f2937","--gh-text-secondary":"#6b7280","--gh-text-tertiary":"#9ca3af","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#bae6fd","--gh-border-active":"#0ea5e9","--gh-hover":"#e0f2fe","--gh-active-bg":"#bae6fd","--gh-input-bg":"#ffffff","--gh-input-border":"#7dd3fc","--gh-input-focus-border":"#0ea5e9","--gh-input-focus-shadow":"0 0 0 2px rgba(14, 165, 233, 0.1)","--gh-shadow":"0 10px 40px rgba(14, 165, 233, 0.15)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.1)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.3)","--gh-shadow-brand":"0 4px 12px rgba(14, 165, 233, 0.3)","--gh-primary":"#0ea5e9","--gh-secondary":"#06b6d4","--gh-danger":"#ef4444","--gh-header-bg":"linear-gradient(135deg, #0ea5e9 0%, #06b6d4 100%)","--gh-tag-active-bg":"#0ea5e9","--gh-checkbox-bg":"#0ea5e9","--gh-badge-text":"#4b5563","--gh-badge-bg":"#ffffff","--gh-badge-border":"#bae6fd","--gh-badge-shadow":"#ffffff","--gh-selected-gradient":"linear-gradient(135deg, rgba(14, 165, 233, 0.1) 0%, rgba(6, 182, 212, 0.1) 100%)","--gh-folder-bg-default":"#e0f2fe","--gh-folder-bg-expanded":"#bae6fd","--gh-folder-bg-0":"#fef9e7","--gh-folder-bg-1":"#fdf2f8","--gh-folder-bg-2":"#eff6ff","--gh-folder-bg-3":"#ecfdf5","--gh-folder-bg-4":"#faf5ff","--gh-folder-bg-5":"#fefce8","--gh-folder-bg-6":"#ecfeff","--gh-folder-bg-7":"#fdf4ff","--gh-outline-locate-bg":"rgba(14, 165, 233, 0.25)","--gh-outline-locate-border":"#f97316","--gh-outline-locate-shadow":"rgba(249, 115, 22, 0.5)","--gh-outline-sync-bg":"rgba(249, 115, 22, 0.1)","--gh-outline-sync-border":"#fb923c","--gh-user-query-bg":"rgba(14, 165, 233, 0.08)","--gh-user-query-hover-bg":"rgba(14, 165, 233, 0.15)","--gh-bg-danger":"#fef2f2","--gh-text-danger":"#ef4444","--gh-bg-danger-hover":"#fee2e2","--gh-brand-gradient":"linear-gradient(135deg, #0ea5e9 0%, #06b6d4 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.2)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.3)","--gh-glass-text":"#ffffff","--gh-card-bg":"#ffffff","--gh-card-border":"#bae6fd","--gh-overlay-bg":"rgba(0, 0, 0, 0.5)","--gh-btn-shadow":"0 2px 6px rgba(14, 165, 233, 0.15)","--gh-btn-shadow-hover":"0 4px 12px rgba(14, 165, 233, 0.2)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.5)","--gh-emoji-selected-bg":"#e0f2fe","--gh-highlight-pulse":"rgba(14, 165, 233, 0.3)","--gh-slider-dot-bg":"#7dd3fc","--gh-code-bg":"rgba(14, 165, 233, 0.08)"}},{id:"sakura",name:"樱花物语",description:"柔美粉色主题",variables:{"--gh-bg":"#fff5f7","--gh-bg-secondary":"#fff0f3","--gh-bg-tertiary":"#ffe4e9","--gh-text":"#4a0418","--gh-text-secondary":"#9d4f64","--gh-text-tertiary":"#d48aa0","--gh-text-on-primary":"#881337","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#fecdd3","--gh-border-active":"#fb7185","--gh-hover":"#ffe4e9","--gh-active-bg":"#fecdd3","--gh-input-bg":"#ffffff","--gh-input-border":"#fda4af","--gh-input-focus-border":"#fb7185","--gh-input-focus-shadow":"0 0 0 2px rgba(251, 113, 133, 0.2)","--gh-shadow":"0 10px 40px rgba(251, 113, 133, 0.15)","--gh-shadow-sm":"0 1px 3px rgba(255, 179, 193, 0.2)","--gh-shadow-lg":"0 20px 60px rgba(251, 113, 133, 0.25)","--gh-shadow-brand":"0 4px 12px rgba(251, 113, 133, 0.3)","--gh-primary":"#fb7185","--gh-secondary":"#f43f5e","--gh-danger":"#e11d48","--gh-header-bg":"linear-gradient(135deg, #ff9a9e 0%, #fad0c4 99%, #fad0c4 100%)","--gh-tag-active-bg":"#fb7185","--gh-checkbox-bg":"#fb7185","--gh-badge-text":"#881337","--gh-badge-bg":"#fff1f2","--gh-badge-border":"#fecdd3","--gh-badge-shadow":"#fff0f3","--gh-selected-gradient":"linear-gradient(135deg, rgba(251, 113, 133, 0.15) 0%, rgba(244, 63, 94, 0.1) 100%)","--gh-folder-bg-default":"#fff1f2","--gh-folder-bg-expanded":"#ffe4e6","--gh-folder-bg-0":"#fefce8","--gh-folder-bg-1":"#fdf2f8","--gh-folder-bg-2":"#eff6ff","--gh-folder-bg-3":"#ecfdf5","--gh-folder-bg-4":"#faf5ff","--gh-folder-bg-5":"#fff7ed","--gh-folder-bg-6":"#ecfeff","--gh-folder-bg-7":"#f5f3ff","--gh-outline-locate-bg":"rgba(251, 113, 133, 0.2)","--gh-outline-locate-border":"#10b981","--gh-outline-locate-shadow":"rgba(16, 185, 129, 0.5)","--gh-outline-sync-bg":"rgba(16, 185, 129, 0.1)","--gh-outline-sync-border":"#34d399","--gh-user-query-bg":"rgba(251, 113, 133, 0.08)","--gh-user-query-hover-bg":"rgba(251, 113, 133, 0.15)","--gh-bg-danger":"#fff1f2","--gh-text-danger":"#e11d48","--gh-bg-danger-hover":"#ffe4e6","--gh-brand-gradient":"linear-gradient(135deg, #fb7185 0%, #f43f5e 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.4)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.6)","--gh-glass-text":"#881337","--gh-card-bg":"#ffffff","--gh-card-border":"#ffe4e6","--gh-overlay-bg":"rgba(255, 241, 242, 0.6)","--gh-btn-shadow":"0 2px 6px rgba(251, 113, 133, 0.2)","--gh-btn-shadow-hover":"0 4px 12px rgba(251, 113, 133, 0.3)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.6)","--gh-emoji-selected-bg":"#ffe4e6","--gh-highlight-pulse":"rgba(251, 113, 133, 0.3)","--gh-slider-dot-bg":"#fda4af","--gh-code-bg":"rgba(251, 113, 133, 0.08)"}},{id:"mint",name:"清新薄荷",description:"活力青绿主题",variables:{"--gh-bg":"#f0fdf9","--gh-bg-secondary":"#e6fffa","--gh-bg-tertiary":"#ccfbf1","--gh-text":"#134e4a","--gh-text-secondary":"#2d7a74","--gh-text-tertiary":"#5eead4","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#99f6e4","--gh-border-active":"#2dd4bf","--gh-hover":"#ccfbf1","--gh-active-bg":"#99f6e4","--gh-input-bg":"#ffffff","--gh-input-border":"#5eead4","--gh-input-focus-border":"#2dd4bf","--gh-input-focus-shadow":"0 0 0 2px rgba(45, 212, 191, 0.2)","--gh-shadow":"0 10px 40px rgba(45, 212, 191, 0.15)","--gh-shadow-sm":"0 1px 3px rgba(45, 212, 191, 0.2)","--gh-shadow-lg":"0 20px 60px rgba(45, 212, 191, 0.25)","--gh-shadow-brand":"0 4px 12px rgba(45, 212, 191, 0.3)","--gh-primary":"#2dd4bf","--gh-secondary":"#14b8a6","--gh-danger":"#f87171","--gh-header-bg":"linear-gradient(135deg, #14b8a6 0%, #34d399 100%)","--gh-tag-active-bg":"#2dd4bf","--gh-checkbox-bg":"#2dd4bf","--gh-badge-text":"#115e59","--gh-badge-bg":"#ccfbf1","--gh-badge-border":"#99f6e4","--gh-badge-shadow":"#e6fffa","--gh-selected-gradient":"linear-gradient(135deg, rgba(45, 212, 191, 0.15) 0%, rgba(20, 184, 166, 0.1) 100%)","--gh-folder-bg-default":"#ccfbf1","--gh-folder-bg-expanded":"#99f6e4","--gh-folder-bg-0":"#fefce8","--gh-folder-bg-1":"#fdf2f8","--gh-folder-bg-2":"#eff6ff","--gh-folder-bg-3":"#ecfdf5","--gh-folder-bg-4":"#faf5ff","--gh-folder-bg-5":"#fff7ed","--gh-folder-bg-6":"#ecfeff","--gh-folder-bg-7":"#fdf4ff","--gh-outline-locate-bg":"rgba(45, 212, 191, 0.25)","--gh-outline-locate-border":"#f43f5e","--gh-outline-locate-shadow":"rgba(244, 63, 94, 0.5)","--gh-outline-sync-bg":"rgba(244, 63, 94, 0.1)","--gh-outline-sync-border":"#fb7185","--gh-user-query-bg":"rgba(45, 212, 191, 0.1)","--gh-user-query-hover-bg":"rgba(45, 212, 191, 0.2)","--gh-bg-danger":"#fef2f2","--gh-text-danger":"#f87171","--gh-bg-danger-hover":"#fee2e2","--gh-brand-gradient":"linear-gradient(135deg, #2dd4bf 0%, #14b8a6 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.4)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.6)","--gh-glass-text":"#115e59","--gh-card-bg":"#ffffff","--gh-card-border":"#99f6e4","--gh-overlay-bg":"rgba(240, 253, 249, 0.6)","--gh-btn-shadow":"0 2px 6px rgba(45, 212, 191, 0.2)","--gh-btn-shadow-hover":"0 4px 12px rgba(45, 212, 191, 0.3)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.6)","--gh-emoji-selected-bg":"#ccfbf1","--gh-highlight-pulse":"rgba(45, 212, 191, 0.3)","--gh-slider-dot-bg":"#5eead4","--gh-code-bg":"rgba(45, 212, 191, 0.1)"}},{id:"nordic",name:"北欧霜雪",description:"极简冷淡主题",variables:{"--gh-bg":"#f8fafc","--gh-bg-secondary":"#f1f5f9","--gh-bg-tertiary":"#e2e8f0","--gh-text":"#0f172a","--gh-text-secondary":"#475569","--gh-text-tertiary":"#94a3b8","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#cbd5e1","--gh-border-active":"#64748b","--gh-hover":"#e2e8f0","--gh-active-bg":"#cbd5e1","--gh-input-bg":"#ffffff","--gh-input-border":"#cbd5e1","--gh-input-focus-border":"#64748b","--gh-input-focus-shadow":"0 0 0 2px rgba(100, 116, 139, 0.15)","--gh-shadow":"0 10px 40px rgba(15, 23, 42, 0.08)","--gh-shadow-sm":"0 1px 3px rgba(15, 23, 42, 0.05)","--gh-shadow-lg":"0 20px 60px rgba(15, 23, 42, 0.12)","--gh-shadow-brand":"0 4px 12px rgba(100, 116, 139, 0.2)","--gh-primary":"#64748b","--gh-secondary":"#475569","--gh-danger":"#ef4444","--gh-header-bg":"linear-gradient(135deg, #64748b 0%, #475569 100%)","--gh-tag-active-bg":"#64748b","--gh-checkbox-bg":"#64748b","--gh-badge-text":"#334155","--gh-badge-bg":"#f1f5f9","--gh-badge-border":"#cbd5e1","--gh-badge-shadow":"#ffffff","--gh-selected-gradient":"linear-gradient(135deg, rgba(100, 116, 139, 0.1) 0%, rgba(71, 85, 105, 0.08) 100%)","--gh-folder-bg-default":"#f1f5f9","--gh-folder-bg-expanded":"#e2e8f0","--gh-folder-bg-0":"#fefce8","--gh-folder-bg-1":"#fdf2f8","--gh-folder-bg-2":"#eff6ff","--gh-folder-bg-3":"#ecfdf5","--gh-folder-bg-4":"#faf5ff","--gh-folder-bg-5":"#fff7ed","--gh-folder-bg-6":"#ecfeff","--gh-folder-bg-7":"#fdf4ff","--gh-outline-locate-bg":"rgba(100, 116, 139, 0.15)","--gh-outline-locate-border":"#ef4444","--gh-outline-locate-shadow":"rgba(239, 68, 68, 0.5)","--gh-outline-sync-bg":"rgba(239, 68, 68, 0.1)","--gh-outline-sync-border":"#f87171","--gh-user-query-bg":"rgba(100, 116, 139, 0.06)","--gh-user-query-hover-bg":"rgba(100, 116, 139, 0.12)","--gh-bg-danger":"#fef2f2","--gh-text-danger":"#ef4444","--gh-bg-danger-hover":"#fee2e2","--gh-brand-gradient":"linear-gradient(135deg, #64748b 0%, #475569 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.5)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.7)","--gh-glass-text":"#334155","--gh-card-bg":"#ffffff","--gh-card-border":"#cbd5e1","--gh-overlay-bg":"rgba(241, 245, 249, 0.6)","--gh-btn-shadow":"0 2px 6px rgba(100, 116, 139, 0.15)","--gh-btn-shadow-hover":"0 4px 12px rgba(100, 116, 139, 0.25)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.6)","--gh-emoji-selected-bg":"#e2e8f0","--gh-highlight-pulse":"rgba(100, 116, 139, 0.25)","--gh-slider-dot-bg":"#94a3b8","--gh-code-bg":"rgba(100, 116, 139, 0.06)"}},{id:"lemon-soda",name:"柠檬苏打",description:"明亮活力主题",variables:{"--gh-bg":"#fefce8","--gh-bg-secondary":"#fef9c3","--gh-bg-tertiary":"#fde047","--gh-text":"#854d0e","--gh-text-secondary":"#a16207","--gh-text-tertiary":"#ca8a04","--gh-text-on-primary":"#854d0e","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#fde047","--gh-border-active":"#eab308","--gh-hover":"#fef9c3","--gh-active-bg":"#fde047","--gh-input-bg":"#ffffff","--gh-input-border":"#fde047","--gh-input-focus-border":"#eab308","--gh-input-focus-shadow":"0 0 0 2px rgba(234, 179, 8, 0.2)","--gh-shadow":"0 10px 40px rgba(234, 179, 8, 0.15)","--gh-shadow-sm":"0 1px 3px rgba(234, 179, 8, 0.2)","--gh-shadow-lg":"0 20px 60px rgba(234, 179, 8, 0.25)","--gh-shadow-brand":"0 4px 12px rgba(234, 179, 8, 0.3)","--gh-primary":"#eab308","--gh-secondary":"#ca8a04","--gh-danger":"#ef4444","--gh-header-bg":"linear-gradient(135deg, #eab308 0%, #84cc16 100%)","--gh-tag-active-bg":"#eab308","--gh-checkbox-bg":"#eab308","--gh-badge-text":"#854d0e","--gh-badge-bg":"#fef9c3","--gh-badge-border":"#fde047","--gh-badge-shadow":"#ffffff","--gh-selected-gradient":"linear-gradient(135deg, rgba(234, 179, 8, 0.15) 0%, rgba(132, 204, 22, 0.1) 100%)","--gh-folder-bg-default":"#fef9c3","--gh-folder-bg-expanded":"#fde047","--gh-folder-bg-0":"#fefce8","--gh-folder-bg-1":"#fdf2f8","--gh-folder-bg-2":"#eff6ff","--gh-folder-bg-3":"#ecfdf5","--gh-folder-bg-4":"#faf5ff","--gh-folder-bg-5":"#fff7ed","--gh-folder-bg-6":"#ecfeff","--gh-folder-bg-7":"#fdf4ff","--gh-outline-locate-bg":"rgba(234, 179, 8, 0.2)","--gh-outline-locate-border":"#3b82f6","--gh-outline-locate-shadow":"rgba(59, 130, 246, 0.5)","--gh-outline-sync-bg":"rgba(59, 130, 246, 0.1)","--gh-outline-sync-border":"#60a5fa","--gh-user-query-bg":"rgba(234, 179, 8, 0.08)","--gh-user-query-hover-bg":"rgba(234, 179, 8, 0.15)","--gh-bg-danger":"#fef2f2","--gh-text-danger":"#ef4444","--gh-bg-danger-hover":"#fee2e2","--gh-brand-gradient":"linear-gradient(135deg, #eab308 0%, #84cc16 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.4)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.6)","--gh-glass-text":"#854d0e","--gh-card-bg":"#ffffff","--gh-card-border":"#fde047","--gh-overlay-bg":"rgba(254, 252, 232, 0.8)","--gh-btn-shadow":"0 2px 6px rgba(234, 179, 8, 0.2)","--gh-btn-shadow-hover":"0 4px 12px rgba(234, 179, 8, 0.3)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.8)","--gh-emoji-selected-bg":"#fde047","--gh-highlight-pulse":"rgba(234, 179, 8, 0.3)","--gh-slider-dot-bg":"#d4d4d8","--gh-code-bg":"rgba(234, 179, 8, 0.1)"}},{id:"ancient-scroll",name:"羊皮卷",description:"复古纸张主题",variables:{"--gh-bg":"#fffbeb","--gh-bg-secondary":"#fef3c7","--gh-bg-tertiary":"#fde68a","--gh-text":"#451a03","--gh-text-secondary":"#92400e","--gh-text-tertiary":"#b45309","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#fde68a","--gh-border-active":"#d97706","--gh-hover":"#fef3c7","--gh-active-bg":"#fde68a","--gh-input-bg":"#ffffff","--gh-input-border":"#fcd34d","--gh-input-focus-border":"#d97706","--gh-input-focus-shadow":"0 0 0 2px rgba(217, 119, 6, 0.2)","--gh-shadow":"0 10px 40px rgba(146, 64, 14, 0.1)","--gh-shadow-sm":"0 1px 3px rgba(146, 64, 14, 0.15)","--gh-shadow-lg":"0 20px 60px rgba(146, 64, 14, 0.2)","--gh-shadow-brand":"0 4px 12px rgba(217, 119, 6, 0.25)","--gh-primary":"#d97706","--gh-secondary":"#b45309","--gh-danger":"#dc2626","--gh-header-bg":"linear-gradient(135deg, #d97706 0%, #92400e 100%)","--gh-tag-active-bg":"#d97706","--gh-checkbox-bg":"#d97706","--gh-badge-text":"#78350f","--gh-badge-bg":"#fef3c7","--gh-badge-border":"#fcd34d","--gh-badge-shadow":"#fffbeb","--gh-selected-gradient":"linear-gradient(135deg, rgba(217, 119, 6, 0.15) 0%, rgba(146, 64, 14, 0.1) 100%)","--gh-folder-bg-default":"#fef3c7","--gh-folder-bg-expanded":"#fde68a","--gh-folder-bg-0":"#fefce8","--gh-folder-bg-1":"#fdf2f8","--gh-folder-bg-2":"#eff6ff","--gh-folder-bg-3":"#ecfdf5","--gh-folder-bg-4":"#faf5ff","--gh-folder-bg-5":"#fff7ed","--gh-folder-bg-6":"#ecfeff","--gh-folder-bg-7":"#fdf4ff","--gh-outline-locate-bg":"rgba(217, 119, 6, 0.2)","--gh-outline-locate-border":"#0d9488","--gh-outline-locate-shadow":"rgba(13, 148, 136, 0.5)","--gh-outline-sync-bg":"rgba(13, 148, 136, 0.1)","--gh-outline-sync-border":"#14b8a6","--gh-user-query-bg":"rgba(217, 119, 6, 0.08)","--gh-user-query-hover-bg":"rgba(217, 119, 6, 0.15)","--gh-bg-danger":"#fef2f2","--gh-text-danger":"#dc2626","--gh-bg-danger-hover":"#fee2e2","--gh-brand-gradient":"linear-gradient(135deg, #d97706 0%, #92400e 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.4)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.6)","--gh-glass-text":"#78350f","--gh-card-bg":"#fffbeb","--gh-card-border":"#fde68a","--gh-overlay-bg":"rgba(255, 251, 235, 0.8)","--gh-btn-shadow":"0 2px 6px rgba(217, 119, 6, 0.25)","--gh-btn-shadow-hover":"0 4px 12px rgba(217, 119, 6, 0.35)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.6)","--gh-emoji-selected-bg":"#fde68a","--gh-highlight-pulse":"rgba(217, 119, 6, 0.3)","--gh-slider-dot-bg":"#d6d3d1","--gh-code-bg":"rgba(217, 119, 6, 0.08)","--gh-bg-image":"url(\"data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)' opacity='0.12'/%3E%3C/svg%3E\")"}},{id:"mono-pro",name:"极致黑白",description:"纯粹单色主题",variables:{"--gh-bg":"#ffffff","--gh-bg-secondary":"#f4f4f5","--gh-bg-tertiary":"#e4e4e7","--gh-text":"#09090b","--gh-text-secondary":"#52525b","--gh-text-tertiary":"#a1a1aa","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#e4e4e7","--gh-border-active":"#18181b","--gh-hover":"#f4f4f5","--gh-active-bg":"#e4e4e7","--gh-input-bg":"#ffffff","--gh-input-border":"#d4d4d8","--gh-input-focus-border":"#18181b","--gh-input-focus-shadow":"0 0 0 2px rgba(24, 24, 27, 0.1)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.12)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.1)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.2)","--gh-shadow-brand":"0 4px 12px rgba(0, 0, 0, 0.2)","--gh-primary":"#18181b","--gh-secondary":"#3f3f46","--gh-danger":"#71717a","--gh-header-bg":"#000000","--gh-tag-active-bg":"#18181b","--gh-checkbox-bg":"#18181b","--gh-badge-text":"#18181b","--gh-badge-bg":"#f4f4f5","--gh-badge-border":"#e4e4e7","--gh-badge-shadow":"#ffffff","--gh-selected-gradient":"linear-gradient(135deg, rgba(24, 24, 27, 0.08) 0%, rgba(63, 63, 70, 0.05) 100%)","--gh-folder-bg-default":"#f4f4f5","--gh-folder-bg-expanded":"#e4e4e7","--gh-folder-bg-0":"#f4f4f5","--gh-folder-bg-1":"#f4f4f5","--gh-folder-bg-2":"#f4f4f5","--gh-folder-bg-3":"#f4f4f5","--gh-folder-bg-4":"#f4f4f5","--gh-folder-bg-5":"#f4f4f5","--gh-folder-bg-6":"#f4f4f5","--gh-folder-bg-7":"#f4f4f5","--gh-outline-locate-bg":"rgba(24, 24, 27, 0.08)","--gh-outline-locate-border":"#dc2626","--gh-outline-locate-shadow":"rgba(220, 38, 38, 0.5)","--gh-outline-sync-bg":"rgba(220, 38, 38, 0.1)","--gh-outline-sync-border":"#ef4444","--gh-user-query-bg":"rgba(24, 24, 27, 0.04)","--gh-user-query-hover-bg":"rgba(24, 24, 27, 0.08)","--gh-bg-danger":"#f4f4f5","--gh-text-danger":"#18181b","--gh-bg-danger-hover":"#e4e4e7","--gh-brand-gradient":"linear-gradient(135deg, #000000 0%, #333333 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.15)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.25)","--gh-glass-text":"#ffffff","--gh-card-bg":"#ffffff","--gh-card-border":"#e4e4e7","--gh-overlay-bg":"rgba(255, 255, 255, 0.8)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.15)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.25)","--gh-search-highlight-bg":"rgba(0, 0, 0, 0.1)","--gh-emoji-selected-bg":"#e4e4e7","--gh-highlight-pulse":"rgba(24, 24, 27, 0.2)","--gh-slider-dot-bg":"#a1a1aa","--gh-code-bg":"rgba(24, 24, 27, 0.05)"}},{id:"porcelain",name:"青花瓷",description:"东方古典主题",variables:{"--gh-bg":"#f9fbff","--gh-bg-secondary":"#eff6ff","--gh-bg-tertiary":"#e0e7ff","--gh-text":"#1e4e79","--gh-text-secondary":"#4e7ca1","--gh-text-tertiary":"#64748b","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"rgba(78, 124, 161, 0.2)","--gh-border-active":"#1e4e79","--gh-hover":"#eff6ff","--gh-active-bg":"#dbeafe","--gh-input-bg":"#ffffff","--gh-input-border":"#bfdbfe","--gh-input-focus-border":"#1e4e79","--gh-input-focus-shadow":"0 0 0 2px rgba(30, 78, 121, 0.1)","--gh-shadow":"0 10px 40px -10px rgba(30, 78, 121, 0.15), 0 4px 12px -4px rgba(30, 78, 121, 0.1)","--gh-shadow-sm":"0 2px 6px rgba(30, 78, 121, 0.08)","--gh-shadow-lg":"0 20px 60px rgba(30, 78, 121, 0.2)","--gh-shadow-brand":"0 4px 12px rgba(30, 78, 121, 0.25)","--gh-primary":"#1e4e79","--gh-secondary":"#4e7ca1","--gh-danger":"#dc2626","--gh-header-bg":"linear-gradient(135deg, #1e4e79 0%, #2c3e50 100%)","--gh-tag-active-bg":"#1e4e79","--gh-checkbox-bg":"#1e4e79","--gh-badge-text":"#1e4e79","--gh-badge-bg":"#eff6ff","--gh-badge-border":"rgba(78, 124, 161, 0.3)","--gh-badge-shadow":"#f9fbff","--gh-selected-gradient":"linear-gradient(135deg, rgba(30, 78, 121, 0.1) 0%, rgba(78, 124, 161, 0.05) 100%)","--gh-folder-bg-default":"#eff6ff","--gh-folder-bg-expanded":"#dbeafe","--gh-folder-bg-0":"#fefce8","--gh-folder-bg-1":"#fdf2f8","--gh-folder-bg-2":"#eff6ff","--gh-folder-bg-3":"#ecfdf5","--gh-folder-bg-4":"#faf5ff","--gh-folder-bg-5":"#fff7ed","--gh-folder-bg-6":"#ecfeff","--gh-folder-bg-7":"#fdf4ff","--gh-outline-locate-bg":"rgba(30, 78, 121, 0.15)","--gh-outline-locate-border":"#b91c1c","--gh-outline-locate-shadow":"rgba(185, 28, 28, 0.5)","--gh-outline-sync-bg":"rgba(185, 28, 28, 0.1)","--gh-outline-sync-border":"#dc2626","--gh-user-query-bg":"rgba(30, 78, 121, 0.05)","--gh-user-query-hover-bg":"rgba(30, 78, 121, 0.1)","--gh-bg-danger":"#fef2f2","--gh-text-danger":"#dc2626","--gh-bg-danger-hover":"#fee2e2","--gh-brand-gradient":"linear-gradient(135deg, #1e4e79 0%, #2c3e50 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.7)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.85)","--gh-glass-text":"#1e4e79","--gh-card-bg":"#ffffff","--gh-card-border":"rgba(78, 124, 161, 0.15)","--gh-overlay-bg":"rgba(249, 251, 255, 0.85)","--gh-btn-shadow":"0 2px 6px rgba(30, 78, 121, 0.15)","--gh-btn-shadow-hover":"0 4px 12px rgba(30, 78, 121, 0.25)","--gh-search-highlight-bg":"rgba(78, 124, 161, 0.2)","--gh-emoji-selected-bg":"#dbeafe","--gh-highlight-pulse":"rgba(30, 78, 121, 0.2)","--gh-slider-dot-bg":"#94a3b8","--gh-code-bg":"rgba(30, 78, 121, 0.06)","--gh-bg-image":"url(\"data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.5' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.1'/%3E%3C/svg%3E\")"}},{id:"shortbread",name:"奶油脆饼",description:"莫兰迪治愈主题",variables:{"--gh-bg":"#f5f5f4","--gh-bg-secondary":"#e7e5e4","--gh-bg-tertiary":"#d6d3d1","--gh-text":"#44403c","--gh-text-secondary":"#78716c","--gh-text-tertiary":"#a8a29e","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#d6d3d1","--gh-border-active":"#a8a29e","--gh-hover":"#e7e5e4","--gh-active-bg":"#d6d3d1","--gh-input-bg":"#ffffff","--gh-input-border":"#d6d3d1","--gh-input-focus-border":"#78716c","--gh-input-focus-shadow":"0 0 0 2px rgba(120, 113, 108, 0.2)","--gh-shadow":"0 10px 40px rgba(120, 113, 108, 0.1)","--gh-shadow-sm":"0 1px 3px rgba(120, 113, 108, 0.1)","--gh-shadow-lg":"0 20px 60px rgba(120, 113, 108, 0.15)","--gh-shadow-brand":"0 4px 12px rgba(120, 113, 108, 0.2)","--gh-primary":"#78716c","--gh-secondary":"#57534e","--gh-danger":"#ef4444","--gh-header-bg":"#78716c","--gh-tag-active-bg":"#78716c","--gh-checkbox-bg":"#78716c","--gh-badge-text":"#44403c","--gh-badge-bg":"#e7e5e4","--gh-badge-border":"#d6d3d1","--gh-badge-shadow":"#f5f5f4","--gh-selected-gradient":"linear-gradient(135deg, rgba(120, 113, 108, 0.15) 0%, rgba(87, 83, 78, 0.1) 100%)","--gh-folder-bg-default":"#e7e5e4","--gh-folder-bg-expanded":"#d6d3d1","--gh-folder-bg-0":"#fefce8","--gh-folder-bg-1":"#fdf2f8","--gh-folder-bg-2":"#eff6ff","--gh-folder-bg-3":"#ecfdf5","--gh-folder-bg-4":"#faf5ff","--gh-folder-bg-5":"#fff7ed","--gh-folder-bg-6":"#ecfeff","--gh-folder-bg-7":"#fdf4ff","--gh-outline-locate-bg":"rgba(120, 113, 108, 0.2)","--gh-outline-locate-border":"#2563eb","--gh-outline-locate-shadow":"rgba(37, 99, 235, 0.5)","--gh-outline-sync-bg":"rgba(37, 99, 235, 0.1)","--gh-outline-sync-border":"#3b82f6","--gh-user-query-bg":"rgba(120, 113, 108, 0.08)","--gh-user-query-hover-bg":"rgba(120, 113, 108, 0.15)","--gh-bg-danger":"#fef2f2","--gh-text-danger":"#ef4444","--gh-bg-danger-hover":"#fee2e2","--gh-brand-gradient":"linear-gradient(135deg, #78716c 0%, #57534e 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.5)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.7)","--gh-glass-text":"#44403c","--gh-card-bg":"#ffffff","--gh-card-border":"#d6d3d1","--gh-overlay-bg":"rgba(245, 245, 244, 0.8)","--gh-btn-shadow":"0 2px 6px rgba(120, 113, 108, 0.2)","--gh-btn-shadow-hover":"0 4px 12px rgba(120, 113, 108, 0.3)","--gh-search-highlight-bg":"rgba(120, 113, 108, 0.3)","--gh-emoji-selected-bg":"#d6d3d1","--gh-highlight-pulse":"rgba(120, 113, 108, 0.3)","--gh-slider-dot-bg":"#d6d3d1","--gh-code-bg":"rgba(120, 113, 108, 0.08)","--gh-bg-image":"url(\"data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.15'/%3E%3C/svg%3E\")"}},{id:"unicorn-dream",name:"独角兽",description:"梦幻童话主题",variables:{"--gh-bg":"#faf5ff","--gh-bg-secondary":"#f3e8ff","--gh-bg-tertiary":"#e9d5ff","--gh-text":"#5b21b6","--gh-text-secondary":"#7c3aed","--gh-text-tertiary":"#8b5cf6","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#e9d5ff","--gh-border-active":"#d8b4fe","--gh-hover":"#f3e8ff","--gh-active-bg":"#e9d5ff","--gh-input-bg":"#ffffff","--gh-input-border":"#e9d5ff","--gh-input-focus-border":"#22d3ee","--gh-input-focus-shadow":"0 0 0 2px rgba(34, 211, 238, 0.3)","--gh-shadow":"0 10px 40px rgba(139, 92, 246, 0.15)","--gh-shadow-sm":"0 1px 3px rgba(139, 92, 246, 0.15)","--gh-shadow-lg":"0 20px 60px rgba(139, 92, 246, 0.2)","--gh-shadow-brand":"0 4px 12px rgba(244, 114, 182, 0.3)","--gh-primary":"#f472b6","--gh-secondary":"#22d3ee","--gh-danger":"#ef4444","--gh-header-bg":"linear-gradient(135deg, #f472b6 0%, #22d3ee 50%, #a78bfa 100%)","--gh-tag-active-bg":"#f472b6","--gh-checkbox-bg":"#f472b6","--gh-badge-text":"#7c3aed","--gh-badge-bg":"#f3e8ff","--gh-badge-border":"#e9d5ff","--gh-badge-shadow":"#faf5ff","--gh-selected-gradient":"linear-gradient(135deg, rgba(244, 114, 182, 0.2) 0%, rgba(34, 211, 238, 0.2) 100%)","--gh-folder-bg-default":"#f3e8ff","--gh-folder-bg-expanded":"#e9d5ff","--gh-folder-bg-0":"#fefce8","--gh-folder-bg-1":"#fdf2f8","--gh-folder-bg-2":"#eff6ff","--gh-folder-bg-3":"#ecfdf5","--gh-folder-bg-4":"#faf5ff","--gh-folder-bg-5":"#fff7ed","--gh-folder-bg-6":"#ecfeff","--gh-folder-bg-7":"#fdf4ff","--gh-outline-locate-bg":"rgba(167, 139, 250, 0.2)","--gh-outline-locate-border":"#a78bfa","--gh-outline-locate-shadow":"rgba(167, 139, 250, 0.5)","--gh-outline-sync-bg":"rgba(167, 139, 250, 0.15)","--gh-outline-sync-border":"#a78bfa","--gh-user-query-bg":"rgba(167, 139, 250, 0.1)","--gh-user-query-hover-bg":"rgba(167, 139, 250, 0.2)","--gh-bg-danger":"#fef2f2","--gh-text-danger":"#ef4444","--gh-bg-danger-hover":"#fee2e2","--gh-brand-gradient":"linear-gradient(135deg, #f472b6 0%, #22d3ee 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.4)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.6)","--gh-glass-text":"#5b21b6","--gh-card-bg":"#ffffff","--gh-card-border":"#e9d5ff","--gh-overlay-bg":"rgba(250, 245, 255, 0.8)","--gh-btn-shadow":"0 2px 6px rgba(167, 139, 250, 0.25)","--gh-btn-shadow-hover":"0 4px 12px rgba(167, 139, 250, 0.35)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.6)","--gh-emoji-selected-bg":"#e9d5ff","--gh-highlight-pulse":"rgba(244, 114, 182, 0.3)","--gh-slider-dot-bg":"#e2e8f0","--gh-code-bg":"rgba(167, 139, 250, 0.1)","--gh-bg-image":"url(\"data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.01' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.4'/%3E%3C/svg%3E\")","--gh-bg-animation":"gh-mist-drift 20s linear infinite alternate"}}],wa=[{id:"classic-dark",name:"经典深黑",description:"默认深色主题",variables:{"--gh-bg":"#1e1e1e","--gh-bg-secondary":"#0b0b0b","--gh-bg-tertiary":"#262626","--gh-text":"#e3e3e3","--gh-text-secondary":"#a0a0a0","--gh-text-tertiary":"#6b7280","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#333333","--gh-border-active":"#818cf8","--gh-hover":"#262626","--gh-active-bg":"#333333","--gh-input-bg":"#262626","--gh-input-border":"#404040","--gh-input-focus-border":"#818cf8","--gh-input-focus-shadow":"0 0 0 2px rgba(129, 140, 248, 0.2)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.6)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.3)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.7)","--gh-shadow-brand":"0 4px 12px rgba(129, 140, 248, 0.3)","--gh-primary":"#818cf8","--gh-secondary":"#6366f1","--gh-danger":"#fca5a5","--gh-header-bg":"#1e1e1e","--gh-tag-active-bg":"rgba(129, 140, 248, 0.6)","--gh-checkbox-bg":"#818cf8","--gh-badge-text":"#e5e7eb","--gh-badge-bg":"#374151","--gh-badge-border":"#4b5563","--gh-badge-shadow":"#1f2937","--gh-selected-gradient":"linear-gradient(135deg, rgba(129, 140, 248, 0.25) 0%, rgba(99, 102, 241, 0.15) 100%)","--gh-folder-bg-default":"rgba(66, 133, 244, 0.15)","--gh-folder-bg-expanded":"rgba(66, 133, 244, 0.3)","--gh-folder-bg-0":"rgba(253, 224, 71, 0.15)","--gh-folder-bg-1":"rgba(244, 114, 182, 0.15)","--gh-folder-bg-2":"rgba(96, 165, 250, 0.15)","--gh-folder-bg-3":"rgba(52, 211, 153, 0.15)","--gh-folder-bg-4":"rgba(167, 139, 250, 0.15)","--gh-folder-bg-5":"rgba(253, 224, 71, 0.1)","--gh-folder-bg-6":"rgba(34, 211, 238, 0.15)","--gh-folder-bg-7":"rgba(232, 121, 249, 0.15)","--gh-outline-locate-bg":"rgba(52, 211, 153, 0.3)","--gh-outline-locate-border":"#fbbf24","--gh-outline-locate-shadow":"rgba(251, 191, 36, 0.6)","--gh-outline-sync-bg":"rgba(251, 191, 36, 0.15)","--gh-outline-sync-border":"#f59e0b","--gh-user-query-bg":"rgba(66, 133, 244, 0.15)","--gh-user-query-hover-bg":"rgba(66, 133, 244, 0.25)","--gh-bg-danger":"rgba(239, 68, 68, 0.15)","--gh-text-danger":"#fca5a5","--gh-bg-danger-hover":"rgba(239, 68, 68, 0.25)","--gh-brand-gradient":"linear-gradient(135deg, #1a73e8 0%, #1e8e3e 100%)","--gh-brand-border":"#333333","--gh-glass-bg":"rgba(255, 255, 255, 0.08)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.12)","--gh-glass-text":"#e3e3e3","--gh-card-bg":"#0b0b0b","--gh-card-border":"#333333","--gh-overlay-bg":"rgba(0, 0, 0, 0.7)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.4)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.5)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.4)","--gh-emoji-selected-bg":"rgba(129, 140, 248, 0.3)","--gh-highlight-pulse":"rgba(129, 140, 248, 0.4)","--gh-slider-dot-bg":"#4b5563","--gh-code-bg":"rgba(255, 255, 255, 0.08)"}},{id:"midnight-blue",name:"午夜蓝",description:"深邃蓝色主题",variables:{"--gh-bg":"#0f172a","--gh-bg-secondary":"#020617","--gh-bg-tertiary":"#1e293b","--gh-text":"#e2e8f0","--gh-text-secondary":"#94a3b8","--gh-text-tertiary":"#64748b","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#334155","--gh-border-active":"#60a5fa","--gh-hover":"#1e293b","--gh-active-bg":"#334155","--gh-input-bg":"#1e293b","--gh-input-border":"#475569","--gh-input-focus-border":"#60a5fa","--gh-input-focus-shadow":"0 0 0 2px rgba(96, 165, 250, 0.2)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.7)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.4)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.8)","--gh-shadow-brand":"0 4px 12px rgba(96, 165, 250, 0.3)","--gh-primary":"#60a5fa","--gh-secondary":"#3b82f6","--gh-danger":"#fca5a5","--gh-header-bg":"linear-gradient(135deg, #1e40af 0%, #3b82f6 100%)","--gh-tag-active-bg":"rgba(96, 165, 250, 0.6)","--gh-checkbox-bg":"#60a5fa","--gh-badge-text":"#e2e8f0","--gh-badge-bg":"#334155","--gh-badge-border":"#475569","--gh-badge-shadow":"#1e293b","--gh-selected-gradient":"linear-gradient(135deg, rgba(96, 165, 250, 0.25) 0%, rgba(59, 130, 246, 0.15) 100%)","--gh-folder-bg-default":"rgba(96, 165, 250, 0.15)","--gh-folder-bg-expanded":"rgba(59, 130, 246, 0.3)","--gh-folder-bg-0":"rgba(253, 224, 71, 0.15)","--gh-folder-bg-1":"rgba(244, 114, 182, 0.15)","--gh-folder-bg-2":"rgba(96, 165, 250, 0.15)","--gh-folder-bg-3":"rgba(52, 211, 153, 0.15)","--gh-folder-bg-4":"rgba(167, 139, 250, 0.15)","--gh-folder-bg-5":"rgba(253, 224, 71, 0.1)","--gh-folder-bg-6":"rgba(34, 211, 238, 0.15)","--gh-folder-bg-7":"rgba(232, 121, 249, 0.15)","--gh-outline-locate-bg":"rgba(96, 165, 250, 0.3)","--gh-outline-locate-border":"#fbbf24","--gh-outline-locate-shadow":"rgba(251, 191, 36, 0.6)","--gh-outline-sync-bg":"rgba(251, 191, 36, 0.15)","--gh-outline-sync-border":"#f59e0b","--gh-user-query-bg":"rgba(96, 165, 250, 0.15)","--gh-user-query-hover-bg":"rgba(96, 165, 250, 0.25)","--gh-bg-danger":"rgba(239, 68, 68, 0.15)","--gh-text-danger":"#fca5a5","--gh-bg-danger-hover":"rgba(239, 68, 68, 0.25)","--gh-brand-gradient":"linear-gradient(135deg, #1e40af 0%, #3b82f6 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.08)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.12)","--gh-glass-text":"#e2e8f0","--gh-card-bg":"#020617","--gh-card-border":"#334155","--gh-overlay-bg":"rgba(0, 0, 0, 0.7)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.4)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.5)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.4)","--gh-emoji-selected-bg":"rgba(96, 165, 250, 0.3)","--gh-highlight-pulse":"rgba(96, 165, 250, 0.4)","--gh-slider-dot-bg":"#475569","--gh-code-bg":"rgba(96, 165, 250, 0.12)"}},{id:"forest",name:"暗夜森林",description:"深绿色主题",variables:{"--gh-bg":"#0f1a14","--gh-bg-secondary":"#050a07","--gh-bg-tertiary":"#14261c","--gh-text":"#d1fae5","--gh-text-secondary":"#86efac","--gh-text-tertiary":"#6ee7b7","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#1f3d2b","--gh-border-active":"#34d399","--gh-hover":"#14261c","--gh-active-bg":"#1f3d2b","--gh-input-bg":"#14261c","--gh-input-border":"#2a5a3d","--gh-input-focus-border":"#34d399","--gh-input-focus-shadow":"0 0 0 2px rgba(52, 211, 153, 0.2)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.7)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.4)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.8)","--gh-shadow-brand":"0 4px 12px rgba(52, 211, 153, 0.3)","--gh-primary":"#34d399","--gh-secondary":"#10b981","--gh-danger":"#fca5a5","--gh-header-bg":"linear-gradient(135deg, #065f46 0%, #10b981 100%)","--gh-tag-active-bg":"rgba(52, 211, 153, 0.6)","--gh-checkbox-bg":"#34d399","--gh-badge-text":"#d1fae5","--gh-badge-bg":"#1f3d2b","--gh-badge-border":"#2a5a3d","--gh-badge-shadow":"#14261c","--gh-selected-gradient":"linear-gradient(135deg, rgba(52, 211, 153, 0.25) 0%, rgba(16, 185, 129, 0.15) 100%)","--gh-folder-bg-default":"rgba(52, 211, 153, 0.15)","--gh-folder-bg-expanded":"rgba(16, 185, 129, 0.3)","--gh-folder-bg-0":"rgba(253, 224, 71, 0.15)","--gh-folder-bg-1":"rgba(244, 114, 182, 0.15)","--gh-folder-bg-2":"rgba(96, 165, 250, 0.15)","--gh-folder-bg-3":"rgba(52, 211, 153, 0.15)","--gh-folder-bg-4":"rgba(167, 139, 250, 0.15)","--gh-folder-bg-5":"rgba(253, 224, 71, 0.1)","--gh-folder-bg-6":"rgba(34, 211, 238, 0.15)","--gh-folder-bg-7":"rgba(232, 121, 249, 0.15)","--gh-outline-locate-bg":"rgba(52, 211, 153, 0.3)","--gh-outline-locate-border":"#e879f9","--gh-outline-locate-shadow":"rgba(232, 121, 249, 0.6)","--gh-outline-sync-bg":"rgba(232, 121, 249, 0.15)","--gh-outline-sync-border":"#d946ef","--gh-user-query-bg":"rgba(52, 211, 153, 0.15)","--gh-user-query-hover-bg":"rgba(52, 211, 153, 0.25)","--gh-bg-danger":"rgba(239, 68, 68, 0.15)","--gh-text-danger":"#fca5a5","--gh-bg-danger-hover":"rgba(239, 68, 68, 0.25)","--gh-brand-gradient":"linear-gradient(135deg, #065f46 0%, #10b981 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.08)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.12)","--gh-glass-text":"#d1fae5","--gh-card-bg":"#050a07","--gh-card-border":"#1f3d2b","--gh-overlay-bg":"rgba(0, 0, 0, 0.7)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.4)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.5)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.4)","--gh-emoji-selected-bg":"rgba(52, 211, 153, 0.3)","--gh-highlight-pulse":"rgba(52, 211, 153, 0.4)","--gh-slider-dot-bg":"#2a5a3d","--gh-code-bg":"rgba(52, 211, 153, 0.12)"}},{id:"cyberpunk",name:"赛博霓虹",description:"高对比科技主题",variables:{"--gh-bg":"#050505","--gh-bg-secondary":"#121212","--gh-bg-tertiary":"#1a1a1a","--gh-text":"#e0e0e0","--gh-text-secondary":"#a0a0a0","--gh-text-tertiary":"#707070","--gh-text-on-primary":"#ffffff","--gh-footer-text":"#f472b6","--gh-border":"#333333","--gh-border-active":"#f472b6","--gh-hover":"#1a1a1a","--gh-active-bg":"#262626","--gh-input-bg":"#121212","--gh-input-border":"#404040","--gh-input-focus-border":"#f472b6","--gh-input-focus-shadow":"0 0 0 2px rgba(244, 114, 182, 0.3)","--gh-shadow":"0 0 20px rgba(244, 114, 182, 0.15)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.8)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.9)","--gh-shadow-brand":"0 0 15px rgba(244, 114, 182, 0.4)","--gh-primary":"#f472b6","--gh-secondary":"#22d3ee","--gh-danger":"#ff0055","--gh-header-bg":"linear-gradient(45deg, #000000 0%, #1a1a1a 100%)","--gh-tag-active-bg":"#f472b6","--gh-checkbox-bg":"#f472b6","--gh-badge-text":"#f472b6","--gh-badge-bg":"#1a1a1a","--gh-badge-border":"#333333","--gh-badge-shadow":"#000000","--gh-selected-gradient":"linear-gradient(135deg, rgba(244, 114, 182, 0.2) 0%, rgba(34, 211, 238, 0.2) 100%)","--gh-folder-bg-default":"rgba(244, 114, 182, 0.15)","--gh-folder-bg-expanded":"rgba(34, 211, 238, 0.2)","--gh-folder-bg-0":"rgba(253, 224, 71, 0.2)","--gh-folder-bg-1":"rgba(244, 114, 182, 0.2)","--gh-folder-bg-2":"rgba(96, 165, 250, 0.2)","--gh-folder-bg-3":"rgba(52, 211, 153, 0.2)","--gh-folder-bg-4":"rgba(167, 139, 250, 0.2)","--gh-folder-bg-5":"rgba(253, 224, 71, 0.15)","--gh-folder-bg-6":"rgba(34, 211, 238, 0.2)","--gh-folder-bg-7":"rgba(232, 121, 249, 0.2)","--gh-outline-locate-bg":"rgba(244, 114, 182, 0.2)","--gh-outline-locate-border":"#facc15","--gh-outline-locate-shadow":"0 0 10px rgba(250, 204, 21, 0.6)","--gh-outline-sync-bg":"rgba(250, 204, 21, 0.15)","--gh-outline-sync-border":"#eab308","--gh-user-query-bg":"rgba(34, 211, 238, 0.1)","--gh-user-query-hover-bg":"rgba(34, 211, 238, 0.2)","--gh-bg-danger":"rgba(255, 0, 85, 0.15)","--gh-text-danger":"#ff0055","--gh-bg-danger-hover":"rgba(255, 0, 85, 0.25)","--gh-brand-gradient":"linear-gradient(135deg, #be185d 0%, #0891b2 100%)","--gh-brand-border":"#333333","--gh-glass-bg":"rgba(255, 255, 255, 0.05)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.1)","--gh-glass-text":"#f472b6","--gh-card-bg":"#0a0a0a","--gh-card-border":"#333333","--gh-overlay-bg":"rgba(0, 0, 0, 0.85)","--gh-btn-shadow":"0 0 10px rgba(244, 114, 182, 0.3)","--gh-btn-shadow-hover":"0 0 15px rgba(244, 114, 182, 0.5)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.5)","--gh-emoji-selected-bg":"rgba(244, 114, 182, 0.3)","--gh-highlight-pulse":"rgba(34, 211, 238, 0.4)","--gh-slider-dot-bg":"#555555","--gh-code-bg":"rgba(244, 114, 182, 0.1)"}},{id:"coffee",name:"醇香咖啡",description:"暖调护眼主题",variables:{"--gh-bg":"#1c1917","--gh-bg-secondary":"#292524","--gh-bg-tertiary":"#44403c","--gh-text":"#e7e5e4","--gh-text-secondary":"#a8a29e","--gh-text-tertiary":"#78716c","--gh-text-on-primary":"#e7e5e4","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#44403c","--gh-border-active":"#d4a373","--gh-hover":"#292524","--gh-active-bg":"#44403c","--gh-input-bg":"#292524","--gh-input-border":"#57534e","--gh-input-focus-border":"#d4a373","--gh-input-focus-shadow":"0 0 0 2px rgba(212, 163, 115, 0.2)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.6)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.4)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.7)","--gh-shadow-brand":"0 4px 12px rgba(212, 163, 115, 0.2)","--gh-primary":"#d4a373","--gh-secondary":"#a96e45","--gh-danger":"#ef4444","--gh-header-bg":"#292524","--gh-tag-active-bg":"#d4a373","--gh-checkbox-bg":"#d4a373","--gh-badge-text":"#e7e5e4","--gh-badge-bg":"#44403c","--gh-badge-border":"#57534e","--gh-badge-shadow":"#1c1917","--gh-selected-gradient":"linear-gradient(135deg, rgba(212, 163, 115, 0.2) 0%, rgba(169, 110, 69, 0.15) 100%)","--gh-folder-bg-default":"rgba(212, 163, 115, 0.15)","--gh-folder-bg-expanded":"rgba(169, 110, 69, 0.25)","--gh-folder-bg-0":"rgba(253, 224, 71, 0.15)","--gh-folder-bg-1":"rgba(244, 114, 182, 0.15)","--gh-folder-bg-2":"rgba(96, 165, 250, 0.15)","--gh-folder-bg-3":"rgba(52, 211, 153, 0.15)","--gh-folder-bg-4":"rgba(167, 139, 250, 0.15)","--gh-folder-bg-5":"rgba(253, 224, 71, 0.1)","--gh-folder-bg-6":"rgba(34, 211, 238, 0.15)","--gh-folder-bg-7":"rgba(232, 121, 249, 0.15)","--gh-outline-locate-bg":"rgba(212, 163, 115, 0.25)","--gh-outline-locate-border":"#22d3ee","--gh-outline-locate-shadow":"rgba(34, 211, 238, 0.6)","--gh-outline-sync-bg":"rgba(34, 211, 238, 0.15)","--gh-outline-sync-border":"#06b6d4","--gh-user-query-bg":"rgba(212, 163, 115, 0.1)","--gh-user-query-hover-bg":"rgba(212, 163, 115, 0.2)","--gh-bg-danger":"rgba(239, 68, 68, 0.15)","--gh-text-danger":"#fca5a5","--gh-bg-danger-hover":"rgba(239, 68, 68, 0.25)","--gh-brand-gradient":"linear-gradient(135deg, #d4a373 0%, #a96e45 100%)","--gh-brand-border":"#44403c","--gh-glass-bg":"rgba(255, 255, 255, 0.05)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.08)","--gh-glass-text":"#e7e5e4","--gh-card-bg":"#292524","--gh-card-border":"#44403c","--gh-overlay-bg":"rgba(28, 25, 23, 0.8)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.4)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.5)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.4)","--gh-emoji-selected-bg":"rgba(212, 163, 115, 0.25)","--gh-highlight-pulse":"rgba(212, 163, 115, 0.3)","--gh-slider-dot-bg":"#78716c","--gh-code-bg":"rgba(212, 163, 115, 0.12)"}},{id:"sunset",name:"幻梦落日",description:"紫橙渐变艺术主题",variables:{"--gh-bg":"#120a21","--gh-bg-secondary":"#1d1136","--gh-bg-tertiary":"#2a1b4b","--gh-text":"#f3e8ff","--gh-text-secondary":"#d8b4fe","--gh-text-tertiary":"#a78bfa","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#4c1d95","--gh-border-active":"#f97316","--gh-hover":"#2a1b4b","--gh-active-bg":"#392463","--gh-input-bg":"#1d1136","--gh-input-border":"#5b21b6","--gh-input-focus-border":"#f97316","--gh-input-focus-shadow":"0 0 0 2px rgba(249, 115, 22, 0.3)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.5)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.3)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.6)","--gh-shadow-brand":"0 4px 12px rgba(249, 115, 22, 0.3)","--gh-primary":"#f97316","--gh-secondary":"#8b5cf6","--gh-danger":"#ef4444","--gh-header-bg":"linear-gradient(135deg, #4c1d95 0%, #be185d 100%)","--gh-tag-active-bg":"#f97316","--gh-checkbox-bg":"#f97316","--gh-badge-text":"#f3e8ff","--gh-badge-bg":"#2a1b4b","--gh-badge-border":"#4c1d95","--gh-badge-shadow":"#120a21","--gh-selected-gradient":"linear-gradient(135deg, rgba(139, 92, 246, 0.25) 0%, rgba(249, 115, 22, 0.2) 100%)","--gh-folder-bg-default":"rgba(139, 92, 246, 0.2)","--gh-folder-bg-expanded":"rgba(249, 115, 22, 0.3)","--gh-folder-bg-0":"rgba(253, 224, 71, 0.15)","--gh-folder-bg-1":"rgba(244, 114, 182, 0.15)","--gh-folder-bg-2":"rgba(96, 165, 250, 0.15)","--gh-folder-bg-3":"rgba(52, 211, 153, 0.15)","--gh-folder-bg-4":"rgba(167, 139, 250, 0.15)","--gh-folder-bg-5":"rgba(253, 224, 71, 0.1)","--gh-folder-bg-6":"rgba(34, 211, 238, 0.15)","--gh-folder-bg-7":"rgba(232, 121, 249, 0.15)","--gh-outline-locate-bg":"rgba(249, 115, 22, 0.25)","--gh-outline-locate-border":"#22d3ee","--gh-outline-locate-shadow":"rgba(34, 211, 238, 0.6)","--gh-outline-sync-bg":"rgba(34, 211, 238, 0.15)","--gh-outline-sync-border":"#06b6d4","--gh-user-query-bg":"rgba(139, 92, 246, 0.1)","--gh-user-query-hover-bg":"rgba(139, 92, 246, 0.2)","--gh-bg-danger":"rgba(239, 68, 68, 0.15)","--gh-text-danger":"#fca5a5","--gh-bg-danger-hover":"rgba(239, 68, 68, 0.25)","--gh-brand-gradient":"linear-gradient(135deg, #8b5cf6 0%, #f97316 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.1)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.15)","--gh-glass-text":"#f3e8ff","--gh-card-bg":"#1d1136","--gh-card-border":"#4c1d95","--gh-overlay-bg":"rgba(18, 10, 33, 0.8)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.5)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.6)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.4)","--gh-emoji-selected-bg":"rgba(139, 92, 246, 0.3)","--gh-highlight-pulse":"rgba(249, 115, 22, 0.4)","--gh-slider-dot-bg":"#a78bfa","--gh-code-bg":"rgba(139, 92, 246, 0.12)"}},{id:"dracula",name:"德古拉",description:"经典极客主题",variables:{"--gh-bg":"#282a36","--gh-bg-secondary":"#21222c","--gh-bg-tertiary":"#44475a","--gh-text":"#f8f8f2","--gh-text-secondary":"#bd93f9","--gh-text-tertiary":"#6272a4","--gh-text-on-primary":"#f8f8f2","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#44475a","--gh-border-active":"#ff79c6","--gh-hover":"#44475a","--gh-active-bg":"#21222c","--gh-input-bg":"#21222c","--gh-input-border":"#6272a4","--gh-input-focus-border":"#ff79c6","--gh-input-focus-shadow":"0 0 0 2px rgba(255, 121, 198, 0.3)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.5)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.3)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.6)","--gh-shadow-brand":"0 4px 12px rgba(255, 121, 198, 0.3)","--gh-primary":"#ff79c6","--gh-secondary":"#bd93f9","--gh-danger":"#ff5555","--gh-header-bg":"#21222c","--gh-tag-active-bg":"#ff79c6","--gh-checkbox-bg":"#ff79c6","--gh-badge-text":"#f8f8f2","--gh-badge-bg":"#44475a","--gh-badge-border":"#6272a4","--gh-badge-shadow":"#282a36","--gh-selected-gradient":"linear-gradient(135deg, rgba(189, 147, 249, 0.25) 0%, rgba(255, 121, 198, 0.15) 100%)","--gh-folder-bg-default":"rgba(189, 147, 249, 0.15)","--gh-folder-bg-expanded":"rgba(255, 121, 198, 0.25)","--gh-folder-bg-0":"rgba(241, 250, 140, 0.15)","--gh-folder-bg-1":"rgba(255, 121, 198, 0.15)","--gh-folder-bg-2":"rgba(189, 147, 249, 0.15)","--gh-folder-bg-3":"rgba(80, 250, 123, 0.15)","--gh-folder-bg-4":"rgba(139, 233, 253, 0.15)","--gh-folder-bg-5":"rgba(255, 184, 108, 0.15)","--gh-folder-bg-6":"rgba(139, 233, 253, 0.15)","--gh-folder-bg-7":"rgba(255, 121, 198, 0.15)","--gh-outline-locate-bg":"rgba(255, 121, 198, 0.25)","--gh-outline-locate-border":"#4ade80","--gh-outline-locate-shadow":"rgba(74, 222, 128, 0.6)","--gh-outline-sync-bg":"rgba(74, 222, 128, 0.15)","--gh-outline-sync-border":"#22c55e","--gh-user-query-bg":"rgba(189, 147, 249, 0.1)","--gh-user-query-hover-bg":"rgba(189, 147, 249, 0.2)","--gh-bg-danger":"rgba(255, 85, 85, 0.15)","--gh-text-danger":"#ff5555","--gh-bg-danger-hover":"rgba(255, 85, 85, 0.25)","--gh-brand-gradient":"linear-gradient(135deg, #bd93f9 0%, #ff79c6 100%)","--gh-brand-border":"#44475a","--gh-glass-bg":"rgba(255, 255, 255, 0.05)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.08)","--gh-glass-text":"#f8f8f2","--gh-card-bg":"#21222c","--gh-card-border":"#44475a","--gh-overlay-bg":"rgba(40, 42, 54, 0.9)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.4)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.5)","--gh-search-highlight-bg":"rgba(241, 250, 140, 0.5)","--gh-emoji-selected-bg":"rgba(189, 147, 249, 0.3)","--gh-highlight-pulse":"rgba(255, 121, 198, 0.4)","--gh-slider-dot-bg":"#6272a4","--gh-code-bg":"rgba(189, 147, 249, 0.12)"}},{id:"deep-abyss",name:"深海幽蓝",description:"静谧蓝绿主题",variables:{"--gh-bg":"#042f2e","--gh-bg-secondary":"#134e4a","--gh-bg-tertiary":"#115e59","--gh-text":"#ccfbf1","--gh-text-secondary":"#5eead4","--gh-text-tertiary":"#2dd4bf","--gh-text-on-primary":"#042f2e","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#115e59","--gh-border-active":"#2dd4bf","--gh-hover":"#134e4a","--gh-active-bg":"#115e59","--gh-input-bg":"#134e4a","--gh-input-border":"#115e59","--gh-input-focus-border":"#2dd4bf","--gh-input-focus-shadow":"0 0 0 2px rgba(45, 212, 191, 0.3)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.6)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.4)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.7)","--gh-shadow-brand":"0 4px 12px rgba(45, 212, 191, 0.3)","--gh-primary":"#2dd4bf","--gh-secondary":"#0ea5e9","--gh-danger":"#f87171","--gh-header-bg":"linear-gradient(135deg, #0f766e 0%, #0369a1 100%)","--gh-tag-active-bg":"#2dd4bf","--gh-checkbox-bg":"#2dd4bf","--gh-badge-text":"#ccfbf1","--gh-badge-bg":"#115e59","--gh-badge-border":"#2d7a74","--gh-badge-shadow":"#042f2e","--gh-selected-gradient":"linear-gradient(135deg, rgba(45, 212, 191, 0.25) 0%, rgba(14, 165, 233, 0.15) 100%)","--gh-folder-bg-default":"rgba(45, 212, 191, 0.15)","--gh-folder-bg-expanded":"rgba(14, 165, 233, 0.25)","--gh-folder-bg-0":"rgba(253, 224, 71, 0.15)","--gh-folder-bg-1":"rgba(244, 114, 182, 0.15)","--gh-folder-bg-2":"rgba(96, 165, 250, 0.15)","--gh-folder-bg-3":"rgba(52, 211, 153, 0.15)","--gh-folder-bg-4":"rgba(167, 139, 250, 0.15)","--gh-folder-bg-5":"rgba(253, 224, 71, 0.1)","--gh-folder-bg-6":"rgba(34, 211, 238, 0.15)","--gh-folder-bg-7":"rgba(232, 121, 249, 0.15)","--gh-outline-locate-bg":"rgba(45, 212, 191, 0.25)","--gh-outline-locate-border":"#fb923c","--gh-outline-locate-shadow":"rgba(251, 146, 60, 0.6)","--gh-outline-sync-bg":"rgba(251, 146, 60, 0.15)","--gh-outline-sync-border":"#f97316","--gh-user-query-bg":"rgba(45, 212, 191, 0.1)","--gh-user-query-hover-bg":"rgba(45, 212, 191, 0.2)","--gh-bg-danger":"rgba(248, 113, 113, 0.15)","--gh-text-danger":"#f87171","--gh-bg-danger-hover":"rgba(248, 113, 113, 0.25)","--gh-brand-gradient":"linear-gradient(135deg, #2dd4bf 0%, #0ea5e9 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.05)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.08)","--gh-glass-text":"#ccfbf1","--gh-card-bg":"#134e4a","--gh-card-border":"#115e59","--gh-overlay-bg":"rgba(4, 47, 46, 0.8)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.4)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.5)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.4)","--gh-emoji-selected-bg":"rgba(45, 212, 191, 0.25)","--gh-highlight-pulse":"rgba(45, 212, 191, 0.3)","--gh-slider-dot-bg":"#334155","--gh-code-bg":"rgba(45, 212, 191, 0.1)","--gh-bg-image":"url(\"data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='turbulence' baseFrequency='0.02' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.15'/%3E%3C/svg%3E\")"}},{id:"crimson-moon",name:"猩红赤月",description:"暗红狂野主题",variables:{"--gh-bg":"#0f0f0f","--gh-bg-secondary":"#1c1c1c","--gh-bg-tertiary":"#2a2a2a","--gh-text":"#fecaca","--gh-text-secondary":"#f87171","--gh-text-tertiary":"#ef4444","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#450a0a","--gh-border-active":"#ef4444","--gh-hover":"#2a2a2a","--gh-active-bg":"#450a0a","--gh-input-bg":"#1c1c1c","--gh-input-border":"#450a0a","--gh-input-focus-border":"#ef4444","--gh-input-focus-shadow":"0 0 0 2px rgba(239, 68, 68, 0.3)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.8)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.6)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.9)","--gh-shadow-brand":"0 4px 12px rgba(239, 68, 68, 0.3)","--gh-primary":"#ef4444","--gh-secondary":"#991b1b","--gh-danger":"#ef4444","--gh-header-bg":"linear-gradient(135deg, #7f1d1d 0%, #991b1b 100%)","--gh-tag-active-bg":"#ef4444","--gh-checkbox-bg":"#ef4444","--gh-badge-text":"#fee2e2","--gh-badge-bg":"#450a0a","--gh-badge-border":"#7f1d1d","--gh-badge-shadow":"#0f0f0f","--gh-selected-gradient":"linear-gradient(135deg, rgba(239, 68, 68, 0.25) 0%, rgba(153, 27, 27, 0.15) 100%)","--gh-folder-bg-default":"rgba(239, 68, 68, 0.15)","--gh-folder-bg-expanded":"rgba(153, 27, 27, 0.25)","--gh-folder-bg-0":"rgba(253, 224, 71, 0.15)","--gh-folder-bg-1":"rgba(251, 113, 133, 0.15)","--gh-folder-bg-2":"rgba(96, 165, 250, 0.15)","--gh-folder-bg-3":"rgba(52, 211, 153, 0.15)","--gh-folder-bg-4":"rgba(167, 139, 250, 0.15)","--gh-folder-bg-5":"rgba(253, 224, 71, 0.1)","--gh-folder-bg-6":"rgba(34, 211, 238, 0.15)","--gh-folder-bg-7":"rgba(232, 121, 249, 0.15)","--gh-outline-locate-bg":"rgba(239, 68, 68, 0.25)","--gh-outline-locate-border":"#fbbf24","--gh-outline-locate-shadow":"rgba(251, 191, 36, 0.6)","--gh-outline-sync-bg":"rgba(251, 191, 36, 0.15)","--gh-outline-sync-border":"#f59e0b","--gh-user-query-bg":"rgba(239, 68, 68, 0.1)","--gh-user-query-hover-bg":"rgba(239, 68, 68, 0.2)","--gh-bg-danger":"rgba(239, 68, 68, 0.2)","--gh-text-danger":"#fecaca","--gh-bg-danger-hover":"rgba(239, 68, 68, 0.3)","--gh-brand-gradient":"linear-gradient(135deg, #ef4444 0%, #991b1b 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.05)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.08)","--gh-glass-text":"#fecaca","--gh-card-bg":"#1c1c1c","--gh-card-border":"#450a0a","--gh-overlay-bg":"rgba(15, 15, 15, 0.9)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.5)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.6)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.4)","--gh-emoji-selected-bg":"rgba(239, 68, 68, 0.25)","--gh-highlight-pulse":"rgba(239, 68, 68, 0.3)","--gh-slider-dot-bg":"#f87171","--gh-code-bg":"rgba(239, 68, 68, 0.12)"}},{id:"retro-terminal",name:"黑客终端",description:"复古 CRT 主题",variables:{"--gh-bg":"#0c0c0c","--gh-bg-secondary":"#000000","--gh-bg-tertiary":"#1a1a1a","--gh-text":"#22c55e","--gh-text-secondary":"#15803d","--gh-text-tertiary":"#14532d","--gh-text-on-primary":"#22c55e","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#14532d","--gh-border-active":"#22c55e","--gh-hover":"#1a1a1a","--gh-active-bg":"#14532d","--gh-input-bg":"#000000","--gh-input-border":"#15803d","--gh-input-focus-border":"#4ade80","--gh-input-focus-shadow":"0 0 0 2px rgba(74, 222, 128, 0.3)","--gh-shadow":"0 0 20px rgba(34, 197, 94, 0.1)","--gh-shadow-sm":"0 0 10px rgba(34, 197, 94, 0.1)","--gh-shadow-lg":"0 0 40px rgba(34, 197, 94, 0.2)","--gh-shadow-brand":"0 0 15px rgba(34, 197, 94, 0.3)","--gh-primary":"#15803d","--gh-secondary":"#4ade80","--gh-danger":"#ef4444","--gh-header-bg":"#000000","--gh-tag-active-bg":"#22c55e","--gh-checkbox-bg":"#22c55e","--gh-badge-text":"#22c55e","--gh-badge-bg":"#000000","--gh-badge-border":"#15803d","--gh-badge-shadow":"#000000","--gh-selected-gradient":"linear-gradient(90deg, rgba(34, 197, 94, 0.25) 0%, rgba(34, 197, 94, 0.05) 100%)","--gh-folder-bg-default":"rgba(34, 197, 94, 0.1)","--gh-folder-bg-expanded":"rgba(34, 197, 94, 0.2)","--gh-folder-bg-0":"rgba(34, 197, 94, 0.1)","--gh-folder-bg-1":"rgba(34, 197, 94, 0.1)","--gh-folder-bg-2":"rgba(34, 197, 94, 0.1)","--gh-folder-bg-3":"rgba(34, 197, 94, 0.1)","--gh-folder-bg-4":"rgba(34, 197, 94, 0.1)","--gh-folder-bg-5":"rgba(34, 197, 94, 0.1)","--gh-folder-bg-6":"rgba(34, 197, 94, 0.1)","--gh-folder-bg-7":"rgba(34, 197, 94, 0.1)","--gh-outline-locate-bg":"rgba(34, 197, 94, 0.5)","--gh-outline-locate-border":"#f59e0b","--gh-outline-locate-shadow":"0 0 15px rgba(245, 158, 11, 0.6)","--gh-outline-sync-bg":"rgba(245, 158, 11, 0.1)","--gh-outline-sync-border":"#d97706","--gh-user-query-bg":"rgba(34, 197, 94, 0.05)","--gh-user-query-hover-bg":"rgba(34, 197, 94, 0.1)","--gh-bg-danger":"rgba(239, 68, 68, 0.2)","--gh-text-danger":"#ef4444","--gh-bg-danger-hover":"rgba(239, 68, 68, 0.3)","--gh-brand-gradient":"linear-gradient(135deg, #022c22 0%, #15803d 100%)","--gh-brand-border":"#15803d","--gh-glass-bg":"rgba(0, 0, 0, 0.8)","--gh-glass-bg-hover":"rgba(0, 0, 0, 0.9)","--gh-glass-text":"#22c55e","--gh-card-bg":"#000000","--gh-card-border":"#15803d","--gh-overlay-bg":"rgba(0, 0, 0, 0.9)","--gh-btn-shadow":"0 0 8px rgba(34, 197, 94, 0.4)","--gh-btn-shadow-hover":"0 0 12px rgba(34, 197, 94, 0.6)","--gh-search-highlight-bg":"rgba(34, 197, 94, 0.4)","--gh-emoji-selected-bg":"rgba(34, 197, 94, 0.2)","--gh-highlight-pulse":"rgba(34, 197, 94, 0.5)","--gh-slider-dot-bg":"#14532d","--gh-code-bg":"rgba(34, 197, 94, 0.15)","--gh-bg-image":"repeating-linear-gradient(to bottom, transparent 0px, transparent 2px, rgba(34, 197, 94, 0.05) 2px, rgba(34, 197, 94, 0.05) 4px)","--gh-bg-animation":"gh-scanline 8s linear infinite"}},{id:"eva-unit-01",name:"代号:暴走",description:"机甲撞色主题",variables:{"--gh-bg":"#2e1065","--gh-bg-secondary":"#1e0b4b","--gh-bg-tertiary":"#4c1d95","--gh-text":"#d9f99d","--gh-text-secondary":"#bef264","--gh-text-tertiary":"#a3e635","--gh-text-on-primary":"#1e0b4b","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#d9f99d","--gh-border-active":"#a3e635","--gh-hover":"#4c1d95","--gh-active-bg":"#5b21b6","--gh-input-bg":"#1e0b4b","--gh-input-border":"#5b21b6","--gh-input-focus-border":"#a3e635","--gh-input-focus-shadow":"0 0 0 2px rgba(163, 230, 53, 0.3)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.6)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.4)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.7)","--gh-shadow-brand":"0 4px 12px rgba(163, 230, 53, 0.3)","--gh-primary":"#a3e635","--gh-secondary":"#f97316","--gh-danger":"#ef4444","--gh-header-bg":"linear-gradient(135deg, #4c1d95 0%, #a3e635 100%)","--gh-tag-active-bg":"#a3e635","--gh-checkbox-bg":"#a3e635","--gh-badge-text":"#1e0b4b","--gh-badge-bg":"#d9f99d","--gh-badge-border":"#a3e635","--gh-badge-shadow":"#2e1065","--gh-selected-gradient":"linear-gradient(135deg, rgba(163, 230, 53, 0.25) 0%, rgba(249, 115, 22, 0.15) 100%)","--gh-folder-bg-default":"rgba(163, 230, 53, 0.15)","--gh-folder-bg-expanded":"rgba(249, 115, 22, 0.25)","--gh-folder-bg-0":"rgba(253, 224, 71, 0.15)","--gh-folder-bg-1":"rgba(244, 114, 182, 0.15)","--gh-folder-bg-2":"rgba(96, 165, 250, 0.15)","--gh-folder-bg-3":"rgba(52, 211, 153, 0.15)","--gh-folder-bg-4":"rgba(167, 139, 250, 0.15)","--gh-folder-bg-5":"rgba(253, 224, 71, 0.1)","--gh-folder-bg-6":"rgba(34, 211, 238, 0.15)","--gh-folder-bg-7":"rgba(232, 121, 249, 0.15)","--gh-outline-locate-bg":"rgba(163, 230, 53, 0.3)","--gh-outline-locate-border":"#f97316","--gh-outline-locate-shadow":"rgba(249, 115, 22, 0.6)","--gh-outline-sync-bg":"rgba(249, 115, 22, 0.15)","--gh-outline-sync-border":"#ea580c","--gh-user-query-bg":"rgba(163, 230, 53, 0.1)","--gh-user-query-hover-bg":"rgba(163, 230, 53, 0.2)","--gh-bg-danger":"rgba(239, 68, 68, 0.15)","--gh-text-danger":"#fca5a5","--gh-bg-danger-hover":"rgba(239, 68, 68, 0.25)","--gh-brand-gradient":"linear-gradient(135deg, #a3e635 0%, #f97316 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.1)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.15)","--gh-glass-text":"#d9f99d","--gh-card-bg":"#1e0b4b","--gh-card-border":"#5b21b6","--gh-overlay-bg":"rgba(46, 16, 101, 0.85)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.5)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.6)","--gh-search-highlight-bg":"rgba(249, 115, 22, 0.5)","--gh-emoji-selected-bg":"rgba(163, 230, 53, 0.3)","--gh-highlight-pulse":"rgba(163, 230, 53, 0.4)","--gh-slider-dot-bg":"#4b5563","--gh-code-bg":"rgba(163, 230, 53, 0.12)"}},{id:"aurora",name:"极光行者",description:"自然奇观主题",variables:{"--gh-bg":"#020617","--gh-bg-secondary":"#0f172a","--gh-bg-tertiary":"#1e293b","--gh-text":"#e0f2fe","--gh-text-secondary":"#bae6fd","--gh-text-tertiary":"#7dd3fc","--gh-text-on-primary":"#ffffff","--gh-footer-text":"var(--gh-text-on-primary)","--gh-border":"#1e293b","--gh-border-active":"#38bdf8","--gh-hover":"#0f172a","--gh-active-bg":"#1e293b","--gh-input-bg":"#0f172a","--gh-input-border":"#1e293b","--gh-input-focus-border":"#38bdf8","--gh-input-focus-shadow":"0 0 0 2px rgba(56, 189, 248, 0.3)","--gh-shadow":"0 10px 40px rgba(0, 0, 0, 0.7)","--gh-shadow-sm":"0 1px 3px rgba(0, 0, 0, 0.5)","--gh-shadow-lg":"0 20px 60px rgba(0, 0, 0, 0.8)","--gh-shadow-brand":"0 4px 12px rgba(56, 189, 248, 0.3)","--gh-primary":"#38bdf8","--gh-secondary":"#34d399","--gh-danger":"#f87171","--gh-header-bg":"linear-gradient(135deg, #0f172a 0%, #1e40af 100%)","--gh-tag-active-bg":"#38bdf8","--gh-checkbox-bg":"#38bdf8","--gh-badge-text":"#e0f2fe","--gh-badge-bg":"#1e293b","--gh-badge-border":"#38bdf8","--gh-badge-shadow":"#020617","--gh-selected-gradient":"linear-gradient(135deg, rgba(56, 189, 248, 0.25) 0%, rgba(52, 211, 153, 0.15) 100%)","--gh-folder-bg-default":"rgba(56, 189, 248, 0.15)","--gh-folder-bg-expanded":"rgba(52, 211, 153, 0.25)","--gh-folder-bg-0":"rgba(253, 224, 71, 0.15)","--gh-folder-bg-1":"rgba(244, 114, 182, 0.15)","--gh-folder-bg-2":"rgba(96, 165, 250, 0.15)","--gh-folder-bg-3":"rgba(52, 211, 153, 0.15)","--gh-folder-bg-4":"rgba(167, 139, 250, 0.15)","--gh-folder-bg-5":"rgba(253, 224, 71, 0.1)","--gh-folder-bg-6":"rgba(34, 211, 238, 0.15)","--gh-folder-bg-7":"rgba(232, 121, 249, 0.15)","--gh-outline-locate-bg":"rgba(244, 114, 182, 0.25)","--gh-outline-locate-border":"#f472b6","--gh-outline-locate-shadow":"rgba(244, 114, 182, 0.5)","--gh-outline-sync-bg":"rgba(244, 114, 182, 0.15)","--gh-outline-sync-border":"#f472b6","--gh-user-query-bg":"rgba(56, 189, 248, 0.1)","--gh-user-query-hover-bg":"rgba(56, 189, 248, 0.2)","--gh-bg-danger":"rgba(248, 113, 113, 0.15)","--gh-text-danger":"#f87171","--gh-bg-danger-hover":"rgba(248, 113, 113, 0.25)","--gh-brand-gradient":"linear-gradient(135deg, #0369a1 0%, #0f766e 100%)","--gh-brand-border":"transparent","--gh-glass-bg":"rgba(255, 255, 255, 0.05)","--gh-glass-bg-hover":"rgba(255, 255, 255, 0.08)","--gh-glass-text":"#e0f2fe","--gh-card-bg":"#0f172a","--gh-card-border":"#1e293b","--gh-overlay-bg":"rgba(2, 6, 23, 0.8)","--gh-btn-shadow":"0 2px 6px rgba(0, 0, 0, 0.4)","--gh-btn-shadow-hover":"0 4px 12px rgba(0, 0, 0, 0.5)","--gh-search-highlight-bg":"rgba(255, 235, 59, 0.4)","--gh-emoji-selected-bg":"rgba(56, 189, 248, 0.25)","--gh-highlight-pulse":"rgba(56, 189, 248, 0.3)","--gh-slider-dot-bg":"#7dd3fc","--gh-code-bg":"rgba(56, 189, 248, 0.12)"}}],ka=(e,t)=>{const n=((e,t)=>("light"===t?Sa:wa).find(t=>t.id===e))(e,t);return n||("light"===t?Sa[0]:wa[0])};class Ca{mode;preference;lightPresetId;darkPresetId;cleanPresetId;themeObserver=null;onModeChange;adapter;customStyles=[];skipNextDetection=false;listeners=new Set;systemMediaQuery=null;handleSystemChange=e=>{if("system"!==this.preference)return;const t=e.matches?"dark":"light";this.mode!==t&&(this.mode=t,this.emitChange(),this.syncPageTheme(t,"system"),this.onModeChange&&this.onModeChange(t,this.preference));};constructor(e,t,n,r="google-gradient",o="classic-dark"){const a="system"===e?"system":"dark"===e?"dark":"light";this.preference=a,this.mode=this.resolveMode(a),this.lightPresetId=r,this.darkPresetId=o,this.onModeChange=t,this.adapter=n,this.injectGlobalStyles(),this.ensureSystemListener();}ensureSystemListener(){!this.systemMediaQuery&&"undefined"!=typeof window&&window.matchMedia&&(this.systemMediaQuery=window.matchMedia("(prefers-color-scheme: dark)"),"function"==typeof this.systemMediaQuery.addEventListener?this.systemMediaQuery.addEventListener("change",this.handleSystemChange):"function"==typeof this.systemMediaQuery.addListener&&this.systemMediaQuery.addListener(this.handleSystemChange));}getSystemMode(){return "undefined"!=typeof window&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}resolveMode(e){return "system"===e?this.getSystemMode():e}syncPageTheme(e,t=e){if("system"===t){!this.applySystemPreference(e)&&this.adapter&&"function"==typeof this.adapter.toggleTheme&&this.adapter.toggleTheme(e).catch(()=>{});}else this.adapter&&"function"==typeof this.adapter.toggleTheme&&this.adapter.toggleTheme(t).catch(()=>{});this.apply(e);}applySystemPreference(e){if(!this.adapter)return  false;const t=this.adapter.getSiteId();try{switch(t){case zn.CHATGPT:return localStorage.setItem("theme","system"),document.documentElement.className=e,window.dispatchEvent(new StorageEvent("storage",{key:"theme",newValue:"system",storageArea:localStorage})),!0;case zn.GROK:return localStorage.setItem("theme","system"),document.documentElement.classList.remove("light","dark"),document.documentElement.classList.add(e),document.documentElement.style.colorScheme=e,window.dispatchEvent(new StorageEvent("storage",{key:"theme",newValue:"system",storageArea:localStorage})),!0;case zn.AISTUDIO:{const t=localStorage.getItem("aiStudioUserPreference")||"{}";let n={};try{n=JSON.parse(t);}catch{n={};}n.theme="system";const r=JSON.stringify(n);localStorage.setItem("aiStudioUserPreference",r);const o=document.body;"dark"===e?(o.classList.add("dark-theme"),o.classList.remove("light-theme")):(o.classList.remove("dark-theme"),o.classList.add("light-theme")),o.style.colorScheme=e,window.dispatchEvent(new StorageEvent("storage",{key:"aiStudioUserPreference",newValue:r,storageArea:localStorage}));const a=document.querySelector("app-root, ms-app, body");return a&&a.dispatchEvent(new CustomEvent("themechange",{detail:{theme:e}})),!0}case zn.GEMINI:return localStorage.removeItem("Bard-Color-Theme"),"dark"===e?(document.body.classList.add("dark-theme"),document.body.classList.remove("light-theme")):(document.body.classList.remove("dark-theme"),document.body.classList.add("light-theme")),document.body.style.colorScheme=e,window.dispatchEvent(new StorageEvent("storage",{key:"Bard-Color-Theme",newValue:null,storageArea:localStorage})),!0;case zn.CLAUDE:{const e={value:"auto",tabId:crypto.randomUUID(),timestamp:Date.now()},t=JSON.stringify(e);return localStorage.setItem("LSS-userThemeMode",t),window.dispatchEvent(new StorageEvent("storage",{key:"LSS-userThemeMode",newValue:t})),!0}case zn.GEMINI_ENTERPRISE:return !(!this.adapter||"function"!=typeof this.adapter.toggleTheme)&&(this.adapter.toggleTheme("system").catch(()=>{}),!0);default:return !1}}catch{return  false}}injectGlobalStyles(){if(document.getElementById("gh-global-styles"))return;const e=document.createElement("style");e.id="gh-global-styles",e.textContent="\n      ::view-transition-old(root),\n      ::view-transition-new(root) {\n        animation: none;\n        mix-blend-mode: normal;\n      }\n      \n      ::view-transition-new(root) {\n        clip-path: circle(0px at var(--theme-x, 50%) var(--theme-y, 50%));\n      }\n    ",document.head.appendChild(e);}setAdapter(e){this.adapter=e;}setOnModeChange(e){this.onModeChange=e;}updateMode(e){const t="system"===e?"system":"dark"===e?"dark":"light";this.preference=t,this.mode=this.resolveMode(t),this.emitChange(),"system"!==this.preference?this.apply(this.mode):this.syncPageTheme(this.mode,"system");}detectCurrentTheme(){const e=document.documentElement.className;if(/\bdark\b/i.test(e))return "dark";if(/\blight\b/i.test(e))return "light";const t=document.body.className;if(/\bdark-theme\b/i.test(t))return "dark";if(/\blight-theme\b/i.test(t))return "light";const n=document.body.dataset.theme||document.documentElement.dataset.theme;return "dark"===n?"dark":"light"===n?"light":"dark"===document.body.style.colorScheme?"dark":"light"}detectThemePreference(){if(!this.adapter)return null;const e=this.adapter.getSiteId();try{switch(e){case zn.CHATGPT:case zn.GROK:{const e=localStorage.getItem("theme");return "light"===e||"dark"===e||"system"===e?e:null}case zn.AISTUDIO:{const e=localStorage.getItem("aiStudioUserPreference");if(!e)return null;let t={};try{t=JSON.parse(e);}catch{t={};}const n=t.theme;return "light"===n||"dark"===n||"system"===n?n:null}case zn.GEMINI:{const e=localStorage.getItem("Bard-Color-Theme");return e?/dark/i.test(e)?"dark":/light/i.test(e)?"light":null:"system"}case zn.CLAUDE:{const e=localStorage.getItem("LSS-userThemeMode");if(!e)return null;let t={};try{t=JSON.parse(e);}catch{t={};}const n=t.value;return "auto"===n||"system"===n?"system":"dark"===n||"light"===n?n:null}case zn.GEMINI_ENTERPRISE:{const e=Nr.query("md-primary-tab",{all:!0,shadow:!0});if(!e||0===e.length)return null;const t=[];for(const r of e){let e=r.querySelector("md-icon");e||(e=Nr.query("md-icon",{parent:r,shadow:!0}));const n=e?.textContent?.trim();if("computer"!==n&&"light_mode"!==n&&"dark_mode"!==n)continue;const o=r,a=Boolean(o.selected||o.active||0===o.tabIndex);t.push({icon:n,selected:a});}const n=t.find(e=>e.selected);return n?"computer"===n.icon?"system":"dark_mode"===n.icon?"dark":"light":null}case zn.DOUBAO:return "light";default:return null}}catch{return null}}apply(e){const t=e||this.mode,n=this.adapter.getSiteId()===zn.GEMINI;"dark"===t?(document.body.classList.add("dark-theme"),document.body.classList.remove("light-theme"),document.body.style.colorScheme="dark"):(document.body.classList.remove("dark-theme"),document.body.style.colorScheme="light",n&&document.body.classList.add("light-theme")),this.syncPluginUITheme(t);}getCurrentPreset(){const e="dark"===this.mode?this.darkPresetId:this.lightPresetId;return ka(e,this.mode)}setPresets(e,t){this.lightPresetId=e,this.darkPresetId=t,this.syncPluginUITheme();}setCustomStyles(e){this.customStyles=e||[];const t="dark"===this.mode?this.darkPresetId:this.lightPresetId;this.customStyles.some(e=>e.id===t)&&this.syncPluginUITheme();}syncPluginUITheme(e){const t=e||this.mode,n=document.documentElement,r="dark"===t?this.darkPresetId:this.lightPresetId,o=this.customStyles.find(e=>e.id===r);let a=null;if(o);else try{const e=ka(r,t);a=e.variables;}catch(s){return void console.error("[ThemeManager] getPreset FAILED:",s)}const i=null!==this.themeObserver;if(i&&this.themeObserver?.disconnect(),"dark"===t?(document.body.dataset.ghMode="dark",document.body.style.colorScheme="dark"):(delete document.body.dataset.ghMode,document.body.style.colorScheme="light"),a)for(const[l,c]of Object.entries(a))n.style.setProperty(l,c);document.querySelectorAll("plasmo-csui, #ophel-userscript-root").forEach(e=>{const n=e.shadowRoot;if(n){let i=n.querySelector("#gh-theme-vars");if(i||(i=document.createElement("style"),i.id="gh-theme-vars"),o)i.textContent=o.css;else if(a){const e=(r=a,Object.entries(r).map(([e,t])=>`${e}: ${t} !important;`).join("\n  "));i.textContent=`:host {\n${e}\ncolor-scheme: ${t};\n}\n\n:host([data-theme="dark"]),\n:host .gh-root[data-theme="dark"] {\n${e}\n}\n`;}e.dataset.theme=t,n.append(i);}var r;}),i&&this.themeObserver&&(this.themeObserver.observe(document.body,{attributes:true,attributeFilter:["class","data-theme","style"]}),this.themeObserver.observe(document.documentElement,{attributes:true,attributeFilter:["class","data-theme"]}));}monitorTheme(){const e=()=>{if(this.skipNextDetection)return void(this.skipNextDetection=false);const e=this.detectCurrentTheme(),t=this.detectThemePreference()??e,n="system"===t?this.getSystemMode():t;"system"===t?(this.ensureSystemListener(),e!==n?this.syncPageTheme(n,"system"):this.syncPluginUITheme(n)):this.syncPluginUITheme(n),this.mode===n&&this.preference===t||(this.mode=n,this.preference=t,this.emitChange(),this.onModeChange&&this.onModeChange(n,t));};e(),this.themeObserver||(this.themeObserver=new MutationObserver(()=>{e();}),this.themeObserver.observe(document.body,{attributes:true,attributeFilter:["class","data-theme","style"]}),this.themeObserver.observe(document.documentElement,{attributes:true,attributeFilter:["class","data-theme"]}));}stopMonitoring(){this.themeObserver&&(this.themeObserver.disconnect(),this.themeObserver=null);}getTransitionOrigin(e){let t=95,n=5;if(e&&void 0!==e.clientX)return t=e.clientX/window.innerWidth*100,n=e.clientY/window.innerHeight*100,{x:t,y:n};const r=document.getElementById("theme-toggle-btn")||document.getElementById("quick-theme-btn");if(r){const e=r.getBoundingClientRect();t=(e.left+e.width/2)/window.innerWidth*100,n=(e.top+e.height/2)/window.innerHeight*100;}return {x:t,y:n}}async applyWithTransition(e,t){const{x:n,y:r}=this.getTransitionOrigin(t);document.documentElement.style.setProperty("--theme-x",`${n}%`),document.documentElement.style.setProperty("--theme-y",`${r}%`),this.stopMonitoring();const o=window.matchMedia("(prefers-reduced-motion: reduce)").matches;if(!document.startViewTransition||o){try{e();}finally{this.monitorTheme();}return  false}try{const t=document.startViewTransition(()=>{e();});t.ready.then(()=>{const e=window.innerWidth-n/100*window.innerWidth,t=window.innerHeight-r/100*window.innerHeight,o=Math.hypot(Math.max(n/100*window.innerWidth,e),Math.max(r/100*window.innerHeight,t)),a=[`circle(0px at ${n}% ${r}%)`,`circle(${o}px at ${n}% ${r}%)`];document.documentElement.animate({clipPath:a},{duration:500,easing:"ease-in",pseudoElement:"::view-transition-new(root)",fill:"forwards"});}),await t.finished.catch(()=>{});}catch{return e(),this.monitorTheme(),false}return this.skipNextDetection=true,this.monitorTheme(),true}
         /**
            * 切换主题(User Action)- 带圆形扩散动画
            * @param event 可选的鼠标事件,用于确定动画中心
            */async toggle(e){const t="dark"===("system"===this.preference?this.mode:this.detectCurrentTheme())?"light":"dark";this.preference=t;let n=95,r=5;if(e&&void 0!==e.clientX)n=e.clientX/window.innerWidth*100,r=e.clientY/window.innerHeight*100;else {const e=document.getElementById("theme-toggle-btn")||document.getElementById("quick-theme-btn");if(e){const t=e.getBoundingClientRect();n=(t.left+t.width/2)/window.innerWidth*100,r=(t.top+t.height/2)/window.innerHeight*100;}}document.documentElement.style.setProperty("--theme-x",`${n}%`),document.documentElement.style.setProperty("--theme-y",`${r}%`),this.stopMonitoring();const o=()=>{this.adapter&&"function"==typeof this.adapter.toggleTheme&&this.adapter.toggleTheme(t).catch(()=>{}),this.apply(t);};if(!document.startViewTransition||window.matchMedia("(prefers-reduced-motion: reduce)").matches)return o(),this.mode=t,this.emitChange(),this.monitorTheme(),t;const a=document.startViewTransition(()=>{o();});return a.ready.then(()=>{const e=window.innerWidth-n/100*window.innerWidth,t=window.innerHeight-r/100*window.innerHeight,o=Math.hypot(Math.max(n/100*window.innerWidth,e),Math.max(r/100*window.innerHeight,t)),a=[`circle(0px at ${n}% ${r}%)`,`circle(${o}px at ${n}% ${r}%)`];document.documentElement.animate({clipPath:a},{duration:500,easing:"ease-in",pseudoElement:"::view-transition-new(root)",fill:"forwards"});}),await a.finished.catch(()=>{}),this.skipNextDetection=true,this.onModeChange&&this.onModeChange(t,this.preference),this.monitorTheme(),this.mode=t,this.emitChange(),t}
         /**
            * 设置主题模式(绝对操作)
            * 与 toggle() 不同,此方法明确指定目标模式,无论调用多少次结果都是确定的
            * 如果当前已是目标模式,则不做任何操作
            * @param targetMode 目标模式
            * @param event 可选的鼠标事件,用于确定动画中心
            * @returns 包含最终模式和是否触发了动画
            */async setMode(e,t){const n="system"===e?"system":"dark"===e?"dark":"light";if("system"===n){this.preference="system",this.ensureSystemListener();const e=this.getSystemMode(),n=this.mode!==e;let r=false;return Boolean(t)&&n?r=await this.applyWithTransition(()=>{this.syncPageTheme(e,"system");},t):this.syncPageTheme(e,"system"),n&&(this.mode=e,this.emitChange()),this.onModeChange&&this.onModeChange(e,this.preference),{mode:e,animated:r}}if(this.detectCurrentTheme()===n)return this.preference=n,this.syncPageTheme(n,n),this.onModeChange&&this.onModeChange(n,this.preference),{mode:n,animated:false};return {mode:await this.toggle(t),animated:true}}getMode(){return this.mode}getSnapshot=()=>this.mode;
         /**
            * 订阅模式变化(用于 useSyncExternalStore)
            * @returns 取消订阅函数
            */
         subscribe=e=>(this.listeners.add(e),()=>{this.listeners.delete(e);});emitChange(){for(const e of this.listeners)e();}destroy(){this.stopMonitoring(),this.listeners.clear();}} exports("T", Ca);class Ta{handlers=new Map;settings=null;isMac=Sn();isListening=false;processedEvents=new WeakSet;updateSettings(e){this.settings=e||null;}register(e,t){this.handlers.set(e,t);}registerAll(e){for(const[t,n]of Object.entries(e))n&&this.handlers.set(t,n);}unregister(e){this.handlers.delete(e);}clearAll(){this.handlers.clear();}startListening(){this.isListening||(window.addEventListener("keydown",this.handleKeyDown,true),document.addEventListener("keydown",this.handleKeyDown,true),this.isListening=true);}stopListening(){this.isListening&&(window.removeEventListener("keydown",this.handleKeyDown,true),document.removeEventListener("keydown",this.handleKeyDown,true),this.isListening=false);}shouldIgnoreEvent(e){const t=e.target;if(!(t&&t instanceof Element))return  false;return !("INPUT"!==t.tagName&&"TEXTAREA"!==t.tagName&&!t.isContentEditable&&"true"!==t.getAttribute("contenteditable")&&!t.classList.contains("ProseMirror")||e.ctrlKey||e.metaKey||e.altKey)}matchesBinding(e,t){const n=e.key.toLowerCase(),r=t.key.toLowerCase();let o=n===r||"arrowup"===r&&"arrowup"===n||"arrowdown"===r&&"arrowdown"===n||"arrowleft"===r&&"arrowleft"===n||"arrowright"===r&&"arrowright"===n;if(!o&&t.shift&&/^[0-9]$/.test(r)&&e.code===`Digit${r}`&&(o=true),!o)return  false;const a=!!t.alt===e.altKey,i=!!t.shift===e.shiftKey;let s;if(this.isMac){s=(!!t.ctrl||!!t.meta)===e.metaKey&&!e.ctrlKey;}else s=!!t.ctrl===e.ctrlKey;return a&&i&&s}handleKeyDown=e=>{if(this.processedEvents.has(e))return;if(this.processedEvents.add(e),false===e.isTrusted)return;if(!this.settings?.enabled)return;if(this.shouldIgnoreEvent(e))return;const t={...vn,...this.settings.keybindings};for(const[n,r]of Object.entries(t))if(null!==r&&this.matchesBinding(e,r)){const t=this.handlers.get(n);if(t)return e.preventDefault(),e.stopPropagation(),void t()}};trigger(e){const t=this.handlers.get(e);t&&t();}destroy(){this.stopListening(),this.clearAll();}}let Da=null;let Ea=null;const Aa=new Set,_a=()=>Ea,La=e=>{Ea=e,Aa.forEach(e=>e());},Pa=e=>(Aa.add(e),()=>Aa.delete(e)),Na=()=>Ea;function Ma(){const e=(window.unsafeWindow?window.unsafeWindow:window).document.querySelectorAll("iframe");for(const t of e)try{const e=t.contentDocument||t.contentWindow?.document;if(e){const t=e.querySelector('flt-semantics[style*="overflow-y: scroll"]');if(t&&t.scrollHeight>t.clientHeight)return t}}catch{}return null}function Ia(e,t){{const n=Ma();if(!n)return Promise.resolve({success:false,reason:"no_flutter_container"});let r;switch(e){case "scrollToTop":n.scrollTop=0,r={success:true,scrollTop:n.scrollTop};break;case "scrollToBottom":n.scrollTop=n.scrollHeight,r={success:true,scrollTop:n.scrollTop};break;case "scrollTo":"number"==typeof t&&(n.scrollTop=t),r={success:true,scrollTop:n.scrollTop};break;case "getScrollInfo":r={success:true,scrollTop:n.scrollTop,scrollHeight:n.scrollHeight};break;default:r={success:false};}return Promise.resolve(r)}}async function ja(e){const t=await Ia("getScrollInfo");if(t.success){const e=t.scrollTop||0,n=t.scrollHeight||0;return await Ia("scrollToTop"),{container:Oa(),previousScrollTop:e,scrollHeight:n}}const n=e?.getScrollContainer();if(n&&n.scrollHeight>n.clientHeight){const t=n.scrollTop,r=n.scrollHeight;return "doubao"===e?.getSiteId()&&"undefined"!=typeof window&&"column-reverse"===window.getComputedStyle(n).flexDirection?n.scrollTo({top:-r,behavior:"instant",__bypassLock:true}):n.scrollTo({top:0,behavior:"instant",__bypassLock:true}),{container:n,previousScrollTop:t,scrollHeight:r}}const r=document.documentElement;return {container:r,previousScrollTop:r.scrollTop,scrollHeight:r.scrollHeight}}async function Ra(e){const t=await Ia("getScrollInfo");if(t.success){const e=t.scrollTop||0;return await Ia("scrollToBottom"),{container:Oa(),previousScrollTop:e}}const n=e?.getScrollContainer();if(n&&n.scrollHeight>n.clientHeight){const t=n.scrollTop;return "doubao"===e?.getSiteId()&&"undefined"!=typeof window&&"column-reverse"===window.getComputedStyle(n).flexDirection?n.scrollTo({top:0,behavior:"instant",__bypassLock:true}):n.scrollTo({top:n.scrollHeight,behavior:"instant",__bypassLock:true}),{container:n,previousScrollTop:t}}const r=document.documentElement;return {container:r,previousScrollTop:r.scrollTop}}async function Fa(e,t){const n=await Ia("scrollTo",t);if(n.success)return {success:true,currentScrollTop:n.scrollTop||0};const r=e?.getScrollContainer();return r&&r.scrollHeight>r.clientHeight?(r.scrollTo({top:t,behavior:"instant",__bypassLock:true}),{success:true,currentScrollTop:r.scrollTop}):(document.documentElement.scrollTo({top:t,behavior:"instant",__bypassLock:true}),{success:true,currentScrollTop:document.documentElement.scrollTop})}async function za(e){const t=await Ia("getScrollInfo");if(t.success)return {scrollTop:t.scrollTop||0,scrollHeight:t.scrollHeight||0,clientHeight:0,isFlutterMode:true};const n=e?.getScrollContainer();return n&&n.scrollHeight>n.clientHeight?{scrollTop:n.scrollTop,scrollHeight:n.scrollHeight,clientHeight:n.clientHeight,isFlutterMode:false}:{scrollTop:document.documentElement.scrollTop,scrollHeight:document.documentElement.scrollHeight,clientHeight:document.documentElement.clientHeight,isFlutterMode:false}}function Oa(){const e=document.createElement("div");return Object.defineProperty(e,"__isFlutterProxy",{value:true}),e}function Ba(e){return  true===e.__isFlutterProxy}const qa=1200,Ua=2,Ha=10,Wa=50;async function Ka(e){const{adapter:t,targetHeight:n,loadAll:r=false,onProgress:o,signal:a,allowShortCircuit:i=false}=e;let{previousScrollTop:s,container:l}=await ja(t);if(Ba(l)){return {success:true,finalHeight:(await za(t)).scrollHeight,heightAdded:0,previousScrollTop:s,isFlutterMode:true,silent:true}}let c=l.scrollHeight,d=c,u=0,h=0;for(;;){if(a?.aborted)return {success:false,finalHeight:l.scrollHeight,heightAdded:l.scrollHeight-c,previousScrollTop:s,isFlutterMode:false,silent:false};if(h++,h>=Wa)return {success:true,finalHeight:l.scrollHeight,heightAdded:l.scrollHeight-c,previousScrollTop:s,isFlutterMode:false,silent:false};const e="doubao"===t?.getSiteId()&&"undefined"!=typeof window&&"column-reverse"===window.getComputedStyle(l).flexDirection;if(l.scrollTop=e?-l.scrollHeight:0,l.dispatchEvent(new WheelEvent("wheel",{deltaY:-100,bubbles:true})),await Va(qa),a?.aborted)return {success:false,finalHeight:l.scrollHeight,heightAdded:l.scrollHeight-c,previousScrollTop:s,isFlutterMode:false,silent:false};if(t&&("HTML"===l.tagName||"BODY"===l.tagName)){const e=t.getScrollContainer();if(e&&e!==l&&"HTML"!==e.tagName&&"BODY"!==e.tagName){l=e,c=l.scrollHeight,d=l.scrollHeight;const n="doubao"===t?.getSiteId()&&"undefined"!=typeof window&&"column-reverse"===window.getComputedStyle(l).flexDirection;l.scrollTop=n?-l.scrollHeight:0;}}const r=l.scrollHeight;if(void 0!==n&&r>=n)return {success:true,finalHeight:r,heightAdded:r-c,previousScrollTop:s,isFlutterMode:false,silent:false};if(r>d)d=r,u=0,o?.(`${Math.round(r/1e3)}k`);else {u++;const e=l.scrollHeight>l.clientHeight+100,t=1===h&&r===c;if(t&&i)return {success:true,finalHeight:r,heightAdded:0,previousScrollTop:s,isFlutterMode:false,silent:true};if(t&&e)return {success:true,finalHeight:r,heightAdded:0,previousScrollTop:s,isFlutterMode:false,silent:true};if(u>=(e?Ua:Ha))return {success:true,finalHeight:r,heightAdded:r-c,previousScrollTop:s,isFlutterMode:false,silent:false}}}}function Va(e){return new Promise(t=>setTimeout(t,e))}function Ga(e,t,n){if(!t)return;const r=t.getSessionId(),o=e.getConversations();if(0===o.length)return void Yr(En("noConversations")||"暂无会话");const a=[...o].sort((e,t)=>(t.updatedAt||0)-(e.updatedAt||0)),i=a.findIndex(e=>e.id===r);let s;s=-1===i?0:"prev"===n?i>0?i-1:a.length-1:i<a.length-1?i+1:0;const l=a[s];l&&(t.navigateToConversation(l.id,l.url),Yr(l.title||En("untitledConversation")||"未命名会话"));}function Qa({settings:e,adapter:t,outlineManager:n,conversationManager:o,onPanelToggle:a,onThemeToggle:i,onOpenSettings:s,onShowShortcuts:l,isPanelVisible:c,isSnapped:d,onShowSnappedPanel:h,onToggleScrollLock:g}){const p=u.useMemo(()=>(Da||(Da=new Ta),Da),[]),m=u.useCallback(async()=>{if(!t)return;const e=await za(t);La(e.scrollTop),await Ka({adapter:t,loadAll:true,allowShortCircuit:true}),await ja(t),Yr(En("scrolledToTop")||"已滚动到顶部");},[t]),f=u.useCallback(async()=>{if(!t)return;const e=await za(t);La(e.scrollTop),await Ra(t),Yr(En("scrolledToBottom")||"已滚动到底部");},[t]),b=u.useCallback(async()=>{if(!t)return;const e=_a();if(null===e)return void Yr(En("noAnchor")||"无可用锚点");const n=(await za(t)).scrollTop;await Fa(t,e),La(n);},[t]),y=u.useCallback(()=>{n&&(n.refresh(),Yr(En("outlineRefreshed")||"大纲已刷新"));},[n]),v=u.useCallback(()=>{if(!n)return;n.getState().isAllExpanded?n.collapseAll():n.expandAll();},[n]),x=u.useCallback(e=>{n?.setLevel(e);},[n]),S=u.useCallback(()=>{n?.toggleGroupMode();},[n]),w=u.useCallback(()=>{n?.toggleBookmarkMode();},[n]),k=u.useCallback(()=>{n?.setShowUserQueries(true),n?.setLevel(0);},[n]),C=u.useRef(null),T=u.useCallback(e=>{if(!n)return;const t=n.getState().tree;if(!t||0===t.length)return;const r=e=>{const t=[];for(const n of e)t.push(n),n.children&&n.children.length>0&&!n.collapsed&&t.push(...r(n.children));return t},o=r(t);if(0===o.length)return;let a,i=-1;if(null!==C.current){const e=o.findIndex(e=>e.index===C.current);if(-1!==e){const t=o[e];let r=t.element;if(r&&r.isConnected||(r=t.isUserQuery&&0===t.level?n.findUserQueryElement(t.queryIndex,t.text):n.findElementByHeading(t.level,t.text)),r&&r.isConnected){const t=r.getBoundingClientRect(),n=window.innerHeight;Math.abs(t.top-n/2)<2*n&&(i=e);}}}if(-1===i){const e=n.getScrollContainer();if(e){const t=n.findVisibleItemIndex(e.scrollTop,e.clientHeight);null!==t&&(i=o.findIndex(e=>e.index===t));}}a=-1===i?"prev"===e?o.length-1:0:"prev"===e?Math.max(0,i-1):Math.min(o.length-1,i+1);const s=o[a];if(s){C.current=s.index,n.revealNode(s.index);let e=s.element;if(e&&e.isConnected||(e=s.isUserQuery&&0===s.level?n.findUserQueryElement(s.queryIndex,s.text):n.findElementByHeading(s.level,s.text),e&&(s.element=e)),e&&e.isConnected){e.scrollIntoView({behavior:"smooth",block:"start"});Yr(s.text?.replace(/\s+/g," ").trim()||En("locatingOutline")||"正在定位大纲位置...",1e3,{className:"gh-toast--outline-nav",maxWidth:360});}}},[n]),D=u.useCallback(()=>T("prev"),[T]),E=u.useCallback(()=>T("next"),[T]),A=u.useCallback(()=>{Yr(En("syncingConversations")||"正在同步会话列表..."),window.dispatchEvent(new CustomEvent("ophel:refreshConversations"));},[]),_=u.useCallback(()=>{s();},[s]),L=u.useCallback(e=>{c?d&&h&&h():a(),window.dispatchEvent(new CustomEvent("ophel:switchTab",{detail:{index:e}}));},[c,a,d,h]),P=u.useCallback(()=>L(0),[L]),N=u.useCallback(()=>L(1),[L]),M=u.useCallback(()=>L(2),[L]),I=u.useCallback(()=>{if(!e?.features?.outline?.enabled)return void Yr(En("outlineDisabled")||"大纲功能已禁用");!c?a():d&&h&&h(),window.__ophelPendingLocateOutline=true,window.dispatchEvent(new CustomEvent("ophel:locateOutline")),Yr(En("locatingOutline")||"正在定位大纲位置...");},[e,c,d,a,h]),j=u.useCallback(()=>{if(!e?.features?.outline?.enabled)return void Yr(En("outlineDisabled")||"大纲功能已禁用");!c?a():d&&h&&h(),window.__ophelPendingSearchOutline=true,setTimeout(()=>{window.dispatchEvent(new CustomEvent("ophel:searchOutline"));},50);},[e,c,d,a,h]),R=u.useCallback(()=>{if(!e?.features?.conversations?.enabled)return void Yr(En("conversationsDisabled")||"会话功能已禁用");if(t?.isSharePage()||t?.isNewConversation())return void Yr(En("noConversationToLocate")||"当前无会话可定位");!c?a():d&&h&&h(),window.__ophelPendingLocateConversation=true,window.dispatchEvent(new CustomEvent("ophel:locateConversation")),Yr(En("locatingConversation")||"正在定位当前会话...");},[t,e,c,d,a,h]),F=u.useCallback(()=>{const e=new KeyboardEvent("keydown",{key:"o",code:"KeyO",ctrlKey:true,shiftKey:true,bubbles:true});document.dispatchEvent(e);},[]),z=u.useCallback(async()=>{if(!o||!t)return;const e=t.getSessionId();if(e){Yr(En("exportStarted")||"开始导出对话...");try{await o.exportConversation(e,"markdown"),Yr(En("exportSuccess")||"导出成功");}catch(n){console.error("Export failed:",n),Yr(En("exportFailed")||"导出失败");}}else Yr(En("exportNeedOpenFirst")||"请先打开要导出的会话");},[o,t]),O=u.useCallback(async()=>{if(!t)return;const e=t.getLatestReplyText();if(e)try{await navigator.clipboard.writeText(e),Yr(En("replyCopied")||"已复制最新回复");}catch{Yr(En("copyFailed")||"复制失败");}else Yr(En("noReplyToCopy")||"无可复制内容");},[t]),B=u.useCallback(()=>{g?g():Yr(En("scrollLockToggled")||"滚动锁定已切换");},[g]),q=u.useCallback(()=>{if(!t)return;const e=t.findTextarea();e?(e.focus(),Yr(En("inputFocused")||"已聚焦输入框")):Yr(En("noTextarea")||"未找到输入框");},[t]),U=u.useCallback(()=>{if(!t)return;const e=['[data-testid="stop-button"]','button[aria-label*="Stop"]','button[aria-label*="停止"]',".stop-button",'md-icon-button[aria-label*="Stop"]'];for(const t of e){const e=document.querySelector(t);if(e&&null!==e.offsetParent)return e.click(),void Yr(En("generationStopped")||"已停止生成")}Yr(En("notGenerating")||"当前未在生成");},[t]),H=u.useCallback(()=>{o&&Ga(o,t,"prev");},[o,t]),W=u.useCallback(()=>{o&&Ga(o,t,"next");},[o,t]),K=u.useCallback(async()=>{const e=document.querySelectorAll("pre code, pre.code-block, .code-block code");if(0===e.length)return void Yr(En("noCodeBlock")||"未找到代码块");const t=e[e.length-1].textContent||"";if(t.trim())try{await navigator.clipboard.writeText(t),Yr(En("codeBlockCopied")||"代码块已复制");}catch{Yr(En("copyFailed")||"复制失败");}else Yr(En("noCodeBlock")||"未找到代码块");},[]),V=u.useCallback(()=>{l?l():(_(),setTimeout(()=>{window.dispatchEvent(new CustomEvent("ophel:navigateSettingsPage",{detail:{page:"shortcuts"}}));},100));},[l,_]),G=u.useCallback(()=>{if(!t)return;t.clickModelSelector()||Yr(En("modelSelectorNotFound")||"未找到模型选择器");},[t]),Q=u.useCallback(()=>{window.dispatchEvent(new CustomEvent("ophel:togglePromptQueue"));},[]),Z=u.useCallback((e,t)=>{_(),setTimeout(()=>{window.dispatchEvent(new CustomEvent("ophel:navigateSettingsPage",{detail:{page:e,subTab:t}}));},100);},[_]),J=u.useCallback(()=>Z("siteSettings","claude"),[Z]),$=u.useCallback(()=>Z("siteSettings","gemini"),[Z]),X=u.useCallback(()=>Z("appearance"),[Z]),Y=u.useCallback(()=>Z("siteSettings","modelLock"),[Z]),ee=u.useCallback(async()=>{if(location.hostname.includes("claude.ai")||location.hostname.includes("claude.com"))try{const{platform:e}=await r(async()=>{const{platform:e}=await Promise.resolve().then(()=>ou);return {platform:e}},void 0),t=await e.switchNextClaudeKey();if(t.success)Yr((En("claudeKeySwitched")||"Session Key 已切换")+`: ${t.keyName}`,2e3);else if("claudeOnlyOneKey"===t.error)Yr(En("claudeOnlyOneKeyTip")||"当前只有一个可用 Key,且正在使用中",2e3);else if("noClaudeKeys"===t.error)Yr(En("noClaudeKeys")||"未配置任何 Session Key",2e3);else {const e=En(t.error);Yr(e!==t.error?e:t.error||En("operationFailed"),2e3);}}catch(e){Yr("切换失败: "+e.message,2e3);}else Yr(En("claudeShortcutOnlyOnSite")||"快捷键仅在 Claude 站点可用",2e3);},[]);return u.useEffect(()=>{const e=()=>{if("visible"===document.visibilityState&&!document.hasFocus())try{window.focus();}catch{}},t=window.setTimeout(e,150);return window.addEventListener("pageshow",e),()=>{window.clearTimeout(t),window.removeEventListener("pageshow",e);}},[]),u.useEffect(()=>{p.updateSettings(e?.shortcuts);},[p,e?.shortcuts]),u.useEffect(()=>{const e={[Et]:m,[At]:f,[_t]:b,[Lt]:a,[Pt]:i,[Nt]:_,[Mt]:P,[It]:N,[jt]:M,[qt]:y,[Wt]:v,[Kt]:()=>x(1),[Vt]:()=>x(2),[Gt]:()=>x(3),[Qt]:()=>x(4),[Zt]:()=>x(5),[Jt]:()=>x(6),[Rt]:S,[zt]:w,[Ft]:k,[Ut]:D,[Ht]:E,[Ot]:I,[Bt]:j,[$t]:F,[Xt]:A,[Yt]:R,[en]:H,[tn]:W,[nn]:z,[rn]:O,[on]:K,[an]:B,[sn]:q,[ln]:U,[dn]:V,[un]:G,[hn]:J,[gn]:ee,[pn]:$,[mn]:X,[fn]:Y,[cn]:Q};return p.registerAll(e),p.startListening(),()=>{p.stopListening(),p.clearAll();}},[p,m,f,b,a,i,_,P,N,M,y,v,x,S,w,k,D,E,I,j,F,A,R,H,W,z,O,K,B,q,U,V,J,G,ee,$,X,Y,Q]),p}const Za="CHECK_PERMISSIONS",Ja="REQUEST_PERMISSIONS",$a="CLEAR_ALL_DATA",Xa="RESTORE_DATA";function Ya(e){return chrome.runtime.sendMessage(e)}const ei="GH_MONITOR_INIT",ti="GH_MONITOR_START",ni="GH_MONITOR_COMPLETE",ri="GH_PRIVACY_TOGGLE"; exports({ E: ei, f: ti, d: ni, h: ri });var oi,ai;function ii(){if(ai)return oi;function e(t){return t instanceof Map?t.clear=t.delete=t.set=function(){throw new Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=function(){throw new Error("set is read-only")}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach(n=>{const r=t[n],o=typeof r;"object"!==o&&"function"!==o||Object.isFrozen(r)||e(r);}),t}ai=1;class t{
         /**
              * @param {CompiledMode} mode
              */
         constructor(e){ void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=false;}ignoreMatch(){this.isMatchIgnored=true;}}function n(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#x27;")}function r(e,...t){const n=Object.create(null);for(const r in e)n[r]=e[r];return t.forEach(function(e){for(const t in e)n[t]=e[t];}),
         /** @type {T} */n}const o=e=>!!e.scope;class a{
         /**
              * Creates a new HTMLRenderer
              *
              * @param {Tree} parseTree - the parse tree (must support `walk` API)
              * @param {{classPrefix: string}} options
              */
         constructor(e,t){this.buffer="",this.classPrefix=t.classPrefix,e.walk(this);}
         /**
              * Adds texts to the output stream
              *
              * @param {string} text */addText(e){this.buffer+=n(e);}
         /**
              * Adds a node open to the output stream (if needed)
              *
              * @param {Node} node */openNode(e){if(!o(e))return;const t=((e,{prefix:t})=>{if(e.startsWith("language:"))return e.replace("language:","language-");if(e.includes(".")){const n=e.split(".");return [`${t}${n.shift()}`,...n.map((e,t)=>`${e}${"_".repeat(t+1)}`)].join(" ")}return `${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t);}
         /**
              * Adds a node close to the output stream (if needed)
              *
              * @param {Node} node */closeNode(e){o(e)&&(this.buffer+="</span>");}value(){return this.buffer}
         /**
              * Builds a span element
              *
              * @param {string} className */
         span(e){this.buffer+=`<span class="${e}">`;}}const i=(e={})=>{const t={children:[]};return Object.assign(t,e),t};class s{constructor(){this.rootNode=i(),this.stack=[this.rootNode];}get top(){return this.stack[this.stack.length-1]}get root(){return this.rootNode}
         /** @param {Node} node */add(e){this.top.children.push(e);}
         /** @param {string} scope */openNode(e){const t=i({scope:e});this.add(t),this.stack.push(t);}closeNode(){if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)}
         /**
              * @typedef { import("./html_renderer").Renderer } Renderer
              * @param {Renderer} builder
              */walk(e){return this.constructor._walk(e,this.rootNode)}
         /**
              * @param {Renderer} builder
              * @param {Node} node
              */static _walk(e,t){return "string"==typeof t?e.addText(t):t.children&&(e.openNode(t),t.children.forEach(t=>this._walk(e,t)),e.closeNode(t)),e}
         /**
              * @param {Node} node
              */static _collapse(e){"string"!=typeof e&&e.children&&(e.children.every(e=>"string"==typeof e)?e.children=[e.children.join("")]:e.children.forEach(e=>{s._collapse(e);}));}}class l extends s{
         /**
              * @param {*} options
              */
         constructor(e){super(),this.options=e;}
         /**
              * @param {string} text
              */addText(e){""!==e&&this.add(e);}
         /** @param {string} scope */startScope(e){this.openNode(e);}endScope(){this.closeNode();}
         /**
              * @param {Emitter & {root: DataNode}} emitter
              * @param {string} name
              */__addSublanguage(e,t){const n=e.root;t&&(n.scope=`language:${t}`),this.add(n);}toHTML(){return new a(this,this.options).value()}finalize(){return this.closeAllNodes(),true}}function c(e){return e?"string"==typeof e?e:e.source:null}function d(e){return g("(?=",e,")")}function u(e){return g("(?:",e,")*")}function h(e){return g("(?:",e,")?")}function g(...e){return e.map(e=>c(e)).join("")}function p(...e){const t=function(e){const t=e[e.length-1];return "object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{}}(e);return "("+(t.capture?"":"?:")+e.map(e=>c(e)).join("|")+")"}function m(e){return new RegExp(e.toString()+"|").exec("").length-1}const f=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./;function b(e,{joinWith:t}){let n=0;return e.map(e=>{n+=1;const t=n;let r=c(e),o="";for(;r.length>0;){const e=f.exec(r);if(!e){o+=r;break}o+=r.substring(0,e.index),r=r.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?o+="\\"+String(Number(e[1])+t):(o+=e[0],"("===e[0]&&n++);}return o}).map(e=>`(${e})`).join(t)}const y="[a-zA-Z]\\w*",v="[a-zA-Z_]\\w*",x="\\b\\d+(\\.\\d+)?",S="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",w="\\b(0b[01]+)",k={begin:"\\\\[\\s\\S]",relevance:0},C={scope:"string",begin:"'",end:"'",illegal:"\\n",contains:[k]},T={scope:"string",begin:'"',end:'"',illegal:"\\n",contains:[k]},D=function(e,t,n={}){const o=r({scope:"comment",begin:e,end:t,contains:[]},n);o.contains.push({scope:"doctag",begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)",end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:true,relevance:0});const a=p("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/);return o.contains.push({begin:g(/[ ]+/,
         // necessary to prevent us gobbling up doctags like /* @author Bob Mcgill */
         "(",a,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),o},E=D("//","$"),A=D("/\\*","\\*/"),_=D("#","$"),L={scope:"number",begin:x,relevance:0},P={scope:"number",begin:S,relevance:0},N={scope:"number",begin:w,relevance:0},M={scope:"regexp",begin:/\/(?=[^/\n]*\/)/,end:/\/[gimuy]*/,contains:[k,{begin:/\[/,end:/\]/,relevance:0,contains:[k]}]},I={scope:"title",begin:y,relevance:0},j={scope:"title",begin:v,relevance:0},R={begin:"\\.\\s*"+v,relevance:0};var F=Object.freeze({__proto__:null,APOS_STRING_MODE:C,BACKSLASH_ESCAPE:k,BINARY_NUMBER_MODE:N,BINARY_NUMBER_RE:w,COMMENT:D,C_BLOCK_COMMENT_MODE:A,C_LINE_COMMENT_MODE:E,C_NUMBER_MODE:P,C_NUMBER_RE:S,END_SAME_AS_BEGIN:function(e){return Object.assign(e,{
         /** @type {ModeCallback} */
         "on:begin":(e,t)=>{t.data._beginMatch=e[1];},
         /** @type {ModeCallback} */
         "on:end":(e,t)=>{t.data._beginMatch!==e[1]&&t.ignoreMatch();}})},HASH_COMMENT_MODE:_,IDENT_RE:y,MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:R,NUMBER_MODE:L,NUMBER_RE:x,PHRASAL_WORDS_MODE:{begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/},QUOTE_STRING_MODE:T,REGEXP_MODE:M,RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",SHEBANG:(e={})=>{const t=/^#![ ]*\//;return e.binary&&(e.begin=g(t,/.*\b/,e.binary,/\b.*/)),r({scope:"meta",begin:t,end:/$/,relevance:0,
         /** @type {ModeCallback} */
         "on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch();}},e)},TITLE_MODE:I,UNDERSCORE_IDENT_RE:v,UNDERSCORE_TITLE_MODE:j});function z(e,t){"."===e.input[e.index-1]&&t.ignoreMatch();}function O(e,t){ void 0!==e.className&&(e.scope=e.className,delete e.className);}function B(e,t){t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)",e.__beforeBegin=z,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords,void 0===e.relevance&&(e.relevance=0));}function q(e,t){Array.isArray(e.illegal)&&(e.illegal=p(...e.illegal));}function U(e,t){if(e.match){if(e.begin||e.end)throw new Error("begin & end are not supported with match");e.begin=e.match,delete e.match;}}function H(e,t){ void 0===e.relevance&&(e.relevance=1);}const W=(e,t)=>{if(!e.beforeMatch)return;if(e.starts)throw new Error("beforeMatch cannot be used with starts");const n=Object.assign({},e);Object.keys(e).forEach(t=>{delete e[t];}),e.keywords=n.keywords,e.begin=g(n.beforeMatch,d(n.begin)),e.starts={relevance:0,contains:[Object.assign(n,{endsParent:true})]},e.relevance=0,delete n.beforeMatch;},K=["of","and","for","in","not","or","if","then","parent","list","value"];function V(e,t,n="keyword"){const r=Object.create(null);return "string"==typeof e?o(n,e.split(" ")):Array.isArray(e)?o(n,e):Object.keys(e).forEach(function(n){Object.assign(r,V(e[n],t,n));}),r;function o(e,n){t&&(n=n.map(e=>e.toLowerCase())),n.forEach(function(t){const n=t.split("|");r[n[0]]=[e,G(n[0],n[1])];});}}function G(e,t){return t?Number(t):function(e){return K.includes(e.toLowerCase())}(e)?0:1}const Q={},Z=e=>{console.error(e);},J=(e,...t)=>{console.log(`WARN: ${e}`,...t);},$=(e,t)=>{Q[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),Q[`${e}/${t}`]=true);},X=new Error;function Y(e,t,{key:n}){let r=0;const o=e[n],a={},i={};for(let s=1;s<=t.length;s++)i[s+r]=o[s],a[s+r]=true,r+=m(t[s-1]);e[n]=i,e[n]._emit=a,e[n]._multi=true;}function ee(e){!function(e){e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope,delete e.scope);}(e),"string"==typeof e.beginScope&&(e.beginScope={_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope}),function(e){if(Array.isArray(e.begin)){if(e.skip||e.excludeBegin||e.returnBegin)throw Z("skip, excludeBegin, returnBegin not compatible with beginScope: {}"),X;if("object"!=typeof e.beginScope||null===e.beginScope)throw Z("beginScope must be object"),X;Y(e,e.begin,{key:"beginScope"}),e.begin=b(e.begin,{joinWith:""});}}(e),function(e){if(Array.isArray(e.end)){if(e.skip||e.excludeEnd||e.returnEnd)throw Z("skip, excludeEnd, returnEnd not compatible with endScope: {}"),X;if("object"!=typeof e.endScope||null===e.endScope)throw Z("endScope must be object"),X;Y(e,e.end,{key:"endScope"}),e.end=b(e.end,{joinWith:""});}}(e);}function te(e){function t(t,n){return new RegExp(c(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":""))}class n{constructor(){this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0;}
         // @ts-ignore
         addRule(e,t){t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]),this.matchAt+=m(e)+1;}compile(){0===this.regexes.length&&(this.exec=()=>null);const e=this.regexes.map(e=>e[1]);this.matcherRe=t(b(e,{joinWith:"|"}),true),this.lastIndex=0;}
         /** @param {string} s */exec(e){this.matcherRe.lastIndex=this.lastIndex;const t=this.matcherRe.exec(e);if(!t)return null;const n=t.findIndex((e,t)=>t>0&&void 0!==e),r=this.matchIndexes[n];return t.splice(0,n),Object.assign(t,r)}}class o{constructor(){this.rules=[],this.multiRegexes=[],this.count=0,this.lastIndex=0,this.regexIndex=0;}
         // @ts-ignore
         getMatcher(e){if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n;return this.rules.slice(e).forEach(([e,n])=>t.addRule(e,n)),t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){return 0!==this.regexIndex}considerAll(){this.regexIndex=0;}
         // @ts-ignore
         addRule(e,t){this.rules.push([e,t]),"begin"===t.type&&this.count++;}
         /** @param {string} s */exec(e){const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex;let n=t.exec(e);if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else {const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e);}return n&&(this.regexIndex+=n.position+1,this.regexIndex===this.count&&this.considerAll()),n}}if(e.compilerExtensions||(e.compilerExtensions=[]),e.contains&&e.contains.includes("self"))throw new Error("ERR: contains `self` is not supported at the top-level of a language.  See documentation.");return e.classNameAliases=r(e.classNameAliases||{}),function n(a,i){const s=
         /** @type CompiledMode */a;if(a.isCompiled)return s;[O,U,ee,W].forEach(e=>e(a,i)),e.compilerExtensions.forEach(e=>e(a,i)),a.__beforeBegin=null,[B,q,H].forEach(e=>e(a,i)),a.isCompiled=true;let l=null;return "object"==typeof a.keywords&&a.keywords.$pattern&&(a.keywords=Object.assign({},a.keywords),l=a.keywords.$pattern,delete a.keywords.$pattern),l=l||/\w+/,a.keywords&&(a.keywords=V(a.keywords,e.case_insensitive)),s.keywordPatternRe=t(l,true),i&&(a.begin||(a.begin=/\B|\b/),s.beginRe=t(s.begin),a.end||a.endsWithParent||(a.end=/\B|\b/),a.end&&(s.endRe=t(s.end)),s.terminatorEnd=c(s.end)||"",a.endsWithParent&&i.terminatorEnd&&(s.terminatorEnd+=(a.end?"|":"")+i.terminatorEnd)),a.illegal&&(s.illegalRe=t(
         /** @type {RegExp | string} */
         a.illegal)),a.contains||(a.contains=[]),a.contains=[].concat(...a.contains.map(function(e){return function(e){e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map(function(t){return r(e,{variants:null},t)}));if(e.cachedVariants)return e.cachedVariants;if(ne(e))return r(e,{starts:e.starts?r(e.starts):null});if(Object.isFrozen(e))return r(e);return e}("self"===e?a:e)})),a.contains.forEach(function(e){n(
         /** @type Mode */
         e,s);}),a.starts&&n(a.starts,i),s.matcher=function(e){const t=new o;return e.contains.forEach(e=>t.addRule(e.begin,{rule:e,type:"begin"})),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end"}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t}(s),s}(
         /** @type Mode */
         e)}function ne(e){return !!e&&(e.endsWithParent||ne(e.starts))}class re extends Error{constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t;}}const oe=n,ae=r,ie=Symbol("nomatch"),se=function(n){const r=Object.create(null),o=Object.create(null),a=[];let i=true;const s="Could not find the language '{}', did you forget to load/include a language module?",c={disableAutodetect:true,name:"Plain text",contains:[]};let m={ignoreUnescapedHTML:false,throwUnescapedHTML:false,noHighlightRe:/^(no-?highlight)$/i,languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-",cssSelector:"pre code",languages:null,__emitter:l};function f(e){return m.noHighlightRe.test(e)}function b(e,t,n){let r="",o="";"object"==typeof t?(r=e,n=t.ignoreIllegals,o=t.language):($("10.7.0","highlight(lang, code, ...args) has been deprecated."),$("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"),o=e,r=t),void 0===n&&(n=true);const a={code:r,language:o};D("before:highlight",a);const i=a.result?a.result:y(a.language,a.code,n);return i.code=a.code,D("after:highlight",i),i}function y(e,n,o,a){const l=Object.create(null);function c(e,t){return e.keywords[t]}function d(){if(!E.keywords)return void _.addText(L);let e=0;E.keywordPatternRe.lastIndex=0;let t=E.keywordPatternRe.exec(L),n="";for(;t;){n+=L.substring(e,t.index);const r=C.case_insensitive?t[0].toLowerCase():t[0],o=c(E,r);if(o){const[e,a]=o;if(_.addText(n),n="",l[r]=(l[r]||0)+1,l[r]<=7&&(P+=a),e.startsWith("_"))n+=t[0];else {const n=C.classNameAliases[e]||e;h(t[0],n);}}else n+=t[0];e=E.keywordPatternRe.lastIndex,t=E.keywordPatternRe.exec(L);}n+=L.substring(e),_.addText(n);}function u(){null!=E.subLanguage?function(){if(""===L)return;let e=null;if("string"==typeof E.subLanguage){if(!r[E.subLanguage])return void _.addText(L);e=y(E.subLanguage,L,true,A[E.subLanguage]),A[E.subLanguage]=/** @type {CompiledMode} */
         e._top;}else e=v(L,E.subLanguage.length?E.subLanguage:null);E.relevance>0&&(P+=e.relevance),_.__addSublanguage(e._emitter,e.language);}():d(),L="";}function h(e,t){""!==e&&(_.startScope(t),_.addText(e),_.endScope());}function g(e,t){let n=1;const r=t.length-1;for(;n<=r;){if(!e._emit[n]){n++;continue}const r=C.classNameAliases[e[n]]||e[n],o=t[n];r?h(o,r):(L=o,d(),L=""),n++;}}function p(e,t){return e.scope&&"string"==typeof e.scope&&_.openNode(C.classNameAliases[e.scope]||e.scope),e.beginScope&&(e.beginScope._wrap?(h(L,C.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap),L=""):e.beginScope._multi&&(g(e.beginScope,t),L="")),E=Object.create(e,{parent:{value:E}}),E}function f(e,n,r){let o=function(e,t){const n=e&&e.exec(t);return n&&0===n.index}(e.endRe,r);if(o){if(e["on:end"]){const r=new t(e);e["on:end"](n,r),r.isMatchIgnored&&(o=false);}if(o){for(;e.endsParent&&e.parent;)e=e.parent;return e}}if(e.endsWithParent)return f(e.parent,n,r)}function b(e){return 0===E.matcher.regexIndex?(L+=e[0],1):(I=true,0)}function x(e){const t=e[0],r=n.substring(e.index),o=f(E,e,r);if(!o)return ie;const a=E;E.endScope&&E.endScope._wrap?(u(),h(t,E.endScope._wrap)):E.endScope&&E.endScope._multi?(u(),g(E.endScope,e)):a.skip?L+=t:(a.returnEnd||a.excludeEnd||(L+=t),u(),a.excludeEnd&&(L=t));do{E.scope&&_.closeNode(),E.skip||E.subLanguage||(P+=E.relevance),E=E.parent;}while(E!==o.parent);return o.starts&&p(o.starts,e),a.returnEnd?0:t.length}let S={};function w(r,a){const s=a&&a[0];if(L+=r,null==s)return u(),0;if("begin"===S.type&&"end"===a.type&&S.index===a.index&&""===s){if(L+=n.slice(a.index,a.index+1),!i){const t=new Error(`0 width match regex (${e})`);throw t.languageName=e,t.badRule=S.rule,t}return 1}if(S=a,"begin"===a.type)return function(e){const n=e[0],r=e.rule,o=new t(r),a=[r.__beforeBegin,r["on:begin"]];for(const t of a)if(t&&(t(e,o),o.isMatchIgnored))return b(n);return r.skip?L+=n:(r.excludeBegin&&(L+=n),u(),r.returnBegin||r.excludeBegin||(L=n)),p(r,e),r.returnBegin?0:n.length}(a);if("illegal"===a.type&&!o){const e=new Error('Illegal lexeme "'+s+'" for mode "'+(E.scope||"<unnamed>")+'"');throw e.mode=E,e}if("end"===a.type){const e=x(a);if(e!==ie)return e}if("illegal"===a.type&&""===s)return L+="\n",1;if(M>1e5&&M>3*a.index){throw new Error("potential infinite loop, way more iterations than matches")}return L+=s,s.length}const C=k(e);if(!C)throw Z(s.replace("{}",e)),new Error('Unknown language: "'+e+'"');const T=te(C);let D="",E=a||T;const A={},_=new m.__emitter(m);!function(){const e=[];for(let t=E;t!==C;t=t.parent)t.scope&&e.unshift(t.scope);e.forEach(e=>_.openNode(e));}();let L="",P=0,N=0,M=0,I=false;try{if(C.__emitTokens)C.__emitTokens(n,_);else {for(E.matcher.considerAll();;){M++,I?I=!1:E.matcher.considerAll(),E.matcher.lastIndex=N;const e=E.matcher.exec(n);if(!e)break;const t=w(n.substring(N,e.index),e);N=e.index+t;}w(n.substring(N));}return _.finalize(),D=_.toHTML(),{language:e,value:D,relevance:P,illegal:!1,_emitter:_,_top:E}}catch(j){if(j.message&&j.message.includes("Illegal"))return {language:e,value:oe(n),illegal:true,relevance:0,_illegalBy:{message:j.message,index:N,context:n.slice(N-100,N+100),mode:j.mode,resultSoFar:D},_emitter:_};if(i)return {language:e,value:oe(n),illegal:false,relevance:0,errorRaised:j,_emitter:_,_top:E};throw j}}function v(e,t){t=t||m.languages||Object.keys(r);const n=function(e){const t={value:oe(e),illegal:false,relevance:0,_top:c,_emitter:new m.__emitter(m)};return t._emitter.addText(e),t}(e),o=t.filter(k).filter(T).map(t=>y(t,e,false));o.unshift(n);const a=o.sort((e,t)=>{if(e.relevance!==t.relevance)return t.relevance-e.relevance;if(e.language&&t.language){if(k(e.language).supersetOf===t.language)return 1;if(k(t.language).supersetOf===e.language)return  -1}return 0}),[i,s]=a,l=i;return l.secondBest=s,l}function x(e){let t=null;const n=function(e){let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"";const n=m.languageDetectRe.exec(t);if(n){const t=k(n[1]);return t||(J(s.replace("{}",n[1])),J("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"}return t.split(/\s+/).find(e=>f(e)||k(e))}(e);if(f(n))return;if(D("before:highlightElement",{el:e,language:n}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e);if(e.children.length>0&&(m.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."),console.warn("https://github.com/highlightjs/highlight.js/wiki/security"),console.warn("The element with unescaped HTML:"),console.warn(e)),m.throwUnescapedHTML)){throw new re("One of your code blocks includes unescaped HTML.",e.innerHTML)}t=e;const r=t.textContent,a=n?b(r,{language:n,ignoreIllegals:true}):v(r);e.innerHTML=a.value,e.dataset.highlighted="yes",function(e,t,n){const r=t&&o[t]||n;e.classList.add("hljs"),e.classList.add(`language-${r}`);}(e,n,a.language),e.result={language:a.language,re:a.relevance,relevance:a.relevance},a.secondBest&&(e.secondBest={language:a.secondBest.language,relevance:a.secondBest.relevance}),D("after:highlightElement",{el:e,result:a,text:r});}let S=false;function w(){if("loading"===document.readyState)return S||window.addEventListener("DOMContentLoaded",function(){w();},false),void(S=true);document.querySelectorAll(m.cssSelector).forEach(x);}function k(e){return e=(e||"").toLowerCase(),r[e]||r[o[e]]}function C(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach(e=>{o[e.toLowerCase()]=t;});}function T(e){const t=k(e);return t&&!t.disableAutodetect}function D(e,t){const n=e;a.forEach(function(e){e[n]&&e[n](t);});}Object.assign(n,{highlight:b,highlightAuto:v,highlightAll:w,highlightElement:x,highlightBlock:function(e){return $("10.7.0","highlightBlock will be removed entirely in v12.0"),$("10.7.0","Please use highlightElement now."),x(e)},configure:function(e){m=ae(m,e);},initHighlighting:()=>{w(),$("10.6.0","initHighlighting() deprecated.  Use highlightAll() now.");},initHighlightingOnLoad:function(){w(),$("10.6.0","initHighlightingOnLoad() deprecated.  Use highlightAll() now.");},registerLanguage:function(e,t){let o=null;try{o=t(n);}catch(a){if(Z("Language definition for '{}' could not be registered.".replace("{}",e)),!i)throw a;Z(a),o=c;}o.name||(o.name=e),r[e]=o,o.rawDefinition=t.bind(null,n),o.aliases&&C(o.aliases,{languageName:e});},unregisterLanguage:function(e){delete r[e];for(const t of Object.keys(o))o[t]===e&&delete o[t];},listLanguages:function(){return Object.keys(r)},getLanguage:k,registerAliases:C,autoDetection:T,inherit:ae,addPlugin:function(e){!function(e){e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{e["before:highlightBlock"](Object.assign({block:t.el},t));}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{e["after:highlightBlock"](Object.assign({block:t.el},t));});}(e),a.push(e);},removePlugin:function(e){const t=a.indexOf(e);-1!==t&&a.splice(t,1);}}),n.debugMode=function(){i=false;},n.safeMode=function(){i=true;},n.versionString="11.11.1",n.regex={concat:g,lookahead:d,either:p,optional:h,anyNumberOfTimes:u};for(const t in F)"object"==typeof F[t]&&e(F[t]);return Object.assign(n,F),n},le=se({});return le.newInstance=()=>se({}),oi=le,le.HighlightJS=le,le.default=le,oi}const si=o(ii());function li(e){const t=e.regex,n={},r={begin:/\$\{/,end:/\}/,contains:["self",{begin:/:-/,contains:[n]}]};Object.assign(n,{className:"variable",variants:[{begin:t.concat(/\$[\w\d#@][\w\d_]*/,
         // Perl at all like $ident$, @ident@, etc.
         "(?![\\w\\d])(?![$])")},r]});const o={className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE]},a=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),i={begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/,end:/(\w+)/,className:"string"})]}},s={className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,n,o]};o.contains.push(s);const l={begin:/\$?\(\(/,end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,n]},c=e.SHEBANG({binary:`(${["fish","bash","zsh","sh","csh","ksh","tcsh","dash","scsh"].join("|")})`,relevance:10}),d={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:true,contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return {name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/,keyword:["if","then","else","elif","fi","time","for","while","until","in","do","done","case","esac","coproc","function","select"],literal:["true","false"],built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"]},contains:[c,e.SHEBANG(),d,l,a,i,{match:/(\/[a-z._-]+)+/},s,{match:/\\"/},{className:"string",begin:/'/,end:/'/},{match:/\\'/},n]}}const ci=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video","defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],di=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),ui=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),hi=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),gi=["accent-color","align-content","align-items","align-self","alignment-baseline","all","anchor-name","animation","animation-composition","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-range","animation-range-end","animation-range-start","animation-timeline","animation-timing-function","appearance","aspect-ratio","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-align","box-decoration-break","box-direction","box-flex","box-flex-group","box-lines","box-ordinal-group","box-orient","box-pack","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","contain-intrinsic-block-size","contain-intrinsic-height","contain-intrinsic-inline-size","contain-intrinsic-size","contain-intrinsic-width","container","container-name","container-type","content","content-visibility","counter-increment","counter-reset","counter-set","cue","cue-after","cue-before","cursor","cx","cy","direction","display","dominant-baseline","empty-cells","enable-background","field-sizing","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flood-color","flood-opacity","flow","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-palette","font-size","font-size-adjust","font-smooth","font-smoothing","font-stretch","font-style","font-synthesis","font-synthesis-position","font-synthesis-small-caps","font-synthesis-style","font-synthesis-weight","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-emoji","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","forced-color-adjust","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphenate-character","hyphenate-limit-chars","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","initial-letter","initial-letter-align","inline-size","inset","inset-area","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","kerning","left","letter-spacing","lighting-color","line-break","line-height","line-height-step","list-style","list-style-image","list-style-position","list-style-type","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","margin-trim","marker","marker-end","marker-mid","marker-start","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","masonry-auto-flow","math-depth","math-shift","math-style","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-anchor","overflow-block","overflow-clip-margin","overflow-inline","overflow-wrap","overflow-x","overflow-y","overlay","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","paint-order","pause","pause-after","pause-before","perspective","perspective-origin","place-content","place-items","place-self","pointer-events","position","position-anchor","position-visibility","print-color-adjust","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","ruby-align","ruby-position","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scroll-timeline","scroll-timeline-axis","scroll-timeline-name","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","speak","speak-as","src",
         // @font-face
         "stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","tab-size","table-layout","text-align","text-align-all","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-size-adjust","text-transform","text-underline-offset","text-underline-position","text-wrap","text-wrap-mode","text-wrap-style","timeline-scope","top","touch-action","transform","transform-box","transform-origin","transform-style","transition","transition-behavior","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-modify","user-select","vector-effect","vertical-align","view-timeline","view-timeline-axis","view-timeline-inset","view-timeline-name","view-transition-name","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","white-space-collapse","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index","zoom"].sort().reverse();function pi(e){const t=e.regex,n=(e=>({IMPORTANT:{scope:"meta",begin:"!important"},BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number",begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$",contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{scope:"number",begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/}}))(e),r=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE];return {name:"CSS",case_insensitive:true,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"},classNameAliases:{keyframePosition:"selector-tag"},contains:[n.BLOCK_COMMENT,{begin:/-(webkit|moz|ms|o)-(?=[a-z])/},n.CSS_NUMBER_MODE,{className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0},n.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{begin:":("+ui.join("|")+")"},{begin:":(:)?("+hi.join("|")+")"}]},n.CSS_VARIABLE,{className:"attribute",begin:"\\b("+gi.join("|")+")\\b"},{begin:/:/,end:/[;}{]/,contains:[n.BLOCK_COMMENT,n.HEXCOLOR,n.IMPORTANT,n.CSS_NUMBER_MODE,...r,{begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri"},contains:[...r,{className:"string",begin:/[^)]/,endsWithParent:true,excludeEnd:true}]},n.FUNCTION_DISPATCH]},{begin:t.lookahead(/@/),end:"[{;]",relevance:0,illegal:/:/,
         // break on Less variables @var: ...
         contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/},{begin:/\s/,endsWithParent:true,excludeEnd:true,relevance:0,keywords:{$pattern:/[a-z-]+/,keyword:"and or not only",attribute:di.join(" ")},contains:[{begin:/[a-z-]+(?=:)/,className:"attribute"},...r,n.CSS_NUMBER_MODE]}]},{className:"selector-tag",begin:"\\b("+ci.join("|")+")\\b"}]}}function mi(e){const t=e.regex;return {name:"Diff",aliases:["patch"],contains:[{className:"meta",relevance:10,match:t.either(/^@@ +-\d+,\d+ +\+\d+,\d+ +@@/,/^\*\*\* +\d+,\d+ +\*\*\*\*$/,/^--- +\d+,\d+ +----$/)},{className:"comment",variants:[{begin:t.either(/Index: /,/^index/,/={3,}/,/^-{3}/,/^\*{3} /,/^\+{3}/,/^diff --git/),end:/$/},{match:/^\*{15}$/}]},{className:"addition",begin:/^\+/,end:/$/},{className:"deletion",begin:/^-/,end:/$/},{className:"addition",begin:/^!/,end:/$/}]}}function fi(e){return {name:"Dockerfile",aliases:["docker"],case_insensitive:true,keywords:["from","maintainer","expose","env","arg","user","onbuild","stopsignal"],contains:[e.HASH_COMMENT_MODE,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,e.NUMBER_MODE,{beginKeywords:"run cmd entrypoint volume add copy workdir label healthcheck shell",starts:{end:/[^\\]$/,subLanguage:"bash"}}],illegal:"</"}}var bi="[0-9](_*[0-9])*",yi=`\\.(${bi})`,vi="[0-9a-fA-F](_*[0-9a-fA-F])*",xi={className:"number",variants:[{begin:`(\\b(${bi})((${yi})|\\.)?|(${yi}))[eE][+-]?(${bi})[fFdD]?\\b`},{begin:`\\b(${bi})((${yi})[fFdD]?\\b|\\.([fFdD]\\b)?)`},{begin:`(${yi})[fFdD]?\\b`},{begin:`\\b(${bi})[fFdD]\\b`},{begin:`\\b0[xX]((${vi})\\.?|(${vi})?\\.(${vi}))[pP][+-]?(${bi})[fFdD]?\\b`},{begin:"\\b(0|[1-9](_*[0-9])*)[lL]?\\b"},{begin:`\\b0[xX](${vi})[lL]?\\b`},{begin:"\\b0(_*[0-7])*[lL]?\\b"},{begin:"\\b0[bB][01](_*[01])*[lL]?\\b"}],relevance:0};function Si(e,t,n){return  -1===n?"":e.replace(t,r=>Si(e,t,n-1))}const wi="[A-Za-z$_][0-9A-Za-z$_]*",ki=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Ci=["true","false","null","undefined","NaN","Infinity"],Ti=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],Di=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ei=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Ai=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],_i=[].concat(Ei,Ti,Di);function Li(e){const t=e.regex,n=wi,r="<>",o="</>",a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,
         /**
              * @param {RegExpMatchArray} match
              * @param {CallbackResponse} response
              */
         isTrulyOpeningTag:(e,t)=>{const n=e[0].length+e.index,r=e.input[n];if("<"===r||","===r)return void t.ignoreMatch();let o;">"===r&&(((e,{after:t})=>{const n="</"+e[0].slice(1);return  -1!==e.input.indexOf(n,t)})(e,{after:n})||t.ignoreMatch());const a=e.input.substring(n);((o=a.match(/^\s*=/))||(o=a.match(/^\s+extends\s+/))&&0===o.index)&&t.ignoreMatch();}},i={$pattern:wi,keyword:ki,literal:Ci,built_in:_i,"variable.language":Ai},s="[0-9](_?[0-9])*",l=`\\.(${s})`,c="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={className:"number",variants:[{begin:`(\\b(${c})((${l})|\\.)?|(${l}))[eE][+-]?(${s})\\b`},{begin:`\\b(${c})\\b((${l})\\b|\\.)?|(${l})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:false,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:false,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},p={begin:".?gql`",end:"",starts:{end:"`",returnEnd:false,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"graphql"}},m={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},f={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:true,excludeBegin:true,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:true,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},b=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,g,p,m,{match:/\$\d+/},d];u.contains=b.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(b)});const y=[].concat(f,u.contains),v=y.concat([{begin:/(\s*)\(/,end:/\)/,keywords:i,contains:["self"].concat(y)}]),x={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:true,excludeEnd:true,keywords:i,contains:v},S={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,t.concat(n,"(",t.concat(/\./,n),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}}]},w={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Ti,...Di]}},k={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/};const C={match:t.concat(/\b/,(T=[...Ei,"super","import"].map(e=>`${e}\\s*\\(`),t.concat("(?!",T.join("|"),")")),n,t.lookahead(/\s*\(/)),className:"title.function",relevance:0};var T;const D={begin:t.concat(/\./,t.lookahead(t.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:true,keywords:"prototype",className:"property",relevance:0},E={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]},A="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",_={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(A)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[x]};return {name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:v,CLASS_REFERENCE:w},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,g,p,m,f,{match:/\$\d+/},d,w,{scope:"attr",match:n+t.lookahead(":"),relevance:0},_,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[f,e.REGEXP_MODE,{className:"function",begin:A,returnBegin:true,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:true},{begin:/(\s*)\(/,end:/\)/,excludeBegin:true,excludeEnd:true,keywords:i,contains:v}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r,end:o},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:true,contains:["self"]}]}]},k,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:true,label:"func.def",contains:[x,e.inherit(e.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},D,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},C,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},S,E,{match:/\$[(.]/}]}}const Pi="[A-Za-z$_][0-9A-Za-z$_]*",Ni=["as","in","of","if","for","while","finally","var","new","function","do","return","void","else","break","catch","instanceof","with","throw","case","default","try","switch","continue","typeof","delete","let","yield","const","class","debugger","async","await","static","import","from","export","extends","using"],Mi=["true","false","null","undefined","NaN","Infinity"],Ii=["Object","Function","Boolean","Symbol","Math","Date","Number","BigInt","String","RegExp","Array","Float32Array","Float64Array","Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Int32Array","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array","Set","Map","WeakSet","WeakMap","ArrayBuffer","SharedArrayBuffer","Atomics","DataView","JSON","Promise","Generator","GeneratorFunction","AsyncFunction","Reflect","Proxy","Intl","WebAssembly"],ji=["Error","EvalError","InternalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError"],Ri=["setInterval","setTimeout","clearInterval","clearTimeout","require","exports","eval","isFinite","isNaN","parseFloat","parseInt","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","escape","unescape"],Fi=["arguments","this","super","console","window","document","localStorage","sessionStorage","module","global"],zi=[].concat(Ri,Ii,ji);function Oi(e){const t=e.regex,n=function(e){const t=e.regex,n=Pi,r="<>",o="</>",a={begin:/<[A-Za-z0-9\\._:-]+/,end:/\/[A-Za-z0-9\\._:-]+>|\/>/,
         /**
              * @param {RegExpMatchArray} match
              * @param {CallbackResponse} response
              */
         isTrulyOpeningTag:(e,t)=>{const n=e[0].length+e.index,r=e.input[n];if("<"===r||","===r)return void t.ignoreMatch();let o;">"===r&&(((e,{after:t})=>{const n="</"+e[0].slice(1);return  -1!==e.input.indexOf(n,t)})(e,{after:n})||t.ignoreMatch());const a=e.input.substring(n);((o=a.match(/^\s*=/))||(o=a.match(/^\s+extends\s+/))&&0===o.index)&&t.ignoreMatch();}},i={$pattern:Pi,keyword:Ni,literal:Mi,built_in:zi,"variable.language":Fi},s="[0-9](_?[0-9])*",l=`\\.(${s})`,c="0|[1-9](_?[0-9])*|0[0-7]*[89][0-9]*",d={className:"number",variants:[{begin:`(\\b(${c})((${l})|\\.)?|(${l}))[eE][+-]?(${s})\\b`},{begin:`\\b(${c})\\b((${l})\\b|\\.)?|(${l})\\b`},{begin:"\\b(0|[1-9](_?[0-9])*)n\\b"},{begin:"\\b0[xX][0-9a-fA-F](_?[0-9a-fA-F])*n?\\b"},{begin:"\\b0[bB][0-1](_?[0-1])*n?\\b"},{begin:"\\b0[oO][0-7](_?[0-7])*n?\\b"},{begin:"\\b0[0-7]+n?\\b"}],relevance:0},u={className:"subst",begin:"\\$\\{",end:"\\}",keywords:i,contains:[]},h={begin:".?html`",end:"",starts:{end:"`",returnEnd:false,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"xml"}},g={begin:".?css`",end:"",starts:{end:"`",returnEnd:false,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"css"}},p={begin:".?gql`",end:"",starts:{end:"`",returnEnd:false,contains:[e.BACKSLASH_ESCAPE,u],subLanguage:"graphql"}},m={className:"string",begin:"`",end:"`",contains:[e.BACKSLASH_ESCAPE,u]},f={className:"comment",variants:[e.COMMENT(/\/\*\*(?!\/)/,"\\*/",{relevance:0,contains:[{begin:"(?=@[A-Za-z]+)",relevance:0,contains:[{className:"doctag",begin:"@[A-Za-z]+"},{className:"type",begin:"\\{",end:"\\}",excludeEnd:true,excludeBegin:true,relevance:0},{className:"variable",begin:n+"(?=\\s*(-)|$)",endsParent:true,relevance:0},{begin:/(?=[^\n])\s/,relevance:0}]}]}),e.C_BLOCK_COMMENT_MODE,e.C_LINE_COMMENT_MODE]},b=[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,g,p,m,{match:/\$\d+/},d];u.contains=b.concat({begin:/\{/,end:/\}/,keywords:i,contains:["self"].concat(b)});const y=[].concat(f,u.contains),v=y.concat([{begin:/(\s*)\(/,end:/\)/,keywords:i,contains:["self"].concat(y)}]),x={className:"params",begin:/(\s*)\(/,end:/\)/,excludeBegin:true,excludeEnd:true,keywords:i,contains:v},S={variants:[{match:[/class/,/\s+/,n,/\s+/,/extends/,/\s+/,t.concat(n,"(",t.concat(/\./,n),")*")],scope:{1:"keyword",3:"title.class",5:"keyword",7:"title.class.inherited"}},{match:[/class/,/\s+/,n],scope:{1:"keyword",3:"title.class"}}]},w={relevance:0,match:t.either(/\bJSON/,/\b[A-Z][a-z]+([A-Z][a-z]*|\d)*/,/\b[A-Z]{2,}([A-Z][a-z]+|\d)+([A-Z][a-z]*)*/,/\b[A-Z]{2,}[a-z]+([A-Z][a-z]+|\d)*([A-Z][a-z]*)*/),className:"title.class",keywords:{_:[...Ii,...ji]}},k={variants:[{match:[/function/,/\s+/,n,/(?=\s*\()/]},{match:[/function/,/\s*(?=\()/]}],className:{1:"keyword",3:"title.function"},label:"func.def",contains:[x],illegal:/%/},C={match:t.concat(/\b/,(T=[...Ri,"super","import"].map(e=>`${e}\\s*\\(`),t.concat("(?!",T.join("|"),")")),n,t.lookahead(/\s*\(/)),className:"title.function",relevance:0};var T;const D={begin:t.concat(/\./,t.lookahead(t.concat(n,/(?![0-9A-Za-z$_(])/))),end:n,excludeBegin:true,keywords:"prototype",className:"property",relevance:0},E={match:[/get|set/,/\s+/,n,/(?=\()/],className:{1:"keyword",3:"title.function"},contains:[{begin:/\(\)/},x]},A="(\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)|"+e.UNDERSCORE_IDENT_RE+")\\s*=>",_={match:[/const|var|let/,/\s+/,n,/\s*/,/=\s*/,/(async\s*)?/,t.lookahead(A)],keywords:"async",className:{1:"keyword",3:"title.function"},contains:[x]};return {name:"JavaScript",aliases:["js","jsx","mjs","cjs"],keywords:i,exports:{PARAMS_CONTAINS:v,CLASS_REFERENCE:w},illegal:/#(?![$_A-z])/,contains:[e.SHEBANG({label:"shebang",binary:"node",relevance:5}),{label:"use_strict",className:"meta",relevance:10,begin:/^\s*['"]use (strict|asm)['"]/},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,h,g,p,m,f,{match:/\$\d+/},d,w,{scope:"attr",match:n+t.lookahead(":"),relevance:0},_,{begin:"("+e.RE_STARTERS_RE+"|\\b(case|return|throw)\\b)\\s*",keywords:"return throw case",relevance:0,contains:[f,e.REGEXP_MODE,{className:"function",begin:A,returnBegin:true,end:"\\s*=>",contains:[{className:"params",variants:[{begin:e.UNDERSCORE_IDENT_RE,relevance:0},{className:null,begin:/\(\s*\)/,skip:true},{begin:/(\s*)\(/,end:/\)/,excludeBegin:true,excludeEnd:true,keywords:i,contains:v}]}]},{begin:/,/,relevance:0},{match:/\s+/,relevance:0},{variants:[{begin:r,end:o},{match:/<[A-Za-z0-9\\._:-]+\s*\/>/},{begin:a.begin,"on:begin":a.isTrulyOpeningTag,end:a.end}],subLanguage:"xml",contains:[{begin:a.begin,end:a.end,skip:true,contains:["self"]}]}]},k,{beginKeywords:"while if switch catch for"},{begin:"\\b(?!function)"+e.UNDERSCORE_IDENT_RE+"\\([^()]*(\\([^()]*(\\([^()]*\\)[^()]*)*\\)[^()]*)*\\)\\s*\\{",returnBegin:true,label:"func.def",contains:[x,e.inherit(e.TITLE_MODE,{begin:n,className:"title.function"})]},{match:/\.\.\./,relevance:0},D,{match:"\\$"+n,relevance:0},{match:[/\bconstructor(?=\s*\()/],className:{1:"title.function"},contains:[x]},C,{relevance:0,match:/\b[A-Z][A-Z_0-9]+\b/,className:"variable.constant"},S,E,{match:/\$[(.]/}]}}(e),r=Pi,o=["any","void","number","boolean","string","object","never","symbol","bigint","unknown"],a={begin:[/namespace/,/\s+/,e.IDENT_RE],beginScope:{1:"keyword",3:"title.class"}},i={beginKeywords:"interface",end:/\{/,excludeEnd:true,keywords:{keyword:"interface extends",built_in:o},contains:[n.exports.CLASS_REFERENCE]},s={$pattern:Pi,keyword:Ni.concat(["type","interface","public","private","protected","implements","declare","abstract","readonly","enum","override","satisfies"]),literal:Mi,built_in:zi.concat(o),"variable.language":Fi},l={className:"meta",begin:"@"+r},c=(e,t,n)=>{const r=e.contains.findIndex(e=>e.label===t);if(-1===r)throw new Error("can not find mode to replace");e.contains.splice(r,1,n);};Object.assign(n.keywords,s),n.exports.PARAMS_CONTAINS.push(l);const d=n.contains.find(e=>"attr"===e.scope),u=Object.assign({},d,{match:t.concat(r,t.lookahead(/\s*\?:/))});n.exports.PARAMS_CONTAINS.push([n.exports.CLASS_REFERENCE,d,u]),n.contains=n.contains.concat([l,a,i,u]),c(n,"shebang",e.SHEBANG()),c(n,"use_strict",{className:"meta",relevance:10,begin:/^\s*['"]use strict['"]/});return n.contains.find(e=>"func.def"===e.label).relevance=0,Object.assign(n,{name:"TypeScript",aliases:["ts","tsx","mts","cts"]}),n}function Bi(e){const t=e.regex,n=t.concat(/[\p{L}_]/u,t.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),r={className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},o={begin:/\s/,contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}]},a=e.inherit(o,{begin:/\(/,end:/\)/}),i=e.inherit(e.APOS_STRING_MODE,{className:"string"}),s=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),l={endsWithParent:true,illegal:/</,relevance:0,contains:[{className:"attr",begin:/[\p{L}0-9._:-]+/u,relevance:0},{begin:/=\s*/,relevance:0,contains:[{className:"string",endsParent:true,variants:[{begin:/"/,end:/"/,contains:[r]},{begin:/'/,end:/'/,contains:[r]},{begin:/[^\s"'=<>`]+/}]}]}]};return {name:"HTML, XML",aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"],case_insensitive:true,unicodeRegex:true,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,relevance:10,contains:[o,s,i,a,{begin:/\[/,end:/\]/,contains:[{className:"meta",begin:/<![a-z]/,end:/>/,contains:[o,a,s,i]}]}]},e.COMMENT(/<!--/,/-->/,{relevance:10}),{begin:/<!\[CDATA\[/,end:/\]\]>/,relevance:10},r,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/,relevance:10,contains:[s]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag",begin:/<style(?=\s|>)/,end:/>/,keywords:{name:"style"},contains:[l],starts:{end:/<\/style>/,returnEnd:true,subLanguage:["css","xml"]}},{className:"tag",begin:/<script(?=\s|>)/,end:/>/,keywords:{name:"script"},contains:[l],starts:{end:/<\/script>/,returnEnd:true,subLanguage:["javascript","handlebars","xml"]}},{className:"tag",begin:/<>|<\/>/},{className:"tag",begin:t.concat(/</,t.lookahead(t.concat(n,t.either(/\/>/,/>/,/\s/)))),end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:l}]},{className:"tag",begin:t.concat(/<\//,t.lookahead(t.concat(n,/>/))),contains:[{className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:true}]}]}}function qi(e){const t="true false yes no null",n="[\\w#;/?:@&=+$,.~*'()[\\]]+",r={className:"string",relevance:0,variants:[{begin:/"/,end:/"/},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable",variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},o=e.inherit(r,{variants:[{begin:/'/,end:/'/,contains:[{begin:/''/,relevance:0}]},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),a={className:"number",begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"},i={end:",",endsWithParent:true,excludeEnd:true,keywords:t,relevance:0},s={begin:/\{/,end:/\}/,contains:[i],illegal:"\\n",relevance:0},l={begin:"\\[",end:"\\]",contains:[i],illegal:"\\n",relevance:0},c=[{className:"attr",variants:[{begin:/[\w*@][\w*@ :()\./-]*:(?=[ \t]|$)/},{begin:/"[\w*@][\w*@ :()\./-]*":(?=[ \t]|$)/},{begin:/'[\w*@][\w*@ :()\./-]*':(?=[ \t]|$)/}]},{className:"meta",begin:"^---\\s*$",relevance:10},{className:"string",begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:true,excludeEnd:true,relevance:0},{className:"type",begin:"!\\w+!"+n},{className:"type",begin:"!<"+n+">"},{className:"type",begin:"!"+n},{className:"type",begin:"!!"+n},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta",begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)",relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:t,keywords:{literal:t}},a,{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},s,l,{className:"string",relevance:0,begin:/'/,end:/'/,contains:[{match:/''/,scope:"char.escape",relevance:0}]},r],d=[...c];return d.pop(),d.push(o),i.contains=d,{name:"YAML",case_insensitive:true,aliases:["yml"],contains:c}}const Ui={};function Hi(e,t){"string"!=typeof t&&(t=Hi.defaultChars);const n=function(e){let t=Ui[e];if(t)return t;t=Ui[e]=[];for(let n=0;n<128;n++){const e=String.fromCharCode(n);t.push(e);}for(let n=0;n<e.length;n++){const r=e.charCodeAt(n);t[r]="%"+("0"+r.toString(16).toUpperCase()).slice(-2);}return t}(t);return e.replace(/(%[a-f0-9]{2})+/gi,function(e){let t="";for(let r=0,o=e.length;r<o;r+=3){const a=parseInt(e.slice(r+1,r+3),16);if(a<128)t+=n[a];else {if(192==(224&a)&&r+3<o){const n=parseInt(e.slice(r+4,r+6),16);if(128==(192&n)){const e=a<<6&1984|63&n;t+=e<128?"��":String.fromCharCode(e),r+=3;continue}}if(224==(240&a)&&r+6<o){const n=parseInt(e.slice(r+4,r+6),16),o=parseInt(e.slice(r+7,r+9),16);if(128==(192&n)&&128==(192&o)){const e=a<<12&61440|n<<6&4032|63&o;t+=e<2048||e>=55296&&e<=57343?"���":String.fromCharCode(e),r+=6;continue}}if(240==(248&a)&&r+9<o){const n=parseInt(e.slice(r+4,r+6),16),o=parseInt(e.slice(r+7,r+9),16),i=parseInt(e.slice(r+10,r+12),16);if(128==(192&n)&&128==(192&o)&&128==(192&i)){let e=a<<18&1835008|n<<12&258048|o<<6&4032|63&i;e<65536||e>1114111?t+="����":(e-=65536,t+=String.fromCharCode(55296+(e>>10),56320+(1023&e))),r+=9;continue}}t+="�";}}return t})}Hi.defaultChars=";/?:@&=+$,#",Hi.componentChars="";const Wi={};function Ki(e,t,n){"string"!=typeof t&&(n=t,t=Ki.defaultChars),void 0===n&&(n=true);const r=function(e){let t=Wi[e];if(t)return t;t=Wi[e]=[];for(let n=0;n<128;n++){const e=String.fromCharCode(n);/^[0-9a-z]$/i.test(e)?t.push(e):t.push("%"+("0"+n.toString(16).toUpperCase()).slice(-2));}for(let n=0;n<e.length;n++)t[e.charCodeAt(n)]=e[n];return t}(t);let o="";for(let a=0,i=e.length;a<i;a++){const t=e.charCodeAt(a);if(n&&37===t&&a+2<i&&/^[0-9a-f]{2}$/i.test(e.slice(a+1,a+3)))o+=e.slice(a,a+3),a+=2;else if(t<128)o+=r[t];else if(t>=55296&&t<=57343){if(t>=55296&&t<=56319&&a+1<i){const t=e.charCodeAt(a+1);if(t>=56320&&t<=57343){o+=encodeURIComponent(e[a]+e[a+1]),a++;continue}}o+="%EF%BF%BD";}else o+=encodeURIComponent(e[a]);}return o}function Vi(e){let t="";return t+=e.protocol||"",t+=e.slashes?"//":"",t+=e.auth?e.auth+"@":"",e.hostname&&-1!==e.hostname.indexOf(":")?t+="["+e.hostname+"]":t+=e.hostname||"",t+=e.port?":"+e.port:"",t+=e.pathname||"",t+=e.search||"",t+=e.hash||"",t}function Gi(){this.protocol=null,this.slashes=null,this.auth=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.pathname=null;}Ki.defaultChars=";/?:@&=+$,-_.!~*'()#",Ki.componentChars="-_.!~*'()";const Qi=/^([a-z0-9.+-]+:)/i,Zi=/:[0-9]*$/,Ji=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,$i=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),Xi=["'"].concat($i),Yi=["%","/","?",";","#"].concat(Xi),es=["/","?","#"],ts=/^[+a-z0-9A-Z_-]{0,63}$/,ns=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,rs={javascript:true,"javascript:":true},os={http:true,https:true,ftp:true,gopher:true,file:true,"http:":true,"https:":true,"ftp:":true,"gopher:":true,"file:":true};function as(e,t){if(e&&e instanceof Gi)return e;const n=new Gi;return n.parse(e,t),n}Gi.prototype.parse=function(e,t){let n,r,o,a=e;if(a=a.trim(),!t&&1===e.split("#").length){const e=Ji.exec(a);if(e)return this.pathname=e[1],e[2]&&(this.search=e[2]),this}let i=Qi.exec(a);if(i&&(i=i[0],n=i.toLowerCase(),this.protocol=i,a=a.substr(i.length)),(t||i||a.match(/^\/\/[^@\/]+@[^@\/]+/))&&(o="//"===a.substr(0,2),!o||i&&rs[i]||(a=a.substr(2),this.slashes=true)),!rs[i]&&(o||i&&!os[i])){let e,t,n=-1;for(let s=0;s<es.length;s++)r=a.indexOf(es[s]),-1!==r&&(-1===n||r<n)&&(n=r);t=-1===n?a.lastIndexOf("@"):a.lastIndexOf("@",n),-1!==t&&(e=a.slice(0,t),a=a.slice(t+1),this.auth=e),n=-1;for(let s=0;s<Yi.length;s++)r=a.indexOf(Yi[s]),-1!==r&&(-1===n||r<n)&&(n=r);-1===n&&(n=a.length),":"===a[n-1]&&n--;const o=a.slice(0,n);a=a.slice(n),this.parseHost(o),this.hostname=this.hostname||"";const i="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!i){const e=this.hostname.split(/\./);for(let t=0,n=e.length;t<n;t++){const n=e[t];if(n&&!n.match(ts)){let r="";for(let e=0,t=n.length;e<t;e++)n.charCodeAt(e)>127?r+="x":r+=n[e];if(!r.match(ts)){const r=e.slice(0,t),o=e.slice(t+1),i=n.match(ns);i&&(r.push(i[1]),o.unshift(i[2])),o.length&&(a=o.join(".")+a),this.hostname=r.join(".");break}}}}this.hostname.length>255&&(this.hostname=""),i&&(this.hostname=this.hostname.substr(1,this.hostname.length-2));}const s=a.indexOf("#");-1!==s&&(this.hash=a.substr(s),a=a.slice(0,s));const l=a.indexOf("?");return  -1!==l&&(this.search=a.substr(l),a=a.slice(0,l)),a&&(this.pathname=a),os[n]&&this.hostname&&!this.pathname&&(this.pathname=""),this},Gi.prototype.parseHost=function(e){let t=Zi.exec(e);t&&(t=t[0],":"!==t&&(this.port=t.substr(1)),e=e.substr(0,e.length-t.length)),e&&(this.hostname=e);};const is=Object.freeze(Object.defineProperty({__proto__:null,decode:Hi,encode:Ki,format:Vi,parse:as},Symbol.toStringTag,{value:"Module"})),ss=/[\0-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,ls=/[\0-\x1F\x7F-\x9F]/,cs=/[!-#%-\*,-\/:;\?@\[-\]_\{\}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061D-\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1B7D\u1B7E\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52-\u2E5D\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59\uDF86-\uDF89]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDEB9\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2\uDF00-\uDF09]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDF43-\uDF4F\uDFFF]|\uD809[\uDC70-\uDC74]|\uD80B[\uDFF1\uDFF2]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,ds=/[\$\+<->\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u0888\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20C0\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFF\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u31EF\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC2\uFD40-\uFD4F\uFDCF\uFDFC-\uFDFF\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD833[\uDF50-\uDFC3]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDEA\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEDC-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF76\uDF7B-\uDFD9\uDFE0-\uDFEB\uDFF0]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDE53\uDE60-\uDE6D\uDE70-\uDE7C\uDE80-\uDE88\uDE90-\uDEBD\uDEBF-\uDEC5\uDECE-\uDEDB\uDEE0-\uDEE8\uDEF0-\uDEF8\uDF00-\uDF92\uDF94-\uDFCA]/,us=/[ \xA0\u1680\u2000-\u200A\u2028\u2029\u202F\u205F\u3000]/,hs=Object.freeze(Object.defineProperty({__proto__:null,Any:ss,Cc:ls,Cf:/[\xAD\u0600-\u0605\u061C\u06DD\u070F\u0890\u0891\u08E2\u180E\u200B-\u200F\u202A-\u202E\u2060-\u2064\u2066-\u206F\uFEFF\uFFF9-\uFFFB]|\uD804[\uDCBD\uDCCD]|\uD80D[\uDC30-\uDC3F]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/,P:cs,S:ds,Z:us},Symbol.toStringTag,{value:"Module"})),gs=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(e=>e.charCodeAt(0))),ps=new Uint16Array("Ȁaglq\tɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(e=>e.charCodeAt(0)));var ms;const fs=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),bs=
         // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins
         null!==(ms=String.fromCodePoint)&&void 0!==ms?ms:function(e){let t="";return e>65535&&(e-=65536,t+=String.fromCharCode(e>>>10&1023|55296),e=56320|1023&e),t+=String.fromCharCode(e),t};var ys,vs;(vs=ys||(ys={}))[vs.NUM=35]="NUM",vs[vs.SEMI=59]="SEMI",vs[vs.EQUALS=61]="EQUALS",vs[vs.ZERO=48]="ZERO",vs[vs.NINE=57]="NINE",vs[vs.LOWER_A=97]="LOWER_A",vs[vs.LOWER_F=102]="LOWER_F",vs[vs.LOWER_X=120]="LOWER_X",vs[vs.LOWER_Z=122]="LOWER_Z",vs[vs.UPPER_A=65]="UPPER_A",vs[vs.UPPER_F=70]="UPPER_F",vs[vs.UPPER_Z=90]="UPPER_Z";var xs,Ss,ws,ks,Cs,Ts;function Ds(e){return e>=ys.ZERO&&e<=ys.NINE}function Es(e){return e>=ys.UPPER_A&&e<=ys.UPPER_F||e>=ys.LOWER_A&&e<=ys.LOWER_F}function As(e){return e===ys.EQUALS||function(e){return e>=ys.UPPER_A&&e<=ys.UPPER_Z||e>=ys.LOWER_A&&e<=ys.LOWER_Z||Ds(e)}(e)}(Ss=xs||(xs={}))[Ss.VALUE_LENGTH=49152]="VALUE_LENGTH",Ss[Ss.BRANCH_LENGTH=16256]="BRANCH_LENGTH",Ss[Ss.JUMP_TABLE=127]="JUMP_TABLE",(ks=ws||(ws={}))[ks.EntityStart=0]="EntityStart",ks[ks.NumericStart=1]="NumericStart",ks[ks.NumericDecimal=2]="NumericDecimal",ks[ks.NumericHex=3]="NumericHex",ks[ks.NamedEntity=4]="NamedEntity",(Ts=Cs||(Cs={}))[Ts.Legacy=0]="Legacy",Ts[Ts.Strict=1]="Strict",Ts[Ts.Attribute=2]="Attribute";class _s{constructor(e,t,n){this.decodeTree=e,this.emitCodePoint=t,this.errors=n,this.state=ws.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=Cs.Strict;}startEntity(e){this.decodeMode=e,this.state=ws.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1;}
         /**
            * Write an entity to the decoder. This can be called multiple times with partial entities.
            * If the entity is incomplete, the decoder will return -1.
            *
            * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
            * entity is incomplete, and resume when the next string is written.
            *
            * @param string The string containing the entity (or a continuation of the entity).
            * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
            * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
            */write(e,t){switch(this.state){case ws.EntityStart:return e.charCodeAt(t)===ys.NUM?(this.state=ws.NumericStart,this.consumed+=1,this.stateNumericStart(e,t+1)):(this.state=ws.NamedEntity,this.stateNamedEntity(e,t));case ws.NumericStart:return this.stateNumericStart(e,t);case ws.NumericDecimal:return this.stateNumericDecimal(e,t);case ws.NumericHex:return this.stateNumericHex(e,t);case ws.NamedEntity:return this.stateNamedEntity(e,t)}}
         /**
            * Switches between the numeric decimal and hexadecimal states.
            *
            * Equivalent to the `Numeric character reference state` in the HTML spec.
            *
            * @param str The string containing the entity (or a continuation of the entity).
            * @param offset The current offset.
            * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
            */stateNumericStart(e,t){return t>=e.length?-1:(32|e.charCodeAt(t))===ys.LOWER_X?(this.state=ws.NumericHex,this.consumed+=1,this.stateNumericHex(e,t+1)):(this.state=ws.NumericDecimal,this.stateNumericDecimal(e,t))}addToNumericResult(e,t,n,r){if(t!==n){const o=n-t;this.result=this.result*Math.pow(r,o)+parseInt(e.substr(t,o),r),this.consumed+=o;}}
         /**
            * Parses a hexadecimal numeric entity.
            *
            * Equivalent to the `Hexademical character reference state` in the HTML spec.
            *
            * @param str The string containing the entity (or a continuation of the entity).
            * @param offset The current offset.
            * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
            */stateNumericHex(e,t){const n=t;for(;t<e.length;){const r=e.charCodeAt(t);if(!Ds(r)&&!Es(r))return this.addToNumericResult(e,n,t,16),this.emitNumericEntity(r,3);t+=1;}return this.addToNumericResult(e,n,t,16),-1}
         /**
            * Parses a decimal numeric entity.
            *
            * Equivalent to the `Decimal character reference state` in the HTML spec.
            *
            * @param str The string containing the entity (or a continuation of the entity).
            * @param offset The current offset.
            * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
            */stateNumericDecimal(e,t){const n=t;for(;t<e.length;){const r=e.charCodeAt(t);if(!Ds(r))return this.addToNumericResult(e,n,t,10),this.emitNumericEntity(r,2);t+=1;}return this.addToNumericResult(e,n,t,10),-1}
         /**
            * Validate and emit a numeric entity.
            *
            * Implements the logic from the `Hexademical character reference start
            * state` and `Numeric character reference end state` in the HTML spec.
            *
            * @param lastCp The last code point of the entity. Used to see if the
            *               entity was terminated with a semicolon.
            * @param expectedLength The minimum number of characters that should be
            *                       consumed. Used to validate that at least one digit
            *                       was consumed.
            * @returns The number of characters that were consumed.
            */emitNumericEntity(e,t){var n;if(this.consumed<=t)return null===(n=this.errors)||void 0===n||n.absenceOfDigitsInNumericCharacterReference(this.consumed),0;if(e===ys.SEMI)this.consumed+=1;else if(this.decodeMode===Cs.Strict)return 0;return this.emitCodePoint(function(e){var t;return e>=55296&&e<=57343||e>1114111?65533:null!==(t=fs.get(e))&&void 0!==t?t:e}(this.result),this.consumed),this.errors&&(e!==ys.SEMI&&this.errors.missingSemicolonAfterCharacterReference(),this.errors.validateNumericCharacterReference(this.result)),this.consumed}
         /**
            * Parses a named entity.
            *
            * Equivalent to the `Named character reference state` in the HTML spec.
            *
            * @param str The string containing the entity (or a continuation of the entity).
            * @param offset The current offset.
            * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
            */stateNamedEntity(e,t){const{decodeTree:n}=this;let r=n[this.treeIndex],o=(r&xs.VALUE_LENGTH)>>14;for(;t<e.length;t++,this.excess++){const a=e.charCodeAt(t);if(this.treeIndex=Ps(n,r,this.treeIndex+Math.max(1,o),a),this.treeIndex<0)return 0===this.result||this.decodeMode===Cs.Attribute&&(0===o||As(a))?0:this.emitNotTerminatedNamedEntity();if(r=n[this.treeIndex],o=(r&xs.VALUE_LENGTH)>>14,0!==o){if(a===ys.SEMI)return this.emitNamedEntityData(this.treeIndex,o,this.consumed+this.excess);this.decodeMode!==Cs.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0);}}return  -1}
         /**
            * Emit a named entity that was not terminated with a semicolon.
            *
            * @returns The number of characters consumed.
            */emitNotTerminatedNamedEntity(){var e;const{result:t,decodeTree:n}=this,r=(n[t]&xs.VALUE_LENGTH)>>14;return this.emitNamedEntityData(t,r,this.consumed),null===(e=this.errors)||void 0===e||e.missingSemicolonAfterCharacterReference(),this.consumed}
         /**
            * Emit a named entity.
            *
            * @param result The index of the entity in the decode tree.
            * @param valueLength The number of bytes in the entity.
            * @param consumed The number of characters consumed.
            *
            * @returns The number of characters consumed.
            */emitNamedEntityData(e,t,n){const{decodeTree:r}=this;return this.emitCodePoint(1===t?r[e]&~xs.VALUE_LENGTH:r[e+1],n),3===t&&this.emitCodePoint(r[e+2],n),n}
         /**
            * Signal to the parser that the end of the input was reached.
            *
            * Remaining data will be emitted and relevant errors will be produced.
            *
            * @returns The number of characters consumed.
            */end(){var e;switch(this.state){case ws.NamedEntity:return 0===this.result||this.decodeMode===Cs.Attribute&&this.result!==this.treeIndex?0:this.emitNotTerminatedNamedEntity();case ws.NumericDecimal:return this.emitNumericEntity(0,2);case ws.NumericHex:return this.emitNumericEntity(0,3);case ws.NumericStart:return null===(e=this.errors)||void 0===e||e.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case ws.EntityStart:return 0}}}function Ls(e){let t="";const n=new _s(e,e=>t+=bs(e));return function(e,r){let o=0,a=0;for(;(a=e.indexOf("&",a))>=0;){t+=e.slice(o,a),n.startEntity(r);const i=n.write(e,a+1);if(i<0){o=a+n.end();break}o=a+i,a=0===i?o+1:o;}const i=t+e.slice(o);return t="",i}}function Ps(e,t,n,r){const o=(t&xs.BRANCH_LENGTH)>>7,a=t&xs.JUMP_TABLE;if(0===o)return 0!==a&&r===a?n:-1;if(a){const t=r-a;return t<0||t>=o?-1:e[n+t]-1}let i=n,s=i+o-1;for(;i<=s;){const t=i+s>>>1,n=e[t];if(n<r)i=t+1;else {if(!(n>r))return e[t+o];s=t-1;}}return  -1}const Ns=Ls(gs);function Ms(e,t=Cs.Legacy){return Ns(e,t)}function Is(e){return "[object String]"===function(e){return Object.prototype.toString.call(e)}(e)}Ls(ps);const js=Object.prototype.hasOwnProperty;function Rs(e){return Array.prototype.slice.call(arguments,1).forEach(function(t){if(t){if("object"!=typeof t)throw new TypeError(t+"must be object");Object.keys(t).forEach(function(n){e[n]=t[n];});}}),e}function Fs(e,t,n){return [].concat(e.slice(0,t),n,e.slice(t+1))}function zs(e){return !(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(!!(65535&~e&&65534!=(65535&e))&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function Os(e){if(e>65535){const t=55296+((e-=65536)>>10),n=56320+(1023&e);return String.fromCharCode(t,n)}return String.fromCharCode(e)}const Bs=/\\([!"#$%&'()*+,\-./:;<=>?@[\\\]^_`{|}~])/g,qs=new RegExp(Bs.source+"|"+/&([a-z#][a-z0-9]{1,31});/gi.source,"gi"),Us=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))$/i;function Hs(e){return e.indexOf("\\")<0&&e.indexOf("&")<0?e:e.replace(qs,function(e,t,n){return t||function(e,t){if(35===t.charCodeAt(0)&&Us.test(t)){const n="x"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10);return zs(n)?Os(n):e}const n=Ms(e);return n!==e?n:e}(e,n)})}const Ws=/[&<>"]/,Ks=/[&<>"]/g,Vs={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;"};function Gs(e){return Vs[e]}function Qs(e){return Ws.test(e)?e.replace(Ks,Gs):e}const Zs=/[.?*+^$[\]\\(){}|-]/g;function Js(e){switch(e){case 9:case 32:return  true}return  false}function $s(e){if(e>=8192&&e<=8202)return  true;switch(e){case 9:case 10:case 11:case 12:case 13:case 32:case 160:case 5760:case 8239:case 8287:case 12288:return  true}return  false}function Xs(e){return cs.test(e)||ds.test(e)}function Ys(e){switch(e){case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 124:case 125:case 126:return  true;default:return  false}}function el(e){return e=e.trim().replace(/\s+/g," "),"Ṿ"==="ẞ".toLowerCase()&&(e=e.replace(/ẞ/g,"ß")),e.toLowerCase().toUpperCase()}const tl={mdurl:is,ucmicro:hs},nl=Object.freeze(Object.defineProperty({__proto__:null,arrayReplaceAt:Fs,assign:Rs,escapeHtml:Qs,escapeRE:function(e){return e.replace(Zs,"\\$&")},fromCodePoint:Os,has:function(e,t){return js.call(e,t)},isMdAsciiPunct:Ys,isPunctChar:Xs,isSpace:Js,isString:Is,isValidEntityCode:zs,isWhiteSpace:$s,lib:tl,normalizeReference:el,unescapeAll:Hs,unescapeMd:function(e){return e.indexOf("\\")<0?e:e.replace(Bs,"$1")}},Symbol.toStringTag,{value:"Module"}));const rl=Object.freeze(Object.defineProperty({__proto__:null,parseLinkDestination:function(e,t,n){let r,o=t;const a={ok:false,pos:0,str:""};if(60===e.charCodeAt(o)){for(o++;o<n;){if(r=e.charCodeAt(o),10===r)return a;if(60===r)return a;if(62===r)return a.pos=o+1,a.str=Hs(e.slice(t+1,o)),a.ok=true,a;92===r&&o+1<n?o+=2:o++;}return a}let i=0;for(;o<n&&(r=e.charCodeAt(o),32!==r)&&!(r<32||127===r);)if(92===r&&o+1<n){if(32===e.charCodeAt(o+1))break;o+=2;}else {if(40===r&&(i++,i>32))return a;if(41===r){if(0===i)break;i--;}o++;}return t===o||0!==i||(a.str=Hs(e.slice(t,o)),a.pos=o,a.ok=true),a},parseLinkLabel:function(e,t,n){let r,o,a,i;const s=e.posMax,l=e.pos;for(e.pos=t+1,r=1;e.pos<s;){if(a=e.src.charCodeAt(e.pos),93===a&&(r--,0===r)){o=true;break}if(i=e.pos,e.md.inline.skipToken(e),91===a)if(i===e.pos-1)r++;else if(n)return e.pos=l,-1}let c=-1;return o&&(c=e.pos),e.pos=l,c},parseLinkTitle:function(e,t,n,r){let o,a=t;const i={ok:false,can_continue:false,pos:0,str:"",marker:0};if(r)i.str=r.str,i.marker=r.marker;else {if(a>=n)return i;let r=e.charCodeAt(a);if(34!==r&&39!==r&&40!==r)return i;t++,a++,40===r&&(r=41),i.marker=r;}for(;a<n;){if(o=e.charCodeAt(a),o===i.marker)return i.pos=a+1,i.str+=Hs(e.slice(t,a)),i.ok=true,i;if(40===o&&41===i.marker)return i;92===o&&a+1<n&&a++,a++;}return i.can_continue=true,i.str+=Hs(e.slice(t,a)),i}},Symbol.toStringTag,{value:"Module"})),ol={};function al(){this.rules=Rs({},ol);}function il(){this.__rules__=[],this.__cache__=null;}function sl(e,t,n){this.type=e,this.tag=t,this.attrs=null,this.map=null,this.nesting=n,this.level=0,this.children=null,this.content="",this.markup="",this.info="",this.meta=null,this.block=false,this.hidden=false;}function ll(e,t,n){this.src=e,this.env=n,this.tokens=[],this.inlineMode=false,this.md=t;}ol.code_inline=function(e,t,n,r,o){const a=e[t];return "<code"+o.renderAttrs(a)+">"+Qs(a.content)+"</code>"},ol.code_block=function(e,t,n,r,o){const a=e[t];return "<pre"+o.renderAttrs(a)+"><code>"+Qs(e[t].content)+"</code></pre>\n"},ol.fence=function(e,t,n,r,o){const a=e[t],i=a.info?Hs(a.info).trim():"";let s,l="",c="";if(i){const e=i.split(/(\s+)/g);l=e[0],c=e.slice(2).join("");}if(s=n.highlight&&n.highlight(a.content,l,c)||Qs(a.content),0===s.indexOf("<pre"))return s+"\n";if(i){const e=a.attrIndex("class"),t=a.attrs?a.attrs.slice():[];e<0?t.push(["class",n.langPrefix+l]):(t[e]=t[e].slice(),t[e][1]+=" "+n.langPrefix+l);const r={attrs:t};return `<pre><code${o.renderAttrs(r)}>${s}</code></pre>\n`}return `<pre><code${o.renderAttrs(a)}>${s}</code></pre>\n`},ol.image=function(e,t,n,r,o){const a=e[t];return a.attrs[a.attrIndex("alt")][1]=o.renderInlineAsText(a.children,n,r),o.renderToken(e,t,n)},ol.hardbreak=function(e,t,n){return n.xhtmlOut?"<br />\n":"<br>\n"},ol.softbreak=function(e,t,n){return n.breaks?n.xhtmlOut?"<br />\n":"<br>\n":"\n"},ol.text=function(e,t){return Qs(e[t].content)},ol.html_block=function(e,t){return e[t].content},ol.html_inline=function(e,t){return e[t].content},al.prototype.renderAttrs=function(e){let t,n,r;if(!e.attrs)return "";for(r="",t=0,n=e.attrs.length;t<n;t++)r+=" "+Qs(e.attrs[t][0])+'="'+Qs(e.attrs[t][1])+'"';return r},al.prototype.renderToken=function(e,t,n){const r=e[t];let o="";if(r.hidden)return "";r.block&&-1!==r.nesting&&t&&e[t-1].hidden&&(o+="\n"),o+=(-1===r.nesting?"</":"<")+r.tag,o+=this.renderAttrs(r),0===r.nesting&&n.xhtmlOut&&(o+=" /");let a=false;if(r.block&&(a=true,1===r.nesting&&t+1<e.length)){const n=e[t+1];("inline"===n.type||n.hidden||-1===n.nesting&&n.tag===r.tag)&&(a=false);}return o+=a?">\n":">",o},al.prototype.renderInline=function(e,t,n){let r="";const o=this.rules;for(let a=0,i=e.length;a<i;a++){const i=e[a].type;void 0!==o[i]?r+=o[i](e,a,t,n,this):r+=this.renderToken(e,a,t);}return r},al.prototype.renderInlineAsText=function(e,t,n){let r="";for(let o=0,a=e.length;o<a;o++)switch(e[o].type){case "text":case "html_inline":case "html_block":r+=e[o].content;break;case "image":r+=this.renderInlineAsText(e[o].children,t,n);break;case "softbreak":case "hardbreak":r+="\n";}return r},al.prototype.render=function(e,t,n){let r="";const o=this.rules;for(let a=0,i=e.length;a<i;a++){const i=e[a].type;"inline"===i?r+=this.renderInline(e[a].children,t,n):void 0!==o[i]?r+=o[i](e,a,t,n,this):r+=this.renderToken(e,a,t,n);}return r},il.prototype.__find__=function(e){for(let t=0;t<this.__rules__.length;t++)if(this.__rules__[t].name===e)return t;return  -1},il.prototype.__compile__=function(){const e=this,t=[""];e.__rules__.forEach(function(e){e.enabled&&e.alt.forEach(function(e){t.indexOf(e)<0&&t.push(e);});}),e.__cache__={},t.forEach(function(t){e.__cache__[t]=[],e.__rules__.forEach(function(n){n.enabled&&(t&&n.alt.indexOf(t)<0||e.__cache__[t].push(n.fn));});});},il.prototype.at=function(e,t,n){const r=this.__find__(e),o=n||{};if(-1===r)throw new Error("Parser rule not found: "+e);this.__rules__[r].fn=t,this.__rules__[r].alt=o.alt||[],this.__cache__=null;},il.prototype.before=function(e,t,n,r){const o=this.__find__(e),a=r||{};if(-1===o)throw new Error("Parser rule not found: "+e);this.__rules__.splice(o,0,{name:t,enabled:true,fn:n,alt:a.alt||[]}),this.__cache__=null;},il.prototype.after=function(e,t,n,r){const o=this.__find__(e),a=r||{};if(-1===o)throw new Error("Parser rule not found: "+e);this.__rules__.splice(o+1,0,{name:t,enabled:true,fn:n,alt:a.alt||[]}),this.__cache__=null;},il.prototype.push=function(e,t,n){const r=n||{};this.__rules__.push({name:e,enabled:true,fn:t,alt:r.alt||[]}),this.__cache__=null;},il.prototype.enable=function(e,t){Array.isArray(e)||(e=[e]);const n=[];return e.forEach(function(e){const r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=true,n.push(e);},this),this.__cache__=null,n},il.prototype.enableOnly=function(e,t){Array.isArray(e)||(e=[e]),this.__rules__.forEach(function(e){e.enabled=false;}),this.enable(e,t);},il.prototype.disable=function(e,t){Array.isArray(e)||(e=[e]);const n=[];return e.forEach(function(e){const r=this.__find__(e);if(r<0){if(t)return;throw new Error("Rules manager: invalid rule name "+e)}this.__rules__[r].enabled=false,n.push(e);},this),this.__cache__=null,n},il.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},sl.prototype.attrIndex=function(e){if(!this.attrs)return  -1;const t=this.attrs;for(let n=0,r=t.length;n<r;n++)if(t[n][0]===e)return n;return  -1},sl.prototype.attrPush=function(e){this.attrs?this.attrs.push(e):this.attrs=[e];},sl.prototype.attrSet=function(e,t){const n=this.attrIndex(e),r=[e,t];n<0?this.attrPush(r):this.attrs[n]=r;},sl.prototype.attrGet=function(e){const t=this.attrIndex(e);let n=null;return t>=0&&(n=this.attrs[t][1]),n},sl.prototype.attrJoin=function(e,t){const n=this.attrIndex(e);n<0?this.attrPush([e,t]):this.attrs[n][1]=this.attrs[n][1]+" "+t;},ll.prototype.Token=sl;const cl=/\r\n?|\n/g,dl=/\0/g;function ul(e){return /^<a[>\s]/i.test(e)}function hl(e){return /^<\/a\s*>/i.test(e)}const gl=/\+-|\.\.|\?\?\?\?|!!!!|,,|--/,pl=/\((c|tm|r)\)/i,ml=/\((c|tm|r)\)/gi,fl={c:"©",r:"®",tm:"™"};function bl(e,t){return fl[t.toLowerCase()]}function yl(e){let t=0;for(let n=e.length-1;n>=0;n--){const r=e[n];"text"!==r.type||t||(r.content=r.content.replace(ml,bl)),"link_open"===r.type&&"auto"===r.info&&t--,"link_close"===r.type&&"auto"===r.info&&t++;}}function vl(e){let t=0;for(let n=e.length-1;n>=0;n--){const r=e[n];"text"!==r.type||t||gl.test(r.content)&&(r.content=r.content.replace(/\+-/g,"±").replace(/\.{2,}/g,"…").replace(/([?!])…/g,"$1..").replace(/([?!]){4,}/g,"$1$1$1").replace(/,{2,}/g,",").replace(/(^|[^-])---(?=[^-]|$)/gm,"$1—").replace(/(^|\s)--(?=\s|$)/gm,"$1–").replace(/(^|[^-\s])--(?=[^-\s]|$)/gm,"$1–")),"link_open"===r.type&&"auto"===r.info&&t--,"link_close"===r.type&&"auto"===r.info&&t++;}}const xl=/['"]/,Sl=/['"]/g;function wl(e,t,n){return e.slice(0,t)+n+e.slice(t+1)}function kl(e,t){let n;const r=[];for(let o=0;o<e.length;o++){const a=e[o],i=e[o].level;for(n=r.length-1;n>=0&&!(r[n].level<=i);n--);if(r.length=n+1,"text"!==a.type)continue;let s=a.content,l=0,c=s.length;e:for(;l<c;){Sl.lastIndex=l;const d=Sl.exec(s);if(!d)break;let u=true,h=true;l=d.index+1;const g="'"===d[0];let p=32;if(d.index-1>=0)p=s.charCodeAt(d.index-1);else for(n=o-1;n>=0&&("softbreak"!==e[n].type&&"hardbreak"!==e[n].type);n--)if(e[n].content){p=e[n].content.charCodeAt(e[n].content.length-1);break}let m=32;if(l<c)m=s.charCodeAt(l);else for(n=o+1;n<e.length&&("softbreak"!==e[n].type&&"hardbreak"!==e[n].type);n++)if(e[n].content){m=e[n].content.charCodeAt(0);break}const f=Ys(p)||Xs(String.fromCharCode(p)),b=Ys(m)||Xs(String.fromCharCode(m)),y=$s(p),v=$s(m);if(v?u=false:b&&(y||f||(u=false)),y?h=false:f&&(v||b||(h=false)),34===m&&'"'===d[0]&&p>=48&&p<=57&&(h=u=false),u&&h&&(u=f,h=b),u||h){if(h)for(n=r.length-1;n>=0;n--){let u=r[n];if(r[n].level<i)break;if(u.single===g&&r[n].level===i){let i,h;u=r[n],g?(i=t.md.options.quotes[2],h=t.md.options.quotes[3]):(i=t.md.options.quotes[0],h=t.md.options.quotes[1]),a.content=wl(a.content,d.index,h),e[u.token].content=wl(e[u.token].content,u.pos,i),l+=h.length-1,u.token===o&&(l+=i.length-1),s=a.content,c=s.length,r.length=n;continue e}}u?r.push({token:o,pos:d.index,single:g,level:i}):h&&g&&(a.content=wl(a.content,d.index,"’"));}else g&&(a.content=wl(a.content,d.index,"’"));}}}const Cl=[["normalize",function(e){let t;t=e.src.replace(cl,"\n"),t=t.replace(dl,"�"),e.src=t;}],["block",function(e){let t;e.inlineMode?(t=new e.Token("inline","",0),t.content=e.src,t.map=[0,1],t.children=[],e.tokens.push(t)):e.md.block.parse(e.src,e.md,e.env,e.tokens);}],["inline",function(e){const t=e.tokens;for(let n=0,r=t.length;n<r;n++){const r=t[n];"inline"===r.type&&e.md.inline.parse(r.content,e.md,e.env,r.children);}}],["linkify",function(e){const t=e.tokens;if(e.md.options.linkify)for(let n=0,r=t.length;n<r;n++){if("inline"!==t[n].type||!e.md.linkify.pretest(t[n].content))continue;let r=t[n].children,o=0;for(let a=r.length-1;a>=0;a--){const i=r[a];if("link_close"!==i.type){if("html_inline"===i.type&&(ul(i.content)&&o>0&&o--,hl(i.content)&&o++),!(o>0)&&"text"===i.type&&e.md.linkify.test(i.content)){const o=i.content;let s=e.md.linkify.match(o);const l=[];let c=i.level,d=0;s.length>0&&0===s[0].index&&a>0&&"text_special"===r[a-1].type&&(s=s.slice(1));for(let t=0;t<s.length;t++){const n=s[t].url,r=e.md.normalizeLink(n);if(!e.md.validateLink(r))continue;let a=s[t].text;a=s[t].schema?"mailto:"!==s[t].schema||/^mailto:/i.test(a)?e.md.normalizeLinkText(a):e.md.normalizeLinkText("mailto:"+a).replace(/^mailto:/,""):e.md.normalizeLinkText("http://"+a).replace(/^http:\/\//,"");const i=s[t].index;if(i>d){const t=new e.Token("text","",0);t.content=o.slice(d,i),t.level=c,l.push(t);}const u=new e.Token("link_open","a",1);u.attrs=[["href",r]],u.level=c++,u.markup="linkify",u.info="auto",l.push(u);const h=new e.Token("text","",0);h.content=a,h.level=c,l.push(h);const g=new e.Token("link_close","a",-1);g.level=--c,g.markup="linkify",g.info="auto",l.push(g),d=s[t].lastIndex;}if(d<o.length){const t=new e.Token("text","",0);t.content=o.slice(d),t.level=c,l.push(t);}t[n].children=r=Fs(r,a,l);}}else for(a--;r[a].level!==i.level&&"link_open"!==r[a].type;)a--;}}}],["replacements",function(e){let t;if(e.md.options.typographer)for(t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&(pl.test(e.tokens[t].content)&&yl(e.tokens[t].children),gl.test(e.tokens[t].content)&&vl(e.tokens[t].children));}],["smartquotes",function(e){if(e.md.options.typographer)for(let t=e.tokens.length-1;t>=0;t--)"inline"===e.tokens[t].type&&xl.test(e.tokens[t].content)&&kl(e.tokens[t].children,e);}],["text_join",function(e){let t,n;const r=e.tokens,o=r.length;for(let a=0;a<o;a++){if("inline"!==r[a].type)continue;const e=r[a].children,o=e.length;for(t=0;t<o;t++)"text_special"===e[t].type&&(e[t].type="text");for(t=n=0;t<o;t++)"text"===e[t].type&&t+1<o&&"text"===e[t+1].type?e[t+1].content=e[t].content+e[t+1].content:(t!==n&&(e[n]=e[t]),n++);t!==n&&(e.length=n);}}]];function Tl(){this.ruler=new il;for(let e=0;e<Cl.length;e++)this.ruler.push(Cl[e][0],Cl[e][1]);}function Dl(e,t,n,r){this.src=e,this.md=t,this.env=n,this.tokens=r,this.bMarks=[],this.eMarks=[],this.tShift=[],this.sCount=[],this.bsCount=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=false,this.ddIndent=-1,this.listIndent=-1,this.parentType="root",this.level=0;const o=this.src;for(let a=0,i=0,s=0,l=0,c=o.length,d=false;i<c;i++){const e=o.charCodeAt(i);if(!d){if(Js(e)){s++,9===e?l+=4-l%4:l++;continue}d=true;}10!==e&&i!==c-1||(10!==e&&i++,this.bMarks.push(a),this.eMarks.push(i),this.tShift.push(s),this.sCount.push(l),this.bsCount.push(0),d=false,s=0,l=0,a=i+1);}this.bMarks.push(o.length),this.eMarks.push(o.length),this.tShift.push(0),this.sCount.push(0),this.bsCount.push(0),this.lineMax=this.bMarks.length-1;}Tl.prototype.process=function(e){const t=this.ruler.getRules("");for(let n=0,r=t.length;n<r;n++)t[n](e);},Tl.prototype.State=ll,Dl.prototype.push=function(e,t,n){const r=new sl(e,t,n);return r.block=true,n<0&&this.level--,r.level=this.level,n>0&&this.level++,this.tokens.push(r),r},Dl.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},Dl.prototype.skipEmptyLines=function(e){for(let t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},Dl.prototype.skipSpaces=function(e){for(let t=this.src.length;e<t;e++){if(!Js(this.src.charCodeAt(e)))break}return e},Dl.prototype.skipSpacesBack=function(e,t){if(e<=t)return e;for(;e>t;)if(!Js(this.src.charCodeAt(--e)))return e+1;return e},Dl.prototype.skipChars=function(e,t){for(let n=this.src.length;e<n&&this.src.charCodeAt(e)===t;e++);return e},Dl.prototype.skipCharsBack=function(e,t,n){if(e<=n)return e;for(;e>n;)if(t!==this.src.charCodeAt(--e))return e+1;return e},Dl.prototype.getLines=function(e,t,n,r){if(e>=t)return "";const o=new Array(t-e);for(let a=0,i=e;i<t;i++,a++){let e=0;const s=this.bMarks[i];let l,c=s;for(l=i+1<t||r?this.eMarks[i]+1:this.eMarks[i];c<l&&e<n;){const t=this.src.charCodeAt(c);if(Js(t))9===t?e+=4-(e+this.bsCount[i])%4:e++;else {if(!(c-s<this.tShift[i]))break;e++;}c++;}o[a]=e>n?new Array(e-n+1).join(" ")+this.src.slice(c,l):this.src.slice(c,l);}return o.join("")},Dl.prototype.Token=sl;function El(e,t){const n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];return e.src.slice(n,r)}function Al(e){const t=[],n=e.length;let r=0,o=e.charCodeAt(r),a=false,i=0,s="";for(;r<n;)124===o&&(a?(s+=e.substring(i,r-1),i=r):(t.push(s+e.substring(i,r)),s="",i=r+1)),a=92===o,r++,o=e.charCodeAt(r);return t.push(s+e.substring(i)),t}function _l(e,t){const n=e.eMarks[t];let r=e.bMarks[t]+e.tShift[t];const o=e.src.charCodeAt(r++);if(42!==o&&45!==o&&43!==o)return  -1;if(r<n){if(!Js(e.src.charCodeAt(r)))return  -1}return r}function Ll(e,t){const n=e.bMarks[t]+e.tShift[t],r=e.eMarks[t];let o=n;if(o+1>=r)return  -1;let a=e.src.charCodeAt(o++);if(a<48||a>57)return  -1;for(;;){if(o>=r)return  -1;if(a=e.src.charCodeAt(o++),!(a>=48&&a<=57)){if(41===a||46===a)break;return  -1}if(o-n>=10)return  -1}return o<r&&(a=e.src.charCodeAt(o),!Js(a))?-1:o}const Pl="<[A-Za-z][A-Za-z0-9\\-]*(?:\\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\\s*=\\s*(?:[^\"'=<>`\\x00-\\x20]+|'[^']*'|\"[^\"]*\"))?)*\\s*\\/?>",Nl="<\\/[A-Za-z][A-Za-z0-9\\-]*\\s*>",Ml=new RegExp("^(?:"+Pl+"|"+Nl+"|\x3c!---?>|\x3c!--(?:[^-]|-[^-]|--[^>])*--\x3e|<[?][\\s\\S]*?[?]>|<![A-Za-z][^>]*>|<!\\[CDATA\\[[\\s\\S]*?\\]\\]>)"),Il=new RegExp("^(?:"+Pl+"|"+Nl+")"),jl=[[/^<(script|pre|style|textarea)(?=(\s|>|$))/i,/<\/(script|pre|style|textarea)>/i,true],[/^<!--/,/-->/,true],[/^<\?/,/\?>/,true],[/^<![A-Z]/,/>/,true],[/^<!\[CDATA\[/,/\]\]>/,true],[new RegExp("^</?("+["address","article","aside","base","basefont","blockquote","body","caption","center","col","colgroup","dd","details","dialog","dir","div","dl","dt","fieldset","figcaption","figure","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hr","html","iframe","legend","li","link","main","menu","menuitem","nav","noframes","ol","optgroup","option","p","param","search","section","summary","table","tbody","td","tfoot","th","thead","title","tr","track","ul"].join("|")+")(?=(\\s|/?>|$))","i"),/^$/,true],[new RegExp(Il.source+"\\s*$"),/^$/,false]];const Rl=[["table",function(e,t,n,r){if(t+2>n)return  false;let o=t+1;if(e.sCount[o]<e.blkIndent)return  false;if(e.sCount[o]-e.blkIndent>=4)return  false;let a=e.bMarks[o]+e.tShift[o];if(a>=e.eMarks[o])return  false;const i=e.src.charCodeAt(a++);if(124!==i&&45!==i&&58!==i)return  false;if(a>=e.eMarks[o])return  false;const s=e.src.charCodeAt(a++);if(124!==s&&45!==s&&58!==s&&!Js(s))return  false;if(45===i&&Js(s))return  false;for(;a<e.eMarks[o];){const t=e.src.charCodeAt(a);if(124!==t&&45!==t&&58!==t&&!Js(t))return  false;a++;}let l=El(e,t+1),c=l.split("|");const d=[];for(let b=0;b<c.length;b++){const e=c[b].trim();if(!e){if(0===b||b===c.length-1)continue;return  false}if(!/^:?-+:?$/.test(e))return  false;58===e.charCodeAt(e.length-1)?d.push(58===e.charCodeAt(0)?"center":"right"):58===e.charCodeAt(0)?d.push("left"):d.push("");}if(l=El(e,t).trim(),-1===l.indexOf("|"))return  false;if(e.sCount[t]-e.blkIndent>=4)return  false;c=Al(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop();const u=c.length;if(0===u||u!==d.length)return  false;if(r)return  true;const h=e.parentType;e.parentType="table";const g=e.md.block.ruler.getRules("blockquote"),p=[t,0];e.push("table_open","table",1).map=p,e.push("thead_open","thead",1).map=[t,t+1],e.push("tr_open","tr",1).map=[t,t+1];for(let b=0;b<c.length;b++){const t=e.push("th_open","th",1);d[b]&&(t.attrs=[["style","text-align:"+d[b]]]);const n=e.push("inline","",0);n.content=c[b].trim(),n.children=[],e.push("th_close","th",-1);}let m;e.push("tr_close","tr",-1),e.push("thead_close","thead",-1);let f=0;for(o=t+2;o<n&&!(e.sCount[o]<e.blkIndent);o++){let r=false;for(let t=0,a=g.length;t<a;t++)if(g[t](e,o,n,true)){r=true;break}if(r)break;if(l=El(e,o).trim(),!l)break;if(e.sCount[o]-e.blkIndent>=4)break;if(c=Al(l),c.length&&""===c[0]&&c.shift(),c.length&&""===c[c.length-1]&&c.pop(),f+=u-c.length,f>65536)break;if(o===t+2){e.push("tbody_open","tbody",1).map=m=[t+2,0];}e.push("tr_open","tr",1).map=[o,o+1];for(let t=0;t<u;t++){const n=e.push("td_open","td",1);d[t]&&(n.attrs=[["style","text-align:"+d[t]]]);const r=e.push("inline","",0);r.content=c[t]?c[t].trim():"",r.children=[],e.push("td_close","td",-1);}e.push("tr_close","tr",-1);}return m&&(e.push("tbody_close","tbody",-1),m[1]=o),e.push("table_close","table",-1),p[1]=o,e.parentType=h,e.line=o,true},["paragraph","reference"]],["code",function(e,t,n){if(e.sCount[t]-e.blkIndent<4)return  false;let r=t+1,o=r;for(;r<n;)if(e.isEmpty(r))r++;else {if(!(e.sCount[r]-e.blkIndent>=4))break;r++,o=r;}e.line=o;const a=e.push("code_block","code",0);return a.content=e.getLines(t,o,4+e.blkIndent,false)+"\n",a.map=[t,e.line],true}],["fence",function(e,t,n,r){let o=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return  false;if(o+3>a)return  false;const i=e.src.charCodeAt(o);if(126!==i&&96!==i)return  false;let s=o;o=e.skipChars(o,i);let l=o-s;if(l<3)return  false;const c=e.src.slice(s,o),d=e.src.slice(o,a);if(96===i&&d.indexOf(String.fromCharCode(i))>=0)return  false;if(r)return  true;let u=t,h=false;for(;(u++,!(u>=n))&&(o=s=e.bMarks[u]+e.tShift[u],a=e.eMarks[u],!(o<a&&e.sCount[u]<e.blkIndent));)if(e.src.charCodeAt(o)===i&&!(e.sCount[u]-e.blkIndent>=4||(o=e.skipChars(o,i),o-s<l||(o=e.skipSpaces(o),o<a)))){h=true;break}l=e.sCount[t],e.line=u+(h?1:0);const g=e.push("fence","code",0);return g.info=d,g.content=e.getLines(t+1,u,l,true),g.markup=c,g.map=[t,e.line],true},["paragraph","reference","blockquote","list"]],["blockquote",function(e,t,n,r){let o=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];const i=e.lineMax;if(e.sCount[t]-e.blkIndent>=4)return  false;if(62!==e.src.charCodeAt(o))return  false;if(r)return  true;const s=[],l=[],c=[],d=[],u=e.md.block.ruler.getRules("blockquote"),h=e.parentType;e.parentType="blockquote";let g,p=false;for(g=t;g<n;g++){const t=e.sCount[g]<e.blkIndent;if(o=e.bMarks[g]+e.tShift[g],a=e.eMarks[g],o>=a)break;if(62===e.src.charCodeAt(o++)&&!t){let t,n,r=e.sCount[g]+1;32===e.src.charCodeAt(o)?(o++,r++,n=false,t=true):9===e.src.charCodeAt(o)?(t=true,(e.bsCount[g]+r)%4==3?(o++,r++,n=false):n=true):t=false;let i=r;for(s.push(e.bMarks[g]),e.bMarks[g]=o;o<a;){const t=e.src.charCodeAt(o);if(!Js(t))break;9===t?i+=4-(i+e.bsCount[g]+(n?1:0))%4:i++,o++;}p=o>=a,l.push(e.bsCount[g]),e.bsCount[g]=e.sCount[g]+1+(t?1:0),c.push(e.sCount[g]),e.sCount[g]=i-r,d.push(e.tShift[g]),e.tShift[g]=o-e.bMarks[g];continue}if(p)break;let r=false;for(let o=0,a=u.length;o<a;o++)if(u[o](e,g,n,true)){r=true;break}if(r){e.lineMax=g,0!==e.blkIndent&&(s.push(e.bMarks[g]),l.push(e.bsCount[g]),d.push(e.tShift[g]),c.push(e.sCount[g]),e.sCount[g]-=e.blkIndent);break}s.push(e.bMarks[g]),l.push(e.bsCount[g]),d.push(e.tShift[g]),c.push(e.sCount[g]),e.sCount[g]=-1;}const m=e.blkIndent;e.blkIndent=0;const f=e.push("blockquote_open","blockquote",1);f.markup=">";const b=[t,0];f.map=b,e.md.block.tokenize(e,t,g),e.push("blockquote_close","blockquote",-1).markup=">",e.lineMax=i,e.parentType=h,b[1]=e.line;for(let y=0;y<d.length;y++)e.bMarks[y+t]=s[y],e.tShift[y+t]=d[y],e.sCount[y+t]=c[y],e.bsCount[y+t]=l[y];return e.blkIndent=m,true},["paragraph","reference","blockquote","list"]],["hr",function(e,t,n,r){const o=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return  false;let a=e.bMarks[t]+e.tShift[t];const i=e.src.charCodeAt(a++);if(42!==i&&45!==i&&95!==i)return  false;let s=1;for(;a<o;){const t=e.src.charCodeAt(a++);if(t!==i&&!Js(t))return  false;t===i&&s++;}if(s<3)return  false;if(r)return  true;e.line=t+1;const l=e.push("hr","hr",0);return l.map=[t,e.line],l.markup=Array(s+1).join(String.fromCharCode(i)),true},["paragraph","reference","blockquote","list"]],["list",function(e,t,n,r){let o,a,i,s,l=t,c=true;if(e.sCount[l]-e.blkIndent>=4)return  false;if(e.listIndent>=0&&e.sCount[l]-e.listIndent>=4&&e.sCount[l]<e.blkIndent)return  false;let d,u,h,g=false;if(r&&"paragraph"===e.parentType&&e.sCount[l]>=e.blkIndent&&(g=true),(h=Ll(e,l))>=0){if(d=true,i=e.bMarks[l]+e.tShift[l],u=Number(e.src.slice(i,h-1)),g&&1!==u)return  false}else {if(!((h=_l(e,l))>=0))return  false;d=false;}if(g&&e.skipSpaces(h)>=e.eMarks[l])return  false;if(r)return  true;const p=e.src.charCodeAt(h-1),m=e.tokens.length;d?(s=e.push("ordered_list_open","ol",1),1!==u&&(s.attrs=[["start",u]])):s=e.push("bullet_list_open","ul",1);const f=[l,0];s.map=f,s.markup=String.fromCharCode(p);let b=false;const y=e.md.block.ruler.getRules("list"),v=e.parentType;for(e.parentType="list";l<n;){a=h,o=e.eMarks[l];const t=e.sCount[l]+h-(e.bMarks[l]+e.tShift[l]);let r=t;for(;a<o;){const t=e.src.charCodeAt(a);if(9===t)r+=4-(r+e.bsCount[l])%4;else {if(32!==t)break;r++;}a++;}const u=a;let g;g=u>=o?1:r-t,g>4&&(g=1);const m=t+g;s=e.push("list_item_open","li",1),s.markup=String.fromCharCode(p);const f=[l,0];s.map=f,d&&(s.info=e.src.slice(i,h-1));const v=e.tight,x=e.tShift[l],S=e.sCount[l],w=e.listIndent;if(e.listIndent=e.blkIndent,e.blkIndent=m,e.tight=true,e.tShift[l]=u-e.bMarks[l],e.sCount[l]=r,u>=o&&e.isEmpty(l+1)?e.line=Math.min(e.line+2,n):e.md.block.tokenize(e,l,n,true),e.tight&&!b||(c=false),b=e.line-l>1&&e.isEmpty(e.line-1),e.blkIndent=e.listIndent,e.listIndent=w,e.tShift[l]=x,e.sCount[l]=S,e.tight=v,s=e.push("list_item_close","li",-1),s.markup=String.fromCharCode(p),l=e.line,f[1]=l,l>=n)break;if(e.sCount[l]<e.blkIndent)break;if(e.sCount[l]-e.blkIndent>=4)break;let k=false;for(let o=0,a=y.length;o<a;o++)if(y[o](e,l,n,true)){k=true;break}if(k)break;if(d){if(h=Ll(e,l),h<0)break;i=e.bMarks[l]+e.tShift[l];}else if(h=_l(e,l),h<0)break;if(p!==e.src.charCodeAt(h-1))break}return s=d?e.push("ordered_list_close","ol",-1):e.push("bullet_list_close","ul",-1),s.markup=String.fromCharCode(p),f[1]=l,e.line=l,e.parentType=v,c&&function(e,t){const n=e.level+2;for(let r=t+2,o=e.tokens.length-2;r<o;r++)e.tokens[r].level===n&&"paragraph_open"===e.tokens[r].type&&(e.tokens[r+2].hidden=true,e.tokens[r].hidden=true,r+=2);}(e,m),true},["paragraph","reference","blockquote"]],["reference",function(e,t,n,r){let o=e.bMarks[t]+e.tShift[t],a=e.eMarks[t],i=t+1;if(e.sCount[t]-e.blkIndent>=4)return  false;if(91!==e.src.charCodeAt(o))return  false;function s(t){const n=e.lineMax;if(t>=n||e.isEmpty(t))return null;let r=false;if(e.sCount[t]-e.blkIndent>3&&(r=true),e.sCount[t]<0&&(r=true),!r){const r=e.md.block.ruler.getRules("reference"),o=e.parentType;e.parentType="reference";let a=false;for(let i=0,s=r.length;i<s;i++)if(r[i](e,t,n,true)){a=true;break}if(e.parentType=o,a)return null}const o=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];return e.src.slice(o,a+1)}let l=e.src.slice(o,a+1);a=l.length;let c=-1;for(o=1;o<a;o++){const e=l.charCodeAt(o);if(91===e)return  false;if(93===e){c=o;break}if(10===e){const e=s(i);null!==e&&(l+=e,a=l.length,i++);}else if(92===e&&(o++,o<a&&10===l.charCodeAt(o))){const e=s(i);null!==e&&(l+=e,a=l.length,i++);}}if(c<0||58!==l.charCodeAt(c+1))return  false;for(o=c+2;o<a;o++){const e=l.charCodeAt(o);if(10===e){const e=s(i);null!==e&&(l+=e,a=l.length,i++);}else if(!Js(e))break}const d=e.md.helpers.parseLinkDestination(l,o,a);if(!d.ok)return  false;const u=e.md.normalizeLink(d.str);if(!e.md.validateLink(u))return  false;o=d.pos;const h=o,g=i,p=o;for(;o<a;o++){const e=l.charCodeAt(o);if(10===e){const e=s(i);null!==e&&(l+=e,a=l.length,i++);}else if(!Js(e))break}let m,f=e.md.helpers.parseLinkTitle(l,o,a);for(;f.can_continue;){const t=s(i);if(null===t)break;l+=t,o=a,a=l.length,i++,f=e.md.helpers.parseLinkTitle(l,o,a,f);}for(o<a&&p!==o&&f.ok?(m=f.str,o=f.pos):(m="",o=h,i=g);o<a;){if(!Js(l.charCodeAt(o)))break;o++;}if(o<a&&10!==l.charCodeAt(o)&&m)for(m="",o=h,i=g;o<a;){if(!Js(l.charCodeAt(o)))break;o++;}if(o<a&&10!==l.charCodeAt(o))return  false;const b=el(l.slice(1,c));return !!b&&(r||(void 0===e.env.references&&(e.env.references={}),void 0===e.env.references[b]&&(e.env.references[b]={title:m,href:u}),e.line=i),true)}],["html_block",function(e,t,n,r){let o=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return  false;if(!e.md.options.html)return  false;if(60!==e.src.charCodeAt(o))return  false;let i=e.src.slice(o,a),s=0;for(;s<jl.length&&!jl[s][0].test(i);s++);if(s===jl.length)return  false;if(r)return jl[s][2];let l=t+1;if(!jl[s][1].test(i))for(;l<n&&!(e.sCount[l]<e.blkIndent);l++)if(o=e.bMarks[l]+e.tShift[l],a=e.eMarks[l],i=e.src.slice(o,a),jl[s][1].test(i)){0!==i.length&&l++;break}e.line=l;const c=e.push("html_block","",0);return c.map=[t,l],c.content=e.getLines(t,l,e.blkIndent,true),true},["paragraph","reference","blockquote"]],["heading",function(e,t,n,r){let o=e.bMarks[t]+e.tShift[t],a=e.eMarks[t];if(e.sCount[t]-e.blkIndent>=4)return  false;let i=e.src.charCodeAt(o);if(35!==i||o>=a)return  false;let s=1;for(i=e.src.charCodeAt(++o);35===i&&o<a&&s<=6;)s++,i=e.src.charCodeAt(++o);if(s>6||o<a&&!Js(i))return  false;if(r)return  true;a=e.skipSpacesBack(a,o);const l=e.skipCharsBack(a,35,o);l>o&&Js(e.src.charCodeAt(l-1))&&(a=l),e.line=t+1;const c=e.push("heading_open","h"+String(s),1);c.markup="########".slice(0,s),c.map=[t,e.line];const d=e.push("inline","",0);return d.content=e.src.slice(o,a).trim(),d.map=[t,e.line],d.children=[],e.push("heading_close","h"+String(s),-1).markup="########".slice(0,s),true},["paragraph","reference","blockquote"]],["lheading",function(e,t,n){const r=e.md.block.ruler.getRules("paragraph");if(e.sCount[t]-e.blkIndent>=4)return  false;const o=e.parentType;e.parentType="paragraph";let a,i=0,s=t+1;for(;s<n&&!e.isEmpty(s);s++){if(e.sCount[s]-e.blkIndent>3)continue;if(e.sCount[s]>=e.blkIndent){let t=e.bMarks[s]+e.tShift[s];const n=e.eMarks[s];if(t<n&&(a=e.src.charCodeAt(t),(45===a||61===a)&&(t=e.skipChars(t,a),t=e.skipSpaces(t),t>=n))){i=61===a?1:2;break}}if(e.sCount[s]<0)continue;let t=false;for(let o=0,a=r.length;o<a;o++)if(r[o](e,s,n,true)){t=true;break}if(t)break}if(!i)return  false;const l=e.getLines(t,s,e.blkIndent,false).trim();e.line=s+1;const c=e.push("heading_open","h"+String(i),1);c.markup=String.fromCharCode(a),c.map=[t,e.line];const d=e.push("inline","",0);return d.content=l,d.map=[t,e.line-1],d.children=[],e.push("heading_close","h"+String(i),-1).markup=String.fromCharCode(a),e.parentType=o,true}],["paragraph",function(e,t,n){const r=e.md.block.ruler.getRules("paragraph"),o=e.parentType;let a=t+1;for(e.parentType="paragraph";a<n&&!e.isEmpty(a);a++){if(e.sCount[a]-e.blkIndent>3)continue;if(e.sCount[a]<0)continue;let t=false;for(let o=0,i=r.length;o<i;o++)if(r[o](e,a,n,true)){t=true;break}if(t)break}const i=e.getLines(t,a,e.blkIndent,false).trim();e.line=a,e.push("paragraph_open","p",1).map=[t,e.line];const s=e.push("inline","",0);return s.content=i,s.map=[t,e.line],s.children=[],e.push("paragraph_close","p",-1),e.parentType=o,true}]];function Fl(){this.ruler=new il;for(let e=0;e<Rl.length;e++)this.ruler.push(Rl[e][0],Rl[e][1],{alt:(Rl[e][2]||[]).slice()});}function zl(e,t,n,r){this.src=e,this.env=n,this.md=t,this.tokens=r,this.tokens_meta=Array(r.length),this.pos=0,this.posMax=this.src.length,this.level=0,this.pending="",this.pendingLevel=0,this.cache={},this.delimiters=[],this._prev_delimiters=[],this.backticks={},this.backticksScanned=false,this.linkLevel=0;}function Ol(e){switch(e){case 10:case 33:case 35:case 36:case 37:case 38:case 42:case 43:case 45:case 58:case 60:case 61:case 62:case 64:case 91:case 92:case 93:case 94:case 95:case 96:case 123:case 125:case 126:return  true;default:return  false}}Fl.prototype.tokenize=function(e,t,n){const r=this.ruler.getRules(""),o=r.length,a=e.md.options.maxNesting;let i=t,s=false;for(;i<n&&(e.line=i=e.skipEmptyLines(i),!(i>=n))&&!(e.sCount[i]<e.blkIndent);){if(e.level>=a){e.line=n;break}const t=e.line;let l=false;for(let a=0;a<o;a++)if(l=r[a](e,i,n,false),l){if(t>=e.line)throw new Error("block rule didn't increment state.line");break}if(!l)throw new Error("none of the block rules matched");e.tight=!s,e.isEmpty(e.line-1)&&(s=true),i=e.line,i<n&&e.isEmpty(i)&&(s=true,i++,e.line=i);}},Fl.prototype.parse=function(e,t,n,r){if(!e)return;const o=new this.State(e,t,n,r);this.tokenize(o,o.line,o.lineMax);},Fl.prototype.State=Dl,zl.prototype.pushPending=function(){const e=new sl("text","",0);return e.content=this.pending,e.level=this.pendingLevel,this.tokens.push(e),this.pending="",e},zl.prototype.push=function(e,t,n){this.pending&&this.pushPending();const r=new sl(e,t,n);let o=null;return n<0&&(this.level--,this.delimiters=this._prev_delimiters.pop()),r.level=this.level,n>0&&(this.level++,this._prev_delimiters.push(this.delimiters),this.delimiters=[],o={delimiters:this.delimiters}),this.pendingLevel=this.level,this.tokens.push(r),this.tokens_meta.push(o),r},zl.prototype.scanDelims=function(e,t){const n=this.posMax,r=this.src.charCodeAt(e),o=e>0?this.src.charCodeAt(e-1):32;let a=e;for(;a<n&&this.src.charCodeAt(a)===r;)a++;const i=a-e,s=a<n?this.src.charCodeAt(a):32,l=Ys(o)||Xs(String.fromCharCode(o)),c=Ys(s)||Xs(String.fromCharCode(s)),d=$s(o),u=$s(s),h=!u&&(!c||d||l),g=!d&&(!l||u||c);return {can_open:h&&(t||!g||l),can_close:g&&(t||!h||c),length:i}},zl.prototype.Token=sl;const Bl=/(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i;const ql=[];for(let Qh=0;Qh<256;Qh++)ql.push(0);function Ul(e,t){let n;const r=[],o=t.length;for(let a=0;a<o;a++){const o=t[a];if(126!==o.marker)continue;if(-1===o.end)continue;const i=t[o.end];n=e.tokens[o.token],n.type="s_open",n.tag="s",n.nesting=1,n.markup="~~",n.content="",n=e.tokens[i.token],n.type="s_close",n.tag="s",n.nesting=-1,n.markup="~~",n.content="","text"===e.tokens[i.token-1].type&&"~"===e.tokens[i.token-1].content&&r.push(i.token-1);}for(;r.length;){const t=r.pop();let o=t+1;for(;o<e.tokens.length&&"s_close"===e.tokens[o].type;)o++;o--,t!==o&&(n=e.tokens[o],e.tokens[o]=e.tokens[t],e.tokens[t]=n);}}"\\!\"#$%&'()*+,./:;<=>?@[]^_`{|}~-".split("").forEach(function(e){ql[e.charCodeAt(0)]=1;});const Hl={tokenize:function(e,t){const n=e.pos,r=e.src.charCodeAt(n);if(t)return  false;if(126!==r)return  false;const o=e.scanDelims(e.pos,true);let a=o.length;const i=String.fromCharCode(r);if(a<2)return  false;let s;a%2&&(s=e.push("text","",0),s.content=i,a--);for(let l=0;l<a;l+=2)s=e.push("text","",0),s.content=i+i,e.delimiters.push({marker:r,length:0,token:e.tokens.length-1,end:-1,open:o.can_open,close:o.can_close});return e.pos+=o.length,true},postProcess:function(e){const t=e.tokens_meta,n=e.tokens_meta.length;Ul(e,e.delimiters);for(let r=0;r<n;r++)t[r]&&t[r].delimiters&&Ul(e,t[r].delimiters);}};function Wl(e,t){for(let n=t.length-1;n>=0;n--){const r=t[n];if(95!==r.marker&&42!==r.marker)continue;if(-1===r.end)continue;const o=t[r.end],a=n>0&&t[n-1].end===r.end+1&&t[n-1].marker===r.marker&&t[n-1].token===r.token-1&&t[r.end+1].token===o.token+1,i=String.fromCharCode(r.marker),s=e.tokens[r.token];s.type=a?"strong_open":"em_open",s.tag=a?"strong":"em",s.nesting=1,s.markup=a?i+i:i,s.content="";const l=e.tokens[o.token];l.type=a?"strong_close":"em_close",l.tag=a?"strong":"em",l.nesting=-1,l.markup=a?i+i:i,l.content="",a&&(e.tokens[t[n-1].token].content="",e.tokens[t[r.end+1].token].content="",n--);}}const Kl={tokenize:function(e,t){const n=e.pos,r=e.src.charCodeAt(n);if(t)return  false;if(95!==r&&42!==r)return  false;const o=e.scanDelims(e.pos,42===r);for(let a=0;a<o.length;a++){e.push("text","",0).content=String.fromCharCode(r),e.delimiters.push({marker:r,length:o.length,token:e.tokens.length-1,end:-1,open:o.can_open,close:o.can_close});}return e.pos+=o.length,true},postProcess:function(e){const t=e.tokens_meta,n=e.tokens_meta.length;Wl(e,e.delimiters);for(let r=0;r<n;r++)t[r]&&t[r].delimiters&&Wl(e,t[r].delimiters);}};const Vl=/^([a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)$/,Gl=/^([a-zA-Z][a-zA-Z0-9+.-]{1,31}):([^<>\x00-\x20]*)$/;const Ql=/^&#((?:x[a-f0-9]{1,6}|[0-9]{1,7}));/i,Zl=/^&([a-z][a-z0-9]{1,31});/i;function Jl(e){const t={},n=e.length;if(!n)return;let r=0,o=-2;const a=[];for(let i=0;i<n;i++){const n=e[i];if(a.push(0),e[r].marker===n.marker&&o===n.token-1||(r=i),o=n.token,n.length=n.length||0,!n.close)continue;t.hasOwnProperty(n.marker)||(t[n.marker]=[-1,-1,-1,-1,-1,-1]);const s=t[n.marker][(n.open?3:0)+n.length%3];let l=r-a[r]-1,c=l;for(;l>s;l-=a[l]+1){const t=e[l];if(t.marker===n.marker&&(t.open&&t.end<0)){let r=false;if((t.close||n.open)&&(t.length+n.length)%3==0&&(t.length%3==0&&n.length%3==0||(r=true)),!r){const r=l>0&&!e[l-1].open?a[l-1]+1:0;a[i]=i-l+r,a[l]=r,n.open=false,t.end=i,t.close=false,c=-1,o=-2;break}}} -1!==c&&(t[n.marker][(n.open?3:0)+(n.length||0)%3]=c);}}const $l=[["text",function(e,t){let n=e.pos;for(;n<e.posMax&&!Ol(e.src.charCodeAt(n));)n++;return n!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,n)),e.pos=n,true)}],["linkify",function(e,t){if(!e.md.options.linkify)return  false;if(e.linkLevel>0)return  false;const n=e.pos;if(n+3>e.posMax)return  false;if(58!==e.src.charCodeAt(n))return  false;if(47!==e.src.charCodeAt(n+1))return  false;if(47!==e.src.charCodeAt(n+2))return  false;const r=e.pending.match(Bl);if(!r)return  false;const o=r[1],a=e.md.linkify.matchAtStart(e.src.slice(n-o.length));if(!a)return  false;let i=a.url;if(i.length<=o.length)return  false;i=i.replace(/\*+$/,"");const s=e.md.normalizeLink(i);if(!e.md.validateLink(s))return  false;if(!t){e.pending=e.pending.slice(0,-o.length);const t=e.push("link_open","a",1);t.attrs=[["href",s]],t.markup="linkify",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(i);const n=e.push("link_close","a",-1);n.markup="linkify",n.info="auto";}return e.pos+=i.length-o.length,true}],["newline",function(e,t){let n=e.pos;if(10!==e.src.charCodeAt(n))return  false;const r=e.pending.length-1,o=e.posMax;if(!t)if(r>=0&&32===e.pending.charCodeAt(r))if(r>=1&&32===e.pending.charCodeAt(r-1)){let t=r-1;for(;t>=1&&32===e.pending.charCodeAt(t-1);)t--;e.pending=e.pending.slice(0,t),e.push("hardbreak","br",0);}else e.pending=e.pending.slice(0,-1),e.push("softbreak","br",0);else e.push("softbreak","br",0);for(n++;n<o&&Js(e.src.charCodeAt(n));)n++;return e.pos=n,true}],["escape",function(e,t){let n=e.pos;const r=e.posMax;if(92!==e.src.charCodeAt(n))return  false;if(n++,n>=r)return  false;let o=e.src.charCodeAt(n);if(10===o){for(t||e.push("hardbreak","br",0),n++;n<r&&(o=e.src.charCodeAt(n),Js(o));)n++;return e.pos=n,true}let a=e.src[n];if(o>=55296&&o<=56319&&n+1<r){const t=e.src.charCodeAt(n+1);t>=56320&&t<=57343&&(a+=e.src[n+1],n++);}const i="\\"+a;if(!t){const t=e.push("text_special","",0);o<256&&0!==ql[o]?t.content=a:t.content=i,t.markup=i,t.info="escape";}return e.pos=n+1,true}],["backticks",function(e,t){let n=e.pos;if(96!==e.src.charCodeAt(n))return  false;const r=n;n++;const o=e.posMax;for(;n<o&&96===e.src.charCodeAt(n);)n++;const a=e.src.slice(r,n),i=a.length;if(e.backticksScanned&&(e.backticks[i]||0)<=r)return t||(e.pending+=a),e.pos+=i,true;let s,l=n;for(;-1!==(s=e.src.indexOf("`",l));){for(l=s+1;l<o&&96===e.src.charCodeAt(l);)l++;const r=l-s;if(r===i){if(!t){const t=e.push("code_inline","code",0);t.markup=a,t.content=e.src.slice(n,s).replace(/\n/g," ").replace(/^ (.+) $/,"$1");}return e.pos=l,true}e.backticks[r]=s;}return e.backticksScanned=true,t||(e.pending+=a),e.pos+=i,true}],["strikethrough",Hl.tokenize],["emphasis",Kl.tokenize],["link",function(e,t){let n,r,o,a,i="",s="",l=e.pos,c=true;if(91!==e.src.charCodeAt(e.pos))return  false;const d=e.pos,u=e.posMax,h=e.pos+1,g=e.md.helpers.parseLinkLabel(e,e.pos,true);if(g<0)return  false;let p=g+1;if(p<u&&40===e.src.charCodeAt(p)){for(c=false,p++;p<u&&(n=e.src.charCodeAt(p),Js(n)||10===n);p++);if(p>=u)return  false;if(l=p,o=e.md.helpers.parseLinkDestination(e.src,p,e.posMax),o.ok){for(i=e.md.normalizeLink(o.str),e.md.validateLink(i)?p=o.pos:i="",l=p;p<u&&(n=e.src.charCodeAt(p),Js(n)||10===n);p++);if(o=e.md.helpers.parseLinkTitle(e.src,p,e.posMax),p<u&&l!==p&&o.ok)for(s=o.str,p=o.pos;p<u&&(n=e.src.charCodeAt(p),Js(n)||10===n);p++);}(p>=u||41!==e.src.charCodeAt(p))&&(c=true),p++;}if(c){if(void 0===e.env.references)return  false;if(p<u&&91===e.src.charCodeAt(p)?(l=p+1,p=e.md.helpers.parseLinkLabel(e,p),p>=0?r=e.src.slice(l,p++):p=g+1):p=g+1,r||(r=e.src.slice(h,g)),a=e.env.references[el(r)],!a)return e.pos=d,false;i=a.href,s=a.title;}if(!t){e.pos=h,e.posMax=g;const t=[["href",i]];e.push("link_open","a",1).attrs=t,s&&t.push(["title",s]),e.linkLevel++,e.md.inline.tokenize(e),e.linkLevel--,e.push("link_close","a",-1);}return e.pos=p,e.posMax=u,true}],["image",function(e,t){let n,r,o,a,i,s,l,c,d="";const u=e.pos,h=e.posMax;if(33!==e.src.charCodeAt(e.pos))return  false;if(91!==e.src.charCodeAt(e.pos+1))return  false;const g=e.pos+2,p=e.md.helpers.parseLinkLabel(e,e.pos+1,false);if(p<0)return  false;if(a=p+1,a<h&&40===e.src.charCodeAt(a)){for(a++;a<h&&(n=e.src.charCodeAt(a),Js(n)||10===n);a++);if(a>=h)return  false;for(c=a,s=e.md.helpers.parseLinkDestination(e.src,a,e.posMax),s.ok&&(d=e.md.normalizeLink(s.str),e.md.validateLink(d)?a=s.pos:d=""),c=a;a<h&&(n=e.src.charCodeAt(a),Js(n)||10===n);a++);if(s=e.md.helpers.parseLinkTitle(e.src,a,e.posMax),a<h&&c!==a&&s.ok)for(l=s.str,a=s.pos;a<h&&(n=e.src.charCodeAt(a),Js(n)||10===n);a++);else l="";if(a>=h||41!==e.src.charCodeAt(a))return e.pos=u,false;a++;}else {if(void 0===e.env.references)return  false;if(a<h&&91===e.src.charCodeAt(a)?(c=a+1,a=e.md.helpers.parseLinkLabel(e,a),a>=0?o=e.src.slice(c,a++):a=p+1):a=p+1,o||(o=e.src.slice(g,p)),i=e.env.references[el(o)],!i)return e.pos=u,false;d=i.href,l=i.title;}if(!t){r=e.src.slice(g,p);const t=[];e.md.inline.parse(r,e.md,e.env,t);const n=e.push("image","img",0),o=[["src",d],["alt",""]];n.attrs=o,n.children=t,n.content=r,l&&o.push(["title",l]);}return e.pos=a,e.posMax=h,true}],["autolink",function(e,t){let n=e.pos;if(60!==e.src.charCodeAt(n))return  false;const r=e.pos,o=e.posMax;for(;;){if(++n>=o)return  false;const t=e.src.charCodeAt(n);if(60===t)return  false;if(62===t)break}const a=e.src.slice(r+1,n);if(Gl.test(a)){const n=e.md.normalizeLink(a);if(!e.md.validateLink(n))return  false;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",n]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(a);const r=e.push("link_close","a",-1);r.markup="autolink",r.info="auto";}return e.pos+=a.length+2,true}if(Vl.test(a)){const n=e.md.normalizeLink("mailto:"+a);if(!e.md.validateLink(n))return  false;if(!t){const t=e.push("link_open","a",1);t.attrs=[["href",n]],t.markup="autolink",t.info="auto";e.push("text","",0).content=e.md.normalizeLinkText(a);const r=e.push("link_close","a",-1);r.markup="autolink",r.info="auto";}return e.pos+=a.length+2,true}return  false}],["html_inline",function(e,t){if(!e.md.options.html)return  false;const n=e.posMax,r=e.pos;if(60!==e.src.charCodeAt(r)||r+2>=n)return  false;const o=e.src.charCodeAt(r+1);if(33!==o&&63!==o&&47!==o&&!function(e){const t=32|e;return t>=97&&t<=122}(o))return  false;const a=e.src.slice(r).match(Ml);if(!a)return  false;if(!t){const t=e.push("html_inline","",0);t.content=a[0],i=t.content,/^<a[>\s]/i.test(i)&&e.linkLevel++,function(e){return /^<\/a\s*>/i.test(e)}(t.content)&&e.linkLevel--;}var i;return e.pos+=a[0].length,true}],["entity",function(e,t){const n=e.pos,r=e.posMax;if(38!==e.src.charCodeAt(n))return  false;if(n+1>=r)return  false;if(35===e.src.charCodeAt(n+1)){const r=e.src.slice(n).match(Ql);if(r){if(!t){const t="x"===r[1][0].toLowerCase()?parseInt(r[1].slice(1),16):parseInt(r[1],10),n=e.push("text_special","",0);n.content=zs(t)?Os(t):Os(65533),n.markup=r[0],n.info="entity";}return e.pos+=r[0].length,true}}else {const r=e.src.slice(n).match(Zl);if(r){const n=Ms(r[0]);if(n!==r[0]){if(!t){const t=e.push("text_special","",0);t.content=n,t.markup=r[0],t.info="entity";}return e.pos+=r[0].length,true}}}return  false}]],Xl=[["balance_pairs",function(e){const t=e.tokens_meta,n=e.tokens_meta.length;Jl(e.delimiters);for(let r=0;r<n;r++)t[r]&&t[r].delimiters&&Jl(t[r].delimiters);}],["strikethrough",Hl.postProcess],["emphasis",Kl.postProcess],["fragments_join",function(e){let t,n,r=0;const o=e.tokens,a=e.tokens.length;for(t=n=0;t<a;t++)o[t].nesting<0&&r--,o[t].level=r,o[t].nesting>0&&r++,"text"===o[t].type&&t+1<a&&"text"===o[t+1].type?o[t+1].content=o[t].content+o[t+1].content:(t!==n&&(o[n]=o[t]),n++);t!==n&&(o.length=n);}]];function Yl(){this.ruler=new il;for(let e=0;e<$l.length;e++)this.ruler.push($l[e][0],$l[e][1]);this.ruler2=new il;for(let e=0;e<Xl.length;e++)this.ruler2.push(Xl[e][0],Xl[e][1]);}function ec(e){return Array.prototype.slice.call(arguments,1).forEach(function(t){t&&Object.keys(t).forEach(function(n){e[n]=t[n];});}),e}function tc(e){return Object.prototype.toString.call(e)}function nc(e){return "[object Function]"===tc(e)}function rc(e){return e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}Yl.prototype.skipToken=function(e){const t=e.pos,n=this.ruler.getRules(""),r=n.length,o=e.md.options.maxNesting,a=e.cache;if(void 0!==a[t])return void(e.pos=a[t]);let i=false;if(e.level<o){for(let s=0;s<r;s++)if(e.level++,i=n[s](e,true),e.level--,i){if(t>=e.pos)throw new Error("inline rule didn't increment state.pos");break}}else e.pos=e.posMax;i||e.pos++,a[t]=e.pos;},Yl.prototype.tokenize=function(e){const t=this.ruler.getRules(""),n=t.length,r=e.posMax,o=e.md.options.maxNesting;for(;e.pos<r;){const a=e.pos;let i=false;if(e.level<o)for(let r=0;r<n;r++)if(i=t[r](e,false),i){if(a>=e.pos)throw new Error("inline rule didn't increment state.pos");break}if(i){if(e.pos>=r)break}else e.pending+=e.src[e.pos++];}e.pending&&e.pushPending();},Yl.prototype.parse=function(e,t,n,r){const o=new this.State(e,t,n,r);this.tokenize(o);const a=this.ruler2.getRules(""),i=a.length;for(let s=0;s<i;s++)a[s](o);},Yl.prototype.State=zl;const oc={fuzzyLink:true,fuzzyEmail:true,fuzzyIP:false};const ac={"http:":{validate:function(e,t,n){const r=e.slice(t);return n.re.http||(n.re.http=new RegExp("^\\/\\/"+n.re.src_auth+n.re.src_host_port_strict+n.re.src_path,"i")),n.re.http.test(r)?r.match(n.re.http)[0].length:0}},"https:":"http:","ftp:":"http:","//":{validate:function(e,t,n){const r=e.slice(t);return n.re.no_http||(n.re.no_http=new RegExp("^"+n.re.src_auth+"(?:localhost|(?:(?:"+n.re.src_domain+")\\.)+"+n.re.src_domain_root+")"+n.re.src_port+n.re.src_host_terminator+n.re.src_path,"i")),n.re.no_http.test(r)?t>=3&&":"===e[t-3]||t>=3&&"/"===e[t-3]?0:r.match(n.re.no_http)[0].length:0}},"mailto:":{validate:function(e,t,n){const r=e.slice(t);return n.re.mailto||(n.re.mailto=new RegExp("^"+n.re.src_email_name+"@"+n.re.src_host_strict,"i")),n.re.mailto.test(r)?r.match(n.re.mailto)[0].length:0}}},ic="biz|com|edu|gov|net|org|pro|web|xxx|aero|asia|coop|info|museum|name|shop|рф".split("|");function sc(e){const t=e.re=function(e){const t={};e=e||{},t.src_Any=ss.source,t.src_Cc=ls.source,t.src_Z=us.source,t.src_P=cs.source,t.src_ZPCc=[t.src_Z,t.src_P,t.src_Cc].join("|"),t.src_ZCc=[t.src_Z,t.src_Cc].join("|");const n="[><|]";return t.src_pseudo_letter="(?:(?![><|]|"+t.src_ZPCc+")"+t.src_Any+")",t.src_ip4="(?:(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)",t.src_auth="(?:(?:(?!"+t.src_ZCc+"|[@/\\[\\]()]).)+@)?",t.src_port="(?::(?:6(?:[0-4]\\d{3}|5(?:[0-4]\\d{2}|5(?:[0-2]\\d|3[0-5])))|[1-5]?\\d{1,4}))?",t.src_host_terminator="(?=$|[><|]|"+t.src_ZPCc+")(?!"+(e["---"]?"-(?!--)|":"-|")+"_|:\\d|\\.-|\\.(?!$|"+t.src_ZPCc+"))",t.src_path="(?:[/?#](?:(?!"+t.src_ZCc+"|"+n+"|[()[\\]{}.,\"'?!\\-;]).|\\[(?:(?!"+t.src_ZCc+"|\\]).)*\\]|\\((?:(?!"+t.src_ZCc+"|[)]).)*\\)|\\{(?:(?!"+t.src_ZCc+'|[}]).)*\\}|\\"(?:(?!'+t.src_ZCc+'|["]).)+\\"|\\\'(?:(?!'+t.src_ZCc+"|[']).)+\\'|\\'(?="+t.src_pseudo_letter+"|[-])|\\.{2,}[a-zA-Z0-9%/&]|\\.(?!"+t.src_ZCc+"|[.]|$)|"+(e["---"]?"\\-(?!--(?:[^-]|$))(?:-*)|":"\\-+|")+",(?!"+t.src_ZCc+"|$)|;(?!"+t.src_ZCc+"|$)|\\!+(?!"+t.src_ZCc+"|[!]|$)|\\?(?!"+t.src_ZCc+"|[?]|$))+|\\/)?",t.src_email_name='[\\-;:&=\\+\\$,\\.a-zA-Z0-9_][\\-;:&=\\+\\$,\\"\\.a-zA-Z0-9_]*',t.src_xn="xn--[a-z0-9\\-]{1,59}",t.src_domain_root="(?:"+t.src_xn+"|"+t.src_pseudo_letter+"{1,63})",t.src_domain="(?:"+t.src_xn+"|(?:"+t.src_pseudo_letter+")|(?:"+t.src_pseudo_letter+"(?:-|"+t.src_pseudo_letter+"){0,61}"+t.src_pseudo_letter+"))",t.src_host="(?:(?:(?:(?:"+t.src_domain+")\\.)*"+t.src_domain+"))",t.tpl_host_fuzzy="(?:"+t.src_ip4+"|(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%)))",t.tpl_host_no_ip_fuzzy="(?:(?:(?:"+t.src_domain+")\\.)+(?:%TLDS%))",t.src_host_strict=t.src_host+t.src_host_terminator,t.tpl_host_fuzzy_strict=t.tpl_host_fuzzy+t.src_host_terminator,t.src_host_port_strict=t.src_host+t.src_port+t.src_host_terminator,t.tpl_host_port_fuzzy_strict=t.tpl_host_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_port_no_ip_fuzzy_strict=t.tpl_host_no_ip_fuzzy+t.src_port+t.src_host_terminator,t.tpl_host_fuzzy_test="localhost|www\\.|\\.\\d{1,3}\\.|(?:\\.(?:%TLDS%)(?:"+t.src_ZPCc+"|>|$))",t.tpl_email_fuzzy='(^|[><|]|"|\\(|'+t.src_ZCc+")("+t.src_email_name+"@"+t.tpl_host_fuzzy_strict+")",t.tpl_link_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_fuzzy_strict+t.src_path+")",t.tpl_link_no_ip_fuzzy="(^|(?![.:/\\-_@])(?:[$+<=>^`||]|"+t.src_ZPCc+"))((?![$+<=>^`||])"+t.tpl_host_port_no_ip_fuzzy_strict+t.src_path+")",t}(e.__opts__),n=e.__tlds__.slice();function r(e){return e.replace("%TLDS%",t.src_tlds)}e.onCompile(),e.__tlds_replaced__||n.push("a[cdefgilmnoqrstuwxz]|b[abdefghijmnorstvwyz]|c[acdfghiklmnoruvwxyz]|d[ejkmoz]|e[cegrstu]|f[ijkmor]|g[abdefghilmnpqrstuwy]|h[kmnrtu]|i[delmnoqrst]|j[emop]|k[eghimnprwyz]|l[abcikrstuvy]|m[acdeghklmnopqrstuvwxyz]|n[acefgilopruz]|om|p[aefghklmnrstwy]|qa|r[eosuw]|s[abcdeghijklmnortuvxyz]|t[cdfghjklmnortvwz]|u[agksyz]|v[aceginu]|w[fs]|y[et]|z[amw]"),n.push(t.src_xn),t.src_tlds=n.join("|"),t.email_fuzzy=RegExp(r(t.tpl_email_fuzzy),"i"),t.link_fuzzy=RegExp(r(t.tpl_link_fuzzy),"i"),t.link_no_ip_fuzzy=RegExp(r(t.tpl_link_no_ip_fuzzy),"i"),t.host_fuzzy_test=RegExp(r(t.tpl_host_fuzzy_test),"i");const o=[];function a(e,t){throw new Error('(LinkifyIt) Invalid schema "'+e+'": '+t)}e.__compiled__={},Object.keys(e.__schemas__).forEach(function(t){const n=e.__schemas__[t];if(null===n)return;const r={validate:null,link:null};if(e.__compiled__[t]=r,"[object Object]"===tc(n))return !function(e){return "[object RegExp]"===tc(e)}(n.validate)?nc(n.validate)?r.validate=n.validate:a(t,n):r.validate=function(e){return function(t,n){const r=t.slice(n);return e.test(r)?r.match(e)[0].length:0}}(n.validate),void(nc(n.normalize)?r.normalize=n.normalize:n.normalize?a(t,n):r.normalize=function(e,t){t.normalize(e);});!function(e){return "[object String]"===tc(e)}(n)?a(t,n):o.push(t);}),o.forEach(function(t){e.__compiled__[e.__schemas__[t]]&&(e.__compiled__[t].validate=e.__compiled__[e.__schemas__[t]].validate,e.__compiled__[t].normalize=e.__compiled__[e.__schemas__[t]].normalize);}),e.__compiled__[""]={validate:null,normalize:function(e,t){t.normalize(e);}};const i=Object.keys(e.__compiled__).filter(function(t){return t.length>0&&e.__compiled__[t]}).map(rc).join("|");e.re.schema_test=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+i+")","i"),e.re.schema_search=RegExp("(^|(?!_)(?:[><|]|"+t.src_ZPCc+"))("+i+")","ig"),e.re.schema_at_start=RegExp("^"+e.re.schema_search.source,"i"),e.re.pretest=RegExp("("+e.re.schema_test.source+")|("+e.re.host_fuzzy_test.source+")|@","i"),function(e){e.__index__=-1,e.__text_cache__="";}(e);}function lc(e,t){const n=e.__index__,r=e.__last_index__,o=e.__text_cache__.slice(n,r);this.schema=e.__schema__.toLowerCase(),this.index=n+t,this.lastIndex=r+t,this.raw=o,this.text=o,this.url=o;}function cc(e,t){const n=new lc(e,t);return e.__compiled__[n.schema].normalize(n,e),n}function dc(e,t){if(!(this instanceof dc))return new dc(e,t);var n;t||(n=e,Object.keys(n||{}).reduce(function(e,t){return e||oc.hasOwnProperty(t)},false)&&(t=e,e={})),this.__opts__=ec({},oc,t),this.__index__=-1,this.__last_index__=-1,this.__schema__="",this.__text_cache__="",this.__schemas__=ec({},ac,e),this.__compiled__={},this.__tlds__=ic,this.__tlds_replaced__=false,this.re={},sc(this);}dc.prototype.add=function(e,t){return this.__schemas__[e]=t,sc(this),this},dc.prototype.set=function(e){return this.__opts__=ec(this.__opts__,e),this},dc.prototype.test=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return  false;let t,n,r,o,a,i,s,l,c;if(this.re.schema_test.test(e))for(s=this.re.schema_search,s.lastIndex=0;null!==(t=s.exec(e));)if(o=this.testSchemaAt(e,t[2],s.lastIndex),o){this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+o;break}return this.__opts__.fuzzyLink&&this.__compiled__["http:"]&&(l=e.search(this.re.host_fuzzy_test),l>=0&&(this.__index__<0||l<this.__index__)&&null!==(n=e.match(this.__opts__.fuzzyIP?this.re.link_fuzzy:this.re.link_no_ip_fuzzy))&&(a=n.index+n[1].length,(this.__index__<0||a<this.__index__)&&(this.__schema__="",this.__index__=a,this.__last_index__=n.index+n[0].length))),this.__opts__.fuzzyEmail&&this.__compiled__["mailto:"]&&(c=e.indexOf("@"),c>=0&&null!==(r=e.match(this.re.email_fuzzy))&&(a=r.index+r[1].length,i=r.index+r[0].length,(this.__index__<0||a<this.__index__||a===this.__index__&&i>this.__last_index__)&&(this.__schema__="mailto:",this.__index__=a,this.__last_index__=i))),this.__index__>=0},dc.prototype.pretest=function(e){return this.re.pretest.test(e)},dc.prototype.testSchemaAt=function(e,t,n){return this.__compiled__[t.toLowerCase()]?this.__compiled__[t.toLowerCase()].validate(e,n,this):0},dc.prototype.match=function(e){const t=[];let n=0;this.__index__>=0&&this.__text_cache__===e&&(t.push(cc(this,n)),n=this.__last_index__);let r=n?e.slice(n):e;for(;this.test(r);)t.push(cc(this,n)),r=r.slice(this.__last_index__),n+=this.__last_index__;return t.length?t:null},dc.prototype.matchAtStart=function(e){if(this.__text_cache__=e,this.__index__=-1,!e.length)return null;const t=this.re.schema_at_start.exec(e);if(!t)return null;const n=this.testSchemaAt(e,t[2],t[0].length);return n?(this.__schema__=t[2],this.__index__=t.index+t[1].length,this.__last_index__=t.index+t[0].length+n,cc(this,0)):null},dc.prototype.tlds=function(e,t){return e=Array.isArray(e)?e:[e],t?(this.__tlds__=this.__tlds__.concat(e).sort().filter(function(e,t,n){return e!==n[t-1]}).reverse(),sc(this),this):(this.__tlds__=e.slice(),this.__tlds_replaced__=true,sc(this),this)},dc.prototype.normalize=function(e){e.schema||(e.url="http://"+e.url),"mailto:"!==e.schema||/^mailto:/i.test(e.url)||(e.url="mailto:"+e.url);},dc.prototype.onCompile=function(){};const uc=2147483647,hc=36,gc=/^xn--/,pc=/[^\0-\x7F]/,mc=/[\x2E\u3002\uFF0E\uFF61]/g,fc={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},bc=Math.floor,yc=String.fromCharCode;function vc(e){throw new RangeError(fc[e])}function xc(e,t){const n=e.split("@");let r="";n.length>1&&(r=n[0]+"@",e=n[1]);const o=function(e,t){const n=[];let r=e.length;for(;r--;)n[r]=t(e[r]);return n}((e=e.replace(mc,".")).split("."),t).join(".");return r+o}function Sc(e){const t=[];let n=0;const r=e.length;for(;n<r;){const o=e.charCodeAt(n++);if(o>=55296&&o<=56319&&n<r){const r=e.charCodeAt(n++);56320==(64512&r)?t.push(((1023&o)<<10)+(1023&r)+65536):(t.push(o),n--);}else t.push(o);}return t}const wc=function(e){return e>=48&&e<58?e-48+26:e>=65&&e<91?e-65:e>=97&&e<123?e-97:hc},kc=function(e,t){return e+22+75*(e<26)-((0!=t)<<5)},Cc=function(e,t,n){let r=0;for(e=n?bc(e/700):e>>1,e+=bc(e/t);e>455;r+=hc)e=bc(e/35);return bc(r+36*e/(e+38))},Tc=function(e){const t=[],n=e.length;let r=0,o=128,a=72,i=e.lastIndexOf("-");i<0&&(i=0);for(let s=0;s<i;++s)e.charCodeAt(s)>=128&&vc("not-basic"),t.push(e.charCodeAt(s));for(let s=i>0?i+1:0;s<n;){const i=r;for(let t=1,o=hc;;o+=hc){s>=n&&vc("invalid-input");const i=wc(e.charCodeAt(s++));i>=hc&&vc("invalid-input"),i>bc((uc-r)/t)&&vc("overflow"),r+=i*t;const l=o<=a?1:o>=a+26?26:o-a;if(i<l)break;const c=hc-l;t>bc(uc/c)&&vc("overflow"),t*=c;}const l=t.length+1;a=Cc(r-i,l,0==i),bc(r/l)>uc-o&&vc("overflow"),o+=bc(r/l),r%=l,t.splice(r++,0,o);}return String.fromCodePoint(...t)},Dc=function(e){const t=[],n=(e=Sc(e)).length;let r=128,o=0,a=72;for(const l of e)l<128&&t.push(yc(l));const i=t.length;let s=i;for(i&&t.push("-");s<n;){let n=uc;for(const t of e)t>=r&&t<n&&(n=t);const l=s+1;n-r>bc((uc-o)/l)&&vc("overflow"),o+=(n-r)*l,r=n;for(const c of e)if(c<r&&++o>uc&&vc("overflow"),c===r){let e=o;for(let n=hc;;n+=hc){const r=n<=a?1:n>=a+26?26:n-a;if(e<r)break;const o=e-r,i=hc-r;t.push(yc(kc(r+o%i,0))),e=bc(o/i);}t.push(yc(kc(e,0))),a=Cc(o,l,s===i),o=0,++s;}++o,++r;}return t.join("")},Ec=function(e){return xc(e,function(e){return pc.test(e)?"xn--"+Dc(e):e})},Ac=function(e){return xc(e,function(e){return gc.test(e)?Tc(e.slice(4).toLowerCase()):e})},_c={default:{options:{html:false,xhtmlOut:false,breaks:false,langPrefix:"language-",linkify:false,typographer:false,quotes:"“”‘’",highlight:null,maxNesting:100},components:{core:{},block:{},inline:{}}},zero:{options:{html:false,xhtmlOut:false,breaks:false,langPrefix:"language-",linkify:false,typographer:false,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["paragraph"]},inline:{rules:["text"],rules2:["balance_pairs","fragments_join"]}}},commonmark:{options:{html:true,xhtmlOut:true,breaks:false,langPrefix:"language-",linkify:false,typographer:false,quotes:"“”‘’",highlight:null,maxNesting:20},components:{core:{rules:["normalize","block","inline","text_join"]},block:{rules:["blockquote","code","fence","heading","hr","html_block","lheading","list","reference","paragraph"]},inline:{rules:["autolink","backticks","emphasis","entity","escape","html_inline","image","link","newline","text"],rules2:["balance_pairs","emphasis","fragments_join"]}}}},Lc=/^(vbscript|javascript|file|data):/,Pc=/^data:image\/(gif|png|jpeg|webp);/;function Nc(e){const t=e.trim().toLowerCase();return !Lc.test(t)||Pc.test(t)}const Mc=["http:","https:","mailto:"];function Ic(e){const t=as(e,true);if(t.hostname&&(!t.protocol||Mc.indexOf(t.protocol)>=0))try{t.hostname=Ec(t.hostname);}catch(n){}return Ki(Vi(t))}function jc(e){const t=as(e,true);if(t.hostname&&(!t.protocol||Mc.indexOf(t.protocol)>=0))try{t.hostname=Ac(t.hostname);}catch(n){}return Hi(Vi(t),Hi.defaultChars+"%")}function Rc(e,t){if(!(this instanceof Rc))return new Rc(e,t);t||Is(e)||(t=e||{},e="default"),this.inline=new Yl,this.block=new Fl,this.core=new Tl,this.renderer=new al,this.linkify=new dc,this.validateLink=Nc,this.normalizeLink=Ic,this.normalizeLinkText=jc,this.utils=nl,this.helpers=Rs({},rl),this.options={},this.configure(e),t&&this.set(t);}Rc.prototype.set=function(e){return Rs(this.options,e),this},Rc.prototype.configure=function(e){const t=this;if(Is(e)){const t=e;if(!(e=_c[t]))throw new Error('Wrong `markdown-it` preset "'+t+'", check name')}if(!e)throw new Error("Wrong `markdown-it` preset, can't be empty");return e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(n){e.components[n].rules&&t[n].ruler.enableOnly(e.components[n].rules),e.components[n].rules2&&t[n].ruler2.enableOnly(e.components[n].rules2);}),this},Rc.prototype.enable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(t){n=n.concat(this[t].ruler.enable(e,true));},this),n=n.concat(this.inline.ruler2.enable(e,true));const r=e.filter(function(e){return n.indexOf(e)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to enable unknown rule(s): "+r);return this},Rc.prototype.disable=function(e,t){let n=[];Array.isArray(e)||(e=[e]),["core","block","inline"].forEach(function(t){n=n.concat(this[t].ruler.disable(e,true));},this),n=n.concat(this.inline.ruler2.disable(e,true));const r=e.filter(function(e){return n.indexOf(e)<0});if(r.length&&!t)throw new Error("MarkdownIt. Failed to disable unknown rule(s): "+r);return this},Rc.prototype.use=function(e){const t=[this].concat(Array.prototype.slice.call(arguments,1));return e.apply(e,t),this},Rc.prototype.parse=function(e,t){if("string"!=typeof e)throw new Error("Input data should be a String");const n=new this.core.State(e,this,t);return this.core.process(n),n.tokens},Rc.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},Rc.prototype.parseInline=function(e,t){const n=new this.core.State(e,this,t);return n.inlineMode=true,this.core.process(n),n.tokens},Rc.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};var Fc=false,zc={false:"push",true:"unshift",after:"push",before:"unshift"},Oc={isPermalinkSymbol:true};function Bc(e,t,n,r){var o;if(!Fc){var a="Using deprecated markdown-it-anchor permalink option, see https://github.com/valeriangalliat/markdown-it-anchor#permalinks";"object"==typeof process&&process&&process.emitWarning?process.emitWarning(a):console.warn(a),Fc=true;}var i=[Object.assign(new n.Token("link_open","a",1),{attrs:[].concat(t.permalinkClass?[["class",t.permalinkClass]]:[],[["href",t.permalinkHref(e,n)]],Object.entries(t.permalinkAttrs(e,n)))}),Object.assign(new n.Token("html_block","",0),{content:t.permalinkSymbol,meta:Oc}),new n.Token("link_close","a",-1)];t.permalinkSpace&&n.tokens[r+1].children[zc[t.permalinkBefore]](Object.assign(new n.Token("text","",0),{content:" "})),(o=n.tokens[r+1].children)[zc[t.permalinkBefore]].apply(o,i);}function qc(e){return "#"+e}function Uc(e){return {}}var Hc={class:"header-anchor",symbol:"#",renderHref:qc,renderAttrs:Uc};function Wc(e){function t(n){return n=Object.assign({},t.defaults,n),function(t,r,o,a){return e(t,n,r,o,a)}}return t.defaults=Object.assign({},Hc),t.renderPermalinkImpl=e,t}function Kc(e){var t=[],n=e.filter(function(e){if("class"!==e[0])return  true;t.push(e[1]);});return t.length>0&&n.unshift(["class",t.join(" ")]),n}var Vc=Wc(function(e,t,n,r,o){var a,i=[Object.assign(new r.Token("link_open","a",1),{attrs:Kc([].concat(t.class?[["class",t.class]]:[],[["href",t.renderHref(e,r)]],t.ariaHidden?[["aria-hidden","true"]]:[],Object.entries(t.renderAttrs(e,r))))}),Object.assign(new r.Token("html_inline","",0),{content:t.symbol,meta:Oc}),new r.Token("link_close","a",-1)];if(t.space){var s="string"==typeof t.space?t.space:" ";r.tokens[o+1].children[zc[t.placement]](Object.assign(new r.Token("string"==typeof t.space?"html_inline":"text","",0),{content:s}));}(a=r.tokens[o+1].children)[zc[t.placement]].apply(a,i);});Object.assign(Vc.defaults,{space:true,placement:"after",ariaHidden:false});var Gc=Wc(Vc.renderPermalinkImpl);Gc.defaults=Object.assign({},Vc.defaults,{ariaHidden:true});var Qc=Wc(function(e,t,n,r,o){var a=[Object.assign(new r.Token("link_open","a",1),{attrs:Kc([].concat(t.class?[["class",t.class]]:[],[["href",t.renderHref(e,r)]],Object.entries(t.renderAttrs(e,r))))})].concat(t.safariReaderFix?[new r.Token("span_open","span",1)]:[],r.tokens[o+1].children,t.safariReaderFix?[new r.Token("span_close","span",-1)]:[],[new r.Token("link_close","a",-1)]);r.tokens[o+1]=Object.assign(new r.Token("inline","",0),{children:a});});Object.assign(Qc.defaults,{safariReaderFix:false});var Zc=Wc(function(e,t,n,r,o){var a;if(!["visually-hidden","aria-label","aria-describedby","aria-labelledby"].includes(t.style))throw new Error("`permalink.linkAfterHeader` called with unknown style option `"+t.style+"`");if(!["aria-describedby","aria-labelledby"].includes(t.style)&&!t.assistiveText)throw new Error("`permalink.linkAfterHeader` called without the `assistiveText` option in `"+t.style+"` style");if("visually-hidden"===t.style&&!t.visuallyHiddenClass)throw new Error("`permalink.linkAfterHeader` called without the `visuallyHiddenClass` option in `visually-hidden` style");var i=r.tokens[o+1].children.filter(function(e){return "text"===e.type||"code_inline"===e.type}).reduce(function(e,t){return e+t.content},""),s=[],l=[];if(t.class&&l.push(["class",t.class]),l.push(["href",t.renderHref(e,r)]),l.push.apply(l,Object.entries(t.renderAttrs(e,r))),"visually-hidden"===t.style){if(s.push(Object.assign(new r.Token("span_open","span",1),{attrs:[["class",t.visuallyHiddenClass]]}),Object.assign(new r.Token("text","",0),{content:t.assistiveText(i)}),new r.Token("span_close","span",-1)),t.space){var c="string"==typeof t.space?t.space:" ";s[zc[t.placement]](Object.assign(new r.Token("string"==typeof t.space?"html_inline":"text","",0),{content:c}));}s[zc[t.placement]](Object.assign(new r.Token("span_open","span",1),{attrs:[["aria-hidden","true"]]}),Object.assign(new r.Token("html_inline","",0),{content:t.symbol,meta:Oc}),new r.Token("span_close","span",-1));}else s.push(Object.assign(new r.Token("html_inline","",0),{content:t.symbol,meta:Oc}));"aria-label"===t.style?l.push(["aria-label",t.assistiveText(i)]):["aria-describedby","aria-labelledby"].includes(t.style)&&l.push([t.style,e]);var d=[Object.assign(new r.Token("link_open","a",1),{attrs:Kc(l)})].concat(s,[new r.Token("link_close","a",-1)]);(a=r.tokens).splice.apply(a,[o+3,0].concat(d)),t.wrapper&&(r.tokens.splice(o,0,Object.assign(new r.Token("html_block","",0),{content:t.wrapper[0]+"\n"})),r.tokens.splice(o+3+d.length+1,0,Object.assign(new r.Token("html_block","",0),{content:t.wrapper[1]+"\n"})));});function Jc(e,t,n,r){var o=e,a=r;if(n&&Object.prototype.hasOwnProperty.call(t,o))throw new Error("User defined `id` attribute `"+e+"` is not unique. Please fix it in your Markdown to continue.");for(;Object.prototype.hasOwnProperty.call(t,o);)o=e+"-"+a,a+=1;return t[o]=true,o}function $c(e,t){t=Object.assign({},$c.defaults,t),e.core.ruler.push("anchor",function(e){for(var n,r={},o=e.tokens,a=Array.isArray(t.level)?(n=t.level,function(e){return n.includes(e)}):function(e){return function(t){return t>=e}}(t.level),i=0;i<o.length;i++){var s=o[i];if("heading_open"===s.type&&a(Number(s.tag.substr(1)))){var l=t.getTokensText(o[i+1].children),c=s.attrGet("id");c=null==c?Jc(c=t.slugifyWithState?t.slugifyWithState(l,e):t.slugify(l),r,false,t.uniqueSlugStartIndex):Jc(c,r,true,t.uniqueSlugStartIndex),s.attrSet("id",c),false!==t.tabIndex&&s.attrSet("tabindex",""+t.tabIndex),"function"==typeof t.permalink?t.permalink(c,t,e,i):(t.permalink||t.renderPermalink&&t.renderPermalink!==Bc)&&t.renderPermalink(c,t,e,i),i=o.indexOf(s),t.callback&&t.callback(s,{slug:c,title:l});}}});}function Xc(e,t,n){const r=(n=n||{}).marker||":",o=r.charCodeAt(0),a=r.length,i=n.validate||function(e){return e.trim().split(" ",2)[0]===t},s=n.render||function(e,n,r,o,a){return 1===e[n].nesting&&e[n].attrJoin("class",t),a.renderToken(e,n,r,o,a)};e.block.ruler.before("fence","container_"+t,function(e,n,s,l){let c,d=false,u=e.bMarks[n]+e.tShift[n],h=e.eMarks[n];if(o!==e.src.charCodeAt(u))return  false;for(c=u+1;c<=h&&r[(c-u)%a]===e.src[c];c++);const g=Math.floor((c-u)/a);if(g<3)return  false;c-=(c-u)%a;const p=e.src.slice(u,c),m=e.src.slice(c,h);if(!i(m,p))return  false;if(l)return  true;let f=n;for(;(f++,!(f>=s))&&(u=e.bMarks[f]+e.tShift[f],h=e.eMarks[f],!(u<h&&e.sCount[f]<e.blkIndent));)if(o===e.src.charCodeAt(u)&&!(e.sCount[f]-e.blkIndent>=4)){for(c=u+1;c<=h&&r[(c-u)%a]===e.src[c];c++);if(!(Math.floor((c-u)/a)<g||(c-=(c-u)%a,c=e.skipSpaces(c),c<h))){d=true;break}}const b=e.parentType,y=e.lineMax;e.parentType="container",e.lineMax=f;const v=e.push("container_"+t+"_open","div",1);v.markup=p,v.block=true,v.info=m,v.map=[n,f],e.md.block.tokenize(e,n+1,f);const x=e.push("container_"+t+"_close","div",-1);return x.markup=e.src.slice(u,c),x.block=true,e.parentType=b,e.lineMax=y,e.line=f+(d?1:0),true},{alt:["paragraph","reference","blockquote","list"]}),e.renderer.rules["container_"+t+"_open"]=s,e.renderer.rules["container_"+t+"_close"]=s;}function Yc(e,t){return e[t].content}function ed(e,t){const n=function(e){let t=e.defs;e.enabled.length&&(t=Object.keys(t).reduce((n,r)=>(e.enabled.indexOf(r)>=0&&(n[r]=t[r]),n),{}));const n=Object.keys(e.shortcuts).reduce((n,r)=>t[r]?Array.isArray(e.shortcuts[r])?(e.shortcuts[r].forEach(e=>{n[e]=r;}),n):(n[e.shortcuts[r]]=r,n):n,{}),r=Object.keys(t);let o;o=0===r.length?"^$":r.map(e=>`:${e}:`).concat(Object.keys(n)).sort().reverse().map(e=>e.replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")).join("|");const a=RegExp(o),i=RegExp(o,"g");return {defs:t,shortcuts:n,scanRE:a,replaceRE:i}}(e.utils.assign({},{defs:{},shortcuts:{},enabled:[]},t||{}));e.renderer.rules.emoji=Yc,e.core.ruler.after("linkify","emoji",function(e,t,n,r,o){const a=e.utils.arrayReplaceAt,i=e.utils.lib.ucmicro,s=e.utils.has,l=new RegExp([i.Z.source,i.P.source,i.Cc.source].join("|"));function c(e,r,a){let i=0;const c=[];if(e.replace(o,function(r,o,d){let u;if(s(n,r)){if(u=n[r],o>0&&!l.test(d[o-1]))return;if(o+r.length<d.length&&!l.test(d[o+r.length]))return}else u=r.slice(1,-1);if(o>i){const t=new a("text","",0);t.content=e.slice(i,o),c.push(t);}const h=new a("emoji","",0);h.markup=u,h.content=t[u],c.push(h),i=o+r.length;}),i<e.length){const t=new a("text","",0);t.content=e.slice(i),c.push(t);}return c}return function(e){let t;const n=e.tokens;let o=0;for(let i=0,s=n.length;i<s;i++){if("inline"!==n[i].type)continue;let s=n[i].children;for(let l=s.length-1;l>=0;l--)t=s[l],"link_open"!==t.type&&"link_close"!==t.type||"auto"===t.info&&(o-=t.nesting),"text"===t.type&&0===o&&r.test(t.content)&&(n[i].children=s=a(s,l,c(t.content,t.level,e.Token)));}}}(e,n.defs,n.shortcuts,n.scanRE,n.replaceRE));}Object.assign(Zc.defaults,{style:"visually-hidden",space:true,placement:"after",wrapper:null}),$c.permalink={__proto__:null,legacy:Bc,renderHref:qc,renderAttrs:Uc,makePermalink:Wc,linkInsideHeader:Vc,ariaHidden:Gc,headerLink:Qc,linkAfterHeader:Zc},$c.defaults={level:1,slugify:function(e){return encodeURIComponent(String(e).trim().toLowerCase().replace(/\s+/g,"-"))},uniqueSlugStartIndex:1,tabIndex:"-1",getTokensText:function(e){return e.filter(function(e){return ["text","code_inline"].includes(e.type)}).map(function(e){return e.content}).join("")},permalink:false,renderPermalink:Bc,permalinkClass:Gc.defaults.class,permalinkSpace:Gc.defaults.space,permalinkSymbol:"¶",permalinkBefore:"before"===Gc.defaults.placement,permalinkHref:Gc.defaults.renderHref,permalinkAttrs:Gc.defaults.renderAttrs},$c.default=$c;const td={angry:[">:(",">:-("],blush:[':")',':-")'],broken_heart:["</3","<\\3"],confused:[":/",":-/"],cry:[":'(",":'-(",":,(",":,-("],frowning:[":(",":-("],heart:["<3"],imp:["]:(","]:-("],innocent:["o:)","O:)","o:-)","O:-)","0:)","0:-)"],joy:[":')",":'-)",":,)",":,-)",":'D",":'-D",":,D",":,-D"],kissing:[":*",":-*"],laughing:["x-)","X-)"],neutral_face:[":|",":-|"],open_mouth:[":o",":-o",":O",":-O"],rage:[":@",":-@"],smile:[":D",":-D"],smiley:[":)",":-)"],smiling_imp:["]:)","]:-)"],sob:[":,'(",":,'-(",";(",";-("],stuck_out_tongue:[":P",":-P"],sunglasses:["8-)","B-)"],sweat:[",:(",",:-("],sweat_smile:[",:)",",:-)"],unamused:[":s",":-S",":z",":-Z",":$",":-$"],wink:[";)",";-)"]},nd={100:"💯",1234:"🔢",grinning:"😀",smiley:"😃",smile:"😄",grin:"😁",laughing:"😆",satisfied:"😆",sweat_smile:"😅",rofl:"🤣",joy:"😂",slightly_smiling_face:"🙂",upside_down_face:"🙃",melting_face:"🫠",wink:"😉",blush:"😊",innocent:"😇",smiling_face_with_three_hearts:"🥰",heart_eyes:"😍",star_struck:"🤩",kissing_heart:"😘",kissing:"😗",relaxed:"☺️",kissing_closed_eyes:"😚",kissing_smiling_eyes:"😙",smiling_face_with_tear:"🥲",yum:"😋",stuck_out_tongue:"😛",stuck_out_tongue_winking_eye:"😜",zany_face:"🤪",stuck_out_tongue_closed_eyes:"😝",money_mouth_face:"🤑",hugs:"🤗",hand_over_mouth:"🤭",face_with_open_eyes_and_hand_over_mouth:"🫢",face_with_peeking_eye:"🫣",shushing_face:"🤫",thinking:"🤔",saluting_face:"🫡",zipper_mouth_face:"🤐",raised_eyebrow:"🤨",neutral_face:"😐",expressionless:"😑",no_mouth:"😶",dotted_line_face:"🫥",face_in_clouds:"😶‍🌫️",smirk:"😏",unamused:"😒",roll_eyes:"🙄",grimacing:"😬",face_exhaling:"😮‍💨",lying_face:"🤥",shaking_face:"🫨",relieved:"😌",pensive:"😔",sleepy:"😪",drooling_face:"🤤",sleeping:"😴",mask:"😷",face_with_thermometer:"🤒",face_with_head_bandage:"🤕",nauseated_face:"🤢",vomiting_face:"🤮",sneezing_face:"🤧",hot_face:"🥵",cold_face:"🥶",woozy_face:"🥴",dizzy_face:"😵",face_with_spiral_eyes:"😵‍💫",exploding_head:"🤯",cowboy_hat_face:"🤠",partying_face:"🥳",disguised_face:"🥸",sunglasses:"😎",nerd_face:"🤓",monocle_face:"🧐",confused:"😕",face_with_diagonal_mouth:"🫤",worried:"😟",slightly_frowning_face:"🙁",frowning_face:"☹️",open_mouth:"😮",hushed:"😯",astonished:"😲",flushed:"😳",pleading_face:"🥺",face_holding_back_tears:"🥹",frowning:"😦",anguished:"😧",fearful:"😨",cold_sweat:"😰",disappointed_relieved:"😥",cry:"😢",sob:"😭",scream:"😱",confounded:"😖",persevere:"😣",disappointed:"😞",sweat:"😓",weary:"😩",tired_face:"😫",yawning_face:"🥱",triumph:"😤",rage:"😡",pout:"😡",angry:"😠",cursing_face:"🤬",smiling_imp:"😈",imp:"👿",skull:"💀",skull_and_crossbones:"☠️",hankey:"💩",poop:"💩",shit:"💩",clown_face:"🤡",japanese_ogre:"👹",japanese_goblin:"👺",ghost:"👻",alien:"👽",space_invader:"👾",robot:"🤖",smiley_cat:"😺",smile_cat:"😸",joy_cat:"😹",heart_eyes_cat:"😻",smirk_cat:"😼",kissing_cat:"😽",scream_cat:"🙀",crying_cat_face:"😿",pouting_cat:"😾",see_no_evil:"🙈",hear_no_evil:"🙉",speak_no_evil:"🙊",love_letter:"💌",cupid:"💘",gift_heart:"💝",sparkling_heart:"💖",heartpulse:"💗",heartbeat:"💓",revolving_hearts:"💞",two_hearts:"💕",heart_decoration:"💟",heavy_heart_exclamation:"❣️",broken_heart:"💔",heart_on_fire:"❤️‍🔥",mending_heart:"❤️‍🩹",heart:"❤️",pink_heart:"🩷",orange_heart:"🧡",yellow_heart:"💛",green_heart:"💚",blue_heart:"💙",light_blue_heart:"🩵",purple_heart:"💜",brown_heart:"🤎",black_heart:"🖤",grey_heart:"🩶",white_heart:"🤍",kiss:"💋",anger:"💢",boom:"💥",collision:"💥",dizzy:"💫",sweat_drops:"💦",dash:"💨",hole:"🕳️",speech_balloon:"💬",eye_speech_bubble:"👁️‍🗨️",left_speech_bubble:"🗨️",right_anger_bubble:"🗯️",thought_balloon:"💭",zzz:"💤",wave:"👋",raised_back_of_hand:"🤚",raised_hand_with_fingers_splayed:"🖐️",hand:"✋",raised_hand:"✋",vulcan_salute:"🖖",rightwards_hand:"🫱",leftwards_hand:"🫲",palm_down_hand:"🫳",palm_up_hand:"🫴",leftwards_pushing_hand:"🫷",rightwards_pushing_hand:"🫸",ok_hand:"👌",pinched_fingers:"🤌",pinching_hand:"🤏",v:"✌️",crossed_fingers:"🤞",hand_with_index_finger_and_thumb_crossed:"🫰",love_you_gesture:"🤟",metal:"🤘",call_me_hand:"🤙",point_left:"👈",point_right:"👉",point_up_2:"👆",middle_finger:"🖕",fu:"🖕",point_down:"👇",point_up:"☝️",index_pointing_at_the_viewer:"🫵","+1":"👍",thumbsup:"👍","-1":"👎",thumbsdown:"👎",fist_raised:"✊",fist:"✊",fist_oncoming:"👊",facepunch:"👊",punch:"👊",fist_left:"🤛",fist_right:"🤜",clap:"👏",raised_hands:"🙌",heart_hands:"🫶",open_hands:"👐",palms_up_together:"🤲",handshake:"🤝",pray:"🙏",writing_hand:"✍️",nail_care:"💅",selfie:"🤳",muscle:"💪",mechanical_arm:"🦾",mechanical_leg:"🦿",leg:"🦵",foot:"🦶",ear:"👂",ear_with_hearing_aid:"🦻",nose:"👃",brain:"🧠",anatomical_heart:"🫀",lungs:"🫁",tooth:"🦷",bone:"🦴",eyes:"👀",eye:"👁️",tongue:"👅",lips:"👄",biting_lip:"🫦",baby:"👶",child:"🧒",boy:"👦",girl:"👧",adult:"🧑",blond_haired_person:"👱",man:"👨",bearded_person:"🧔",man_beard:"🧔‍♂️",woman_beard:"🧔‍♀️",red_haired_man:"👨‍🦰",curly_haired_man:"👨‍🦱",white_haired_man:"👨‍🦳",bald_man:"👨‍🦲",woman:"👩",red_haired_woman:"👩‍🦰",person_red_hair:"🧑‍🦰",curly_haired_woman:"👩‍🦱",person_curly_hair:"🧑‍🦱",white_haired_woman:"👩‍🦳",person_white_hair:"🧑‍🦳",bald_woman:"👩‍🦲",person_bald:"🧑‍🦲",blond_haired_woman:"👱‍♀️",blonde_woman:"👱‍♀️",blond_haired_man:"👱‍♂️",older_adult:"🧓",older_man:"👴",older_woman:"👵",frowning_person:"🙍",frowning_man:"🙍‍♂️",frowning_woman:"🙍‍♀️",pouting_face:"🙎",pouting_man:"🙎‍♂️",pouting_woman:"🙎‍♀️",no_good:"🙅",no_good_man:"🙅‍♂️",ng_man:"🙅‍♂️",no_good_woman:"🙅‍♀️",ng_woman:"🙅‍♀️",ok_person:"🙆",ok_man:"🙆‍♂️",ok_woman:"🙆‍♀️",tipping_hand_person:"💁",information_desk_person:"💁",tipping_hand_man:"💁‍♂️",sassy_man:"💁‍♂️",tipping_hand_woman:"💁‍♀️",sassy_woman:"💁‍♀️",raising_hand:"🙋",raising_hand_man:"🙋‍♂️",raising_hand_woman:"🙋‍♀️",deaf_person:"🧏",deaf_man:"🧏‍♂️",deaf_woman:"🧏‍♀️",bow:"🙇",bowing_man:"🙇‍♂️",bowing_woman:"🙇‍♀️",facepalm:"🤦",man_facepalming:"🤦‍♂️",woman_facepalming:"🤦‍♀️",shrug:"🤷",man_shrugging:"🤷‍♂️",woman_shrugging:"🤷‍♀️",health_worker:"🧑‍⚕️",man_health_worker:"👨‍⚕️",woman_health_worker:"👩‍⚕️",student:"🧑‍🎓",man_student:"👨‍🎓",woman_student:"👩‍🎓",teacher:"🧑‍🏫",man_teacher:"👨‍🏫",woman_teacher:"👩‍🏫",judge:"🧑‍⚖️",man_judge:"👨‍⚖️",woman_judge:"👩‍⚖️",farmer:"🧑‍🌾",man_farmer:"👨‍🌾",woman_farmer:"👩‍🌾",cook:"🧑‍🍳",man_cook:"👨‍🍳",woman_cook:"👩‍🍳",mechanic:"🧑‍🔧",man_mechanic:"👨‍🔧",woman_mechanic:"👩‍🔧",factory_worker:"🧑‍🏭",man_factory_worker:"👨‍🏭",woman_factory_worker:"👩‍🏭",office_worker:"🧑‍💼",man_office_worker:"👨‍💼",woman_office_worker:"👩‍💼",scientist:"🧑‍🔬",man_scientist:"👨‍🔬",woman_scientist:"👩‍🔬",technologist:"🧑‍💻",man_technologist:"👨‍💻",woman_technologist:"👩‍💻",singer:"🧑‍🎤",man_singer:"👨‍🎤",woman_singer:"👩‍🎤",artist:"🧑‍🎨",man_artist:"👨‍🎨",woman_artist:"👩‍🎨",pilot:"🧑‍✈️",man_pilot:"👨‍✈️",woman_pilot:"👩‍✈️",astronaut:"🧑‍🚀",man_astronaut:"👨‍🚀",woman_astronaut:"👩‍🚀",firefighter:"🧑‍🚒",man_firefighter:"👨‍🚒",woman_firefighter:"👩‍🚒",police_officer:"👮",cop:"👮",policeman:"👮‍♂️",policewoman:"👮‍♀️",detective:"🕵️",male_detective:"🕵️‍♂️",female_detective:"🕵️‍♀️",guard:"💂",guardsman:"💂‍♂️",guardswoman:"💂‍♀️",ninja:"🥷",construction_worker:"👷",construction_worker_man:"👷‍♂️",construction_worker_woman:"👷‍♀️",person_with_crown:"🫅",prince:"🤴",princess:"👸",person_with_turban:"👳",man_with_turban:"👳‍♂️",woman_with_turban:"👳‍♀️",man_with_gua_pi_mao:"👲",woman_with_headscarf:"🧕",person_in_tuxedo:"🤵",man_in_tuxedo:"🤵‍♂️",woman_in_tuxedo:"🤵‍♀️",person_with_veil:"👰",man_with_veil:"👰‍♂️",woman_with_veil:"👰‍♀️",bride_with_veil:"👰‍♀️",pregnant_woman:"🤰",pregnant_man:"🫃",pregnant_person:"🫄",breast_feeding:"🤱",woman_feeding_baby:"👩‍🍼",man_feeding_baby:"👨‍🍼",person_feeding_baby:"🧑‍🍼",angel:"👼",santa:"🎅",mrs_claus:"🤶",mx_claus:"🧑‍🎄",superhero:"🦸",superhero_man:"🦸‍♂️",superhero_woman:"🦸‍♀️",supervillain:"🦹",supervillain_man:"🦹‍♂️",supervillain_woman:"🦹‍♀️",mage:"🧙",mage_man:"🧙‍♂️",mage_woman:"🧙‍♀️",fairy:"🧚",fairy_man:"🧚‍♂️",fairy_woman:"🧚‍♀️",vampire:"🧛",vampire_man:"🧛‍♂️",vampire_woman:"🧛‍♀️",merperson:"🧜",merman:"🧜‍♂️",mermaid:"🧜‍♀️",elf:"🧝",elf_man:"🧝‍♂️",elf_woman:"🧝‍♀️",genie:"🧞",genie_man:"🧞‍♂️",genie_woman:"🧞‍♀️",zombie:"🧟",zombie_man:"🧟‍♂️",zombie_woman:"🧟‍♀️",troll:"🧌",massage:"💆",massage_man:"💆‍♂️",massage_woman:"💆‍♀️",haircut:"💇",haircut_man:"💇‍♂️",haircut_woman:"💇‍♀️",walking:"🚶",walking_man:"🚶‍♂️",walking_woman:"🚶‍♀️",standing_person:"🧍",standing_man:"🧍‍♂️",standing_woman:"🧍‍♀️",kneeling_person:"🧎",kneeling_man:"🧎‍♂️",kneeling_woman:"🧎‍♀️",person_with_probing_cane:"🧑‍🦯",man_with_probing_cane:"👨‍🦯",woman_with_probing_cane:"👩‍🦯",person_in_motorized_wheelchair:"🧑‍🦼",man_in_motorized_wheelchair:"👨‍🦼",woman_in_motorized_wheelchair:"👩‍🦼",person_in_manual_wheelchair:"🧑‍🦽",man_in_manual_wheelchair:"👨‍🦽",woman_in_manual_wheelchair:"👩‍🦽",runner:"🏃",running:"🏃",running_man:"🏃‍♂️",running_woman:"🏃‍♀️",woman_dancing:"💃",dancer:"💃",man_dancing:"🕺",business_suit_levitating:"🕴️",dancers:"👯",dancing_men:"👯‍♂️",dancing_women:"👯‍♀️",sauna_person:"🧖",sauna_man:"🧖‍♂️",sauna_woman:"🧖‍♀️",climbing:"🧗",climbing_man:"🧗‍♂️",climbing_woman:"🧗‍♀️",person_fencing:"🤺",horse_racing:"🏇",skier:"⛷️",snowboarder:"🏂",golfing:"🏌️",golfing_man:"🏌️‍♂️",golfing_woman:"🏌️‍♀️",surfer:"🏄",surfing_man:"🏄‍♂️",surfing_woman:"🏄‍♀️",rowboat:"🚣",rowing_man:"🚣‍♂️",rowing_woman:"🚣‍♀️",swimmer:"🏊",swimming_man:"🏊‍♂️",swimming_woman:"🏊‍♀️",bouncing_ball_person:"⛹️",bouncing_ball_man:"⛹️‍♂️",basketball_man:"⛹️‍♂️",bouncing_ball_woman:"⛹️‍♀️",basketball_woman:"⛹️‍♀️",weight_lifting:"🏋️",weight_lifting_man:"🏋️‍♂️",weight_lifting_woman:"🏋️‍♀️",bicyclist:"🚴",biking_man:"🚴‍♂️",biking_woman:"🚴‍♀️",mountain_bicyclist:"🚵",mountain_biking_man:"🚵‍♂️",mountain_biking_woman:"🚵‍♀️",cartwheeling:"🤸",man_cartwheeling:"🤸‍♂️",woman_cartwheeling:"🤸‍♀️",wrestling:"🤼",men_wrestling:"🤼‍♂️",women_wrestling:"🤼‍♀️",water_polo:"🤽",man_playing_water_polo:"🤽‍♂️",woman_playing_water_polo:"🤽‍♀️",handball_person:"🤾",man_playing_handball:"🤾‍♂️",woman_playing_handball:"🤾‍♀️",juggling_person:"🤹",man_juggling:"🤹‍♂️",woman_juggling:"🤹‍♀️",lotus_position:"🧘",lotus_position_man:"🧘‍♂️",lotus_position_woman:"🧘‍♀️",bath:"🛀",sleeping_bed:"🛌",people_holding_hands:"🧑‍🤝‍🧑",two_women_holding_hands:"👭",couple:"👫",two_men_holding_hands:"👬",couplekiss:"💏",couplekiss_man_woman:"👩‍❤️‍💋‍👨",couplekiss_man_man:"👨‍❤️‍💋‍👨",couplekiss_woman_woman:"👩‍❤️‍💋‍👩",couple_with_heart:"💑",couple_with_heart_woman_man:"👩‍❤️‍👨",couple_with_heart_man_man:"👨‍❤️‍👨",couple_with_heart_woman_woman:"👩‍❤️‍👩",family:"👪",family_man_woman_boy:"👨‍👩‍👦",family_man_woman_girl:"👨‍👩‍👧",family_man_woman_girl_boy:"👨‍👩‍👧‍👦",family_man_woman_boy_boy:"👨‍👩‍👦‍👦",family_man_woman_girl_girl:"👨‍👩‍👧‍👧",family_man_man_boy:"👨‍👨‍👦",family_man_man_girl:"👨‍👨‍👧",family_man_man_girl_boy:"👨‍👨‍👧‍👦",family_man_man_boy_boy:"👨‍👨‍👦‍👦",family_man_man_girl_girl:"👨‍👨‍👧‍👧",family_woman_woman_boy:"👩‍👩‍👦",family_woman_woman_girl:"👩‍👩‍👧",family_woman_woman_girl_boy:"👩‍👩‍👧‍👦",family_woman_woman_boy_boy:"👩‍👩‍👦‍👦",family_woman_woman_girl_girl:"👩‍👩‍👧‍👧",family_man_boy:"👨‍👦",family_man_boy_boy:"👨‍👦‍👦",family_man_girl:"👨‍👧",family_man_girl_boy:"👨‍👧‍👦",family_man_girl_girl:"👨‍👧‍👧",family_woman_boy:"👩‍👦",family_woman_boy_boy:"👩‍👦‍👦",family_woman_girl:"👩‍👧",family_woman_girl_boy:"👩‍👧‍👦",family_woman_girl_girl:"👩‍👧‍👧",speaking_head:"🗣️",bust_in_silhouette:"👤",busts_in_silhouette:"👥",people_hugging:"🫂",footprints:"👣",monkey_face:"🐵",monkey:"🐒",gorilla:"🦍",orangutan:"🦧",dog:"🐶",dog2:"🐕",guide_dog:"🦮",service_dog:"🐕‍🦺",poodle:"🐩",wolf:"🐺",fox_face:"🦊",raccoon:"🦝",cat:"🐱",cat2:"🐈",black_cat:"🐈‍⬛",lion:"🦁",tiger:"🐯",tiger2:"🐅",leopard:"🐆",horse:"🐴",moose:"🫎",donkey:"🫏",racehorse:"🐎",unicorn:"🦄",zebra:"🦓",deer:"🦌",bison:"🦬",cow:"🐮",ox:"🐂",water_buffalo:"🐃",cow2:"🐄",pig:"🐷",pig2:"🐖",boar:"🐗",pig_nose:"🐽",ram:"🐏",sheep:"🐑",goat:"🐐",dromedary_camel:"🐪",camel:"🐫",llama:"🦙",giraffe:"🦒",elephant:"🐘",mammoth:"🦣",rhinoceros:"🦏",hippopotamus:"🦛",mouse:"🐭",mouse2:"🐁",rat:"🐀",hamster:"🐹",rabbit:"🐰",rabbit2:"🐇",chipmunk:"🐿️",beaver:"🦫",hedgehog:"🦔",bat:"🦇",bear:"🐻",polar_bear:"🐻‍❄️",koala:"🐨",panda_face:"🐼",sloth:"🦥",otter:"🦦",skunk:"🦨",kangaroo:"🦘",badger:"🦡",feet:"🐾",paw_prints:"🐾",turkey:"🦃",chicken:"🐔",rooster:"🐓",hatching_chick:"🐣",baby_chick:"🐤",hatched_chick:"🐥",bird:"🐦",penguin:"🐧",dove:"🕊️",eagle:"🦅",duck:"🦆",swan:"🦢",owl:"🦉",dodo:"🦤",feather:"🪶",flamingo:"🦩",peacock:"🦚",parrot:"🦜",wing:"🪽",black_bird:"🐦‍⬛",goose:"🪿",frog:"🐸",crocodile:"🐊",turtle:"🐢",lizard:"🦎",snake:"🐍",dragon_face:"🐲",dragon:"🐉",sauropod:"🦕","t-rex":"🦖",whale:"🐳",whale2:"🐋",dolphin:"🐬",flipper:"🐬",seal:"🦭",fish:"🐟",tropical_fish:"🐠",blowfish:"🐡",shark:"🦈",octopus:"🐙",shell:"🐚",coral:"🪸",jellyfish:"🪼",snail:"🐌",butterfly:"🦋",bug:"🐛",ant:"🐜",bee:"🐝",honeybee:"🐝",beetle:"🪲",lady_beetle:"🐞",cricket:"🦗",cockroach:"🪳",spider:"🕷️",spider_web:"🕸️",scorpion:"🦂",mosquito:"🦟",fly:"🪰",worm:"🪱",microbe:"🦠",bouquet:"💐",cherry_blossom:"🌸",white_flower:"💮",lotus:"🪷",rosette:"🏵️",rose:"🌹",wilted_flower:"🥀",hibiscus:"🌺",sunflower:"🌻",blossom:"🌼",tulip:"🌷",hyacinth:"🪻",seedling:"🌱",potted_plant:"🪴",evergreen_tree:"🌲",deciduous_tree:"🌳",palm_tree:"🌴",cactus:"🌵",ear_of_rice:"🌾",herb:"🌿",shamrock:"☘️",four_leaf_clover:"🍀",maple_leaf:"🍁",fallen_leaf:"🍂",leaves:"🍃",empty_nest:"🪹",nest_with_eggs:"🪺",mushroom:"🍄",grapes:"🍇",melon:"🍈",watermelon:"🍉",tangerine:"🍊",orange:"🍊",mandarin:"🍊",lemon:"🍋",banana:"🍌",pineapple:"🍍",mango:"🥭",apple:"🍎",green_apple:"🍏",pear:"🍐",peach:"🍑",cherries:"🍒",strawberry:"🍓",blueberries:"🫐",kiwi_fruit:"🥝",tomato:"🍅",olive:"🫒",coconut:"🥥",avocado:"🥑",eggplant:"🍆",potato:"🥔",carrot:"🥕",corn:"🌽",hot_pepper:"🌶️",bell_pepper:"🫑",cucumber:"🥒",leafy_green:"🥬",broccoli:"🥦",garlic:"🧄",onion:"🧅",peanuts:"🥜",beans:"🫘",chestnut:"🌰",ginger_root:"🫚",pea_pod:"🫛",bread:"🍞",croissant:"🥐",baguette_bread:"🥖",flatbread:"🫓",pretzel:"🥨",bagel:"🥯",pancakes:"🥞",waffle:"🧇",cheese:"🧀",meat_on_bone:"🍖",poultry_leg:"🍗",cut_of_meat:"🥩",bacon:"🥓",hamburger:"🍔",fries:"🍟",pizza:"🍕",hotdog:"🌭",sandwich:"🥪",taco:"🌮",burrito:"🌯",tamale:"🫔",stuffed_flatbread:"🥙",falafel:"🧆",egg:"🥚",fried_egg:"🍳",shallow_pan_of_food:"🥘",stew:"🍲",fondue:"🫕",bowl_with_spoon:"🥣",green_salad:"🥗",popcorn:"🍿",butter:"🧈",salt:"🧂",canned_food:"🥫",bento:"🍱",rice_cracker:"🍘",rice_ball:"🍙",rice:"🍚",curry:"🍛",ramen:"🍜",spaghetti:"🍝",sweet_potato:"🍠",oden:"🍢",sushi:"🍣",fried_shrimp:"🍤",fish_cake:"🍥",moon_cake:"🥮",dango:"🍡",dumpling:"🥟",fortune_cookie:"🥠",takeout_box:"🥡",crab:"🦀",lobster:"🦞",shrimp:"🦐",squid:"🦑",oyster:"🦪",icecream:"🍦",shaved_ice:"🍧",ice_cream:"🍨",doughnut:"🍩",cookie:"🍪",birthday:"🎂",cake:"🍰",cupcake:"🧁",pie:"🥧",chocolate_bar:"🍫",candy:"🍬",lollipop:"🍭",custard:"🍮",honey_pot:"🍯",baby_bottle:"🍼",milk_glass:"🥛",coffee:"☕",teapot:"🫖",tea:"🍵",sake:"🍶",champagne:"🍾",wine_glass:"🍷",cocktail:"🍸",tropical_drink:"🍹",beer:"🍺",beers:"🍻",clinking_glasses:"🥂",tumbler_glass:"🥃",pouring_liquid:"🫗",cup_with_straw:"🥤",bubble_tea:"🧋",beverage_box:"🧃",mate:"🧉",ice_cube:"🧊",chopsticks:"🥢",plate_with_cutlery:"🍽️",fork_and_knife:"🍴",spoon:"🥄",hocho:"🔪",knife:"🔪",jar:"🫙",amphora:"🏺",earth_africa:"🌍",earth_americas:"🌎",earth_asia:"🌏",globe_with_meridians:"🌐",world_map:"🗺️",japan:"🗾",compass:"🧭",mountain_snow:"🏔️",mountain:"⛰️",volcano:"🌋",mount_fuji:"🗻",camping:"🏕️",beach_umbrella:"🏖️",desert:"🏜️",desert_island:"🏝️",national_park:"🏞️",stadium:"🏟️",classical_building:"🏛️",building_construction:"🏗️",bricks:"🧱",rock:"🪨",wood:"🪵",hut:"🛖",houses:"🏘️",derelict_house:"🏚️",house:"🏠",house_with_garden:"🏡",office:"🏢",post_office:"🏣",european_post_office:"🏤",hospital:"🏥",bank:"🏦",hotel:"🏨",love_hotel:"🏩",convenience_store:"🏪",school:"🏫",department_store:"🏬",factory:"🏭",japanese_castle:"🏯",european_castle:"🏰",wedding:"💒",tokyo_tower:"🗼",statue_of_liberty:"🗽",church:"⛪",mosque:"🕌",hindu_temple:"🛕",synagogue:"🕍",shinto_shrine:"⛩️",kaaba:"🕋",fountain:"⛲",tent:"⛺",foggy:"🌁",night_with_stars:"🌃",cityscape:"🏙️",sunrise_over_mountains:"🌄",sunrise:"🌅",city_sunset:"🌆",city_sunrise:"🌇",bridge_at_night:"🌉",hotsprings:"♨️",carousel_horse:"🎠",playground_slide:"🛝",ferris_wheel:"🎡",roller_coaster:"🎢",barber:"💈",circus_tent:"🎪",steam_locomotive:"🚂",railway_car:"🚃",bullettrain_side:"🚄",bullettrain_front:"🚅",train2:"🚆",metro:"🚇",light_rail:"🚈",station:"🚉",tram:"🚊",monorail:"🚝",mountain_railway:"🚞",train:"🚋",bus:"🚌",oncoming_bus:"🚍",trolleybus:"🚎",minibus:"🚐",ambulance:"🚑",fire_engine:"🚒",police_car:"🚓",oncoming_police_car:"🚔",taxi:"🚕",oncoming_taxi:"🚖",car:"🚗",red_car:"🚗",oncoming_automobile:"🚘",blue_car:"🚙",pickup_truck:"🛻",truck:"🚚",articulated_lorry:"🚛",tractor:"🚜",racing_car:"🏎️",motorcycle:"🏍️",motor_scooter:"🛵",manual_wheelchair:"🦽",motorized_wheelchair:"🦼",auto_rickshaw:"🛺",bike:"🚲",kick_scooter:"🛴",skateboard:"🛹",roller_skate:"🛼",busstop:"🚏",motorway:"🛣️",railway_track:"🛤️",oil_drum:"🛢️",fuelpump:"⛽",wheel:"🛞",rotating_light:"🚨",traffic_light:"🚥",vertical_traffic_light:"🚦",stop_sign:"🛑",construction:"🚧",anchor:"⚓",ring_buoy:"🛟",boat:"⛵",sailboat:"⛵",canoe:"🛶",speedboat:"🚤",passenger_ship:"🛳️",ferry:"⛴️",motor_boat:"🛥️",ship:"🚢",airplane:"✈️",small_airplane:"🛩️",flight_departure:"🛫",flight_arrival:"🛬",parachute:"🪂",seat:"💺",helicopter:"🚁",suspension_railway:"🚟",mountain_cableway:"🚠",aerial_tramway:"🚡",artificial_satellite:"🛰️",rocket:"🚀",flying_saucer:"🛸",bellhop_bell:"🛎️",luggage:"🧳",hourglass:"⌛",hourglass_flowing_sand:"⏳",watch:"⌚",alarm_clock:"⏰",stopwatch:"⏱️",timer_clock:"⏲️",mantelpiece_clock:"🕰️",clock12:"🕛",clock1230:"🕧",clock1:"🕐",clock130:"🕜",clock2:"🕑",clock230:"🕝",clock3:"🕒",clock330:"🕞",clock4:"🕓",clock430:"🕟",clock5:"🕔",clock530:"🕠",clock6:"🕕",clock630:"🕡",clock7:"🕖",clock730:"🕢",clock8:"🕗",clock830:"🕣",clock9:"🕘",clock930:"🕤",clock10:"🕙",clock1030:"🕥",clock11:"🕚",clock1130:"🕦",new_moon:"🌑",waxing_crescent_moon:"🌒",first_quarter_moon:"🌓",moon:"🌔",waxing_gibbous_moon:"🌔",full_moon:"🌕",waning_gibbous_moon:"🌖",last_quarter_moon:"🌗",waning_crescent_moon:"🌘",crescent_moon:"🌙",new_moon_with_face:"🌚",first_quarter_moon_with_face:"🌛",last_quarter_moon_with_face:"🌜",thermometer:"🌡️",sunny:"☀️",full_moon_with_face:"🌝",sun_with_face:"🌞",ringed_planet:"🪐",star:"⭐",star2:"🌟",stars:"🌠",milky_way:"🌌",cloud:"☁️",partly_sunny:"⛅",cloud_with_lightning_and_rain:"⛈️",sun_behind_small_cloud:"🌤️",sun_behind_large_cloud:"🌥️",sun_behind_rain_cloud:"🌦️",cloud_with_rain:"🌧️",cloud_with_snow:"🌨️",cloud_with_lightning:"🌩️",tornado:"🌪️",fog:"🌫️",wind_face:"🌬️",cyclone:"🌀",rainbow:"🌈",closed_umbrella:"🌂",open_umbrella:"☂️",umbrella:"☔",parasol_on_ground:"⛱️",zap:"⚡",snowflake:"❄️",snowman_with_snow:"☃️",snowman:"⛄",comet:"☄️",fire:"🔥",droplet:"💧",ocean:"🌊",jack_o_lantern:"🎃",christmas_tree:"🎄",fireworks:"🎆",sparkler:"🎇",firecracker:"🧨",sparkles:"✨",balloon:"🎈",tada:"🎉",confetti_ball:"🎊",tanabata_tree:"🎋",bamboo:"🎍",dolls:"🎎",flags:"🎏",wind_chime:"🎐",rice_scene:"🎑",red_envelope:"🧧",ribbon:"🎀",gift:"🎁",reminder_ribbon:"🎗️",tickets:"🎟️",ticket:"🎫",medal_military:"🎖️",trophy:"🏆",medal_sports:"🏅","1st_place_medal":"🥇","2nd_place_medal":"🥈","3rd_place_medal":"🥉",soccer:"⚽",baseball:"⚾",softball:"🥎",basketball:"🏀",volleyball:"🏐",football:"🏈",rugby_football:"🏉",tennis:"🎾",flying_disc:"🥏",bowling:"🎳",cricket_game:"🏏",field_hockey:"🏑",ice_hockey:"🏒",lacrosse:"🥍",ping_pong:"🏓",badminton:"🏸",boxing_glove:"🥊",martial_arts_uniform:"🥋",goal_net:"🥅",golf:"⛳",ice_skate:"⛸️",fishing_pole_and_fish:"🎣",diving_mask:"🤿",running_shirt_with_sash:"🎽",ski:"🎿",sled:"🛷",curling_stone:"🥌",dart:"🎯",yo_yo:"🪀",kite:"🪁",gun:"🔫","8ball":"🎱",crystal_ball:"🔮",magic_wand:"🪄",video_game:"🎮",joystick:"🕹️",slot_machine:"🎰",game_die:"🎲",jigsaw:"🧩",teddy_bear:"🧸",pinata:"🪅",mirror_ball:"🪩",nesting_dolls:"🪆",spades:"♠️",hearts:"♥️",diamonds:"♦️",clubs:"♣️",chess_pawn:"♟️",black_joker:"🃏",mahjong:"🀄",flower_playing_cards:"🎴",performing_arts:"🎭",framed_picture:"🖼️",art:"🎨",thread:"🧵",sewing_needle:"🪡",yarn:"🧶",knot:"🪢",eyeglasses:"👓",dark_sunglasses:"🕶️",goggles:"🥽",lab_coat:"🥼",safety_vest:"🦺",necktie:"👔",shirt:"👕",tshirt:"👕",jeans:"👖",scarf:"🧣",gloves:"🧤",coat:"🧥",socks:"🧦",dress:"👗",kimono:"👘",sari:"🥻",one_piece_swimsuit:"🩱",swim_brief:"🩲",shorts:"🩳",bikini:"👙",womans_clothes:"👚",folding_hand_fan:"🪭",purse:"👛",handbag:"👜",pouch:"👝",shopping:"🛍️",school_satchel:"🎒",thong_sandal:"🩴",mans_shoe:"👞",shoe:"👞",athletic_shoe:"👟",hiking_boot:"🥾",flat_shoe:"🥿",high_heel:"👠",sandal:"👡",ballet_shoes:"🩰",boot:"👢",hair_pick:"🪮",crown:"👑",womans_hat:"👒",tophat:"🎩",mortar_board:"🎓",billed_cap:"🧢",military_helmet:"🪖",rescue_worker_helmet:"⛑️",prayer_beads:"📿",lipstick:"💄",ring:"💍",gem:"💎",mute:"🔇",speaker:"🔈",sound:"🔉",loud_sound:"🔊",loudspeaker:"📢",mega:"📣",postal_horn:"📯",bell:"🔔",no_bell:"🔕",musical_score:"🎼",musical_note:"🎵",notes:"🎶",studio_microphone:"🎙️",level_slider:"🎚️",control_knobs:"🎛️",microphone:"🎤",headphones:"🎧",radio:"📻",saxophone:"🎷",accordion:"🪗",guitar:"🎸",musical_keyboard:"🎹",trumpet:"🎺",violin:"🎻",banjo:"🪕",drum:"🥁",long_drum:"🪘",maracas:"🪇",flute:"🪈",iphone:"📱",calling:"📲",phone:"☎️",telephone:"☎️",telephone_receiver:"📞",pager:"📟",fax:"📠",battery:"🔋",low_battery:"🪫",electric_plug:"🔌",computer:"💻",desktop_computer:"🖥️",printer:"🖨️",keyboard:"⌨️",computer_mouse:"🖱️",trackball:"🖲️",minidisc:"💽",floppy_disk:"💾",cd:"💿",dvd:"📀",abacus:"🧮",movie_camera:"🎥",film_strip:"🎞️",film_projector:"📽️",clapper:"🎬",tv:"📺",camera:"📷",camera_flash:"📸",video_camera:"📹",vhs:"📼",mag:"🔍",mag_right:"🔎",candle:"🕯️",bulb:"💡",flashlight:"🔦",izakaya_lantern:"🏮",lantern:"🏮",diya_lamp:"🪔",notebook_with_decorative_cover:"📔",closed_book:"📕",book:"📖",open_book:"📖",green_book:"📗",blue_book:"📘",orange_book:"📙",books:"📚",notebook:"📓",ledger:"📒",page_with_curl:"📃",scroll:"📜",page_facing_up:"📄",newspaper:"📰",newspaper_roll:"🗞️",bookmark_tabs:"📑",bookmark:"🔖",label:"🏷️",moneybag:"💰",coin:"🪙",yen:"💴",dollar:"💵",euro:"💶",pound:"💷",money_with_wings:"💸",credit_card:"💳",receipt:"🧾",chart:"💹",envelope:"✉️",email:"📧","e-mail":"📧",incoming_envelope:"📨",envelope_with_arrow:"📩",outbox_tray:"📤",inbox_tray:"📥",package:"📦",mailbox:"📫",mailbox_closed:"📪",mailbox_with_mail:"📬",mailbox_with_no_mail:"📭",postbox:"📮",ballot_box:"🗳️",pencil2:"✏️",black_nib:"✒️",fountain_pen:"🖋️",pen:"🖊️",paintbrush:"🖌️",crayon:"🖍️",memo:"📝",pencil:"📝",briefcase:"💼",file_folder:"📁",open_file_folder:"📂",card_index_dividers:"🗂️",date:"📅",calendar:"📆",spiral_notepad:"🗒️",spiral_calendar:"🗓️",card_index:"📇",chart_with_upwards_trend:"📈",chart_with_downwards_trend:"📉",bar_chart:"📊",clipboard:"📋",pushpin:"📌",round_pushpin:"📍",paperclip:"📎",paperclips:"🖇️",straight_ruler:"📏",triangular_ruler:"📐",scissors:"✂️",card_file_box:"🗃️",file_cabinet:"🗄️",wastebasket:"🗑️",lock:"🔒",unlock:"🔓",lock_with_ink_pen:"🔏",closed_lock_with_key:"🔐",key:"🔑",old_key:"🗝️",hammer:"🔨",axe:"🪓",pick:"⛏️",hammer_and_pick:"⚒️",hammer_and_wrench:"🛠️",dagger:"🗡️",crossed_swords:"⚔️",bomb:"💣",boomerang:"🪃",bow_and_arrow:"🏹",shield:"🛡️",carpentry_saw:"🪚",wrench:"🔧",screwdriver:"🪛",nut_and_bolt:"🔩",gear:"⚙️",clamp:"🗜️",balance_scale:"⚖️",probing_cane:"🦯",link:"🔗",chains:"⛓️",hook:"🪝",toolbox:"🧰",magnet:"🧲",ladder:"🪜",alembic:"⚗️",test_tube:"🧪",petri_dish:"🧫",dna:"🧬",microscope:"🔬",telescope:"🔭",satellite:"📡",syringe:"💉",drop_of_blood:"🩸",pill:"💊",adhesive_bandage:"🩹",crutch:"🩼",stethoscope:"🩺",x_ray:"🩻",door:"🚪",elevator:"🛗",mirror:"🪞",window:"🪟",bed:"🛏️",couch_and_lamp:"🛋️",chair:"🪑",toilet:"🚽",plunger:"🪠",shower:"🚿",bathtub:"🛁",mouse_trap:"🪤",razor:"🪒",lotion_bottle:"🧴",safety_pin:"🧷",broom:"🧹",basket:"🧺",roll_of_paper:"🧻",bucket:"🪣",soap:"🧼",bubbles:"🫧",toothbrush:"🪥",sponge:"🧽",fire_extinguisher:"🧯",shopping_cart:"🛒",smoking:"🚬",coffin:"⚰️",headstone:"🪦",funeral_urn:"⚱️",nazar_amulet:"🧿",hamsa:"🪬",moyai:"🗿",placard:"🪧",identification_card:"🪪",atm:"🏧",put_litter_in_its_place:"🚮",potable_water:"🚰",wheelchair:"♿",mens:"🚹",womens:"🚺",restroom:"🚻",baby_symbol:"🚼",wc:"🚾",passport_control:"🛂",customs:"🛃",baggage_claim:"🛄",left_luggage:"🛅",warning:"⚠️",children_crossing:"🚸",no_entry:"⛔",no_entry_sign:"🚫",no_bicycles:"🚳",no_smoking:"🚭",do_not_litter:"🚯","non-potable_water":"🚱",no_pedestrians:"🚷",no_mobile_phones:"📵",underage:"🔞",radioactive:"☢️",biohazard:"☣️",arrow_up:"⬆️",arrow_upper_right:"↗️",arrow_right:"➡️",arrow_lower_right:"↘️",arrow_down:"⬇️",arrow_lower_left:"↙️",arrow_left:"⬅️",arrow_upper_left:"↖️",arrow_up_down:"↕️",left_right_arrow:"↔️",leftwards_arrow_with_hook:"↩️",arrow_right_hook:"↪️",arrow_heading_up:"⤴️",arrow_heading_down:"⤵️",arrows_clockwise:"🔃",arrows_counterclockwise:"🔄",back:"🔙",end:"🔚",on:"🔛",soon:"🔜",top:"🔝",place_of_worship:"🛐",atom_symbol:"⚛️",om:"🕉️",star_of_david:"✡️",wheel_of_dharma:"☸️",yin_yang:"☯️",latin_cross:"✝️",orthodox_cross:"☦️",star_and_crescent:"☪️",peace_symbol:"☮️",menorah:"🕎",six_pointed_star:"🔯",khanda:"🪯",aries:"♈",taurus:"♉",gemini:"♊",cancer:"♋",leo:"♌",virgo:"♍",libra:"♎",scorpius:"♏",sagittarius:"♐",capricorn:"♑",aquarius:"♒",pisces:"♓",ophiuchus:"⛎",twisted_rightwards_arrows:"🔀",repeat:"🔁",repeat_one:"🔂",arrow_forward:"▶️",fast_forward:"⏩",next_track_button:"⏭️",play_or_pause_button:"⏯️",arrow_backward:"◀️",rewind:"⏪",previous_track_button:"⏮️",arrow_up_small:"🔼",arrow_double_up:"⏫",arrow_down_small:"🔽",arrow_double_down:"⏬",pause_button:"⏸️",stop_button:"⏹️",record_button:"⏺️",eject_button:"⏏️",cinema:"🎦",low_brightness:"🔅",high_brightness:"🔆",signal_strength:"📶",wireless:"🛜",vibration_mode:"📳",mobile_phone_off:"📴",female_sign:"♀️",male_sign:"♂️",transgender_symbol:"⚧️",heavy_multiplication_x:"✖️",heavy_plus_sign:"➕",heavy_minus_sign:"➖",heavy_division_sign:"➗",heavy_equals_sign:"🟰",infinity:"♾️",bangbang:"‼️",interrobang:"⁉️",question:"❓",grey_question:"❔",grey_exclamation:"❕",exclamation:"❗",heavy_exclamation_mark:"❗",wavy_dash:"〰️",currency_exchange:"💱",heavy_dollar_sign:"💲",medical_symbol:"⚕️",recycle:"♻️",fleur_de_lis:"⚜️",trident:"🔱",name_badge:"📛",beginner:"🔰",o:"⭕",white_check_mark:"✅",ballot_box_with_check:"☑️",heavy_check_mark:"✔️",x:"❌",negative_squared_cross_mark:"❎",curly_loop:"➰",loop:"➿",part_alternation_mark:"〽️",eight_spoked_asterisk:"✳️",eight_pointed_black_star:"✴️",sparkle:"❇️",copyright:"©️",registered:"®️",tm:"™️",hash:"#️⃣",asterisk:"*️⃣",zero:"0️⃣",one:"1️⃣",two:"2️⃣",three:"3️⃣",four:"4️⃣",five:"5️⃣",six:"6️⃣",seven:"7️⃣",eight:"8️⃣",nine:"9️⃣",keycap_ten:"🔟",capital_abcd:"🔠",abcd:"🔡",symbols:"🔣",abc:"🔤",a:"🅰️",ab:"🆎",b:"🅱️",cl:"🆑",cool:"🆒",free:"🆓",information_source:"ℹ️",id:"🆔",m:"Ⓜ️",new:"🆕",ng:"🆖",o2:"🅾️",ok:"🆗",parking:"🅿️",sos:"🆘",up:"🆙",vs:"🆚",koko:"🈁",sa:"🈂️",ideograph_advantage:"🉐",accept:"🉑",congratulations:"㊗️",secret:"㊙️",u6e80:"🈵",red_circle:"🔴",orange_circle:"🟠",yellow_circle:"🟡",green_circle:"🟢",large_blue_circle:"🔵",purple_circle:"🟣",brown_circle:"🟤",black_circle:"⚫",white_circle:"⚪",red_square:"🟥",orange_square:"🟧",yellow_square:"🟨",green_square:"🟩",blue_square:"🟦",purple_square:"🟪",brown_square:"🟫",black_large_square:"⬛",white_large_square:"⬜",black_medium_square:"◼️",white_medium_square:"◻️",black_medium_small_square:"◾",white_medium_small_square:"◽",black_small_square:"▪️",white_small_square:"▫️",large_orange_diamond:"🔶",large_blue_diamond:"🔷",small_orange_diamond:"🔸",small_blue_diamond:"🔹",small_red_triangle:"🔺",small_red_triangle_down:"🔻",diamond_shape_with_a_dot_inside:"💠",radio_button:"🔘",white_square_button:"🔳",black_square_button:"🔲",checkered_flag:"🏁",triangular_flag_on_post:"🚩",crossed_flags:"🎌",black_flag:"🏴",white_flag:"🏳️",rainbow_flag:"🏳️‍🌈",transgender_flag:"🏳️‍⚧️",pirate_flag:"🏴‍☠️",ascension_island:"🇦🇨",andorra:"🇦🇩",united_arab_emirates:"🇦🇪",afghanistan:"🇦🇫",antigua_barbuda:"🇦🇬",anguilla:"🇦🇮",albania:"🇦🇱",armenia:"🇦🇲",angola:"🇦🇴",antarctica:"🇦🇶",argentina:"🇦🇷",american_samoa:"🇦🇸",austria:"🇦🇹",australia:"🇦🇺",aruba:"🇦🇼",aland_islands:"🇦🇽",azerbaijan:"🇦🇿",bosnia_herzegovina:"🇧🇦",barbados:"🇧🇧",bangladesh:"🇧🇩",belgium:"🇧🇪",burkina_faso:"🇧🇫",bulgaria:"🇧🇬",bahrain:"🇧🇭",burundi:"🇧🇮",benin:"🇧🇯",st_barthelemy:"🇧🇱",bermuda:"🇧🇲",brunei:"🇧🇳",bolivia:"🇧🇴",caribbean_netherlands:"🇧🇶",brazil:"🇧🇷",bahamas:"🇧🇸",bhutan:"🇧🇹",bouvet_island:"🇧🇻",botswana:"🇧🇼",belarus:"🇧🇾",belize:"🇧🇿",canada:"🇨🇦",cocos_islands:"🇨🇨",congo_kinshasa:"🇨🇩",central_african_republic:"🇨🇫",congo_brazzaville:"🇨🇬",switzerland:"🇨🇭",cote_divoire:"🇨🇮",cook_islands:"🇨🇰",chile:"🇨🇱",cameroon:"🇨🇲",cn:"🇨🇳",colombia:"🇨🇴",clipperton_island:"🇨🇵",costa_rica:"🇨🇷",cuba:"🇨🇺",cape_verde:"🇨🇻",curacao:"🇨🇼",christmas_island:"🇨🇽",cyprus:"🇨🇾",czech_republic:"🇨🇿",de:"🇩🇪",diego_garcia:"🇩🇬",djibouti:"🇩🇯",denmark:"🇩🇰",dominica:"🇩🇲",dominican_republic:"🇩🇴",algeria:"🇩🇿",ceuta_melilla:"🇪🇦",ecuador:"🇪🇨",estonia:"🇪🇪",egypt:"🇪🇬",western_sahara:"🇪🇭",eritrea:"🇪🇷",es:"🇪🇸",ethiopia:"🇪🇹",eu:"🇪🇺",european_union:"🇪🇺",finland:"🇫🇮",fiji:"🇫🇯",falkland_islands:"🇫🇰",micronesia:"🇫🇲",faroe_islands:"🇫🇴",fr:"🇫🇷",gabon:"🇬🇦",gb:"🇬🇧",uk:"🇬🇧",grenada:"🇬🇩",georgia:"🇬🇪",french_guiana:"🇬🇫",guernsey:"🇬🇬",ghana:"🇬🇭",gibraltar:"🇬🇮",greenland:"🇬🇱",gambia:"🇬🇲",guinea:"🇬🇳",guadeloupe:"🇬🇵",equatorial_guinea:"🇬🇶",greece:"🇬🇷",south_georgia_south_sandwich_islands:"🇬🇸",guatemala:"🇬🇹",guam:"🇬🇺",guinea_bissau:"🇬🇼",guyana:"🇬🇾",hong_kong:"🇭🇰",heard_mcdonald_islands:"🇭🇲",honduras:"🇭🇳",croatia:"🇭🇷",haiti:"🇭🇹",hungary:"🇭🇺",canary_islands:"🇮🇨",indonesia:"🇮🇩",ireland:"🇮🇪",israel:"🇮🇱",isle_of_man:"🇮🇲",india:"🇮🇳",british_indian_ocean_territory:"🇮🇴",iraq:"🇮🇶",iran:"🇮🇷",iceland:"🇮🇸",it:"🇮🇹",jersey:"🇯🇪",jamaica:"🇯🇲",jordan:"🇯🇴",jp:"🇯🇵",kenya:"🇰🇪",kyrgyzstan:"🇰🇬",cambodia:"🇰🇭",kiribati:"🇰🇮",comoros:"🇰🇲",st_kitts_nevis:"🇰🇳",north_korea:"🇰🇵",kr:"🇰🇷",kuwait:"🇰🇼",cayman_islands:"🇰🇾",kazakhstan:"🇰🇿",laos:"🇱🇦",lebanon:"🇱🇧",st_lucia:"🇱🇨",liechtenstein:"🇱🇮",sri_lanka:"🇱🇰",liberia:"🇱🇷",lesotho:"🇱🇸",lithuania:"🇱🇹",luxembourg:"🇱🇺",latvia:"🇱🇻",libya:"🇱🇾",morocco:"🇲🇦",monaco:"🇲🇨",moldova:"🇲🇩",montenegro:"🇲🇪",st_martin:"🇲🇫",madagascar:"🇲🇬",marshall_islands:"🇲🇭",macedonia:"🇲🇰",mali:"🇲🇱",myanmar:"🇲🇲",mongolia:"🇲🇳",macau:"🇲🇴",northern_mariana_islands:"🇲🇵",martinique:"🇲🇶",mauritania:"🇲🇷",montserrat:"🇲🇸",malta:"🇲🇹",mauritius:"🇲🇺",maldives:"🇲🇻",malawi:"🇲🇼",mexico:"🇲🇽",malaysia:"🇲🇾",mozambique:"🇲🇿",namibia:"🇳🇦",new_caledonia:"🇳🇨",niger:"🇳🇪",norfolk_island:"🇳🇫",nigeria:"🇳🇬",nicaragua:"🇳🇮",netherlands:"🇳🇱",norway:"🇳🇴",nepal:"🇳🇵",nauru:"🇳🇷",niue:"🇳🇺",new_zealand:"🇳🇿",oman:"🇴🇲",panama:"🇵🇦",peru:"🇵🇪",french_polynesia:"🇵🇫",papua_new_guinea:"🇵🇬",philippines:"🇵🇭",pakistan:"🇵🇰",poland:"🇵🇱",st_pierre_miquelon:"🇵🇲",pitcairn_islands:"🇵🇳",puerto_rico:"🇵🇷",palestinian_territories:"🇵🇸",portugal:"🇵🇹",palau:"🇵🇼",paraguay:"🇵🇾",qatar:"🇶🇦",reunion:"🇷🇪",romania:"🇷🇴",serbia:"🇷🇸",ru:"🇷🇺",rwanda:"🇷🇼",saudi_arabia:"🇸🇦",solomon_islands:"🇸🇧",seychelles:"🇸🇨",sudan:"🇸🇩",sweden:"🇸🇪",singapore:"🇸🇬",st_helena:"🇸🇭",slovenia:"🇸🇮",svalbard_jan_mayen:"🇸🇯",slovakia:"🇸🇰",sierra_leone:"🇸🇱",san_marino:"🇸🇲",senegal:"🇸🇳",somalia:"🇸🇴",suriname:"🇸🇷",south_sudan:"🇸🇸",sao_tome_principe:"🇸🇹",el_salvador:"🇸🇻",sint_maarten:"🇸🇽",syria:"🇸🇾",swaziland:"🇸🇿",tristan_da_cunha:"🇹🇦",turks_caicos_islands:"🇹🇨",chad:"🇹🇩",french_southern_territories:"🇹🇫",togo:"🇹🇬",thailand:"🇹🇭",tajikistan:"🇹🇯",tokelau:"🇹🇰",timor_leste:"🇹🇱",turkmenistan:"🇹🇲",tunisia:"🇹🇳",tonga:"🇹🇴",tr:"🇹🇷",trinidad_tobago:"🇹🇹",tuvalu:"🇹🇻",taiwan:"🇹🇼",tanzania:"🇹🇿",ukraine:"🇺🇦",uganda:"🇺🇬",us_outlying_islands:"🇺🇲",united_nations:"🇺🇳",us:"🇺🇸",uruguay:"🇺🇾",uzbekistan:"🇺🇿",vatican_city:"🇻🇦",st_vincent_grenadines:"🇻🇨",venezuela:"🇻🇪",british_virgin_islands:"🇻🇬",us_virgin_islands:"🇻🇮",vietnam:"🇻🇳",vanuatu:"🇻🇺",wallis_futuna:"🇼🇫",samoa:"🇼🇸",kosovo:"🇽🇰",yemen:"🇾🇪",mayotte:"🇾🇹",south_africa:"🇿🇦",zambia:"🇿🇲",zimbabwe:"🇿🇼",england:"🏴󠁧󠁢󠁥󠁮󠁧󠁿",scotland:"🏴󠁧󠁢󠁳󠁣󠁴󠁿",wales:"🏴󠁧󠁢󠁷󠁬󠁳󠁿"};var rd,od;const ad=o(function(){if(od)return rd;od=1;var e=true,t=false,n=false;function r(e,t,n){var r=e.attrIndex(t),o=[t,n];r<0?e.attrPush(o):e.attrs[r]=o;}function o(e,t){for(var n=e[t].level-1,r=t-1;r>=0;r--)if(e[r].level===n)return r;return  -1}function a(e,t){return "inline"===e[t].type&&function(e){return "paragraph_open"===e.type}(e[t-1])&&function(e){return "list_item_open"===e.type}(e[t-2])&&function(e){return 0===e.content.indexOf("[ ] ")||0===e.content.indexOf("[x] ")||0===e.content.indexOf("[X] ")}(e[t])}function i(r,o){if(r.children.unshift(function(t,n){var r=new n("html_inline","",0),o=e?' disabled="" ':"";0===t.content.indexOf("[ ] ")?r.content='<input class="task-list-item-checkbox"'+o+'type="checkbox">':0!==t.content.indexOf("[x] ")&&0!==t.content.indexOf("[X] ")||(r.content='<input class="task-list-item-checkbox" checked=""'+o+'type="checkbox">');return r}(r,o)),r.children[1].content=r.children[1].content.slice(3),r.content=r.content.slice(3),t)if(n){r.children.pop();var a="task-item-"+Math.ceil(1e7*Math.random()-1e3);r.children[0].content=r.children[0].content.slice(0,-1)+' id="'+a+'">',r.children.push(function(e,t,n){var r=new n("html_inline","",0);return r.content='<label class="task-list-item-label" for="'+t+'">'+e+"</label>",r.attrs=[{for:t}],r}(r.content,a,o));}else r.children.unshift(function(e){var t=new e("html_inline","",0);return t.content="<label>",t}(o)),r.children.push(function(e){var t=new e("html_inline","",0);return t.content="</label>",t}(o));}return rd=function(s,l){l&&(e=!l.enabled,t=!!l.label,n=!!l.labelAfter),s.core.ruler.after("inline","github-task-lists",function(t){for(var n=t.tokens,s=2;s<n.length;s++)a(n,s)&&(i(n[s],t.Token),r(n[s-2],"class","task-list-item"+(e?"":" enabled")),r(n[o(n,s-2)],"class","contains-task-list"));});}}());si.registerLanguage("javascript",Li),si.registerLanguage("js",Li),si.registerLanguage("typescript",Oi),si.registerLanguage("ts",Oi),si.registerLanguage("python",function(e){const t=e.regex,n=new RegExp("[\\p{XID_Start}_]\\p{XID_Continue}*","u"),r=["and","as","assert","async","await","break","case","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","in","is","lambda","match","nonlocal|10","not","or","pass","raise","return","try","while","with","yield"],o={$pattern:/[A-Za-z]\w+|__\w+__/,keyword:r,built_in:["__import__","abs","all","any","ascii","bin","bool","breakpoint","bytearray","bytes","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","exec","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","print","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip"],literal:["__debug__","Ellipsis","False","None","NotImplemented","True"],type:["Any","Callable","Coroutine","Dict","List","Literal","Generic","Optional","Sequence","Set","Tuple","Type","Union"]},a={className:"meta",begin:/^(>>>|\.\.\.) /},i={className:"subst",begin:/\{/,end:/\}/,keywords:o,illegal:/#/},s={begin:/\{\{/,relevance:0},l={className:"string",contains:[e.BACKSLASH_ESCAPE],variants:[{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([uU]|[bB]|[rR]|[bB][rR]|[rR][bB])?"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a],relevance:10},{begin:/([fF][rR]|[rR][fF]|[fF])'''/,end:/'''/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"""/,end:/"""/,contains:[e.BACKSLASH_ESCAPE,a,s,i]},{begin:/([uU]|[rR])'/,end:/'/,relevance:10},{begin:/([uU]|[rR])"/,end:/"/,relevance:10},{begin:/([bB]|[bB][rR]|[rR][bB])'/,end:/'/},{begin:/([bB]|[bB][rR]|[rR][bB])"/,end:/"/},{begin:/([fF][rR]|[rR][fF]|[fF])'/,end:/'/,contains:[e.BACKSLASH_ESCAPE,s,i]},{begin:/([fF][rR]|[rR][fF]|[fF])"/,end:/"/,contains:[e.BACKSLASH_ESCAPE,s,i]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},c="[0-9](_?[0-9])*",d=`(\\b(${c}))?\\.(${c})|\\b(${c})\\.`,u=`\\b|${r.join("|")}`,h={className:"number",relevance:0,variants:[{begin:`(\\b(${c})|(${d}))[eE][+-]?(${c})[jJ]?(?=${u})`},{begin:`(${d})[jJ]?`},{begin:`\\b([1-9](_?[0-9])*|0+(_?0)*)[lLjJ]?(?=${u})`},{begin:`\\b0[bB](_?[01])+[lL]?(?=${u})`},{begin:`\\b0[oO](_?[0-7])+[lL]?(?=${u})`},{begin:`\\b0[xX](_?[0-9a-fA-F])+[lL]?(?=${u})`},{begin:`\\b(${c})[jJ](?=${u})`}]},g={className:"comment",begin:t.lookahead(/# type:/),end:/$/,keywords:o,contains:[{begin:/# type:/},{begin:/#/,end:/\b\B/,endsWithParent:true}]},p={className:"params",variants:[{className:"",begin:/\(\s*\)/,skip:true},{begin:/\(/,end:/\)/,excludeBegin:true,excludeEnd:true,keywords:o,contains:["self",a,h,l,e.HASH_COMMENT_MODE]}]};return i.contains=[l,h,a],{name:"Python",aliases:["py","gyp","ipython"],unicodeRegex:true,keywords:o,illegal:/(<\/|\?)|=>/,contains:[a,h,{scope:"variable.language",match:/\bself\b/},{beginKeywords:"if",relevance:0},{match:/\bor\b/,scope:"keyword"},l,g,e.HASH_COMMENT_MODE,{match:[/\bdef/,/\s+/,n],scope:{1:"keyword",3:"title.function"},contains:[p]},{variants:[{match:[/\bclass/,/\s+/,n,/\s*/,/\(\s*/,n,/\s*\)/]},{match:[/\bclass/,/\s+/,n]}],scope:{1:"keyword",3:"title.class",6:"title.class.inherited"}},{className:"meta",begin:/^[\t ]*@/,end:/(?=#)|$/,contains:[h,p,l]}]}}),si.registerLanguage("css",pi),si.registerLanguage("html",Bi),si.registerLanguage("xml",Bi),si.registerLanguage("vue",Bi),si.registerLanguage("json",function(e){const t=["true","false","null"],n={scope:"literal",beginKeywords:t.join(" ")};return {name:"JSON",aliases:["jsonc"],keywords:{literal:t},contains:[{className:"attr",begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/,className:"punctuation",relevance:0},e.QUOTE_STRING_MODE,n,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE],illegal:"\\S"}}),si.registerLanguage("java",function(e){const t=e.regex,n="[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*",r=n+Si("(?:<"+n+"~~~(?:\\s*,\\s*"+n+"~~~)*>)?",/~~~/g,2),o={keyword:["synchronized","abstract","private","var","static","if","const ","for","while","strictfp","finally","protected","import","native","final","void","enum","else","break","transient","catch","instanceof","volatile","case","assert","package","default","public","try","switch","continue","throws","protected","public","private","module","requires","exports","do","sealed","yield","permits","goto","when"],literal:["false","true","null"],type:["char","boolean","long","float","int","byte","short","double"],built_in:["super","this"]},a={className:"meta",begin:"@"+n,contains:[{begin:/\(/,end:/\)/,contains:["self"]}]},i={className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[e.C_BLOCK_COMMENT_MODE],endsParent:true};return {name:"Java",aliases:["jsp"],keywords:o,illegal:/<\/|#/,contains:[e.COMMENT("/\\*\\*","\\*/",{relevance:0,contains:[{
         // eat up @'s in emails to prevent them to be recognized as doctags
         begin:/\w+@/,relevance:0},{className:"doctag",begin:"@[A-Za-z]+"}]}),{begin:/import java\.[a-z]+\./,keywords:"import",relevance:2},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{begin:/"""/,end:/"""/,className:"string",contains:[e.BACKSLASH_ESCAPE]},e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,{match:[/\b(?:class|interface|enum|extends|implements|new)/,/\s+/,n],className:{1:"keyword",3:"title.class"}},{match:/non-sealed/,scope:"keyword"},{begin:[t.concat(/(?!else)/,n),/\s+/,n,/\s+/,/=(?!=)/],className:{1:"type",3:"variable",5:"operator"}},{begin:[/record/,/\s+/,n],className:{1:"keyword",3:"title.class"},contains:[i,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},{beginKeywords:"new throw return else",relevance:0},{begin:["(?:"+r+"\\s+)",e.UNDERSCORE_IDENT_RE,/\s*(?=\()/],className:{2:"title.function"},keywords:o,contains:[{className:"params",begin:/\(/,end:/\)/,keywords:o,relevance:0,contains:[a,e.APOS_STRING_MODE,e.QUOTE_STRING_MODE,xi,e.C_BLOCK_COMMENT_MODE]},e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE]},xi,a]}}),si.registerLanguage("go",function(e){const t={keyword:["break","case","chan","const","continue","default","defer","else","fallthrough","for","func","go","goto","if","import","interface","map","package","range","return","select","struct","switch","type","var"],type:["bool","byte","complex64","complex128","error","float32","float64","int8","int16","int32","int64","string","uint8","uint16","uint32","uint64","int","uint","uintptr","rune"],literal:["true","false","iota","nil"],built_in:["append","cap","close","complex","copy","imag","len","make","new","panic","print","println","real","recover","delete"]};return {name:"Go",aliases:["golang"],keywords:t,illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE,{className:"string",variants:[e.QUOTE_STRING_MODE,e.APOS_STRING_MODE,{begin:"`",end:"`"}]},{className:"number",variants:[{match:/-?\b0[xX]\.[a-fA-F0-9](_?[a-fA-F0-9])*[pP][+-]?\d(_?\d)*i?/,relevance:0},{match:/-?\b0[xX](_?[a-fA-F0-9])+((\.([a-fA-F0-9](_?[a-fA-F0-9])*)?)?[pP][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b0[oO](_?[0-7])*i?/,relevance:0},{match:/-?\.\d(_?\d)*([eE][+-]?\d(_?\d)*)?i?/,relevance:0},{match:/-?\b\d(_?\d)*(\.(\d(_?\d)*)?)?([eE][+-]?\d(_?\d)*)?i?/,relevance:0}]},{begin:/:=/},{className:"function",beginKeywords:"func",end:"\\s*(\\{|$)",excludeEnd:true,contains:[e.TITLE_MODE,{className:"params",begin:/\(/,end:/\)/,endsParent:true,keywords:t,illegal:/["']/}]}]}}),si.registerLanguage("rust",function(e){const t=e.regex,n=/(r#)?/,r=t.concat(n,e.UNDERSCORE_IDENT_RE),o=t.concat(n,e.IDENT_RE),a={className:"title.function.invoke",relevance:0,begin:t.concat(/\b/,/(?!let|for|while|if|else|match\b)/,o,t.lookahead(/\s*\(/))},i="([ui](8|16|32|64|128|size)|f(32|64))?",s=["drop ","Copy","Send","Sized","Sync","Drop","Fn","FnMut","FnOnce","ToOwned","Clone","Debug","PartialEq","PartialOrd","Eq","Ord","AsRef","AsMut","Into","From","Default","Iterator","Extend","IntoIterator","DoubleEndedIterator","ExactSizeIterator","SliceConcatExt","ToString","assert!","assert_eq!","bitflags!","bytes!","cfg!","col!","concat!","concat_idents!","debug_assert!","debug_assert_eq!","env!","eprintln!","panic!","file!","format!","format_args!","include_bytes!","include_str!","line!","local_data_key!","module_path!","option_env!","print!","println!","select!","stringify!","try!","unimplemented!","unreachable!","vec!","write!","writeln!","macro_rules!","assert_ne!","debug_assert_ne!"],l=["i8","i16","i32","i64","i128","isize","u8","u16","u32","u64","u128","usize","f32","f64","str","char","bool","Box","Option","Result","String","Vec"];return {name:"Rust",aliases:["rs"],keywords:{$pattern:e.IDENT_RE+"!?",type:l,keyword:["abstract","as","async","await","become","box","break","const","continue","crate","do","dyn","else","enum","extern","false","final","fn","for","if","impl","in","let","loop","macro","match","mod","move","mut","override","priv","pub","ref","return","self","Self","static","struct","super","trait","true","try","type","typeof","union","unsafe","unsized","use","virtual","where","while","yield"],literal:["true","false","Some","None","Ok","Err"],built_in:s},illegal:"</",contains:[e.C_LINE_COMMENT_MODE,e.COMMENT("/\\*","\\*/",{contains:["self"]}),e.inherit(e.QUOTE_STRING_MODE,{begin:/b?"/,illegal:null}),{className:"symbol",begin:/'[a-zA-Z_][a-zA-Z0-9_]*(?!')/},{scope:"string",variants:[{begin:/b?r(#*)"(.|\n)*?"\1(?!#)/},{begin:/b?'/,end:/'/,contains:[{scope:"char.escape",match:/\\('|\w|x\w{2}|u\w{4}|U\w{8})/}]}]},{className:"number",variants:[{begin:"\\b0b([01_]+)"+i},{begin:"\\b0o([0-7_]+)"+i},{begin:"\\b0x([A-Fa-f0-9_]+)"+i},{begin:"\\b(\\d[\\d_]*(\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)"+i}],relevance:0},{begin:[/fn/,/\s+/,r],className:{1:"keyword",3:"title.function"}},{className:"meta",begin:"#!?\\[",end:"\\]",contains:[{className:"string",begin:/"/,end:/"/,contains:[e.BACKSLASH_ESCAPE]}]},{begin:[/let/,/\s+/,/(?:mut\s+)?/,r],className:{1:"keyword",3:"keyword",4:"variable"}},{begin:[/for/,/\s+/,r,/\s+/,/in/],className:{1:"keyword",3:"variable",5:"keyword"}},{begin:[/type/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{begin:[/(?:trait|enum|struct|union|impl|for)/,/\s+/,r],className:{1:"keyword",3:"title.class"}},{begin:e.IDENT_RE+"::",keywords:{keyword:"Self",built_in:s,type:l}},{className:"punctuation",begin:"->"},a]}}),si.registerLanguage("bash",li),si.registerLanguage("shell",li),si.registerLanguage("sh",li),si.registerLanguage("sql",function(e){const t=e.regex,n=e.COMMENT("--","$"),r=["abs","acos","array_agg","asin","atan","avg","cast","ceil","ceiling","coalesce","corr","cos","cosh","count","covar_pop","covar_samp","cume_dist","dense_rank","deref","element","exp","extract","first_value","floor","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","last_value","lead","listagg","ln","log","log10","lower","max","min","mod","nth_value","ntile","nullif","percent_rank","percentile_cont","percentile_disc","position","position_regex","power","rank","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","row_number","sin","sinh","sqrt","stddev_pop","stddev_samp","substring","substring_regex","sum","tan","tanh","translate","translate_regex","treat","trim","trim_array","unnest","upper","value_of","var_pop","var_samp","width_bucket"],o=r,a=["abs","acos","all","allocate","alter","and","any","are","array","array_agg","array_max_cardinality","as","asensitive","asin","asymmetric","at","atan","atomic","authorization","avg","begin","begin_frame","begin_partition","between","bigint","binary","blob","boolean","both","by","call","called","cardinality","cascaded","case","cast","ceil","ceiling","char","char_length","character","character_length","check","classifier","clob","close","coalesce","collate","collect","column","commit","condition","connect","constraint","contains","convert","copy","corr","corresponding","cos","cosh","count","covar_pop","covar_samp","create","cross","cube","cume_dist","current","current_catalog","current_date","current_default_transform_group","current_path","current_role","current_row","current_schema","current_time","current_timestamp","current_path","current_role","current_transform_group_for_type","current_user","cursor","cycle","date","day","deallocate","dec","decimal","decfloat","declare","default","define","delete","dense_rank","deref","describe","deterministic","disconnect","distinct","double","drop","dynamic","each","element","else","empty","end","end_frame","end_partition","end-exec","equals","escape","every","except","exec","execute","exists","exp","external","extract","false","fetch","filter","first_value","float","floor","for","foreign","frame_row","free","from","full","function","fusion","get","global","grant","group","grouping","groups","having","hold","hour","identity","in","indicator","initial","inner","inout","insensitive","insert","int","integer","intersect","intersection","interval","into","is","join","json_array","json_arrayagg","json_exists","json_object","json_objectagg","json_query","json_table","json_table_primitive","json_value","lag","language","large","last_value","lateral","lead","leading","left","like","like_regex","listagg","ln","local","localtime","localtimestamp","log","log10","lower","match","match_number","match_recognize","matches","max","member","merge","method","min","minute","mod","modifies","module","month","multiset","national","natural","nchar","nclob","new","no","none","normalize","not","nth_value","ntile","null","nullif","numeric","octet_length","occurrences_regex","of","offset","old","omit","on","one","only","open","or","order","out","outer","over","overlaps","overlay","parameter","partition","pattern","per","percent","percent_rank","percentile_cont","percentile_disc","period","portion","position","position_regex","power","precedes","precision","prepare","primary","procedure","ptf","range","rank","reads","real","recursive","ref","references","referencing","regr_avgx","regr_avgy","regr_count","regr_intercept","regr_r2","regr_slope","regr_sxx","regr_sxy","regr_syy","release","result","return","returns","revoke","right","rollback","rollup","row","row_number","rows","running","savepoint","scope","scroll","search","second","seek","select","sensitive","session_user","set","show","similar","sin","sinh","skip","smallint","some","specific","specifictype","sql","sqlexception","sqlstate","sqlwarning","sqrt","start","static","stddev_pop","stddev_samp","submultiset","subset","substring","substring_regex","succeeds","sum","symmetric","system","system_time","system_user","table","tablesample","tan","tanh","then","time","timestamp","timezone_hour","timezone_minute","to","trailing","translate","translate_regex","translation","treat","trigger","trim","trim_array","true","truncate","uescape","union","unique","unknown","unnest","update","upper","user","using","value","values","value_of","var_pop","var_samp","varbinary","varchar","varying","versioning","when","whenever","where","width_bucket","window","with","within","without","year","add","asc","collation","desc","final","first","last","view"].filter(e=>!r.includes(e)),i={match:t.concat(/\b/,t.either(...o),/\s*\(/),relevance:0,keywords:{built_in:o}};function s(e){return t.concat(/\b/,t.either(...e.map(e=>e.replace(/\s+/,"\\s+"))),/\b/)}const l={scope:"keyword",match:s(["create table","insert into","primary key","foreign key","not null","alter table","add constraint","grouping sets","on overflow","character set","respect nulls","ignore nulls","nulls first","nulls last","depth first","breadth first"]),relevance:0};return {name:"SQL",case_insensitive:true,illegal:/[{}]|<\//,keywords:{$pattern:/\b[\w\.]+/,keyword:function(e,{exceptions:t,when:n}={}){const r=n;return t=t||[],e.map(e=>e.match(/\|\d+$/)||t.includes(e)?e:r(e)?`${e}|0`:e)}(a,{when:e=>e.length<3}),literal:["true","false","unknown"],type:["bigint","binary","blob","boolean","char","character","clob","date","dec","decfloat","decimal","float","int","integer","interval","nchar","nclob","national","numeric","real","row","smallint","time","timestamp","varchar","varying","varbinary"],built_in:["current_catalog","current_date","current_default_transform_group","current_path","current_role","current_schema","current_transform_group_for_type","current_user","session_user","system_time","system_user","current_time","localtime","current_timestamp","localtimestamp"]},contains:[{scope:"type",match:s(["double precision","large object","with timezone","without timezone"])},l,i,{scope:"variable",match:/@[a-z0-9][a-z0-9_]*/},{scope:"string",variants:[{begin:/'/,end:/'/,contains:[{match:/''/}]}]},{begin:/"/,end:/"/,contains:[{match:/""/}]},e.C_NUMBER_MODE,e.C_BLOCK_COMMENT_MODE,n,{scope:"operator",match:/[-+*/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?/,relevance:0}]}}),si.registerLanguage("yaml",qi),si.registerLanguage("yml",qi),si.registerLanguage("diff",mi),si.registerLanguage("git",mi),si.registerLanguage("dockerfile",fi),si.registerLanguage("docker",fi);const id=new Rc({html:false,breaks:true,linkify:true,highlight:(e,t)=>{if(t&&si.getLanguage(t))try{return si.highlight(e,{language:t}).value}catch{}try{return si.highlightAuto(e).value}catch{return ""}}});id.use(ad,{enabled:true,label:false}),id.use(function(e,t){const n={defs:nd,shortcuts:td,enabled:[]},r=e.utils.assign({},n,t||{});ed(e,r);}),id.use(function(e){function t(e,t){const n=[],r=t.length;for(let o=0;o<r;o++){const r=t[o];if(61!==r.marker)continue;if(-1===r.end)continue;const a=t[r.end],i=e.tokens[r.token];i.type="mark_open",i.tag="mark",i.nesting=1,i.markup="==",i.content="";const s=e.tokens[a.token];s.type="mark_close",s.tag="mark",s.nesting=-1,s.markup="==",s.content="","text"===e.tokens[a.token-1].type&&"="===e.tokens[a.token-1].content&&n.push(a.token-1);}for(;n.length;){const t=n.pop();let r=t+1;for(;r<e.tokens.length&&"mark_close"===e.tokens[r].type;)r++;if(r--,t!==r){const n=e.tokens[r];e.tokens[r]=e.tokens[t],e.tokens[t]=n;}}}e.inline.ruler.before("emphasis","mark",function(e,t){const n=e.pos,r=e.src.charCodeAt(n);if(t)return  false;if(61!==r)return  false;const o=e.scanDelims(e.pos,true);let a=o.length;const i=String.fromCharCode(r);if(a<2)return  false;if(a%2){e.push("text","",0).content=i,a--;}for(let s=0;s<a;s+=2){e.push("text","",0).content=i+i,(o.can_open||o.can_close)&&e.delimiters.push({marker:r,length:0,jump:s/2,token:e.tokens.length-1,end:-1,open:o.can_open,close:o.can_close});}return e.pos+=o.length,true}),e.inline.ruler2.before("emphasis","mark",function(e){let n;const r=e.tokens_meta,o=(e.tokens_meta||[]).length;for(t(e,e.delimiters),n=0;n<o;n++)r[n]&&r[n].delimiters&&t(e,r[n].delimiters);});}),id.use($c,{permalink:false}),id.use(Xc,"info",{render:(e,t)=>1===e[t].nesting?'<div class="gh-container gh-container-info">':"</div>\n"}),id.use(Xc,"warning",{render:(e,t)=>1===e[t].nesting?'<div class="gh-container gh-container-warning">':"</div>\n"}),id.use(Xc,"danger",{render:(e,t)=>1===e[t].nesting?'<div class="gh-container gh-container-danger">':"</div>\n"});const sd=(e,t=true)=>{if(!e)return "";let n=id.render(e);return t&&(n=n.replace(/\{\{([^\s{}]+)\}\}/g,'<span class="gh-variable-highlight">{{$1}}</span>')),n=n.replace(/<pre><code/g,'<pre><button class="gh-code-copy-btn" data-copy-code="true"></button><code'),n},ld=()=>"\n/* highlight.js GitHub Dark 主题 */\n.hljs {\n  background: var(--gh-bg-tertiary, #1e1e1e);\n  color: var(--gh-text, #e6edf3);\n  padding: 12px;\n  border-radius: 6px;\n  overflow-x: auto;\n  font-family: 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace;\n  font-size: 13px;\n  line-height: 1.5;\n  /* 代码块自动换行 */\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  word-break: break-all;\n}\n.hljs-comment,\n.hljs-quote { color: #8b949e; font-style: italic; }\n.hljs-keyword,\n.hljs-selector-tag { color: #ff7b72; }\n.hljs-string,\n.hljs-doctag { color: #a5d6ff; }\n.hljs-number,\n.hljs-literal { color: #79c0ff; }\n.hljs-title,\n.hljs-section,\n.hljs-selector-id { color: #d2a8ff; font-weight: bold; }\n.hljs-function > .hljs-title { color: #d2a8ff; }\n.hljs-type,\n.hljs-class .hljs-title { color: #7ee787; }\n.hljs-attribute { color: #79c0ff; }\n.hljs-variable,\n.hljs-template-variable { color: #ffa657; }\n.hljs-built_in { color: #ffa657; }\n.hljs-addition { color: #aff5b4; background: rgba(46, 160, 67, 0.15); }\n.hljs-deletion { color: #ffdcd7; background: rgba(248, 81, 73, 0.15); }\n\n/* 变量占位符高亮 */\n.gh-variable-highlight {\n  background: rgba(56, 139, 253, 0.2);\n  color: #58a6ff;\n  padding: 2px 6px;\n  border-radius: 4px;\n  font-weight: 500;\n}\n\n/* Markdown 渲染样式 */\n.gh-markdown-preview {\n  line-height: 1.6;\n  color: var(--gh-text, #e6edf3);\n}\n.gh-markdown-preview h1,\n.gh-markdown-preview h2,\n.gh-markdown-preview h3 {\n  margin: 16px 0 8px;\n  font-weight: 600;\n  border-bottom: 1px solid var(--gh-border, #30363d);\n  padding-bottom: 4px;\n}\n.gh-markdown-preview h1 { font-size: 1.5em; }\n.gh-markdown-preview h2 { font-size: 1.3em; }\n.gh-markdown-preview h3 { font-size: 1.1em; }\n.gh-markdown-preview p { margin: 8px 0; }\n.gh-markdown-preview code:not(.hljs) {\n  background: var(--gh-bg-tertiary, #343942);\n  padding: 2px 6px;\n  border-radius: 4px;\n  font-size: 13px;\n}\n.gh-markdown-preview pre {\n  margin: 12px 0;\n  position: relative;\n  max-width: 100%;\n  overflow: hidden;\n}\n.gh-markdown-preview pre code {\n  display: block;\n  max-width: 100%;\n  overflow-x: auto;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  word-break: break-all;\n}\n/* 代码块复制按钮 */\n.gh-code-copy-btn {\n  position: absolute;\n  top: 8px;\n  right: 8px;\n  padding: 4px 8px;\n  background: var(--gh-bg-secondary, #2d333b);\n  border: 1px solid var(--gh-border, #444c56);\n  border-radius: 4px;\n  color: var(--gh-text-secondary, #8b949e);\n  font-size: 12px;\n  cursor: pointer;\n  opacity: 0;\n  transition: opacity 0.2s;\n}\n.gh-markdown-preview pre:hover .gh-code-copy-btn {\n  opacity: 1;\n}\n.gh-code-copy-btn:hover {\n  background: var(--gh-hover, #373e47);\n  color: var(--gh-text, #e6edf3);\n}\n.gh-markdown-preview blockquote {\n  border-left: 3px solid var(--gh-primary, #4285f4);\n  margin: 12px 0;\n  padding: 8px 16px;\n  background: var(--gh-bg-secondary, #161b22);\n  color: var(--gh-text-secondary, #8b949e);\n}\n.gh-markdown-preview ul,\n.gh-markdown-preview ol {\n  margin: 8px 0;\n  padding-left: 24px;\n}\n.gh-markdown-preview li { margin: 4px 0; }\n.gh-markdown-preview a {\n  color: var(--gh-primary, #58a6ff);\n  text-decoration: none;\n}\n.gh-markdown-preview a:hover { text-decoration: underline; }\n\n/* 任务列表样式 */\n.gh-markdown-preview .task-list-item {\n  list-style: none;\n  margin-left: -20px;\n}\n.gh-markdown-preview .task-list-item input[type=\"checkbox\"] {\n  margin-right: 8px;\n  pointer-events: none;\n}\n\n/* 高亮 ==text== */\n.gh-markdown-preview mark {\n  background: rgba(255, 235, 59, 0.4);\n  color: inherit;\n  padding: 2px 4px;\n  border-radius: 3px;\n}\n\n/* 容器样式 :::info, :::warning, :::danger */\n.gh-container {\n  margin: 12px 0;\n  padding: 12px 16px;\n  border-radius: 6px;\n  border-left: 4px solid;\n}\n.gh-container-info {\n  background: rgba(56, 139, 253, 0.1);\n  border-color: #388bfd;\n}\n.gh-container-warning {\n  background: rgba(255, 166, 87, 0.1);\n  border-color: #ffa657;\n}\n.gh-container-danger {\n  background: rgba(248, 81, 73, 0.1);\n  border-color: #f85149;\n}\n"; exports({ r: sd, i: ld });let cd=null;function dd(e){if(cd||function(){if(cd)return  true;if("undefined"==typeof window)return  false;const e=window.trustedTypes;if(e?.createPolicy)try{const t=`ophel-userscript-html-${Math.random().toString(36).slice(2,8)}`;return cd=e.createPolicy(t,{createHTML:e=>e}),!0}catch(t){return console.warn("[TrustedTypes] Failed to create Trusted Types policy:",t),false}}(),cd)try{return cd.createHTML(e)}catch(t){console.warn("[TrustedTypes] Failed to create safe HTML:",t);}return e}function ud(e,t){try{const n=dd(t);return e.innerHTML=n,!0}catch(n){return console.warn("[TrustedTypes] Failed to set innerHTML:",n),false}}var hd=T();const gd=({checked:e,onChange:t,disabled:n=false,size:r="md"})=>{const o="sm"===r?{w:32,h:18,thumb:14}:{w:36,h:20,thumb:16};
         return P.jsxs("label",{style:{position:"relative",display:"inline-block",width:`${o.w}px`,height:`${o.h}px`,flexShrink:0},children:[
         P.jsx("input",{type:"checkbox",checked:e,onChange:()=>t(!e),disabled:n,style:{opacity:0,width:0,height:0,position:"absolute"}}),
         P.jsx("span",{style:{position:"absolute",cursor:n?"not-allowed":"pointer",top:0,left:0,right:0,bottom:0,backgroundColor:e?"var(--gh-primary, #4285f4)":"var(--gh-input-border, #d1d5db)",borderRadius:`${o.h}px`,transition:"background-color 0.3s"},children:P.jsx("span",{style:{position:"absolute",height:`${o.thumb}px`,width:`${o.thumb}px`,left:e?o.w-o.thumb-2+"px":"2px",bottom:(o.h-o.thumb)/2+"px",backgroundColor:"var(--gh-bg, #ffffff)",borderRadius:"50%",transition:"left 0.3s"}})})]})};let pd=false;const md=({children:e,onClose:t,closeOnOverlayClick:n=true,dialogClassName:r,dialogStyle:o})=>{u.useEffect(()=>{(()=>{if(pd)return;const e=document.createElement("style");e.id="gh-dialog-styles",e.textContent="\n  .gh-dialog-overlay {\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    background: var(--gh-overlay-bg, rgba(0,0,0,0.5));\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    z-index: 2147483647;\n  }\n  .gh-dialog {\n    background: var(--gh-bg, white);\n    border-radius: 12px;\n    padding: 20px;\n    min-width: 280px;\n    max-width: 400px;\n    box-shadow: var(--gh-shadow-lg, 0 20px 50px rgba(0,0,0,0.3));\n  }\n  .gh-dialog-title {\n    font-size: 16px;\n    font-weight: 600;\n    color: var(--gh-text, #1f2937);\n    margin-bottom: 12px;\n  }\n  .gh-dialog-message {\n    font-size: 14px;\n    color: var(--gh-text-secondary, #6b7280);\n    margin-bottom: 20px;\n    line-height: 1.5;\n    white-space: pre-wrap;\n  }\n  .gh-dialog-buttons {\n    display: flex;\n    gap: 8px;\n    justify-content: flex-end;\n  }\n  .gh-dialog-btn {\n    padding: 8px 16px;\n    border-radius: 6px;\n    font-size: 14px;\n    cursor: pointer;\n    transition: all 0.2s;\n    border: none;\n  }\n  .gh-dialog-btn-secondary {\n    border: 1px solid var(--gh-border, #d1d5db);\n    background: var(--gh-bg, white);\n    color: var(--gh-text, #374151);\n  }\n  .gh-dialog-btn-secondary:hover {\n    background: var(--gh-hover, #f3f4f6);\n  }\n  .gh-dialog-btn-primary {\n    background: var(--gh-brand-gradient, linear-gradient(135deg, #4285f4 0%, #34a853 100%));\n    color: white;\n  }\n  .gh-dialog-btn-danger {\n    background: var(--gh-text-danger, #ef4444);\n    color: white;\n  }\n  .gh-dialog-input {\n    width: 100%;\n    padding: 10px 12px;\n    border: 1px solid var(--gh-border, #d1d5db);\n    border-radius: 6px;\n    font-size: 14px;\n    box-sizing: border-box;\n    margin-bottom: 20px;\n    background: var(--gh-bg, #ffffff);\n    color: var(--gh-text, #1f2937);\n  }\n  .gh-dialog-input:focus {\n    outline: none;\n    border-color: var(--gh-input-focus-border, #4285f4);\n  }\n",document.head.appendChild(e),pd=true;})();const e=e=>{"Escape"===e.key&&t();};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t]);const a=P.jsx("div",{className:"gh-dialog-overlay gh-interactive",onClick:n?t:void 0,children:P.jsx("div",{className:r?`gh-dialog ${r}`:"gh-dialog",style:o,onClick:e=>e.stopPropagation(),children:e})});return hd.createPortal(a,document.body)},fd=({title:e,message:t,confirmText:n,cancelText:r,danger:o=false,closeOnOverlayClick:a=true,onConfirm:i,onCancel:s,extraAction:l})=>P.jsxs(md,{onClose:s,closeOnOverlayClick:a,children:[
         P.jsx("div",{className:"gh-dialog-title",children:e}),
         P.jsx("div",{className:"gh-dialog-message",children:t}),
         P.jsxs("div",{className:"gh-dialog-buttons",style:{justifyContent:l?"space-between":"flex-end"},children:[l&&P.jsxs("button",{className:"gh-dialog-btn",style:{background:"transparent",color:"var(--gh-primary, #4285f4)",padding:"8px 12px",textDecoration:"underline"},onClick:l.onClick,children:["↗ ",l.text]}),
         P.jsxs("div",{style:{display:"flex",gap:"8px"},children:[
         P.jsx("button",{className:"gh-dialog-btn gh-dialog-btn-secondary",onClick:s,children:r||En("cancel")||"取消"}),
         P.jsx("button",{className:"gh-dialog-btn "+(o?"gh-dialog-btn-danger":"gh-dialog-btn-primary"),onClick:i,children:n||En("confirm")||"确定"})]})]})]}),bd=({title:e,defaultValue:t="",placeholder:n,confirmText:r,cancelText:o,closeOnOverlayClick:a=true,onConfirm:i,onCancel:s})=>{const[l,c]=u.useState(t),d=u.useRef(null);u.useEffect(()=>{d.current?.focus(),d.current?.select();},[]);const h=()=>{i(l);};
         return P.jsxs(md,{onClose:s,closeOnOverlayClick:a,children:[
         P.jsx("div",{className:"gh-dialog-title",children:e}),
         P.jsx("input",{ref:d,type:"text",className:"gh-dialog-input",value:l,onChange:e=>c(e.target.value),placeholder:n,onKeyDown:e=>"Enter"===e.key&&h()}),
         P.jsxs("div",{className:"gh-dialog-buttons",children:[
         P.jsx("button",{className:"gh-dialog-btn gh-dialog-btn-secondary",onClick:s,children:o||En("cancel")||"取消"}),
         P.jsx("button",{className:"gh-dialog-btn gh-dialog-btn-primary",onClick:h,children:r||En("confirm")||"确定"})]})]})},yd=({variant:e="secondary",size:t="md",style:n,children:r,...o})=>{const a="sm"===t?{padding:"4px 8px",fontSize:"12px"}:{padding:"8px 16px",fontSize:"14px"};
         return P.jsx("button",{...o,style:{borderRadius:"6px",cursor:o.disabled?"not-allowed":"pointer",transition:"all 0.2s",fontWeight:500,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:"4px",opacity:o.disabled?.5:1,...a,...{primary:{background:"var(--gh-brand-gradient, linear-gradient(135deg, #4285f4 0%, #34a853 100%))",color:"white",border:"none"},secondary:{background:"var(--gh-bg, white)",color:"var(--gh-text, #374151)",border:"1px solid var(--gh-input-border, #d1d5db)"},danger:{background:"var(--gh-text-danger, #ef4444)",color:"white",border:"none"},ghost:{background:"transparent",color:"var(--gh-text-secondary, #6b7280)",border:"none"}}[e],...n},children:r})},vd=({value:e,onChange:t,min:n,max:r,defaultValue:o,disabled:a=false,style:i,className:s="settings-input",step:l=1})=>{const[c,d]=u.useState(e.toString()),h=u.useRef(false),g=u.useRef(null),p=u.useRef(null);u.useEffect(()=>{h.current||d(e.toString());},[e]);const m=u.useCallback(a=>{let i=parseInt(a);isNaN(i)&&(i=o??e??0),void 0!==n&&i<n&&(i=n),void 0!==r&&i>r&&(i=r),d(i.toString()),i!==e&&t(i);},[n,r,o,e,t]),f=u.useCallback(t=>{if(a)return;let n=parseInt(c);isNaN(n)&&(n=o??e??0);m((n+t).toString());},[c,o,e,a,m]);u.useEffect(()=>()=>{g.current&&clearTimeout(g.current);},[]);const[b,y]=u.useState(false);
         return P.jsxs("div",{className:s,onMouseEnter:()=>y(true),onMouseLeave:()=>y(false),style:{...i,position:"relative",display:"inline-flex",alignItems:"center"},children:[
         P.jsx("input",{ref:p,type:"text",inputMode:"numeric",pattern:"[0-9]*",style:{width:"100%",paddingRight:"20px",height:"100%",border:"none",background:"transparent",outline:"none",color:"inherit",fontSize:"inherit",fontFamily:"inherit",paddingLeft:"8px",textAlign:"left"},value:c,disabled:a,onChange:e=>{const t=e.target.value.replace(/[^0-9-]/g,"");d(t);},onFocus:()=>{g.current&&(clearTimeout(g.current),g.current=null),h.current=true;},onBlur:()=>{g.current=setTimeout(()=>{document.activeElement!==p.current&&(h.current=false,m(c));},100);},onKeyDown:e=>{"Enter"===e.key?(m(c),p.current?.blur()):"ArrowUp"===e.key?(e.preventDefault(),f(l)):"ArrowDown"===e.key&&(e.preventDefault(),f(-l));}}),!a&&P.jsxs("div",{style:{position:"absolute",right:"2px",top:"2px",bottom:"2px",display:"flex",flexDirection:"column",width:"16px",background:"transparent",opacity:b?1:.2,transition:"opacity 0.2s ease",pointerEvents:b?"auto":"none"},children:[
         P.jsx("button",{type:"button",tabIndex:-1,onClick:e=>{e.preventDefault(),f(l);},style:{flex:1,border:"none",background:"var(--gh-hover, #f3f4f6)",borderRadius:"3px 3px 0 0",cursor:"pointer",padding:0,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--gh-text-secondary, #6b7280)",marginBottom:"1px"},children:P.jsx(Se,{size:8})}),
         P.jsx("button",{type:"button",tabIndex:-1,onClick:e=>{e.preventDefault(),f(-l);},style:{flex:1,border:"none",background:"var(--gh-hover, #f3f4f6)",borderRadius:"0 0 3px 3px",cursor:"pointer",padding:0,display:"flex",alignItems:"center",justifyContent:"center",color:"var(--gh-text-secondary, #6b7280)"},children:P.jsx(we,{size:8})})]})]})},xd=({content:e,children:t,maxWidth:n=260,delay:r=300,className:o="",triggerClassName:a="",triggerStyle:i={},disabled:s=false})=>{const[l,c]=u.useState(false),[d,h]=u.useState({top:0,left:0}),[g,p]=u.useState(false),[m,f]=u.useState(null),b=u.useRef(null),y=u.useRef(null),v=u.useRef(),x=u.useRef(false);return u.useEffect(()=>{if(b.current){const e=b.current.getRootNode();e instanceof ShadowRoot?f(e):f(document.body);}},[]),u.useEffect(()=>{if((l||g)&&b.current){(()=>{const e=b.current?.getBoundingClientRect();if(!e)return;let t=e.bottom+8,n=e.left+e.width/2;if(y.current){const r=y.current.getBoundingClientRect();t+r.height>window.innerHeight-10&&(t=e.top-r.height-8),n-=r.width/2,n<10&&(n=10),n+r.width>window.innerWidth-10&&(n=window.innerWidth-r.width-10);}h({top:t,left:n}),g&&p(false);})();}},[l,g,e]),u.useEffect(()=>()=>{v.current&&clearTimeout(v.current);},[]),u.useEffect(()=>{s?(v.current&&clearTimeout(v.current),c(false),p(false)):x.current&&(v.current=setTimeout(()=>{c(true),p(true);},r));},[s,r]),P.jsxs("div",{ref:b,className:`ophel-tooltip-trigger ${o} ${a}`,onMouseEnter:()=>{x.current=true,s||(v.current=setTimeout(()=>{c(true),p(true);},r));},onMouseLeave:()=>{x.current=false,v.current&&clearTimeout(v.current),c(false),p(false);},style:{display:"inline-flex",...i},children:[t,l&&e&&m&&hd.createPortal(
         P.jsx("div",{ref:y,className:"ophel-tooltip",style:{position:"fixed",top:d.top,left:d.left,maxWidth:n,opacity:g?0:1},children:e}),m)]})},Sd=({options:e,value:t,onChange:n,placeholder:r,disabled:o=false,emptyText:a,maxMenuHeight:i=260,className:s,buttonClassName:l,menuClassName:c,optionClassName:d,ariaLabel:h,onOpenChange:g})=>{const[p,m]=u.useState(false),[f,b]=u.useState(-1),y=u.useRef(null),v=u.useRef(null),x=u.useRef([]),S=u.useMemo(()=>e.findIndex(e=>e.value===t),[e,t]),w=S>=0?e[S]:null;u.useEffect(()=>{g?.(p);},[p,g]),u.useEffect(()=>{if(!p)return;const t=S>=0?S:e.findIndex(e=>!e.disabled);b(t);},[p,e,S]),u.useEffect(()=>{if(!p||f<0)return;const e=x.current[f];e?.scrollIntoView({block:"nearest"});},[p,f]),u.useEffect(()=>{if(!p)return;const e=e=>{const t=y.current;if(!t)return;const n=(e=>{const t=e.composedPath;return "function"==typeof t?t.call(e):[]})(e);if(n.length>0)return void(n.includes(t)||m(false));const r=e.target;r&&!t.contains(r)&&m(false);},t=()=>{m(false);};return window.addEventListener("pointerdown",e,true),window.addEventListener("blur",t),()=>{window.removeEventListener("pointerdown",e,true),window.removeEventListener("blur",t);}},[p]);const k=e=>{m(false),e&&window.requestAnimationFrame(()=>{v.current?.focus({preventScroll:true});});},C=(t,n)=>{if(0===e.length)return  -1;let r=t;for(let o=0;o<e.length;o+=1)if(r+=n,r>=e.length&&(r=0),r<0&&(r=e.length-1),!e[r]?.disabled)return r;return  -1},T=t=>{const r=e[t];r&&!r.disabled&&(n(r.value),k(true));};
         return P.jsxs("div",{ref:y,className:s,style:{position:"relative",width:"100%"},children:[
         P.jsxs("button",{ref:v,type:"button",className:l,disabled:o,"aria-label":h,"aria-haspopup":"listbox","aria-expanded":p,onClick:()=>!o&&m(e=>!e),onKeyDown:e=>{if(!o){if("ArrowDown"===e.key||"ArrowUp"===e.key){if(e.preventDefault(),!p)return void m(true);const t=C(f<0?S:f,"ArrowDown"===e.key?1:-1);return void(t>=0&&b(t))}if("Enter"===e.key||" "===e.key)return e.preventDefault(),void m(e=>!e);"Escape"===e.key&&p&&(e.preventDefault(),m(false));}},title:w?.title,style:{width:"100%",display:"flex",alignItems:"center",justifyContent:"space-between",gap:"8px",textAlign:"left"},children:[
         P.jsx("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",display:"inline-flex",alignItems:"center",gap:"8px"},children:w?.label||r}),
         P.jsx(we,{size:16,style:{flexShrink:0,transition:"transform 0.2s ease",transform:p?"rotate(180deg)":"rotate(0deg)"}})]}),p&&P.jsx("div",{role:"listbox",tabIndex:-1,className:c,onKeyDown:t=>{if("ArrowDown"===t.key){t.preventDefault();const e=C(f,1);return void(e>=0&&b(e))}if("ArrowUp"===t.key){t.preventDefault();const e=C(f,-1);return void(e>=0&&b(e))}if("Home"===t.key){t.preventDefault();const n=e.findIndex(e=>!e.disabled);return void(n>=0&&b(n))}if("End"===t.key){t.preventDefault();const n=[...e].reverse().findIndex(e=>!e.disabled);return void(n>=0&&b(e.length-n-1))}return "Enter"===t.key?(t.preventDefault(),void(f>=0&&T(f))):"Escape"===t.key?(t.preventDefault(),void k(true)):void("Tab"===t.key&&k(false))},style:{position:"absolute",top:"calc(100% + 4px)",left:0,right:0,maxHeight:`${i}px`,overflowY:"auto",zIndex:100,borderRadius:"8px",border:"1px solid var(--gh-input-border, #d1d5db)",boxShadow:"var(--gh-shadow-md, 0 8px 16px rgba(0,0,0,0.12))",background:"var(--gh-bg, #ffffff)",padding:"4px"},children:0===e.length?P.jsx("div",{style:{padding:"8px 10px",color:"var(--gh-text-tertiary, #9ca3af)",fontSize:"13px",textAlign:"left"},children:a||"No options"}):e.map((e,n)=>{const r=e.value===t,o=n===f;
         return P.jsx("button",{ref:e=>{x.current[n]=e;},type:"button",role:"option","aria-selected":r,className:d,disabled:e.disabled,title:e.title,onMouseEnter:()=>{e.disabled||b(n);},onClick:()=>T(n),style:{width:"100%",border:"none",borderRadius:"6px",padding:"7px 10px",textAlign:"left",background:r?"var(--gh-border-active, #3b82f6)":o?"var(--gh-hover, #f3f4f6)":"transparent",color:r?"#ffffff":"var(--gh-text, #1f2937)",cursor:e.disabled?"not-allowed":"pointer",display:"flex",alignItems:"center",gap:"8px",fontSize:"14px",lineHeight:1.4},children:e.label},e.value)})})]})};let wd=false;const kd=({children:e,onClose:t})=>{u.useEffect(()=>{(()=>{if(wd)return;const e=document.createElement("style");e.id="gh-dialog-styles",e.textContent="\n  .conversations-dialog-overlay {\n    position: fixed;\n    top: 0;\n    left: 0;\n    right: 0;\n    bottom: 0;\n    background: var(--gh-overlay-bg, rgba(0,0,0,0.5));\n    z-index: 1000003;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n  }\n  .conversations-dialog {\n    background: var(--gh-bg, white);\n    border-radius: 12px;\n    padding: 20px;\n    min-width: 320px;\n    max-width: min(480px, calc(100vw - 40px));\n    box-shadow: var(--gh-shadow-lg, 0 10px 40px rgba(0,0,0,0.2));\n  }\n  .conversations-dialog-title {\n    font-size: 16px;\n    font-weight: 600;\n    color: var(--gh-text, #1f2937);\n    margin-bottom: 16px;\n  }\n  .conversations-dialog-message {\n    font-size: 14px;\n    color: var(--gh-text-secondary, #4b5563);\n    margin-bottom: 20px;\n    line-height: 1.5;\n    white-space: pre-line;\n    word-break: break-word;\n    overflow-wrap: break-word;\n  }\n  .conversations-dialog-section {\n    margin-bottom: 16px;\n  }\n  .conversations-dialog-section label {\n    display: block;\n    font-size: 13px;\n    color: var(--gh-text-secondary, #6b7280);\n    margin-bottom: 8px;\n  }\n  .conversations-dialog-input {\n    width: 100%;\n    padding: 10px 12px;\n    border: 1px solid var(--gh-input-border, #d1d5db);\n    border-radius: 8px;\n    font-size: 14px;\n    box-sizing: border-box;\n    background: var(--gh-input-bg, #ffffff);\n    color: var(--gh-text, #1f2937);\n  }\n  .conversations-dialog-input:focus {\n    outline: none;\n    border-color: var(--gh-input-focus-border, #4285f4);\n    box-shadow: var(--gh-input-focus-shadow, 0 0 0 2px rgba(66,133,244,0.1));\n  }\n  .conversations-dialog-buttons {\n    display: flex;\n    justify-content: flex-end;\n    gap: 8px;\n    margin-top: 20px;\n  }\n  .emoji-grid-hidden-scrollbar::-webkit-scrollbar {\n    display: none;\n    width: 0;\n    height: 0;\n  }\n  @keyframes gh-highlight-fade {\n    0% { background-color: var(--gh-highlight-pulse, rgba(59, 130, 246, 0.3)); }\n    100% { background-color: transparent; }\n  }\n  .conversations-folder-select-highlight {\n    animation: gh-highlight-fade 2s ease-out;\n  }\n\n  /* Tooltip Styles (Injected globally for Dialogs) */\n  .ophel-tooltip {\n    background-color: rgba(30, 30, 35, 0.95);\n    color: #ffffff;\n    padding: 6px 12px;\n    border-radius: 6px;\n    font-size: 13px;\n    line-height: 1.5;\n    z-index: 2147483647;\n    pointer-events: none;\n    white-space: pre-wrap;\n    word-wrap: break-word;\n    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);\n    border: 1px solid rgba(255, 255, 255, 0.1);\n    backdrop-filter: blur(4px);\n    animation: tooltip-fade-in 0.15s ease-out;\n  }\n\n  @keyframes tooltip-fade-in {\n    from {\n      opacity: 0;\n      transform: scale(0.95);\n    }\n    to {\n      opacity: 1;\n      transform: scale(1);\n    }\n  }\n",document.head.appendChild(e),wd=true;})();const e=e=>{"Escape"===e.key&&t();};return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[t]);const n=P.jsx("div",{className:"conversations-dialog-overlay",onClick:t,children:P.jsx("div",{className:"conversations-dialog",onClick:e=>e.stopPropagation(),children:e})});return hd.createPortal(n,document.body)},Cd=({title:e,message:t,confirmText:n,cancelText:r,danger:o,onConfirm:a,onCancel:i})=>P.jsxs(kd,{onClose:i,children:[
         P.jsx("div",{className:"conversations-dialog-title",children:e}),
         P.jsx("div",{className:"conversations-dialog-message",children:t}),
         P.jsxs("div",{className:"conversations-dialog-buttons",children:[
         P.jsx(yd,{variant:"secondary",onClick:i,children:r||En("cancel")||"取消"}),
         P.jsx(yd,{variant:o?"danger":"primary",onClick:a,children:n||En("confirm")||"确定"})]})]}),Td=({folder:e,onConfirm:t,onCancel:n})=>{const r=e?.icon||"📁",[o,a]=u.useState(e?.name.replace(e.icon,"").trim()||""),[i,s]=u.useState(r),[l,c]=u.useState(vt.includes(r)?r:null),d=u.useRef(null);u.useEffect(()=>{d.current?.focus(),d.current?.select();},[]);const h=()=>{const e=o.trim();e&&t(e,i);};
         return P.jsxs(kd,{onClose:n,children:[
         P.jsx("div",{className:"conversations-dialog-title",children:e?En("conversationsRename")||"重命名":En("conversationsAddFolder")||"新建文件夹"}),
         P.jsxs("div",{className:"conversations-dialog-section",children:[
         P.jsx("label",{children:En("conversationsIcon")||"图标"}),
         P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px",padding:"4px",background:"var(--gh-bg-secondary, #f9fafb)",borderRadius:"4px",border:"1px solid var(--gh-border, #e5e7eb)",marginBottom:"8px"},children:[
         P.jsx("span",{style:{fontSize:"12px",color:"var(--gh-text-secondary, #6b7280)",flexShrink:0},children:En("conversationsCustomIcon")||"自定义图标"}),
         P.jsx("input",{type:"text",value:i,onChange:e=>{let t=e.target.value;const n=/[^\p{Extended_Pictographic}\u200d\ufe0f]/gu;t&&n.test(t)&&(t=t.replace(n,"")),s(t),t&&!vt.includes(t)?c(null):vt.includes(t)&&c(t);},maxLength:4,placeholder:"☺",style:{width:"60px",textAlign:"center",border:"1px solid var(--gh-input-border, #d1d5db)",borderRadius:"4px",padding:"2px",fontSize:"16px",background:"var(--gh-input-bg, #ffffff)",color:"var(--gh-text, #1f2937)"}})]}),
         P.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(8, 1fr)",gap:"4px",maxHeight:"120px",overflowY:"auto",padding:"2px",scrollbarWidth:"none",msOverflowStyle:"none"},className:"emoji-grid-hidden-scrollbar",children:vt.map(e=>P.jsx("button",{type:"button",onClick:()=>(e=>{c(e),s(e);})(e),style:{width:"24px",height:"24px",padding:0,display:"flex",alignItems:"center",justifyContent:"center",border:"none",background:l===e?"#dbeafe":"transparent",cursor:"pointer",borderRadius:"4px",fontSize:"16px",transition:"background 0.15s"},onMouseEnter:t=>{l!==e&&(t.currentTarget.style.background="var(--gh-hover, #f3f4f6)");},onMouseLeave:t=>{l!==e&&(t.currentTarget.style.background="transparent");},children:e},e))})]}),
         P.jsxs("div",{className:"conversations-dialog-section",children:[
         P.jsx("label",{children:En("conversationsFolderName")||"名称"}),
         P.jsx("input",{ref:d,type:"text",className:"conversations-dialog-input",value:o,onChange:e=>a(e.target.value),placeholder:En("conversationsFolderNamePlaceholder")||"输入文件夹名称",onKeyDown:e=>"Enter"===e.key&&h()})]}),
         P.jsxs("div",{className:"conversations-dialog-buttons",children:[
         P.jsx(yd,{variant:"secondary",onClick:n,children:En("cancel")||"取消"}),
         P.jsx(yd,{variant:"primary",onClick:h,children:En("confirm")||"确定"})]})]})},Dd=({title:e,currentValue:t,placeholder:n,onConfirm:r,onCancel:o})=>{const[a,i]=u.useState(t),s=u.useRef(null);u.useEffect(()=>{s.current?.focus(),s.current?.select();},[]);const l=()=>{const e=a.trim();e&&e!==t?r(e):o();};
         return P.jsxs(kd,{onClose:o,children:[
         P.jsx("div",{className:"conversations-dialog-title",children:e}),
         P.jsx("div",{className:"conversations-dialog-section",children:P.jsx("input",{ref:s,type:"text",className:"conversations-dialog-input",value:a,onChange:e=>i(e.target.value),placeholder:n,onKeyDown:e=>"Enter"===e.key&&l()})}),
         P.jsxs("div",{className:"conversations-dialog-buttons",children:[
         P.jsx(yd,{variant:"secondary",onClick:o,children:En("cancel")||"取消"}),
         P.jsx(yd,{variant:"primary",onClick:l,children:En("confirm")||"确定"})]})]})},Ed=({folders:e,excludeFolderId:t,activeFolderId:n,title:r,onSelect:o,onCancel:a,onCreateFolder:i})=>{const[s,l]=u.useState(""),c=u.useRef(null);u.useEffect(()=>{c.current?.focus();},[]),u.useEffect(()=>{n&&setTimeout(()=>{const e=document.getElementById(`folder-select-${n}`);e&&(e.scrollIntoView({block:"center",behavior:"smooth"}),e.classList.add("conversations-folder-select-highlight"));},150);},[n]);const d=e.filter(e=>e.id!==t&&(!s||e.name.toLowerCase().includes(s.toLowerCase())));
         return P.jsxs(kd,{onClose:a,children:[
         P.jsx("div",{className:"conversations-dialog-title",children:r||En("conversationsMoveTo")||"移动到..."}),
         P.jsxs("div",{style:{display:"flex",gap:"8px",marginBottom:"12px"},children:[
         P.jsx("input",{ref:c,type:"text",className:"conversations-dialog-input",style:{flex:1},placeholder:En("conversationsSearchFolder")||"搜索文件夹...",value:s,onChange:e=>l(e.target.value)}),i&&P.jsx(yd,{variant:"primary",style:{padding:"8px 12px"},onClick:()=>{a(),i();},title:En("conversationsAddFolder")||"新建文件夹",children:"+"})]}),
         P.jsxs("div",{className:"conversations-folder-select-list",children:[d.map(e=>P.jsxs("div",{id:`folder-select-${e.id}`,className:"conversations-folder-select-item",onClick:()=>o(e.id),children:[e.icon," ",e.name.replace(e.icon,"").trim()]},e.id)),0===d.length&&P.jsx("div",{style:{padding:"16px",textAlign:"center",color:"var(--gh-text-tertiary, #9ca3af)"},children:En("conversationsNoSearchResult")||"未找到匹配结果"})]}),
         P.jsx("div",{className:"conversations-dialog-buttons",children:P.jsx(yd,{variant:"secondary",onClick:a,children:En("cancel")||"取消"})})]})},Ad=({tags:e,conv:t,onCancel:n,onCreateTag:r,onUpdateTag:o,onDeleteTag:a,onSetConversationTags:i,onRefresh:s})=>{const[l,c]=u.useState(null),[d,h]=u.useState(""),[g,p]=u.useState(xt[0]),[m,f]=u.useState(xt[0]),[b,y]=u.useState(false),[v,x]=u.useState(false),[S,w]=u.useState(false),[k,C]=u.useState(null),[T,D]=u.useState(new Set(t?.tagIds||[])),E=u.useRef(null),A=u.useRef(null);u.useEffect(()=>{E.current?.focus();},[]),u.useEffect(()=>{D(new Set(t?.tagIds||[]));},[t?.id,t?.tagIds]);const _=(e,t="click")=>{let n=e.startsWith("#")?e:`#${e}`;p(n),"input"!==t&&(f(n),y(false));},L=async()=>{const e=d.trim();if(!e)return;x(true);let t=null;l?(t=await o(l,e,g),t&&(c(null),h(""))):(t=await r(e,g),t&&h("")),x(false),s();};
         return P.jsxs(kd,{onClose:n,children:[
         P.jsxs("div",{className:"conversations-dialog-title",style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[
         P.jsx("span",{children:En("conversationsManageTags")||"管理标签"}),
         P.jsx(xd,{content:En("close")||"关闭",children:P.jsx("span",{style:{cursor:"pointer",padding:"4px",fontSize:"20px",color:"var(--gh-text-secondary, #9ca3af)",lineHeight:1,width:"24px",height:"24px",display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"4px"},onClick:n,children:P.jsx(I,{size:18})})})]}),
         P.jsxs("div",{style:{border:"1px solid var(--gh-border, #e5e7eb)",borderRadius:"8px",marginBottom:"16px",background:"var(--gh-bg-secondary, #fafafa)"},children:[
         P.jsxs("div",{style:{padding:"8px 12px",borderBottom:"1px solid var(--gh-border, #e5e7eb)",fontSize:"12px",color:"var(--gh-text-secondary, #6b7280)",fontWeight:500,display:"flex",justifyContent:"space-between",alignItems:"center"},children:[
         P.jsx("span",{children:En(t?"conversationsSelectTag":"conversationsExistingTags")}),
         P.jsxs("span",{style:{fontSize:"11px",color:"var(--gh-text-secondary, #9ca3af)"},children:[e.length," 个"]})]}),
         P.jsx("div",{style:{maxHeight:"320px",overflowY:"auto",scrollbarWidth:"none",msOverflowStyle:"none"},children:0===e.length?P.jsx("div",{style:{padding:"24px 16px",textAlign:"center",color:"var(--gh-text-secondary, #9ca3af)"},children:En("conversationsNoTags")||"暂无标签,在下方创建"}):e.map(e=>{const n=T.has(e.id),r=l===e.id;
         return P.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 12px",borderBottom:"1px solid var(--gh-border, #f3f4f6)",cursor:t?"pointer":"default",background:r?"var(--gh-bg-warning-light, #fffbeb)":n?"var(--gh-folder-bg-default)":"transparent",transition:"background 0.15s"},onClick:()=>{t&&(async(e,n)=>{if(!t||!i)return;const r=new Set(T);n?r.add(e):r.delete(e),D(r),await i(t.id,Array.from(r)),s();})(e.id,!n);},onMouseEnter:e=>{r||n||(e.currentTarget.style.background="var(--gh-hover, #f9fafb)");},onMouseLeave:e=>{r||n||(e.currentTarget.style.background="transparent");},children:[
         P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[t&&P.jsx("input",{type:"checkbox",checked:n,onChange:()=>{},onClick:e=>e.stopPropagation(),style:{cursor:"pointer",width:"16px",height:"16px",accentColor:e.color}}),
         P.jsxs("span",{style:{display:"inline-flex",alignItems:"center",gap:"6px",padding:"4px 10px",borderRadius:"4px",fontSize:"13px",color:"white",backgroundColor:e.color,fontWeight:n?500:400,boxShadow:n?"var(--gh-shadow-sm, 0 1px 3px rgba(0,0,0,0.2))":"none"},children:[e.name,r&&P.jsx(Ae,{size:10})]})]}),
         P.jsxs("div",{style:{display:"flex",gap:"2px"},children:[
         P.jsx(xd,{content:En("edit")||"编辑",children:P.jsx("button",{style:{background:r?"#fed7aa":"transparent",border:"none",color:r?"#ea580c":"#9ca3af",cursor:"pointer",padding:"6px",fontSize:"14px",borderRadius:"4px",transition:"all 0.15s"},onClick:t=>{t.stopPropagation(),(e=>{c(e.id),h(e.name),_(e.color),E.current?.focus();})(e);},onMouseEnter:e=>{r||(e.currentTarget.style.background="#e0f2fe",e.currentTarget.style.color="#0284c7");},onMouseLeave:e=>{r||(e.currentTarget.style.background="transparent",e.currentTarget.style.color="#9ca3af");},children:P.jsx(Ae,{size:14})})}),
         P.jsx(xd,{content:En("delete")||"删除",children:P.jsx("button",{style:{background:"transparent",border:"none",color:"var(--gh-text-tertiary, #9ca3af)",cursor:"pointer",padding:"6px",fontSize:"14px",borderRadius:"4px",transition:"all 0.15s"},onClick:t=>{var n;t.stopPropagation(),n=e.id,C(n);},onMouseEnter:e=>{e.currentTarget.style.background="#fee2e2",e.currentTarget.style.color="#dc2626";},onMouseLeave:e=>{e.currentTarget.style.background="transparent",e.currentTarget.style.color="#9ca3af";},children:P.jsx(I,{size:18})})})]})]},e.id)})})]}),
         P.jsxs("div",{style:{border:"1px solid var(--gh-border, #e5e7eb)",borderRadius:"8px",padding:"12px",background:l?"var(--gh-bg-warning-light, #fffbeb)":"var(--gh-bg, #ffffff)",transition:"background 0.2s"},children:[
         P.jsxs("div",{style:{fontSize:"12px",color:l?"var(--gh-text-warning, #b45309)":"var(--gh-text-secondary, #6b7280)",fontWeight:500,marginBottom:"10px",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[
         P.jsx("span",{children:l?En("conversationsEditTag")||"编辑标签":En("conversationsNewTag")||"新建标签"}),l&&P.jsx("button",{style:{background:"none",border:"none",color:"var(--gh-text-tertiary, #9ca3af)",cursor:"pointer",fontSize:"11px",padding:"2px 6px"},onClick:()=>{c(null),h(""),_(xt[0]);},children:En("conversationsCancelEdit")||"取消编辑"})]}),
         P.jsx("input",{ref:E,type:"text",className:"conversations-dialog-input",placeholder:En("conversationsTagName")||"标签名称",value:d,onChange:e=>h(e.target.value),onKeyDown:e=>"Enter"===e.key&&L(),style:{marginBottom:"12px",borderColor:l?"#fbbf24":void 0}}),
         P.jsxs("div",{style:{marginBottom:"12px",position:"relative"},children:[
         P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px",padding:"8px 10px",border:"1px solid var(--gh-border, #e5e7eb)",borderRadius:"8px",cursor:"pointer",background:"var(--gh-bg-secondary, #fafafa)",transition:"border-radius 0.15s, background-color 0.2s",userSelect:"none"},onClick:()=>w(!S),onMouseEnter:e=>e.currentTarget.style.backgroundColor="var(--gh-hover, #f3f4f6)",onMouseLeave:e=>e.currentTarget.style.backgroundColor="var(--gh-bg-secondary, #fafafa)",children:[
         P.jsx("div",{style:{width:"20px",height:"20px",borderRadius:"4px",backgroundColor:g,border:"1px solid var(--gh-border, rgba(0,0,0,0.1))",flexShrink:0}}),
         P.jsx("span",{style:{fontSize:"12px",color:"var(--gh-text-secondary, #666)",flex:1},children:S?En("conversationsCollapseColor")||"收起颜色":En("conversationsSelectColor")||"选择颜色"}),
         P.jsx(we,{size:16,color:"#9ca3af",style:{transition:"transform 0.2s",transform:S?"rotate(180deg)":"rotate(0deg)"}})]}),S&&P.jsxs("div",{style:{position:"absolute",top:"100%",left:0,right:0,marginTop:"4px",border:"1px solid var(--gh-border, #e5e7eb)",borderRadius:"8px",padding:"10px",background:"var(--gh-bg, #ffffff)",zIndex:10,boxShadow:"var(--gh-shadow, 0 4px 12px rgba(0,0,0,0.15))"},children:[
         P.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(10, 1fr)",gap:"6px",marginBottom:"12px"},children:xt.map(e=>P.jsx(xd,{content:e,children:P.jsx("div",{style:{width:"100%",aspectRatio:"1",borderRadius:"4px",backgroundColor:e,cursor:"pointer",border:g.toLowerCase()===e.toLowerCase()?"2px solid #333":"1px solid rgba(0,0,0,0.05)",transition:"transform 0.1s",boxSizing:"border-box"},onClick:()=>{_(e),w(false);},onMouseEnter:e=>e.currentTarget.style.transform="scale(1.15)",onMouseLeave:e=>e.currentTarget.style.transform="scale(1)"})},e))}),
         P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[
         P.jsxs("div",{style:{position:"relative",width:"28px",height:"28px",borderRadius:"50%",overflow:"hidden",cursor:"pointer",boxShadow:"var(--gh-shadow-sm, 0 1px 3px rgba(0,0,0,0.1))",border:xt.includes(g.toUpperCase())?"2px solid transparent":"2px solid #666",flexShrink:0},children:[
         P.jsx("div",{style:{width:"100%",height:"100%",background:xt.includes(g.toUpperCase())?"conic-gradient(from 180deg, red, yellow, lime, aqua, blue, magenta, red)":g}}),
         P.jsx("input",{ref:A,type:"color",value:g,onChange:e=>{_(e.target.value,"picker"),w(false);},style:{position:"absolute",left:"-50%",top:"-50%",width:"200%",height:"200%",opacity:0,cursor:"pointer"}})]}),
         P.jsxs("div",{style:{display:"flex",alignItems:"center",flex:1,background:"var(--gh-bg-secondary, #f3f4f6)",border:"1px solid "+(b?"#ef4444":"var(--gh-border, #e5e7eb)"),borderRadius:"6px",padding:"4px 8px",height:"30px",boxSizing:"border-box"},children:[
         P.jsx("span",{style:{fontSize:"11px",color:"var(--gh-text-secondary, #6b7280)",marginRight:"6px",fontFamily:"monospace",fontWeight:600},children:"HEX"}),
         P.jsx("input",{type:"text",value:m,onChange:e=>(e=>{if(f(e),/^#([0-9A-Fa-f]{3}|[0-9A-Fa-f]{6})$/.test(e)){y(false);let t=e;4===e.length&&(t=`#${e[1]}${e[1]}${e[2]}${e[2]}${e[3]}${e[3]}`),_(t,"input");}else y(true);})(e.target.value),onBlur:()=>{b&&(f(g),y(false));},style:{border:"none",background:"transparent",outline:"none",fontSize:"13px",fontFamily:"monospace",width:"100%",color:"var(--gh-text, #374151)",textTransform:"uppercase"}})]})]})]})]}),
         P.jsx(yd,{variant:"primary",style:{width:"100%",...l&&{background:"var(--gh-warning-gradient, linear-gradient(135deg, #f59e0b 0%, #d97706 100%))"}},disabled:!d.trim()||v,onClick:L,children:l?En("conversationsUpdateTag")||"更新标签":En("conversationsNewTag")||"新建标签"})]}),k&&P.jsx(Cd,{title:En("conversationsDeleteTag")||"删除标签",message:En("confirmDelete")||"确定删除这个标签吗?此操作不可撤销。",confirmText:En("delete")||"删除",cancelText:En("cancel")||"取消",danger:true,onConfirm:async()=>{k&&(await a(k),C(null),s());},onCancel:()=>C(null)})]})},_d="ophel",Ld="Ophel Atlas",Pd=GM_info?.script?.version??"1.0.0",Nd="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAACXBIWXMAAAsTAAALEwEAmpwYAAAgAElEQVR4nOy9B3RVaZbfWz3T45mxn7P9xuHZfn5+tp/Xe/bydPf0dFdXohJUgIKqhgrknFHOKOeIBEgCCSFAIIQyQkgIlCMKKOec88353nPO761zhKrD9KypnuSZ6frW2uvci2747tn/b4f//vbHK698O74d345vx7fj2/EbN77DK3wHXsorfOcVRb4dfyfGzys3MDDwtwID+S35+k2UjPzeV+T38Vso79t478+A8u34mzZ+QdF/1ovhle/U1AR+t6ws6XenaqZ+rzm3+fdHR0d/F3J/+5t82cZ38S0g/kaY8F+xImUF3blT8Q9u+tX9u4Kwwe8VBva9/zBwYN/DwGHnxwHjsRXBE3cqQ6cLasJnH1dHzj6ripytrI1dKq+OniusjZm9U5swd6UucTas4eqUW/3lseN1l0c+qr0y9N9703v/oKZm6vd+1WQ2rc1fyy//TR6/ylfLSnkY2v0f73l2b33gMeHywGPsZo77REO+19x4kefyeonXqu2Jv46aADMNAXaag6A1GNpCoSMcXkRAZzT0xEFXHHQnQneSRHeSg65EC02xKntD9OpqffTKUH30YlVT/EJC6+WZQ20p8384kTvxj39Z8d8C4S9/yDf4F5WeW/O/3Q1u/km234BntvtISY7r1Hiu67y+2E1NqYeBR+46HnsYKPMw8NhdLz52NzieeBjtTz3M9kpPm73ay+6o9bE66nxNjgZ/q6MpyOFoCbbam0It9sYIi70p0mx/Hm6yd0Ra7O2RFqE1ykxHtIXOaAs9MWY6otaF51GLS63xc43Pk2binl+f/qijZPhf/BJcv40Z/rxjIwir+W5uLl/75dyo3H98063/7VsuE5G3nMba7zrPmArctTzytFHqbqPUzUKxq04WqcTNoEipm57H7jIQjDzxtFDhbeOpj5UqPys1F83U+BupDTDTFGzneYid5jCL2BhhcjRFmsXnYWbawq20hpt5Hm6gPcIgdUaapO5wk9QfbWMwXmA4SWAkWaI3SW/vvqIe6k5Zu9KfubJtoWbhazAEBvLdmsCa735rGb6Z6r+ze7ccjP3MrOYGPvv3t9y7Tt66MPrk9tlFXZ6TmfwLVnLPmsg7Y5AKzhmlEidZDDx0MVHsYqTYxUCJm4lSNxNlHmbKvSw88bJT4eXgmY+Faj8z1X4mqi+aqAu00hBkk5qDBfF5hMjzKJGWSAdNwTapOVCgOVigNdxBR4SNznAbPRECvREifVGipEisKI0miMylwtR1icHrBkNX+kp9x41Zj+7C+f+yqXgZ1Lm5ub/9LRB+9VAi603Fd1zv+J1bgXU/zHDtjMk8PzKSc14l5p+VeHDayr3jGin7hE66f0ov5Z81UnBeT7GznofOeopdTTx0NfPQzUKpu5XHbmbKPaw88bRT4Wmj0ttCjZ+Zuotman2t1Pnaqb9oExuDbWJThJHqiOXVyvCF55UhiystoTZagkTpeYhIa5hIW7hIe4TIi0iBrkgHPVEOemMEBhJERpLsjCTZpOHLgjRxHWZvIY3dtNGXrpnpu7l6tSdn6kewYc2UgPEbZCu/MWMzrZIfd3R0/M5Nn+evX3fqvJl2bmw121lLzjkzOadM0oOTFjH7hEG6f8rAhhh5cNrE/VN68s6ZKHK2KFLsYuWhq5USVwuP3SyUuf8MAFXeZup8jdT5mGjw21B+rb9eqg5eEJ9FDmR33Zr9IfD7bcnTr9aGzve/iLTTEmIQW8NttIRDa4RIR5SDF9E2umJtdMfZ6L1koz/JTn+SwOBlSZHhFFEcSbVJUzccTGda6U9fXh3IWkkbKF76Y9j4rTIIfsN5hV8Mkm751P+P1HMdKWlnJlVZF3TcPmWUsk6apfsnjWLOKb304JSO7BMGsk9ayD5p4u5xA/eOG8g5YyH3rIX881aKnCw8dLHx0GUDAKWu1pcAsFHh9dIC+BoVqfYxig2hZiqCJ/VPI7sDliq6/4E8j8BXZMLolVdqw6futodZaAs2C22hVp6Hy1bAQUeUnc5YO91xsjjoSXDQd0liMAkGL8PgFYnBKw6Gk20Mp1ikkVSzNHVTlMZuWulJW14ayFyKH8qd/68/T1i98pus/IeJLX+QcKwx8PLRwYVbZ7RkHtdKd04axdvHDWLWcS3ZJ7XcP6kn+7iB+ydNCgiyjqnJOaXl/ik1906oyDunI/+8gcILZgUEsiVQLICrmTIPK+VeViUGeOpjo8rPRNVFg1gfZuZJ6PRCWcyLffI8ZCKp40TH78iPG9LG/t/K4IWxthBoC0RqCxJpC7XRHm6jM8pOV7SDnliR3jjoi4PhSxIjiQLDlwWGr4gMXhEYTpEYSoHBZJGRa4I4lGoXR1Ls0liqie4r86PdN6bPT9VM/RPlbvxmgeBlUATfSTzZ+GHcV50tKUcWuHZYL6UeNIgZR4zSzWMGbh03cOe4gbsnTNw7YSL7pJmck1ayTqgp9FbRlCTQHC9Q4q4h/4yGwvNG8s7qKbxgocjJQbGLjRJXE6UeJh57mHjiaeKZj5lKP4PYHG3kSfjwcOP1oS3yXHbv5rdzleDzlVdakqf+25Pgubq6QDMtwYgtQRLPQwRawxy0RzrojHbQHWOnN9ZBX6xIf6zEUIKkgGA4SWL4ssTQFZGhqyKDKQ6GUwSGkwWGrwoMXXGIg5dt4uhVO0NX9PbepPWywbTlHyn34zejHrFhXhN9Kv8g6nBtTOLBId21g2pS92nE5P1aIeWAnrRDRjKOGsg8pufWMSNZxy0KCLJPGsk5beLeuTXqEm2035DoSYeqYBM5J9UUnDORd04GgFkBQaGTiYcuRh65GXnsbqHc08RTX71YG67nSfRoX2vuyP9UZhRY893NG18a2flJadDIaGOohfqLDrEpQKQ5yMHzMBttEfYNAEQJdMcI9MSI9MRsPO6PF+lPEOlNsNObaKXvsoX+KxaGU+wMya5AUb7AUJKcOorS8GWHOJRoFyevQN+V1fmO9KnTU5mbLOPfWRBs/LDEMw2vxR7qqk08MCEl71sXU/fqHKl7dVzbr+fafgNph0xkHDFw86iB28fM3Dlm5u5xWflGsk6u8ihAR8dNaL5mpS1ZpMBZRc4pDXlnjeSf01PgZKDggoHiC3oeOhkocTZS6iqngSbxSeA6JeGjEz0lC9+T55Ib2P/35GtNZs3vPQ4bCy4LmtU8DVBR62dyNPqLNAc4aA6y0xpmoSPChBwUvogSeBEl0hkj0RUj0R0r0B1npSvOQPdlI4M3rIzfFZi+JzGVKTF8xcZQooPhRIGhSwLDCQ6GLzkYumQTBxOsjsFEq9R7VWvtTJm/1pE1+K//zrmEjbw+8Lfo5+8lnGg4e+ngyHraYT2Xv9BIV/YYpZQvzVzba+TaXj2p+wxcP2Ai/ZCBjMNGbh42ceuIkbvH9dw7qebehXmaku103JZozxCoibWQfXqVvPMmcs+blWuhk5FCBQBGSpzNPHQyKnxAodusWH1pmoV6y3l5XmXnR39Xvo6WLf7L8rDhm9XBRmoDBanWzyY1XBRo8hdoCRRoCXHQGmalPdxMu2IFRNqjBNqibbTFmuhIMNBzxcjILRvTeRKzJTBdLDGdK7L4AEZT7AzE2hlOEDckXmT0axEYjhOksURRmkh10H11saknc05xCX8nyKPN9K4sq+wfxZ1siLlyZMJ+/dA6V79cE69+riP5CxNXv9CT8qX+JQiMXDtgIu2AgRuHjNw4aNqwACe0ZB1foiRgna4saL0p0HZDothXQ+55HQXOVvLOW8g7Z6XwvFlRfrEcC5w3U+SsJc9pkeLAQUnbIcAsbpvza70/8V8ehYyW1YXoaQhwiLUX7VKjv0BjgINGpW7goDlYdgF22iIdtEU5aI2y0xJtpjXBQF+ahbG7DqZzJaYKYaJIYLzYrlyn8mEmB4ZTrfTHOBiKlxiOlxiJkxiNR7kOx4qMxNoZibUyHGcXx65AZ7JqrO3W3Aeb9+9vLQgCX9lQfnp45R9EHW24m3h4kqv716Sr+5alq3tlEGhI3qcn+SstyV9qSN1rJHWvmdT9Rq7LruCgiRsHTNw6bOTOcRV3Ty7RkGin45ZEe6ZEw2UHuc4qCi9YKXS2ITOEGwCwUHzBTIEcFJ7X8MBlhkL/YVYbbSJzoB8QqoF/1JA2+qPioOEXNSEmavxsYv1Fq1IskhXfGOSgMchGQ5CFljA7rdEOmqLMNETq6UiyMHhTYPy+xGwhTOeLTOSJTBRITBZITBfAeLbAUIaNnqsmOuP0CgBkGYwTGYwVGIoRGJaDx2iJoVgLQ3FmhmJFBuIQR5Kh89r6UmNq/96/tZXGTeVf96v6T5EHmp9ePbLIlf1q8fJeFUlfrXF1v46r+wxc3afj6n4tybL532sh5SsLqftNXN8vWwEL6ftlEGi5cWCJAuc1Oq5Dyw2R9ptQEqgh94KOYieBgvNW8i8YKXAyU+ikJ/+8lkInA7lOK+T6DLNSZ8UyIkr6YQHrAMberMXMQvfRsSo/CxWeJrHG30a9InbqAhyK1AfbaAgx0xBqoC5MxfNEA4O3BCZyJaYLJSYLXyq9UGLsgcTwHTt918z0Jpp5EWWgK9JET4yV/ng7/XECfbF2BuNkEDjoj7XTH+1gMFpiIE6gP8GhBJIDCdBzySb2Jpt5kbyme351zuUlcfS3BwSbRMp1n5r/J/pgZ3PqkXUSv1wTL3+llhK/1JD0pZ6r+4wkH9yQqwf0yNF/6j4zKXtlAJgVAKQfMJO+z0TmIQPX9s1REWSmPQ2ep0k0XBG477JKnpOBwvNWxQrkOxkpcDZQ5Gyg2NlAgcsKOZ6jTD+xYh0W0Q6aMQxDf+6aUOw9Srm7hnIXk1TmaqTS10Ktn51afwe1AXZqg+xUB5uoClHTHKejP9PBeL6o+PapQoHpIgdThRLjORI9Nyy8uKKjNUZNa7iW7nA7vWHihsg1g2g5VZQB4GBAUb6N/hg5LhAZiJEUHqEnXqInTlBIpe4EK72JdrE/UaQryWiuvTrmVlMjZyp/C4LDTeVfcir+r+F7W5qvHlzj0hdq4dLn61LSlyqSvtSSutfElf3LJOyf4vLBZVIOaEg9oCLlgI7k/bILMHN9n4Eb+4zc2Gsk44COG0cXqY0XaUy20XJN5HGQhfvn1BQ46yi4oCP/nGzuTeS5bKz8Ug899937GXykwjQG6h4bxn4YLFKT5TZAodua+NBFI5W565Uq4VMvB1W+8uq3URtkpjJYQ0Oclq4MK8M5MFYgMFpoYarYwWwRjN8T6Ek10xKjpTVaT7vsGiIMdEZa6ZJrBRECXeEOuiMc9EaJ9MWI9MfIV4ci/XLqKD+PlhRg9MbZ6IndEJle3sgqrGJ3vFVqT1yzNV4dD7zesUFS/Y2ljzeVH3uu4j9G72tqSDo4R/RnK0L8bjWXPl/j0perXNmnJmnfDBkXRniSuESW5zzJhxa5LnMBB3WkHJD9v4U0Wfn7DGTsM5D8xQo5zloar0B1opn6ywL3nNbJPqsj77yRfFnOyRVCM/muOoo81DzwGGOgUI15FNSDIuZBGC7Wk+XeR77HCoVyauhipczNrNQI5FrBEx8LT/x0VIcZ6L7uYOQejMqm/cHG6p8qgLFsgY6rehqjVTREammJNNEWZaM9ykaHfI200RHhoCPSTmekje4oCz1RdnqjJXqjRXqjBXqjHYr0RMnPoTdWpEehle1KfaErzkLnS3kRa5I647RSa8K6UH9lIST3Z9vW/maBYBOV130L/nXonvqnSXsXiPlsRYjdpSX+Uw2Xdq+R+MUKl75cIvnkEGMVVnR9MFYmcO3ktGIBUg9qST2oV3x/2n555Ru4vk9Nyr4lykMcVCc4qE0UKA0yk3lihftnzeSetZJ7zqIAIPe8gQIvLdle4zTfnsc2BfpJu2L2JytMZHsMk++6RpGLhRJniccuwgZV7CaTRQYe+aqpl4Ox2zDxAEZyREZzBAUEA7cEOpLM1EVoaIw00BxlplneKxAh0iaXkCPkQhG0R0KHLBEiXZEi3ZGCYgV65OphpI2eKCs9Cigs9EbLrkCgN1aiOwaFU+iKFb+WFzECL6IdtEYYpRdRgtQaaxDr4md8XvmbNzaUX3Sp659Eft6cl7Bnhqgdi0L0zjUp+hM1CZ9qiP90mcufrxL72RxZPjOsdsJch4apGgfXTo6RckDFtUNqxRKkyTzAASMZBw0kf7VMxoklauLgWayN2gS4c26Fm0fXyD5lJee0wIMzNnLPGSlw1XLffZqKK1PoRsAwY8UyK7DSYiM/aJg8t1UlQ3joJPDISaDU2cIjVw2FF5Z5clHH86s2+rNg8J7IcLbI2AMYvCPSnGSkNlxHY4icEdhoDrPTHOqgKdRBS5hES5hIS7id1gjZAsjFInnvgIMuRTbcQU+kQE+UfLXTHWlVwNAbbadPppWj7XTF2OhWxE5n9IZ0RFpoD7fQFiHxPMwhyptTWqLWzHUJ46f+xliBl0HJd6D/74V90ZQS+9kSMZ+sSVE7FonasULMLhWxu1TE7VojcfcqMTtnyQmcVwCw0mtmsMxM4uEhUmXlKwBQKRyAnALKZNCVr2Z54K6hOk6kKt5BRZhA2uFFMo+quHvcyoPT0gYAnDTkey6RHzTIaocd6wIYZ+zoBgRKo0fJcZ+l0NVI4TkbheflPQNGipzXKXJdpD7KRF8a9N4W6b5lZzgbhrKg/aqVylANlTJBFGKjMdhBY7CdplA7TSE25doS4aA5wkZrpJW2KDNtkRalWtgmgyHczotwgReKVZA2XEOEXEsQ6IoR6Y6TWUSJrjibbOrpjDUr/v9FtJW2CAsvZLcib0wJlWgOtdMcrJPaw63UhK4YK+PHv5Dvf+7un+2Y+l80Nvx+8N4K19BdA2L49lUid6xJkTtXiNq5RtQnKqJ3aYnZuU7Cp8tEbR8nP3SO5XZY7nTwPFtD3L4hrh/RkXpAy7UDGtL367lx0EzaIR0pB+cpC7NSGWej5pJIoZeJ9IOr3D6qJeuohewTDu6d0pPjvEyW8wBDD9exTYN6zIZ1Euquz3DfbZJCDw1FrjIpZKHAWcODCwsUeS7xPNFG/w3oSRPpyxQUxXddE6gO1/E0UEtVoJmaIDt1wQ7qgm3Uh1hpCLPQGG6hOdKMvImkKUJPQ7iBhjADNcEaqoNUVAWuUR20rjyvCdFQG75KbcQydZGLNEQv0RizTFPsiiKNsWvUR61SF7FCbfgatWEq5T11YQbqw800hjloDrXQHGSi+aJVbAkReBoyP12X2v9DZRH+r9pcsvuVjYAk5uiTbSGftmuiP1sgate8FL5jkYidGiJ36oj4REf0TiMxOzXE71oi8uNBHsXMs9gKSx0SVdeWiflyhGsHdQoBJMuN/XoyDpi5fkDDzVOrVMfLq99GdYLA7dNrZBxScfuYnqxjFm4fsXD3tJbM0+PUXJrHMgi6UTvmaeguWuGu6zAPPfQUylSwq0wHG3jgssTjwHVepEp0p8OLayJ9N6EvXaIu0shjHzXlvgYqL5qp9rdSH2SjPthKTZiFuggztaEGqoJVVAatUBEwx7PgeaoiZqiPn6U1eZ7ujEUG7q0wVqBi7rGRpQoTS1VmVustrDeYWW80o2o2o2oys95kYq1O/ruR2XIDE8U6RvI0DNxV0XFjmbr4WaoDV6m9qKfFX+C5r0Sjr11sCtZTETTa9OLGzL9RlqHS9PK/IOJP9Kj9z76fPO+J+GyJkO1TYvjOeSJ2risACN+pIeITLZGfaInaqSL20yXCtw/yJHGFhecw3wKPExaJ+XyUawe0pOwzkLLfwPX9Wm4clCnhVR54qqi/6qDqkp2KSAdph1ZIP6wi87iGO0dNZB21knl0mbueAyy1OFCPWDGMi8zWm8n2GaLQXUuRi5ViNxP5bhpyPdeojDHSnQkv0i10pjnoTYfnlxw89tNQ4qmmzMfIUz8b1f52agKs1AaaqArU8CR4mcqoZeoTV2hPW2EwW81koYGlJxbW6hzoWiVMXWDuQSabsA6CbRiFgzCPiljGZBGwjouK2CbANgn2cRBkmQBhDIRRsA2ApQ+MHRK9aSoq/Zap93XQ6A0NPnZqfTRiQ4COp0Ez17/eavbXlx5ufJEkSb/rtetpTvDOWYI/XhTDdi4QsmOF0E9kxauJ3KUhUr7uVBO1c52YT5cI3TFMVaqG2UZYaIbiqAWi94wplUAZAMn75aqgRgFA+uFVysNN1KVYqbsq8NDfQtpBNTcO60g/quGWAgA96UdGeXFfw/qQwPqonbUugdzgQe67zJPvrKfI1USBq4pCn2WaUmx034aOGza6Mux0X5eoDjNS5Krioauex15mHvsYeeStpsR7kVL/GWqjl+hIVzFSaGClzo6uXVKUbOndULa5S8LQ5cDQbcfYK2DqEzH3C9iHwTEiYR8WcYyCfeRnYhvakI3XoPzdMQZ2+XUyaAZB3+3A2iOx8shOuc88Nb4W6rxFGmS+wtco1fqZeOq3ZC8P6zmkLMq/PlewAQDfL0oveH7YQfCOBSnk4yUp+ONVQnboCN2uI/wTNVGfbgAg6ucAEPbJMPXpBgUAc42QGzxL5GdjpOw1kLzXqFDDaQc1iqIzT65RmyhSm2Kh+Rrcd5MzhDVuHjZz47CFm0eNXD80RWnIJOvPYaHdjrYXKq/OcPPcKA+cVeS7qHngtEjJxXU600R6bjnozHDQf1vixTUoC9BR6LZOqae8Z8BEkZwmeszxNGKe9sxVJh8bWG8RMPZJWEYFLCMOjIN2TAMS5l4wdYKhDUzPJfSNIuvVVsXkzz4yMl1iZKJQz3i+jrEHWkbuaxi6q2Iga53+O+v031YxdFfD8IN1RgvWmXyoZbpUx3y5nsVnZlZrHKhroeOKlgqfdYWprPK0Uecjs5YmqryNYp2/mSdB08NP00f+21+LK9g0/Unnn/2h+weNM/4fLHHx/Xkx5ONlgj/SELzdQOgO2fdriNglWwIVUbs0GwD4bJGwT4ZozDApAJhtgHsXp4jYNUbyVwaufmXk8ld6rh+WmcFlsl1UNKSI1F+zU3dF4M75VW4dVXPrsJWbhx2kHVnjxpluJsssLLfaUXVBX46WtFP93Duv4f5ZPfcvLPAoaJV22dffcNBz00b/bWhNEXgcrKXYd5VinyXyPWYoDZyjJVnD5EM7miYJ/QvQvBDQdNlRd9vQ9lox9DrQd0msNTiYLjUxeE9PW+o6jbEr1ISt8DRwkYqARSr8l6i4uEploJaaUAO1ciD4UupCNdSH6ZQAsS5ER02oiurQVapCVngWskhF4BxlAbM8C1vkWegy5b6ryja2asX0O6j2lh/LYqPK0yLKO5ceBk9mAN/9K3YFX2/l+h3P7eU5/tsm8X1nXbz43jIB2xYI+VhD0MdaQrdrCd+hVeIA2RVE79IQvUulACB85zAttyzMNKCA4K7fFOE7x7nyuZ4rXxhJ+lJH6kE1KQeXKLhooD5VoO6ag6dxNjJPrXDnhJbMwyYyj1m5cmiMquQ51C9grV1gqU4k222EzOML3D1h5PaxdR75aehIl3ieLtBxQ6T/FjQkmigOWCbff4aCgDGexU0xlKtlqdGB5oWEXDLWtgvo2kX07aBphuUqkYliGy9uqqm/tEhl2DxlvvOUe61S4aWhwkvHUx8DVRdN1ARYqA20KFlDg5w2htlpkrOGCAtNYXJxSY7sLci7juQUsjlUoClYoDFYoCFIoDbARvVFM8/8jDz1lT/TyjNvK1U+AtXeNqp95I2tNqp8HFR52aUqLyslvvPW0tjuT/9KXcHm6g88UPZT5y31Np93pvB7Z1W6+P4qF99fJuiDdYI/WiP0YxWh2+UgUPb/svK1RO9aI/rTBSJkANy2MNOIAoI7PhOEfbIBgKQ9ei59ruHqfhVX5fQvwkptskBDmkRRsIGM46vcOq4j85iOmydWue0+zEy9g+V2O5p2qLm8TOqhEW6dXOPGwRUeeploToLmZDttGQJdmfA0SkW21wh5gSM0pK8wUWHC2L0RcGkHrKj7TOh7HWjbJJarHAzd19OUtMyToHke+axQ5rNOha+WSh95Z7GVGmVVilTJ5vmilSp/K9UBVmoCzdQFW6gNNlEXIouV+lD7hoTI6aSd+mD58cuyc6CVerkOcdFKjZ9s4uWr3Lxi5pmPg2feDip9ZLHzzNuuPFbqF/JjD7Modzk99B+o6fqr2mS6aVZan83/8wvvVjf5vbeI5ztTos/7C/i+p8b/fa0CgKCPlgj5aJ2w7RrCPlFvZAE7ZRewSvSnc0TsGqTltpmZRonpehkAkwoALu/RkbhHw6U9MgA0pB5doipBoDrZQX06ZHuqyTyu4uYJLXfOarh2fIgX9zSoemDlhcBYiZWbp4fJOLFMysFp8t3UNCVAfYJAc7LE8+sChcEz3PftoyZ1nqlK2aSDbkBC0y+gH5QwDYKqTWCoWEPj9QXKI6Yp8pmkxGeWUt9lyvw0lHmreOy5Trmnisfu65R5qSn30VLmo1dSxwp51fqbqAy0UB1ipSbEqpBI9SEidcEidUEitbIEbj6GuiCbkmlU+5uVqmS1r01Z4dU+Vqq9rVR6C1T6CDzzkpUuXyUqPB08kXc7e8gAsUqVngYeey3wOHzw+F9RLPBy9X/59Jz7OwN4vLUm+bw3L3m/M4vfe3p83zUQsHWNoA9WCP5gnZCP1EoguJEGykHgKlG7NgDQlGlkukFSYoC7vjIAxkjarSVht5qEz7UkfblO+slVqhJFKq84qLwscdtpjcxjGjKOq7lxeo6CoAlU7bDe62ClQ6I0apbrRyZIPrRAjruG2liBungHjUkSdUlW6YHvuFQcPiKOlpoFbRfCercorPc6BO2gJGgGJGG+xST05WuFprRV4VnCglh7SS01XDLSeMlMS6KF5pfScslCS6JZuTZdMtN82UxjkonGBDMNcRZqY03URhupiTJQFWHgaaiOZyE6qgP1VAfqqAnSUxNopDbIpHALclua3EnYK9MAACAASURBVLVcrZh9eWULVPlCtY9EtbeoSNXLlS8XrSrkBhcPgSfuDuV5maeZck+zYgXkLqcSv7HG3tKZf/qXagU2P6gua/Bfu2592uO/dRmvN1dFvy0qfN9cw+9tNd7vqPDfqibo/TWC318n5EM14dvVGxzADq3MDhK9a0EJAhsyjMw0wUwd3L84rWQGSZ+riN+jIeFznVI5zHRS8TRRoOqyg6fRAjfPrHHjhJpbp9e5fmaArqJ1DBOgGRAZKTNy02mYa8dmueOspjIGqmIdUl2CTayJ04mPwsZpzVhRMgVNH+iGwDIur345FXUw9EhH1301Xbdt9NyRFOm6KdJ5UxR7MhH6biFfpZ5MFP6gM0NOIyU6MqDrNnTdgZ4s6LsHfdkwmCMp0p8t0psl0Jlh58U1K82XDdTGqqgMX+OZTCTJTONFvdyjQNVFM5Vy06qXHOSJVHkLVHs5FBdT6Wvlma+VCm+5t0GWjepluVzBVEBh5amXTXrmbaTMd1J4Etl94C/ZCmx8UNiRsjOeW1vxfmtG8nx9WfJ9ax3fN5bxemsB97dmcH9rmoB3lxQABH+gIvSj9Y1gcLuGyO1rRO9cVHiA2jQdM80bWUBe8CzhnwyTuEdF/G4NiV8YiN+zTLanjvIEG5VJAo+CLFw7uszNU1rST89TEDaJqkdibcCKfhCeJI1z7XQ/OR5rPIuBpzE2sTrRJDWmGnieqWOo1CwtNgmmmRbrzFyn0D7fbSsbqlu+3VQwmlZxq+96ZebIzebsuZzWewulz+8utrbeW55vv7fm6H1goT9HpDvLQdsNs9R+3Sx0pNulF2kSnemyoEjXDRkIEj33JHqzJfrui/TdFxh4IDKYKzH4QGTogYPBHAcDOSJ9WSLdGQ7artioi9RT4a+l1FPDIw8t5V4mKpT9CXbF9Ctm31tQpMLbQYW3XQFAuaeVck/LSwDITa9y95NerAnS8ihooLqr6C8pFtj8gPX19X/ktuNZ48Wt03i/NSd6vbGC9xtLeL4+g/ubI8TtXSfmSxW+784Q8N7ySwCoCPtYTdhHaiI+Xifyk0VCPh6mKkXFbNNLIihyjtBPBri0W0X8T7UkfqEn/vN58i6aKI0x8yxeIMfdQPKhJW6eUpN8aojuIi2aEQHNiJ2JKiNpzp3cdZumJsEhVcXbpPqrZp5enpWa7y12zTSKcfMdwsHh+rV3pl6s/7eZXu0/lfsPf7mSBnxH/vf+5v5/1l0x/v+1FI1/2Jo/7/cif720vUA13ZmrFbvvmmhIWeFZ3Jz0LFpmBdepidbSFG+i+YqV1jSHbDXouS0xIBeUciWG8wWG8x2KDObZ6c2x0Jttp08GSpZE980NPqI1SaQu2srTQJ1CRctgKHWXm1kcVHiJlHsKPPEUqPAUlGbXnwHAzhMPh7zlnSdeeknORB5dnHGURHd//pdiBTYj/zinpzs8P3xuv/jeEt5bZiWvN5fxfnMZt5+MkXRQTWEwPPCF8E+X8NkyqwAg5MN1QuVY4CMN4bI12L5E8EejlF1aZr5ZpoIlyhMXCf2kfwMAu3XE71GTuG+e4lCrAoDyKIGbpzVcPbBE6pE57vmPsvICVgfM6EZFHl+e4KbzJNWXRKk+xS41pZuoSJkcr8+aOGMY53//C/34VxRg/LZ2hP9rvtW2Z77RnjddazVOPRPoytaItVcXpOKgER54DZDnPcGjwGUqwjU8i9RSGaWhNl5DQ6KKpqta2q9b6ckU6Lsj0Z8lKx96bsuZiUhXhkhXukRPBnSnCbQn22mItSCfalLsoabEXccjTwNl3halzV1pePWQzb+Dco8NcJR7yTubTDzxsInVQTYKAntLmNpoNPmL8AJft3B5fvYox//jCXzeXhR935nD+60lvN5YxO21cdJOG8gLkcj2c3D1qBbvtycJ3LpK8AdrhHygIuxDLSHb1gmXyaIPxymKWFAAsNguUpO+SuinfSTsXifhpzrid6tIOjRPSaSdR9EWysIlrh1e5er+OS7t76f5zhpaOVofsDFRpyfd44VUHmsRm+QOoTSVuTJz4lbr4/n/8lJ9G4c55fLb8kETSjfuz3bYfueXVP2zI+MC+S359S9LrV+/TiZaFvuN21YHbA1y/KDqQFpuFKTpCgu99zTUJs7yOGySx8ELVIRoqAgy8jTIRtlFE48v6ii7qKMiUM+zUD31MSZak2x0Xpfoznip/BsOutKtdKbb6Lkh0nsD2uUsKMaE3NDyyGeNh54qynzMlHnbKfW0U+YpUeblUACiWAQ3h/TMx07xxQlt6aUXb/yFeIFN85HsU/k/PD6qW/bbNo3X27OS99sLeL69iM+WVTzenCHy80UKwyEn0MZNZzN+705y8d2llyBQEbJVQ8hWFREfrxG4bYL7/jMsNEvMt9loyzYQ9lmvAoDE3Vridq+ScnyF0miBkkgLDwNFkr5c4PLeCVJP9jJV5WCpw46mH55eH5byQifE57clnqUtDFbfG93b0YGyb27jaLe/OCHCS0DIINosuw4ODv7zme7VK0u9RrtmADQ9oiRvOTP1wkKNhc6sNZ5Ez/MwYJXHARbK/R2U+1oo87EolHOJm5ZiF7VCOz/yloGipS7KQGuSnZ5r8iZTkW5ZZHeSKdJ7S6LnJrQm26mK0FHqr6HEW8tjHxOPvS0b9QtvuQ3eRrmLgzIXk1jhr6LQf+DyJrj/nD9/AwBen5d6e2zrx/u9KdHz7Sk8tiwrAPB+aw3ft1fx/XCCu/5WsgNMZPsKhO6Yx+etOQK3rhC4dY3grWpCtsquYI2gbZNkuE4q/n+u1UJvkZXIPX3EfbasuIGY3ctcP63+GgD5vnYu7ZkjfvcApWGzrDTDUqvIVK1Nyo3ok+rS16TqzPnsmtz+/3tT8X9affzPOhSSn7MCf9r7N4+skdnQxX7VyZV+86pB3nc4JEjqIQnDiIRR4RNE+vI0lMVMUnhxihJvNQ89NZS46ShxNvDI1cwj5UgbM8UuOopdVBS7qijz1VEbaab1qqDEB/1ywJgl0PPSbfTKWUe6REO8mVL/NUq81yjx1PHYSz4Mw0G5i50yZ51Y7qUlz2Ny/HnW3P+xOfc/L+37ey4fVz31/mBaIX48357H6+0VPN9ewOPNZfzeW8ft7RHSnHTkBtu572/n0gEVXm9N4P/uEv7vrBGyVatkBjIAQj6a4+qpYabrRGafOxgqtxN7oIfoT5e59Lma2D1LZDhpeRRjpyTSxgNPKwlfTBP7VQdtdzQsNkksNSO1Zesojh+3V9+cjmwsbvyH8lyvn+j4nV8d9Pwqk//nH4p7eAmEgfqpnf01s9OL7VbWe0XJOCqhGxbQDQmYh2FNAYKK8vAZclwnyXNZpcjFSJGLWTnEotjNxiN3K49cLZS4WHjobCbfSUuxl4ayIDUNlyx03pQYuAu9d0S6bzvoyxIUMLzIEKhLMFIaoFLApZyI4mKl1FlPiauGPJcFsTB05Et5nr+2Ndy8kZEXSr/vuq1R5bV1Gve3pyWPt+S0b2kDAG8t4/PuGu5bxondu0h+kER2gJUMZxO+747h9/Y8ge9qCJbl/XXCPpTTwyWivuph5IlNIYMmaiQun+kiYtciCV/oiPl8iSwvA6VxNkoi7GQ5mYn4bJAbzn1MVMJUvV2arZN4kjxpLL7U77p52sYvr2hlNf/cCRzyCnh0q+vflsQNvPMwZuj8o4jhmLKosczy2PGcJwmj2c9Sxm/UZg5HNGQPHmws6v+fC/D3v+k9epbb+OP6rMGxrtxlxp7phNVOEeOIhG7QgbbPga4H1hpFeu+rKAoYJ/vCrFKmLna1UexuosRNVryVEhcbpS42HrnZKHE3UewhA0Gt1DOqo4y0pdjpuy3Se1ek565Az11R4R460kUqgpXDsSh2lvc82ii6YBZkgGW7j97/2er/tazAxo/z+aLovNe2Ljy2zEgeb8/hJQPgjXnc35zFc8sKXm+v4/XOPP4fj3Pfz0Z2gJmciw4iPp3Da8s4Qe+rCHxXRcg2NSEyQ/jhGoE7O+nMNzFZt1EPyPAYJmTHJIlf6on5fJkcPzNl8VYeRzm47aQjaEc75bELzNYiyQRSf7nGUXT5ue/Xiv5l5f+cGa+h5rsP4zt+VBQ2npDnPzNYeHHR/CRYS5XMwoUKNEZKNEQLtFxy0Jasp+nKqlh3dXG94dr0k5rM/m1/lumUD32Sr60l8+80ZE2v1d2cpy5jTuwvXme12Y6+W0LVLrDy3I62U2K1SaA1c40cjwkenFum2MnEI2c7JU42HrmYKVVa2Y08ksXTTImXhRJPE0Weeoq91TwJ0dJy1UrfbYn+u3ImIdJ3B5rjbRQ4qSmS2+LOOcg/YxWLnETuuUxOlmd2/Z8/D9hvMr7+0S4fFD/weW8St9fmRfc35/F6ax6vN+bweEuWZby2qPB6ZwWPd8a4fk5LbqiN3CAb6We0eL83TODWRYK3rhPyvorgrSolKPTd1k1N+hqTDShFobzwSQK2D5L4lYHYL1bID7BSHm+hLNpGxtllor9oo/u+hclaUZxphZ5nq6n9ublKW/cvK3/T1MmKK03qe/WBf8/dQv8ZzbNgK88CBKniJaNW6W2XanzsktwMWh9gExuCrVJLiF1qCnZIXQnQlLSifpLS+dU3Wiqb5xs9nvqqJXve0pah51nMolQSMkpD6hIzFQ60HRJrbQ5W5cLVCweL1VZqExe4d2aSvHNr0kM3vVTiapAeuZp47GblkZuVIlfLhovwECjxsPPQ3cpDTzNF8q6lABXNiWZlK1t3GlQEGihw0lB8wUbhGTt5Z+xS3lkH2ecWpbyA3t0/P88/c2ze1ESvkn9/fsuzIZnscX11QXR7fR6PN2bxfH0Wz7fmcZddwZZ1hQZ23zJNxBdzFEVKFEXYyQ8UCP1siovbpgnatqJQxEHvy1SxBs+3+ymKmmeqAaYa4UnKAoG7ukn4UkfcF8sUBtgoj7dSEe/g+qkJblzoY+op4lSjg9Hn+idjbfP/blPJv6iIDYTXlAz/iyy/noj77nPqUh8bZT42qcTTIJV6W6RyT4dUIRdUvAVqfARqfQQaAgSagiQa/B1SS5hAVcTSUnPq1K5fBbA/9Z69nEtH4VTIizt62lIQa6IsZDmPk+0xpuwzWHjqQNcpsdxqYL3DhrpVYqRIK5aFTYg5LmMUua+KJW4WscRF5KGzSJGLTdnIKh96Vewin3giUOhsp8jVSqGLngLXdR776XnkK7fBaSm4YKLgrJX801bZAvDglFEsumDlvutIwq/lAjaR4ren9I0zrzZa3H48g8uP5yWX12Zxf30aj9dlFyADYEFxA55bVvF5bwnPrSNk+VopinTwMEok9bQa3/dHCdg6r7CDge+pCXxPi+dbo9z0nGGsBiYaoS1XR8ieNmL3rBP35RIF/jbK42w8TXRw9WQfJdEz0mIzjDSoR6a6NP/zV5mzTcIqL6TpD9Odnj+777pAkaudgvMOscjFLj30tFPi4aBUJk68RCq8RSp9Rap8RWr8JKp9BakuyE5F6Iy58nLvvl+XQPn6LEA1/7jlznxdZ4ZA6xUE+fyCXLd5bh+bIt9zktb0VZbrHGg75T0MdgyDIup2QWzLXNIXB086HvnqKfGwSUUuVkm2AEWucp+jmWJn+QAsB4XnBQrPOzaOwHG2UuBkIl9W/AUreXKTzGkLeafNFJwxkXtSLxadsXP77Hj92hD/8NfIBjZu5tn3S9zP/qiHC380KTn9aBrn1yZxfX0St58s4vbGAm5vzuPxlhwMLuL97hKu74wSc3CR4miRoig7eQECgTsm8H1vkoD3lwl8X03g+wa8t8wQd3iAkUqJsQaRkUobsUc7iNq9TMwXC+RdtPE41srjBDMp5/uk1rs65p5bbAP1i6df/ohfqfw0j9rXkw8PjN87oybrpE64f9ok5Z+3Uehkp8hJoMTNziMvq2wRqPCz8dRvo8jyzNcml1TFunAz5THDtzY2Wf76Ldmb6edI9fof16fPLDUnG2m+YhPr4izkua5w++Q8N49Nku89SfddlaTrxKLqcdSudJpOs8DrPXmqLwtDRuvzfWZ56K2VCt30Ur6zkUJF0RtSKJv4CzYKztkoOL8hsuLz5N6I0/Kqt/DglJncUyZyjuulwlN2bp4YX3iU2Pmffw0AbLzo+OsP087+cJxz358SLvxoEqfXxnF+fRyXV5dwfW0JtzfmcH9rFo8tC3i+s4THu1N4fjjE/SArRVFWSiLh6lE1HltGuPjeAgHvqvB/T4f/e0sE/bSLzhIrY40C082Q5jFM0PZJovbM8cDPRkm0jYexRrIDpsW5WrmLyPiwsXHoT6B4U/n3Il98P+lIz2imfL7QQbOQecRG1kkbuWft5J+1UHROPjBK5JGHgzK5tn5RotJfpNJPpNJHlKp9ocx/xVKVOPKh/HmbB0b9umMTBK0Ppk41pq3RdMVO82Wk2gSBB67rZJ1cIevEspR1ZpInMVPWiSdG75dv3cxW/n5Z3JB7rveoushDR4GLVSp0EpCBnH/BstH/eN5E/nnzRj/kWQsPTsuHZ5leAsCuHKSVc8JCzjGzlHfSSuapaXtOSNfObxgHvPRlJSV///irT6rO/GCGU9+bE8/9cJ7zP5rmwmsTOL8+j+vrS7j+gitYxOe9Rdy2jJJ0YpWHsSIF4QLZPg58t43j8848AVvX8X9/Bf8PlvH6qIPaTBWTLRKTz+FB9By+H/YS+ek8d32sFEfaKQjTSk9SVplpFpam2g1vvbxBX/+ATRP99MbMv4nZ39t27bCatC+Njoz9Nm4fcXDnmI3skzYenHOQd0Gg0NVBiZfIQ3e7cpbA/dMa7h5b494xlVh4zsw9p5GR5lsj//aXQfbn65Tiu01ZcznyMTaNVwWxIVmg/pJArss6d0+tknNOLd13XiDPZ8JYkzIXJruODQVtALoube7tnIujkwXe6+Q7G6T8CzZyz9t5cN6i9EDmnjOQe8qsnJyaIwNgU07JzTJm7p+ycP+khfvHLOLdk6vc8+gL+vkF86eOzReEHsn/D0d+UDFy+geznP7+rHj2hzOc/9Ek538yitNrM7i8NqdYALc3ZxVRrMDbC3i/u4DPR6M8CHGQF2qnIETk0sFVPLaME7B1Vdk0EvDhGp4fdJEXNc1kk8RIo0jNLQN+H3cS9sksdzysFIZayQtRS1UZa8y9EOMULv9PUUrsofpLiXsXuPqV2nH9KzMZ+6zcOuTg9lEHWafs3D1tJ88F7p0zk7JvnoSfjhO7c4T4nSPEbh8k5qMBMeGTEaJ+WtXZUNr7F95MsZkajlTqX2+9rTM0X7PQkGKRWq8JPL8ike+h5u75VR64rEt5HmtSjs84BeF9j2drLBts5u6NDKe3QPterv/werbzPHkuOilHXu1nbcpJaTlnjPLpqeSckpX9UuGy8k+auHfczP2TNnJO2ck+ZhUfnNFxx6U3+0/jTH4lAC5sy/mjg9+vVZ/6wTSnfzAunf3hJOf+eJzzPx7DSQ4KfzKD6xuzvwQCmSVcxGXLKAlHVyiOkMgNtHLf14bvB8P4vjeHvxwIfqjB76NhLp/uZKxaYqjaTl+pRORXPfh/OMwtNwsFIRaxIExLdcbSuHWVP+G/NueZcLp2e9Tng+akPRqSvzRL17+ykrbXRvoBOzcP28k8auXOSTtJn68Q9tEIoR8PEr1znKidY8TsmiB+1wQxH4+IsdvHCN7xrL8+o/NfflMAfF0n+BNm9WfvHXtmv9d6S0NDskpoSbfSdsNBW7pE4UUN95xWyZF7Gp0N4kNfIzkXh+arro/t/zqghH+41io8q01ZJePsoJjjpCbntIX7J2Tl2rgvH5l3wsi94xbuHbe+vFq4d8LG3WM25d/uHrGK8pG6med7nq8NrX2TQHDjxp7fVrz36A9bpZM/mOLU90el0z+Y4MwfTXP+j6dweW0Rl1dncHl1Vk4PcfvJPG6vz+Eup4hvLuK+ZQ6390a562MnN8RMYYSdKydW8Hx3nMCP9AR8oCHwoxkCP22hu8DKSJWd8SpIdxvFe+sLstyt5AWZxaJIPU/SF2QmayO3//rGblxnm5t/P3hPe3nSHhPxn2jF5M/tpHxh49pXNtL220k7aOPGERuR22fxfauPgK3DhGwfI3T7OGE7xon8ZJLonZOEfzQiRe+QN6c2q687VfzxNyFNNudSk1vzr55nPVf49l+qHCrvX+y0HRh5YuJJ3DQtGQap7Y5AR5bI8xsSed7r3L+gIfec3N1slfI9dNzzHraWxo8lssK/WuuzbNH0WdcNPfDs8rSUeWaIeydV8qrm3lGbouh7J6zcPWbh7nFZ4bLiZSDYlI6pO0cs3DlkFbNPWbhxtm+0Jrf/X31jABz6Sf7FEz/s5eQPpsST3xvl9PdnOP39eU79YIRTfzTAhVeHcX19DuefLOGsBIULynO3N+aVYpHsKmL2LVMQLpIXbiIvxE7Qp5P4bVsi6EM1QR8s4v5OK0+SVhivlhivhrIrq3h91MgddyMPAgxiUbSORymT/hsK+dkq21ROzJnSbeE/HbFe2mkj6acWKWm3latf2EjZayflKyvX9lsJ+3gezzf68Xl7CL/3h7n4wSiBH44T/PE4odsnCNs+ScSOCaJ2TIqR2/sI+/Jh7Ma3/OKR9b+gfOUGyllCzXer0gcTq1LH4/7EXXw539G+lf+00ilMDxWYKYmeEJ/fsdJ2T6QjC5pSRaVVLeechgdnzPJ5B9J9J4OUK/v9oNH+5SZHvarLLsndztp2aE5dJu3IAHeOrykrPOuog7vH7Nw5YlYaZb9W+s/JrcMm6d5JCzdODS2Vp/T8128A7o0/HvijB9GnfzjI8T8cF099f5xT35vl5PcmOPqDJtw/aMP1nWbO/vgFLq/P4vzqIi6vzeP8kxmcfzKnWAj3NxdwfUfmBewURTsojhG47qTB4/0hgrYv479tCfct/VxzGlNW/2Clle6HFoL3NnLDdZWcEJ2UE75EcerI8V8RlSuKCdlbfSXh8zXit5vFxN024nebSfrcQuLnRq7sNROxYxnXn/Th/fYw3m8P4fveCL7vj3Bx6xgB28YI+eglAGT5eFKK+mSC8D3189fcy38sf/6bbwZ+9+v/HOrliebyPDbdT3XquFND6opYeWllpjl95WU1cuNvm6tsFn5//oW5SlnFqTNifvgEbVkSrbcF2m9BTaKN+67L5JzXkH3GzN1TdinrtEm667RMfuCENFVuk9RyJ3WTyHoTtKSpSTs2QObRFe4cNXPniJXbh00vxfwLIgPg9lGTlHXCQubZcX1uROuPv0EmsDHxwz8sSj33R+Oc+B+Twqk/nODU92Y4+N/bSXWaZOgxtN214PFBPSd+2MnZV6c49+oM516d5vyr8zi9uojb64s4vzlO+N5ZiqJFCqJsPIySiNk3g9f7Y/i+t4zX2zMEfNZJ90MbQ7VWJpsg03+Y5PPTUk6ImtshE5ZHNye3/vykN01vevyTfxa2t6vz0k+1xO3QitG7TETvMRO/W7+xs+inGtxeG8TttX7cXu/D+50hvN8dxufdEfxkcmrbKEEfyCAYJ/yjCSI+niD8k1EpdvcooZ9Vd1xxLldOEv0lK7Dpm79bd2nGpyFOa2+75KAuXkVp4gZ59PM3dxME853GLPMYzNQ6hNs+fRSFL9BxG55nirTclPcwWrhzdomsM1qyT1u5e9zE7RNq6cbRaen2uTGG8y2syxtoGu2oWqE1Q03qkUFuHV7l9iEdtw8buX3IxJ3Dpj9hAW4fNUp3jpvIPDPhuOPfvP3/p+69o6vatjNPD//TVWW3q7q6R1WXR1fb714yCAGKgEgiiZxBWTrKOWeQhJBEEjlI5Jy5XLjkjECASEL5JOWcc5bOPr8ea0vY3Pfus59dZZd7jTHH3gh02Gevb8011wzf/LN/BADfvuCfu5jcv+ZnXISHYbHkPa0Yz2lFuBl9IuN0PyWvdBQ/1/PkSCsORk/xmq7E21yDz/QKfAQAZtYSYlFP2LxaghdoOR3RxZ0UHT/vHOTi5l4il2mIXFjJ5sU1hC3M4nFqA+Ufhqj4DC8vtnLAN19/ZWs7Z7YWN724Vmr4/UN/W2EpPi9mJ25Udaesa2XXqnb9rrV97N7Qy+517eyz7mTLojICpucQNDOfkDkFRFiqiLRUEzlfIwNhy2INsYvVwyBYWkzScqENtGxfUaRPXplP3Jon2p2K+wEnozKM3h5W/fXri+X/LfN88/i7e4pWP9pRcvXt7o6BDzv1vEvu133Y18P9Parjvw+Yb8ZhdV7n/jb1EK25SO/Pt3DcP5vHu1tlDZBxSse743ruxHVyRvYRCCb0Ts67iALZRk4613PCU0PupR4a30tUZfTRkgkfjolyehXnFE1CzXPOuYuzTp0yp+J5l+HVf8G1jwtu3frz7l36M96VXIj6Yvf3zK3/wOp///79v3cxffzQz7QYj6kayXOaGj+zIlymfCAtUEv5K1A+GUDzBNJCtGwc/wAf8wJ8zcrwM68mYEYNwbPqCZndQKhlFfHryriZqONach9XkwfZ59FG0HwlMVblxFhpOBWqofKdRNnHIQpf9nMsIle6uLmTs3FFpe/v/fpc/u3hE50yXHdsqGLX2jZp56pefcqqXvau7mLP2i72bOggyKIAvxk5BFrkEzxHSegcFeHzVITNVxEhNMEiDdELVcQu1hC/RMvWpcUkLi1j+4oytq/U6nev17Bj/RcS16Z3bN/wSpuw+qn6lLeq7nFS+9CbnYNk7NBJrxIG9OmJ/VLmLonHOyrSxXv7/lm/AUCb2ZTcphI1DANSzbtBLm1WcjpQzfP9PXw4BRlpA2Qc1nMxoI1jDk2ccW7nnEsHp5zaZaqcEw5NHHfVknWxm7p3EtWvB2h5B28ONXPIVsUJx1ZOOwvp4IyiSwaE4E0479rHObH63br0opjmdGiex58EgFOn7vzvTiaPXviaFuExTQBAg7exFi+zAml7FwAAIABJREFUAlxNn/HocAOlr3UUPBhCeR+SHLJwMHiHj5kWP9NyAqfXEGRRScicCiLmlxI4N499rvX8lAyXtg5wKU4ibn0pEYtKSVhZx9aNX8m+00XZe4nKT3DnYKV0IryaswnqfO0b7e8dy4Y1QJz1m5Qd6xtJXtkqbV/Ry66VPexe3cme9V0krWzGy0RsTbmyBM4qIHhWIWHz1IRZqgifr5YjlTGL1LJhKDRBnADBkmISlhaRvLKY5FUaKWmVUi8KWXavV5Ow7AtHHbU83Taofxo3oHu6ZUD/LHaQ5/ED+owkiftJFaVPLuT87nst9U1rvfmpIK4ma5DGnEGpowDenq3nmG8hZwKqeL5niDdHdaQf0vF0p47jLjVyBfRZRRdnnLs549TDaad2jjvWcVSh4su5TurfSNS+HqRJBNJ215CmUMtlc6cEt7Jzn8yvfNZZgEBwJ/Rw1rVbOuvVwsmALL8/CQDHd974jwrTR699zYrwMi6SNYC3cTG+pmV4mn7Ff+ELPl7vRflkiIIHg3z9SSJiWSYOk97iJ1zGM4QhKPwExYTM0RJmWUKIpZozoQNcjhvgcnwv56P6iVpSQvyKejavyON2ShVVH6D4rY4PP3VLp6KLuLC94HPB+8r//GsADG9T0evenE9cLfIL2qTEZcLg62LHijZS1ncRv6weD5Ov+Jjn4G2ejb9FPkGzlATNURI8V0noPCXhliqiBQgWqtm8UIBAQ7ywC6yKSFxeMiwrSvRJy4ulbctKdAlLlbp9m7S6ezFD+kebh3gUreNxtMSTzYP6l1t13EuobH6Y9nXCr7er4euDs5+9vtyrozkPfVP2ABXp/ZwNLSLNrZZz/o28PCDxZN8Arw9J3Nvaw1H7Wo7bd3DasYfTDp2clO8Fb3IraYoC8q91ydtB5dt+Gt/B3W3FHHJUctqth1OKAU4remUQiDL6My49nFZ0SafdmznulxX8DwLgm4GVGnX5/3A0efjW21SLp5FW8jLS4GVUhOfUSnxMK3Ca8pHQZe/4+vMQeQ/6UT0ZJPf2AJHLM/Ey/ULoHBE4qiJ4ZgnBM4oJmVWD/8wyYpaVcmXLINeSOvlp+xBpfp1ELikiXjhmFDmoHg+iTR9A9Rzpp73lnE7MfKvX6//q9wAgj9CV6TdilzSKmkTdVqs+kpd3yZVIu9Z3E7e8Hnfjr3hNz8FnRi7+M/MJmFFA4KxCAmcXEjxXReg8FRHidLBARfR81QgItMQuLiLeqlhOXt1qVULCUgGGcuIWqdi5WsudSIn7kYM8iBziUZSOB5F9+mdbBrkbV9V5f//HKb8FgDfXNNYPT2ipytRRl9Wrb8vT83BfLYcVVRx1rOVCUDPPD+p5tr+HN4f0XA/r5rBNg0yTJwBwyqGXU/Y9nLRtJ822mhOeKpQ/99GQJVH/qZe6dB3XYoo57lHPSfcuTrt0yhN/yrmX0y69nHbulk67t5Dm+yXs++f6oxpgf/zt/+Ro8iDD27QI9xEbwHOqFs8p1XhMqcLDSIu9QSZJ9vkoH0Hhk17ZMPx8ZYBQq9d4mX2WI4WBM0oJNK8kaHoDQTNr8JmRzz63Rm5s7+XG9j5u74AU5ypiViiJWvmZx0cbKE6XKHyB9PpKK6eT37xrK+M3K1wCl764GbOogej5bbrYxX0kLOuSK5J3rO8iZkktrkZZeE7PkUHgOz0P3+nDQPC3KCBwtpLgOSpC5yiJmCeMQxXRC9TELNCyeWExsYtLiJOBIGwDLduWFRG/qICdq4q4LSdn9HMvvI8Hol9heK+cZHIrqqLrWtL7ab8FgKx7ddYPjpSS80unvjFH0gtyrII7PRxSqDnu0sQhx2puxfXwfP+ATIUjqPBOuDWQatsoJo9Tgi/ZoYMTdk2cFIWzzvWcCyml/KWOxq+DNH3SUfF0iNOBGo55VHHKs5WTLh2cVgwzrZ1y6pJOubZw9E8FgNgCHIwfvvI0KcJ1ilZyn6JFOIOEBvCcUoXbVA2exlocDD5w0F+D6ikUPh2kNF1P5pVeQhan4z39E37T1fibVRFg1oCfeSUBs4vxn5vPmcgebu3ScyO5lxuJvWyzLiZiaT573HNRPpbIfTokqV/CjcOfvvyxLSBg8dNLkfNriLJs1W1e1Ef80i4SlreSuK6D6GX1KIyzcDP9iofZV7zMs/E2y8HXPA8/AYJZAgSFBM0uJHSOKHRVDmuD+SPHxIUCCBq2LFITt3h4W4hboCRlbTm3I/TcCe3nrkjkDOvnfkS//kFEPzfCy9tu7Hxv8FsA+HSjTvH0SD3Pjtfoaz/qqf6ooy5T4soWNQfsKjjq1MphRQ2Pd+p4mjLIq4M6HiQNcsShRnRS4YSdMATbOenUxnGnTo67dMkTfW1LMfXvhrOkmz+D8k4Xx3xzOeZWxWm3Ybr9k05i6+iWjiuaOOz9KfAf3AK+AeDGkRt/aT/t/jN3Yy2uU4slN0MNblNUeEwpxWNKmTgZ4DlVid8MLQ5T35IWXoryuZ7Cp70Uv5J4c7YHn7lP8TT7jJ95Ob4ikjijEr+ZJfjOKiFmTTlXEiRu7ujh5vZ2zoT1snlFGeFL3vE4rQlVOlJxBmTcqc69cePNbxqBIUtf7Am3FK7nJl30wh7irDqJX9bK1tXtxK5qRmH8FYVJFi4mX3A3zcLbNAdvszy8p4+AYKawCwQAlITNLiRcAMGykMj5BbLPIFqAYb6GzfOL2Lq4nFhLDQc21fFLBNwOEaFl0ZlsUHQn0z8IH+RaaGnV4yNZv3IGfQPA+8vV4a/TOrm/v1L6eruDGsE98EXHu/MN7LHVyETZB+3rOeXTzNMUiSd7ekg/JMguRFONZk7YC7LsTrmPwjHnHtIUbZxwryNNoeHermq5UqruUz9tX/W8P93EISc1JxStnFSI5htCRC+meo74ZHn+SQB49erVv3Mwvn3f27QY18lFktsUJW6GWtwnl+M+pQSPacW4m6hxN9HiN6sSR5MMzsWWU/wM8h/2on2u4+WJLtxnPkNh9Bnf6SX4mpXjN72UwFklBMzRkmxXx83tEpfi27kc20WqTxOhCz6yW5GN6plOBoAyo0eZ/b7y18fAEWq6sLVPnEMsi+Qy9aj5rfqYxV1sXtJJ3Ip2tq7uwM24EEfDryimZeNqlIO7SS7upjl4mufhPSMPn5l58nYQIOyCWcPaQPgLwuYWDG8L8zREz9PKEruwhM3zCjnh3MbtCPgpWPQn6OGOSDQJGJLuRw1xJVKV8ers7V9tV98A8PZyfUrmKR33dtXrHuyvktnRqj/1Uf5yQGZJPWjTxGGHFvbZVnEtooPnghAzpYfne+GYRwOH7Ro4Jk9kP8fsBX9iF6LpxglFEwedi3h1opXGzxLVHzpp/gQ34ko54lglbwFp9p364w7dHHEq55DPO5t/BAB/H8xwML51xdukCBcDreRmWIi7YRFuhhW4TSnCdWoJbkZluJuU4WVegu9MNW7mrzm/uRzNY8i9N4DqsZ6nqR14zHyB85Sv+M+sQJwqgmZWEjSnlIB5SvYo6rm2bZDz0S1c3tLFXkUVwVaveJBara/8AAVvOurVWfWTf61Wh1dXrMvP0wMXfumIsJRzEvURC9qIXtJJlFUrcSs78Z9Vju34zzgZ5uA8dQQIxjm4m2bLIPCanofPjBFtMAKEkBEJna0ifLaKiDkCBELEVqDiooi3B+m5JppRBHRyy7ePnwOGpNuRXZyPyjny/SKS70bu08/VnctIFZPapTsTpkL5cJDKzF550n5JrmHvxnKZMf2QfQOHHKu4l9jP832DPD+g4+etvbKNkOYkfAQ9pNn2cEy01XEQpJodHHNt4pBHIbk/9dL8WWQdw+1tdRx2qJHp9o85dOvF7x10KBo6GpTxj3oC/+4L2JncOOJhpMTVoFjnZqiSAeA+pQy3KRpcphbjPqUaT6MyvEy1+JoX422mwsX4FWfCSlHdh5y7PWieSLw920eIVSaKqZ8JsqjB37yaQItKAucUEbQgn0NeTVyNH+BcVCc3tg6R4qplm1OGXvMcNO97Bwoy61eOrKpfuYJzcnL+ImDZ47fhC+oJn9cuxSxqJXJhM5GLWom2aiNycTOOk3Oxm/gF5ym5OE/NwWVaDm4mAgR5eJjl4WWei48wEGfk4zezgKAZhQRbiC1BQ8QcLeGz1UTOVRNmkc/+TXVcDRjgku8AVwQ1vW8Xt3z69Td8ergaXCmdj8r8VTXu9yHdp8cq3j7f18/T3f3SAZccnqU1UP1BR+2nIXJudrHfQS1zJR91aOeAXS1n/Ot5dUgv50Q+PyRxMbgNOd/BTnRV6SHNros0hw7S7NtJc2zjiKKSsyHFvD/ZzfN9nRxWVMjEm8fsu0m1EwDoZZ+duvNY2Ns/JRYw/AUczG4ku5nk4zK5WHKZrMbVQCurf/dpGlynlQyfBqaV4mlUgue0cnxMqvAwLsRu4jOO+BWRfxe+3u5D+3SQ7J8GSbDOwXHKRwLmlOA3vZIgi2qC55bKHsFjft1cjR/kclynbBTucM7hynatVPsVCt92bPv+xX7/jGEbbsWGWRUTMrddCp/XiNAGEfNbZIle2EbQrCpsx33GaVI2CsNcXKbmopiWI4sAgadpHl6m+XibFciezABzJYHTVbIEzxBaQEOQeQ5brco449HPOc9eLnoPctGzR25gec1jQLrh38OZgALV7aOffpWp/O0l5z1uGvf0SE3Dk10D3E/s1x92K+J0uIbyNxIVmT3UZuo4G6yUWdHSnLpJdWrniHM1twWv0DE9zw738mD7IIccKzlo18gRmw5Zhmn1Ojlq18Uxh3YOO1Szz7aY/XbVwx1YbMW/aeewdac+zaGPvQ6FtWnh6aP/5GignfnlGOdpn3CaXCy5GmoRItS/AID7VOEiLsZzahmeU6vwnFqB+xQRL9DgbaLGbuI79rlrZU2Q/7AN5eNe1A/hSIAGR+MXsk0QPKt2OLNobikxK0o4F9HP9W29XNnays2kdg4H5EufburQvht4VlBQ8Je/frnDz7gz+GdTn8UZLSGWLcLtrA+d3UT4PJGD2Ez4vCaiF7bia16K7dhPOE3MxlneDnJRTM1DMS0Pd+N8PIzz8DTJx9OkAB+TAnxFqNtcTaCZEj/jHKLmaEh16uOU6wCnhWfNTcc5t76ROHy/dMm/ieNBn/b+gfofAcDXu622jw7Ucz+pj/vbhvSpLlVst80i/94AlR/6aMqF+yllHHYoJc25l1THLlIVDZzwruflYXh2pJun+4a4ENzCno1VHNjUwiHrDo7YdnFIBkEPqbbdw9rASXRe6eWwbS9HbATTeiuHNnRKqQ697LLPLryQ8uS//Mn5AG4LrtjYT0vXOxkU4TJZo3edPAwAYQCKle8+TYv71FLcDatwMywbAcfwz9ymlmE7MVNe9Tm3JFRP+il83EfpK7i5swbvORn4zPxK+IJSQueVETxXQ+xKLZc3CxB0cmVrM1cT2vWnYsrI/LmruzR7aNH3L/VXx8F1d44HLlITNKdBF2TRQMjsZsLmthA2t5kIyxZiFrURNLsGxwm5OAgQTMlDMTVfvrpOzcNtWj7uRgWy9vI2KsDbKF8GgadhDuGzijlq30+a4wCp9n2ccBzipLNOJqk8q+iWLnh2keqbrz0e/3jcr1fW36n/P8+/33Pp6YFOfknqk+5v08lMJ3Erv/LwYAO1n6A+e4CcW20cdM4n1Vm00mnjqFMjBx3quBbdxZtjOh7v7+XBDol9dlWkbGhgn6DS2djO/k3tHLIRTbe6ZY7Fw9ZdHBah8E1im+jhqF07hzZ0SAIYux0+Pyx79eof5wv4Fuv2WHLe2HbKs3anyVqcJqn1LpO/aQEtrpPLcTUsx21KifAT4CoMRNk+KMd1chluU7W4TVNjb5BF5IovvL3Qh/Y55D0YlGsB0k93Ebv+LR7mrwiz1BJhWUr4fBVb1xZxNW6A60ld8ung7OY66cbeOj4/6Dn+x55zR8jNqS5znjZ4z6jCZ3qVFGzRRMisFsLmtBJh2ToCgnYi5zfhbqzBZkIWNhO/Ym+QjZNBNi6GebhOyZe3CDfDr8MAMC4kxrKa/Rv7OGzTz4FNPRyxFb0NB+QkE3GsOu7YLJ32auBo4MfNf2z1t6qZnHunr/pOciN3kvr09xN1nHBrJH55LidDNTJHQs1nnewaPuqVy2GnZo46CZa0eg45tHDUrZGn+wd4eqifx3skzvp3sn21qJQWZBqtMhAOWHfIPZhk2dQxzLe4qYvDG7tk3sXD1p2SsC/2On9K/f3n/AcBsNnnp7+xmfagSDFFi5OBcgQAJTIIFJNKcZlUievkYlynKIeBMbkaN4OaYWDIjqJivEwrUEzLx3fee+4dbJInv/DpEEUvJFQPJU5FaAmY946guYVELRKaoJBt60tko/BSXBtno2v15+PruZxS0Z77evA3yA6Gv4zPinsxnha5eE+vkPxnNOqDLFoIntVC+LwWGQDhlk1ELWgjxqqNMMt6hINLYViI06Q8nCdm42qYg8e0AvxNlQjyC+FSFskle9Z2y9HF/Rt6ObCxh0MbO0cYTRulU26NHHTLfX8yOfO//v6q+qZi63Kk/bm3+rkcXSXdTuzjbuIgx9waSViuZq9zHupHg9R81NH4BS5u1rBP3r9bOGxbx2G7DvbbNXAtpo3nR4Z4sHuAe8l6UjbWsGtNg5zvsHd9C/s2tsrkWoJfSWiEAxvbZb7Fgxu6ObBeaIR2/SH7KnY5ZwR+383tHxjDD19W9urf2RndeSxOAAqDXMnZQI2zQRUuBiW4GGhQTCpGYVCCwkCAoRRXgwpcJwtQVMjbgpfR8CnBx7wMTzMVHjMzObelAs1T0KQPUfhigJIMeHqyhc0b3uE/7yMRCzSEztMQv7KUy1GdXI5u5GJ0qyRiB7fTKm4BcqfP3692hcp/7231y2XvWQV4mVfoAuc06IPntBA8t42Qea2EChthXtOwNljQQeyibmIXdrNlQTux85tlIovEpU3sXNHBrpUd7FrRys4Vbexe2c3uVb3sXt1NyppO9q/v5MC6Dt0xx1b2K75UHwx+OOf7RTPybPJ9TcGgRW0WTa9ONXMuvE7/S6KOe4lDpLm0kLikhuRVBbw/2071Fx11ORL3DpSzx6ZUVtuHbVrYb9PKAdsWjrk18GivxL29omB2iGM+jSSuqGXX6g72rG1hz7omUta3krK+jT2CYWVdJ3vXd7Bvg5B2/eENLeyxKe7f7fHK6p9QIDr8Yh1Nfz7qaliI88QCyWmSGsdJ5SgmlaCYKABQimJiOc4TynCaUCL/Wd4aJgu7QICgYviUYCIAUI6PhQYX85dsV3wh63YfpW9GtMFrifwHg1yIKyZw4Wv8LHIJmFEsVxufDerkXGib/mJsKxd3aAYeX1bZ/eGXGH7WW/u+/DePBXdfBi5Q42Oh1fnPrtYHzW4jeFYHIbPaCZvdSvicZsJmNxM5p40t8zuJX9hNwuIekqx6SF7STdKydpKXtw9fl3WzffkA25f1sX1FJztXtrFnVbskXvAuG1XXbtf79n+g+keAKbJvq3IHbjfnwY3tJdK5sEbuJA5xN2mIVBdBmVPLtmWF3N5eTvVnqM4a5MOVdvbaFZFq38a+DU3s3dTKAbs29tpUc3VLN48PDHE/pZeftg6QtKaKHava2Leugz3rWtktSxsp8p+72CNf28Xf6Q+tbyPFWll1KPT1r0LV/8gY/kfuljc87Sa+x3m8Bsfxar3DRC2OEzQ4jtPgNL4U5wmlw0AwKMF5knAaFcsigOA+pRKPaeV4GFXgZVqDl2kV/rNL8JjxmeAlGdzZV0fRKx3Kl50UPhPBJHhzvoOdimzcTN7hYfxBjtuf8h3kYmSfdGlrHddSVEpVZtvf/kGK+MiXStuR+bdeVg9e+Vpm4TenQgqYWacX6WnBM+oJm95BqEUbobMbiZjTSLSl4DdsInZ+K1sXdJCwsIttS7rYtqxdZjdLXt5G4lIBBhFl7CBpSaOUsrqRbWu/tic6PXH9/j39PgBq1IORVTmD+or3kj41MEt/IbyFX5IGZQAcdWli29Iqti3TcDq4kMpMqPg0iOpBH4dc1ByxFWxpw5yJeza2yMWyRz0beHYAHu7p42GKnkOKBpKW17FndRe7V7eza22rSIxh9+oOUtaMyNp2dq9qkQ5v7GDHpuzHd+/e/Q9/cr3jN5UWuuaWiY3B0w7n8Vrsxxbq7ccX4jheg8NYDQ7jldiNzcN6TDabxmbjaKDE2UCDi0EpbpMrcDMsx2Namewj8DSqxsO4Gi8zEQ8ol12x7hYv2Ovzhc8/96J5BbkPByh8PEDBfYkbSTVELMvA3SSDoNkFHHFv43J0h3QtoZFre5UHfvOZR0Bw5XDWX3stu33de74IBdfiY1qlDzCv1QeZNhAyvVU2ECPntBAtjonz6tli2Ujcglbi57ezdWE326y6SFzaJoNAcBlsW9qgT17ZoN++oprNS1/X73S9a/v37+g30r+KemdUFgzUN+SD+mmvPtkxneubu2TWs1+SdRx2EURZlSStKGePUw7qJzrKM4coT9dzwk/LQes69q1vl1X6bmHsCdYUm2puJ/TJvIn3dg9wMbybrcvK2bWqQybhlMm4V4u2PKI7Swe7V7WzZ00Hu1e0SAc2NLPd9sOO7+f1Hx1/l/N++cv/ZW340yen8QXYjsmT7McVYD9Oi+M4NTajP+I3U8v2TR0EzivBziALuwnZInYgB4xkX4F8ZCxBFJd4mVTI24GXaRm+osRsVinu5l8IWPSWS4m15NyVyLs3wNfbXagf6+Tj46XYSiKWpxMw/yUpzsX6c+FdnNis7buw95P1b32h77xw/85jxbUgZ4tnVd4zSvE1a9D7m9foA8wa9IHT2/VBM9oIn9VOxJwWImc1ET23hc2WbcRZtrF1Qac+YWG3fptVr15e/auriV3xQbd5zZMHqVEZRt/+398y+pq1zX9Vkt3+sFEtjndI7y83sHXTK9mpc3d7P/d26DjkUkPC0gqSlteSsDqHz9d7KHuvk5nTL0YWsXt9BSlrO0hZ38HuDWJvb2fnujpO+jbx9KCeO7u6uZM8xI4NlSQvb2Lnyk52rWqTt6idq8Tkd7J7RTu7V7Tqd69oJXm1Vrfb5eW6fxIARob8pWxNzh93MviI/dgcyX5cIQ7jSrAblS9bzgedB0j11pHqO8Rel27CF5aimJyFYvJX+XztaayWfQOeRsWyeBmX4G1Sjq9xHd4mlfjOKMFzhgqnaZnErMnhwf4O2YOYc1dH1u1+lA8lPt3o40K8hjjrtyTZ5UunYio4tS2n6PGF/JFk0V9/qeFAxwY52JEccGuS4+yfjjiaPG/wnaUkcFaFPnh2HUFCZtYTMa9VH2pRrw+xqNXHzG9iywJRv1hPolD/q5vYsjq/P2bdqxe7PZ7ZNr0drqoRqeK/5UiRKWgufNqhfNukr87ulZpz4Wqihu22n3iwo58HKYPc3w37FZUkrqiQiTM3L87nWWqjzJEgiLN/TiwjcYWG3Ws62bm2nV3rW9i1roPd60TZfKVMnPVLSh93d+pI9Whm65Iqdgg6XlnaZSN293IBgE52LmvV717ZxrbVudVp4U//FA/g74+RsOvKWyttxj8YcBj3FbuxKr3jmDJsR+fgPDGHHdbdHPLo54BXO4f92jkR2EeqRydbV5fjPT0b16nZuE1VykdCWYxK8DIqx8+oErno1KgCD6NKObgkzuSOhq/Y4VjI81O95D6A7Id95D7oQ/sC8h9I3D5YwcnYHOn8tjJOJOR8fjzCDHb8+B8yf37/580e5350X3jRR2Hx0y8es56Uec1J7/GZ9VHvZ5GD38w8AmfnEzgnl8C5n6XQxW+bwlY8yYi2vb8t2e+XmaId3h97Q6Je8Vtk7fqRDzEPzqip/KKjOquP4pdD7Hb9wj5nNQ93DfJw7wAP9sAepzISV1awfVmHnIl0c1uZTJRR/FLi5eFmti4tZMcqcd5vYcdawa8s9vNWdq4r53xYCw/3SdzZMcC16AG2LislcUkdycJmWdbKjmXt7FzWzo6lbexY2irtXt7O1lVZd4CR7/BPqHf8puKuxL/9a+tJN/OdJnzBbkyB5DCmBPtxSmxGfUUxOZf4NY0c8erjqG8Xqf7tHA8Q8f0+jgf2sd2ugQBLFa4mOSim5Mvbghw3ENpg6nA8wX1KFa5Ty3GdKnIPlDhM/oybRQaHAkp4fakf1QtQvRDZwj2UfRhE83qQj7d7pMenGzmZlPH8p9OffpCf9zd5AX9NBydeRITbxf/HZ9XV+V5Lbti6z7vu4jb7hofLnOvuPgtvOwdZ3VsfueGGwasbr/7yDz/n9+jiRiZe1AjcTa0MP59Y2J95q4OyT/36+myJt+eb2bbhMwcVpTxKkbi3Z4D7KXr2OFaSuKqC5OXNcgbS2bAi2QAueinJvMZbl+eQtFywqrawY00zyavb2bG2leR11RxQVPNgj55bO/u4nSiRsqmaBKsakpc2D9PxLutg59JOti9pZvuSWn3S0goSrN8H/XPU/7chf3HraRcPO0zMwH5srmQ7So3taDWOY9XYj8nDblwW/hZqkjY1kOrbw6mQPo4FdZIW3MGJsB5OhfWz372N2FXV+M/S4myYh8IgDxeDQtl97DmtApcpQgtU4DqtHDejUhRTlThOe4/vgnRORGn5/HMf5ZlQ/kGH9m0vJR8HRA2BpHqj4/29mneZz8rmfhd9kyt5/iEg/GmDPyCfkl/kd0Aryez6r9f25++7lFA2eDWxmoInOn3x+z5qPsLZKCXb1mRz2L2SB7v1/JLSz91dQ+y2riBpVYV8lo9eUMQRD6VcGVX0SuLr9V4SVmexbUktSWJVr2wmabXYjlrZsa6Z7RvLubmtn5939XBHZBB7tsrJKklWTSQuFcfLDrZbdbF9cbN+59Ja4pZltx/0T586/Nz/LAAM/5LP0itWm8bf63Ecl4/d6Hy93RgVDmO0Mggu0x/8AAAgAElEQVScZf9ALvaTv+A1vYDY1TUc9hYT38fx4C6O+reR6t8xvD349LDdpp5Iq1I5Hu80ORv7iXk4TtLgaigMxyrZnexpXIKnaTHeM9R4zPxE8NJ3pIUreXOhHe1ridJPUJw5iOZdj77kUx95Gc11uW9btlXl6v+OFPG3gTCs2cRqGBZ+T4Z//lucgr+36v/8waXiJVd2FX+6uq2OtGC17sGRWqnkDRS90ZFzp49tNh9IXqfhqEcND/ZI3E0Z4HbyAMnrRRFqFYnL64hdXE6KQy6qR7rhI/EvEsnrs4lfVEWiYFhdJpw+rbKIo17CyhJOhjRxJ2WAn5L6uBTeS8LSUhJlALSTuLSVpIVtbF/YLW1fVk/sqoxHwHCtwj+PLXSELOJLyX/cMOnGG4fx+diNyZUcx6hxHKPFeXwRjhPUKAzUuBhqcDZUYj8xR068iFyiZq+TqILp5URAN6m+bRz0bOSIdytHfLo46N7FDrs2opbU4GdRjMvkfBwn5uE0SYSgVfLpwdu0gsBZlfjPLcRrVgaBi9PZ4f6Vm3tryb47ILOMaV4P6DVvB/R5r7r0eentH5SZLdYFrxr+8g/YQf/J9f6M1APGj6z44d//9Ljlv/98pDjlyq6S9qvbmjkf2SId8CjU590ZQvtCT2k6XNlWRvSyTySvLSXNq14GgNAA1+N7SVpbKp8sEpfVEb+kmuQNOeT9okP7cgjtQ9hjn0/sgjKZY1lwLSeIlb1MUO63kLiqmn2KSn7eMcj1hB5+3qpj59pKEmRPpvBjNJGwoJHEBT36WCstifbD/op/rvofGcO/7GRxM8B6whscxuXoncdq9c4TxHFQidNEDU4ThSbQyH4A1ylFKAxUOI7PwmlSFn4zlcSurGK/awepvv0c8enmgEcrBz07OeLVy3E/Hcd8hzjs1kuKXQsJa2qIWVJO+IIS/Gep8JlZgI9FPn6z8wmyzMdr9gc8Zr0ifMUHDngVcndPE5mXe6WCB5JUnA7qjKG+4kzdvZrcoVU0MAKE7yd/uMjz1xIvy4jW+GMa4C8yfiqz/Wl/ed6dvV3cSOqUbib067bb5nHEL6ek8g05guso/75Egu1HNi8tIGGFltNBzdxLEXQ3/VyM7iJhVTnJq0RbnRoSltWydXUOX270UfRqiNJncMitgCjLIhKsWthqJfwQwnUs6Pbb2b6yke3ry/kpYZCHe+CXbbBnYx3bZA3QRZLwW1g1SMlLu4my+lx6MOzhj//DlPHfVIdwJa6bcFPjZJCD03i15Da5GMfxShwnqHCaKESN0wQtzhOLUEwswXVSGYqJRdgLZ9HozzhOzsZ3lpa41Y3sVXST6jNEmu8AqT79pPl2c9y/i1PBPZwLG+RiBFyMkDgV0sMRn1ZSFA0kWtcRt6aGzatLiFpWSOhCkc71Ad9Zb4he/o4Ul2z9uehi6c7BBv27a/1kP+jvUKb33SnPwr6jhDHAX/1TtADw53U5dX9R/K5rUmUWLs8v1dy/kVI2eGdvO7eSe3W3k9AdcK8n0Ophy7O0urnaVz3ry94wdHd/PQHz3uq3LClmi5WS82Gt3Nndy52UQU4GtRG3rJwkUQ1lVUXCshq2LM/m/cUuil8NUfYCUr0L5HxEwa8cL6j1rEQbnuYREIjtoIqDonN61ABHXVtJXlkl2wtJyzrl00DikhopaUUVW9amj6So/c+hyJU/xGbGxUQ7gwyhpvXOYuVP0MqTLLTBsBTLophQguPYYlmcxhXJoHAYr2LTj9ls+vGrvE14mKmIsKoi2aaVgx49HAsY4FTIAKdC+2T74XREL2ejejgf08e5mAHORes4H63nfPQgp8N7OBHYyzHvbtKEJnFvZp+ihj2u5RzwLtYfCy2XLm2r5e7hFu6l1ulup1ZX3TpS9eXno6U/3zqg3X19nzr49pFi50fnq9Y+v1m25KeTmUuvpr1e9fVFvU3x5x4vTWb7roL0ljuqF70fVE919U9ONOmvJjZxPblbf2N7q3QruV+f5tsmhS/5zA6Xd/vFu1E+619W9BSSHbMJtSzUxy2ukcvOLkR0cGtHL3d2D3HQvZ7YJcP7/9YllSMAyOHN6TZKXw9R8UrPqRC1nKoev6iN+EXDWiBeqHarFpKWdJC8opmElZXErxA+gxq2rxDMJ80kLe8QV71oyhG7MrP9QMAri/8J6v/bGElz9nw4wXbKoxKnSbk4jNNIwi0s3MSOY7XyRDsJL+FYrewqth+jxkHcy8ZiMU7jS3AeXyJfHSdqsZtQgJ1I0picjatpHgGWGrasqWGXyJH36+Zk2CCnI4c4Ez3E2ZhBzsb0cjq6gxMRXRwL7eJYUAfHg9o5FdTJyaBOWVucDOnhTEQ3ZyM7ORvdqr8Q16a7ENesv5LYxbXkXq4n9nA1oZOriR1c2tpAakSBlBrzse/moby+93fqBrUZA3JpWtHrQTlzN/+XIU5HqUkLLNNf3dqvu7KtR39rh1jJnVLE0hwi1jwvezXCC1D/gR0vjncQMP+dFDG/nOi5NcQtKeXK5gGubevmp6RBdtpVEmtVzdaltbITZ+vSKjYvzSb9ZOtwI83Xes5HFRE6dwQAC1uIlwFQz1aZbbWdbUuEFmhk24o6uSWP4F9OFMbi0lbhvpZ2rqsiwSb94rd+wv8DVPG/P4Y/yNr0UrTtJOET0OidJhboRUzAYWwpDuPEKi/EcdwIAMYpsRdX+V6D3Tg19uNKcBhXgeP4IpwnaUW+Ia5TiodzDAxVOBkU4mxYiKuJEp9ZWkIWlRCzuoJtNrXsdGpgr0cLh7y7OOrTS5pfP8f8B2Q5HjDAySChQQY5HTHI2agBLsUOcDG2j8vx/cP3MYP6k2Ft+v3e5fokxzz9LvccLmwr4/31XtSvhkPUysd9FD3TiYJX/dXEMn30+tf6/V4lXNzSy6UtPdxMGuBkYC+Ri8qkMKv37HB7ES7eybPzyv9T/Uh6t8ctj6C5OVK0pWBQqyB+dQXXtg5xJb6bazEDJKwqI9aqkjgr4XGsJX6pYEbL5nlaMyILuioTLsYVEzwnh60Lm4hb2EysINVa1CRvB99kq9VwMw6hHcQ1fnEd8VYt+m3Cu7jqQ/OxsGfT/wVaxw1/WJT9jVEbJj1QC7ew00SV5DheTHgJ9mOLcBC+gXFa7MaqsRsrgkVaARQc5MkvwHacCvvxJThMLMXJoAznyeUoDIfFdUoFrlPKZKeQSClzmarFZaoaxdRCnKbkfyfZuJvk42WuwndmEcHzygldUEnE4mqiltYQtVyUo9ewbVMViTalxG3II2bNZ0KWpBOy/Dnb3T5yfWclH671opaLWSTyH+tQPpXkHMaHB5vYavsOv/nP2etWxbmoXs5GdHI9YYgTgZ2EL9JIkQu1RKx8mZv3S72cDNJSzMzb+2qbghe9JXyBRh9lWUfgzCJ22NZxNX6Iq/F9nAvqkcvS46yq2LKoapg3cWkVUUu+8vRoE+WZejkyeHVbGSFzc4hf2ETsgiaZjj9uQTNxMiAaZRHaQAbD4sZhMAg7wapJSlpbxeaNL87+2b/gGI4PTD+3xWHyWxEg0juOL8F+TBF2Y7TYji7BZowG23GFwwAYIwCglbcDu7GF2I8twEFoiPHFOBmU4jxZxA5KcZkyDALnyWW4yPkE38mUctwMK3ExqEAxsUJORBFGp/NELU4T1DhOEFHIQlwmF+JulI+HeRbuZlm4GH/CxfQd7hZPiNnwjPPxuWSIRs3PQftKj/JFPwVPetGIYpa7em7tbiDJIQc3i8cELMjkiE8n58IkTgUNcDlG4ohXC2ELNATP1epDl2Sy1/v9SEj4z/6s4BHRSY65BFtm68Pnl+kFXV7AzEJSPdu4EjfI1bghDiqaCZqlImZBlSyi8Wbc0gqilnzmSWojlR+RAXA9qYwwy1y2Lmxmy/wW0ZqXLZbivunvJHbBMBBiFzYQO79BdGTRb1vRyOZV72oPBz2f9i/YRHp4Gzi6+fV/tzb8Kct2whfsxxdJdqNV2I4pwmZ0GdZj1ViPzcd6jBKb0WpsRqlHtgKVrCGEXeA0XoSNtbgYFA2nlU0uxkXOMCrGzaAEz8kleBiU4G5QgpvIOJo4bD8IUUyqRDGxEheRfWRYhmKyCoXI9p38BUfDdzibPcN/4RuSFdlcTqoi/Vy7vLpF9pHm1ZBMSVeUrkccGb/+PMj17bXEbfqE19zXuM14T+RyDWkBvZwN13EyqI9zYZDi2EKwZaFgSZXC5pcStS79sWD0lN8I/Oe0KPXrkIUFhM2vkEIFifa8SkLmFXA2uJfLgkJ/s0TSuhqCLUqImCMAUC3LZqsyIq2+AUBP1Uc9N7eX/z0ALJuJFpNu2TIMghERmmHL/EZZZO2woFlKWFVKnO2T5O8X6r/QGMkann/BbsPE2wObxn7BdkyB3na0BpvRxViPVWE9tkAGwKbRBViPzWPN7z6w9oe3bBz1iU2jsoVLGeeJhbgYqHET2caTi3E3LJGvrgZFuE8WEy9AIU4aShzG5WE3NhvrMZ/ZNDaLDWM+sXFsJpvGv8FxWjp+liJSmMfpiEruHmkk604/mpeCa0CPNkOHMn0QjWhVKwinX0g8Pd3MoaBCApdk4D7zHV4WWXjPyiFuXTWnQyTORgxwKqyDc+EDJFvX4z1Dhd/MIn3QbA2hVlm9x8Pz5317G28vta4KX/F2IERsRXPq9GHz6gmaXUyklZLLMUNcjO7jYuQQ0VblMqdixJwaIudWETWvms2LKwhf9JknRxuHM4NEWVdyGaHzhgEQKzTAAjHpLWye1/SdNBAjchkWNLJ5Xr0Uv6iasKXp6qs7Mv/2X7h7uPzx33zu/9t6o+MXN018wabRuZJwD1uPEhMvJl3FptGF2Iz7yvqxrwhenE3Y8q/4zs/EbeY7XM3eYW+Yjq3BK2wnvcZmYjq2kzKwm/QOmwkZ2E58i/X412waL/4+HdvJL3Axe4PfvE+Er/rINucsUkNLuL6zkacn2sn6eQjlEygRKzsD1OkSmtc6tG90Mhu58jmkX+7lbHwRMRte4jLzIQqzt3jOzMdrpgqRS5hs28jZSIkzEYOci+zndGgvW9eX4SXKymeU4jddqwtZkEOC7YeRRkzyO/hPifYfX0YuUhJmWSOFzBHMZ3UEzFKTtKGca7ESl2IGORXYR8icIsJm1xAxu45w0WxjTjVR88sJnveRp6lN8hZQ9REuxRcRMi+HeLHKLZvkLUBMeszcRlmi59YTM6+O6Ll1AgT66HkV+tD576Q4m0eev5Wl9C80RrqJOF0et3bSjcJNo3LZ9LscyXb0F6xH52MzWitrgdW/e07sujw+X4NPN/V8uKnn3TWJjIsDvDzdw8OjHdw92M6d/W38vLeNWylt3NzZyvXkNm5ub+OnXe3c2dfJw6PdpJ8dJPOqni+3Ifs+ZN2Dr+J6X0eWCBs/66Xw5SDal8gu2exfBnh2ooUzm0uJ3fgFrzlvUJi8wcXkI14zC/GaocHNvBC/eUo5nH0upo8zUe1ciBnkeOAQ0cur8DRT4zujGF/zIilojobQpekF7280y8WqYhyLyAsJt/pKlGWJPnR2GWHzagidW4X/rEIOuLZwZcsQV2J1HHBtxs9cJTOnhVnUEjKzgrBZouFGGQGzP/E8rZ2St5LMkHI2RkXI3FziFjQSY1mPMChj5onJbyBGtOgZnngZBBGza6SoeUWEL318UyTBfL9A/9VA4Ghx0WbNmEe9G37MYtOoz3qbH/PZ+IMSuwkqlv+/zznoUyqTSHy43c3Xh4N8faQj+9EQ+c/0IwJ5T5Gv+U8h97GYYD1ZIinkFx2f7+j4clfPl7sSn+8OkXVP4ss9+PwLZP0CX+/Clzt6Mq4OcO9IE2djStnhnEXIkkxZazhN+4CbWQ4e0/PwNNPgbV6Oi3EBzsZZRK4q5VhwH2ejBzgd2cnFLT0c9RMEVlo8zYvxm1mNl3mx3n9mMV4W76UDATlyJpIY2beZErIkvTbMslx0T5FCZ5cTPLuSwNkVBMxVy/bDxZg+Lm8eImFdBb6mWplcO9hC2AJlhM0SNLtl+Ftk8uJ4O0VvoPwtHA/NI3juV2IX1BIjCLgta9lsKe5Fw84GOZUtYnYNkXPK9VGzKwi1fFtyYkvGRHlG/nVW/98NmRVb3KybcnLv2tEv2fhjrt76hzy99agcrMcUsmFULs4mGVxKqOXpiW6en+4n88YQX+5IZN/Tk30Pch4wnPwhVrSY1Dvw+SehMeDjDfh4HXnlv72k4+WZQR4f65O1hvD0HQ0tZadLIVFrsvCeK7aWtzhPycDV6AseZoV4mBXhYV6Kh3kZrqbFuJlqcZ6Wi8eMHLY71XMqapDj4b2cDO/nXBTsdGjEZ1YOPjPV+Ewvw1tUPs9S6j3MMznkV9RUm4tcmwD831s3ZjwJmq0iaFaNFDS7apgwc5ZY/eVELSvj4uYhuZXehcgBmR9J7rcwq0KuiQy0EGCpJmiG4FH6yNtzPaheShS/Qm6gJfwAMfNFB1ax6huJloEgyDDqCZ/TII6G+oh5GoJmv+6Ot3668X/F5I+MEU6hlCf/Zd2k6483/PiZDT9kSTZjstj0Yx62YzRynqD1xNc4THuLg9Fr3C1eEmSVTvTqD2xZ95n4TdkkOxSww0nJdkclibYFJGzMJ359HlvW5BC5/AtBC9/jM+cNbtOfYz81HVvDt2ycmI7N5Lc4GH7CaWq2XIDiZqLE06wQd5NCXKYpcTMpRmFUjItxMU7TNNgbfiFkkZZUPzHhEsdDhMtZx8mQIaJXlOFuLFR+KT4zSvAyL8dnZhmu5m+Js3lNwX2kwidSZvVb4s/Fqm77zHlB4GyNXhBfBM4UdDiVBM+qwnu6ih0O9VzbquPSll6O+XXha5FHsEU5ATPKZA5FmUbPogF/M9Fw+ysfLg/KSS+Cdm+Hw1cCLdREzW0hQiSwzm4jSrTlmVdNjGWVAINegCHM8iPhK+9s+W4x/q8aI6lj1jenrhh1XbPux3fYjPmssxuTi+2oQmxH5eA4Ph+H8RqsR+dhPfYD1qM+Yv3DZ6x/+MSGv33Pph8yWf83b1n/Nxls+N1b1v/uDRt+l8FGcXL44R3Woz5gM/oTDuOzcDTIw0lU9YhyrmmFuBqrcDbMx3WqCncjDW7TSnARHAbTinE1LsLFWIWdYTbuM1Qk2zVzRhzvQvs5FtTD+Sg44N6Fz+x8XE1y8TUvw9ukBG+zYjkfwWumkkCrDDKv9aBN18kr9MPlXoIWvsVnRo5eGIe+ZhUEzKjGz7wKf4tyfC0KOB7YJXdPu7p1kJ32tXIJugyA6WUEmNcROL2eoBn1+BqXErXwM19vShQ+1VN4D2LXZMucjOGzGmTi7XDRoHuuAIAw/Mr1MXPKdNELlEQseXyh5u6X//CvvO//0TFMLzv7+JIVY27W2I3PxmZUrmQ3qgDH0Tk4jMrG9gcl9qNEdDAfx7EqRE6Bk/ALjFHiOKYQhzEFI1KI/RjVsN9gnPAbCP+BSs5EFv4DOepooMJFuI8na0auwqegkZ1DsjNpSilOU1TD9X/TPhOzqoKjvv2ciRgiLahLDjidDpOIX1eFm6ngDCjE01SDt6kaQYwlxHN6Pq4zX/AotZWidCh42kfBA0m/ZcMHvYdpjt7PrAJv0zKZNc3HtFImyPQ00xK+RMvlLUL9d3F5yyBRy7QEzCySK6EDZlQSYF5PgFkNwTOq5GLUrSs/orwnUfhYx5frOsIWf8DXWD1sJM4pI0L4FGbXETlPGICVui0L1UQsffb8eMyj/yZP/b+Byf82hu0BoxM2a8c/arYbl4/tjyrJXgZBNvY/FGL3QxH2o0VKWYEsNqPzsBmdKzyKIyLuRdKJiCMIEAgXcqEcSRSJJyL7SCGLBoVBkewVFHUIolpJFKW6GJbhbFiEvUE+DoZZhCwsYr9bJyeCBzge2M0x/y554g+4dcpJJi7TsmXD0NNUMJ4ITkStnMourH9H4+dcTipDIxJSBSuqCNUG5eNu/gbf6YI5vRbRTMNLVD4ZleNtWi67qHfY13MlboiLm3s4GdhDgEg4tSgj0KKGgBmCMKuOQLNKAoRNYpjFbrt8Cn4ZovDhAJ8ud+NrkY6/abFo0iWfGMIshtv0hs2plKIXFhO94vWHZMWdCf+KR75/yhhG40bz044bJ91tlyf1dxrJcVQB9j8WYPuDBpsfNdj8oMLmRzW2ozSIHEO7UZrvRPxcid1oJfZjhBNIKecdCIeQ80QliolKnCcJETWLKtkTKAJIjgY5CM+k3eTPBFpq2efSxckgiVTRJcS3jxOBQxzy7CVyaTmKqV9xEUmq08SWUYSbcTFuRkJKcDdRYjflGcfC1BS9gILHA6hfwNXt1SjMnuE9Q3AIiKzmGryMSvEyLsXLqFLeMjzNc0nz7+VizACXY4fYYVtLgIUwFCvxEbUQwl4wryHQTPRaqMLDUEnsihxUv0DlK7iRUIu78XsCzaoJNqsnyKyekOminK1ailygJWTJy9wt9rcM/41O/q9PBhuMD3qsG/ugW0yw/agCyW6UvC3IdoDtqHzsfyzEflQhdj8W4vCjCocf1SOiwf5HjXx1HK3GaYwGxTgNivEqnEUG0ng1ThO1sttYgMB+Qi424z/hMPkTgZYadgmC5aBBUn27OeLdzTG/QQ65DxK1tBqFUTYOk77iNlWFm2HxcHn7VEGBX4TCSIO7qQpbw2cc9M1FK46mD/vlWMHDtCbc5zzDa3o+HiZqfEyEBijDSxS9yCCowGVqAZFLSzkbPiSzoJ6LGCBssZoAiyKZNFNoDb/pZQROrx7WACbV+BrV4GH8hWTbPA54FuE9MxPByehvVE+gaS1BglrPpFIKnVlOqNU7dfCaa+b/lif/DzJwNxiddt0w9nGbw+hcbH74KtmNyWOTMARH5WH7Yz42o/KwGZWPzY9K7IRGkO0EYQMoh/MIxhTLuYcOo1QoxqllIDiNL5brE23GZWMz/iPu5jlEiTIrlw6OBQ5yxK+NA57NHPHu4pB7H1tW1uFuXIj9+GwcJxXiPLkIJ1HhbChsBcFvIChvlLibFmA95RG7PL6ieiy4DHpQPRni9elevOdl4GKcLZ8MvExLkLunGIuyN5HIWoq7UQnOU/PYad/CmchezkR1s8+tBe8ZhQTOrMRfGIjTq2VqHH8xqeaV+AnbwahS/iwXg2ycJ2UP50Ea1eJrUkeAWQX+JsVSoKkG/3nPP4WvuSUHeTZsGC56+Tc+BACGUbrR9Kjj+rF3W+xHq7AbVSLZjVGPTHoONkIr/JiLjdgeflRiI+wEAYDRIsdA2AsikqjCeYKIJOZiNyaHTaPEas/Cf7aK7baNsno/HjTAYZ8uOVdAqHyRYRS3plbek23GfsF+nOAB0OA4oQiHiaIIpUhQ36CYXIZCkF+Z5GFr+IQkxUfZpZzzoJ/CRwN8uDJE4OIMnKZk4mlWgoeRqHMsxdu4FB9R1CKIM6eJz1DJ1c+pvgOcCO2UQRC9sgQ3YyX+M6rkSfcVdZHialqOMCDln8lbSRW+xlVyoYy3cRne08qHwWGslvxNRdrb67zgNdcM/380+X8IgnXT0jauGfOobpM8ySrJ5sc87H7IwfaHr9j87it2P4gjY8EIAFTYj9LiMFrkF2jlPAKbcR+xn/QBT7N8opYVs8+tlZPBgxwL6Oaob6e874qJ3+vaRezqJtzNlFiP+4z12BzsRd7iePFZRTiOK5MrmocTWItwmlSGyzQtGyc+JMn5A3kP9WQ/6CX/8SCfb0hErPgks6F6GmuGWU8EJ5JRqTzpHlPKZfEyLsNhUi5bVtVwMniIE8G9HPLqxN08V6bQE5PuZ14hnxJ8ZQBU4Gdaib9ZNaIVn69JtWxPeE8rQ/Rn8Jum1ftOLZICzfLwsfj/2rva4KjKK6z9mPZPpz8cO53+Ifu9e5PdJYSAIgUUWrAdBzAkm70fezfZzSabBBCxtNZWmFJsba1TgaLUsShKISHEEMKXCAKt0RDytd+72Y8IpWrtqFQsIey9T+e8dwOI+sfSKpoz887NMEmG7Dn3vO8553met6v7/oqdjiv1Ea8r00oU7T/umvHHhQvNuzK8eRCVkwYVty4EQRcBXxSGoA9DMFAA0FaQhIcWwxKE4bEPYNWdGfxa/Ac2NV9g9fvG5rexvvFt5nzKAI9438OqBTnIk/vgMg/ATfwFLgbRlgBlHOIzMtSSJQtvIQgkwjCWxrHYcgDrvL2MnDp44H2ED44itBt4sLoHouM4Gso1FbQ64i1MJjEsDacQoK+dWY3RVBbFo75/YVPzOXbYXH3365CdIQZrpzKxqZyep9E4/RQayyn9a87XAuA0U1ijoGgqTWNZ6bC6bOoQGmfsO/BIoNN63Tr/KmOZIPjDp8sWc1uOLjG+hCpDv1JdFFJEfRKiLsqqBMlIfYEUPMYYJFMU1caTuG9uhs3kNzSexfrGd7GRUdBG8VjgHNZUvIGmmQnwXB+qTCchEOrIkgBvTbIn4RAIgCISNtFKuEQNqOq1vcbOAwuNu/FoYxiDnUBf5xgiB0bR357Hg64+iM7jqCuPMF3EOkcOdc5TjPJOglh1zpGCaiohm0L40YLTeGLZKB5feg4bAqNouk0T1GqgMpFKRLp6j9I9czalfi3lUzZoIrLstFOUWZTl01Nq07RjSnDGjo2bf3zom5+VJs81sgKwtGnDdypKn3lyobl9rIq6hrqhvKALqxQAgj4OyZSCRBUC9QmMfVh5ewZ/ugd48p481te/j3Xud3DvvBEmA1tpfBVVhpPgTdEC8igNwUzNplTB+VoAsIYS4RKpCcWFwdv6UWHZjyfuTWNot4qTHWMIdQG9O/J44O4e8CUvI1BOKT8GksklgUxNAoe0D7Lw23Pw20koa5hB1CgDaVvRBfyy8h3U2CMFCb1TTEKP6G8NZacRnPo3BGnPL6fDXw6N5WkEy5Nq0/R0fsWsNIIzD7697M7nVl4mc36qLd7/iY1jCb7qnj1YFGIAAAfdSURBVLkxuMj83OsuCoKiE4pkGFCp5BMMFAAJeCgbmMIQbX1onpHEPbenmcAjcQwqdb1wm/pZ48htjECgjEE/SyWnOc32e3rjCahKmEWPjQKAyscQqizH4HZ0oWXtm4h20dDpPAZ2qzi6ZRQr5/dAKvkLAmVxhlii/Z4Irf7J2cvOHw8ARw6e4hhWzMvh8aYxrG88iz80XsCyWRnUlpCwtnZOqCPNJFJLYQfGU+z2tcap9NYTVT6hNE1PKctn9qN5TkdkVdW2+VeX059D0+7Wpa8af9A2q8LScqzSeFgVTYOqZAznRUNYpb4AbQ0eI8HNIxDMhDM4gWoTVQLk9H7wRjo4hpnzqYKgQyR1GSVTFsRg1t58QhRpQSBzUSw2HEHDrGM4tOk8Qp15vNpyFoPteex77D3UzzoCt/UVpnpW60zA5yS6WhY1zhxkB5WNTDgbPkcGPnuOBYRUHMa6KqLFK3hi6UU85H6Hyc41lFKGyGpbh13bLigg6ktHCvcvZpWGsni++dYwmr97Ql0+t7N1833thuugxr9mdqlCeGbDoZsqy59ds8S2503B9ipEU78i6GMKywKGODzsbBBiMwOaLrISkvoKRiod43DrqX+QBG9IsAaSYByBaM7AYyU5mwhka5rxEJaYXsRPKv6K3l1jGOpS0NN2FuE9ebSsfQOS40XwFqrFibOQhpfay1QiEmDVWVgOEsxMMCg7tZ8pAIjhHJgaxrol/8Rvq8+Dblr3OxKop0OiI4eAPYd6Oz3TaHAOI+jIqA2OnNI0Jas203U2c7riqyo66nBGwxd+UZx/ya5k4q6s3jqdL21rd1mPXmCp3TSgCoYhRdInIOmGIeqSEHQxNk/gdVnwujR4fQqCPgHBEINoikKizqIxCdGYgWSiJhId+rJwGU9i5YIeTX1k7yh6d41i8HkCX2RQxe2B29qtzRysRG3LsMW0EJkk3vjS8Io+O9HesvDR/MFOGYZ6DIOsPU1aivVTsvCTcKYjjQAFAoFc7TnVz2WVgD2tBkmAu/zou83f279p60PdxnHH/zeXVV/nRkFwWdun+a6dblfptlequAMqHe5EXUrlJ8VUYVJU9RQlIRWlIBQlIOjiEKh60FMFQc8Ye9JWIBjSkAyvQTLk4LWMoFLXjbWuIWTphtIDYxjYpeIhOYRF+n2sQ0i0NtFMSmhEY8tALgQB4zmygZMWBD568xlKWdNGrKUgYBqJdCbQtgh/SRr1tO9TBnCOqHUlGTVQMqIGS19DbdnRfwdm72j/Vf2eOZf+eibc+IV1/rjhxkqm61O4seSp4zf75m0PVtrbe6vMLymCoR+yMaQKk/pVftIgJH0EYlEEgi6sOV5PwUAZQmsnC7oMPPoMPIYUZBOVf1Hwthfw+/oIWtf9HcvnH8cSy4uQuJAGU7fk2PIQvc1GKw2ZS18mu7IgyMFXMsJIrxQAWhbIoYbLwWsbgZ8bRl3xMPzcCBpKzqj19qxaPzmuNpSSSPXB84HbOrt+6upaeBm7d0mLYMIuhQFw4+wbVn9lPCNs3fTytygQquzbe12mfXnB2A3JEKGsAHdRQhWKUqqgS2nOn5SEUESBkIBURAGQhGyMwmuivgI5MwqpuBsu6zEI3Al4aWRsjbMzgmzOsuUlDqM5pS0L6R8Q9zGJGi6F2uI0arksfFwWtVwGtdwwamxJ+EkfkRuGz5pSA8UZtcE+gqAzozaUETll99n6Wa1tq92di86cOVPY51u/PHv2Sx8pNDVhH7RLH9Bbb8W/UTd3a0W1vWX7YmPn61Q18OZe8PpBlddFLgq6+Jioi42J+pAi6qKqpEvBo09ANoYhU1dRPwLJlGHOrrHlCm+5BiCRrVRtJCCbhuElx5uS8NIyJ+ElBZTC0oZRcfhsw2qNLaXU2uJ5Hxcb8xWHxvz2gYv+kj747K9Acu4/L05p6fff/uzDDzd1TL3K0RNO/yTbwxUZ4ku/8Owvrpn5dLCyZGtHhfn5N6oNx8Dr+lSPPgKPIQzZGKP0r3iK0nlPUTQv6RKKpMuooiGm8saI6jGnVaKq0cBJttC4OaE5m7352gjaY0yotGRzTJXNcUW2JJQaSzxPy2dLKX4ug7piYi8l4befhNd+RJGc7YnaW7Ztvm/R9oWH2ntu+ri/YcI+kX1Y5ImCYbXcaa25paWKt7f+rtrScZC37T3jthxWJHMvfJY4fKZh1BrSkA0peNmIOaSKppAimsOKxxxTZFMs7zWRY5N5rzmel41RxUv/bo4qsimCWmsMPmscflscdVwcAS6MGu4EpOLDo4Jj77CnrL2zprz1gRXf71qw5Tc93/64UnfCrvmA6cMfbC6X+zpJvAXuaLvLO23H/byz7Sme63xBKjmU462H33XbDo/ytiMqbz0KieuGZOtlIFPSP/TYhuCxDUK2DEG2DkC0dquC9ehFwXb4nFT8wpti8f6oaO/c63W2rfeVtQUb5+2c+4DYqgOYPuEHnH61iuiE/X+C4SM/8JS672trm3frAvN3TKmZs222e/qWCmHqs7XitJYV1VN23O8q2/lzl3PXGpfz+TV8acfPeEfbSr5sZ0P15D8vqZ6y9Q7vrZvLly54ilu3tPVm4OMmcprq2ITTP2Ubl3/TRqdUUl7z9HvjDYXfT0tz+MSb/lk2JvRIPPlxp125bvjAwpfo+VHfd1k7cMLZEzZhE/Z5s/8AlqxUT2fnexoAAAAASUVORK5CYII=",Md=()=>({url:"http://greasyfork.icu/zh-CN/scripts/563646-ophel-ai-chat-page-enhancer",icon:P.jsx(Ee,{size:14}),label:En("reviewBtn")||"Review"}),Id=()=>{const{settings:e,setSettings:t}=wr();if(!e||e.hasAgreedToTerms)return null;
         return P.jsxs("div",{className:"disclaimer-modal-overlay",children:[
         P.jsxs("div",{className:"disclaimer-modal",children:[
         P.jsxs("div",{className:"disclaimer-header",children:[
         P.jsx("img",{src:Nd,alt:"Ophel",className:"disclaimer-icon-img"}),
         P.jsxs("div",{className:"disclaimer-slogan-container",children:[
         P.jsx(Re,{size:18,className:"sparkle"}),
         P.jsx("h2",{className:"disclaimer-title",children:En("welcomeSlogan")||"AI 之益,触手可及"}),
         P.jsx(Re,{size:18,className:"sparkle"})]})]}),
         P.jsxs("div",{className:"disclaimer-content",children:[
         P.jsxs("div",{className:"disclaimer-section",children:[
         P.jsx("p",{children:En("disclaimerText")||"本插件为通用辅助工具,依赖于第三方站点的页面结构和布局。如果原网站更新导致功能失效,恳请前往 GitHub 提交 Issue 反馈,我们将尽快修复。"}),
         P.jsx("p",{className:"disclaimer-warning",children:En("disclaimerWarning")||"请勿因第三方站点改版导致的问题在应用商店给出差评,感谢您的理解与支持!"})]}),
         P.jsxs("div",{className:"disclaimer-section privacy-section",children:[
         P.jsxs("div",{className:"privacy-header",children:[
         P.jsx(ie,{size:20,className:"privacy-icon"}),
         P.jsx("h3",{className:"privacy-title",children:En("privacyTitle")||"隐私保护"})]}),
         P.jsx("p",{className:"privacy-content",children:En("privacyText")||"本插件所有数据均存储在本地浏览器中,不会主动上传到任何服务器。您的账号信息和使用数据完全由您自己掌控,确保隐私安全。"})]}),
         P.jsxs("div",{className:"disclaimer-section quote-section",children:[
         P.jsx("p",{className:"disclaimer-quote-text",children:En("communityMotto")||"一个人可以走的更快,但一群人可以走得更远。"}),
         P.jsxs("div",{className:"action-row",children:[
         P.jsxs("a",{href:"https://github.com/urzeye/ophel",target:"_blank",rel:"noopener noreferrer",className:"star-btn",children:[
         P.jsx(re,{size:18}),
         P.jsx("span",{children:En("giveStar")||"点个 Star"})]}),
         P.jsxs("a",{href:Md().url,target:"_blank",rel:"noopener noreferrer",className:"star-btn review-btn",children:[Md().icon,
         P.jsx("span",{children:Md().label})]})]}),
         P.jsxs("div",{className:"secondary-links",children:[
         P.jsx("a",{href:"https://github.com/urzeye/ophel/pulls",target:"_blank",rel:"noopener noreferrer",className:"sec-link",children:"PR"}),
         P.jsx("span",{className:"divider",children:"/"}),
         P.jsx("a",{href:"https://github.com/urzeye/ophel/issues",target:"_blank",rel:"noopener noreferrer",className:"sec-link",children:"Issue"})]})]})]}),
         P.jsx("div",{className:"disclaimer-footer",children:P.jsx("button",{className:"disclaimer-agree-btn",onClick:()=>{t({hasAgreedToTerms:true});},children:En("agreeButton")||"我已知晓并同意"})})]}),
         P.jsx("style",{children:'\n        .disclaimer-modal-overlay {\n          position: fixed;\n          top: 0;\n          left: 0;\n          right: 0;\n          bottom: 0;\n          background-color: rgba(0, 0, 0, 0.6);\n          backdrop-filter: blur(4px);\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          z-index: 99999;\n          font-family: \'Inter\', -apple-system, BlinkMacSystemFont, \'Segoe UI\', Roboto, sans-serif;\n          pointer-events: auto;\n        }\n\n        .disclaimer-modal {\n          background: var(--gh-bg, #ffffff);\n          border-radius: 16px;\n          width: 90%;\n          max-width: 600px;\n          box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);\n          overflow: hidden;\n          color: var(--gh-text, #1f2937);\n          border: 1px solid var(--gh-border, rgba(0,0,0,0.1));\n          animation: modal-pop 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n        }\n\n        .disclaimer-header {\n          padding: 24px 24px 0;\n          text-align: center;\n        }\n\n        .disclaimer-icon-img {\n          width: 64px;\n          height: 64px;\n          margin-bottom: 20px;\n          object-fit: contain;\n          border-radius: 50%;\n          background: var(--gh-bg, #ffffff);\n          padding: 6px;\n          border: 1px solid var(--gh-border, rgba(0,0,0,0.1));\n          box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);\n          transition: transform 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);\n          /* Ensure centering if parent is flex or block */\n          display: inline-block;\n        }\n\n        .disclaimer-icon-img:hover {\n          transform: rotate(360deg) scale(1.1);\n          border-color: #3b82f6;\n          box-shadow: 0 10px 15px -3px rgba(59, 130, 246, 0.2);\n        }\n\n        .disclaimer-slogan-container {\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          gap: 8px;\n        }\n\n        .sparkle {\n          font-size: 18px;\n        }\n\n        .disclaimer-title {\n          font-size: 20px;\n          font-weight: 700;\n          margin: 0;\n          background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);\n          -webkit-background-clip: text;\n          -webkit-text-fill-color: transparent;\n        }\n\n        .disclaimer-content {\n          padding: 24px;\n        }\n\n        .disclaimer-section {\n          margin-bottom: 20px;\n        }\n\n        .disclaimer-section h3 {\n          font-size: 16px;\n          font-weight: 600;\n          margin: 0 0 8px;\n          display: flex;\n          align-items: center;\n          gap: 6px;\n        }\n\n        .disclaimer-section p {\n          font-size: 14px;\n          line-height: 1.6;\n          margin: 0;\n          color: var(--gh-text-secondary, #4b5563);\n        }\n\n        .disclaimer-warning {\n          margin-top: 8px !important;\n          color: #ef4444 !important;\n          font-weight: 500;\n          background: rgba(239, 68, 68, 0.1);\n          padding: 8px 12px;\n          border-radius: 6px;\n        }\n\n        .quote-section {\n          text-align: center;\n          background: var(--gh-bg-secondary, #f3f4f6);\n          padding: 20px;\n          border-radius: 12px;\n          display: flex;\n          flex-direction: column;\n          align-items: center;\n          gap: 16px;\n          margin-bottom: 0;\n        }\n\n        .privacy-section {\n          background: rgba(16, 185, 129, 0.1);\n          border: 1px solid rgba(16, 185, 129, 0.2);\n          border-radius: 12px;\n          padding: 16px;\n          margin-bottom: 20px;\n        }\n\n        .privacy-header {\n          display: flex;\n          align-items: center;\n          gap: 8px;\n          margin-bottom: 8px;\n          color: #10b981;\n        }\n\n        .privacy-title {\n          font-size: 15px;\n          font-weight: 600;\n          margin: 0;\n        }\n\n        .privacy-content {\n          font-size: 13px !important;\n          color: #059669 !important;\n          line-height: 1.5 !important;\n          margin: 0;\n        }\n\n        :host-context([data-gh-mode="dark"]) .privacy-content {\n          color: #34d399 !important;\n        }\n\n        .disclaimer-quote-text {\n           font-size: 15px;\n           font-weight: 600;\n           line-height: 1.5;\n           color: var(--gh-text, #1f2937) !important;\n           margin: 0 !important;\n           font-style: italic;\n        }\n\n        .action-row {\n          display: flex;\n          align-items: center;\n          gap: 12px;\n          flex-wrap: wrap;\n          justify-content: center;\n        }\n\n        .star-btn {\n          display: flex;\n          align-items: center;\n          gap: 8px;\n          background: #24292e; /* GitHub Dark */\n          color: white;\n          padding: 8px 20px;\n          border-radius: 20px;\n          text-decoration: none;\n          font-weight: 600;\n          font-size: 14px;\n          transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n          box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n          border: 1px solid rgba(255,255,255,0.1);\n        }\n\n        .star-btn:hover {\n          transform: translateY(-2px);\n          box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.2);\n          background: #2f363d;\n          border-color: rgba(255,255,255,0.2);\n          color: white;\n        }\n\n        .review-btn {\n          background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);\n        }\n\n        .review-btn:hover {\n          background: linear-gradient(135deg, #4338ca 0%, #6d28d9 100%);\n        }\n\n        .star-btn:active {\n          transform: scale(0.96);\n        }\n\n        :host-context([data-gh-mode="dark"]) .star-btn {\n          background: #3b82f6;\n          border: none;\n        }\n\n        :host-context([data-gh-mode="dark"]) .star-btn:hover {\n          background: #2563eb;\n        }\n\n        :host-context([data-gh-mode="dark"]) .review-btn {\n          background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);\n        }\n\n        :host-context([data-gh-mode="dark"]) .review-btn:hover {\n           background: linear-gradient(135deg, #4338ca 0%, #6d28d9 100%);\n        }\n\n        .secondary-links {\n          display: flex;\n          align-items: center;\n          gap: 8px;\n          font-size: 13px;\n          color: var(--gh-text-secondary, #6b7280);\n        }\n\n        .sec-link {\n          color: var(--gh-text-secondary, #6b7280);\n          text-decoration: none;\n          transition: color 0.2s;\n        }\n\n        .sec-link:hover {\n          color: #3b82f6;\n          text-decoration: underline;\n        }\n\n        .divider {\n          opacity: 0.5;\n        }\n\n        .disclaimer-footer {\n          padding: 0 24px 24px;\n        }\n\n        .disclaimer-agree-btn {\n          width: 100%;\n          padding: 12px;\n          background: linear-gradient(135deg, #3b82f6 0%, #8b5cf6 100%);\n          color: white;\n          border: none;\n          border-radius: 8px;\n          font-size: 16px;\n          font-weight: 600;\n          cursor: pointer;\n          transition: transform 0.1s, opacity 0.2s;\n        }\n\n        .disclaimer-agree-btn:hover {\n          opacity: 0.9;\n        }\n\n        .disclaimer-agree-btn:active {\n          transform: scale(0.98);\n        }\n\n        @keyframes modal-pop {\n          from {\n            opacity: 0;\n            transform: scale(0.95) translateY(10px);\n          }\n          to {\n            opacity: 1;\n            transform: scale(1) translateY(0);\n          }\n        }\n      '})]})};const jd=({isVisible:e,text:t,onStop:n})=>{if(!e)return null;const r=P.jsx("div",{className:"gh-loading-mask",style:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",background:"rgba(0, 0, 0, 0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:2147483646,pointerEvents:"auto"},children:P.jsxs("div",{className:"gh-loading-content",style:{background:"var(--gh-bg, #fff)",padding:"24px 32px",borderRadius:"12px",display:"flex",flexDirection:"column",alignItems:"center",gap:"12px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.15)",minWidth:"200px"},children:[
         P.jsx("div",{className:"gh-loading-spinner",style:{fontSize:"32px"},children:"⏳"}),
         P.jsx("div",{className:"gh-loading-text",style:{color:"var(--gh-text, #333)",fontSize:"14px",fontWeight:500},children:t||En("loadingHistory")}),
         P.jsx("div",{className:"gh-loading-hint",style:{color:"var(--gh-text-secondary, #9ca3af)",fontSize:"12px",textAlign:"center"},children:En("loadingHint")}),n&&P.jsx("button",{className:"gh-loading-stop-btn",style:{marginTop:"8px",padding:"8px 20px",background:"var(--gh-primary, #4285f4)",color:"white",border:"none",borderRadius:"6px",fontSize:"13px",cursor:"pointer"},onClick:n,children:En("stopLoading")})]})});return document?.body?hd.createPortal(r,document.body):r};let Rd=false;const Fd=({anchorEl:e,onClose:t,children:n})=>{const r=u.useRef(null),[o,a]=u.useState(null);if(u.useEffect(()=>{if((()=>{if(Rd)return;const e=document.createElement("style");e.id="gh-menu-styles",e.textContent="\n  .conversations-folder-menu {\n    background: var(--gh-bg, white);\n    border: 1px solid var(--gh-border, #e5e7eb);\n    border-radius: 6px;\n    box-shadow: var(--gh-shadow, 0 4px 12px rgba(0,0,0,0.15));\n    z-index: 10000000;\n    padding: 3px;\n    min-width: 80px;\n  }\n  .conversations-folder-menu button {\n    display: block;\n    width: 100%;\n    padding: 6px 10px;\n    border: none;\n    background: none;\n    text-align: left;\n    font-size: 12px;\n    color: var(--gh-text, #374151);\n    cursor: pointer;\n    border-radius: 4px;\n    white-space: nowrap;\n  }\n  .conversations-folder-menu button:hover {\n    background: var(--gh-hover, #f3f4f6);\n  }\n",document.head.appendChild(e),Rd=true;})(),!e)return;const n=n=>{const o=n.composedPath(),a=r.current&&o.includes(r.current),i=o.includes(e);a||i||t();},o=setTimeout(()=>{document.addEventListener("click",n,true);},0);return ()=>{clearTimeout(o),document.removeEventListener("click",n,true);}},[e,t]),u.useEffect(()=>{if(!e||!r.current)return;const t=e.getBoundingClientRect(),n=r.current.getBoundingClientRect(),o=window.innerWidth,i=window.innerHeight,s=n.width||150,l=n.height||200;let c=t.left,d=t.bottom+4;c+s>o-10&&(c=t.right-s),c<10&&(c=10),d+l>i-10&&(d=t.top-l-4),d<10&&(d=10),a({left:c,top:d});},[e]),!e)return null;const i=P.jsx("div",{ref:r,className:"conversations-folder-menu",style:{position:"fixed",top:o?`${o.top}px`:"-9999px",left:o?`${o.left}px`:"-9999px",zIndex:2147483647,pointerEvents:"auto"},children:n});return hd.createPortal(i,document.body)},zd=({onClick:e,danger:t,children:n})=>P.jsx("button",{onClick:e,style:t?{color:"var(--gh-text-danger, #ef4444)"}:void 0,children:n}),Od=({folder:e,anchorEl:t,onClose:n,onRename:r,onDelete:o})=>P.jsxs(Fd,{anchorEl:t,onClose:n,children:[
         P.jsx(zd,{onClick:()=>{n(),r();},children:En("conversationsRename")||"重命名"}),
         P.jsx(zd,{danger:true,onClick:()=>{n(),o();},children:En("conversationsDelete")||"删除"})]}),Bd=({conversation:e,anchorEl:t,onClose:n,onRename:r,onTogglePin:o,onSetTags:a,onMoveTo:i,onDelete:s})=>P.jsxs(Fd,{anchorEl:t,onClose:n,children:[
         P.jsx(zd,{onClick:()=>{n(),r();},children:En("conversationsRename")||"重命名"}),
         P.jsx(zd,{onClick:()=>{n(),o();},children:e.pinned?En("conversationsUnpin")||"取消置顶":En("conversationsPin")||"置顶"}),
         P.jsx(zd,{onClick:()=>{n(),a();},children:En("conversationsSetTags")||"设置标签"}),
         P.jsx(zd,{onClick:()=>{n(),i();},children:En("conversationsMoveTo")||"移动到..."}),
         P.jsx(zd,{danger:true,onClick:()=>{n(),s();},children:En("conversationsDelete")||"删除"})]}),qd=({anchorEl:e,onClose:t,onExportMarkdown:n,onExportJSON:r,onExportTXT:o})=>P.jsxs(Fd,{anchorEl:e,onClose:t,children:[
         P.jsx(zd,{onClick:()=>{t(),n();},children:P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[
         P.jsx(Y,{size:14}),
         P.jsx("span",{children:En("exportToMarkdown")||"Markdown"})]})}),
         P.jsx(zd,{onClick:()=>{t(),r();},children:P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[
         P.jsx(ve,{size:14}),
         P.jsx("span",{children:En("exportToJSON")||"JSON"})]})}),
         P.jsx(zd,{onClick:()=>{t(),o();},children:P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px"},children:[
         P.jsx(Y,{size:14}),
         P.jsx("span",{children:En("exportToTXT")||"TXT"})]})})]}),Ud=".gh-panel-content::-webkit-scrollbar{display:none;width:0;height:0}.conversations-folder-item.expanded{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border-bottom:none!important}.conversations-list{width:100%!important;box-sizing:border-box!important;margin:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important;border-top:none!important}.conversations-toolbar-btn{background:transparent!important;border:1px solid transparent!important;box-shadow:none!important;color:var(--gh-text-secondary, #6b7280)!important;border-radius:6px!important;transition:all .2s ease!important;min-width:28px!important;height:28px!important;margin:0!important;padding:0!important;cursor:pointer;display:flex;align-items:center;justify-content:center}.conversations-toolbar-btn:hover{background:#7f7f7f26!important;color:var(--gh-text, #374151)!important}.conversations-toolbar-btn.active{background:var(--gh-primary, #3b82f6)!important;color:#fff!important;border-color:var(--gh-primary, #3b82f6)!important}.conversations-toolbar-btn svg{fill:currentColor!important;width:16px!important;height:16px!important}.conversations-content{display:flex;flex-direction:column;flex:1;min-height:200px;overflow-x:hidden;overflow-y:auto}.conversations-toolbar{display:flex;gap:6px;padding:10px 12px;border-bottom:1px solid var(--gh-border, #e5e7eb);flex-shrink:0;background:var(--gh-bg, #ffffff)}.conversations-toolbar-btn{padding:5px 8px;border:1px solid var(--gh-input-border, #d1d5db);border-radius:6px;background:var(--gh-bg-secondary, #f9fafb);font-size:13px;color:var(--gh-text, #374151);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;min-width:32px;height:32px;flex-shrink:0}.conversations-toolbar-btn svg{width:16px;height:16px}.conversations-toolbar-btn:hover{background:var(--gh-hover, #f3f4f6);border-color:var(--gh-text-secondary, #9ca3af)}.conversations-toolbar-btn.batch-mode.active{background:var(--gh-border-active);color:#fff;border-color:var(--gh-border-active)}.conversations-toolbar-btn:disabled{opacity:.6;cursor:wait}.conversations-folder-select-dropdown{width:100%}.conversations-folder-select{padding:5px 8px;border:1px solid var(--gh-input-border, #d1d5db);border-radius:6px;background:var(--gh-bg-secondary, #f9fafb);font-size:13px;color:var(--gh-text, #374151);cursor:pointer;min-width:80px;height:32px;width:100%;line-height:1;font-family:inherit;appearance:none;-webkit-appearance:none}.conversations-folder-select:hover{background:var(--gh-hover, #f3f4f6)}.conversations-folder-select:focus{outline:none;border-color:var(--gh-border-active)}.conversations-folder-select:disabled{opacity:.6;cursor:not-allowed}.conversations-folder-select-menu{scrollbar-width:thin}.conversations-folder-select-option{font-family:inherit}.conversations-folder-list{flex:1;overflow-y:auto;padding:8px;scrollbar-width:none;-ms-overflow-style:none}.conversations-folder-list::-webkit-scrollbar{display:none;width:0;height:0}.conversations-content{scrollbar-width:none;-ms-overflow-style:none}.conversations-content::-webkit-scrollbar{display:none;width:0;height:0}.conversations-folder-item{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;margin-bottom:4px;border-radius:8px;background:var(--gh-bg-secondary, #f9fafb);cursor:pointer;transition:all .2s;flex-wrap:wrap}.conversations-folder-item:hover{background:var(--gh-hover, #f3f4f6)}.conversations-folder-item.default{background:var(--gh-folder-bg-default)}.conversations-folder-item.expanded{border:2px solid var(--gh-border-active);box-shadow:0 2px 8px var(--gh-shadow-sm);border-radius:8px 8px 0 0}.conversations-folder-info{display:flex;align-items:center;gap:8px;flex:1;min-width:0;position:relative}.conversations-folder-icon{font-size:18px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;line-height:1;flex-shrink:0}.conversations-folder-name{font-size:14px;font-weight:500;color:var(--gh-text, #1f2937);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-user-select:none;user-select:none}.conversations-folder-count{font-size:12px;color:var(--gh-text-secondary, #6b7280);flex-shrink:0;-webkit-user-select:none;user-select:none}.conversations-folder-menu-btn{width:24px;height:24px;border:none;background:transparent;color:var(--gh-text-secondary, #6b7280);cursor:pointer;border-radius:4px;font-size:14px}.conversations-folder-menu-btn:hover{background:var(--gh-border, #e5e7eb)}.conversations-folder-controls{display:flex;align-items:center;gap:4px;flex-shrink:0}.conversations-folder-order-btns{position:absolute;right:0;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .2s;background:inherit;padding-left:8px}.conversations-folder-item:hover .conversations-folder-order-btns{opacity:1}.conversations-folder-order-btn{width:20px;height:20px;border:1px solid var(--gh-input-border, #d1d5db);border-radius:4px;background:var(--gh-bg, white);color:var(--gh-text-secondary, #6b7280);cursor:pointer;font-size:11px;display:flex;align-items:center;justify-content:center;transition:all .15s}.conversations-folder-order-btn:hover:not(:disabled){background:var(--gh-hover, #f3f4f6);border-color:var(--gh-text-tertiary, #9ca3af);color:var(--gh-text, #374151)}.conversations-folder-order-btn:disabled{opacity:.3;cursor:default}.conversations-folder-menu{background:var(--gh-bg, white);border:1px solid var(--gh-border, #e5e7eb);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000002;padding:4px;min-width:100px}.conversations-folder-menu button{display:block;width:100%;padding:8px 12px;border:none;background:none;text-align:left;font-size:13px;color:var(--gh-text, #374151);cursor:pointer;border-radius:4px}.conversations-folder-menu button:hover{background:var(--gh-hover, #f3f4f6)}.conversations-empty{text-align:center;padding:40px 20px;color:var(--gh-text-secondary, #9ca3af);font-size:14px}.conversations-search-bar{padding:8px 12px;border-bottom:1px solid var(--gh-border, #e5e7eb);background:var(--gh-bg-secondary, #f9fafb);flex-shrink:0}.conversations-search-wrapper{display:flex;align-items:center;gap:0;position:relative}.conversations-search-wrapper.has-filter .conversations-tag-search-btn{border-radius:0;border-right:none}.conversations-search-input-group{flex:1;position:relative;height:36px;min-width:0}.conversations-search-input{width:100%;height:100%;padding:0 12px;border:1px solid var(--gh-input-border, #d1d5db);border-radius:8px 0 0 8px;font-size:14px;box-sizing:border-box;transition:all .2s;background:var(--gh-input-bg, #ffffff);color:var(--gh-text, #1f2937)}.conversations-search-input:focus{outline:none;border-color:var(--gh-border-active);z-index:1;position:relative}.conversations-pin-filter-btn{cursor:pointer;width:36px;height:36px;color:var(--gh-text-tertiary, #9ca3af);font-size:14px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gh-input-border, #d1d5db);border-left:none;background:var(--gh-bg, white);box-sizing:border-box;transition:all .2s}.conversations-pin-filter-btn:hover{background:var(--gh-hover, #f3f4f6);color:var(--gh-text, #374151)}.conversations-pin-filter-btn.active{color:var(--gh-border-active);background:var(--gh-folder-bg-default);box-shadow:inset 0 0 0 1px var(--gh-border-active)}.conversations-result-bar{text-align:center;padding:6px;color:var(--gh-border-active);font-size:13px;background:var(--gh-folder-bg-default);border-radius:4px;margin-top:8px;display:none}.conversations-result-bar.visible{display:block}.conversations-tag{display:inline-flex;align-items:center;padding:2px 6px;border-radius:4px;font-size:11px;margin:0;color:#fff;background-color:var(--gh-text-secondary, #9ca3af);line-height:1.2;max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;flex-shrink:0}.conversations-tag-list{display:flex;align-items:center;gap:4px;border:none;padding:0;margin:0;flex-shrink:0;min-width:0;max-width:52%;overflow:hidden}.conversations-tag-list:empty{display:none}.conversations-tag-more{color:var(--gh-text-secondary, #6b7280);background:var(--gh-bg-secondary, #f3f4f6);border:1px solid var(--gh-border, #e5e7eb)}.conversations-hidden-tags-tooltip{display:flex;flex-direction:column;gap:6px;min-width:110px}.conversations-hidden-tag-item{display:flex;align-items:center;gap:6px;font-size:12px;line-height:1.25}.conversations-hidden-tag-dot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.conversations-tag-search-btn{cursor:pointer;width:36px;height:36px;color:var(--gh-text-tertiary, #9ca3af);font-size:14px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gh-input-border, #d1d5db);border-left:none;border-radius:0;background:var(--gh-bg, white);box-sizing:border-box;transition:all .2s}.conversations-tag-search-btn:hover{background:var(--gh-hover, #f3f4f6);color:var(--gh-text, #374151)}.conversations-tag-search-btn.active{color:var(--gh-border-active);background:var(--gh-folder-bg-default);box-shadow:inset 0 0 0 1px var(--gh-border-active)}.conversations-tag-search-btn.empty{opacity:.5}.conversations-search-clear{cursor:pointer;width:36px;height:36px;color:var(--gh-text-tertiary, #9ca3af);font-size:18px;display:flex;align-items:center;justify-content:center;border:1px solid var(--gh-input-border, #d1d5db);border-left:none;border-radius:0 8px 8px 0;background:var(--gh-bg, white);box-sizing:border-box;transition:all .2s;-webkit-user-select:none;user-select:none}.conversations-search-clear:hover{background:var(--gh-bg-danger, #fef2f2);color:var(--gh-text-danger, #ef4444)}.conversations-search-clear.disabled{opacity:.3;cursor:default;background:var(--gh-bg-secondary, #f9fafb);pointer-events:none}.conversations-tag-filter-menu{position:absolute;top:calc(100% + 4px);right:0;width:200px;background:var(--gh-bg, white);border:1px solid var(--gh-border, #e5e7eb);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;display:flex;flex-direction:column;overflow:hidden;animation:fadeIn .2s}.conversations-tag-filter-list{overflow-y:auto;flex:1;padding:4px;display:flex;flex-direction:column;gap:2px}.conversations-tag-filter-footer{padding:4px;border-top:1px solid var(--gh-border, #e5e7eb);background:var(--gh-bg-secondary, #f9fafb);flex-shrink:0}.conversations-tag-filter-item{display:flex;align-items:center;gap:8px;padding:8px;cursor:pointer;border-radius:6px;font-size:13px;color:var(--gh-text, #374151);width:100%;box-sizing:border-box;overflow:hidden}.conversations-tag-filter-item span:not(.conversations-tag-dot){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.conversations-tag-filter-item.selected{background:var(--gh-folder-bg-default);color:var(--gh-primary, #3b82f6);font-weight:500}.conversations-tag-filter-item.selected:after{content:\"✓\";margin-left:auto;font-size:14px;font-weight:700}.conversations-tag-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex-shrink:0;border:1px solid rgba(0,0,0,.05)}.conversations-tag-filter-divider{height:1px;background:var(--gh-border, #e5e7eb);margin:4px 0;flex-shrink:0}.conversations-tag-filter-action{color:var(--gh-border-active);font-weight:500;justify-content:center}.conversations-tag-manager-list{max-height:250px;overflow-y:auto;border:1px solid var(--gh-border, #e5e7eb);border-radius:4px;margin-bottom:12px;padding:4px}.conversations-tag-manager-item{display:flex;align-items:center;justify-content:space-between;padding:8px;border-bottom:1px solid var(--gh-hover, #f3f4f6)}.conversations-tag-manager-item:last-child{border-bottom:none}.conversations-tag-manager-item:hover{background:var(--gh-bg-secondary, #f9fafb)}.conversations-tag-preview{padding:2px 8px;border-radius:4px;font-size:12px;color:#fff;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle;display:inline-block}.conversations-tag-actions{display:flex;gap:4px;flex-shrink:0}.conversations-tag-btn{width:24px;height:24px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--gh-text-tertiary, #9ca3af);border-radius:4px;transition:all .2s}.conversations-tag-btn:hover{background:var(--gh-bg-danger-hover, #fee2e2);color:var(--gh-text-danger, #ef4444)}.conversations-tag-btn.edit:hover{background:var(--gh-folder-bg-default, #e0f2fe);color:var(--gh-primary, #3b82f6)}.conversations-color-picker{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin:12px 0}.conversations-color-item{width:24px;height:24px;border-radius:4px;cursor:pointer;border:2px solid transparent;transition:transform .1s}.conversations-color-item:hover{transform:scale(1.1)}.conversations-color-item.selected{border-color:var(--gh-text, #374151);transform:scale(1.1);box-shadow:0 2px 4px #0003}.conversations-list{width:calc(100% - 8px);margin:-4px 4px 4px;padding:8px;background:var(--gh-bg-secondary);border:2px solid var(--gh-border-active);border-top:none;border-radius:0 0 8px 8px;max-height:300px;overflow-y:auto;overflow-x:hidden;scrollbar-width:none;-ms-overflow-style:none}.conversations-list::-webkit-scrollbar{display:none}.conversations-list-empty{padding:12px;color:var(--gh-text-secondary, #9ca3af);font-size:13px;text-align:center}.conversations-item{display:flex;align-items:center;padding:8px 34px 8px 12px;margin-bottom:4px;border-radius:6px;background:var(--gh-bg, white);cursor:pointer;transition:background-color .2s;gap:8px;position:relative}.conversations-item:hover{background:var(--gh-hover, #f3f4f6)}.conversations-item:before{content:\"\";position:absolute;left:0;top:50%;transform:translateY(-50%) scaleY(0);width:4px;height:80%;background-color:var(--gh-primary, #428cf1);border-radius:0 4px 4px 0;transition:transform .2s}.conversations-item:hover:before{transform:translateY(-50%) scaleY(1)}.conversations-item-title{display:block;font-size:14px;color:var(--gh-text, #374151);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.35}.conversations-item-main{flex:1;min-width:0}.conversations-item-headline{display:flex;align-items:center;gap:6px;min-width:0}.conversations-item-meta{display:flex;align-items:center;gap:6px;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.conversations-item-time{display:none}.conversations-item-menu-btn{width:20px;height:20px;border:none;background:transparent;color:var(--gh-text-tertiary, #9ca3af);cursor:pointer;border-radius:4px;font-size:12px;opacity:0;pointer-events:none;transform:translate(4px);transition:opacity .18s ease,transform .18s ease,background-color .2s,color .2s;flex-shrink:0;display:flex;align-items:center;justify-content:center}.conversations-folder-checkbox,.conversations-item-checkbox{appearance:none;-webkit-appearance:none;width:16px;height:16px;border:1px solid var(--gh-input-border, #d1d5db);border-radius:4px;background-color:var(--gh-bg, #ffffff);cursor:pointer;position:relative;margin:0;padding:0;display:inline-flex;align-items:center;justify-content:center;transition:all .2s}.conversations-folder-checkbox:checked,.conversations-item-checkbox:checked{background-color:var(--gh-primary, #4285f4);border-color:var(--gh-primary, #4285f4)}.conversations-folder-checkbox:checked:after,.conversations-item-checkbox:checked:after{content:\"\";width:10px;height:10px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E\");background-size:contain;background-repeat:no-repeat;background-position:center;display:block}.conversations-folder-checkbox:hover,.conversations-item-checkbox:hover{border-color:var(--gh-primary, #4285f4)}.conversations-item:hover .conversations-item-menu-btn{opacity:1;pointer-events:auto;transform:translate(0)}.conversations-item:focus-within .conversations-item-menu-btn{opacity:1;pointer-events:auto;transform:translate(0)}.conversations-item-menu-btn:hover{background:var(--gh-border, #e5e7eb);color:var(--gh-text, #374151)}.conversations-content.is-narrow .conversations-item{padding-right:34px}.conversations-content.is-narrow .conversations-item-title{font-size:13px}.conversations-content.is-narrow .conversations-tag{max-width:72px}.conversations-content.is-narrow .conversations-tag-list{max-width:46%}@media(hover:none){.conversations-item-menu-btn{opacity:.72;pointer-events:auto;transform:none}}.conversations-item-menu{background:var(--gh-bg, white);border:1px solid var(--gh-border, #e5e7eb);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000002;padding:4px;min-width:120px}.conversations-item-menu button{display:block;width:100%;padding:8px 12px;border:none;background:none;text-align:left;font-size:13px;color:var(--gh-text, #374151);cursor:pointer;border-radius:4px}.conversations-item-menu button:hover{background:var(--gh-hover, #f3f4f6)}.conversations-item-menu button.danger{color:var(--gh-text-danger, #dc2626)}.conversations-item-menu button.danger:hover{background:var(--gh-bg-danger, #fef2f2)}.conversations-item.locate-highlight{background:var(--gh-outline-locate-bg)!important;border:2px solid var(--gh-outline-locate-border)!important;border-radius:6px;box-shadow:inset 0 0 8px var(--gh-outline-locate-shadow);animation:conversationsLocatePulse .6s ease-in-out 2}@keyframes conversationsLocatePulse{0%,to{transform:scale(1)}50%{transform:scale(1.01)}}.conversations-folder-checkbox{margin-right:8px;width:16px;height:16px;cursor:pointer;accent-color:var(--gh-checkbox-bg, #4f46e5);flex-shrink:0}.conversations-item-checkbox{width:16px;height:16px;margin-right:8px;cursor:pointer;accent-color:var(--gh-checkbox-bg, #4f46e5);flex-shrink:0}.conversations-batch-bar{position:sticky;bottom:0;left:0;right:0;background:var(--gh-bg, white);padding:8px 12px;display:flex;align-items:center;justify-content:space-between;border-radius:8px;margin-top:8px;border:1px solid var(--gh-border, #e5e7eb);box-shadow:0 -2px 10px #0000000d}.conversations-batch-info{color:var(--gh-text, #374151);font-size:13px;font-weight:500}.conversations-batch-btns{display:flex;gap:8px}.conversations-batch-btn{padding:4px 10px;border:1px solid var(--gh-input-border, #d1d5db);border-radius:6px;font-size:12px;cursor:pointer;transition:all .2s;background:var(--gh-hover, #f3f4f6);color:var(--gh-text, #374151)}.conversations-batch-btn:hover{background:var(--gh-border, #e5e7eb);border-color:var(--gh-text-tertiary, #9ca3af)}.conversations-batch-btn.danger{background:var(--gh-bg-danger-hover, #fee2e2);color:var(--gh-text-danger, #dc2626);border-color:var(--gh-bg-danger-hover, #fecaca)}.conversations-batch-btn.danger:hover{background:var(--gh-bg-danger-hover, #fecaca);border-color:var(--gh-text-danger, #f87171)}.conversations-batch-btn.cancel{background:transparent;border:none;color:var(--gh-text-secondary, #6b7280)}.conversations-batch-btn.cancel:hover{background:var(--gh-hover, #f3f4f6);color:var(--gh-text, #374151);border:none}.conversations-dialog-overlay{position:fixed;inset:0;background:#00000080;z-index:1000003;display:flex;align-items:center;justify-content:center}.conversations-dialog{background:var(--gh-bg, white);border-radius:12px;padding:20px;min-width:320px;box-shadow:0 10px 40px #0003}.conversations-dialog-title{font-size:16px;font-weight:600;color:var(--gh-text, #1f2937);margin-bottom:16px}.conversations-dialog-message{font-size:14px;color:var(--gh-badge-text, #4b5563);margin-bottom:20px;line-height:1.5;white-space:pre-line}.conversations-dialog-section{margin-bottom:16px}.conversations-dialog-section label{display:block;font-size:13px;color:var(--gh-text-secondary, #6b7280);margin-bottom:8px}.conversations-dialog-input{width:100%;padding:10px 12px;border:1px solid var(--gh-input-border, #d1d5db);border-radius:8px;font-size:14px;box-sizing:border-box;background:var(--gh-input-bg, #ffffff);color:var(--gh-text, #1f2937)}.conversations-dialog-input:focus{outline:none;border-color:var(--gh-primary, #4285f4);box-shadow:0 0 0 2px #4285f41a}.conversations-dialog-buttons{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.conversations-folder-select-list{max-height:250px;overflow-y:auto;margin:12px 0}.conversations-folder-select-item{padding:12px 16px;border-radius:8px;cursor:pointer;transition:all .2s;font-size:14px}.conversations-folder-select-item:hover{background:var(--gh-hover, #f3f4f6)}.conversations-emoji-picker{display:flex;flex-wrap:wrap;gap:4px}.conversations-emoji-btn{width:36px;height:36px;border:1px solid var(--gh-border, #e5e7eb);border-radius:8px;background:var(--gh-bg-secondary, #f9fafb);font-size:18px;cursor:pointer;transition:all .2s}.conversations-emoji-btn:hover{background:var(--gh-hover, #f3f4f6);border-color:var(--gh-input-border, #d1d5db)}.conversations-emoji-btn.selected{background:var(--gh-selected-gradient, #e0e7ff);border-color:var(--gh-primary, #4285f4);box-shadow:0 0 0 2px #4285f433}.conversations-highlight{background:#ffd50066;padding:0 2px;border-radius:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.conversations-tag-filter-list,.conversations-tag-manager-list{max-height:200px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.conversations-tag-filter-list::-webkit-scrollbar,.conversations-tag-manager-list::-webkit-scrollbar{display:none;width:0;height:0}.conversations-tag-filter-menu{position:absolute;top:100%;right:0;background:var(--gh-bg, white);border:1px solid var(--gh-border, #e5e7eb);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:1000;min-width:150px;max-height:250px;overflow:hidden}.conversations-tag-filter-item{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;font-size:13px;color:var(--gh-text, #374151)}.conversations-tag-filter-item:hover{background:var(--gh-hover, #f3f4f6)}.conversations-tag-filter-item.selected{background:#3b82f61a}.conversations-tag-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.conversations-tag-filter-footer{border-top:1px solid var(--gh-border, #e5e7eb)}.conversations-tag-filter-action{color:var(--gh-primary, #3b82f6)!important}";e(Ud);const Hd=e=>{const t=(e.name||"").trim(),n=(e.icon||"").trim();return n&&t.startsWith(n)?t.slice(n.length).trim():t},Wd=({manager:e,onInteractionStateChange:t})=>{const{settings:n}=wr(),[r,o]=u.useState([]),[a,i]=u.useState({}),[s,l]=u.useState([]),[c,d]=u.useState("inbox"),[g,p]=u.useState(null),[m,f]=u.useState(false),[b,y]=u.useState(new Set),[v,x]=u.useState(false),[S,w]=u.useState(false),[k,C]=u.useState(""),[T,D]=u.useState(false),[E,A]=u.useState(new Set),[_,L]=u.useState(null),[N,M]=u.useState(false),[j,F]=u.useState(false),[z,O]=u.useState(false),[B,q]=u.useState(null),[U,H]=u.useState(null),W=u.useRef(null),V=u.useRef(null),G=u.useRef(null),Z=u.useRef(null),J=u.useRef(null);u.useEffect(()=>{const e=W.current;if(!e||"undefined"==typeof ResizeObserver)return;const t=()=>{O(e.clientWidth<=340);};t();const n=new ResizeObserver(t);return n.observe(e),()=>n.disconnect()},[]);const $=u.useCallback(async()=>{o([...e.getFolders()]),i({...e.getAllConversations()}),l([...e.getTags()]),d(e.getLastUsedFolderId());},[e]);u.useEffect(()=>{$();},[$]),u.useEffect(()=>{const t=e.onDataChange(()=>{$();});return ()=>t()},[e,$]);const X=u.useCallback(e=>{if(!e&&!T&&0===E.size)return void L(null);const t=new Set,n=new Set,o=new Map,i=e.toLowerCase();r.forEach(n=>{e&&Hd(n).toLowerCase().includes(i)&&t.add(n.id);}),Object.values(a).forEach(t=>{let r=true;if(e&&!t.title.toLowerCase().includes(i)&&(r=false),T&&!t.pinned&&(r=false),E.size>0){const e=t.tagIds?.some(e=>E.has(e));e||(r=false);}r&&(n.add(t.id),o.set(t.id,t.folderId));}),L({folderMatches:t,conversationMatches:n,conversationFolderMap:o,totalCount:n.size});},[r,a,T,E]);u.useEffect(()=>{X(k);},[T,E,X,k]),u.useEffect(()=>{if(!N)return;const e=e=>{const t=e.composedPath(),n=Z.current&&t.includes(Z.current),r=J.current&&t.includes(J.current);n||r||M(false);},t=setTimeout(()=>{document.addEventListener("click",e,true);},0);return ()=>{clearTimeout(t),document.removeEventListener("click",e,true);}},[N]),u.useEffect(()=>{const e=!!(U||B||N||j||m||S);t?.(e);},[U,B,N,j,m,S,t]);const Y=u.useCallback(async()=>{x(true);try{await(e.siteAdapter?.loadAllConversations?.()),await e.syncConversations(c,!1),$();}finally{x(false);}},[e,c,$]),ee=u.useCallback(()=>{if(e.siteAdapter?.isSharePage?.()||e.siteAdapter?.isNewConversation?.())return;const t=e.siteAdapter?.getSessionId?.();if(!t||"default"===t||"app"===t)return;const n=e.getConversation(t);n?(p(n.folderId),setTimeout(()=>{const e=W.current;if(!e)return;const n=e.querySelector(`.conversations-item[data-id="${t}"]`);n&&(n.scrollIntoView({behavior:"smooth",block:"center"}),n.classList.add("locate-highlight"),setTimeout(()=>n.classList.remove("locate-highlight"),2e3));},100)):Y();},[e,Y]);u.useEffect(()=>{const e=()=>{window.__ophelPendingLocateConversation=false,ee();};return window.__ophelPendingLocateConversation&&setTimeout(()=>{e();},100),window.addEventListener("ophel:locateConversation",e),()=>{window.removeEventListener("ophel:locateConversation",e);}},[ee]),u.useEffect(()=>{const e=()=>{Y();};return window.addEventListener("ophel:refreshConversations",e),()=>{window.removeEventListener("ophel:refreshConversations",e);}},[Y]);const te=()=>{y(new Set),f(false);},ne=k||T||E.size>0,re=t=>{let n=Object.values(a).filter(e=>e.folderId===t);_&&(n=n.filter(e=>_.conversationMatches.has(e.id)));const r=e.getSidebarConversationOrder();return n.sort((e,t)=>{if(e.pinned&&!t.pinned)return  -1;if(!e.pinned&&t.pinned)return 1;const n=r.indexOf(e.id),o=r.indexOf(t.id);return  -1===n&&-1===o?(t.updatedAt||0)-(e.updatedAt||0):-1===n?1:-1===o?-1:n-o}),n},oe=(e,t)=>{if(!t)return e;return e.split(new RegExp(`(${t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi")).map((e,n)=>e.toLowerCase()===t.toLowerCase()?P.jsx("span",{className:"conversations-highlight",children:e},n):e)},ae=e=>{const t=re(e);return t.length>0&&t.every(e=>b.has(e.id))},ie=e=>{if(!_)return  true;const t=_.folderMatches.has(e.id),n=Array.from(_.conversationFolderMap.values()).includes(e.id);return t||n},se=u.useMemo(()=>r.map(e=>{const t=Hd(e),n=`${e.icon?`${e.icon} `:""}${t}`.trim();return {value:e.id,title:n,label:P.jsxs(P.Fragment,{children:[e.icon&&P.jsx("span",{style:{flexShrink:0},children:e.icon}),
         P.jsx("span",{style:{minWidth:0,overflow:"hidden",textOverflow:"ellipsis"},children:t})]})}}),[r]);
         return P.jsxs(P.Fragment,{children:[
         P.jsx(jd,{isVisible:S,text:`${En("delete")||"删除"}...`}),
         P.jsxs("div",{ref:W,className:"conversations-content "+(z?"is-narrow":""),style:{display:"flex",flexDirection:"column",height:"100%",overflow:"hidden"},children:[
         P.jsxs("div",{className:"conversations-toolbar",children:[
         P.jsx(xd,{content:En("conversationsSelectFolder")||"选择文件夹",triggerStyle:{flex:1,minWidth:0},children:P.jsx(Sd,{className:"conversations-folder-select-dropdown",buttonClassName:"conversations-folder-select",menuClassName:"conversations-folder-select-menu",optionClassName:"conversations-folder-select-option",options:se,value:c,ariaLabel:En("conversationsSelectFolder")||"选择文件夹",onOpenChange:F,onChange:t=>{d(t),e.setLastUsedFolder(t);}})}),
         P.jsx(xd,{content:En("conversationsSync")||"同步",children:P.jsx("button",{className:"conversations-toolbar-btn sync",disabled:v,onClick:Y,children:v?P.jsx(he,{size:18}):P.jsx(ge,{size:18})})}),
         P.jsx(xd,{content:En("conversationsLocate")||"定位当前对话",children:P.jsx("button",{className:"conversations-toolbar-btn locate",onClick:ee,children:P.jsx(Q,{size:18})})}),
         P.jsx(xd,{content:En("conversationsBatchMode")||"批量操作",children:P.jsx("button",{className:"conversations-toolbar-btn batch-mode "+(m?"active":""),onClick:()=>{m&&y(new Set),f(!m);},children:P.jsx(de,{size:18})})}),
         P.jsx(xd,{content:En("conversationsAddFolder")||"新建文件夹",children:P.jsx("button",{className:"conversations-toolbar-btn add-folder",onClick:()=>{t?.(true),q({type:"folder"});},children:P.jsx(ue,{size:18})})})]}),
         P.jsxs("div",{className:"conversations-search-bar",children:[
         P.jsxs("div",{className:"conversations-search-wrapper",style:{position:"relative"},children:[
         P.jsx("div",{className:"conversations-search-input-group",children:P.jsx("input",{ref:V,type:"text",className:"conversations-search-input",placeholder:En("conversationsSearchPlaceholder")||"搜索会话...",value:k,onChange:e=>{return t=e.target.value,C(t),G.current&&clearTimeout(G.current),void(G.current=setTimeout(()=>X(t),150));var t;}})}),
         P.jsx(xd,{content:En("conversationsFilterPinned")||"筛选置顶",children:P.jsx("div",{className:"conversations-pin-filter-btn "+(T?"active":""),style:{userSelect:"none"},onClick:()=>D(!T),children:P.jsx(Le,{size:14})})}),
         P.jsx(xd,{content:En("conversationsFilterByTags")||"按标签筛选",children:P.jsx("div",{ref:J,className:"conversations-tag-search-btn "+(E.size>0?"active":""),style:{userSelect:"none"},onClick:()=>{const e=!N;e&&t?.(true),M(e);},children:P.jsx(Ce,{size:14})})}),N&&P.jsxs("div",{ref:Z,className:"conversations-tag-filter-menu",children:[
         P.jsx("div",{className:"conversations-tag-filter-list",style:{scrollbarWidth:"none",msOverflowStyle:"none"},children:0===s.length?P.jsx("div",{className:"conversations-tag-filter-item",style:{color:"var(--gh-text-tertiary, #9ca3af)",cursor:"default"},children:En("conversationsNoTags")||"暂无标签"}):s.map(e=>P.jsxs("div",{className:"conversations-tag-filter-item "+(E.has(e.id)?"selected":""),onClick:()=>{const t=new Set(E);t.has(e.id)?t.delete(e.id):t.add(e.id),A(t);},children:[
         P.jsx("span",{className:"conversations-tag-dot",style:{backgroundColor:e.color}}),
         P.jsx("span",{children:e.name})]},e.id))}),
         P.jsx("div",{className:"conversations-tag-filter-footer",children:P.jsx("div",{className:"conversations-tag-filter-item conversations-tag-filter-action",onClick:()=>{M(false),t?.(true),q({type:"tagManager",conv:void 0});},children:En("conversationsManageTags")||"管理标签"})})]}),
         P.jsx(xd,{content:En("conversationsClearAll")||"清除所有筛选",children:P.jsx("div",{className:"conversations-search-clear "+(ne?"":"disabled"),onClick:ne?()=>{C(""),D(false),A(new Set),L(null);}:void 0,children:P.jsx(I,{size:14})})})]}),k&&_&&P.jsxs("div",{className:"conversations-result-bar visible",children:[_.totalCount," ",En("conversationsSearchResult")||"个结果"]})]}),
         P.jsx("div",{className:"conversations-folder-list",children:0===r.filter(ie).length?P.jsx("div",{className:"conversations-empty",children:_?En("conversationsNoSearchResult")||"未找到匹配结果":En("conversationsEmpty")||"暂无会话"}):r.filter(ie).map((o,i)=>{const l=(c=o.id,_?Array.from(_.conversationFolderMap.values()).includes(c):g===c);var c;const d=(e=>_?Object.values(a).filter(t=>t.folderId===e&&_.conversationMatches.has(t.id)).length:Object.values(a).filter(t=>t.folderId===e).length)(o.id),u=Hd(o),f=n?.features?.conversations?.folderRainbow??false;let v="transparent";return o.isDefault?v="var(--gh-folder-bg-default)":f?v=`var(--gh-folder-bg-${i%8})`:l&&(v="var(--gh-folder-bg-expanded, rgba(59, 130, 246, 0.08))"),P.jsxs(h.Fragment,{children:[
         P.jsxs("div",{className:`conversations-folder-item ${l?"expanded":""} ${o.isDefault?"default":""}`,"data-folder-id":o.id,style:{background:v},onClick:()=>(e=>{p(g===e?null:e);})(o.id),children:[
         P.jsxs("div",{className:"conversations-folder-info",children:[m&&P.jsx("input",{type:"checkbox",className:"conversations-folder-checkbox",checked:ae(o.id),ref:e=>{e&&(e.indeterminate=(e=>{const t=re(e),n=t.filter(e=>b.has(e.id));return n.length>0&&n.length<t.length})(o.id));},onChange:e=>((e,t)=>{const n=re(e),r=new Set(b);t?n.forEach(e=>r.add(e.id)):n.forEach(e=>r.delete(e.id)),y(r);})(o.id,e.target.checked),onClick:e=>e.stopPropagation()}),
         P.jsx("span",{className:"conversations-folder-icon",style:{userSelect:"none"},children:o.icon}),
         P.jsx(xd,{content:u,children:P.jsx("span",{className:"conversations-folder-name",children:k&&_?.folderMatches.has(o.id)?oe(u,k):u})}),!o.isDefault&&P.jsxs("div",{className:"conversations-folder-order-btns",style:{userSelect:"none"},children:[
         P.jsx("button",{className:"conversations-folder-order-btn",title:En("moveUp")||"上移",disabled:i<=1,onClick:()=>{e.moveFolder(o.id,"up"),$();},children:P.jsx(Me,{size:12})}),
         P.jsx("button",{className:"conversations-folder-order-btn",title:En("moveDown")||"下移",disabled:i>=r.length-1,onClick:()=>{e.moveFolder(o.id,"down"),$();},children:P.jsx(Ie,{size:12})})]})]}),
         P.jsxs("div",{className:"conversations-folder-controls",children:[
         P.jsxs("span",{className:"conversations-folder-count",children:["(",d,")"]}),
         P.jsx("button",{className:"conversations-folder-menu-btn",style:{userSelect:"none",visibility:o.isDefault?"hidden":"visible",pointerEvents:o.isDefault?"none":"auto"},onClick:e=>{e.stopPropagation(),t?.(true),H({type:"folder",folder:o,anchorEl:e.currentTarget});},children:P.jsx(xe,{size:16})})]})]}),l&&P.jsx("div",{className:"conversations-list","data-folder-id":o.id,children:0===re(o.id).length?P.jsx("div",{className:"conversations-list-empty",children:En("conversationsEmpty")||"暂无会话"}):re(o.id).map(n=>P.jsxs("div",{className:"conversations-item","data-id":n.id,onClick:()=>(t=>{if(m){const e=new Set(b);return e.has(t.id)?e.delete(t.id):e.add(t.id),void y(e)}e.siteAdapter?.navigateToConversation(t.id,t.url);})(n),children:[m&&P.jsx("input",{type:"checkbox",className:"conversations-item-checkbox",checked:b.has(n.id),onChange:()=>{},onClick:e=>{e.stopPropagation();const t=new Set(b);t.has(n.id)?t.delete(n.id):t.add(n.id),y(t);}}),(()=>{const e=n.tagIds||[],t=z?1:2,r=e.map(e=>s.find(t=>t.id===e)).filter(e=>!!e),o=r.slice(0,t),a=r.slice(t).length;
         return P.jsx("div",{className:"conversations-item-main",children:P.jsxs("div",{className:"conversations-item-headline",children:[
         P.jsx(xd,{content:n.title,triggerStyle:{flex:1,minWidth:0,overflow:"hidden",display:"block"},children:P.jsxs("span",{className:"conversations-item-title",style:{userSelect:"none"},children:[n.pinned&&P.jsx(Le,{size:12,filled:true,style:{display:"inline-block",marginRight:"4px",verticalAlign:"middle"}}),k&&_?.conversationMatches.has(n.id)?oe(n.title||"无标题",k):n.title||"无标题"]})}),e.length>0&&P.jsxs("div",{className:"conversations-tag-list",children:[o.map(e=>P.jsx("span",{className:"conversations-tag",style:{backgroundColor:e.color},children:e.name},e.id)),a>0&&P.jsx(xd,{content:P.jsx("div",{className:"conversations-hidden-tags-tooltip",children:r.map(e=>P.jsxs("div",{className:"conversations-hidden-tag-item",children:[
         P.jsx("span",{className:"conversations-hidden-tag-dot",style:{backgroundColor:e.color}}),
         P.jsx("span",{children:e.name})]},e.id))}),delay:120,triggerStyle:{display:"inline-flex"},children:P.jsxs("span",{className:"conversations-tag conversations-tag-more",children:["+",a]})})]})]})})})(),
         P.jsx("div",{className:"conversations-item-meta",children:P.jsx("button",{className:"conversations-item-menu-btn",title:En("more")||"更多操作",onClick:e=>{e.stopPropagation(),t?.(true),H({type:"conversation",conv:n,anchorEl:e.currentTarget});},children:P.jsx(xe,{size:16})})})]},n.id))})]},o.id)})}),m&&b.size>0&&P.jsxs("div",{className:"conversations-batch-bar",children:[
         P.jsx("span",{className:"conversations-batch-info",children:(En("batchSelected")||"已选 {n} 个").replace("{n}",String(b.size))}),
         P.jsxs("div",{className:"conversations-batch-btns",children:[
         P.jsx(xd,{content:En("exportToClipboard")||"复制 Markdown",children:P.jsx("button",{className:"conversations-batch-btn",style:{padding:"4px 6px",minWidth:"auto",marginLeft:"4px"},onClick:async()=>{const t=Array.from(b)[0];await e.exportConversation(t,"clipboard");},children:P.jsx(ve,{size:16})})}),
         P.jsx(xd,{content:En("batchExport")||"导出",children:P.jsx("button",{className:"conversations-batch-btn",style:{padding:"4px 6px",minWidth:"auto",marginLeft:"4px"},onClick:e=>{t?.(true),H({type:"export",anchorEl:e.currentTarget});},children:P.jsx(K,{size:16})})}),
         P.jsx(xd,{content:En("batchMove")||"移动",children:P.jsx("button",{className:"conversations-batch-btn",style:{padding:"4px 6px",minWidth:"auto",marginLeft:"4px"},onClick:()=>{t?.(true),q({type:"folderSelect",convIds:Array.from(b)});},children:P.jsx(R,{size:16})})}),
         P.jsx(xd,{content:En("batchDelete")||"删除",children:P.jsx("button",{className:"conversations-batch-btn danger",style:{padding:"4px 6px",minWidth:"auto",marginLeft:"4px"},onClick:()=>{t?.(true),q({type:"confirm",title:En("batchDelete")||"批量删除",message:`确定删除选中的 ${b.size} 个会话吗?`,danger:true,onConfirm:async()=>{if(!S){q(null),w(true),await new Promise(e=>setTimeout(e,0));try{const t=await e.deleteConversations(Array.from(b));if(0===t.localDeletedCount)return void Yr(En("deleteError")||"删除失败");t.remoteAttemptedCount>0&&t.remoteFailedCount>0&&Yr(`已删除 ${t.localDeletedCount} 个,本地成功,云端失败 ${t.remoteFailedCount} 个`),te(),await $();}finally{w(false);}}}});},children:P.jsx(_e,{size:16})})}),
         P.jsx(xd,{content:En("batchExit")||"退出",children:P.jsx("button",{className:"conversations-batch-btn cancel",style:{padding:"4px 6px",minWidth:"auto",marginLeft:"4px"},onClick:te,children:P.jsx(I,{size:16})})})]})]})]}),"confirm"===B?.type&&P.jsx(Cd,{title:B.title,message:B.message,danger:B.danger,onConfirm:B.onConfirm,onCancel:()=>q(null)}),"folder"===B?.type&&P.jsx(Td,{folder:B.folder,onConfirm:async(t,n)=>{let r=null;if(B.folder)await e.updateFolder(B.folder.id,{name:t,icon:n});else {const o=await e.createFolder(t,n);o&&(r=o.id);}$(),B.returnToSelect?q({type:"folderSelect",conv:B.returnToSelect.conv,convIds:B.returnToSelect.convIds,activeFolderId:r||void 0}):q(null);},onCancel:()=>q(null)}),"rename"===B?.type&&P.jsx(Dd,{title:En("conversationsRename")||"重命名",currentValue:B.conv.title,onConfirm:async t=>{await e.renameConversation(B.conv.id,t),$(),q(null);},onCancel:()=>q(null)}),"folderSelect"===B?.type&&P.jsx(Ed,{folders:r,excludeFolderId:B.conv?.folderId,activeFolderId:B.activeFolderId,onSelect:async t=>{if(B.conv)await e.moveConversation(B.conv.id,t);else if(B.convIds){for(const n of B.convIds)await e.moveConversation(n,t);te();}$(),q(null);},onCancel:()=>q(null),onCreateFolder:()=>q({type:"folder",returnToSelect:{conv:B.conv,convIds:B.convIds}})}),"tagManager"===B?.type&&P.jsx(Ad,{tags:s,conv:B.conv,onCancel:()=>q(null),onCreateTag:async(t,n)=>e.createTag(t,n),onUpdateTag:async(t,n,r)=>e.updateTag(t,n,r),onDeleteTag:async t=>e.deleteTag(t),onSetConversationTags:async(t,n)=>e.setConversationTags(t,n),onRefresh:()=>$()}),"folder"===U?.type&&P.jsx(Od,{folder:U.folder,anchorEl:U.anchorEl,onClose:()=>H(null),onRename:()=>{H(null),q({type:"folder",folder:U.folder});},onDelete:()=>{H(null),q({type:"confirm",title:En("conversationsDelete")||"删除",message:`确定删除文件夹 "${Hd(U.folder)}" 吗?其中的会话将移至收件箱。`,danger:true,onConfirm:async()=>{await e.deleteFolder(U.folder.id),$(),q(null);}});}}),"conversation"===U?.type&&P.jsx(Bd,{conversation:U.conv,anchorEl:U.anchorEl,onClose:()=>H(null),onRename:()=>{H(null),q({type:"rename",conv:U.conv});},onTogglePin:async()=>{H(null),await e.togglePin(U.conv.id),$();},onSetTags:()=>{H(null),q({type:"tagManager",conv:U.conv});},onMoveTo:()=>{H(null),q({type:"folderSelect",conv:U.conv});},onDelete:()=>{H(null),q({type:"confirm",title:En("conversationsDelete")||"删除",message:`确定删除会话 "${U.conv.title}" 吗?`,danger:true,onConfirm:async()=>{if(!S){q(null),w(true),await new Promise(e=>setTimeout(e,0));try{const t=await e.deleteConversation(U.conv.id);if(!t.localDeleted)return void Yr(En("deleteError")||"删除失败");t.remoteAttempted&&!t.remoteSuccess&&Yr("已从面板删除,但云端删除失败"),await $();}finally{w(false);}}}});}}),"export"===U?.type&&P.jsx(qd,{anchorEl:U.anchorEl,onClose:()=>H(null),onExportMarkdown:async()=>{H(null);const t=b.size>0?Array.from(b)[0]:e.siteAdapter.getSessionId();await e.exportConversation(t,"markdown");},onExportJSON:async()=>{H(null);const t=b.size>0?Array.from(b)[0]:e.siteAdapter.getSessionId();await e.exportConversation(t,"json");},onExportTXT:async()=>{H(null);const t=b.size>0?Array.from(b)[0]:e.siteAdapter.getSessionId();await e.exportConversation(t,"txt");}})]})};function Kd(e,t){if(e<1e3)return e.toString();if("zh-CN"===t||"zh-TW"===t){if(e>=1e4)return (e/1e4).toFixed(1).replace(/\.0$/,"")+"w";if(e>=1e3)return (e/1e3).toFixed(1).replace(/\.0$/,"")+"k"}return e>=1e3?e>=1e6?(e/1e6).toFixed(1).replace(/\.0$/,"")+"m":(e/1e3).toFixed(1).replace(/\.0$/,"")+"k":e.toString()}const Vd=(e,t,n,r,o,a)=>{const i={},s={},l=new Map,c=e=>{const t=l.get(e.index);if(void 0!==t)return t;let n=!!e.isBookmarked;if(!n&&e.children&&e.children.length>0)for(const r of e.children)if(c(r)){n=true;break}return l.set(e.index,n),n},d=(e,l,u,h,g)=>{i[e.index]=l;const p=c(e);let m;if(a)if(p||g){const t=!r||e.isMatch||e.hasMatchedDescendant;m=!u&&t;}else m=false;else {const a=e.relativeLevel===n,i=e.relativeLevel<=t||h;if(a)m=!r||(e.isMatch||e.hasMatchedDescendant);else {const t=!r||e.isMatch||e.hasMatchedDescendant||h;m=r&&!o?t&&!u:r&&o?t&&i&&!u:i&&!u;}u&&(m=false);}e.forceVisible&&(m=true),s[e.index]=m;const f=e.collapsed||u,b=e.forceExpanded||h,y=g||e.isBookmarked&&!(e=>!(!e.children||0===e.children.length)&&e.children.some(c))(e);e.children&&e.children.length>0&&e.children.forEach(t=>d(t,e.index,f,b,y));};return e.forEach(e=>d(e,null,false,false,false)),{parentMap:i,visibleMap:s}},Gd=({node:e,onToggle:t,onClick:n,onCopy:r,onToggleBookmark:o,activeIndex:a,visibleHighlightIndex:i,setItemRef:s,visibleMap:l,searchQuery:c,extractUserQueryText:d})=>{const h=e.index===a,g=e.index===i,p=e.children&&e.children.length>0,m=p&&!e.collapsed,f=l[e.index]??true,b=["outline-item",`outline-level-${e.relativeLevel}`,e.isUserQuery?"user-query-node":"",e.isGhost?"ghost-node":"",h?"sync-highlight":"",g?"sync-highlight-visible":"",f?"":"outline-hidden"].filter(Boolean).join(" "),[y,v]=u.useState(false),[x,S]=u.useState(false);
         return P.jsxs(P.Fragment,{children:[
         P.jsx(xd,{content:e.wordCount&&e.wordCount>0?P.jsxs("div",{children:[e.text,
         P.jsxs("div",{style:{fontSize:"12px",opacity:.8,marginTop:"2px"},children:["(",Kd(e.wordCount,An())," ",En("words")||"words",")"]})]}):e.text,disabled:x,triggerStyle:{width:"100%",display:"block"},triggerClassName:f?"":"outline-hidden",delay:500,children:P.jsxs("div",{className:b,"data-index":e.index,"data-level":e.relativeLevel,ref:t=>s(e.index,t),onClick:()=>n(e),children:[
         P.jsx("span",{className:"outline-item-toggle "+(p?m?"expanded":"":"invisible"),onClick:n=>{p&&(n.stopPropagation(),t(e));},children:P.jsx(we,{size:16,style:{transform:"rotate(-90deg)"}})}),e.isUserQuery&&P.jsxs("span",{className:"user-query-badge",children:[
         P.jsx("span",{className:"user-query-badge-icon",children:"💬"}),
         P.jsx("span",{className:"user-query-badge-number",children:e.queryIndex})]}),
         P.jsx("span",{className:"outline-item-text "+(e.isGhost?"ghost-text":""),children:(()=>{if(c&&e.isMatch)try{const t=c.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),n=new RegExp(`(${t})`,"gi"),r=e.text.split(n);
         return P.jsx(P.Fragment,{children:r.map((e,t)=>e.toLowerCase()===c.toLowerCase()?P.jsx("mark",{style:{backgroundColor:"var(--gh-search-highlight-bg)",color:"inherit",padding:0,borderRadius:"2px"},children:e},t):e)})}catch{return e.text}return e.text})()}),
         P.jsx("span",{className:"outline-item-bookmark-wrapper "+(e.isBookmarked?"active":""),children:P.jsx(xd,{content:e.isBookmarked?En("removeBookmark")||"Remove Bookmark":En("addBookmark")||"Add Bookmark",children:P.jsx("span",{className:"outline-item-bookmark-btn "+(e.isBookmarked?"active":""),onClick:t=>o(t,e),onMouseEnter:()=>S(true),onMouseLeave:()=>S(false),children:P.jsx(se,{size:14,filled:e.isBookmarked,color:e.isBookmarked?"#f59e0b":"currentColor"})})})}),
         P.jsx(xd,{content:En("copy")||"复制",children:P.jsx("span",{className:"outline-item-copy-btn",onClick:async t=>{t.stopPropagation(),t.preventDefault();let n=e.text;if(e.element&&e.element.isConnected)if(e.isUserQuery&&d){const t=d(e.element);t&&(n=t);}else {const t=e.element.textContent;t&&(n=t.trim());}try{await navigator.clipboard.writeText(n),v(!0),setTimeout(()=>v(!1),1500);}catch(r){console.error("[DEBUG] Clipboard API failed, trying fallback:",r);try{const e=document.createElement("textarea");e.value=n,e.style.position="fixed",e.style.left="-9999px",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e),v(!0),setTimeout(()=>v(!1),1500);}catch(o){console.error("[DEBUG] Fallback copy also failed:",o);}}},onMouseEnter:()=>S(true),onMouseLeave:()=>S(false),children:y?
         P.jsx(Fe,{size:14,color:"#10b981"}):
         P.jsx(ve,{size:14})})})]})}),p&&e.children.map((e,u)=>P.jsx(Gd,{node:e,onToggle:t,onClick:n,onCopy:r,onToggleBookmark:o,activeIndex:a,visibleHighlightIndex:i,setItemRef:s,visibleMap:l,searchQuery:c,extractUserQueryText:d},`${e.level}-${e.text}-${u}`))]})},Qd=({manager:e,onJumpBefore:t})=>{const{settings:n}=wr(),r=e.getState(),[o,a]=u.useState(r.tree),[i,s]=u.useState(null),[l,c]=u.useState(null),[d,h]=u.useState(e.getSearchQuery()),[g,p]=u.useState(r.isAllExpanded),[m,f]=u.useState(r.includeUserQueries),[b,y]=u.useState("bottom"),[v,x]=u.useState(r.expandLevel??6),[S,w]=u.useState(r.levelCounts),[k,C]=u.useState(r.displayLevel),[T,D]=u.useState(r.minRelativeLevel),[E,A]=u.useState(r.searchLevelManual),[_,L]=u.useState(r.matchCount),[N,M]=u.useState(r.bookmarkMode),j=u.useRef(null),R=u.useRef(null),F=u.useRef(0),z=u.useRef(false),O=u.useRef(null),B=u.useRef(null),U=u.useRef(new Map),H=u.useRef({parentMap:{},visibleMap:{},hasData:false});u.useEffect(()=>(e.setActive(true),()=>{e.setActive(false);}),[e]),u.useEffect(()=>{const e=()=>{R.current&&(R.current.focus(),R.current.select());};return window.addEventListener("ophel:searchOutline",e),window.__ophelPendingSearchOutline&&(delete window.__ophelPendingSearchOutline,setTimeout(e,100)),()=>{window.removeEventListener("ophel:searchOutline",e);}},[]),u.useEffect(()=>{const t=()=>{const t=e.getState(),r=e=>{let t=0;for(const n of e)t+=1,n.children&&n.children.length>0&&(t+=r(n.children));return t},o=r(t.tree),i=F.current;"latest"===(n?.features?.outline?.followMode||"current")&&o>i&&(z.current=true),a([...t.tree]),h(e.getSearchQuery()),p(t.isAllExpanded),x(t.expandLevel??6),w(t.levelCounts||{}),f(t.includeUserQueries),C(t.displayLevel),D(t.minRelativeLevel),A(t.searchLevelManual),L(t.matchCount),M(t.bookmarkMode),F.current=o;};return t(),e.subscribe(t)},[e,n?.features?.outline?.followMode]),u.useEffect(()=>{if(z.current&&j.current){const e=j.current;requestAnimationFrame(()=>{e.scrollTo({top:e.scrollHeight,behavior:"smooth"});}),z.current=false;}},[o]);const W=u.useCallback(e=>{O.current!==e&&(O.current=e,s(e));},[]),K=u.useCallback(e=>{B.current!==e&&(B.current=e,c(e));},[]),$=u.useCallback((e,t)=>{const n=U.current;t?n.set(e,t):n.delete(e);},[]),X=u.useCallback(e=>{if(null===e)return null;const{parentMap:t,visibleMap:n,hasData:r}=H.current;if(!r)return e;let o=e;for(;null!=o;){if(n[o])return o;o=t[o];}return null},[]),Y=u.useMemo(()=>Vd(o,k,T,d,E,N),[o,k,T,d,E,N]),{parentMap:ee,visibleMap:te}=Y,ne=u.useMemo(()=>{const e=t=>{for(const n of t){if(te[n.index])return  true;if(n.children&&n.children.length>0&&e(n.children))return  true}return  false};return e(o)},[o,te]);H.current={parentMap:ee,visibleMap:te,hasData:o.length>0},u.useEffect(()=>{const e=X(O.current);K(e);},[ee,te,o.length,X,K]),u.useEffect(()=>{if("current"!==(n?.features?.outline?.followMode||"current"))return W(null),void K(null);let t,r=null,o=0,a=0,i=null,s=null,l=null;const c=new Map,d=()=>{e.markScrollPositionsStale();},u=t=>{if(c.has(t))return;const n=new MutationObserver(()=>{s||(s=setTimeout(()=>{s=null;const t="undefined"!=typeof window?window.requestIdleCallback:void 0;if(t){if(null!==l)return;l=t(()=>{l=null,e.markScrollPositionsStale();},{timeout:500});}else e.markScrollPositionsStale();},300));});n.observe(t,{childList:true,subtree:true,characterData:true}),c.set(t,n);},h=()=>{if(!r)return;const t=r.scrollTop,n=r.clientHeight,o=r.scrollHeight;o!==a&&(a=o,e.markScrollPositionsStale());const i=e.findVisibleItemIndex(t,n);if(null===i)return W(null),void K(null);W(i);const s=X(i);K(s),null!==s&&requestAnimationFrame(()=>{const e=j.current;if(!e)return;const t=U.current.get(s)||null;if(!t)return;const n=e.getBoundingClientRect(),r=t.getBoundingClientRect();if(r.top<n.top||r.bottom>n.bottom){const t=r.top-n.top-n.height/2+r.height/2;e.scrollBy({top:t,behavior:"instant"});}});},g=()=>{const n=e.getScrollContainer();n?(r=n,a=n.scrollHeight,r.addEventListener("scroll",h,{passive:true}),window.addEventListener("resize",d,{passive:true}),(e=>{try{u(e);}catch(t){console.warn("[OutlineTab] Failed to attach MutationObserver:",t);}})(n),"undefined"!=typeof ResizeObserver&&(i=new ResizeObserver(()=>{a=r?.scrollHeight||0,e.markScrollPositionsStale();}),i.observe(r)),h()):o<20?(o++,t=setTimeout(g,300)):console.warn("[OutlineTab] Failed to find scroll container after retries");};return g(),()=>{if(r&&r.removeEventListener("scroll",h),window.removeEventListener("resize",d),s&&clearTimeout(s),null!==l){const e="undefined"!=typeof window?window.cancelIdleCallback:void 0;e&&e(l),l=null;}c.forEach(e=>e.disconnect()),c.clear(),i&&(i.disconnect(),i=null),t&&clearTimeout(t);}},[e,o.length,n?.features?.outline?.followMode,X,W,K]),u.useEffect(()=>{const e=j.current;if(!e)return;const t=()=>{const t=e.scrollTop+e.clientHeight>=e.scrollHeight-10;y(t?"top":"bottom");};return e.addEventListener("scroll",t),t(),()=>e.removeEventListener("scroll",t)},[]);const re=u.useCallback(t=>{e.toggleNode(t);},[e]),oe=u.useCallback(async n=>{let r=n.element;if(!r||!r.isConnected)if(n.isUserQuery&&0===n.level){const t=e.findUserQueryElement(n.queryIndex,n.text);t&&(r=t,n.element=r);}else {const t=e.findElementByHeading(n.level,n.text);t&&(r=t,n.element=r);}if(r&&r.isConnected)t&&await t(),r.scrollIntoView({behavior:"instant",block:"start",__bypassLock:true}),r.classList.add("outline-highlight"),setTimeout(()=>r?.classList.remove("outline-highlight"),2e3);else if(n.isGhost&&void 0!==n.scrollTop){const t=e.getScrollContainer();t&&(t.scrollTo({top:n.scrollTop,behavior:"smooth"}),Yr(En("bookmarkContentMissing")||"收藏内容不存在,已跳转到保存位置",3e3));}else Yr(En("bookmarkContentMissing")||"收藏内容已被删除或折叠",2e3);},[e,t]),ae=u.useCallback((e,t)=>{e.stopPropagation();const n=t.text;navigator.clipboard.writeText(n);},[]),ie=u.useCallback(t=>e.extractUserQueryText(t),[e]),le=u.useCallback(t=>{e.setSearchQuery(t.target.value);},[e]),ce=u.useCallback(()=>{e.setSearchQuery("");},[e]),de=u.useCallback(()=>{g?e.collapseAll():e.expandAll();},[e,g]),ue=u.useCallback((t,n)=>{t.stopPropagation(),e.toggleBookmark(n);},[e]),he=u.useCallback(()=>{e.toggleBookmarkMode();},[e]),ge=u.useCallback(()=>{e.toggleGroupMode();},[e]),pe=u.useCallback(()=>{const e=j.current;e&&("bottom"===b?e.scrollTo({top:e.scrollHeight,behavior:"smooth"}):e.scrollTo({top:0,behavior:"smooth"}));},[b]),me=u.useCallback(()=>{const t=e.getScrollContainer();if(!t)return;d&&(e.setSearchQuery(""),h(""));const n=e=>{const t=[];return e.forEach(e=>{t.push(e),e.children&&e.children.length>0&&t.push(...n(e.children));}),t},r=n(o),a=t.getBoundingClientRect(),i=a.top,s=a.bottom;let l=null;for(const e of r){if(!e.element||!e.element.isConnected)continue;const t=e.element.getBoundingClientRect();if(t.top>=i&&t.top<s){l=e;break}if(t.top<i&&t.bottom>i){l=e;break}}if(!l){let e=1/0;for(const t of r){if(!t.element||!t.element.isConnected)continue;const n=t.element.getBoundingClientRect(),r=Math.abs(n.top-i);r<e&&(e=r,l=t);}}l&&(e.revealNode(l.index),setTimeout(()=>{const t=j.current;if(!t)return;const n=t.querySelector(`.outline-item[data-index="${l.index}"]`);n&&(n.scrollIntoView({behavior:"instant",block:"center"}),n.classList.add("highlight"),setTimeout(()=>{n.classList.remove("highlight"),e.clearForceVisible();},3e3));},50));},[o,d,e]),fe=u.useCallback(t=>{e.setLevel(t);},[e]);return u.useEffect(()=>{const e=()=>{window.__ophelPendingLocateOutline=false,me();};return window.__ophelPendingLocateOutline&&setTimeout(()=>{e();},100),window.addEventListener("ophel:locateOutline",e),()=>{window.removeEventListener("ophel:locateOutline",e);}},[me]),P.jsxs("div",{className:"gh-outline-tab",style:{display:"flex",flexDirection:"column",height:"100%"},children:[
         P.jsxs("div",{className:"outline-fixed-toolbar",style:{padding:"8px",borderBottom:"1px solid var(--gh-border, #e5e7eb)",display:"flex",flexDirection:"column",gap:"8px",backgroundColor:"var(--gh-bg, #fff)"},children:[
         P.jsxs("div",{style:{display:"flex",gap:"4px",alignItems:"center"},children:[
         P.jsxs("div",{style:{display:"flex",gap:"2px"},children:[
         P.jsx(xd,{content:m?En("outlineOnlyUserQueries")||"仅显示提问":En("outlineShowUserQueries")||"显示所有",children:P.jsx("button",{onClick:ge,className:"outline-toolbar-btn "+(m?"active-subtle":""),children:"🙋"})}),
         P.jsx(xd,{content:En("bookmarkMode")||"收藏",children:P.jsx("button",{onClick:he,className:"outline-toolbar-btn "+(N?"active-subtle":""),children:P.jsx(se,{size:16,filled:N,color:"currentColor"})})}),
         P.jsx(xd,{content:N?En("bookmarkModeDisabled")||"收藏模式下不可用":En(g?"outlineCollapseAll":"outlineExpandAll"),children:P.jsx("button",{onClick:N?void 0:de,disabled:N,style:{width:"26px",height:"26px",padding:0,border:"1px solid var(--gh-input-border, #d1d5db)",borderRadius:"4px",backgroundColor:"var(--gh-bg, #fff)",color:N?"var(--gh-text-disabled, #9ca3af)":"var(--gh-text, #374151)",cursor:N?"not-allowed":"pointer",opacity:N?.5:1,display:"flex",alignItems:"center",justifyContent:"center"},children:g?P.jsx(G,{size:16}):P.jsx(V,{size:16})})}),
         P.jsx(xd,{content:En("outlineLocateCurrent")||"定位到当前位置",children:P.jsx("button",{onClick:me,style:{width:"26px",height:"26px",padding:0,border:"1px solid var(--gh-input-border, #d1d5db)",borderRadius:"4px",backgroundColor:"var(--gh-bg, #fff)",color:"var(--gh-text, #374151)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center"},children:P.jsx(Q,{size:16})})}),
         P.jsx(xd,{content:"bottom"===b?En("outlineScrollBottom")||"滚动到底部":En("outlineScrollTop")||"回到顶部",children:P.jsx("button",{onClick:pe,style:{width:"26px",height:"26px",padding:0,border:"1px solid var(--gh-input-border, #d1d5db)",borderRadius:"4px",backgroundColor:"var(--gh-bg, #fff)",color:"var(--gh-text, #374151)",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"14px"},children:"bottom"===b?P.jsx(J,{size:16}):P.jsx(Z,{size:16})})})]}),
         P.jsxs("div",{className:"outline-search-wrapper",style:{flex:1,position:"relative",display:"flex",alignItems:"center"},children:[
         P.jsx("input",{ref:R,type:"text",className:"outline-search-input",placeholder:En("outlineSearch")||"搜索...",value:d,onChange:le,style:{width:"100%",padding:"4px 24px 4px 8px",borderRadius:"4px",border:"1px solid var(--gh-input-border, #d1d5db)",fontSize:"12px",boxSizing:"border-box",height:"26px",backgroundColor:"var(--gh-input-bg, #fff)",color:"var(--gh-text, #374151)"}}),d&&P.jsx("button",{className:"outline-search-clear",onClick:ce,style:{position:"absolute",right:"4px",background:"none",border:"none",color:"var(--gh-text-tertiary, #9ca3af)",cursor:"pointer",fontSize:"14px",padding:0,display:"flex",alignItems:"center",justifyContent:"center"},children:P.jsx(I,{size:14})})]})]}),
         P.jsx("div",{className:"outline-level-slider-container",style:{padding:"0 4px"},children:P.jsxs("div",{className:"outline-level-dots",style:{display:"flex",justifyContent:"space-between",position:"relative",padding:"6px 0",alignItems:"center"},children:[
         P.jsx("div",{className:"outline-level-line-bg",style:{position:"absolute",top:"50%",left:"4px",right:"4px",height:"4px",background:"var(--gh-border, #e5e7eb)",zIndex:0,transform:"translateY(-50%)",borderRadius:"2px"}}),
         P.jsx("div",{className:"outline-level-progress",style:{position:"absolute",top:"50%",left:"4px",height:"4px",background:N?"var(--gh-text-disabled, #9ca3af)":"var(--gh-primary, #3b82f6)",zIndex:0,transform:"translateY(-50%)",borderRadius:"2px",width:`calc((${v} / 6) * (100% - 8px))`,transition:"width 0.2s ease"}}),[0,1,2,3,4,5,6].map(e=>{let t="";t=N?En("bookmarkModeDisabled")||"收藏模式下不可用":0===e?m?En("outlineOnlyUserQueries")||"仅显示提问":En("outlineCollapseAll")||"折叠全部":`H${e}: ${S[e]||0}`;const n=e<=v;
         return P.jsx(xd,{content:t,children:P.jsx("div",{className:`outline-level-dot ${n?"active":""} ${N?"disabled":""}`,"data-level":e,onClick:N?void 0:()=>fe(e),style:{width:"14px",height:"14px",borderRadius:"50%",backgroundColor:n?N?"var(--gh-text-disabled, #9ca3af)":"var(--gh-primary, #3b82f6)":"var(--gh-slider-dot-bg, #d1d5db)",border:n?"2px solid var(--gh-bg, #fff)":"none",zIndex:1,cursor:N?"not-allowed":"pointer",position:"relative",transition:"all 0.2s ease",boxSizing:"border-box",boxShadow:n?N?"0 0 0 1px var(--gh-text-disabled, #9ca3af)":"0 0 0 1px var(--gh-primary, #3b82f6)":"none",opacity:N?.5:1}})},e)})]})})]}),d&&P.jsxs("div",{className:"outline-result-bar",style:{textAlign:"center",padding:"6px 8px",margin:"0 8px 0 8px",color:"var(--gh-border-active)",fontSize:"13px",background:_>0?"var(--gh-folder-bg-default)":"transparent",borderRadius:"4px",border:0===_?"1px dashed var(--gh-border, #e5e7eb)":"none",flexShrink:0},children:[_," ",En("outlineSearchResult")||"个结果"]}),
         P.jsx("div",{ref:j,className:`gh-outline-tree-container gh-panel-bookmark-mode-${n?.features?.outline?.panelBookmarkMode||"always"}`,style:{flex:1,overflowY:"auto",padding:d?"0 8px 8px 8px":"8px"},children:(()=>{const e=t=>t.some(t=>t.isBookmarked||t.children&&t.children.length>0&&e(t.children)),t=e(o),n=0===o.length,r=!d&&(n||!ne),a=m&&0===k?En("outlineEmptyDescUserQueryOnly")||"Only user queries are shown. Send a message to build the outline.":En("outlineEmptyDescDefault")||"Outline items will appear as the conversation grows.",s=a.indexOf(","),c=a.indexOf(",");let u=-1;u=s>=0&&c>=0?Math.min(s,c):Math.max(s,c);const h=u>=0?a.slice(0,u).trim():a,g=u>=0?a.slice(u+1).trim():"";return !N||t||d?r?P.jsxs("div",{className:"outline-empty-state",children:[
         P.jsx("div",{className:"outline-empty-state-icon","aria-hidden":"true",children:P.jsx(q,{size:18,color:"currentColor"})}),
         P.jsx("div",{className:"outline-empty-state-title",children:En("outlineEmpty")||"暂无大纲内容"}),
         P.jsxs("div",{className:"outline-empty-state-desc",children:[
         P.jsx("span",{className:"outline-empty-state-desc-line",children:h}),g&&P.jsx("span",{className:"outline-empty-state-desc-line",children:g})]})]}):P.jsx("div",{className:"outline-list",children:o.map((e,t)=>P.jsx(Gd,{node:e,onToggle:re,onClick:oe,onCopy:ae,onToggleBookmark:ue,activeIndex:i,visibleHighlightIndex:l,setItemRef:$,visibleMap:te,searchQuery:d,extractUserQueryText:ie},`${e.level}-${e.text}-${t}`))}):P.jsxs("div",{style:{textAlign:"center",color:"var(--gh-text-tertiary, #9ca3af)",marginTop:"40px",display:"flex",flexDirection:"column",alignItems:"center",gap:"8px"},children:[
         P.jsx("div",{style:{width:"40px",height:"40px",borderRadius:"50%",background:"rgba(245, 158, 11, 0.1)",display:"flex",alignItems:"center",justifyContent:"center",color:"#f59e0b",marginBottom:"8px"},children:P.jsx(se,{size:20,filled:true,color:"#f59e0b"})}),
         P.jsx("div",{style:{fontSize:"14px",fontWeight:500,color:"var(--gh-text, #374151)"},children:En("outlineNoBookmarks")||"暂无收藏"}),
         P.jsx("div",{style:{fontSize:"12px",opacity:.7},children:En("outlineAddBookmarkHint")||"点击条目旁的星号添加收藏"})]})})()})]})},Zd=({variables:e,onConfirm:t,onCancel:n})=>{const[r,o]=u.useState(e.map(e=>({name:e.raw,value:e.options?e.options[0]:e.defaultValue??""}))),a=u.useRef(null);u.useEffect(()=>{setTimeout(()=>{a.current?.focus();},100);},[]);const i=()=>{const e={};r.forEach(t=>{e[t.name]=t.value;}),t(e);},s=(e,t)=>{o(n=>{const r=[...n];return r[e]={...r[e],value:t},r});};
         return P.jsx(md,{onClose:n,closeOnOverlayClick:false,dialogClassName:"prompt-modal-content",dialogStyle:{width:"400px",maxWidth:"90%",maxHeight:"80vh",display:"flex",flexDirection:"column",boxShadow:"0 4px 20px rgba(0,0,0,0.2)",animation:"slideUp 0.2s ease-out",padding:0},children:P.jsxs("div",{onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),i()),"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),n());},style:{display:"flex",flexDirection:"column",flex:1,minHeight:0},children:[
         P.jsxs("div",{style:{padding:"16px",borderBottom:"1px solid var(--gh-border, #e5e7eb)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[
         P.jsx("h3",{style:{margin:0,fontSize:"16px",fontWeight:600,color:"var(--gh-text, #374151)"},children:En("promptVariableTitle")||"填写变量"}),
         P.jsx("button",{onClick:n,style:{background:"none",border:"none",cursor:"pointer",fontSize:"18px",color:"var(--gh-text-secondary, #9ca3af)"},children:P.jsx(I,{size:18})})]}),
         P.jsx("div",{style:{padding:"16px",overflowY:"auto",flex:1},children:e.map((e,t)=>P.jsxs("div",{style:{marginBottom:"16px",display:"flex",flexDirection:"column",gap:"6px"},children:[
         P.jsx("label",{style:{fontSize:"14px",fontWeight:500,color:"var(--gh-text, #374151)",wordBreak:"break-all"},children:e.name}),e.options?
         P.jsx("select",{value:r[t]?.value??"",onChange:e=>s(t,e.target.value),style:{width:"100%",padding:"8px 12px",borderRadius:"6px",border:"1px solid var(--gh-input-border, #d1d5db)",fontSize:"14px",outline:"none",background:"var(--gh-input-bg, white)",color:"var(--gh-text, #374151)",boxSizing:"border-box",cursor:"pointer",transition:"border-color 0.2s, box-shadow 0.2s"},onFocus:e=>{e.target.style.borderColor="var(--gh-primary, #4285f4)",e.target.style.boxShadow="0 0 0 2px rgba(66, 133, 244, 0.1)";},onBlur:e=>{e.target.style.borderColor="var(--gh-input-border, #d1d5db)",e.target.style.boxShadow="none";},children:e.options.map(e=>P.jsx("option",{value:e,children:e},e))}):
         P.jsx("input",{ref:0===t?a:void 0,type:"text",value:r[t]?.value??"",onChange:e=>s(t,e.target.value),placeholder:e.defaultValue?`${En("promptVariablePlaceholder")||"请输入"} (${En("default")||"默认"}: ${e.defaultValue})`:En("promptVariablePlaceholder")||"请输入",style:{width:"100%",padding:"8px 12px",borderRadius:"6px",border:"1px solid var(--gh-input-border, #d1d5db)",fontSize:"14px",outline:"none",background:"var(--gh-input-bg, white)",color:"var(--gh-text, #374151)",boxSizing:"border-box",transition:"border-color 0.2s, box-shadow 0.2s"},onFocus:e=>{e.target.style.borderColor="var(--gh-primary, #4285f4)",e.target.style.boxShadow="0 0 0 2px rgba(66, 133, 244, 0.1)";},onBlur:e=>{e.target.style.borderColor="var(--gh-input-border, #d1d5db)",e.target.style.boxShadow="none";}})]},e.raw))}),
         P.jsxs("div",{style:{padding:"12px 16px",borderTop:"1px solid var(--gh-border, #e5e7eb)",display:"flex",justifyContent:"flex-end",gap:"8px"},children:[
         P.jsx("button",{onClick:n,style:{padding:"8px 16px",borderRadius:"6px",border:"1px solid var(--gh-border, #d1d5db)",background:"var(--gh-bg, white)",color:"var(--gh-text, #374151)",fontSize:"14px",cursor:"pointer"},children:En("cancel")||"取消"}),
         P.jsx("button",{onClick:i,style:{padding:"8px 16px",borderRadius:"6px",border:"none",background:"var(--gh-primary, #4285f4)",color:"white",fontSize:"14px",cursor:"pointer",fontWeight:500},children:En("confirm")||"确认"})]})]})})},Jd=e=>{const t=e.indexOf(":");if(-1===t)return {raw:e,name:e};const n=e.substring(0,t),r=e.substring(t+1);if(r.includes("|")){return {raw:e,name:n,options:r.split("|").filter(e=>e.length>0)}}return {raw:e,name:n,defaultValue:r}},$d=e=>{const t=/\{\{([^\s{}]+)\}\}/g,n=new Set,r=[];let o;for(;null!==(o=t.exec(e));){const e=o[1];n.has(e)||(n.add(e),r.push(Jd(e)));}return r},Xd=({manager:e,onPromptSelect:t,selectedPromptId:n})=>{const r=wr(e=>e.settings.features?.prompts?.doubleClickToSend??false),o=wr(e=>e.settings.features?.prompts?.submitShortcut??"enter"),[a,i]=u.useState([]),[s,l]=u.useState([]),[c,d]=u.useState(On),[h,g]=u.useState(""),[p,m]=u.useState(false),[f,b]=u.useState(null),[y,v]=u.useState(false),[x,S]=u.useState({show:false,title:"",message:"",onConfirm:()=>{}}),[w,k]=u.useState({show:false,title:"",defaultValue:"",onConfirm:()=>{}}),[C,T]=u.useState(null),D=u.useRef(null),[E,A]=u.useState({show:false,prompt:null,variables:[],submitAfterInsert:false}),[_,L]=u.useState({show:false,prompts:[]}),[N,M]=u.useState(false),[j,R]=u.useState({show:false,prompt:null}),F=u.useRef(null),z=u.useRef(null),O=u.useRef(null),[B,q]=u.useState(null),U=u.useRef(null),H=u.useRef(null),V=u.useCallback(()=>{const t=e.getPrompts(),n=e.getCategories();i(t),l(n),d(e=>{if(e===On)return e;if(!n.includes(e))return On;return t.some(t=>t.category===e)?e:On});},[e]),G=u.useCallback((t,n=false)=>{const r=e.getPrompts().find(e=>e.id===t);if(!r)return  false;const o=$d(r.content);return 0!==o.length&&(A({show:true,prompt:r,variables:o,submitAfterInsert:n}),true)},[e]),Q=u.useCallback(n=>{const r=e.getPrompts().find(e=>e.id===n);return !!r&&(d(On),g(""),t?.(null),q(r.id),true)},[e,t]);u.useEffect(()=>{const e=window,n=n=>{const r=n.detail,o=r?.promptId;if(!o)return;G(o,Boolean(r?.submitAfterInsert))&&(t?.(null),e.__ophelPendingPromptVariableDialog=null);};window.addEventListener("ophel:openPromptVariableDialog",n);const r=e.__ophelPendingPromptVariableDialog;if(r?.promptId){G(r.promptId,Boolean(r.submitAfterInsert))&&(t?.(null),e.__ophelPendingPromptVariableDialog=null);}return ()=>{window.removeEventListener("ophel:openPromptVariableDialog",n);}},[t,G]),u.useEffect(()=>{const e=window,t=t=>{const n=t.detail,r=n?.promptId;if(!r)return;Q(r)&&(e.__ophelPendingLocatePrompt=null);};window.addEventListener("ophel:locatePrompt",t);const n=e.__ophelPendingLocatePrompt;if(n?.promptId){Q(n.promptId)&&(e.__ophelPendingLocatePrompt=null);}return ()=>{window.removeEventListener("ophel:locatePrompt",t);}},[Q]),u.useEffect(()=>{V();},[V]),u.useEffect(()=>()=>{null!==F.current&&window.clearTimeout(F.current),null!==z.current&&window.clearTimeout(z.current);},[]),u.useEffect(()=>{N&&U.current&&oa(U.current,{size:14,color:"#6b7280"});},[N,f?.content]),u.useEffect(()=>{j.show&&H.current&&oa(H.current,{size:14,color:"#6b7280"});},[j.show,j.prompt]);const Z=(e,t,n)=>{S({show:true,title:e,message:t,onConfirm:n});},J=async(e,t=false)=>{const n=$d(e.content);n.length>0?A({show:true,prompt:e,variables:n,submitAfterInsert:t}):await $(e,e.content,t);},$=async(n,r,a=false)=>{if(await e.insertPrompt(r)){let r=true;a&&(r=await e.submitPrompt(o),r||Yr(En("promptSendFailed")||"发送失败,提示词已保留在输入框中")),e.updateLastUsed(n.id),t?.(a&&r?null:n),a?r&&Yr(`${En("promptSent")||"已发送"}: ${n.title}`):Yr(`${En("inserted")||"已插入"}: ${n.title}`);}else Yr(En("insertFailed")||"未找到输入框,请点击输入框后重试");},X=()=>{const t=_.prompts;e.setPrompts(t),V(),L({show:false,prompts:[]}),Yr((En("promptImportSuccess")||"已导入 {count} 个提示词").replace("{count}",t.length.toString()));},Y=()=>{const t=_.prompts,n=e.getPrompts(),r=new Set(n.map(e=>e.id)),o=t.filter(e=>r.has(e.id)),a=t.filter(e=>!r.has(e.id));o.forEach(t=>{e.updatePrompt(t.id,{title:t.title,content:t.content,category:t.category,pinned:t.pinned});}),a.forEach(t=>{e.addPrompt({title:t.title,content:t.content,category:t.category,pinned:t.pinned});}),V(),L({show:false,prompts:[]});const i=`已合并:更新 ${o.length} 个,新增 ${a.length} 个`;Yr(En("promptMergeSuccess")?.replace("{updated}",o.length.toString()).replace("{added}",a.length.toString())||i);},ee=async()=>{if(!f?.title||!f?.content)return void Yr(En("fillTitleContent")||"请填写标题和内容");const t=f.category||En("uncategorized")||"未分类";let n=false;if(f.id){const r=a.find(e=>e.id===f.id),o=r?.category;if(o&&o!==t&&c===o){0===a.filter(e=>e.category===o&&e.id!==f.id).length&&(n=true);}await e.updatePrompt(f.id,{title:f.title,content:f.content,category:t}),Yr(En("promptUpdated")||"提示词已更新"),n&&d(t);}else await e.addPrompt({title:f.title,content:f.content,category:t}),Yr(En("promptAdded")||"提示词已添加");te(),V();},te=u.useCallback(()=>{m(false),b(null);},[]),ne=u.useCallback(()=>{v(false);},[]),re=u.useCallback(()=>{S(e=>({...e,show:false}));},[]),oe=u.useCallback(()=>{k(e=>({...e,show:false}));},[]),ae=u.useCallback(()=>{R({show:false,prompt:null});},[]),ie=u.useCallback(()=>{L({show:false,prompts:[]});},[]),se=u.useCallback(()=>{A({show:false,prompt:null,variables:[],submitAfterInsert:false});},[]),le=e=>{if(e)b({...e});else {const e=c===On||c===Bn?s[0]||En("uncategorized")||"未分类":c;b({title:"",content:"",category:e});}m(true);},de=(t,n)=>{var r;n.stopPropagation(),n.preventDefault(),r=En("newCategoryName")||"请输入新分类名称",k({show:true,title:r,defaultValue:t,onConfirm:async n=>{n&&n.trim()&&n!==t&&(await e.renameCategory(t,n.trim()),Yr((En("categoryRenamedTo")||"分类已重命名为「{name}」").replace("{name}",n.trim())),c===t&&d(n.trim()),V());}});},ue=()=>{D.current&&D.current.classList.remove("dragging"),document.querySelectorAll(".drop-above, .drop-below").forEach(e=>{e.classList.remove("drop-above","drop-below");}),T(null),D.current=null;},he=(()=>{let t;if(c===Bn){if(t=e.getPrompts().filter(e=>e.lastUsedAt).sort((e,t)=>(t.lastUsedAt||0)-(e.lastUsedAt||0)).slice(0,10),h){const e=h.toLowerCase();t=t.filter(t=>t.title.toLowerCase().includes(e)||t.content.toLowerCase().includes(e));}}else t=e.filterPrompts(h,c);return c!==Bn&&(t=t.sort((e,t)=>e.pinned&&!t.pinned?-1:!e.pinned&&t.pinned?1:0)),t})();u.useEffect(()=>{if(!(w.show||x.show||y||p||j.show||_.show||E.show))return;const e=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation?.(),w.show?oe():x.show?re():E.show?se():y?ne():p?te():j.show?ae():_.show&&ie());};return document.addEventListener("keydown",e,true),()=>{document.removeEventListener("keydown",e,true);}},[ne,re,te,ie,ae,oe,se,x.show,_.show,y,p,j.show,w.show,E.show]),u.useEffect(()=>{if(!B)return;const e=O.current;if(!e)return;const t="undefined"!=typeof CSS&&"function"==typeof CSS.escape?CSS.escape(B):B.replace(/["\\]/g,"\\$&"),n=e.querySelector(`.prompt-item[data-prompt-id="${t}"]`);n&&(n.scrollIntoView({behavior:"smooth",block:"center"}),null!==z.current&&window.clearTimeout(z.current),z.current=window.setTimeout(()=>{q(e=>e===B?null:e),z.current=null;},2200));},[B,a,h,c]);
         return P.jsxs("div",{className:"gh-prompts-tab",style:{display:"flex",flexDirection:"column",height:"100%"},children:[
         P.jsxs("div",{style:{padding:"12px",borderBottom:"1px solid var(--gh-border, #e5e7eb)",background:"var(--gh-bg-secondary, #f9fafb)",display:"flex",gap:"8px",alignItems:"center"},children:[
         P.jsx("input",{type:"text",className:"prompt-search-input",placeholder:En("searchPlaceholder"),value:h,onChange:e=>g(e.target.value),style:{flex:1,padding:"8px 12px",border:"1px solid var(--gh-border, #d1d5db)",borderRadius:"8px",fontSize:"14px",boxSizing:"border-box",background:"var(--gh-bg, #ffffff)",color:"var(--gh-text, #1f2937)"}}),
         P.jsx(xd,{content:En("promptImport")||"导入",children:P.jsx("button",{onClick:()=>{const e=document.createElement("input");e.type="file",e.accept=".json",e.onchange=async e=>{const t=e.target.files?.[0];if(t)try{const e=await t.text(),n=JSON.parse(e);if(!Array.isArray(n))return void Yr(En("promptImportFailed")||"导入失败:文件格式错误");L({show:!0,prompts:n});}catch{Yr(En("promptImportFailed")||"导入失败:文件解析错误");}},e.click();},style:{width:"32px",height:"32px",border:"1px solid var(--gh-border, #d1d5db)",background:"var(--gh-bg, white)",borderRadius:"6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"16px",flexShrink:0},children:P.jsx(W,{size:16})})}),
         P.jsx(xd,{content:En("promptExport")||"导出",children:P.jsx("button",{onClick:()=>{const t=e.getPrompts(),n=JSON.stringify(t,null,2),r=new Blob([n],{type:"application/json"}),o=URL.createObjectURL(r),a=document.createElement("a");a.href=o,a.download=`${_d}-prompts-${(new Date).toISOString().split("T")[0]}.json`,document.body.appendChild(a),a.click(),document.body.removeChild(a),URL.revokeObjectURL(o),Yr(En("promptExportSuccess")||"导出成功");},style:{width:"32px",height:"32px",border:"1px solid var(--gh-border, #d1d5db)",background:"var(--gh-bg, white)",borderRadius:"6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"16px",flexShrink:0},children:P.jsx(K,{size:16})})})]}),
         P.jsxs("div",{style:{padding:"8px 12px",display:"flex",gap:"6px",flexWrap:"wrap",background:"var(--gh-bg, white)",borderBottom:"1px solid var(--gh-border, #e5e7eb)",userSelect:"none"},children:[
         P.jsx("span",{onClick:()=>d(On),style:{padding:"4px 10px",background:c===On?"var(--gh-primary, #4285f4)":"var(--gh-hover, #f3f4f6)",borderRadius:"12px",fontSize:"12px",color:c===On?"white":"#4b5563",cursor:"pointer",border:c===On?"1px solid var(--gh-primary, #4285f4)":"1px solid transparent"},children:En("allCategory")}),s.map(e=>{const t=(e=>{let t=0;for(let n=0;n<e.length;n++)t=e.charCodeAt(n)+((t<<5)-t);return Math.abs(t)%7+1})(e);
         return P.jsx(xd,{content:e,children:P.jsx("span",{onClick:()=>d(e),style:{padding:"4px 10px",background:c===e?"var(--gh-primary, #4285f4)":`var(--gh-category-${t})`,borderRadius:"12px",fontSize:"12px",color:c===e?"white":"#4b5563",cursor:"pointer",border:c===e?"1px solid var(--gh-primary, #4285f4)":"1px solid transparent",maxWidth:"80px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:e})},e)}),
         P.jsx(xd,{content:En("promptRecentUsed")||"最近使用",children:P.jsx("span",{onClick:()=>d(Bn),style:{padding:"4px 8px",display:"inline-flex",alignItems:"center",justifyContent:"center",lineHeight:1,background:c===Bn?"var(--gh-primary, #4285f4)":"var(--gh-hover, #f3f4f6)",borderRadius:"12px",fontSize:"12px",color:c===Bn?"white":"#4b5563",cursor:"pointer",border:c===Bn?"1px solid var(--gh-primary, #4285f4)":"1px solid transparent"},children:P.jsx(je,{size:14})})}),s.length>0&&P.jsx("button",{onClick:()=>v(true),style:{padding:"4px 8px",background:"transparent",border:"1px dashed var(--gh-border, #d1d5db)",borderRadius:"12px",fontSize:"11px",color:"var(--gh-text-secondary, #9ca3af)",cursor:"pointer"},children:En("manageCategory")||"管理"})]}),
         P.jsx("div",{ref:O,style:{flex:1,overflowY:"auto",padding:"8px",scrollbarWidth:"none"},children:0===he.length?P.jsx("div",{style:{textAlign:"center",padding:"40px 20px",color:"var(--gh-text-tertiary, #9ca3af)",fontSize:"14px"},children:"暂无提示词"}):he.map(t=>{const o=n===t.id,a=B===t.id,i=o||a;
         return P.jsxs("div",{"data-prompt-id":t.id,className:`prompt-item ${i?"selected":""} ${a?"located":""} ${C===t.id?"dragging":""}`,onClick:()=>{return e=t,q(null),void(r?(null!==F.current&&(window.clearTimeout(F.current),F.current=null),F.current=window.setTimeout(()=>{F.current=null,J(e);},340)):J(e));var e;},onDoubleClick:()=>{return e=t,null!==F.current&&(window.clearTimeout(F.current),F.current=null),void(r&&J(e,true));var e;},draggable:false,onDragStart:e=>((e,t,n)=>{T(t),D.current=n,e.dataTransfer.effectAllowed="move",n.classList.add("dragging");})(e,t.id,e.currentTarget),onDragOver:e=>((e,t)=>{if(e.preventDefault(),e.dataTransfer.dropEffect="move",!C||C===t)return;const n=e.currentTarget,r=n.getBoundingClientRect(),o=r.top+r.height/2;document.querySelectorAll(".drop-above, .drop-below").forEach(e=>{e.classList.remove("drop-above","drop-below");}),e.clientY<o?n.classList.add("drop-above"):n.classList.add("drop-below");})(e,t.id),onDragEnd:ue,onDrop:n=>(async(t,n)=>{if(t.preventDefault(),!C||C===n)return void ue();const r=e.getPrompts(),o=r.findIndex(e=>e.id===C),a=r.findIndex(e=>e.id===n);if(-1===o||-1===a)return void ue();const i=[...r],[s]=i.splice(o,1),l=t.currentTarget.getBoundingClientRect(),c=t.clientY<l.top+l.height/2;let d=r.findIndex(e=>e.id===n);o<d&&d--,c||d++,i.splice(d,0,s),await e.updateOrder(i.map(e=>e.id)),Yr(En("orderUpdated")||"顺序已更新"),V(),ue();})(n,t.id),style:{background:i?"linear-gradient(135deg, #e8f0fe 0%, #f1f8e9 100%)":"var(--gh-bg, white)",border:i?"1px solid var(--gh-primary, #4285f4)":"1px solid var(--gh-border, #e5e7eb)",borderRadius:"8px",padding:"12px",marginBottom:"8px",cursor:"pointer",transition:"all 0.2s",position:"relative",userSelect:"none"},children:[
         P.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"flex-start",marginBottom:"8px"},children:[
         P.jsx("div",{style:{fontWeight:600,fontSize:"14px",color:"var(--gh-text, #1f2937)",flex:1,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",paddingRight:"8px"},children:t.title}),
         P.jsx("span",{style:{fontSize:"11px",padding:"2px 6px",background:"var(--gh-hover, #f3f4f6)",borderRadius:"4px",color:"var(--gh-text-secondary, #6b7280)",flexShrink:0},children:t.category||En("uncategorized")||"未分类"})]}),
         P.jsx("div",{style:{fontSize:"13px",color:"var(--gh-text-secondary, #6b7280)",lineHeight:1.4,display:"-webkit-box",WebkitLineClamp:2,WebkitBoxOrient:"vertical",overflow:"hidden"},children:t.content}),
         P.jsxs("div",{className:"prompt-item-actions",style:{position:"absolute",top:"8px",right:"8px",gap:"4px"},children:[
         P.jsx(xd,{content:t.pinned?En("promptUnpin")||"取消置顶":En("promptPin")||"置顶",children:P.jsx("button",{onClick:n=>((t,n)=>{n.stopPropagation(),n.preventDefault(),e.togglePin(t),V();})(t.id,n),style:{width:"24px",height:"24px",border:"1px solid var(--gh-border, #e5e7eb)",background:t.pinned?"var(--gh-primary, #4285f4)":"var(--gh-bg, white)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"var(--gh-shadow-sm, 0 1px 3px rgba(0,0,0,0.1))",fontSize:"12px",color:t.pinned?"white":"var(--gh-text-secondary, #6b7280)"},children:P.jsx(Le,{size:12,filled:t.pinned})})}),
         P.jsx(xd,{content:"拖动排序",children:P.jsx("button",{onMouseDown:e=>{e.stopPropagation();const t=e.currentTarget.closest(".prompt-item");t&&(t.draggable=true);},onMouseUp:e=>{const t=e.currentTarget.closest(".prompt-item");t&&(t.draggable=false);},style:{width:"24px",height:"24px",border:"1px solid var(--gh-border, #e5e7eb)",background:"var(--gh-bg, white)",borderRadius:"4px",cursor:"grab",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"var(--gh-shadow-sm, 0 1px 3px rgba(0,0,0,0.1))",fontSize:"12px"},children:P.jsx(ce,{size:14})})}),
         P.jsx(xd,{content:En("promptMarkdownPreview")||"预览",children:P.jsx("button",{onClick:e=>{e.stopPropagation(),e.preventDefault(),R({show:true,prompt:t});},style:{width:"24px",height:"24px",border:"1px solid var(--gh-border, #e5e7eb)",background:"var(--gh-bg, white)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"var(--gh-shadow-sm, 0 1px 3px rgba(0,0,0,0.1))",fontSize:"12px"},children:P.jsx(Pe,{size:14})})}),
         P.jsx(xd,{content:En("copy"),children:P.jsx("button",{onClick:e=>(async(e,t)=>{t.stopPropagation(),t.preventDefault();try{await navigator.clipboard.writeText(e),Yr(En("copied")||"已复制");}catch{const t=document.createElement("textarea");t.value=e,document.body.appendChild(t),t.select(),document.execCommand("copy"),document.body.removeChild(t),Yr(En("copied")||"已复制");}})(t.content,e),style:{width:"24px",height:"24px",border:"1px solid var(--gh-border, #e5e7eb)",background:"var(--gh-bg, white)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"var(--gh-shadow-sm, 0 1px 3px rgba(0,0,0,0.1))",fontSize:"12px"},children:P.jsx(ve,{size:14})})}),
         P.jsx(xd,{content:En("edit"),children:P.jsx("button",{onClick:e=>{e.stopPropagation(),e.preventDefault(),le(t);},style:{width:"24px",height:"24px",border:"1px solid var(--gh-border, #e5e7eb)",background:"var(--gh-bg, white)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"var(--gh-shadow-sm, 0 1px 3px rgba(0,0,0,0.1))",fontSize:"12px"},children:P.jsx(Ae,{size:14})})}),
         P.jsx(xd,{content:En("delete"),children:P.jsx("button",{onClick:n=>((t,n)=>{n.stopPropagation(),n.preventDefault(),Z(En("confirmDelete")||"确认删除","确定删除该提示词?",async()=>{await e.deletePrompt(t),Yr(En("deleted")||"已删除"),V();});})(t.id,n),style:{width:"24px",height:"24px",border:"1px solid var(--gh-border, #e5e7eb)",background:"var(--gh-bg, white)",borderRadius:"4px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"var(--gh-shadow-sm, 0 1px 3px rgba(0,0,0,0.1))",fontSize:"12px",color:"var(--gh-text-danger, #ef4444)"},children:P.jsx(_e,{size:14})})})]})]},t.id)})}),
         P.jsx("div",{style:{padding:"12px"},children:P.jsxs("button",{onClick:()=>le(),style:{width:"100%",padding:"10px",background:"var(--gh-header-bg)",color:"var(--gh-footer-text, var(--gh-text-on-primary, white))",border:"none",borderRadius:"8px",fontSize:"14px",fontWeight:500,cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",gap:"6px",boxShadow:"var(--gh-btn-shadow)",transition:"transform 0.2s, box-shadow 0.2s"},onMouseEnter:e=>{e.currentTarget.style.transform="translateY(-1px)",e.currentTarget.style.boxShadow="var(--gh-btn-shadow-hover)";},onMouseLeave:e=>{e.currentTarget.style.transform="translateY(0)",e.currentTarget.style.boxShadow="var(--gh-btn-shadow)";},children:[
         P.jsx("span",{children:"+"}),
         P.jsx("span",{children:En("addPrompt")})]})}),p?hd.createPortal(
         P.jsx("div",{className:"prompt-modal gh-interactive",style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"var(--gh-overlay-bg)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:2147483646,animation:"fadeIn 0.2s"},children:P.jsxs("div",{className:"prompt-modal-content",onClick:e=>e.stopPropagation(),style:{background:"var(--gh-bg, white)",borderRadius:"12px",width:"90%",maxWidth:"500px",padding:"24px",animation:"slideUp 0.3s",boxShadow:"var(--gh-shadow, 0 20px 50px rgba(0,0,0,0.3))"},children:[
         P.jsx("div",{style:{fontSize:"18px",fontWeight:600,marginBottom:"20px",color:"var(--gh-text, #1f2937)"},children:En(f?.id?"editPrompt":"addNewPrompt")}),
         P.jsxs("div",{style:{marginBottom:"16px"},children:[
         P.jsx("label",{style:{display:"block",fontSize:"14px",fontWeight:500,color:"var(--gh-text, #374151)",marginBottom:"6px"},children:En("title")}),
         P.jsx("input",{type:"text",value:f?.title||"",onChange:e=>b({...f,title:e.target.value}),style:{width:"100%",padding:"8px 12px",border:"1px solid var(--gh-border, #d1d5db)",borderRadius:"6px",fontSize:"14px",boxSizing:"border-box",background:"var(--gh-bg, #ffffff)",color:"var(--gh-text, #1f2937)"}})]}),
         P.jsxs("div",{style:{marginBottom:"16px"},children:[
         P.jsx("label",{style:{display:"block",fontSize:"14px",fontWeight:500,color:"var(--gh-text, #374151)",marginBottom:"6px"},children:En("category")}),
         P.jsx("input",{type:"text",value:f?.category||"",onChange:e=>b({...f,category:e.target.value}),placeholder:En("categoryPlaceholder")||"输入或选择分类",style:{width:"100%",padding:"8px 12px",border:"1px solid var(--gh-border, #d1d5db)",borderRadius:"6px",fontSize:"14px",boxSizing:"border-box",background:"var(--gh-bg, #ffffff)",color:"var(--gh-text, #1f2937)"}}),s.length>0&&P.jsx("div",{style:{marginTop:"6px",display:"flex",gap:"4px",flexWrap:"wrap",userSelect:"none"},children:s.map(e=>P.jsx("span",{onClick:()=>b({...f,category:e}),style:{padding:"2px 8px",fontSize:"11px",background:f?.category===e?"var(--gh-primary, #4285f4)":"var(--gh-hover, #f3f4f6)",color:f?.category===e?"var(--gh-text-on-primary, white)":"var(--gh-text-secondary, #6b7280)",borderRadius:"10px",cursor:"pointer",transition:"all 0.15s"},children:e},e))})]}),
         P.jsx("div",{style:{marginBottom:"16px"},children:P.jsxs("div",{children:[
         P.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"6px"},children:[
         P.jsx("label",{style:{fontSize:"14px",fontWeight:500,color:"var(--gh-text, #374151)"},children:En("content")}),
         P.jsx("button",{onClick:()=>M(!N),style:{padding:"2px 8px",fontSize:"12px",background:N?"var(--gh-primary, #4285f4)":"var(--gh-hover, #f3f4f6)",color:N?"white":"var(--gh-text-secondary, #6b7280)",border:"1px solid var(--gh-border, #d1d5db)",borderRadius:"4px",cursor:"pointer"},children:En("promptMarkdownPreview")||"预览"})]}),
         P.jsx("textarea",{value:f?.content||"",onChange:e=>b({...f,content:e.target.value}),style:{width:"100%",minHeight:"120px",padding:"8px 12px",border:"1px solid var(--gh-border, #d1d5db)",borderRadius:"6px",fontSize:"14px",resize:"vertical",boxSizing:"border-box",fontFamily:"inherit",background:"var(--gh-bg, #ffffff)",color:"var(--gh-text, #1f2937)",display:N?"none":"block"}}),N&&P.jsxs(P.Fragment,{children:[
         P.jsx("div",{className:"gh-markdown-preview",style:{width:"100%",minHeight:"120px",maxHeight:"200px",padding:"8px 12px",border:"1px solid var(--gh-border, #d1d5db)",borderRadius:"6px",fontSize:"14px",boxSizing:"border-box",background:"var(--gh-bg-secondary, #f9fafb)",color:"var(--gh-text, #1f2937)",overflowY:"auto",lineHeight:1.6},ref:U,onClick:e=>{const t=e.target.closest(".gh-code-copy-btn");if(t){const e=t.nextElementSibling?.textContent||"";navigator.clipboard.writeText(e).then(()=>{ra(t,{size:14});});}},dangerouslySetInnerHTML:{__html:dd(sd(f?.content||""))}}),
         P.jsx("style",{children:"\n/* highlight.js GitHub Dark 主题 */\n.hljs {\n  background: var(--gh-bg-tertiary, #1e1e1e);\n  color: var(--gh-text, #e6edf3);\n  padding: 12px;\n  border-radius: 6px;\n  overflow-x: auto;\n  font-family: 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace;\n  font-size: 13px;\n  line-height: 1.5;\n  /* 代码块自动换行 */\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  word-break: break-all;\n}\n.hljs-comment,\n.hljs-quote { color: #8b949e; font-style: italic; }\n.hljs-keyword,\n.hljs-selector-tag { color: #ff7b72; }\n.hljs-string,\n.hljs-doctag { color: #a5d6ff; }\n.hljs-number,\n.hljs-literal { color: #79c0ff; }\n.hljs-title,\n.hljs-section,\n.hljs-selector-id { color: #d2a8ff; font-weight: bold; }\n.hljs-function > .hljs-title { color: #d2a8ff; }\n.hljs-type,\n.hljs-class .hljs-title { color: #7ee787; }\n.hljs-attribute { color: #79c0ff; }\n.hljs-variable,\n.hljs-template-variable { color: #ffa657; }\n.hljs-built_in { color: #ffa657; }\n.hljs-addition { color: #aff5b4; background: rgba(46, 160, 67, 0.15); }\n.hljs-deletion { color: #ffdcd7; background: rgba(248, 81, 73, 0.15); }\n\n/* 变量占位符高亮 */\n.gh-variable-highlight {\n  background: rgba(56, 139, 253, 0.2);\n  color: #58a6ff;\n  padding: 2px 6px;\n  border-radius: 4px;\n  font-weight: 500;\n}\n\n/* Markdown 渲染样式 */\n.gh-markdown-preview {\n  line-height: 1.6;\n  color: var(--gh-text, #e6edf3);\n}\n.gh-markdown-preview h1,\n.gh-markdown-preview h2,\n.gh-markdown-preview h3 {\n  margin: 16px 0 8px;\n  font-weight: 600;\n  border-bottom: 1px solid var(--gh-border, #30363d);\n  padding-bottom: 4px;\n}\n.gh-markdown-preview h1 { font-size: 1.5em; }\n.gh-markdown-preview h2 { font-size: 1.3em; }\n.gh-markdown-preview h3 { font-size: 1.1em; }\n.gh-markdown-preview p { margin: 8px 0; }\n.gh-markdown-preview code:not(.hljs) {\n  background: var(--gh-bg-tertiary, #343942);\n  padding: 2px 6px;\n  border-radius: 4px;\n  font-size: 13px;\n}\n.gh-markdown-preview pre {\n  margin: 12px 0;\n  position: relative;\n  max-width: 100%;\n  overflow: hidden;\n}\n.gh-markdown-preview pre code {\n  display: block;\n  max-width: 100%;\n  overflow-x: auto;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  word-break: break-all;\n}\n/* 代码块复制按钮 */\n.gh-code-copy-btn {\n  position: absolute;\n  top: 8px;\n  right: 8px;\n  padding: 4px 8px;\n  background: var(--gh-bg-secondary, #2d333b);\n  border: 1px solid var(--gh-border, #444c56);\n  border-radius: 4px;\n  color: var(--gh-text-secondary, #8b949e);\n  font-size: 12px;\n  cursor: pointer;\n  opacity: 0;\n  transition: opacity 0.2s;\n}\n.gh-markdown-preview pre:hover .gh-code-copy-btn {\n  opacity: 1;\n}\n.gh-code-copy-btn:hover {\n  background: var(--gh-hover, #373e47);\n  color: var(--gh-text, #e6edf3);\n}\n.gh-markdown-preview blockquote {\n  border-left: 3px solid var(--gh-primary, #4285f4);\n  margin: 12px 0;\n  padding: 8px 16px;\n  background: var(--gh-bg-secondary, #161b22);\n  color: var(--gh-text-secondary, #8b949e);\n}\n.gh-markdown-preview ul,\n.gh-markdown-preview ol {\n  margin: 8px 0;\n  padding-left: 24px;\n}\n.gh-markdown-preview li { margin: 4px 0; }\n.gh-markdown-preview a {\n  color: var(--gh-primary, #58a6ff);\n  text-decoration: none;\n}\n.gh-markdown-preview a:hover { text-decoration: underline; }\n\n/* 任务列表样式 */\n.gh-markdown-preview .task-list-item {\n  list-style: none;\n  margin-left: -20px;\n}\n.gh-markdown-preview .task-list-item input[type=\"checkbox\"] {\n  margin-right: 8px;\n  pointer-events: none;\n}\n\n/* 高亮 ==text== */\n.gh-markdown-preview mark {\n  background: rgba(255, 235, 59, 0.4);\n  color: inherit;\n  padding: 2px 4px;\n  border-radius: 3px;\n}\n\n/* 容器样式 :::info, :::warning, :::danger */\n.gh-container {\n  margin: 12px 0;\n  padding: 12px 16px;\n  border-radius: 6px;\n  border-left: 4px solid;\n}\n.gh-container-info {\n  background: rgba(56, 139, 253, 0.1);\n  border-color: #388bfd;\n}\n.gh-container-warning {\n  background: rgba(255, 166, 87, 0.1);\n  border-color: #ffa657;\n}\n.gh-container-danger {\n  background: rgba(248, 81, 73, 0.1);\n  border-color: #f85149;\n}\n"})]})]})}),
         P.jsxs("div",{style:{display:"flex",gap:"12px",justifyContent:"flex-end",marginTop:"24px"},children:[
         P.jsx(yd,{variant:"ghost",onClick:te,style:{background:"var(--gh-hover, #f3f4f6)"},children:En("cancel")}),
         P.jsx(yd,{variant:"primary",onClick:ee,children:En(f?.id?"save":"add")})]})]})}),document.body):null,y?hd.createPortal(
         P.jsx("div",{className:"prompt-modal gh-interactive",style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"var(--gh-overlay-bg)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:2147483646,animation:"fadeIn 0.2s"},children:P.jsxs("div",{onClick:e=>e.stopPropagation(),style:{background:"var(--gh-bg, white)",borderRadius:"12px",width:"90%",maxWidth:"400px",padding:"24px",animation:"slideUp 0.3s",boxShadow:"var(--gh-shadow-lg, 0 20px 50px rgba(0,0,0,0.3))"},children:[
         P.jsx("div",{style:{fontSize:"18px",fontWeight:600,marginBottom:"20px",color:"var(--gh-text, #1f2937)"},children:En("categoryManage")||"分类管理"}),
         P.jsx("div",{style:{maxHeight:"300px",overflowY:"auto"},children:0===s.length?P.jsx("div",{style:{textAlign:"center",color:"var(--gh-text-tertiary, #9ca3af)",padding:"20px"},children:En("categoryEmpty")||"暂无分类"}):s.map(t=>{const n=a.filter(e=>e.category===t).length;
         return P.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px 0",borderBottom:"1px solid var(--gh-border, #e5e7eb)"},children:[
         P.jsxs("div",{children:[
         P.jsx("div",{style:{fontWeight:500,color:"var(--gh-text, #374151)"},children:t}),
         P.jsxs("div",{style:{fontSize:"12px",color:"var(--gh-text-tertiary, #9ca3af)"},children:[n," ",En("promptCountSuffix")||" 个提示词"]})]}),
         P.jsxs("div",{style:{display:"flex",gap:"8px"},children:[
         P.jsx(xd,{content:En("rename")||"重命名",children:P.jsx(yd,{size:"sm",onClick:e=>de(t,e),style:{color:"var(--gh-primary, #4285f4)"},children:En("rename")||"重命名"})}),
         P.jsx(xd,{content:En("delete")||"删除",children:P.jsx(yd,{size:"sm",onClick:n=>((t,n)=>{n.stopPropagation(),n.preventDefault(),Z(En("confirmDeleteCategory")||"确认删除分类",(En("confirmDeleteCategoryMsg")||"确定删除分类「{name}」?关联的提示词将移至「未分类」").replace("{name}",t),async()=>{await e.deleteCategory(t),Yr((En("categoryDeletedMsg")||"分类「{name}」已删除").replace("{name}",t)),c===t&&d(On),V();});})(t,n),style:{border:"1px solid var(--gh-border-danger, #fecaca)",background:"var(--gh-bg-danger, #fef2f2)",color:"var(--gh-text-danger, #ef4444)"},children:En("delete")||"删除"})})]})]},t)})}),
         P.jsx("div",{style:{marginTop:"20px",display:"flex",justifyContent:"flex-end"},children:P.jsx(yd,{variant:"ghost",onClick:ne,style:{background:"var(--gh-hover, #f3f4f6)"},children:En("close")||"关闭"})})]})}),document.body):null,j.show&&j.prompt?hd.createPortal(
         P.jsx("div",{className:"prompt-preview-modal gh-interactive",onClick:e=>{e.target===e.currentTarget&&ae();},style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"var(--gh-overlay-bg, rgba(0, 0, 0, 0.5))",display:"flex",alignItems:"center",justifyContent:"center",zIndex:10001,animation:"fadeIn 0.2s ease-out"},children:P.jsxs("div",{style:{width:"90%",maxWidth:"600px",maxHeight:"80vh",background:"var(--gh-bg, white)",borderRadius:"12px",boxShadow:"var(--gh-shadow-lg)",overflow:"hidden",display:"flex",flexDirection:"column",animation:"slideUp 0.3s ease-out"},children:[
         P.jsxs("div",{style:{padding:"16px 20px",borderBottom:"1px solid var(--gh-border, #e5e7eb)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[
         P.jsxs("div",{children:[
         P.jsx("div",{style:{fontSize:"16px",fontWeight:600,color:"var(--gh-text, #1f2937)"},children:j.prompt.title}),
         P.jsx("div",{style:{fontSize:"12px",color:"var(--gh-text-secondary, #6b7280)",marginTop:"4px"},children:j.prompt.category})]}),
         P.jsx("button",{onClick:ae,style:{width:"28px",height:"28px",border:"none",background:"var(--gh-hover, #f3f4f6)",borderRadius:"6px",cursor:"pointer",fontSize:"16px",display:"flex",alignItems:"center",justifyContent:"center"},children:P.jsx(I,{size:16})})]}),
         P.jsx("div",{className:"gh-markdown-preview",style:{flex:1,padding:"20px",overflowY:"auto"},ref:H,onClick:e=>{const t=e.target.closest(".gh-code-copy-btn");if(t){const e=t.nextElementSibling?.textContent||"";navigator.clipboard.writeText(e).then(()=>{ra(t,{size:14});});}},dangerouslySetInnerHTML:{__html:dd(sd(j.prompt.content))}}),
         P.jsx("style",{children:"\n/* highlight.js GitHub Dark 主题 */\n.hljs {\n  background: var(--gh-bg-tertiary, #1e1e1e);\n  color: var(--gh-text, #e6edf3);\n  padding: 12px;\n  border-radius: 6px;\n  overflow-x: auto;\n  font-family: 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace;\n  font-size: 13px;\n  line-height: 1.5;\n  /* 代码块自动换行 */\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  word-break: break-all;\n}\n.hljs-comment,\n.hljs-quote { color: #8b949e; font-style: italic; }\n.hljs-keyword,\n.hljs-selector-tag { color: #ff7b72; }\n.hljs-string,\n.hljs-doctag { color: #a5d6ff; }\n.hljs-number,\n.hljs-literal { color: #79c0ff; }\n.hljs-title,\n.hljs-section,\n.hljs-selector-id { color: #d2a8ff; font-weight: bold; }\n.hljs-function > .hljs-title { color: #d2a8ff; }\n.hljs-type,\n.hljs-class .hljs-title { color: #7ee787; }\n.hljs-attribute { color: #79c0ff; }\n.hljs-variable,\n.hljs-template-variable { color: #ffa657; }\n.hljs-built_in { color: #ffa657; }\n.hljs-addition { color: #aff5b4; background: rgba(46, 160, 67, 0.15); }\n.hljs-deletion { color: #ffdcd7; background: rgba(248, 81, 73, 0.15); }\n\n/* 变量占位符高亮 */\n.gh-variable-highlight {\n  background: rgba(56, 139, 253, 0.2);\n  color: #58a6ff;\n  padding: 2px 6px;\n  border-radius: 4px;\n  font-weight: 500;\n}\n\n/* Markdown 渲染样式 */\n.gh-markdown-preview {\n  line-height: 1.6;\n  color: var(--gh-text, #e6edf3);\n}\n.gh-markdown-preview h1,\n.gh-markdown-preview h2,\n.gh-markdown-preview h3 {\n  margin: 16px 0 8px;\n  font-weight: 600;\n  border-bottom: 1px solid var(--gh-border, #30363d);\n  padding-bottom: 4px;\n}\n.gh-markdown-preview h1 { font-size: 1.5em; }\n.gh-markdown-preview h2 { font-size: 1.3em; }\n.gh-markdown-preview h3 { font-size: 1.1em; }\n.gh-markdown-preview p { margin: 8px 0; }\n.gh-markdown-preview code:not(.hljs) {\n  background: var(--gh-bg-tertiary, #343942);\n  padding: 2px 6px;\n  border-radius: 4px;\n  font-size: 13px;\n}\n.gh-markdown-preview pre {\n  margin: 12px 0;\n  position: relative;\n  max-width: 100%;\n  overflow: hidden;\n}\n.gh-markdown-preview pre code {\n  display: block;\n  max-width: 100%;\n  overflow-x: auto;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  word-break: break-all;\n}\n/* 代码块复制按钮 */\n.gh-code-copy-btn {\n  position: absolute;\n  top: 8px;\n  right: 8px;\n  padding: 4px 8px;\n  background: var(--gh-bg-secondary, #2d333b);\n  border: 1px solid var(--gh-border, #444c56);\n  border-radius: 4px;\n  color: var(--gh-text-secondary, #8b949e);\n  font-size: 12px;\n  cursor: pointer;\n  opacity: 0;\n  transition: opacity 0.2s;\n}\n.gh-markdown-preview pre:hover .gh-code-copy-btn {\n  opacity: 1;\n}\n.gh-code-copy-btn:hover {\n  background: var(--gh-hover, #373e47);\n  color: var(--gh-text, #e6edf3);\n}\n.gh-markdown-preview blockquote {\n  border-left: 3px solid var(--gh-primary, #4285f4);\n  margin: 12px 0;\n  padding: 8px 16px;\n  background: var(--gh-bg-secondary, #161b22);\n  color: var(--gh-text-secondary, #8b949e);\n}\n.gh-markdown-preview ul,\n.gh-markdown-preview ol {\n  margin: 8px 0;\n  padding-left: 24px;\n}\n.gh-markdown-preview li { margin: 4px 0; }\n.gh-markdown-preview a {\n  color: var(--gh-primary, #58a6ff);\n  text-decoration: none;\n}\n.gh-markdown-preview a:hover { text-decoration: underline; }\n\n/* 任务列表样式 */\n.gh-markdown-preview .task-list-item {\n  list-style: none;\n  margin-left: -20px;\n}\n.gh-markdown-preview .task-list-item input[type=\"checkbox\"] {\n  margin-right: 8px;\n  pointer-events: none;\n}\n\n/* 高亮 ==text== */\n.gh-markdown-preview mark {\n  background: rgba(255, 235, 59, 0.4);\n  color: inherit;\n  padding: 2px 4px;\n  border-radius: 3px;\n}\n\n/* 容器样式 :::info, :::warning, :::danger */\n.gh-container {\n  margin: 12px 0;\n  padding: 12px 16px;\n  border-radius: 6px;\n  border-left: 4px solid;\n}\n.gh-container-info {\n  background: rgba(56, 139, 253, 0.1);\n  border-color: #388bfd;\n}\n.gh-container-warning {\n  background: rgba(255, 166, 87, 0.1);\n  border-color: #ffa657;\n}\n.gh-container-danger {\n  background: rgba(248, 81, 73, 0.1);\n  border-color: #f85149;\n}\n"})]})}),document.body):null,_.show?hd.createPortal(
         P.jsx("div",{className:"import-dialog gh-interactive",onClick:e=>{e.target===e.currentTarget&&ie();},style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"var(--gh-overlay-bg, rgba(0, 0, 0, 0.5))",display:"flex",alignItems:"center",justifyContent:"center",zIndex:10001},children:P.jsxs("div",{style:{width:"90%",maxWidth:"400px",background:"var(--gh-bg, white)",borderRadius:"12px",boxShadow:"var(--gh-shadow-lg)",padding:"24px"},children:[
         P.jsx("div",{style:{fontSize:"16px",fontWeight:600,marginBottom:"12px",color:"var(--gh-text)"},children:En("promptImportTitle")||"导入提示词"}),
         P.jsxs("div",{style:{fontSize:"14px",color:"var(--gh-text-secondary)",marginBottom:"20px",lineHeight:1.6},children:[(En("promptImportMessage2")||"发现 {count} 个提示词,请选择导入方式:").replace("{count}",_.prompts.length.toString()),
         P.jsxs("ul",{style:{margin:"8px 0 0 0",paddingLeft:"20px"},children:[
         P.jsx("li",{children:En("promptImportOverwriteDesc")||"覆盖:清空现有,使用导入的"}),
         P.jsx("li",{children:En("promptImportMergeDesc")||"合并:相同ID更新,新ID追加"})]})]}),
         P.jsxs("div",{style:{display:"flex",gap:"12px",justifyContent:"flex-end"},children:[
         P.jsx(yd,{variant:"ghost",onClick:ie,style:{background:"var(--gh-hover, #f3f4f6)"},children:En("cancel")||"取消"}),
         P.jsx(yd,{variant:"ghost",onClick:Y,style:{background:"var(--gh-primary-light, #e3f2fd)",color:"var(--gh-primary, #4285f4)"},children:En("promptMerge")||"合并"}),
         P.jsx(yd,{variant:"primary",onClick:X,children:En("promptOverwrite")||"覆盖"})]})]})}),document.body):null,x.show&&P.jsx(fd,{title:x.title,message:x.message,danger:true,closeOnOverlayClick:false,onConfirm:()=>{re(),x.onConfirm();},onCancel:re}),w.show&&P.jsx(bd,{title:w.title,defaultValue:w.defaultValue,closeOnOverlayClick:false,onConfirm:e=>{oe(),w.onConfirm(e);},onCancel:oe}),E.show&&P.jsx(Zd,{variables:E.variables,onConfirm:async e=>{const{prompt:t,submitAfterInsert:n}=E;if(!t)return;const r=((e,t)=>e.replace(/\{\{([^\s{}]+)\}\}/g,(e,n)=>n in t?t[n]:e))(t.content,e);A({show:false,prompt:null,variables:[],submitAfterInsert:false}),await new Promise(e=>{window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>e());});}),await $(t,r,n);},onCancel:se}),
         P.jsx("style",{children:"\n        @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }\n        @keyframes slideUp { from { transform: translateY(20px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }\n      "})]})},Yd=({onClose:e,isOpen:t,promptManager:n,conversationManager:r,outlineManager:o,adapter:a,onThemeToggle:i,themeMode:s,selectedPromptId:l,onPromptSelect:c,edgeSnapState:d,isEdgePeeking:h=false,onEdgeSnap:g,onUnsnap:p,onInteractionStateChange:m,onOpenSettings:f,onMouseEnter:b,onMouseLeave:y})=>{const{settings:v}=wr(),x=v||dr,S=x.features?.order||dr.features.order,{panelRef:w,headerRef:k}=function(e={}){const{edgeSnapHide:t=false,edgeSnapState:n,snapThreshold:r=30,onEdgeSnap:o,onUnsnap:a}=e,i=u.useRef(null),s=u.useRef(null),l=u.useRef(false),c=u.useRef(false),d=u.useRef({x:0,y:0}),h=u.useCallback(e=>{if(e.target.closest(".gh-panel-controls"))return;const t=i.current;if(!t)return;e.preventDefault(),n&&a?.();const r=t.getBoundingClientRect();d.current={x:e.clientX-r.left,y:e.clientY-r.top},t.style.left=r.left+"px",t.style.top=r.top+"px",t.style.right="auto",t.style.transform="none",c.current=false,l.current=true,t.classList.add("dragging"),document.body.style.userSelect="none";},[n,a]),g=u.useCallback(e=>{if(!l.current)return;const t=i.current;t&&(e.preventDefault(),c.current=true,t.style.left=e.clientX-d.current.x+"px",t.style.top=e.clientY-d.current.y+"px");},[]),p=u.useCallback(()=>{if(!l.current)return;const e=i.current,n=c.current;if(l.current=false,document.body.style.userSelect="",e?.classList.remove("dragging"),t&&n&&e){const t=e.getBoundingClientRect();t.left<r?o?.("left"):window.innerWidth-t.right<r&&o?.("right");}},[t,o,r]),m=u.useCallback(()=>{const e=i.current;if(!e)return;if(n)return;const t=e.getBoundingClientRect(),r=window.innerWidth,o=window.innerHeight;let a=t.left,s=t.top;t.right>r&&(a=r-t.width-10),t.bottom>o&&(s=o-t.height-10),t.left<0&&(a=10),t.top<0&&(s=10),a===t.left&&s===t.top||(e.style.left=a+"px",e.style.top=s+"px",e.style.right="auto",e.style.transform="none");},[n]);return u.useEffect(()=>{const e=s.current;if(e)return e.addEventListener("mousedown",h),document.addEventListener("mousemove",g),document.addEventListener("mouseup",p),window.addEventListener("resize",m),()=>{e.removeEventListener("mousedown",h),document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",p),window.removeEventListener("resize",m);}},[h,g,p,m]),{panelRef:i,headerRef:s}}({edgeSnapHide:x.panel?.edgeSnap,edgeSnapState:d,snapThreshold:x.panel?.edgeSnapThreshold??30,onEdgeSnap:g,onUnsnap:p}),C=x.panel?.defaultPosition??"right",T=x.panel?.defaultEdgeDistance??40,D=e=>e&&e.length>0?e[0]:ze,[E,A]=u.useState(ze),[_,L]=u.useState(false);u.useEffect(()=>{v&&!_&&(A(D(v.features?.order)),L(true));},[v,_]),u.useEffect(()=>{_&&S&&S.length>0&&(S.includes(E)||A(D(S)));},[S,_,E]),u.useEffect(()=>{const e=()=>{A(Oe);},t=()=>{A(Be);},n=e=>{const t=e.detail?.index;"number"==typeof t&&S[t]&&A(S[t]);};return window.addEventListener("ophel:locateOutline",e),window.addEventListener("ophel:searchOutline",e),window.addEventListener("ophel:locateConversation",t),window.addEventListener("ophel:switchTab",n),()=>{window.removeEventListener("ophel:locateOutline",e),window.removeEventListener("ophel:searchOutline",e),window.removeEventListener("ophel:locateConversation",t),window.removeEventListener("ophel:switchTab",n);}},[S]),u.useEffect(()=>{const e=a?.getSiteId();if(t&&(e===zn.GROK||e===zn.CLAUDE)){const e=w.current;if(!e)return;const t=e=>{const t=e.target;("INPUT"===t.tagName||"TEXTAREA"===t.tagName||"SELECT"===t.tagName||"true"===t.getAttribute("contenteditable"))&&(e.stopPropagation(),e.stopImmediatePropagation());};return e.addEventListener("keydown",t,true),e.addEventListener("keypress",t,true),()=>{e.removeEventListener("keydown",t,true),e.removeEventListener("keypress",t,true);}}},[t,a,w]);const I=null!==u.useSyncExternalStore(Pa,Na),[R,W]=u.useState(false),[K,V]=u.useState(""),G=u.useRef(false),Q=u.useCallback(async()=>{G.current=false;const e=new AbortController,t=setInterval(()=>{G.current&&e.abort();},100);let n=setTimeout(()=>{G.current||(W(true),V(En("loadingHistory")));},1600);try{const t=await Ka({adapter:a||null,loadAll:!0,signal:e.signal,allowShortCircuit:!0,onProgress:e=>{V(`${En("loadingHistory")} ${e}`);}});La(t.previousScrollTop),n&&(clearTimeout(n),n=null),W(!1),V(""),t.success&&!t.silent&&Yr(En("historyLoaded"),2e3);}finally{clearInterval(t),n&&clearTimeout(n);}},[a]),$=u.useCallback(()=>{G.current=true;},[]),X=u.useCallback(async()=>{const{previousScrollTop:e}=await Ra(a||null);La(e);},[a]),Y=u.useCallback(async()=>{const e=_a();if(null===e)return;const t=(await za(a||null)).scrollTop;await Fa(a||null,e),La(t);},[a]),ee=u.useCallback(async()=>{const e=await za(a||null);La(e.scrollTop);},[a]);if(!t)return null;const te=S.filter(e=>e!==qe&&((e!==ze||false!==x.features?.prompts?.enabled)&&((e!==Be||false!==x.features?.conversations?.enabled)&&(e!==Oe||false!==x.features?.outline?.enabled))));
         return P.jsxs(P.Fragment,{children:[
         P.jsx(jd,{isVisible:R,text:K,onStop:$}),
         P.jsxs("div",{ref:w,onMouseEnter:b,onMouseLeave:y,className:`gh-main-panel gh-interactive ${d?`edge-snapped-${d}`:""} ${h?"edge-peek":""}`,style:{position:"fixed",top:"50%",..."left"===C?{left:`${T}px`,right:"auto"}:{right:`${T}px`,left:"auto"},transform:"translateY(-50%)",width:`${x.panel?.width??320}px`,height:`${x.panel?.height??85}vh`,
         // @ts-ignore - 注入 CSS 变量供吸附计算使用
         "--panel-width":`${x.panel?.width??320}px`,minHeight:"500px",backgroundColor:"var(--gh-bg, #ffffff)",backgroundImage:"var(--gh-bg-image, none)",backgroundBlendMode:"overlay",animation:"var(--gh-bg-animation, none)",borderRadius:"12px",boxShadow:"var(--gh-shadow, 0 10px 40px rgba(0,0,0,0.15))",display:"flex",flexDirection:"column",overflow:"hidden",border:"1px solid var(--gh-border, #e5e7eb)",zIndex:9999,fontFamily:'-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif'},children:[(()=>{const e=a?.getSiteId()||"_default",t=v.theme?.sites?.[e]||v.theme?.sites?._default,n="light"===(s||("dark"===t?.mode?"dark":"light"))?t?.lightStyleId:t?.darkStyleId,r=v.theme?.customStyles;if(Array.isArray(r)){const e=r.find(e=>e.id===n);if(e)
         return P.jsx("style",{children:e.css})}return null})(),
         P.jsxs("div",{ref:k,className:"gh-panel-header",style:{padding:"12px 14px",borderRadius:"12px 12px 0 0",display:"flex",alignItems:"center",justifyContent:"space-between",userSelect:"none"},children:[
         P.jsx(xd,{content:En("aboutPageDesc"),children:P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"6px",cursor:"pointer"},onDoubleClick:()=>{window.postMessage({type:"GH_PRIVACY_TOGGLE"},"*");},children:[
         P.jsx("span",{style:{fontSize:"16px"},children:"✨"}),
         P.jsx("span",{style:{fontSize:"15px",fontWeight:600},children:En("panelTitle")})]})}),
         P.jsxs("div",{className:"gh-panel-controls",style:{display:"flex",gap:"4px",alignItems:"center"},children:[i&&P.jsx(xd,{content:En("toggleTheme"),children:P.jsx("button",{onClick:i,style:{background:"var(--gh-glass-bg, rgba(255,255,255,0.2))",border:"none",color:"var(--gh-glass-text, white)",width:"24px",height:"24px",borderRadius:"6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"14px",transition:"all 0.2s"},children:"dark"===s?P.jsx(N,{size:14}):P.jsx(M,{size:14})})}),
         P.jsx(xd,{content:En("newTabTooltip")||"新标签页打开",children:P.jsx("button",{onClick:()=>window.open(window.location.origin,"_blank"),style:{background:"var(--gh-glass-bg, rgba(255,255,255,0.2))",border:"none",color:"var(--gh-glass-text, white)",width:"24px",height:"24px",borderRadius:"6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"16px",transition:"all 0.2s"},children:P.jsx(F,{size:14})})}),
         P.jsx(xd,{content:En("tabSettings"),children:P.jsx("button",{onClick:()=>{f?.();},style:{background:"var(--gh-glass-bg, rgba(255,255,255,0.2))",border:"none",color:"var(--gh-glass-text, white)",width:"24px",height:"24px",borderRadius:"6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"14px",transition:"all 0.2s"},children:P.jsx(z,{size:14})})}),
         P.jsx(xd,{content:En(E===Oe?"refreshOutline":E===ze?"refreshPrompts":E===Be?"refreshConversations":"refresh"),children:P.jsx("button",{onClick:()=>{E===Oe?o?.refresh():E===ze?n?.init():E===Be&&r?.notifyDataChange();},style:{background:"var(--gh-glass-bg, rgba(255,255,255,0.2))",border:"none",color:"var(--gh-glass-text, white)",width:"24px",height:"24px",borderRadius:"6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"14px",transition:"all 0.2s"},children:P.jsx(O,{size:14})})}),
         P.jsx(xd,{content:En("collapse"),children:P.jsx("button",{onClick:e,style:{background:"var(--gh-glass-bg, rgba(255,255,255,0.2))",border:"none",color:"var(--gh-glass-text, white)",width:"24px",height:"24px",borderRadius:"6px",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"18px",fontWeight:600,transition:"all 0.2s"},children:P.jsx(B,{size:14})})})]})]}),
         P.jsx("div",{className:"gh-panel-tabs",style:{display:"flex",borderBottom:"1px solid var(--gh-border, #e5e7eb)",padding:"0",background:"var(--gh-bg-secondary, #f9fafb)"},children:te.map(e=>{let t=null;return e===Oe?t=q:e===ze?t=U:e===Be&&(t=H),P.jsxs("button",{onClick:()=>A(e),style:{flex:1,padding:"10px 8px",border:"none",background:"transparent",borderBottom:E===e?"3px solid var(--gh-primary, #4285f4)":"3px solid transparent",color:E===e?"var(--gh-primary, #4285f4)":"var(--gh-text-secondary, #6b7280)",fontWeight:E===e?600:400,cursor:"pointer",fontSize:"13px",whiteSpace:"nowrap",display:"flex",alignItems:"center",justifyContent:"center",gap:"4px",transition:"all 0.2s"},children:[
         P.jsx("span",{style:{display:"flex",alignItems:"center"},children:t&&P.jsx(t,{size:16})}),
         P.jsx("span",{children:En(`tab${e.charAt(0).toUpperCase()+e.slice(1)}`)})]},e)})}),
         P.jsxs("div",{className:"gh-panel-content",style:{flex:1,overflowY:"auto",padding:"0",scrollbarWidth:"none",msOverflowStyle:"none"},children:[E===ze&&P.jsx(Xd,{manager:n,selectedPromptId:l,onPromptSelect:c}),E===Be&&P.jsx(Wd,{manager:r,onInteractionStateChange:m}),E===Oe&&P.jsx(Qd,{manager:o,onJumpBefore:ee})]}),
         P.jsxs("div",{className:"gh-panel-footer",style:{display:"flex",justifyContent:"space-around",alignItems:"center",padding:"10px 16px",borderTop:"1px solid var(--gh-border, #e5e7eb)",background:"var(--gh-bg-secondary, #f9fafb)"},children:[
         P.jsx(xd,{content:En("scrollTop"),triggerStyle:{flex:1,maxWidth:"120px"},children:P.jsxs("button",{className:"gh-interactive scroll-nav-btn",onClick:Q,style:{width:"100%",height:"32px",display:"flex",alignItems:"center",justifyContent:"center",gap:"4px",background:"var(--gh-header-bg)",color:"var(--gh-footer-text, var(--gh-text-on-primary, white))",border:"none",borderRadius:"8px",cursor:"pointer",fontSize:"14px",transition:"transform 0.2s, box-shadow 0.2s",boxShadow:"var(--gh-btn-shadow)"},onMouseEnter:e=>{e.currentTarget.style.transform="translateY(-1px)",e.currentTarget.style.boxShadow="var(--gh-btn-shadow-hover)";},onMouseLeave:e=>{e.currentTarget.style.transform="translateY(0)",e.currentTarget.style.boxShadow="var(--gh-btn-shadow)";},children:[
         P.jsx(Z,{size:14}),
         P.jsx("span",{children:En("scrollTop")})]})}),
         P.jsx(xd,{content:I?En("jumpToAnchor"):"暂无锚点",triggerStyle:{flex:"0 0 32px"},children:P.jsx("button",{className:"gh-interactive scroll-nav-btn anchor-btn",onClick:Y,disabled:!I,style:{width:"32px",height:"32px",background:"var(--gh-header-bg)",color:"var(--gh-footer-text, var(--gh-text-on-primary, white))",border:"none",borderRadius:"50%",padding:0,cursor:I?"pointer":"default",fontSize:"14px",display:"flex",alignItems:"center",justifyContent:"center",transition:"transform 0.2s, box-shadow 0.2s",boxShadow:"var(--gh-btn-shadow)",opacity:I?1:.4},onMouseEnter:e=>{if(I){e.currentTarget.style.transform="scale(1.1)",e.currentTarget.style.boxShadow="var(--gh-btn-shadow-hover)";const t=e.currentTarget.querySelector("div");t&&(t.style.transform="rotate(360deg)");}},onMouseLeave:e=>{e.currentTarget.style.transform="scale(1)",e.currentTarget.style.boxShadow=I?"var(--gh-btn-shadow)":"none";const t=e.currentTarget.querySelector("div");t&&(t.style.transform="rotate(0deg)");},children:P.jsx("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",transition:"transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1)"},children:P.jsx(j,{size:14})})})}),
         P.jsx(xd,{content:En("scrollBottom"),triggerStyle:{flex:1,maxWidth:"120px"},children:P.jsxs("button",{className:"gh-interactive scroll-nav-btn",onClick:X,style:{width:"100%",height:"32px",display:"flex",alignItems:"center",justifyContent:"center",gap:"4px",background:"var(--gh-header-bg)",color:"var(--gh-footer-text, var(--gh-text-on-primary, white))",border:"none",borderRadius:"8px",cursor:"pointer",fontSize:"14px",transition:"transform 0.2s, box-shadow 0.2s",boxShadow:"var(--gh-btn-shadow)"},onMouseEnter:e=>{e.currentTarget.style.transform="translateY(-1px)",e.currentTarget.style.boxShadow="var(--gh-btn-shadow-hover)";},onMouseLeave:e=>{e.currentTarget.style.transform="translateY(0)",e.currentTarget.style.boxShadow="var(--gh-btn-shadow)";},children:[
         P.jsx(J,{size:14}),
         P.jsx("span",{children:En("scrollBottom")})]})})]})]})]})};e(".gh-queue-capsule{position:fixed;z-index:99998;display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:20px;background:var(--gh-bg, #ffffff);border:1px solid var(--gh-border, #e5e7eb);color:var(--gh-text, #1f2937);font-size:13px;font-weight:500;cursor:pointer;-webkit-user-select:none;user-select:none;box-shadow:0 2px 12px #00000014;transition:all .2s ease;font-family:var(--gh-font-family, system-ui, -apple-system, sans-serif)}.gh-queue-capsule:hover{transform:translateY(-1px);background:var(--gh-bg-secondary, #f9fafb);box-shadow:0 4px 16px #0000001f}.gh-queue-capsule-icon{font-size:14px;line-height:1}.gh-queue-capsule-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--gh-bg-accent, #eef2ff);color:var(--gh-accent, #4285f4);font-size:11px;font-weight:600}.gh-queue-panel{position:fixed;z-index:99999;width:420px;max-width:calc(100vw - 40px);max-height:400px;border-radius:16px;background:var(--gh-bg, #ffffff);border:1px solid var(--gh-border, #e5e7eb);box-shadow:0 8px 32px #0000001f,0 2px 8px #0000000f;display:flex;flex-direction:column;overflow:hidden;font-family:var(--gh-font-family, system-ui, -apple-system, sans-serif)}.gh-queue-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--gh-border-light, #f3f4f6)}.gh-queue-header-title{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--gh-text, #1f2937)}.gh-queue-header-actions{display:flex;align-items:center;gap:4px}.gh-queue-header-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:6px;background:transparent;color:var(--gh-text-secondary, #6b7280);cursor:pointer;font-size:16px;transition:all .15s}.gh-queue-header-btn:hover{background:var(--gh-bg-tertiary, #f3f4f6);color:var(--gh-text, #1f2937)}.gh-queue-list{flex:1;overflow-y:auto;padding:8px;max-height:180px}.gh-queue-empty{display:flex;align-items:center;justify-content:center;padding:16px;color:var(--gh-text-tertiary, #9ca3af);font-size:13px}.gh-queue-item{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:8px;margin-bottom:4px;background:var(--gh-bg-secondary, #f9fafb);transition:background .15s}.gh-queue-item:hover{background:var(--gh-bg-tertiary, #f3f4f6)}.gh-queue-item-index{flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--gh-accent, #4285f4);color:#fff;font-size:11px;font-weight:600;margin-top:1px}.gh-queue-item-content{flex:1;min-width:0;font-size:13px;line-height:1.5;color:var(--gh-text, #1f2937);word-break:break-word;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.gh-queue-item-actions{flex-shrink:0;display:flex;align-items:center;gap:4px;opacity:0;transition:opacity .15s}.gh-queue-item:hover .gh-queue-item-actions{opacity:1}.gh-queue-item-remove,.gh-queue-item-force-send,.gh-queue-item-edit{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border:none;border-radius:4px;background:transparent;color:var(--gh-text-tertiary, #9ca3af);cursor:pointer;transition:all .15s}.gh-queue-item-remove:hover{background:var(--gh-bg-danger, #fef2f2);color:var(--gh-text-danger, #dc2626)}.gh-queue-item-force-send:hover,.gh-queue-item-edit:hover{background:var(--gh-bg-accent, #eef2ff);color:var(--gh-accent, #4285f4)}.gh-queue-item-edit-area{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.gh-queue-item-edit-input{width:100%;padding:6px 8px;border:1px solid var(--gh-accent, #4285f4);border-radius:6px;background:var(--gh-bg, #ffffff);color:var(--gh-text, #1f2937);font-size:13px;line-height:1.5;resize:vertical;min-height:48px;max-height:120px;outline:none;font-family:inherit}.gh-queue-item-edit-actions-row{display:flex;align-items:center;justify-content:flex-end;gap:4px}.gh-queue-item-edit-btn-save,.gh-queue-item-edit-btn-cancel{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:4px;background:transparent;cursor:pointer;transition:all .15s}.gh-queue-item-edit-btn-save{color:var(--gh-accent, #4285f4)}.gh-queue-item-edit-btn-save:hover{background:var(--gh-bg-accent, #eef2ff)}.gh-queue-item-edit-btn-cancel{color:var(--gh-text-tertiary, #9ca3af)}.gh-queue-item-edit-btn-cancel:hover{background:var(--gh-bg-tertiary, #f3f4f6);color:var(--gh-text, #1f2937)}.gh-queue-item[data-status=sending]{border-left:3px solid var(--gh-accent, #4285f4)}.gh-queue-item[data-status=sent]{opacity:.5}.gh-queue-item[data-status=failed]{border-left:3px solid var(--gh-text-danger, #dc2626)}.gh-queue-input-area{padding:12px;border-top:1px solid var(--gh-border-light, #f3f4f6)}.gh-queue-input-wrapper{display:flex;align-items:flex-end;gap:8px}.gh-queue-input{flex:1;min-height:36px;max-height:120px;padding:8px 12px;border:1.5px solid var(--gh-border, #e5e7eb);border-radius:10px;background:var(--gh-bg, #ffffff);color:var(--gh-text, #1f2937);font-size:13px;line-height:1.5;resize:none;outline:none;font-family:inherit;transition:border-color .15s}.gh-queue-input:focus{border-color:var(--gh-accent, #4285f4)}.gh-queue-input::placeholder{color:var(--gh-text-tertiary, #9ca3af)}.gh-queue-send-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:10px;background:var(--gh-accent, #4285f4);color:#fff;cursor:pointer;font-size:16px;transition:all .15s}.gh-queue-send-btn:hover{background:var(--gh-accent-hover, #3b78e7)}.gh-queue-send-btn:disabled{opacity:.5;cursor:not-allowed}.gh-queue-status{display:flex;align-items:center;gap:6px;padding:6px 12px;font-size:11px;color:var(--gh-text-tertiary, #9ca3af)}.gh-queue-disable-hint{margin-left:4px;opacity:.6;font-size:10px;cursor:help}.gh-queue-status-dot{width:6px;height:6px;border-radius:50%;background:#22c55e}.gh-queue-status-dot[data-generating=true]{background:#f59e0b;animation:gh-queue-pulse 1.5s infinite}@keyframes gh-queue-pulse{0%,to{opacity:1}50%{opacity:.4}}.gh-queue-shortcut-hint{margin-left:auto;font-size:10px;color:var(--gh-text-tertiary, #9ca3af);opacity:.6}");const eu=({adapter:e,dispatcher:t})=>{const[n,r]=u.useState(false),[o,a]=u.useState(false),[i,s]=u.useState(""),[l,c]=u.useState(null),[d,g]=u.useState(""),[p,m]=u.useState(null),f=va(e=>e.items),b=va(),y=u.useRef(null),v=u.useRef(null),x=f.filter(e=>"pending"===e.status).length,S=f.filter(e=>"pending"===e.status||"sending"===e.status).length,w=f.filter(e=>"pending"===e.status||"sending"===e.status).length,k=wr(e=>e.settings.features?.prompts?.submitShortcut??"enter"),C=wr(e=>e.settings?.shortcuts),T=C?.keybindings?.togglePromptQueue,D=h.useMemo(()=>{if(null===T)return "";if(T){const e=navigator.userAgent.toLowerCase().includes("mac"),t=[];T.ctrl&&t.push(e?"⌃":"Ctrl"),T.alt&&t.push(e?"⌥":"Alt"),T.shift&&t.push(e?"⇧":"Shift"),T.meta&&t.push(e?"⌘":"Win");const n={ArrowUp:"↑",ArrowDown:"↓",ArrowLeft:"←",ArrowRight:"→",Enter:"↵",Escape:"Esc"}[T.key]||T.key.toUpperCase();return t.push(n),e?t.join(""):t.join("+")}return navigator.userAgent.toLowerCase().includes("mac")?"⌥J":"Alt+J"},[T]),E=u.useCallback(()=>{const t=e.getTextareaElement();if(!t)return void m(null);const n=t.getBoundingClientRect(),r=window.innerHeight-n.top+12,o=Math.min(420,window.innerWidth-40);let a=n.right-20-o;a<20&&(a=20);const i=window.innerWidth-(a+o);m({bottom:r,right:i,width:o});},[e]);u.useEffect(()=>{E();let t=null,n=null;const r=()=>{n=e.getTextareaElement(),n&&(t=new ResizeObserver(()=>{E();}),t.observe(n),n.parentElement&&t.observe(n.parentElement));};r();const o=setInterval(()=>{E(),t||n||r();},2e3);return window.addEventListener("resize",E),()=>{clearInterval(o),window.removeEventListener("resize",E),t&&t.disconnect();}},[E,e]),u.useEffect(()=>{const t=setInterval(()=>{a(e.isGenerating());},1e3);return ()=>clearInterval(t)},[e]),u.useEffect(()=>{const e=()=>{r(e=>!e);};return window.addEventListener("ophel:togglePromptQueue",e),()=>window.removeEventListener("ophel:togglePromptQueue",e)},[]),u.useEffect(()=>{n&&y.current&&setTimeout(()=>y.current?.focus(),100);},[n]),u.useEffect(()=>{if(!n)return;const e=e=>{v.current&&!v.current.contains(e.target)&&r(false);},t=setTimeout(()=>{document.addEventListener("mousedown",e);},100);return ()=>{clearTimeout(t),document.removeEventListener("mousedown",e);}},[n]);const A=u.useCallback(async()=>{const e=i.trim();e&&(s(""),o?(b.enqueue(e),t.isRunning()||t.start()):await t.sendImmediately(e,k));},[i,o,b,t,k]),_=u.useCallback(e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),e.stopPropagation(),A()),"Escape"===e.key&&(e.stopPropagation(),r(false));},[A]),L=u.useCallback(e=>{b.remove(e);},[b]),N=u.useCallback(async(e,n)=>{b.remove(e);await t.sendImmediately(n,k)||(b.enqueue(n),t.isRunning()||t.start());},[b,t,k]),M=u.useCallback(()=>{b.clear();},[b]),I=u.useCallback((e,t)=>{c(e),g(t);},[]),j=u.useCallback(e=>{d.trim()&&b.updateContent(e,d.trim()),c(null);},[d,b]),R=u.useCallback(()=>{c(null);},[]),F=u.useCallback(()=>{y.current&&(y.current.style.height="0px",y.current.style.height=Math.min(y.current.scrollHeight,120)+"px");},[]);u.useEffect(()=>{F();},[i,F]);const z=u.useCallback(e=>{s(e.target.value);},[]);if(!p)return null;const O=document.querySelector(".gh-root")||document.body,B={bottom:p.bottom,right:p.right},q={bottom:p.bottom,right:p.right,width:p.width};return n?hd.createPortal(
         P.jsxs("div",{className:"gh-queue-panel",style:q,ref:v,children:[
         P.jsxs("div",{className:"gh-queue-header",children:[
         P.jsxs("div",{className:"gh-queue-header-title",children:[
         P.jsx("span",{children:P.jsx(U,{size:16,color:"currentColor"})}),
         P.jsx("span",{children:En("queueTitle")}),x>0&&P.jsx("span",{className:"gh-queue-capsule-badge",children:x})]}),
         P.jsxs("div",{className:"gh-queue-header-actions",children:[w>0&&P.jsx("button",{className:"gh-queue-header-btn",onClick:M,title:En("queueClearAll"),children:P.jsx(ke,{size:16,color:"currentColor"})}),
         P.jsx("button",{className:"gh-queue-header-btn",onClick:()=>r(false),title:"Esc",children:P.jsxs("svg",{viewBox:"0 0 24 24",width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[
         P.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),
         P.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]}),
         P.jsx("div",{className:"gh-queue-list",children:0===f.filter(e=>"pending"===e.status||"sending"===e.status).length?P.jsx("div",{className:"gh-queue-empty",children:En("queueEmpty")}):f.filter(e=>"pending"===e.status||"sending"===e.status).map((e,t)=>P.jsxs("div",{className:"gh-queue-item","data-status":e.status,children:[
         P.jsx("span",{className:"gh-queue-item-index",children:t+1}),l===e.id?P.jsxs("div",{className:"gh-queue-item-edit-area",children:[
         P.jsx("textarea",{className:"gh-queue-item-edit-input",value:d,onChange:e=>{g(e.target.value);const t=e.target;t.style.height="0px",t.style.height=Math.min(t.scrollHeight,120)+"px";},onKeyDown:t=>{"Enter"!==t.key||t.shiftKey||(t.preventDefault(),j(e.id)),"Escape"===t.key&&R();},autoFocus:true}),
         P.jsxs("div",{className:"gh-queue-item-edit-actions-row",children:[
         P.jsx("button",{className:"gh-queue-item-edit-btn-save",onClick:()=>j(e.id),title:En("queueEditSave")||"保存",children:P.jsx("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:P.jsx("polyline",{points:"20 6 9 17 4 12"})})}),
         P.jsx("button",{className:"gh-queue-item-edit-btn-cancel",onClick:R,title:En("queueEditCancel")||"取消",children:P.jsxs("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[
         P.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),
         P.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]}):P.jsxs(P.Fragment,{children:[
         P.jsx("span",{className:"gh-queue-item-content",children:e.content}),
         P.jsxs("div",{className:"gh-queue-item-actions",children:["pending"===e.status&&P.jsx("button",{className:"gh-queue-item-edit",onClick:()=>I(e.id,e.content),title:En("queueEdit")||"编辑",children:P.jsxs("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[
         P.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),
         P.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]})}),"pending"===e.status&&P.jsx("button",{className:"gh-queue-item-force-send",onClick:()=>N(e.id,e.content),title:En("queueForceSend")||"Force Send",children:P.jsxs("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[
         P.jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),
         P.jsx("polyline",{points:"5 12 12 5 19 12"})]})}),
         P.jsx("button",{className:"gh-queue-item-remove",onClick:()=>L(e.id),title:En("queueRemove"),children:P.jsxs("svg",{viewBox:"0 0 24 24",width:"14",height:"14",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[
         P.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),
         P.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]})]})]},e.id))}),
         P.jsx("div",{className:"gh-queue-input-area",children:P.jsxs("div",{className:"gh-queue-input-wrapper",children:[
         P.jsx("textarea",{ref:y,className:"gh-queue-input",value:i,onChange:z,onKeyDown:_,placeholder:En(o?"queuePlaceholderBusy":"queuePlaceholderIdle"),rows:1}),
         P.jsx("button",{className:"gh-queue-send-btn",onClick:A,disabled:!i.trim(),title:"Enter",children:P.jsxs("svg",{viewBox:"0 0 24 24",width:"16",height:"16",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[
         P.jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),
         P.jsx("polyline",{points:"5 12 12 5 19 12"})]})})]})}),
         P.jsxs("div",{className:"gh-queue-status",children:[
         P.jsx("span",{className:"gh-queue-status-dot","data-generating":o?"true":"false"}),
         P.jsx("span",{children:En(o?"queueStatusBusy":"queueStatusIdle")}),
         P.jsxs("span",{className:"gh-queue-disable-hint",title:En("queueSettingDesc"),children:["(",En("queueDisableHint"),")"]}),D&&P.jsx("span",{className:"gh-queue-shortcut-hint",children:D})]})]}),O):hd.createPortal(
         P.jsxs("div",{className:"gh-queue-capsule",style:B,onClick:()=>r(true),title:D,children:[
         P.jsx("span",{className:"gh-queue-capsule-icon",children:P.jsx(U,{size:14,color:"currentColor"})}),
         P.jsx("span",{children:S>0?En("queueInQueue",{count:String(S)}):En("queueQuickAsk")}),S>0&&P.jsx("span",{className:"gh-queue-capsule-badge",children:S})]}),O)},tu=({isPanelOpen:e,onPanelToggle:t,onThemeToggle:n,themeMode:r,onExport:o,onMove:a,onSetTag:i,onScrollLock:s,onSettings:l,onCleanup:c,onGlobalSearch:d,scrollLocked:g,onCopyMarkdown:p,onModelLockToggle:m,isModelLocked:f})=>{const{settings:b}=wr(),y=b||dr,v=y.collapsedButtons||[],x=y.panel?.defaultPosition??"right",S="left"===x?{left:"16px",right:"auto"}:{right:"16px",left:"auto"},w=Math.min(Math.max(y.quickButtonsOpacity??1,.4),1),k=u.useRef(null),[C,T]=u.useState(false);u.useEffect(()=>{if(!C)return;const e=e=>{const t=e.target;k.current&&!k.current.contains(t)&&T(false);};return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[C]);const[D,E]=u.useState(null),[A,_]=u.useState(false),[L,I]=u.useState(false),j=u.useRef(null),R=u.useRef(null),F=u.useRef(null),z=u.useRef(false),O=u.useRef(null),B=u.useRef(false),q=null!==u.useSyncExternalStore(Pa,Na),[U,H]=u.useState(false),W=Oo(),[K,V]=u.useState(false),[G,Q]=u.useState(false),[Z,J]=u.useState(""),$=u.useRef(false),X=u.useCallback(async()=>{$.current=false;const e=new AbortController,t=setInterval(()=>{$.current&&e.abort();},100);let n=setTimeout(()=>{$.current||(Q(true),J(En("loadingHistory")));},1600);try{const t=await Ka({adapter:W,loadAll:!0,signal:e.signal,allowShortCircuit:!0,onProgress:e=>{J(`${En("loadingHistory")} ${e}`);}});La(t.previousScrollTop),V(t.isFlutterMode),n&&(window.clearTimeout(n),n=null),Q(!1),J(""),t.success&&!t.silent&&Yr(En("historyLoaded"),2e3);}finally{clearInterval(t),n&&window.clearTimeout(n);}},[W]),Y=u.useCallback(()=>{$.current=true;},[]),ee=u.useCallback(async()=>{const{previousScrollTop:e,container:t}=await Ra(W);La(e),V(Ba(t));},[W]),te=u.useCallback(async()=>{const e=_a();if(null===e)return;const t=(await za(W)).scrollTop;await Fa(W,e),La(t);},[W]),ne=u.useCallback(async()=>{const e=await za(W);La(e.scrollTop),V(e.isFlutterMode);},[W]),re=u.useCallback((e,t)=>{const n=k.current?.getBoundingClientRect();if(!n)return {x:e,y:t};const r=Math.max(8,window.innerWidth-n.width-8),o=Math.max(8,window.innerHeight-n.height-8);return {x:Math.min(Math.max(e,8),r),y:Math.min(Math.max(t,8),o)}},[8]),oe={scrollTop:X,scrollBottom:ee,panel:t,anchor:te,theme:e=>{e?.stopPropagation(),n?.();},floatingToolbar:e=>{e?.stopPropagation(),T(e=>!e);},globalSearch:e=>{e?.stopPropagation(),T(false),d?.();}},ae=(t,n,o)=>{const a=n.isPanelOnly,i="floatingToolbar"===t,s=!!i&&C;if(!o||a&&e)return null;let l;if("theme"===t)l="dark"===r?P.jsx(N,{size:20}):P.jsx(M,{size:20});else if(n.IconComponent){const e=n.IconComponent;l=P.jsx(e,{size:18});}else l=n.icon;const c="anchor"===t,d=c&&!q,u=c?q?En("goToAnchor")||"返回锚点":En("noAnchor")||"暂无锚点":En(n.labelKey)||n.labelKey;
         return P.jsx(xd,{content:u,children:P.jsx("button",{className:`quick-prompt-btn gh-interactive ${a?"panel-only":""} ${s?"active":""} ${i?"tools-trigger-btn":""}`,onClick:e=>oe[t]?.(e),style:{opacity:d?.4:1,cursor:d?"default":"pointer"},disabled:d,children:l})},t)},ie=e=>{if(!e)return null;const t=yt.manualAnchor,n=t?.IconComponent;
         return P.jsx(h.Fragment,{children:P.jsx(xd,{content:En("setAnchor")||"设置锚点",children:P.jsx("button",{className:"quick-prompt-btn manual-anchor-btn set-btn gh-interactive",onClick:ne,children:n?P.jsx(n,{size:18}):"📍"})})},"manualAnchor")},se=(e,t)=>P.jsx("div",{className:"divider "},t),le={[qn]:()=>o?.(),[Un]:()=>p?.(),[Hn]:()=>a?.(),[Wn]:()=>i?.(),[Kn]:()=>s?.(!g),[Vn]:()=>m?.(),[Gn]:()=>c?.(),[Qn]:()=>l?.()},ce=e=>e===Kn?g||false:e===Vn&&f||false;u.useEffect(()=>{if(!k.current)return;let e=null;const t=()=>{e&&(clearTimeout(e),e=null),H(true);},n=()=>{e=window.setTimeout(()=>{H(false);},300);},r=k.current;return r.addEventListener("mouseenter",t),r.addEventListener("mouseleave",n),()=>{r.removeEventListener("mouseenter",t),r.removeEventListener("mouseleave",n),e&&clearTimeout(e);}},[]),u.useEffect(()=>{E(null);},[x]);const de=()=>{j.current&&(window.clearTimeout(j.current),j.current=null);},ue=()=>{I(false),de(),R.current=null,F.current=null,z.current&&(z.current=false,_(false)),k.current&&null!==O.current&&k.current.hasPointerCapture(O.current)&&k.current.releasePointerCapture(O.current),O.current=null;};
         return P.jsxs(P.Fragment,{children:[
         P.jsx(jd,{isVisible:G,text:Z,onStop:Y}),
         P.jsxs("div",{ref:k,className:`quick-btn-group gh-interactive ${e?"":"collapsed"} ${A?"dragging":""} ${L?"pressing":""}`,onPointerDown:e=>{if(0!==e.button)return;if(!k.current)return;O.current=e.pointerId,R.current={x:e.clientX,y:e.clientY},B.current=false,I(true);const t=k.current.getBoundingClientRect();F.current={x:e.clientX-t.left,y:e.clientY-t.top},de(),j.current=window.setTimeout(()=>{k.current&&null!==O.current&&(k.current.setPointerCapture(O.current),I(false),z.current=true,B.current=true,_(true));},150);},onPointerMove:e=>{if(!R.current)return;if(!z.current){const t=e.clientX-R.current.x,n=e.clientY-R.current.y;return void(Math.hypot(t,n)>6&&(de(),I(false)))}e.preventDefault();const t=F.current||{x:0,y:0},n=e.clientX-t.x,r=e.clientY-t.y;E(re(n,r));},onPointerUp:ue,onPointerCancel:ue,onPointerLeave:()=>{z.current||(de(),I(false),R.current=null,F.current=null,O.current=null);},onClickCapture:e=>{B.current&&(e.preventDefault(),e.stopPropagation(),B.current=false);},style:{position:"fixed",top:D?`${D.y}px`:"50%",left:D?`${D.x}px`:S.left,right:D?"auto":S.right,transform:D?"none":"translateY(-50%)",display:"flex",flexDirection:"column",gap:"8px",zIndex:9998,transition:"opacity 0.3s",opacity:w},children:[
         P.jsx("div",{className:"quick-btn-drag-handle",style:{"--quick-btn-press-duration":"150ms"},"aria-hidden":"true"}),(()=>{const t=[],n=new Set(["scrollTop","scrollBottom","anchor","manualAnchor"]),r=v.map(t=>{const r=yt[t.id];if(!r)return null;const o=!r.canToggle||t.enabled;return o?r.isPanelOnly&&e?null:{id:t.id,def:r,enabled:o,group:n.has(t.id)?"navigation":"tools"}:null}).filter(e=>null!==e);let o=0;for(;o<r.length;){const{group:e}=r[o];let n=o;for(;n<r.length&&r[n].group===e;){const e=r[n];"manualAnchor"===e.id?t.push(ie(e.enabled)):t.push(ae(e.id,e.def,e.enabled)),n++;}n-o>=2&&n<r.length&&t.push(se(0,`divider-group-${o}`)),o=n;}return t})(),C&&P.jsx("div",{className:"quick-menu-popover "+("left"===x?"side-right":"side-left"),onPointerDown:e=>e.stopPropagation(),onMouseDown:e=>e.stopPropagation(),onClick:e=>e.stopPropagation(),children:(()=>{const e=[];let t=false,n=false;const r=y.toolsMenu??Zn.map(e=>e.id),o=new Set(r);for(const a of Zn){if(!(a.isSystem||o.has(a.id)))continue;a.isDanger&&!t&&(e.push(P.jsx("div",{className:"menu-divider"},`divider-before-${a.id}`)),t=true),a.isSystem&&!n&&(e.push(P.jsx("div",{className:"menu-divider"},`divider-before-${a.id}`)),n=true);const r=a.IconComponent,i=`quick-menu-btn ${!!a.isToggle&&ce(a.id)?"active":""} ${a.isDanger?"danger":""}`;e.push(
         P.jsx(xd,{content:En(a.labelKey)||a.defaultLabel,children:P.jsx("button",{className:i,onClick:()=>{le[a.id]?.(),T(false);},children:P.jsx(r,{size:18})})},a.id));}return e})()})]})]})},nu=({title:e,onClear:t,adapter:n})=>{const[r,o]=u.useState(120),a=u.useRef(null),i=u.useRef(null),s=u.useCallback(e=>{let t=e,n=e.parentElement;for(let r=0;r<10&&n&&n!==document.body;r++){const e=window.getComputedStyle(n);if(e.borderRadius&&parseFloat(e.borderRadius)>0){t=n;break}n=n.parentElement;}return t},[]),l=u.useCallback(()=>{const e=n?.getTextareaElement();if(!e||!e.isConnected)return void o(120);const t=s(e),r=t.getBoundingClientRect(),l=window.innerHeight,c=l-r.top+20,d=Math.max(50,Math.min(c,l-50));o(d),t!==i.current&&a.current&&(i.current&&a.current.unobserve(i.current),a.current.observe(t),i.current=t);},[n,s]);return u.useEffect(()=>{if(!e)return;const t=n?.getTextareaElement();if(a.current=new ResizeObserver(()=>{l();}),t){const e=s(t);a.current.observe(e),i.current=e;}l();const r=[50,200,400].map(e=>setTimeout(l,e));return window.addEventListener("resize",l),()=>{window.removeEventListener("resize",l),r.forEach(e=>clearTimeout(e)),a.current&&(a.current.disconnect(),a.current=null),i.current=null;}},[e,n,s,l]),e?P.jsxs("div",{className:"selected-prompt-bar gh-interactive",style:{position:"fixed",bottom:`${r}px`,left:"50%",transform:"translateX(-50%)",background:"var(--gh-brand-gradient)",color:"var(--gh-text-on-primary, white)",padding:"8px 16px",borderRadius:"20px",boxShadow:"var(--gh-shadow-brand)",display:"flex",alignItems:"center",gap:"8px",zIndex:999998,maxWidth:"80%",animation:"slideInUp 0.3s ease",userSelect:"none",transition:"bottom 0.2s ease"},children:[
         P.jsx("style",{children:"\n        @keyframes slideInUp {\n          from {\n            transform: translate(-50%, 20px);\n            opacity: 0;\n          }\n          to {\n            transform: translate(-50%, 0);\n            opacity: 1;\n          }\n        }\n      "}),
         P.jsx("span",{style:{fontSize:"12px",color:"var(--gh-text-on-primary, rgba(255,255,255,0.8))",whiteSpace:"nowrap",userSelect:"none"},children:En("currentPrompt")||"当前提示词"}),
         P.jsx(xd,{content:e,children:P.jsx("span",{className:"selected-prompt-text",style:{fontSize:"13px",fontWeight:500,color:"var(--gh-text-on-primary, white)",maxWidth:"300px",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",userSelect:"none"},children:e})}),
         P.jsx(xd,{content:En("clear")||"清除",children:P.jsx("button",{className:"clear-prompt-btn",onClick:t,style:{background:"var(--gh-glass-bg, rgba(255,255,255,0.2))",border:"none",color:"var(--gh-text-on-primary, white)",width:"20px",height:"20px",borderRadius:"50%",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"14px",lineHeight:"1",padding:0,marginLeft:"4px",transition:"all 0.2s"},onMouseEnter:e=>{e.currentTarget.style.background="var(--gh-glass-bg-hover, rgba(255,255,255,0.3))",e.currentTarget.style.transform="scale(1.1)";},onMouseLeave:e=>{e.currentTarget.style.background="var(--gh-glass-bg, rgba(255,255,255,0.2))",e.currentTarget.style.transform="scale(1)";},children:P.jsx(I,{size:14})})})]}):null};let ru; exports("p", ru);exports("p", ru={type:"userscript",storage:{async get(e){const t=GM_getValue(e);if(null!=t)return t},async set(e,t){GM_setValue(e,t);},async remove(e){GM_deleteValue(e);},watch(e,t){const n=GM_addValueChangeListener(e,(e,n,r,o)=>{t(r,n);});return ()=>GM_removeValueChangeListener(n)}},fetch:async(e,t)=>new Promise((n,r)=>{GM_xmlhttpRequest({url:e,method:t?.method||"GET",headers:t?.headers,data:t?.body,responseType:"text",onload(r){const o=r.status>=200&&r.status<300;n({ok:o,status:r.status,statusText:r.statusText,text:async()=>r.responseText,json:async()=>JSON.parse(r.responseText),blob:async()=>new Promise((n,r)=>{GM_xmlhttpRequest({url:e,method:t?.method||"GET",headers:t?.headers,responseType:"blob",onload(e){n(e.response);},onerror:r});})});},onerror(e){r(e);}});}),notify(e){GM_notification({title:e.title,text:e.message,timeout:e.timeout??5e3,silent:e.silent??true,onclick:()=>{window.focus();}});},focusWindow(){window.focus();},openTab(e){window.open(e,"_blank");},hasCapability:e=>!["cookies","permissions","tabs","declarativeNetRequest","commands"].includes(e),async getClaudeSessionKey(){if(!location.hostname.endsWith("claude.ai"))return {success:false,error:En("claudeNotOnSiteHint")};const e=document.cookie.match(/sessionKey=([^;]+)/);return e&&e[1]?{success:true,sessionKey:decodeURIComponent(e[1])}:{success:false,error:En("claudeNoCookieFound")}},testClaudeSessionKey:async e=>new Promise(t=>{GM_xmlhttpRequest({url:"https://claude.ai/api/organizations",method:"GET",headers:{Accept:"application/json",Cookie:`sessionKey=${e}`},onload(e){try{if(200!==e.status)return void t({success:!0,isValid:!1,error:`HTTP ${e.status}`});const n=e.responseText;if(n.toLowerCase().includes("unauthorized"))return void t({success:!0,isValid:!1,error:"Unauthorized"});const r=JSON.parse(n);if(!Array.isArray(r)||0===r.length)return void t({success:!0,isValid:!1,error:"No organizations"});const o=r[0],a=o?.rate_limit_tier,i=o?.capabilities||[],s=o?.api_disabled_reason;let l="Unknown";"default_claude_max_5x"===a?l="Max(5x)":"default_claude_max_20x"===a?l="Max(20x)":"default_claude_ai"===a?l="Free":"auto_api_evaluation"===a?l="out_of_credits"===s?"API(无额度)":"API":i.includes("claude_max")?l="Max":i.includes("api")?l="API":i.includes("chat")&&(l="Free"),t({success:!0,isValid:!0,accountType:l});}catch{t({success:true,isValid:false,error:"Parse error"});}},onerror(){t({success:false,isValid:false,error:"Request failed"});}});}),async setClaudeSessionKey(e){if(!location.hostname.endsWith("claude.ai"))return {success:false,error:En("claudeNotOnSiteHint")};const t=new Date(Date.now()+31536e6).toUTCString();return document.cookie=`sessionKey=${encodeURIComponent(e)}; domain=.claude.ai; path=/; expires=${t}; secure; samesite=lax`,location.href="https://claude.ai/",{success:true}},async switchNextClaudeKey(){if(!location.hostname.endsWith("claude.ai"))return {success:false,error:En("claudeNotOnSiteHint")};try{const e=GM_getValue("claudeSessionKeys"),t=e?.state?.keys||[];if(0===t.length)return {success:!1,error:"noClaudeKeys"};const n=e?.state?.currentKeyId;let r=t.filter(e=>!1!==e.isValid);0===r.length&&(r=[...t]),r.sort((e,t)=>{const n=e.accountType?.toLowerCase()?.includes("pro"),r=t.accountType?.toLowerCase()?.includes("pro");return n&&!r?-1:!n&&r?1:e.name.localeCompare(t.name)});const o=r.findIndex(e=>e.id===n);if(1===r.length&&-1!==o)return {success:!1,error:"claudeOnlyOneKey"};let a=0;-1!==o&&(a=(o+1)%r.length);const i=r[a];if(!i)return {success:!1,error:"nextKeyNotFound"};if(i.key){const e=new Date(Date.now()+31536e6).toUTCString();document.cookie=`sessionKey=${encodeURIComponent(i.key)}; domain=.claude.ai; path=/; expires=${e}; secure; samesite=lax`;}return e?.state&&(e.state.currentKeyId=i.id,GM_setValue("claudeSessionKeys",e)),location.href="https://claude.ai/",{success:!0,keyName:i.name}}catch(e){return {success:false,error:e.message}}}});const ou=Object.freeze(Object.defineProperty({__proto__:null,get platform(){return ru}},Symbol.toStringTag,{value:"Module"})),au={"zh-CN":"简体中文","zh-TW":"繁體中文",en:"English",es:"Español",pt:"Português",ru:"Русский",ja:"日本語",de:"Deutsch",fr:"Français",ko:"한국어"},iu=({currentLang:e,themeMode:t="light",onSelect:n,onClose:r,triggerRef:o})=>{const a=u.useRef(null),[i,s]=u.useState({top:0,left:0});u.useEffect(()=>{if(!o.current)return;const e=o.current.getBoundingClientRect();s({top:e.top-10,left:e.right});},[o]);const l="dark"===t?{bg:"#1f2937",border:"#374151",text:"#e5e7eb",hover:"#374151",activeBg:"rgba(59, 130, 246, 0.2)"}:{bg:"#ffffff",border:"#e5e7eb",text:"#374151",hover:"#f3f4f6",activeBg:"rgba(59, 130, 246, 0.1)"};return hd.createPortal(
         P.jsxs("div",{className:"lang-menu-portal",style:{position:"relative",zIndex:2147483647},children:[
         P.jsx("div",{style:{position:"fixed",top:0,left:0,width:"100vw",height:"100vh",zIndex:2e6,background:"transparent"},onClick:e=>{e.stopPropagation(),r();}}),
         P.jsx("div",{ref:a,style:{position:"fixed",bottom:window.innerHeight-i.top+5,left:i.left-150,width:"150px",background:l.bg,border:`1px solid ${l.border}`,borderRadius:"8px",boxShadow:"0 4px 20px rgba(0, 0, 0, 0.15)",padding:"4px",zIndex:2000001,animation:"ophel-lang-pop 0.1s ease-out",display:"flex",flexDirection:"column",maxHeight:"500px",overflowY:"auto"},children:Object.entries(au).map(([t,r])=>P.jsxs("button",{onClick:e=>{e.stopPropagation(),n(t);},style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"8px 12px",border:"none",background:e===t?l.activeBg:"transparent",color:e===t?"#3b82f6":l.text,fontSize:"13px",cursor:"pointer",borderRadius:"4px",textAlign:"left",width:"100%",fontWeight:e===t?500:400,transition:"background-color 0.1s"},onMouseEnter:n=>{e!==t&&(n.currentTarget.style.backgroundColor=l.hover);},onMouseLeave:n=>{e!==t&&(n.currentTarget.style.backgroundColor=e===t?l.activeBg:"transparent");},children:[
         P.jsx("span",{children:r}),e===t&&P.jsx("span",{children:"✓"})]},t))}),
         P.jsx("style",{children:"\n        @keyframes ophel-lang-pop {\n          from { opacity: 0; transform: scale(0.95); }\n          to { opacity: 1; transform: scale(1); }\n        }\n      "})]}),document.body)},su=({siteId:e="_default"})=>{const{settings:t,setSettings:n}=wr(),r=!window.__ophelThemeManager,o=window.__ophelThemeManager,a=u.useSyncExternalStore(o?.subscribe??(()=>()=>{}),o?.getSnapshot??(()=>"light")),i=t?.theme?.sites,s=i&&e in i?i[e]:i?._default,l=s?.mode||"light",c=async(r,o)=>{if(l===r)return;const a=window.__ophelThemeManager;if(a?.setMode)await a.setMode(r,o?.nativeEvent);else {const o=t?.theme?.sites||{},a=o[e]||o._default||{};n({theme:{...t?.theme,sites:{...o,[e]:{lightStyleId:"google-gradient",darkStyleId:"classic-dark",...a,mode:r}}}});}},d=e=>{n({language:e}),Tn(e);},g=Dn(t?.language||"auto"),[p,m]=h.useState(false),f=h.useRef(null),b=h.useRef(null),[y,v]=h.useState("normal"),x=h.useRef("normal"),S={en:"EN","zh-CN":"简","zh-TW":"繁",ja:"JP",ko:"KR",fr:"FR",de:"DE",ru:"RU",es:"ES",pt:"PT"},w=["zh-CN","en"],k=w.includes(g)?"es":g,C=Array.from(new Set([...w,k]));return h.useEffect(()=>{x.current=y;},[y]),h.useEffect(()=>{const e=b.current;if(!e)return;const t=t=>{e.classList.toggle("is-compact","compact"===t),e.classList.toggle("is-icon","icon"===t);},n=n=>(t(n),e.scrollWidth<=e.clientWidth+1),r=()=>{const e=x.current;let r="normal";if(!n("normal")){r=n("compact")?"compact":"icon";}t(e),r!==x.current&&v(r);},o=()=>{"function"!=typeof requestAnimationFrame?r():requestAnimationFrame(r);};if(o(),"undefined"!=typeof ResizeObserver){const t=new ResizeObserver(()=>o());return t.observe(e),()=>t.disconnect()}return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)},[g]),P.jsxs("div",{className:"settings-sidebar-footer",children:[!r&&P.jsxs("div",{ref:b,className:`settings-theme-segmented ${"compact"===y?"is-compact":""} ${"icon"===y?"is-icon":""}`,children:[
         P.jsx(xd,{content:En("themeLight")||"浅色",triggerStyle:{flex:1},children:P.jsxs("button",{className:"settings-theme-segment "+("light"===l?"active":""),onClick:e=>c("light",e),children:[
         P.jsx("span",{className:"segment-icon",children:P.jsx(N,{size:16})}),
         P.jsx("span",{className:"segment-label",children:En("themeLight")||"浅色"})]})}),
         P.jsx(xd,{content:En("themeDark")||"深色",triggerStyle:{flex:1},children:P.jsxs("button",{className:"settings-theme-segment "+("dark"===l?"active":""),onClick:e=>c("dark",e),children:[
         P.jsx("span",{className:"segment-icon",children:P.jsx(M,{size:16})}),
         P.jsx("span",{className:"segment-label",children:En("themeDark")||"深色"})]})}),
         P.jsx(xd,{content:En("themeSystem")||"系统",triggerStyle:{flex:1},children:P.jsxs("button",{className:"settings-theme-segment "+("system"===l?"active":""),onClick:e=>c("system",e),children:[
         P.jsx("span",{className:"segment-icon",children:"A"}),
         P.jsx("span",{className:"segment-label",children:En("themeSystem")||"系统"})]})})]}),
         P.jsxs("div",{className:"settings-lang-inline",children:[
         P.jsx("button",{className:"lang-icon",onClick:e=>{e.stopPropagation(),m(!p);},children:P.jsx(be,{size:16})}),
         P.jsx("div",{className:"lang-links-container",children:C.map((e,t)=>P.jsxs(h.Fragment,{children:[
         P.jsx("button",{className:"lang-link "+(g===e?"active":""),onClick:()=>d(e),children:S[e]||e}),t<C.length-1&&P.jsx("span",{className:"lang-divider",children:"/"})]},e))}),
         P.jsx("span",{className:"lang-divider",style:{opacity:.3,display:"none"},children:"|"}),
         P.jsx(xd,{content:En("moreLanguages")||"More Languages",children:P.jsx("button",{ref:f,className:"lang-more-btn "+(p?"active":""),onClick:e=>{e.stopPropagation(),m(!p);},children:P.jsx(fe,{size:18})})}),p&&P.jsx(iu,{currentLang:g,themeMode:a,onSelect:e=>{d(e),m(false);},onClose:()=>m(false),triggerRef:f})]}),
         P.jsx("style",{children:'\n        .settings-lang-inline {\n          display: flex;\n          align-items: center;\n          justify-content: space-between;\n          padding: 3px 4px;\n          background: var(--gh-bg-secondary, #f3f4f6);\n          border-radius: 8px;\n          margin-top: 4px; /* Reduced gap */\n          height: 32px;\n        }\n\n        :host-context([data-gh-mode="dark"]) .settings-lang-inline {\n          background: rgba(255, 255, 255, 0.08); /* 匹配深色模式下的 segmented */\n        }\n\n        .lang-icon {\n           display: flex;\n           align-items: center;\n           justify-content: center;\n           color: var(--gh-text-secondary, #9ca3af);\n           padding: 4px;\n           margin-left: 2px;\n           background: transparent;\n           border: none;\n           cursor: pointer;\n           transition: color 0.2s;\n        }\n\n        .lang-icon:hover {\n          color: var(--gh-text, #374151);\n        }\n\n        :host-context([data-gh-mode="dark"]) .lang-icon:hover {\n           color: #e5e7eb;\n        }\n\n        /* 中间语言链接容器 */\n        .lang-links-container {\n           flex: 1;\n           display: flex;\n           align-items: center;\n           justify-content: center;\n           gap: 2px;\n        }\n\n        .lang-link {\n          background: none;\n          border: none;\n          padding: 2px 4px;\n          cursor: pointer;\n          font-size: 13px;\n          color: var(--gh-text-secondary, #6b7280);\n          transition: all 0.2s;\n          border-radius: 4px;\n          font-weight: 500;\n        }\n\n        .lang-link:hover {\n          color: var(--gh-text, #374151);\n          background: rgba(0, 0, 0, 0.05);\n        }\n\n         :host-context([data-gh-mode="dark"]) .lang-link:hover {\n            color: #f3f4f6;\n            background: rgba(255, 255, 255, 0.1);\n         }\n\n        .lang-link.active {\n          color: var(--gh-text, #111827);\n          font-weight: 600;\n        }\n\n        :host-context([data-gh-mode="dark"]) .lang-link.active {\n           color: #f9fafb;\n        }\n\n        .lang-divider {\n          color: var(--gh-text-secondary, #d1d5db);\n          font-size: 12px;\n          margin: 0 1px;\n        }\n\n        .lang-more-btn {\n          display: flex;\n          align-items: center;\n          justify-content: center;\n          background: transparent;\n          border: none;\n          color: var(--gh-text-secondary, #9ca3af);\n          cursor: pointer;\n          padding: 2px;\n          border-radius: 4px;\n          transition: all 0.2s;\n          margin-right: 2px;\n        }\n        .lang-more-btn:hover, .lang-more-btn.active {\n          color: var(--gh-text, #374151);\n          background: rgba(0, 0, 0, 0.05); /* Match hover styles */\n        }\n        :host-context([data-gh-mode="dark"]) .lang-more-btn:hover {\n           color: #e5e7eb;\n           background: rgba(255, 255, 255, 0.1);\n        }\n      '})]})},lu=({title:e,description:t,children:n,className:r="",style:o,settingId:a})=>P.jsxs("div",{className:`settings-card ${r}`,style:o,"data-setting-id":a,children:[e&&P.jsx("div",{className:"settings-card-title",children:e}),t&&P.jsx("div",{className:"settings-card-desc",children:t}),n]}),cu=({label:e,description:t,children:n,disabled:r=false,onDisabledClick:o,style:a,settingId:i})=>{const s=r&&!!o;
         return P.jsxs("div",{className:`settings-row ${r?"disabled":""} ${s?"disabled-clickable":""}`,"data-setting-id":i,style:a,onClick:()=>{s&&o?.();},children:[
         P.jsxs("div",{className:"settings-row-info",children:[
         P.jsx("div",{className:"settings-row-label",children:e}),t&&P.jsx("div",{className:"settings-row-desc",children:t})]}),n&&P.jsx("div",{className:"settings-row-control",children:n})]})},du=({label:e,description:t,checked:n,onChange:r,disabled:o=false,onDisabledClick:a,settingId:i})=>P.jsx(cu,{label:e,description:t,disabled:o,onDisabledClick:a,settingId:i,children:P.jsx(gd,{checked:n,onChange:r,disabled:o})}),uu=({tabs:e,activeTab:t,onTabChange:n})=>P.jsx("div",{className:"settings-tab-group",children:e.map(e=>P.jsx("button",{className:"settings-tab-item "+(t===e.id?"active":""),onClick:()=>n(e.id),children:e.label},e.id))}),hu=({title:e,Icon:t})=>P.jsxs("h1",{className:"settings-page-title",style:{display:"flex",alignItems:"center"},children:[t&&P.jsx(t,{size:28,className:"settings-page-title-icon",style:{marginRight:8,color:"var(--gh-primary, #4285f4)"}}),e]}),gu=()=>P.jsxs("div",{children:[
         P.jsx(hu,{title:En("navAbout")||"关于",Icon:ne}),
         P.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:8,marginBottom:24},children:[
         P.jsx("span",{style:{fontSize:18},children:"✨"}),
         P.jsx("div",{className:"about-slogan",children:En("aboutPageDesc")||"AI 之益,触手可及"}),
         P.jsx("span",{style:{fontSize:18},children:"✨"})]}),
         P.jsxs("div",{className:"about-hero-card",children:[
         P.jsx("img",{src:Nd,alt:Ld,className:"about-hero-logo",onError:e=>{e.target.style.display="none";}}),
         P.jsxs("div",{className:"about-hero-content",children:[
         P.jsxs("div",{className:"about-hero-title",children:[Ld,
         P.jsxs("span",{className:"about-hero-version",children:["v",Pd]})]}),
         P.jsx("div",{className:"about-hero-desc",children:En("aboutDescription",{appName:Ld})||`${Ld} 是一款面向 Gemini、ChatGPT、Claude、AI Studio、Grok 等 AI 平台的浏览器增强扩展。它集中展示账号与余额、提供智能排序和当前站点识别,并提供自动刷新与临口防火墙绕过等自动化能力;支持数据导入导出工具。`})]})]}),
         P.jsx("div",{className:"about-section-title",children:En("rateAndReview")||"好评鼓励"}),
         P.jsxs("div",{className:"about-links-grid",style:{gridTemplateColumns:"repeat(auto-fit, minmax(200px, 1fr))"},children:[
         P.jsxs("a",{href:"https://chromewebstore.google.com/detail/ophel-ai-%E5%AF%B9%E8%AF%9D%E5%A2%9E%E5%BC%BA%E5%B7%A5%E5%85%B7/lpcohdfbomkgepfladogodgeoppclakd",target:"_blank",rel:"noopener noreferrer",className:"about-link-card",children:[
         P.jsxs("div",{className:"about-link-header",children:[
         P.jsx(Te,{size:24,color:"#4285F4"}),En("chromeStore")||"Chrome 商店"]}),
         P.jsx("button",{className:"about-link-btn",style:{marginTop:"auto"},children:"Review"})]}),
         P.jsxs("a",{href:"https://addons.mozilla.org/zh-CN/firefox/addon/ophel-ai-chat-enhancer/",target:"_blank",rel:"noopener noreferrer",className:"about-link-card",children:[
         P.jsxs("div",{className:"about-link-header",children:[
         P.jsx(De,{size:24,color:"#FF7139"}),En("firefoxAddons")||"Firefox 扩展"]}),
         P.jsx("button",{className:"about-link-btn",style:{marginTop:"auto",background:"#FF7139"},children:"Review"})]}),
         P.jsxs("a",{href:"http://greasyfork.icu/zh-CN/scripts/563646-ophel-ai-chat-page-enhancer",target:"_blank",rel:"noopener noreferrer",className:"about-link-card",children:[
         P.jsxs("div",{className:"about-link-header",children:[
         P.jsx(Ee,{size:24,color:"#000000"}),En("greasyFork")||"Greasy Fork"]}),
         P.jsx("button",{className:"about-link-btn",style:{marginTop:"auto",background:"#333"},children:"Review"})]})]}),
         P.jsx("div",{className:"about-section-title",children:En("communityAndSupport")||"社区与支持"}),
         P.jsxs("div",{style:{fontSize:"13px",color:"var(--gh-text-secondary)",marginBottom:16,fontStyle:"italic"},children:['"',En("communityMotto"),'"']}),
         P.jsxs("div",{className:"about-links-grid",children:[
         P.jsxs("a",{href:"https://github.com/urzeye/ophel",target:"_blank",rel:"noopener noreferrer",className:"about-link-card",children:[
         P.jsxs("div",{className:"about-link-header",children:[
         P.jsx(re,{size:20}),"GitHub 仓库"]}),
         P.jsx("div",{className:"about-link-desc",children:En("githubDesc")||"查看源代码、提交问题或参与项目开发"}),
         P.jsx("button",{className:"about-link-btn about-star-btn",children:P.jsxs("span",{style:{display:"flex",alignItems:"center",gap:6},children:[
         P.jsx(se,{size:14}),En("giveStar")||"点个 Star"]})})]}),
         P.jsxs("a",{href:"https://github.com/urzeye/ophel",target:"_blank",rel:"noopener noreferrer",className:"about-link-card",children:[
         P.jsxs("div",{className:"about-link-header",children:[
         P.jsx(oe,{size:20}),En("projectWebsite")||"项目官网"]}),
         P.jsx("div",{className:"about-link-desc",children:En("websiteDesc")||"查看详细文档、使用指南和更多信息"}),
         P.jsx("button",{className:"about-link-btn",children:En("visitWebsite")||"访问官网"})]})]}),
         P.jsx("div",{className:"about-section-title",children:En("techStack")||"技术栈"}),
         P.jsxs("div",{className:"about-tech-grid",children:[
         P.jsx(pu,{name:"Plasmo",version:"v0.89.0",desc:En("tsPlasmoDesc")||"Browser Extension Framework"}),
         P.jsx(pu,{name:"React",version:"v18.2.0",desc:En("tsReactDesc")||"User Interface Library"}),
         P.jsx(pu,{name:"TypeScript",version:"v5.3.3",desc:En("tsTypescriptDesc")||"Typed JavaScript"}),
         P.jsx(pu,{name:"Zustand",version:"v5.0.3",desc:En("tsZustandDesc")||"State Management"}),
         P.jsx(pu,{name:"Vite",version:"v5.0.0",desc:En("tsViteDesc")||"Frontend Tooling"})]}),
         P.jsx("div",{className:"about-section-title",children:En("credits")||"版权与致谢"}),
         P.jsxs("div",{className:"about-simple-card",children:[
         P.jsxs("div",{className:"about-simple-header",children:[
         P.jsx(ae,{size:18,style:{color:"#ef4444"}}),En("devAndMaintain")||"开发与维护"]}),
         P.jsx("p",{style:{fontSize:"13px",color:"var(--gh-text-secondary)",lineHeight:1.6,marginBottom:16},children:En("creditsDesc")||"感谢所有为开源社区做出贡献的开发者们,本插件的开发得益于这些优秀的开源项目和工具。"}),
         P.jsxs("div",{style:{display:"flex",gap:8},children:[
         P.jsx(mu,{text:"Made with ❤️"}),
         P.jsx(mu,{text:"Open Source"}),
         P.jsx(mu,{text:"Privacy First"})]}),
         P.jsxs("div",{style:{marginTop:16,fontSize:"12px",color:"var(--gh-text-secondary)"},children:["GNU GPLv3 © ",
         (new Date).getFullYear()," ",Ld]})]}),
         P.jsxs("div",{className:"about-privacy-banner",children:[
         P.jsx(ie,{size:24,className:"about-privacy-icon"}),
         P.jsxs("div",{children:[
         P.jsx("div",{className:"about-privacy-title",children:En("privacyTitle")||"隐私保护"}),
         P.jsx("div",{className:"about-privacy-desc",children:En("privacyText")||"本插件所有数据均存储在本地浏览器中,不会主动上传到任何服务器。您的账号信息和使用数据完全由您自己掌控,确保隐私安全。"})]})]})]}),pu=({name:e,version:t,desc:n})=>P.jsxs("div",{className:"about-tech-card",children:[
         P.jsxs("div",{className:"about-tech-header",children:[
         P.jsx("div",{className:"about-tech-name",children:e}),
         P.jsx("div",{className:"about-tech-version",children:t})]}),
         P.jsx("div",{className:"about-tech-desc",children:n})]}),mu=({text:e})=>P.jsx("span",{style:{display:"inline-flex",alignItems:"center",padding:"2px 8px",background:"var(--gh-bg-secondary)",border:"1px solid var(--gh-border)",borderRadius:"12px",fontSize:"12px",color:"var(--gh-text-secondary)"},children:e});var fu,bu={};const yu=o(function(){if(fu)return bu;fu=1;var e=bu&&bu.__extends||function(){var e=function(t,n){return (e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t;}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);})(t,n)};return function(t,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function r(){this.constructor=t;}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r);}}(),t=bu&&bu.__assign||function(){return t=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},t.apply(this,arguments)},n=bu&&bu.__createBinding||(Object.create?function(e,t,n,r){ void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:true,get:function(){return t[n]}}),Object.defineProperty(e,r,o);}:function(e,t,n,r){ void 0===r&&(r=n),e[r]=t[n];}),r=bu&&bu.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t});}:function(e,t){e.default=t;}),o=bu&&bu.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)"default"!==o&&Object.prototype.hasOwnProperty.call(e,o)&&n(t,e,o);return r(t,e),t},a=bu&&bu.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);}return n};Object.defineProperty(bu,"__esModule",{value:true});var i=o(d()),s="undefined"!=typeof window&&"navigator"in window&&/Win/i.test(navigator.platform),l="undefined"!=typeof window&&"navigator"in window&&/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform),c="npm__react-simple-code-editor__textarea",u="\n/**\n * Reset the text fill color so that placeholder is visible\n */\n.".concat(c,":empty {\n  -webkit-text-fill-color: inherit !important;\n}\n\n/**\n * Hack to apply on some CSS on IE10 and IE11\n */\n@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\n  /**\n    * IE doesn't support '-webkit-text-fill-color'\n    * So we use 'color: transparent' to make the text transparent on IE\n    * Unlike other browsers, it doesn't affect caret color in IE\n    */\n  .").concat(c," {\n    color: transparent !important;\n  }\n\n  .").concat(c,"::selection {\n    background-color: #accef7 !important;\n    color: transparent !important;\n  }\n}\n"),h=
         /** @class */function(n){function r(){var e=null!==n&&n.apply(this,arguments)||this;return e.state={capture:true},e._recordCurrentState=function(){var t=e._input;if(t){var n=t.value,r=t.selectionStart,o=t.selectionEnd;e._recordChange({value:n,selectionStart:r,selectionEnd:o});}},e._getLines=function(e,t){return e.substring(0,t).split("\n")},e._recordChange=function(n,r){var o,a,i;void 0===r&&(r=false);var s=e._history,l=s.stack,c=s.offset;if(l.length&&c>-1){e._history.stack=l.slice(0,c+1);var d=e._history.stack.length;if(d>100){var u=d-100;e._history.stack=l.slice(u,d),e._history.offset=Math.max(e._history.offset-u,0);}}var h=Date.now();if(r){var g=e._history.stack[e._history.offset];if(g&&h-g.timestamp<3e3){var p=/[^a-z0-9]([a-z0-9]+)$/i,m=null===(o=e._getLines(g.value,g.selectionStart).pop())||void 0===o?void 0:o.match(p),f=null===(a=e._getLines(n.value,n.selectionStart).pop())||void 0===a?void 0:a.match(p);if((null==m?void 0:m[1])&&(null===(i=null==f?void 0:f[1])||void 0===i?void 0:i.startsWith(m[1])))return void(e._history.stack[e._history.offset]=t(t({},n),{timestamp:h}))}}e._history.stack.push(t(t({},n),{timestamp:h})),e._history.offset++;},e._updateInput=function(t){var n=e._input;n&&(n.value=t.value,n.selectionStart=t.selectionStart,n.selectionEnd=t.selectionEnd,e.props.onValueChange(t.value));},e._applyEdits=function(n){var r=e._input,o=e._history.stack[e._history.offset];o&&r&&(e._history.stack[e._history.offset]=t(t({},o),{selectionStart:r.selectionStart,selectionEnd:r.selectionEnd})),e._recordChange(n),e._updateInput(n);},e._undoEdit=function(){var t=e._history,n=t.stack,r=t.offset,o=n[r-1];o&&(e._updateInput(o),e._history.offset=Math.max(r-1,0));},e._redoEdit=function(){var t=e._history,n=t.stack,r=t.offset,o=n[r+1];o&&(e._updateInput(o),e._history.offset=Math.min(r+1,n.length-1));},e._handleKeyDown=function(t){var n=e.props,r=n.tabSize,o=n.insertSpaces,a=n.ignoreTabKey,i=n.onKeyDown;if(!i||(i(t),!t.defaultPrevented)){27===t.keyCode&&t.currentTarget.blur();var c=t.currentTarget,d=c.value,u=c.selectionStart,h=c.selectionEnd,g=(o?" ":"\t").repeat(r);if(9===t.keyCode&&!a&&e.state.capture)if(t.preventDefault(),t.shiftKey){var p=(y=e._getLines(d,u)).length-1,m=e._getLines(d,h).length-1,f=d.split("\n").map(function(e,t){return t>=p&&t<=m&&e.startsWith(g)?e.substring(g.length):e}).join("\n");if(d!==f){var b=y[p];e._applyEdits({value:f,selectionStart:(null==b?void 0:b.startsWith(g))?u-g.length:u,selectionEnd:h-(d.length-f.length)});}}else if(u!==h){var y,v=(y=e._getLines(d,u)).length-1,x=e._getLines(d,h).length-1;b=y[v];e._applyEdits({value:d.split("\n").map(function(e,t){return t>=v&&t<=x?g+e:e}).join("\n"),selectionStart:b&&/\S/.test(b)?u+g.length:u,selectionEnd:h+g.length*(x-v+1)});}else {var S=u+g.length;e._applyEdits({value:d.substring(0,u)+g+d.substring(h),selectionStart:S,selectionEnd:S});}else if(8===t.keyCode){var w=u!==h;if(d.substring(0,u).endsWith(g)&&!w){t.preventDefault();S=u-g.length;e._applyEdits({value:d.substring(0,u-g.length)+d.substring(h),selectionStart:S,selectionEnd:S});}}else if(13===t.keyCode){if(u===h){var k=e._getLines(d,u).pop(),C=null==k?void 0:k.match(/^\s+/);if(null==C?void 0:C[0]){t.preventDefault();var T="\n"+C[0];S=u+T.length;e._applyEdits({value:d.substring(0,u)+T+d.substring(h),selectionStart:S,selectionEnd:S});}}}else if(57===t.keyCode||219===t.keyCode||222===t.keyCode||192===t.keyCode){var D=void 0;57===t.keyCode&&t.shiftKey?D=["(",")"]:219===t.keyCode?D=t.shiftKey?["{","}"]:["[","]"]:222===t.keyCode?D=t.shiftKey?['"','"']:["'","'"]:192!==t.keyCode||t.shiftKey||(D=["`","`"]),u!==h&&D&&(t.preventDefault(),e._applyEdits({value:d.substring(0,u)+D[0]+d.substring(u,h)+D[1]+d.substring(h),selectionStart:u,selectionEnd:h+2}));}else !(l?t.metaKey&&90===t.keyCode:t.ctrlKey&&90===t.keyCode)||t.shiftKey||t.altKey?(l?t.metaKey&&90===t.keyCode&&t.shiftKey:s?t.ctrlKey&&89===t.keyCode:t.ctrlKey&&90===t.keyCode&&t.shiftKey)&&!t.altKey?(t.preventDefault(),e._redoEdit()):77!==t.keyCode||!t.ctrlKey||l&&!t.shiftKey||(t.preventDefault(),e.setState(function(e){return {capture:!e.capture}})):(t.preventDefault(),e._undoEdit());}},e._handleChange=function(t){var n=t.currentTarget,r=n.value,o=n.selectionStart,a=n.selectionEnd;e._recordChange({value:r,selectionStart:o,selectionEnd:a},true),e.props.onValueChange(r);},e._history={stack:[],offset:-1},e._input=null,e}return e(r,n),r.prototype.componentDidMount=function(){this._recordCurrentState();},Object.defineProperty(r.prototype,"session",{get:function(){return {history:this._history}},set:function(e){this._history=e.history;},enumerable:false,configurable:true}),r.prototype.render=function(){var e=this,n=this.props,r=n.value,o=n.style,s=n.padding,l=n.highlight,d=n.textareaId,h=n.textareaClassName,p=n.autoFocus,m=n.disabled,f=n.form,b=n.maxLength,y=n.minLength,v=n.name,x=n.placeholder,S=n.readOnly,w=n.required,k=n.onClick,C=n.onFocus,T=n.onBlur,D=n.onKeyUp;n.onKeyDown,n.onValueChange,n.tabSize,n.insertSpaces,n.ignoreTabKey;var E=n.preClassName,A=a(n,["value","style","padding","highlight","textareaId","textareaClassName","autoFocus","disabled","form","maxLength","minLength","name","placeholder","readOnly","required","onClick","onFocus","onBlur","onKeyUp","onKeyDown","onValueChange","tabSize","insertSpaces","ignoreTabKey","preClassName"]),_={paddingTop:"object"==typeof s?s.top:s,paddingRight:"object"==typeof s?s.right:s,paddingBottom:"object"==typeof s?s.bottom:s,paddingLeft:"object"==typeof s?s.left:s},L=l(r);return i.createElement("div",t({},A,{style:t(t({},g.container),o)}),i.createElement("pre",t({className:E,"aria-hidden":"true",style:t(t(t({},g.editor),g.highlight),_)},"string"==typeof L?{dangerouslySetInnerHTML:{__html:L+"<br />"}}:{children:L})),i.createElement("textarea",{ref:function(t){return e._input=t},style:t(t(t({},g.editor),g.textarea),_),className:c+(h?" ".concat(h):""),id:d,value:r,onChange:this._handleChange,onKeyDown:this._handleKeyDown,onClick:k,onKeyUp:D,onFocus:C,onBlur:T,disabled:m,form:f,maxLength:b,minLength:y,name:v,placeholder:x,readOnly:S,required:w,autoFocus:p,autoCapitalize:"off",autoComplete:"off",autoCorrect:"off",spellCheck:false,"data-gramm":false}),i.createElement("style",{dangerouslySetInnerHTML:{__html:u}}))},r.defaultProps={tabSize:2,insertSpaces:true,ignoreTabKey:false,padding:0},r}(i.Component);bu.default=h;var g={container:{position:"relative",textAlign:"left",boxSizing:"border-box",padding:0,overflow:"hidden"},textarea:{position:"absolute",top:0,left:0,height:"100%",width:"100%",resize:"none",color:"inherit",overflow:"hidden",MozOsxFontSmoothing:"grayscale",WebkitFontSmoothing:"antialiased",WebkitTextFillColor:"transparent"},highlight:{position:"relative",pointerEvents:"none"},editor:{margin:0,border:0,background:"none",boxSizing:"inherit",display:"inherit",fontFamily:"inherit",fontSize:"inherit",fontStyle:"inherit",fontVariantLigatures:"inherit",fontWeight:"inherit",letterSpacing:"inherit",lineHeight:"inherit",tabSize:"inherit",textIndent:"inherit",textRendering:"inherit",textTransform:"inherit",whiteSpace:"pre-wrap",wordBreak:"keep-all",overflowWrap:"break-word"}};return bu}());class vu extends u.Component{constructor(e){super(e);let t=false;try{document.createElement("div").innerHTML="";}catch{t=true;}this.state={hasError:t};}static getDerivedStateFromError(e){return {hasError:true}}componentDidCatch(e,t){}render(){if(this.state.hasError){const{value:e,onValueChange:t,style:n,placeholder:r,className:o,fallbackPlaceholder:a}=this.props;
         return P.jsx("div",{style:{display:"flex",flexDirection:"column",height:"100%",width:"100%"},children:P.jsx("textarea",{className:`settings-textarea ${o||""}`,value:e,onChange:e=>t(e.target.value),placeholder:a||r,style:{...n,fontFamily:'"Menlo", "Monaco", "Consolas", monospace',resize:"none",flex:1,width:"100%",height:"100%",border:"none",outline:"none",padding:"12px"}})})}
         return P.jsx(yu,{...this.props})}}const xu=({preset:e})=>{const t=e.variables,n=t["--gh-bg"]||"#ffffff",r=t["--gh-header-bg"]||t["--gh-primary"]||"#4285f4",o=t["--gh-border"]||"#e5e7eb",a=t["--gh-primary"]||"#4285f4",i=t["--gh-text"]||"#374151",s=t["--gh-text-secondary"]||"#9ca3af",l=t["--gh-bg-secondary"]||"#f3f4f6";
         return P.jsxs("div",{className:"theme-preview-layout",style:{backgroundColor:n,borderColor:o},children:[
         P.jsxs("div",{className:"theme-preview-header",style:{backgroundColor:r},children:[
         P.jsx("div",{className:"theme-preview-dot"}),
         P.jsx("div",{className:"theme-preview-dot delay-1"}),
         P.jsx("div",{className:"theme-preview-dot delay-2"})]}),
         P.jsxs("div",{className:"theme-preview-body",children:[
         P.jsxs("div",{className:"theme-preview-sidebar",style:{backgroundColor:l,borderColor:o},children:[
         P.jsx("div",{className:"theme-preview-line short",style:{backgroundColor:s,opacity:.3}}),
         P.jsx("div",{className:"theme-preview-line",style:{backgroundColor:s,opacity:.3}}),
         P.jsx("div",{className:"theme-preview-line",style:{backgroundColor:s,opacity:.3}}),
         P.jsx("div",{className:"theme-preview-active-item",style:{backgroundColor:a,opacity:.15}})]}),
         P.jsxs("div",{className:"theme-preview-content",children:[
         P.jsx("div",{className:"theme-preview-hero",style:{backgroundColor:a,opacity:.1}}),
         P.jsxs("div",{className:"theme-preview-row",children:[
         P.jsx("div",{className:"theme-preview-avatar",style:{backgroundColor:s,opacity:.2}}),
         P.jsxs("div",{style:{flex:1},children:[
         P.jsx("div",{className:"theme-preview-line",style:{backgroundColor:i,opacity:.6,marginBottom:4}}),
         P.jsx("div",{className:"theme-preview-line short",style:{backgroundColor:s,opacity:.4}})]})]}),
         P.jsx("div",{className:"theme-preview-button",style:{backgroundColor:a}})]})]})]})};si.registerLanguage("css",pi);const Su=({preset:e,isActive:t,onClick:n})=>{const r=`themePreset_${e.id}`,o=En(r),a=o&&o!==r?o:e.name;
         return P.jsxs("div",{className:"settings-theme-card "+(t?"active":""),onClick:n,children:[
         P.jsx(xu,{preset:e}),
         P.jsx("div",{className:"settings-theme-name",children:a})]})},wu=({siteId:e,initialTab:t})=>{const[n,r]=u.useState(t||ot),{settings:o,setSettings:a}=wr();u.useEffect(()=>{t&&r(t);},[t]);const[i,s]=u.useState(false),[l,c]=u.useState(null),d=o?.theme?.sites?.[e]||o?.theme?.sites?._default;if(!o)return null;const h=[{id:ot,label:En("themePresetsTab")||"主题预置"},{id:at,label:En("customStylesTab")||"自定义样式"}],g=o?.theme?.customStyles||[],p=e=>{const t=(e=>{const t={},n=/(--[\w-]+)\s*:\s*([^;]+);/g;let r;for(;null!==(r=n.exec(e));){const e=r[1],n=r[2].trim();t[e]=n;}return t})(e.css),n={"--gh-bg":"light"===e.mode?"#f3f4f6":"#1f2937","--gh-header-bg":"light"===e.mode?"#e5e7eb":"#374151","--gh-border":"light"===e.mode?"#d1d5db":"#4b5563","--gh-primary":"#4285f4","--gh-text":"light"===e.mode?"#374151":"#f9fafb","--gh-text-secondary":"light"===e.mode?"#6b7280":"#9ca3af","--gh-bg-secondary":"light"===e.mode?"#ffffff":"#1f2937"};return {id:e.id,name:e.name,variables:{...n,...t}}},m=[...Sa,...g.filter(e=>"light"===e.mode).map(p)],f=[...wa,...g.filter(e=>"dark"===e.mode).map(p)];
         return P.jsxs("div",{children:[
         P.jsx(hu,{title:En("navAppearance")||"外观主题",Icon:X}),
         P.jsx("p",{className:"settings-page-desc",children:En("appearancePageDesc")||"自定义扩展的视觉样式和主题"}),
         P.jsx(uu,{tabs:h,activeTab:n,onTabChange:r}),n===ot&&P.jsxs(P.Fragment,{children:[
         P.jsx(lu,{title:En("lightModePreset")||"浅色模式预置",description:En("lightModePresetDesc")||"仅在浅色模式生效",settingId:"appearance-preset-light",children:P.jsx("div",{className:"settings-theme-grid",children:m.map(t=>P.jsx(Su,{preset:t,isActive:(d?.lightStyleId||"google-gradient")===t.id,onClick:()=>(async t=>{const n=window.__ophelThemeManager,r="system"===d?.mode;!r&&n?.setMode&&await n.setMode("light");const i=o?.theme?.sites||{},s=i[e]||i._default||{};a({theme:{...o?.theme,sites:{...o?.theme?.sites,[e]:{...s,...r?{}:{mode:"light"},lightStyleId:t}}}});})(t.id)},t.id))})}),
         P.jsx(lu,{title:En("darkModePreset")||"深色模式预置",description:En("darkModePresetDesc")||"仅在深色模式生效",settingId:"appearance-preset-dark",children:P.jsx("div",{className:"settings-theme-grid",children:f.map(t=>P.jsx(Su,{preset:t,isActive:(d?.darkStyleId||"classic-dark")===t.id,onClick:()=>(async t=>{const n=window.__ophelThemeManager,r="system"===d?.mode;!r&&n?.setMode&&await n.setMode("dark");const i=o?.theme?.sites||{},s=i[e]||i._default||{};a({theme:{...o?.theme,sites:{...o?.theme?.sites,[e]:{...s,...r?{}:{mode:"dark"},darkStyleId:t}}}});})(t.id)},t.id))})})]}),n===at&&P.jsx(P.Fragment,{children:P.jsxs(lu,{title:En("customCSS")||"自定义样式",description:En("customCSSDesc")||"创建自定义 CSS 样式,可在主题选择器中使用",settingId:"appearance-custom-styles",children:[
         P.jsxs("button",{className:"settings-btn settings-btn-primary",onClick:()=>{c({id:"",name:"",css:"/* 🎨 Custom CSS Cheat Sheet\n * 以下是本扩展使用的主要 CSS 类名,您可以自由覆盖。\n */\n\n/* === 主题变量 === */\n/*\n:host {\n  --gh-bg: #ffffff;\n  --gh-text: #1f2937;\n  --gh-primary: #4285f4;\n}\n*/\n\n/* === 面板样式 === */\n/*\n.gh-main-panel { }\n.gh-panel-header { }\n.gh-panel-content { }\n*/\n",mode:"light"}),s(true);},style:{marginBottom:"16px"},children:["➕ ",En("addCustomStyle")||"添加样式"]}),0===(o?.theme?.customStyles||[]).length?P.jsx("div",{style:{padding:"20px",textAlign:"center",color:"var(--gh-text-secondary, #9ca3af)",fontSize:"13px",border:"1px dashed var(--gh-border, #e5e7eb)",borderRadius:"8px"},children:En("noCustomStyles")||"暂无自定义样式,点击上方「添加」按钮创建"}):P.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"8px"},children:(o?.theme?.customStyles||[]).map(e=>P.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"12px",background:"var(--gh-bg-secondary, #f9fafb)",borderRadius:"8px"},children:[
         P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[
         P.jsx("span",{style:{fontSize:"11px",padding:"2px 8px",borderRadius:"4px",backgroundColor:"light"===e.mode?"rgba(251, 191, 36, 0.2)":"rgba(99, 102, 241, 0.2)",color:"light"===e.mode?"#b45309":"#4338ca"},children:"light"===e.mode?"☀️":"🌙"}),
         P.jsx("span",{style:{fontSize:"14px",fontWeight:500},children:e.name||En("unnamedStyle")||"未命名样式"})]}),
         P.jsxs("div",{style:{display:"flex",gap:"8px"},children:[
         P.jsxs("button",{className:"settings-btn settings-btn-secondary",onClick:()=>{c(e),s(true);},style:{padding:"6px 12px",fontSize:"12px"},children:["✏️ ",En("edit")||"编辑"]}),
         P.jsx("button",{className:"settings-btn settings-btn-danger",onClick:()=>((e,t)=>{if(confirm(En("confirmDeleteStyle")||`确认删除样式「${t}」?`)){const t=(o?.theme?.customStyles||[]).filter(t=>t.id!==e);a({theme:{...o?.theme,customStyles:t}});}})(e.id,e.name),style:{padding:"6px 12px",fontSize:"12px"},children:"🗑️"})]})]},e.id))})]})}),i&&l&&P.jsx("div",{style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0,0,0,0.5)",display:"flex",alignItems:"center",justifyContent:"center",zIndex:1e4},children:P.jsxs("div",{style:{background:"var(--gh-bg, white)",borderRadius:"12px",width:"800px",maxWidth:"95%",height:"85vh",display:"flex",flexDirection:"column",boxShadow:"0 4px 20px rgba(0,0,0,0.2)"},children:[
         P.jsxs("div",{style:{padding:"16px",borderBottom:"1px solid var(--gh-border, #e5e7eb)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[
         P.jsx("h3",{style:{margin:0,fontSize:"16px",fontWeight:600},children:l.id?En("editStyle")||"编辑样式":En("newStyle")||"新建样式"}),
         P.jsx("button",{onClick:()=>s(false),style:{background:"none",border:"none",cursor:"pointer",fontSize:"18px",color:"var(--gh-text-secondary, #9ca3af)"},children:"✕"})]}),
         P.jsxs("div",{style:{padding:"16px",overflowY:"auto",flex:1,display:"flex",flexDirection:"column"},children:[
         P.jsxs("div",{style:{marginBottom:"16px"},children:[
         P.jsx("label",{style:{fontSize:"13px",fontWeight:500,marginBottom:"6px",display:"block"},children:En("styleNameLabel")||"样式名称"}),
         P.jsx("input",{type:"text",className:"settings-input",value:l.name,onChange:e=>c({...l,name:e.target.value}),placeholder:En("enterStyleName")||"输入样式名称",style:{width:"100%"}})]}),
         P.jsxs("div",{style:{marginBottom:"16px"},children:[
         P.jsx("label",{style:{fontSize:"13px",fontWeight:500,marginBottom:"6px",display:"block"},children:En("styleModeLabel")||"适用模式"}),
         P.jsxs("div",{style:{display:"flex",gap:"12px"},children:[
         P.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"6px",cursor:"pointer"},children:[
         P.jsx("input",{type:"radio",checked:"light"===l.mode,onChange:()=>c({...l,mode:"light"})}),
         P.jsxs("span",{children:["☀️ ",En("lightMode")||"浅色模式"]})]}),
         P.jsxs("label",{style:{display:"flex",alignItems:"center",gap:"6px",cursor:"pointer"},children:[
         P.jsx("input",{type:"radio",checked:"dark"===l.mode,onChange:()=>c({...l,mode:"dark"})}),
         P.jsxs("span",{children:["🌙 ",En("darkMode")||"深色模式"]})]})]})]}),
         P.jsxs("div",{style:{flex:1,display:"flex",flexDirection:"column"},children:[
         P.jsxs("label",{style:{fontSize:"13px",fontWeight:500,marginBottom:"6px",display:"block"},children:["CSS ",En("code")||"代码"]}),
         P.jsx("div",{className:"settings-textarea",style:{flex:1,padding:0,overflow:"hidden",display:"flex",flexDirection:"column"},children:P.jsx(vu,{value:l.css,onValueChange:e=>c({...l,css:e}),highlight:e=>dd(si.highlight(e,{language:"css"}).value),padding:12,style:{fontFamily:'"Menlo", "Monaco", "Consolas", monospace',fontSize:13,minHeight:"100%"},textareaClassName:"focus-outline-none"})})]})]}),
         P.jsxs("div",{style:{padding:"16px",borderTop:"1px solid var(--gh-border, #e5e7eb)",display:"flex",justifyContent:"flex-end",gap:"8px"},children:[
         P.jsx("button",{className:"settings-btn settings-btn-secondary",onClick:()=>s(false),children:En("cancel")||"取消"}),
         P.jsx("button",{className:"settings-btn settings-btn-primary",onClick:()=>{if(!l)return;if(!l.name.trim())return void Yr(En("pleaseEnterStyleName")||"请输入样式名称");const e=o?.theme?.customStyles||[];let t;if(l.id)t=e.map(e=>e.id===l.id?l:e);else {const n={...l,id:crypto.randomUUID()};t=[...e,n];}a({theme:{...o?.theme,customStyles:t}}),s(false),Yr(l.id?En("styleUpdated")||"样式已更新":En("styleCreated")||"样式已创建");},children:l.id?En("save")||"保存":En("create")||"创建"})]})]})})]})};function ku(e){const t=[];if(!e||"object"!=typeof e)return {valid:false,errorKeys:["backupValidationInvalidFormat"]};if(e.version||t.push("backupValidationMissingVersion"),!e.data||"object"!=typeof e.data)return t.push("backupValidationMissingData"),{valid:false,errorKeys:t};const n=e.data;return void 0!==n.settings&&("object"!=typeof n.settings||Array.isArray(n.settings))&&t.push("backupValidationSettingsType"),void 0!==n.prompts&&(Array.isArray(n.prompts)||t.push("backupValidationPromptsType")),void 0!==n.folders&&(Array.isArray(n.folders)||t.push("backupValidationFoldersType")),void 0!==n.conversations&&("object"!=typeof n.conversations||Array.isArray(n.conversations))&&t.push("backupValidationConversationsType"),void 0!==n.readingHistory&&("object"!=typeof n.readingHistory||Array.isArray(n.readingHistory))&&t.push("backupValidationHistoryType"),{valid:0===t.length,errorKeys:t}}function Cu(e){try{return decodeURIComponent(e)}catch{return e}}const Tu={enabled:false,url:"",username:"",password:"",syncMode:"manual",syncInterval:30,remoteDir:_d};class Du{config=Tu;autoSyncTimer=null;constructor(){this.loadConfig();}async loadConfig(){const{getSettingsState:e}=await r(async()=>{const{getSettingsState:e}=await Promise.resolve().then(()=>Dr);return {getSettingsState:e}},void 0),t=e();return t?.webdav&&(this.config={...Tu,...t.webdav}),this.config}
         /**
            * 设置配置
            * @param config 配置对象
            * @param persist 是否持久化到 storage (默认 true)
            */async setConfig(e,t=true){if(this.config={...this.config,...e},t){const{useSettingsStore:e}=await r(async()=>{const{useSettingsStore:e}=await Promise.resolve().then(()=>Dr);return {useSettingsStore:e}},void 0);e.getState().setSettings({webdav:this.config});}}async saveConfig(e){return this.setConfig(e,true)}getConfig(){return {...this.config}}async testConnection(){if(!this.config.url||!this.config.username||!this.config.password)return {success:false,messageKey:"webdavConfigIncomplete"};try{const e=await this.request("PROPFIND",this.config.remoteDir,null,{Depth:"0"});return e.ok||404===e.status?{success:!0,messageKey:"webdavConnectionSuccess"}:401===e.status?{success:!1,messageKey:"webdavAuthFailed"}:{success:!1,messageKey:"webdavConnectionFailed",messageArgs:{status:e.status}}}catch(e){return {success:false,messageKey:"webdavConnectionFailed",messageArgs:{error:String(e)}}}}async upload(){if(!this.config.url||!this.config.username||!this.config.password)return {success:false,messageKey:"webdavConfigIncomplete"};try{await this.saveConfig({lastSyncStatus:"syncing"});const e=await new Promise(e=>chrome.storage.local.get(null,e)),t=Object.fromEntries(Object.entries(e).map(([e,t])=>{try{let n="string"==typeof t?JSON.parse(t):t;return Ln.includes(e)&&n?.state&&(n=Pn.includes(e)?n.state:void 0!==n.state[e]?n.state[e]:n.state),[e,n]}catch{return [e,t]}})),n={version:3,timestamp:(new Date).toISOString(),data:t},r=function(){const e=new Date,t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0"),o=String(e.getHours()).padStart(2,"0"),a=String(e.getMinutes()).padStart(2,"0"),i=String(e.getSeconds()).padStart(2,"0");return `${_d}_backup_${t}-${n}-${r}_${o}-${a}-${i}.json`}(),o=this.buildRemotePath(r);if(this.config.remoteDir)try{await this.request("MKCOL",this.config.remoteDir);}catch{}const a=await this.request("PUT",o,JSON.stringify(n,null,2),{"Content-Type":"application/json"});if(a.ok||201===a.status||204===a.status){const e=Date.now();return await this.saveConfig({lastSyncTime:e,lastSyncStatus:"success"}),{success:!0,messageKey:"webdavUploadSuccess",timestamp:e}}return await this.saveConfig({lastSyncStatus:"failed"}),{success:!1,messageKey:"webdavUploadFailed",messageArgs:{status:a.status}}}catch(e){return await this.saveConfig({lastSyncStatus:"failed"}),{success:false,messageKey:"webdavUploadFailed",messageArgs:{error:String(e)}}}}async getBackupList(e=10){if(!this.config.url||!this.config.username||!this.config.password)return [];try{const t='<?xml version="1.0" encoding="utf-8" ?>\n<D:propfind xmlns:D="DAV:">\n  <D:prop>\n    <D:displayname/>\n    <D:getcontentlength/>\n    <D:getlastmodified/>\n  </D:prop>\n</D:propfind>',n=await this.request("PROPFIND",this.config.remoteDir,t,{Depth:"1","Content-Type":"application/xml"});if(!n.ok)return [];const r=await n.text(),o="(?:[a-zA-Z0-9_-]+:)?",a=new RegExp(`<${o}response[^>]*>([\\s\\S]*?)<\\/${o}response>`,"gi"),i=Array.from(r.matchAll(a)),s=[];for(const e of i){const t=e[1],n=t.match(new RegExp(`<${o}href[^>]*>([^<]+)<\\/${o}href>`,"i"));if(!n)continue;const r=Cu(n[1]);if(!r.endsWith(".json")||!r.includes(`${_d}_backup_`))continue;const a=t.match(new RegExp(`<${o}getcontentlength[^>]*>([^<]+)<\\/${o}getcontentlength>`,"i")),i=a?parseInt(a[1],10):0,l=t.match(new RegExp(`<${o}getlastmodified[^>]*>([^<]+)<\\/${o}getlastmodified>`,"i")),c=l?new Date(l[1]):new Date(0),d=r.split("/").pop()||r;s.push({name:d,path:r,size:i,lastModified:c});}return s.sort((e,t)=>t.lastModified.getTime()-e.lastModified.getTime()),s.slice(0,e)}catch(t){return console.error("Failed to get backup list:",t),[]}}async deleteFile(e){if(!this.config.url||!this.config.username||!this.config.password)return {success:false,messageKey:"webdavConfigIncomplete"};try{const t=this.buildRemotePath(e),n=await this.request("DELETE",t);return n.ok||204===n.status||404===n.status?{success:!0,messageKey:"webdavDeleteSuccess"}:{success:!1,messageKey:"webdavDeleteFailed",messageArgs:{status:n.status}}}catch(t){return {success:false,messageKey:"webdavDeleteFailed",messageArgs:{error:String(t)}}}}
         /**
            * 从 WebDAV 下载并恢复数据
            * @param targetFileName 可选,指定下载的文件名。若不指定则下载最新。
            */async download(e){if(!this.config.url||!this.config.username||!this.config.password)return {success:false,messageKey:"webdavConfigIncomplete"};try{await this.saveConfig({lastSyncStatus:"syncing"});let t=e;if(!t){const e=await this.getBackupList(1);if(0===e.length)return await this.saveConfig({lastSyncStatus:"failed"}),{success:!1,messageKey:"webdavFileNotFound"};t=e[0].name;}const n=this.buildRemotePath(t),r=await this.request("GET",n);if(!r.ok)return await this.saveConfig({lastSyncStatus:"failed"}),{success:!1,messageKey:"webdavDownloadFailed",messageArgs:{status:r.status}};const o=await r.text(),a=JSON.parse(o),i=ku(a);if(!i.valid)return console.error("Backup validation failed:",i.errorKeys),await this.saveConfig({lastSyncStatus:"failed"}),{success:!1,messageKey:"webdavInvalidFormat"};const s=this.config,l=Object.fromEntries(Object.entries(a.data).map(([e,t])=>{if(null==t)return [e,t];if(Ln.includes(e)){let n;if(Pn.includes(e))if("object"!=typeof t||Array.isArray(t))n="readingHistory"===e?{history:t}:{[e]:t};else {const r=t;n="conversations"===e&&void 0!==r.conversations?t:"readingHistory"!==e||void 0===r.history&&void 0===r.lastCleanupRun?"readingHistory"===e?{history:t}:{[e]:t}:t;}else n={[e]:t};return [e,JSON.stringify({state:n,version:0})]}return "object"==typeof t?[e,JSON.stringify(t)]:[e,t]}));await new Promise((e,t)=>chrome.storage.local.set(l,()=>chrome.runtime.lastError?t(chrome.runtime.lastError):e())),await new Promise((e,t)=>{chrome.storage.local.get("settings",n=>{if(chrome.runtime.lastError)return void t(chrome.runtime.lastError);let r=n.settings;if("string"==typeof r)try{r=JSON.parse(r);}catch{return void e()}r?.state?.settings&&(r.state.settings.webdav=s),chrome.storage.local.set({settings:JSON.stringify(r)},()=>chrome.runtime.lastError?t(chrome.runtime.lastError):e());});});const c=Date.now();return await this.saveConfig({lastSyncTime:c,lastSyncStatus:"success"}),{success:!0,messageKey:"webdavDownloadSuccess",timestamp:c}}catch(t){return await this.saveConfig({lastSyncStatus:"failed"}),{success:false,messageKey:"webdavDownloadFailed",messageArgs:{error:String(t)}}}}startAutoSync(){this.stopAutoSync(),this.config.enabled&&"auto"===this.config.syncMode&&this.config.syncInterval>0&&(this.autoSyncTimer=setInterval(()=>{this.upload();},60*this.config.syncInterval*1e3));}stopAutoSync(){this.autoSyncTimer&&(clearInterval(this.autoSyncTimer),this.autoSyncTimer=null);}buildRemotePath(e){let t=this.config.remoteDir.trim();return t=t.replace(/^\/+|\/+$/g,""),t?`${t}/${e}`:e}async request(e,t,n,r){const o=this.buildUrl(t);return this.requestViaGM(e,o,n,r)}requestViaGM(e,t,n,r){return new Promise((o,a)=>{const i={...r};if(this.config.username&&this.config.password){const e=btoa(`${this.config.username}:${this.config.password}`);i.Authorization=`Basic ${e}`;}GM_xmlhttpRequest({method:e,url:t,headers:i,data:n||void 0,onload:e=>{o({ok:e.status>=200&&e.status<300,status:e.status,statusText:e.statusText,text:async()=>e.responseText,headers:{get:t=>{const n=e.responseHeaders?.split("\r\n")||[];for(const e of n){const[n,...r]=e.split(":");if(n?.toLowerCase()===t.toLowerCase())return r.join(":").trim()}return null}}});},onerror:e=>{a(new Error(e.statusText||"GM_xmlhttpRequest failed"));},ontimeout:()=>{a(new Error("Request timeout"));}});})}async requestViaBackground(e,t,n,r){const o=await chrome.runtime.sendMessage({type:"WEBDAV_REQUEST",method:e,url:t,body:n,headers:r,auth:{username:this.config.username,password:this.config.password}});if(!o.success)throw new Error(o.error||"WebDAV request failed");return {ok:o.status>=200&&o.status<300,status:o.status,statusText:o.statusText,text:async()=>o.body,headers:{get:e=>o.headers?.[e.toLowerCase()]||null}}}buildUrl(e){let t=this.config.url.trim();t.endsWith("/")||(t+="/");return t+e.replace(/^\/+/,"")}}let Eu=null;function Au(){return Eu||(Eu=new Du),Eu}const _u=Yn()(nr((e,t)=>({history:{},lastCleanupRun:0,_hasHydrated:false,savePosition:(t,n)=>e(e=>({history:{...e.history,[t]:n}})),getPosition:e=>t().history[e],cleanup:n=>{if(-1===n)return;const r=Date.now(),o=t();if(r-o.lastCleanupRun<864e5)return;const a=24*n*60*60*1e3,i={};let s=false;for(const[e,t]of Object.entries(o.history))r-t.ts<=a?i[e]=t:s=true;e(s?{history:i,lastCleanupRun:r}:{lastCleanupRun:r});},setHasHydrated:t=>e({_hasHydrated:t})}),{name:"readingHistory",storage:er(()=>xr),partialize:e=>({history:e.history,lastCleanupRun:e.lastCleanupRun}),onRehydrateStorage:()=>e=>{e?.setHasHydrated(true);}})),Lu=()=>_u.getState(),Pu=e=>{if(0===e)return "0 B";const t=Math.floor(Math.log(e)/Math.log(1024));return parseFloat((e/Math.pow(1024,t)).toFixed(2))+" "+["B","KB","MB","GB","TB"][t]},Nu=e=>e instanceof Error?e.message:String(e),Mu=({onClose:e,onRestore:t})=>{const[n,r]=u.useState([]),[o,a]=u.useState(true),[i,s]=u.useState({show:false,title:"",message:"",onConfirm:()=>{}}),l=async()=>{a(true);try{const e=Au(),t=await e.getBackupList();r(t);}catch(e){Yr("加载失败: "+String(e));}finally{a(false);}};h.useEffect(()=>{l();},[]);
         return P.jsxs("div",{className:"settings-modal-overlay",style:{position:"fixed",top:0,left:0,right:0,bottom:0,background:"rgba(0,0,0,0.5)",zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center"},children:[i.show&&P.jsx(fd,{title:i.title,message:i.message,danger:i.danger,onConfirm:i.onConfirm,onCancel:()=>s(e=>({...e,show:false}))}),
         P.jsxs("div",{className:"settings-modal",style:{width:"500px",height:"600px",background:"var(--gh-card-bg, #ffffff)",borderRadius:"12px",display:"flex",flexDirection:"column",overflow:"hidden"},children:[
         P.jsxs("div",{style:{padding:"16px 20px",borderBottom:"1px solid var(--gh-border, #e5e7eb)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[
         P.jsx("div",{style:{fontWeight:600,fontSize:"16px"},children:En("webdavBackupList")||"WebDAV 备份列表"}),
         P.jsxs("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:[
         P.jsx(xd,{content:En("refresh")||"刷新",children:P.jsx("button",{onClick:l,className:"settings-btn settings-btn-secondary",style:{padding:"6px"},children:"🔄"})}),
         P.jsx("button",{onClick:e,className:"settings-btn settings-btn-secondary",style:{padding:"6px 12px"},children:"✕"})]})]}),
         P.jsx("div",{style:{overflowY:"auto",padding:"16px",flex:1},children:o?P.jsx("div",{style:{textAlign:"center",padding:"20px",color:"var(--gh-text-secondary)"},children:En("loading")||"加载中..."}):0===n.length?P.jsx("div",{style:{textAlign:"center",padding:"20px",color:"var(--gh-text-secondary)"},children:En("noBackupsFound")||"未找到备份文件"}):P.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"10px"},children:n.map(e=>P.jsxs("div",{style:{padding:"12px",background:"var(--gh-bg-secondary, #f9fafb)",borderRadius:"8px",display:"flex",alignItems:"center",justifyContent:"space-between"},children:[
         P.jsxs("div",{children:[
         P.jsx("div",{style:{fontSize:"14px",fontWeight:500},children:e.name}),
         P.jsxs("div",{style:{fontSize:"12px",color:"var(--gh-text-secondary)"},children:[Pu(e.size)," • ",e.lastModified.toLocaleString()]})]}),
         P.jsxs("div",{style:{display:"flex",gap:"8px"},children:[
         P.jsx("button",{onClick:()=>(e=>{s({show:true,title:En("restore")||"恢复",message:`确定要恢复备份 "${e.name}" 吗?当前数据将被覆盖,${En("openAiPagesWillRefresh")||"已打开的 AI 页面将被刷新。"}`,danger:true,onConfirm:async()=>{s(e=>({...e,show:false}));try{a(!0);const n=Au(),r=await n.download(e.name);if(r.success){try{"extension"===ru.type&&"undefined"!=typeof chrome&&(await new Promise((e,t)=>chrome.storage.local.set({[yr]:Date.now()},()=>chrome.runtime.lastError?t(chrome.runtime.lastError):e())),await chrome.runtime.sendMessage({type:Xa}));}catch{}Yr(En("restoreSuccess")||"恢复成功,即将刷新页面..."),setTimeout(()=>{t();},1500);}else Yr(En("restoreError")||"恢复失败: "+r.messageKey),a(!1);}catch(n){Yr("恢复失败: "+String(n)),a(false);}}});})(e),className:"settings-btn settings-btn-primary",style:{padding:"6px 12px",fontSize:"12px"},children:En("restore")||"恢复"}),
         P.jsx("button",{onClick:()=>(e=>{s({show:true,title:En("delete")||"删除",message:`确定要删除云端备份 "${e.name}" 吗?此操作不可逆。`,danger:true,onConfirm:async()=>{s(e=>({...e,show:false}));try{a(!0);const t=Au();(await t.deleteFile(e.name)).success?(Yr(En("deleteSuccess")||"删除成功"),l()):(Yr(En("deleteError")||"删除失败"),a(!1));}catch(t){Yr("删除失败: "+String(t)),a(false);}}});})(e),className:"settings-btn settings-btn-danger",style:{padding:"6px 12px",fontSize:"12px"},children:"🗑️"})]})]},e.name))})})]})]})},Iu=({siteId:e,onNavigate:t})=>{const{settings:n,setSettings:r,resetSettings:o}=wr(),[a,i]=u.useState(false),s=u.useRef(null),[l,c]=u.useState(""),[d,h]=u.useState({url:"",username:"",password:"",remoteDir:"ophel"});u.useEffect(()=>{n?.webdav&&h(e=>({...e,...n.webdav}));},[n?.webdav]);const[g,p]=u.useState({show:false,title:"",message:"",onConfirm:()=>{}}),[m,f]=u.useState({show:false,onConfirm:()=>{}});if(!n)return null;const b=async e=>{try{let n={};const r=(new Date).toISOString();let o=`ophel-backup-${r.slice(0,10)}.json`;if("full"===e){const e=await new Promise(e=>chrome.storage.local.get(null,e));n={version:3,timestamp:r,type:"full",data:Object.fromEntries(Object.entries(e).map(([e,t])=>{try{let n="string"==typeof t?JSON.parse(t):t;return Ln.includes(e)&&n?.state&&(n=Pn.includes(e)?n.state:void 0!==n.state[e]?n.state[e]:n.state),[e,n]}catch{return [e,t]}}))};}else if("prompts"===e){const e=await new Promise(e=>chrome.storage.local.get("prompts",e));let a=[];try{const t="string"==typeof e.prompts?JSON.parse(e.prompts):e.prompts;t?.state?.prompts&&(a=t.state.prompts);}catch(t){console.error(t);}n={version:3,timestamp:r,type:"prompts",data:{prompts:a}},o=`ophel-prompts-${r.slice(0,10)}.json`;}else if("settings"===e){const e=await new Promise(e=>chrome.storage.local.get("settings",e));let a={};try{const t="string"==typeof e.settings?JSON.parse(e.settings):e.settings;t?.state?.settings?a=t.state.settings:t?.state&&(a=t.state);}catch(t){console.error(t);}n={version:3,timestamp:r,type:"settings",data:{settings:a}},o=`ophel-settings-${r.slice(0,10)}.json`;}const a=new Blob([JSON.stringify(n,null,2)],{type:"application/json"}),i=URL.createObjectURL(a),s=document.createElement("a");s.href=i,s.download=o,s.click(),URL.revokeObjectURL(i),Yr(En("exportSuccess")||"导出成功!");}catch(n){Yr(En("exportError")||"导出失败:"+String(n));}},y=async e=>{const t=d.url;if(!t)return Yr(En("webdavConfigIncomplete")||"请填写完整的 WebDAV 配置"),false;if(!ru.hasCapability("permissions"))return await e(),true;try{const n=new URL(t).origin+"/*";return (await chrome.runtime.sendMessage({type:"CHECK_PERMISSION",origin:n})).hasPermission?(await e(),!0):(f({show:!0,onConfirm:async()=>{f(e=>({...e,show:!1})),await chrome.runtime.sendMessage({type:"REQUEST_PERMISSIONS",permType:"allUrls"});}}),!1)}catch(n){return console.warn("Perm check logic skipped:",n),await e(),true}};
         return P.jsxs("div",{className:"settings-content",children:[
         P.jsx(hu,{title:En("navBackup")||"备份与同步",Icon:le}),g.show&&P.jsx(fd,{title:g.title,message:g.message,danger:g.danger,onConfirm:g.onConfirm,onCancel:()=>p(e=>({...e,show:false}))}),m.show&&P.jsx(fd,{title:En("permissionRequired")||"需要权限",message:En("webdavPermissionDesc")||"需要访问该域名的权限才能进行 WebDAV 备份。",onConfirm:m.onConfirm,onCancel:()=>f(e=>({...e,show:false}))}),a&&P.jsx(Mu,{onClose:()=>i(false),onRestore:()=>window.location.reload()}),
         P.jsxs("div",{className:"backup-grid",style:{display:"grid",gridTemplateColumns:"repeat(auto-fit, minmax(400px, 1fr))",gap:"20px",marginBottom:"24px"},children:[
         P.jsx(lu,{title:En("exportData")||"导出数据",description:En("exportDataDesc")||"将数据导出为 JSON 文件进行备份",children:P.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[
         P.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"12px",background:"var(--gh-bg-secondary)",borderRadius:"8px"},children:[
         P.jsxs("div",{children:[
         P.jsx("div",{style:{fontWeight:500,fontSize:"14px"},children:En("fullBackup")||"完整备份"}),
         P.jsx("div",{style:{fontSize:"12px",color:"var(--gh-text-secondary)"},children:En("fullBackupDesc")||"推荐用于完整迁移"})]}),
         P.jsx("button",{onClick:()=>b("full"),className:"settings-btn settings-btn-success",style:{padding:"6px 16px"},children:En("export")||"导出"})]}),
         P.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"12px",background:"var(--gh-bg-secondary)",borderRadius:"8px"},children:[
         P.jsxs("div",{children:[
         P.jsx("div",{style:{fontWeight:500,fontSize:"14px"},children:En("promptsBackup")||"仅提示词"}),
         P.jsx("div",{style:{fontSize:"12px",color:"var(--gh-text-secondary)"},children:En("promptsBackupDesc")||"仅导出提示词数据"})]}),
         P.jsx("button",{onClick:()=>b("prompts"),className:"settings-btn settings-btn-primary",style:{padding:"6px 16px"},children:En("export")||"导出"})]}),
         P.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",padding:"12px",background:"var(--gh-bg-secondary)",borderRadius:"8px"},children:[
         P.jsxs("div",{children:[
         P.jsx("div",{style:{fontWeight:500,fontSize:"14px"},children:En("settingsBackup")||"仅设置"}),
         P.jsx("div",{style:{fontSize:"12px",color:"var(--gh-text-secondary)"},children:En("settingsBackupDesc")||"仅导出配置项"})]}),
         P.jsx("button",{onClick:()=>b("settings"),className:"settings-btn settings-btn-secondary",style:{padding:"6px 16px"},children:En("export")||"导出"})]})]})}),
         P.jsx(lu,{title:En("importData")||"导入数据",description:En("importDataDesc")||"从备份文件恢复数据",children:P.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[
         P.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[
         P.jsx("div",{style:{fontSize:"14px",fontWeight:500},children:En("selectFile")||"选择文件"}),
         P.jsxs("button",{className:"settings-btn settings-btn-secondary",onClick:()=>s.current?.click(),style:{padding:"6px 12px"},children:[En("browse")||"浏览...",
         P.jsx("input",{ref:s,type:"file",accept:".json",style:{display:"none"},onChange:async e=>{const t=e.target.files?.[0];if(!t)return;const n=await t.text();c(n),s.current&&(s.current.value="");}})]})]}),
         P.jsxs("div",{style:{flex:1},children:[
         P.jsx("div",{style:{fontSize:"12px",color:"var(--gh-text-secondary)",marginBottom:"4px"},children:En("dataPreview")||"数据预览 (可直接粘贴)"}),
         P.jsx("textarea",{className:"settings-input",value:l,onChange:e=>c(e.target.value),placeholder:En("pastePlaceholder")||"粘贴 JSON 数据...",style:{width:"100%",height:"120px",fontFamily:"monospace",fontSize:"12px",resize:"vertical"}})]}),
         P.jsx("button",{onClick:()=>{l.trim()?(async e=>{try{const n=JSON.parse(e),r=ku(n);if(!r.valid){const e=r.errorKeys.map(e=>En(e)||e).join(", ");return console.error("Backup validation failed:",r.errorKeys),void Yr(En("invalidBackupFile")||"无效的格式: "+e)}p({show:!0,title:En("importData")||"导入数据",message:P.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:[
         P.jsx("div",{children:En("importConfirm")||"确定导入?"}),
         P.jsx("div",{style:{border:"1px solid var(--gh-border, #e5e7eb)",background:"var(--gh-hover, #f8fafc)",borderRadius:"8px",padding:"10px 12px"},children:P.jsxs("div",{style:{display:"grid",gridTemplateColumns:"72px 1fr",rowGap:"6px",columnGap:"10px",alignItems:"start"},children:[
         P.jsx("div",{style:{color:"var(--gh-text-secondary, #6b7280)"},children:En("backupTime")||"备份时间"}),
         P.jsx("div",{style:{color:"var(--gh-text, #111827)",fontWeight:500},children:String(n.timestamp||"-")}),
         P.jsx("div",{style:{color:"var(--gh-text-secondary, #6b7280)"},children:En("backupType")||"类型"}),
         P.jsx("div",{style:{color:"var(--gh-text, #111827)",fontWeight:500},children:(t=n.type,"full"===t?En("fullBackup")||"完整备份":"prompts"===t?En("promptsBackup")||"仅提示词":"settings"===t?En("settingsBackup")||"仅设置":String(t||En("unknown")||"未知"))})]})}),
         P.jsx("div",{style:{fontSize:"12px",color:"var(--gh-text-secondary, #6b7280)"},children:En("openAiPagesWillRefresh")||"已打开的 AI 页面将被刷新。"})]}),danger:!0,onConfirm:async()=>{p(e=>({...e,show:!1}));try{const e={};Object.entries(n.data).forEach(([t,n])=>{if(null!=n)if(Ln.includes(t)){let r=n;if(Pn.includes(t))if("object"!=typeof n||Array.isArray(n))r="readingHistory"===t?{history:n}:{[t]:n};else {const e=n;r="conversations"===t&&void 0!==e.conversations?n:"readingHistory"!==t||void 0===e.history&&void 0===e.lastCleanupRun?"readingHistory"===t?{history:n}:{[t]:n}:n;}else r="prompts"===t&&Array.isArray(n)?{prompts:n}:"settings"!==t||n.settings?{[t]:n}:{settings:n};e[t]=JSON.stringify({state:r,version:0});}else e[t]="object"==typeof n?JSON.stringify(n):n;}),await new Promise((t,n)=>chrome.storage.local.set(e,()=>chrome.runtime.lastError?n(chrome.runtime.lastError):t()));try{"extension"===ru.type&&"undefined"!=typeof chrome&&(await new Promise((e,t)=>chrome.storage.local.set({[yr]:Date.now()},()=>chrome.runtime.lastError?t(chrome.runtime.lastError):e())),await chrome.runtime.sendMessage({type:Xa}));}catch{}Yr(En("importSuccess")||"导入成功"),setTimeout(()=>window.location.reload(),1e3);}catch(e){console.error("[Backup] import storage write failed:",e),Yr(`${En("importError")||"导入失败:"}${Nu(e)}`);}}});}catch(n){console.error("[Backup] import parse failed:",n),Yr(`${En("importError")||"导入失败:"}${Nu(n)}`);}var t;})(l):Yr("请先选择文件或粘贴内容");},className:"settings-btn settings-btn-primary",style:{width:"100%",justifyContent:"center",padding:"8px"},disabled:!l.trim(),children:En("importBtn")||"确认导入"})]})})]}),
         P.jsxs(lu,{title:En("webdavConfig")||"WebDAV 备份与同步",description:En("webdavConfigDesc")||"配置 WebDAV 服务器以启用云端同步",children:[
         P.jsxs("div",{style:{background:"var(--gh-primary-light-bg, rgba(66, 133, 244, 0.05))",border:"1px solid var(--gh-primary-border, rgba(66, 133, 244, 0.2))",borderRadius:"8px",padding:"12px",marginBottom:"20px",fontSize:"13px",color:"var(--gh-primary, #4285f4)"},children:[
         P.jsxs("div",{style:{fontWeight:600,marginBottom:"4px"},children:["ℹ️ ",En("restoreTip")||"恢复提示"]}),
         P.jsx("div",{style:{lineHeight:1.5,opacity:.9},children:En("restoreTipContent")})]}),
         P.jsx(cu,{label:En("webdavAddress")||"服务器地址",children:P.jsx("input",{type:"text",className:"settings-input",placeholder:"https://dav.example.com/dav/",value:d.url,onChange:e=>h({...d,url:e.target.value}),style:{width:"280px"}})}),
         P.jsx(cu,{label:En("username")||"用户名",children:P.jsx("input",{type:"text",className:"settings-input",value:d.username,onChange:e=>h({...d,username:e.target.value}),style:{width:"280px"}})}),
         P.jsx(cu,{label:En("password")||"密码",children:P.jsx("input",{type:"password",className:"settings-input",value:d.password,onChange:e=>h({...d,password:e.target.value}),style:{width:"280px"}})}),
         P.jsx(cu,{label:En("defaultDir")||"默认目录",children:P.jsx("input",{type:"text",className:"settings-input",placeholder:"ophel",value:d.remoteDir,onChange:e=>h({...d,remoteDir:e.target.value}),style:{width:"280px"}})}),
         P.jsxs("div",{style:{marginTop:"16px",paddingTop:"16px",borderTop:"1px solid var(--gh-border)",display:"flex",gap:"12px",flexWrap:"wrap",alignItems:"center"},children:[
         P.jsxs("button",{className:"settings-btn settings-btn-primary",onClick:()=>{r({webdav:{...n.webdav??dr.webdav??{},...d}}),Yr(En("saveSuccess")||"配置已保存");},style:{padding:"6px 20px"},children:["💾 ",En("saveConfig")||"保存配置"]}),
         P.jsx("div",{style:{width:"1px",height:"20px",background:"var(--gh-border)",margin:"0 8px"}}),
         P.jsxs("button",{className:"settings-btn settings-btn-secondary",onClick:async()=>{await y(async()=>{const e=Au();await e.setConfig(d,!1);const t=await e.testConnection();t.success?Yr(En("webdavConnectionSuccess")||"连接成功"):Yr(En("webdavConnectionFailed")||"连接失败: "+t.messageKey);});},children:["🔗 ",En("webdavTestBtn")||"测试连接"]}),
         P.jsxs("button",{className:"settings-btn settings-btn-secondary",onClick:async()=>{await y(async()=>{const e=Au();await e.setConfig(d,!1),i(!0);});},children:["📂 ",En("restore")||"恢复/下载"]}),
         P.jsxs("button",{className:"settings-btn settings-btn-success",onClick:async()=>{await y(async()=>{const e=Au();await e.setConfig(d,!1);const t=await e.upload();t.success?Yr(En("webdavUploadSuccess")||"备份上传成功"):Yr(En("webdavUploadFailed")||"上传失败: "+t.messageKey);});},style:{marginLeft:"auto"},children:["☁️ ",En("backupNow")||"立即上传备份"]})]})]}),
         P.jsx(lu,{title:En("dangerZone")||"危险区域",description:En("dangerZoneDesc")||"破坏性操作(不可恢复)",className:"danger-zone-card",children:P.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[
         P.jsxs("div",{children:[
         P.jsx("div",{style:{fontSize:"14px",fontWeight:500,color:"var(--gh-danger, #ef4444)"},children:En("clearAllData")||"清除全部数据"}),
         P.jsx("div",{style:{fontSize:"12px",color:"var(--gh-text-secondary)"},children:En("clearAllDataDesc")||"慎重操作:这将清除本地所有设置、提示词和会话数据"})]}),
         P.jsx("button",{className:"settings-btn settings-btn-danger",onClick:()=>{p({show:true,title:En("clearAllData")||"清除全部数据",message:En("clearAllDataConfirm")||"确定要清除所有数据吗?此操作不可逆,所有设置、提示词、会话等数据都将被删除!",danger:true,onConfirm:async()=>{p(e=>({...e,show:false}));try{if("extension"===ru.type&&"undefined"!=typeof chrome)try{await chrome.runtime.sendMessage({type:$a});}catch{}await Promise.all([new Promise((e,t)=>chrome.storage.local.clear(()=>chrome.runtime.lastError?t(chrome.runtime.lastError):e())),new Promise((e,t)=>chrome.storage.sync.clear(()=>chrome.runtime.lastError?t(chrome.runtime.lastError):e()))]),await new Promise((e,t)=>chrome.storage.local.set({[or]:Date.now()},()=>chrome.runtime.lastError?t(chrome.runtime.lastError):e())),o(),ua.getState().setPrompts(Nn()),Ko.setState({folders:Mn}),Qo.setState({tags:[]}),Bo.setState({conversations:{},lastUsedFolderId:"inbox"}),_u.setState({history:{},lastCleanupRun:0}),Yr(En("clearSuccess")||"数据已清除,即将刷新..."),setTimeout(()=>window.location.reload(),1500);}catch(e){Yr(En("error")+": "+String(e));}}});},style:{padding:"8px 16px",fontSize:"13px"},children:En("clearAllData")||"清除全部数据"})]})})]})},ju=({value:e,onChange:t,placeholder:n,className:r,style:o})=>{const[a,i]=u.useState(e);h.useEffect(()=>{i(e);},[e]);const s=()=>{a!==e&&t(a);};
         return P.jsx("input",{type:"text",className:r,value:a,onChange:e=>i(e.target.value),onBlur:s,onKeyDown:e=>{"Enter"===e.key&&(s(),e.target.blur());},placeholder:n,style:o})},Ru=({siteId:e,initialTab:t})=>{const n=[{id:$e,label:En("tabOutline")||"大纲"},{id:Xe,label:En("tabConversations")||"会话"},{id:Ye,label:En("tabPrompts")||"Prompts"},{id:et,label:En("tabSettingsTab")||"标签页"},{id:tt,label:En("navContent")||"内容交互"},{id:nt,label:En("readingHistoryTitle")||"阅读历史"}],[r,o]=u.useState(t||n[0].id),{settings:a,updateDeepSetting:i,updateNestedSetting:s}=wr();if(u.useEffect(()=>{t&&o(t);},[t]),!a)return null;const l=En("enablePrerequisiteToast")||"请先开启「{setting}」",c=e=>eo(l.replace("{setting}",e),2e3,{},1500,e),d=En("autoRenameTabLabel")||"自动重命名",h=En("showNotificationLabel")||"桌面通知",g=En("privacyModeLabel")||"隐私模式",p=En("readingHistoryPersistenceLabel")||"启用阅读历史",m=En("formulaCopyLabel")||"双击复制公式";
         return P.jsxs("div",{children:[
         P.jsx(hu,{title:En("navFeatures")||"功能模块",Icon:ee}),
         P.jsx("p",{className:"settings-page-desc",children:En("featuresPageDesc")||"配置扩展的各项功能模块"}),
         P.jsx(uu,{tabs:n,activeTab:r,onTabChange:o}),r===et&&P.jsxs(P.Fragment,{children:[
         P.jsxs(lu,{title:En("tabBehaviorTitle")||"标签页行为",children:[
         P.jsx(du,{label:En("openNewTabLabel")||"新标签页打开",description:En("openNewTabDesc")||"在新标签页中打开新对话",settingId:"tab-open-new",checked:a.tab?.openInNewTab??true,onChange:()=>s("tab","openInNewTab",!a.tab?.openInNewTab)}),
         P.jsx(du,{label:En("autoRenameTabLabel")||"自动重命名",description:En("autoRenameTabDesc")||"根据对话内容自动更新标签页标题",settingId:"tab-auto-rename",checked:a.tab?.autoRename??false,onChange:()=>s("tab","autoRename",!a.tab?.autoRename)}),
         P.jsx(cu,{label:En("renameIntervalLabel")||"检测频率",settingId:"tab-rename-interval",disabled:!a.tab?.autoRename,onDisabledClick:()=>c(d),children:P.jsx("select",{className:"settings-select",value:a.tab?.renameInterval||3,onChange:e=>s("tab","renameInterval",parseInt(e.target.value)),disabled:!a.tab?.autoRename,children:[1,3,5,10,30,60].map(e=>P.jsxs("option",{value:e,children:[e," 秒"]},e))})}),
         P.jsx(cu,{label:En("titleFormatLabel")||"标题格式",description:En("titleFormatDesc")||"支持占位符:{status}、{title}、{model}",settingId:"tab-title-format",disabled:!a.tab?.autoRename,onDisabledClick:()=>c(d),children:P.jsx("input",{type:"text",className:"settings-input",value:a.tab?.titleFormat||"{status}{title}",onChange:e=>s("tab","titleFormat",e.target.value),placeholder:"{status}{title}",disabled:!a.tab?.autoRename,style:{width:"180px"}})}),
         P.jsx(du,{label:En("showStatusLabel")||"显示生成状态",description:En("showStatusDesc")||"在标签页标题中显示生成状态",settingId:"tab-show-status",checked:a.tab?.showStatus??true,onChange:()=>s("tab","showStatus",!a.tab?.showStatus)})]}),
         P.jsxs(lu,{title:En("notificationSettings")||"完成后操作",children:[
         P.jsx(du,{label:En("showNotificationLabel")||"桌面通知",description:En("showNotificationDesc")||"生成完成时发送桌面通知",settingId:"tab-show-notification",checked:a.tab?.showNotification??false,onChange:async()=>{const e=a.tab?.showNotification;if(e)s("tab","showNotification",false);else {if(!ru.hasCapability("permissions"))return void s("tab","showNotification",true);const e=await Ya({type:Za,permissions:["notifications"]});e.success&&e.hasPermission?s("tab","showNotification",true):(await Ya({type:Ja,permType:"notifications"}),Yr(En("permissionRequestToast")||"请在弹出的窗口中授予权限",3e3));}}}),
         P.jsx(du,{label:En("notificationSoundLabel")||"通知声音",description:En("notificationSoundDesc")||"生成完成时播放提示音",settingId:"tab-notification-sound",checked:a.tab?.notificationSound??false,disabled:!a.tab?.showNotification,onDisabledClick:()=>c(h),onChange:()=>s("tab","notificationSound",!a.tab?.notificationSound)}),
         P.jsx(cu,{label:En("notificationVolumeLabel")||"声音音量",settingId:"tab-notification-volume",disabled:!a.tab?.showNotification||!a.tab?.notificationSound,onDisabledClick:()=>c(h),children:P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[
         P.jsx("input",{type:"range",min:"0.1",max:"1.0",step:"0.1",value:a.tab?.notificationVolume||.5,onChange:e=>s("tab","notificationVolume",parseFloat(e.target.value)),disabled:!a.tab?.showNotification||!a.tab?.notificationSound,style:{width:"100px"}}),
         P.jsxs("span",{style:{fontSize:"12px",minWidth:"36px"},children:[Math.round(100*(a.tab?.notificationVolume||.5)),"%"]})]})}),
         P.jsx(du,{label:En("notifyWhenFocusedLabel")||"前台时也通知",description:En("notifyWhenFocusedDesc")||"窗口在前台时也发送通知",settingId:"tab-notify-when-focused",checked:a.tab?.notifyWhenFocused??false,disabled:!a.tab?.showNotification,onDisabledClick:()=>c(h),onChange:()=>s("tab","notifyWhenFocused",!a.tab?.notifyWhenFocused)}),
         P.jsx(du,{label:En("autoFocusLabel")||"自动置顶窗口",description:En("autoFocusDesc")||"生成完成后自动激活窗口",settingId:"tab-auto-focus",checked:a.tab?.autoFocus??false,onChange:()=>s("tab","autoFocus",!a.tab?.autoFocus)})]}),
         P.jsxs(lu,{title:En("privacyModeTitle")||"隐私模式",children:[
         P.jsx(du,{label:En("privacyModeLabel")||"启用隐私模式",description:En("privacyModeDesc")||"使用伪装标题隐藏真实内容",settingId:"tab-privacy-mode",checked:a.tab?.privacyMode??false,onChange:()=>s("tab","privacyMode",!a.tab?.privacyMode)}),
         P.jsx(cu,{label:En("privacyTitleLabel")||"伪装标题",settingId:"tab-privacy-title",disabled:!a.tab?.privacyMode,onDisabledClick:()=>c(g),children:P.jsx("input",{type:"text",className:"settings-input",value:a.tab?.privacyTitle||"Google",onChange:e=>s("tab","privacyTitle",e.target.value),placeholder:"Google",disabled:!a.tab?.privacyMode,style:{width:"180px"}})})]})]}),r===$e&&P.jsxs(P.Fragment,{children:[
         P.jsxs(lu,{title:En("outlineSettings")||"大纲设置",description:En("outlineSettingsDesc")||"配置大纲生成和跟随行为",children:[
         P.jsx(du,{label:En("outlineAutoUpdateLabel")||"自动更新",description:En("outlineAutoUpdateDesc")||"在对话进行时自动刷新大纲",settingId:"outline-auto-update",checked:a.features?.outline?.autoUpdate??true,onChange:()=>i("features","outline","autoUpdate",!a.features?.outline?.autoUpdate)}),
         P.jsx(cu,{label:En("outlineUpdateIntervalLabel")||"更新检测间隔",description:En("outlineUpdateIntervalDesc")||"大纲自动更新的时间间隔(秒)",settingId:"outline-update-interval",children:P.jsx(vd,{value:a.features?.outline?.updateInterval??2,onChange:e=>i("features","outline","updateInterval",e),min:1,max:60,defaultValue:2,style:{width:"80px"}})}),
         P.jsx(cu,{label:En("outlineFollowModeLabel")||"大纲跟随模式",description:"current"===a.features?.outline?.followMode?En("outlineFollowCurrentDesc")||"滚动页面时自动定位高亮大纲项":"latest"===a.features?.outline?.followMode?En("outlineFollowLatestDesc")||"大纲始终自动滚动到底部":En("outlineFollowManualDesc")||"不自动滚动大纲",settingId:"outline-follow-mode",children:P.jsxs("select",{className:"settings-select",value:a.features?.outline?.followMode||"current",onChange:e=>i("features","outline","followMode",e.target.value),children:[
         P.jsx("option",{value:"current",children:En("outlineFollowCurrent")||"跟随当前位置"}),
         P.jsx("option",{value:"latest",children:En("outlineFollowLatest")||"跟随最新消息"}),
         P.jsx("option",{value:"manual",children:En("outlineFollowManual")||"手动控制"})]})}),
         P.jsx(du,{label:En("outlineShowWordCountLabel")||"悬浮显示字数",description:En("outlineShowWordCountDesc")||"在大纲悬浮提示中显示该章节的字数",settingId:"outline-show-word-count",checked:a.features?.outline?.showWordCount??false,onChange:()=>i("features","outline","showWordCount",!a.features?.outline?.showWordCount)})]}),
         P.jsxs(lu,{title:En("bookmarkSettings")||"收藏",description:En("bookmarkSettingsDesc")||"配置页内收藏功能",children:[
         P.jsx(cu,{label:En("inlineBookmarkModeLabel")||"页内收藏图标",description:En("inlineBookmarkModeDesc")||"控制页面标题旁的收藏图标显示方式",settingId:"outline-inline-bookmark-mode",children:P.jsxs("select",{className:"settings-select",value:a.features?.outline?.inlineBookmarkMode||"always",onChange:e=>i("features","outline","inlineBookmarkMode",e.target.value),children:[
         P.jsx("option",{value:"always",children:En("inlineBookmarkModeAlways")||"固定显示"}),
         P.jsx("option",{value:"hover",children:En("inlineBookmarkModeHover")||"悬浮显示"}),
         P.jsx("option",{value:"hidden",children:En("inlineBookmarkModeHidden")||"隐藏"})]})}),
         P.jsx(cu,{label:En("panelBookmarkModeLabel")||"面板收藏图标",description:En("panelBookmarkModeDesc")||"控制大纲面板中的收藏图标显示方式",settingId:"outline-panel-bookmark-mode",children:P.jsxs("select",{className:"settings-select",value:a.features?.outline?.panelBookmarkMode||"always",onChange:e=>i("features","outline","panelBookmarkMode",e.target.value),children:[
         P.jsx("option",{value:"always",children:En("inlineBookmarkModeAlways")||"固定显示"}),
         P.jsx("option",{value:"hover",children:En("inlineBookmarkModeHover")||"悬浮显示"}),
         P.jsx("option",{value:"hidden",children:En("inlineBookmarkModeHidden")||"隐藏"})]})})]}),
         P.jsx(lu,{title:En("scrollSettings")||"滚动设置",children:P.jsx(du,{label:En("preventAutoScrollLabel")||"防止自动滚动",description:En("preventAutoScrollDesc")||"阻止页面自动滚动到底部",settingId:"outline-prevent-auto-scroll",checked:a.panel?.preventAutoScroll??false,onChange:()=>s("panel","preventAutoScroll",!a.panel?.preventAutoScroll)})})]}),r===Xe&&P.jsxs(P.Fragment,{children:[
         P.jsxs(lu,{title:En("conversationsSettingsTitle")||"会话管理",description:En("conversationsSettingsDesc")||"配置会话同步和显示行为",children:[
         P.jsx(du,{label:En("folderRainbowLabel")||"文件夹彩虹色",description:En("folderRainbowDesc")||"为不同文件夹使用不同颜色",settingId:"conversation-folder-rainbow",checked:a.features?.conversations?.folderRainbow??true,onChange:()=>i("features","conversations","folderRainbow",!a.features?.conversations?.folderRainbow)}),
         P.jsx(du,{label:En("conversationsSyncUnpinLabel")||"同步时取消置顶",description:En("conversationsSyncUnpinDesc")||"同步会话时自动取消置顶",settingId:"conversation-sync-unpin",checked:a.features?.conversations?.syncUnpin??false,onChange:()=>i("features","conversations","syncUnpin",!a.features?.conversations?.syncUnpin)}),
         P.jsx(du,{label:En("conversationsSyncDeleteLabel")||"Sync Delete Cloud",description:En("conversationsSyncDeleteDesc")||"Delete cloud conversation on supported sites when deleting local record",settingId:"conversation-sync-delete",checked:a.features?.conversations?.syncDelete??true,onChange:()=>i("features","conversations","syncDelete",!(a.features?.conversations?.syncDelete??1))})]}),
         P.jsxs(lu,{title:En("exportSettings")||"导出设置",children:[
         P.jsx(cu,{label:En("exportCustomUserName")||"自定义用户名称",description:En("exportCustomUserNameDesc")||"导出时使用的用户显示名称 (默认: User)",settingId:"export-custom-user-name",children:P.jsx(ju,{className:"settings-input",value:a.export?.customUserName||"",onChange:e=>s("export","customUserName",e),placeholder:"User",style:{width:"180px"}})}),
         P.jsx(cu,{label:En("exportCustomModelName")||"自定义 AI 名称",description:En("exportCustomModelNameDesc")||"导出时使用的 AI 显示名称 (默认: 站点名称)",settingId:"export-custom-model-name",children:P.jsx(ju,{className:"settings-input",value:a.export?.customModelName||"",onChange:e=>s("export","customModelName",e),placeholder:"Site Name",style:{width:"180px"}})}),
         P.jsx(du,{label:En("exportFilenameTimestamp")||"导出文件名包含时间戳",description:En("exportFilenameTimestampDesc")||"在导出文件名末尾添加时间戳",settingId:"export-filename-timestamp",checked:a.export?.exportFilenameTimestamp??false,onChange:()=>s("export","exportFilenameTimestamp",!a.export?.exportFilenameTimestamp)}),
         P.jsx(du,{label:En("exportIncludeThoughtsLabel")||"导出包含思维链",description:En("exportIncludeThoughtsDesc")||"导出时包含并自动展开思维链内容",settingId:"export-include-thoughts",checked:a.export?.includeThoughts??true,onChange:()=>s("export","includeThoughts",!(a.export?.includeThoughts??1))}),
         P.jsx(du,{label:En("exportImagesToBase64Label")||"导出时图片转 Base64",description:En("exportImagesToBase64Desc")||"导出会话时将图片转为 Base64 嵌入",settingId:"export-images-base64",checked:a.content?.exportImagesToBase64??false,onChange:()=>s("content","exportImagesToBase64",!a.content?.exportImagesToBase64)})]})]}),r===Ye&&P.jsxs(lu,{title:En("promptSettingsTitle")||"Prompts Settings",description:En("promptSettingsDesc")||"Configure interactions in the prompts tab",children:[
         P.jsx(du,{label:En("promptDoubleClickSendLabel")||"Double-click to send prompt",description:En("promptDoubleClickSendDesc")||"When enabled, double-click sends the prompt directly. Prompts with variables are sent after confirmation.",settingId:"prompt-double-click-send",checked:a.features?.prompts?.doubleClickToSend??false,onChange:()=>i("features","prompts","doubleClickToSend",!a.features?.prompts?.doubleClickToSend)}),
         P.jsx(du,{label:En("queueSettingLabel")||"Prompt Queue",description:En("queueSettingDesc")||"Show queue overlay above input for queuing prompts while AI generates",settingId:"prompt-queue",checked:a.features?.prompts?.promptQueue??false,onChange:()=>i("features","prompts","promptQueue",!a.features?.prompts?.promptQueue)})]}),r===nt&&P.jsxs(lu,{title:En("readingHistoryTitle")||"阅读历史",description:En("readingHistoryDesc")||"记录和恢复会话阅读位置",children:[
         P.jsx(du,{label:En("readingHistoryPersistenceLabel")||"启用阅读历史",description:En("readingHistoryPersistenceDesc")||"记录每个会话的阅读位置",settingId:"reading-history-persistence",checked:a.readingHistory?.persistence??true,onChange:()=>s("readingHistory","persistence",!a.readingHistory?.persistence)}),
         P.jsx(du,{label:En("readingHistoryAutoRestoreLabel")||"自动恢复位置",description:En("readingHistoryAutoRestoreDesc")||"打开会话时自动跳转到上次阅读位置",settingId:"reading-history-auto-restore",checked:a.readingHistory?.autoRestore??true,disabled:!a.readingHistory?.persistence,onDisabledClick:()=>c(p),onChange:()=>s("readingHistory","autoRestore",!a.readingHistory?.autoRestore)}),
         P.jsx(cu,{label:En("readingHistoryCleanup")||"历史保留时间",settingId:"reading-history-cleanup-days",disabled:!a.readingHistory?.persistence,onDisabledClick:()=>c(p),children:P.jsxs("select",{className:"settings-select",value:a.readingHistory?.cleanupDays||30,onChange:e=>s("readingHistory","cleanupDays",parseInt(e.target.value)),disabled:!a.readingHistory?.persistence,children:[
         P.jsxs("option",{value:1,children:["1 ",En("day")||"天"]}),
         P.jsxs("option",{value:3,children:["3 ",En("days")||"天"]}),
         P.jsxs("option",{value:7,children:["7 ",En("days")||"天"]}),
         P.jsxs("option",{value:30,children:["30 ",En("days")||"天"]}),
         P.jsxs("option",{value:90,children:["90 ",En("days")||"天"]}),
         P.jsx("option",{value:-1,children:En("forever")||"永久"})]})})]}),r===tt&&P.jsxs(lu,{title:En("interactionEnhance")||"交互增强",description:En("interactionEnhanceDesc")||"增强公式和表格的交互功能",children:[
         P.jsx(du,{label:En("userQueryMarkdownLabel")||"用户问题 Markdown 渲染",description:En("userQueryMarkdownDesc")||"将用户输入的 Markdown 渲染为富文本",settingId:"content-user-query-markdown",checked:a.content?.userQueryMarkdown??false,onChange:()=>s("content","userQueryMarkdown",!a.content?.userQueryMarkdown)}),
         P.jsx(du,{label:En("formulaCopyLabel")||"双击复制公式",description:En("formulaCopyDesc")||"双击数学公式即可复制其 LaTeX 源码",settingId:"content-formula-copy",checked:a.content?.formulaCopy??true,onChange:()=>s("content","formulaCopy",!a.content?.formulaCopy)}),
         P.jsx(du,{label:En("formulaDelimiterLabel")||"公式分隔符转换",description:En("formulaDelimiterDesc")||"复制时将括号分隔符转为美元符号",settingId:"content-formula-delimiter",checked:a.content?.formulaDelimiter??true,disabled:!a.content?.formulaCopy,onDisabledClick:()=>c(m),onChange:()=>s("content","formulaDelimiter",!a.content?.formulaDelimiter)}),
         P.jsx(du,{label:En("tableCopyLabel")||"表格复制 Markdown",description:En("tableCopyDesc")||"表格右上角添加复制按钮",settingId:"content-table-copy",checked:a.content?.tableCopy??true,onChange:()=>s("content","tableCopy",!a.content?.tableCopy)})]})]})},Fu=(e,t)=>{const n=En(e);return n===e?t:n},zu=({siteId:e})=>{const{settings:t,updateNestedSetting:n}=wr();if(!t)return null;const r=t.globalSearch?.promptEnterBehavior||"smart",o=t.globalSearch?.doubleShift??dr.globalSearch.doubleShift,a=t.globalSearch?.enableFuzzySearch??false;
         return P.jsxs("div",{children:[
         P.jsx(hu,{title:Fu("navGlobalSearch","Global Search"),Icon:Ne}),
         P.jsx("p",{className:"settings-page-desc",children:`${Fu("globalSearchPageDesc","Configure Search Everywhere behavior and interaction details")} · ${Fu("globalSearchTriggerHint","Trigger: double-press Shift or Ctrl/Cmd + K")}`}),
         P.jsxs(lu,{title:Fu("globalSearchMatchingSettingsTitle","Search Matching"),description:Fu("globalSearchMatchingSettingsDesc","Configure how Search Everywhere matches search results"),children:[
         P.jsx(du,{label:Fu("doubleShiftToSearch","Double Shift to open Global Search"),description:Fu("doubleShiftToSearchDesc","Press Shift twice quickly to open Global Search"),checked:o,onChange:()=>n("globalSearch","doubleShift",!o),settingId:"global-search-double-shift"}),
         P.jsx(du,{label:Fu("globalSearchEnableFuzzySearchLabel","Enable fuzzy search"),description:Fu("globalSearchEnableFuzzySearchDesc","When enabled, Search Everywhere uses fuzzy matching for title, folder, tag, prompt content, and setting identifiers."),checked:a,onChange:()=>n("globalSearch","enableFuzzySearch",!a),settingId:"global-search-fuzzy-search"})]}),
         P.jsx(lu,{title:Fu("globalSearchPromptSettingsTitle","Prompt Behavior"),description:Fu("globalSearchPromptSettingsDesc","Choose what happens when pressing Enter on a prompt result in Search Everywhere"),children:P.jsx(cu,{label:Fu("globalSearchPromptEnterBehaviorLabel","Search Everywhere prompt Enter behavior"),description:Fu("globalSearchPromptEnterBehaviorDesc","Smart: insert directly when no variable, open variable dialog when needed; Locate only: switch to Prompts and locate the item."),settingId:"global-search-prompt-enter-behavior",children:P.jsxs("select",{className:"settings-select",value:r,onChange:e=>n("globalSearch","promptEnterBehavior",e.target.value),children:[
         P.jsx("option",{value:"smart",children:Fu("globalSearchPromptEnterBehaviorSmart","Smart (Recommended)")}),
         P.jsx("option",{value:"locate",children:Fu("globalSearchPromptEnterBehaviorLocate","Locate Only")})]})})})]})},Ou=({iconNode:e,label:t,index:n,total:r,enabled:o=true,showToggle:a=false,onToggle:i,onDragStart:s,onDragOver:l,onDragEnd:c,onDrop:d,isDragging:u=false})=>P.jsxs("div",{className:"settings-sortable-item "+(u?"dragging":""),draggable:true,onDragStart:e=>s(e,n),onDragOver:e=>l(e,n),onDragEnd:c,onDrop:e=>d(e,n),style:{opacity:u?.4:1,cursor:"grab",border:u?"1px dashed var(--gh-primary)":void 0},children:[
         P.jsx("div",{className:"settings-sortable-handle",style:{display:"flex",alignItems:"center",justifyContent:"center",padding:"4px 8px 4px 0",cursor:"grab",color:"var(--gh-text-secondary, #9ca3af)"},children:P.jsx(ce,{size:16})}),e&&P.jsx("span",{className:"settings-sortable-item-icon",children:e}),
         P.jsx("span",{className:"settings-sortable-item-label",children:t}),
         P.jsx("div",{className:"settings-sortable-item-actions",children:a&&P.jsx(gd,{checked:o,onChange:()=>i?.(),size:"sm"})})]}),Bu=({siteId:e,initialTab:t})=>{const[n,r]=u.useState(t||"panel"),{settings:o,setSettings:a,updateNestedSetting:i,updateDeepSetting:s}=wr();u.useEffect(()=>{t&&r(t);},[t]);const l=En("enablePrerequisiteToast")||"请先开启「{setting}」",c=En("edgeSnapHideLabel")||"边缘自动吸附",[d,h]=u.useState(null),g=(e,t,n)=>{h({type:t,index:n}),e.dataTransfer.effectAllowed="move";},p=e=>{e.preventDefault(),e.dataTransfer.dropEffect="move";},m=(e,t)=>{if(e.preventDefault(),!d||"tab"!==d.type)return;const n=d.index;if(n===t)return;const r=[...o.features?.order||[]],[a]=r.splice(n,1);r.splice(t,0,a),i("features","order",r),h(null);},f=(e,t)=>{if(e.preventDefault(),!d||"button"!==d.type)return;const n=d.index;if(n===t)return;const r=[...o.collapsedButtons||[]],[i]=r.splice(n,1);r.splice(t,0,i),a({collapsedButtons:r}),h(null);},b=()=>{h(null);};if(!o)return null;const y=[{id:"panel",label:En("panelTab")||"面板"},{id:"tabOrder",label:En("tabOrderTab")||"界面排版"},{id:"shortcuts",label:En("shortcutsTab")||"快捷按钮"},{id:"toolsMenu",label:En("toolboxMenu")||"工具箱"}];
         return P.jsxs("div",{children:[
         P.jsx(hu,{title:En("navGeneral")||"基本设置",Icon:$}),
         P.jsx("p",{className:"settings-page-desc",children:En("generalPageDesc")||"配置扩展的基本行为和界面"}),
         P.jsx(uu,{tabs:y,activeTab:n,onTabChange:r}),"panel"===n&&P.jsxs(lu,{title:En("panelSettings")||"面板设置",children:[
         P.jsx(du,{label:En("defaultPanelStateLabel")||"默认显示面板",description:En("defaultPanelStateDesc")||"页面加载后自动展开面板",settingId:"panel-default-open",checked:o.panel?.defaultOpen??false,onChange:()=>i("panel","defaultOpen",!o.panel?.defaultOpen)}),
         P.jsx(cu,{label:En("defaultPositionLabel")||"默认位置",description:En("defaultPositionDesc")||"页面刷新后面板显示在哪一侧",settingId:"panel-default-position",children:P.jsxs("div",{style:{display:"inline-flex",borderRadius:"6px",overflow:"hidden",border:"1px solid var(--gh-border, #e5e7eb)"},children:[
         P.jsx("button",{onClick:()=>i("panel","defaultPosition","left"),style:{padding:"4px 12px",fontSize:"13px",border:"none",cursor:"pointer",background:"left"===(o.panel?.defaultPosition||"right")?"var(--gh-primary, #4285f4)":"var(--gh-bg, #fff)",color:"left"===(o.panel?.defaultPosition||"right")?"#fff":"var(--gh-text-secondary, #6b7280)",transition:"all 0.2s"},children:En("defaultPositionLeft")||"左侧"}),
         P.jsx("button",{onClick:()=>i("panel","defaultPosition","right"),style:{padding:"4px 12px",fontSize:"13px",border:"none",borderLeft:"1px solid var(--gh-border, #e5e7eb)",cursor:"pointer",background:"right"===(o.panel?.defaultPosition||"right")?"var(--gh-primary, #4285f4)":"var(--gh-bg, #fff)",color:"right"===(o.panel?.defaultPosition||"right")?"#fff":"var(--gh-text-secondary, #6b7280)",transition:"all 0.2s"},children:En("defaultPositionRight")||"右侧"})]})}),
         P.jsx(cu,{label:En("defaultEdgeDistanceLabel")||"默认边距",description:En("defaultEdgeDistanceDesc")||"面板距离屏幕边缘的初始距离",settingId:"panel-edge-distance",children:P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[
         P.jsx(vd,{value:o.panel?.defaultEdgeDistance??25,onChange:e=>{i("panel","defaultEdgeDistance",e);},min:0,max:400,defaultValue:25,style:{width:"85px"}}),
         P.jsx("span",{style:{fontSize:"13px",color:"var(--gh-text-secondary)"},children:"px"})]})}),
         P.jsx(cu,{label:En("panelWidthLabel")||"面板宽度",description:En("panelWidthDesc")||"面板的宽度 (px)",settingId:"panel-width",children:P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[
         P.jsx(vd,{value:o.panel?.width??320,onChange:e=>{i("panel","width",e);},min:200,max:600,defaultValue:320,style:{width:"85px"}}),
         P.jsx("span",{style:{fontSize:"13px",color:"var(--gh-text-secondary)"},children:"px"})]})}),
         P.jsx(cu,{label:En("panelHeightLabel")||"面板高度",description:En("panelHeightDesc")||"面板占用屏幕高度的百分比",settingId:"panel-height",children:P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[
         P.jsx(vd,{value:o.panel?.height??85,onChange:e=>{i("panel","height",e);},min:50,max:100,defaultValue:85,style:{width:"85px"}}),
         P.jsx("span",{style:{fontSize:"13px",color:"var(--gh-text-secondary)"},children:"vh"})]})}),
         P.jsx(du,{label:En("edgeSnapHideLabel")||"边缘自动吸附",description:En("edgeSnapHideDesc")||"拖动面板到屏幕边缘时自动吸附,悬停显示",settingId:"panel-edge-snap",checked:o.panel?.edgeSnap??false,onChange:()=>i("panel","edgeSnap",!o.panel?.edgeSnap)}),
         P.jsx(cu,{label:En("edgeSnapThresholdLabel")||"吸附触发距离",description:En("edgeSnapThresholdDesc")||"拖拽面板到边缘多近时触发吸附",settingId:"panel-edge-snap-threshold",disabled:!o.panel?.edgeSnap,onDisabledClick:()=>{return e=c,eo(l.replace("{setting}",e),2e3,{},1500,e);var e;},children:P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"4px"},children:[
         P.jsx(vd,{value:o.panel?.edgeSnapThreshold??18,onChange:e=>{i("panel","edgeSnapThreshold",e);},min:0,max:400,defaultValue:18,disabled:!o.panel?.edgeSnap,style:{width:"85px"}}),
         P.jsx("span",{style:{fontSize:"13px",color:"var(--gh-text-secondary)"},children:"px"})]})}),
         P.jsx(du,{label:En("autoHidePanelLabel")||"点击外部收起",description:o.panel?.edgeSnap?En("autoHidePanelDescEdgeSnap")||"点击面板外部区域时自动缩回边缘":En("autoHidePanelDesc")||"点击面板外部区域时自动收起为悬浮球",settingId:"panel-auto-hide",checked:o.panel?.autoHide??false,onChange:()=>i("panel","autoHide",!o.panel?.autoHide)})]}),"tabOrder"===n&&P.jsx(lu,{title:En("tabOrderSettings")||"界面排版",description:En("tabOrderDesc")||"调整面板标签页的显示顺序 (拖拽排序)",children:o.features?.order?.filter(e=>bt[e]).map((e,t)=>{const n=bt[e],r="prompts"===e?false!==o.features?.prompts?.enabled:"outline"===e?false!==o.features?.outline?.enabled:"conversations"!==e||false!==o.features?.conversations?.enabled;
         return P.jsx(Ou,{iconNode:n.IconComponent?P.jsx(n.IconComponent,{size:18,color:"currentColor"}):n.icon,label:En(n.label)||e,index:t,total:o.features?.order.filter(e=>bt[e]).length,enabled:r,showToggle:true,onToggle:()=>{"prompts"===e?s("features","prompts","enabled",!r):"outline"===e?s("features","outline","enabled",!r):"conversations"===e&&s("features","conversations","enabled",!r);},onDragStart:e=>g(e,"tab",t),onDragOver:p,onDragEnd:b,onDrop:m,isDragging:"tab"===d?.type&&d?.index===t},e)})}),"shortcuts"===n&&P.jsxs(lu,{title:En("collapsedButtonsOrderTitle")||"快捷按钮组",description:En("collapsedButtonsOrderDesc")||"快捷按钮组排序与启用 (拖拽排序)",children:[o.collapsedButtons?.map((e,t)=>{const n=yt[e.id];return n?P.jsx(Ou,{iconNode:n.IconComponent?P.jsx(n.IconComponent,{size:18,color:"currentColor"}):n.icon,label:En(n.labelKey)||e.id,index:t,total:o.collapsedButtons.length,enabled:e.enabled,showToggle:n.canToggle,onToggle:()=>(e=>{const t=[...o.collapsedButtons||[]];t[e]={...t[e],enabled:!t[e].enabled},a({collapsedButtons:t});})(t),onDragStart:e=>g(e,"button",t),onDragOver:p,onDragEnd:b,onDrop:f,isDragging:"button"===d?.type&&d?.index===t},e.id):null}),
         P.jsx(cu,{label:En("quickButtonsOpacityLabel")||"快捷按钮透明度",description:En("quickButtonsOpacityDesc")||"调整快捷按钮组整体透明度",settingId:"quick-buttons-opacity",children:P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[
         P.jsx("input",{type:"range",min:"0.4",max:"1",step:"0.05",value:o.quickButtonsOpacity??1,onChange:e=>a({quickButtonsOpacity:parseFloat(e.target.value)}),style:{width:"120px"}}),
         P.jsxs("span",{style:{fontSize:"12px",minWidth:"36px"},children:[Math.round(100*(o.quickButtonsOpacity??1)),"%"]})]})})]}),"toolsMenu"===n&&P.jsx(lu,{title:En("toolboxMenuTitle")||"工具箱菜单",description:En("toolboxMenuDesc")||"配置工具箱弹出菜单中显示的功能",children:Zn.filter(e=>e.id!==Qn).map(e=>{const t=(o.toolsMenu??Zn.map(e=>e.id)).includes(e.id);
         return P.jsx(du,{label:En(e.labelKey)||e.defaultLabel,settingId:`tools-menu-${e.id}`,checked:t,onChange:()=>{const n=o.toolsMenu??Zn.map(e=>e.id),r=t?n.filter(t=>t!==e.id):[...n,e.id];a({toolsMenu:r});}},e.id)})})]})},qu=[{id:"storage",name:"存储",nameKey:"permissionStorage",description:"permissionStorageDesc",icon:"💾"}],Uu=[{id:"notifications",name:"通知",nameKey:"permissionNotifications",description:"permissionNotificationsDesc",icon:"🔔",permissions:["notifications"]},{id:"cookies",name:"Cookie管理",nameKey:"permissionCookies",description:"permissionCookiesDesc",icon:"🍪",permissions:["cookies"]}],Hu=[{id:"webdav",name:"WebDAV 访问权限",nameKey:"permissionWebdavAccess",description:"permissionWebdavAccessDesc",icon:"☁️",origins:["<all_urls>"]}],Wu=()=>{const{updateNestedSetting:e}=wr(),[t,n]=u.useState({}),[r,o]=u.useState(true),[a,i]=u.useState({open:false,message:"",onConfirm:()=>{}}),s=void 0!==chrome.permissions,l=u.useCallback(async()=>{o(true);const e={};for(const n of Uu)try{let t=!1;if(s)t=await chrome.permissions.contains({permissions:n.permissions||[]});else {const e=await Ya({type:Za,permissions:n.permissions||[]});e&&e.success&&(t=e.hasPermission);}e[n.id]=t;}catch(t){console.error(`检查权限 ${n.id} 失败:`,t),e[n.id]=false;}for(const n of Hu)try{let t=!1;if(s)t=await chrome.permissions.contains({origins:n.origins||[]});else {const e=await Ya({type:Za,origins:n.origins||[]});e&&e.success&&(t=e.hasPermission);}e[n.id]=t;}catch(t){console.error(`检查权限 ${n.id} 失败:`,t),e[n.id]=false;}n(e),o(false);},[s]),c=u.useCallback(async e=>{try{if(s){await chrome.permissions.request({origins:e.origins?.length?e.origins:void 0,permissions:e.permissions?.length?e.permissions:void 0})&&n(t=>({...t,[e.id]:!0}));}else await Ya({type:Ja,permType:e.id,origins:e.origins,permissions:e.permissions}),setTimeout(()=>l(),2e3);}catch(t){console.error(`请求权限 ${e.id} 失败:`,t);}},[s,l]);u.useEffect(()=>{if(l(),s&&"undefined"!=typeof window){"true"===new URLSearchParams(window.location.search).get("auto_request")&&setTimeout(()=>{const e=Hu[0];e&&c(e);},500);}},[l,s,c]);const d=t=>{let r=En("revokeConfirmDefault")||"确定要撤销此权限吗?撤销后,依赖该权限的功能将会自动关闭。";"notifications"===t.id?r=En("revokeConfirmNotifications")||"确定要撤销通知权限吗?\n\n撤销后,【桌面通知】功能将自动关闭。如需再次使用,需重新授权。":"webdav"===t.id&&(r=En("revokeConfirmWebdav")||"确定要撤销高级访问权限吗?\n\n撤销后,【水印移除】和【WebDAV 同步】功能将自动关闭。如需再次使用,需重新授权。"),i({open:true,message:P.jsx("div",{style:{whiteSpace:"pre-wrap"},children:r}),onConfirm:()=>(async t=>{try{let r=!1;if(s)r=await chrome.permissions.remove({origins:t.origins?.length?t.origins:void 0,permissions:t.permissions?.length?t.permissions:void 0});else {const e=await Ya({type:"REVOKE_PERMISSIONS",origins:t.origins,permissions:t.permissions});e&&e.success&&(r=e.removed);}r&&(n(e=>({...e,[t.id]:!1})),"notifications"===t.id?e("tab","showNotification",!1):"webdav"===t.id&&e("content","watermarkRemoval",!1));}catch(r){console.error(`撤销权限 ${t.id} 失败:`,r);}finally{i(e=>({...e,open:false}));}})(t)});};
         return P.jsxs("div",{children:[
         P.jsx(hu,{title:En("navPermissions")||"权限管理",Icon:te}),
         P.jsx("p",{className:"settings-page-desc",children:En("permissionsPageDesc")||"查看和管理扩展的权限。"}),
         P.jsxs(lu,{title:En("optionalPermissions")||"可选权限",description:En("optionalPermissionsDesc")||"这些权限可以按需授予或撤销",children:[
         P.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"16px",paddingBottom:"12px",borderBottom:"1px solid var(--gh-border, #e5e7eb)"},children:[
         P.jsx("span",{style:{fontSize:"13px",color:"var(--gh-text-secondary, #9ca3af)"},children:En("permissionsSyncHint")||"权限状态与浏览器同步,如在此页面外修改请点击刷新。"}),
         P.jsx("button",{className:"settings-btn settings-btn-secondary",onClick:async e=>{e.preventDefault(),e.stopPropagation(),await l(),Yr(En("permissionsRefreshed")||"权限状态已刷新",1500);},disabled:r,style:{fontSize:"12px",padding:"4px 12px",flexShrink:0},children:r?En("refreshing")||"刷新中...":En("refreshStatus")||"刷新状态"})]}),[...Uu,...Hu].map((e,n,r)=>P.jsx(cu,{label:P.jsxs("span",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[
         P.jsx("span",{style:{fontSize:"18px"},children:e.icon}),
         P.jsx("span",{children:En(e.nameKey)||e.name})]}),description:En(e.description)||e.description,style:n===r.length-1?{borderBottom:"none"}:{},children:P.jsx("div",{style:{display:"flex",gap:"8px",alignItems:"center"},children:t[e.id]?P.jsxs(P.Fragment,{children:[
         P.jsx("span",{style:{padding:"4px 10px",borderRadius:"4px",fontSize:"12px",background:"rgba(16, 185, 129, 0.1)",color:"#10b981"},children:En("granted")||"已授予"}),
         P.jsx("button",{className:"settings-btn settings-btn-secondary",style:{padding:"4px 12px",fontSize:"12px"},onClick:t=>{t.preventDefault(),t.stopPropagation(),d(e);},children:En("revoke")||"撤销"})]}):P.jsxs(P.Fragment,{children:[
         P.jsx("span",{style:{padding:"4px 10px",borderRadius:"4px",fontSize:"12px",background:"rgba(239, 68, 68, 0.1)",color:"#ef4444"},children:En("notGranted")||"未授予"}),
         P.jsx("button",{className:"settings-btn settings-btn-primary",style:{padding:"4px 12px",fontSize:"12px"},onClick:t=>{t.preventDefault(),t.stopPropagation(),c(e);},children:En("allowRecommended")||"允许(推荐)"})]})})},e.id))]}),
         P.jsx(lu,{title:En("requiredPermissions")||"必需权限",description:En("requiredPermissionsDesc")||"这些权限是扩展正常运行所必需的,无法关闭",children:qu.map((e,t)=>P.jsx(cu,{label:P.jsxs("span",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[
         P.jsx("span",{style:{fontSize:"18px"},children:e.icon}),
         P.jsx("span",{children:En(e.nameKey)||e.name})]}),description:En(e.description)||e.description,style:t===qu.length-1?{borderBottom:"none"}:{},children:P.jsx("span",{style:{padding:"4px 10px",borderRadius:"4px",fontSize:"12px",background:"rgba(107, 114, 128, 0.1)",color:"var(--gh-text-secondary, #6b7280)"},children:En("required")||"必需"})},e.id))}),a.open&&P.jsx(fd,{title:En("warning")||"警告",message:a.message,confirmText:En("confirm")||"确定",cancelText:En("cancel")||"取消",danger:true,onConfirm:a.onConfirm,onCancel:()=>i(e=>({...e,open:false}))})]})},Ku=({binding:e,onChange:t,onRemove:n,conflictWarning:r})=>{const[o,a]=u.useState(false),i=Sn(),s=u.useCallback(e=>{if(!o)return;if(e.preventDefault(),e.stopPropagation(),["Control","Alt","Shift","Meta"].includes(e.key))return;const n={key:e.key,alt:e.altKey,ctrl:e.ctrlKey,meta:e.metaKey,shift:e.shiftKey};if(!(n.alt||n.ctrl||n.meta||n.shift)){if(!["Escape","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12"].includes(e.key))return}i&&n.meta&&(n.ctrl=true,n.meta=false),t(n),a(false);},[o,t,i]),l=o?En("pressAnyKey")||"请按下快捷键...":e?function(e,t=false){const n=[];e.ctrl&&n.push(t?"⌘":"Ctrl"),e.meta&&t&&n.push("⌘"),e.alt&&n.push(t?"⌥":"Alt"),e.shift&&n.push(t?"⇧":"Shift");const r={ArrowUp:"↑",ArrowDown:"↓",ArrowLeft:"←",ArrowRight:"→",",":","}[e.key]||e.key.toUpperCase();return n.push(r),n.join(t?"":"+")}(e,i):En("shortcutNotSet")||"未设置";
         return P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[
         P.jsx("button",{className:`shortcut-input ${o?"recording":""} ${e?"":"not-set"}`,onClick:()=>a(true),onKeyDown:s,onBlur:()=>{a(false);},style:{padding:"6px 12px",minWidth:"120px",fontSize:"13px",fontFamily:"monospace",border:o?"2px solid var(--gh-primary)":"1px solid var(--gh-border, #e5e7eb)",borderRadius:"6px",background:o?"var(--gh-bg-hover)":"var(--gh-bg)",color:e?"var(--gh-text)":"var(--gh-text-tertiary)",cursor:"pointer",textAlign:"center",transition:"all 0.2s",fontStyle:e?"normal":"italic"},children:l}),e&&P.jsx(xd,{content:En("shortcutRemove")||"移除",children:P.jsx("button",{onClick:n,style:{padding:"4px 8px",fontSize:"12px",border:"1px solid var(--gh-border)",borderRadius:"4px",background:"var(--gh-bg)",color:"var(--gh-text-secondary)",cursor:"pointer",transition:"all 0.2s"},children:"✕"})}),r&&P.jsx("span",{style:{fontSize:"12px",color:"var(--gh-error, #ef4444)"},children:r})]})},Vu=({siteId:e})=>{const{settings:t,setSettings:n}=wr(),r=t?.shortcuts,o=u.useCallback((e,t)=>{if(!t)return;const n=r?.keybindings||{};for(const[r,o]of Object.entries(n)){if(r===e)continue;if(null===o)continue;const n=bn[r];if(n&&(o.key===t.key&&!!o.alt==!!t.alt&&!!o.ctrl==!!t.ctrl&&!!o.meta==!!t.meta&&!!o.shift==!!t.shift))return `${En("shortcutConflictWith")||"与"} "${En(n.labelKey)||n.label}" ${En("shortcutConflict")||"冲突"}`}},[r?.keybindings]),a=u.useCallback((e,t)=>{n({shortcuts:{...r,enabled:r?.enabled??true,globalUrl:r?.globalUrl??"https://gemini.google.com",keybindings:{...r?.keybindings,[e]:t}}});},[r,n]),i=u.useCallback(e=>{n({shortcuts:{...r,enabled:r?.enabled??true,globalUrl:r?.globalUrl??"https://gemini.google.com",keybindings:{...r?.keybindings,[e]:null}}});},[r,n]),[s,l]=u.useState(false),c=u.useCallback(()=>{n({shortcuts:{...r,keybindings:{...vn}}}),l(false);},[r,n]),d=Object.entries(yn).map(([e,t])=>{const n=Object.entries(bn).filter(([,t])=>t.category===e);return {categoryId:e,categoryMeta:t,actions:n}});return t?P.jsxs("div",{children:[
         P.jsx(hu,{title:En("navShortcuts")||"快捷键",Icon:ye}),
         P.jsx("p",{className:"settings-page-desc",children:En("shortcutsPageDesc")||"配置键盘快捷键以快速执行操作"}),
         P.jsxs(lu,{title:En("shortcutsGlobalSettings")||"快捷键设置",children:[
         P.jsx(du,{label:En("enableShortcuts")||"启用自定义快捷键",description:En("enableShortcutsDesc")||"启用或禁用所有自定义键盘快捷键",checked:r?.enabled??true,onChange:()=>n({shortcuts:{...r,enabled:!(r?.enabled??1),globalUrl:r?.globalUrl??"https://gemini.google.com",keybindings:r?.keybindings??vn}})}),ru.hasCapability("commands")&&P.jsxs(P.Fragment,{children:[
         P.jsx(cu,{label:En("globalShortcutUrl")||"全局快捷键打开的 URL",description:En("globalShortcutUrlDesc")||"按下全局快捷键 Alt+G 时打开的网址",children:P.jsx("input",{type:"text",className:"settings-input",value:r?.globalUrl||"https://gemini.google.com",onChange:e=>n({shortcuts:{...r,enabled:r?.enabled??true,globalUrl:e.target.value,keybindings:r?.keybindings??vn}}),style:{width:"280px"},placeholder:"https://gemini.google.com"})}),
         P.jsx(cu,{label:En("globalShortcutsTitle")||"全局快捷键",description:En("globalShortcutsDesc")||"在浏览器任何页面都可使用,需要在浏览器扩展设置页面配置。",children:(()=>{const e=navigator.userAgent,t=e.includes("Chrome")&&!e.includes("Edg/"),n=e.includes("Edg/"),r=e.includes("Firefox");if(!(t||n||r))
         return P.jsx("span",{style:{fontSize:"13px",color:"var(--gh-text-tertiary)"},children:En("browserNotSupported")||"当前浏览器不支持自定义扩展快捷键"});let o="chrome://extensions/shortcuts";return n?o="edge://extensions/shortcuts":r&&(o="about:addons"),P.jsx("button",{onClick:()=>Ya({type:"OPEN_URL",url:o}),style:{padding:"6px 12px",fontSize:"13px",border:"none",borderRadius:"6px",background:"var(--gh-primary)",color:"#fff",cursor:"pointer",whiteSpace:"nowrap"},children:En("openBrowserShortcuts")||"打开浏览器快捷键设置"})})()})]}),
         P.jsx("div",{style:{marginTop:"16px",paddingTop:"16px"},children:P.jsx("button",{onClick:()=>l(true),style:{padding:"8px 16px",fontSize:"13px",border:"1px solid var(--gh-border)",borderRadius:"6px",background:"var(--gh-bg)",color:"var(--gh-text-secondary)",cursor:"pointer"},children:En("resetShortcuts")||"恢复默认快捷键"})})]}),
         P.jsx(lu,{title:En("shortcutsInteractionGroup")||"独立设置",description:En("shortcutsInteractionGroupDesc")||"此分组设置始终生效,不受“启用自定义快捷键”开关影响",children:P.jsx(cu,{label:P.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"4px"},children:[
         P.jsx("span",{children:En("promptSubmitShortcutLabel")||"Send shortcut"}),
         P.jsx("span",{style:{fontSize:"13px",color:"var(--gh-text-secondary)"},children:(En("promptSubmitShortcutDesc")||"Applies to both manual send and prompt auto-send").replace(/[\u3002.]$/,"")})]}),children:P.jsxs("select",{className:"settings-select",value:t.features?.prompts?.submitShortcut??"enter",onChange:e=>n({features:{...t.features,prompts:{enabled:t.features?.prompts?.enabled??true,doubleClickToSend:t.features?.prompts?.doubleClickToSend??false,submitShortcut:e.target.value,promptQueue:t.features?.prompts?.promptQueue??false}}}),children:[
         P.jsx("option",{value:"enter",children:En("promptSubmitShortcutEnter")||"Enter"}),
         P.jsx("option",{value:"ctrlEnter",children:En("promptSubmitShortcutCtrlEnter")||"Ctrl + Enter"})]})})}),d.map(({categoryId:e,categoryMeta:t,actions:n})=>P.jsx(lu,{title:En(t.labelKey)||t.label,children:n.map(([e,t])=>{const n=r?.keybindings?.[e],s=null===n?null:n||vn[e],l=o(e,s);
         return P.jsx(cu,{label:En(t.labelKey)||t.label,disabled:!r?.enabled,children:P.jsx(Ku,{binding:s,onChange:t=>a(e,t),onRemove:()=>i(e),conflictWarning:l||void 0})},e)})},e)),s&&P.jsx(fd,{title:En("resetShortcuts")||"恢复默认快捷键",message:En("resetShortcutsConfirm")||"确定要恢复所有快捷键为默认值吗?",danger:true,onConfirm:c,onCancel:()=>l(false)})]}):null},Gu=Yn()(nr((e,t)=>({keys:[],currentKeyId:"",_hasHydrated:false,addKey:t=>{const n={id:crypto.randomUUID(),...t,createdAt:Date.now()};return e(e=>({keys:[...e.keys,n]})),n},updateKey:(t,n)=>e(e=>({keys:e.keys.map(e=>e.id===t?{...e,...n}:e)})),deleteKey:t=>e(e=>({keys:e.keys.filter(e=>e.id!==t),currentKeyId:e.currentKeyId===t?"":e.currentKeyId})),setCurrentKey:t=>e({currentKeyId:t}),testKey:(t,n)=>e(e=>({keys:e.keys.map(e=>e.id===t?{...e,isValid:n.isValid,accountType:n.accountType,testedAt:Date.now()}:e)})),setKeys:t=>e({keys:t}),setHasHydrated:t=>e({_hasHydrated:t})}),{name:"claudeSessionKeys",storage:er(()=>xr),partialize:e=>({keys:e.keys,currentKeyId:e.currentKeyId}),onRehydrateStorage:()=>e=>{e?.setHasHydrated(true);}})),Qu=Object.freeze(Object.defineProperty({__proto__:null,useClaudeSessionKeysStore:Gu},Symbol.toStringTag,{value:"Module"})),Zu=({siteId:e})=>{const{keys:t,currentKeyId:n,addKey:r,deleteKey:o,setCurrentKey:a,testKey:i,setKeys:s}=Gu(),[l,c]=u.useState({}),[d,h]=u.useState({type:"none"}),[g,p]=u.useState(null),[m,f]=u.useState(null),[b,y]=u.useState(false),[v,x]=u.useState(""),S=e===zn.CLAUDE,w=t.find(e=>e.id===n),k=()=>h({type:"none"}),C=async(e,t)=>{try{await navigator.clipboard.writeText(t),f(e),Yr(En("claudeKeyCopied"),St),setTimeout(()=>f(null),St);}catch{Yr(En("claudeKeyCopyFailed"),St);}},T=async e=>{if(!e)return void Yr(En("claudePleaseSelectKey"),St);if(e===n)return void Yr(En("claudeAlreadyUsing"),St);if(ru.hasCapability("permissions")){if(!(await Ya({type:Za,permissions:["cookies"]})).hasPermission)return await Ya({type:Ja,permType:"cookies"}),void Yr(En("claudeRequestPermission"),kt)}const r=e?t.find(t=>t.id===e)?.key:"";await ru.setClaudeSessionKey(r||""),a(e),Yr(En("claudeKeySwitched"),wt);},D=async(e,t,n,r=true)=>{if(ru.hasCapability("tabs"))try{if((await Ya({type:"CHECK_CLAUDE_GENERATING"})).isGenerating)return r&&Yr(En("claudeGenerating"),kt),!1}catch{}c(t=>({...t,[e]:true}));try{const o=await ru.testClaudeSessionKey(n);return o.isValid?(i(e,{isValid:!0,accountType:o.accountType}),r&&Yr(`${t}: ${o.accountType}`,wt),!0):(i(e,{isValid:!1}),r&&Yr(`${t}: ${En("claudeKeyInvalid")}`,wt),!1)}catch{return i(e,{isValid:false}),r&&Yr(`${t}: ${En("claudeKeyTest")} ${En("claudeKeyInvalid")}`,wt),false}finally{c(t=>({...t,[e]:false}));}},E=async e=>{const n=t.find(t=>t.id===e);n&&await D(e,n.name,n.key,true);};
         return P.jsxs("div",{children:[
         P.jsxs(lu,{title:En("claudeSessionKeyTitle"),description:En("claudeSessionKeyDesc"),settingId:"claude-session-keys",children:[
         P.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"16px",marginBottom:"20px",backgroundColor:"var(--gh-bg-secondary)",borderRadius:"12px",border:"1px solid var(--gh-border)",flexWrap:"wrap",gap:"12px"},children:[
         P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"12px",flex:"1 1 auto"},children:[
         P.jsx("span",{style:{fontSize:"13px",color:"var(--gh-text-secondary)"},children:En("claudeCurrentUsing")}),
         P.jsx("span",{style:{fontSize:"14px",fontWeight:500,display:"flex",alignItems:"center",gap:"8px"},children:w?P.jsxs(P.Fragment,{children:[
         P.jsxs("span",{style:{fontWeight:600},children:["🔑 ",w.name]}),w.accountType&&P.jsx("span",{style:{padding:"2px 8px",borderRadius:"12px",fontSize:"11px",fontWeight:500,backgroundColor:"var(--gh-bg)",border:"1px solid var(--gh-border)",color:"var(--gh-text-secondary)"},children:w.accountType})]}):P.jsx("span",{style:{color:"var(--gh-text-secondary)"},children:En("claudeNoKeySelected")})})]}),
         P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"12px",flexWrap:"wrap"},children:[!S&&P.jsxs("div",{style:{color:"#ca8a04",backgroundColor:"rgba(234, 179, 8, 0.1)",fontSize:"12px",display:"flex",alignItems:"center",gap:"6px",padding:"6px 10px",borderRadius:"6px",border:"1px solid rgba(234, 179, 8, 0.2)",whiteSpace:"nowrap"},children:[
         P.jsx("span",{children:"⚠️"}),
         P.jsx("span",{children:En("claudeNotOnSiteHint")})]}),
         P.jsx(xd,{content:S?"":En("claudeNotOnSiteHint")||"请在 Claude 站点使用此功能",children:P.jsx("select",{className:"settings-select",value:n,onChange:e=>T(e.target.value),disabled:!S||0===t.length||b,style:{minWidth:"200px",padding:"8px 12px",fontSize:"13px",borderRadius:"8px",opacity:!S||0===t.length||b?.6:1,cursor:!S||b?"not-allowed":"pointer",backgroundColor:"var(--gh-bg)",border:"1px solid var(--gh-border)",color:"var(--gh-text)"},children:0===t.length?P.jsx("option",{value:"",children:En("claudePleaseAddKey")}):t.map(e=>P.jsxs("option",{value:e.id,children:["🔑 ",e.name," ",e.accountType?`(${e.accountType})`:""]},e.id))})})]})]}),
         P.jsxs("div",{style:{display:"flex",gap:"10px",marginBottom:"20px",flexWrap:"nowrap"},children:[
         P.jsxs("button",{className:"settings-btn settings-btn-primary",onClick:()=>{h({type:"add"});},disabled:b,style:{justifyContent:"center",padding:"8px 12px",flex:"1 1 auto",opacity:b?.6:1,whiteSpace:"nowrap"},children:["➕ ",En("claudeAddKey")]}),
         P.jsx("button",{className:"settings-btn settings-btn-secondary",onClick:async()=>{if(0===t.length)return;if(b)return;y(true);let e=0,n=0;try{for(let r=0;r<t.length;r++){const o=t[r];x(En("claudeBatchTesting").replace("{current}",String(r+1)).replace("{total}",String(t.length)));await D(o.id,o.name,o.key,!1)?e++:n++,r<t.length-1&&await new Promise(e=>setTimeout(e,Fn));}Yr(En("claudeBatchTestDone").replace("{valid}",String(e)).replace("{invalid}",String(n)),kt);}catch{Yr(En("claudeBatchTestFailed"),wt);}finally{y(false),x("");}},disabled:0===t.length||b,style:{justifyContent:"center",padding:"8px 12px",flex:"1 1 auto",opacity:0===t.length||b?.6:1,backgroundColor:b?"rgba(var(--gh-primary-rgb), 0.1)":void 0,color:b?"var(--gh-primary)":void 0,borderColor:b?"var(--gh-primary)":void 0,whiteSpace:"nowrap"},children:b?P.jsxs(P.Fragment,{children:[
         P.jsx("div",{style:{marginRight:"8px",width:"14px",height:"14px",border:"2px solid currentColor",borderTopColor:"transparent",borderRadius:"50%",animation:"spin 1s linear infinite"}}),v]}):P.jsxs(P.Fragment,{children:["⚡ ",En("claudeBatchTest")]})}),ru.hasCapability("cookies")&&P.jsx(xd,{content:S?"":En("claudeNotOnSiteHint"),children:P.jsxs("button",{className:"settings-btn settings-btn-secondary",onClick:async()=>{try{if(ru.hasCapability("permissions")){if(!(await Ya({type:Za,permissions:["cookies"]})).hasPermission)return await Ya({type:Ja,permType:"cookies"}),void Yr(En("claudeRequestPermission"),kt)}const e=await ru.getClaudeSessionKey();if(!e.success)return void Yr(e.error||En("claudeNoCookieFound"),wt);const n=t.find(t=>t.key===e.sessionKey);if(n)return void Yr(En("claudeTokenExists").replace("{name}",n.name),wt);h({type:"import-name",sessionKey:e.sessionKey});}catch(e){Yr(En("claudeKeyCopyFailed")+": "+e.message,kt);}},disabled:!S||b,style:{justifyContent:"center",padding:"8px 12px",flex:"1 1 auto",opacity:!S||b?.6:1,backgroundColor:S?"var(--gh-bg)":"var(--gh-bg-secondary)",color:S?"var(--gh-primary)":"var(--gh-text-secondary)",borderColor:S?"var(--gh-primary)":"var(--gh-border)",whiteSpace:"nowrap"},children:["🌐 ",En("claudeImportFromBrowser")]})}),
         P.jsxs("button",{className:"settings-btn settings-btn-secondary",onClick:()=>{const e=document.createElement("input");e.type="file",e.accept="application/json",e.onchange=async e=>{const n=e.target.files?.[0];if(n)try{const e=await n.text(),r=JSON.parse(e);if(!Array.isArray(r))return void Yr(En("claudeInvalidJSON"),wt);const o=new Set(t.map(e=>e.key)),a=r.filter(e=>!o.has(e.key));if(0===a.length)return void Yr(En("claudeNoNewTokens"),St);s([...t,...a]),Yr(En("claudeImported").replace("{count}",String(a.length)),wt);}catch(r){Yr(En("claudeInvalidJSON")+": "+r.message,kt);}},e.click();},disabled:b,style:{justifyContent:"center",padding:"8px 12px",flex:"1 1 auto",opacity:b?.6:1,whiteSpace:"nowrap"},children:["📥 ",En("claudeImportJSON")]}),
         P.jsxs("button",{className:"settings-btn settings-btn-secondary",onClick:()=>{if(0===t.length)return void Yr(En("claudeNoTokensToExport"),St);const e=JSON.stringify(t,null,2),n=new Blob([e],{type:"application/json"}),r=URL.createObjectURL(n),o=document.createElement("a");o.href=r,o.download=`claude-session-keys-${Date.now()}.json`,document.body.appendChild(o),o.click(),document.body.removeChild(o),URL.revokeObjectURL(r),Yr(En("claudeExported"),St);},disabled:0===t.length||b,style:{justifyContent:"center",padding:"8px 12px",flex:"1 1 auto",opacity:0===t.length||b?.6:1,whiteSpace:"nowrap"},children:["📤 ",En("claudeExportJSON")]})]}),0===t.length?P.jsxs("div",{style:{padding:"48px 24px",textAlign:"center",color:"var(--gh-text-secondary)",backgroundColor:"var(--gh-bg-secondary)",borderRadius:"8px",border:"1px dashed var(--gh-border)"},children:[
         P.jsx("div",{style:{marginBottom:"8px",fontSize:"24px"},children:"🔑"}),
         P.jsx("div",{children:En("claudeNoKeys")}),
         P.jsx("div",{style:{fontSize:"12px",marginTop:"4px"},children:En("claudeNoKeysHint")})]}):P.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"12px"},children:t.map(e=>{const t=e.id===n,r=g===e.id;
         return P.jsxs("div",{style:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"16px",padding:"16px 20px",backgroundColor:t?"var(--gh-bg)":"var(--gh-bg-secondary)",borderRadius:"12px",border:t?"2px solid var(--gh-primary)":"1px solid var(--gh-border)",transition:"all 0.2s ease",boxShadow:t?"var(--gh-shadow-brand)":"none"},onMouseEnter:()=>p(e.id),onMouseLeave:()=>p(null),children:[
         P.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"6px",flex:"1 1 auto",minWidth:0},children:[
         P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"10px"},children:[
         P.jsx("span",{style:{fontWeight:600,fontSize:"15px",color:"var(--gh-text)"},children:e.name}),t&&P.jsx("span",{style:{fontSize:"11px",color:"var(--gh-primary)",backgroundColor:"var(--gh-bg-secondary)",padding:"1px 6px",borderRadius:"4px",fontWeight:500,border:"1px solid var(--gh-border)"},children:"当前使用"}),(a=e.accountType,a?P.jsx("span",{style:{padding:"2px 8px",borderRadius:"4px",fontSize:"11px",fontWeight:500,backgroundColor:"var(--gh-bg-secondary)"},children:a}):P.jsx("span",{style:{color:"var(--gh-text-secondary)"},children:En("claudeKeyUntested")}))]}),
         P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[
         P.jsx(xd,{content:En("claudeKeyDoubleTapCopy"),children:P.jsxs("code",{onDoubleClick:()=>C(e.id,e.key),style:{fontSize:"12px",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",color:"var(--gh-text-secondary)",backgroundColor:"var(--gh-bg-tertiary)",padding:"2px 6px",borderRadius:"4px",cursor:"pointer",maxWidth:"300px",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},children:[e.key.substring(0,32),"..."]})}),(r||m===e.id)&&P.jsx(xd,{content:m===e.id?En("claudeCopied"):En("claudeCopyKey"),children:P.jsx("button",{onClick:t=>{t.stopPropagation(),C(e.id,e.key);},style:{background:"none",border:"none",cursor:m===e.id?"default":"pointer",fontSize:"12px",padding:"2px",color:m===e.id?"var(--gh-secondary)":"var(--gh-text-tertiary)"},children:m===e.id?"✓":P.jsx(ve,{size:14})})})]})]}),
         P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"16px"},children:[
         P.jsx("div",{style:{fontSize:"13px",color:"var(--gh-text-secondary)"},children:(o=e.isValid,void 0===o?P.jsx("span",{style:{color:Dt},children:"-"}):o?P.jsxs("span",{style:{color:Ct,fontWeight:500},children:["✓ ",En("claudeKeyValid")]}):P.jsxs("span",{style:{color:Tt,fontWeight:500},children:["✗ ",En("claudeKeyInvalid")]}))}),
         P.jsxs("div",{style:{display:"flex",gap:"8px"},children:[
         P.jsx(xd,{content:En(t?"claudeAlreadyUsing":S?"claudeKeyUse":"claudeNotOnSiteHint"),children:P.jsx("button",{className:"settings-btn settings-btn-secondary",onClick:()=>T(e.id),disabled:!S||t,style:{padding:"6px 12px",fontSize:"13px",opacity:!S||t?.5:1,cursor:!S||t?"not-allowed":"pointer"},children:En(t?"claudeKeyUsing":"claudeKeyUse")})}),
         P.jsx("button",{className:"settings-btn settings-btn-secondary",style:{padding:"6px 12px",fontSize:"13px",minWidth:"60px",justifyContent:"center"},onClick:()=>E(e.id),disabled:l[e.id],children:l[e.id]?P.jsx("div",{style:{width:"14px",height:"14px",border:"2px solid currentColor",borderTopColor:"transparent",borderRadius:"50%",animation:"spin 1s linear infinite"}}):En("claudeKeyTest")}),
         P.jsx("button",{className:"settings-btn settings-btn-secondary",style:{padding:"6px 12px",fontSize:"13px",color:"var(--gh-danger)",borderColor:"rgba(239, 68, 68, 0.2)",backgroundColor:"rgba(239, 68, 68, 0.05)"},onClick:()=>{return t=e.id,n=e.name,void h({type:"delete",id:t,name:n});var t,n;},children:En("claudeKeyDelete")}),
         P.jsx("style",{children:"\n                        @keyframes spin {\n                          from { transform: rotate(0deg); }\n                          to { transform: rotate(360deg); }\n                        }\n                      "})]})]})]},e.id);var o,a;})})]}),"add"===d.type&&P.jsx(Ju,{onConfirm:(e,n)=>{e.trim()?n.trim()?Rn.CLAUDE_KEY.test(n)?t.some(e=>e.key===n)?Yr(En("claudeKeyExists"),wt):(r({name:e.trim(),key:n.trim()}),Yr(En("claudeKeyAdded"),St),k()):Yr(En("claudeKeyInvalidFormat"),wt):Yr(En("claudeKeyRequired"),St):Yr(En("claudeNameRequired"),St);},onCancel:k}),"import-name"===d.type&&P.jsx(bd,{title:En("claudeImportNameTitle"),defaultValue:`Import-${(new Date).toLocaleDateString()}`,placeholder:En("claudeImportNamePlaceholder"),onConfirm:e=>{if(!e.trim())return void Yr(En("claudeNameRequired"),St);const t=d,n=r({name:e.trim(),key:t.sessionKey});a(n.id),Yr(En("claudeKeyImported"),St),k(),setTimeout(()=>E(n.id),Fn);},onCancel:k}),"delete"===d.type&&P.jsx(fd,{title:En("claudeDeleteConfirmTitle"),message:En("claudeDeleteConfirmMsg").replace("{name}",d.name),confirmText:En("claudeKeyDelete"),danger:true,onConfirm:()=>{o(d.id),Yr(En("claudeKeyDeleted"),St),k();},onCancel:k})]})},Ju=({onConfirm:e,onCancel:t})=>{const[n,r]=u.useState(""),[o,a]=u.useState(""),i=h.useRef(null);h.useEffect(()=>{i.current?.focus();},[]);const s=()=>{e(n,o);};
         return P.jsxs(md,{onClose:t,children:[
         P.jsx("div",{className:"gh-dialog-title",children:En("claudeAddKey")}),
         P.jsxs("div",{style:{display:"flex",flexDirection:"column",gap:"16px",marginBottom:"24px"},children:[
         P.jsxs("div",{children:[
         P.jsx("div",{style:{marginBottom:"6px",fontSize:"14px",fontWeight:500,color:"var(--gh-text)"},children:En("claudeAddKeyNameTitle").split("-")[1].trim().replace("输入","")}),
         P.jsx("input",{ref:i,type:"text",className:"gh-dialog-input",value:n,onChange:e=>r(e.target.value),placeholder:En("claudeAddKeyNamePlaceholder"),style:{marginBottom:0},onKeyDown:e=>"Enter"===e.key&&document.getElementById("claude-key-input")?.focus()})]}),
         P.jsxs("div",{children:[
         P.jsx("div",{style:{marginBottom:"6px",fontSize:"14px",fontWeight:500,color:"var(--gh-text)"},children:"Session Key"}),
         P.jsx("input",{id:"claude-key-input",type:"text",className:"gh-dialog-input",value:o,onChange:e=>a(e.target.value),placeholder:En("claudeAddKeyValuePlaceholder"),style:{marginBottom:0},onKeyDown:e=>"Enter"===e.key&&s()})]})]}),
         P.jsxs("div",{className:"gh-dialog-buttons",children:[
         P.jsx("button",{className:"gh-dialog-btn gh-dialog-btn-secondary",onClick:t,children:En("cancel")}),
         P.jsx("button",{className:"gh-dialog-btn gh-dialog-btn-primary",onClick:s,children:En("confirm")})]})]})},$u=({label:e,siteKey:t,settings:n,setSettings:r,placeholder:o,onDisabledClick:a,settingId:i})=>{const s=u.useMemo(()=>n.modelLock?.[t]||{enabled:false,keyword:""},[n.modelLock,t]),[l,c]=u.useState(s.keyword);u.useEffect(()=>{c(s.keyword);},[s.keyword]);const d=u.useCallback(()=>{l!==s.keyword&&r({modelLock:{...n.modelLock,[t]:{...s,keyword:l}}});},[l,s,n.modelLock,t,r]);
         return P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"12px",marginBottom:"12px",cursor:s.enabled?"default":"not-allowed"},"data-setting-id":i,children:[
         P.jsx("span",{style:{fontSize:"14px",fontWeight:500,flex:1,color:s.enabled?"var(--gh-text, #374151)":"var(--gh-text-secondary, #9ca3af)"},children:e}),
         P.jsx("div",{onMouseDown:e=>{s.enabled||(e.preventDefault(),a?.());},children:P.jsx("input",{type:"text",className:"settings-input",value:l,onChange:e=>c(e.target.value),onBlur:d,onKeyDown:e=>{"Enter"===e.key&&(d(),e.target.blur());},placeholder:o,disabled:!s.enabled,style:{width:"200px",opacity:s.enabled?1:.5,pointerEvents:s.enabled?"auto":"none"}})}),
         P.jsx(gd,{checked:s.enabled,onChange:()=>{r({modelLock:{...n.modelLock,[t]:{...s,enabled:!s.enabled}}});}})]})},Xu=({settings:e,setSettings:t,onDisabledClick:n,settingId:r})=>{const o="aistudio",a=e.modelLock?.[o]||{enabled:false,keyword:""},[i,s]=u.useState(e.aistudio?.cachedModels||[]),[l,c]=u.useState(false);u.useEffect(()=>{e.aistudio?.cachedModels&&s(e.aistudio.cachedModels);},[e.aistudio?.cachedModels]);
         return P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"12px",marginBottom:"12px",cursor:a.enabled?"default":"not-allowed"},"data-setting-id":r,children:[
         P.jsx("span",{style:{fontSize:"14px",fontWeight:500,flex:1,color:a.enabled?"var(--gh-text, #374151)":"var(--gh-text-secondary, #9ca3af)"},children:"AI Studio"}),
         P.jsx(xd,{content:"点击在 AI Studio 页面刷新模型列表",children:P.jsx("button",{className:"icon-button",onClick:async()=>{c(true);try{const n=await Ya({type:"GET_AISTUDIO_MODELS"});if(n.success&&n.models)s(n.models),t({aistudio:{...e.aistudio,cachedModels:n.models}}),Yr(En("aistudioModelsFetched")||`获取到 ${n.models.length} 个模型`,2e3);else {Yr("NO_AISTUDIO_TAB"===n.error?En("aistudioNoTabError")||"请先打开 AI Studio 页面":En("aistudioModelsError")||"获取模型失败",3e3);}}catch(n){Yr(En("aistudioModelsError")||"获取模型列表失败",3e3),console.error("Refresh model list failed:",n);}finally{c(false);}},disabled:l,style:{padding:"4px",opacity:l?.5:1,cursor:l?"not-allowed":"pointer",background:"transparent",border:"none",borderRadius:"4px",display:"flex",alignItems:"center",justifyContent:"center"},children:P.jsx(O,{size:16})})}),
         P.jsx("div",{onMouseDown:e=>{a.enabled||(e.preventDefault(),n?.());},children:P.jsxs("select",{className:"settings-select",value:a.keyword||"",onChange:n=>{return r=n.target.value,void t({modelLock:{...e.modelLock,[o]:{...a,keyword:r}}});var r;},disabled:!a.enabled||0===i.length,style:{width:"200px",opacity:a.enabled?1:.5,pointerEvents:a.enabled?"auto":"none"},children:[0===i.length&&P.jsx("option",{value:"",children:"请先刷新模型列表"}),i.map(e=>P.jsx("option",{value:e.id,children:e.name},e.id))]})}),
         P.jsx(gd,{checked:a.enabled,onChange:()=>{t({modelLock:{...e.modelLock,[o]:{...a,enabled:!a.enabled}}});}})]})},Yu=({siteId:e,initialTab:t})=>{const[n,r]=u.useState(t||it);u.useEffect(()=>{t&&r(t);},[t]);const{settings:o,setSettings:a,updateNestedSetting:i}=wr(),s=En("enablePrerequisiteToast")||"请先开启「{setting}」",l=e=>eo(s.replace("{setting}",e),2e3,{},1500,e),c=En("enablePageWidth")||"启用页面宽度",d=En("enableUserQueryWidth")||"启用用户问题加宽",h=En("modelLockTitle")||"模型切换锁定",g=o?.layout?.pageWidth?.[e]||o?.layout?.pageWidth?._default,p=o?.layout?.userQueryWidth?.[e]||o?.layout?.userQueryWidth?._default,[m,f]=u.useState(g?.value||In.DEFAULT_PERCENT),[b,y]=u.useState(p?.value||jn.DEFAULT_PX),[v,x]=u.useState(null),S=u.useRef(null),w=u.useRef(null),k=u.useRef(null),C=u.useRef(null);u.useEffect(()=>{g?.value&&"pageWidth"!==v&&f(g.value);},[g?.value,v]),u.useEffect(()=>{p?.value&&"userQueryWidth"!==v&&y(p.value);},[p?.value,v]),u.useEffect(()=>()=>{S.current&&clearTimeout(S.current),w.current&&clearTimeout(w.current);},[]);const T=u.useCallback(()=>{let t=parseInt(m);const n=g?.unit||"%";isNaN(t)&&(t="%"===n?parseInt(In.DEFAULT_PERCENT):parseInt(In.DEFAULT_PX)),"%"===n?(t<In.MIN_PERCENT&&(t=In.MIN_PERCENT),t>In.MAX_PERCENT&&(t=In.MAX_PERCENT)):t<=0&&(t=In.MIN_PX);const r=t.toString();if(f(r),r!==g?.value&&o){const t=g||{enabled:true,value:r,unit:"%"};a({layout:{...o.layout,pageWidth:{...o.layout?.pageWidth,[e]:{...t,value:r}}}});}},[m,g,o,e,a]),D=u.useCallback(()=>{let t=parseInt(b);const n=p?.unit||"px";isNaN(t)&&(t="%"===n?parseInt(jn.DEFAULT_PERCENT):parseInt(jn.DEFAULT_PX)),"%"===n?(t<jn.MIN_PERCENT&&(t=jn.MIN_PERCENT),t>jn.MAX_PERCENT&&(t=jn.MAX_PERCENT)):t<=0&&(t=jn.MIN_PX);const r=t.toString();if(y(r),r!==p?.value&&o){const t=p||{enabled:true,value:r,unit:"px"};a({layout:{...o.layout,userQueryWidth:{...o.layout?.userQueryWidth,[e]:{...t,value:r}}}});}},[b,p,o,e,a]);if(!o)return null;const E=[{id:it,label:En("tabLayout")||"页面布局"},{id:st,label:En("tabModelLock")||"模型锁定"},{id:zn.GEMINI,label:En("tabGemini")||"Gemini"},{id:zn.AISTUDIO,label:"AI Studio"},{id:zn.CHATGPT,label:"ChatGPT"},{id:zn.CLAUDE,label:"Claude"}];
         return P.jsxs("div",{children:[
         P.jsx(hu,{title:En("navSiteSettings")||"站点设置",Icon:Y}),
         P.jsx("p",{className:"settings-page-desc",children:En("siteSettingsPageDesc")||"配置站点相关的页面布局和内容处理"}),
         P.jsx(uu,{tabs:E,activeTab:n,onTabChange:r}),n===it&&P.jsxs(P.Fragment,{children:[
         P.jsxs(lu,{title:En("layoutSettingsTitle")||"页面宽度控制",children:[
         P.jsx(du,{label:En("enablePageWidth")||"启用页面宽度",description:En("pageWidthDesc")||"调整聊天页面的最大宽度",settingId:"layout-page-width-enabled",checked:g?.enabled??false,onChange:()=>{const t=g||{enabled:false,value:"81",unit:"%"};a({layout:{...o?.layout,pageWidth:{...o?.layout?.pageWidth,[e]:{...t,enabled:!t.enabled}}}});}}),
         P.jsx(cu,{label:En("pageWidthValueLabel")||"宽度值",settingId:"layout-page-width-value",disabled:!g?.enabled,onDisabledClick:()=>l(c),children:P.jsxs("div",{style:{display:"flex",gap:"8px"},children:[
         P.jsx("input",{ref:k,type:"text",className:"settings-input",value:m,onFocus:()=>{S.current&&(clearTimeout(S.current),S.current=null),x("pageWidth");},onChange:e=>f(e.target.value.replace(/[^0-9]/g,"")),onBlur:()=>{S.current=setTimeout(()=>{document.activeElement!==k.current&&(x(null),T());},100);},onKeyDown:e=>{"Enter"===e.key&&(T(),k.current?.blur());},disabled:!g?.enabled,style:{width:"80px"}}),
         P.jsxs("select",{className:"settings-select",value:g?.unit||"%",onChange:t=>(t=>{const n="px"===t?In.DEFAULT_PX:In.DEFAULT_PERCENT;if(f(n),o){const r={...g,unit:t,value:n,enabled:g?.enabled??false};a({layout:{...o.layout,pageWidth:{...o.layout?.pageWidth,[e]:r}}});}})(t.target.value),disabled:!g?.enabled,children:[
         P.jsx("option",{value:"%",children:"%"}),
         P.jsx("option",{value:"px",children:"px"})]})]})})]}),
         P.jsxs(lu,{title:En("userQueryWidthSettings")||"用户问题宽度",children:[
         P.jsx(du,{label:En("enableUserQueryWidth")||"启用用户问题加宽",description:En("userQueryWidthDesc")||"调整用户问题气泡的最大宽度",settingId:"layout-user-query-width-enabled",checked:p?.enabled??false,onChange:()=>{const t=p||{enabled:false,value:"600",unit:"px"};a({layout:{...o?.layout,userQueryWidth:{...o?.layout?.userQueryWidth,[e]:{...t,enabled:!t.enabled}}}});}}),
         P.jsx(cu,{label:En("userQueryWidthValueLabel")||"问题宽度",settingId:"layout-user-query-width-value",disabled:!p?.enabled,onDisabledClick:()=>l(d),children:P.jsxs("div",{style:{display:"flex",gap:"8px"},children:[
         P.jsx("input",{ref:C,type:"text",className:"settings-input",value:b,onFocus:()=>{w.current&&(clearTimeout(w.current),w.current=null),x("userQueryWidth");},onChange:e=>y(e.target.value.replace(/[^0-9]/g,"")),onBlur:()=>{w.current=setTimeout(()=>{document.activeElement!==C.current&&(x(null),D());},100);},onKeyDown:e=>{"Enter"===e.key&&(D(),C.current?.blur());},disabled:!p?.enabled,style:{width:"80px"}}),
         P.jsxs("select",{className:"settings-select",value:p?.unit||"px",onChange:t=>(t=>{const n="px"===t?jn.DEFAULT_PX:jn.DEFAULT_PERCENT;if(y(n),o){const r=p||{enabled:false,value:n,unit:t};a({layout:{...o.layout,userQueryWidth:{...o.layout?.userQueryWidth,[e]:{...r,unit:t,value:n}}}});}})(t.target.value),disabled:!p?.enabled,children:[
         P.jsx("option",{value:"px",children:"px"}),
         P.jsx("option",{value:"%",children:"%"})]})]})})]}),
         P.jsx(lu,{title:En("zenModeTitle")||"禅模式 (Zen Mode)",children:P.jsx(du,{label:En("zenModeLabel")||"启用禅模式",description:En("zenModeDesc")||"隐藏页面中不必要的元素(如底部的模型免责声明等),体验更纯粹的对话界面",settingId:"layout-zen-mode-enabled",checked:o.layout?.zenMode?.[e]?.enabled??false,onChange:()=>{const t=o.layout?.zenMode?.[e]||{enabled:false};a({layout:{...o.layout,zenMode:{...o.layout?.zenMode,[e]:{...t,enabled:!t.enabled}}}});}})})]}),n===st&&P.jsxs(lu,{title:En("modelLockTitle")||"模型切换锁定",description:En("modelLockDesc")||"进入页面后自动切换到指定模型",children:[
         P.jsx($u,{label:"Gemini",siteKey:"gemini",settings:o,setSettings:a,placeholder:En("modelKeywordPlaceholder")||"模型关键词",onDisabledClick:()=>l(h),settingId:"model-lock-gemini"}),
         P.jsx($u,{label:"Gemini Enterprise",siteKey:"gemini-enterprise",settings:o,setSettings:a,placeholder:En("modelKeywordPlaceholder")||"模型关键词",onDisabledClick:()=>l(h),settingId:"model-lock-gemini-enterprise"}),
         P.jsx(Xu,{settings:o,setSettings:a,onDisabledClick:()=>l(h),settingId:"model-lock-aistudio"}),
         P.jsx($u,{label:"ChatGPT",siteKey:"chatgpt",settings:o,setSettings:a,placeholder:En("modelKeywordPlaceholder")||"模型关键词",onDisabledClick:()=>l(h),settingId:"model-lock-chatgpt"}),
         P.jsx($u,{label:"Claude",siteKey:"claude",settings:o,setSettings:a,placeholder:En("modelKeywordPlaceholder")||"模型关键词",onDisabledClick:()=>l(h),settingId:"model-lock-claude"}),
         P.jsx($u,{label:"Grok",siteKey:"grok",settings:o,setSettings:a,placeholder:En("modelKeywordPlaceholder")||"模型关键词",onDisabledClick:()=>l(h),settingId:"model-lock-grok"})]}),"gemini"===n&&P.jsxs(lu,{title:En("geminiSettingsTab")||"Gemini 专属",description:En("contentProcessingDesc")||"配置 AI 回复内容的处理方式",children:[
         P.jsx(du,{label:En("markdownFixLabel")||"Markdown 加粗修复",description:En("markdownFixDesc")||"修复 Gemini 响应中未渲染的加粗文本",settingId:"gemini-markdown-fix",checked:o.content?.markdownFix??true,onChange:()=>i("content","markdownFix",!o.content?.markdownFix)}),
         P.jsx(du,{label:En("watermarkRemovalLabel")||"图片水印移除",description:En("watermarkRemovalDesc")||"自动移除 AI 生成图片的水印",settingId:"gemini-watermark-removal",checked:o.content?.watermarkRemoval??false,onChange:async()=>{const e=o.content?.watermarkRemoval;if(e)i("content","watermarkRemoval",false);else {if(!ru.hasCapability("permissions"))return void i("content","watermarkRemoval",true);const e=await Ya({type:Za,origins:["<all_urls>"]});e.success&&e.hasPermission?i("content","watermarkRemoval",true):(await Ya({type:Ja,permType:"allUrls"}),Yr(En("permissionRequestToast")||"请在弹出的窗口中授予权限",3e3));}}}),
         P.jsxs("div",{className:"setting-subsection",style:{marginTop:"24px",paddingTop:"16px",borderTop:"1px solid var(--gh-border-color)"},children:[
         P.jsx("h3",{style:{fontSize:"14px",fontWeight:600,marginBottom:"12px"},children:"Gemini Enterprise"}),
         P.jsx(du,{label:En("policyRetryLabel"),description:En("policyRetryDesc"),settingId:"gemini-policy-retry",checked:o.geminiEnterprise?.policyRetry?.enabled??false,onChange:()=>{const e=o.geminiEnterprise?.policyRetry||{enabled:false,maxRetries:3};a({geminiEnterprise:{...o.geminiEnterprise,policyRetry:{...e,enabled:!e.enabled}}});}}),o.geminiEnterprise?.policyRetry?.enabled&&P.jsx(cu,{label:En("maxRetriesLabel"),settingId:"gemini-policy-max-retries",children:P.jsxs("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[
         P.jsx(vd,{value:o.geminiEnterprise?.policyRetry?.maxRetries??3,onChange:e=>a({geminiEnterprise:{...o.geminiEnterprise,policyRetry:{...o.geminiEnterprise?.policyRetry,maxRetries:e}}}),min:1,max:10,defaultValue:3,style:{width:"60px"}}),
         P.jsx("span",{style:{fontSize:"12px",color:"var(--gh-text-secondary)"},children:En("retryCountSuffix")})]})})]})]}),n===zn.AISTUDIO&&P.jsxs(lu,{title:En("aistudioSettingsTitle")||"AI Studio 设置",description:En("aistudioSettingsDesc")||"配置 AI Studio 页面的默认行为",children:[
         P.jsx(du,{label:En("aistudioCollapseNavbar")||"默认折叠侧边栏",description:En("aistudioCollapseNavbarDesc")||"打开页面时自动折叠左侧导航栏",settingId:"aistudio-collapse-navbar",checked:o.aistudio?.collapseNavbar??false,onChange:()=>a({aistudio:{...o.aistudio,collapseNavbar:!o.aistudio?.collapseNavbar}})}),
         P.jsx(du,{label:En("aistudioCollapseRunSettings")||"默认收起运行设置面板",description:En("aistudioCollapseRunSettingsDesc")||"打开页面时自动收起右侧的运行设置面板",settingId:"aistudio-collapse-run-settings",checked:o.aistudio?.collapseRunSettings??false,onChange:()=>a({aistudio:{...o.aistudio,collapseRunSettings:!o.aistudio?.collapseRunSettings}})}),
         P.jsx(du,{label:En("aistudioCollapseTools")||"默认收起工具面板",description:En("aistudioCollapseToolsDesc")||"打开页面时自动收起右侧运行设置面板",settingId:"aistudio-collapse-tools",checked:o.aistudio?.collapseTools??false,onChange:()=>a({aistudio:{...o.aistudio,collapseTools:!o.aistudio?.collapseTools}})}),
         P.jsx(du,{label:En("aistudioCollapseAdvanced")||"默认收起高级设置",description:En("aistudioCollapseAdvancedDesc")||"打开页面时自动收起运行设置中的高级选项",settingId:"aistudio-collapse-advanced",checked:o.aistudio?.collapseAdvanced??false,onChange:()=>a({aistudio:{...o.aistudio,collapseAdvanced:!o.aistudio?.collapseAdvanced}})}),
         P.jsx(du,{label:En("aistudioEnableSearch")||"默认启用搜索工具",description:En("aistudioEnableSearchDesc")||"打开页面时自动启用 Google 实时搜索",settingId:"aistudio-enable-search",checked:o.aistudio?.enableSearch??true,onChange:()=>a({aistudio:{...o.aistudio,enableSearch:!o.aistudio?.enableSearch}})}),
         P.jsx(du,{label:En("aistudioRemoveWatermark")||"移除图片水印",description:En("aistudioRemoveWatermarkDesc")||"阻止加载水印图片,让生成图片无水印 (需刷新页面生效)",settingId:"aistudio-remove-watermark",checked:o.aistudio?.removeWatermark??false,onChange:()=>{a({aistudio:{...o.aistudio,removeWatermark:!o.aistudio?.removeWatermark}}),Yr(En("aistudioReloadHint")||"设置已保存,请刷新 AI Studio 页面以生效",3e3);}}),
         P.jsx(du,{label:En("aistudioMarkdownFixLabel")||"Markdown 加粗修复",description:En("aistudioMarkdownFixDesc")||"修复 AI Studio 响应中未渲染的 **加粗** 文本",settingId:"aistudio-markdown-fix",checked:o.aistudio?.markdownFix??false,onChange:()=>a({aistudio:{...o.aistudio,markdownFix:!o.aistudio?.markdownFix}})})]}),"claude"===n&&P.jsx(Zu,{siteId:e}),n===zn.CHATGPT&&P.jsx(lu,{title:En("chatgptSettingsTitle")||"ChatGPT 设置",description:En("chatgptSettingsDesc")||"配置 ChatGPT 页面的默认行为",children:P.jsx(du,{label:En("chatgptMarkdownFixLabel")||"Markdown 加粗修复",description:En("chatgptMarkdownFixDesc")||"修复 ChatGPT 响应中未渲染的 **加粗** 文本",settingId:"chatgpt-markdown-fix",checked:o.chatgpt?.markdownFix??false,onChange:()=>a({chatgpt:{...o.chatgpt,markdownFix:!o.chatgpt?.markdownFix}})})})]})},eh=(e,t)=>{const n=En(e);return n===e?t:n},th=[{id:Ue,Icon:$,labelKey:"navGeneral",label:"基本设置"},{id:He,Icon:X,labelKey:"navAppearance",label:"外观主题"},{id:We,Icon:ee,labelKey:"navFeatures",label:"功能模块"},{id:Ke,Icon:Y,labelKey:"navSiteSettings",label:"站点配置"},{id:Ve,Icon:Ne,labelKey:"navGlobalSearch",label:"全局搜索"},{id:Ge,Icon:ye,labelKey:"navShortcuts",label:"快捷键位"},{id:Qe,Icon:({size:e=20,color:t="currentColor",className:n="",style:r})=>P.jsx("svg",{viewBox:"0 0 24 24",width:e,height:e,fill:"none",stroke:t,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:n,style:{display:"block",...r},children:P.jsx("path",{d:"M17.5 19c0-3.037-2.463-5.5-5.5-5.5S6.5 15.963 6.5 19 M17.5 19c2.485 0 4.5-2.015 4.5-4.5S19.985 10 17.5 10c-.186 0-.368.012-.547.034C16.402 6.624 13.473 4 10 4c-3.866 0-7 3.134-7 7 0 .34.025.675.074 1.002C1.309 12.544 0 14.12 0 16.002 0 18.21 1.79 20 4 20h13.5"})}),labelKey:"navBackup",label:"数据管理"},{id:Ze,Icon:te,labelKey:"navPermissions",label:"权限管理"},{id:Je,Icon:ne,labelKey:"navAbout",label:"关于"}],nh=({isOpen:e,onClose:t,siteId:n})=>{const[r,o]=u.useState(Ue),[a,i]=u.useState(void 0),[s,l]=u.useState(null),[c,d]=u.useState(false),{settings:h}=wr(),g=kr(),p=u.useRef(null),m=u.useRef(null),f=u.useRef(void 0),b=u.useRef(null);if(u.useEffect(()=>{g&&h?.language&&Tn(h.language);},[g,h?.language]),u.useEffect(()=>{p.current&&(p.current.scrollTop=0);},[r]),u.useEffect(()=>{if(!e)return;const n=e=>{"Escape"===e.key&&t();};return document.addEventListener("keydown",n),()=>document.removeEventListener("keydown",n)},[e,t]),u.useEffect(()=>{const e=e=>{const t=(e=>{const t=ut(e.settingId),n=ht(t);return {page:e.page??n?.page,subTab:e.subTab??(e.page&&e.page!==n?.page?void 0:n?.subTab),settingId:t}})(e.detail||{});t.page&&th.some(e=>e.id===t.page)&&o(t.page),i(t.subTab),t.settingId?l({settingId:t.settingId,token:Date.now()}):l(null);};return window.addEventListener("ophel:navigateSettingsPage",e),()=>window.removeEventListener("ophel:navigateSettingsPage",e)},[]),u.useEffect(()=>{if(!e||!s?.settingId)return;let t,n,r=false;const o=`[data-setting-id="${"undefined"!=typeof CSS&&"function"==typeof CSS.escape?CSS.escape(s.settingId):JSON.stringify(s.settingId).slice(1,-1)}"]`,a=e=>{if(r)return;const n=p.current?.querySelector(o);return n?(void 0!==f.current&&(window.clearTimeout(f.current),f.current=void 0),b.current&&b.current!==n&&b.current.classList.remove("setting-locate-highlight"),n.scrollIntoView({behavior:"smooth",block:"center"}),n.classList.remove("setting-locate-highlight"),n.offsetWidth,n.classList.add("setting-locate-highlight"),b.current=n,f.current=window.setTimeout(()=>{n.classList.remove("setting-locate-highlight"),b.current===n&&(b.current=null),f.current=void 0;},2200),void l(null)):e>=12?(console.warn(`[Ophel] Failed to locate setting: ${s.settingId}`),void l(null)):void(t=window.setTimeout(()=>a(e+1),100))};return n=window.requestAnimationFrame(()=>a(0)),()=>{r=true,void 0!==n&&window.cancelAnimationFrame(n),void 0!==t&&window.clearTimeout(t);}},[e,r,a,s]),u.useEffect(()=>()=>{ void 0!==f.current&&window.clearTimeout(f.current),b.current&&(b.current.classList.remove("setting-locate-highlight"),b.current=null);},[]),u.useEffect(()=>{if(e&&(n===zn.GROK||n===zn.CLAUDE||n===zn.DOUBAO)){const e=m.current;if(!e)return;const t=e=>{const t=e.target;("INPUT"===t.tagName||"TEXTAREA"===t.tagName||"SELECT"===t.tagName||"true"===t.getAttribute("contenteditable"))&&(e.stopPropagation(),e.stopImmediatePropagation());};return e.addEventListener("keydown",t,true),e.addEventListener("keypress",t,true),()=>{e.removeEventListener("keydown",t,true),e.removeEventListener("keypress",t,true);}}},[e,n]),u.useEffect(()=>e?(document.body.style.overflow="hidden",()=>{document.body.style.overflow="";}):(document.body.style.overflow="",()=>{document.body.style.overflow="";}),[e]),!e)return null;
         return P.jsx("div",{className:"settings-modal-overlay",onClick:t,children:P.jsxs("div",{ref:m,className:"settings-modal-container "+(c?"maximized":""),onClick:e=>e.stopPropagation(),children:[
         P.jsxs("div",{className:"settings-modal-actions",children:[
         P.jsx(xd,{content:c?En("restore")||"还原":En("maximize")||"最大化",children:P.jsx("button",{className:"settings-modal-action-btn",onClick:()=>d(!c),children:c?P.jsx(me,{size:16}):P.jsx(pe,{size:16})})}),
         P.jsx(xd,{content:En("close")||"关闭",children:P.jsx("button",{className:"settings-modal-action-btn close",onClick:t,children:P.jsx(I,{size:16})})})]}),
         P.jsxs("aside",{className:"settings-sidebar",children:[
         P.jsx("div",{className:"settings-sidebar-header",children:P.jsxs("div",{className:"settings-sidebar-logo",children:[
         P.jsx("img",{src:Nd,alt:Ld}),
         P.jsx("span",{children:Ld})]})}),
         P.jsx("nav",{className:"settings-sidebar-nav",children:th.filter(e=>!(!ru.hasCapability("permissions")&&e.id===Ze)).map(e=>P.jsxs("button",{className:"settings-nav-item "+(r===e.id?"active":""),onClick:()=>{o(e.id),i(void 0),l(null);},children:[
         P.jsx("span",{className:"settings-nav-item-icon",children:P.jsx(e.Icon,{size:22})}),
         P.jsx("span",{children:eh(e.labelKey,e.label)})]},e.id))}),
         P.jsx(su,{siteId:n})]}),
         P.jsx("main",{className:"settings-content",ref:p,children:(()=>{if(!h||!g)
         return P.jsx("div",{style:{padding:40,textAlign:"center"},children:En("loading")||"加载中..."});switch(r){case Ue:
         return P.jsx(Bu,{siteId:n,initialTab:a});case Ke:
         return P.jsx(Yu,{siteId:n,initialTab:a});case He:
         return P.jsx(wu,{siteId:n,initialTab:a});case We:
         return P.jsx(Ru,{siteId:n,initialTab:a});case Ve:
         return P.jsx(zu,{siteId:n});case Ge:
         return P.jsx(Vu,{siteId:n});case Ze:
         return P.jsx(Wu,{siteId:n});case Qe:
         return P.jsx(Iu,{siteId:n,onNavigate:o});case Je:
         return P.jsx(gu,{});default:
         return P.jsx(Bu,{siteId:n,initialTab:a})}})()})]})})},rh=e=>{const{isOpen:t,onClose:n,inputRef:r,resultsRef:o,activeOptionId:a,inputValue:i,inputPlaceholder:s,onInputChange:l,hotkeyLabel:c,fuzzySearchToggleLabel:d,fuzzySearchToggleAriaLabel:u,isFuzzySearchEnabled:g,onToggleFuzzySearch:p,syntaxHelpTriggerRef:m,syntaxHelpPopoverRef:f,showSyntaxHelp:b,onToggleSyntaxHelp:y,syntaxHelpTriggerAriaLabel:v,syntaxHelpTitle:x,syntaxHelpDescription:S,syntaxHelpItems:w,onApplySyntaxHelpItem:k,activeFilterChips:C,hasOverflowFilterChips:T,overflowFilterChipText:D,filterChipRemoveTitle:E,clearFiltersLabel:A,onRemoveFilterChip:_,onClearAllFilterChips:L,shouldShowSyntaxSuggestions:N,syntaxSuggestions:M,activeSyntaxSuggestionIndex:I,onHoverSyntaxSuggestion:j,onApplySyntaxSuggestion:R,syntaxDiagnostics:F,resolveSyntaxDiagnosticTitle:z,showShortcutNudge:O,shortcutNudgeMessage:B,closeLabel:q,dismissShortcutNudgeLabel:U,onHideShortcutNudge:H,onDismissShortcutNudgeForever:W,categoriesLabel:K,categories:V,activeCategoryId:G,onSelectCategory:Q,activeContext:Z,listboxId:J,listboxLabel:$,onResultsWheel:X,visibleResults:Y,groupedResults:ee,getGroupLabel:te,allCategoryItemLimit:ne,isAllCategory:re,emptyText:oe,emptyGuideTitle:ae,emptyGuideDescription:ie,emptyGuideExamples:se,renderSearchResultItem:le,resolveVisibleResultIndex:ce,collapseLabel:de,moreLabel:ue,onToggleCategoryGroup:he,footerTips:ge,promptPreview:pe}=e,me=h.useRef(null);return h.useEffect(()=>{if(!t)return;const e=me.current;if(!e)return;const n=e=>{const t=e.target;("INPUT"===t.tagName||"TEXTAREA"===t.tagName||"SELECT"===t.tagName||"true"===t.getAttribute("contenteditable"))&&(e.stopPropagation(),e.stopImmediatePropagation());};return e.addEventListener("keydown",n,true),e.addEventListener("keypress",n,true),()=>{e.removeEventListener("keydown",n,true),e.removeEventListener("keypress",n,true);}},[t]),t?P.jsxs("div",{className:"settings-search-overlay gh-interactive",onClick:n,children:[
         P.jsxs("div",{ref:me,className:"settings-search-modal",onClick:e=>e.stopPropagation(),children:[
         P.jsxs("div",{className:"settings-search-input-wrap",children:[
         P.jsx(Ne,{size:16}),
         P.jsx("button",{type:"button",className:"settings-search-fuzzy-toggle "+(g?"active":""),"aria-pressed":g,"aria-label":u,onClick:p,children:d}),
         P.jsx("input",{ref:r,className:"settings-search-input",role:"combobox","aria-autocomplete":"list","aria-expanded":true,"aria-haspopup":"listbox","aria-controls":J,"aria-activedescendant":a,value:i,onChange:e=>{l(e.target.value);},placeholder:s}),
         P.jsxs("span",{className:"settings-search-hotkey",children:["⌨ ",c]}),
         P.jsxs("div",{className:"settings-search-help",children:[
         P.jsx("button",{ref:m,type:"button",className:"settings-search-help-trigger "+(b?"active":""),"aria-expanded":b,"aria-label":v,onClick:y,children:"?"}),b?P.jsxs("div",{ref:f,className:"settings-search-help-popover",role:"dialog","aria-label":x,children:[
         P.jsx("div",{className:"settings-search-help-title",children:x}),
         P.jsx("div",{className:"settings-search-help-tip",children:S}),
         P.jsx("div",{className:"settings-search-help-items",children:w.map(e=>P.jsxs("button",{type:"button",className:"settings-search-help-item",onClick:()=>k(e),children:[
         P.jsx("span",{className:"settings-search-help-token",children:e.token}),
         P.jsx("span",{className:"settings-search-help-desc",children:e.description})]},e.id))})]}):null]})]}),C.length>0?P.jsxs("div",{className:"settings-search-filter-chips","aria-label":"active search filters",children:[C.map(e=>P.jsxs("button",{type:"button",className:"settings-search-filter-chip",onClick:()=>_(e.id),title:E,children:[
         P.jsx("span",{className:"settings-search-filter-chip-label",children:e.label}),
         P.jsx("span",{className:"settings-search-filter-chip-close","aria-hidden":true,children:"×"})]},e.id)),T?P.jsx("span",{className:"settings-search-filter-chip-overflow",children:D}):null,
         P.jsx("button",{type:"button",className:"settings-search-filter-chip-clear-all",onClick:L,children:A})]}):null,N?P.jsx("div",{className:"settings-search-syntax-suggestions",role:"listbox",children:M.map((e,t)=>P.jsxs("button",{type:"button",role:"option","aria-selected":I===t,className:"settings-search-syntax-suggestion "+(I===t?"active":""),onMouseEnter:()=>j(t),onClick:()=>R(e),children:[
         P.jsx("span",{className:"settings-search-syntax-suggestion-token",children:e.label}),
         P.jsx("span",{className:"settings-search-syntax-suggestion-desc",children:e.description})]},e.id))}):null,F.length>0?P.jsx("div",{className:"settings-search-syntax-diagnostics",role:"status","aria-live":"polite",children:F.map(e=>P.jsxs("div",{className:"settings-search-syntax-diagnostic",children:[
         P.jsx("span",{className:"settings-search-syntax-diagnostic-title",children:z(e.code)}),
         P.jsxs("span",{className:"settings-search-syntax-diagnostic-detail",children:[e.operator,e.value?`:${e.value}`:"",e.suggestion?` → ${e.suggestion}:`:""]})]},e.id))}):null,O&&B?P.jsxs("div",{className:"settings-search-shortcut-nudge",role:"status","aria-live":"polite",children:[
         P.jsx("span",{className:"settings-search-shortcut-nudge-text",children:B}),
         P.jsx("button",{type:"button",className:"settings-search-shortcut-nudge-action",onClick:H,children:q}),
         P.jsx("button",{type:"button",className:"settings-search-shortcut-nudge-action",onClick:W,children:U})]}):null,
         P.jsx("div",{className:"settings-search-categories",role:"tablist","aria-label":K,children:V.map(e=>P.jsxs("button",{type:"button",role:"tab","aria-selected":G===e.id,className:"settings-search-category "+(G===e.id?"active":""),onClick:()=>Q(e.id),children:[
         P.jsx("span",{children:e.label}),
         P.jsx("span",{className:"settings-search-category-count",children:e.count})]},e.id))}),Z?P.jsxs("div",{className:"settings-search-context-bar",children:[
         P.jsx("span",{className:"settings-search-context-label",children:Z.label}),
         P.jsx("span",{className:"settings-search-context-meta",children:Z.meta})]}):null,
         P.jsx("div",{id:J,className:"settings-search-results",role:"listbox","aria-label":$,ref:o,onWheel:X,children:0===Y.length?P.jsxs("div",{className:"settings-search-empty",children:[
         P.jsx("div",{children:oe}),
         P.jsx("div",{className:"settings-search-empty-guide-title",children:ae}),
         P.jsx("div",{className:"settings-search-empty-guide-desc",children:ie}),
         P.jsx("div",{className:"settings-search-empty-guide-examples",children:se.map(e=>P.jsx("button",{type:"button",className:"settings-search-empty-guide-example",onClick:e.onClick,children:e.token},e.id))})]}):re?ee.map(e=>P.jsxs("section",{className:"settings-search-group",children:[
         P.jsxs("div",{className:"settings-search-group-title",children:[
         P.jsx("span",{children:te(e.category)}),e.totalCount>ne?P.jsxs("span",{className:"settings-search-group-count",children:[e.items.length,"/",e.totalCount]}):null]}),e.items.map((e,t)=>le(e,ce(e,t))),e.hasMore||e.isExpanded?P.jsx("button",{type:"button",className:"settings-search-group-more",onClick:()=>he(e.category),children:e.isExpanded?de:`${ue} (+${e.remainingCount})`}):null]},e.category)):Y.map((e,t)=>le(e,t))}),
         P.jsx("div",{className:"settings-search-footer",children:ge})]}),pe]}):null},oh=(e,t,n)=>{if(!e)return [];const r=((e,t)=>{if(!e||0===t.length)return [];const n=e.toLowerCase(),r=[];if(t.forEach(e=>{if(!e)return;let t=0;for(;t<n.length;){const o=n.indexOf(e,t);if(o<0)break;r.push({start:o,end:o+e.length}),t=o+e.length;}}),0===r.length)return [];r.sort((e,t)=>e.start!==t.start?e.start-t.start:e.end-t.end);const o=[];return r.forEach(e=>{const t=o[o.length-1];!t||e.start>t.end?o.push({...e}):e.end>t.end&&(t.end=e.end);}),o})(e,t),o=((e,t)=>{if(!e||!t||0===t.length)return [];const n=Array.from(new Set(t.map(e=>Number(e)).filter(t=>Number.isInteger(t)&&t>=0&&t<e.length))).sort((e,t)=>e-t);if(0===n.length)return [];const r=[];let o=n[0],a=n[0];for(let i=1;i<n.length;i+=1){const e=n[i];e!==a+1?(r.push({start:o,end:a+1}),o=e,a=e):a=e;}return r.push({start:o,end:a+1}),r})(e,n);if(0===r.length&&0===o.length)return [{text:e,matchType:"none"}];const a=new Array(e.length).fill("none");o.forEach(e=>{for(let t=e.start;t<e.end;t+=1)a[t]="fuzzy";}),r.forEach(e=>{for(let t=e.start;t<e.end;t+=1)a[t]="exact";});const i=[];let s=0,l=a[0]||"none";for(let c=1;c<=e.length;c+=1){const t=c<e.length?a[c]:null;t!==l&&(i.push({text:e.slice(s,c),matchType:l}),s=c,l=t||"none");}return i.filter(e=>e.text.length>0)},ah=({item:e,index:t,optionIdPrefix:n,isActive:r,highlightTokens:o,outlineRoleLabels:a,matchReasonLabels:i,onMouseMove:s,onMouseEnter:l,onMouseLeave:c,onClick:d})=>{const u=(e,t="default",n)=>oh(e,o,n).map((e,n)=>{if("none"===e.matchType)
         return P.jsx(h.Fragment,{children:e.text},`plain-${n}-${e.text.length}`);const r=["settings-search-highlight","tag"===t?"settings-search-highlight-tag":"","code"===t?"settings-search-highlight-code":"","fuzzy"===e.matchType?"settings-search-highlight-fuzzy":""].filter(Boolean).join(" ");
         return P.jsx("mark",{className:r,children:e.text},`highlight-${n}-${e.text.length}`)}),g="outline"===e.category&&Boolean(e.outlineTarget),p="conversations"===e.category,m="prompts"===e.category,f=g&&Boolean(e.outlineTarget?.isUserQuery),b=f?a.query:a.reply,y=Boolean(e.code)&&!g,v=e.fuzzyMatch?.field,x="title"===v?e.fuzzyMatch?.indexes:void 0,S="breadcrumb"===v?e.fuzzyMatch?.indexes:void 0,w="snippet"===v?e.fuzzyMatch?.indexes:void 0,k="code"===v?e.fuzzyMatch?.indexes:void 0,C="prompts"===e.category&&e.matchReasons?.includes("content")?`${i.content}: `:"",T=e.matchReasons&&e.matchReasons.length>0?e.matchReasons.map(e=>({reason:e,label:i[e]})):[];
         return P.jsxs("div",{id:`${n}-${t}`,role:"option","aria-selected":r,tabIndex:-1,"data-global-search-index":t,"data-global-search-item-id":e.id,className:`settings-search-item ${r?"active":""} ${g?f?"outline-item outline-query":"outline-item outline-reply":""} ${p?"conversation-item":""}`.trim(),onMouseMove:s,onMouseEnter:e=>{m&&l(e);},onMouseLeave:()=>{m&&c();},onClick:d,children:[
         P.jsx("div",{className:"settings-search-item-title",title:e.title,children:g?P.jsxs("div",{className:"settings-search-outline-head",children:[
         P.jsx("span",{className:"settings-search-outline-role "+(f?"query":"reply"),title:b,children:b}),e.code?P.jsx("span",{className:"settings-search-outline-code",title:e.code,children:u(e.code,"code",k)}):null,
         P.jsx("span",{className:"settings-search-item-title-text",children:u(e.title,"default",x)})]}):P.jsx("span",{className:"settings-search-item-title-text",children:u(e.title,"default",x)})}),e.snippet?P.jsxs("div",{className:"settings-search-item-snippet",title:`${C}${e.snippet}`,children:[C?P.jsx("span",{className:"settings-search-item-snippet-prefix",children:C}):null,u(e.snippet,"default",w)]}):null,
         P.jsxs("div",{className:("settings-search-item-meta "+(y?"":"no-code")).trim(),children:[
         P.jsxs("div",{className:"settings-search-item-meta-left",children:[
         P.jsx("span",{className:"settings-search-item-breadcrumb",title:e.breadcrumb,children:u(e.breadcrumb,"default",S)}),"conversations"===e.category&&e.tagBadges&&e.tagBadges.length>0?P.jsx("div",{className:"settings-search-tag-list",children:e.tagBadges.map(e=>P.jsx("span",{className:"settings-search-tag",style:{backgroundColor:e.color},title:e.name,children:u(e.name,"tag")},e.id))}):null,T.length>0?P.jsx("div",{className:"settings-search-match-reason-list",children:T.map(e=>P.jsx("span",{className:"settings-search-match-reason-badge",children:e.label},e.reason))}):null]}),y?P.jsx("code",{title:e.code,children:u(e.code,"code",k)}):null]})]})},ih=["type","folder","tag","is","level","date"],sh=["outline","conversations","prompts","settings"],lh=["pinned","unpinned"],ch=["0","1","2","3","4","5","6"],dh=["7d","30d"],uh=e=>e.trim().toLowerCase(),hh=e=>uh(e).split(" ").map(e=>e.trim()).filter(e=>e.length>0),gh=e=>e?e.replace(/^"|"$/g,"").replace(/\\([\\"\s:])/g,"$1").trim():"",ph=e=>{const t=e.trim().toLowerCase().match(/^(\d{1,3})d$/);if(!t)return null;const n=Number(t[1]);return !Number.isFinite(n)||n<=0?null:n},mh=(e,t)=>{const n=e.normalizedValue;return "type"===e.key?t.some(e=>"type"===e.key&&e.normalizedValue!==n):"is"===e.key?t.some(e=>"is"===e.key&&e.normalizedValue!==n):"level"===e.key?t.some(e=>"level"===e.key&&e.normalizedValue!==n):"date"===e.key&&t.some(e=>"date"===e.key&&e.normalizedValue!==n)},fh=(e,t)=>!!t&&("type"===e?sh.includes(t):"is"===e?lh.includes(t):"level"===e?ch.includes(t):"date"!==e||null!==ph(t)),bh=e=>"type"===e?"outline | conversations | prompts | settings":"is"===e?"pinned | unpinned":"level"===e?"0 ~ 6":"date"===e?"Nd (e.g. 7d, 30d)":void 0,yh=(e,t,n)=>`${e}:${t}:${n}`,vh=e=>{const t=e.trim().toLowerCase();if(!t)return null;const n=ih.find(e=>e.startsWith(t));if(n)return n;const r=ih.find(e=>t.startsWith(e));return r||null},xh=e=>{const t=e.match(/(^|\s)([^\s]*)$/);if(!t)return null;const n=t[2]||"",r=e.length;return {token:n,start:r-n.length,end:r}},Sh=globalThis.fuzzysort,wh=Sh&&"function"==typeof Sh.single?Sh:{single:()=>null,go:()=>[],prepare:e=>e,cleanup:()=>{}},kh=["outline","conversations","prompts","settings"],Ch=Object.entries(dt).reduce((e,[t,n])=>(e[n]||(e[n]=[]),e[n].push(t),e),{}),Th=({normalizedQuery:e,fields:t})=>{if(!e)return null;let n=null;const r=e.length>=8?2:1;return t.forEach(t=>{if(!t.value)return;const r=wh.single(e,t.value);!r||r.score<.24||(!n||r.score>n.score)&&(n={score:r.score,matchReason:t.matchReason,highlightField:t.highlightField,indexes:Array.from(r.indexes||[]),isTypoFallback:false});}),n||(e.length<4?null:(t.forEach(t=>{if(!t.value)return;var o;((o=t.value)?o.split(/[^a-z0-9\u4e00-\u9fff]+/gi).map(e=>e.trim()).filter(e=>e.length>0):[]).forEach(o=>{if(Math.abs(o.length-e.length)>r)return;const a=((e,t,n)=>{const r=e.length,o=t.length;if(e===t)return 0;if(Math.abs(r-o)>n)return n+1;const a=new Array(o+1).fill(0),i=new Array(o+1),s=new Array(o+1);for(let l=0;l<=o;l+=1)i[l]=l;for(let l=1;l<=r;l+=1){s[0]=l;let r=s[0];for(let n=1;n<=o;n+=1){const o=e[l-1]===t[n-1]?0:1;let c=Math.min(i[n]+1,s[n-1]+1,i[n-1]+o);l>1&&n>1&&e[l-1]===t[n-2]&&e[l-2]===t[n-1]&&(c=Math.min(c,a[n-2]+1)),s[n]=c,c<r&&(r=c);}if(r>n)return n+1;for(let e=0;e<=o;e+=1)a[e]=i[e],i[e]=s[e];}return i[o]})(e,o,r);if(a>r)return;const i=Math.max(.24,.58-.14*a-.03*Math.abs(o.length-e.length));(!n||i>n.score)&&(n={score:i,matchReason:t.matchReason,highlightField:t.highlightField,indexes:void 0,isTypoFallback:true});});}),n))},Dh=({normalizedQuery:e,tokens:t,index:n,fields:r,enableFuzzySearch:o,baseScoreWhenEmpty:a=1e3})=>{const i=r.map(e=>e.value).join(" "),s=t.every(e=>i.includes(e)),l=o&&e?Th({normalizedQuery:e,fields:r}):null;if(!s&&!l)return null;if(!e)return {score:a-n,matchLevel:0,exactHitCount:0,prefixHitCount:0,includesHitCount:0,matchReasons:[]};let c=0,d=0,u=0,h=0,g=0;const p=new Set;r.forEach(n=>{const r=n.value;if(!r)return;let o=0,a=false,i=false;r===e?(c+=n.exact,o=3,u+=1):r.startsWith(e)?(c+=n.prefix,o=2,h+=1):r.includes(e)&&(c+=n.includes,o=1,g+=1),d=Math.max(d,o),o>0&&n.matchReason&&p.add(n.matchReason),t.forEach(e=>{r.startsWith(e)&&(c+=n.tokenPrefix,a=true),r.includes(e)&&(c+=n.tokenIncludes,i=true);}),0===o?a?(d=Math.max(d,2),h+=1,n.matchReason&&p.add(n.matchReason)):i&&(d=Math.max(d,1),g+=1,n.matchReason&&p.add(n.matchReason)):d=Math.max(d,o);});const m=Boolean(l&&0===d);if(m&&l){const e=Math.round(64*l.score);c+=e+16,p.add("fuzzy"),l.matchReason&&p.add(l.matchReason);}return 0!==d||l?{score:c,matchLevel:d,exactHitCount:u,prefixHitCount:h,includesHitCount:g,matchReasons:Array.from(p),fuzzyMatch:m?{field:l?.highlightField,indexes:l?.indexes,isTypoFallback:l?.isTypoFallback}:void 0}:null},Eh=(e,t)=>{if(t.scoreMeta.matchLevel!==e.scoreMeta.matchLevel)return t.scoreMeta.matchLevel-e.scoreMeta.matchLevel;if(t.scoreMeta.exactHitCount!==e.scoreMeta.exactHitCount)return t.scoreMeta.exactHitCount-e.scoreMeta.exactHitCount;if(t.scoreMeta.prefixHitCount!==e.scoreMeta.prefixHitCount)return t.scoreMeta.prefixHitCount-e.scoreMeta.prefixHitCount;if(t.scoreMeta.includesHitCount!==e.scoreMeta.includesHitCount)return t.scoreMeta.includesHitCount-e.scoreMeta.includesHitCount;if(t.scoreMeta.score!==e.scoreMeta.score)return t.scoreMeta.score-e.scoreMeta.score;const n=e.recency||0,r=t.recency||0;return r!==n?r-n:e.index-t.index},Ah=({activeGlobalSearchPlainQuery:e,enableFuzzySearch:t,activeGlobalSearchSyntaxFilters:n,settingsSearchResults:r,resolveSettingSearchTitle:o,getSettingsBreadcrumb:a,conversationManager:i,conversationsSnapshot:s,foldersSnapshot:l,tagsSnapshot:c,promptsSnapshot:d,outlineManager:h,outlineSearchVersion:g,getLocalizedText:p,activeGlobalSearchCategory:m,expandedGlobalSearchCategories:f,allCategoryItemLimit:b})=>{const y=u.useMemo(()=>{const n=uh(e),i=hh(e);return r.map((e,r)=>{const s=o(e),l=uh(s),c=uh((e.keywords||[]).join(" ")),d=uh(e.settingId),u=uh((Ch[e.settingId]||[]).join(" ")),h=Dh({normalizedQuery:n,tokens:i,index:r,enableFuzzySearch:t,fields:[{value:l,exact:220,prefix:140,includes:100,tokenPrefix:24,tokenIncludes:12,matchReason:"title",highlightField:"title"},{value:c,exact:0,prefix:0,includes:68,tokenPrefix:0,tokenIncludes:8,matchReason:"keyword"},{value:d,exact:0,prefix:0,includes:48,tokenPrefix:0,tokenIncludes:6,matchReason:"id",highlightField:"code"},{value:u,exact:0,prefix:0,includes:44,tokenPrefix:0,tokenIncludes:6,matchReason:"alias"}]});return null===h?null:{item:{id:`settings:${e.settingId}`,title:s,breadcrumb:a(e.settingId),code:e.settingId,category:"settings",settingId:e.settingId,matchReasons:h.matchReasons,fuzzyMatch:h.fuzzyMatch},scoreMeta:h,index:r}}).filter(e=>Boolean(e)).sort(Eh).map(({item:e})=>e)},[e,t,a,o,r]),v=u.useMemo(()=>{if(!i)return [];const n=i.getConversations(),r=i.getFolders(),o=i.getTags(),a=new Map(r.map(e=>[e.id,e])),s=new Map(o.map(e=>[e.id,e])),l=uh(e),c=hh(e),d=p({key:"untitledConversation",fallback:"Untitled conversation"});return n.map((e,n)=>{const r=e.title?.trim()||d,o=a.get(e.folderId),i=o?`${o.icon?`${o.icon} `:""}${(e=>{const t=(e.name||"").trim(),n=(e.icon||"").trim();return n&&t.startsWith(n)?t.slice(n.length).trim():t})(o)}`.trim():e.folderId,u=(e.tagIds||[]).map(e=>{const t=s.get(e);return t?{id:t.id,name:t.name,color:t.color}:null}).filter(e=>Boolean(e)),h=uh(r),g=uh(i),p=uh(u.map(e=>e.name).join(" ")),m=Dh({normalizedQuery:l,tokens:c,index:n,enableFuzzySearch:t,fields:[{value:h,exact:220,prefix:140,includes:100,tokenPrefix:24,tokenIncludes:12,matchReason:"title",highlightField:"title"},{value:g,exact:0,prefix:0,includes:72,tokenPrefix:0,tokenIncludes:8,matchReason:"folder",highlightField:"breadcrumb"},{value:p,exact:0,prefix:0,includes:64,tokenPrefix:0,tokenIncludes:8,matchReason:"tag"}]});if(null===m)return null;const f={...m,score:m.score+(e.pinned?6:0)};return {item:{id:`conversations:${e.id}`,title:r,breadcrumb:i,category:"conversations",conversationId:e.id,conversationUrl:e.url,tagBadges:u,folderName:i,tagNames:u.map(e=>e.name),isPinned:Boolean(e.pinned),searchTimestamp:e.updatedAt||0,matchReasons:f.matchReasons,fuzzyMatch:f.fuzzyMatch},scoreMeta:f,index:n,recency:e.updatedAt||0}}).filter(e=>Boolean(e)).sort(Eh).map(({item:e})=>e)},[i,s,l,c,p,e,t]),x=u.useMemo(()=>{const n=uh(e),r=hh(e),o=p({key:"globalSearchCategoryPrompts",fallback:"Prompts"}),a=p({key:"uncategorized",fallback:"Uncategorized"}),i=d.map((e,i)=>{const s=e.title?.trim()||e.content?.trim().split("\n")[0]||`${o} #${i+1}`,l=e.content?.trim()||"",c=e.category?.trim()||a,d=`${o} / ${c}`,u=uh(s),h=uh(l),g=uh(c),p=uh(e.id),m=Dh({normalizedQuery:n,tokens:r,index:i,enableFuzzySearch:t,fields:[{value:u,exact:220,prefix:140,includes:100,tokenPrefix:24,tokenIncludes:12,matchReason:"title",highlightField:"title"},{value:g,exact:0,prefix:0,includes:70,tokenPrefix:0,tokenIncludes:8,matchReason:"category",highlightField:"breadcrumb"},{value:h,exact:0,prefix:0,includes:60,tokenPrefix:0,tokenIncludes:6,matchReason:"content",highlightField:"snippet"},{value:p,exact:0,prefix:0,includes:20,tokenPrefix:0,tokenIncludes:4,matchReason:"id",highlightField:"code"}]});if(null===m)return null;const f={...m,score:m.score+(e.pinned?6:0)},b=f.matchReasons.includes("content")?(({content:e,normalizedQuery:t,tokens:n,maxLength:r=84})=>{const o=e.replace(/\s+/g," ").trim();if(!o)return "";const a=Array.from(new Set([t,...n])).filter(Boolean),i=o.toLowerCase();let s=-1;if(a.forEach(e=>{const t=i.indexOf(e);-1!==t&&(-1===s||t<s)&&(s=t);}),s<0)return o.length>r?`${o.slice(0,r).trim()}…`:o;let l=Math.max(0,s-Math.floor(.25*r));const c=Math.min(o.length,l+r);return c>=o.length&&(l=Math.max(0,o.length-r)),`${l>0?"…":""}${o.slice(l,c).trim()}${c<o.length?"…":""}`})({content:l,normalizedQuery:n,tokens:r}):"";return {item:{id:`prompts:${e.id}`,title:s,breadcrumb:d,snippet:b,category:"prompts",promptId:e.id,promptContent:e.content,folderName:c,isPinned:Boolean(e.pinned),searchTimestamp:e.lastUsedAt||0,matchReasons:f.matchReasons,fuzzyMatch:f.fuzzyMatch},scoreMeta:f,index:i,recency:e.lastUsedAt||0}}).filter(e=>Boolean(e)).sort(Eh);return i.map(({item:e})=>e)},[e,t,p,d]),S=u.useMemo(()=>{if(!h)return [];const n=(e=>{const t=[],n=e=>{e.forEach(e=>{t.push(e),e.children&&e.children.length>0&&n(e.children);});};return n(e),t})(h.getTree()),r=uh(e),o=hh(e),a=p({key:"globalSearchCategoryOutline",fallback:"Outline"}),i=p({key:"outlineOnlyUserQueries",fallback:"Queries"}),s=p({key:"globalSearchOutlineReplies",fallback:"Replies"});return n.map((e,n)=>{const l=e.text?.trim();if(!l)return null;const c=e.isUserQuery?`Q${e.queryIndex??n+1}`:`H${e.level}`,d=e.isUserQuery?i:s,u=e.isUserQuery?`${a} / ${d}`:`${a} / ${d} / H${e.level}`,h=uh(l),g=uh(e.isUserQuery?d:`${d} h${e.level}`),p=uh(c),m=Dh({normalizedQuery:r,tokens:o,index:n,enableFuzzySearch:t,fields:[{value:h,exact:200,prefix:120,includes:90,tokenPrefix:16,tokenIncludes:10,matchReason:"title",highlightField:"title"},{value:g,exact:0,prefix:0,includes:48,tokenPrefix:0,tokenIncludes:6,matchReason:"type",highlightField:"breadcrumb"},{value:p,exact:0,prefix:0,includes:36,tokenPrefix:0,tokenIncludes:4,matchReason:"code",highlightField:"code"}]});if(null===m)return null;const f={...m,score:m.score+(e.isBookmarked?4:0)};return {item:{id:`outline:${e.index}`,title:l,breadcrumb:u,code:c,category:"outline",matchReasons:f.matchReasons,fuzzyMatch:f.fuzzyMatch,outlineTarget:{index:e.index,level:e.level,text:l,isUserQuery:Boolean(e.isUserQuery),queryIndex:e.queryIndex,isGhost:Boolean(e.isGhost),scrollTop:e.scrollTop}},scoreMeta:f,index:n}}).filter(e=>Boolean(e)).sort(Eh).map(({item:e})=>e)},[e,t,h,p,g]),w=u.useMemo(()=>[...y,...v,...S,...x],[v,S,x,y]),k=u.useMemo(()=>w.filter(e=>((e,t)=>0===t.length||t.every(t=>{const n=t.normalizedValue;if("type"===t.key)return e.category.toLowerCase().includes(n);if("folder"===t.key)return (e.folderName||e.breadcrumb||"").toLowerCase().includes(n);if("tag"===t.key)return (e.tagNames||e.tagBadges?.map(e=>e.name)||[]).some(e=>e.toLowerCase().includes(n));if("is"===t.key)return "pinned"===n?Boolean(e.isPinned):"unpinned"===n&&!e.isPinned;if("level"===t.key)return "outline"===e.category&&String(e.outlineTarget?.level??"")===n;if("date"===t.key){if("conversations"!==e.category&&"prompts"!==e.category)return  false;const t=ph(n);if(null===t)return  false;const r=e.searchTimestamp||0;return !(r<=0)&&Date.now()-r<=864e5*t}return  true}))(e,n)),[n,w]),C=u.useMemo(()=>{const e={all:0,outline:0,conversations:0,prompts:0,settings:0};return k.forEach(t=>{e[t.category]+=1,e.all+=1;}),e},[k]),T=u.useMemo(()=>"all"!==m?[]:kh.map(e=>{const t=k.filter(t=>t.category===e),n=Boolean(f[e]),r=n?t.length:b,o=t.slice(0,r),a=Math.max(0,t.length-o.length);return {category:e,items:o,totalCount:t.length,hasMore:a>0,isExpanded:n,remainingCount:a}}).filter(e=>e.items.length>0),[m,b,f,k]),D=u.useMemo(()=>"all"!==m?k.filter(e=>e.category===m):T.flatMap(e=>e.items),[m,k,T]);return {filteredGlobalSearchResults:k,globalSearchResultCounts:C,groupedGlobalSearchResults:T,visibleGlobalSearchResults:D}},_h={[Ue]:{key:"navGeneral",fallback:"General"},[We]:{key:"navFeatures",fallback:"Features"},[Ke]:{key:"navSiteSettings",fallback:"Site Config"},[Ve]:{key:"navGlobalSearch",fallback:"Global Search"},[He]:{key:"navAppearance",fallback:"Appearance"},[Ge]:{key:"navShortcuts",fallback:"Keyboard Shortcuts"},[Qe]:{key:"navBackup",fallback:"Data Management"},[Ze]:{key:"navPermissions",fallback:"Permissions"},[Je]:{key:"navAbout",fallback:"About"}},Lh={panel:{key:"panelTab",fallback:"Panel"},tabOrder:{key:"tabOrderTab",fallback:"Tab Order"},shortcuts:{key:"shortcutsTab",fallback:"Quick Buttons"},toolsMenu:{key:"toolboxMenu",fallback:"Toolbox"},[et]:{key:"tabSettingsTab",fallback:"Tab Settings"},[$e]:{key:"outlineSettingsTitle",fallback:"Outline"},[Xe]:{key:"conversationsSettingsTitle",fallback:"Conversations"},[Ye]:{key:"promptSettingsTitle",fallback:"Prompts"},[nt]:{key:"readingHistorySettings",fallback:"Reading History"},[tt]:{key:"contentProcessing",fallback:"Content"},[rt]:{key:"toolboxMenu",fallback:"Toolbox"},[it]:{key:"layoutTab",fallback:"Layout"},[st]:{key:"tabModelLock",fallback:"Model Lock"},gemini:{key:"geminiSettingsTab",fallback:"Gemini"},aistudio:{key:"aistudioSettingsTitle",fallback:"AI Studio"},chatgpt:{key:"chatgptSettingsTitle",fallback:"ChatGPT"},claude:{key:"claudeSettingsTab",fallback:"Claude"},[ot]:{key:"themePresetsTab",fallback:"Theme Presets"},[at]:{key:"customStylesTab",fallback:"Custom Styles"}},Ph=[{id:"all",label:{key:"globalSearchCategoryAll",fallback:"All"},placeholder:{key:"globalSearchPlaceholderAll",fallback:"Search all"},emptyText:{key:"globalSearchEmptyAll",fallback:"No matching results"}},{id:"outline",label:{key:"globalSearchCategoryOutline",fallback:"Outline"},placeholder:{key:"globalSearchPlaceholderOutline",fallback:"Search outline"},emptyText:{key:"globalSearchEmptyOutline",fallback:"No outline results"}},{id:"conversations",label:{key:"globalSearchCategoryConversations",fallback:"Conversations"},placeholder:{key:"globalSearchPlaceholderConversations",fallback:"Search conversations on current site"},emptyText:{key:"globalSearchEmptyConversations",fallback:"No conversation results"}},{id:"prompts",label:{key:"globalSearchCategoryPrompts",fallback:"Prompts"},placeholder:{key:"globalSearchPlaceholderPrompts",fallback:"Search prompts"},emptyText:{key:"globalSearchEmptyPrompts",fallback:"No prompt results"}},{id:"settings",label:{key:"globalSearchCategorySettings",fallback:"Settings"},placeholder:{key:"globalSearchPlaceholderSettings",fallback:"Search settings"},emptyText:{key:"globalSearchEmptySettings",fallback:"No matching settings"}}],Nh={outline:{key:"globalSearchCategoryOutline",fallback:"Outline"},settings:{key:"globalSearchCategorySettings",fallback:"Settings"},conversations:{key:"globalSearchCategoryConversations",fallback:"Conversations"},prompts:{key:"globalSearchCategoryPrompts",fallback:"Prompts"}},Mh={title:{key:"globalSearchMatchReasonTitle",fallback:"Title match"},folder:{key:"globalSearchMatchReasonFolder",fallback:"Folder match"},tag:{key:"globalSearchMatchReasonTag",fallback:"Tag match"},type:{key:"globalSearchMatchReasonType",fallback:"Type match"},code:{key:"globalSearchMatchReasonCode",fallback:"Code match"},category:{key:"globalSearchMatchReasonCategory",fallback:"Category match"},content:{key:"globalSearchMatchReasonContent",fallback:"Content match"},id:{key:"globalSearchMatchReasonId",fallback:"ID match"},keyword:{key:"globalSearchMatchReasonKeyword",fallback:"Keyword match"},alias:{key:"globalSearchMatchReasonAlias",fallback:"Alias match"},fuzzy:{key:"globalSearchMatchReasonFuzzy",fallback:"Fuzzy match"}},Ih="settings-search-option",jh="ophel:global-search-shortcut-nudge:v1",Rh={"aistudio-collapse-advanced":"aistudioCollapseAdvanced","aistudio-collapse-navbar":"aistudioCollapseNavbar","aistudio-collapse-run-settings":"aistudioCollapseRunSettings","aistudio-collapse-tools":"aistudioCollapseTools","aistudio-enable-search":"aistudioEnableSearch","aistudio-markdown-fix":"aistudioMarkdownFixLabel","aistudio-remove-watermark":"aistudioRemoveWatermark","appearance-custom-styles":"customCSS","appearance-preset-dark":"darkModePreset","appearance-preset-light":"lightModePreset","chatgpt-markdown-fix":"chatgptMarkdownFixLabel","global-search-fuzzy-search":"globalSearchEnableFuzzySearchLabel","global-search-prompt-enter-behavior":"globalSearchPromptEnterBehaviorLabel","claude-session-keys":"claudeSessionKeyTitle","content-formula-copy":"formulaCopyLabel","content-formula-delimiter":"formulaDelimiterLabel","content-table-copy":"tableCopyLabel","content-user-query-markdown":"userQueryMarkdownLabel","conversation-folder-rainbow":"folderRainbowLabel","conversation-sync-unpin":"conversationsSyncUnpinLabel","export-custom-model-name":"exportCustomModelName","export-custom-user-name":"exportCustomUserName","export-filename-timestamp":"exportFilenameTimestamp","export-include-thoughts":"exportIncludeThoughtsLabel","export-images-base64":"exportImagesToBase64Label","gemini-markdown-fix":"markdownFixLabel","gemini-policy-max-retries":"maxRetriesLabel","gemini-policy-retry":"policyRetryLabel","gemini-watermark-removal":"watermarkRemovalLabel","layout-page-width-enabled":"enablePageWidth","layout-page-width-value":"pageWidthValueLabel","layout-user-query-width-enabled":"enableUserQueryWidth","layout-user-query-width-value":"userQueryWidthValueLabel","layout-zen-mode-enabled":"zenModeTitle","outline-auto-update":"outlineAutoUpdateLabel","outline-follow-mode":"outlineFollowModeLabel","outline-inline-bookmark-mode":"inlineBookmarkModeLabel","outline-panel-bookmark-mode":"panelBookmarkModeLabel","outline-prevent-auto-scroll":"preventAutoScrollLabel","outline-show-word-count":"outlineShowWordCountLabel","outline-update-interval":"outlineUpdateIntervalLabel","panel-auto-hide":"autoHidePanelLabel","panel-default-open":"defaultPanelStateLabel","panel-default-position":"defaultPositionLabel","panel-edge-distance":"defaultEdgeDistanceLabel","panel-edge-snap":"edgeSnapHideLabel","panel-edge-snap-threshold":"edgeSnapThresholdLabel","panel-height":"panelHeightLabel","panel-width":"panelWidthLabel","prompt-double-click-send":"promptDoubleClickSendLabel","prompt-queue":"queueSettingLabel","quick-buttons-opacity":"quickButtonsOpacityLabel","reading-history-auto-restore":"readingHistoryAutoRestoreLabel","reading-history-cleanup-days":"readingHistoryCleanup","reading-history-persistence":"readingHistoryPersistenceLabel","tab-auto-focus":"autoFocusLabel","tab-auto-rename":"autoRenameTabLabel","tab-notification-sound":"notificationSoundLabel","tab-notification-volume":"notificationVolumeLabel","tab-notify-when-focused":"notifyWhenFocusedLabel","tab-open-new":"openNewTabLabel","tab-privacy-mode":"privacyModeLabel","tab-privacy-title":"privacyTitleLabel","tab-rename-interval":"renameIntervalLabel","tab-show-notification":"showNotificationLabel","tab-show-status":"showStatusLabel","tab-title-format":"titleFormatLabel","tools-menu-export":"export","tools-menu-copyMarkdown":"exportToClipboard","tools-menu-move":"conversationsMoveTo","tools-menu-setTag":"conversationsSetTag","tools-menu-scrollLock":"shortcutToggleScrollLock","tools-menu-modelLock":"modelLockTitle","tools-menu-cleanup":"cleanup","tools-menu-settings":"tabSettings"},Fh={gemini:{key:"globalSearchSiteGemini",fallback:"Gemini"},"gemini-enterprise":{key:"globalSearchSiteGeminiEnterprise",fallback:"Gemini Enterprise"},aistudio:{key:"globalSearchSiteAIStudio",fallback:"AI Studio"},chatgpt:{key:"globalSearchSiteChatGPT",fallback:"ChatGPT"},claude:{key:"globalSearchSiteClaude",fallback:"Claude"},grok:{key:"globalSearchSiteGrok",fallback:"Grok"}},zh=e=>e.replace(/[-_]/g," ").replace(/\s+/g," ").trim().replace(/\b([a-z])/g,(e,t)=>t.toUpperCase()),Oh=()=>{const{settings:e,setSettings:t,updateDeepSetting:n}=wr(),r=kr(),o=e?.features?.prompts?.submitShortcut??"enter";wr(e=>e._syncVersion);const[a,i]=u.useState(0),s=u.useCallback(e=>{const t=En(e.key);return t===e.key?e.fallback:t},[a]),l=u.useCallback((e,t)=>{let n=s(e);return Object.keys(t).forEach(e=>{n=n.replace(new RegExp(`{${e}}`,"g"),t[e]);}),n},[s]),c=u.useMemo(()=>(()=>{if("undefined"==typeof navigator)return  false;const e=navigator.platform?.toLowerCase?.()||"",t=navigator.userAgent?.toLowerCase?.()||"";return e.includes("mac")||t.includes("mac os")})(),[])?"⌘K":"Ctrl+K",d=`${c} / double shift`,h=e?.globalSearch?.enableFuzzySearch??dr.globalSearch.enableFuzzySearch,g=u.useMemo(()=>l({key:"globalSearchShortcutNudge",fallback:"下次可按 {shortcut} 快速打开"},{shortcut:d}),[l,d]),p=u.useCallback(()=>{if("undefined"==typeof window)return {shownCount:0,lastShownAt:0,dismissed:false,shortcutUsedCount:0};try{const e=window.localStorage.getItem(jh);if(!e)return {shownCount:0,lastShownAt:0,dismissed:!1,shortcutUsedCount:0};const t=JSON.parse(e);return {shownCount:Number.isFinite(t.shownCount)?Math.max(0,Number(t.shownCount)):0,lastShownAt:Number.isFinite(t.lastShownAt)?Math.max(0,Number(t.lastShownAt)):0,dismissed:Boolean(t.dismissed),shortcutUsedCount:Number.isFinite(t.shortcutUsedCount)?Math.max(0,Number(t.shortcutUsedCount)):0}}catch{return {shownCount:0,lastShownAt:0,dismissed:false,shortcutUsedCount:0}}},[]),m=u.useCallback(e=>{if("undefined"!=typeof window)try{window.localStorage.setItem(jh,JSON.stringify(e));}catch{}},[]),f=u.useCallback(()=>{xe.current&&(clearTimeout(xe.current),xe.current=null);},[]),b=u.useCallback(e=>{e.stopPropagation();const t=e.target.closest(".gh-code-copy-btn");if(!t)return;const n=t.nextElementSibling?.textContent||"";n&&(navigator.clipboard?.writeText?navigator.clipboard.writeText(n).then(()=>{ra(t,{size:14});}).catch(()=>{Yr(s({key:"copyFailed",fallback:"Copy failed"}));}):Yr(s({key:"copyFailed",fallback:"Copy failed"})));},[s]),y=u.useCallback(()=>{ye.current&&(clearTimeout(ye.current),ye.current=null);},[]),v=u.useCallback(e=>{y(),Q(e),J(e);},[y]),x=u.useCallback(()=>{t({globalSearch:{...dr.globalSearch,...e?.globalSearch||{},enableFuzzySearch:!h}});},[h,t,e?.globalSearch]),S=u.useCallback(e=>{Q(e),y(),ye.current=setTimeout(()=>{J(e),ye.current=null;},140);},[y]),w=u.useCallback(()=>{f(),ie(false),le("");},[f]),k=u.useCallback(()=>{const e=p();m({...e,dismissed:true}),w();},[p,w,m]),C=u.useCallback(()=>{const e=p(),t=e.shortcutUsedCount+1;m({...e,shortcutUsedCount:t,dismissed:e.dismissed||t>=2}),w();},[p,w,m]),T=u.useCallback(()=>{const e=p();if(e.dismissed)return;if(e.shortcutUsedCount>=2)return void m({...e,dismissed:true});if(e.shownCount>=3)return;const t=Date.now();e.lastShownAt>0&&t-e.lastShownAt<864e5||(m({...e,shownCount:e.shownCount+1,lastShownAt:t}),le(g),ie(true),f(),xe.current=setTimeout(()=>{ie(false),le(""),xe.current=null;},6e3));},[f,p,g,m]),D=u.useCallback(e=>{const t=_h[e];return t?s(t):e},[s]),E=u.useCallback(e=>{const t=Lh[e];return t?s(t):e},[s]),A=u.useCallback(e=>{const t=Rh[e.settingId];if(t)return s({key:t,fallback:zh(e.settingId)});if(e.settingId.startsWith("model-lock-")){const t=e.settingId.slice(11),n=Fh[t];if(n){return `${s({key:"tabModelLock",fallback:"Model Lock"})}: ${s(n)}`}}return zh(e.settingId)},[s]),_=u.useCallback(e=>{const t=ht(e);if(!t)return s({key:"globalSearchCategorySettings",fallback:"Settings"});const n=D(t.page);if(!t.subTab)return n;return `${n} / ${E(t.subTab)}`},[s,D,E]),L=u.useMemo(()=>Oo(),[]),N=u.useMemo(()=>L?new ya(L):null,[L]),M=u.useMemo(()=>L&&N?new xa(L,N):null,[L,N]);u.useEffect(()=>{if(!M)return;return e?.features?.prompts?.promptQueue??false?M.start():M.stop(),()=>M.stop()},[M,e?.features?.prompts?.promptQueue]);const I=u.useMemo(()=>L?new $o(L):null,[L]),j=u.useMemo(()=>{if(!L)return null;return new da(L,e?.features?.outline??dr.features.outline,e=>{n("features","outline","expandLevel",e);},e=>{n("features","outline","showUserQueries",e);})},[L,n]),[R,F]=u.useState(false),z=u.useRef(e);u.useEffect(()=>{z.current=e;},[e]),u.useEffect(()=>{if(r&&e&&!Je.current&&(Je.current=true,e.panel?.defaultOpen)){const{edgeSnap:t,defaultEdgeDistance:n=25,edgeSnapThreshold:r=18,defaultPosition:o="right"}=e.panel;t&&n<=r&&qe(o),F(true);}},[r,e]),u.useEffect(()=>{if(!r||!e)return;let n=false;const o={},a=e.collapsedButtons||[];let i=a;if(!i.some(e=>"floatingToolbar"===e.id)){i=[...i];const e=i.findIndex(e=>"panel"===e.id),t=e>=0?e+1:i.length;i.splice(t,0,{id:"floatingToolbar",enabled:true}),n=true;}if(!i.some(e=>"globalSearch"===e.id)){i===a&&(i=[...i]);const e=i.findIndex(e=>"floatingToolbar"===e.id),t=e>=0?e+1:i.length;i.splice(t,0,{id:"globalSearch",enabled:true}),n=true;}i!==a&&(o.collapsedButtons=i),e.floatingToolbar||(o.floatingToolbar={open:true},n=true),n&&t(o);},[r,e,t]);const[O,B]=u.useState(null),[q,U]=u.useState(false),[H,W]=u.useState(false),[K,V]=u.useState("all"),[G,Q]=u.useState(""),[Z,J]=u.useState(""),[$,X]=u.useState(0),[Y,ee]=u.useState(false),[te,ne]=u.useState("pointer"),[re,oe]=u.useState({}),[ae,ie]=u.useState(false),[se,le]=u.useState(""),[ce,de]=u.useState(false),[ue,he]=u.useState(-1),ge=u.useRef(null),pe=u.useRef(null),me=u.useRef(null),fe=u.useRef(null),be=u.useRef(null),ye=u.useRef(null),ve=u.useRef(0),xe=u.useRef(null),Se=u.useRef("ui"),we=u.useRef(0),[ke,Ce]=u.useState(0),Te=u.useRef(null),{globalSearchPromptPreview:De,globalSearchPromptPreviewPosition:Ee,clearPromptPreviewTimer:Ae,clearPromptPreviewHideTimer:_e,hideGlobalSearchPromptPreview:Le,scheduleHideGlobalSearchPromptPreview:Pe,scheduleGlobalSearchPromptPreview:Ne,scheduleGlobalSearchPointerPreview:Me,refreshGlobalSearchPromptPreviewAnchorRect:Ie}=(({settingsSearchResultsRef:e,pointerDelayMs:t,hideDelayMs:n})=>{const[r,o]=u.useState(null),a=u.useRef(null),i=u.useRef(null),s=u.useRef(null),l=u.useCallback(()=>{a.current&&(clearTimeout(a.current),a.current=null);},[]),c=u.useCallback(()=>{i.current&&(clearTimeout(i.current),i.current=null);},[]),d=u.useCallback(t=>{const n=e.current;if(!n)return null;const r=n.querySelectorAll("[data-global-search-item-id]");for(const e of r)if(e.dataset.globalSearchItemId===t)return e;return null},[e]),h=u.useCallback(()=>{l(),c(),s.current=null,o(null);},[c,l]),g=u.useCallback((e=n)=>{c(),i.current=setTimeout(()=>{h(),i.current=null;},e);},[c,n,h]),p=u.useCallback(({item:e,anchorElement:t,delay:n,source:r})=>{"prompts"===e.category&&e.promptId&&e.promptContent&&e.promptContent.trim()&&(l(),c(),"keyboard"===r&&(s.current=e.id),a.current=setTimeout(()=>{"keyboard"===r&&s.current!==e.id||(o({itemId:e.id,content:e.promptContent,anchorRect:t.getBoundingClientRect()}),a.current=null);},n));},[c,l]),m=u.useCallback(({item:e,anchorElement:n})=>{s.current=null,p({item:e,anchorElement:n,delay:t,source:"pointer"});},[t,p]),f=u.useCallback(()=>{o(e=>{if(!e)return e;const t=d(e.itemId);if(!t)return null;const n=t.getBoundingClientRect();return Math.abs(n.top-e.anchorRect.top)<.5&&Math.abs(n.left-e.anchorRect.left)<.5&&Math.abs(n.right-e.anchorRect.right)<.5&&Math.abs(n.bottom-e.anchorRect.bottom)<.5?e:{...e,anchorRect:n}});},[d]),b=u.useMemo(()=>{if(!r||"undefined"==typeof window)return null;const e=16,t=Math.max(280,Math.min(420,window.innerWidth-32)),n=Math.max(220,Math.min(420,window.innerHeight-32));let o=r.anchorRect.right+12;return o+t>window.innerWidth-e&&(o=r.anchorRect.left-t-12),o=Math.max(e,Math.min(o,window.innerWidth-t-e)),{top:Math.max(e,Math.min(r.anchorRect.top,window.innerHeight-e-n)),left:o}},[r]);return {globalSearchPromptPreview:r,globalSearchPromptPreviewPosition:b,clearPromptPreviewTimer:l,clearPromptPreviewHideTimer:c,hideGlobalSearchPromptPreview:h,scheduleHideGlobalSearchPromptPreview:g,scheduleGlobalSearchPromptPreview:p,scheduleGlobalSearchPointerPreview:m,refreshGlobalSearchPromptPreviewAnchorRect:f}})({settingsSearchResultsRef:fe,pointerDelayMs:450,hideDelayMs:220}),[je,Re]=u.useState(null),[Fe,Oe]=u.useState(false),[Be,qe]=u.useState(null),[Ue,He]=u.useState(false),We=u.useRef(false),Ke=u.useRef(null),Ve=u.useRef(null),Ge=u.useRef(false),Qe=u.useRef(false),Ze=u.useRef(false),Je=u.useRef(false);u.useEffect(()=>{const e=e=>{H&&(Qe.current=false,Te.current=null,y(),W(false),V("all"),Q(""),J(""),he(-1),X(0),ee(false),ne("pointer"),oe({}),ve.current=0),Ge.current||(Ge.current=true,Be&&z.current?.panel?.edgeSnap&&He(true),U(true));};return window.addEventListener("ophel:navigateSettingsPage",e),()=>window.removeEventListener("ophel:navigateSettingsPage",e)},[y,Be,H]);const $e=Bo(e=>e.conversations),Xe=Ko(e=>e.folders),Ye=Qo(e=>e.tags),et=ua(e=>e.prompts),tt=u.useMemo(()=>(e=>{const t=/(^|\s)([a-z]+):((?:"(?:\\.|[^"])+")|(?:\\.|[^\s])+)/gi,n=[],r=[],o=[],a={};let i=t.exec(e);for(;i;){const s=(i[2]||"").toLowerCase(),l=i[3]||"",c=(i.index||0)+(i[1]?.length||0),d=c+`${s}:${l}`.length,u=l.startsWith('"')!==l.endsWith('"'),h=vh(s),g=gh(l),p=uh(g);if(!ih.includes(s)){r.push({id:`unknown:${s}:${i.index||0}`,code:"unknownOperator",operator:s,suggestion:h||void 0}),i=t.exec(e);continue}const m=s;if(u){r.push({id:`invalid:${m}:quote:${i.index||0}`,code:"invalidValue",operator:m,value:l}),o.push({start:c,end:d}),i=t.exec(e);continue}if(!g){r.push({id:`invalid:${m}:empty:${i.index||0}`,code:"invalidValue",operator:m}),o.push({start:c,end:d}),i=t.exec(e);continue}if(!fh(m,p)){r.push({id:`invalid:${m}:${p}:${i.index||0}`,code:"invalidValue",operator:m,value:g,suggestion:bh(m)}),o.push({start:c,end:d}),i=t.exec(e);continue}const f=(a[m]||0)+1;a[m]=f;const b={id:yh(m,p,f),key:m,value:g,normalizedValue:p};mh(b,n)?(r.push({id:`conflict:${m}:${p}:${i.index||0}`,code:"conflict",operator:m,value:g}),o.push({start:c,end:d}),i=t.exec(e)):(o.push({start:c,end:d}),n.push(b),i=t.exec(e));}if(0===o.length)return {rawQuery:e,plainQuery:e.trim(),filters:n,diagnostics:r};o.sort((e,t)=>e.start-t.start);let s="",l=0;return o.forEach(t=>{l<t.start&&(s+=`${e.slice(l,t.start)} `),l=t.end;}),l<e.length&&(s+=e.slice(l)),{rawQuery:e,plainQuery:s.replace(/\s+/g," ").trim(),filters:n,diagnostics:r}})(Z),[Z]),nt=u.useMemo(()=>tt.filters,[tt.filters]),rt=u.useMemo(()=>tt.diagnostics,[tt.diagnostics]),ot=u.useMemo(()=>tt.plainQuery,[tt.plainQuery]),at=u.useMemo(()=>ft(""),[]);u.useEffect(()=>{if(!j||!H)return;const e=()=>{j.refresh(),Ce(e=>e+1);};e();const t=j.subscribe(()=>{Ce(e=>e+1);}),n=window.setInterval(()=>{e();},1200);return ()=>{t(),window.clearInterval(n);}},[H,j]);const it=u.useMemo(()=>Array.from(new Set(hh(ot))).sort((e,t)=>t.length-e.length),[ot]),{filteredGlobalSearchResults:st,globalSearchResultCounts:lt,groupedGlobalSearchResults:ct,visibleGlobalSearchResults:dt}=Ah({activeGlobalSearchPlainQuery:ot,enableFuzzySearch:h,activeGlobalSearchSyntaxFilters:nt,settingsSearchResults:at,resolveSettingSearchTitle:A,getSettingsBreadcrumb:_,conversationManager:I,conversationsSnapshot:$e,foldersSnapshot:Xe,tagsSnapshot:Ye,promptsSnapshot:et,outlineManager:j,outlineSearchVersion:ke,getLocalizedText:s,activeGlobalSearchCategory:K,expandedGlobalSearchCategories:re,allCategoryItemLimit:12}),ut=u.useMemo(()=>{const e=new Map;return dt.forEach((t,n)=>{e.set(t.id,n);}),e},[dt]),gt=u.useMemo(()=>0===dt.length?-1:Math.min($,dt.length-1),[$,dt.length]),pt=gt>=0?`${Ih}-${gt}`:void 0,mt=u.useMemo(()=>Ph.find(e=>e.id===K)||Ph[0],[K]),bt=u.useMemo(()=>({label:s(mt.label),placeholder:s(mt.placeholder),emptyText:s(mt.emptyText)}),[mt,s]),yt=u.useMemo(()=>Ph.reduce((e,t)=>(e[t.id]=s(t.label),e),{}),[s]),vt=u.useMemo(()=>Object.entries(Nh).reduce((e,[t,n])=>(e[t]=s(n),e),{}),[s]),xt=u.useMemo(()=>Object.entries(Mh).reduce((e,[t,n])=>(e[t]=s(n),e),{}),[s]),{activeGlobalSearchFilterChips:St,hasOverflowGlobalSearchFilterChips:wt,globalSearchSyntaxDiagnosticMessages:kt,globalSearchSyntaxHelpTitle:Ct,globalSearchSyntaxHelpDescription:Tt,globalSearchSyntaxHelpItems:Dt,globalSearchSyntaxSuggestions:Et,shouldShowGlobalSearchSyntaxSuggestions:At}=(({getLocalizedText:e,activeGlobalSearchSyntaxFilters:t,filterChipMaxCount:n,isGlobalSettingsSearchOpen:r,settingsSearchInputValue:o,filteredGlobalSearchResults:a,suggestionLimit:i})=>{const s=u.useMemo(()=>({type:e({key:"globalSearchSyntaxOperatorType",fallback:"Type"}),folder:e({key:"globalSearchSyntaxOperatorFolder",fallback:"Folder"}),tag:e({key:"globalSearchSyntaxOperatorTag",fallback:"Tag"}),is:e({key:"globalSearchSyntaxOperatorIs",fallback:"State"}),level:e({key:"globalSearchSyntaxOperatorLevel",fallback:"Level"}),date:e({key:"globalSearchSyntaxOperatorDate",fallback:"Date"})}),[e]),l=u.useMemo(()=>({type:e({key:"globalSearchSyntaxOperatorType",fallback:"Type"}),folder:e({key:"globalSearchSyntaxOperatorFolder",fallback:"Folder"}),tag:e({key:"globalSearchSyntaxOperatorTag",fallback:"Tag"}),is:e({key:"globalSearchSyntaxOperatorIs",fallback:"State"}),level:e({key:"globalSearchSyntaxOperatorLevel",fallback:"Level"}),date:e({key:"globalSearchSyntaxOperatorDate",fallback:"Date"})}),[e]),c=u.useMemo(()=>e({key:"globalSearchSyntaxSuggestionLevelDesc",fallback:"Filter outline level (0 = user query)"}),[e]),d=u.useMemo(()=>e({key:"globalSearchSyntaxSuggestionDateDesc",fallback:"Filter by recent days (conversations and prompts only)"}),[e]),h=u.useMemo(()=>({type:e({key:"globalSearchSyntaxSuggestionTypeDesc",fallback:"Filter by result type"}),folder:e({key:"globalSearchSyntaxSuggestionFolderDesc",fallback:"Filter by folder or category"}),tag:e({key:"globalSearchSyntaxSuggestionTagDesc",fallback:"Filter by tag name"}),is:e({key:"globalSearchSyntaxSuggestionIsDesc",fallback:"Filter by status"}),level:e({key:"globalSearchSyntaxSuggestionLevelDesc",fallback:"Filter outline level (0 = user query)"}),date:e({key:"globalSearchSyntaxSuggestionDateDesc",fallback:"Filter by recent days (conversations and prompts only)"})}),[e]),g=u.useMemo(()=>({outline:e({key:"globalSearchCategoryOutline",fallback:"Outline"}),conversations:e({key:"globalSearchCategoryConversations",fallback:"Conversations"}),prompts:e({key:"globalSearchCategoryPrompts",fallback:"Prompts"}),settings:e({key:"globalSearchCategorySettings",fallback:"Settings"})}),[e]),p=u.useMemo(()=>({pinned:e({key:"globalSearchSyntaxPinned",fallback:"Pinned"}),unpinned:e({key:"globalSearchSyntaxUnpinned",fallback:"Unpinned"})}),[e]),m=u.useMemo(()=>({unknownOperator:e({key:"globalSearchSyntaxDiagnosticUnknownOperator",fallback:"Unknown operator"}),invalidValue:e({key:"globalSearchSyntaxDiagnosticInvalidValue",fallback:"Invalid filter value"}),conflict:e({key:"globalSearchSyntaxDiagnosticConflict",fallback:"Conflicting filters removed"})}),[e]),f=u.useMemo(()=>e({key:"globalSearchSyntaxHelpTitle",fallback:"Search syntax examples"}),[e]),b=u.useMemo(()=>e({key:"globalSearchSyntaxHelpDesc",fallback:"Click to insert. Keywords are English-only."}),[e]),y=u.useMemo(()=>[{id:"help:type:outline",token:"type:outline",label:"type:outline",description:g.outline},{id:"help:type:conversations",token:"type:conversations",label:"type:conversations",description:g.conversations},{id:"help:type:prompts",token:"type:prompts",label:"type:prompts",description:g.prompts},{id:"help:type:settings",token:"type:settings",label:"type:settings",description:g.settings},{id:"help:is:pinned",token:"is:pinned",label:"is:pinned",description:p.pinned},{id:"help:is:unpinned",token:"is:unpinned",label:"is:unpinned",description:p.unpinned},{id:"help:level:0",token:"level:0",label:"level:0",description:e({key:"globalSearchSyntaxSuggestionLevelQueryDesc",fallback:"Outline user query"})},{id:"help:date:7d",token:"date:7d",label:"date:7d",description:d},{id:"help:date:30d",token:"date:30d",label:"date:30d",description:d},{id:"help:folder:inbox",token:"folder:inbox",label:"folder:inbox",description:h.folder},{id:"help:tag:work",token:"tag:work",label:"tag:work",description:h.tag}],[e,d,p.pinned,p.unpinned,h.folder,h.tag,g.conversations,g.outline,g.prompts,g.settings]),v=u.useMemo(()=>t.slice(0,n).map(e=>({id:e.id,key:e.key,value:e.value,label:`${s[e.key]}: ${e.value}`})),[t,n,s]),x=t.length>n,S=u.useMemo(()=>{if(!r)return [];const t=xh(o),n=t?.token||"",s=n.length>0,u=n.toLowerCase(),m=n.match(/^([a-z]+):(.*)$/i);if(m){const t=m[1].toLowerCase();if(!ih.includes(t))return [];const n=m[2]||"",r=n.toLowerCase(),o=[],s=e=>{o.some(t=>t.id===e.id)||o.push(e);};if("type"===t)sh.forEach(e=>{n&&!e.toLowerCase().startsWith(r)||s({id:`type:${e}`,token:`type:${e}`,label:`type:${e} · ${g[e]}`,description:h.type});});else if("is"===t)n&&!"pinned".startsWith(r)||s({id:"is:pinned",token:"is:pinned",label:`is:pinned · ${p.pinned}`,description:h.is}),n&&!"unpinned".startsWith(r)||s({id:"is:unpinned",token:"is:unpinned",label:`is:unpinned · ${p.unpinned}`,description:h.is});else if("level"===t)ch.forEach(t=>{n&&!t.startsWith(r)||s({id:`level:${t}`,token:`level:${t}`,label:`level:${t}`,description:"0"===t?e({key:"globalSearchSyntaxSuggestionLevelQueryDesc",fallback:"Outline user query"}):c});});else if("date"===t){const e=r.match(/^(\d{0,3})d?$/);if(e){const t=e[1];if(t){const e=`${t}d`;Number(t)>0&&s({id:`date:${e}`,token:`date:${e}`,label:`date:${e}`,description:d});}}dh.forEach(e=>{n&&!e.startsWith(r)||s({id:`date:${e}`,token:`date:${e}`,label:`date:${e}`,description:d});});}if("folder"===t){const e=new Map;a.forEach(t=>{const o=(t.folderName||"").trim();if(!o)return;const a=o.toLowerCase();n&&!a.includes(r)||e.set(a,o);}),Array.from(e.values()).slice(0,i).forEach(e=>{const t=/\s/.test(e)?`folder:"${e}"`:`folder:${e}`;s({id:`folder:${e.toLowerCase()}`,token:t,label:`folder:${e}`,description:h.folder});});}if("tag"===t){const e=new Map;a.forEach(t=>{(t.tagNames||t.tagBadges?.map(e=>e.name)||[]).forEach(t=>{const o=t.trim();if(!o)return;const a=o.toLowerCase();n&&!a.includes(r)||e.set(a,o);});}),Array.from(e.values()).slice(0,i).forEach(e=>{const t=/\s/.test(e)?`tag:"${e}"`:`tag:${e}`;s({id:`tag:${e.toLowerCase()}`,token:t,label:`tag:${e}`,description:h.tag});});}return o.slice(0,i)}return ih.filter(e=>!s||e.startsWith(u)).map(e=>({id:`operator:${e}`,token:`${e}:`,label:`${e}: ${l[e]}`,description:h[e]})).slice(0,i)},[a,e,d,p,c,h,l,g,r,o,i]);return {activeGlobalSearchFilterChips:v,hasOverflowGlobalSearchFilterChips:x,globalSearchSyntaxDiagnosticMessages:m,globalSearchSyntaxHelpTitle:f,globalSearchSyntaxHelpDescription:b,globalSearchSyntaxHelpItems:y,globalSearchSyntaxSuggestions:S,shouldShowGlobalSearchSyntaxSuggestions:S.length>0&&Boolean(xh(o)?.token)}})({getLocalizedText:s,activeGlobalSearchSyntaxFilters:nt,filterChipMaxCount:4,isGlobalSettingsSearchOpen:H,settingsSearchInputValue:G,filteredGlobalSearchResults:st,suggestionLimit:8}),_t=u.useMemo(()=>s({key:"globalSearchResultsLabel",fallback:"Global search results"}),[s]),Lt=u.useCallback(e=>{const t=xh(G),n=!e.token.endsWith(":"),r=`${e.token}${n?" ":""}`,o=t?`${G.slice(0,t.start)}${r}`:`${G}${G.endsWith(" ")?"":" "}${r}`;v(o),he(-1),X(0),window.requestAnimationFrame(()=>{const e=ge.current;if(!e)return;const t=o.length;e.focus({preventScroll:true}),e.setSelectionRange(t,t);});},[G,v]),Pt=u.useCallback(e=>{Lt(e),de(false);},[Lt]),Nt=u.useCallback(e=>{const t=nt.filter(t=>t.id!==e),n=(({plainQuery:e,filters:t})=>`${e} ${t.map(e=>{const t=e.value.replace(/([\\"])/g,"\\$1"),n=/\s/.test(e.value)?`"${t}"`:t;return `${e.key}:${n}`}).join(" ")}`.replace(/\s+/g," ").trim())({plainQuery:ot,filters:t});v(n),he(-1),X(0);},[ot,nt,v]),Mt=u.useCallback(()=>{v(ot),he(-1),X(0);},[ot,v]),It=u.useMemo(()=>{if(gt<0)return null;const e=dt[gt];if(!e)return null;const t=vt[e.category],n=l({key:"globalSearchContextCurrentItem",fallback:"第 {current} 项"},{current:String(gt+1)});if("all"!==K)return {label:t,meta:`${n} · ${l({key:"globalSearchContextTotalItems",fallback:"共 {total} 项"},{total:String(dt.length)})}`};const r=ct.find(t=>t.category===e.category);return r?{label:t,meta:`${n} · ${l({key:"globalSearchContextShownProgress",fallback:"已显示 {shown}/{total}"},{shown:String(r.items.length),total:String(r.totalCount)})}`}:{label:t,meta:`${n} · ${l({key:"globalSearchContextTotalItems",fallback:"共 {total} 项"},{total:String(dt.length)})}`}},[K,gt,l,ct,vt,dt]),jt=u.useCallback(()=>{Ge.current=false,U(false);const e=z.current;if(!e?.panel?.edgeSnap)return;let t=null;const n=document.querySelector("plasmo-csui, #ophel-userscript-root");if(n?.shadowRoot&&(t=n.shadowRoot.querySelector(".gh-main-panel")),t||(t=document.querySelector(".gh-main-panel")),!t)return;if(t.classList.contains("edge-snapped-left")||t.classList.contains("edge-snapped-right"))return;const r=t.getBoundingClientRect(),o=e?.panel?.edgeSnapThreshold??30;r.left<o?qe("left"):window.innerWidth-r.right<o&&qe("right");},[]),Rt=u.useCallback((e="ui")=>{Se.current=e,Ge.current?(Qe.current=true,jt()):Qe.current=false,Be&&z.current?.panel?.edgeSnap&&He(true);const t=document.activeElement;t instanceof HTMLElement&&t!==document.body?Te.current=t:Te.current=null,y(),Q(""),J(""),de(false),he(-1),V("all"),X(0),ee(false),ne("pointer"),oe({}),ve.current=0,W(true);},[y,jt,Be]),Ft=u.useCallback(e=>{const t=e?.restoreFocus??true,n=e?.reopenSettings??false,r=Te.current;if(Te.current=null,Qe.current=false,y(),W(false),V("all"),Q(""),J(""),de(false),he(-1),X(0),ee(false),ne("pointer"),oe({}),ve.current=0,n)return Ge.current=true,Be&&z.current?.panel?.edgeSnap&&He(true),void U(true);t&&r&&r.isConnected&&window.requestAnimationFrame(()=>{if(r.isConnected)try{r.focus({preventScroll:!0});}catch{r.focus();}});},[y,Be]),zt=u.useCallback(()=>{H&&Ft({restoreFocus:false}),Qe.current=false,Ge.current=true,Be&&z.current?.panel?.edgeSnap&&He(true),U(true);},[Ft,Be,H]),Ot=u.useCallback(t=>{if(Ft({restoreFocus:false}),"settings"===t.category&&t.settingId)window.dispatchEvent(new CustomEvent("ophel:navigateSettingsPage",{detail:{settingId:t.settingId}}));else {if("outline"===t.category&&t.outlineTarget&&j){const e=(t,n)=>{for(const r of t){if(r.index===n)return r;if(r.children&&r.children.length>0){const t=e(r.children,n);if(t)return t}}return null},n=e(j.getTree(),t.outlineTarget.index);let r=n?.element||null;if(!r||!r.isConnected)if(t.outlineTarget.isUserQuery&&t.outlineTarget.queryIndex){const e=j.findUserQueryElement(t.outlineTarget.queryIndex,t.outlineTarget.text);e&&(r=e);}else {const e=j.findElementByHeading(t.outlineTarget.level,t.outlineTarget.text);e&&(r=e);}if(r&&r.isConnected)return r.scrollIntoView({behavior:"instant",block:"start",__bypassLock:true}),r.classList.add("outline-highlight"),void setTimeout(()=>r?.classList.remove("outline-highlight"),2e3);if(t.outlineTarget.isGhost&&void 0!==t.outlineTarget.scrollTop){const e=j.getScrollContainer();if(e)return e.scrollTo({top:t.outlineTarget.scrollTop,behavior:"smooth"}),void Yr(En("bookmarkContentMissing")||"收藏内容不存在,已跳转到保存位置",3e3)}return void Yr(En("bookmarkContentMissing")||"收藏内容已被删除或折叠",2e3)}if("prompts"===t.category&&t.promptId){const r=et.find(e=>e.id===t.promptId);if(!r)return;const o=()=>{F(true);const t=(e?.features?.order||dr.features.order).indexOf(ze);t>=0&&window.dispatchEvent(new CustomEvent("ophel:switchTab",{detail:{index:t}}));},a=()=>{B(null),o();const e={promptId:r.id};window.__ophelPendingLocatePrompt=e,window.dispatchEvent(new CustomEvent("ophel:locatePrompt",{detail:e}));};if("locate"===(e?.globalSearch?.promptEnterBehavior??"smart"))return void a();if(!N)return void o();if(n=r.content,/\{\{([^\s{}]+)\}\}/.test(n)){B(null),o();const e={promptId:r.id,submitAfterInsert:false};return window.__ophelPendingPromptVariableDialog=e,void window.dispatchEvent(new CustomEvent("ophel:openPromptVariableDialog",{detail:e}))}return void(async()=>{if(await N.insertPrompt(r.content))return N.updateLastUsed(r.id),B(r),void Yr(`${En("inserted")||"已插入"}: ${r.title}`);a(),Yr(En("insertFailed")||"未找到输入框,请点击输入框后重试");})()}var n;"conversations"===t.category&&t.conversationId&&L?.navigateToConversation(t.conversationId,t.conversationUrl);}},[L,Ft,j,N,et,e]);u.useEffect(()=>{H&&(ge.current?.focus(),ge.current?.select());},[H]),u.useEffect(()=>{H&&"ui"===Se.current&&T();},[H,T]),u.useEffect(()=>()=>{f();},[f]);const Bt=u.useRef(H);u.useEffect(()=>{Bt.current=H;},[H]),u.useEffect(()=>{const e=e=>{if(Bt.current)return;"Shift"!==e.key&&(we.current=0);if((e.ctrlKey||e.metaKey)&&!e.altKey&&!e.shiftKey&&"k"===e.key.toLowerCase())return e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),we.current=0,C(),void Rt("shortcut");if("Shift"!==e.key||e.repeat||e.ctrlKey||e.metaKey||e.altKey)return;const t=Date.now();if((z.current?.globalSearch?.doubleShift??dr.globalSearch.doubleShift)&&t-we.current<=360)return e.preventDefault(),e.stopPropagation(),we.current=0,C(),void Rt("shortcut");we.current=t;};return window.addEventListener("keydown",e,true),()=>{window.removeEventListener("keydown",e,true);}},[C,Rt]),u.useEffect(()=>{const e=()=>{Rt("event");};return window.addEventListener("ophel:openSettingsSearch",e),()=>{window.removeEventListener("ophel:openSettingsSearch",e);}},[Rt]),u.useEffect(()=>()=>{y();},[y]),u.useEffect(()=>{if(!H||!ce)return;const e=e=>{const t=e.target;t&&(pe.current?.contains(t)||me.current?.contains(t)||de(false));};return document.addEventListener("mousedown",e,true),()=>{document.removeEventListener("mousedown",e,true);}},[H,ce]),u.useEffect(()=>{if(!H)return void Le();if("keyboard"!==te)return;const e=dt[$];if(!e||"prompts"!==e.category)return void Le();const t=fe.current;if(!t)return;const n=t.querySelector(`[data-global-search-index="${$}"]`);n&&Ne({item:e,anchorElement:n,delay:700,source:"keyboard"});},[Le,H,Ne,$,te,dt]),u.useEffect(()=>{X(0),ee(false),ne("pointer"),oe({}),ve.current=0,Le();},[K,Le,Z]),u.useEffect(()=>{H||Le();},[Le,H]),u.useEffect(()=>{De&&be.current&&oa(be.current,{size:14});},[De]),u.useEffect(()=>{if(!H||!De)return;const e=()=>{Ie();},t=fe.current;return window.addEventListener("resize",e),window.addEventListener("scroll",e,true),t?.addEventListener("scroll",e),()=>{window.removeEventListener("resize",e),window.removeEventListener("scroll",e,true),t?.removeEventListener("scroll",e);}},[De,H,Ie]),u.useEffect(()=>()=>{Ae(),_e();},[_e,Ae]),(({isGlobalSettingsSearchOpen:e,showGlobalSearchSyntaxHelp:t,setShowGlobalSearchSyntaxHelp:n,activeGlobalSearchCategory:r,categoryIds:o,setActiveGlobalSearchCategory:a,settingsSearchActiveIndex:i,setSettingsSearchActiveIndex:s,settingsSearchNavigationMode:l,setSettingsSearchNavigationMode:c,setSettingsSearchHoverLocked:d,shouldShowGlobalSearchSyntaxSuggestions:h,globalSearchSyntaxSuggestions:g,activeSearchSyntaxSuggestionIndex:p,setActiveSearchSyntaxSuggestionIndex:m,applyGlobalSearchSyntaxSuggestion:f,visibleGlobalSearchResults:b,navigateToSearchResult:y,closeGlobalSettingsSearch:v,getShouldReturnToSettingsOnEscape:x,settingsSearchResultsRef:S,keyboardSafeTop:w,keyboardSafeBottom:k})=>{u.useEffect(()=>{if(!e)return;const l=e=>{if("Escape"===e.key){if(e.preventDefault(),e.stopPropagation(),t)return void n(false);const r=x();return void v({restoreFocus:!r,reopenSettings:r})}if("Tab"===e.key){e.preventDefault(),e.stopPropagation();const t=o.findIndex(e=>e===r);if(t<0)return a("all"),s(0),d(false),void c("keyboard");const n=o.length,i=e.shiftKey?(t-1+n)%n:(t+1)%n;return a(o[i]),s(0),d(false),void c("keyboard")}if(h){if("ArrowDown"===e.key)return e.preventDefault(),e.stopPropagation(),void m(e=>{if(0===g.length)return  -1;const t=e+1;return t>=g.length?0:t});if("ArrowUp"===e.key)return e.preventDefault(),e.stopPropagation(),void m(e=>{if(0===g.length)return  -1;const t=e-1;return t<0?g.length-1:t});if("Enter"===e.key&&p>=0){const t=g[p];if(!t)return;return e.preventDefault(),e.stopPropagation(),void f(t)}}if("ArrowDown"===e.key)return e.preventDefault(),e.stopPropagation(),d(true),c("keyboard"),void s(e=>0===b.length?0:(e+1)%b.length);if("ArrowUp"===e.key)return e.preventDefault(),e.stopPropagation(),d(true),c("keyboard"),void s(e=>0===b.length?0:(e-1+b.length)%b.length);if("Enter"===e.key){if(0===b.length)return;const t=b[i]||b[0];if(!t)return;b[i]||s(0),e.preventDefault(),e.stopPropagation(),y(t);}};return window.addEventListener("keydown",l,true),()=>{window.removeEventListener("keydown",l,true);}},[r,p,f,o,v,g,e,y,a,m,s,d,c,n,i,x,h,t,b]),u.useEffect(()=>{0!==b.length?i>=b.length&&s(0):0!==i&&s(0);},[i,s,b.length]),u.useEffect(()=>{h?p>=g.length&&m(g.length-1):-1!==p&&m(-1);},[p,g.length,m,h]);const C=u.useCallback((e,t)=>{const n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=n.top+w,a=n.bottom-k;if(r.top<o){const t=r.top-o;return void(e.scrollTop=Math.max(0,e.scrollTop+t))}if(r.bottom>a){const t=r.bottom-a,n=Math.max(0,e.scrollHeight-e.clientHeight);e.scrollTop=Math.min(n,e.scrollTop+t);}},[k,w]);u.useEffect(()=>{if(!e)return;if("keyboard"!==l)return;const t=S.current;if(!t)return;const n=t.querySelector(`[data-global-search-index="${i}"]`);n&&C(t,n);},[C,e,i,l,S,b]);})({isGlobalSettingsSearchOpen:H,showGlobalSearchSyntaxHelp:ce,setShowGlobalSearchSyntaxHelp:de,activeGlobalSearchCategory:K,categoryIds:Ph.map(e=>e.id),setActiveGlobalSearchCategory:V,settingsSearchActiveIndex:$,setSettingsSearchActiveIndex:X,settingsSearchNavigationMode:te,setSettingsSearchNavigationMode:ne,setSettingsSearchHoverLocked:ee,shouldShowGlobalSearchSyntaxSuggestions:At,globalSearchSyntaxSuggestions:Et,activeSearchSyntaxSuggestionIndex:ue,setActiveSearchSyntaxSuggestionIndex:he,applyGlobalSearchSyntaxSuggestion:Lt,visibleGlobalSearchResults:dt,navigateToSearchResult:Ot,closeGlobalSettingsSearch:Ft,getShouldReturnToSettingsOnEscape:()=>Qe.current,settingsSearchResultsRef:fe,keyboardSafeTop:8,keyboardSafeBottom:12});const qt=u.useCallback(()=>{Ve.current&&(clearTimeout(Ve.current),Ve.current=null);},[]),Ut=u.useCallback(e=>{We.current=e;},[]);u.useEffect(()=>{r&&e?.language&&(Tn(e.language),i(e=>e+1));},[e?.language,r]);const Ht=u.useCallback(e=>{B(e);},[]),Wt=u.useCallback(()=>{B(null),L&&L.clearTextarea();},[L]);u.useEffect(()=>{j&&e&&j.updateSettings(e.features?.outline);},[j,e]),u.useEffect(()=>{I&&e&&I.updateSettings({syncUnpin:e.features?.conversations?.syncUnpin??false});},[I,e]);const Kt=u.useMemo(()=>{const t=window.__ophelThemeManager;if(t)return t;console.warn("[App] Global ThemeManager not found, creating fallback instance");const n=Oo(),r=n?.getSiteId()||"_default",o=e?.theme?.sites?.[r]||e?.theme?.sites?._default;return new Ca(o?.mode||"light",void 0,L,o?.lightStyleId||"google-gradient",o?.darkStyleId||"classic-dark")},[]),Vt=u.useSyncExternalStore(Kt.subscribe,Kt.getSnapshot);u.useEffect(()=>(Kt.setOnModeChange((e,n)=>{const r=n||e,o=z.current,a=o?.theme?.sites||{},i=Oo(),s=i?.getSiteId()||"_default",l={lightStyleId:"google-gradient",darkStyleId:"classic-dark",mode:"light",...a[s]||a._default};t({theme:{...o?.theme,sites:{...a,[s]:{...l,mode:r}}}});}),()=>{Kt.setOnModeChange(void 0);}),[Kt,t]);const Gt=e?.theme?.sites,Qt=e?.features?.conversations?.syncUnpin,Zt=e?.features?.conversations?.syncDelete,Jt=e?.features?.outline?.inlineBookmarkMode,$t=Boolean(e),Xt=e?.collapsedButtons||dr.collapsedButtons,Yt=Xt.find(e=>"floatingToolbar"===e.id)?.enabled??true,en=e?.floatingToolbar?.open??true,tn=e?.panel?.preventAutoScroll??false,nn=j?.getGhostBookmarkIds().length??0;u.useEffect(()=>{Yt&&en||(Re(null),Oe(false));},[Yt,en]),u.useEffect(()=>{if(!r)return;const e=Oo(),t=e?.getSiteId()||"_default",n=Gt?.[t]||Gt?._default,o=n?.lightStyleId,a=n?.darkStyleId;o&&a&&Kt.setPresets(o,a);},[Gt,Kt,r]),u.useEffect(()=>{r&&Kt.setCustomStyles(e?.theme?.customStyles||[]);},[e?.theme?.customStyles,Kt,r]);const rn=u.useCallback(async e=>{await Kt.toggle(e);},[Kt]);u.useEffect(()=>(Kt.monitorTheme(),()=>{Kt.stopMonitoring();}),[Kt]),u.useEffect(()=>{if(N&&N.init(),I&&I.init(),j){j.refresh();const e=setInterval(()=>{j.refresh();},2e3);return ()=>{clearInterval(e),I?.destroy();}}},[N,I,j]),u.useEffect(()=>{if(!I||"undefined"==typeof chrome)return;const e=(e,t,n)=>e?.type===$a&&(I.destroy(),n({success:true}),true);return chrome.runtime.onMessage.addListener(e),()=>{chrome.runtime.onMessage.removeListener(e);}},[I]),u.useEffect(()=>{I&&I.updateSettings({syncUnpin:Qt??false,syncDelete:Zt??true});},[I,Qt,Zt]),u.useEffect(()=>{if(!j||!L||!$t)return;const e=new ca(j,L,Jt||"always");return ()=>{e.cleanup();}},[j,L,Jt,$t]);const on=u.useCallback(()=>{const e=z.current;if(!e)return;const n=!e.panel?.preventAutoScroll;t({panel:{...e.panel,preventAutoScroll:n}}),Yr(En(n?"preventAutoScrollEnabled":"preventAutoScrollDisabled"));},[t]),an=u.useCallback(async()=>{if(!I||!L)return;const e=L.getSessionId();if(!e)return void Yr(En("exportNeedOpenFirst")||"请先打开要导出的会话");Yr(En("exportStarted")||"开始导出...");await I.exportConversation(e,"markdown")||Yr(En("exportFailed")||"导出失败");},[I,L]),sn=u.useCallback(()=>{if(!I||!L)return;const e=L.getSessionId();if(!e)return void Yr(En("noConversationToLocate")||"未找到会话");const t=I.getConversation(e);Re({convId:e,activeFolderId:t?.folderId});},[I,L]),ln=u.useCallback(()=>{if(!j)return;const e=j.clearGhostBookmarks();Yr(0!==e?`${En("cleared")||"已清理"} (${e})`:En("floatingToolbarClearGhostEmpty")||"没有需要清理的无效收藏");},[j]),cn=u.useCallback(async()=>{if(!I||!L)return;const e=L.getSessionId();if(!e)return void Yr(En("exportNeedOpenFirst")||"请先打开要导出的会话");Yr(En("exportLoading")||"正在加载...");await I.exportConversation(e,"clipboard")||Yr(En("exportFailed")||"导出失败");},[I,L]),dn=u.useCallback(()=>{if(!L)return;const e=L.getSiteId(),n=z.current;if(!n)return;const r=n.modelLock?.[e]||{enabled:false,keyword:""};if(!r.keyword)return void(r.enabled?(t({modelLock:{...n.modelLock,[e]:{...r,enabled:false}}}),Yr(En("modelLockDisabled")||"模型锁定已关闭")):(Yr(En("modelLockNoKeyword")||"请先在设置中配置模型关键词"),t({modelLock:{...n.modelLock,[e]:{...r,enabled:true}}}),zt(),setTimeout(()=>{window.dispatchEvent(new CustomEvent("ophel:navigateSettingsPage",{detail:{page:"siteSettings",subTab:"modelLock"}}));},100)));const o=!r.enabled;t({modelLock:{...n.modelLock,[e]:{...r,enabled:o}}}),Yr(o?En("modelLockEnabled")||"模型锁定已开启":En("modelLockDisabled")||"模型锁定已关闭");},[L,zt,t]),un=u.useMemo(()=>{if(!L||!e)return  false;const t=L.getSiteId();return e.modelLock?.[t]?.enabled||false},[L,e]);Qa({settings:e,adapter:L,outlineManager:j,conversationManager:I,onPanelToggle:()=>F(e=>!e),onThemeToggle:rn,onOpenSettings:zt,isPanelVisible:R,isSnapped:!!Be&&!Ue,onShowSnappedPanel:()=>{He(true),qt(),Ve.current=setTimeout(()=>{He(false),Ve.current=null;},3e3);},onToggleScrollLock:on}),u.useEffect(()=>{Be&&!e?.panel?.edgeSnap&&(qe(null),He(false));},[e?.panel?.edgeSnap,Be]);const hn=u.useRef(e?.panel?.defaultPosition);u.useEffect(()=>{const t=e?.panel?.defaultPosition;void 0===hn.current&&t?hn.current=t:t&&hn.current!==t&&(hn.current=t,Be&&(qe(t),He(false)));},[e?.panel?.defaultPosition,Be]),u.useEffect(()=>{if(!Be||!e?.panel?.edgeSnap)return;const t=()=>{const e=document.body.querySelectorAll(".conversations-dialog-overlay, .conversations-folder-menu, .conversations-tag-filter-menu, .prompt-modal, .gh-dialog-overlay, .settings-modal-overlay"),t=document.body.querySelectorAll(".settings-search-overlay");return e.length>0||t.length>0};let n=t();const r=new MutationObserver(()=>{const e=t();e&&!n?(He(true),Ke.current&&(clearTimeout(Ke.current),Ke.current=null)):!e&&n&&(Ke.current&&clearTimeout(Ke.current),Ke.current=setTimeout(()=>{t()||We.current||He(false);},500)),n=e;});return r.observe(document.body,{childList:true,subtree:false}),t()&&He(true),()=>{r.disconnect();}},[Be,e?.panel?.edgeSnap]),u.useEffect(()=>{if(!Be||!e?.panel?.edgeSnap)return;const t=document.querySelector("plasmo-csui, #ophel-userscript-root"),n=t?.shadowRoot;if(!n)return;const r=e=>{const t=e.target;if("INPUT"===t.tagName||"TEXTAREA"===t.tagName||"true"===t.getAttribute("contenteditable")){if(t.closest(".settings-modal-overlay, .settings-modal"))return;Ze.current=true,He(true),Ke.current&&(clearTimeout(Ke.current),Ke.current=null);}},o=e=>{const t=e.target;if("INPUT"===t.tagName||"TEXTAREA"===t.tagName||"true"===t.getAttribute("contenteditable")){if(t.closest(".settings-modal-overlay, .settings-modal"))return;Ze.current=false,Ke.current&&clearTimeout(Ke.current),Ke.current=setTimeout(()=>{if(!Ze.current&&!Ge.current&&!We.current){const e=document.body.querySelectorAll(".conversations-dialog-overlay, .conversations-folder-menu, .conversations-tag-filter-menu, .prompt-modal, .gh-dialog-overlay, .settings-modal-overlay"),t=document.body.querySelectorAll(".settings-search-overlay");0===e.length&&0===t.length&&He(false);}},300);}};return n.addEventListener("focusin",r,true),n.addEventListener("focusout",o,true),()=>{n.removeEventListener("focusin",r,true),n.removeEventListener("focusout",o,true);}},[Be,e?.panel?.edgeSnap]),u.useEffect(()=>{const t=e?.panel?.autoHide;if(!t||!R)return;const n=t=>{t.composedPath().some(e=>e instanceof Element&&(!!e.closest?.(".gh-main-panel")||(!!e.closest?.(".gh-quick-buttons")||(!!e.closest?.(".conversations-dialog-overlay")||(!!e.closest?.(".conversations-folder-menu")||(!!e.closest?.(".conversations-tag-filter-menu")||(!!e.closest?.(".prompt-modal")||(!!e.closest?.(".gh-dialog-overlay")||(!!e.closest?.(".settings-modal-overlay")||!!e.closest?.(".settings-search-overlay"))))))))))||(e?.panel?.edgeSnap?Be||(qe(e.panel.defaultPosition||"right"),He(false)):F(false));},r=setTimeout(()=>{document.addEventListener("click",n,true);},100);return ()=>{clearTimeout(r),document.removeEventListener("click",n,true);}},[e?.panel?.autoHide,e?.panel?.edgeSnap,R,Be,e?.panel?.defaultPosition]);const gn=u.useCallback(e=>{if(!L||L.getSiteId()!==zn.AISTUDIO)return;const t="ophel:aistudio-submit-shortcut-sync-toast",n=`synced:${e}`;let r=true;try{sessionStorage.getItem(t)===n?r=!1:sessionStorage.setItem(t,n);}catch{}if(!r)return;const o="ctrlEnter"===e?"Ctrl + Enter":"Enter";Yr(`AI Studio ${En("promptSubmitShortcutLabel")}: ${o}`);},[L]);u.useEffect(()=>{if(!L||L.getSiteId()!==zn.AISTUDIO)return;const e=e=>{const t=e.detail,n=t?.submitShortcut;"enter"!==n&&"ctrlEnter"!==n||gn(n);};return window.addEventListener(ba,e),()=>{window.removeEventListener(ba,e);}},[L,gn]),u.useEffect(()=>{L&&N&&L.getSiteId()===zn.AISTUDIO&&N.syncAiStudioSubmitShortcut(o);},[L,N,o]),u.useEffect(()=>{if(!L||!N)return;const e=e=>{if(!e.isTrusted)return;if("Enter"!==e.key)return;if(e.isComposing||229===e.keyCode)return;const t=e.composedPath();if(t.some(e=>e instanceof HTMLElement&&(e.classList?.contains("gh-queue-panel")||e.classList?.contains("gh-queue-input")||e.classList?.contains("gh-queue-item-edit-input"))))return;const n=t.find(e=>e instanceof HTMLElement&&L.isValidTextarea(e));if(!n)return;const r=e.ctrlKey||e.metaKey,a=r||e.altKey,i="ctrlEnter"===o?r&&!e.altKey&&!e.shiftKey:!a&&!e.shiftKey,s="ctrlEnter"===o&&!a&&!e.shiftKey;if(i)return e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),void(async()=>{N.syncAiStudioSubmitShortcut(o);await N.submitPrompt(o)&&B(null);})();s&&(e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),(e=>{if(e instanceof HTMLTextAreaElement){const t=e.selectionStart??e.value.length,n=e.selectionEnd??e.value.length;return e.setRangeText("\n",t,n,"end"),void e.dispatchEvent(new Event("input",{bubbles:true}))}if("true"!==e.getAttribute("contenteditable"))return;e.focus();const t={key:"Enter",code:"Enter",keyCode:13,which:13,bubbles:true,cancelable:true,composed:true,shiftKey:true},n=e.innerHTML;e.dispatchEvent(new KeyboardEvent("keydown",t)),e.dispatchEvent(new KeyboardEvent("keypress",t)),e.dispatchEvent(new KeyboardEvent("keyup",t)),e.innerHTML===n&&(document.execCommand("insertLineBreak")||document.execCommand("insertParagraph"),e.dispatchEvent(new Event("input",{bubbles:true})));})(n));};return L.getSiteId()===zn.CLAUDE?(window.addEventListener("keydown",e,true),()=>{window.removeEventListener("keydown",e,true);}):(document.addEventListener("keydown",e,true),()=>{document.removeEventListener("keydown",e,true);})},[L,N,o]),u.useEffect(()=>{if(!L||!O)return;const e=()=>{B(null);},t=t=>{const n=L.getSubmitButtonSelectors();if(0===n.length)return;const r=t.composedPath();for(const o of r){if(o===document||o===window)break;for(const t of n)try{if(o.matches?.(t))return void setTimeout(e,100)}catch{}}};return document.addEventListener("click",t,true),()=>{document.removeEventListener("click",t,true);}},[L,O]),u.useEffect(()=>{if(!O||!L)return;let e=window.location.href;const t=()=>{B(null),L.clearTextarea();},n=()=>{window.location.href!==e&&t();},r=setInterval(()=>{window.location.href!==e&&(e=window.location.href,t());},500);return window.addEventListener("popstate",n),()=>{clearInterval(r),window.removeEventListener("popstate",n);}},[O,L]);const[pn,mn]=u.useState(null),fn=u.useCallback(()=>{if(!I||!L)return;const e=L.getSessionId();e?mn({convId:e}):Yr(En("noConversationToLocate")||"未找到当前会话");},[I,L]),{tags:bn,addTag:yn,updateTag:vn,deleteTag:xn}=Qo(),Sn=u.useCallback(e=>{ne("pointer"),oe(t=>({...t,[e]:!t[e]}));},[]),wn=u.useMemo(()=>({query:s({key:"outlineOnlyUserQueries",fallback:"Query"}),reply:s({key:"globalSearchOutlineReplies",fallback:"Replies"})}),[s]);return L&&N&&I&&j?P.jsxs("div",{className:"gh-root",children:[
         P.jsx(Yd,{isOpen:R,onClose:()=>F(false),promptManager:N,conversationManager:I,outlineManager:j,adapter:L,onThemeToggle:rn,themeMode:Vt,selectedPromptId:O?.id,onPromptSelect:Ht,edgeSnapState:Be,isEdgePeeking:Ue,onEdgeSnap:e=>qe(e),onUnsnap:()=>{qe(null),He(false);},onInteractionStateChange:Ut,onOpenSettings:()=>{zt();},onMouseEnter:()=>{Ke.current&&(clearTimeout(Ke.current),Ke.current=null),qt(),Be&&e?.panel?.edgeSnap&&!Ue&&He(true);},onMouseLeave:()=>{Ke.current&&clearTimeout(Ke.current),Ke.current=setTimeout(()=>{if(Ge.current)return;if(Ze.current)return;const t=We.current,n=document.body.querySelectorAll(".conversations-dialog-overlay, .conversations-folder-menu, .conversations-tag-filter-menu, .prompt-modal, .gh-dialog-overlay, .settings-modal-overlay"),r=document.body.querySelectorAll(".settings-search-overlay"),o=n.length>0||r.length>0;t||o||Be&&e?.panel?.edgeSnap&&Ue&&He(false);},200);}}),
         P.jsx(tu,{isPanelOpen:R,onPanelToggle:()=>{R?He(false):Be&&e?.panel?.edgeSnap&&He(true),F(!R);},onThemeToggle:rn,themeMode:Vt,onExport:an,onMove:sn,onSetTag:fn,onScrollLock:()=>on(),onSettings:()=>{zt(),setTimeout(()=>{window.dispatchEvent(new CustomEvent("ophel:navigateSettingsPage",{detail:{page:"general",subTab:"toolsMenu"}}));},50);},scrollLocked:tn,onCleanup:()=>{0!==nn?Oe(true):Yr(En("floatingToolbarClearGhostEmpty")||"没有需要清理的无效收藏");},onGlobalSearch:Rt,onCopyMarkdown:cn,onModelLockToggle:dn,isModelLocked:un}),O&&P.jsx(nu,{title:O.title,onClear:Wt,adapter:L}),
         P.jsx(nh,{isOpen:q,onClose:()=>{Ge.current=false,U(false);const e=z.current;if(!e?.panel?.edgeSnap)return;let t=null;const n=document.querySelector("plasmo-csui, #ophel-userscript-root");if(n?.shadowRoot&&(t=n.shadowRoot.querySelector(".gh-main-panel")),t||(t=document.querySelector(".gh-main-panel")),!t)return;if(t.classList.contains("edge-snapped-left")||t.classList.contains("edge-snapped-right"))return;const r=t.getBoundingClientRect(),o=e?.panel?.edgeSnapThreshold??30;r.left<o?qe("left"):window.innerWidth-r.right<o&&qe("right");},siteId:L.getSiteId()}),
         P.jsx(rh,{isOpen:H,onClose:()=>{Le(),Ft();},inputRef:ge,resultsRef:fe,activeOptionId:pt,inputValue:G,inputPlaceholder:`${bt.placeholder}(${c})`,onInputChange:e=>{S(e),he(-1),X(0);},hotkeyLabel:d,fuzzySearchToggleLabel:s({key:"globalSearchFuzzySearchToggle",fallback:"Fuzzy"}),fuzzySearchToggleAriaLabel:s({key:"globalSearchFuzzySearchToggleAria",fallback:"Toggle fuzzy search"}),isFuzzySearchEnabled:h,onToggleFuzzySearch:x,syntaxHelpTriggerRef:pe,syntaxHelpPopoverRef:me,showSyntaxHelp:ce,onToggleSyntaxHelp:()=>de(e=>!e),syntaxHelpTriggerAriaLabel:s({key:"globalSearchSyntaxHelpTriggerAria",fallback:"Open search syntax help"}),syntaxHelpTitle:Ct,syntaxHelpDescription:Tt,syntaxHelpItems:Dt,onApplySyntaxHelpItem:Pt,activeFilterChips:St,hasOverflowFilterChips:wt,overflowFilterChipText:l({key:"globalSearchSyntaxChipOverflow",fallback:"+{count} more"},{count:String(nt.length-4)}),filterChipRemoveTitle:s({key:"globalSearchSyntaxChipRemove",fallback:"Click to remove filter"}),clearFiltersLabel:s({key:"clear",fallback:"Clear"}),onRemoveFilterChip:Nt,onClearAllFilterChips:Mt,shouldShowSyntaxSuggestions:At,syntaxSuggestions:Et,activeSyntaxSuggestionIndex:ue,onHoverSyntaxSuggestion:he,onApplySyntaxSuggestion:Lt,syntaxDiagnostics:rt,resolveSyntaxDiagnosticTitle:e=>kt[e]||kt.invalidValue,showShortcutNudge:ae,shortcutNudgeMessage:se,closeLabel:s({key:"close",fallback:"Close"}),dismissShortcutNudgeLabel:s({key:"globalSearchShortcutNudgeDismiss",fallback:"Don’t remind me"}),onHideShortcutNudge:w,onDismissShortcutNudgeForever:k,categoriesLabel:s({key:"globalSearchCategoriesLabel",fallback:"Global search categories"}),categories:Ph.map(e=>({id:e.id,label:yt[e.id],count:lt[e.id]})),activeCategoryId:K,onSelectCategory:e=>{V(e),X(0);},activeContext:It,listboxId:"settings-search-results-listbox",listboxLabel:_t,onResultsWheel:()=>{ne("pointer"),ve.current=Date.now()+200,Le();},visibleResults:dt,groupedResults:ct,getGroupLabel:e=>vt[e],allCategoryItemLimit:12,isAllCategory:"all"===K,emptyText:bt.emptyText,emptyGuideTitle:s({key:"globalSearchSyntaxEmptyGuideTitle",fallback:"Try search filters"}),emptyGuideDescription:s({key:"globalSearchSyntaxEmptyGuideDesc",fallback:"Use filter syntax to narrow results quickly"}),emptyGuideExamples:[{id:"example:type-prompts",token:"type:prompts",onClick:()=>v("type:prompts ")},{id:"example:is-pinned",token:"is:pinned",onClick:()=>v("is:pinned ")},{id:"example:folder-inbox",token:"folder:inbox",onClick:()=>v("folder:inbox ")},{id:"example:tag-work",token:"tag:work",onClick:()=>v("tag:work ")},{id:"example:level-0",token:"level:0",onClick:()=>v("level:0 ")},{id:"example:date-7d",token:"date:7d",onClick:()=>v("date:7d ")}],renderSearchResultItem:(e,t)=>P.jsx(ah,{item:e,index:t,optionIdPrefix:Ih,isActive:t===$,highlightTokens:it,outlineRoleLabels:wn,matchReasonLabels:xt,onMouseMove:()=>{ne("pointer"),Date.now()<ve.current||(Y?ee(false):X(t));},onMouseEnter:t=>{ne("pointer"),Me({item:e,anchorElement:t.currentTarget});},onMouseLeave:()=>{Pe();},onClick:()=>Ot(e)},e.id),resolveVisibleResultIndex:(e,t)=>ut.get(e.id)??t,collapseLabel:s({key:"collapse",fallback:"Collapse"}),moreLabel:s({key:"floatingToolbarMore",fallback:"More"}),onToggleCategoryGroup:Sn,footerTips:s({key:"globalSearchFooterTips",fallback:"Enter to jump · ↑↓ to select · Tab category · Esc to close"}),promptPreview:De&&Ee?P.jsxs(P.Fragment,{children:[
         P.jsx("div",{ref:be,className:"settings-search-prompt-preview-float gh-markdown-preview",style:{top:Ee.top,left:Ee.left},onMouseEnter:()=>{Ae(),_e();},onMouseLeave:()=>{Pe();},onClick:b,dangerouslySetInnerHTML:{__html:dd(sd(De.content,false))}}),
         P.jsx("style",{children:"\n/* highlight.js GitHub Dark 主题 */\n.hljs {\n  background: var(--gh-bg-tertiary, #1e1e1e);\n  color: var(--gh-text, #e6edf3);\n  padding: 12px;\n  border-radius: 6px;\n  overflow-x: auto;\n  font-family: 'SF Mono', Consolas, 'Liberation Mono', Menlo, monospace;\n  font-size: 13px;\n  line-height: 1.5;\n  /* 代码块自动换行 */\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  word-break: break-all;\n}\n.hljs-comment,\n.hljs-quote { color: #8b949e; font-style: italic; }\n.hljs-keyword,\n.hljs-selector-tag { color: #ff7b72; }\n.hljs-string,\n.hljs-doctag { color: #a5d6ff; }\n.hljs-number,\n.hljs-literal { color: #79c0ff; }\n.hljs-title,\n.hljs-section,\n.hljs-selector-id { color: #d2a8ff; font-weight: bold; }\n.hljs-function > .hljs-title { color: #d2a8ff; }\n.hljs-type,\n.hljs-class .hljs-title { color: #7ee787; }\n.hljs-attribute { color: #79c0ff; }\n.hljs-variable,\n.hljs-template-variable { color: #ffa657; }\n.hljs-built_in { color: #ffa657; }\n.hljs-addition { color: #aff5b4; background: rgba(46, 160, 67, 0.15); }\n.hljs-deletion { color: #ffdcd7; background: rgba(248, 81, 73, 0.15); }\n\n/* 变量占位符高亮 */\n.gh-variable-highlight {\n  background: rgba(56, 139, 253, 0.2);\n  color: #58a6ff;\n  padding: 2px 6px;\n  border-radius: 4px;\n  font-weight: 500;\n}\n\n/* Markdown 渲染样式 */\n.gh-markdown-preview {\n  line-height: 1.6;\n  color: var(--gh-text, #e6edf3);\n}\n.gh-markdown-preview h1,\n.gh-markdown-preview h2,\n.gh-markdown-preview h3 {\n  margin: 16px 0 8px;\n  font-weight: 600;\n  border-bottom: 1px solid var(--gh-border, #30363d);\n  padding-bottom: 4px;\n}\n.gh-markdown-preview h1 { font-size: 1.5em; }\n.gh-markdown-preview h2 { font-size: 1.3em; }\n.gh-markdown-preview h3 { font-size: 1.1em; }\n.gh-markdown-preview p { margin: 8px 0; }\n.gh-markdown-preview code:not(.hljs) {\n  background: var(--gh-bg-tertiary, #343942);\n  padding: 2px 6px;\n  border-radius: 4px;\n  font-size: 13px;\n}\n.gh-markdown-preview pre {\n  margin: 12px 0;\n  position: relative;\n  max-width: 100%;\n  overflow: hidden;\n}\n.gh-markdown-preview pre code {\n  display: block;\n  max-width: 100%;\n  overflow-x: auto;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  word-break: break-all;\n}\n/* 代码块复制按钮 */\n.gh-code-copy-btn {\n  position: absolute;\n  top: 8px;\n  right: 8px;\n  padding: 4px 8px;\n  background: var(--gh-bg-secondary, #2d333b);\n  border: 1px solid var(--gh-border, #444c56);\n  border-radius: 4px;\n  color: var(--gh-text-secondary, #8b949e);\n  font-size: 12px;\n  cursor: pointer;\n  opacity: 0;\n  transition: opacity 0.2s;\n}\n.gh-markdown-preview pre:hover .gh-code-copy-btn {\n  opacity: 1;\n}\n.gh-code-copy-btn:hover {\n  background: var(--gh-hover, #373e47);\n  color: var(--gh-text, #e6edf3);\n}\n.gh-markdown-preview blockquote {\n  border-left: 3px solid var(--gh-primary, #4285f4);\n  margin: 12px 0;\n  padding: 8px 16px;\n  background: var(--gh-bg-secondary, #161b22);\n  color: var(--gh-text-secondary, #8b949e);\n}\n.gh-markdown-preview ul,\n.gh-markdown-preview ol {\n  margin: 8px 0;\n  padding-left: 24px;\n}\n.gh-markdown-preview li { margin: 4px 0; }\n.gh-markdown-preview a {\n  color: var(--gh-primary, #58a6ff);\n  text-decoration: none;\n}\n.gh-markdown-preview a:hover { text-decoration: underline; }\n\n/* 任务列表样式 */\n.gh-markdown-preview .task-list-item {\n  list-style: none;\n  margin-left: -20px;\n}\n.gh-markdown-preview .task-list-item input[type=\"checkbox\"] {\n  margin-right: 8px;\n  pointer-events: none;\n}\n\n/* 高亮 ==text== */\n.gh-markdown-preview mark {\n  background: rgba(255, 235, 59, 0.4);\n  color: inherit;\n  padding: 2px 4px;\n  border-radius: 3px;\n}\n\n/* 容器样式 :::info, :::warning, :::danger */\n.gh-container {\n  margin: 12px 0;\n  padding: 12px 16px;\n  border-radius: 6px;\n  border-left: 4px solid;\n}\n.gh-container-info {\n  background: rgba(56, 139, 253, 0.1);\n  border-color: #388bfd;\n}\n.gh-container-warning {\n  background: rgba(255, 166, 87, 0.1);\n  border-color: #ffa657;\n}\n.gh-container-danger {\n  background: rgba(248, 81, 73, 0.1);\n  border-color: #f85149;\n}\n"})]}):void 0}),je&&P.jsx(Ed,{folders:I.getFolders(),excludeFolderId:I.getConversation(je.convId)?.folderId,activeFolderId:je.activeFolderId,onSelect:async e=>{await I.moveConversation(je.convId,e),Re(null);},onCancel:()=>Re(null)}),pn&&P.jsx(Ad,{tags:bn,conv:I.getConversation(pn.convId),onCancel:()=>mn(null),onCreateTag:async(e,t)=>yn(e,t),onUpdateTag:async(e,t,n)=>vn(e,t,n),onDeleteTag:async e=>{xn(e);},onSetConversationTags:async(e,t)=>{await I.updateConversation(e,{tagIds:t});},onRefresh:()=>{}}),Fe&&P.jsx(Cd,{title:En("floatingToolbarClearGhost")||"清除无效收藏",message:(En("floatingToolbarClearGhostConfirm")||"是否清除本会话中的 {count} 个无效收藏?").replace("{count}",String(nn)),danger:true,onConfirm:()=>{Oe(false),ln();},onCancel:()=>Oe(false)}),L&&M&&(e?.features?.prompts?.promptQueue??false)&&P.jsx(eu,{adapter:L,dispatcher:M}),
         P.jsx(Id,{})]}):null}; exports({ u: _u, g: Lu });function Bh(){return "undefined"!=typeof unsafeWindow&&unsafeWindow!==window?unsafeWindow:window}class qh{urlPatterns;silenceThreshold;onComplete;onStart;domValidation;_activeCount=0;_silenceTimer=null;_isMonitoring=false;_originalFetch=null;_originalXhrOpen=null;_originalXhrSend=null;_lastUrl="";_hasTriggeredStart=false;_boundHookedFetch;constructor(e={}){this.urlPatterns=e.urlPatterns||[],this.silenceThreshold=e.silenceThreshold||3e3,this.onComplete=e.onComplete||(()=>{}),this.onStart=e.onStart||null,this.domValidation=e.domValidation||null,this._boundHookedFetch=this._hookedFetch.bind(this);}start(){if(this._isMonitoring)return;const e=Bh();this._originalFetch=e.fetch,e.fetch=this._boundHookedFetch,this._hookXHR(),this._isMonitoring=true;}stop(){if(!this._isMonitoring)return;const e=Bh();this._originalFetch&&(e.fetch=this._originalFetch,this._originalFetch=null),this._unhookXHR(),this._silenceTimer&&(clearTimeout(this._silenceTimer),this._silenceTimer=null),this._isMonitoring=false,this._activeCount=0,this._hasTriggeredStart=false;}_isTargetUrl(e){return !(!e||0===this.urlPatterns.length)&&this.urlPatterns.some(t=>e.includes(t))}_tryTriggerComplete(){if(this._activeCount>0)return;const e={activeCount:this._activeCount,lastUrl:this._lastUrl,timestamp:Date.now()};if(this.domValidation)try{if(!this.domValidation(e))return void(this._silenceTimer=setTimeout(()=>this._tryTriggerComplete(),1e3))}catch(t){console.error(t);}this._hasTriggeredStart=false;try{this.onComplete(e);}catch(t){console.error(t);}}async _hookedFetch(...e){const t=Bh(),n=e[0]?e[0].toString():"";if(!this._isTargetUrl(n))return this._originalFetch.call(t,...e);if(this._activeCount++,this._lastUrl=n,this._silenceTimer&&(clearTimeout(this._silenceTimer),this._silenceTimer=null),!this._hasTriggeredStart&&this.onStart){this._hasTriggeredStart=true;try{this.onStart({url:n,timestamp:Date.now(),type:"fetch"});}catch{}}try{const n=await this._originalFetch.call(t,...e),r=n.clone();return this._readStream(r).catch(()=>{}),n}catch(r){throw this._decrementAndSchedule(),r}}async _readStream(e){try{if(!e.body)return;const t=e.body.getReader();for(;;){const{done:e}=await t.read();if(e)break}}catch{}finally{this._decrementAndSchedule();}}_decrementAndSchedule(){this._activeCount=Math.max(0,this._activeCount-1),this._silenceTimer&&clearTimeout(this._silenceTimer),this._silenceTimer=setTimeout(()=>this._tryTriggerComplete(),this.silenceThreshold);}_hookXHR(){const e=this,t=Bh().XMLHttpRequest;this._originalXhrOpen=t.prototype.open,this._originalXhrSend=t.prototype.send,t.prototype.open=function(t,n,...r){return this._networkMonitorUrl=n?n.toString():"",e._originalXhrOpen.call(this,t,n,...r)},t.prototype.send=function(t){const n=this._networkMonitorUrl||"";if(!e._isTargetUrl(n))return e._originalXhrSend.call(this,t);if(e._activeCount++,e._lastUrl=n,e._silenceTimer&&(clearTimeout(e._silenceTimer),e._silenceTimer=null),!e._hasTriggeredStart&&e.onStart){e._hasTriggeredStart=true;try{e.onStart({url:n,timestamp:Date.now(),type:"xhr"});}catch{}}const r=()=>{e._decrementAndSchedule();};return this.addEventListener("load",r),this.addEventListener("error",r),this.addEventListener("abort",r),this.addEventListener("timeout",r),e._originalXhrSend.call(this,t)};}_unhookXHR(){const e=Bh().XMLHttpRequest;this._originalXhrOpen&&(e.prototype.open=this._originalXhrOpen,this._originalXhrOpen=null),this._originalXhrSend&&(e.prototype.send=this._originalXhrSend,this._originalXhrSend=null);}}let Uh=null,Hh=false;const Wh=':root,:host{--gh-bg: #ffffff;--gh-bg-secondary: #f9fafb;--gh-bg-tertiary: #f3f4f6;--gh-text: #1f2937;--gh-text-secondary: #6b7280;--gh-text-tertiary: #9ca3af;--gh-text-on-primary: #ffffff;--gh-border: #e5e7eb;--gh-border-active: #6366f1;--gh-hover: #f3f4f6;--gh-active-bg: #e5e7eb;--gh-input-bg: #ffffff;--gh-input-border: #d1d5db;--gh-icon: var(--gh-text-secondary);--gh-icon-active: var(--gh-primary);--gh-icon-hover: var(--gh-text);--gh-shadow: 0 10px 40px rgba(0, 0, 0, .15);--gh-shadow-sm: 0 1px 3px rgba(0, 0, 0, .1);--gh-shadow-lg: 0 20px 60px rgba(0, 0, 0, .3);--gh-primary: #4285f4;--gh-secondary: #34a853;--gh-danger: #ef4444;--gh-brand-gradient: linear-gradient(135deg, #4285f4 0%, #34a853 100%);--gh-shadow-brand: 0 4px 12px rgba(66, 133, 244, .3);--gh-header-bg: linear-gradient(135deg, #4285f4 0%, #34a853 100%);--gh-tag-active-bg: #4285f4;--gh-checkbox-bg: #4f46e5;--gh-folder-bg-default: #e0f2fe;--gh-folder-bg-expanded: #c7d2fe;--gh-folder-bg-0: #fef9e7;--gh-folder-bg-1: #fdf2f8;--gh-folder-bg-2: #eff6ff;--gh-folder-bg-3: #ecfdf5;--gh-folder-bg-4: #faf5ff;--gh-folder-bg-5: #fefce8;--gh-folder-bg-6: #ecfeff;--gh-folder-bg-7: #fdf4ff;--gh-outline-locate-bg: rgba(16, 185, 129, .25);--gh-outline-locate-border: #10b981;--gh-outline-locate-shadow: rgba(16, 185, 129, .5);--gh-outline-sync-bg: rgba(52, 211, 153, .1);--gh-outline-sync-border: #34d399;--gh-user-query-bg: rgba(66, 133, 244, .08);--gh-user-query-hover-bg: rgba(66, 133, 244, .15);--gh-search-outline-query-accent: #3b82f6;--gh-search-outline-query-bg: rgba(59, 130, 246, .14);--gh-search-outline-query-text: #1d4ed8;--gh-search-outline-query-border: rgba(59, 130, 246, .32);--gh-search-outline-reply-accent: #8b5cf6;--gh-search-outline-reply-bg: rgba(139, 92, 246, .14);--gh-search-outline-reply-text: #7c3aed;--gh-search-outline-reply-border: rgba(139, 92, 246, .3);--gh-badge-text: #4b5563;--gh-badge-bg: #ffffff;--gh-badge-border: #e5e7eb;--gh-badge-shadow: #ffffff;--gh-bg-danger: #fef2f2;--gh-text-danger: #ef4444;--gh-bg-danger-hover: #fee2e2;--gh-brand-border: transparent;--gh-card-bg: #ffffff;--gh-card-border: #e5e7eb;--gh-selected-gradient: linear-gradient( 135deg, rgba(66, 133, 244, .1) 0%, rgba(52, 211, 153, .1) 100% );--gh-overlay-bg: rgba(0, 0, 0, .5);--gh-btn-shadow: 0 2px 6px rgba(0, 0, 0, .15);--gh-btn-shadow-hover: 0 4px 12px rgba(0, 0, 0, .2);--gh-search-highlight-bg: rgba(255, 235, 59, .5);--gh-glass-bg: rgba(255, 255, 255, .2);--gh-glass-bg-hover: rgba(255, 255, 255, .3);--gh-glass-text: #ffffff;--gh-emoji-selected-bg: #dbeafe;--gh-input-focus-border: #4285f4;--gh-input-focus-shadow: 0 0 0 2px rgba(66, 133, 244, .1);--gh-highlight-pulse: rgba(59, 130, 246, .3);--gh-slider-dot-bg: #d1d5db;--gh-category-1: #fecaca;--gh-category-2: #fed7aa;--gh-category-3: #fef08a;--gh-category-4: #bbf7d0;--gh-category-5: #a5f3fc;--gh-category-6: #c7d2fe;--gh-category-7: #f5d0fe}body[data-gh-mode=dark],html[data-theme=dark]{--gh-bg: #1e1e1e;--gh-bg-secondary: #0b0b0b;--gh-bg-tertiary: #262626;--gh-text: #e3e3e3;--gh-text-secondary: #a0a0a0;--gh-text-tertiary: #6b7280;--gh-border: #333333;--gh-border-active: #818cf8;--gh-hover: #262626;--gh-active-bg: #333333;--gh-input-bg: #262626;--gh-input-border: #404040;--gh-icon: var(--gh-text-secondary);--gh-icon-active: var(--gh-border-active);--gh-icon-hover: var(--gh-text);--gh-shadow: 0 10px 40px rgba(0, 0, 0, .6);--gh-shadow-sm: 0 1px 3px rgba(0, 0, 0, .3);--gh-shadow-lg: 0 20px 60px rgba(0, 0, 0, .7);--gh-header-bg: #1e1e1e;--gh-tag-active-bg: rgba(66, 133, 244, .6);--gh-checkbox-bg: #818cf8;--gh-folder-bg-default: rgba(66, 133, 244, .15);--gh-folder-bg-expanded: rgba(66, 133, 244, .3);--gh-folder-bg-0: rgba(253, 224, 71, .15);--gh-folder-bg-1: rgba(244, 114, 182, .15);--gh-folder-bg-2: rgba(96, 165, 250, .15);--gh-folder-bg-3: rgba(52, 211, 153, .15);--gh-folder-bg-4: rgba(167, 139, 250, .15);--gh-folder-bg-5: rgba(253, 224, 71, .1);--gh-folder-bg-6: rgba(34, 211, 238, .15);--gh-folder-bg-7: rgba(232, 121, 249, .15);--gh-outline-locate-bg: rgba(52, 211, 153, .3);--gh-outline-locate-border: #34d399;--gh-outline-locate-shadow: rgba(52, 211, 153, .6);--gh-outline-sync-bg: rgba(16, 185, 129, .15);--gh-outline-sync-border: #10b981;--gh-user-query-bg: rgba(66, 133, 244, .15);--gh-user-query-hover-bg: rgba(66, 133, 244, .25);--gh-search-outline-query-accent: #60a5fa;--gh-search-outline-query-bg: rgba(96, 165, 250, .25);--gh-search-outline-query-text: #bfdbfe;--gh-search-outline-query-border: rgba(96, 165, 250, .42);--gh-search-outline-reply-accent: #a78bfa;--gh-search-outline-reply-bg: rgba(167, 139, 250, .24);--gh-search-outline-reply-text: #ddd6fe;--gh-search-outline-reply-border: rgba(167, 139, 250, .4);--gh-badge-text: #e5e7eb;--gh-badge-bg: #374151;--gh-badge-border: #4b5563;--gh-badge-shadow: #1f2937;--gh-selected-gradient: linear-gradient( 135deg, rgba(66, 133, 244, .25) 0%, rgba(52, 211, 153, .15) 100% );--gh-overlay-bg: rgba(0, 0, 0, .7);--gh-btn-shadow: 0 2px 6px rgba(0, 0, 0, .4);--gh-btn-shadow-hover: 0 4px 12px rgba(0, 0, 0, .5);--gh-search-highlight-bg: rgba(255, 235, 59, .4);--gh-glass-bg: rgba(255, 255, 255, .08);--gh-glass-bg-hover: rgba(255, 255, 255, .12);--gh-glass-text: #e5e7eb;--gh-emoji-selected-bg: rgba(59, 130, 246, .3);--gh-input-focus-border: #60a5fa;--gh-input-focus-shadow: 0 0 0 2px rgba(96, 165, 250, .2);--gh-highlight-pulse: rgba(96, 165, 250, .4);--gh-slider-dot-bg: #4b5563;--gh-card-bg: #0b0b0b;--gh-card-border: #333333;--gh-category-1: rgba(248, 113, 113, .3);--gh-category-2: rgba(251, 146, 60, .3);--gh-category-3: rgba(250, 204, 21, .3);--gh-category-4: rgba(74, 222, 128, .3);--gh-category-5: rgba(34, 211, 238, .3);--gh-category-6: rgba(129, 140, 248, .3);--gh-category-7: rgba(232, 121, 249, .3);--gh-brand-gradient: linear-gradient(135deg, #8ab4f8 0%, #81c995 100%)}:host{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;font-size:14px;line-height:1.5;color:var(--gh-text, #333);overflow:visible!important}.gh-root{position:fixed;z-index:9999;pointer-events:none;top:0;left:0;width:100vw;height:100vh;display:flex;overflow:visible}.gh-interactive{pointer-events:auto}.gh-panel-header{background:var(--gh-header-bg, linear-gradient(135deg, #4285f4 0%, #34a853 100%));color:#fff;cursor:pointer}.gh-outline-node:hover .outline-item-copy-btn{display:inline-flex!important}.outline-toolbar-btn{width:26px;height:26px;border:1px solid var(--gh-input-border, #d1d5db);border-radius:6px;background:var(--gh-bg, #fff);color:var(--gh-text-secondary, #6b7280);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s;flex-shrink:0}.outline-toolbar-btn:hover{border-color:var(--gh-primary, #4285f4);color:var(--gh-primary, #4285f4);background:var(--gh-hover, #f3f4f6)}.outline-toolbar-btn.active{border-color:var(--gh-primary, #4285f4);color:#fff;background:var(--gh-primary, #4285f4)}.outline-toolbar-btn.active-subtle{border-color:var(--gh-primary, #4285f4);color:var(--gh-primary, #4285f4);background:color-mix(in srgb,var(--gh-primary, #4285f4) 18%,transparent);box-shadow:0 1px 2px #0000000d}.outline-list{display:flex;flex-direction:column;gap:2px}.outline-empty-state{min-height:140px;padding:26px 12px 22px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center}.outline-empty-state-icon{width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:var(--gh-text-tertiary, #9ca3af);background:color-mix(in srgb,var(--gh-border, #e5e7eb) 22%,transparent)}.outline-empty-state-title{font-size:12px;line-height:1.4;font-weight:700;color:var(--gh-text-secondary, #6b7280)}.outline-empty-state-desc{max-width:min(280px,calc(100% - 20px));font-size:12px;line-height:1.4;color:var(--gh-text-tertiary, #9ca3af)}.outline-empty-state-desc-line{display:block}.gh-outline-tree-container{scrollbar-width:none;-ms-overflow-style:none}.ophel-tooltip{background-color:#1e1e23f2;color:#fff;padding:6px 12px;border-radius:6px;font-size:13px;line-height:1.5;z-index:2147483647;pointer-events:none;white-space:pre-wrap;word-wrap:break-word;box-shadow:0 4px 12px #0003;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:tooltip-fade-in .15s ease-out}@keyframes tooltip-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.outline-search-input,.prompt-search-input,.conversations-dialog-input{outline:none;transition:border-color .2s ease,box-shadow .2s ease}.outline-search-input:focus,.prompt-search-input:focus,.conversations-dialog-input:focus{border-color:var(--gh-primary, #4285f4)!important;box-shadow:0 0 0 2px color-mix(in srgb,var(--gh-primary, #4285f4) 20%,transparent)}.gh-outline-tree-container::-webkit-scrollbar{display:none}.outline-hidden{display:none!important}.outline-result-bar{text-align:center;color:#4285f4;font-size:12px;padding:4px 0}.outline-item{padding:6px 10px;border-radius:6px;cursor:pointer;background:transparent;border:1px solid transparent;font-size:13px;color:var(--gh-text, #374151);transition:all .15s;display:flex;align-items:center;position:relative;-webkit-user-select:none;user-select:none}.outline-item:hover{background:var(--gh-hover, #f3f4f6)}.outline-item.highlight{background:var(--gh-outline-locate-bg)!important;border:2px solid var(--gh-outline-locate-border)!important;border-radius:6px!important;box-shadow:inset 0 0 8px var(--gh-outline-locate-shadow);animation:outlineLocatePulse .6s ease-in-out 2;border-right-width:2px!important;border-right-style:solid!important;border-right-color:var(--gh-outline-locate-border)!important}@keyframes outlineLocatePulse{0%,to{transform:scale(1);box-shadow:inset 0 0 8px var(--gh-outline-locate-shadow)}50%{transform:scale(1.02);box-shadow:inset 0 0 12px var(--gh-outline-locate-shadow),0 0 8px var(--gh-outline-locate-shadow)}}.outline-item.sync-highlight,.outline-item.sync-highlight-visible{background:var(--gh-outline-sync-bg)!important;border-right:3px solid var(--gh-outline-sync-border)!important;border-radius:4px 0 0 4px}.outline-item-toggle{width:24px;min-width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;color:#9ca3af;cursor:pointer;transition:all .2s ease;font-size:16px;flex-shrink:0;margin-right:2px;box-sizing:border-box;border-radius:4px}.outline-item-toggle:hover{color:var(--gh-border-active);background-color:#0000000d}.outline-item-toggle.expanded{transform:rotate(90deg);color:var(--gh-border-active)}.outline-item-toggle.invisible{opacity:0;cursor:default;pointer-events:none;visibility:visible!important;display:inline-flex!important}.outline-item-text{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:24px}.outline-level-0{padding-left:2px;font-weight:500}.outline-level-1{padding-left:10px;font-weight:600;font-size:14px}.outline-level-2{padding-left:28px;font-weight:500}.outline-level-3{padding-left:46px}.outline-level-4{padding-left:64px;font-size:12px}.outline-level-5{padding-left:82px;font-size:12px;color:var(--gh-text-secondary, #6b7280)}.outline-level-6{padding-left:100px;font-size:12px;color:#9ca3af}.outline-item.user-query-node{background:color-mix(in srgb,var(--gh-primary, #4285f4) 12%,var(--gh-bg));border:1px solid color-mix(in srgb,var(--gh-primary, #4285f4) 30%,transparent);border-left:none;box-shadow:var(--gh-shadow-sm);font-weight:600;padding-left:14px!important;margin-top:14px;margin-bottom:4px;border-radius:8px!important;position:relative;overflow:visible;transition:all .2s cubic-bezier(.25,.8,.25,1)}.outline-item.user-query-node:before{content:"";position:absolute;left:4px;top:50%;transform:translateY(-50%);width:4px;height:18px;border-radius:4px;background-color:var(--gh-primary, #4285f4);box-shadow:0 1px 4px color-mix(in srgb,var(--gh-primary, #4285f4) 40%,transparent);transition:all .2s ease}.outline-item.user-query-node:first-child{margin-top:0}.outline-item.user-query-node:hover{background:color-mix(in srgb,var(--gh-primary, #4285f4) 18%,var(--gh-bg));border-color:color-mix(in srgb,var(--gh-primary, #4285f4) 50%,transparent);box-shadow:var(--gh-shadow-brand);transform:translateY(-1px)}.outline-item.user-query-node:hover:before{height:22px;background-color:var(--gh-primary, #4285f4);box-shadow:0 0 10px color-mix(in srgb,var(--gh-primary, #4285f4) 60%,transparent)}.outline-item.user-query-node.sync-highlight,.outline-item.user-query-node.sync-highlight-visible{border-right:none!important;border-radius:8px!important;border:1px solid var(--gh-outline-sync-border)!important;box-shadow:0 0 0 1px var(--gh-outline-sync-border),var(--gh-shadow-sm)!important;background:color-mix(in srgb,var(--gh-outline-sync-bg) 40%,var(--gh-bg))!important}.outline-item.user-query-node.sync-highlight:before,.outline-item.user-query-node.sync-highlight-visible:before{background-color:var(--gh-outline-sync-border)!important;box-shadow:0 0 6px color-mix(in srgb,var(--gh-outline-sync-border) 60%,transparent)!important}.outline-item.user-query-node.sync-highlight .user-query-badge-number,.outline-item.user-query-node.sync-highlight-visible .user-query-badge-number{color:var(--gh-outline-sync-border)!important;border-color:var(--gh-outline-sync-border)!important;background:var(--gh-bg)!important}.outline-item.user-query-node.highlight{border-right:none!important;border-radius:8px!important;border:2px solid var(--gh-outline-locate-border)!important;box-shadow:0 0 0 2px var(--gh-outline-locate-shadow),var(--gh-shadow-lg)!important;background:color-mix(in srgb,var(--gh-outline-locate-bg) 50%,var(--gh-bg))!important;animation:outlineLocatePulse .6s ease-in-out 2}.outline-item.user-query-node.highlight:before{background-color:var(--gh-outline-locate-border)!important;box-shadow:0 0 8px var(--gh-outline-locate-shadow)!important}.outline-item.user-query-node.highlight .user-query-badge-number{color:var(--gh-bg)!important;background:var(--gh-outline-locate-border)!important;border-color:var(--gh-outline-locate-border)!important}.outline-item.user-query-node .user-query-badge{position:relative;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;margin-right:4px;flex-shrink:0}.outline-item.user-query-node .user-query-badge-icon{font-size:15px;line-height:1;color:var(--gh-text-tertiary, #9ca3af)}.outline-item.user-query-node .user-query-badge-number{position:absolute;bottom:-2px;right:-4px;min-width:12px;height:12px;padding:0 2px;font-size:8px;font-weight:700;line-height:12px;text-align:center;color:var(--gh-badge-text, #4b5563);background:var(--gh-badge-bg, #ffffff);border:1px solid var(--gh-badge-border, #e5e7eb);border-radius:99px;box-shadow:0 0 0 1.5px var(--gh-badge-shadow, #ffffff);z-index:10}.outline-item-copy-btn{position:absolute;right:28px;top:50%;transform:translateY(-50%);width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--gh-text-secondary, #6b7280);cursor:pointer;border-radius:4px;opacity:0;transition:all .2s ease;z-index:5}.outline-item:hover .outline-item-copy-btn{opacity:1;background:var(--gh-hover, #f3f4f6)}.outline-item:hover .outline-item-copy-btn:before{content:"";position:absolute;left:-10px;top:0;width:10px;height:100%;background:linear-gradient(to right,transparent,var(--gh-hover, #f3f4f6));pointer-events:none}.outline-item-copy-btn:hover{color:var(--gh-border-active);transform:translateY(-50%) scale(1.1)}.outline-item-copy-btn svg{width:14px;height:14px}.outline-item-bookmark-wrapper{position:absolute;right:4px;top:50%;transform:translateY(-50%);z-index:5;opacity:.25;transition:opacity .2s ease;width:24px;height:24px}.outline-item-bookmark-wrapper .ophel-tooltip-trigger{width:100%;height:100%}.outline-item-bookmark-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:var(--gh-text-secondary, #6b7280);cursor:pointer;border-radius:4px}.outline-item-bookmark-wrapper.active{opacity:1}.outline-item-bookmark-btn.active{color:#f59e0b}.outline-item-bookmark-btn.active{opacity:1;color:#f59e0b}.outline-item:hover .outline-item-bookmark-wrapper{opacity:1}.outline-item:hover .outline-item-bookmark-btn{background:var(--gh-hover, #f3f4f6)}.outline-item:hover .outline-item-bookmark-wrapper:before{content:"";position:absolute;left:-20px;top:0;width:20px;height:100%;background:linear-gradient(to right,transparent,var(--gh-hover, #f3f4f6));pointer-events:none}.outline-item-bookmark-btn:hover{color:#f59e0b;transform:scale(1.1)}.gh-panel-bookmark-mode-hover .outline-item-bookmark-wrapper:not(.active){opacity:0;pointer-events:none}.gh-panel-bookmark-mode-hover .outline-item:hover .outline-item-bookmark-wrapper{opacity:1!important;pointer-events:auto!important}.gh-panel-bookmark-mode-hidden .outline-item-bookmark-wrapper{display:none!important}.gh-panel-bookmark-mode-hidden .outline-item:hover .outline-item-bookmark-wrapper:before{display:none!important}.gh-panel-bookmark-mode-hidden .outline-item:hover .outline-item-bookmark-btn:before{display:none!important}.ghost-node{opacity:.6}.ghost-text{font-style:italic;color:var(--gh-text-secondary, #9ca3af)}.outline-highlight{animation:outlineHighlight 2s ease-out}@keyframes outlineHighlight{0%{background:#4285f44d}to{background:transparent}}.gh-main-panel.dragging{right:auto!important;transform:none!important}.gh-main-panel.edge-snapped-left{left:calc(10px - var(--panel-width, 320px))!important;right:auto!important;transition:left .3s ease,opacity .3s ease}.gh-main-panel.edge-snapped-left:hover,.gh-main-panel.edge-snapped-left.edge-peek{left:0!important}.gh-main-panel.edge-snapped-right{right:calc(10px - var(--panel-width, 320px))!important;left:auto!important;transition:right .3s ease,opacity .3s ease}.gh-main-panel.edge-snapped-right:hover,.gh-main-panel.edge-snapped-right.edge-peek{right:0!important}.edge-snap-trigger{position:fixed;top:50%;transform:translateY(-50%);width:12px;height:80px;background:var(--gh-header-bg);cursor:pointer;z-index:999998;display:none;align-items:center;justify-content:center;box-shadow:2px 0 8px #00000026;transition:width .2s ease}.edge-snap-trigger.left{left:0;border-radius:0 8px 8px 0}.edge-snap-trigger.right{right:0;border-radius:8px 0 0 8px;box-shadow:-2px 0 8px #00000026}.edge-snap-trigger:hover{width:16px}.edge-snap-trigger.visible{display:flex}.edge-snap-trigger:after{content:"";width:4px;height:30px;background:#ffffff80;border-radius:2px}.quick-prompt-btn{width:44px;height:44px;background:var(--gh-header-bg);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;cursor:pointer;box-shadow:0 4px 12px #4285f44d;border:none;transition:transform .3s}.quick-prompt-btn:hover{transform:scale(1.1)}.quick-prompt-btn.active{box-shadow:0 0 0 2px #fff9,0 6px 16px #4285f473}.quick-prompt-btn.tools-trigger-btn{transition:transform .4s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,background-color .3s ease}.quick-prompt-btn.tools-trigger-btn.active{box-shadow:0 0 0 2px #fff9,0 0 20px #4285f499;background:var(--gh-primary);animation:tools-spin 3s linear infinite}@keyframes tools-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.quick-btn-group{position:fixed;right:16px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px;z-index:999997;transition:opacity .3s;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none}.quick-btn-group.dragging{cursor:grabbing}.quick-btn-group .quick-btn-drag-handle{width:28px;height:14px;margin:0 auto 2px;border-radius:999px;background:color-mix(in srgb,var(--gh-text) 14%,var(--gh-bg) 86%);display:flex;align-items:center;justify-content:center;box-shadow:var(--gh-shadow-sm);opacity:.6;position:relative;overflow:hidden;transition:opacity .2s ease,background .2s ease}.quick-btn-group .quick-btn-drag-handle:before{content:"";width:14px;height:2px;border-radius:999px;background:color-mix(in srgb,var(--gh-text) 70%,transparent);box-shadow:0 -4px color-mix(in srgb,var(--gh-text) 70%,transparent),0 4px color-mix(in srgb,var(--gh-text) 70%,transparent);position:relative;z-index:1}.quick-btn-group .quick-btn-drag-handle:after{content:"";position:absolute;left:0;top:0;height:100%;width:0;background:color-mix(in srgb,var(--gh-primary) 45%,transparent);opacity:.9;z-index:0}.quick-btn-group.pressing .quick-btn-drag-handle:after{animation:quick-btn-hold-fill var(--quick-btn-press-duration, .15s) linear forwards}.quick-btn-group.dragging .quick-btn-drag-handle:after{width:100%}.quick-btn-group:hover .quick-btn-drag-handle{opacity:1}.quick-btn-group.dragging .quick-btn-drag-handle{background:color-mix(in srgb,var(--gh-text) 22%,var(--gh-bg) 78%)}@keyframes quick-btn-hold-fill{0%{width:0}to{width:100%}}.quick-btn-group.dragging .quick-prompt-btn{pointer-events:none}.quick-btn-group .quick-prompt-btn{width:40px;height:40px;font-size:16px;box-shadow:0 2px 8px #00000026}.quick-btn-group .quick-prompt-btn.panel-only{display:none}.quick-btn-group.collapsed .quick-prompt-btn.panel-only{display:flex}.quick-btn-group .quick-prompt-btn.btn-disabled{display:none!important}.quick-btn-group .quick-prompt-btn.manual-anchor-btn.back-btn{opacity:.4;cursor:default}.quick-btn-group .quick-prompt-btn.manual-anchor-btn.back-btn.has-anchor{opacity:1;cursor:pointer}.quick-btn-group .quick-prompt-btn.manual-anchor-btn.clear-btn:hover:not(:disabled){background:#ef4444!important}.quick-btn-group .divider{width:24px;height:1px;background:#ffffff4d;margin:2px auto}.quick-btn-group .divider.panel-only{display:none}.quick-btn-group.collapsed .divider.panel-only{display:block}.quick-menu-popover{position:absolute;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px;padding:8px 6px;background:var(--gh-bg, #ffffff);border:1px solid var(--gh-border, #e5e7eb);border-radius:12px;box-shadow:var(--gh-shadow, 0 6px 16px rgba(0, 0, 0, .1));z-index:999999;animation:quick-menu-enter .2s cubic-bezier(.16,1,.3,1) forwards}.quick-menu-popover.side-left{right:100%;margin-right:14px;transform-origin:right center}.quick-menu-popover.side-right{left:100%;margin-left:14px;transform-origin:left center}.quick-menu-btn{width:32px;height:32px;border-radius:8px;border:none;background:transparent;color:var(--gh-text-secondary, #6b7280);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s ease;position:relative}.quick-menu-btn:hover{background:color-mix(in srgb,var(--gh-text) 6%,transparent);color:var(--gh-text, #111827);transform:scale(1.05)}.quick-menu-btn.active{background:color-mix(in srgb,var(--gh-primary) 10%,transparent);color:var(--gh-primary, #10b981)}.quick-menu-btn.danger{color:var(--gh-error, #ef4444)}.quick-menu-btn.danger:hover{background:color-mix(in srgb,var(--gh-error) 10%,transparent);color:var(--gh-error, #ef4444)}.menu-divider{height:1px;width:80%;background:var(--gh-border, #e5e7eb);margin:2px auto;opacity:.8}.quick-menu-popover:before{content:"";position:absolute;top:50%;width:10px;height:10px;background:var(--gh-bg, #ffffff);border:1px solid var(--gh-border, #e5e7eb);transform:translateY(-50%) rotate(45deg);z-index:-1;border-radius:2px}.quick-menu-popover.side-left:before{right:-5px;border-left:none;border-bottom:none}.quick-menu-popover.side-right:before{left:-5px;border-right:none;border-top:none}@keyframes quick-menu-enter{0%{opacity:0;transform:translateY(-50%) scale(.9) translate(var(--enter-translate-x, 0))}to{opacity:1;transform:translateY(-50%) scale(1) translate(0)}}.quick-menu-popover.side-left{--enter-translate-x: 10px}.quick-menu-popover.side-right{--enter-translate-x: -10px}.scroll-nav-btn{flex:1;max-width:120px;height:32px;border-radius:8px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;color:#fff;gap:4px;background:var(--gh-header-bg);box-shadow:0 2px 6px #00000026;transition:transform .2s,box-shadow .2s}.scroll-nav-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0003}.scroll-nav-btn.anchor-btn{flex:0 0 32px;width:32px;height:32px;max-width:32px;padding:0;border-radius:50%;font-size:14px}.scroll-nav-btn.anchor-btn span{display:inline-block;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}.scroll-nav-btn.anchor-btn:not(:disabled):hover span{transform:rotate(360deg) scale(1.2)}.scroll-nav-btn:disabled{opacity:.4;cursor:default;box-shadow:none}.scroll-nav-btn:disabled:hover{transform:none;box-shadow:none}.prompt-item:hover{border-color:var(--gh-primary, #4285f4)!important;box-shadow:0 4px 12px #4285f426;transform:translateY(-2px)}.prompt-item .prompt-item-actions{display:none}.prompt-item:hover .prompt-item-actions{display:flex!important}.prompt-action-btn:hover{background:var(--gh-hover, #f3f4f6)!important;transform:scale(1.1)}.prompt-item.dragging{opacity:.5}.prompt-item.drop-above{border-top:2px solid var(--gh-primary, #4285f4)!important}.prompt-item.drop-below{border-bottom:2px solid var(--gh-primary, #4285f4)!important}.category-tag:hover{background:var(--gh-border, #e5e7eb)!important}.category-tag.active:hover{background:var(--gh-primary, #4285f4)!important}.category-manage-btn:hover{border-color:var(--gh-primary, #4285f4)!important;color:var(--gh-primary, #4285f4)!important}.add-prompt-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #4285f44d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.prompt-item.selected{background:var(--gh-selected-gradient)!important}.prompt-action-btn,.prompt-modal-content{background:var(--gh-bg, #ffffff)!important}.prompt-list::-webkit-scrollbar{display:none}.prompt-list{scrollbar-width:none;-ms-overflow-style:none}.gh-loading-mask{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2147483646;pointer-events:auto}.gh-loading-content{background:var(--gh-bg, #fff);padding:24px 32px;border-radius:12px;display:flex;flex-direction:column;align-items:center;gap:12px;box-shadow:0 4px 20px #00000026;min-width:200px}.gh-loading-spinner{font-size:32px;animation:gh-spin 1s linear infinite}.gh-loading-text{color:var(--gh-text, #333);font-size:14px;font-weight:500}.gh-loading-hint{color:var(--gh-text-secondary, #9ca3af);font-size:12px;text-align:center}.gh-loading-stop-btn{margin-top:8px;padding:8px 20px;background:var(--gh-primary, #4285f4);color:#fff;border:none;border-radius:6px;font-size:13px;cursor:pointer;transition:background .2s}.gh-loading-stop-btn:hover{background:var(--gh-primary-hover, #3367d6)}@keyframes gh-spin{to{transform:rotate(360deg)}}.gh-theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px;max-height:280px;overflow-y:auto;padding:4px}.gh-theme-grid::-webkit-scrollbar{width:4px}.gh-theme-grid::-webkit-scrollbar-thumb{background:var(--gh-border, #e5e7eb);border-radius:4px}.gh-theme-card{display:flex;flex-direction:column;background:var(--gh-input-bg, #ffffff);border:2px solid transparent;border-radius:8px;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);overflow:hidden;position:relative;box-shadow:0 1px 3px #0000000d}.gh-theme-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.gh-theme-card.active{border-color:var(--gh-primary, #4285f4);box-shadow:0 0 0 2px #4285f426}.gh-theme-preview{height:60px;width:100%;position:relative;display:flex;align-items:center;justify-content:center}.gh-theme-preview-header{position:absolute;top:0;left:0;right:0;height:12px}.gh-theme-color-dots{display:flex;gap:6px;margin-top:8px;z-index:1}.gh-theme-dot{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.1);box-shadow:0 2px 4px #0000001a}.gh-theme-info{padding:8px;display:flex;flex-direction:column;gap:2px;background:var(--gh-card-bg, #ffffff);border-top:1px solid var(--gh-border, #f3f4f6)}.gh-theme-name{font-size:12px;font-weight:600;color:var(--gh-text, #374151);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gh-theme-desc{font-size:10px;color:var(--gh-text-tertiary, #9ca3af);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gh-theme-check{position:absolute;top:6px;right:6px;width:18px;height:18px;background:var(--gh-primary, #4285f4);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;opacity:0;transform:scale(.5);transition:all .2s}@keyframes gh-scanline{0%{background-position:0 0}to{background-position:0 100%}}@keyframes gh-mist-drift{0%{background-position:0 0}to{background-position:100px 100px}}',Kh='.settings-layout{display:flex;height:100vh;background:var(--gh-bg, #f9fafb);color:var(--gh-text, #374151);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif}.settings-sidebar{width:220px;flex-shrink:0;background:var(--gh-bg, #ffffff);border-right:1px solid var(--gh-border, #e5e7eb);display:flex;flex-direction:column;height:100%}.settings-sidebar-header{padding:20px 16px;border-bottom:1px solid var(--gh-border, #e5e7eb)}.settings-sidebar-logo{display:flex;align-items:center;gap:10px;font-size:18px;font-weight:600;color:var(--gh-text, #1f2937)}.settings-sidebar-logo img{width:32px;height:32px;border-radius:50%;transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.settings-sidebar-logo:hover img{transform:rotate(360deg) scale(1.1)}.settings-sidebar-nav{flex:1;padding:12px 8px;overflow-y:auto}.settings-sidebar-footer{padding:16px;border-top:1px solid var(--gh-border, #e5e7eb);display:flex;flex-direction:column;gap:16px;background:var(--gh-bg, #ffffff)}.settings-theme-segmented{display:flex;background:var(--gh-hover, #f3f4f6);padding:4px;border-radius:10px;gap:4px;min-width:0;max-width:100%;overflow:hidden}.settings-theme-segment{flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:6px;padding:6px 4px;min-width:0;border-radius:8px;border:none;background:transparent;color:var(--gh-text-secondary, #6b7280);font-size:13px;cursor:pointer;transition:all .2s ease;overflow:hidden}.settings-theme-segment .segment-label{display:block;flex:1 1 auto;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-theme-segmented.is-compact .settings-theme-segment{gap:4px;padding:4px 2px;font-size:12px}.settings-theme-segmented.is-icon .settings-theme-segment{gap:0;padding:6px 0}.settings-theme-segmented.is-icon .segment-label{display:none}.settings-theme-segment:hover{color:var(--gh-text, #374151)}.settings-theme-segment.active{background:var(--gh-bg, #ffffff);color:var(--gh-text, #1f2937);box-shadow:0 1px 3px #0000001a;font-weight:500}.settings-lang-inline{display:flex;align-items:center;justify-content:center;gap:8px}.lang-link{background:none;border:none;padding:4px 6px;color:var(--gh-text-secondary, #9ca3af);font-size:12px;cursor:pointer;border-radius:4px;transition:all .15s ease}.lang-link:hover{color:var(--gh-text, #374151)}.lang-link.active{color:var(--gh-primary, #4285f4);font-weight:600;background:var(--gh-active-bg, #e0e7ff)}.lang-divider{color:var(--gh-border, #e5e7eb);font-size:12px}.settings-nav-item{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:4px;border-radius:8px;cursor:pointer;transition:all .15s ease;font-size:14px;color:var(--gh-text-secondary, #6b7280);border:none;background:transparent;width:100%;text-align:left}.settings-nav-item:hover{background:var(--gh-hover, #f3f4f6);color:var(--gh-text, #374151)}.settings-nav-item.active{background:var(--gh-active-bg, #e0e7ff);color:var(--gh-primary, #4285f4);font-weight:500}.settings-nav-item-icon{font-size:18px;width:24px;text-align:center}.settings-content{flex:1;overflow-y:auto;padding:24px 32px}.settings-content::-webkit-scrollbar{width:8px}.settings-content::-webkit-scrollbar-track{background:transparent}.settings-content::-webkit-scrollbar-thumb{background:var(--gh-border, #d1d5db);border-radius:4px;border:2px solid transparent;background-clip:padding-box}.settings-content::-webkit-scrollbar-thumb:hover{background:var(--gh-text-secondary, #9ca3af);border:2px solid transparent;background-clip:padding-box}.settings-content{scrollbar-width:thin;scrollbar-color:var(--gh-border, #d1d5db) transparent}.settings-page-title{font-size:24px;font-weight:600;color:var(--gh-text, #1f2937);margin-bottom:8px}.settings-page-desc{font-size:14px;color:var(--gh-text-secondary, #6b7280);margin-bottom:24px}.settings-tab-group{display:flex;gap:4px;padding:4px;background:var(--gh-bg-secondary, #f3f4f6);border-radius:10px;margin-bottom:24px}.settings-tab-item{flex:1;padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;border:none;background:transparent;color:var(--gh-text-secondary, #6b7280)}.settings-tab-item:hover{color:var(--gh-text, #374151)}.settings-tab-item.active{background:var(--gh-bg, #ffffff);color:var(--gh-text, #374151);box-shadow:0 1px 3px #0000001a}.settings-card{background:var(--gh-card-bg, #ffffff);border:1px solid var(--gh-card-border, #e5e7eb);border-radius:12px;padding:20px;margin-bottom:16px}.settings-card-title{font-size:15px;font-weight:600;color:var(--gh-text, #374151);margin-bottom:4px}.settings-card-desc{font-size:13px;color:var(--gh-text-secondary, #6b7280);margin-bottom:16px}.settings-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--gh-border, #f3f4f6)}[data-setting-id]{scroll-margin-top:72px}[data-setting-id].setting-locate-highlight{border-radius:10px;background:#4285f41f;box-shadow:0 0 0 2px #4285f447;animation:settings-locate-highlight 2.2s ease}@keyframes settings-locate-highlight{0%{background:#4285f442;box-shadow:0 0 #4285f473}to{background:#4285f41f;box-shadow:0 0 0 2px #4285f447}}.settings-row:last-child{border-bottom:none;padding-bottom:0}.settings-row:first-child{padding-top:0}.settings-row-info{flex:1;min-width:0}.settings-row-label{font-size:14px;font-weight:500;color:var(--gh-text, #374151);margin-bottom:2px}.settings-row-desc{font-size:12px;color:var(--gh-text-secondary, #9ca3af)}.settings-row-control{flex-shrink:0;margin-left:16px}.settings-row-control .settings-input{box-sizing:border-box}.settings-row.disabled{opacity:.5;pointer-events:none}.settings-row.disabled.disabled-clickable{pointer-events:auto;cursor:not-allowed}.settings-row.disabled.disabled-clickable .settings-row-control{pointer-events:none}.settings-select{padding:6px 12px;border-radius:6px;border:1px solid var(--gh-input-border, #d1d5db);font-size:13px;background:var(--gh-input-bg, #ffffff);color:var(--gh-text, #374151);min-width:120px;cursor:pointer}.settings-select:focus{outline:none;border-color:var(--gh-primary, #4285f4)}.settings-input{padding:6px 12px;border-radius:6px;border:1px solid var(--gh-input-border, #d1d5db);font-size:13px;background:var(--gh-input-bg, #ffffff);color:var(--gh-text, #374151);box-sizing:border-box;transition:border-color .2s ease}.settings-input:focus{outline:none;border-color:var(--gh-primary, #4285f4)}.settings-textarea{width:100%;padding:12px;border-radius:8px;border:1px solid var(--gh-input-border, #d1d5db);font-size:13px;font-family:Menlo,Monaco,Consolas,monospace;background:var(--gh-bg-secondary, #f9fafb);color:var(--gh-text, #374151);resize:vertical;min-height:150px}.settings-textarea:focus{outline:none;border-color:var(--gh-primary, #4285f4)}.settings-btn{padding:8px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .15s ease;border:none}.settings-btn-primary{background:var(--gh-primary, #4285f4);color:#fff}.settings-btn-primary:hover{filter:brightness(1.1)}.settings-btn-secondary{background:var(--gh-bg, #ffffff);border:1px solid var(--gh-border, #d1d5db);color:var(--gh-text, #374151)}.settings-btn-secondary:hover{background:var(--gh-hover, #f3f4f6)}.settings-btn-danger{background:var(--gh-text-danger, #ef4444);color:#fff}.settings-btn-danger:hover{filter:brightness(1.1)}.settings-btn-success{background:#10b981;color:#fff}.settings-btn-success:hover{filter:brightness(1.1)}.settings-theme-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.settings-theme-card{padding:12px;border-radius:10px;border:2px solid var(--gh-border, #e5e7eb);cursor:pointer;transition:all .15s ease;text-align:center}.settings-theme-card:hover{border-color:var(--gh-primary, #4285f4)}.settings-theme-card.active{border-color:var(--gh-primary, #4285f4);background:#4285f40d}.settings-theme-preview{height:60px;border-radius:6px;margin-bottom:8px}.settings-theme-name{font-size:13px;font-weight:500;color:var(--gh-text, #374151)}.theme-preview-layout{height:100px;border-radius:8px;overflow:hidden;display:flex;flex-direction:column;border:1px solid #e5e7eb;margin-bottom:8px;position:relative;transition:all .2s ease}.theme-preview-header{height:18px;width:100%;display:flex;align-items:center;padding:0 8px;gap:4px}.theme-preview-dot{width:4px;height:4px;border-radius:50%;background-color:#fff9}.theme-preview-body{flex:1;display:flex;position:relative}.theme-preview-sidebar{width:30%;border-right:1px solid transparent;padding:8px 4px;display:flex;flex-direction:column;gap:4px}.theme-preview-content{flex:1;padding:8px;display:flex;flex-direction:column;gap:6px}.theme-preview-line{height:4px;width:100%;border-radius:2px}.theme-preview-line.short{width:60%}.theme-preview-active-item{height:6px;width:80%;border-radius:3px;margin-top:2px}.theme-preview-hero{height:20px;width:100%;border-radius:4px;margin-bottom:2px}.theme-preview-row{display:flex;align-items:center;gap:6px;margin-top:2px}.theme-preview-avatar{width:12px;height:12px;border-radius:50%}.theme-preview-button{width:40px;height:10px;border-radius:4px;margin-top:auto;align-self:flex-end;opacity:.9}.settings-about-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.settings-about-logo{width:64px;height:64px;border-radius:16px}.settings-about-name{font-size:24px;font-weight:600;color:var(--gh-text, #1f2937)}.settings-about-version{font-size:14px;color:var(--gh-text-secondary, #6b7280);margin-top:4px}.settings-about-links{display:flex;gap:12px;flex-wrap:wrap}.settings-about-link{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border-radius:8px;font-size:14px;color:var(--gh-primary, #4285f4);background:var(--gh-bg-secondary, #f3f4f6);text-decoration:none;transition:all .15s ease}.settings-about-link:hover{background:var(--gh-hover, #e5e7eb)}.settings-sortable-item{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--gh-bg-secondary, #f9fafb);border-radius:8px;margin-bottom:6px}.settings-sortable-item-icon{font-size:18px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.settings-sortable-item-label{flex:1;font-size:14px;color:var(--gh-text, #374151)}.settings-sortable-item-actions{display:flex;gap:4px}.settings-sortable-btn{width:28px;height:28px;border-radius:6px;border:none;background:var(--gh-bg, #ffffff);color:var(--gh-text-secondary, #9ca3af);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px}.settings-sortable-btn:hover{color:var(--gh-text, #374151);background:var(--gh-hover, #e5e7eb)}.settings-sortable-btn:disabled{opacity:.3;cursor:not-allowed}.settings-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000000;animation:settings-modal-fade-in .2s ease;pointer-events:auto}@keyframes settings-modal-fade-in{0%{opacity:0}to{opacity:1}}.settings-modal-container{display:flex;width:90%;max-width:1000px;height:85vh;max-height:700px;background:var(--gh-bg, #f9fafb);border-radius:16px;box-shadow:0 25px 50px -12px #00000040;overflow:hidden;position:relative;animation:settings-modal-slide-in .25s ease;transition:width .3s cubic-bezier(.4,0,.2,1),height .3s cubic-bezier(.4,0,.2,1),max-width .3s cubic-bezier(.4,0,.2,1),max-height .3s cubic-bezier(.4,0,.2,1),border-radius .3s cubic-bezier(.4,0,.2,1)}.settings-modal-container.maximized{width:calc(100vw - 48px);height:calc(100vh - 48px);max-width:none;max-height:none;border-radius:12px}@keyframes settings-modal-slide-in{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.settings-modal-actions{position:absolute;top:12px;right:12px;display:flex;gap:8px;z-index:10}.settings-modal-action-btn{width:32px;height:32px;border-radius:8px;border:none;background:var(--gh-bg-secondary, #f3f4f6);color:var(--gh-text-secondary, #6b7280);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s ease}.settings-modal-action-btn:hover{background:var(--gh-hover, #e5e7eb);color:var(--gh-text, #374151)}.settings-modal-action-btn.close:hover{background:var(--gh-text-danger, #ef4444);color:#fff}.settings-modal-container .settings-sidebar{border-radius:16px 0 0 16px}.settings-modal-container .settings-content{padding-right:48px}.about-section-title{font-size:16px;font-weight:600;color:var(--gh-text);margin-bottom:12px;margin-top:24px}.about-section-title:first-of-type{margin-top:0}.about-hero-card{background:var(--gh-bg-secondary, #f3f4f6);border:1px solid var(--gh-border, #e5e7eb);border-radius:16px;padding:24px;display:flex;gap:20px;align-items:flex-start;margin-bottom:32px}.about-hero-logo{width:64px;height:64px;border-radius:50%;object-fit:contain;background:var(--gh-bg);padding:4px;border:1px solid var(--gh-border);transition:transform .8s cubic-bezier(.34,1.56,.64,1)}.about-hero-logo:hover{transform:rotate(360deg) scale(1.1);box-shadow:0 10px 25px -5px #0003;border-color:var(--gh-primary, #4285f4)}.about-hero-content{flex:1}.about-hero-title{font-size:20px;font-weight:700;color:var(--gh-text);margin-bottom:8px;display:flex;align-items:center;gap:12px}.about-hero-version{font-size:12px;font-weight:500;padding:2px 8px;border-radius:12px;background:var(--gh-text-secondary, #9ca3af);color:#fff}.about-hero-desc{font-size:14px;color:var(--gh-text-secondary);line-height:1.6}.about-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin-bottom:32px}.about-link-card{background:var(--gh-card-bg, #fff);border:1px solid var(--gh-border, #e5e7eb);border-radius:12px;padding:20px;display:flex;flex-direction:column;transition:all .2s ease;text-decoration:none}.about-link-card:hover{border-color:var(--gh-primary, #4285f4);transform:translateY(-2px);box-shadow:0 4px 12px #0000000d}.about-link-header{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;color:var(--gh-text);margin-bottom:8px}.about-link-desc{font-size:13px;color:var(--gh-text-secondary);margin-bottom:16px;flex:1}.about-link-btn{align-self:flex-start;padding:6px 16px;background:var(--gh-primary, #4285f4);color:#fff;border-radius:6px;font-size:13px;font-weight:500;border:none;cursor:pointer}.about-star-btn{background:linear-gradient(135deg,#ffc107,#ff9800)!important;color:#fff!important;font-weight:600;border:none!important;border-radius:24px!important;padding:8px 24px!important;box-shadow:0 4px 12px #ff98004d;position:relative;overflow:hidden;transition:all .3s cubic-bezier(.34,1.56,.64,1);align-self:flex-start!important;margin-top:4px}.about-star-btn:hover{transform:translateY(-2px) scale(1.05);box-shadow:0 8px 20px #ff980073;filter:brightness(1.05)}.about-star-btn:active{transform:translateY(0) scale(.95);box-shadow:0 2px 8px #ff98004d}.about-star-btn svg{stroke:#fff!important;stroke-width:2.5px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.1))}.about-tech-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-bottom:32px}.about-tech-card{background:var(--gh-card-bg, #fff);border:1px solid var(--gh-border, #e5e7eb);border-radius:8px;padding:16px;display:flex;flex-direction:column;justify-content:space-between}.about-tech-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}.about-tech-name{font-weight:600;font-size:14px;color:var(--gh-text)}.about-tech-version{font-size:12px;color:var(--gh-text-secondary);background:var(--gh-bg-secondary);padding:1px 6px;border-radius:4px}.about-tech-desc{font-size:12px;color:var(--gh-text-secondary)}.about-simple-card{background:var(--gh-card-bg, #fff);border:1px solid var(--gh-border, #e5e7eb);border-radius:12px;padding:20px;margin-bottom:24px}.about-simple-header{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:600;color:var(--gh-text);margin-bottom:12px}.about-privacy-banner{background:#10b98114;border:1px solid rgba(16,185,129,.2);border-radius:12px;padding:16px 20px;display:flex;gap:16px;align-items:flex-start;color:#059669}html[data-theme=dark] .about-privacy-banner{background:#10b98126;border-color:#10b9811a;color:#34d399}.about-privacy-icon{flex-shrink:0;width:20px;height:20px;margin-top:2px}.about-privacy-title{font-weight:600;font-size:14px;margin-bottom:4px}.about-privacy-desc{font-size:13px;opacity:.9;line-height:1.5}.about-slogan{font-size:18px;font-weight:700;background:var(--gh-brand-gradient, linear-gradient(135deg, #4285f4 0%, #a855f7 100%));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;display:inline-block}html[data-theme=dark] .about-slogan{background:linear-gradient(135deg,#8ab4f8,#81c995);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.settings-search-overlay{position:fixed;inset:0;z-index:10001;display:flex;align-items:flex-start;justify-content:center;padding-top:max(10vh,56px);background:#0f172a57;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.settings-search-modal{width:min(980px,calc(100vw - 32px));max-height:min(74vh,700px);border:1px solid var(--gh-border, #e5e7eb);border-radius:14px;background:var(--gh-bg, #ffffff);box-shadow:0 24px 60px #00000047;overflow:hidden;display:flex;flex-direction:column}.settings-search-prompt-preview-float{position:fixed;z-index:10002;width:min(420px,calc(100vw - 32px));max-height:min(56vh,420px);overflow:auto;box-sizing:border-box;padding:12px 14px;border:1px solid var(--gh-border, #e5e7eb);border-radius:10px;background:var(--gh-bg, #ffffff);box-shadow:0 18px 40px #00000038}.settings-search-prompt-preview-float::-webkit-scrollbar{width:8px}.settings-search-prompt-preview-float::-webkit-scrollbar-track{background:transparent}.settings-search-prompt-preview-float::-webkit-scrollbar-thumb{background:var(--gh-border, #d1d5db);border-radius:999px}.settings-search-prompt-preview-float h1:first-child,.settings-search-prompt-preview-float h2:first-child,.settings-search-prompt-preview-float h3:first-child,.settings-search-prompt-preview-float p:first-child{margin-top:0}.settings-search-prompt-preview-float h1:last-child,.settings-search-prompt-preview-float h2:last-child,.settings-search-prompt-preview-float h3:last-child,.settings-search-prompt-preview-float p:last-child,.settings-search-prompt-preview-float ul:last-child,.settings-search-prompt-preview-float ol:last-child,.settings-search-prompt-preview-float pre:last-child,.settings-search-prompt-preview-float blockquote:last-child{margin-bottom:0}.settings-search-input-wrap{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--gh-border, #e5e7eb);color:var(--gh-text-secondary, #6b7280)}.settings-search-input{flex:1;border:none;outline:none;font-size:14px;background:transparent;color:var(--gh-text, #1f2937)}.settings-search-hotkey{flex-shrink:0;padding:2px 8px;border-radius:6px;border:1px solid var(--gh-border, #e5e7eb);background:var(--gh-bg-secondary, #f9fafb);color:var(--gh-text-secondary, #6b7280);font-size:11px;line-height:1.6}.settings-search-fuzzy-toggle{flex-shrink:0;height:24px;padding:0 8px;border-radius:999px;border:1px solid var(--gh-border, #e5e7eb);background:var(--gh-bg-secondary, #f9fafb);color:var(--gh-text-secondary, #6b7280);font-size:11px;font-weight:600;line-height:1;cursor:pointer;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.settings-search-fuzzy-toggle:hover,.settings-search-fuzzy-toggle.active{color:var(--gh-primary, #2563eb);border-color:#2563eb47;background:#2563eb14}.settings-search-help{position:relative;flex-shrink:0}.settings-search-help-trigger{width:22px;height:22px;border-radius:999px;border:1px solid var(--gh-border, #e5e7eb);background:var(--gh-bg-secondary, #f9fafb);color:var(--gh-text-secondary, #6b7280);font-size:12px;font-weight:600;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.settings-search-help-trigger:hover,.settings-search-help-trigger.active{color:var(--gh-primary, #2563eb);border-color:#2563eb47;background:#2563eb14}.settings-search-help-popover{position:absolute;top:calc(100% + 8px);right:0;width:min(360px,calc(100vw - 32px));border:1px solid var(--gh-border, #e5e7eb);border-radius:10px;background:var(--gh-bg, #ffffff);box-shadow:0 12px 24px #0f172a1f;z-index:40;padding:10px;display:flex;flex-direction:column;gap:8px}.settings-search-help-title{font-size:13px;font-weight:600;color:var(--gh-text, #1f2937)}.settings-search-help-tip{font-size:11px;color:var(--gh-text-secondary, #6b7280);line-height:1.4}.settings-search-help-items{display:flex;flex-direction:column;gap:4px;max-height:min(360px,46vh);overflow-y:auto;padding-right:2px;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--gh-text-secondary, #6b7280) 45%,transparent) transparent}.settings-search-help-items::-webkit-scrollbar{width:8px}.settings-search-help-items::-webkit-scrollbar-track{background:transparent}.settings-search-help-items::-webkit-scrollbar-thumb{border-radius:999px;border:2px solid transparent;background-clip:padding-box;background:color-mix(in srgb,var(--gh-text-secondary, #6b7280) 45%,transparent)}.settings-search-help-items::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--gh-text-secondary, #6b7280) 62%,transparent)}.settings-search-help-item{width:100%;border:1px solid transparent;border-radius:8px;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;padding:7px 8px;text-align:left}.settings-search-help-item:hover{border-color:#2563eb29;background:#2563eb14}.settings-search-help-token{font-size:12px;color:var(--gh-text, #1f2937);white-space:nowrap}.settings-search-help-desc{font-size:11px;color:var(--gh-text-secondary, #6b7280);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-search-filter-chips{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--gh-border, #e5e7eb);background:var(--gh-bg, #ffffff);flex-wrap:wrap}.settings-search-filter-chip{display:inline-flex;align-items:center;gap:6px;max-width:min(260px,100%);border:1px solid var(--gh-border, #e5e7eb);border-radius:999px;background:var(--gh-bg-secondary, #f9fafb);color:var(--gh-text-secondary, #6b7280);font-size:12px;line-height:1.2;padding:4px 10px;cursor:pointer}.settings-search-filter-chip:hover{background:var(--gh-hover, #f3f4f6);color:var(--gh-text, #374151)}.settings-search-filter-chip-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-search-filter-chip-close{font-size:14px;line-height:1;color:var(--gh-text-secondary, #6b7280)}.settings-search-filter-chip-overflow{font-size:12px;color:var(--gh-text-secondary, #6b7280)}.settings-search-filter-chip-clear-all{border:none;background:transparent;color:var(--gh-primary, #2563eb);font-size:12px;line-height:1.2;cursor:pointer;padding:0}.settings-search-filter-chip-clear-all:hover{text-decoration:underline}.settings-search-syntax-suggestions{display:flex;flex-direction:column;border-bottom:1px solid var(--gh-border, #e5e7eb);background:var(--gh-bg-secondary, #f8fafc);padding:6px;gap:4px}.settings-search-syntax-suggestion{width:100%;border:1px solid transparent;border-radius:8px;background:transparent;display:flex;align-items:center;justify-content:space-between;gap:10px;cursor:pointer;padding:7px 10px;text-align:left}.settings-search-syntax-suggestion:hover,.settings-search-syntax-suggestion.active{border-color:#2563eb29;background:#2563eb14}.settings-search-syntax-suggestion-token{font-size:12px;color:var(--gh-text, #1f2937);white-space:nowrap}.settings-search-syntax-suggestion-desc{font-size:11px;color:var(--gh-text-secondary, #6b7280);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-search-syntax-diagnostics{display:flex;flex-direction:column;gap:4px;padding:8px 10px;border-bottom:1px solid var(--gh-border, #e5e7eb);background:color-mix(in srgb,var(--gh-bg-secondary, #f8fafc) 78%,#fff4e5 22%)}.settings-search-syntax-diagnostic{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:11px;line-height:1.4}.settings-search-syntax-diagnostic-title{color:#b45309;font-weight:600;white-space:nowrap}.settings-search-syntax-diagnostic-detail{color:var(--gh-text-secondary, #6b7280);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-search-shortcut-nudge{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-bottom:1px solid var(--gh-border, #e5e7eb);background:var(--gh-bg-secondary, #f9fafb)}.settings-search-shortcut-nudge-text{font-size:12px;color:var(--gh-text-secondary, #6b7280);min-width:0}.settings-search-shortcut-nudge-action{border:1px solid var(--gh-border, #e5e7eb);background:var(--gh-bg, #ffffff);color:var(--gh-text-secondary, #6b7280);border-radius:8px;padding:4px 8px;font-size:11px;line-height:1.2;cursor:pointer;white-space:nowrap}.settings-search-shortcut-nudge-action:hover{background:var(--gh-hover, #f3f4f6);color:var(--gh-text, #374151)}.settings-search-categories{display:flex;align-items:center;min-height:50px;gap:8px;padding:8px 12px;border-bottom:1px solid var(--gh-border, #e5e7eb);background:var(--gh-bg-secondary, #f9fafb);overflow-x:hidden;flex-wrap:wrap}.settings-search-category{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--gh-border, #e5e7eb);border-radius:999px;background:transparent;color:var(--gh-text-secondary, #6b7280);padding:4px 10px;font-size:12px;line-height:1.4;cursor:pointer;transition:all .16s ease;white-space:nowrap}.settings-search-category:hover{background:var(--gh-hover, #f3f4f6);color:var(--gh-text, #374151)}.settings-search-category.active{background:var(--gh-active-bg, #e0e7ff);border-color:var(--gh-primary, #4285f4);color:var(--gh-primary, #4285f4)}.settings-search-category-count{min-width:18px;padding:0 6px;border-radius:999px;background:var(--gh-bg, #ffffff);border:1px solid var(--gh-border, #e5e7eb);text-align:center}.settings-search-context-bar{min-height:34px;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 12px;border-bottom:1px solid var(--gh-border, #e5e7eb);background:var(--gh-bg, #ffffff)}.settings-search-context-label{font-size:12px;font-weight:600;color:var(--gh-text-secondary, #6b7280);text-transform:uppercase;letter-spacing:.02em;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-search-context-meta{flex-shrink:0;font-size:11px;color:var(--gh-text-secondary, #6b7280);opacity:.86}.settings-search-results{flex:1;overflow-y:auto;overflow-x:hidden;padding:8px;display:flex;flex-direction:column;gap:4px;scroll-padding-top:8px;scroll-padding-bottom:12px;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:var(--gh-border, #d1d5db) transparent}.settings-search-results::-webkit-scrollbar{width:10px}.settings-search-results::-webkit-scrollbar-track{background:transparent;margin:6px 0}.settings-search-results::-webkit-scrollbar-thumb{background:var(--gh-border, #d1d5db);border-radius:999px;border:3px solid transparent;background-clip:padding-box;min-height:36px}.settings-search-results::-webkit-scrollbar-thumb:hover{background:var(--gh-text-secondary, #9ca3af);border:3px solid transparent;background-clip:padding-box}.settings-search-results::-webkit-scrollbar-thumb:active{background:var(--gh-primary, #4285f4);border:3px solid transparent;background-clip:padding-box}.settings-search-results::-webkit-scrollbar-button{display:none;width:0;height:0}.settings-search-results::-webkit-scrollbar-corner{background:transparent}.settings-search-results .gh-code-copy-btn svg{display:block;width:14px;height:14px}.settings-search-group{display:flex;flex-direction:column;gap:4px}.settings-search-group+.settings-search-group{margin-top:8px}.settings-search-group-title{margin:2px 0 0;padding:4px 2px;background:transparent;color:var(--gh-text-secondary, #6b7280);font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;display:flex;align-items:center;justify-content:space-between;gap:8px}.settings-search-group-count{font-size:10px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--gh-text-secondary, #6b7280);opacity:.8}.settings-search-group-more{margin:6px 0 2px;padding:6px 10px;border:1px solid var(--gh-border, #e5e7eb);border-radius:8px;background:var(--gh-bg-secondary, #f9fafb);color:var(--gh-text-secondary, #4b5563);font-size:12px;cursor:pointer;transition:background-color .16s ease,border-color .16s ease}.settings-search-group-more:hover{background:var(--gh-hover, #f3f4f6);border-color:var(--gh-active-bg, #c7d2fe)}.settings-search-group-more:focus-visible{outline:2px solid var(--gh-active-bg, #c7d2fe);outline-offset:1px}.settings-search-item{width:100%;text-align:left;background:transparent;border:none;box-sizing:border-box;border-radius:10px;padding:10px 12px;cursor:pointer;color:var(--gh-text, #1f2937);transition:background-color .16s ease;scroll-margin-top:8px;scroll-margin-bottom:12px}.settings-search-item:hover{background:var(--gh-hover, #f3f4f6)}.settings-search-item.active{background:var(--gh-active-bg, #e0e7ff)}.settings-search-item.outline-item{position:relative;padding-left:16px}.settings-search-item.outline-item:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:999px;opacity:.9}.settings-search-item.outline-query:before{background:var(--gh-search-outline-query-accent, #3b82f6)}.settings-search-item.outline-reply:before{background:var(--gh-search-outline-reply-accent, #8b5cf6)}.settings-search-highlight{background:#6366f133;color:inherit;border-radius:3px;padding:0 1px}.settings-search-highlight-tag{background:#ffffff47;color:#fff}.settings-search-highlight-code{background:#6366f138;color:inherit}.settings-search-highlight-fuzzy{background:#f59e0b33;box-shadow:inset 0 -1px #d9770673}.settings-search-highlight-tag.settings-search-highlight-fuzzy{background:#ffffff57;box-shadow:inset 0 -1px #ffffff8c}.settings-search-highlight-code.settings-search-highlight-fuzzy{background:#f59e0b3d}.settings-search-item-title{font-size:14px;font-weight:600;line-height:1.4;min-width:0}.settings-search-item-title-text{flex:1;min-width:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;word-break:break-word}.settings-search-item-snippet{margin-top:3px;color:var(--gh-text-secondary, #6b7280);font-size:12px;line-height:1.4;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden;word-break:break-word}.settings-search-item-snippet-prefix{color:var(--gh-text-tertiary, #9ca3af);margin-right:4px}.settings-search-outline-head{display:flex;align-items:flex-start;gap:8px;min-width:0}.settings-search-outline-role,.settings-search-outline-code{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:600;line-height:20px;letter-spacing:.01em;white-space:nowrap;max-width:88px;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;border:1px solid transparent}.settings-search-outline-role.query{color:var(--gh-search-outline-query-text, #1d4ed8);background:var(--gh-search-outline-query-bg, rgba(59, 130, 246, .14));border-color:var(--gh-search-outline-query-border, rgba(59, 130, 246, .32))}.settings-search-outline-role.reply{color:var(--gh-search-outline-reply-text, #7c3aed);background:var(--gh-search-outline-reply-bg, rgba(139, 92, 246, .14));border-color:var(--gh-search-outline-reply-border, rgba(139, 92, 246, .3))}.settings-search-outline-code{color:var(--gh-text-secondary, #6b7280);background:var(--gh-bg-secondary, #f9fafb);border-color:var(--gh-border, #e5e7eb)}.settings-search-item-meta{margin-top:4px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;color:var(--gh-text-secondary, #6b7280);font-size:12px}.settings-search-item-meta-left{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}.settings-search-item-breadcrumb{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;word-break:break-word}.settings-search-item.outline-item .settings-search-item-meta{margin-top:3px}.settings-search-item.outline-item .settings-search-item-meta-left{width:100%}.settings-search-item.outline-item .settings-search-item-breadcrumb{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal}.settings-search-item.conversation-item .settings-search-item-meta-left{width:100%;flex-wrap:nowrap;align-items:center;overflow:hidden}.settings-search-item.conversation-item .settings-search-item-breadcrumb{display:inline-block;min-width:0;flex:0 1 auto;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal}.settings-search-item.conversation-item .settings-search-tag-list{flex:1 1 auto;min-width:0;flex-wrap:nowrap;max-height:none;overflow:hidden}.settings-search-item.conversation-item .settings-search-tag{flex-shrink:0;max-width:120px}.settings-search-match-reason-list{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap;max-width:100%;overflow:hidden}.settings-search-match-reason-badge{display:inline-flex;align-items:center;height:18px;padding:0 8px;border-radius:999px;font-size:11px;line-height:18px;color:var(--gh-text-secondary, #4b5563);background:var(--gh-bg-secondary, #f9fafb);border:1px solid var(--gh-border, #e5e7eb);white-space:nowrap;flex-shrink:0}.settings-search-tag-list{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;max-height:42px;overflow:hidden}.settings-search-tag{display:inline-flex;align-items:center;height:18px;padding:0 8px;border-radius:999px;font-size:11px;line-height:18px;color:#fff;border:1px solid rgba(255,255,255,.25);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.settings-search-item-meta.no-code{justify-content:flex-start}.settings-search-item-meta code{background:var(--gh-bg-secondary, #f9fafb);border:1px solid var(--gh-border, #e5e7eb);border-radius:6px;padding:1px 6px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;color:var(--gh-text-secondary, #4b5563);white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis;display:inline-block}.settings-search-empty{padding:18px 14px;color:var(--gh-text-secondary, #6b7280);font-size:13px}.settings-search-empty-guide-title{margin-top:10px;font-size:12px;color:var(--gh-text, #374151);font-weight:600}.settings-search-empty-guide-desc{margin-top:6px;font-size:12px;color:var(--gh-text-secondary, #6b7280)}.settings-search-empty-guide-examples{margin-top:10px;display:flex;flex-wrap:wrap;gap:8px}.settings-search-empty-guide-example{border:1px solid var(--gh-border, #e5e7eb);border-radius:8px;background:var(--gh-bg-secondary, #f9fafb);color:var(--gh-text-secondary, #4b5563);font-size:12px;line-height:1.2;cursor:pointer;padding:5px 8px}.settings-search-empty-guide-example:hover{background:var(--gh-hover, #f3f4f6)}.settings-search-footer{border-top:1px solid var(--gh-border, #e5e7eb);padding:9px 12px;color:var(--gh-text-secondary, #6b7280);font-size:12px;background:var(--gh-bg-secondary, #f9fafb)}';if("undefined"==typeof chrome||!chrome.storage){const e=["settings","prompts","folders","tags","readingHistory","claudeSessionKeys","conversations"];window.chrome={storage:{local:{get:(t,n)=>{if(null===t){const t={};for(const n of e){const e=GM_getValue(n);null!=e&&(t[n]=e);}n(t);}else if("string"==typeof t){const e=GM_getValue(t);n({[t]:e});}else {const e={};for(const n of t)e[n]=GM_getValue(n);n(e);}},set:(e,t)=>{for(const[n,r]of Object.entries(e))GM_setValue(n,r);t?.();},remove:(e,t)=>{const n="string"==typeof e?[e]:e;for(const r of n)GM_deleteValue(r);t?.();},clear:t=>{for(const n of e)GM_deleteValue(n);t?.();}},sync:{get:(t,n)=>{if(null===t){const t={};for(const n of e){const e=GM_getValue(n);null!=e&&(t[n]=e);}n(t);}else if("string"==typeof t){const e=GM_getValue(t);n({[t]:e});}else {const e={};for(const n of t)e[n]=GM_getValue(n);n(e);}},set:(e,t)=>{for(const[n,r]of Object.entries(e))GM_setValue(n,r);t?.();},remove:(e,t)=>{const n="string"==typeof e?[e]:e;for(const r of n)GM_deleteValue(r);t?.();},clear:t=>{for(const n of e)GM_deleteValue(n);t?.();}},onChanged:{addListener:()=>{},removeListener:()=>{}}},runtime:{getManifest:()=>({version:"1.0.0"}),getURL:e=>e,sendMessage:()=>Promise.resolve({})}};}const Vh=window.chrome?.storage;Vh&&!Vh.onChanged&&(Vh.onChanged={addListener:()=>{},removeListener:()=>{}});const Gh=window.chrome?.runtime;if(Gh&&!Gh.onMessage&&(Gh.onMessage={addListener:()=>{},removeListener:()=>{}}),window.top!==window.self)throw new Error("Ophel: Running in iframe, skipping initialization");if(window.ophelUserscriptInitialized)throw new Error("Ophel: Already initialized");window.ophelUserscriptInitialized=true,async function(){const e=Oo();if(!e)return void console.warn("[Ophel Userscript] No adapter found for:",window.location.hostname);e.afterPropertiesSet({});const{useSettingsStore:t,getSettingsState:n}=await r(async()=>{const{useSettingsStore:e,getSettingsState:t}=await Promise.resolve().then(()=>Dr);return {useSettingsStore:e,getSettingsState:t}},void 0),{useConversationsStore:o}=await r(async()=>{const{useConversationsStore:e}=await Promise.resolve().then(()=>Uo);return {useConversationsStore:e}},void 0),{useFoldersStore:a}=await r(async()=>{const{useFoldersStore:e}=await Promise.resolve().then(()=>Go);return {useFoldersStore:e}},void 0),{useTagsStore:i}=await r(async()=>{const{useTagsStore:e}=await Promise.resolve().then(()=>Jo);return {useTagsStore:e}},void 0),{usePromptsStore:s}=await r(async()=>{const{usePromptsStore:e}=await Promise.resolve().then(()=>fa);return {usePromptsStore:e}},void 0),{useClaudeSessionKeysStore:l}=await r(async()=>{const{useClaudeSessionKeysStore:e}=await Promise.resolve().then(()=>Qu);return {useClaudeSessionKeysStore:e}},void 0),c=e=>new Promise(t=>{if(e.getState()._hasHydrated)return void t();const n=e.subscribe(e=>{e._hasHydrated&&(n(),t());});});await Promise.all([c(t),c(o),c(a),c(i),c(s),c(l)]);const d=n(),u=e.getSiteId(),{initCoreModules:g,subscribeModuleUpdates:p,initUrlChangeObserver:m}=await r(async()=>{const{initCoreModules:e,subscribeModuleUpdates:t,initUrlChangeObserver:n}=await module.import('./modules-init-DRBPtqVe-ER7j16pX.js');return {initCoreModules:e,subscribeModuleUpdates:t,initUrlChangeObserver:n}},void 0),f={adapter:e,settings:d,siteId:u};await g(f),Hh||(Hh=true,window.addEventListener("message",e=>{const{type:t,payload:n}=e.data||{};e.source!==window&&t!==ei&&t!==ni&&t!==ti||t===ei&&(Uh&&Uh.stop(),Uh=new qh({urlPatterns:n?.urlPatterns,silenceThreshold:n?.silenceThreshold,onStart:e=>window.postMessage({type:ti,payload:e},"*"),onComplete:e=>window.postMessage({type:ni,payload:e},"*")}),Uh.start());})),p(f),m(f);const b=document.createElement("div");b.id="ophel-userscript-root",b.style.cssText="all: initial; position: fixed; z-index: 2147483647;";const y=()=>{b.parentElement||document.body.appendChild(b);},v=window.location.hostname;if(v.includes("chatgpt.com")||v.includes("chat.openai.com")||v.includes("grok.com")||v.includes("claude.ai")){[500,1e3,2e3,3e3].forEach(e=>setTimeout(y,e));new MutationObserver(()=>{b.parentElement||y();}).observe(document.body,{childList:true,subtree:false});}else y();const x=b.attachShadow({mode:"open"}),S=document.createElement("style");S.textContent=[Wh,Ud,Kh].join("\n"),x.appendChild(S);const w=document.createElement("div");w.id="ophel-app-container",x.appendChild(w),D.createRoot(w).render(h.createElement(Oh));}().catch(e=>{console.error("[Ophel Userscript] Initialization failed:",e);});

      })
   };
}));

System.register("./modules-init-DRBPtqVe-ER7j16pX.js", ['./entry-cmhZKcCp-iXZNNucp.js'], (function (exports, module) {
	'use strict';
	var Tr, ur, gr, hr, pr, mr, zn, r, Ca, br, Cr, ar, Nr, ei, ti, ni, ri, Yr, En, ru, _u, Lu, Ka, Fa, na, ra, ld, sd, oa, ud;
	return {
		setters: [module => {
			Tr = module.k;
			ur = module.m;
			gr = module.x;
			hr = module.n;
			pr = module.o;
			mr = module.q;
			zn = module.S;
			r = module._;
			Ca = module.T;
			br = module.v;
			Cr = module.w;
			ar = module.C;
			Nr = module.D;
			ei = module.E;
			ti = module.f;
			ni = module.d;
			ri = module.h;
			Yr = module.s;
			En = module.t;
			ru = module.p;
			_u = module.u;
			Lu = module.g;
			Ka = module.l;
			Fa = module.e;
			na = module.c;
			ra = module.a;
			ld = module.i;
			sd = module.r;
			oa = module.j;
			ud = module.b;
		}],
		execute: (function () {

			exports({
				initCopyManager: le,
				initCoreModules: me,
				initLayoutManager: ae,
				initMarkdownFixer: oe,
				initModelLocker: ue,
				initPolicyRetryManager: ye,
				initReadingHistoryManager: he,
				initScrollLockManager: ge,
				initTabManager: de,
				initThemeManager: re,
				initUrlChangeObserver: we,
				initUserQueryMarkdownRenderer: pe,
				initWatermarkRemover: ce,
				subscribeModuleUpdates: fe,
				syncPageTheme: ie
			});

			class T{settings;siteAdapter=null;formulaCopyInitialized=false;tableCopyInitialized=false;formulaDblClickHandler=null;stopTableWatch=null;rescanTimer=null;constructor(e,t){this.settings=e,this.siteAdapter=t||null;}updateSettings(e){e.formulaCopy!==this.settings.formulaCopy&&(e.formulaCopy?(this.settings=e,this.initFormulaCopy()):this.destroyFormulaCopy()),e.tableCopy!==this.settings.tableCopy&&(e.tableCopy?(this.settings=e,this.initTableCopy()):this.destroyTableCopy()),this.settings=e;}initFormulaCopy(){if(this.formulaCopyInitialized)return;this.formulaCopyInitialized=true;const e="gh-formula-copy-style";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n        .math-block, .math-inline, .katex {\n            user-select: none !important;\n            cursor: pointer !important;\n        }\n        .math-block:hover, .math-inline:hover, .katex:hover {\n            outline: 2px solid #4285f4;\n            outline-offset: 2px;\n            border-radius: 4px;\n        }\n      ",document.head.appendChild(t);}this.formulaDblClickHandler=e=>{const t=e.target,n=t.closest(".math-block, .math-inline");if(n){let t=n.getAttribute("data-math")||n.getAttribute("data-custom-copy-text");if(t)return t=t.replace(/^\\?\(|^\\?\[|^\$\$?|\\?\)$|\\?\]$|\$\$?$/g,"").trim(),this.copyLatex(t,n.classList.contains("math-block")),e.preventDefault(),void e.stopPropagation()}const r=t.closest(".katex");if(r){const t=r.querySelector('annotation[encoding="application/x-tex"]');if(t?.textContent){const n=!!r.closest(".katex-display");return this.copyLatex(t.textContent,n),e.preventDefault(),void e.stopPropagation()}}},document.addEventListener("dblclick",this.formulaDblClickHandler,true);}copyLatex(n,r){let i=n;this.settings.formulaDelimiter&&(i=r?`$$${n}$$`:`$${n}$`),navigator.clipboard.writeText(i).then(()=>Yr(En("formulaCopied"))).catch(n=>{console.error("[FormulaCopy] Copy failed:",n),Yr(En("copyFailed"));});}destroyFormulaCopy(){this.formulaCopyInitialized=false;const e=document.getElementById("gh-formula-copy-style");e&&e.remove(),this.formulaDblClickHandler&&(document.removeEventListener("dblclick",this.formulaDblClickHandler,true),this.formulaDblClickHandler=null);}initTableCopy(){if(this.tableCopyInitialized)return;this.tableCopyInitialized=true;const e="gh-table-copy-style";if(!document.getElementById(e)){const t=document.createElement("style");t.id=e,t.textContent="\n        .gh-table-copy-btn {\n            position: absolute;\n            top: 4px;\n            right: 4px;\n            width: 28px;\n            height: 28px;\n            border: none;\n            border-radius: 6px;\n            background: rgba(255,255,255,0.9);\n            color: #374151;\n            cursor: pointer;\n            font-size: 14px;\n            display: flex;\n            align-items: center;\n            justify-content: center;\n            opacity: 0.7;\n            transition: opacity 0.2s, background 0.2s;\n            z-index: 10;\n            box-shadow: 0 1px 3px rgba(0,0,0,0.1);\n        }\n        .gh-table-container:hover .gh-table-copy-btn,\n        table-block:hover .gh-table-copy-btn,\n        ucs-markdown-table:hover .gh-table-copy-btn {\n            opacity: 1;\n        }\n        .gh-table-copy-btn:hover {\n            background: #4285f4;\n            color: white;\n        }\n    ",document.head.appendChild(t);}this.siteAdapter?.usesShadowDOM()??false?this.startRescanTimer():this.stopTableWatch=Nr.each("table",e=>{this.injectTableButton(e);},{shadow:true});}startRescanTimer(){this.rescanTables(),this.rescanTimer=setInterval(()=>{this.rescanTables();},1e3);}rescanTables(){if(document.hidden)return;const e=Nr.query("table",{all:true,shadow:true});for(const t of e)this.injectTableButton(t);}injectTableButton(n){if(n.dataset.ghTableCopy)return;n.dataset.ghTableCopy="true";const s=n.closest(".gh-user-query-markdown")||n.closest(".gh-markdown-preview");try{let o;if(s)o=n,n.style.position="relative";else {if(o=n.closest("table-block, ucs-markdown-table"),!o){if(o=n.parentNode,!o)return;o.classList.add("gh-table-container");}o.style.position="relative";}const a=document.createElement("button");a.className="gh-table-copy-btn",a.appendChild(na({size:14,color:"#6b7280"})),a.title=En("tableCopyLabel");const l=o.tagName?.toLowerCase(),d="ucs-markdown-table"===l||o.closest("ucs-markdown-table")||o.classList.contains("gh-table-container")?"80px":"4px";Object.assign(a.style,{position:"absolute",top:"4px",right:d,width:"28px",height:"28px",border:"none",borderRadius:"6px",background:"rgba(255,255,255,0.9)",color:"#374151",cursor:"pointer",fontSize:"14px",display:"flex",alignItems:"center",justifyContent:"center",opacity:"0.6",transition:"opacity 0.2s, background 0.2s, transform 0.2s",zIndex:"10",boxShadow:"0 1px 3px rgba(0,0,0,0.1)",pointerEvents:"auto"}),a.addEventListener("mouseenter",()=>{a.style.opacity="1",a.style.transform="scale(1.1)";}),a.addEventListener("mouseleave",()=>{a.style.opacity="0.6",a.style.transform="scale(1)";}),a.addEventListener("click",r=>{r.preventDefault(),r.stopPropagation();const s=this.tableToMarkdown(n);navigator.clipboard.writeText(s).then(()=>{Yr(En("tableCopied")),ra(a,{size:14});}).catch(n=>{console.error("[TableCopy] Copy failed:",n),Yr(En("copyFailed"));});}),o.appendChild(a);}catch(o){console.error("[TableCopy] Error injecting button:",o);}}tableToMarkdown(e){const t=e.querySelectorAll("tr");if(0===t.length)return "";const n=[];let r=false;const i=e=>{if(this.settings.formulaCopy){const t=e.cloneNode(true);return t.querySelectorAll(".math-block, .math-inline").forEach(e=>{const t=e,n=t.getAttribute("data-math");if(n){const e=t.classList.contains("math-block");let r;r=this.settings.formulaDelimiter?e?`$$${n}$$`:`$${n}$`:n,t.replaceWith(document.createTextNode(r));}}),t.innerText?.trim().replace(/\|/g,"\\|").replace(/\n/g," ")||""}return e.innerText?.trim().replace(/\|/g,"\\|").replace(/\n/g," ")||""};return t.forEach((e,t)=>{const s=e.querySelectorAll("th, td"),o=Array.from(s).map(e=>i(e));if(n.push("| "+o.join(" | ")+" |"),!r&&(e.querySelector("th")||0===t)){const e=Array.from(s).map(e=>e.classList.contains("align-center")?":---:":e.classList.contains("align-right")?"---:":"---");n.push("| "+e.join(" | ")+" |"),r=true;}}),n.join("\n")}destroyTableCopy(){this.tableCopyInitialized=false,this.stopTableWatch&&(this.stopTableWatch(),this.stopTableWatch=null),this.rescanTimer&&(clearInterval(this.rescanTimer),this.rescanTimer=null);const e=document.getElementById("gh-table-copy-style");e&&e.remove(),Nr.query(".gh-table-copy-btn",{all:true,shadow:true})?.forEach(e=>e.remove()),Nr.query("[data-gh-table-copy]",{all:true,shadow:true})?.forEach(e=>{e instanceof HTMLElement&&e.removeAttribute("data-gh-table-copy");}),Nr.query(".gh-table-container",{all:true,shadow:true})?.forEach(e=>{e.classList.remove("gh-table-container");});}stop(){this.destroyFormulaCopy(),this.destroyTableCopy();}}const x="gh-page-width-styles",U="gh-page-width-shadow",L="gh-user-query-width-styles",G="gh-user-query-width-shadow",W="gh-zen-mode-styles",H="gh-zen-mode-shadow";class P{siteAdapter;pageWidthConfig;userQueryWidthConfig=null;pageWidthStyle=null;userQueryWidthStyle=null;zenModeStyle=null;zenModeEnabled=false;processedShadowRoots=new WeakSet;shadowCheckInterval=null;constructor(e,t){this.siteAdapter=e,this.pageWidthConfig=t;}updateConfig(e){this.pageWidthConfig=e,this.apply();}apply(){if(this.removeStyle(this.pageWidthStyle),this.pageWidthStyle=null,!this.pageWidthConfig?.enabled)return void this.refreshShadowInjection();const e=this.generatePageWidthCSS();this.pageWidthStyle=this.injectStyle(x,e),this.refreshShadowInjection();}updateUserQueryConfig(e){this.userQueryWidthConfig=e,this.applyUserQueryWidth();}applyUserQueryWidth(){if(this.removeStyle(this.userQueryWidthStyle),this.userQueryWidthStyle=null,!this.userQueryWidthConfig?.enabled)return void this.refreshShadowInjection();const e=this.generateUserQueryWidthCSS();this.userQueryWidthStyle=this.injectStyle(L,e),this.refreshShadowInjection();}updateZenMode(e){this.zenModeEnabled=e,this.applyZenMode();}applyZenMode(){if(this.removeStyle(this.zenModeStyle),this.zenModeStyle=null,!this.zenModeEnabled)return void this.refreshShadowInjection();const e=this.generateZenModeCSS();e&&(this.zenModeStyle=this.injectStyle(W,e)),this.refreshShadowInjection();}generatePageWidthCSS(){const e=`${this.pageWidthConfig.value}${this.pageWidthConfig.unit}`,t=this.siteAdapter.getWidthSelectors();return this.buildCSSFromSelectors(t,e,true)}generateUserQueryWidthCSS(){if(!this.userQueryWidthConfig)return "";const e=`${this.userQueryWidthConfig.value||"600"}${this.userQueryWidthConfig.unit||"px"}`,t=this.siteAdapter.getUserQueryWidthSelectors();return this.buildCSSFromSelectors(t,e,false)}generateZenModeCSS(){const e=this.siteAdapter.getZenModeSelectors();return 0===e.length?"":e.filter(e=>"hide"===e.action).map(e=>`${e.selector} { display: none !important; }`).join("\n")}buildCSSFromSelectors(e,t,n){return e.map(e=>{const{selector:r,globalSelector:i,property:s,value:o,extraCss:a,noCenter:l}=e;return `${n&&i||r} { ${s}: ${o||t} !important; ${l?"":"margin-left: auto !important; margin-right: auto !important;"} ${a||""} }`}).join("\n")}injectStyle(e,t){const n=document.createElement("style");return n.id=e,n.textContent=t,document.head.appendChild(n),n}removeStyle(e){e&&e.remove();}refreshShadowInjection(){if(!(this.pageWidthConfig?.enabled||this.userQueryWidthConfig?.enabled||this.zenModeEnabled))return this.stopShadowInjection(),void this.clearAllShadowStyles();this.startShadowInjection();}startShadowInjection(){this.injectToAllShadows(),this.shadowCheckInterval||(this.shadowCheckInterval=setInterval(()=>this.injectToAllShadows(),1e3));}stopShadowInjection(){this.shadowCheckInterval&&(clearInterval(this.shadowCheckInterval),this.shadowCheckInterval=null);}injectToAllShadows(){if(!document.body)return;const e=this.siteAdapter;Nr.walkShadowRoots((t,r)=>{if(!r||e.shouldInjectIntoShadow(r)){if(this.pageWidthConfig?.enabled){const r=this.buildCSSFromSelectors(e.getWidthSelectors(),`${this.pageWidthConfig.value}${this.pageWidthConfig.unit}`,false);Nr.cssToShadow(t,r,U);}else this.removeStyleFromShadow(t,U);if(this.userQueryWidthConfig?.enabled){const r=this.userQueryWidthConfig.value||"600",i=this.userQueryWidthConfig.unit||"px",s=this.buildCSSFromSelectors(e.getUserQueryWidthSelectors(),`${r}${i}`,false);Nr.cssToShadow(t,s,G);}else this.removeStyleFromShadow(t,G);if(this.zenModeEnabled){const e=this.generateZenModeCSS();e&&Nr.cssToShadow(t,e,H);}else this.removeStyleFromShadow(t,H);this.processedShadowRoots.add(t);}});}removeStyleFromShadow(e,t){const n=e.getElementById(t);n&&n.remove();}clearAllShadowStyles(){document.body&&Nr.walkShadowRoots(e=>{this.removeStyleFromShadow(e,U),this.removeStyleFromShadow(e,G),this.removeStyleFromShadow(e,H),this.processedShadowRoots.delete(e);});}}const F=/<code\b[^>]*>[\s\S]*?<\/code>/gi,B=/<b\b[^>]*>([\s\S]*?)<\/b>/gi,D=/<strong\b[^>]*>([\s\S]*?)<\/strong>/gi,N=/\*\*([^*]+(?:\*(?!\*)[^*]*)*)\*\*/g,V=/###OPHEL_CODE_(\d+)###/g;class j{stopObserver=null;enabled=false;config;constructor(e){this.config=e;}start(){this.enabled||(this.enabled=true,this.fixAllParagraphs(),this.stopObserver=Nr.each(this.config.selector,(e,t)=>{t&&setTimeout(()=>this.fixParagraph(e),100);}));}stop(){this.enabled&&(this.enabled=false,this.stopObserver&&(this.stopObserver(),this.stopObserver=null));}fixAllParagraphs(){Nr.query(this.config.selector,{all:true}).forEach(e=>this.fixParagraph(e));}fixParagraph(e){if(!e.isConnected)return;if(this.config.shouldSkip?.(e))return void setTimeout(()=>this.fixParagraph(e),500);const t=e.innerHTML;if(e.dataset.mdFixerHash===String(t.length))return;if(!t.includes("<b")&&!t.includes("<strong")&&!t.includes("**"))return void(e.dataset.mdFixerHash=String(t.length));const n=[];let r=t.replace(F,e=>(n.push(e),`###OPHEL_CODE_${n.length-1}###`)).replace(D,"**$1**");r=r.replace(B,"**$1**");let i=false;if(r=r.replace(N,(e,t)=>(i=true,`<strong data-original-markdown="**">${t}</strong>`)),i){const i=r.replace(V,(e,t)=>n[parseInt(t,10)]);t!==i&&ud(e,i);}e.dataset.mdFixerHash=String(e.innerHTML.length);}}class Q{adapter;config;isLocked=false;verifyTimer=null;configDebounceTimer=null;constructor(e,t){this.adapter=e,this.config=t;}updateConfig(e){const t=this.config.enabled,n=this.config.keyword;this.config=e;(!t&&e.enabled||e.enabled&&e.keyword!==n)&&(this.configDebounceTimer&&clearTimeout(this.configDebounceTimer),this.configDebounceTimer=setTimeout(()=>{this.configDebounceTimer=null,this.isLocked=false,this.start(50);},500));}start(e=1500){this.config.enabled&&this.config.keyword&&(this.isLocked||setTimeout(()=>{this.isLocked||this.adapter.lockModel(this.config.keyword,()=>{this.startVerification();});},e));}relock(e=300){this.config.enabled&&this.config.keyword&&(this.stop(),this.isLocked=false,this.start(e));}startVerification(){this.verifyTimer&&clearInterval(this.verifyTimer);let e=0,t=0;this.verifyTimer=setInterval(()=>{e++;const n=this.adapter.getModelSwitcherConfig(this.config.keyword);if(!n)return void this.finishVerification();const r=this.adapter.findElementBySelectors(n.selectorButtonSelectors);if(!r)return void this.finishVerification();const i=(r.textContent||"").toLowerCase().trim(),s=n.targetModelKeyword.toLowerCase().trim();i.includes(s)?(t++,(t>=2||e>=3)&&this.finishVerification()):(t=0,e<=2?(this.finishVerification(),this.adapter.lockModel(this.config.keyword,()=>{this.startVerification();})):this.finishVerification());},1500);}finishVerification(){this.isLocked=true,this.verifyTimer&&(clearInterval(this.verifyTimer),this.verifyTimer=null);}stop(){this.configDebounceTimer&&(clearTimeout(this.configDebounceTimer),this.configDebounceTimer=null),this.verifyTimer&&(clearInterval(this.verifyTimer),this.verifyTimer=null),this.isLocked=true;}}class z{adapter;settings;retryCounts=new Map;lastPromptValues=new WeakMap;monitorInitialized=false;constructor(e,t){this.adapter=e,this.settings=t,window.addEventListener("message",this.handleMessage.bind(this)),this.settings.enabled&&this.initNetworkMonitor();}updateSettings(e){const t=this.settings.enabled;this.settings=e,!t&&e.enabled&&this.initNetworkMonitor();}initNetworkMonitor(){if(this.monitorInitialized)return;const e=this.adapter.getNetworkMonitorConfig?.();e&&(window.postMessage({type:ei,payload:{urlPatterns:e.urlPatterns,silenceThreshold:e.silenceThreshold}},"*"),this.monitorInitialized=true);}handleMessage(e){if(this.adapter.getSiteId()!==zn.GEMINI_ENTERPRISE)return;const t=e.data;if(t&&t.type===ni){if(!this.settings.enabled)return;this.checkAndRetry();}}async checkAndRetry(){await new Promise(e=>setTimeout(e,500));const r=Nr.query("ucs-conversation",{shadow:true});if(!r||!r.shadowRoot)return;const i=r.shadowRoot,s=i.querySelector(".turn.last")||i.querySelector(".turn:last-child");if(!s)return;const o=s.querySelector("ucs-summary");if(!o)return;if(!this.findBannedAnswer(o))return;const a=s.querySelector(".question-block");if(!a)return void console.warn("[PolicyRetry] User question block not found");const l=this.adapter.extractUserQueryText(a);if(!l)return void console.warn("[PolicyRetry] Empty user question");const d=await this.sha256(l),c=this.retryCounts.get(d)||0;if(c<this.settings.maxRetries){this.retryCounts.set(d,c+1);const n=En("policyRetryActive").replace("{current}",(c+1).toString()).replace("{max}",this.settings.maxRetries.toString());Yr(n,3e3),await this.performRetry(l);}else Yr(En("policyRetryLimitReached"),3e3);}findBannedAnswer(e){if("ucs-banned-answer"===e.tagName.toLowerCase())return e;const t=e.shadowRoot;if(t){const e=this.findBannedAnswerInNode(t);if(e)return e}return null}findBannedAnswerInNode(e){if(e.nodeType===Node.ELEMENT_NODE){const t=e;if("ucs-banned-answer"===t.tagName.toLowerCase())return t;if(t.shadowRoot){const e=this.findBannedAnswerInNode(t.shadowRoot);if(e)return e}}const t=e.childNodes;for(let n=0;n<t.length;n++){const e=this.findBannedAnswerInNode(t[n]);if(e)return e}return null}async performRetry(e){this.adapter.clearTextarea(),await new Promise(e=>setTimeout(e,100));if(!this.adapter.insertPrompt(e))return void console.error("[PolicyRetry] Failed to insert prompt");await new Promise(e=>setTimeout(e,300));const t=this.adapter.getSubmitButtonSelectors(),r=Nr.query(t,{shadow:true});if(r)r.click();else {const e=this.adapter.findTextarea();e?(e.dispatchEvent(new KeyboardEvent("keydown",{key:"Enter",code:"Enter",keyCode:13,bubbles:true})),e.dispatchEvent(new KeyboardEvent("keypress",{key:"Enter",code:"Enter",keyCode:13,bubbles:true})),e.dispatchEvent(new KeyboardEvent("keyup",{key:"Enter",code:"Enter",keyCode:13,bubbles:true}))):console.error("[PolicyRetry] Submit button and editor not found");}}async sha256(e){const t=(new TextEncoder).encode(e),n=await crypto.subtle.digest("SHA-256",t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,"0")).join("")}}class K{adapter;settings;isRecording=false;isRestoring=false;currentSessionId=null;listeningContainer=null;scrollHandler=null;userInteractionHandler=null;lastSaveTime=0;ignoreScrollUntil=0;positionKeeperRaF=0;keepPositionEndTime=0;restoredTop;constructor(e,t){this.adapter=e,this.settings=t;}async waitForHydration(){_u.getState()._hasHydrated||await new Promise(e=>{const t=_u.subscribe(n=>{n._hasHydrated&&(t(),e());});});}updateSettings(e){this.settings=e,!this.settings.persistence&&this.isRecording?this.stopRecording():this.settings.persistence&&!this.isRecording&&this.startRecording();}startRecording(){if(this.isRecording)return;this.isRecording=true,this.currentSessionId=this.adapter.getSessionId(),this.scrollHandler=e=>this.handleScroll(e);const e=this.adapter.getScrollContainer();e&&(e.addEventListener("scroll",this.scrollHandler,{passive:true}),this.listeningContainer=e),this.ignoreScrollUntil=Date.now()+2e3,this.userInteractionHandler=e=>{if("keydown"===e.type){const t=e.key;if(!["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," "].includes(t))return}this.ignoreScrollUntil>0&&(this.ignoreScrollUntil=0),this.positionKeeperRaF&&this.stopPositionKeeper();},window.addEventListener("wheel",this.userInteractionHandler,{passive:true}),window.addEventListener("touchmove",this.userInteractionHandler,{passive:true}),window.addEventListener("keydown",this.userInteractionHandler,{passive:true}),window.addEventListener("scroll",this.scrollHandler,{capture:true,passive:true}),window.addEventListener("visibilitychange",this.scrollHandler),window.addEventListener("beforeunload",this.scrollHandler);}stopRecording(){this.isRecording&&(this.isRecording=false,this.scrollHandler&&(this.listeningContainer&&(this.listeningContainer.removeEventListener("scroll",this.scrollHandler),this.listeningContainer=null),window.removeEventListener("scroll",this.scrollHandler,{capture:true}),window.removeEventListener("visibilitychange",this.scrollHandler),window.removeEventListener("beforeunload",this.scrollHandler),this.scrollHandler=null),this.userInteractionHandler&&(window.removeEventListener("wheel",this.userInteractionHandler),window.removeEventListener("touchmove",this.userInteractionHandler),window.removeEventListener("keydown",this.userInteractionHandler),this.userInteractionHandler=null),this.stopPositionKeeper());}restartRecording(){this.stopRecording(),this.startRecording();}handleScroll(e){if(!this.settings.persistence)return;if("scroll"===e.type){const t=this.adapter.getScrollContainer(),n=e.target;if(t&&n&&n!==document&&n!==window&&n!==t)return}const t=Date.now();("beforeunload"===e.type||"visibilitychange"===e.type||t-this.lastSaveTime>1e3)&&(this.saveProgress(),this.lastSaveTime=t);}getKey(){const e=this.adapter.getSessionId()||"unknown";return `${this.adapter.getSiteId()}:${e}`}saveProgress(){if(!this.isRecording)return;if(this.isRestoring)return;if(this.currentSessionId&&this.adapter.getSessionId()!==this.currentSessionId)return;if(Date.now()<this.ignoreScrollUntil)return;if(this.adapter.isNewConversation())return;const e=this.adapter.getScrollContainer(),t=e?e.scrollTop:window.scrollY;if(t<0){if(!e)return;if("column-reverse"!==window.getComputedStyle(e).flexDirection)return}const n=this.getKey();let r={};try{this.adapter.getVisibleAnchorElement&&(r=this.adapter.getVisibleAnchorElement()||{});}catch{}const i={top:t,ts:Date.now(),...r};Lu().savePosition(n,i);}async restoreProgress(e){if(!this.settings.autoRestore)return  false;if(this.adapter.isNewConversation())return  false;await this.waitForHydration();const n=this.getKey(),r=Lu().getPosition(n);if(!r)return  false;this.isRestoring=true;let i=false;try{if(r.type&&this.adapter.restoreScroll)try{if(await this.adapter.restoreScroll(r)){const e=this.adapter.getScrollContainer()||document.documentElement;this.restoredTop=e.scrollTop||window.scrollY,i=!0;}}catch{}if(!i){if(void 0===r.top)return !1;try{if(!(await Ka({adapter:this.adapter,loadAll:!0,onProgress:n=>{e?.(`${En("exportLoading")} ${n}`);}})).success)return !1;const n=r.top;await Fa(this.adapter,n),this.restoredTop=n,i=!0;}catch{return !1}}return i}finally{setTimeout(()=>{this.isRestoring=false,void 0!==this.restoredTop&&this.startPositionKeeper(this.restoredTop,3e3);},1e3);}}cleanup(){const e=this.settings.cleanupDays||7;Lu().cleanup(e);}startPositionKeeper(e,t){this.stopPositionKeeper(),this.keepPositionEndTime=Date.now()+t;const n=()=>{if(Date.now()>this.keepPositionEndTime)return void this.stopPositionKeeper();const t=this.adapter.getScrollContainer();t&&Math.abs(t.scrollTop-e)>5&&(t.scrollTop=e),this.positionKeeperRaF=requestAnimationFrame(n);};this.positionKeeperRaF=requestAnimationFrame(n);}stopPositionKeeper(){this.positionKeeperRaF&&(cancelAnimationFrame(this.positionKeeperRaF),this.positionKeeperRaF=0,this.keepPositionEndTime=0);}}class O{adapter;settings;enabled=false;constructor(e,t){this.adapter=e,this.settings=t,this.init();}updateSettings(e){const t=this.settings.panel?.preventAutoScroll;this.settings=e,!t&&e.panel?.preventAutoScroll?this.enable():t&&!e.panel?.preventAutoScroll&&this.disable();}init(){this.settings.panel?.preventAutoScroll&&this.enable();}enable(){this.enabled||(this.enabled=true,this.toggleMainWorldHijack(true));}disable(){this.enabled&&(this.enabled=false,this.toggleMainWorldHijack(false));}stop(){this.disable();}toggleMainWorldHijack(e){window.postMessage({type:"OPHEL_SCROLL_LOCK_TOGGLE",enabled:e},"*");}}class Z{adapter;settings;isRunning=false;intervalId=null;aiState="idle";lastAiState="idle";userSawCompletion=false;lastSessionName=null;notificationAudio=null;boundHandleMessage;boundVisibilityHandler;boundFocusHandler;boundBlurHandler;constructor(e,t){this.adapter=e,this.settings=t,this.boundHandleMessage=this.handleMessage.bind(this),this.boundVisibilityHandler=this.onVisibilityChange.bind(this),this.boundFocusHandler=this.onWindowFocus.bind(this),this.boundBlurHandler=this.onWindowBlur.bind(this),window.addEventListener("message",this.boundHandleMessage),document.addEventListener("visibilitychange",this.boundVisibilityHandler),window.addEventListener("focus",this.boundFocusHandler),window.addEventListener("blur",this.boundBlurHandler);}updateSettings(e){const t=this.settings.renameInterval;this.settings=e,this.settings.autoRename&&!this.isRunning?this.start():!this.settings.autoRename&&this.isRunning&&this.stop(),this.isRunning&&t!==this.settings.renameInterval&&this.setInterval(this.settings.renameInterval||5),this.isRunning&&this.updateTabName(true);}start(){if(!this.settings.autoRename)return;if(this.isRunning)return;if(this.adapter.supportsTabRename&&!this.adapter.supportsTabRename())return;this.isRunning=true,this.updateTabName();const e=1e3*(this.settings.renameInterval||5);this.intervalId=setInterval(()=>this.updateTabName(),e);const t=this.adapter.getNetworkMonitorConfig?this.adapter.getNetworkMonitorConfig():null;t&&window.postMessage({type:ei,payload:{urlPatterns:t.urlPatterns,silenceThreshold:t.silenceThreshold}},"*");}stop(){this.isRunning&&(this.isRunning=false,this.intervalId&&(clearInterval(this.intervalId),this.intervalId=null));}destroy(){this.stop(),window.removeEventListener("message",this.boundHandleMessage),document.removeEventListener("visibilitychange",this.boundVisibilityHandler),window.removeEventListener("focus",this.boundFocusHandler),window.removeEventListener("blur",this.boundBlurHandler);}setInterval(e){if(!this.isRunning)return;const t=1e3*e;this.intervalId&&clearInterval(this.intervalId),this.intervalId=setInterval(()=>this.updateTabName(),t);}togglePrivacyMode(){return this.settings.privacyMode=!this.settings.privacyMode,this.updateTabName(true),this.settings.privacyMode}resetSessionCache(){this.lastSessionName=null;}updateTabName(e=false){if(!this.isRunning&&!e)return;if(this.adapter.supportsTabRename&&!this.adapter.supportsTabRename())return;if(this.settings.privacyMode){const e=this.settings.privacyTitle||"Google";return void(document.title!==e&&(document.title=e))}const t=this.getCleanSessionName(),n=this.isCurrentlyGenerating();"generating"===this.lastAiState&&!n&&this.isUserAway()&&"completed"!==this.aiState&&this.sendCompletionNotification(),this.lastAiState=n?"generating":"idle";const r=false!==this.settings.showStatus?n?"⏳ ":"✅ ":"",i=this.adapter.getName(),s=this.settings.titleFormat||"{status}{title}",o=s.includes("{model}")&&this.adapter.getModelName?.()||"";let a=s.replace("{status}",r).replace("{title}",t||i).replace("{model}",o?`[${o}] `:"").replace("{site}",i).replace(/\s+/g," ").trim();a&&(e||a!==document.title)&&(document.title=a);}getCleanSessionName(){if(this.adapter.isNewConversation?.())return this.lastSessionName=null,null;let e=this.adapter.getConversationTitle?.()||this.adapter.getSessionName?.();return e&&!(e=>!!e&&(!!/^[⏳✅]/.test(e)||(!!/\[[\w\s.]+\]/.test(e)||e===(this.settings.privacyTitle||"Google"))))(e)?(this.lastSessionName=e,e):this.lastSessionName}isCurrentlyGenerating(){return "completed"!==this.aiState&&("generating"===this.aiState||(this.adapter.isGenerating?.()??false))}handleMessage(t){if(t.origin!==window.location.origin)return;const{type:n}=t.data||{};if(n===ti)this.lastAiState=this.aiState,this.aiState="generating",this.updateTabName();else if(n===ni)this.onAiComplete();else if(n===ri){const t=this.togglePrivacyMode();setTimeout(()=>{Yr(t?"隐私模式已开启":"隐私模式已关闭",2e3);},0);}}isUserAway(){const e=document.hidden,t=document.hasFocus(),n="visible"!==document.visibilityState;return e||!t||n}onVisibilityChange(){const e=this.isUserAway();"generating"!==this.aiState||e||this.adapter.isGenerating&&!this.adapter.isGenerating()&&(this.userSawCompletion=true);}onWindowFocus(){"generating"===this.aiState&&this.adapter.isGenerating&&!this.adapter.isGenerating()&&(this.userSawCompletion=true);}onWindowBlur(){}onAiComplete(){const e="generating"===this.aiState;this.lastAiState=this.aiState,this.aiState="completed";const t=this.settings.notifyWhenFocused,n=this.isUserAway();e&&!this.userSawCompletion&&(n||t)&&this.sendCompletionNotification(),this.userSawCompletion=false,this.updateTabName(true);}sendCompletionNotification(){if(this.settings.showNotification)try{const e=this.adapter.getName(),n=En("notificationTitle").replace("{site}",e),r=this.lastSessionName||this.adapter.getConversationTitle?.()||En("notificationBody");ru.notify({title:n,message:r});}catch(e){console.error("[TabManager] 通知发送失败:",e);}this.settings.notificationSound&&this.playNotificationSound(),this.settings.autoFocus&&ru.focusWindow();}playNotificationSound(){const e=chrome.runtime.getURL("assets/streaming-complete-v2.mp3");this.playAudioFromUrl(e);}playAudioFromUrl(e){try{this.notificationAudio||(this.notificationAudio=new Audio);const t=this.settings.notificationVolume??.5;this.notificationAudio.volume=Math.max(.1,Math.min(1,t)),this.notificationAudio.src=e,this.notificationAudio.currentTime=0,this.notificationAudio.play().catch(()=>{});}catch(t){console.error("[TabManager] 音频初始化失败:",t);}}isActive(){return this.isRunning}}const Y=[/^#{1,6}\s+\S/m,/\*\*[^*]+\*\*/,/`[^`]+`/,/^```/m,/^>\s+\S/m,/^[-*]\s+\S/m,/^\d+\.\s+\S/m,/\[.+\]\(.+\)/],X="gh-user-query-markdown-style",J="\n/* ============= 用户提问 Markdown 渲染样式 ============= */\n.gh-user-query-markdown {\n  font-size: 15px;\n  line-height: 1.6;\n}\n\n/* 代码块样式 - 紧凑、自动换行 */\n.gh-user-query-markdown pre {\n  margin: 0.5em 0;\n  padding: 0.75em;\n  padding-right: 0.5em;\n  background: rgba(0, 0, 0, 0.05);\n  border-radius: 6px;\n  font-size: 0.95em;\n  max-height: 200px;\n  overflow: auto;\n  position: relative;\n}\n\n/* 美化滚动条 */\n.gh-user-query-markdown pre::-webkit-scrollbar {\n  width: 6px;\n  height: 6px;\n}\n.gh-user-query-markdown pre::-webkit-scrollbar-track {\n  background: transparent;\n}\n.gh-user-query-markdown pre::-webkit-scrollbar-thumb {\n  background: rgba(0, 0, 0, 0.15);\n  border-radius: 3px;\n}\n.gh-user-query-markdown pre::-webkit-scrollbar-thumb:hover {\n  background: rgba(0, 0, 0, 0.25);\n}\n\n.gh-user-query-markdown pre code {\n  background: transparent;\n  padding: 0;\n  white-space: pre-wrap;\n  word-wrap: break-word;\n  word-break: break-all;\n  overflow: visible; /* 覆盖 .hljs 的 overflow-x: auto,让 pre 控制滚动 */\n}\n\n/* 行内代码 */\n.gh-user-query-markdown code {\n  background: rgba(0, 0, 0, 0.05);\n  padding: 0.2em 0.4em;\n  border-radius: 4px;\n  font-size: 0.9em;\n}\n\n/* 代码块复制按钮 - sticky 定位,滚动时保持可见 */\n.gh-user-query-markdown .gh-code-copy-btn {\n  position: sticky;\n  top: 6px;\n  float: right;\n  margin-top: -1.5em;\n  margin-right: -1.0em;\n  width: 24px;\n  height: 24px;\n  padding: 0;\n  background: rgba(255, 255, 255, 0.9);\n  border: 1px solid rgba(0, 0, 0, 0.1);\n  border-radius: 4px;\n  color: #666;\n  font-size: 12px;\n  cursor: pointer;\n  opacity: 0.2;\n  transition: opacity 0.2s, background 0.2s;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  z-index: 1;\n}\n.gh-user-query-markdown pre:hover .gh-code-copy-btn {\n  opacity: 1;\n}\n.gh-user-query-markdown .gh-code-copy-btn:hover {\n  background: #4285f4;\n  color: white;\n  border-color: #4285f4;\n}\n\n/* 标题间距优化 */\n.gh-user-query-markdown h1,\n.gh-user-query-markdown h2,\n.gh-user-query-markdown h3,\n.gh-user-query-markdown h4,\n.gh-user-query-markdown h5,\n.gh-user-query-markdown h6 {\n  margin: 0.5em 0 0.3em;\n  line-height: 1.3;\n}\n\n.gh-user-query-markdown h1 { font-size: 1.3em; }\n.gh-user-query-markdown h2 { font-size: 1.2em; }\n.gh-user-query-markdown h3 { font-size: 1.1em; }\n\n/* 列表样式 */\n.gh-user-query-markdown ul,\n.gh-user-query-markdown ol {\n  margin: 0.4em 0;\n  padding-left: 1.5em;\n}\n\n.gh-user-query-markdown li {\n  margin: 0.2em 0;\n}\n\n/* 引用块 */\n.gh-user-query-markdown blockquote {\n  margin: 0.5em 0;\n  padding: 0.5em 1em;\n  border-left: 3px solid #4285f4;\n  background: rgba(0, 0, 0, 0.03);\n  border-radius: 0 4px 4px 0;\n}\n\n/* 表格优化 */\n.gh-user-query-markdown table {\n  margin: 0.5em 0;\n  font-size: 0.9em;\n}\n\n/* 分隔线 */\n.gh-user-query-markdown hr {\n  margin: 0.5em 0;\n  border: none;\n  border-top: 1px solid #e5e7eb;\n}\n\n/* 深色模式适配 - 检测 Gemini 的 dark-theme 类 */\nbody.dark-theme .gh-user-query-markdown pre,\nbody.dark-theme .gh-user-query-markdown code {\n  background: rgba(255, 255, 255, 0.08);\n}\nbody.dark-theme .gh-user-query-markdown pre::-webkit-scrollbar-thumb {\n  background: rgba(255, 255, 255, 0.15);\n}\nbody.dark-theme .gh-user-query-markdown pre::-webkit-scrollbar-thumb:hover {\n  background: rgba(255, 255, 255, 0.25);\n}\nbody.dark-theme .gh-user-query-markdown .gh-code-copy-btn {\n  background: rgba(0, 0, 0, 0.5);\n  border-color: rgba(255, 255, 255, 0.1);\n  color: #aaa;\n}\nbody.dark-theme .gh-user-query-markdown blockquote {\n  background: rgba(255, 255, 255, 0.05);\n}\nbody.dark-theme .gh-user-query-markdown hr {\n  border-top-color: #4b5563;\n}\n\n/* Gemini Enterprise 深色模式 */\nhtml[dark-theme] .gh-user-query-markdown pre,\nhtml[dark-theme] .gh-user-query-markdown code {\n  background: rgba(255, 255, 255, 0.08);\n}\nhtml[dark-theme] .gh-user-query-markdown pre::-webkit-scrollbar-thumb {\n  background: rgba(255, 255, 255, 0.15);\n}\nhtml[dark-theme] .gh-user-query-markdown pre::-webkit-scrollbar-thumb:hover {\n  background: rgba(255, 255, 255, 0.25);\n}\nhtml[dark-theme] .gh-user-query-markdown .gh-code-copy-btn {\n  background: rgba(0, 0, 0, 0.5);\n  border-color: rgba(255, 255, 255, 0.1);\n  color: #aaa;\n}\nhtml[dark-theme] .gh-user-query-markdown blockquote {\n  background: rgba(255, 255, 255, 0.05);\n}\nhtml[dark-theme] .gh-user-query-markdown hr {\n  border-top-color: #4b5563;\n}\n\n/* ChatGPT 深色模式(使用 html.dark 类) */\nhtml.dark .gh-user-query-markdown pre,\nhtml.dark .gh-user-query-markdown code {\n  background: rgba(255, 255, 255, 0.08);\n}\nhtml.dark .gh-user-query-markdown pre::-webkit-scrollbar-thumb {\n  background: rgba(255, 255, 255, 0.15);\n}\nhtml.dark .gh-user-query-markdown pre::-webkit-scrollbar-thumb:hover {\n  background: rgba(255, 255, 255, 0.25);\n}\nhtml.dark .gh-user-query-markdown .gh-code-copy-btn {\n  background: rgba(0, 0, 0, 0.5);\n  border-color: rgba(255, 255, 255, 0.1);\n  color: #aaa;\n}\nhtml.dark .gh-user-query-markdown blockquote {\n  background: rgba(255, 255, 255, 0.05);\n}\nhtml.dark .gh-user-query-markdown hr {\n  border-top-color: #4b5563;\n}\n";class ${adapter;enabled;processedElements=new WeakMap;stopWatch=null;rescanTimer=null;injectedShadowRoots=new WeakSet;codeCopyHandler=null;constructor(e,t){this.adapter=e,this.enabled=t,t&&this.init();}init(){const e=this.adapter.getUserQuerySelector();if(!e)return void console.warn("[UserQueryMarkdownRenderer] No user query selector found for this site");this.adapter.usesShadowDOM()?this.startRescanTimer():(this.injectGlobalStyles(),this.initCodeCopyHandler(),this.stopWatch=Nr.each(e,e=>{this.processQueryElement(e);},{shadow:true}),this.adapter.getSiteId()===zn.DOUBAO&&this.startRescanTimer());}injectGlobalStyles(){if(document.getElementById(X))return;const e=document.createElement("style");e.id=X,e.textContent=ld()+"\n"+J,document.head.appendChild(e);}injectStyleToShadowRoot(e){if(this.injectedShadowRoots.has(e))return;if(e.querySelector(`#${X}`))return;const t=document.createElement("style");t.id=X,t.textContent=ld()+"\n"+J,e.prepend(t),this.injectedShadowRoots.add(e),e.addEventListener("click",e=>this.handleCodeCopy(e));}handleCodeCopy(e){const t=e.target.closest(".gh-code-copy-btn");if(t&&t.closest(".gh-user-query-markdown")){e.preventDefault(),e.stopPropagation();const n=t.nextElementSibling?.textContent||"";navigator.clipboard.writeText(n).then(()=>{ra(t,{size:14});}).catch(e=>{console.error("[UserQueryMarkdownRenderer] Copy failed:",e);});}}initCodeCopyHandler(){this.codeCopyHandler||(this.codeCopyHandler=e=>this.handleCodeCopy(e),document.addEventListener("click",this.codeCopyHandler,true));}startRescanTimer(){this.rescanTimer||(setTimeout(()=>{this.enabled&&this.rescan();},1e3),this.rescanTimer=window.setInterval(()=>{this.enabled&&this.rescan();},2e3));}rescan(){if(document.hidden||!document.hasFocus())return;const e=this.adapter.getUserQuerySelector();if(!e)return;const t=Nr.query(e,{all:true,shadow:true});for(const n of t)this.processQueryElement(n);}processQueryElement(e){const t=this.adapter.extractUserQueryMarkdown(e);if(!t)return;if(!(n=t).includes("\n")||!Y.some(e=>e.test(n)))return;var n;if(this.processedElements.get(e)===t)return;const r=sd(t,false);if(this.adapter.usesShadowDOM()){const t=e.querySelector("ucs-fast-markdown");t?.shadowRoot&&this.injectStyleToShadowRoot(t.shadowRoot);}const i=this.adapter.replaceUserQueryContent(e,r);let s=e.querySelector(".gh-user-query-markdown");if(!s&&this.adapter.usesShadowDOM()){const t=e.querySelector("ucs-fast-markdown");t?.shadowRoot&&(s=t.shadowRoot.querySelector(".gh-user-query-markdown"));}if(s)return oa(s,{size:14,color:"#6b7280"}),void this.processedElements.set(e,t);i&&this.processedElements.set(e,t);}updateSettings(e){this.enabled!==e&&(this.enabled=e,e?this.init():this.stop());}stop(){this.stopWatch&&(this.stopWatch(),this.stopWatch=null),this.rescanTimer&&(clearInterval(this.rescanTimer),this.rescanTimer=null);}destroy(){this.stop(),this.processedElements=new WeakMap,this.injectedShadowRoots=new WeakSet;const e=document.getElementById(X);e&&e.remove(),this.codeCopyHandler&&(document.removeEventListener("click",this.codeCopyHandler,true),this.codeCopyHandler=null);}}const _=/^https:\/\/lh3\.googleusercontent\.com\//i;class ee{static BG_48="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAGVElEQVR4nMVYvXIbNxD+FvKMWInXmd2dK7MTO7sj9QKWS7qy/Ab2o/gNmCp0JyZ9dHaldJcqTHfnSSF1R7kwlYmwKRYA93BHmkrseMcjgzgA++HbH2BBxhhmBiB/RYgo+hkGSFv/ZOY3b94w89u3b6HEL8JEYCYATCAi2JYiQ8xMDADGWsvMbfVagm6ZLxKGPXr0qN/vJ0mSpqn0RzuU//Wu9MoyPqxmtqmXJYwxxpiAQzBF4x8/fiyN4XDYoZLA5LfEhtg0+glMIGZY6wABMMbs4CaiR8brkYIDwGg00uuEMUTQ1MYqPBRRYZjZ+q42nxEsaYiV5VOapkmSSLvX62VZprUyM0DiQACIGLCAESIAEINAAAEOcQdD4a+2FJqmhDd/YEVkMpmEtrU2igCocNHW13swRBQYcl0enxbHpzEhKo0xSZJEgLIsC4Q5HJaJ2Qg7kKBjwMJyCDciBBcw7fjSO4tQapdi5vF43IZ+cnISdh9Y0At2RoZWFNtLsxr8N6CUTgCaHq3g+Pg4TVO1FACSaDLmgMhYC8sEQzCu3/mQjNEMSTvoDs4b+nXny5cvo4lBJpNJmKj9z81VrtNhikCgTsRRfAklmurxeKx9JZIsy548eeITKJgAQwzXJlhDTAwDgrXkxxCD2GfqgEPa4rnBOlApFUC/39fR1CmTyWQwGAQrR8TonMRNjjYpTmPSmUnC8ODgQHqSJDk7O9uNBkCv15tOp4eHh8SQgBICiCGu49YnSUJOiLGJcG2ydmdwnRcvXuwwlpYkSabTaZS1vyimc7R2Se16z58/f/jw4Z5LA8iy7NmzZ8J76CQ25F2UGsEAJjxo5194q0fn9unp6fHx8f5oRCQ1nJ+fbxtA3HAjAmCMCaGuAQWgh4eH0+k0y7LGvPiU3CVXV1fz+by+WQkCJYaImKzL6SEN6uMpjBVMg8FgOp3GfnNPQADqup79MLv59AlWn75E/vAlf20ibmWg0Pn06dPJZNLr9e6nfLu8//Ahv/gFAEdcWEsgZnYpR3uM9KRpOplMGmb6SlLX9Ww2q29WyjH8+SI+pD0GQJIkJycn/8J/I4mWjaQoijzPb25uJJsjmAwqprIsG4/HbVZ2L/1fpCiKoijKqgTRBlCWZcPhcDQafUVfuZfUdb1cLpfL5cePf9Lr16/3zLz/g9T1quNy+F2FiYjSNB0Oh8Ph8HtRtV6vi6JYLpdVVbmb8t3dnSAbjUbRNfmbSlmWeZ6XHytEUQafEo0xR0dHUdjvG2X3Sd/Fb0We56t6BX8l2mTq6BCVnqOjo7Ozs29hRGGlqqrOr40CIKqeiGg8Hn/xcri/rG/XeZ7/evnrjjGbC3V05YC/BSRJ8urVq36/3zX7Hjaq63o+n19fX/upUqe5VxFok7UBtQ+T6XQ6GAz2Vd6Ssizn8/nt7a3ay1ZAYbMN520XkKenpx0B2E2SLOo+FEWxWPwMgMnC3/adejZMYLLS42r7oH4LGodpsVgURdHQuIcURbFYLDYlVKg9sCk5wpWNiHym9pUAEQGG6EAqSxhilRQWi0VZVmrz23yI5cPV1dX5TwsmWGYrb2TW36OJGjdXhryKxEeHvjR2Fgzz+bu6XnVgaHEmXhytEK0W1aUADJPjAL6CtPZv5rsGSvUKtv7r8/zdj+v1uoOUpsxms7qunT6+g1/TvTQCxE6XR2kBqxjyZo6K66gsAXB1fZ3neQdJSvI8X61WpNaMWCFuKNrkGuGGmMm95fhpvPkn/f6lAgAuLy/LstyGpq7r9+8d4rAr443qaln/ehHt1siv3dvt2B/RDpJms5lGE62gEy9az0XGcQCK3DL4DTPr0pPZEjPAZVlusoCSoihWqzpCHy7ODRXhbUTJly9oDr4fKDaV9NZJUrszPOjsI0a/FzfwNt4eHH+BSyICqK7rqqo0u0VRrFYridyN87L3pBYf7qvq3wqc3DMldJmiK06pgi8uLqQjAAorRG+p+zLUxks+z7rOkOzlIUy8yrAcQFVV3a4/ywBPmJsVMcTM3l/h9xDlLga4I1PDGaD7UNBPuCKBleUfy2gd+DOrPWubGHJJyD+L+LCTjEXEgH//2uSxhu1/Xzocy+VSL+2cUhrqLVZ/jTYL0IMtQEklT3/iWCutzUljDDNXVSVHRFWW7SOtccHag6V/AF1/slVRyOkZAAAAAElFTkSuQmCC";static BG_96="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAIAAABt+uBvAAAfrElEQVR4nJV9zXNc15Xf75zXIuBUjG45M7GyEahFTMhVMUEvhmQqGYJeRPTG1mokbUL5v5rsaM/CkjdDr4b2RqCnKga9iIHJwqCyMCgvbG/ibparBGjwzpnF+bjnvm7Q9isU2Hj93r3nno/f+bgfJOaZqg4EJfglSkSXMtLAKkRETKqqRMM4jmC1Z5hZVZEXEylUiYgAISKBf8sgiKoqDayqIkJEKBeRArh9++7BwcHn558/+8XRz//30cDDOI7WCxGBCYCIZL9EpKoKEKCqzFzpr09aCzZAb628DjAAggBin5UEBCPfuxcRiIpIG2+On8TuZ9Ot9eg+Pxt9+TkIIDBZL9lU/yLv7Czeeeedra2txWLxzv948KXtL9WxGWuS1HzRvlKAFDpKtm8yGMfRPmc7diVtRcA+8GEYGqMBEDEgIpcABKqkSiIMgYoIKQjCIACqojpmQ+v8IrUuRyVJ9pk2qY7Gpon0AIAAJoG+8Z/eaGQp9vb2UloCFRWI6igQJQWEmGbeCBGI7DMpjFpmBhPPBh/zbAATRCEKZSgn2UzEpGyM1iZCKEhBopzq54IiqGqaWw5VtXAkBl9V3dlUpG2iMD7Yncpcex7eIO/tfb3IDbu7u9kaFTv2Xpi1kMUAmJi5ERDWnZprJm/jomCohjJOlAsFATjJVcIwzFgZzNmKqIg29VNVIiW2RkLD1fGo2hoRQYhBAInAmBW/Z0SD9y9KCmJ9663dVB8o3n77bSJ7HUQ08EBEzMxGFyuxjyqErwLDt1FDpUzfBU6n2w6JYnRlrCCljpXMDFUEv9jZFhDoRAYo8jDwMBiVYcwAYI0Y7xuOAvW3KS0zM7NB5jAMwdPR/jSx77755ny+qGqytbV1/fr11Oscnph+a1PDqphErjnGqqp0eYfKlc1mIz4WdStxDWJms8+0IITdyeWoY2sXgHFalQBiEClctswOBETqPlEASXAdxzGG5L7JsA/A/q1bQDEkAoAbN27kDbN6/1FVHSFjNyS3LKLmW1nVbd9NHsRwxBCoYaKqmpyUREl65IYzKDmaVo1iO0aEccHeGUdXnIo4CB+cdpfmrfHA5eVlEXvzdNd3dxtF4V/39/cFKujIJSIaWMmdReqFjGO2ZpaCUGRXc1COvIIOhbNL3acCQDb2Es5YtIIBI3SUgZw7Ah1VBKpQmH0RlCAQ81noVd16UnKMpOBa93twRbvx9t5ivnC1MQ4Rwaxsd7eyu36wUQzkxDMxmd9Rl6uxyaU+du6/sEBERkMrUmSgY97DyGN7pwlc4UqUuq1q0Cgi6LlrHtY0yNQnv5qMZ/23iHexf/OmhXr5ajZycHC/oklqsT1BAYK1lxy/RtCUNphW0uDCZUdJP3UBCgAwmEYVoiEBmyBEauFJ0w4JnGdWSvCHJHK5TimY3BW5hUqNnoxpNkYiWuzM927sdWakjUfXd3cX83mMzBVcRaAGgo0wOA5YvGZdiMjo5sZEA4NLMK2SKAZpumZDViWMgBjgFoHXq0p7YpberAgA5iC0iMgF7r4fKX/nZDSmqvfu3attrne0f+tWCsmxdhhSlao/yp5SkZkpoj6dtN/rshANptFVfZgtsHAJSKYmREqkDNWxSYM5GjWvpIAoGIJIgkR1lPBrEQCqQiwzM91G+ACGYLHz+q39W5UlTkC5c/f2nWvXrjnQBLKk3WlkdqRQESIGKPwdjxp4Fw4XmaVYKKUQqKE+GEqw4COIIZHwYqkpqtpsLeJOs50ItFpgYoJJL1Dl74lEoobLChbqARiGYX9/XzHV3OzU/tza2rp7925VE44rlcJlTi2VqcplXWeQMfVTmg63Cak+UIIXVQXzbHAzjywnHhsQTtSkoapE3GJiu6Tpp/VYs1PjkcHBl+c7+/v7BKoaQ2SOCCDNb27fuX1t65qJmgYWBIIw0eDphRJM8lr426ROMABSQs3FwAB5EDMMM+ZZlXc+gprFQDnMm2salYFGdQEosU+2aFmuMdX+ybdM8kb3/YP788WihUONJiViTVgnbG9/6c7du0Q0ljCKIoJvFBY3VEU2USuQELdMkJhNhKZiGmlTY5CZTyZyImLGLlBNpRUikKmRB2/mHUM7Mj50iYWXcUMI6YmKBX47Ozs3b36jKg4oYgKFNUupWap3bt+Z7+xYDigiSiygcRyppNkM0lHM1ZICMjJUVCz4NtlbVcfZqgohHaEQwUgtlyoYJ9KKT6lKIpLp/LpbMV3wBKIm0OKZoaq/raOM/3qJgkQUEj44OLCRh4ynvjLU2f/c3tp68OBBakcx2FYkMDmJiNmIB3PULjT1j7ciQKnxXQ2UeBgYUHMzAEQvFSNYlYQwQFrEGVA1dE2IQERMAgMEYjCRDzPPKmX2+e0be/vfuBkKktgIoqaGwbMmmL29vTff3I1xewUqC0Cq5nOK6TFqrquqyqoOUi11hPnZsUV8FLHiQAxRRoG0asNExMNg+XdVv57TbQAWR4hLz6Dh0kJEVU0LB/BO6MJEObuakY2td3Hvfvfd7e1t6omMyAUAtBaOyxUm1hHfY5NbwBClC2Sg51qmYJANzx2JjtAxogZk7uspj3PNQx6DYCJmmmkEqESkKqZlKfaDeweL+VxrvFwGktwBoAnU4c4W88X9gwNS8TqBR+3+UGW4KQcR7GGyorcIhyKnETAzgxkDqZKKoZiqZNbUkm/K8K5wfRIUVAiotfcUiKpSqwB6Vqnq6PPVr3713r17zfLXL+rvR9ICdSC/ffvO7u51J52b+mdklLDNnNoRH/q6lUZoHmQjm2UmzUpGhElehIZ0fHE8F4XoQDOGFRXJ80e28iKrEmGQEYl/RMqzGZhFHC/mX955/72/s8jMR7+RR21U8bV9DA159913t7f/HdEAZVI2s4o40Avno14Gs9j9aY1CGth7nsjMEX+LYIQQKUcVqahAKkhyN0EhYajoUfMpLWpwf+/Ba7mDg4OD+c7CzCgUr5MwjCkGF9IqCl0pjTBfLL77ne8YiQ0uu8C6hdfVRWRMv24Wlo4F9Gg+Q0RliqMRMdjT1fWYfKxCmDcBj1kAWADmwAYmZfMCYFXC3x7cu7l/s3aSvxQgTutWr5umi4sPYWoAsHdj787f3CZS1bFiykAzCBGxjKo0jIFKqqPIZdR61GZZmBkggM39JdYyD9mmiLAqVDDhKFFXh88Xwr6iqoQWQVRWpg4CgOj169cP7h1URdCsKJKDVGOcexxMwoCJur3zzjtvvvlmEWpTZx3B/BplfBQSjVG0cC+RyzNEbSqGzPtIiSnQziom7AVgcJ+2mYoSaPAqTxbx3PGJVtS3Mtt8/vr7f/felWijUFFMHFpGiRWzC2Db9f7777/++rwW5y/FFEqho1uHKBMDnGhrHj39jE8ujqqqIMdsq4VZENfGU6UBQGS0e7XMXJ9J866/VTNphkB3dnYePny4tbVV360aMf1btUEzrX3f5+vb29sPH364mM9TZw1rndpWq3HK1wsAOQoeuijRO7Q2lUSQDlut7mPqbNZYp5KJyGZfqjVx5Htl1ghgnr8+//B7Hy4WiylrvK3yO3lAoLCyyENexdT54vXvffi9+Zd3krzWPCmjhoJUw+6cNVNVUlYlJcEwad7wNN8n8vpGIr/VSqg9AAf5Rk1KI8DbMkVsb29/+DC4c7U77741gK55WSIRNXY2ZbTocbH44IMPtra2mNnTV3fBha/FRyNYv0mp1+4ARAOriAXDSqIK5kEtrFQwD5k0O/sJsNS5xARtxYUCTPPXd95/7/2v/sc3oo/SNSHgxP5qk/QETy+d1sI4f4DQyiB5RwFguVz94B9+sFwumVkuPd2hCBpVRxXYDGiUotlm7pQ8MRAoiAY0F6SjqcXANjBVtaUtEQwrs8fvlgTGMwT48pc6Z5D8ev311x9++HA+n1OIpDGIHEpy6M6g6uJTa6x8BlKrqCO8WyffxrXVavXo0aPVapVZVap/zBrYSNtnJWmCV62fAZByA+nIGxiIUiBskYy7ZGtLCb5GoiS3KOoa3FkAJXGpHrrVEBUTPbcgsY83jF+K9dpspmz+13w+//Dhhzs7O4YGCYh1MqrhdLzV1i6VycUasvgaEcN80ybEjBUNHDBkDnxQ7bhjgsolI2+99dZ77723tbUVaw7Mhf8lFxUdydBR+/trPKJ4CsD5+fnHH398dnZm34dTK1ojwp57kJJHaomzFafYqoLD7Jqqyviv5iOTQV3oSMX02yxeV/S8fef2tx98GxvB7y+6NvJigkf9Y+Ytar+Hh4eHP3uao1ARtnRd1Tz1RschyGURREQDzVSViGeqHllVDVJV046CTVZAaBUr++e1115799139/b2/oIB/5nf+3dmlpFuxFfUMwW9ChyfHB8+fbparXzsANEACKACxxq7HD3JEk57nckKzRRrEOr0rk+o2qPsXPeyb/gvr5Ardnd3v/Pud82dV/q6QeJP8GjKkfyNeHddg9Y4st77arX64ccf/f73v4cID1CBxMIdtizMWSMI7xzYxMmBzFAasqShWdBd4uP2GoBr167dPzi4fefOnzvsyajSneczsAC8Wk7vuSjuqm7UoI3COPzZ039+eig2HUDwWg+8dgxEEkIWqDqDEJ6deDYQKcTr8LGMzCbsWwJBRKphVord3d3vfue788V8M3HNbVOSEXyJxyYMqhxZG2TXxeSP3g9ufHH1cvlPT56cnp5G+JmFSDe9EqmIGVchakDeyuds2seZyTyOl4AHkPOdnQcPvr1344ZFfH0E6ExxRhRV8BrN1CG194nR0qwW9BbDqdwpZjjVIwoaqvYRYKj0yeHy5UvYmuVSFOw6goeOnq/Nrr3WKo9j1ZqWyAhGAFuvbd+9e/f2ndvb29ubHA2Zs82eJpy6Mthr/KXmrjc/ENyZ3J+E6Y2hrsDEbfAnJ8efHD5dLpdMM1UFCW2EToB8RqPN0rj9ZyUo37y2de3u3Tt3bt/1GOcV+l+tqR+AM+iqd5uou/rQn8GgK9halcsTDn9/uVwdnxwf//JfVqsVD6gFE9iyX26RdHPtlkZYSgHAErSdxfyb3/zm7dt/s7W1vWlkV4/zFWpy1firt9qoTVfx6CpyOvPsX1aAcHJ8cnh4uFqtmFnkkpkrr+CxDDvuGu6kHu2++ebBwf3d67vxKLDuNeqw1z3OVfHeK4Zn6sCEUcG2WGYtpvuL4tA1oytNOGT/6lenJycnn356CkDEc4OEFwJ7+AdAFbu71/f29m7d2u9UpoYnVw3sFXrRkRufuupUfEFrjVwdBF3ZC2LsiKrAelSl3TvM/Ic//OHs7Ozk5P+enZ3lYigzMWxtbb99Y+/69et7e3tXmhKV1oMEb4XNvF2DpgBUjSX5EP62Mah5/U2hzSsYtNFsJ8C0Rnx8pUmMmkmKrlarFy/Onj9//tvf/na5XNKd/3rnwTsPGgUdCnh+0cF87SZ1ta2gaBR2JE/AuwsCE8ZfwQWahpT55JW2TNMQqQ6qNexfhKQ6Mf/0pz/lO7dbKFwmgaxbLVyaEFy7105lJhFyzyqvJKxHwGVSrNKdXXR8mejZ5FnP4LXeL2sl2jYDiqmaYE0Tvjnxe/fuzba3m02VMnCIND53I6qmUc1nSjQBWise6WiNYi39IZEh6JtyhLLmuHZV9TRnIvF6amqngGZPhgzkAiZE+wbJpIrPzy/48OnTJpM1BEAKk6b369gmH6+6GXpBU4doItA11KgtaNPojV2o1yK5GW8PfOtXgE+17q7jo6NnRAN/5Stf+ev/8Fdf//rXd3enm0omUeYr/Nhffl0BORT68oqoEuXVDS5s7ZWNnNoI4UrnFxfPT391dnZ2enp6cXER6yBdD8fd3es3b+6/9dZb8/l8I+VY49qfc00z1Y6u9ac3RxUdmmn/cG1yveUJg7Sgftw8Pz8/Pjk+PX3+4uw3sdRHPZImanXZTMG+duNrt27t3/jaXhJxZbmno6/knzUXWwvSYClSK25c4Yw6gIdepcSb4G/DY5PnCQDOzl4cPj08++zXICLL46XlsV6Trjuw/GJV1fmXF/fv379586bfs2nDnBhZj32ok0/mX5EuUoQejJgNmPJi3aP/ycG/ysSom0FC082Li4ufPzs6OTlZLpeAwFKuEcaNnA0lWxgdjQ0gYZBqrIwQArCzmO/v79+6ub9YLCpTYOFPDuwqkitY2AjDH13hl4IxtBbLKCZhgze6ITQl0HqmQoCen58/Ozo6Ojq6uDi3u5ZmCSmJTe359AQREc+GtqJFGSQQJfKikk2ejSrMvPPvv3z//v2b+zfTrVYoVcvjwoF0SlyVCx3FmxiU4fb6yHsG1cFr90wPN63li4vznx/9/Ojo6PKLL2SSmDIJKSuRwnbrkA9zKLPPZWrQ9gXaQit7wOrQO/Odb33rW9/4L9+oGjSpARGzqnS2UEOVdW5sMCKsffEnUKWZ/BXX6enzJz958vLlS1X1FQheWeS0GFtCZ3X3WIo5+KKY5stiupaI6opMz3GZANz4z1978ODBYrFoeUKfgmX9xW+/gkEbsXnCkbU7V3iM4v+K7qxWy398/Pizz36TrwwE9X3ABoheurcimRtXaJBnEiWf4GSQ1Wvd58XmGYQ23bt3r+1n2ui101w2lUr6Ofu+KDEpg1IkhH0jU/ZuigmPnh09fXp4fn6eKzU2XsoKUQjIdkBlyZVn4c/iVkxoxzrNXL9xOdb5eHvrjTfe+OCDDyp4b2SQm6F/bgtLu2pHA/5N0L0mgA0S6Rm0XC4f//jxixdnceNKBhGR2L567eaWYRoEoJ/0aK95Md+wRpQAHmw7kACggSG6WCwODg5u7u9vcM9XaRCF9+3jvaicYN15rcfWVzDIGz09ff74x48vLi4A9FseNzNLWZNB1KHqAIqDSMLq6mDK/pmOr6Q2ly+qqsMw/Le//e8H9w4azYRalNow9+AimUxaxCsVa9KR2/Kq0Pe4vcYz4MmTJ89+8YtCrU4MPKew2h0SU6QEk4yk850oWnmtk0EEjHmmi/VRS/q5CMaM8vr16++/957PeRBitdhVCzNcI7qAux+nZ4/UsQxTEXZQdH5+/tGPPn7x4oWq5GxwQQ+NhWXJoDjxhe2Ui6G0HBPWRCTSlpo7BCkTs+olgG4e0rkZGsfJaVLVxWLx8H8+XMznyEmFcCydEoW+ELKy8cqSGLCBy0hccxnYEqHly1UObxPuCMfydj91Bc2LDTSrs/CqI2EGYFMtmOx+S2VhSUZZ4u9QLQS2A1QEwM7O3BffrYWF6YIzBdkQ2uGK53WNWzViUl2ulo++/2i5XKLUQNOOTIQiYqbEakstxRb2JINIbXkU5wrGXGmPbAgZJdcVMOl3y0Ly/M3lWJ9VEkrTMJ84Qu0WW1MutfBV7dO3+ue7y5RTAf3d73//6PuPVqsl+c4aSiKnjdTRZgUvky3/t+zUj09TmjBFNcc5W31suyL8RCHKw3B8N81yufz7//X3v/vd79aGWWq36zqbVW2DHu0fs5ps7GktjdByufqHH/zgjy//qLEsNVdC2+4dKqXV2oCtb23jL1LPq+UZlUrPRAqDc7N0ZVY04SqtfpKJEuHi4vyjH320XC2nbGj+qTXXfdW7+ahBxsq9CMqT0cvl8tH3H33++YWI5BkYuTbQ9rvVrQGq+SFsIltTtYAmFwnDViSWJasEMCnn+o/c/7O+oc46U4UgVGno9GK1XD569Gi5XPYimVgdHGK1vFt4qCV8d0ii6JuwXK3MnAVj2TuWg9dRR49gYhE086BKNVMloE1Lw/fca9jWZJ10YAqocrrpZ2RYkQAUi7EZ2u78L1qtlo8ePfr88/PKlLoDeO3qgc9/ty4pC+SE8/PzR99/9PLly/SheS5FwWYQkc2419XubaRxpd1pH0O0fQwASGEnvqgqg9HtAnEzti0yOQoiUoIyUZyhkZdt0lwtlx9/9BEZpqjz28ZNayq5XpmncFXFLJxzH/3wRy9Xf6y8HmjI0AwA0WDrEicupfQ2ilzqeGknGZF6WFwpKkd0qdoJQxOZNlQKh1/QqY1wcpiGxoJGIrx4cfbkyZP1Nifkls/Ni657Hvv+8PDwsxcv1llsM+vWRJtij73y651edeUzTCozbh5RMAqUZ4PtpFcdY3NGxKDEqcLKUKaBZmzbHdqPeZA2tl8cPXt+ejrhjmqBmG5uVpsfy3XVoYBQHP/yl08PnyLO74PFYoCq2lqvcpnDFekPb/SKDw2qJJ1c/SQT1VFVBlsK3JxixIe2/WCC9iJQ6jCrEqL98QLsx9IN7tmZ/vHx4+VyOZGSa3QN+Vro539NnOZqtfrZz35GsRLOVDt3E0a/1K3QoC4di3NrbPd4t0esrSVXEEFE2OM7AdFA4ExG1NYMeZ1ogLRtjxZIqCorsfp+USJqG/YNgFiVxM4bEugXX3zx+PHjwh7TIMkAoxO8OlxXL2aG98OPP1q+XNnhlVHbU8VIZPu8eojlmalJ4qwL2z2vY/BAea7MyGz5w8DMEWUrQCSxtb1qR9TSNFfJUnDHuCCSu+3HtSCgk7wSPvvss2fPnrW/C+iU9xqUhsdsPvjw6WGNP3PxYI58EkOPl7a6su2P7i9XpWyHSlo7jgrf9MJ22EoXCnpQBLYzUbrWc9QM2DlDMqqVckQYHnl5A/aGuK89PDy06JGyJOQA07kYNbCpnRKtVsunh/88EA/E0QsZPtr+2BybBXuqo51t1vsZCtJtpKNvs40f5pkveGYCD75OkcrG4Xq5JKk75mEiCe9U1SBIPaPoQIqIbLnkxcXF4x//GBQ1HXRtBkpXvrTf//Tkie10HscxZ2JUDZvrTrHkVAviaqSS4p1koFouS/dlHNk2/ChBMJop+k876ETJjpKFxQm2J3qwmDsxi5RFkpUAQCqx9wgqlyFJefHrs+enzwGN0zO7ALlX0XYdnxx/+umnNEQXwyw5q6o0wE5wycsLOHYOCakhDhHleYl+PlnQ7D9gUX/G9rt2WpMMrla9LoHq3aoEXC6bAmWeDRqbEYnoyZMn5+clvHY3EcoySU0IAA4/+aSBURwYpKWGV0liP/CttNLTHF4vM7/UJQGVPd0A2zG/REqkdi6inT4QN4nIj5AzjTBtyvOk1eq4QhAdiAEWOy3DXBwx+dFhY+44U8Ly5erZs6OOhZG71KSMfFETjk9OVqs/QuPssHIsj/q2d/LN3d6bbXGiyBNINY7osfMa1N8gZtsCh/YT3AQrnNNpqE2iVV9SPnX/Uy1RZ0K/rlP+LkesF/WaOvNL7Jm69vhj7S2Xq6dPn5psiwV1dfjCL53NZgapWYGwr7rTZXoie4WX2jjXpzUOJwzAUyUZ9dJ0x2S1TpOI5L4FirMw86AuWPBZKl7G988vzn9+dGQG1ZG9hkLHx79cLv+/siprFKFaO86XEYhzPBKnS17aVMPxxVro9mQ0r+L+SkeCdBhERDU7GwbWmKrLYwZrpBCPDQlSE1fIE9nUkA84enbUIdHkCh6d/Mux1vSvBPf5mW2XUwQ1Odqr9LoqeK24Z+SVLbTxiHSFIiWMowBkx1dmKXNUyd0L1p4hgB/22icc4eDayKwr1ZGBL87PjwyJJl6rGNrxyfFqtWImUmYvALIhZh9JiOrY7acFkba9uDl7wxgMNEnZbFbgAbMQyI9pkIx789gYSz1aME7M5Afx+AL9DZYfR12lrDJCSe5svPKb4+NjoAt2Jn8eHh5WfcmcK1WDqK3+Sl02SiZHLayTRJlzAwrGpm85lMrYDFX4nP5ovPAT4jTP/kIjCAZAZZ6kqnRV2u6ID3CcKc4vly9fnL3oyon+Mgg4PT19+XIVMS6SNZE65MYJrsgdWqyqY0bYSR5EGWTxkZNqft1nt9rJs65B9kdh9rQqmNdEbtXOq21TXwN2ppe0oz4J4JNPPuk1p0XVx8fH6TRblWf0//7AQJB51o7RXkvNxnL8Y3XKG7V7ctOMI3IQ0ZhBHcAzRVffWX/Z74jmUXTrWFjY5xFtHMLWziFSwovffHZ+cR4ZmbMGhOVydfr/Ts1DEClIBaPIZZFfqFU4xzykzjggInZOq/HOUQk6qV4nUJLC4MlwygWAUB8ugOLlPO6CgGwxFSo9yEQyhcrW/bpw0iKOT46zn+AQXrx4kTcA+LKuiVeMRLQ5nYghM5LOqvNGEebYs5HJk8FysjMiRxHBCBKCHUQIAH7y+ERFs3UpR20nFjYbDIBnxH9+ArZKQtJ6evo8JZpx0Mnx/4Hk+fmceUGG4wz1gmHQlrGPqsLOktI4KiKQiJllHHWU/CFVHS8l0heL4DJA4RSy/VscZ5V2A51kSnLBGjUFro4jPgAS/jGqSxM3d3Z2dn5+UaeqV6vl2dlZfdi/KuR5Hk1NHimk6jqqXsOKpakvDg5O8ETq4cVKZEl21LglbDqa9O0ANCOl7vSdzWZZu0SEHhmJ+JKPPINXAIniKwXeNBPW0+e/qkHlr399FosuOs/o+Q3Zrv8WYRANFHBhg7RgbRgGK/INQwisnAOJQC6jqtkBtUUZXcmiqFLnsCYHu6U2orr52NTpZxFwpyP5n3mkVKuSEuHs12f1zumnz52zExQzhBRHfrMA0qYmteWkTbU7T7o9Foe4V12bqN5MR2Do4y772ghXVgiYRUfyVRCggWNWgDRiVq0g2tkp217+MtfsJ+ygDOn09LQG0L/77W+pLSrxBIIpAMGgnAReEgUgtovFqLLsUMNSfAkCQ3IFK1GS6px3LhtIj83iiHydXWVt8wHBzDijwqcE8j9eco+WI1ZLm6zM7RP2Whxfrzit34svzn/ykyfLPyzPz8+f/OTJ6uVLNLrF9qsbd2owXSWan6U73q47YXrioeqVEF4fBvBvwZvfB2giLLAAAAAASUVORK5CYII=";static ALPHA_THRESHOLD=.002;static MAX_ALPHA=.99;static LOGO_VALUE=255;alphaMaps={};bgImages={};processingQueue=new Set;processingMap=new Map;processedDataUrlCache=new Map;enabled=false;stopObserver=null;mainWorldMessageListener=null;actionButtonListener=null;userscriptOriginalFetch=null;constructor(){this.alphaMaps={},this.bgImages={},this.processingQueue=new Set,this.processingMap=new Map,this.processedDataUrlCache=new Map;}start(){this.enabled||(this.enabled=true,this.enableUserscriptFetchInterception(),this.processExistingImages(),this.startObserver());}stop(){this.enabled&&(this.enabled=false,this.disableUserscriptFetchInterception(),this.teardownActionButtonInterception(),this.processingMap.clear(),this.processingQueue.clear(),this.stopObserver&&(this.stopObserver(),this.stopObserver=null));}isGeminiStandardSite(){return "gemini.google.com"===window.location.hostname}shouldInterceptGeminiImageUrl(e){return _.test(e)}isLikelyGeneratedImage(e){const t=e.currentSrc||e.src||"";if(!t)return  false;const n=e.naturalWidth||e.width||0,r=e.naturalHeight||e.height||0;return !(n<192||r<192)&&(this.shouldInterceptGeminiImageUrl(t)||t.startsWith("data:image/")||t.startsWith("blob:"))}isSupportedGeminiImageSource(e){return !!e&&(this.shouldInterceptGeminiImageUrl(e)||e.startsWith("data:image/")||e.startsWith("blob:"))}getImageSourceForAction(e){const t=e.getAttribute("data-ophel-wm-source")||"";if(t)return t;return e.currentSrc||e.src||""}normalizePossibleUrl(e){if(!e)return "";if(e.startsWith("data:image/")||e.startsWith("blob:"))return e;try{return new URL(e,window.location.href).toString()}catch{return e}}extractSupportedUrlFromNode(e){const t=[],n=[],r=[],i=e=>{if(!e)return;const i=this.normalizePossibleUrl(e);this.isSupportedGeminiImageSource(i)&&(this.shouldInterceptGeminiImageUrl(i)?t.push(i):i.startsWith("blob:")?n.push(i):i.startsWith("data:image/")&&r.push(i));const s=e.match(/https?:\/\/[^\s"'<>]*googleusercontent\.com[^\s"'<>]*/gi);if(s&&0!==s.length)for(const n of s){const e=this.normalizePossibleUrl(n);this.shouldInterceptGeminiImageUrl(e)&&t.push(e);}};for(const s of Array.from(e.attributes))i(s?.value||"");return e instanceof HTMLAnchorElement&&e.href&&i(e.href),e instanceof HTMLImageElement&&i(e.currentSrc||e.src||""),t[0]||n[0]||r[0]||""}getRequestUrl(e){if("string"==typeof e)return e;if(e&&"object"==typeof e&&"url"in e){const t=e;if("string"==typeof t.url)return t.url}return ""}toggleMainWorldFetchInterception(e){this.isGeminiStandardSite()&&window.postMessage({type:"OPHEL_WATERMARK_FETCH_TOGGLE",enabled:e},"*");}setupMainWorldBridge(){!this.mainWorldMessageListener&&this.isGeminiStandardSite()&&(this.mainWorldMessageListener=e=>{if(e.source!==window)return;const t=e.data;if(!t||"OPHEL_WATERMARK_PROCESS_REQUEST"!==t.type)return;const n=t.requestId||"",r=t.url||"",i=t.arrayBuffer,s=t.mimeType||"";n&&r&&this.handleMainWorldProcessRequest(n,r,i,s);},window.addEventListener("message",this.mainWorldMessageListener));}teardownMainWorldBridge(){this.mainWorldMessageListener&&(window.removeEventListener("message",this.mainWorldMessageListener),this.mainWorldMessageListener=null);}postMainWorldProcessResponse(e){window.postMessage({type:"OPHEL_WATERMARK_PROCESS_RESPONSE",...e},"*");}async handleMainWorldProcessRequest(e,t,n,r){if(this.enabled&&this.shouldInterceptGeminiImageUrl(t))try{const i=n?new Blob([n],{type:r||"image/png"}):void 0,s=i?await this.processImageBlobToDataUrl(i):await this.getProcessedDataUrl(t);this.postMainWorldProcessResponse({requestId:e,success:!0,dataUrl:s});}catch(i){this.postMainWorldProcessResponse({requestId:e,success:false,error:i instanceof Error?i.message:"Unknown processing error"});}else this.postMainWorldProcessResponse({requestId:e,success:false,error:"Watermark interceptor disabled"});}getUserscriptPageWindow(){return "undefined"!=typeof unsafeWindow&&unsafeWindow&&unsafeWindow!==window?unsafeWindow:window}enableUserscriptFetchInterception(){if(this.userscriptOriginalFetch||!this.isGeminiStandardSite())return;const e=this.getUserscriptPageWindow();this.userscriptOriginalFetch=e.fetch.bind(e),e.fetch=async(...t)=>{const n=this.getRequestUrl(t[0]);if(!this.enabled||!n||!this.shouldInterceptGeminiImageUrl(n))return this.userscriptOriginalFetch.apply(e,t);try{const e=await this.getProcessedDataUrl(n),t=await this.dataUrlToBlob(e);return new Response(t,{status:200,statusText:"OK",headers:new Headers({"Content-Type":t.type||"image/png"})})}catch{return this.userscriptOriginalFetch.apply(e,t)}};}disableUserscriptFetchInterception(){if(!this.userscriptOriginalFetch)return;this.getUserscriptPageWindow().fetch=this.userscriptOriginalFetch,this.userscriptOriginalFetch=null;}setupActionButtonInterception(){}teardownActionButtonInterception(){this.actionButtonListener&&(document.removeEventListener("click",this.actionButtonListener,true),this.actionButtonListener=null);}isActionButtonElement(e,t){const n=[e.getAttribute("aria-label")||"",e.getAttribute("data-tooltip")||"",e.getAttribute("mattooltip")||"",e.getAttribute("title")||"",(e.textContent||"").trim()].join(" ").trim().trim().toLowerCase();return "copy"===t?n.includes("copy")||n.includes("copy image")||n.includes("copy full")||n.includes("复制")||n.includes("複製"):n.includes("download")||n.includes("save image")||n.includes("full size")||n.includes("下载")||n.includes("下載")}findImageAction(e){const t=("function"==typeof e.composedPath?e.composedPath():[]).filter(e=>e instanceof Element),n=e.target instanceof Element?e.target:null,r=[];if(n){const e=n.closest("button,[role='button']");e&&r.push(e);}for(const s of t)s instanceof HTMLElement&&(s.matches("button")||"button"===s.getAttribute("role"))&&r.push(s);const i=Array.from(new Set(r));if(0===i.length)return null;for(const s of i){if(this.isActionButtonElement(s,"copy"))return {action:"copy",button:s};if(this.isActionButtonElement(s,"download"))return {action:"download",button:s};for(const e of Array.from(s.querySelectorAll("[aria-label],[data-tooltip],[mattooltip]"))){if(this.isActionButtonElement(e,"copy"))return {action:"copy",button:s};if(this.isActionButtonElement(e,"download"))return {action:"download",button:s}}}return null}findRelatedGeminiImage(e){let t=e;for(let o=0;o<6&&t;o++){const e=Array.from(t.querySelectorAll("img"));for(const t of e){const e=this.getImageSourceForAction(t);if(this.isValidGeminiImage(t)&&this.isSupportedGeminiImageSource(e))return t}t=t.parentElement;}const n=e.getBoundingClientRect(),r=n.left+n.width/2,i=n.top+n.height/2,s=document.elementFromPoint(r,i)?.closest("generated-image, .generated-image-container");if(s){const e=Array.from(s.querySelectorAll("img"));for(const t of e){const e=this.getImageSourceForAction(t);if(this.isValidGeminiImage(t)&&this.isSupportedGeminiImageSource(e))return t}}return null}findBestVisibleGeminiImage(){const e=Array.from(document.querySelectorAll("img")).filter(e=>!!this.isValidGeminiImage(e)&&this.isSupportedGeminiImageSource(this.getImageSourceForAction(e))).filter(e=>{const t=e.getBoundingClientRect();return t.width>120&&t.height>120&&t.bottom>0&&t.right>0});return 0===e.length?null:(e.sort((e,t)=>{const n=e.getBoundingClientRect(),r=t.getBoundingClientRect();return r.width*r.height-n.width*n.height}),e[0]||null)}findRelatedGeminiImageFromEvent(e){const t="function"==typeof e.composedPath?e.composedPath():[];for(const n of t){if(!(n instanceof Element))continue;if(n instanceof HTMLImageElement){const e=this.getImageSourceForAction(n);if(this.isValidGeminiImage(n)&&this.isSupportedGeminiImageSource(e))return n}const e=Array.from(n.querySelectorAll?.("img")||[]);for(const t of e){const e=this.getImageSourceForAction(t);if(this.isValidGeminiImage(t)&&this.isSupportedGeminiImageSource(e))return t}}return null}findGeminiSourceUrlFromEvent(e){const t="function"==typeof e.composedPath?e.composedPath():[];let n="",r="";for(const i of t){if(!(i instanceof Element))continue;const e=this.extractSupportedUrlFromNode(i);if(e){if(this.shouldInterceptGeminiImageUrl(e))return e;!n&&e.startsWith("blob:")&&(n=e),!r&&e.startsWith("data:image/")&&(r=e);}}return n||r||""}async resolveActionDataUrl(e){return e.startsWith("data:image/")?e:e.startsWith("blob:")?this.processImageSourceToDataUrl(e):this.getProcessedDataUrl(e)}async writeImageToClipboard(e){const t=await this.dataUrlToBlob(e);if("undefined"==typeof ClipboardItem||!navigator.clipboard?.write)throw new Error("Clipboard API unavailable");const n=new ClipboardItem({[t.type||"image/png"]:t});await navigator.clipboard.write([n]);}triggerDownloadFromDataUrl(e){const t=document.createElement("a");t.href=e,t.download=`gemini-image-${Date.now()}.png`,t.rel="noopener",document.body.appendChild(t),t.click(),t.remove();}shouldUseNativeGeminiAction(){return null!==this.userscriptOriginalFetch}async resolveProcessedDataUrlForAction(e,t){if(e.startsWith("data:image/"))return e;if(e.startsWith("blob:"))return this.resolveActionDataUrl(e);try{return await this.getProcessedDataUrl(e,{bypassCache:!0,requireNonPreviewSource:!0})}catch(n){const r=n instanceof Error?n.message:"";if("copy"===t&&"fullsize-source-unavailable"===r)return this.getProcessedDataUrl(e,{bypassCache:true,requireNonPreviewSource:false});throw n}}async handleActionButtonClick(e){if(!this.enabled||!this.isGeminiStandardSite())return;const t=this.findImageAction(e);if(!t)return;if(this.shouldUseNativeGeminiAction())return;const n=this.findRelatedGeminiImageFromEvent(e)||this.findRelatedGeminiImage(t.button)||this.findBestVisibleGeminiImage(),r=this.findGeminiSourceUrlFromEvent(e)||(n?this.getImageSourceForAction(n):"");if(r&&this.isSupportedGeminiImageSource(r)){e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation();try{const e=await this.resolveProcessedDataUrlForAction(r,t.action);if(!e)return;n&&n.setAttribute("data-ophel-wm-processed","1"),"copy"===t.action?await this.writeImageToClipboard(e):this.triggerDownloadFromDataUrl(e);}catch{return}}}calculateAlphaMap(e){const{width:t,height:n,data:r}=e,i=new Float32Array(t*n);for(let s=0;s<i.length;s++){const e=4*s,t=r[e],n=r[e+1],o=r[e+2],a=Math.max(t,n,o);i[s]=a/255;}return i}removeWatermark(e,t,n){const{x:r,y:i,width:s,height:o}=n;for(let a=0;a<o;a++)for(let n=0;n<s;n++){const o=4*((i+a)*e.width+(r+n));let l=t[a*s+n];if(l<ee.ALPHA_THRESHOLD)continue;l=Math.min(l,ee.MAX_ALPHA);const d=1-l;for(let t=0;t<3;t++){const n=(e.data[o+t]-l*ee.LOGO_VALUE)/d;e.data[o+t]=Math.max(0,Math.min(255,Math.round(n)));}}}detectWatermarkConfig(e,t){return e>1024&&t>1024?{logoSize:96,marginRight:64,marginBottom:64}:{logoSize:48,marginRight:32,marginBottom:32}}calculateWatermarkPosition(e,t,n){const{logoSize:r,marginRight:i,marginBottom:s}=n;return {x:e-i-r,y:t-s-r,width:r,height:r}}async loadBgImage(e){return this.bgImages[e]?this.bgImages[e]:new Promise((t,n)=>{const r=new Image;r.onload=()=>{this.bgImages[e]=r,t(r);},r.onerror=n,r.src=48===e?ee.BG_48:ee.BG_96;})}async getAlphaMap(e){if(this.alphaMaps[e])return this.alphaMaps[e];const t=await this.loadBgImage(e),n=document.createElement("canvas");n.width=e,n.height=e;const r=n.getContext("2d");if(!r)throw new Error("Could not get canvas context");r.drawImage(t,0,0);const i=r.getImageData(0,0,e,e),s=this.calculateAlphaMap(i);return this.alphaMaps[e]=s,s}loadImageFromSource(e){return new Promise((t,n)=>{const r=new Image;r.onload=()=>t(r),r.onerror=n,r.src=e;})}async dataUrlToBlob(e){const t=e.match(/^data:([^;,]+)?(?:;charset=[^;,]+)?(;base64)?,([\s\S]*)$/i);if(!t)throw new Error("Invalid data URL");const n=t[1]||"application/octet-stream",r=!!t[2],i=t[3]||"";if(!r)return new Blob([decodeURIComponent(i)],{type:n});const s=i.replace(/\s+/g,""),o=atob(s),a=new Uint8Array(o.length);for(let l=0;l<o.length;l++)a[l]=o.charCodeAt(l);return new Blob([a],{type:n})}buildRemoteFetchCandidates(e){const t=this.replaceWithNormalSize(e),n=[],r=e=>{e&&(n.includes(e)||n.push(e));},i=e=>{for(const t of (e=>{const t=e.search(/[?#]/),n=-1===t?e.length:t,r=e.lastIndexOf("/",n),i=e.lastIndexOf("=",n);if(-1===i||i<r)return [e];const s=e.slice(i+1,n);if(!s)return [e];const o=s.split("-").filter(Boolean).filter(e=>{const t=e.toLowerCase();return !/^s\d+$/.test(t)&&!/^w\d+$/.test(t)&&!/^h\d+$/.test(t)}).filter(e=>"d"!==e.toLowerCase()),a=o.filter(e=>"rj"!==e.toLowerCase()),l=[["s0","d",...a],["s0",...a],["s0","d",...o],["s0",...o]],d=[];for(const c of l){const t=c.join("-"),r=`${e.slice(0,i+1)}${t}${e.slice(n)}`;d.includes(r)||d.push(r);}return d})(e))r(t);};return t.includes("/gg/")?(i(t.replace("/gg/","/rd-gg-dl/")),i(t.replace("/gg/","/rd-gg/")),i(t),n):t.includes("/rd-gg/")?(i(t.replace("/rd-gg/","/rd-gg-dl/")),i(t),i(t.replace("/rd-gg/","/gg/")),n):t.includes("/rd-gg-dl/")?(i(t),i(t.replace("/rd-gg-dl/","/rd-gg/")),i(t.replace("/rd-gg-dl/","/gg/")),n):(i(t),n)}async fetchOriginalBlobSingle(e){return async function(e){return new Promise((t,n)=>{GM_xmlhttpRequest({method:"GET",url:e,headers:{Referer:"https://gemini.google.com/",Origin:"https://gemini.google.com"},responseType:"blob",onload:e=>{e.status>=200&&e.status<300?t(e.response):n(new Error(`HTTP ${e.status}`));},onerror:e=>n(new Error(e?.message||"GM_xmlhttpRequest failed"))});})}(e)}async fetchOriginalBlob(e,t){const n=this.shouldInterceptGeminiImageUrl(e)?this.buildRemoteFetchCandidates(e):[e];let r=null;for(const s of n)try{const e=await this.fetchOriginalBlobSingle(s);if(t?.requireNonPreviewSource&&/\/gg\//.test(s))throw new Error("fullsize-source-unavailable");return e}catch(i){r=i;}throw r instanceof Error?r:new Error("Failed to fetch original image")}async processLoadedImageToDataUrl(e){const t=document.createElement("canvas");t.width=e.width,t.height=e.height;const n=t.getContext("2d");if(!n)throw new Error("Could not get canvas context");n.drawImage(e,0,0);const r=n.getImageData(0,0,t.width,t.height),i=this.detectWatermarkConfig(t.width,t.height),s=this.calculateWatermarkPosition(t.width,t.height,i),o=await this.getAlphaMap(i.logoSize);return this.removeWatermark(r,o,s),n.putImageData(r,0,0),t.toDataURL("image/png")}async processImageSourceToDataUrl(e){const t=await this.loadImageFromSource(e);return this.processLoadedImageToDataUrl(t)}async processImageBlobToDataUrl(e){const t=URL.createObjectURL(e);try{return await this.processImageSourceToDataUrl(t)}finally{URL.revokeObjectURL(t);}}async getProcessedDataUrl(e,t){const n=this.replaceWithNormalSize(e);if(!t?.bypassCache){const e=this.processedDataUrlCache.get(n);if(e)return e}if(!t?.bypassCache){const e=this.processingMap.get(n);if(e)return e}const r=(async()=>{const e=await this.fetchOriginalBlob(n,{requireNonPreviewSource:t?.requireNonPreviewSource}),r=await this.processImageBlobToDataUrl(e);if(!t?.bypassCache&&(this.processedDataUrlCache.set(n,r),this.processedDataUrlCache.size>100)){const e=this.processedDataUrlCache.keys().next().value;e&&this.processedDataUrlCache.delete(e);}return r})();if(!t?.bypassCache){this.processingMap.set(n,r);try{return await r}finally{this.processingMap.delete(n);}}return r}isValidGeminiImage(e){return !!e.closest("generated-image,.generated-image-container")||this.isLikelyGeneratedImage(e)}findGeminiImages(){return [...document.querySelectorAll("img")].filter(e=>{const t=this.getImageSourceForAction(e);return this.isValidGeminiImage(e)&&this.isSupportedGeminiImageSource(t)&&"true"!==e.dataset.watermarkProcessed&&"processing"!==e.dataset.watermarkProcessed})}async processExistingImages(){const e=this.findGeminiImages();for(const t of e)this.processSingleImage(t);}async processSingleImage(e){const t=e.currentSrc||e.src;if(t&&this.isSupportedGeminiImageSource(t)&&!this.processingQueue.has(t)){this.processingQueue.add(t),e.dataset.watermarkProcessed="processing";try{const n=t.startsWith("data:image/")||t.startsWith("blob:")?t:this.replaceWithNormalSize(t),r=await this.resolveActionDataUrl(n);e.src=r,e.dataset.watermarkProcessed="true",e.setAttribute("data-ophel-wm-source",n),e.setAttribute("data-ophel-wm-processed","1");}catch{e.dataset.watermarkProcessed="error",e.removeAttribute("data-ophel-wm-processed");}finally{this.processingQueue.delete(t);}}}replaceWithNormalSize(e){if(!e)return e;if(e.startsWith("data:image/")||e.startsWith("blob:"))return e;if(!this.shouldInterceptGeminiImageUrl(e))return e;const t=e.search(/[?#]/),n=-1===t?e.length:t,r=e.lastIndexOf("/",n),i=e.lastIndexOf("=",n);if(-1===i||i<r)return e;const s=e.slice(i+1,n);if(!s)return e;const o=["s0",...s.split("-").filter(Boolean).filter(e=>{const t=e.toLowerCase();return !/^s\d+$/.test(t)&&(!/^w\d+$/.test(t)&&(!/^h\d+$/.test(t)&&"rj"!==t))})].join("-");return `${e.slice(0,i+1)}${o}${e.slice(n)}`}startObserver(){const e=new MutationObserver(e=>{let t=false;for(const n of e)n.addedNodes.length>0&&(t=true);t&&this.processExistingImages();});e.observe(document.body,{childList:true,subtree:true}),this.stopObserver=()=>e.disconnect();}}let te={themeManager:null,copyManager:null,layoutManager:null,markdownFixer:null,tabManager:null,watermarkRemover:null,readingHistoryManager:null,modelLocker:null,scrollLockManager:null,userQueryMarkdownRenderer:null,policyRetryManager:null},ne=null;function re(e){const{adapter:t,settings:n,siteId:r}=e,i=ur(n,r),s=new Ca(i.mode,void 0,t,i.lightStyleId||"google-gradient",i.darkStyleId||"classic-dark");return s.apply(),window.__ophelThemeManager=s,te.themeManager=s,s}async function ie(e){const{adapter:t,settings:n,siteId:r}=e,i=ur(n,r);if("system"===i.mode&&te.themeManager)return void(await te.themeManager.setMode("system"));const s="system"===i.mode?window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":"dark"===i.mode?"dark":"light",o=document.documentElement.className,a=/\bdark\b/i.test(o),l=/\blight\b/i.test(o),d=document.body.className,c=/\bdark-theme\b/i.test(d),h=document.body.style.colorScheme;let u="light";a||c||"dark"===h?u="dark":l&&(u="light"),u!==s&&(te.themeManager&&te.themeManager.apply(s),t&&"function"==typeof t.toggleTheme&&await t.toggleTheme(s));}function se(e,t){switch(t){case zn.GEMINI:return e.content?.markdownFix??false;case zn.AISTUDIO:return e.aistudio?.markdownFix??false;case zn.CHATGPT:return e.chatgpt?.markdownFix??false;default:return  false}}function oe(e){const{adapter:t,settings:n,siteId:r}=e,i=t.getMarkdownFixerConfig(),s=se(n,r);i&&s&&(te.markdownFixer=new j(i),te.markdownFixer.start(),console.warn(`[Ophel] MarkdownFixer started for ${t.getName()}`));}function ae(e){const{adapter:t,settings:n,siteId:r}=e,i=hr(n,r),s=pr(n,r),o=mr(n,r).enabled;(i?.enabled||s?.enabled||o)&&(te.layoutManager=new P(t,i),i?.enabled&&te.layoutManager.apply(),s?.enabled&&te.layoutManager.updateUserQueryConfig(s),o&&te.layoutManager.updateZenMode(true));}function le(e){const{adapter:t,settings:n}=e;n.content&&(te.copyManager=new T(n.content,t),n.content.formulaCopy&&te.copyManager.initFormulaCopy(),n.content.tableCopy&&te.copyManager.initTableCopy());}function de(e){const{adapter:t,settings:n}=e;n.tab&&(te.tabManager=new Z(t,n.tab),te.tabManager.start());}function ce(e){const{settings:t,siteId:n}=e;n!==zn.GEMINI&&n!==zn.GEMINI_ENTERPRISE||!t.content?.watermarkRemoval||(te.watermarkRemover=new ee,te.watermarkRemover.start());}async function he(e){const{adapter:t,settings:n}=e;if(n.readingHistory?.persistence){ne&&(clearTimeout(ne),ne=null);const e=e=>{te.readingHistoryManager||(te.readingHistoryManager=new K(t,e.readingHistory),te.readingHistoryManager.startRecording(),te.readingHistoryManager.cleanup());};if(await br())return void(ne=setTimeout(()=>{ne=null;const t=Cr();t.readingHistory?.persistence&&!te.readingHistoryManager&&e(t);},ar));if(e(n),n.readingHistory.autoRestore){const{showToast:e}=await r(async()=>{const{showToast:e}=await module.import('./entry-cmhZKcCp-iXZNNucp.js').then(e=>e.y);return {showToast:e}},void 0);te.readingHistoryManager.restoreProgress(t=>e(t,3e3)).then(t=>{t&&e("阅读进度已恢复",2e3);});}te.readingHistoryManager.cleanup();}}function ue(e){const{adapter:t,settings:n,siteId:r}=e,i=gr(n,r);te.modelLocker=new Q(t,i),i.enabled&&i.keyword&&te.modelLocker.start();}function ge(e){const{adapter:t,settings:n}=e;te.scrollLockManager=new O(t,n);}function pe(e){const{adapter:t,settings:n}=e;te.userQueryMarkdownRenderer=new $(t,n.content?.userQueryMarkdown??false);}async function me(e){return re(e),setTimeout(()=>ie(e),1e3),oe(e),ae(e),le(e),de(e),ce(e),await he(e),ue(e),ge(e),pe(e),ye(e),te}function ye(e){const{adapter:t,settings:n,siteId:r}=e;r===zn.GEMINI_ENTERPRISE&&(te.policyRetryManager=new z(t,n.geminiEnterprise?.policyRetry||{enabled:false,maxRetries:3}));}function fe(e){const{adapter:t,siteId:n}=e;Tr(e=>{const r=ur(e,n);r&&te.themeManager&&te.themeManager.setPresets(r.lightStyleId||"google-gradient",r.darkStyleId||"classic-dark");const i=gr(e,n);i&&te.modelLocker&&te.modelLocker.updateConfig(i),e&&te.scrollLockManager&&te.scrollLockManager.updateSettings(e);const s=t.getMarkdownFixerConfig(),o=se(e,n);s&&o?(te.markdownFixer||(te.markdownFixer=new j(s)),te.markdownFixer.start()):te.markdownFixer?.stop();const l=hr(e,n),d=pr(e,n),c=mr(e,n).enabled;te.layoutManager?(te.layoutManager.updateConfig(l),te.layoutManager.updateUserQueryConfig(d),te.layoutManager.updateZenMode(c)):(l?.enabled||d?.enabled||c)&&(te.layoutManager=new P(t,l),l?.enabled&&te.layoutManager.apply(),d?.enabled&&te.layoutManager.updateUserQueryConfig(d),c&&te.layoutManager.updateZenMode(true)),!e||n!==zn.GEMINI&&n!==zn.GEMINI_ENTERPRISE||(e.content?.watermarkRemoval?(te.watermarkRemover||(te.watermarkRemover=new ee),te.watermarkRemover.start()):te.watermarkRemover?.stop()),e?.tab&&(te.tabManager?te.tabManager.updateSettings(e.tab):(te.tabManager=new Z(t,e.tab),te.tabManager.start())),e?.readingHistory&&(te.readingHistoryManager?te.readingHistoryManager.updateSettings(e.readingHistory):e.readingHistory.persistence&&(te.readingHistoryManager=new K(t,e.readingHistory),te.readingHistoryManager.startRecording())),e?.content&&(te.copyManager?te.copyManager.updateSettings(e.content):(te.copyManager=new T(e.content),e.content.formulaCopy&&te.copyManager.initFormulaCopy(),e.content.tableCopy&&te.copyManager.initTableCopy()),e.content.userQueryMarkdown?te.userQueryMarkdownRenderer?te.userQueryMarkdownRenderer.updateSettings(true):te.userQueryMarkdownRenderer=new $(t,true):te.userQueryMarkdownRenderer?.updateSettings(false)),e?.geminiEnterprise&&n===zn.GEMINI_ENTERPRISE&&te.policyRetryManager&&te.policyRetryManager.updateSettings(e.geminiEnterprise?.policyRetry||{enabled:false,maxRetries:3});});}function we(e){const{adapter:t}=e;let n=window.location.pathname,r$1=null;const i=async()=>{const e=window.location.pathname;e!==n&&(n=e,console.warn("[Ophel] URL changed, reinitializing modules..."),r$1&&(clearTimeout(r$1),r$1=null),te.readingHistoryManager&&(te.readingHistoryManager.stopRecording(),r$1=setTimeout(async()=>{r$1=null;const{showToast:e}=await r(async()=>{const{showToast:e}=await module.import('./entry-cmhZKcCp-iXZNNucp.js').then(e=>e.y);return {showToast:e}},void 0);await(te.readingHistoryManager?.restoreProgress(t=>e(t,3e3)))&&e("阅读进度已恢复",2e3),te.readingHistoryManager?.startRecording();},1500)),window.dispatchEvent(new Event("gh-url-change")),te.tabManager&&(te.tabManager.resetSessionCache(),[300,800,1500].forEach(e=>setTimeout(()=>te.tabManager?.updateTabName(true),e))),t.findTextarea(),te.modelLocker?.relock(300));};window.addEventListener("popstate",i);const s=history.pushState,o=history.replaceState;history.pushState=function(...e){s.apply(this,e),i();},history.replaceState=function(...e){o.apply(this,e),i();},setInterval(i,1e3);}

		})
	};
}));

System.import("./__entry.js", "./");